diff --git a/src/Mod/Fem/FemCommands.py b/src/Mod/Fem/FemCommands.py index 4803ecb4049f..0ff8f06e02c0 100644 --- a/src/Mod/Fem/FemCommands.py +++ b/src/Mod/Fem/FemCommands.py @@ -58,6 +58,8 @@ def IsActive(self): 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 @@ def solver_selected(self): 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 402678d744e2..a13eb7972f5c 100644 --- a/src/Mod/Fem/_CommandFemSolverCalculix.py +++ b/src/Mod/Fem/_CommandFemSolverCalculix.py @@ -41,7 +41,7 @@ def __init__(self): '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")