FEM FemMesh2Mesh/fr: Difference between revisions

From FreeCAD Documentation
(Created page with "# Sélectionnez un objet FEM maille (Optionnellement sélectionnez un résultat FEM ajouté) # Pressez le bouton {{KEY|24pxFEM mesh to mesh}}")
No edit summary
 
(78 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<languages/>


{{Docnav/fr
{{GuiCommand/fr|Name=FEM FemMesh2Mesh|Name/fr=FEM FemMesh2Mesh|MenuLocation=Mesh → FEM mesh to mesh||Workbenches=[[Fem Workbench/fr|FEM]]|Shortcut=|SeeAlso=[[FEM_tutorial/fr|FEM tutorial]]}}
|[[FEM_MeshGroup/fr|Groupe de maillage FEM]]
|[[FEM_SolverCalculixCxxtools/fr|Solveur Calculix standard]]
|[[FEM_Workbench/fr|Atelier FEM]]
|IconL=FEM_MeshGroup.svg
|IconR=FEM_SolverCalculixCxxtools.svg
|IconC=Workbench_FEM.svg
}}

{{GuiCommand/fr
|Name=FEM FemMesh2Mesh
|Name/fr=FEM Maillage FEM à maillage
|MenuLocation=Maillage → Maillage FEM à maillage
|Workbenches=[[FEM_Workbench/fr|FEM]]
|SeeAlso=[[FEM_tutorial/fr|FEM Tutoriel]]
}}


== Description ==
== Description ==


Cet outil converti une surface un élément 3D ou un élément FEM maille sélectionné en un élément maille . En interne, l'élément FEM maille choisi est unique (non partagé entre deux éléments) et l'utilise pour créer une face ou un élément maille. Optionnellement il permet de créer un maillage déformé causé par les forces établies . Ceci est fait par ajout du déplacement de FEM résultant des nœuds du maillage.
Cet outil convertit les surfaces des éléments 3D d'un maillage FEM sélectionné en maillage ou convertit un maillage FEM 2D en maillage. En pratique, il sélectionne les faces des éléments d'un maillage FEM qui sont uniques (non partagées par deux éléments) et les utilise pour créer les faces d'un maillage. En outre, il peut être utilisé pour sauvegarder un maillage déformé. Cela se fait en ajoutant le déplacement des résultats FEM aux nœuds du maillage (l'échelle du déplacement peut être définie à l'aide de Python).

Les éléments bidimensionnels du maillage FEM ne sont pas pris en compte. Si vous devez les convertir, vous pouvez utiliser le script python ci-dessous.


<span id="Usage"></span>
==Utilisation==
==Utilisation==


# Sélectionnez un objet FEM maille (Optionnellement sélectionnez un résultat FEM ajouté)
# Sélectionnez un objet FEM maillage.
# Vous pouvez également sélectionner les résultats FEM.
# Pressez le bouton {{KEY|[[Image:FEM_FemMesh2Mesh.png|24px]]FEM mesh to mesh}}
# Il existe plusieurs façons de lancer la commande :
#* Appuyez sur le bouton {{Button|[[Image:FEM_FemMesh2Mesh.svg|16px]] [[FEM_FemMesh2Mesh/fr|Maillage FEM à maillage]]}}.
#* Sélectionnez l'option {{MenuCommand|Maillage → [[Image:FEM_FemMesh2Mesh.svg|16px]] Maillage FEM à maillage}} du menu.

<span id="Scripting"></span>
==Script==

'''Remarque''' : le paramètre ''scale'' est {{Version/fr|0.21}}. Pour les anciennes versions de FreeCAD, il faut l'omettre de votre code.

L'exemple du cantilever :


== Scrip ==
Exemple:
* Téléchargez l'exemple pour Windows "C:\Program Files\FreeCAD 0.16\Mod\Fem\test_files\ccx" et lancez le code suivant
{{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))
}}
}}
== Convertir 2D éléments ==
Sélectionnez une maille et lancez le code suivant dans la fenêtre Python de FreeCAD
{{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)


{{Docnav/fr
selection = FreeCADGui.Selection.getSelection()
|[[FEM_MeshGroup/fr|Groupe de maillage FEM]]
input_mesh = App.ActiveDocument.getObject(selection[0].Name).FemMesh
|[[FEM_SolverCalculixCxxtools/fr|Solveur Calculix standard]]
output_mesh = []
|[[FEM_Workbench/fr|Atelier FEM]]
for element in input_mesh.Faces:
|IconL=FEM_MeshGroup.svg
element_nodes = input_mesh.getElementNodes(element)
|IconR=FEM_SolverCalculixCxxtools.svg
if len(element_nodes) in [3, 6]: # tria3 or tria6 (ignoring mid-nodes)
|IconC=Workbench_FEM.svg
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)
}}
}}


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

{{Userdocnavi{{#translation:}}}}
{{clear}}
<languages/>

Latest revision as of 11:21, 2 March 2024

FEM Maillage FEM à maillage

Emplacement du menu
Maillage → Maillage FEM à maillage
Ateliers
FEM
Raccourci par défaut
Aucun
Introduit dans la version
-
Voir aussi
FEM Tutoriel

Description

Cet outil convertit les surfaces des éléments 3D d'un maillage FEM sélectionné en maillage ou convertit un maillage FEM 2D en maillage. En pratique, il sélectionne les faces des éléments d'un maillage FEM qui sont uniques (non partagées par deux éléments) et les utilise pour créer les faces d'un maillage. En outre, il peut être utilisé pour sauvegarder un maillage déformé. Cela se fait en ajoutant le déplacement des résultats FEM aux nœuds du maillage (l'échelle du déplacement peut être définie à l'aide de Python).

Utilisation

  1. Sélectionnez un objet FEM maillage.
  2. Vous pouvez également sélectionner les résultats FEM.
  3. Il existe plusieurs façons de lancer la commande :

Script

Remarque : le paramètre scale est introduit dans la version 0.21. Pour les anciennes versions de FreeCAD, il faut l'omettre de votre code.

L'exemple du cantilever :

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