diff --git a/src/Mod/Draft/Draft.py b/src/Mod/Draft/Draft.py index bbe085b57..e4340460a 100644 --- a/src/Mod/Draft/Draft.py +++ b/src/Mod/Draft/Draft.py @@ -167,6 +167,8 @@ def getType(obj): return "Annotation" if obj.isDerivedFrom("Mesh::Feature"): return "Mesh" + if obj.isDerivedFrom("Points::Feature"): + return "Points" if (obj.Type == "App::DocumentObjectGroup"): return "Group" return "Unknown" diff --git a/src/Mod/Draft/DraftSnap.py b/src/Mod/Draft/DraftSnap.py index caeeb5bed..235a704fa 100644 --- a/src/Mod/Draft/DraftSnap.py +++ b/src/Mod/Draft/DraftSnap.py @@ -271,6 +271,9 @@ class Snapper: elif Draft.getType(obj) == "Mesh": # for meshes we only snap to vertices snaps.extend(self.snapToEndpoints(obj.Mesh)) + elif Draft.getType(obj) == "Points": + # for points we only snap to points + snaps.extend(self.snapToEndpoints(obj.Points)) # updating last objects list if not self.lastObj[1]: @@ -428,8 +431,12 @@ class Snapper: elif hasattr(shape,"Point"): snaps.append([shape.Point,'endpoint',shape.Point]) elif hasattr(shape,"Points"): - for v in shape.Points: - snaps.append([v.Vector,'endpoint',v.Vector]) + if len(shape.Points) and hasattr(shape.Points[0],"Vector"): + for v in shape.Points: + snaps.append([v.Vector,'endpoint',v.Vector]) + else: + for v in shape.Points: + snaps.append([v,'endpoint',v]) return snaps def snapToMidpoint(self,shape):