diff --git a/src/Mod/Draft/DraftTools.py b/src/Mod/Draft/DraftTools.py index 85dbc06ba..2ae012894 100644 --- a/src/Mod/Draft/DraftTools.py +++ b/src/Mod/Draft/DraftTools.py @@ -91,7 +91,7 @@ if not FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/").HasGroup("Dra def translate(context,text): "convenience function for Qt translator" return QtGui.QApplication.translate(context, text, None, QtGui.QApplication.UnicodeUTF8).toUtf8() - + def msg(text=None,mode=None): "prints the given message on the FreeCAD status bar" if not text: FreeCAD.Console.PrintMessage("") @@ -103,6 +103,9 @@ def msg(text=None,mode=None): else: FreeCAD.Console.PrintMessage(text) +def get3DView(): + return FreeCADGui.ActiveDocument.mdiViewsOfType("Gui::View3DInventor")[0] + def selectObject(arg): '''this is a scene even handler, to be called from the Draft tools when they need to select an object''' @@ -1642,7 +1645,7 @@ class Modifier: return True else: return False - + def Activated(self,name="None"): if FreeCAD.activeDraftCommand: FreeCAD.activeDraftCommand.finish() @@ -1657,7 +1660,7 @@ class Modifier: self.finish() else: FreeCAD.activeDraftCommand = self - self.view = FreeCADGui.ActiveDocument.ActiveView + self.view = get3DView() self.ui = FreeCADGui.draftToolBar FreeCADGui.draftToolBar.show() rot = self.view.getCameraNode().getField("orientation").getValue() diff --git a/src/Mod/Draft/DraftTrackers.py b/src/Mod/Draft/DraftTrackers.py index dda22185b..34c4acfdd 100644 --- a/src/Mod/Draft/DraftTrackers.py +++ b/src/Mod/Draft/DraftTrackers.py @@ -60,10 +60,13 @@ class Tracker: todo.delay(self._removeSwitch, self.switch) self.switch = None + def get3DView(self): + return FreeCADGui.ActiveDocument.mdiViewsOfType("Gui::View3DInventor")[0] + def _insertSwitch(self, switch): '''insert self.switch into the scene graph. Must not be called from an event handler (or other scene graph traversal).''' - sg=FreeCADGui.ActiveDocument.ActiveView.getSceneGraph() + sg=self.get3DView().getSceneGraph() if self.ontop: sg.insertChild(switch,0) else: @@ -72,7 +75,7 @@ class Tracker: def _removeSwitch(self, switch): '''remove self.switch from the scene graph. As with _insertSwitch, must not be called during scene graph traversal).''' - sg=FreeCADGui.ActiveDocument.ActiveView.getSceneGraph() + sg=self.get3DView().getSceneGraph() sg.removeChild(switch) def on(self): @@ -82,7 +85,7 @@ class Tracker: def off(self): self.switch.whichChild = -1 self.Visible = False - + class snapTracker(Tracker): "A Snap Mark tracker, used by tools that support snapping" def __init__(self): @@ -451,8 +454,8 @@ class PlaneTracker(Tracker): "A working plane tracker" def __init__(self): # getting screen distance - p1 = FreeCADGui.ActiveDocument.ActiveView.getPoint((100,100)) - p2 = FreeCADGui.ActiveDocument.ActiveView.getPoint((110,100)) + p1 = self.get3DView().getPoint((100,100)) + p2 = self.get3DView().getPoint((110,100)) bl = (p2.sub(p1)).Length * (Draft.getParam("snapRange")/2) self.trans = coin.SoTransform() self.trans.translation.setValue([0,0,0]) diff --git a/src/Mod/Start/StartPage/LoadPartDesignExample.py b/src/Mod/Start/StartPage/LoadPartDesignExample.py index 9d90f4969..cab24874f 100644 --- a/src/Mod/Start/StartPage/LoadPartDesignExample.py +++ b/src/Mod/Start/StartPage/LoadPartDesignExample.py @@ -1,4 +1,4 @@ import FreeCAD,FreeCADGui FreeCAD.open(FreeCAD.getResourceDir()+"examples/PartDesignExample.FCStd") -FreeCADGui.SendMsgToActiveView("ViewFit") -FreeCADGui.activeDocument().activeView().viewAxometric() +FreeCADGui.activeDocument().sendMsgToViews("ViewFit") +FreeCADGui.activeDocument().sendMsgToViews("ViewAxo") diff --git a/src/Mod/Start/StartPage/LoadRobotExample.py b/src/Mod/Start/StartPage/LoadRobotExample.py index 229552b78..309298c7f 100644 --- a/src/Mod/Start/StartPage/LoadRobotExample.py +++ b/src/Mod/Start/StartPage/LoadRobotExample.py @@ -1,4 +1,4 @@ import FreeCAD,FreeCADGui FreeCAD.open(FreeCAD.getResourceDir()+"examples/RobotExample.FCStd") -FreeCADGui.SendMsgToActiveView("ViewFit") -FreeCADGui.activeDocument().activeView().viewAxometric() +FreeCADGui.activeDocument().sendMsgToViews("ViewFit") +FreeCADGui.activeDocument().sendMsgToViews("ViewAxo") diff --git a/src/Mod/Start/StartPage/LoadSchenkel.py b/src/Mod/Start/StartPage/LoadSchenkel.py index 84aa61276..c79973d01 100644 --- a/src/Mod/Start/StartPage/LoadSchenkel.py +++ b/src/Mod/Start/StartPage/LoadSchenkel.py @@ -1,4 +1,4 @@ import FreeCAD,FreeCADGui,Part Part.open(FreeCAD.getResourceDir()+"examples/Schenkel.stp") -FreeCADGui.SendMsgToActiveView("ViewFit") -Gui.activeDocument().activeView().viewAxometric() +FreeCADGui.activeDocument().sendMsgToViews("ViewFit") +FreeCADGui.activeDocument().sendMsgToViews("ViewAxo")