From 285f6aea9d1f95aebcc77b53066eb9064b85c3b2 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Mon, 13 Jun 2016 13:46:51 -0300 Subject: [PATCH] Draft: Center Snap can now also snap to center of faces --- src/Mod/Draft/DraftSnap.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/Mod/Draft/DraftSnap.py b/src/Mod/Draft/DraftSnap.py index d549f0096..8085bbc23 100644 --- a/src/Mod/Draft/DraftSnap.py +++ b/src/Mod/Draft/DraftSnap.py @@ -319,7 +319,11 @@ class Snapper: elif et == "Ellipse": # extra ellipse options snaps.extend(self.snapToCenter(edge)) - + elif "Face" in comp: + en = int(comp[4:])-1 + if len(obj.Shape.Faces) > en: + face = obj.Shape.Faces[en] + snaps.extend(self.snapToFace(face)) elif "Vertex" in comp: # directly snapped to a vertex snaps.append(self.snapToVertex(self.snapInfo,active=True)) @@ -749,6 +753,15 @@ class Snapper: else: snaps.append([c,'center',c]) return snaps + + def snapToFace(self,shape): + "returns a face center snap location" + snaps = [] + if self.isEnabled("center"): + pos = shape.CenterOfMass + c = self.toWP(pos) + snaps.append([pos,'center',c]) + return snaps def snapToIntersection(self,shape): "returns a list of intersection snap locations"