FEM FemMesh2Mesh
Jump to navigation
Jump to search
FEM
User documentation
|
Menu location |
---|
Mesh → FEM mesh to mesh |
Workbenches |
FEM |
Default shortcut |
None |
Introduced in version |
- |
See also |
FEM tutorial |
Description
This tool converts surfaces of 3D elements of a selected FEM mesh to mesh. Internally it picks FEM mesh element faces which are unique (not shared by two elements) and uses them to create faces of a mesh. Optionally it allows to create a deformed mesh caused by the action of the defined forces. This is done by adding the displacement of the FEM results to the mesh nodes.
Two dimensional elements from the FEM mesh are not taken into account. If you need to convert them, you can use a python script below.
Usage
- Select a FEM mesh object.
- Optionally also select the FEM results.
- There are several ways to invoke the command:
- Press the
FEM FemMesh2Mesh button.
- Select the Mesh →
FEM mesh to mesh option from the menu.
- Press the
Scripting
Example: Load FreeCAD's 3D FEM example from the Start Workbench and run the following code
femmesh_obj = App.ActiveDocument.getObject("Result_mesh").FemMesh
result = App.ActiveDocument.getObject("CalculiX_static_results")
import femmesh.femmesh2mesh
out_mesh = femmesh.femmesh2mesh.femmesh_2_mesh(femmesh_obj, result)
import Mesh
Mesh.show(Mesh.Mesh(out_mesh))
Converting 2D elements
Select a mesh and run the following python script
import Mesh
def extend_by_triangle(i, j, k):
triangle = [input_mesh.getNodeById(element_nodes[i]),
input_mesh.getNodeById(element_nodes[j]),
input_mesh.getNodeById(element_nodes[k])]
return output_mesh.extend(triangle)
selection = FreeCADGui.Selection.getSelection()
input_mesh = App.ActiveDocument.getObject(selection[0].Name).FemMesh
output_mesh = []
for element in input_mesh.Faces:
element_nodes = input_mesh.getElementNodes(element)
if len(element_nodes) in [3, 6]: # tria3 or tria6 (ignoring mid-nodes)
extend_by_triangle(0, 1, 2)
elif len(element_nodes) in [4, 8]: # quad4 or quad8 (ignoring mid-nodes)
extend_by_triangle(0, 1, 2)
extend_by_triangle(2, 3, 0)
obj = Mesh.Mesh(output_mesh)
Mesh.show(obj)
- Materials: Solid, Fluid, Nonlinear mechanical; Material editor
- Element geometry: Beam (1D), Beam rotation (1D), Shell (2D), Fluid flow (1D)
Constraints
- Electrostatic: Potential
- Fluid: Initial velocity, Fluid boundary, Flow velocity
- Mechanical: Fixed, Displacement, Plane rotation, Contact, Transform, Force, Pressure, Self weight, Bearing, Gear, Pulley
- Thermal: Initial temperature, Heat flux, Temperature, Heat source
- Solve: Calculix tools, CalculiX, Elmer, Z88; Equations: Heat, Elasticity, Electrostatic, Flux, Flow; Solver: Solver control, Solver run
- Results: Purge, Show; Postprocessing: Apply changes, Pipeline from result, Warp filter, Scalar clip filter, Function cut filter, Region clip filter, Line clip filter, Stress linearization plot, Data at point clip filter, Create functions
- Utilities: Clipping plane, Remove clipping planes; Mesh clear, Mesh display info
- Additional: Preferences; FEM Install, FEM Mesh, FEM Solver, FEM CalculiX, FEM Concrete; FEM Element Types

- Getting started
- Installation: Download, Windows, Linux, Mac, Additional components, Docker, AppImage, Ubuntu Snap
- Basics: About FreeCAD, Interface, Mouse navigation, Selection methods, Object name, Preferences, Workbenches, Document structure, Properties, Help FreeCAD, Donate
- Help: Tutorials, Video tutorials
- Workbenches: Std Base, Arch, Draft, FEM, Image, Inspection, Mesh, OpenSCAD, Part, PartDesign, Path, Points, Raytracing, Reverse Engineering, Sketcher, Spreadsheet, Start, Surface, TechDraw, Test Framework, Web
- Deprecated or unmaintained workbenches: Complete, Drawing, Robot
- Hubs: User hub, Power users hub, Developer hub