FEM FemMesh2Mesh/pl: Difference between revisions

From FreeCAD Documentation
(Created page with "MES: Siatka MES na obiekt środowiska Siatka")
 
No edit summary
(22 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages/>
<languages/>


{{Docnav
{{Docnav/pl
|[[FEM_CreateNodesSet|Nodes set]]
|[[FEM_CreateNodesSet/pl|Grupa siatki]]
|[[FEM_SolverCalculixCxxtools|Solver CalculiX Standard]]
|[[FEM_SolverCalculixCxxtools/pl|Narzędzia CalculiX]]
|[[FEM_Workbench|FEM]]
|[[FEM_Workbench/pl|środowisko pracy MES]]
|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 12: Line 12:
{{GuiCommand
{{GuiCommand
|Name=FEM FemMesh2Mesh
|Name=FEM FemMesh2Mesh
|Name/pl=Siatka MES na obiekt środowiska Siatka
|MenuLocation=MeshFEM mesh to mesh
|MenuLocation=SiatkaSiatka MES do siatki
|Workbenches=[[FEM_Workbench|FEM]]
|Workbenches=[[FEM_Workbench/pl|MES]]
|SeeAlso=[[FEM_tutorial|FEM tutorial]]
|SeeAlso=[[FEM_tutorial/pl|Poradnik MES]]
}}
}}


== Description ==
<span id="Description"></span>
== Opis ==


To narzędzie przekształca powierzchnie elementów 3D wybranej siatki MES na obiekt środowiska pracy Siatka lub przekształca siatkę MES 2D na na obiekt środowiska pracy Siatka. Wewnętrznie, wybiera ono ścianki elementów siatki MES, które są unikatowe ''(nie są dzielone przez dwa elementy)'' i używa ich do stworzenia ścianek siatki. Opcjonalnie, może być użyte do zapisania zdeformowanej siatki. Robi się to poprzez dodanie przemieszczenia z wyników analizy MES do węzłów siatki ''(skala przemieszczenia może być ustawiona przy pomocy skryptu w Python)''.
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.


<span id="Usage"></span>
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.
==Użycie==


# Zaznacz obiekt siatki MES.
==Usage==
# Opcjonalnie, zaznacz też wyniki analizy MES.
# Jest kilka sposobów wywołania tej komendy:
#* Wciśnij przycisk {{Button|[[Image:FEM_FemMesh2Mesh.svg|16px]] [[FEM_FemMesh2Mesh/pl|Siatka MES do siatki]]}}.
#* Wybierz opcję {{MenuCommand|Siatka → [[Image:FEM_FemMesh2Mesh.svg|16px]] Siatka MES do siatki}} z menu.


<span id="Scripting"></span>
# Select a FEM mesh object.
== Skrypty ==
# Optionally also select the FEM results.
# There are several ways to invoke the command:
#* Press the {{Button|[[Image:FEM_FemMesh2Mesh.svg|16px]] [[FEM_FemMesh2Mesh|FEM FemMesh2Mesh]]}} button.
#* Select the {{MenuCommand|Mesh → [[Image:FEM_FemMesh2Mesh.svg|16px]] FEM mesh to mesh}} option from the menu.


'''Uwaga''': Parametr ''scale'' {{Version/pl|0.21}}. W przypadku starszych wersji programu należy go pominąć.
== Scripting ==


Przykład belki wspornikowej:
Example: Load FreeCAD's 3D FEM example from the Start Workbench and run the following code


{{Code|code=
{{Code|code=
from os.path import join
femmesh_obj = App.ActiveDocument.getObject("Result_mesh").FemMesh
import FreeCAD as App
result = App.ActiveDocument.getObject("CalculiX_static_results")
import femmesh.femmesh2mesh
out_mesh = femmesh.femmesh2mesh.femmesh_2_mesh(femmesh_obj, result)
import Mesh
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))
Mesh.show(Mesh.Mesh(out_mesh))
}}

== Converting 2D elements ==

Select a mesh and run the following python script

{{Code|code=
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)
}}
}}




{{Docnav
{{Docnav/pl
|[[FEM_CreateNodesSet|Nodes set]]
|[[FEM_CreateNodesSet/pl|Grupa siatki]]
|[[FEM_SolverCalculixCxxtools|Solver CalculiX Standard]]
|[[FEM_SolverCalculixCxxtools/pl|Narzędzia CalculiX]]
|[[FEM_Workbench|FEM]]
|[[FEM_Workbench/pl|środowisko pracy MES]]
|IconL=FEM_CreateNodesSet.svg
|IconL=FEM_MeshGroup.svg
|IconR=FEM_SolverCalculixCxxtools.svg
|IconR=FEM_SolverCalculixCxxtools.svg
|IconC=Workbench_FEM.svg
|IconC=Workbench_FEM.svg

Revision as of 14:50, 3 March 2024

FEM FemMesh2Mesh

Menu location
Siatka → Siatka MES do siatki
Workbenches
MES
Default shortcut
None
Introduced in version
-
See also
Poradnik MES

Opis

To narzędzie przekształca powierzchnie elementów 3D wybranej siatki MES na obiekt środowiska pracy Siatka lub przekształca siatkę MES 2D na na obiekt środowiska pracy Siatka. Wewnętrznie, wybiera ono ścianki elementów siatki MES, które są unikatowe (nie są dzielone przez dwa elementy) i używa ich do stworzenia ścianek siatki. Opcjonalnie, może być użyte do zapisania zdeformowanej siatki. Robi się to poprzez dodanie przemieszczenia z wyników analizy MES do węzłów siatki (skala przemieszczenia może być ustawiona przy pomocy skryptu w Python).

Użycie

  1. Zaznacz obiekt siatki MES.
  2. Opcjonalnie, zaznacz też wyniki analizy MES.
  3. Jest kilka sposobów wywołania tej komendy:

Skrypty

Uwaga: Parametr scale dostępne w wersji 0.21. W przypadku starszych wersji programu należy go pominąć.

Przykład belki wspornikowej:

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))