diff --git a/src/Mod/Fem/ObjectsFem.py b/src/Mod/Fem/ObjectsFem.py index e70a470a39..5579fcbb4f 100644 --- a/src/Mod/Fem/ObjectsFem.py +++ b/src/Mod/Fem/ObjectsFem.py @@ -31,88 +31,88 @@ import FreeCAD ########## analysis objects ########## -def makeAnalysis(name="Analysis"): +def makeAnalysis(doc, name="Analysis"): '''makeAnalysis(name): makes a Fem Analysis object''' - obj = FreeCAD.ActiveDocument.addObject("Fem::FemAnalysisPython", name) + obj = doc.addObject("Fem::FemAnalysisPython", name) return obj ########## constraint objects ########## -def makeConstraintBearing(name="ConstraintBearing"): +def makeConstraintBearing(doc, name="ConstraintBearing"): '''makeConstraintBearing(name): makes a Fem ConstraintBearing object''' - obj = FreeCAD.ActiveDocument.addObject("Fem::ConstraintBearing", name) + obj = doc.addObject("Fem::ConstraintBearing", name) return obj -def makeConstraintContact(name="ConstraintContact"): +def makeConstraintContact(doc, name="ConstraintContact"): '''makeConstraintContact(name): makes a Fem ConstraintContact object''' - obj = FreeCAD.ActiveDocument.addObject("Fem::ConstraintContact", name) + obj = doc.addObject("Fem::ConstraintContact", name) return obj -def makeConstraintDisplacement(name="ConstraintDisplacement"): +def makeConstraintDisplacement(doc, name="ConstraintDisplacement"): '''makeConstraintDisplacement(name): makes a Fem ConstraintDisplacement object''' - obj = FreeCAD.ActiveDocument.addObject("Fem::ConstraintDisplacement", name) + obj = doc.addObject("Fem::ConstraintDisplacement", name) return obj -def makeConstraintFixed(name="ConstraintFixed"): +def makeConstraintFixed(doc, name="ConstraintFixed"): '''makeConstraintFixed(name): makes a Fem ConstraintFixed object''' - obj = FreeCAD.ActiveDocument.addObject("Fem::ConstraintFixed", name) + obj = doc.addObject("Fem::ConstraintFixed", name) return obj -def makeConstraintFluidBoundary(name="ConstraintFluidBoundary"): +def makeConstraintFluidBoundary(doc, name="ConstraintFluidBoundary"): '''makeConstraintFluidBoundary(name): makes a Fem ConstraintForce object''' - obj = FreeCAD.ActiveDocument.addObject("Fem::ConstraintForce", name) + obj = doc.addObject("Fem::ConstraintForce", name) return obj -def makeConstraintForce(name="ConstraintForce"): +def makeConstraintForce(doc, name="ConstraintForce"): '''makeConstraintForce(name): makes a Fem ConstraintForce object''' - obj = FreeCAD.ActiveDocument.addObject("Fem::ConstraintForce", name) + obj = doc.addObject("Fem::ConstraintForce", name) return obj -def makeConstraintGear(name="ConstraintGear"): +def makeConstraintGear(doc, name="ConstraintGear"): '''makeConstraintGear(name): makes a Fem ConstraintGear object''' - obj = FreeCAD.ActiveDocument.addObject("Fem::ConstraintGear", name) + obj = doc.addObject("Fem::ConstraintGear", name) return obj -def makeConstraintHeatflux(name="ConstraintHeatflux"): +def makeConstraintHeatflux(doc, name="ConstraintHeatflux"): '''makeConstraintHeatflux(name): makes a Fem ConstraintHeatflux object''' - obj = FreeCAD.ActiveDocument.addObject("Fem::ConstraintHeatflux", name) + obj = doc.addObject("Fem::ConstraintHeatflux", name) return obj -def makeConstraintInitialTemperature(name="ConstraintInitialTemperature"): +def makeConstraintInitialTemperature(doc, name="ConstraintInitialTemperature"): '''makeConstraintInitialTemperature(name): makes a Fem ConstraintInitialTemperature object''' - obj = FreeCAD.ActiveDocument.addObject("Fem::ConstraintInitialTemperature", name) + obj = doc.addObject("Fem::ConstraintInitialTemperature", name) return obj -def makeConstraintPlaneRotation(name="ConstraintPlaneRotation"): +def makeConstraintPlaneRotation(doc, name="ConstraintPlaneRotation"): '''makeConstraintPlaneRotation(name): makes a Fem ConstraintPlaneRotation object''' - obj = FreeCAD.ActiveDocument.addObject("Fem::ConstraintPlaneRotation", name) + obj = doc.addObject("Fem::ConstraintPlaneRotation", name) return obj -def makeConstraintPressure(name="ConstraintPressure"): +def makeConstraintPressure(doc, name="ConstraintPressure"): '''makeConstraintPressure(name): makes a Fem ConstraintPressure object''' - obj = FreeCAD.ActiveDocument.addObject("Fem::ConstraintPressure", name) + obj = doc.addObject("Fem::ConstraintPressure", name) return obj -def makeConstraintPulley(name="ConstraintPulley"): +def makeConstraintPulley(doc, name="ConstraintPulley"): '''makeConstraintPulley(name): makes a Fem ConstraintPulley object''' - obj = FreeCAD.ActiveDocument.addObject("Fem::ConstraintPulley", name) + obj = doc.addObject("Fem::ConstraintPulley", name) return obj -def makeConstraintSelfWeight(name="ConstraintSelfWeight"): +def makeConstraintSelfWeight(doc, name="ConstraintSelfWeight"): '''makeConstraintSelfWeight([name]): creates an self weight object to define a gravity load''' - obj = FreeCAD.ActiveDocument.addObject("Fem::ConstraintPython", name) + obj = doc.addObject("Fem::ConstraintPython", name) import PyObjects._FemConstraintSelfWeight PyObjects._FemConstraintSelfWeight._FemConstraintSelfWeight(obj) if FreeCAD.GuiUp: @@ -121,22 +121,22 @@ def makeConstraintSelfWeight(name="ConstraintSelfWeight"): return obj -def makeConstraintTemperature(name="ConstraintTemperature"): +def makeConstraintTemperature(doc, name="ConstraintTemperature"): '''makeConstraintTemperature(name): makes a Fem ConstraintTemperature object''' - obj = FreeCAD.ActiveDocument.addObject("Fem::ConstraintTemperature", name) + obj = doc.addObject("Fem::ConstraintTemperature", name) return obj -def makeConstraintTransform(name="ConstraintTransform"): +def makeConstraintTransform(doc, name="ConstraintTransform"): '''makeConstraintTransform(name): makes a Fem ConstraintTransform object''' - obj = FreeCAD.ActiveDocument.addObject("Fem::ConstraintTransform", name) + obj = doc.addObject("Fem::ConstraintTransform", name) return obj ########## element definition objects ########## -def makeElementFluid1D(name="ElementFluid1D"): +def makeElementFluid1D(doc, name="ElementFluid1D"): '''makeElementFluid1D([name]): creates an 1D fluid element object to define 1D flow''' - obj = FreeCAD.ActiveDocument.addObject("Fem::FeaturePython", name) + obj = doc.addObject("Fem::FeaturePython", name) import PyObjects._FemElementFluid1D PyObjects._FemElementFluid1D._FemElementFluid1D(obj) if FreeCAD.GuiUp: @@ -145,9 +145,9 @@ def makeElementFluid1D(name="ElementFluid1D"): return obj -def makeElementGeometry1D(sectiontype='Rectangular', width=10.0, height=25.0, name="ElementGeometry1D"): +def makeElementGeometry1D(doc, sectiontype='Rectangular', width=10.0, height=25.0, name="ElementGeometry1D"): '''makeElementGeometry1D([width], [height], [name]): creates an 1D geometry element object to define a cross section''' - obj = FreeCAD.ActiveDocument.addObject("Fem::FeaturePython", name) + obj = doc.addObject("Fem::FeaturePython", name) import PyObjects._FemElementGeometry1D PyObjects._FemElementGeometry1D._FemElementGeometry1D(obj) sec_types = PyObjects._FemElementGeometry1D._FemElementGeometry1D.known_beam_types @@ -167,9 +167,9 @@ def makeElementGeometry1D(sectiontype='Rectangular', width=10.0, height=25.0, na return obj -def makeElementGeometry2D(thickness=20.0, name="ElementGeometry2D"): +def makeElementGeometry2D(doc, thickness=20.0, name="ElementGeometry2D"): '''makeElementGeometry2D([thickness], [name]): creates an 2D geometry element object to define a plate thickness''' - obj = FreeCAD.ActiveDocument.addObject("Fem::FeaturePython", name) + obj = doc.addObject("Fem::FeaturePython", name) import PyObjects._FemElementGeometry2D PyObjects._FemElementGeometry2D._FemElementGeometry2D(obj) obj.Thickness = thickness @@ -180,35 +180,35 @@ def makeElementGeometry2D(thickness=20.0, name="ElementGeometry2D"): ########## material objects ########## -def makeMaterialSolid(name="MechanicalSolidMaterial"): +def makeMaterialSolid(doc, name="MechanicalSolidMaterial"): '''makeMaterialSolid(name): makes an FEM Material for solid''' - obj = FreeCAD.ActiveDocument.addObject("App::MaterialObjectPython", name) + obj = doc.addObject("App::MaterialObjectPython", name) import PyObjects._FemMaterial PyObjects._FemMaterial._FemMaterial(obj) obj.Category = 'Solid' if FreeCAD.GuiUp: import PyGui._ViewProviderFemMaterial PyGui._ViewProviderFemMaterial._ViewProviderFemMaterial(obj.ViewObject) - # FreeCAD.ActiveDocument.recompute() + # doc.recompute() return obj -def makeMaterialFluid(name="FluidMaterial"): +def makeMaterialFluid(doc, name="FluidMaterial"): '''makeMaterialFluid(name): makes an FEM Material for fluid''' - obj = FreeCAD.ActiveDocument.addObject("App::MaterialObjectPython", name) + obj = doc.addObject("App::MaterialObjectPython", name) import PyObjects._FemMaterial PyObjects._FemMaterial._FemMaterial(obj) obj.Category = 'Fluid' if FreeCAD.GuiUp: import PyGui._ViewProviderFemMaterial PyGui._ViewProviderFemMaterial._ViewProviderFemMaterial(obj.ViewObject) - # FreeCAD.ActiveDocument.recompute() + # doc.recompute() return obj -def makeMaterialMechanicalNonlinear(base_material, name="MechanicalMaterialNonlinear"): +def makeMaterialMechanicalNonlinear(doc, base_material, name="MechanicalMaterialNonlinear"): '''makeMaterialMechanicalNonlinear(base_material, [name]): creates an nonlinear material object''' - obj = FreeCAD.ActiveDocument.addObject("Fem::FeaturePython", name) + obj = doc.addObject("Fem::FeaturePython", name) import PyObjects._FemMaterialMechanicalNonlinear PyObjects._FemMaterialMechanicalNonlinear._FemMaterialMechanicalNonlinear(obj) obj.LinearBaseMaterial = base_material @@ -219,9 +219,9 @@ def makeMaterialMechanicalNonlinear(base_material, name="MechanicalMaterialNonli ########## mesh objects ########## -def makeMeshGmsh(name="FEMMeshGMSH"): +def makeMeshGmsh(doc, name="FEMMeshGMSH"): '''makeMeshGmsh(name): makes a GMSH FEM mesh object''' - obj = FreeCAD.ActiveDocument.addObject("Fem::FemMeshObjectPython", name) + obj = doc.addObject("Fem::FemMeshObjectPython", name) import PyObjects._FemMeshGmsh PyObjects._FemMeshGmsh._FemMeshGmsh(obj) if FreeCAD.GuiUp: @@ -230,9 +230,9 @@ def makeMeshGmsh(name="FEMMeshGMSH"): return obj -def makeMeshGroup(base_mesh, use_label=False, name="FEMMeshGroup"): +def makeMeshGroup(doc, base_mesh, use_label=False, name="FEMMeshGroup"): '''makeMeshGroup([length], [name]): creates a FEM mesh region object to define properties for a regon of a FEM mesh''' - obj = FreeCAD.ActiveDocument.addObject("Fem::FeaturePython", name) + obj = doc.addObject("Fem::FeaturePython", name) import PyObjects._FemMeshGroup PyObjects._FemMeshGroup._FemMeshGroup(obj) obj.UseLabel = use_label @@ -247,9 +247,9 @@ def makeMeshGroup(base_mesh, use_label=False, name="FEMMeshGroup"): return obj -def makeMeshBoundaryLayer(base_mesh, name="MeshBoundaryLayer"): +def makeMeshBoundaryLayer(doc, base_mesh, name="MeshBoundaryLayer"): '''makeMeshBoundaryLayer([length], [name]): creates a FEM mesh BoundaryLayer object to define boundary layer properties''' - obj = FreeCAD.ActiveDocument.addObject("Fem::FeaturePython", name) + obj = doc.addObject("Fem::FeaturePython", name) import PyObjects._FemMeshBoundaryLayer PyObjects._FemMeshBoundaryLayer._FemMeshBoundaryLayer(obj) @@ -264,15 +264,15 @@ def makeMeshBoundaryLayer(base_mesh, name="MeshBoundaryLayer"): return obj -def makeMeshNetgen(name="FEMMeshNetgen"): +def makeMeshNetgen(doc, name="FEMMeshNetgen"): '''makeMeshNetgen(name): makes a Fem MeshShapeNetgenObject object''' - obj = FreeCAD.ActiveDocument.addObject("Fem::FemMeshShapeNetgenObject", name) + obj = doc.addObject("Fem::FemMeshShapeNetgenObject", name) return obj -def makeMeshRegion(base_mesh, element_length=0.0, name="FEMMeshRegion"): +def makeMeshRegion(doc, base_mesh, element_length=0.0, name="FEMMeshRegion"): '''makeMeshRegion([length], [name]): creates a FEM mesh region object to define properties for a regon of a FEM mesh''' - obj = FreeCAD.ActiveDocument.addObject("Fem::FeaturePython", name) + obj = doc.addObject("Fem::FeaturePython", name) import PyObjects._FemMeshRegion PyObjects._FemMeshRegion._FemMeshRegion(obj) obj.CharacteristicLength = element_length @@ -287,9 +287,9 @@ def makeMeshRegion(base_mesh, element_length=0.0, name="FEMMeshRegion"): return obj -def makeMeshResult(name="FEMMeshResult"): +def makeMeshResult(doc, name="FEMMeshResult"): '''(name): makes a Fem MeshResult object''' - obj = FreeCAD.ActiveDocument.addObject("Fem::FemMeshObjectPython", name) + obj = doc.addObject("Fem::FemMeshObjectPython", name) import PyObjects._FemMeshResult PyObjects._FemMeshResult._FemMeshResult(obj) if FreeCAD.GuiUp: @@ -299,9 +299,9 @@ def makeMeshResult(name="FEMMeshResult"): ########## result objects ########## -def makeResultMechanical(name="MechanicalResult"): +def makeResultMechanical(doc, name="MechanicalResult"): '''makeResultMechanical(name): creates an mechanical result object to hold FEM results''' - obj = FreeCAD.ActiveDocument.addObject('Fem::FemResultObjectPython', name) + obj = doc.addObject('Fem::FemResultObjectPython', name) import PyObjects._FemResultMechanical PyObjects._FemResultMechanical._FemResultMechanical(obj) if FreeCAD.GuiUp: @@ -311,9 +311,9 @@ def makeResultMechanical(name="MechanicalResult"): ########## solver objects ########## -def makeSolverCalculix(name="CalculiX"): +def makeSolverCalculix(doc, name="CalculiX"): '''makeSolverCalculix(name): makes a Calculix solver object''' - obj = FreeCAD.ActiveDocument.addObject("Fem::FemSolverObjectPython", name) + obj = doc.addObject("Fem::FemSolverObjectPython", name) import PyObjects._FemSolverCalculix PyObjects._FemSolverCalculix._FemSolverCalculix(obj) if FreeCAD.GuiUp: @@ -322,9 +322,9 @@ def makeSolverCalculix(name="CalculiX"): return obj -def makeSolverZ88(name="Z88"): +def makeSolverZ88(doc, name="Z88"): '''makeSolverZ88(name): makes a Z88 solver object''' - obj = FreeCAD.ActiveDocument.addObject("Fem::FemSolverObjectPython", name) + obj = doc.addObject("Fem::FemSolverObjectPython", name) import PyObjects._FemSolverZ88 PyObjects._FemSolverZ88._FemSolverZ88(obj) if FreeCAD.GuiUp: diff --git a/src/Mod/Fem/PyGui/_CommandFemAnalysis.py b/src/Mod/Fem/PyGui/_CommandFemAnalysis.py index bb99041e21..7c72760fe9 100644 --- a/src/Mod/Fem/PyGui/_CommandFemAnalysis.py +++ b/src/Mod/Fem/PyGui/_CommandFemAnalysis.py @@ -47,14 +47,14 @@ class _CommandFemAnalysis(FemCommands): FreeCAD.ActiveDocument.openTransaction("Create Analysis") FreeCADGui.addModule("FemGui") FreeCADGui.addModule("ObjectsFem") - FreeCADGui.doCommand("ObjectsFem.makeAnalysis('Analysis')") - FreeCADGui.doCommand("FemGui.setActiveAnalysis(App.activeDocument().ActiveObject)") - FreeCADGui.doCommand("ObjectsFem.makeSolverCalculix('CalculiX')") - FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [App.activeDocument().ActiveObject]") + FreeCADGui.doCommand("ObjectsFem.makeAnalysis(FreeCAD.ActiveDocument, 'Analysis')") + FreeCADGui.doCommand("FemGui.setActiveAnalysis(FreeCAD.ActiveDocument.ActiveObject)") + FreeCADGui.doCommand("ObjectsFem.makeSolverCalculix(FreeCAD.ActiveDocument, 'CalculiX')") + FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [FreeCAD.ActiveDocument.ActiveObject]") sel = FreeCADGui.Selection.getSelection() if (len(sel) == 1): if(sel[0].isDerivedFrom("Fem::FemMeshObject")): - FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [App.activeDocument()." + sel[0].Name + "]") + FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [FreeCAD.ActiveDocument." + sel[0].Name + "]") FreeCADGui.Selection.clearSelection() FreeCADGui.addCommand('FEM_Analysis', _CommandFemAnalysis()) diff --git a/src/Mod/Fem/PyGui/_CommandFemConstraintSelfWeight.py b/src/Mod/Fem/PyGui/_CommandFemConstraintSelfWeight.py index 2cf8487958..8f4fda1e72 100644 --- a/src/Mod/Fem/PyGui/_CommandFemConstraintSelfWeight.py +++ b/src/Mod/Fem/PyGui/_CommandFemConstraintSelfWeight.py @@ -46,7 +46,7 @@ class _CommandFemConstraintSelfWeight(FemCommands): def Activated(self): FreeCAD.ActiveDocument.openTransaction("Create FemConstraintSelfWeight") FreeCADGui.addModule("ObjectsFem") - FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [ObjectsFem.makeConstraintSelfWeight()]") + FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [ObjectsFem.makeConstraintSelfWeight(FreeCAD.ActiveDocument)]") FreeCADGui.addCommand('FEM_ConstraintSelfWeight', _CommandFemConstraintSelfWeight()) diff --git a/src/Mod/Fem/PyGui/_CommandFemElementFluid1D.py b/src/Mod/Fem/PyGui/_CommandFemElementFluid1D.py index d0fad7de16..b364e6fb26 100644 --- a/src/Mod/Fem/PyGui/_CommandFemElementFluid1D.py +++ b/src/Mod/Fem/PyGui/_CommandFemElementFluid1D.py @@ -47,7 +47,7 @@ class _CommandFemElementFluid1D(FemCommands): def Activated(self): FreeCAD.ActiveDocument.openTransaction("Create FemElementFluid1D") FreeCADGui.addModule("ObjectsFem") - FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [ObjectsFem.makeElementFluid1D()]") + FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [ObjectsFem.makeElementFluid1D(FreeCAD.ActiveDocument)]") FreeCADGui.addCommand('FEM_ElementFluid1D', _CommandFemElementFluid1D()) diff --git a/src/Mod/Fem/PyGui/_CommandFemElementGeometry1D.py b/src/Mod/Fem/PyGui/_CommandFemElementGeometry1D.py index 78de297a87..a1f19024aa 100644 --- a/src/Mod/Fem/PyGui/_CommandFemElementGeometry1D.py +++ b/src/Mod/Fem/PyGui/_CommandFemElementGeometry1D.py @@ -46,7 +46,7 @@ class _CommandFemElementGeometry1D(FemCommands): def Activated(self): FreeCAD.ActiveDocument.openTransaction("Create FemElementGeometry1D") FreeCADGui.addModule("ObjectsFem") - FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [ObjectsFem.makeElementGeometry1D()]") + FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [ObjectsFem.makeElementGeometry1D(FreeCAD.ActiveDocument)]") FreeCADGui.addCommand('FEM_ElementGeometry1D', _CommandFemElementGeometry1D()) diff --git a/src/Mod/Fem/PyGui/_CommandFemElementGeometry2D.py b/src/Mod/Fem/PyGui/_CommandFemElementGeometry2D.py index a74a6a6f65..3e7048001e 100644 --- a/src/Mod/Fem/PyGui/_CommandFemElementGeometry2D.py +++ b/src/Mod/Fem/PyGui/_CommandFemElementGeometry2D.py @@ -46,7 +46,7 @@ class _CommandFemElementGeometry2D(FemCommands): def Activated(self): FreeCAD.ActiveDocument.openTransaction("Create FemElementGeometry2D") FreeCADGui.addModule("ObjectsFem") - FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [ObjectsFem.makeElementGeometry2D()]") + FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [ObjectsFem.makeElementGeometry2D(FreeCAD.ActiveDocument)]") FreeCADGui.addCommand('FEM_ElementGeometry2D', _CommandFemElementGeometry2D()) diff --git a/src/Mod/Fem/PyGui/_CommandFemMaterialFluid.py b/src/Mod/Fem/PyGui/_CommandFemMaterialFluid.py index 91d8c8e83c..97fb112773 100644 --- a/src/Mod/Fem/PyGui/_CommandFemMaterialFluid.py +++ b/src/Mod/Fem/PyGui/_CommandFemMaterialFluid.py @@ -50,9 +50,9 @@ class _CommandFemMaterialFluid(FemCommands): FreeCADGui.setActiveDocument(femDoc) FreeCAD.ActiveDocument.openTransaction("Create Fluid Material") FreeCADGui.addModule("ObjectsFem") - FreeCADGui.doCommand("ObjectsFem.makeMaterialFluid('FluidMaterial')") - FreeCADGui.doCommand("App.activeDocument()." + FemGui.getActiveAnalysis().Name + ".Member = App.activeDocument()." + FemGui.getActiveAnalysis().Name + ".Member + [App.ActiveDocument.ActiveObject]") - FreeCADGui.doCommand("Gui.activeDocument().setEdit(App.ActiveDocument.ActiveObject.Name)") + FreeCADGui.doCommand("ObjectsFem.makeMaterialFluid(FreeCAD.ActiveDocument, 'FluidMaterial')") + FreeCADGui.doCommand("FreeCAD.ActiveDocument." + FemGui.getActiveAnalysis().Name + ".Member = FreeCAD.ActiveDocument." + FemGui.getActiveAnalysis().Name + ".Member + [App.ActiveDocument.ActiveObject]") + FreeCADGui.doCommand("FreeCADGui.ActiveDocument.setEdit(FreeCAD.ActiveDocument.ActiveObject.Name)") FreeCADGui.addCommand('FEM_MaterialFluid', _CommandFemMaterialFluid()) diff --git a/src/Mod/Fem/PyGui/_CommandFemMaterialMechanicalNonlinear.py b/src/Mod/Fem/PyGui/_CommandFemMaterialMechanicalNonlinear.py index 25313f7f15..86d191cafd 100644 --- a/src/Mod/Fem/PyGui/_CommandFemMaterialMechanicalNonlinear.py +++ b/src/Mod/Fem/PyGui/_CommandFemMaterialMechanicalNonlinear.py @@ -56,8 +56,8 @@ class _CommandFemMaterialMechanicalNonlinear(FemCommands): allow_nonlinear_material = False break if allow_nonlinear_material: - string_lin_mat_obj = "App.ActiveDocument.getObject('" + lin_mat_obj.Name + "')" - command_to_run = "FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [ObjectsFem.makeMaterialMechanicalNonlinear(" + string_lin_mat_obj + ")]" + string_lin_mat_obj = "FreeCAD.ActiveDocument.getObject('" + lin_mat_obj.Name + "')" + command_to_run = "FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [ObjectsFem.makeMaterialMechanicalNonlinear(FreeCAD.ActiveDocument, " + string_lin_mat_obj + ")]" FreeCAD.ActiveDocument.openTransaction("Create FemMaterialMechanicalNonlinear") FreeCADGui.addModule("ObjectsFem") FreeCADGui.doCommand(command_to_run) diff --git a/src/Mod/Fem/PyGui/_CommandFemMaterialSolid.py b/src/Mod/Fem/PyGui/_CommandFemMaterialSolid.py index a1e579786f..4ca9725f2c 100644 --- a/src/Mod/Fem/PyGui/_CommandFemMaterialSolid.py +++ b/src/Mod/Fem/PyGui/_CommandFemMaterialSolid.py @@ -50,9 +50,9 @@ class _CommandFemMaterialSolid(FemCommands): FreeCADGui.setActiveDocument(femDoc) FreeCAD.ActiveDocument.openTransaction("Create Solid Material") FreeCADGui.addModule("ObjectsFem") - FreeCADGui.doCommand("ObjectsFem.makeMaterialSolid('SolidMaterial')") - FreeCADGui.doCommand("App.activeDocument()." + FemGui.getActiveAnalysis().Name + ".Member = App.activeDocument()." + FemGui.getActiveAnalysis().Name + ".Member + [App.ActiveDocument.ActiveObject]") - FreeCADGui.doCommand("Gui.activeDocument().setEdit(App.ActiveDocument.ActiveObject.Name)") + FreeCADGui.doCommand("ObjectsFem.makeMaterialSolid(FreeCAD.ActiveDocument, 'SolidMaterial')") + FreeCADGui.doCommand("FreeCAD.ActiveDocument." + FemGui.getActiveAnalysis().Name + ".Member = FreeCAD.ActiveDocument." + FemGui.getActiveAnalysis().Name + ".Member + [FreeCAD.ActiveDocument.ActiveObject]") + FreeCADGui.doCommand("FreeCADGui.ActiveDocument.setEdit(FreeCAD.ActiveDocument.ActiveObject.Name)") FreeCADGui.addCommand('FEM_MaterialSolid', _CommandFemMaterialSolid()) diff --git a/src/Mod/Fem/PyGui/_CommandFemMeshBoundaryLayer.py b/src/Mod/Fem/PyGui/_CommandFemMeshBoundaryLayer.py index 849559fea9..22118def9f 100644 --- a/src/Mod/Fem/PyGui/_CommandFemMeshBoundaryLayer.py +++ b/src/Mod/Fem/PyGui/_CommandFemMeshBoundaryLayer.py @@ -50,7 +50,7 @@ class _CommandFemMeshBoundaryLayer(FemCommands): if (len(sel) == 1): sobj = sel[0] if len(sel) == 1 and hasattr(sobj, "Proxy") and sobj.Proxy.Type == "FemMeshGmsh": - FreeCADGui.doCommand("ObjectsFem.makeMeshBoundaryLayer(App.ActiveDocument." + sobj.Name + ")") + FreeCADGui.doCommand("ObjectsFem.makeMeshBoundaryLayer(FreeCAD.ActiveDocument, FreeCAD.ActiveDocument." + sobj.Name + ")") FreeCADGui.Selection.clearSelection() diff --git a/src/Mod/Fem/PyGui/_CommandFemMeshGmshFromShape.py b/src/Mod/Fem/PyGui/_CommandFemMeshGmshFromShape.py index 6472ff263c..022dc1e1ad 100644 --- a/src/Mod/Fem/PyGui/_CommandFemMeshGmshFromShape.py +++ b/src/Mod/Fem/PyGui/_CommandFemMeshGmshFromShape.py @@ -52,12 +52,12 @@ class _CommandFemMeshGmshFromShape(FemCommands): mesh_obj_name = 'FEMMeshGMSH' # mesh_obj_name = sel[0].Name + "_Mesh" # if requested by some people add Preference for this FreeCADGui.addModule("ObjectsFem") - FreeCADGui.doCommand("ObjectsFem.makeMeshGmsh('" + mesh_obj_name + "')") - FreeCADGui.doCommand("App.ActiveDocument.ActiveObject.Part = App.ActiveDocument." + sel[0].Name) + FreeCADGui.doCommand("ObjectsFem.makeMeshGmsh(FreeCAD.ActiveDocument, '" + mesh_obj_name + "')") + FreeCADGui.doCommand("FreeCAD.ActiveDocument.ActiveObject.Part = FreeCAD.ActiveDocument." + sel[0].Name) if FemGui.getActiveAnalysis(): FreeCADGui.addModule("FemGui") - FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [App.ActiveDocument.ActiveObject]") - FreeCADGui.doCommand("Gui.ActiveDocument.setEdit(App.ActiveDocument.ActiveObject.Name)") + FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [FreeCAD.ActiveDocument.ActiveObject]") + FreeCADGui.doCommand("Gui.ActiveDocument.setEdit(FreeCAD.ActiveDocument.ActiveObject.Name)") FreeCADGui.Selection.clearSelection() diff --git a/src/Mod/Fem/PyGui/_CommandFemMeshGroup.py b/src/Mod/Fem/PyGui/_CommandFemMeshGroup.py index 787a701e09..4954380a7f 100644 --- a/src/Mod/Fem/PyGui/_CommandFemMeshGroup.py +++ b/src/Mod/Fem/PyGui/_CommandFemMeshGroup.py @@ -50,7 +50,7 @@ class _CommandFemMeshGroup(FemCommands): if (len(sel) == 1): sobj = sel[0] if len(sel) == 1 and hasattr(sobj, "Proxy") and sobj.Proxy.Type == "FemMeshGmsh": - FreeCADGui.doCommand("ObjectsFem.makeMeshGroup(App.ActiveDocument." + sobj.Name + ")") + FreeCADGui.doCommand("ObjectsFem.makeMeshGroup(FreeCAD.ActiveDocument, FreeCAD.ActiveDocument." + sobj.Name + ")") FreeCADGui.Selection.clearSelection() diff --git a/src/Mod/Fem/PyGui/_CommandFemMeshRegion.py b/src/Mod/Fem/PyGui/_CommandFemMeshRegion.py index 0a7624dd48..83d913e2cd 100644 --- a/src/Mod/Fem/PyGui/_CommandFemMeshRegion.py +++ b/src/Mod/Fem/PyGui/_CommandFemMeshRegion.py @@ -50,7 +50,7 @@ class _CommandFemMeshRegion(FemCommands): if (len(sel) == 1): sobj = sel[0] if len(sel) == 1 and hasattr(sobj, "Proxy") and sobj.Proxy.Type == "FemMeshGmsh": - FreeCADGui.doCommand("ObjectsFem.makeMeshRegion(App.ActiveDocument." + sobj.Name + ")") + FreeCADGui.doCommand("ObjectsFem.makeMeshRegion(FreeCAD.ActiveDocument, FreeCAD.ActiveDocument." + sobj.Name + ")") FreeCADGui.Selection.clearSelection() diff --git a/src/Mod/Fem/PyGui/_CommandFemSolverCalculix.py b/src/Mod/Fem/PyGui/_CommandFemSolverCalculix.py index e72fcf2fde..0c83598666 100644 --- a/src/Mod/Fem/PyGui/_CommandFemSolverCalculix.py +++ b/src/Mod/Fem/PyGui/_CommandFemSolverCalculix.py @@ -52,12 +52,12 @@ class _CommandFemSolverCalculix(FemCommands): FreeCAD.ActiveDocument.openTransaction("Create SolverCalculix") FreeCADGui.addModule("ObjectsFem") if has_nonlinear_material_obj: - FreeCADGui.doCommand("solver = ObjectsFem.makeSolverCalculix()") + FreeCADGui.doCommand("solver = ObjectsFem.makeSolverCalculix(FreeCAD.ActiveDocument)") FreeCADGui.doCommand("solver.GeometricalNonlinearity = 'nonlinear'") FreeCADGui.doCommand("solver.MaterialNonlinearity = 'nonlinear'") FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [solver]") else: - FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [ObjectsFem.makeSolverCalculix()]") + FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [ObjectsFem.makeSolverCalculix(FreeCAD.ActiveDocument)]") FreeCADGui.addCommand('FEM_SolverCalculix', _CommandFemSolverCalculix()) diff --git a/src/Mod/Fem/PyGui/_CommandFemSolverZ88.py b/src/Mod/Fem/PyGui/_CommandFemSolverZ88.py index 694e04732a..5b5c2a7c7b 100644 --- a/src/Mod/Fem/PyGui/_CommandFemSolverZ88.py +++ b/src/Mod/Fem/PyGui/_CommandFemSolverZ88.py @@ -46,7 +46,7 @@ class _CommandFemSolverZ88(FemCommands): def Activated(self): FreeCAD.ActiveDocument.openTransaction("Create SolverZ88") FreeCADGui.addModule("ObjectsFem") - FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [ObjectsFem.makeSolverZ88()]") + FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [ObjectsFem.makeSolverZ88(FreeCAD.ActiveDocument)]") FreeCADGui.addCommand('FEM_SolverZ88', _CommandFemSolverZ88()) diff --git a/src/Mod/Fem/TestFem.py b/src/Mod/Fem/TestFem.py index e9222bb082..6e49397997 100644 --- a/src/Mod/Fem/TestFem.py +++ b/src/Mod/Fem/TestFem.py @@ -384,11 +384,11 @@ class FemCcxAnalysisTest(unittest.TestCase): fcc_print('--------------- Start of FEM tests ---------------') box = self.active_doc.addObject("Part::Box", "Box") fcc_print('Checking FEM new analysis...') - analysis = ObjectsFem.makeAnalysis('Analysis') + analysis = ObjectsFem.makeAnalysis(self.active_doc, 'Analysis') self.assertTrue(analysis, "FemTest of new analysis failed") fcc_print('Checking FEM new solver...') - solver_object = ObjectsFem.makeSolverCalculix('CalculiX') + solver_object = ObjectsFem.makeSolverCalculix(self.active_doc, 'CalculiX') solver_object.GeometricalNonlinearity = 'linear' solver_object.ThermoMechSteadyState = False solver_object.MatrixSolverType = 'default' @@ -400,7 +400,7 @@ class FemCcxAnalysisTest(unittest.TestCase): analysis.Member = analysis.Member + [solver_object] fcc_print('Checking FEM new material...') - new_material_object = ObjectsFem.makeMaterialSolid('MechanicalMaterial') + new_material_object = ObjectsFem.makeMaterialSolid(self.active_doc, 'MechanicalMaterial') mat = new_material_object.Material mat['Name'] = "Steel-Generic" mat['YoungsModulus'] = "200000 MPa" @@ -558,11 +558,11 @@ class FemCcxAnalysisTest(unittest.TestCase): box.Width = 25.4 box.Length = 203.2 fcc_print('Checking FEM new analysis...') - analysis = ObjectsFem.makeAnalysis('Analysis') + analysis = ObjectsFem.makeAnalysis(self.active_doc, 'Analysis') self.assertTrue(analysis, "FemTest of new analysis failed") fcc_print('Checking FEM new solver...') - solver_object = ObjectsFem.makeSolverCalculix('CalculiX') + solver_object = ObjectsFem.makeSolverCalculix(self.active_doc, 'CalculiX') solver_object.AnalysisType = 'thermomech' solver_object.GeometricalNonlinearity = 'linear' solver_object.ThermoMechSteadyState = True @@ -573,7 +573,7 @@ class FemCcxAnalysisTest(unittest.TestCase): analysis.Member = analysis.Member + [solver_object] fcc_print('Checking FEM new material...') - new_material_object = ObjectsFem.makeMaterialSolid('MechanicalMaterial') + new_material_object = ObjectsFem.makeMaterialSolid(self.active_doc, 'MechanicalMaterial') mat = new_material_object.Material mat['Name'] = "Steel-Generic" mat['YoungsModulus'] = "200000 MPa" @@ -712,11 +712,11 @@ class FemCcxAnalysisTest(unittest.TestCase): points = [p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27] line = Draft.makeWire(points, closed=False, face=False, support=None) fcc_print('Checking FEM new analysis...') - analysis = ObjectsFem.makeAnalysis('Analysis') + analysis = ObjectsFem.makeAnalysis(self.active_doc, 'Analysis') self.assertTrue(analysis, "FemTest of new analysis failed") fcc_print('Checking FEM new solver...') - solver_object = ObjectsFem.makeSolverCalculix('CalculiX') + solver_object = ObjectsFem.makeSolverCalculix(self.active_doc, 'CalculiX') solver_object.AnalysisType = 'thermomech' solver_object.GeometricalNonlinearity = 'linear' solver_object.ThermoMechSteadyState = True @@ -727,7 +727,7 @@ class FemCcxAnalysisTest(unittest.TestCase): analysis.Member = analysis.Member + [solver_object] fcc_print('Checking FEM new material...') - new_material_object = ObjectsFem.makeMaterialFluid('FluidMaterial') + new_material_object = ObjectsFem.makeMaterialFluid(self.active_doc, 'FluidMaterial') mat = new_material_object.Material mat['Name'] = "Water" mat['Density'] = "998 kg/m^3" diff --git a/src/Mod/Fem/importCcxFrdResults.py b/src/Mod/Fem/importCcxFrdResults.py index 97b30ab599..2b28fcdd30 100644 --- a/src/Mod/Fem/importCcxFrdResults.py +++ b/src/Mod/Fem/importCcxFrdResults.py @@ -72,7 +72,7 @@ def importFrd(filename, analysis=None, result_name_prefix=None): analysis_object = analysis mesh = importToolsFem.make_femmesh(m) - result_mesh_object = ObjectsFem.makeMeshResult('Result_mesh') + result_mesh_object = ObjectsFem.makeMeshResult(FreeCAD.ActiveDocument, 'Result_mesh') result_mesh_object.FemMesh = mesh positions = [] @@ -97,7 +97,7 @@ def importFrd(filename, analysis=None, result_name_prefix=None): else: results_name = result_name_prefix + 'results' - results = ObjectsFem.makeResultMechanical(results_name) + results = ObjectsFem.makeResultMechanical(FreeCAD.ActiveDocument, results_name) results.Mesh = result_mesh_object results = importToolsFem.fill_femresult_mechanical(results, result_set, span) if analysis: diff --git a/src/Mod/Fem/importVTKResults.py b/src/Mod/Fem/importVTKResults.py index ccf308e5e6..f087eb4267 100644 --- a/src/Mod/Fem/importVTKResults.py +++ b/src/Mod/Fem/importVTKResults.py @@ -82,7 +82,7 @@ def importVTK(filename, analysis=None, result_name_prefix=None): # if properties can be added in FemVTKTools importCfdResult(), this file can be used for CFD workbench results_name = result_name_prefix + 'results' - result_obj = ObjectsFem.makeResultMechanical(results_name) + result_obj = ObjectsFem.makeResultMechanical(FreeCAD.ActiveDocument, results_name) Fem.readResult(filename, result_obj.Name) # readResult always creates a new femmesh named ResultMesh # workaround for the DisplacementLengths (They should have been calculated by Fem.readResult) diff --git a/src/Mod/Fem/importZ88O2Results.py b/src/Mod/Fem/importZ88O2Results.py index 1b6d0e35cf..8c3db0c206 100644 --- a/src/Mod/Fem/importZ88O2Results.py +++ b/src/Mod/Fem/importZ88O2Results.py @@ -86,7 +86,7 @@ def import_z88_disp(filename, analysis=None, result_name_prefix=None): mesh_file = filename.replace('o2', 'i1') mesh_data = importZ88Mesh.read_z88_mesh(mesh_file) femmesh = importToolsFem.make_femmesh(mesh_data) - result_mesh_object = ObjectsFem.makeMeshResult('Result_mesh') + result_mesh_object = ObjectsFem.makeMeshResult(FreeCAD.ActiveDocument, 'Result_mesh') result_mesh_object.FemMesh = femmesh else: FreeCAD.Console.PrintError('Z88 mesh file z88i1.txt not found!') @@ -95,7 +95,7 @@ def import_z88_disp(filename, analysis=None, result_name_prefix=None): for result_set in disp_read['Results']: results_name = result_name_prefix + 'results' - results = ObjectsFem.makeResultMechanical(results_name) + results = ObjectsFem.makeResultMechanical(FreeCAD.ActiveDocument, results_name) results.Mesh = result_mesh_object results = importToolsFem.fill_femresult_mechanical(results, result_set, 0) if analysis: