1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-10 18:51:21 +03:00
occt/tests/bugs/xde/bug23193
akz b9c1e44004 0025357: STL writer does not check the given shape for existing triangulation and remeshes shape using BRepMesh in force mode.
StlTransfer.cxx, function StlTransfer::BuildIncrementalMesh(...) fills the StlMesh_Mesh. Before this fix the StlTransfer always force meshing of the passed shape.

Now meshing is completely removed from the StlTransfer. StlWriter can return error status now, for example, if a mesh of the passed shape is empty. In this case file will be not created.

Added test case bugs/xde/bug25357

Avoid the warning on gcc compiler.
Test scripts were modified according to the fix.
     1) bug23192, bug22670, bug23193: removed "isParallel" flag from the command
         arguments. Manually meshing of the shape (as far as meshing was removed
         from STL writer).
     2) bug22898: before the fix writestl always remeshes the shape with a
         deflection, related to the boundery box of the shape. For "hammer" shape
         there is a 38.9076 deflection for mesh. Differences between before writing
         and after reading are dedicated to fact that stl writes triangulation as
         an elements of the spahe (like faces, edges etc.)
2015-02-05 14:40:24 +03:00

37 lines
702 B
Plaintext
Executable File

puts "============"
puts "OCC23193"
puts "============"
puts ""
###########################################################################
# Some triangles are inverted when writing an STL file
###########################################################################
pload QAcommands
set aFile $imagedir/bug23193_sample.stl
vinit
stepread [locate_data_file bug23193_sample.stp] a *
incmesh a_1 1
writestl a_1 ${aFile} 0
meshfromstl m1 ${aFile}
meshcolors m1 elem2 1
vrotate 4 0 0
vfit
set x_coord 189
set y_coord 236
#checkcolor $x_coord $y_coord 0 0 0.7
if { "[vreadpixel $x_coord $y_coord rgb name]" != "MATRABLUE" } {
puts "Error : There is missing triangle"
}
set only_screen 1