From a6563fb03a2361a2f45193458665682eaf9cb390 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Wed, 3 Dec 2014 11:16:08 -0200 Subject: [PATCH] Draft: Fixed polygon center snap --- src/Mod/Draft/DraftSnap.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/Mod/Draft/DraftSnap.py b/src/Mod/Draft/DraftSnap.py index 37d47761c..9e1a47739 100644 --- a/src/Mod/Draft/DraftSnap.py +++ b/src/Mod/Draft/DraftSnap.py @@ -292,7 +292,9 @@ class Snapper: snaps.append([b,'endpoint',self.toWP(b)]) elif obj.isDerivedFrom("Part::Feature"): + if Draft.getType(obj) == "Polygon": + # special snapping for polygons: add the center snaps.extend(self.snapToPolygon(obj)) if (not self.maxEdges) or (len(obj.Edges) <= self.maxEdges): @@ -768,14 +770,15 @@ class Snapper: def snapToPolygon(self,obj): "returns a list of polygon center snap locations" snaps = [] - c = obj.Placement.Base - for edge in obj.Shape.Edges: - p1 = edge.Vertexes[0].Point - p2 = edge.Vertexes[-1].Point - v1 = p1.add((p2-p1).scale(.25,.25,.25)) - v2 = p1.add((p2-p1).scale(.75,.75,.75)) - snaps.append([v1,'center',self.toWP(c)]) - snaps.append([v2,'center',self.toWP(c)]) + if self.isEnabled("center"): + c = obj.Placement.Base + for edge in obj.Shape.Edges: + p1 = edge.Vertexes[0].Point + p2 = edge.Vertexes[-1].Point + v1 = p1.add((p2-p1).scale(.25,.25,.25)) + v2 = p1.add((p2-p1).scale(.75,.75,.75)) + snaps.append([v1,'center',self.toWP(c)]) + snaps.append([v2,'center',self.toWP(c)]) return snaps def snapToVertex(self,info,active=False):