From 503c4d00c044ccebf199fbfc697772e0ef991e54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Tr=C3=B6ger?= Date: Sat, 10 Dec 2016 08:44:09 +0100 Subject: [PATCH] Draft: Fix clone of art object --- src/Mod/Draft/Draft.py | 3 ++- src/Mod/Draft/TestDraft.py | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Mod/Draft/Draft.py b/src/Mod/Draft/Draft.py index f22252bf7d..efdb817a8b 100644 --- a/src/Mod/Draft/Draft.py +++ b/src/Mod/Draft/Draft.py @@ -2712,7 +2712,8 @@ def clone(obj,delta=None): pass return cl else: - cl = FreeCAD.ActiveDocument.addObject("Part::AttachableObjectPython","Clone") + cl = FreeCAD.ActiveDocument.addObject("Part::FeaturePython","Clone") + cl.addExtension("Part::AttachExtensionPython", None) cl.Label = prefix + obj[0].Label _Clone(cl) if gui: diff --git a/src/Mod/Draft/TestDraft.py b/src/Mod/Draft/TestDraft.py index 6c2f613bcf..c2489a0d66 100644 --- a/src/Mod/Draft/TestDraft.py +++ b/src/Mod/Draft/TestDraft.py @@ -132,6 +132,12 @@ class DraftTest(unittest.TestCase): r2 = Draft.offset(r,FreeCAD.Vector(-1,-1,0),copy=True) self.failUnless(r2,"Draft Offset failed") + def testCloneOfPart(self): + #test for a bug introduced by changes attachment code + box = FreeCAD.ActiveDocument.addObject("Part::Box", "Box") + clone = Draft.clone(box) + self.failUnless(clone.hasExtension("Part::AttachExtension")) + # modification tools def tearDown(self):