0024910: Offset of solid is not created
[occt.git] / tests / bugs / modalg_5 / bug24915
1 puts "========="
2 puts "CR24915"
3 puts "========="
4 puts ""
5 ###############################
6 ## Wrong intersection curves between two cylinders
7 ###############################
8
9 proc checkList {List Tolerance D_good Limit_Tol} {
10    set L1 [llength ${List}]
11    set L2 10
12    set L3 5
13    set N [expr (${L1} - ${L2})/${L3} + 1]
14
15    for {set i 1} {${i} <= ${N}} {incr i} {
16       set j1 [expr ${L2} + (${i}-1)*${L3}]
17       set j2 [expr ${j1} + 2]
18       set T [lindex ${List} ${j1}]
19       set D [lindex ${List} ${j2}]
20       #puts "i=${i} j1=${j1} j2=${j2} T=${T} D=${D}"
21       if { [expr abs(${D} - ${D_good})] > ${Tolerance} } {
22          puts "Error : T=${T} D=${D}"
23       }
24       if { [expr abs(${D} - ${D_good})] > ${Limit_Tol} 
25            && [expr abs(${D} - ${D_good})] <= ${Tolerance} } {
26          puts "Attention (critical value of tolerance) : T=${T} D=${D}"
27       }
28    }
29 }
30
31 puts "##############################"
32 puts "#!!!Searh \"Attention\" keyword on this web-page for additinal checking!!!"
33 puts "##############################"
34
35 restore [locate_data_file bug24915_ft2.brep] b1
36 restore [locate_data_file bug24915_ft3.brep] b2
37
38 # 1. topology
39 bclearobjects
40 bcleartools
41 baddobjects b1 b2
42 bfillds
43 bbuild r
44 checkshape r
45
46 # 2. geometry
47 set MaxTol 1.5e-6
48 set log [bopcurves b1 b2]
49
50 mksurface s1 b1
51 mksurface s2 b2
52
53 regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv
54
55 if {${Toler} > ${MaxTol}} {
56   puts "Error: Tolerance is too big!"
57 }
58
59 for {set i 1} {$i <= ${NbCurv}} {incr i} {
60   set log [dump c_$i]
61   
62   regexp {Degree +([-0-9.+eE]+), +([-0-9.+eE]+) Poles, +([-0-9.+eE]+)} ${log} full Degree Poles KnotsPoles
63   
64   set Knot 1
65   set exp_string "Knots :\n\n +${Knot} :  +(\[-0-9.+eE\]+) +(\[-0-9.+eE\]+)"
66   regexp ${exp_string} ${log} full U1 Mult1
67
68   set Knot ${KnotsPoles}
69   set exp_string " +${Knot} :  +(\[-0-9.+eE\]+) +(\[-0-9.+eE\]+)"
70   regexp ${exp_string} ${log} full U2 Mult2
71   
72   dlog reset
73   dlog on
74   xdistcs c_$i s1 ${U1} ${U2} 100
75   set Log2 [dlog get]
76   set List2 [split ${Log2} {TD= \t\n}]
77   set Tolerance 1.6e-5
78   set Limit_Tol 1.0e-7
79   set D_good 0.
80   catch {checkList ${List2} ${Tolerance} ${D_good} ${Limit_Tol}}
81
82   dlog reset
83   dlog on
84   xdistcs c_$i s2 ${U1} ${U2} 100
85   set Log2 [dlog get]
86   set List2 [split ${Log2} {TD= \t\n}]
87   set Tolerance 1.6e-5
88   set Limit_Tol 1.0e-7
89   set D_good 0.
90   catch {checkList ${List2} ${Tolerance} ${D_good} ${Limit_Tol}}
91 }
92
93 smallview
94 donly b2 c_2
95 fit
96 set only_screen_axo 1