FEM FemMesh2Mesh/ro: Difference between revisions
(Created page with "== Script-Programare == Exemplu: * Încărcați exemplul 3D FEM al FreeCAD din Start Workbench și executați următorul cod") |
(Created page with "== Conversia elementelor 2D == Selectați o plasă și rulați următorul script python") |
||
Line 25: | Line 25: | ||
Mesh.show(Mesh.Mesh(out_mesh)) |
Mesh.show(Mesh.Mesh(out_mesh)) |
||
}} |
}} |
||
== |
== Conversia elementelor 2D == |
||
Selectați o plasă și rulați următorul script python |
|||
Select a mesh and run the following python script |
|||
{{Code|code= |
{{Code|code= |
||
import Mesh |
import Mesh |
Revision as of 18:16, 11 November 2018
FEM FemMesh2Mesh |
poziția meniului |
---|
Mesh → FEM mesh to mesh |
Ateliere |
FEM |
scurtătură |
nici unul |
Prezentat în versiune |
- |
A se vedea, de asemenea, |
FEM tutorial |
Descriere
Acest instrument transformă suprafețele elementelor 3D dintr-o plasă FEM selectată în plasă. Pe plan intern, se selectează fașetele elementului FEM din plasă care sunt unice (nu sunt împărțite de două elemente) și le utilizează pentru a crea fașete ale unei rețele. Opțional, aceasta permite crearea unei rețele deformate cauzate de acțiunea forțelor definite. Acest lucru se face prin adăugarea deplasării rezultatelor FEM la nodurile de plasă.
Elementele bidimensionale din plasa FEM nu sunt luate în considerare. Dacă trebuie să le convertiți, puteți folosi mai jos un script python.
Cum se folosește
- Selectați un obiect FEM mesh (opțional selectați suplimentar rezultatele FEM)
- Apasă pe butonul FEM mesh to mesh
Script-Programare
Exemplu:
- Încărcați exemplul 3D FEM al FreeCAD din Start Workbench și executați următorul cod
femmesh_obj = App.ActiveDocument.getObject("Result_mesh").FemMesh
result = App.ActiveDocument.getObject("CalculiX_static_results")
import femmesh.femmesh2mesh
out_mesh = femmesh.femmesh2mesh.femmesh_2_mesh(femmesh_obj, result)
import Mesh
Mesh.show(Mesh.Mesh(out_mesh))
Conversia elementelor 2D
Selectați o plasă și rulați următorul script python
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)