| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | __title__ = "Objects FEM" |
| | __author__ = "Bernd Hahnebach" |
| | __url__ = "https://www.freecad.org" |
| |
|
| | |
| | |
| |
|
| | import FreeCAD |
| |
|
| |
|
| | |
| | |
| |
|
| | |
| | |
| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| |
|
| |
|
| | |
| | def makeAnalysis(doc, name="Analysis"): |
| | """makeAnalysis(document, [name]): |
| | makes a Fem Analysis object""" |
| | obj = doc.addObject("Fem::FemAnalysis", name) |
| | return obj |
| |
|
| |
|
| | |
| | def makeConstantVacuumPermittivity(doc, name="ConstantVacuumPermittivity"): |
| | """makeConstantVacuumPermittivity(document, [name]): |
| | makes a Fem ConstantVacuumPermittivity object""" |
| | obj = doc.addObject("Fem::ConstraintPython", name) |
| | from femobjects import constant_vacuumpermittivity |
| |
|
| | constant_vacuumpermittivity.ConstantVacuumPermittivity(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_constant_vacuumpermittivity |
| |
|
| | view_constant_vacuumpermittivity.VPConstantVacuumPermittivity(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | |
| | def makeConstraintBearing(doc, name="ConstraintBearing"): |
| | """makeConstraintBearing(document, [name]): |
| | makes a Fem ConstraintBearing object""" |
| | obj = doc.addObject("Fem::ConstraintBearing", name) |
| | return obj |
| |
|
| |
|
| | def makeConstraintBodyHeatSource(doc, name="ConstraintBodyHeatSource"): |
| | """makeConstraintBodyHeatSource(document, [name]): |
| | makes a Fem ConstraintBodyHeatSource object""" |
| | obj = doc.addObject("Fem::ConstraintPython", name) |
| | from femobjects import constraint_bodyheatsource |
| |
|
| | constraint_bodyheatsource.ConstraintBodyHeatSource(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_constraint_bodyheatsource as viewprov |
| |
|
| | viewprov.VPConstraintBodyHeatSource(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makeConstraintCentrif(doc, name="ConstraintCentrif"): |
| | """makeConstraintCentrif(document, [name]): |
| | creates a centrif object to define centrifugal body load constraint""" |
| | obj = doc.addObject("Fem::ConstraintPython", name) |
| | from femobjects import constraint_centrif |
| |
|
| | constraint_centrif.ConstraintCentrif(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_constraint_centrif |
| |
|
| | view_constraint_centrif.VPConstraintCentrif(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makeConstraintCurrentDensity(doc, name="ConstraintCurrentDensity"): |
| | """makeConstraintCurrentDensity(document, [name]): |
| | makes a Fem CurrentDensity object""" |
| | obj = doc.addObject("Fem::ConstraintPython", name) |
| | from femobjects import constraint_currentdensity |
| |
|
| | constraint_currentdensity.ConstraintCurrentDensity(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_constraint_currentdensity |
| |
|
| | view_constraint_currentdensity.VPConstraintCurrentDensity(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makeConstraintContact(doc, name="ConstraintContact"): |
| | """makeConstraintContact(document, [name]): |
| | makes a Fem ConstraintContact object""" |
| | obj = doc.addObject("Fem::ConstraintContact", name) |
| | return obj |
| |
|
| |
|
| | def makeConstraintDisplacement(doc, name="ConstraintDisplacement"): |
| | """makeConstraintDisplacement(document, [name]): |
| | makes a Fem ConstraintDisplacement object""" |
| | obj = doc.addObject("Fem::ConstraintDisplacement", name) |
| | return obj |
| |
|
| |
|
| | def makeConstraintElectricChargeDensity(doc, name="ElectricChargeDensity"): |
| | """makeConstraintElectricChargeDensity(document, [name]): |
| | makes a Fem ElectricChargeDensity object""" |
| | obj = doc.addObject("Fem::ConstraintPython", name) |
| | from femobjects import constraint_electricchargedensity |
| |
|
| | constraint_electricchargedensity.ConstraintElectricChargeDensity(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_constraint_electricchargedensity |
| |
|
| | view_constraint_electricchargedensity.VPConstraintElectricChargeDensity(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makeConstraintElectrostaticPotential(doc, name="ConstraintElectrostaticPotential"): |
| | """makeConstraintElectrostaticPotential(document, [name]): |
| | makes a Fem ElectrostaticPotential object""" |
| | obj = doc.addObject("Fem::ConstraintPython", name) |
| | from femobjects import constraint_electrostaticpotential |
| |
|
| | constraint_electrostaticpotential.ConstraintElectrostaticPotential(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_constraint_electrostaticpotential |
| |
|
| | view_constraint_electrostaticpotential.VPConstraintElectroStaticPotential(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makeConstraintFixed(doc, name="ConstraintFixed"): |
| | """makeConstraintFixed(document, [name]): |
| | makes a Fem ConstraintFixed object""" |
| | obj = doc.addObject("Fem::ConstraintFixed", name) |
| | return obj |
| |
|
| |
|
| | def makeConstraintRigidBody(doc, name="ConstraintRigidBody"): |
| | """makeConstraintRigidBody(document, [name]): |
| | makes a Fem ConstraintRigidBody object""" |
| | obj = doc.addObject("Fem::ConstraintRigidBody", name) |
| | return obj |
| |
|
| |
|
| | def makeConstraintFlowVelocity(doc, name="ConstraintFlowVelocity"): |
| | """makeConstraintFlowVelocity(document, [name]): |
| | makes a Fem ConstraintFlowVelocity object""" |
| | obj = doc.addObject("Fem::ConstraintPython", name) |
| | from femobjects import constraint_flowvelocity |
| |
|
| | constraint_flowvelocity.ConstraintFlowVelocity(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_constraint_flowvelocity |
| |
|
| | view_constraint_flowvelocity.VPConstraintFlowVelocity(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makeConstraintFluidBoundary(doc, name="ConstraintFluidBoundary"): |
| | """makeConstraintFluidBoundary(document, name): |
| | makes a Fem ConstraintFluidBoundary object""" |
| | obj = doc.addObject("Fem::ConstraintFluidBoundary", name) |
| | return obj |
| |
|
| |
|
| | def makeConstraintForce(doc, name="ConstraintForce"): |
| | """makeConstraintForce(document, [name]): |
| | makes a Fem ConstraintForce object""" |
| | obj = doc.addObject("Fem::ConstraintForce", name) |
| | return obj |
| |
|
| |
|
| | def makeConstraintGear(doc, name="ConstraintGear"): |
| | """makeConstraintGear(document, [name]): |
| | makes a Fem ConstraintGear object""" |
| | obj = doc.addObject("Fem::ConstraintGear", name) |
| | return obj |
| |
|
| |
|
| | def makeConstraintHeatflux(doc, name="ConstraintHeatflux"): |
| | """makeConstraintHeatflux(document, [name]): |
| | makes a Fem ConstraintHeatflux object""" |
| | obj = doc.addObject("Fem::ConstraintHeatflux", name) |
| | return obj |
| |
|
| |
|
| | def makeConstraintInitialFlowVelocity(doc, name="ConstraintInitialFlowVelocity"): |
| | """makeConstraintInitialFlowVelocity(document, [name]): |
| | makes a Fem ConstraintInitialFlowVelocity object""" |
| | obj = doc.addObject("Fem::ConstraintPython", name) |
| | from femobjects import constraint_initialflowvelocity |
| |
|
| | constraint_initialflowvelocity.ConstraintInitialFlowVelocity(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_constraint_initialflowvelocity |
| |
|
| | view_constraint_initialflowvelocity.VPConstraintInitialFlowVelocity(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makeConstraintInitialPressure(doc, name="ConstraintInitialPressure"): |
| | """makeConstraintInitialPressure(document, [name]): |
| | makes a Fem ConstraintInitialPressure object""" |
| | obj = doc.addObject("Fem::ConstraintPython", name) |
| | from femobjects import constraint_initialpressure |
| |
|
| | constraint_initialpressure.ConstraintInitialPressure(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_constraint_initialpressure |
| |
|
| | view_constraint_initialpressure.VPConstraintInitialPressure(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makeConstraintInitialTemperature(doc, name="ConstraintInitialTemperature"): |
| | """makeConstraintInitialTemperature(document, name): |
| | makes a Fem ConstraintInitialTemperature object""" |
| | obj = doc.addObject("Fem::ConstraintInitialTemperature", name) |
| | return obj |
| |
|
| |
|
| | def makeConstraintMagnetization(doc, name="ConstraintMagnetization"): |
| | """makeConstraintMagnetization(document, [name]): |
| | makes a Fem Magnetization object""" |
| | obj = doc.addObject("Fem::ConstraintPython", name) |
| | from femobjects import constraint_magnetization |
| |
|
| | constraint_magnetization.ConstraintMagnetization(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_constraint_magnetization |
| |
|
| | view_constraint_magnetization.VPConstraintMagnetization(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makeConstraintPlaneRotation(doc, name="ConstraintPlaneRotation"): |
| | """makeConstraintPlaneRotation(document, [name]): |
| | makes a Fem ConstraintPlaneRotation object""" |
| | obj = doc.addObject("Fem::ConstraintPlaneRotation", name) |
| | return obj |
| |
|
| |
|
| | def makeConstraintPressure(doc, name="ConstraintPressure"): |
| | """makeConstraintPressure(document, [name]): |
| | makes a Fem ConstraintPressure object""" |
| | obj = doc.addObject("Fem::ConstraintPressure", name) |
| | return obj |
| |
|
| |
|
| | def makeConstraintPulley(doc, name="ConstraintPulley"): |
| | """makeConstraintPulley(document, [name]): |
| | makes a Fem ConstraintPulley object""" |
| | obj = doc.addObject("Fem::ConstraintPulley", name) |
| | return obj |
| |
|
| |
|
| | def makeConstraintSelfWeight(doc, name="ConstraintSelfWeight"): |
| | """makeConstraintSelfWeight(document, [name]): |
| | creates a self weight object to define a gravity load""" |
| | obj = doc.addObject("Fem::ConstraintPython", name) |
| | from femobjects import constraint_selfweight |
| |
|
| | constraint_selfweight.ConstraintSelfWeight(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_constraint_selfweight |
| |
|
| | view_constraint_selfweight.VPConstraintSelfWeight(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makeConstraintTemperature(doc, name="ConstraintTemperature"): |
| | """makeConstraintTemperature(document, [name]): |
| | makes a Fem ConstraintTemperature object""" |
| | obj = doc.addObject("Fem::ConstraintTemperature", name) |
| | return obj |
| |
|
| |
|
| | def makeConstraintTie(doc, name="ConstraintTie"): |
| | """makeConstraintTie(document, [name]): |
| | creates a tie object to define bonded faces constraint""" |
| | obj = doc.addObject("Fem::ConstraintPython", name) |
| | from femobjects import constraint_tie |
| |
|
| | constraint_tie.ConstraintTie(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_constraint_tie |
| |
|
| | view_constraint_tie.VPConstraintTie(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makeConstraintTransform(doc, name="ConstraintTransform"): |
| | """makeConstraintTransform(document, [name]): |
| | makes a Fem ConstraintTransform object""" |
| | obj = doc.addObject("Fem::ConstraintTransform", name) |
| | return obj |
| |
|
| |
|
| | def makeConstraintSectionPrint(doc, name="ConstraintSectionPrint"): |
| | """makeConstraintSectionPrint(document, [name]): |
| | creates a section print object to evaluate forces and moments of defined face""" |
| | obj = doc.addObject("Fem::ConstraintPython", name) |
| | from femobjects import constraint_sectionprint |
| |
|
| | constraint_sectionprint.ConstraintSectionPrint(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_constraint_sectionprint |
| |
|
| | view_constraint_sectionprint.VPConstraintSectionPrint(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makeConstraintSpring(doc, name="ConstraintSpring"): |
| | """makeConstraintSpring(document, [name]): |
| | makes a Fem ConstraintSpring object""" |
| | obj = doc.addObject("Fem::ConstraintSpring", name) |
| | return obj |
| |
|
| |
|
| | |
| | def makeElementFluid1D(doc, name="ElementFluid1D"): |
| | """makeElementFluid1D(document, [name]): |
| | creates a 1D fluid element object to define 1D flow""" |
| | obj = doc.addObject("Fem::FeaturePython", name) |
| | from femobjects import element_fluid1D |
| |
|
| | element_fluid1D.ElementFluid1D(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_element_fluid1D |
| |
|
| | view_element_fluid1D.VPElementFluid1D(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makeElementGeometry1D( |
| | doc, sectiontype="Rectangular", width=10.0, height=25.0, thickness=2.0, name="ElementGeometry1D" |
| | ): |
| | """makeElementGeometry1D(document, [width], [height], [name]): |
| | creates a 1D geometry element object to define a cross section""" |
| | obj = doc.addObject("Fem::FeaturePython", name) |
| | from femobjects import element_geometry1D |
| |
|
| | element_geometry1D.ElementGeometry1D(obj) |
| |
|
| | obj.SectionType = sectiontype |
| | obj.RectWidth = width |
| | obj.RectHeight = height |
| | obj.CircDiameter = height |
| | obj.PipeDiameter = height |
| | obj.PipeThickness = thickness |
| | obj.Axis1Length = width |
| | obj.Axis2Length = height |
| | obj.BoxHeight = height |
| | obj.BoxWidth = width |
| | obj.BoxT1 = thickness |
| | obj.BoxT2 = thickness |
| | obj.BoxT3 = thickness |
| | obj.BoxT4 = thickness |
| |
|
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_element_geometry1D |
| |
|
| | view_element_geometry1D.VPElementGeometry1D(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makeElementGeometry2D(doc, thickness=1.0, name="ElementGeometry2D"): |
| | """makeElementGeometry2D(document, [thickness], [name]): |
| | creates a 2D geometry element object to define a plate thickness""" |
| | obj = doc.addObject("Fem::FeaturePython", name) |
| | from femobjects import element_geometry2D |
| |
|
| | element_geometry2D.ElementGeometry2D(obj) |
| | obj.Thickness = thickness |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_element_geometry2D |
| |
|
| | view_element_geometry2D.VPElementGeometry2D(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makeElementRotation1D(doc, name="ElementRotation1D"): |
| | """makeElementRotation1D(document, [name]): |
| | creates a 1D geometry rotation element object to rotate a 1D cross section""" |
| | obj = doc.addObject("Fem::FeaturePython", name) |
| | from femobjects import element_rotation1D |
| |
|
| | element_rotation1D.ElementRotation1D(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_element_rotation1D |
| |
|
| | view_element_rotation1D.VPElementRotation1D(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | |
| | def makeMaterialFluid(doc, name="MaterialFluid"): |
| | """makeMaterialFluid(document, [name]): |
| | makes a FEM Material for fluid""" |
| | obj = doc.addObject("App::MaterialObjectPython", name) |
| | from femobjects import material_common |
| |
|
| | material_common.MaterialCommon(obj) |
| | obj.Category = "Fluid" |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_material_common |
| |
|
| | view_material_common.VPMaterialCommon(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makeMaterialMechanicalNonlinear(doc, base_material, name="MaterialMechanicalNonlinear"): |
| | """makeMaterialMechanicalNonlinear(document, base_material, [name]): |
| | creates a nonlinear material object""" |
| | obj = doc.addObject("Fem::FeaturePython", name) |
| | from femobjects import material_mechanicalnonlinear |
| |
|
| | material_mechanicalnonlinear.MaterialMechanicalNonlinear(obj) |
| | obj.LinearBaseMaterial = base_material |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_material_mechanicalnonlinear |
| |
|
| | view_material_mechanicalnonlinear.VPMaterialMechanicalNonlinear(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makeMaterialReinforced(doc, name="MaterialReinforced"): |
| | """makeMaterialReinforced(document, [matrix_material], [reinforcement_material], [name]): |
| | creates a reinforced material object""" |
| | obj = doc.addObject("App::MaterialObjectPython", name) |
| | from femobjects import material_reinforced |
| |
|
| | material_reinforced.MaterialReinforced(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_material_reinforced |
| |
|
| | view_material_reinforced.VPMaterialReinforced(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makeMaterialSolid(doc, name="MaterialSolid"): |
| | """makeMaterialSolid(document, [name]): |
| | makes a FEM Material for solid""" |
| | obj = doc.addObject("App::MaterialObjectPython", name) |
| | from femobjects import material_common |
| |
|
| | material_common.MaterialCommon(obj) |
| | obj.Category = "Solid" |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_material_common |
| |
|
| | view_material_common.VPMaterialCommon(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | |
| | def makeMeshBoundaryLayer(doc, base_mesh, name="MeshBoundaryLayer"): |
| | """makeMeshBoundaryLayer(document, base_mesh, [name]): |
| | creates a FEM mesh BoundaryLayer object to define boundary layer properties""" |
| | obj = doc.addObject("Fem::FeaturePython", name) |
| | from femobjects import mesh_boundarylayer |
| |
|
| | mesh_boundarylayer.MeshBoundaryLayer(obj) |
| | |
| | |
| | |
| | tmplist = base_mesh.MeshBoundaryLayerList |
| | tmplist.append(obj) |
| | base_mesh.MeshBoundaryLayerList = tmplist |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_mesh_boundarylayer |
| |
|
| | view_mesh_boundarylayer.VPMeshBoundaryLayer(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makeMeshGmsh(doc, name="MeshGmsh"): |
| | """makeMeshGmsh(document, [name]): |
| | makes a Gmsh FEM mesh object""" |
| | obj = doc.addObject("Fem::FemMeshShapeBaseObjectPython", name) |
| | from femobjects import mesh_gmsh |
| |
|
| | mesh_gmsh.MeshGmsh(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_mesh_gmsh |
| |
|
| | view_mesh_gmsh.VPMeshGmsh(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makeMeshGroup(doc, base_mesh, use_label=False, name="MeshGroup"): |
| | """makeMeshGroup(document, base_mesh, [use_label], [name]): |
| | creates a FEM mesh refinement object to define properties for a region of a FEM mesh |
| | """ |
| | obj = doc.addObject("Fem::FeaturePython", name) |
| | from femobjects import mesh_group |
| |
|
| | mesh_group.MeshGroup(obj) |
| | obj.UseLabel = use_label |
| | |
| | |
| | |
| | tmplist = base_mesh.MeshGroupList |
| | tmplist.append(obj) |
| | base_mesh.MeshGroupList = tmplist |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_mesh_group |
| |
|
| | view_mesh_group.VPMeshGroup(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makeMeshNetgen(doc, name="MeshNetgen"): |
| | """makeMeshNetgen(document, [name]): |
| | makes a Netgen FEM mesh object""" |
| | obj = doc.addObject("Fem::FemMeshShapeBaseObjectPython", name) |
| | from femobjects import mesh_netgen |
| |
|
| | mesh_netgen.MeshNetgen(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_mesh_netgen |
| |
|
| | view_mesh_netgen.VPMeshNetgen(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makeMeshNetgenLegacy(doc, name="MeshNetgen"): |
| | """makeMeshNetgenLegacy(document, [name]): |
| | makes a old implementation Netgen FEM mesh object""" |
| | obj = doc.addObject("Fem::FemMeshShapeNetgenObject", name) |
| | return obj |
| |
|
| |
|
| | def makeMeshRegion(doc, base_mesh, element_length=0.0, name="MeshRegion"): |
| | """makeMeshRegion(document, base_mesh, [element_length], [name]): |
| | creates a FEM mesh refinement object to define properties for a refinement of a FEM mesh |
| | """ |
| | obj = doc.addObject("Fem::FeaturePython", name) |
| | from femobjects import mesh_region |
| |
|
| | mesh_region.MeshRegion(obj) |
| | obj.CharacteristicLength = element_length |
| | |
| | |
| | |
| | tmplist = base_mesh.MeshRegionList |
| | tmplist.append(obj) |
| | base_mesh.MeshRegionList = tmplist |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_mesh_region |
| |
|
| | view_mesh_region.VPMeshRegion(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makeMeshResult(doc, name="MeshResult"): |
| | """makeMeshResult(document, name): makes a Fem MeshResult object""" |
| | obj = doc.addObject("Fem::FemMeshObjectPython", name) |
| | from femobjects import mesh_result |
| |
|
| | mesh_result.MeshResult(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_mesh_result |
| |
|
| | view_mesh_result.VPFemMeshResult(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | |
| | def makeResultMechanical(doc, name="ResultMechanical"): |
| | """makeResultMechanical(document, [name]): |
| | creates a mechanical result object to hold FEM results""" |
| | obj = doc.addObject("Fem::FemResultObjectPython", name) |
| | from femobjects import result_mechanical |
| |
|
| | result_mechanical.ResultMechanical(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_result_mechanical |
| |
|
| | view_result_mechanical.VPResultMechanical(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makePostVtkFilterClipRegion(doc, base_vtk_result, name="VtkFilterClipRegion"): |
| | """makePostVtkFilterClipRegion(document, base_vtk_result, [name]): |
| | creates a FEM post processing region clip filter object (vtk based)""" |
| | obj = doc.addObject("Fem::FemPostClipFilter", name) |
| | base_vtk_result.addObject(obj) |
| | return obj |
| |
|
| |
|
| | def makePostVtkFilterClipScalar(doc, base_vtk_result, name="VtkFilterClipScalar"): |
| | """makePostVtkFilterClipScalar(document, base_vtk_result, [name]): |
| | creates a FEM post processing scalar clip filter object (vtk based)""" |
| | obj = doc.addObject("Fem::FemPostScalarClipFilter", name) |
| | base_vtk_result.addObject(obj) |
| | return obj |
| |
|
| |
|
| | def makePostVtkFilterCutFunction(doc, base_vtk_result, name="VtkFilterCutFunction"): |
| | """makePostVtkFilterCutFunction(document, base_vtk_result, [name]): |
| | creates a FEM post processing cut function filter object (vtk based)""" |
| | obj = doc.addObject("Fem::FemPostClipFilter", name) |
| | base_vtk_result.addObject(obj) |
| | return obj |
| |
|
| |
|
| | def makePostVtkFilterWarp(doc, base_vtk_result, name="VtkFilterWarp"): |
| | """makePostVtkFilterWarp(document, base_vtk_result, [name]): |
| | creates a FEM post processing warp filter object (vtk based)""" |
| | obj = doc.addObject("Fem::FemPostWarpVectorFilter", name) |
| | base_vtk_result.addObject(obj) |
| | return obj |
| |
|
| |
|
| | def makePostVtkFilterContours(doc, base_vtk_result, name="VtkFilterContours"): |
| | """makePostVtkFilterContours(document, base_vtk_result, [name]): |
| | creates a FEM post processing contours filter object (vtk based)""" |
| | obj = doc.addObject("Fem::FemPostContoursFilter", name) |
| | base_vtk_result.addObject(obj) |
| | return obj |
| |
|
| |
|
| | def makePostFilterGlyph(doc, base_vtk_result, name="Glyph"): |
| | """makePostVtkFilterGlyph(document, [name]): |
| | creates a FEM post processing filter that visualizes vector fields with glyphs |
| | """ |
| | obj = doc.addObject("Fem::PostFilterPython", name) |
| | from femobjects import post_glyphfilter |
| |
|
| | post_glyphfilter.PostGlyphFilter(obj) |
| | base_vtk_result.addObject(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_post_glyphfilter |
| |
|
| | view_post_glyphfilter.VPPostGlyphFilter(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makePostVtkResult(doc, result_data, name="VtkResult"): |
| | """makePostVtkResult(document, base_result, [name]): |
| | creates a FEM post processing result data (vtk based) to hold FEM results |
| | Note: Result data get expanded, it can either be single result [result] or everything |
| | needed for a multistep result: [results_list, value_list, unit, description] |
| | """ |
| |
|
| | Pipeline_Name = "Pipeline_" + name |
| | obj = doc.addObject("Fem::FemPostPipeline", Pipeline_Name) |
| | obj.load(*result_data) |
| | if FreeCAD.GuiUp: |
| | obj.ViewObject.SelectionStyle = "BoundBox" |
| | |
| | obj.ViewObject.DisplayMode = "Surface" |
| | return obj |
| |
|
| |
|
| | def makePostLineplot(doc, name="Lineplot"): |
| | """makePostLineplot(document, [name]): |
| | creates a FEM post processing line plot |
| | """ |
| | obj = doc.addObject("Fem::FeaturePython", name) |
| | from femobjects import post_lineplot |
| |
|
| | post_lineplot.PostLineplot(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_post_lineplot |
| |
|
| | view_post_lineplot.VPPostLineplot(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makePostLineplotFieldData(doc, name="FieldData2D"): |
| | """makePostLineplotFieldData(document, [name]): |
| | creates a FEM post processing data extractor for 2D Field data |
| | """ |
| | obj = doc.addObject("Fem::FeaturePython", name) |
| | from femobjects import post_lineplot |
| |
|
| | post_lineplot.PostLineplotFieldData(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_post_lineplot |
| |
|
| | view_post_lineplot.VPPostLineplotFieldData(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makePostLineplotIndexOverFrames(doc, name="IndexOverFrames2D"): |
| | """makePostLineplotIndexOverFrames(document, [name]): |
| | creates a FEM post processing data extractor for 2D index data |
| | """ |
| | obj = doc.addObject("Fem::FeaturePython", name) |
| | from femobjects import post_lineplot |
| |
|
| | post_lineplot.PostLineplotIndexOverFrames(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_post_lineplot |
| |
|
| | view_post_lineplot.VPPostLineplotIndexOverFrames(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makePostHistogram(doc, name="Histogram"): |
| | """makePostHistogram(document, [name]): |
| | creates a FEM post processing histogram plot |
| | """ |
| | obj = doc.addObject("Fem::FeaturePython", name) |
| | from femobjects import post_histogram |
| |
|
| | post_histogram.PostHistogram(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_post_histogram |
| |
|
| | view_post_histogram.VPPostHistogram(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makePostHistogramFieldData(doc, name="FieldData1D"): |
| | """makePostHistogramFieldData(document, [name]): |
| | creates a FEM post processing data extractor for 1D Field data |
| | """ |
| | obj = doc.addObject("Fem::FeaturePython", name) |
| | from femobjects import post_histogram |
| |
|
| | post_histogram.PostHistogramFieldData(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_post_histogram |
| |
|
| | view_post_histogram.VPPostHistogramFieldData(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makePostHistogramIndexOverFrames(doc, name="IndexOverFrames1D"): |
| | """makePostHistogramIndexOverFrames(document, [name]): |
| | creates a FEM post processing data extractor for 1D Field data |
| | """ |
| | obj = doc.addObject("Fem::FeaturePython", name) |
| | from femobjects import post_histogram |
| |
|
| | post_histogram.PostHistogramIndexOverFrames(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_post_histogram |
| |
|
| | view_post_histogram.VPPostHistogramIndexOverFrames(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makePostTable(doc, name="Table"): |
| | """makePostTable(document, [name]): |
| | creates a FEM post processing histogram plot |
| | """ |
| | obj = doc.addObject("Fem::FeaturePython", name) |
| | from femobjects import post_table |
| |
|
| | post_table.PostTable(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_post_table |
| |
|
| | view_post_table.VPPostTable(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makePostTableFieldData(doc, name="FieldData1D"): |
| | """makePostTableFieldData(document, [name]): |
| | creates a FEM post processing data extractor for 1D Field data |
| | """ |
| | obj = doc.addObject("Fem::FeaturePython", name) |
| | from femobjects import post_table |
| |
|
| | post_table.PostTableFieldData(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_post_table |
| |
|
| | view_post_table.VPPostTableFieldData(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makePostTableIndexOverFrames(doc, name="IndexOverFrames1D"): |
| | """makePostTableIndexOverFrames(document, [name]): |
| | creates a FEM post processing data extractor for 1D Field data |
| | """ |
| | obj = doc.addObject("Fem::FeaturePython", name) |
| | from femobjects import post_table |
| |
|
| | post_table.PostTableIndexOverFrames(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_post_table |
| |
|
| | view_post_table.VPPostTableIndexOverFrames(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | |
| | def _equation_creator(creator, base_solver, doc, name): |
| | eq = creator.create(doc, name) |
| | if base_solver: |
| | eq.Priority = 255 - len(base_solver.Group) |
| | base_solver.addObject(eq) |
| | return eq |
| |
|
| |
|
| | def makeEquationDeformation(doc, base_solver=None, name="Deformation"): |
| | """makeEquationDeformation(document, [base_solver], [name]): |
| | creates a FEM deformation (nonlinear elasticity) equation for a solver""" |
| | from femsolver.elmer.equations import deformation |
| |
|
| | return _equation_creator(deformation, base_solver, doc, name) |
| |
|
| |
|
| | def makeEquationElasticity(doc, base_solver=None, name="Elasticity"): |
| | """makeEquationElasticity(document, [base_solver], [name]): |
| | creates a FEM elasticity equation for a solver""" |
| | from femsolver.elmer.equations import elasticity |
| |
|
| | return _equation_creator(elasticity, base_solver, doc, name) |
| |
|
| |
|
| | def makeEquationElectricforce(doc, base_solver=None, name="Electricforce"): |
| | """makeEquationElectricforce(document, [base_solver], [name]): |
| | creates a FEM Electricforce equation for a solver""" |
| | from femsolver.elmer.equations import electricforce |
| |
|
| | return _equation_creator(electricforce, base_solver, doc, name) |
| |
|
| |
|
| | def makeEquationElectrostatic(doc, base_solver=None, name="Electrostatic"): |
| | """makeEquationElectrostatic(document, [base_solver], [name]): |
| | creates a FEM electrostatic equation for a solver""" |
| | from femsolver.elmer.equations import electrostatic |
| |
|
| | return _equation_creator(electrostatic, base_solver, doc, name) |
| |
|
| |
|
| | def makeEquationFlow(doc, base_solver=None, name="Flow"): |
| | """makeEquationFlow(document, [base_solver], [name]): |
| | creates a FEM flow equation for a solver""" |
| | from femsolver.elmer.equations import flow |
| |
|
| | return _equation_creator(flow, base_solver, doc, name) |
| |
|
| |
|
| | def makeEquationFlux(doc, base_solver=None, name="Flux"): |
| | """makeEquationFlux(document, [base_solver], [name]): |
| | creates a FEM flux equation for a solver""" |
| | from femsolver.elmer.equations import flux |
| |
|
| | return _equation_creator(flux, base_solver, doc, name) |
| |
|
| |
|
| | def makeEquationHeat(doc, base_solver=None, name="Heat"): |
| | """makeEquationHeat(document, [base_solver], [name]): |
| | creates a FEM heat equation for a solver""" |
| | from femsolver.elmer.equations import heat |
| |
|
| | return _equation_creator(heat, base_solver, doc, name) |
| |
|
| |
|
| | def makeEquationMagnetodynamic(doc, base_solver=None, name="Magnetodynamic"): |
| | """makeEquationMagnetodynamic(document, [base_solver], [name]): |
| | creates a FEM magnetodynamic equation for a solver""" |
| | from femsolver.elmer.equations import magnetodynamic |
| |
|
| | return _equation_creator(magnetodynamic, base_solver, doc, name) |
| |
|
| |
|
| | def makeEquationMagnetodynamic2D(doc, base_solver=None, name="Magnetodynamic2D"): |
| | """makeEquationMagnetodynamic2D(document, [base_solver], [name]): |
| | creates a FEM magnetodynamic2D equation for a solver""" |
| | from femsolver.elmer.equations import magnetodynamic2D |
| |
|
| | return _equation_creator(magnetodynamic2D, base_solver, doc, name) |
| |
|
| |
|
| | def makeEquationStaticCurrent(doc, base_solver=None, name="StaticCurrent"): |
| | """makeEquationStaticCurrent(document, [base_solver], [name]): |
| | creates a FEM static current equation for a solver""" |
| | from femsolver.elmer.equations import staticcurrent |
| |
|
| | return _equation_creator(staticcurrent, base_solver, doc, name) |
| |
|
| |
|
| | def makeSolverCalculiXCcxTools(doc, name="SolverCcxTools"): |
| | """makeSolverCalculiXCcxTools(document, [name]): |
| | makes a Calculix solver object for the ccx tools module""" |
| | obj = doc.addObject("Fem::FemSolverObjectPython", name) |
| | from femobjects import solver_ccxtools |
| |
|
| | solver_ccxtools.SolverCcxTools(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_solver_ccxtools |
| |
|
| | view_solver_ccxtools.VPSolverCcxTools(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makeSolverCalculiX(doc, name="SolverCalculiX"): |
| | """makeSolverCalculiX(document, [name]): |
| | makes a Calculix solver object""" |
| | obj = doc.addObject("Fem::FemSolverObjectPython", name) |
| | from femobjects import solver_calculix |
| |
|
| | solver_calculix.SolverCalculiX(obj) |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_solver_calculix |
| |
|
| | view_solver_calculix.VPSolverCalculiX(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makeSolverElmer(doc, name="SolverElmer"): |
| | """makeSolverElmer(document, [name]): |
| | makes a Elmer solver object""" |
| | obj = doc.addObject("Fem::FemSolverObjectPython", name) |
| | from femobjects import solver_elmer |
| |
|
| | solver_elmer.SolverElmer(obj) |
| | obj.SimulationType = "Steady State" |
| | if FreeCAD.GuiUp: |
| | from femviewprovider import view_solver_elmer |
| |
|
| | view_solver_elmer.VPSolverElmer(obj.ViewObject) |
| | return obj |
| |
|
| |
|
| | def makeSolverMystran(doc, name="SolverMystran"): |
| | """makeSolverMystran(document, [name]): |
| | makes a Mystran solver object""" |
| | import femsolver.mystran.solver |
| |
|
| | obj = femsolver.mystran.solver.create(doc, name) |
| | return obj |
| |
|
| |
|
| | def makeSolverZ88(doc, name="SolverZ88"): |
| | """makeSolverZ88(document, [name]): |
| | makes a Z88 solver object""" |
| | import femsolver.z88.solver |
| |
|
| | obj = femsolver.z88.solver.create(doc, name) |
| | return obj |
| |
|
| |
|
| | """ |
| | # get the supportedTypes |
| | App.newDocument() |
| | module = "Fem" |
| | FreeCADGui.doCommand("import " + module) |
| | for s in sorted(App.ActiveDocument.supportedTypes()): |
| | if s.startswith(module): |
| | print(s) |
| | |
| | """ |
| |
|
| | |
| |
|