0000671: Crash with Draft/Put... on sheet with PartDesignExample.FCStd
This commit is contained in:
parent
2e3e3f0467
commit
bf1f4600fc
|
@ -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()
|
||||
|
|
|
@ -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])
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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")
|
||||
|
|
Loading…
Reference in New Issue
Block a user