Mesh Scripting/ro: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
Line 1: Line 1:
<languages/>
<languages/>
{{Docnav
{{Docnav|FreeCAD Scripting Basics|Topological data scripting}}
|[[FreeCAD_Scripting_Basics|FreeCAD Scripting Basics]]
|[[Topological_data_scripting|Topological data scripting]]
}}

{{TOCright}}


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
Line 7: Line 12:
</div>
</div>


{{TOCright}}
First of all you have to import the Mesh module:
First of all you have to import the Mesh module:

{{Code|code=
{{Code|code=
import Mesh
import Mesh
}}
}}

după ce aveți acces la un modul Mesh și clasa Mesh care ușurează funcțiile FreeCAD C++ Mesh-Kernel.
după ce aveți acces la un modul Mesh și clasa Mesh care ușurează funcțiile FreeCAD C++ Mesh-Kernel.


<div class="mw-translate-fuzzy">
=== Creație și Încărcare ===
=== Creație și Încărcare ===
Pentru a crea un obiectr vid Plasă utilizați construcția standard:
Pentru a crea un obiectr vid Plasă utilizați construcția standard:
</div>


{{Code|code=
{{Code|code=
Line 49: Line 57:
Mai târziu veți vedea cum se poate testa și examina datele Plasei/Mesh.
Mai târziu veți vedea cum se poate testa și examina datele Plasei/Mesh.


<div class="mw-translate-fuzzy">
=== Modelare ===
=== Modelare ===
Pentru a crea geometrii obișnuite, puteți utiliza scriptul Python BuildRegularGeoms.py.
Pentru a crea geometrii obișnuite, puteți utiliza scriptul Python BuildRegularGeoms.py.
</div>

To create regular geometries you can use the Python script BuildRegularGeoms.py.


{{Code|code=
{{Code|code=
Line 92: Line 104:
}}
}}


<div class="mw-translate-fuzzy">
=== Examinând și Testând ===
=== Examinând și Testând ===
</div>


<div class="mw-translate-fuzzy">
=== Scrieți-vă proprii algoritmi ===
=== Scrieți-vă proprii algoritmi ===
</div>


<div class="mw-translate-fuzzy">
=== Exportare ===
=== Exportare ===
Puteți scrie o plasă la un modul python:
Puteți scrie o plasă la un modul python:
</div>


{{Code|code=
{{Code|code=
Line 105: Line 123:
}}
}}


<div class="mw-translate-fuzzy">
=== Interfața grafică ===
=== Interfața grafică ===
</div>


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
Line 113: Line 133:
Cine are curaj îndeajuns, poate privi la [http://free-cad.svn.sourceforge.net/viewvc/free-cad/trunk/src/Mod/Mesh/App/MeshTestsApp.py?view=markup Unit Test module].
Cine are curaj îndeajuns, poate privi la [http://free-cad.svn.sourceforge.net/viewvc/free-cad/trunk/src/Mod/Mesh/App/MeshTestsApp.py?view=markup Unit Test module].
</div>
</div>

An extensive (though hard to use) source of Mesh related scripting are the unit test scripts of the Mesh-Module.
In this unit tests literally all methods are called and all properties/attributes are tweaked.
So if you are bold enough, take a look at the [https://github.com/FreeCAD/FreeCAD/blob/master/src/Mod/Mesh/App/MeshTestsApp.py Unit Test module].


See also [[Mesh_API|Mesh API]]
See also [[Mesh_API|Mesh API]]
Line 119: Line 143:
{{docnav|FreeCAD Scripting Basics|Topological data scripting}}
{{docnav|FreeCAD Scripting Basics|Topological data scripting}}
</div>
</div>


{{clear}}


{{Mesh Tools navi{{#translation:}}}}
{{Mesh Tools navi{{#translation:}}}}
{{Powerdocnavi{{#translation:}}}}

{{Userdocnavi{{#translation:}}}}

[[Category:Poweruser Documentation{{#translation:}}]]

[[Category:Python Code{{#translation:}}]]
[[Category:Python Code{{#translation:}}]]
{{clear}}

Revision as of 11:50, 23 May 2020

Introducere

Înainte de toate trebuie să importați un modul Mesh:

First of all you have to import the Mesh module:

import Mesh

după ce aveți acces la un modul Mesh și clasa Mesh care ușurează funcțiile FreeCAD C++ Mesh-Kernel.

Creație și Încărcare

Pentru a crea un obiectr vid Plasă utilizați construcția standard:

mesh = Mesh.Mesh()

Puteți crea un obiect din fișierul

mesh = Mesh.Mesh('D:/temp/Something.stl')

(o listă a tipurilor de fișiere compatibile poate fi găsită sub 'Meshes' here.)

Sau o creați dintr-un set de triunghiuri descris de către punctele de colț:

planarMesh = [
# triangle 1
[-0.5000,-0.5000,0.0000],[0.5000,0.5000,0.0000],[-0.5000,0.5000,0.0000],
#triangle 2
[-0.5000,-0.5000,0.0000],[0.5000,-0.5000,0.0000],[0.5000,0.5000,0.0000],
]
planarMeshObject = Mesh.Mesh(planarMesh)
Mesh.show(planarMeshObject)

Mesh-Kernel are grijă de o structură topologică corectă a datelor prin sortare

împreună a punctelor și marginilor coincidente. 

Mai târziu veți vedea cum se poate testa și examina datele Plasei/Mesh.

Modelare

Pentru a crea geometrii obișnuite, puteți utiliza scriptul Python BuildRegularGeoms.py.

To create regular geometries you can use the Python script BuildRegularGeoms.py.

import BuildRegularGeoms

Acest script oferă metode pentru definirea corpurilor simple rotative cum ar fi sfere, elipsoide, cilindri, toroide și conuri. Și are de asemenea o metodă de a crea un cub simplu. Pentru a crea un toroid, de exemplu, se poate face după cum urmează:

t = BuildRegularGeoms.Toroid(8.0, 2.0, 50) # list with several thousands triangles
m = Mesh.Mesh(t)

Primii doi parametri definesc razele toroidului, iar al treilea parametru este un factor de subeșantionare pentru câte triunghiuri sunt create. Cu cât această valoare este mai mare cu atât este mai lină și cu cât este mai groasă corpul. Clasa Mesh oferă un set de funcții booleene care pot fi utilizate în scopuri de modelare. Oferă uniune, intersecție și diferență de două obiecte de plasă.

m1, m2              # are the input mesh objects
m3 = Mesh.Mesh(m1)  # create a copy of m1
m3.unite(m2)        # union of m1 and m2, the result is stored in m3
m4 = Mesh.Mesh(m1)
m4.intersect(m2)    # intersection of m1 and m2
m5 = Mesh.Mesh(m1)
m5.difference(m2)   # the difference of m1 and m2
m6 = Mesh.Mesh(m2)
m6.difference(m1)   # the difference of m2 and m1, usually the result is different to m5

În cele din urmă, un exemplu complet al intersecției între o sferă și un cilindru care intersectează sfera.

import Mesh, BuildRegularGeoms
sphere = Mesh.Mesh( BuildRegularGeoms.Sphere(5.0, 50) )
cylinder = Mesh.Mesh( BuildRegularGeoms.Cylinder(2.0, 10.0, True, 1.0, 50) )
diff = sphere
diff = diff.difference(cylinder)
d = FreeCAD.newDocument()
d.addObject("Mesh::Feature","Diff_Sphere_Cylinder").Mesh=diff
d.recompute()

Examinând și Testând

Scrieți-vă proprii algoritmi

Exportare

Puteți scrie o plasă la un modul python:

m.write("D:/Develop/Projekte/FreeCAD/FreeCAD_0.7/Mod/Mesh/SavedMesh.py")
import SavedMesh
m2 = Mesh.Mesh(SavedMesh.faces)

Interfața grafică

Odds and Ends

O extensie (deși greu de folosit) de scripting Mesh sunt script-urile de testare a Mesh-Module. În această unitate se fac toate testele de compilare și sunt manipulate toate proprietățile și atributele. Cine are curaj îndeajuns, poate privi la Unit Test module.

An extensive (though hard to use) source of Mesh related scripting are the unit test scripts of the Mesh-Module. In this unit tests literally all methods are called and all properties/attributes are tweaked. So if you are bold enough, take a look at the Unit Test module.

See also Mesh API

FreeCAD Scripting Basics
Topological data scripting