From d47f298537e7f3ffd1709b9213f68db1f5851793 Mon Sep 17 00:00:00 2001 From: Bernd Hahnebach Date: Mon, 21 May 2018 14:32:12 +0200 Subject: [PATCH] FEM: commands, add recomputes and replace App and Gui wie FreeCAD and FreeCADGui --- src/Mod/Fem/femcommands/commands.py | 50 ++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 12 deletions(-) diff --git a/src/Mod/Fem/femcommands/commands.py b/src/Mod/Fem/femcommands/commands.py index 4349216157..e8fd0c08ee 100644 --- a/src/Mod/Fem/femcommands/commands.py +++ b/src/Mod/Fem/femcommands/commands.py @@ -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