FEM FemMesh2Mesh/it: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
 
(8 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages/>
<languages/>

<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
{{Docnav/it|[[FEM_CreateNodesSet/it|Imposta i nodi]]|[[FEM_SolverCalculixCxxtools/it|Solutore Calculix CCX tools]]|[[FEM_Module/it|FEM]]|IconL=FEM_CreateNodesSet.png|IconC=Workbench_FEM.svg|IconR=FEM_Solver.png}}
{{Docnav/it|[[FEM_CreateNodesSet/it|Imposta i nodi]]|[[FEM_SolverCalculixCxxtools/it|Solutore Calculix CCX tools]]|[[FEM_Workbench/it|FEM]]|IconL=FEM_CreateNodesSet.png|IconC=Workbench_FEM.svg|IconR=FEM_Solver.png}}
</div>
</div>


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
{{GuiCommand/it
{{GuiCommand/it|Name=FEM_FemMesh2Mesh|Name/it=Converti mesh FEM in mesh|MenuLocation=Mesh → Converti mesh FEM in mesh||Workbenches=[[FEM Module/it|FEM]]|Shortcut=|SeeAlso=[[FEM_tutorial/it|Tutorial di FEM]]}}
|Name=FEM_FemMesh2Mesh
|Name/it=Converti mesh FEM in mesh
|MenuLocation=Mesh → Converti mesh FEM in mesh
|Workbenches=[[FEM_Workbench/it|FEM]]
|Shortcut=
|SeeAlso=[[FEM_tutorial/it|Tutorial di FEM]]
}}
</div>
</div>


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


<div class="mw-translate-fuzzy">
Questo strumento converte in mesh le superfici degli elementi 3D di una mesh FEM selezionata. Sceglie le facce dell'elemento mesh FEM che sono uniche (non condivise da due elementi) e le usa per creare le facce di una mesh. Facoltativamente consente di creare una mesh deformata dall'azione delle forze definite. Ciò avviene aggiungendo lo spostamento dei risultati FEM ai nodi della maglia.
Questo strumento converte in mesh le superfici degli elementi 3D di una mesh FEM selezionata. Sceglie le facce dell'elemento mesh FEM che sono uniche (non condivise da due elementi) e le usa per creare le facce di una mesh. Facoltativamente consente di creare una mesh deformata dall'azione delle forze definite. Ciò avviene aggiungendo lo spostamento dei risultati FEM ai nodi della maglia.
</div>


<span id="Usage"></span>
Non vengono presi in considerazione gli elementi bidimensionali della mesh FEM. Se è necessario convertirli, è possibile utilizzare il seguente script python.

==Utilizzo==
==Utilizzo==


Line 21: Line 31:
</div>
</div>


== Script ==
== Scripting ==

Esempioe:
'''Note''': The parameter ''scale'' was {{Version|0.21}}. For older versions of FreeCAD omit it from your code.
* Caricare l'esempio FreeCAD's 3D FEM dall'ambiente Start ed eseguire il seguente codice

The cantilever example:

{{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))
}}
}}
== Convertire gli elementi 2D ==
Selezionare una mesh e eseguire il seguente script python
{{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)
}}


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
{{Docnav/it|[[FEM_CreateNodesSet/it|Imposta i nodi]]|[[FEM_SolverCalculixCxxtools/it|Solutore Calculix CCX tools]]|[[FEM_Module/it|FEM]]|IconL=FEM_CreateNodesSet.png|IconC=Workbench_FEM.svg|IconR=FEM_Solver.png}}
{{Docnav/it|[[FEM_CreateNodesSet/it|Imposta i nodi]]|[[FEM_SolverCalculixCxxtools/it|Solutore Calculix CCX tools]]|[[FEM_Workbench/it|FEM]]|IconL=FEM_CreateNodesSet.png|IconC=Workbench_FEM.svg|IconR=FEM_Solver.png}}
</div>
</div>


{{FEM Tools navi{{#translation:}}}}
{{FEM Tools navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{clear}}

Latest revision as of 14:40, 12 October 2023

Converti mesh FEM in mesh

Posizione nel menu
Mesh → Converti mesh FEM in mesh
Ambiente
FEM
Avvio veloce
Nessuno
Introdotto nella versione
-
Vedere anche
Tutorial di FEM

Descrizione

Questo strumento converte in mesh le superfici degli elementi 3D di una mesh FEM selezionata. Sceglie le facce dell'elemento mesh FEM che sono uniche (non condivise da due elementi) e le usa per creare le facce di una mesh. Facoltativamente consente di creare una mesh deformata dall'azione delle forze definite. Ciò avviene aggiungendo lo spostamento dei risultati FEM ai nodi della maglia.

Utilizzo

  1. Selezionare un oggetto mesh FEM (opzionalmente selezionare anche i risultati FEM)
  2. Premere il pulsante FEM mesh to mesh

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