puts "========" puts "0027383: Modeling - improve handling of regularity on edges" puts "========" puts "" ################################################################# # Check regularity setting on edges between parts of cylinder and spheres ################################################################# pload MODELING pcylinder p1 2 10 180 pcylinder p2 2 10 180 tmirror p2 0 0 0 0 1 0 nurbsconvert q p2 psphere s1 2 ttranslate s1 0 0 10 psphere s2 2 trotate s2 0 0 0 0 1 0 -90 bclearobjects bcleartools baddobjects p1 p2 baddtools s1 s2 bfillds # fuse all solids bbop r 1 encoderegularity r # check that minimal continuity is G1 set rfaces [explode r F] set len [llength $rfaces] set nbshared 0 set nbexpected 6 for {set i 0} {$i < [expr $len-1]} {incr i} { set f1 [lindex $rfaces $i] set redges1 [explode $f1 E] for {set j [expr $i+1]} {$j < $len} {incr j} { set f2 [lindex $rfaces $j] if {$f1 == $f2} continue set redges2 [explode $f2 E] foreach e1 $redges1 { foreach e2 $redges2 { if {[regexp "not" [compare $e1 $e2]]} continue incr nbshared if { [regexp "C0" [getedgeregularity $e1 $f1 $f2]] } { puts "Error: Invalid regularity of the edge, expected at least G1" } } } } } if {${nbshared} == ${nbexpected} } { puts "OK: Number of processed edges: ${nbshared}" } else { puts "Error: incorrect number of processed edges (${nbshared} instead of ${nbexpected})" } # make image in HLR mode as illustration pload VISUALIZATION vdisplay r vfit vhlr on vdump ${imagedir}/${test_image}.png