5 ###############################
6 ## Wrong intersection curves between two cylinders
7 ###############################
9 proc checkList {List Tolerance D_good Limit_Tol} {
10 set L1 [llength ${List}]
13 set N [expr (${L1} - ${L2})/${L3} + 1]
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}"
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}"
31 puts "##############################"
32 puts "#!!!Searh \"Attention\" keyword on this web-page for additinal checking!!!"
33 puts "##############################"
35 restore [locate_data_file bug24915_ft2.brep] b1
36 restore [locate_data_file bug24915_ft3.brep] b2
48 set log [bopcurves b1 b2]
53 regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv
55 if {${Toler} > ${MaxTol}} {
56 puts "Error: Tolerance is too big!"
59 for {set i 1} {$i <= ${NbCurv}} {incr i} {
62 regexp {Degree +([-0-9.+eE]+), +([-0-9.+eE]+) Poles, +([-0-9.+eE]+)} ${log} full Degree Poles KnotsPoles
65 set exp_string "Knots :\n\n +${Knot} : +(\[-0-9.+eE\]+) +(\[-0-9.+eE\]+)"
66 regexp ${exp_string} ${log} full U1 Mult1
68 set Knot ${KnotsPoles}
69 set exp_string " +${Knot} : +(\[-0-9.+eE\]+) +(\[-0-9.+eE\]+)"
70 regexp ${exp_string} ${log} full U2 Mult2
74 xdistcs c_$i s1 ${U1} ${U2} 100
76 set List2 [split ${Log2} {TD= \t\n}]
80 catch {checkList ${List2} ${Tolerance} ${D_good} ${Limit_Tol}}
84 xdistcs c_$i s2 ${U1} ${U2} 100
86 set List2 [split ${Log2} {TD= \t\n}]
90 catch {checkList ${List2} ${Tolerance} ${D_good} ${Limit_Tol}}