diff --git a/src/Mod/Fem/App/CMakeLists.txt b/src/Mod/Fem/App/CMakeLists.txt index 1c0103eaba..6d64ae9c61 100755 --- a/src/Mod/Fem/App/CMakeLists.txt +++ b/src/Mod/Fem/App/CMakeLists.txt @@ -92,6 +92,7 @@ SET(FemScripts_SRCS _CommandPurgeFemResults.py _CommandMechanicalJobControl.py _CommandFemFromShape.py + _CommandNewMechanicalAnalysis.py ) #SOURCE_GROUP("Scripts" FILES ${FemScripts_SRCS}) diff --git a/src/Mod/Fem/CMakeLists.txt b/src/Mod/Fem/CMakeLists.txt index d222d8f989..607b0d180b 100755 --- a/src/Mod/Fem/CMakeLists.txt +++ b/src/Mod/Fem/CMakeLists.txt @@ -34,6 +34,7 @@ INSTALL( _CommandPurgeFemResults.py _CommandMechanicalJobControl.py _CommandFemFromShape.py + _CommandNewMechanicalAnalysis.py DESTINATION Mod/Fem ) diff --git a/src/Mod/Fem/Gui/AppFemGui.cpp b/src/Mod/Fem/Gui/AppFemGui.cpp index 454e0e35ef..dc427f6581 100644 --- a/src/Mod/Fem/Gui/AppFemGui.cpp +++ b/src/Mod/Fem/Gui/AppFemGui.cpp @@ -108,6 +108,8 @@ void FemGuiExport initFemGui() Base::Interpreter().loadModule("_CommandPurgeFemResults"); Base::Interpreter().loadModule("_CommandMechanicalJobControl"); Base::Interpreter().loadModule("_CommandFemFromShape"); + Base::Interpreter().loadModule("_CommandNewMechanicalAnalysis"); + Base::Interpreter().loadModule("MechanicalAnalysis"); Base::Interpreter().loadModule("MechanicalMaterial"); Base::Interpreter().loadModule("FemBeamSection"); diff --git a/src/Mod/Fem/MechanicalAnalysis.py b/src/Mod/Fem/MechanicalAnalysis.py index 2d9e055047..a6d95b6c2e 100644 --- a/src/Mod/Fem/MechanicalAnalysis.py +++ b/src/Mod/Fem/MechanicalAnalysis.py @@ -22,11 +22,6 @@ import FreeCAD -if FreeCAD.GuiUp: - import FreeCADGui - import FemGui - from PySide import QtCore - __title__ = "Mechanical Analysis managment" __author__ = "Juergen Riegel" __url__ = "http://www.freecadweb.org" @@ -41,42 +36,3 @@ def makeMechanicalAnalysis(name): _ViewProviderFemAnalysis._ViewProviderFemAnalysis() #FreeCAD.ActiveDocument.recompute() return obj - - -class _CommandNewMechanicalAnalysis: - "the Fem Analysis command definition" - def GetResources(self): - return {'Pixmap': 'fem-analysis', - 'MenuText': QtCore.QT_TRANSLATE_NOOP("Fem_Analysis", "New mechanical analysis"), - 'Accel': "N, A", - 'ToolTip': QtCore.QT_TRANSLATE_NOOP("Fem_Analysis", "Create a new mechanical analysis")} - - def Activated(self): - FreeCAD.ActiveDocument.openTransaction("Create Analysis") - FreeCADGui.addModule("FemGui") - FreeCADGui.addModule("MechanicalAnalysis") - #FreeCADGui.doCommand("FreeCADGui.ActiveDocument.ActiveView.setAxisCross(True)") - FreeCADGui.doCommand("MechanicalAnalysis.makeMechanicalAnalysis('MechanicalAnalysis')") - FreeCADGui.doCommand("FemGui.setActiveAnalysis(App.activeDocument().ActiveObject)") - sel = FreeCADGui.Selection.getSelection() - if (len(sel) == 1): - if(sel[0].isDerivedFrom("Fem::FemMeshObject")): - FreeCADGui.doCommand("App.activeDocument().ActiveObject.Member = App.activeDocument().ActiveObject.Member + [App.activeDocument()." + sel[0].Name + "]") - if(sel[0].isDerivedFrom("Part::Feature")): - FreeCADGui.doCommand("App.activeDocument().addObject('Fem::FemMeshShapeNetgenObject', '" + sel[0].Name + "_Mesh')") - FreeCADGui.doCommand("App.activeDocument().ActiveObject.Shape = App.activeDocument()." + sel[0].Name) - FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [App.activeDocument().ActiveObject]") - #FreeCADGui.doCommand("Gui.activeDocument().hide('" + sel[0].Name + "')") - #FreeCADGui.doCommand("App.activeDocument().ActiveObject.touch()") - #FreeCADGui.doCommand("App.activeDocument().recompute()") - FreeCADGui.doCommand("Gui.activeDocument().setEdit(App.ActiveDocument.ActiveObject.Name)") - - #FreeCAD.ActiveDocument.commitTransaction() - FreeCADGui.Selection.clearSelection() - - def IsActive(self): - return FreeCADGui.ActiveDocument is not None and FemGui.getActiveAnalysis() is None - - -if FreeCAD.GuiUp: - FreeCADGui.addCommand('Fem_NewMechanicalAnalysis', _CommandNewMechanicalAnalysis()) diff --git a/src/Mod/Fem/_CommandNewMechanicalAnalysis.py b/src/Mod/Fem/_CommandNewMechanicalAnalysis.py new file mode 100644 index 0000000000..2df7b36dc0 --- /dev/null +++ b/src/Mod/Fem/_CommandNewMechanicalAnalysis.py @@ -0,0 +1,45 @@ +import FreeCAD + +if FreeCAD.GuiUp: + import FreeCADGui + import FemGui + from PySide import QtCore + + +class _CommandNewMechanicalAnalysis: + "the Fem Analysis command definition" + def GetResources(self): + return {'Pixmap': 'fem-analysis', + 'MenuText': QtCore.QT_TRANSLATE_NOOP("Fem_Analysis", "New mechanical analysis"), + 'Accel': "N, A", + 'ToolTip': QtCore.QT_TRANSLATE_NOOP("Fem_Analysis", "Create a new mechanical analysis")} + + def Activated(self): + FreeCAD.ActiveDocument.openTransaction("Create Analysis") + FreeCADGui.addModule("FemGui") + FreeCADGui.addModule("MechanicalAnalysis") + #FreeCADGui.doCommand("FreeCADGui.ActiveDocument.ActiveView.setAxisCross(True)") + FreeCADGui.doCommand("MechanicalAnalysis.makeMechanicalAnalysis('MechanicalAnalysis')") + FreeCADGui.doCommand("FemGui.setActiveAnalysis(App.activeDocument().ActiveObject)") + sel = FreeCADGui.Selection.getSelection() + if (len(sel) == 1): + if(sel[0].isDerivedFrom("Fem::FemMeshObject")): + FreeCADGui.doCommand("App.activeDocument().ActiveObject.Member = App.activeDocument().ActiveObject.Member + [App.activeDocument()." + sel[0].Name + "]") + if(sel[0].isDerivedFrom("Part::Feature")): + FreeCADGui.doCommand("App.activeDocument().addObject('Fem::FemMeshShapeNetgenObject', '" + sel[0].Name + "_Mesh')") + FreeCADGui.doCommand("App.activeDocument().ActiveObject.Shape = App.activeDocument()." + sel[0].Name) + FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [App.activeDocument().ActiveObject]") + #FreeCADGui.doCommand("Gui.activeDocument().hide('" + sel[0].Name + "')") + #FreeCADGui.doCommand("App.activeDocument().ActiveObject.touch()") + #FreeCADGui.doCommand("App.activeDocument().recompute()") + FreeCADGui.doCommand("Gui.activeDocument().setEdit(App.ActiveDocument.ActiveObject.Name)") + + #FreeCAD.ActiveDocument.commitTransaction() + FreeCADGui.Selection.clearSelection() + + def IsActive(self): + return FreeCADGui.ActiveDocument is not None and FemGui.getActiveAnalysis() is None + + +if FreeCAD.GuiUp: + FreeCADGui.addCommand('Fem_NewMechanicalAnalysis', _CommandNewMechanicalAnalysis())