From 2f14667ceaacecec760b8c8a8ae0f69cbbda8164 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 19 May 2019 15:26:15 +1000 Subject: [PATCH] Set working plane immediately upon clicking the set working plane button if you have a face selected --- src/Mod/Draft/DraftTools.py | 20 ++++++++++---------- src/Mod/Draft/WorkingPlane.py | 3 ++- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/Mod/Draft/DraftTools.py b/src/Mod/Draft/DraftTools.py index 802b508d31..8a55702e50 100644 --- a/src/Mod/Draft/DraftTools.py +++ b/src/Mod/Draft/DraftTools.py @@ -311,16 +311,16 @@ class SelectPlane(DraftTool): def Activated(self): DraftTool.Activated(self) self.offset = 0 - if self.doc: - - self.ui.selectPlaneUi() - FreeCAD.Console.PrintMessage(translate("draft", "Pick a face to define the drawing plane")+"\n") - if plane.alignToSelection(self.offset): - FreeCADGui.Selection.clearSelection() - self.display(plane.axis) - self.finish() - else: - self.call = self.view.addEventCallback("SoEvent", self.action) + if not self.doc: + return + self.ui.selectPlaneUi() + FreeCAD.Console.PrintMessage(translate("draft", "Pick a face to define the drawing plane")+"\n") + if plane.alignToSelection(self.offset): + FreeCADGui.Selection.clearSelection() + self.display(plane.axis) + self.finish() + else: + self.call = self.view.addEventCallback("SoEvent", self.action) def action(self, arg): if arg["Type"] == "SoKeyboardEvent" and arg["Key"] == "ESCAPE": diff --git a/src/Mod/Draft/WorkingPlane.py b/src/Mod/Draft/WorkingPlane.py index 500f05a4d3..dea7f036b6 100644 --- a/src/Mod/Draft/WorkingPlane.py +++ b/src/Mod/Draft/WorkingPlane.py @@ -269,7 +269,8 @@ class plane: if len(sex) == 0: return False elif len(sex) == 1: - if not sex[0].Object.isDerivedFrom("Part::Shape"): + if not sex[0].Object.isDerivedFrom("Part::Feature") \ + or not sex[0].Object.Shape: return False return self.alignToCurve(sex[0].Object.Shape, offset) \ or self.alignToFace(sex[0].Object.Shape, offset) \