From: ifv Date: Thu, 20 Jul 2017 07:13:12 +0000 (+0300) Subject: 0028909: Algorithm of BO is stuck while fusing shell and edges X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=2fe71c547a81780f3d400227da2e996dd65994d8;p=occt-copy.git 0028909: Algorithm of BO is stuck while fusing shell and edges Tolerance used for projection curve on surface is increased for large edge tolerances --- diff --git a/src/BOPTools/BOPTools_AlgoTools2D.cxx b/src/BOPTools/BOPTools_AlgoTools2D.cxx index 90bd350ddf..bdef984b15 100644 --- a/src/BOPTools/BOPTools_AlgoTools2D.cxx +++ b/src/BOPTools/BOPTools_AlgoTools2D.cxx @@ -640,9 +640,14 @@ void BOPTools_AlgoTools2D::MakePCurveOnFace aTolR = aProj1.GetTolerance(); } else { - ProjLib_ProjectedCurve aProjCurv(aBAHS, aBAHC);// 1 + Standard_Real aTR = Precision::Confusion();//1.e-7; + if (TolReached2d > aTR) { + aTR = Min(0.0001, Max(.01 * TolReached2d, aTR)); + } + + ProjLib_ProjectedCurve aProjCurv(aBAHS, aBAHC, aTR);// 1 BOPTools_AlgoTools2D::MakePCurveOfType(aProjCurv, aC2D); - aTolR=aProjCurv.GetTolerance(); + aTolR = aProjCurv.GetTolerance(); } // if (aC2D.IsNull()) {