FEM: objects module, add doc parameter to creation tools

This commit is contained in:
Bernd Hahnebach
2017-09-18 22:28:19 +02:00
committed by wmayer
parent 3d322773fd
commit 0692a83925
19 changed files with 105 additions and 105 deletions

View File

@@ -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:

View File

@@ -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())

View File

@@ -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())

View File

@@ -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())

View File

@@ -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())

View File

@@ -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())

View File

@@ -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())

View File

@@ -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)

View File

@@ -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())

View File

@@ -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()

View File

@@ -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()

View File

@@ -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()

View File

@@ -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()

View File

@@ -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())

View File

@@ -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())

View File

@@ -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"

View File

@@ -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:

View File

@@ -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)

View File

@@ -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: