From 00b4c9e192c89000520860c3a72455e9900bdcd4 Mon Sep 17 00:00:00 2001 From: wmayer Date: Tue, 19 Feb 2013 15:17:24 +0100 Subject: [PATCH] Fix for sweep if selected trajectory is broken --- src/Mod/Part/App/PartFeatures.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Mod/Part/App/PartFeatures.cpp b/src/Mod/Part/App/PartFeatures.cpp index 61a18aec0..5cf9e9839 100644 --- a/src/Mod/Part/App/PartFeatures.cpp +++ b/src/Mod/Part/App/PartFeatures.cpp @@ -259,12 +259,16 @@ App::DocumentObjectExecReturn *Sweep::execute(void) path = mkWire.Wire(); } catch (Standard_Failure) { - if (shape._Shape.ShapeType() == TopAbs_EDGE) + if (shape._Shape.ShapeType() == TopAbs_EDGE) { path = shape._Shape; - else if (shape._Shape.ShapeType() == TopAbs_WIRE) - path = shape._Shape; - else + } + else if (shape._Shape.ShapeType() == TopAbs_WIRE) { + BRepBuilderAPI_MakeWire mkWire(TopoDS::Wire(shape._Shape)); + path = mkWire.Wire(); + } + else { return new App::DocumentObjectExecReturn("Spine is neither an edge nor a wire."); + } } }