0025982: Wrong result obtained by General Fuse operator.
[occt.git] / tests / bugs / modalg_5 / bug24650
1 puts "==========="
2 puts "OCC24650"
3 puts "==========="
4 puts ""
5 ##############################################################
6 # Wrong intersection curves obtained for a surface of revolution and a plane.
7 ##############################################################
8
9 set GoodNbCurv 1
10
11 restore [locate_data_file bug24650_fz1365.brep] b1
12 restore [locate_data_file bug24650_fz2495.brep] b2
13
14 mksurface sb1 b1
15 mksurface sb2 b2
16 trimu sb1tu sb1 0.242 0.291
17
18 clear
19
20 set N [intersect res sb1tu sb2]
21
22 set che [whatis res]
23 set ind [string first "3d curve" $che]
24 if {${ind} >= 0} {
25   #Only variable "res" exists
26   renamevar res res_1
27 }
28
29
30 set ic 1
31 set AllowRepeate 1
32 while { $AllowRepeate != 0 } {
33   set che [whatis res_$ic]
34   set ind [string first "3d curve" $che]
35   if {${ind} < 0} {
36     set AllowRepeate 0
37   } else {
38     display res_$ic
39     
40     bounds res_$ic U1 U2
41     
42     dval U1
43     dval U2
44     
45     if {[dval U2-U1] < 1.0e-20} {
46       puts "Error: Wrong curve's range!"
47     }
48     
49     dlog reset
50     dlog on
51     xdistcs res_$ic sb1tu U1 U2 10
52     set Log1 [dlog get]
53     set List1 [split ${Log1} {TD= \t\n}]
54     set Tolerance 1.0e-7
55     set Limit_Tol 1.0e-7
56     set D_good 0.
57     checkList ${List1} ${Tolerance} ${D_good} ${Limit_Tol}
58     
59     dlog reset
60     dlog on
61     xdistcs res_$ic sb2 U1 U2 10
62     set Log1 [dlog get]
63     set List1 [split ${Log1} {TD= \t\n}]
64     set Tolerance 1.0e-7
65     set Limit_Tol 1.0e-7
66     set D_good 0.
67     checkList ${List1} ${Tolerance} ${D_good} ${Limit_Tol}
68     
69     incr ic
70   }
71 }
72
73 if {[expr {$ic - 1}] == $GoodNbCurv} {
74   puts "OK: Curve Number is good!"
75 } else {
76   puts "Error: Curve Number is bad!"
77 }
78
79 smallview
80 fit
81 set only_screen_axo 1