1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-10 18:51:21 +03:00
occt/tests/bugs/modalg_5/bug24915
aml 0cbfb9f151 0021564: Intersection of two planar faces produces curve with too many poles
I ComputePurgedWLine() function:
Excess points in walking line are deleted when:
1) Distance between neighboring points too small.
2) Points lie in one pipe without big jump on chord length.

III
Fixed problem with extremaPC with too close knot distribution to [minParam, maxParam] borders.

IV ApproxInt_Approx.gxx
New division criteria in intersection approximator.

III Test case
Test cases update to the new behavior.
Test case for CR21564

Correction of test cases for issue CR21564
2015-08-13 11:04:48 +03:00

72 lines
1.6 KiB
Plaintext
Executable File

puts "TODO OCC25929 ALL: Error: Tolerance is too big!"
puts "TODO OCC21564 Linux: Error : T=0.464646 D=0.000326627"
puts "TODO OCC21564 Linux: Error : T=0.464646 D=0.00032747"
puts "TODO OCC21564 Windows: Error : T=0.464646 D=0.000326671"
puts "TODO OCC21564 Windows: Error : T=0.464646 D=0.000327516"
puts "========="
puts "CR24915"
puts "========="
puts ""
###############################
## Wrong intersection curves between two cylinders
###############################
puts "##############################"
puts "#!!!Searh \"Attention\" keyword on this web-page for additinal checking!!!"
puts "##############################"
restore [locate_data_file bug24915_ft2.brep] b1
restore [locate_data_file bug24915_ft3.brep] b2
# 1. topology
bclearobjects
bcleartools
baddobjects b1 b2
bfillds
bbuild r
checkshape r
# 2. geometry
set MaxTol 5.0e-7
set log [bopcurves b1 b2]
mksurface s1 b1
mksurface s2 b2
regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv
if {${Toler} > ${MaxTol}} {
puts "Error: Tolerance is too big!"
}
for {set i 1} {$i <= ${NbCurv}} {incr i} {
bounds c_$i U1 U2
dlog reset
dlog on
xdistcs c_$i s1 U1 U2 100
set Log2 [dlog get]
set List2 [split ${Log2} {TD= \t\n}]
set Tolerance 2.0e-5
set Limit_Tol 1.0e-7
set D_good 0.
catch {checkList ${List2} ${Tolerance} ${D_good} ${Limit_Tol}}
dlog reset
dlog on
xdistcs c_$i s2 U1 U2 100
set Log2 [dlog get]
set List2 [split ${Log2} {TD= \t\n}]
set Tolerance 2.0e-5
set Limit_Tol 1.0e-7
set D_good 0.
catch {checkList ${List2} ${Tolerance} ${D_good} ${Limit_Tol}}
}
smallview
donly b2 c_2
fit
set only_screen_axo 1