Part: use BRepTools::OuterWire to get outer wire of a face

In the past ShapeAnalysis::OuterWire() was used that may fail to determine the correct outer wire.

Forum thread: https://forum.freecad.org/viewtopic.php?t=83122
This commit is contained in:
wmayer
2023-11-30 12:09:37 +01:00
committed by wwmayer
parent 9b19b66d90
commit d529193f75

View File

@@ -727,7 +727,7 @@ PyObject* TopoShapeFacePy::validate(PyObject *args)
const TopoDS_Face& face = TopoDS::Face(getTopoShapePtr()->getShape());
BRepCheck_Analyzer aChecker(face);
if (!aChecker.IsValid()) {
TopoDS_Wire outerwire = ShapeAnalysis::OuterWire(face);
TopoDS_Wire outerwire = BRepTools::OuterWire(face);
TopTools_IndexedMapOfShape myMap;
myMap.Add(outerwire);
@@ -1079,7 +1079,7 @@ Py::Object TopoShapeFacePy::getOuterWire() const
if (shape.IsNull())
throw Py::RuntimeError("Null shape");
if (shape.ShapeType() == TopAbs_FACE) {
TopoDS_Wire wire = ShapeAnalysis::OuterWire(TopoDS::Face(shape));
TopoDS_Wire wire = BRepTools::OuterWire(TopoDS::Face(shape));
Base::PyObjectBase* wirepy = new TopoShapeWirePy(new TopoShape(wire));
wirepy->setNotTracking();
return Py::asObject(wirepy);