1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-29 14:00:49 +03:00

0026841: Boolean operation "bsection" produce invalid result on the attached cases

1. Intersection curve was not bounded by faces domain. It was the reason of big edge tolerance. This problem has been fixed.
2. Interface bopcurves DRAW-command has been changed in order to make possible to reproduce intersection problem.

Creation of test case for this issue.
This commit is contained in:
nbv
2015-12-11 17:53:43 +03:00
committed by bugmaster
parent c9e1d810ab
commit 47e3009da9
6 changed files with 172 additions and 15 deletions

View File

@@ -1,8 +1,47 @@
puts "TODO #OCC26777 ALL: Error : The length of result shape is"
restore [locate_data_file GEN758_nofog.rle] a
explode a
explode a f
# see issue #26777
set GoodNbCurv 1
set log [bopcurves a_1 a_2 -2d -p 0.20639206339545224 0.69260832843385300 0.0 0.017002507022347624]
regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Tolerance_Reached NbCurv
set expected_Tolerance_Reached 2.2797192759881918e-005
set tol_abs_Tolerance_Reached 0.0
set tol_rel_Tolerance_Reached 1.0e-2
checkreal "Tolerance Reached" ${Tolerance_Reached} ${expected_Tolerance_Reached} ${tol_abs_Tolerance_Reached} ${tol_rel_Tolerance_Reached}
if {${NbCurv} != ${GoodNbCurv}} {
puts "Error: ${GoodNbCurv} curves are expected but ${NbCurv} are found!"
}
smallview
clear
if {${NbCurv} == 1} {
display c_1
fit
} else {
for { set i 1 } { ${i} <= ${NbCurv} } {incr i} {
bounds c_$i u1 u2
cvalue c_$i u2 xx yy zz
point p$i xx yy zz
}
fit
for { set i 1 } { ${i} <= ${NbCurv} } {incr i} {
erase p$i
display c_$i
}
}
xwd ${imagedir}/${casename}_curv.png
donly a_1 a_2
bsection result a_1 a_2
checkprops result -l 22.2575
checksection result
checksection result