]> OCCT Git - occt-copy.git/commitdiff
0030781: Sweep algorithm creates non-planar edges (orig. BOPAlgo_MakerVolume fails... CR30781
authoragv <agv@opencascade.com>
Thu, 4 Jul 2019 15:51:21 +0000 (18:51 +0300)
committeragv <agv@opencascade.com>
Thu, 4 Jul 2019 15:51:21 +0000 (18:51 +0300)
Increase the angular tolerance in BRepFill_AdvancedEvolved::GetLids(), this allows to complete the construction of solid.

src/BRepFill/BRepFill_AdvancedEvolved.cxx

index d28adfe2f01a3ee354e322eed008e50384e2f202..175fc4ccb11dca104624a4b0a30bdf3c0f925fac 100644 (file)
 #include <math_Vector.hxx>
 #include <BRepAdaptor_Surface.hxx>
 #include <BRepTools_WireExplorer.hxx>
-#include <BRepTools.hxx>
-#include <BRepTopAdaptor_FClass2d.hxx>
-#include <BOPAlgo_BuilderFace.hxx>
 #include <BOPAlgo_BuilderFace.hxx>
 #include <Geom2d_Line.hxx>
-#include <BRepBuilderAPI_Copy.hxx>
-#include <math_GlobOptMin.hxx>
 #include <Geom_ConicalSurface.hxx>
 #include <Extrema_ExtPC.hxx>
 #include <BOPDS_DS.hxx>
-#include <BRepLib.hxx>
 #include <BRepExtrema_DistShapeShape.hxx>
 #include <BRepLib_MakeFace.hxx>
 #include <ShapeFix_Shape.hxx>
 #include <BRepClass_FaceClassifier.hxx>
-#include <BRepGProp_Face.hxx>
 #include <BRep_ListIteratorOfListOfCurveRepresentation.hxx>
 #include <BRep_TEdge.hxx>
 #include <ShapeUpgrade_UnifySameDomain.hxx>
 
 #ifdef BRepFill_AdvancedEvolved_DEBUG
 #include <BinTools.hxx>
+#include <BRepTools.hxx>
 #endif
 
 
@@ -542,7 +536,7 @@ void BRepFill_AdvancedEvolved::GetLids()
 
   //Square of the default angular tolerance in
   //BOPAlgo_Tools::EdgesToWires(...) and BOPAlgo_Tools::WiresToFaces(...) methods
-  const Standard_Real aSqAnguarTol = 1.0e-16;
+  const Standard_Real aSqAnguarTol = 1.0e-11;
   const gp_Dir &aNormal = aSurf->Position().Direction();
 
   // Obtain free-edges from myPipeShell. All edges must be planar
@@ -610,8 +604,8 @@ void BRepFill_AdvancedEvolved::GetLids()
   aBB.MakeCompound(aCompW);
   aBB.MakeCompound(aCompF);
   aBB.MakeCompound(myTopBottom);
-  BOPAlgo_Tools::EdgesToWires(aFreeEdges, aCompW, Standard_True);
-  BOPAlgo_Tools::WiresToFaces(aCompW, aCompF);
+  BOPAlgo_Tools::EdgesToWires(aFreeEdges, aCompW, Standard_True, 3e-6);
+  BOPAlgo_Tools::WiresToFaces(aCompW, aCompF, 3e-6);
 
   {
     // Check orientation