| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | __title__ = "FreeCAD FEM solver object Mystran" |
| | __author__ = "Bernd Hahnebach" |
| | __url__ = "https://www.freecad.org" |
| |
|
| | |
| | |
| |
|
| | import glob |
| | import os |
| |
|
| | import FreeCAD |
| |
|
| | from . import tasks |
| | from .. import run |
| | from .. import solverbase |
| | from femtools import femutils |
| |
|
| | if FreeCAD.GuiUp: |
| | import FemGui |
| |
|
| | ANALYSIS_TYPES = ["static"] |
| |
|
| |
|
| | def create(doc, name="SolverMystran"): |
| | return femutils.createObject(doc, name, Proxy, ViewProxy) |
| |
|
| |
|
| | class Proxy(solverbase.Proxy): |
| | """The Fem::FemSolver's Proxy python type, add solver specific properties""" |
| |
|
| | Type = "Fem::SolverMystran" |
| |
|
| | def __init__(self, obj): |
| | super().__init__(obj) |
| | obj.Proxy = self |
| |
|
| | |
| |
|
| | obj.addProperty( |
| | "App::PropertyEnumeration", "AnalysisType", "Fem", "Type of the analysis", locked=True |
| | ) |
| | obj.AnalysisType = ANALYSIS_TYPES |
| | obj.AnalysisType = ANALYSIS_TYPES[0] |
| |
|
| | def createMachine(self, obj, directory, testmode=False): |
| | return run.Machine( |
| | solver=obj, |
| | directory=directory, |
| | check=tasks.Check(), |
| | prepare=tasks.Prepare(), |
| | solve=tasks.Solve(), |
| | results=tasks.Results(), |
| | testmode=testmode, |
| | ) |
| |
|
| | def editSupported(self): |
| | return True |
| |
|
| | def edit(self, directory): |
| | pattern = os.path.join(directory, "*.bdf") |
| | FreeCAD.Console.PrintMessage(f"{pattern}\n") |
| | f = glob.glob(pattern)[0] |
| | FemGui.open(f) |
| | |
| |
|
| | def execute(self, obj): |
| | return |
| |
|
| |
|
| | class ViewProxy(solverbase.ViewProxy): |
| |
|
| | def getIcon(self): |
| | return ":/icons/FEM_SolverMystran.svg" |
| |
|