From 5a96582a48bbdaa4179e2ee73a0dd15c9ef35c9e Mon Sep 17 00:00:00 2001 From: wmayer Date: Sun, 13 Oct 2013 11:07:40 +0200 Subject: [PATCH] 0000768: Part Sweep and Loft limitations and bugs --- src/Mod/Part/App/PartFeatures.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Mod/Part/App/PartFeatures.cpp b/src/Mod/Part/App/PartFeatures.cpp index 82476c494..3e71dae7d 100644 --- a/src/Mod/Part/App/PartFeatures.cpp +++ b/src/Mod/Part/App/PartFeatures.cpp @@ -241,11 +241,12 @@ App::DocumentObjectExecReturn *Loft::execute(void) if (shape.IsNull()) return new App::DocumentObjectExecReturn("Linked shape is invalid."); if (shape.ShapeType() == TopAbs_FACE) { - TopoDS_Wire faceouterWire = ShapeAnalysis::OuterWire(TopoDS::Face(shape)); + TopoDS_Wire faceouterWire = ShapeAnalysis::OuterWire(TopoDS::Face(shape)); profiles.Append(faceouterWire); } else if (shape.ShapeType() == TopAbs_WIRE) { - profiles.Append(shape); + BRepBuilderAPI_MakeWire mkWire(TopoDS::Wire(shape)); + profiles.Append(mkWire.Wire()); } else if (shape.ShapeType() == TopAbs_EDGE) { BRepBuilderAPI_MakeWire mkWire(TopoDS::Edge(shape)); @@ -357,7 +358,7 @@ App::DocumentObjectExecReturn *Sweep::execute(void) // If we re-create the wire then everything works fine. // https://sourceforge.net/apps/phpbb/free-cad/viewtopic.php?f=10&t=2673&sid=fbcd2ff4589f0b2f79ed899b0b990648#p20268 if (shape.ShapeType() == TopAbs_FACE) { - TopoDS_Wire faceouterWire = ShapeAnalysis::OuterWire(TopoDS::Face(shape)); + TopoDS_Wire faceouterWire = ShapeAnalysis::OuterWire(TopoDS::Face(shape)); profiles.Append(faceouterWire); } else if (shape.ShapeType() == TopAbs_WIRE) {