FreeCAD Scripting Basics/pl: Difference between revisions

From FreeCAD Documentation
(Created page with "* W module {{incode|App}} znajdziesz wszystko, co jest związane z samą aplikacją, np. Metody otwierania lub zamykania plików oraz dokumentów, takie jak ustawianie aktywne...")
No edit summary
(31 intermediate revisions by the same user not shown)
Line 44: Line 44:
* W module {{incode|App}} znajdziesz wszystko, co jest związane z samą aplikacją, np. Metody otwierania lub zamykania plików oraz dokumentów, takie jak ustawianie aktywnego dokumentu lub lista ich zawartości.
* W module {{incode|App}} znajdziesz wszystko, co jest związane z samą aplikacją, np. Metody otwierania lub zamykania plików oraz dokumentów, takie jak ustawianie aktywnego dokumentu lub lista ich zawartości.


* In the {{incode|Gui}} module, you'll find tools for accessing and managing Gui elements, like the workbenches and their toolbars, and, more interestingly, the graphical representation of all FreeCAD content.
* W module {{incode|Gui}} znajdziesz narzędzia do uzyskiwania dostępu i zarządzania elementami Gui, takimi jak Środowiska pracy i ich paski narzędzi oraz, co ciekawsze, graficzną reprezentację całej zawartości FreeCAD.


Listowanie zawartości tych modułów nie jest zbyt przydatne, ponieważ rozwijają się one dość szybko w miarę rozwoju FreeCAD. Ale dwa dostarczone narzędzia do przeglądania ''(przeglądarka klasy i pomoc dla Pythona)'' powinny w każdej chwili dostarczyć Ci kompletną i aktualną dokumentację.
Listing the content of these modules is not very useful because they grow quite fast as FreeCAD develops. But the two browsing tools provided (the class browser and the Python help) should give you complete and up-to-date documentation at any moment.


