From 09f8453b5cee2a1786028576d25e01b06f0d3ed8 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Mon, 19 Mar 2012 15:14:27 -0300 Subject: [PATCH] Small fix to DraftSnap to work with walls containing walls --- src/Mod/Draft/DraftSnap.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/Mod/Draft/DraftSnap.py b/src/Mod/Draft/DraftSnap.py index e14269901..3141d091c 100644 --- a/src/Mod/Draft/DraftSnap.py +++ b/src/Mod/Draft/DraftSnap.py @@ -215,13 +215,17 @@ class Snapper: comp = info['Component'] if (Draft.getType(obj) == "Wall") and not oldActive: - if obj.Base: - for edge in obj.Base.Shape.Edges: - snaps.extend(self.snapToEndpoints(edge)) - snaps.extend(self.snapToMidpoint(edge)) - snaps.extend(self.snapToPerpendicular(edge,lastpoint)) - snaps.extend(self.snapToIntersection(edge)) - snaps.extend(self.snapToElines(edge,eline)) + edges = [] + for o in [obj]+obj.Additions: + if Draft.getType(o) == "Wall": + if o.Base: + edges.extend(o.Base.Shape.Edges) + for edge in edges: + snaps.extend(self.snapToEndpoints(edge)) + snaps.extend(self.snapToMidpoint(edge)) + snaps.extend(self.snapToPerpendicular(edge,lastpoint)) + snaps.extend(self.snapToIntersection(edge)) + snaps.extend(self.snapToElines(edge,eline)) elif obj.isDerivedFrom("Part::Feature"): if (not self.maxEdges) or (len(obj.Edges) <= self.maxEdges):