FEM FemMesh2Mesh: Difference between revisions

From FreeCAD Documentation
(Added scale option, removed 2D example (the tool now supports both 2D and 3D FEM mesh))
(Docnav)
 
(14 intermediate revisions by 5 users not shown)
Line 4: Line 4:
<!--T:9-->
<!--T:9-->
{{Docnav
{{Docnav
|[[FEM_MeshGroup|FEM mesh group]]
|[[FEM_CreateNodesSet|Nodes set]]
|[[FEM_SolverCalculixCxxtools|Solver CalculiX Standard]]
|[[FEM_SolverCalculixCxxtools|Solver CalculiX Standard]]
|[[FEM_Workbench|FEM]]
|[[FEM_Workbench|FEM]]
|IconL=FEM_CreateNodesSet.svg
|IconL=FEM_MeshGroup.svg
|IconR=FEM_SolverCalculixCxxtools.svg
|IconR=FEM_SolverCalculixCxxtools.svg
|IconC=Workbench_FEM.svg
|IconC=Workbench_FEM.svg
Line 23: Line 23:


<!--T:7-->
<!--T:7-->
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).
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 that are unique (not shared by two elements) and uses them to create faces of a mesh. Optionally, it can be used to save a deformed mesh. This is done by adding the displacement of the FEM results to the mesh nodes (the scale of the displacement can be set using Python).


==Usage== <!--T:4-->
==Usage== <!--T:4-->
Line 36: Line 36:
== Scripting == <!--T:13-->
== Scripting == <!--T:13-->


<!--T:15-->
When you use GUI, but requires displacement scale factor
'''Note''': The parameter ''scale'' was {{Version|0.21}}. For older versions of FreeCAD omit it from your code.
# Select a FEM mesh object and FEM results

# Run the following code with your scale (e.g. 5)
<!--T:17-->
The cantilever example:


</translate>
</translate>
{{Code|code=
{{Code|code=
from os.path import join
import femmesh.femmesh2mesh
import FreeCAD as App
out_mesh = femmesh.femmesh2mesh.femmesh_2_mesh(FreeCAD.ActiveDocument.Mesh.FemMesh, FreeCAD.ActiveDocument.CCX_Results, 5)
import Mesh
import Mesh
from femmesh import femmesh2mesh
Mesh.show(Mesh.Mesh(out_mesh))
}}
<translate>


path = join(App.getResourceDir(), "examples", "FemCalculixCantilever3D.FCStd")
Example controlled fully by python
doc = App.openDocument(path)

fem_mesh = doc.Box_Mesh.FemMesh
</translate>
result = doc.CCX_Results
{{Code|code=
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
scale = 1 # displacement scale factor
from femmesh import femmesh2mesh
out_mesh = femmesh2mesh.femmesh_2_mesh(fem_mesh, result, scale)
out_mesh = femmesh2mesh.femmesh_2_mesh(fem_mesh, result, scale)
import Mesh
Mesh.show(Mesh.Mesh(out_mesh))
Mesh.show(Mesh.Mesh(out_mesh))
}}
}}
Line 69: Line 62:
<!--T:10-->
<!--T:10-->
{{Docnav
{{Docnav
|[[FEM_MeshGroup|FEM mesh group]]
|[[FEM_CreateNodesSet|Nodes set]]
|[[FEM_SolverCalculixCxxtools|Solver CalculiX Standard]]
|[[FEM_SolverCalculixCxxtools|Solver CalculiX Standard]]
|[[FEM_Workbench|FEM]]
|[[FEM_Workbench|FEM]]
|IconL=FEM_CreateNodesSet.svg
|IconL=FEM_MeshGroup.svg
|IconR=FEM_SolverCalculixCxxtools.svg
|IconR=FEM_SolverCalculixCxxtools.svg
|IconC=Workbench_FEM.svg
|IconC=Workbench_FEM.svg

Latest revision as of 10:12, 2 March 2024

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 that are unique (not shared by two elements) and uses them to create faces of a mesh. Optionally, it can be used to save a deformed mesh. This is done by adding the displacement of the FEM results to the mesh nodes (the scale of the displacement can be set using 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: The parameter scale was introduced in version 0.21. For older versions of FreeCAD omit it from your code.

The cantilever example:

from os.path import join
import FreeCAD as App
import Mesh
from femmesh import femmesh2mesh

path = join(App.getResourceDir(), "examples", "FemCalculixCantilever3D.FCStd")
doc = App.openDocument(path)
fem_mesh = doc.Box_Mesh.FemMesh
result = doc.CCX_Results
scale = 1  # displacement scale factor
out_mesh = femmesh2mesh.femmesh_2_mesh(fem_mesh, result, scale)
Mesh.show(Mesh.Mesh(out_mesh))