Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
+ Do not rely on active document but active analysis object
  • Loading branch information
wwmayer committed Oct 18, 2015
1 parent 5e48d2e commit eff2799
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 10 deletions.
5 changes: 2 additions & 3 deletions src/Mod/Fem/FemBeamSection.py
Expand Up @@ -37,7 +37,7 @@

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
Expand All @@ -57,8 +57,7 @@ def GetResources(self):
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():
Expand Down
2 changes: 1 addition & 1 deletion src/Mod/Fem/FemCommands.py
Expand Up @@ -55,7 +55,7 @@ def IsActive(self):
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):
Expand Down
5 changes: 2 additions & 3 deletions src/Mod/Fem/FemShellThickness.py
Expand Up @@ -37,7 +37,7 @@

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:
Expand All @@ -56,8 +56,7 @@ def GetResources(self):
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():
Expand Down
13 changes: 10 additions & 3 deletions src/Mod/Fem/MechanicalMaterial.py
Expand Up @@ -60,13 +60,18 @@ def Activated(self):
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')")
FreeCADGui.doCommand("App.activeDocument()." + FemGui.getActiveAnalysis().Name + ".Member = App.activeDocument()." + FemGui.getActiveAnalysis().Name + ".Member + [App.ActiveDocument.ActiveObject]")
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):
Expand Down Expand Up @@ -153,11 +158,13 @@ def __init__(self, obj):

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
Expand Down

0 comments on commit eff2799

Please sign in to comment.