FEM: command solver run, delete duplicate code
This commit is contained in:
@@ -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())
|
||||
|
||||
Reference in New Issue
Block a user