FEM: objects fem module, sort defs

This commit is contained in:
Bernd Hahnebach
2017-10-05 05:58:50 +01:00
committed by wmayer
parent cdd1d785b3
commit 2c8e984ee7

View File

@@ -182,19 +182,6 @@ def makeElementGeometry2D(doc, thickness=20.0, name="ElementGeometry2D"):
########## material objects ##########
def makeMaterialSolid(doc, name="MechanicalSolidMaterial"):
'''makeMaterialSolid(name): makes an FEM Material for solid'''
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)
# doc.recompute()
return obj
def makeMaterialFluid(doc, name="FluidMaterial"):
'''makeMaterialFluid(name): makes an FEM Material for fluid'''
obj = doc.addObject("App::MaterialObjectPython", name)
@@ -220,7 +207,37 @@ def makeMaterialMechanicalNonlinear(doc, base_material, name="MechanicalMaterial
return obj
def makeMaterialSolid(doc, name="MechanicalSolidMaterial"):
'''makeMaterialSolid(name): makes an FEM Material for solid'''
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)
# doc.recompute()
return obj
########## mesh objects ##########
def makeMeshBoundaryLayer(doc, base_mesh, name="MeshBoundaryLayer"):
'''makeMeshBoundaryLayer([length], [name]): creates a FEM mesh BoundaryLayer object to define boundary layer properties'''
obj = doc.addObject("Fem::FeaturePython", name)
import PyObjects._FemMeshBoundaryLayer
PyObjects._FemMeshBoundaryLayer._FemMeshBoundaryLayer(obj)
# obj.BaseMesh = base_mesh
# App::PropertyLinkList does not support append, we will use a temporary list to append the mesh BoundaryLayer obj. to the list
tmplist = base_mesh.MeshBoundaryLayerList
tmplist.append(obj)
base_mesh.MeshBoundaryLayerList = tmplist
if FreeCAD.GuiUp:
import PyGui._ViewProviderFemMeshBoundaryLayer
PyGui._ViewProviderFemMeshBoundaryLayer._ViewProviderFemMeshBoundaryLayer(obj.ViewObject)
return obj
def makeMeshGmsh(doc, name="FEMMeshGMSH"):
'''makeMeshGmsh(name): makes a GMSH FEM mesh object'''
obj = doc.addObject("Fem::FemMeshObjectPython", name)
@@ -249,23 +266,6 @@ def makeMeshGroup(doc, base_mesh, use_label=False, name="FEMMeshGroup"):
return obj
def makeMeshBoundaryLayer(doc, base_mesh, name="MeshBoundaryLayer"):
'''makeMeshBoundaryLayer([length], [name]): creates a FEM mesh BoundaryLayer object to define boundary layer properties'''
obj = doc.addObject("Fem::FeaturePython", name)
import PyObjects._FemMeshBoundaryLayer
PyObjects._FemMeshBoundaryLayer._FemMeshBoundaryLayer(obj)
# obj.BaseMesh = base_mesh
# App::PropertyLinkList does not support append, we will use a temporary list to append the mesh BoundaryLayer obj. to the list
tmplist = base_mesh.MeshBoundaryLayerList
tmplist.append(obj)
base_mesh.MeshBoundaryLayerList = tmplist
if FreeCAD.GuiUp:
import PyGui._ViewProviderFemMeshBoundaryLayer
PyGui._ViewProviderFemMeshBoundaryLayer._ViewProviderFemMeshBoundaryLayer(obj.ViewObject)
return obj
def makeMeshNetgen(doc, name="FEMMeshNetgen"):
'''makeMeshNetgen(name): makes a Fem MeshShapeNetgenObject object'''
obj = doc.addObject("Fem::FemMeshShapeNetgenObject", name)