Mesh Scripting/pl: Difference between revisions
(Updating to match new version of source page) |
No edit summary |
||
(5 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
<languages/> |
<languages/> |
||
<div class="mw-translate-fuzzy"> |
|||
{{Docnav/pl |
{{Docnav/pl |
||
|[[FreeCAD Scripting Basics/pl|Podstawy tworzenia skryptów FreeCSAD]] |
|[[FreeCAD Scripting Basics/pl|Podstawy tworzenia skryptów FreeCSAD]] |
||
|[[Topological data scripting/pl|Skrypty danych topologicznych]] |
|[[Topological data scripting/pl|Skrypty danych topologicznych]] |
||
}} |
}} |
||
</div> |
|||
<div class="mw-translate-fuzzy"> |
|||
===Wprowadzenie=== |
===Wprowadzenie=== |
||
⚫ | |||
</div> |
|||
{{TOCright}} |
{{TOCright}} |
||
⚫ | |||
First of all you have to import the Mesh module: |
|||
{{Code|code= |
{{Code|code= |
||
import Mesh |
import Mesh |
||
Line 33: | Line 28: | ||
}} |
}} |
||
<div class="mw-translate-fuzzy"> |
|||
''(Listę kompatybilnych typów plików Środowiska '''Meshes''' można znaleźć [[Feature_list/pl#Główne cechy|tutaj]])''. |
''(Listę kompatybilnych typów plików Środowiska '''Meshes''' można znaleźć [[Feature_list/pl#Główne cechy|tutaj]])''. |
||
</div> |
|||
Lub stwórz go z zestawu trójkątów opisanych przez ich punkty narożne: |
Lub stwórz go z zestawu trójkątów opisanych przez ich punkty narożne: |
||
Line 112: | Line 105: | ||
===Sprawy dotyczące Gui=== |
===Sprawy dotyczące Gui=== |
||
<div class="mw-translate-fuzzy"> |
|||
===Możliwości i zakończenie=== |
===Możliwości i zakończenie=== |
||
Rozległym ''(choć trudnym w użyciu)'' źródłem skryptów związanych z siatkami są skrypty testów jednostkowych Środowiska pracy Mesh. |
Rozległym ''(choć trudnym w użyciu)'' źródłem skryptów związanych z siatkami są skrypty testów jednostkowych Środowiska pracy Mesh. |
||
W testach jednostkowych dosłownie wszystkie metody są wywoływane, i wszystkie właściwości / atrybuty są modyfikowane. |
W testach jednostkowych dosłownie wszystkie metody są wywoływane, i wszystkie właściwości / atrybuty są modyfikowane. |
||
Więc jeśli jesteś wystarczająco odważny, spójrz na [ |
Więc jeśli jesteś wystarczająco odważny, spójrz na [https://github.com/FreeCAD/FreeCAD/blob/master/src/Mod/Mesh/App/MeshTestsApp.py Moduł testowy jednostek]. |
||
</div> |
|||
Zobacz również [[Mesh_API|API dla Mesh]] |
Zobacz również [[Mesh_API|API dla Mesh]] |
||
{{Docnav/pl |
|||
<div class="mw-translate-fuzzy"> |
|||
|[[FreeCAD Scripting Basics/pl|Podstawy tworzenia skryptów FreeCSAD]] |
|||
|[[Topological data scripting/pl|Skrypty danych topologicznych]] |
|||
</div> |
|||
}} |
|||
Revision as of 16:38, 28 March 2020
Wprowadzenie
Przede wszystkim trzeba zaimportować Środowisko pracy Mesh:
import Mesh
Dzięki temu masz dostęp do Środowiska Mesh i klasy Mesh, które ułatwiają korzystanie z funkcji FreeCAD C++ Mesh-Kernel.
Tworzenie i wprowadzanie
Aby utworzyć pusty obiekt siatki wystarczy użyć standardowego konstruktora:
mesh = Mesh.Mesh()
Możesz również utworzyć obiekt na podstawie pliku
mesh = Mesh.Mesh('D:/temp/Something.stl')
(Listę kompatybilnych typów plików Środowiska Meshes można znaleźć tutaj).
Lub stwórz go z zestawu trójkątów opisanych przez ich punkty narożne:
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)
Jądro Mesh zajmuje się tworzeniem poprawnej topologicznej struktury danych, sortując razem zbieżne punkty i krawędzie.
Później zobaczysz, jak możesz testować i badać dane siatki.
Modelowanie
Do tworzenia regularnych geometrii można użyć skryptu Python BuildRegularGeoms.py.
import BuildRegularGeoms
Ten skrypt dostarcza metod do definiowania prostych brył obrotowych takich jak kule, elipsy, cylindry, toroidy i stożki. Posiada on również metodę tworzenia prostego sześcianu. Aby utworzyć na przykład toroid, można postępować następujący sposób:
t = BuildRegularGeoms.Toroid(8.0, 2.0, 50) # list with several thousands triangles
m = Mesh.Mesh(t)
Pierwsze dwa parametry określają promienie toroidu, a trzeci parametr jest współczynnikiem podpróbkowania dla liczby utworzonych trójkątów. Im wyższa jest ta wartość, tym gładsza i niższa jest chropowatość korpusu bryły. Klasa Mesh zapewnia zestaw funkcji logicznych, które można wykorzystać do celów modelowania. Zapewnia połączenie, przecięcie i różnicę dwóch obiektów siatki.
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
Wreszcie pełny przykład, który oblicza przecięcie kuli z walcem przecinającym tą kulę.
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()
Badanie i testowanie
Napisz swoje własne Algorytmy
Eksportowanie
Możesz nawet zapisać siatkę do modułu Python:
m.write("D:/Develop/Projekte/FreeCAD/FreeCAD_0.7/Mod/Mesh/SavedMesh.py")
import SavedMesh
m2 = Mesh.Mesh(SavedMesh.faces)
Sprawy dotyczące Gui
Możliwości i zakończenie
Rozległym (choć trudnym w użyciu) źródłem skryptów związanych z siatkami są skrypty testów jednostkowych Środowiska pracy Mesh. W testach jednostkowych dosłownie wszystkie metody są wywoływane, i wszystkie właściwości / atrybuty są modyfikowane. Więc jeśli jesteś wystarczająco odważny, spójrz na Moduł testowy jednostek.
Zobacz również API dla Mesh
- Różności: Import siatki, Eksport siatki, Siatka z kształtu, Utwórz bryłę regularną, Rozwiń siatkę, Rozwiń powierzchnię
- Modyfikacja: Ujednolicenie wektorów normalnych, Odwróć wektory normalne, Wypełnij otworów, Wypełnij interaktywnie otwory, Dodaj element, Usuń elementy, Usuń interaktywnie elementy, Wygładzanie, Uprość przez Gmsh, Uprość, Skala
- Logiczne: Połączenie, Przecięcie, Różnica
- Krojenie: Przetnij, Przytnij, Przytnij siatkę płaszczyzną, Przekrój płaszczyzną, Wiele przekrojów
- Części składowe i segmenty: Scal, Rozbij na komponenty, Utwórz segment siatki, Tworzenie segmentów siatki z najlepiej dopasowanych powierzchni
- Jak zacząć
- Instalacja: Pobieranie programu, Windows, Linux, Mac, Dodatkowych komponentów, Docker, AppImage, Ubuntu Snap
- Podstawy: Informacje na temat FreeCAD, Interfejs użytkownika, Profil nawigacji myszką, Metody wyboru, Nazwa obiektu, Edytor ustawień, Środowiska pracy, Struktura dokumentu, Właściwości, Pomóż w rozwoju FreeCAD, Dotacje
- Pomoc: Poradniki, Wideo poradniki
- Środowiska pracy: Strona Startowa, Architektura, Assembly, CAM, Rysunek Roboczy, MES, Inspekcja, Siatka, OpenSCAD, Część, Projekt Części, Punkty, Inżynieria Wsteczna, Robot, Szkicownik, Arkusz Kalkulacyjny, Start, Powierzchnia 3D, Rysunek Techniczny, Test Framework, Web