From 1c1e7a4eb56e24bcdf4677f90fd401f2aaa1a7fd Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Mon, 3 Mar 2014 13:47:29 -0300 Subject: [PATCH] Draft: minor fix in Offset --- src/Mod/Draft/Draft.py | 14 ++++++++++---- src/Mod/Draft/DraftTools.py | 1 + 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/Mod/Draft/Draft.py b/src/Mod/Draft/Draft.py index 6957616cf9..3ed2b5e63b 100644 --- a/src/Mod/Draft/Draft.py +++ b/src/Mod/Draft/Draft.py @@ -1434,6 +1434,7 @@ def offset(obj,delta,copy=False,bind=False,sym=False,occ=False): else: newobj = Part.Face(obj.Shape.Wires[0]) elif copy: + newobj = None if sym: return None if getType(obj) == "Wire": newobj = makeWire(p) @@ -1453,13 +1454,18 @@ def offset(obj,delta,copy=False,bind=False,sym=False,occ=False): newobj.Radius = getRadius(obj,delta) newobj.DrawMode = obj.DrawMode newobj.Placement = pl - elif getType(obj) == "Part": - newobj = makeWire(p) - newobj.Closed = obj.Shape.isClosed() elif getType(obj) == "BSpline": newobj = makeBSpline(delta) newobj.Closed = obj.Closed - formatObject(newobj,obj) + else: + # try to offset anyway + try: + newobj = makeWire(p) + newobj.Closed = obj.Shape.isClosed() + except: + pass + if newobj: + formatObject(newobj,obj) else: if sym: return None if getType(obj) == "Wire": diff --git a/src/Mod/Draft/DraftTools.py b/src/Mod/Draft/DraftTools.py index e9a72192e6..c6fb9dd85d 100644 --- a/src/Mod/Draft/DraftTools.py +++ b/src/Mod/Draft/DraftTools.py @@ -3945,6 +3945,7 @@ class Draft2Sketch(Modifier): if (len(obj.Shape.Wires) == 1) or (len(obj.Shape.Edges) == 1): Draft.makeSketch(obj,autoconstraints=False) FreeCAD.ActiveDocument.commitTransaction() + FreeCAD.ActiveDocument.recompute() self.finish()