diff --git a/src/Mod/Fem/femcommands/commands.py b/src/Mod/Fem/femcommands/commands.py index 56231cfb19..9e4fc0dd2d 100644 --- a/src/Mod/Fem/femcommands/commands.py +++ b/src/Mod/Fem/femcommands/commands.py @@ -71,19 +71,28 @@ class _Analysis(CommandManager): FreeCADGui.doCommand("ObjectsFem.makeAnalysis(FreeCAD.ActiveDocument, 'Analysis')") FreeCADGui.doCommand("FemGui.setActiveAnalysis(FreeCAD.ActiveDocument.ActiveObject)") FreeCAD.ActiveDocument.commitTransaction() - if get_default_solver() != "None": + def_solver = get_default_solver() + if def_solver: FreeCAD.ActiveDocument.openTransaction("Create default solver") + cmd = "" + match def_solver: + case "CalculiX": + cmd = "FEM_SolverCalculiX" + case "Elmer": + cmd = "FEM_SolverElmer" + case "Mystran": + cmd = "FEM_SolverMystran" + case "Z88": + cmd = "FEM_SolverZ88" + + if cmd: + FreeCADGui.doCommand(f'FreeCADGui.runCommand("{cmd}")') + FreeCADGui.doCommand( - f"ObjectsFem.makeSolver{get_default_solver()}(FreeCAD.ActiveDocument)" - ) - FreeCADGui.doCommand( - "FemGui.getActiveAnalysis().addObject(FreeCAD.ActiveDocument.ActiveObject)" + "FreeCADGui.ActiveDocument.toggleTreeItem(FemGui.getActiveAnalysis(), 2)" ) FreeCAD.ActiveDocument.commitTransaction() - self.do_activated = "add_obj_on_gui_expand_noset_edit" - # Fixme: expand analysis object in tree view to make added solver visible - # expandParentObject() does not work because the Analysis is not yet a tree - # in the tree view + FreeCAD.ActiveDocument.recompute() diff --git a/src/Mod/Fem/femsolver/settings.py b/src/Mod/Fem/femsolver/settings.py index c9af5eb92d..90d3bd5292 100644 --- a/src/Mod/Fem/femsolver/settings.py +++ b/src/Mod/Fem/femsolver/settings.py @@ -168,9 +168,9 @@ def get_dir_setting(): def get_default_solver(): """Return default solver name.""" - solver_map = {0: "None"} + solver_map = {0: None} if get_binary("Calculix", True): - solver_map[1] = "CalculiXCcxTools" + solver_map[1] = "CalculiX" if get_binary("ElmerSolver", True): solver_map[len(solver_map)] = "Elmer" if get_binary("Mystran", True):