FEM: commands, add recomputes and replace App and Gui wie FreeCAD and FreeCADGui
This commit is contained in:
@@ -46,6 +46,7 @@ class _CommandFemAnalysis(CommandManager):
|
||||
# create a CalculiX ccx tools solver for any new analysis, to be on the save side fo rnew users
|
||||
FreeCADGui.doCommand("ObjectsFem.makeSolverCalculixCcxTools(FreeCAD.ActiveDocument)")
|
||||
FreeCADGui.doCommand("FemGui.getActiveAnalysis().addObject(FreeCAD.ActiveDocument.ActiveObject)")
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class _CommandFemConstraintBodyHeatSource(CommandManager):
|
||||
@@ -66,6 +67,7 @@ class _CommandFemConstraintBodyHeatSource(CommandManager):
|
||||
FreeCAD.ActiveDocument.openTransaction("Create FemConstraintBodyHeatSource")
|
||||
FreeCADGui.addModule("ObjectsFem")
|
||||
FreeCADGui.doCommand("FemGui.getActiveAnalysis().addObject(ObjectsFem.makeConstraintBodyHeatSource(FreeCAD.ActiveDocument))")
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class _CommandFemConstraintElectrostaticPotential(CommandManager):
|
||||
@@ -86,6 +88,7 @@ class _CommandFemConstraintElectrostaticPotential(CommandManager):
|
||||
FreeCAD.ActiveDocument.openTransaction("Create FemConstraintElectrostaticPotential")
|
||||
FreeCADGui.addModule("ObjectsFem")
|
||||
FreeCADGui.doCommand("FemGui.getActiveAnalysis().addObject(ObjectsFem.makeConstraintElectrostaticPotential(FreeCAD.ActiveDocument))")
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class _CommandFemConstraintFlowVelocity(CommandManager):
|
||||
@@ -106,6 +109,7 @@ class _CommandFemConstraintFlowVelocity(CommandManager):
|
||||
FreeCAD.ActiveDocument.openTransaction("Create FemConstraintFlowVelocity")
|
||||
FreeCADGui.addModule("ObjectsFem")
|
||||
FreeCADGui.doCommand("FemGui.getActiveAnalysis().addObject(ObjectsFem.makeConstraintFlowVelocity(FreeCAD.ActiveDocument))")
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class _CommandFemConstraintInitialFlowVelocity(CommandManager):
|
||||
@@ -126,6 +130,7 @@ class _CommandFemConstraintInitialFlowVelocity(CommandManager):
|
||||
FreeCAD.ActiveDocument.openTransaction("Create FemConstraintInitialFlowVelocity")
|
||||
FreeCADGui.addModule("ObjectsFem")
|
||||
FreeCADGui.doCommand("FemGui.getActiveAnalysis().addObject(ObjectsFem.makeConstraintInitialFlowVelocity(FreeCAD.ActiveDocument))")
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class _CommandFemConstraintSelfWeight(CommandManager):
|
||||
@@ -142,6 +147,7 @@ class _CommandFemConstraintSelfWeight(CommandManager):
|
||||
FreeCAD.ActiveDocument.openTransaction("Create FemConstraintSelfWeight")
|
||||
FreeCADGui.addModule("ObjectsFem")
|
||||
FreeCADGui.doCommand("FemGui.getActiveAnalysis().addObject(ObjectsFem.makeConstraintSelfWeight(FreeCAD.ActiveDocument))")
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class _CommandFemElementFluid1D(CommandManager):
|
||||
@@ -158,6 +164,7 @@ class _CommandFemElementFluid1D(CommandManager):
|
||||
FreeCAD.ActiveDocument.openTransaction("Create FemElementFluid1D")
|
||||
FreeCADGui.addModule("ObjectsFem")
|
||||
FreeCADGui.doCommand("FemGui.getActiveAnalysis().addObject(ObjectsFem.makeElementFluid1D(FreeCAD.ActiveDocument))")
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class _CommandFemElementGeometry1D(CommandManager):
|
||||
@@ -174,6 +181,7 @@ class _CommandFemElementGeometry1D(CommandManager):
|
||||
FreeCAD.ActiveDocument.openTransaction("Create FemElementGeometry1D")
|
||||
FreeCADGui.addModule("ObjectsFem")
|
||||
FreeCADGui.doCommand("FemGui.getActiveAnalysis().addObject(ObjectsFem.makeElementGeometry1D(FreeCAD.ActiveDocument))")
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class _CommandFemElementGeometry2D(CommandManager):
|
||||
@@ -190,6 +198,7 @@ class _CommandFemElementGeometry2D(CommandManager):
|
||||
FreeCAD.ActiveDocument.openTransaction("Create FemElementGeometry2D")
|
||||
FreeCADGui.addModule("ObjectsFem")
|
||||
FreeCADGui.doCommand("FemGui.getActiveAnalysis().addObject(ObjectsFem.makeElementGeometry2D(FreeCAD.ActiveDocument))")
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class _CommandFemElementRotation1D(CommandManager):
|
||||
@@ -206,6 +215,7 @@ class _CommandFemElementRotation1D(CommandManager):
|
||||
FreeCAD.ActiveDocument.openTransaction("Create FemElementRotation1D")
|
||||
FreeCADGui.addModule("ObjectsFem")
|
||||
FreeCADGui.doCommand("FemGui.getActiveAnalysis().addObject(ObjectsFem.makeElementRotation1D(FreeCAD.ActiveDocument))")
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class _CommandFemEquationElectrostatic(CommandManager):
|
||||
@@ -222,6 +232,7 @@ class _CommandFemEquationElectrostatic(CommandManager):
|
||||
FreeCADGui.addModule("ObjectsFem")
|
||||
FreeCADGui.doCommand("ObjectsFem.makeEquationElectrostatic(FreeCAD.ActiveDocument, FreeCAD.ActiveDocument." + self.selobj.Name + ")")
|
||||
FreeCADGui.Selection.clearSelection()
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class _CommandFemEquationElasticity(CommandManager):
|
||||
@@ -238,6 +249,7 @@ class _CommandFemEquationElasticity(CommandManager):
|
||||
FreeCADGui.addModule("ObjectsFem")
|
||||
FreeCADGui.doCommand("ObjectsFem.makeEquationElasticity(FreeCAD.ActiveDocument, FreeCAD.ActiveDocument." + self.selobj.Name + ")")
|
||||
FreeCADGui.Selection.clearSelection()
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class _CommandFemEquationFlow(CommandManager):
|
||||
@@ -254,6 +266,7 @@ class _CommandFemEquationFlow(CommandManager):
|
||||
FreeCADGui.addModule("ObjectsFem")
|
||||
FreeCADGui.doCommand("ObjectsFem.makeEquationFlow(FreeCAD.ActiveDocument, FreeCAD.ActiveDocument." + self.selobj.Name + ")")
|
||||
FreeCADGui.Selection.clearSelection()
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class _CommandFemEquationFluxsolver(CommandManager):
|
||||
@@ -270,6 +283,7 @@ class _CommandFemEquationFluxsolver(CommandManager):
|
||||
FreeCADGui.addModule("ObjectsFem")
|
||||
FreeCADGui.doCommand("ObjectsFem.makeEquationFluxsolver(FreeCAD.ActiveDocument, FreeCAD.ActiveDocument." + self.selobj.Name + ")")
|
||||
FreeCADGui.Selection.clearSelection()
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class _CommandFemEquationHeat(CommandManager):
|
||||
@@ -286,6 +300,7 @@ class _CommandFemEquationHeat(CommandManager):
|
||||
FreeCADGui.addModule("ObjectsFem")
|
||||
FreeCADGui.doCommand("ObjectsFem.makeEquationHeat(FreeCAD.ActiveDocument, FreeCAD.ActiveDocument." + self.selobj.Name + ")")
|
||||
FreeCADGui.Selection.clearSelection()
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class _CommandFemMaterialFluid(CommandManager):
|
||||
@@ -303,6 +318,7 @@ class _CommandFemMaterialFluid(CommandManager):
|
||||
FreeCADGui.addModule("ObjectsFem")
|
||||
FreeCADGui.doCommand("FemGui.getActiveAnalysis().addObject(ObjectsFem.makeMaterialFluid(FreeCAD.ActiveDocument, 'FluidMaterial'))")
|
||||
FreeCADGui.doCommand("FreeCADGui.ActiveDocument.setEdit(FreeCAD.ActiveDocument.ActiveObject.Name)")
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class _CommandFemMaterialMechanicalNonlinear(CommandManager):
|
||||
@@ -337,8 +353,8 @@ class _CommandFemMaterialMechanicalNonlinear(CommandManager):
|
||||
if solver_object and (hasattr(solver_object, "SolverType") and solver_object.SolverType == 'FemSolverCalculix' or (hasattr(solver_object, "Proxy") and solver_object.Proxy.Type == 'Fem::FemSolverObjectCalculix')):
|
||||
solver_object.MaterialNonlinearity = "nonlinear"
|
||||
solver_object.GeometricalNonlinearity = "nonlinear"
|
||||
FreeCADGui.doCommand("App.ActiveDocument.recompute()")
|
||||
FreeCADGui.Selection.clearSelection()
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class _CommandFemMaterialSolid(CommandManager):
|
||||
@@ -356,6 +372,7 @@ class _CommandFemMaterialSolid(CommandManager):
|
||||
FreeCADGui.addModule("ObjectsFem")
|
||||
FreeCADGui.doCommand("FemGui.getActiveAnalysis().addObject(ObjectsFem.makeMaterialSolid(FreeCAD.ActiveDocument, 'SolidMaterial'))")
|
||||
FreeCADGui.doCommand("FreeCADGui.ActiveDocument.setEdit(FreeCAD.ActiveDocument.ActiveObject.Name)")
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class _CommandFemMesh2Mesh(CommandManager):
|
||||
@@ -371,19 +388,20 @@ class _CommandFemMesh2Mesh(CommandManager):
|
||||
FreeCAD.ActiveDocument.openTransaction("Create Mesh from FEMMesh")
|
||||
if self.selobj and not self.selobj2: # no result object selected
|
||||
FreeCADGui.addModule("femmesh.femmesh2mesh")
|
||||
FreeCADGui.doCommand("out_mesh = femmesh.femmesh2mesh.femmesh_2_mesh(App.ActiveDocument." + self.selobj.Name + ".FemMesh)")
|
||||
FreeCADGui.doCommand("out_mesh = femmesh.femmesh2mesh.femmesh_2_mesh(FreeCAD.ActiveDocument." + self.selobj.Name + ".FemMesh)")
|
||||
FreeCADGui.addModule("Mesh")
|
||||
FreeCADGui.doCommand("Mesh.show(Mesh.Mesh(out_mesh))")
|
||||
FreeCADGui.doCommand("App.ActiveDocument." + self.selobj.Name + ".ViewObject.hide()")
|
||||
FreeCADGui.doCommand("FreeCAD.ActiveDocument." + self.selobj.Name + ".ViewObject.hide()")
|
||||
if self.selobj and self.selobj2:
|
||||
femmesh = self.selobj
|
||||
res = self.selobj2
|
||||
FreeCADGui.addModule("femmesh.femmesh2mesh")
|
||||
FreeCADGui.doCommand("out_mesh = femmesh.femmesh2mesh.femmesh_2_mesh(App.ActiveDocument." + femmesh.Name + ".FemMesh, App.ActiveDocument." + res.Name + ")")
|
||||
FreeCADGui.doCommand("out_mesh = femmesh.femmesh2mesh.femmesh_2_mesh(FreeCAD.ActiveDocument." + femmesh.Name + ".FemMesh, FreeCAD.ActiveDocument." + res.Name + ")")
|
||||
FreeCADGui.addModule("Mesh")
|
||||
FreeCADGui.doCommand("Mesh.show(Mesh.Mesh(out_mesh))")
|
||||
FreeCADGui.doCommand("App.ActiveDocument." + femmesh.Name + ".ViewObject.hide()")
|
||||
FreeCADGui.doCommand("FreeCAD.ActiveDocument." + femmesh.Name + ".ViewObject.hide()")
|
||||
FreeCADGui.Selection.clearSelection()
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class _CommandFemMeshBoundaryLayer(CommandManager):
|
||||
@@ -401,6 +419,7 @@ class _CommandFemMeshBoundaryLayer(CommandManager):
|
||||
FreeCADGui.addModule("ObjectsFem")
|
||||
FreeCADGui.doCommand("ObjectsFem.makeMeshBoundaryLayer(FreeCAD.ActiveDocument, FreeCAD.ActiveDocument." + self.selobj.Name + ")")
|
||||
FreeCADGui.Selection.clearSelection()
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class _CommandFemMeshClear(CommandManager):
|
||||
@@ -416,9 +435,9 @@ class _CommandFemMeshClear(CommandManager):
|
||||
def Activated(self):
|
||||
FreeCAD.ActiveDocument.openTransaction("Clear FEM mesh")
|
||||
FreeCADGui.addModule("Fem")
|
||||
FreeCADGui.doCommand("App.ActiveDocument." + self.selobj.Name + ".FemMesh = Fem.FemMesh()")
|
||||
FreeCADGui.doCommand("App.ActiveDocument.recompute()")
|
||||
FreeCADGui.doCommand("FreeCAD.ActiveDocument." + self.selobj.Name + ".FemMesh = Fem.FemMesh()")
|
||||
FreeCADGui.Selection.clearSelection()
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class _CommandFemMeshGmshFromShape(CommandManager):
|
||||
@@ -443,8 +462,9 @@ class _CommandFemMeshGmshFromShape(CommandManager):
|
||||
if FemGui.getActiveAnalysis():
|
||||
FreeCADGui.addModule("FemGui")
|
||||
FreeCADGui.doCommand("FemGui.getActiveAnalysis().addObject(FreeCAD.ActiveDocument.ActiveObject)")
|
||||
FreeCADGui.doCommand("Gui.ActiveDocument.setEdit(FreeCAD.ActiveDocument.ActiveObject.Name)")
|
||||
FreeCADGui.doCommand("FreeCADGui.ActiveDocument.setEdit(FreeCAD.ActiveDocument.ActiveObject.Name)")
|
||||
FreeCADGui.Selection.clearSelection()
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class _CommandFemMeshGroup(CommandManager):
|
||||
@@ -462,6 +482,7 @@ class _CommandFemMeshGroup(CommandManager):
|
||||
FreeCADGui.addModule("ObjectsFem")
|
||||
FreeCADGui.doCommand("ObjectsFem.makeMeshGroup(FreeCAD.ActiveDocument, FreeCAD.ActiveDocument." + self.selobj.Name + ")")
|
||||
FreeCADGui.Selection.clearSelection()
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class _CommandFemMeshNetgenFromShape(CommandManager):
|
||||
@@ -485,9 +506,10 @@ class _CommandFemMeshNetgenFromShape(CommandManager):
|
||||
import FemGui
|
||||
if FemGui.getActiveAnalysis():
|
||||
FreeCADGui.addModule("FemGui")
|
||||
FreeCADGui.doCommand("FemGui.getActiveAnalysis().addObject(App.ActiveDocument.ActiveObject)")
|
||||
FreeCADGui.doCommand("Gui.ActiveDocument.setEdit(App.ActiveDocument.ActiveObject.Name)")
|
||||
FreeCADGui.doCommand("FemGui.getActiveAnalysis().addObject(FreeCAD.ActiveDocument.ActiveObject)")
|
||||
FreeCADGui.doCommand("FreeCADGui.ActiveDocument.setEdit(FreeCAD.ActiveDocument.ActiveObject.Name)")
|
||||
FreeCADGui.Selection.clearSelection()
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class _CommandFemMeshPrintInfo(CommandManager):
|
||||
@@ -502,11 +524,12 @@ class _CommandFemMeshPrintInfo(CommandManager):
|
||||
|
||||
def Activated(self):
|
||||
FreeCAD.ActiveDocument.openTransaction("Print FEM mesh info")
|
||||
FreeCADGui.doCommand("print(App.ActiveDocument." + self.selobj.Name + ".FemMesh)")
|
||||
FreeCADGui.doCommand("print(FreeCAD.ActiveDocument." + self.selobj.Name + ".FemMesh)")
|
||||
FreeCADGui.addModule("PySide")
|
||||
FreeCADGui.doCommand("mesh_info = str(App.ActiveDocument." + self.selobj.Name + ".FemMesh)")
|
||||
FreeCADGui.doCommand("mesh_info = str(FreeCAD.ActiveDocument." + self.selobj.Name + ".FemMesh)")
|
||||
FreeCADGui.doCommand("PySide.QtGui.QMessageBox.information(None, 'FEM Mesh Info', mesh_info)")
|
||||
FreeCADGui.Selection.clearSelection()
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class _CommandFemMeshRegion(CommandManager):
|
||||
@@ -524,6 +547,7 @@ class _CommandFemMeshRegion(CommandManager):
|
||||
FreeCADGui.addModule("ObjectsFem")
|
||||
FreeCADGui.doCommand("ObjectsFem.makeMeshRegion(FreeCAD.ActiveDocument, FreeCAD.ActiveDocument." + self.selobj.Name + ")")
|
||||
FreeCADGui.Selection.clearSelection()
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class _CommandFemResultShow(CommandManager):
|
||||
@@ -690,6 +714,7 @@ class _CommandFemSolverRun(CommandManager):
|
||||
machine.start()
|
||||
machine.join() # wait for the machine to finish.
|
||||
FreeCADGui.Selection.clearSelection()
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class _CommandFemSolverZ88(CommandManager):
|
||||
@@ -706,6 +731,7 @@ class _CommandFemSolverZ88(CommandManager):
|
||||
FreeCAD.ActiveDocument.openTransaction("Create SolverZ88")
|
||||
FreeCADGui.addModule("ObjectsFem")
|
||||
FreeCADGui.doCommand("FemGui.getActiveAnalysis().addObject(ObjectsFem.makeSolverZ88(FreeCAD.ActiveDocument))")
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
# the string in add command will be the page name on FreeCAD wiki
|
||||
|
||||
Reference in New Issue
Block a user