From ad68cad1bf495b05c4a753dfc435ced33b8b83d8 Mon Sep 17 00:00:00 2001 From: Przemo Firszt Date: Fri, 9 Oct 2015 19:50:06 +0100 Subject: [PATCH] FEM: Move _CommandFrequencyAnalysis class to separate file Signed-off-by: Przemo Firszt --- src/Mod/Fem/App/CMakeLists.txt | 1 + src/Mod/Fem/CMakeLists.txt | 1 + src/Mod/Fem/Gui/AppFemGui.cpp | 1 + src/Mod/Fem/MechanicalAnalysis.py | 29 ------------------ src/Mod/Fem/_CommandFrequencyAnalysis.py | 39 ++++++++++++++++++++++++ 5 files changed, 42 insertions(+), 29 deletions(-) create mode 100644 src/Mod/Fem/_CommandFrequencyAnalysis.py diff --git a/src/Mod/Fem/App/CMakeLists.txt b/src/Mod/Fem/App/CMakeLists.txt index 7aad3e9be74e..421b421f7bdc 100755 --- a/src/Mod/Fem/App/CMakeLists.txt +++ b/src/Mod/Fem/App/CMakeLists.txt @@ -87,6 +87,7 @@ SET(FemScripts_SRCS _ViewProviderFemAnalysis.py _FemAnalysis.py _CommandMechanicalShowResult.py + _CommandFrequencyAnalysis.py ) #SOURCE_GROUP("Scripts" FILES ${FemScripts_SRCS}) diff --git a/src/Mod/Fem/CMakeLists.txt b/src/Mod/Fem/CMakeLists.txt index fbdb53a8b645..4f5a9460e1d9 100755 --- a/src/Mod/Fem/CMakeLists.txt +++ b/src/Mod/Fem/CMakeLists.txt @@ -29,6 +29,7 @@ INSTALL( _ViewProviderFemAnalysis.py _FemAnalysis.py _CommandMechanicalShowResult.py + _CommandFrequencyAnalysis.py DESTINATION Mod/Fem ) diff --git a/src/Mod/Fem/Gui/AppFemGui.cpp b/src/Mod/Fem/Gui/AppFemGui.cpp index ed68b331055d..0c462e464aa6 100644 --- a/src/Mod/Fem/Gui/AppFemGui.cpp +++ b/src/Mod/Fem/Gui/AppFemGui.cpp @@ -103,6 +103,7 @@ void FemGuiExport initFemGui() FemGui::ViewProviderResultPython ::init(); Base::Interpreter().loadModule("_CommandMechanicalShowResult"); + Base::Interpreter().loadModule("_CommandFrequencyAnalysis"); 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 81c1071ff4b4..41e21571bfa8 100644 --- a/src/Mod/Fem/MechanicalAnalysis.py +++ b/src/Mod/Fem/MechanicalAnalysis.py @@ -174,34 +174,6 @@ def IsActive(self): return FreeCADGui.ActiveDocument is not None and FemGui.getActiveAnalysis() is not None -class _CommandFrequencyAnalysis: - def GetResources(self): - return {'Pixmap': 'fem-frequency-analysis', - 'MenuText': QtCore.QT_TRANSLATE_NOOP("Fem_Frequency_Analysis", "Run frequency analysis with CalculiX ccx"), - 'Accel': "R, F", - 'ToolTip': QtCore.QT_TRANSLATE_NOOP("Fem_Frequency_Analysis", "Write .inp file and run frequency analysis with CalculiX ccx")} - - def Activated(self): - def load_results(ret_code): - if ret_code == 0: - self.fea.load_results() - else: - print "CalculiX failed ccx finished with error {}".format(ret_code) - - self.fea = FemTools() - self.fea.reset_all() - self.fea.set_analysis_type('frequency') - message = self.fea.check_prerequisites() - if message: - QtGui.QMessageBox.critical(None, "Missing prerequisite", message) - return - self.fea.finished.connect(load_results) - QtCore.QThreadPool.globalInstance().start(self.fea) - - def IsActive(self): - return FreeCADGui.ActiveDocument is not None and FemGui.getActiveAnalysis() is not None - - # Helpers @@ -229,5 +201,4 @@ def get_results_object(sel): FreeCADGui.addCommand('Fem_CreateFromShape', _CommandFemFromShape()) FreeCADGui.addCommand('Fem_MechanicalJobControl', _CommandMechanicalJobControl()) FreeCADGui.addCommand('Fem_Quick_Analysis', _CommandQuickAnalysis()) - FreeCADGui.addCommand('Fem_Frequency_Analysis', _CommandFrequencyAnalysis()) FreeCADGui.addCommand('Fem_PurgeResults', _CommandPurgeFemResults()) diff --git a/src/Mod/Fem/_CommandFrequencyAnalysis.py b/src/Mod/Fem/_CommandFrequencyAnalysis.py new file mode 100644 index 000000000000..aa3a29165c55 --- /dev/null +++ b/src/Mod/Fem/_CommandFrequencyAnalysis.py @@ -0,0 +1,39 @@ +import FreeCAD +from FemTools import FemTools + +if FreeCAD.GuiUp: + import FreeCADGui + import FemGui + from PySide import QtCore, QtGui + + +class _CommandFrequencyAnalysis: + def GetResources(self): + return {'Pixmap': 'fem-frequency-analysis', + 'MenuText': QtCore.QT_TRANSLATE_NOOP("Fem_Frequency_Analysis", "Run frequency analysis with CalculiX ccx"), + 'Accel': "R, F", + 'ToolTip': QtCore.QT_TRANSLATE_NOOP("Fem_Frequency_Analysis", "Write .inp file and run frequency analysis with CalculiX ccx")} + + def Activated(self): + def load_results(ret_code): + if ret_code == 0: + self.fea.load_results() + else: + print "CalculiX failed ccx finished with error {}".format(ret_code) + + self.fea = FemTools() + self.fea.reset_all() + self.fea.set_analysis_type('frequency') + message = self.fea.check_prerequisites() + if message: + QtGui.QMessageBox.critical(None, "Missing prerequisite", message) + return + self.fea.finished.connect(load_results) + QtCore.QThreadPool.globalInstance().start(self.fea) + + def IsActive(self): + return FreeCADGui.ActiveDocument is not None and FemGui.getActiveAnalysis() is not None + + +if FreeCAD.GuiUp: + FreeCADGui.addCommand('Fem_Frequency_Analysis', _CommandFrequencyAnalysis())