Fem: Add default solver to new analysis - fixes #23043
This commit is contained in:
committed by
Chris Hennes
parent
cab5f4d85a
commit
a62c5b1151
@@ -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()
|
||||
|
||||
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user