1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-04 13:13:25 +03:00

0031470: Modeling Algorithms - Regression: BOP common produces empty result (box and holed sphere)

Approx_ComputeCLine.gxx : number of possible cuttings is increased, tolerance in U parameter is reduced.
This commit is contained in:
jgv 2020-03-30 21:18:47 +03:00 committed by rnv
parent b3f078f474
commit b90477afe3
2 changed files with 38 additions and 2 deletions

View File

@ -97,12 +97,12 @@ void Approx_ComputeCLine::Perform(const MultiLine& Line)
Standard_Real thetol3d = Precision::Confusion(), thetol2d = Precision::Confusion();
UFirst = Line.FirstParameter();
ULast = Line.LastParameter();
Standard_Real TolU = Max((ULast - UFirst)*1.e-03, Precision::Confusion());
Standard_Real TolU = Max((ULast-UFirst)*1.e-05, Precision::PApproximation());
Standard_Real myfirstU = UFirst;
Standard_Real mylastU = ULast;
Standard_Integer aMaxSegments = 0;
Standard_Integer aMaxSegments1 = myMaxSegments - 1;
Standard_Integer aNbCut = 0, aNbImp = 0, aNbComp = 10;
Standard_Integer aNbCut = 0, aNbImp = 0, aNbComp = 20;
if (!mycut)
{

View File

@ -0,0 +1,36 @@
puts "================================================================="
puts "OCC31470: BOP common produces empty result (box and holed sphere)"
puts "================================================================="
puts ""
plane pln1 51.899912462 99.996691888 62.33204004
psphere s1 pln1 15
psphere s2 pln1 10
bcut ss s1 s2
box bb 100 100 100
bcommon result bb ss
savehistory hh
explode ss f
modified ff hh ss_1
generated ee hh ss_1
checkshape result
checknbshapes result -solid 1 -shell 1 -face 3 -wire 6 -edge 8 -vertex 6
set tolres [checkmaxtol result]
if { ${tolres} > 2.e-7} {
puts "Error: bad tolerance of result"
}
checkprops result -v 4975.49
v2d
pcurve pc ee ff
trim pc pc
2dfit
checkview -screenshot -2d -path ${imagedir}/${test_image}.png