+ Do not rely on active document but active analysis object

This commit is contained in:
wmayer 2015-10-18 22:36:36 +02:00
parent 5e48d2ec33
commit eff27994e5
4 changed files with 15 additions and 10 deletions

View File

@ -37,7 +37,7 @@ __url__ = "http://www.freecadweb.org"
def makeFemBeamSection(width=20.0, height=20.0, name="BeamSection"):
'''makeFemBeamSection([width], [height], [name]): creates an beamsection object to define a cross section'''
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", name)
obj = FemGui.getActiveAnalysis().Document.addObject("App::FeaturePython", name)
_FemBeamSection(obj)
obj.Width = width
obj.Height = height
@ -57,8 +57,7 @@ class _CommandFemBeamSection:
def Activated(self):
FreeCAD.ActiveDocument.openTransaction("Create FemBeamSection")
FreeCADGui.addModule("FemBeamSection")
FreeCADGui.doCommand("FemBeamSection.makeFemBeamSection()")
FreeCADGui.doCommand("App.activeDocument()." + FemGui.getActiveAnalysis().Name + ".Member = App.activeDocument()." + FemGui.getActiveAnalysis().Name + ".Member + [App.ActiveDocument.ActiveObject]")
FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [FemBeamSection.makeFemBeamSection()]")
def IsActive(self):
if FemGui.getActiveAnalysis():

View File

@ -55,7 +55,7 @@ class FemCommands(object):
elif self.is_active == 'with_results':
active = FreeCADGui.ActiveDocument is not None and FemGui.getActiveAnalysis() is not None and self.results_present()
elif self.is_active == 'with_part_feature':
active = FreeCADGui.ActiveDocument is not None and FemGui.getActiveAnalysis() is not None and self.part_feature_selected()
active = FemGui.getActiveAnalysis() is not None and FemGui.getActiveAnalysis().Document is FreeCAD.ActiveDocument and self.part_feature_selected()
return active
def results_present(self):

View File

@ -37,7 +37,7 @@ __url__ = "http://www.freecadweb.org"
def makeFemShellThickness(thickness=20.0, name="ShellThickness"):
'''makeFemShellThickness([thickness], [name]): creates an shellthickness object to define a plate thickness'''
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", name)
obj = FemGui.getActiveAnalysis().Document.addObject("App::FeaturePython", name)
_FemShellThickness(obj)
obj.Thickness = thickness
if FreeCAD.GuiUp:
@ -56,8 +56,7 @@ class _CommandFemShellThickness:
def Activated(self):
FreeCAD.ActiveDocument.openTransaction("Create FemShellThickness")
FreeCADGui.addModule("FemShellThickness")
FreeCADGui.doCommand("FemShellThickness.makeFemShellThickness()")
FreeCADGui.doCommand("App.activeDocument()." + FemGui.getActiveAnalysis().Name + ".Member = App.activeDocument()." + FemGui.getActiveAnalysis().Name + ".Member + [App.ActiveDocument.ActiveObject]")
FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [FemShellThickness.makeFemShellThickness()]")
def IsActive(self):
if FemGui.getActiveAnalysis():

View File

@ -60,6 +60,9 @@ class _CommandMechanicalMaterial:
MatObj = i
if (not MatObj):
femDoc = FemGui.getActiveAnalysis().Document
if FreeCAD.ActiveDocument is not femDoc:
FreeCADGui.setActiveDocument(femDoc)
FreeCAD.ActiveDocument.openTransaction("Create Material")
FreeCADGui.addModule("MechanicalMaterial")
FreeCADGui.doCommand("MechanicalMaterial.makeMechanicalMaterial('MechanicalMaterial')")
@ -67,6 +70,8 @@ class _CommandMechanicalMaterial:
FreeCADGui.doCommand("Gui.activeDocument().setEdit(App.ActiveDocument.ActiveObject.Name,0)")
# FreeCADGui.doCommand("Fem.makeMaterial()")
else:
if FreeCAD.ActiveDocument is not MatObj.Document:
FreeCADGui.setActiveDocument(MatObj.Document)
FreeCADGui.doCommand("Gui.activeDocument().setEdit('" + MatObj.Name + "',0)")
def IsActive(self):
@ -153,11 +158,13 @@ class _MechanicalMaterialTaskPanel:
def accept(self):
self.obj.Material = self.material
FreeCADGui.ActiveDocument.resetEdit()
FreeCAD.ActiveDocument.recompute()
doc = FreeCADGui.getDocument(self.obj.Document)
doc.resetEdit()
doc.Document.recompute()
def reject(self):
FreeCADGui.ActiveDocument.resetEdit()
doc = FreeCADGui.getDocument(self.obj.Document)
doc.resetEdit()
def goMatWeb(self):
import webbrowser