0024585: Wrong pcurve of the section curve
[occt.git] / tests / bugs / modalg_5 / bug24585_1
1 puts "========="
2 puts "OCC24585"
3 puts "========="
4 puts ""
5 ###########################################################
6 # Wrong pcurve of the section curve
7 ###########################################################
8 set MaxTol 1.0e-7
9 set NbCurv_OK 1
10
11 restore [locate_data_file bug24585_b1.brep] b1
12 restore [locate_data_file bug24585_b2.brep] b2
13
14 mksurface s1 b1
15 bounds s1 U1f_exp U1l_exp V1f_exp V1l_exp
16
17 set log [bopcurves b1 b2 -2d]
18
19 regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv
20
21 if {${NbCurv} != ${NbCurv_OK}} {
22   puts "Error: ${NbCurv_OK} curve(s) expected, but ${NbCurv} found."
23 }
24
25 if {${Toler} > ${MaxTol}} {
26   puts "Error: Tolerance is too big!"
27 }
28
29 #Theoretically, c2d1_1 must cover U-diapason of surface s1 fully.
30
31 set log [dump c2d1_1]
32
33 regexp {Degree +([-0-9.+eE]+), +([-0-9.+eE]+) Poles, +([-0-9.+eE]+)} ${log} full Degree Poles KnotsPoles
34 puts "Degree=${Degree}"
35 puts "Poles=${Poles}"
36 puts "KnotsPoles=${KnotsPoles}"
37 puts ""
38
39 set Pole 1
40 set exp_string " +${Pole} : +(\[-0-9.+eE\]+), +(\[-0-9.+eE\]+)"
41 regexp ${exp_string} ${log} full U_begin V_begin
42
43 puts "Pole=${Pole}"
44 puts "U_begin=${U_begin}"
45 puts "V_begin=${V_begin}"
46 dset U_begin ${U_begin}
47 puts ""
48
49 set Pole ${Poles}
50 set exp_string " +${Pole} : +(\[-0-9.+eE\]+), +(\[-0-9.+eE\]+)"
51 regexp ${exp_string} ${log} full U_end V_end
52
53 puts "Pole=${Pole}"
54 puts "U_end=${U_end}"
55 puts "V_end=${V_end}"
56 dset U_end ${U_end}
57 puts ""
58
59 set delta_f [dval U1f_exp-U_begin]
60
61 #ATTENTION!!! U_begin must be strictly equal U1f_exp (without any tolerance)
62 if {${delta_f} != 0} {
63   puts "Error: Bad value. U_begin = [dval U_begin], Ufirst = [dval U1f_exp]."
64 } else {
65   puts "OK: Good value. U_begin matches with Ufirst of surface."
66 }
67
68 puts ""
69
70 set delta_l [dval U1l_exp-U_end]
71
72 #ATTENTION!!! U_end must be strictly equal U1l_exp (without any tolerance)
73 if {${delta_l} != 0} {
74   puts "Error: Bad value. U_end = [dval U_end], Ulast = [dval U1l_exp]."
75 } else {
76   puts "OK: Good value. U_end matches with Ulast of surface."
77 }