FEM FemMesh2Mesh

From FreeCAD Documentation
Revision as of 19:45, 5 November 2022 by FandaL (talk | contribs) (correction of the scripting)

FEM FemMesh2Mesh

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, or converts 2D 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 (scale of the displacement can be set by python).

Usage

  1. Select a FEM mesh object.
  2. Optionally also select the FEM results.
  3. There are several ways to invoke the command:
    • Press the FEM mesh to mesh button.
    • Select the Mesh → FEM mesh to mesh option from the menu.

Scripting

Note that scale parameter was introduced in FC0.21.

When you just require displacement scale factor, check your mesh object name and scale factor in the following code

import femmesh.femmesh2mesh
mesh_obj = FEMMeshGmsh  # the name of your mesh object
scale = 5  # displacement scale factor
out_mesh = femmesh.femmesh2mesh.femmesh_2_mesh(FreeCAD.ActiveDocument.mesh_obj.FemMesh, FreeCAD.ActiveDocument.CCX_Results, scale)
import Mesh
Mesh.show(Mesh.Mesh(out_mesh))


Cantilever example

from os.path import join
the_file = join(FreeCAD.getResourceDir(), "examples", "FemCalculixCantilever3D.FCStd")
fc_file = FreeCAD.openDocument(the_file)
fem_mesh = fc_file.getObject("Box_Mesh").FemMesh  # do not remove the _
result = fc_file.getObject("CCX_Results")
scale = 1  # displacement scale factor
from femmesh import femmesh2mesh
out_mesh = femmesh2mesh.femmesh_2_mesh(fem_mesh, result, scale)
import Mesh
Mesh.show(Mesh.Mesh(out_mesh))