1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
|
set mist 0
if { [info exists command] && [string compare $command "mkoffset"] == 0 } {
regexp {Mass +: +([-0-9.+eE]+)} [lprops s] full sm
regexp {Tolerance +MAX=([-0-9.+eE]+) +AVG=([-0-9.+eE]+) +MIN=[-0-9.+eE]+} [tolerance s] full MaxTol_s AvgTol_s
puts "Length of shape a is equal to $sm"
set theOff [expr $sm * $off_param ]
puts [format "Considered Offset value is %s " $theOff]
if { ![catch { mkoffset result s 1 $theOff } catch_res] } {
renamevar result_1 result
if { ![catch { set chsh [checkshape result] } catch_chsh] } {
puts $chsh
} else {
puts "Error : $catch_chsh"
set mist 1
}
}
}
if { [isdraw result] && $mist == 0} {
if { [info exists command] && [string compare $command "mkoffset"] == 0 } {
regexp {Mass +: +([-0-9.+eE]+)} [lprops result] full m
set vertex_list [explode result v]
set ll_v [llength $vertex_list]
set edge_list [explode result e]
set ll_e [llength $edge_list]
set wire_list [explode result w]
if { [string compare $wire_list ""] == 0} {
set wire_list result
}
set ll_w [llength $wire_list]
if { $ll_v == 0 } {
if { $theOff < 0 } {
puts [format "Warning : The resulting shape is an empty COMPOUND"]
} else {
puts [format "Error : The resulting shape is an empty COMPOUND"]
}
puts [whatis result]
puts [nbshapes result]
puts [checksection result]
} else {
puts [format "The resulting shape contains %s wires" $ll_w]
foreach wire $wire_list {
puts "Info for $wire:"
regexp {Tolerance +MAX=([-0-9.+eE]+) +AVG=([-0-9.+eE]+) +MIN=[-0-9.+eE]+} [tolerance $wire] full MaxTol_res AvgTol_res
if { $MaxTol_res > $MaxTol_s } {
puts "Error : big tolerance of shape $wire"
}
regexp {nb +alone +Vertices +: +([-0-9.+eE]+)} [checksection $wire] full num
if { $num != 0 } {
puts [format "Error : $wire is NOT a closed wire"]
}
mkplane res_plane $wire
set chsh_res_plane [checkshape res_plane]
if { [regexp {Faulty +shapes +in +variables +faulty_([-0-9.+eE]+) +to +faulty_([-0-9.+eE]+)} $chsh_res_plane full from_faulty to_faulty ] } {
puts "Shape $wire has self-intersection"
}
}
}
if { [string compare $length "empty"] != 0 } {
puts "The expected length is $length"
#check of change of length is < 1%
if { ($length != 0 && [expr 1.*abs($length - $m)/$length] > 0.01) || ($length == 0 && $m != 0) } {
puts "Error : The length of the resulting shape is $m"
}
} else {
if { $m != 0 } {
puts "Error : The offset is not valid. The length is $m"
}
}
# check for number of vertexes
if { [info exists nbsh_v ] } {
if { ($ll_v != $nbsh_v) || ($nbsh_v == 0 && $ll_v != 0) } {
puts "Error : The resulting shape is WRONG because it must contain $nbsh_v vertexes instead of $ll_v"
} else {
puts "The resulting shape contains $ll_v vertexes"
}
}
# check for number of edges
if { [info exists nbsh_e ] } {
if { ($ll_e != $nbsh_e) || ($nbsh_e == 0 && $ll_e != 0) } {
puts "Error : The resulting shape is WRONG because it must contain $nbsh_e edges instead of $ll_e"
} else {
puts "The resulting shape contains $ll_e edges"
}
}
# check for number of wires
if { [info exists nbsh_w ] } {
if { ($ll_w != $nbsh_w) || ($nbsh_w == 0 && $ll_w != 0) } {
puts "Error : The resulting shape is WRONG because it must contain $nbsh_w wires instead of $ll_w"
} else {
puts "The resulting shape contains $ll_w wires"
}
}
} else {
regexp {Mass +: +([-0-9.+eE]+)} [vprops s] full sm
regexp {Mass +: +([-0-9.+eE]+)} [vprops result] full m
#check if result is valid
puts [checkshape result]
if { $m == 0 || $sm == $m } {
puts "Error : The offset is not valid. The volume is $m."
}
#check of face's square value
foreach ResultFace [ explode result f ] {
regexp {Mass +: +([-0-9.+eE]+)} [sprops $ResultFace] full fmass
if { $fmass < 0 } {
puts "Error : The area of face $ResultFace of the resulting shape is negative."
}
}
#check for bsection
if { [info exists GlobFaces] && [llength $GlobFaces] == 0 } {
puts [ bsection re $result $s ]
if { [ isdraw re ] } {
regexp {Mass +: +([-0-9.+eE]+)} [lprops $re] full remass
if { $remass != 0 } {
puts "Error: bsection of the result and s is not equal to zero."
}
}
}
if { $volume > 0 } {
puts "The expected volume is $volume"
}
#check of change of volume is < 1%
if { ($volume > 0 && [expr 1.*abs($volume - $m)/$volume] > 0.01) || ($volume == 0 && $m != 0 && $sm != $m) } {
puts "Error : The volume of the resulting shape is $m"
}
}
if { $m > 0 } {
clear
smallview
donly result
fit
xwd $imagedir/${test_image}.png
}
} else {
puts "Error : The offset cannot be built."
}
# to end a test script
puts "TEST COMPLETED"
|