FEM: command solver run, delete duplicate code

This commit is contained in:
Bernd Hahnebach
2017-12-01 19:44:19 +01:00
committed by wmayer
parent 4991343392
commit 39d4a0dd1f

View File

@@ -31,7 +31,6 @@ from .FemCommands import FemCommands
import FreeCADGui
from PySide import QtCore, QtGui
import femsolver.run
import FemUtils
class _CommandFemSolverRun(FemCommands):
@@ -52,13 +51,7 @@ class _CommandFemSolverRun(FemCommands):
print ("CalculiX failed ccx finished with error {}".format(ret_code))
self.solver = FreeCADGui.Selection.getSelection()[0] # see 'with_solver' in FemCommands for selection check
if FemUtils.isDerivedFrom(self.solver, "Fem::FemSolverObjectZ88"):
self._newActivated()
elif FemUtils.isDerivedFrom(self.solver, "Fem::FemSolverObjectElmer"):
self._newActivated()
elif FemUtils.isDerivedFrom(self.solver, "Fem::FemSolverObjectCalculix"):
self._newActivated()
elif self.solver.SolverType == "FemSolverCalculix":
if hasattr(self.solver, "SolverType") and self.solver.SolverType == "FemSolverCalculix":
import FemToolsCcx
self.fea = FemToolsCcx.FemToolsCcx(None, self.solver)
self.fea.reset_mesh_purge_results_checked()
@@ -69,13 +62,8 @@ class _CommandFemSolverRun(FemCommands):
self.fea.finished.connect(load_results)
QtCore.QThreadPool.globalInstance().start(self.fea)
else:
QtGui.QMessageBox.critical(None, "Not known solver type", message)
def _newActivated(self):
solver = self._getSelectedSolver()
if solver is not None:
try:
machine = femsolver.run.getMachine(solver)
machine = femsolver.run.getMachine(self.solver)
except femsolver.run.MustSaveError:
QtGui.QMessageBox.critical(
FreeCADGui.getMainWindow(),
@@ -95,11 +83,7 @@ class _CommandFemSolverRun(FemCommands):
machine.target = femsolver.run.RESULTS
machine.start()
def _getSelectedSolver(self):
sel = FreeCADGui.Selection.getSelection()
if len(sel) == 1 and sel[0].isDerivedFrom("Fem::FemSolverObjectPython"):
return sel[0]
return None
FreeCADGui.Selection.clearSelection()
FreeCADGui.addCommand('FEM_SolverRun', _CommandFemSolverRun())