Fem: Add default solver to new analysis - fixes #23043

This commit is contained in:
marioalexis
2025-09-04 09:57:14 -03:00
committed by Chris Hennes
parent cab5f4d85a
commit a62c5b1151
2 changed files with 20 additions and 11 deletions

View File

@@ -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()

View File

@@ -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):