From 2fe71c547a81780f3d400227da2e996dd65994d8 Mon Sep 17 00:00:00 2001 From: ifv Date: Thu, 20 Jul 2017 10:13:12 +0300 Subject: [PATCH] 0028909: Algorithm of BO is stuck while fusing shell and edges Tolerance used for projection curve on surface is increased for large edge tolerances --- src/BOPTools/BOPTools_AlgoTools2D.cxx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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()) { -- 2.39.5