puts "==========================================================" puts "0027540: Run-to-run differences in the 3D Offset algorithm" puts "==========================================================" puts "" pload MODELING restore [locate_data_file bug27540_shapes3.brep] s explode s # make offset operations on two shapes # first shape offsetparameter 1e-7 c i # set offset 20 for top faces (normal direction 0 0 1), 0 for all other faces offsetload s_1 0 set faces [explode s_1 f] foreach f $faces { mksurface surf $f set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z] if {$found && abs($z - 1) < 1.e-7} { offsetonface $f 20 } } offsetperform result1 checkprops result1 -s 464088 checkprops result1 -v 1.29909e+007 checknbshapes result1 -vertex 48 -edge 72 -wire 30 -face 28 -shell 1 -solid 1 # second shape offsetparameter 1e-7 c i # set offset 20 for top faces (normal direction 0 0 1), 0 for all other faces offsetload s_2 0 set faces [explode s_2 f] foreach f $faces { mksurface surf $f set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z] if {$found && abs($z - 1) < 1.e-7} { offsetonface $f 20 } } offsetperform result2 checkprops result2 -s 464088 checkprops result2 -v 1.29909e+007 checknbshapes result2 -vertex 48 -edge 72 -wire 30 -face 28 -shell 1 -solid 1 # compare the results set vertices1 [nexplode result1 v] set vertices2 [nexplode result2 v] set nbv1 [llength $vertices1] for {set i 0} {$i < $nbv1} {incr i} { set v1 [lindex $vertices1 $i] set v2 [lindex $vertices2 $i] mkpoint px $v1 set dump_v1 [dump px] mkpoint px $v2 set dump_v2 [dump px] if {$dump_v1 != $dump_v2} { puts "Error: the results are not the same - $v1 and $v2" } }