From ea2a0d12c2a087e53d22584aedd541da9044e8a2 Mon Sep 17 00:00:00 2001 From: Bernd Hahnebach Date: Fri, 27 Nov 2015 17:56:04 +0100 Subject: [PATCH] FEM: do not allow to add multiple soler with gui --- src/Mod/Fem/FemCommands.py | 13 +++++++++++++ src/Mod/Fem/_CommandFemSolverCalculix.py | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/Mod/Fem/FemCommands.py b/src/Mod/Fem/FemCommands.py index 4803ecb40..0ff8f06e0 100644 --- a/src/Mod/Fem/FemCommands.py +++ b/src/Mod/Fem/FemCommands.py @@ -58,6 +58,8 @@ class FemCommands(object): active = FreeCADGui.ActiveDocument is not None and self.part_feature_selected() elif self.is_active == 'with_solver': active = FemGui.getActiveAnalysis() is not None and self.active_analysis_in_active_doc() and self.solver_selected() + elif self.is_active == 'with_analysis_without_solver': + active = FemGui.getActiveAnalysis() is not None and self.active_analysis_in_active_doc() and not self.analysis_has_solver() return active def results_present(self): @@ -84,3 +86,14 @@ class FemCommands(object): return True else: return False + + def analysis_has_solver(self): + solver = False + analysis_members = FemGui.getActiveAnalysis().Member + for o in analysis_members: + if o.isDerivedFrom("Fem::FemSolverObjectPython"): + solver = True + if solver is True: + return True + else: + return False diff --git a/src/Mod/Fem/_CommandFemSolverCalculix.py b/src/Mod/Fem/_CommandFemSolverCalculix.py index 402678d74..a13eb7972 100644 --- a/src/Mod/Fem/_CommandFemSolverCalculix.py +++ b/src/Mod/Fem/_CommandFemSolverCalculix.py @@ -41,7 +41,7 @@ class _CommandFemSolverCalculix(FemCommands): 'MenuText': QtCore.QT_TRANSLATE_NOOP("Fem_SolverCalculix", "Create FEM Solver CalculiX ..."), 'Accel': "S, C", 'ToolTip': QtCore.QT_TRANSLATE_NOOP("Fem_SolverCalculix", "Creates FEM Solver CalculiX")} - self.is_active = 'with_analysis' + self.is_active = 'with_analysis_without_solver' def Activated(self): FreeCAD.ActiveDocument.openTransaction("Create SolverCalculix")