diff --git a/src/ShapeFix/ShapeFix_Face.cxx b/src/ShapeFix/ShapeFix_Face.cxx index 9ebadf5504..c29d76170d 100644 --- a/src/ShapeFix/ShapeFix_Face.cxx +++ b/src/ShapeFix/ShapeFix_Face.cxx @@ -1707,6 +1707,11 @@ Standard_Boolean ShapeFix_Face::FixMissingSeam() else if ( wire.IsSame ( w2 ) ) wire = w21; else { + Handle(ShapeAnalysis_Wire) anAnalyzer = new ShapeAnalysis_Wire(wire, myFace, Precision()); + //To avoid addition of holes with null area (OCCT issue 0030250) + if (anAnalyzer->CheckSmallArea(wire)) + continue; + // other wires (not boundary) are considered as holes; make sure to have them oriented accordingly TopoDS_Shape curface = tmpF.EmptyCopied(); B.Add(curface,wire);