From: skv Date: Thu, 24 Dec 2015 07:30:49 +0000 (+0300) Subject: 0022870: EDF 10111 GEOM: MakePipe of a wire along an edge fails. X-Git-Tag: V7_8_0a1~6^2~4 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=c389c09498e5046628be5d9c16413bad71fab6f5;p=modules%2Fgeom.git 0022870: EDF 10111 GEOM: MakePipe of a wire along an edge fails. --- diff --git a/src/GEOMImpl/GEOMImpl_PipeDriver.cxx b/src/GEOMImpl/GEOMImpl_PipeDriver.cxx index cf660675f..ef5b07e79 100644 --- a/src/GEOMImpl/GEOMImpl_PipeDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_PipeDriver.cxx @@ -108,6 +108,8 @@ #define GROUP_SIDE2 3 #define GROUP_OTHER 4 +static const Standard_Real TolPipeSurf = 5.e-4; + static bool FillGroups(const TopTools_SequenceOfShape *theGroups, const TopTools_IndexedMapOfShape &theIndices, Handle(TColStd_HArray1OfInteger) *theGroupIds); @@ -182,7 +184,8 @@ static Standard_Boolean BuildPipeShell(BRepOffsetAPI_MakePipeShell &theBuilder) Standard_Boolean isDone = theBuilder.IsDone(); - if (!isDone) { + if (!isDone || + theBuilder.ErrorOnSurface() > TolPipeSurf) { // Try to use Descrete Trihedron mode. theBuilder.SetDiscreteMode(); theBuilder.Build(); @@ -3124,7 +3127,7 @@ Standard_Integer GEOMImpl_PipeDriver::Execute (TFunction_Logbook& log) const GeomFill_Trihedron theBestMode = EvaluateBestSweepMode(aWirePath); BRepOffsetAPI_MakePipe aMkPipe(aWirePath, aShapeBase, theBestMode); - if (aMkPipe.IsDone()) { + if (aMkPipe.IsDone() && aMkPipe.ErrorOnSurface() <= TolPipeSurf) { aShape = aMkPipe.Shape(); if (!CreateGroups(aShapeBase, aWirePath, aMkPipe, aCI)) {