From 039b6327580f0d6751300ed34295c0b79dddcfce Mon Sep 17 00:00:00 2001 From: Przemo Firszt Date: Fri, 9 Oct 2015 19:54:05 +0100 Subject: [PATCH] FEM: Move _CommandQuickAnalysis 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 | 39 +---------------------- src/Mod/Fem/_CommandQuickAnalysis.py | 46 ++++++++++++++++++++++++++++ 5 files changed, 50 insertions(+), 38 deletions(-) create mode 100644 src/Mod/Fem/_CommandQuickAnalysis.py diff --git a/src/Mod/Fem/App/CMakeLists.txt b/src/Mod/Fem/App/CMakeLists.txt index 421b421f7b..846e147c04 100755 --- a/src/Mod/Fem/App/CMakeLists.txt +++ b/src/Mod/Fem/App/CMakeLists.txt @@ -88,6 +88,7 @@ SET(FemScripts_SRCS _FemAnalysis.py _CommandMechanicalShowResult.py _CommandFrequencyAnalysis.py + _CommandQuickAnalysis.py ) #SOURCE_GROUP("Scripts" FILES ${FemScripts_SRCS}) diff --git a/src/Mod/Fem/CMakeLists.txt b/src/Mod/Fem/CMakeLists.txt index 4f5a9460e1..bdaeae346a 100755 --- a/src/Mod/Fem/CMakeLists.txt +++ b/src/Mod/Fem/CMakeLists.txt @@ -30,6 +30,7 @@ INSTALL( _FemAnalysis.py _CommandMechanicalShowResult.py _CommandFrequencyAnalysis.py + _CommandQuickAnalysis.py DESTINATION Mod/Fem ) diff --git a/src/Mod/Fem/Gui/AppFemGui.cpp b/src/Mod/Fem/Gui/AppFemGui.cpp index 0c462e464a..b2cedcf669 100644 --- a/src/Mod/Fem/Gui/AppFemGui.cpp +++ b/src/Mod/Fem/Gui/AppFemGui.cpp @@ -104,6 +104,7 @@ void FemGuiExport initFemGui() Base::Interpreter().loadModule("_CommandMechanicalShowResult"); Base::Interpreter().loadModule("_CommandFrequencyAnalysis"); + Base::Interpreter().loadModule("_CommandQuickAnalysis"); 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 c952ac53b3..9862ca3d65 100644 --- a/src/Mod/Fem/MechanicalAnalysis.py +++ b/src/Mod/Fem/MechanicalAnalysis.py @@ -26,7 +26,7 @@ from FemTools import FemTools if FreeCAD.GuiUp: import FreeCADGui import FemGui - from PySide import QtCore, QtGui + from PySide import QtCore __title__ = "Mechanical Analysis managment" __author__ = "Juergen Riegel" @@ -138,42 +138,6 @@ class _CommandPurgeFemResults: def IsActive(self): return FreeCADGui.ActiveDocument is not None and results_present() - -class _CommandQuickAnalysis: - def GetResources(self): - return {'Pixmap': 'fem-quick-analysis', - 'MenuText': QtCore.QT_TRANSLATE_NOOP("Fem_Quick_Analysis", "Run CalculiX ccx"), - 'Accel': "R, C", - 'ToolTip': QtCore.QT_TRANSLATE_NOOP("Fem_Quick_Analysis", "Write .inp file and run CalculiX ccx")} - - def Activated(self): - def load_results(ret_code): - if ret_code == 0: - self.fea.load_results() - self.show_results_on_mesh() - else: - print "CalculiX failed ccx finished with error {}".format(ret_code) - - self.fea = FemTools() - self.fea.reset_all() - 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 show_results_on_mesh(self): - #FIXME proprer mesh refreshing as per FreeCAD.FEM_dialog settings required - # or confirmation that it's safe to call restore_result_dialog - import _ResultControlTaskPanel - tp = _ResultControlTaskPanel._ResultControlTaskPanel() - tp.restore_result_dialog() - - def IsActive(self): - return FreeCADGui.ActiveDocument is not None and FemGui.getActiveAnalysis() is not None - - # Helpers @@ -190,5 +154,4 @@ if FreeCAD.GuiUp: FreeCADGui.addCommand('Fem_NewMechanicalAnalysis', _CommandNewMechanicalAnalysis()) FreeCADGui.addCommand('Fem_CreateFromShape', _CommandFemFromShape()) FreeCADGui.addCommand('Fem_MechanicalJobControl', _CommandMechanicalJobControl()) - FreeCADGui.addCommand('Fem_Quick_Analysis', _CommandQuickAnalysis()) FreeCADGui.addCommand('Fem_PurgeResults', _CommandPurgeFemResults()) diff --git a/src/Mod/Fem/_CommandQuickAnalysis.py b/src/Mod/Fem/_CommandQuickAnalysis.py new file mode 100644 index 0000000000..9036f9c643 --- /dev/null +++ b/src/Mod/Fem/_CommandQuickAnalysis.py @@ -0,0 +1,46 @@ +import FreeCAD +from FemTools import FemTools + +if FreeCAD.GuiUp: + import FreeCADGui + import FemGui + from PySide import QtCore, QtGui + + +class _CommandQuickAnalysis: + def GetResources(self): + return {'Pixmap': 'fem-quick-analysis', + 'MenuText': QtCore.QT_TRANSLATE_NOOP("Fem_Quick_Analysis", "Run CalculiX ccx"), + 'Accel': "R, C", + 'ToolTip': QtCore.QT_TRANSLATE_NOOP("Fem_Quick_Analysis", "Write .inp file and run CalculiX ccx")} + + def Activated(self): + def load_results(ret_code): + if ret_code == 0: + self.fea.load_results() + self.show_results_on_mesh() + else: + print "CalculiX failed ccx finished with error {}".format(ret_code) + + self.fea = FemTools() + self.fea.reset_all() + 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 show_results_on_mesh(self): + #FIXME proprer mesh refreshing as per FreeCAD.FEM_dialog settings required + # or confirmation that it's safe to call restore_result_dialog + import _ResultControlTaskPanel + tp = _ResultControlTaskPanel._ResultControlTaskPanel() + tp.restore_result_dialog() + + def IsActive(self): + return FreeCADGui.ActiveDocument is not None and FemGui.getActiveAnalysis() is not None + + +if FreeCAD.GuiUp: + FreeCADGui.addCommand('Fem_Quick_Analysis', _CommandQuickAnalysis())