puts "========" puts "OCC29734" puts "========" puts "" ####################### # Compute global properties of tessellated shape ####################### proc compmass { mass props1 props2 } { regexp {Mass +: +([-0-9.+eE]+)} ${props1} full m1 regexp {Mass +: +([-0-9.+eE]+)} ${props2} full m2 if { abs ($m1 - $m2) > 1.e-7 } { puts "Error : The $mass by geometry is $m1, by triangulation is $m2" } else { puts "The $mass are equal $m1" } } # proc compmoms { props1 props2 } { set moments {"IX" "IY" "IZ"} foreach moment $moments { set exp_string "${moment} = +(\[-0-9.+eE\]+)" regexp "${exp_string}" ${props1} full m1 regexp "${exp_string}" ${props2} full m2 if { abs ($m1 - $m2) > 1.e-7 } { puts "Error : The ${moment} by geometry is $m1, by triangulation is $m2" } else { puts "The moments ${moment} are equal $m1" } } } # proc compprops { shape } { upvar ${shape} ${shape} set commands {"lprops" "sprops" "vprops"} foreach command ${commands} { switch $command { "lprops" { set mass "length" } "sprops" { set mass "area" } "vprops" { set mass "volume" } } puts "" set props1 [eval $command ${shape} -full] set props2 [eval $command ${shape} -full -tri] compmass $mass $props1 $props2 compmoms $props1 $props2 } } #For shapes consisted from planar polygonal faces #results of computation of global properties using exact geometry #and using triangulations must be the same #It is checked by this test box b1 1 2 3 box b2 3 2 1 ttranslate b2 .5 .5 .5 trotate b2 0 0 0 1 1 1 30 bfuse ff b1 b2 incmesh ff .01 set tri_info [eval trinfo ff] puts $tri_info # check of equality calculations by triangulation and exact geometry #set shape "ff" compprops ff