[[#top|na początek strony]]
[[#top|na początek strony]]


===The App and Gui objects===
===Obiekty App i Gui===


As already mentioned, in FreeCAD everything is separated into core and representation. This includes the 3D objects. You can access defining properties of objects (called features in FreeCAD) via the {{incode|App}} module, and change the way they are represented on screen via the {{incode|Gui}} module. For example, a cube has properties that define it (like width, length, height) that are stored in an {{incode|App}} object, and representation properties (like faces color, drawing mode) that are stored in a corresponding {{incode|Gui}} object.
Jak już wspomniano, w FreeCAD wszystko jest rozdzielone na rdzeń i reprezentację. Dotyczy to również obiektów 3D. Możesz uzyskać dostęp do definiowania właściwości obiektów ''(nazywanych w FreeCAD funkcjami)'' poprzez moduł {{incode|App}}, a także zmienić sposób ich reprezentacji na ekranie poprzez moduł {{incode|Gui}}. Na przykład, sześcian posiada właściwości, które go definiują ''(jak szerokość, długość, wysokość)'', które przechowywane w obiekcie {{incode|App}}, oraz właściwości reprezentacji ''(jak kolor powierzchni, tryb rysowania)'', które przechowywane w odpowiednim obiekcie {{incode|Gui}}.


Ten sposób działania pozwala na bardzo szeroki zakres zastosowań, jak np. zlecanie algorytmów pracy tylko na części definicyjnej cech, bez konieczności dbania o część wizualną, a nawet przekierowywania zawartości dokumentu do aplikacji niegraficznych, takich jak listy, arkusze kalkulacyjne, czy analiza elementów.
This way of doing things allows a very wide range of uses, like having algorithms work only on the definition part of features, without the need to care about any visual part, or even redirect the content of the document to non-graphical application, such as lists, spreadsheets, or element analysis.


For every {{incode|App}} object in your document, there exists a corresponding {{incode|Gui}} object. In fact the document itself has both an {{incode|App}} and a {{incode|Gui}} object. This, of course, only applies when you run FreeCAD with its full interface. In the command-line version no GUI exists, so only {{incode|App}} objects are available. Note that the {{incode|Gui}} part of objects is re-generated every time an {{incode|App}} object is marked as 'to be recomputed' (for example when one of its parameters changes), so any changes made directly to the {{incode|Gui}} object may be lost.
Dla każdego obiektu {{incode|App}} w Twoim dokumencie istnieje odpowiedni obiekt {{incode|Gui}}. W rzeczywistości, sam dokument posiada zarówno {{incode|App}} i obiekt {{incode|Gui}}. Ma to oczywiście zastosowanie tylko wtedy, gdy uruchomisz FreeCAD z jego pełnym interfejsem. W wersji z wierszem poleceń nie istnieje GUI, więc dostępne są tylko obiekty {{incode|App}}. Zauważ, że część obiektów {{incode|Gui}} jest regenerowana za każdym razem, kiedy obiekt {{incode|App}} jest oznaczony jako "do ponownego obliczenia" ''(np. kiedy jeden z jego parametrów ulegnie zmianie)'', więc wszelkie zmiany dokonane bezpośrednio w obiekcie {{incode|Gui}} mogą zostać utracone.


To access the {{incode|App}} part of something, you type:
Aby uzyskać dostęp przez {{incode|App}} do dowolnych części, wpisz:


{{Code|code=
{{Code|code=
Line 64: Line 64:
}}
}}


where {{incode|"ObjectName"}} is the name of your object. You can also type:
gdzie {{incode|"ObjectName"}} jest nazwą twojego obiektu. Możesz też wpisać:


{{Code|code=
{{Code|code=
Line 70: Line 70:
}}
}}


To access the {{incode|Gui}} part of the same object, you type:
Aby uzyskać dostęp do {{incode|Gui}} części tego samego obiektu, wpisz:


{{Code|code=
{{Code|code=
Line 76: Line 76:
}}
}}


where {{incode|"ObjectName"}} is the name of your object. You can also type:
gdzie {{incode|"ObjectName"}} jest nazwą twojego obiektu. Możesz też wpisać:


{{Code|code=
{{Code|code=
Line 82: Line 82:
}}
}}


If you are in command-line mode and have no GUI, the last line will return {{incode|None}}.
Jeśli jesteś w trybie linii poleceń i nie masz GUI, ostatnia linia zwróci {{incode|None}}.


[[#top|na początek strony]]
[[#top|na początek strony]]


===The Document objects===
===Obiekty dokumentu===


In FreeCAD all your work resides inside documents. A document contains your geometry and can be saved to a file. Several documents can be opened at the same time. The document, like the geometry contained inside, has {{incode|App}} and {{incode|Gui}} objects. The {{incode|App}} object contains your actual geometry definitions, while the {{incode|Gui}} object contains the different views of your document. You can open several windows, each one viewing your work with a different zoom factor or from a different direction. These views are all part of your document's {{incode|Gui}} object.
W FreeCAD całość Twojej pracy znajduje się wewnątrz dokumentów. Dokument zawiera Twoją geometrię i może być zapisany do pliku. Można otworzyć kilka dokumentów w tym samym czasie. Dokument, podobnie jak geometria zawarta wewnątrz, posiada obiekty {{incode|App}} i {{incode|Gui}}. Obiekt {{incode|App}} zawiera twoje aktualne definicje geometrii, podczas gdy obiekt {{incode|Gui}} zawiera różne widoki twojego dokumentu. Możesz otworzyć kilka okien, z których każde przedstawia Twoją pracę z innym współczynnikiem powiększenia lub z innego kierunku. Wszystkie te widoki częścią obiektu {{incode|Gui}} twojego dokumentu.


To access the {{incode|App}} part of the currently open (active) document, you type:
Aby uzyskać dostęp przez {{incode|App}} do części aktualnie otwartego ''(aktywnego)'' dokumentu, należy wpisać:


{{Code|code=
{{Code|code=
Line 96: Line 96:
}}
}}


Aby utworzyć nowy dokument, wpisz:
To create a new document, type:


{{Code|code=
{{Code|code=
Line 102: Line 102:
}}
}}


To access the {{incode|Gui}} part of the currently open (active) document, you type:
Aby uzyskać dostęp przez {{incode|Gui}} do części aktualnie otwartego ''(aktywnego)'' dokumentu, wpisz:


{{Code|code=
{{Code|code=
Line 108: Line 108:
}}
}}


Aby uzyskać dostęp do bieżącego widoku, należy wpisać:
To access the current view, you type:


{{Code|code=
{{Code|code=
Line 116: Line 116:
[[#top|na początek strony]]
[[#top|na początek strony]]


==Używanie dodatkowych modułów==
==Using additional modules==


The {{incode|FreeCAD}} and {{incode|FreeCADGui}} modules are only responsible for creating and managing objects in the FreeCAD document. They don't actually do anything more such as creating or modifying geometry. This is because that geometry can be of several types, and therefore requires additional modules, each responsible for managing a certain geometry type. For example, the [[Part Module|Part Module]], using the OpenCascade kernel, is able to create and manipulate [http://en.wikipedia.org/wiki/Boundary_representation BRep] type geometry. Whereas the [[Mesh Module|Mesh Module]] is able to build and modify mesh objects. In this manner FreeCAD is able to handle a wide variety of object types, that can all coexist in the same document, and new types can easily be added in the future.
Moduły {{incode|FreeCAD}} i {{incode|FreeCADGui}} odpowiedzialne tylko za tworzenie i zarządzanie obiektami w dokumencie FreeCAD. W rzeczywistości nie robią one nic więcej, jak tworzenie lub modyfikowanie geometrii. Dzieje się tak, ponieważ geometria ta może być kilku typów i dlatego wymaga dodatkowych modułów, z których każdy jest odpowiedzialny za zarządzanie danym typem geometrii. Na przykład, Środowisko pracy [[Part Module|Part]], używa jądra OpenCascade, jest ono w stanie tworzyć i manipulować geometrią typu [http://en.wikipedia.org/wiki/Boundary_representation BRep]. Natomiast Środowisko pracy [[Mesh Module|Mesh]] jest w stanie budować i modyfikować obiekty typu siatka. W ten sposób FreeCAD jest w stanie obsłużyć wiele różnych typów obiektów, które mogą współistnieć w tym samym dokumencie, a nowe typy mogą być łatwo dodawane w przyszłości.


[[#top|na początek strony]]
[[#top|na początek strony]]


===Creating objects===
===Tworzenie obiektów===


Każdy moduł ma swój własny sposób zarządzania geometrią, ale jedną rzeczą, którą zazwyczaj mogą zrobić wszystkie, jest tworzenie obiektów w dokumencie. Ale dokument FreeCAD jest również świadomy dostępnych typów obiektów dostarczanych przez te moduły:
Each module has its own way of dealing with geometry, but one thing they usually all can do is create objects in the document. But the FreeCAD document is also aware of the available object types provided by the modules:


{{Code|code=
{{Code|code=
Line 130: Line 130:
}}
}}


will list all possible objects you can create. For example, let's create a mesh (handled by the {{incode|Mesh}} module) and a part (handled by the {{incode|Part}} module):
wyświetli listę wszystkich możliwych obiektów, które można utworzyć. Na przykład, stwórzmy siatkę ''(obsługiwaną przez moduł {{incode|Mesh}})'' i część ''(obsługiwaną przez moduł {{incode|Part}})'':


{{Code|code=
{{Code|code=
Line 137: Line 137:
}}
}}


The first argument is the object type, the second the name of the object. Our two objects look almost the same: They don't contain any geometry yet, and most of their properties are the same when you inspect them with {{incode|dir(myMesh)}} and {{incode|dir(myPart)}}. Except for one thing, {{incode|myMesh}} has a {{incode|Mesh}} property and {{incode|myPart}} has a {{incode|Shape}} property. That is where the Mesh and Part data are stored. For example, let's create a {{incode|Part}} cube and store it in our {{incode|myPart}} object:
Pierwszym argumentem jest typ obiektu, drugim nazwa obiektu. Nasze dwa obiekty wyglądają prawie tak samo: nie zawierają jeszcze żadnej geometrii, a większość ich właściwości jest taka sama, gdy sprawdzamy je przy pomocy {{incode|dir(myMesh)}} i {{incode|dir(myPart)}}. Z wyjątkiem jednej rzeczy, {{incode|myMesh}} ma własność {{incode|Mesh}} i {{incode|myPart}} ma własność {{incode|Shape}}. Tam właśnie przechowywane dane siatki i części. Na przykład, stwórzmy kostkę {{incode|Part}} i przechowujmy w naszym obiekcie {{incode|myPart}}:


{{Code|code=
{{Code|code=
Line 145: Line 145:
}}
}}


You could try storing the cube inside the {{incode|Mesh}} property of the {{incode|myMesh}} object, but it will return an error. That is because each properties is made to store only a certain type. In a {{incode|Mesh}} property, you can only save stuff created with the {{incode|Mesh}} module. Note that most modules also have a shortcut to add their geometry to the document:
Możesz spróbować przechować kostkę wewnątrz właściwości {{incode|Mesh}} obiektu {{incode|myMesh}}, ale operacja zwróci błąd. To dlatego, że każda właściwość jest stworzona do przechowywania tylko pewnego typu. We właściwości {{incode|Mesh}} można zapisywać tylko rzeczy utworzone za pomocą Środowiska pracy {{incode|Mesh}}. Zauważ, że większość modułów posiada również skrót do dodania ich geometrii do dokumentu:


{{Code|code=
{{Code|code=
Line 155: Line 155:
[[#top|na początek strony]]
[[#top|na początek strony]]


===Modifying objects===
===Modyfikowanie obiektów===


Modyfikowanie obiektu odbywa się w ten sam sposób:
Modifying an object is done in the same way:


{{Code|code=
{{Code|code=
Line 165: Line 165:
}}
}}


Teraz zmieńmy kształt na większy:
Now let's change the shape by a bigger one:


{{Code|code=
{{Code|code=
Line 174: Line 174:
[[#top|na początek strony]]
[[#top|na początek strony]]


===Querying objects===
===Zapytania o obiekty===


Zawsze możesz sprawdzić typ obiektu w ten sposób:
You can always look at the type of an object like this:


{{Code|code=
{{Code|code=
Line 183: Line 183:
}}
}}


lub sprawdzić, czy obiekt jest pochodną jednej z podstawowych własności (część, siatka itp.):
or check if an object is derived from one of the basic ones (Part Feature, Mesh Feature, etc):


{{Code|code=
{{Code|code=
Line 189: Line 189:
}}
}}


Now you can really start playing with FreeCAD! For a complete list of available modules and their tools, visit the [[:Category:API|Category:API]] section.
Teraz naprawdę możesz zacząć zabawę z FreeCAD! Pełna lista dostępnych modułów i ich narzędzi znajduje się w sekcji [[:Category:API|Category:API]].


[[#top|na początek strony]]
[[#top|na początek strony]]

Revision as of 17:42, 15 October 2020

Tworzenie skryptów Python w środowisku FreeCAD

FreeCAD jest zbudowany od podstaw tak, aby być całkowicie kontrolowanym przez skrypty Python. Prawie wszystkie komponenty programu FreeCAD, takie jak interfejs, zawartość sceny, a nawet reprezentacja tej zawartości w widokach 3D, są dostępne z wbudowanego interpretera Pythona lub z własnych skryptów. W rezultacie, FreeCAD jest prawdopodobnie jedną z najgłębiej konfigurowalnych aplikacji inżynierskich dostępnych obecnie.

Jeśli nie znasz Pythona, zalecamy poszukać poradników w internecie i szybko zapoznać się z jego strukturą. Python jest bardzo łatwym językiem do nauki, zwłaszcza, że może być uruchamiany wewnątrz interpretera, gdzie proste polecenia, aż do kompletnych programów, mogą być wykonywane w locie, bez konieczności kompilowania czegokolwiek. FreeCAD posiada wbudowany interpreter Pythona. Jeśli nie widzisz okna oznaczonego jako konsola Pythona, jak pokazano poniżej, możesz go aktywować pod menu Widok → Panele → konsola Python.

Interpreter

Z poziomu interpretera masz dostęp do wszystkich zainstalowanych w systemie modułów Pythona, jak również do wbudowanych modułów FreeCAD oraz wszystkich dodatkowych modułów FreeCAD, które zainstalowałeś później. Poniższy zrzut ekranu przedstawia interpreter Pythona:

Interpreter Python programu FreeCAD

Z poziomu interpretera można wykonać kod Python i przeglądać dostępne klasy i funkcje. FreeCAD zapewnia bardzo poręczną przeglądarkę klas do eksploracji: Po wpisaniu nazwy znanej klasy, po której następuje kropka (co oznacza, że chcesz dodać coś z tej klasy), otwiera się okno przeglądarki klas, gdzie możesz poruszać się pomiędzy dostępnymi podklasami i metodami. Kiedy coś wybierzesz, wyświetli się powiązany tekst pomocniczy (jeśli istnieje):

Przeglądarka klas programu FreeCAD

Więc, zacznij od wpisania App. albo Gui. i zobacz co się stanie. Innym, bardziej ogólnym sposobem eksplorowania zawartości modułów i klas w Pythonie jest użycie polecenia print(dir()). Na przykład, wpisanie print(dir()) wyświetli listę wszystkich modułów aktualnie załadowanych w FreeCAD. print(dir(App)) pokaże ci wszystko wewnątrz modułu App, itd.

Kolejną przydatną funkcją interpretera jest możliwość cofnięcia się przez całą historię poleceń i odtworzenia linii kodu, którą już wcześniej wpisałeś. Aby poruszać się po historii poleceń, wystarczy użyć klawisza Strzałka w górę lub Strzałka w dół.

Klikając prawym przyciskiem myszy w oknie interpretera, masz również kilka innych opcji, takich jak skopiowanie całej historii (przydatne, gdy chcesz eksperymentować z rzeczami przed utworzeniem pełnego skryptu), lub wstawienie nazwy pliku z pełną ścieżką.

na początek strony

Pomoc dla Pythona

W menu FreeCAD Pomoc znajdziesz wpis oznaczony Automatyczna dokumentacja modułów Python, który otworzy okno przeglądarki zawierające pełną, rzeczywistą dokumentację wszystkich modułów Pythona dostępnych dla interpretera FreeCAD, w tym modułów wbudowanych Pythona i FreeCAD, modułów zainstalowanych w systemie oraz modułów dodatkowych FreeCAD. Dostępna tam dokumentacja jest uzależniona od tego, ile wysiłku każdy programista wkłada w dokumentację swojego kodu, ale moduły Python mają reputację dość dobrze udokumentowanych. Okno Twojego FreeCAD musi pozostać otwarte, aby ten system dokumentacji mógł działać. Wprowadzenie do dokumentacji skryptowej Python zapewni Ci szybki link do sekcji wiki Centrum Power użytkownika.

na początek strony

Moduły wbudowane

Ponieważ FreeCAD został zaprojektowany tak, aby mógł być uruchamiany również bez graficznego interfejsu użytkownika (GUI), prawie cała jego funkcjonalność jest podzielona na dwie grupy: Podstawowa funkcjonalność, nazwana App, oraz funkcjonalność GUI, nazwana Gui. Te dwa moduły mogą być również dostępne ze skryptów poza interpreterem, odpowiednio o nazwach FreeCAD i FreeCAD.

  • W module App znajdziesz wszystko, co jest związane z samą aplikacją, np. Metody otwierania lub zamykania plików oraz dokumentów, takie jak ustawianie aktywnego dokumentu lub lista ich zawartości.
  • W module Gui znajdziesz narzędzia do uzyskiwania dostępu i zarządzania elementami Gui, takimi jak Środowiska pracy i ich paski narzędzi oraz, co ciekawsze, graficzną reprezentację całej zawartości FreeCAD.

Listowanie zawartości tych modułów nie jest zbyt przydatne, ponieważ rozwijają się one dość szybko w miarę rozwoju FreeCAD. Ale dwa dostarczone narzędzia do przeglądania (przeglądarka klasy i pomoc dla Pythona) powinny w każdej chwili dostarczyć Ci kompletną i aktualną dokumentację.

na początek strony

Obiekty App i Gui

Jak już wspomniano, w FreeCAD wszystko jest rozdzielone na rdzeń i reprezentację. Dotyczy to również obiektów 3D. Możesz uzyskać dostęp do definiowania właściwości obiektów (nazywanych w FreeCAD funkcjami) poprzez moduł App, a także zmienić sposób ich reprezentacji na ekranie poprzez moduł Gui. Na przykład, sześcian posiada właściwości, które go definiują (jak szerokość, długość, wysokość), które są przechowywane w obiekcie App, oraz właściwości reprezentacji (jak kolor powierzchni, tryb rysowania), które są przechowywane w odpowiednim obiekcie Gui.

Ten sposób działania pozwala na bardzo szeroki zakres zastosowań, jak np. zlecanie algorytmów pracy tylko na części definicyjnej cech, bez konieczności dbania o część wizualną, a nawet przekierowywania zawartości dokumentu do aplikacji niegraficznych, takich jak listy, arkusze kalkulacyjne, czy analiza elementów.

Dla każdego obiektu App w Twoim dokumencie istnieje odpowiedni obiekt Gui. W rzeczywistości, sam dokument posiada zarówno App i obiekt Gui. Ma to oczywiście zastosowanie tylko wtedy, gdy uruchomisz FreeCAD z jego pełnym interfejsem. W wersji z wierszem poleceń nie istnieje GUI, więc dostępne są tylko obiekty App. Zauważ, że część obiektów Gui jest regenerowana za każdym razem, kiedy obiekt App jest oznaczony jako "do ponownego obliczenia" (np. kiedy jeden z jego parametrów ulegnie zmianie), więc wszelkie zmiany dokonane bezpośrednio w obiekcie Gui mogą zostać utracone.

Aby uzyskać dostęp przez App do dowolnych części, wpisz:

myObject = App.ActiveDocument.getObject("ObjectName")

gdzie "ObjectName" jest nazwą twojego obiektu. Możesz też wpisać:

myObject = App.ActiveDocument.ObjectName

Aby uzyskać dostęp do Gui części tego samego obiektu, wpisz:

myViewObject = Gui.ActiveDocument.getObject("ObjectName")

gdzie "ObjectName" jest nazwą twojego obiektu. Możesz też wpisać:

myViewObject = App.ActiveDocument.ObjectName.ViewObject

Jeśli jesteś w trybie linii poleceń i nie masz GUI, ostatnia linia zwróci None.

na początek strony

Obiekty dokumentu

W FreeCAD całość Twojej pracy znajduje się wewnątrz dokumentów. Dokument zawiera Twoją geometrię i może być zapisany do pliku. Można otworzyć kilka dokumentów w tym samym czasie. Dokument, podobnie jak geometria zawarta wewnątrz, posiada obiekty App i Gui. Obiekt App zawiera twoje aktualne definicje geometrii, podczas gdy obiekt Gui zawiera różne widoki twojego dokumentu. Możesz otworzyć kilka okien, z których każde przedstawia Twoją pracę z innym współczynnikiem powiększenia lub z innego kierunku. Wszystkie te widoki są częścią obiektu Gui twojego dokumentu.

Aby uzyskać dostęp przez App do części aktualnie otwartego (aktywnego) dokumentu, należy wpisać:

myDocument = App.ActiveDocument

Aby utworzyć nowy dokument, wpisz:

myDocument = App.newDocument("Document Name")

Aby uzyskać dostęp przez Gui do części aktualnie otwartego (aktywnego) dokumentu, wpisz:

myGuiDocument = Gui.ActiveDocument

Aby uzyskać dostęp do bieżącego widoku, należy wpisać:

myView = Gui.ActiveDocument.ActiveView

na początek strony

Używanie dodatkowych modułów

Moduły FreeCAD i FreeCADGui są odpowiedzialne tylko za tworzenie i zarządzanie obiektami w dokumencie FreeCAD. W rzeczywistości nie robią one nic więcej, jak tworzenie lub modyfikowanie geometrii. Dzieje się tak, ponieważ geometria ta może być kilku typów i dlatego wymaga dodatkowych modułów, z których każdy jest odpowiedzialny za zarządzanie danym typem geometrii. Na przykład, Środowisko pracy Part, używa jądra OpenCascade, jest ono w stanie tworzyć i manipulować geometrią typu BRep. Natomiast Środowisko pracy Mesh jest w stanie budować i modyfikować obiekty typu siatka. W ten sposób FreeCAD jest w stanie obsłużyć wiele różnych typów obiektów, które mogą współistnieć w tym samym dokumencie, a nowe typy mogą być łatwo dodawane w przyszłości.

na początek strony

Tworzenie obiektów

Każdy moduł ma swój własny sposób zarządzania geometrią, ale jedną rzeczą, którą zazwyczaj mogą zrobić wszystkie, jest tworzenie obiektów w dokumencie. Ale dokument FreeCAD jest również świadomy dostępnych typów obiektów dostarczanych przez te moduły:

FreeCAD.ActiveDocument.supportedTypes()

wyświetli listę wszystkich możliwych obiektów, które można utworzyć. Na przykład, stwórzmy siatkę (obsługiwaną przez moduł Mesh) i część (obsługiwaną przez moduł Part):

myMesh = FreeCAD.ActiveDocument.addObject("Mesh::Feature", "myMeshName")
myPart = FreeCAD.ActiveDocument.addObject("Part::Feature", "myPartName")

Pierwszym argumentem jest typ obiektu, drugim nazwa obiektu. Nasze dwa obiekty wyglądają prawie tak samo: nie zawierają jeszcze żadnej geometrii, a większość ich właściwości jest taka sama, gdy sprawdzamy je przy pomocy dir(myMesh) i dir(myPart). Z wyjątkiem jednej rzeczy, myMesh ma własność Mesh i myPart ma własność Shape. Tam właśnie przechowywane są dane siatki i części. Na przykład, stwórzmy kostkę Part i przechowujmy ją w naszym obiekcie myPart:

import Part
cube = Part.makeBox(2, 2, 2)
myPart.Shape = cube

Możesz spróbować przechować kostkę wewnątrz właściwości Mesh obiektu myMesh, ale operacja zwróci błąd. To dlatego, że każda właściwość jest stworzona do przechowywania tylko pewnego typu. We właściwości Mesh można zapisywać tylko rzeczy utworzone za pomocą Środowiska pracy Mesh. Zauważ, że większość modułów posiada również skrót do dodania ich geometrii do dokumentu:

import Part
cube = Part.makeBox(2, 2, 2)
Part.show(cube)

na początek strony

Modyfikowanie obiektów

Modyfikowanie obiektu odbywa się w ten sam sposób:

import Part
cube = Part.makeBox(2, 2, 2)
myPart.Shape = cube

Teraz zmieńmy kształt na większy:

biggercube = Part.makeBox(5, 5, 5)
myPart.Shape = biggercube

na początek strony

Zapytania o obiekty

Zawsze możesz sprawdzić typ obiektu w ten sposób:

myObj = FreeCAD.ActiveDocument.getObject("myObjectName")
print(myObj.TypeId)

lub sprawdzić, czy obiekt jest pochodną jednej z podstawowych własności (część, siatka itp.):

print(myObj.isDerivedFrom("Part::Feature"))

Teraz naprawdę możesz zacząć zabawę z FreeCAD! Pełna lista dostępnych modułów i ich narzędzi znajduje się w sekcji Category:API.

na początek strony