b0700466 |
1 | puts "========" |
2 | puts "OCC28054" |
3 | puts "========" |
4 | puts "" |
5 | ################################################# |
6 | # Regression: Class BRepProj_Projection gives invalid result after |
7 | # projection edge based on the line on the conical surface |
8 | ################################################# |
9 | |
10 | set Tol 1.0e-7 |
11 | |
12 | dsetsignal 1 |
13 | |
14 | cone c 0 0 0 45 0 |
15 | trimv c1 c 5 10 |
16 | trimv c2 c -10 -5 |
17 | mkface f1 c1 |
18 | mkface f2 c2 |
19 | line l1 0 0 0 1 0 1 |
20 | line l2 0 0 0 0 -1 -1 |
21 | trim l1 l1 -100 100 |
22 | trim l2 l2 -100 100 |
23 | mkedge e1 l1 |
24 | mkedge e2 l2 |
25 | |
26 | # Rotate f1 around e1 by the angle 32 degree |
27 | copy f1 f3 |
28 | rotate f3 7 0 7 1 0 1 32 |
29 | |
30 | # Rotate f2 around e2 by the angle 81 degree |
31 | copy f2 f4 |
32 | rotate f4 0 -6 -6 0 -1 -1 81 |
33 | |
34 | for { set i 1 } { $i <= 2 } { incr i } { |
35 | for { set j 1 } { $j <= 4 } { incr j } { |
36 | if { $i == 1 && $j == 4 } continue; |
37 | if { $i == 2 && $j == 3 } continue; |
38 | |
39 | puts "" |
40 | puts "Check e${i} and f${j}" |
41 | |
42 | set ProjList [prj r e${i} f${j} 0 0 1] |
43 | if { [llength $ProjList] < 1 } { |
44 | puts "Error: no projections are found" |
45 | } |
46 | |
47 | foreach wir $ProjList { |
48 | set EdgeList [explode $wir e] |
49 | foreach ed $EdgeList { |
50 | set dist 1.0e+100 |
51 | regexp {Max Distance = +([-0-9.+eE]+)} [xdistef $ed f${j}] full dist |
52 | if { $dist > $Tol } { |
53 | puts "Error in projection. 3D and 2D curves of edge $ed are not same-parameter" |
54 | } else { |
55 | puts "OK: Max Distance is less than $Tol" |
56 | } |
57 | } |
58 | } |
59 | } |
60 | } |