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
|
puts "============"
puts "OCC23201"
puts "============"
puts ""
#######################################################################
# Projection algorithm produces wrong results.
#######################################################################
set BugNumber OCC23201
proc GetPercent {Value GoodValue} {
set Percent 0.
if {${GoodValue} != 0.} {
set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
} elseif {${Value} != 0.} {
set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
} else {
set Percent 0.
}
return ${Percent}
}
restore [locate_data_file bug23201_Tool_1.brep] b2
restore [locate_data_file bug23201_Tool_2.brep] b3
explode b2 f
mksurface s2 b2_1
explode b3 f
mksurface s3 b3_1
explode b2 e
mkcurve c2 b2_2
explode b3 e
mkcurve c3 b3_2
set BugStatus 0
set percent_max 0.1
set good_c23 3.1415926535897922
set good_c32 3.1415926535897922
if [catch { project c23 c2 s3 } ] {
set BugStatus 1
} else {
set c23_length [lindex [length c23] end]
set length_percent [GetPercent ${c23_length} ${good_c23}]
puts "length_percent = ${length_percent}"
if {${length_percent} > ${percent_max}} {
puts "c23: Faulty"
set BugStatus 1
} else {
puts "c23: OK"
}
}
if [catch { project c32 c3 s2 } ] {
set BugStatus 1
} else {
set c32_length [lindex [length c32] end]
set length_percent [GetPercent ${c32_length} ${good_c32}]
puts "length_percent = ${length_percent}"
if {${length_percent} > ${percent_max}} {
puts "c32: Faulty"
set BugStatus 1
} else {
puts "c32: OK"
}
}
# Resume
puts ""
if { ${BugStatus} != 0 } {
puts "Faulty ${BugNumber}"
} else {
puts "OK ${BugNumber}"
}
|