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
|
puts "======="
puts "OCC901"
puts "OCC884"
puts "======="
puts ""
###########################################
## ShapeFix_Wire::FixSelfIntersection does not remove all loops
############################################
pload QAcommands
restore [locate_data_file OCC884.brep] a
OCC884 result a 1.1 1.1
explode result e
mkplane p result
pcurve c2d result_1 p
mkcurve c3d result_1
set list_3 [length $c3d]
set list_4 [length $c2d]
# len2 is the length of 3d curve
regexp {The length c3d is +([-0-9.+eE]+)} $list_3 full len2
# len1 is the length of 2d curve
regexp {The length c2d is +([-0-9.+eE]+)} $list_4 full len1
set percent_max 0.1
set percent1 [expr abs(${len2} - ${len1}) / double(${len1}) * 100.]
set len3 1.55056
set percent2 [expr abs(${len2} - ${len3}) / double(${len3}) * 100.]
puts "len1 = ${len1}"
puts "len2 = ${len2}"
puts "percent1 = ${percent1}"
puts "percent2 = ${percent2}"
set status 0
if {${percent1} > ${percent_max}} {
puts "OCC901: Error (case 1)"
set status 1
}
if {${percent2} > ${percent_max}} {
puts "OCC901: Error (case 2)"
set status 1
}
if {${status} == 0} {
puts "OCC901: OK"
}
set 2dviewer 0
|