3bea4c16 |
1 | puts "============" |
2 | puts "OCC16119" |
3 | puts "============" |
4 | puts "" |
5 | ####################################################################### |
6 | # Bug in GeomFill_Coons algorithm |
7 | ####################################################################### |
8 | |
9 | set BugNumber OCC16119 |
10 | |
11 | proc GetPercent {Value GoodValue} { |
12 | set Percent 0. |
13 | if {${GoodValue} != 0.} { |
14 | set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.] |
15 | } elseif {${Value} != 0.} { |
16 | set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.] |
17 | } else { |
18 | set Percent 0. |
19 | } |
20 | return ${Percent} |
21 | } |
22 | |
23 | restore [locate_data_file OCC16119-c1.draw] c1 |
24 | restore [locate_data_file OCC16119-c2.draw] c2 |
25 | restore [locate_data_file OCC16119-c31.draw] c31 |
26 | restore [locate_data_file OCC16119-c32.draw] c32 |
27 | restore [locate_data_file OCC16119-c41.draw] c41 |
28 | restore [locate_data_file OCC16119-c42.draw] c42 |
29 | restore [locate_data_file OCC16119-cv.draw] cv |
30 | |
31 | fillcurves s11 c1 c41 cv c31 |
32 | fillcurves s12 cv c42 c2 c32 |
33 | |
34 | svalue s11 .5 .5 x1 y1 z1 dux1 duy1 duz1 dvx1 dvy1 dvz1 |
35 | svalue s12 .5 .5 x2 y2 z2 dux2 duy2 duz2 dvx2 dvy2 dvz2 |
36 | |
37 | set deltaX [dval dvx1-dvx2] |
38 | set deltaY [dval dvy1-dvy2] |
39 | set deltaZ [dval dvz1-dvz2] |
40 | |
41 | set percent_max 0.1 |
42 | set good_deltaX 4.4408920985006262e-015 |
43 | set good_deltaY -4.6629367034256575e-015 |
44 | set good_deltaZ -2.6645352591003757e-015 |
45 | |
46 | set deltaX_percent [GetPercent ${deltaX} ${good_deltaX}] |
47 | puts "deltaX_percent = ${deltaX_percent}" |
48 | |
49 | set deltaY_percent [GetPercent ${deltaY} ${good_deltaY}] |
50 | puts "deltaY_percent = ${deltaY_percent}" |
51 | |
52 | set deltaZ_percent [GetPercent ${deltaZ} ${good_deltaZ}] |
53 | puts "deltaZ_percent = ${deltaZ_percent}" |
54 | |
55 | if {${deltaX_percent} > ${percent_max} || ${deltaY_percent} > ${percent_max} || ${deltaZ_percent} > ${percent_max} } { |
56 | puts "${BugNumber}: Faulty" |
57 | } else { |
58 | puts "${BugNumber}: OK" |
59 | } |
60 | |