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
|
puts "============"
puts "OCC22967"
puts "============"
puts ""
############################################################################################################
# Boolean operations between two cylinders with orthogonal axis generate a shape with big vertex tolerance
###########################################################################################################
set BugNumber OCC22967
set check_value 3.46945e-006
restore [locate_data_file bug22967_Cylinder_1.brep] b1
restore [locate_data_file bug22967_Scale_1.brep] b2
bop b1 b2
bopfuse result
set info [ maxtolerance result ]
regexp {Edge[ \t]*:.*Max[ \t]*([-0-9.+eE]+)} $info full last1
regexp {Vertex[ \t]*:.*Max[ \t]*([-0-9.+eE]+)} $info full last
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}
}
set percent_max 5
set status 0
set Tolerance_percent [expr abs ( [GetPercent ${last} ${check_value}] ) ]
if {${Tolerance_percent} > ${percent_max}} {
set status 1
} else {
set status 0
}
set Tolerance_percent [expr abs ( [GetPercent ${last1} ${check_value}] ) ]
if {${Tolerance_percent} > ${percent_max}} {
set status 1
} else {
set status 0
}
# Resume
if {${status} > 0} {
puts "${BugNumber}: Faulty"
} else {
puts "OK ${BugNumber}"
}
set square 669221
set 2dviewer 0
|