FreeCAD Scripting Basics/de: Difference between revisions

From FreeCAD Documentation
No edit summary
(Updating to match new version of source page)
(12 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages/>
<languages/>

<div class="mw-translate-fuzzy">
{{docnav/de|[[Python scripting tutorial/de|Einführung in Python]]|[[Mesh Scripting/de|Mesh Skripting in FreeCAD]]}}
{{docnav/de|[[Python scripting tutorial/de|Einführung in Python]]|[[Mesh Scripting/de|Mesh Skripting in FreeCAD]]}}
</div>


{{TOCright}}
== Python scripting in FreeCAD ==


<div class="mw-translate-fuzzy">
FreeCAD ist von Grund auf von Python-Skripten gesteuert. Fast alle Teile von FreeCAD wie die Schnittstelle, der Szene-Inhalt, und sogar die Darstellung dieser Inhalte in den 3D-Ansichten sind vom eingebauten Python-Interpreter oder mittels Ihrer eigenen Skripte zugänglich. Infolgedessen ist FreeCAD wahrscheinlich eine der am weitesten anpassbaren Technikanwendungen auf dem Markt.
== Python skripten in FreeCAD ==
FreeCAD wurde von Grund auf neu entwickelt, um vollständig von Python Skripten gesteuert zu werden. Nahezu alle Teile von FreeCAD, wie z.B. die Oberfläche, die Szeneninhalte und sogar die Darstellung dieser Inhalte in den 3D Ansichten, sind über den eingebauten Python Interpreter oder über eigene Skripte zugänglich. Damit ist FreeCAD wahrscheinlich eine der am weitesten anpassbaren Engineering Anwendungen, die heute verfügbar sind.
</div>


FreeCAD is built from scratch to be totally controlled by Python scripts. Almost all parts of FreeCAD, such as the interface, the scene contents, and even the representation of this content in the 3D views, are accessible from the built-in Python interpreter or from your own scripts. As a result, FreeCAD is probably one of the most deeply customizable engineering applications available today.
In seinem aktuellen Zustand hat jedoch FreeCAD sehr wenige "native" Befehle, um auf Ihre 3D-Objekten zu interagieren, vor allem, weil es ist immer noch im frühen Stadium der Entwicklung ist, sondern auch weil die Philosophie dahinter mehr ist, um eine Plattform für die CAD-Entwicklung zur Verfügung zu stellen, als eine spezifische Gebrauch-Anwendung. Aber die Leichtigkeit des Python-Scripting innerhalb FreeCAD ist ein schneller Weg, um neue Funktionalität durch "Power User" zu entwickeln, Benutzer, die typischerweise ein bisschen Python-Programmierung kennen. Python ist eine der populärsten Interpreter-Sprachen, und weil es im allgemeinen als leicht zu erlernen angesehen wird, können auch Sie schon bald Ihre eigenen FreeCAD "Power User"-Skripte erstelen.


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
Wenn Sie nicht mit Python vertraut sind, empfehlen wir Ihnen, nach Tutorien im Internet zu suchen, um so einen kurzen Blick auf seine Struktur zu bekommen. Python ist eine sehr einfache Sprache zu lernen, vor allem, weil es innerhalb eines Interpreters ausgeführt werden kann, wobei von einfachen Befehlen bis zu vollständigen Programmen alles dynamisch ausgeführt werden kann. Wenn Sie das Fenster mit der Aufschrift "Report-Ansicht", wie unten dargestellt nicht sehen, können Sie es unter der Ansicht-> Paneele-> Berichtsansicht aktivieren, um den Interpreter anzeigen zu lassen.
Wenn Sie nicht mit Python vertraut sind, empfehlen wir Ihnen, nach Tutorien im Internet zu suchen, um so einen kurzen Blick auf seine Struktur zu bekommen. Python ist eine sehr einfache Sprache zu lernen, vor allem, weil es innerhalb eines Interpreters ausgeführt werden kann, wobei von einfachen Befehlen bis zu vollständigen Programmen alles dynamisch ausgeführt werden kann. Wenn Sie das Fenster mit der Aufschrift "Report-Ansicht", wie unten dargestellt nicht sehen, können Sie es unter {{MenuCommand|Ansicht Paneele Berichtsansicht}} aktivieren, um den Interpreter anzeigen zu lassen.
</div>
</div>


<div class="mw-translate-fuzzy">
===Der Interpreter===
===Der Interpreter===


Über den Interpreter, können Sie auf alle Ihre systeminstallierten Python-Module zugreifen, sowie die eingebaute FreeCAD Module und alle zusätzlichen Module, die Sie später installiert haben. Der folgende Screenshot zeigt den Python-Interpreter:
Über den Interpreter, können Sie auf alle Ihre systeminstallierten Python-Module zugreifen, sowie die eingebaute FreeCAD Module und alle zusätzlichen Module, die Sie später installiert haben. Der folgende Screenshot zeigt den Python-Interpreter:
</div>

From the interpreter, you can access all your system-installed Python modules, as well as the built-in FreeCAD modules, and all additional FreeCAD modules you installed later. The screenshot below shows the Python interpreter:


[[Image:screenshot_pythoninterpreter.jpg|The FreeCAD Python interpreter]]
[[Image:screenshot_pythoninterpreter.jpg|The FreeCAD Python interpreter]]


<div class="mw-translate-fuzzy">
Im Interpreter kann man Python-Code ausführen und die verfügbaren Klassen und Funktion durchsuchen. FreeCAD stellt einen sehr handlichen Klassenbrowser für die Erforschung Ihrer neuen FreeCAD Welt zur Verfügung: Wenn Sie den Namen einer bekannten Klasse gefolgt von einem Punkt tippen (das heißt, Sie wollen etwas von dieser Klasse hinzufügen), öffnet sich ein Klassenbrowser-Fenster, wo Sie zwischen verfügbaren Unterklassen und Methoden navigieren können. Wenn Sie etwas auswählen, wird ein verbundener Hilfstext(falls bestehend) gezeigt:
Im Interpreter kann man Python-Code ausführen und die verfügbaren Klassen und Funktion durchsuchen. FreeCAD stellt einen sehr handlichen Klassenbrowser für die Erforschung Ihrer neuen FreeCAD Welt zur Verfügung: Wenn Sie den Namen einer bekannten Klasse gefolgt von einem Punkt tippen (das heißt, Sie wollen etwas von dieser Klasse hinzufügen), öffnet sich ein Klassenbrowser-Fenster, wo Sie zwischen verfügbaren Unterklassen und Methoden navigieren können. Wenn Sie etwas auswählen, wird ein verbundener Hilfstext(falls bestehend) gezeigt:
</div>


[[Image:screenshot_classbrowser.jpg|The FreeCAD class browser]]
[[Image:screenshot_classbrowser.jpg|The FreeCAD class browser]]


<div class="mw-translate-fuzzy">
Als Anfang tippen wir '"App."' oder '"Gui."' ein und sehen was passiert. Ein weiterer Python-üblicher Weg zur Erkundung der Inhalte der Module und Klassen ist es, den verwenden. print dir() -Befehl zu nutzen. Zum Beispiel, das Schreiben von '''print dir()''' wird alle in FreeCAD zurzeit geladenen Module auflisten. '''print dir(App)''' wird Ihnen alles innerhalb des App Moduls anzeigen, usw.
Als Anfang tippen wir '"App."' oder '"Gui."' ein und sehen was passiert. Ein weiterer Python-üblicher Weg zur Erkundung der Inhalte der Module und Klassen ist es, den verwenden. print dir() -Befehl zu nutzen. Zum Beispiel, das Schreiben von '''print dir()''' wird alle in FreeCAD zurzeit geladenen Module auflisten. '''print dir(App)''' wird Ihnen alles innerhalb des App Moduls anzeigen, usw.
</div>


<div class="mw-translate-fuzzy">
Eine weitere nützliche Funktion des Interpreters ist die Möglichkeit, zurück zu gehen in Kommando-History und eine Zeile des Codes wiederzubekommen, den Sie bereits früher tippten. Um in der zu navigieren, benutzen Sie einfach STRG + HOCH oder STRG + RUNTER.
Eine weitere nützliche Funktion des Interpreters ist die Möglichkeit, zurück zu gehen in Kommando-History und eine Zeile des Codes wiederzubekommen, den Sie bereits früher tippten. Um in der zu navigieren, benutzen Sie einfach STRG + HOCH oder STRG + RUNTER.
</div>


Mit der rechten Maustaste in der Interpreter-Fenster haben Sie auch einige andere Optionen, wie z. B. Kopie der gesamten Geschichte (nützlich, um hier etwas experimentieren, dann machen Sie eine vollständige Skript davon), oder fügen Sie Dateinamen mit dem ganzen Pfad ein.
Mit der rechten Maustaste in der Interpreter-Fenster haben Sie auch einige andere Optionen, wie z. B. Kopie der gesamten Geschichte (nützlich, um hier etwas experimentieren, dann machen Sie eine vollständige Skript davon), oder fügen Sie Dateinamen mit dem ganzen Pfad ein.


[[#top|top]]
<div class="mw-translate-fuzzy">
===Python Hilfe===


<div class="mw-translate-fuzzy">
Im FreeCAD-Hilfsmenü finden Sie einen Eintrag mit der Bezeichnung "Python-Hilfe", der ein Browser-Fenster mit einem vollständigen Überblick in Echtzeit generierter Dokumentation aller Python-Module, die im FreeCAD Interpreter zur Verfügung stehen, einschließlich der Python- und FreeCAD eingebauten Module, systeminstallierten Module, und FreeCAD's zusätzlicher Module. Die vorhandenen Dokumentation hängt davon ab, wie viel Aufwand jeder Modul-Entwickler bei der Dokumentation seines Code einsetzt, aber in der Regel haben Python-Module einen Ruf als ziemlich gut dokumentiert. Damit dieses Dokumentationssystem funktioniert, muss Ihr FreeCAD Fenster offen sein.
Im FreeCAD Hilfemenü findest Du den Eintrag "Automatische Python Moduldokumentation", der ein Browserfenster öffnet, das eine vollständige, in Echtzeit generierte Dokumentation aller dem FreeCAD Interpreter zur Verfügung stehenden Python Module enthält, einschließlich Python- und FreeCAD Einbaumodule, systeminstallierte Module und FreeCAD Zusatzmodule. Die dort verfügbare Dokumentation hängt davon ab, wie viel Aufwand jeder Modulentwickler in die Dokumentation seines Codes gesteckt hat, aber normalerweise haben Python Module den Ruf, ziemlich gut dokumentiert zu sein. Ihr FreeCAD Fenster muss geöffnet bleiben, damit dieses Dokumentationssystem funktioniert.
Der Eintrag 'Python Hilfe' gibt Ihnen einen schnellen Link zu diesem Wiki Bereich "Nutzer Verteiler".
</div>
</div>


In the FreeCAD {{MenuCommand|Help}} menu, you'll find an entry labeled {{MenuCommand|Automatic python modules documentation}}, which will open a browser window containing a complete, realtime-generated documentation of all Python modules available to the FreeCAD interpreter, including Python and FreeCAD built-in modules, system-installed modules, and FreeCAD additional modules. The documentation available there depends on how much effort each module developer put into documenting his code, but Python modules have a reputation for being fairly well documented. Your FreeCAD window must stay open for this documentation system to work.
The entry {{MenuCommand|Python scripting documentation}} will give you a quick link to the [[Power_users_hub|Power users hub]] wiki section.

[[#top|top]]

<div class="mw-translate-fuzzy">
==Eingebaute Module==
==Eingebaute Module==
Da FreeCAD für den Betrieb ohne grafische Benutzeroberfläche (GUI) konzipiert ist, ist fast die gesamte Funktionalität in zwei Gruppen unterteilt: Kernfunktionalität, genannt 'App', und GUI-Funktionalität, genannt 'Gui'. Unsere beiden wichtigsten FreeCAD Einbaumodule heißen daher App und Gui. Auf diese beiden Module kann auch von Skripten außerhalb des Interpreters unter den Namen 'FreeCAD' bzw.'FreeCADGui' zugegriffen werden.
</div>


Since FreeCAD is designed so that it can also be run without a Graphical User Interface (GUI), almost all its functionality is separated into two groups: Core functionality, named {{incode|App}}, and GUI functionality, named {{incode|Gui}}. These two modules can also be accessed from scripts outside of the interpreter, by the names {{incode|FreeCAD}} and {{incode|FreeCADGui}} respectively.
Da FreeCAD dafür entworfen ist, ohne Graphische Benutzerschnittstelle geführt zu werden, wird fast seine ganze Funktionalität in zwei Gruppen getrennt: Kernfunktionalität, genannt App, und Gui Funktionalität, genannt Gui. Also sind unsere beiden wichtigsten eingebauten FreeCAD Module die, namens App und GUI. Auf diese zwei Module kann auch von Scripten außerhalb des Interpreters, durch die jeweiligen Namen von FreeCAD und FreeCADGui zugegriffen werden.


<div class="mw-translate-fuzzy">
* Im '''App-Modul''', finden Sie alles im Zusammenhang mit der Anwendung selbst, wie Methoden zum Öffnen oder Schließen von Dateien, und zu den Dokumenten, wie z.B. die Einstellung des aktiven Dokuments oder wie sie ihre Inhalte auflisten.
* Im '''App Modul''' findest Du alles, was mit der Anwendung selbst zu tun hat, wie Methoden zum Öffnen oder Schließen von Dateien, und mit den Dokumenten, wie das Setzen des aktiven Dokuments oder das Auflisten seines Inhalts.
</div>


<div class="mw-translate-fuzzy">
* Im '''GUI-Modul''', werden Sie Werkzeuge für den Zugriff und das Management GUI-Elemente zu finden, wie die Arbeitsbereiche und ihre Symbolleisten, und, noch interessanter, die grafische Darstellung aller Inhalte in FreeCAD.
* Im '''GUI-Modul''', werden Sie Werkzeuge für den Zugriff und das Management GUI-Elemente zu finden, wie die Arbeitsbereiche und ihre Symbolleisten, und, noch interessanter, die grafische Darstellung aller Inhalte in FreeCAD.
</div>


<div class="mw-translate-fuzzy">
Die Auflistung des ganzen Inhalts jener Module ist eine kontraproduktive Aufgabe, da sie ziemlich schnell entlang der FreeCAD Entwicklung wachsen. Aber die zwei zur Verfügung gestellten Browsing-Tools(der Klassenbrowser und die Python-Hilfe) sollten Ihnen, jederzeit, eine komplette und aktuelle Dokumentation dieser Module geben.
Die Auflistung des ganzen Inhalts jener Module ist eine kontraproduktive Aufgabe, da sie ziemlich schnell entlang der FreeCAD Entwicklung wachsen. Aber die zwei zur Verfügung gestellten Browsing-Tools(der Klassenbrowser und die Python-Hilfe) sollten Ihnen, jederzeit, eine komplette und aktuelle Dokumentation dieser Module geben.
</div>


[[#top|top]]

<div class="mw-translate-fuzzy">
===Die App und GUI-Objekte===
===Die App und GUI-Objekte===


Wie gesagt, in FreeCAD, wird alles zwischen Kern und Darstellung getrennt. Dazu gehören auch die 3D-Objekte. Sie können auf die Definition von Eigenschaften von Objekten (so genannte Features in FreeCAD) über das App Modul zugreifen, und die Art ändern, wie sie auf dem Schirm über das Gui Modul dargestellt werden. Zum Beispiel hat ein Würfel Eigenschaften, um ihn zu definieren, wie Breite, Länge, Höhe, die in einem App-Objekt gespeichert sind, und Darstellung-Eigenschaften, wie Flächen-Farbe, Zeichnen-Modus, die in einem entsprechenden GUI-Objekt gespeichert sind.
Wie gesagt, in FreeCAD, wird alles zwischen Kern und Darstellung getrennt. Dazu gehören auch die 3D-Objekte. Sie können auf die Definition von Eigenschaften von Objekten (so genannte Features in FreeCAD) über das App Modul zugreifen, und die Art ändern, wie sie auf dem Schirm über das Gui Modul dargestellt werden. Zum Beispiel hat ein Würfel Eigenschaften, um ihn zu definieren, wie Breite, Länge, Höhe, die in einem App-Objekt gespeichert sind, und Darstellung-Eigenschaften, wie Flächen-Farbe, Zeichnen-Modus, die in einem entsprechenden GUI-Objekt gespeichert sind.
</div>

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.


Diese Handlungsweise ermöglicht eine sehr breite Palette von Anwendungen, wie mit Algorithmen nur aem Teil der Definition von Features zu arbeiten, ohne die Notwendigkeit, sich um den visuellen Teil kümmern zu müssen, oder sogar den Inhalt des Dokumentes zu nichtgraphischen Anwendung, wie Listen, Spreadsheets, oder Element-Analysen umzuleiten.
Diese Handlungsweise ermöglicht eine sehr breite Palette von Anwendungen, wie mit Algorithmen nur aem Teil der Definition von Features zu arbeiten, ohne die Notwendigkeit, sich um den visuellen Teil kümmern zu müssen, oder sogar den Inhalt des Dokumentes zu nichtgraphischen Anwendung, wie Listen, Spreadsheets, oder Element-Analysen umzuleiten.


<div class="mw-translate-fuzzy">
Für jedes App-Objekt in Ihrem Dokument, existiert ein entsprechendes GUI-Objekt. Das Dokument selbst hat tatsächlich auch App, und ein GUI-Objekt. Dies ist natürlich nur dann gültig, wenn Sie FreeCAD mit seiner vollen Schnittstelle starten. In der Kommandozeilen-Version besteht keine GUI, so dass nur App-Objekte verfügbar sind. Beachten Sie, dass der GUI-Teil der Objekte jedemal neu generiert wird, sobald ein ein App-Objekt markiert wird als "neu zu berechnen"(Zum Beispiel, wenn sich einer ihrer Parameter ändert), so dass Änderungen, die Sie direkt am GUI-Objekt vorgenommen haben, verloren gehen können.
Für jedes App-Objekt in Ihrem Dokument, existiert ein entsprechendes GUI-Objekt. Das Dokument selbst hat tatsächlich auch App, und ein GUI-Objekt. Dies ist natürlich nur dann gültig, wenn Sie FreeCAD mit seiner vollen Schnittstelle starten. In der Kommandozeilen-Version besteht keine GUI, so dass nur App-Objekte verfügbar sind. Beachten Sie, dass der GUI-Teil der Objekte jedemal neu generiert wird, sobald ein ein App-Objekt markiert wird als "neu zu berechnen"(Zum Beispiel, wenn sich einer ihrer Parameter ändert), so dass Änderungen, die Sie direkt am GUI-Objekt vorgenommen haben, verloren gehen können.
</div>


<div class="mw-translate-fuzzy">
Um auf den App Teil von etwas zuzugreifen, tippen Sie:
Um auf den App Teil von etwas zuzugreifen, tippen Sie:
</div>

{{Code|code=
{{Code|code=
myObject = App.ActiveDocument.getObject("ObjectName")
myObject = App.ActiveDocument.getObject("ObjectName")
}}
}}

<div class="mw-translate-fuzzy">
wobei "ObjectName" der Name Ihres Objektes ist. Sie können auch eingeben:
wobei "ObjectName" der Name Ihres Objektes ist. Sie können auch eingeben:
</div>

{{Code|code=
{{Code|code=
myObject = App.ActiveDocument.ObjectName
myObject = App.ActiveDocument.ObjectName
}}
}}

<div class="mw-translate-fuzzy">
Um den GUI-Teil des gleichen Objekts zuzugreifen, geben Sie ein:
Um den GUI-Teil des gleichen Objekts zuzugreifen, geben Sie ein:
</div>

{{Code|code=
{{Code|code=
myViewObject = Gui.ActiveDocument.getObject("ObjectName")
myViewObject = Gui.ActiveDocument.getObject("ObjectName")
}}
}}

<div class="mw-translate-fuzzy">
wobei "ObjectName" der Name Ihres Objektes ist. Sie können auch eingeben:
wobei "ObjectName" der Name Ihres Objektes ist. Sie können auch eingeben:
</div>

{{Code|code=
{{Code|code=
myViewObject = App.ActiveDocument.ObjectName.ViewObject
myViewObject = App.ActiveDocument.ObjectName.ViewObject
}}
}}

<div class="mw-translate-fuzzy">
Wenn wir kein GUI (zum Beispiel sind wir im Kommandozeilen-Modus) haben, wird die letzte Zeile None zurückgeben.
Wenn wir kein GUI (zum Beispiel sind wir im Kommandozeilen-Modus) haben, wird die letzte Zeile None zurückgeben.
</div>


[[#top|top]]

<div class="mw-translate-fuzzy">
=== Die Dokument-Objekte ===
=== Die Dokument-Objekte ===


In FreeCAD wird Ihre gesamte Arbeit in Dokumenten hinterlegt. Ein Dokument enthält Ihre Geometrie und kann zu einer Datei gespeichert werden. Es können auch mehrere Dokumente zur gleichen Zeit geöffnet werden. Das Dokument, wie auch die darin enthalten Geometrie, hat App und GUI-Objekte. App-Objekt enthält Ihre tatsächliche Geometrie Definitionen, während dasdie GUI-Objekt die verschiedenen Ansichten von Ihrem Dokument enthält. Sie können mehrere Fenster öffnen, jedes, um Ihre Arbeit mit einem anderen Zoomfaktor oder Ansicht zu betrachten. Diese Ansichten sind alle Teil des GUI-Objekts Ihres Dokuments.
In FreeCAD wird Ihre gesamte Arbeit in Dokumenten hinterlegt. Ein Dokument enthält Ihre Geometrie und kann zu einer Datei gespeichert werden. Es können auch mehrere Dokumente zur gleichen Zeit geöffnet werden. Das Dokument, wie auch die darin enthalten Geometrie, hat App und GUI-Objekte. App-Objekt enthält Ihre tatsächliche Geometrie Definitionen, während dasdie GUI-Objekt die verschiedenen Ansichten von Ihrem Dokument enthält. Sie können mehrere Fenster öffnen, jedes, um Ihre Arbeit mit einem anderen Zoomfaktor oder Ansicht zu betrachten. Diese Ansichten sind alle Teil des GUI-Objekts Ihres Dokuments.
</div>


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.

<div class="mw-translate-fuzzy">
Für den Zugriff auf den App-Teil des aktuell geöffneten (aktiv) Dokuments, schreiben Sie:
Für den Zugriff auf den App-Teil des aktuell geöffneten (aktiv) Dokuments, schreiben Sie:
</div>

{{Code|code=
{{Code|code=
myDocument = App.ActiveDocument
myDocument = App.ActiveDocument
}}
}}

Um ein neues Dokument zu erstellen, eingeben:
Um ein neues Dokument zu erstellen, eingeben:

{{Code|code=
{{Code|code=
myDocument = App.newDocument("Document Name")
myDocument = App.newDocument("Document Name")
}}
}}

<div class="mw-translate-fuzzy">
Für den Zugriff auf den GUI-Teil des aktuell geöffneten (aktiv) Dokuments, geben Sie ein:
Für den Zugriff auf den GUI-Teil des aktuell geöffneten (aktiv) Dokuments, geben Sie ein:
</div>

{{Code|code=
{{Code|code=
myGuiDocument = Gui.ActiveDocument
myGuiDocument = Gui.ActiveDocument
}}
}}

Um auf die gegenwärtige Ansicht zuzugreifen, tippen Sie:
Um auf die gegenwärtige Ansicht zuzugreifen, tippen Sie:

{{Code|code=
{{Code|code=
myView = Gui.ActiveDocument.ActiveView
myView = Gui.ActiveDocument.ActiveView
}}
}}

[[#top|top]]

<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
== Das Verwenden zusätzlicher Module ==
== Das Verwenden zusätzlicher Module ==
Line 96: Line 173:
</div>
</div>


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.

[[#top|top]]

<div class="mw-translate-fuzzy">
=== Erzeugen von Objekten ===
=== Erzeugen von Objekten ===


Jedes Modul hat seine eigene Art und Weise seiner Geometrie zu behandeln, aber eines können sie in der Regel alle, neue Objekte im Dokument erzeugen. Aber das FreeCAD Dokument ist sich auch der verfügbaren, durch die Module zur Verfügung gestellten Objektarten bewusst:
Jedes Modul hat seine eigene Art und Weise seiner Geometrie zu behandeln, aber eines können sie in der Regel alle, neue Objekte im Dokument erzeugen. Aber das FreeCAD Dokument ist sich auch der verfügbaren, durch die Module zur Verfügung gestellten Objektarten bewusst:
</div>

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=
FreeCAD.ActiveDocument.supportedTypes()
FreeCAD.ActiveDocument.supportedTypes()
}}
}}

<div class="mw-translate-fuzzy">
listet Ihnen alle möglichen Objekte, die Sie erstellen können. Zum Beispiel, erstellen wir ein Mesh (behandelt durch das Mesh-Modul) und einen Teil (behandelt durch das Part-Modul):
listet Ihnen alle möglichen Objekte, die Sie erstellen können. Zum Beispiel, erstellen wir ein Mesh (behandelt durch das Mesh-Modul) und einen Teil (behandelt durch das Part-Modul):
</div>

{{Code|code=
{{Code|code=
myMesh = FreeCAD.ActiveDocument.addObject("Mesh::Feature","myMeshName")
myMesh = FreeCAD.ActiveDocument.addObject("Mesh::Feature", "myMeshName")
myPart = FreeCAD.ActiveDocument.addObject("Part::Feature","myPartName")
myPart = FreeCAD.ActiveDocument.addObject("Part::Feature", "myPartName")
}}
}}

<div class="mw-translate-fuzzy">
Das erste Argument ist die Objektart, das zweite der Name desObjekts. Unsere beiden Objekte sehen fast gleich aus: Sie enthalten noch keine Geometrie, und die meisten ihrer Eigenschaften sind die selben, wenn Sie sie mit dir (myMesh) und dir (myPart) untersuchen. Bis auf eines, myMesh hat eine "Mesh"-Eigenschaft und "Part" hat eine "Shape"-Eigenschaft(Gestalt). Das ist, wo die Mesh-und Part-Daten gespeichert sind. Zum Beispiel erstellen wir ein Teil Würfel und speichern Sie es in unserem MyPart Objekt:
Das erste Argument ist die Objektart, das zweite der Name desObjekts. Unsere beiden Objekte sehen fast gleich aus: Sie enthalten noch keine Geometrie, und die meisten ihrer Eigenschaften sind die selben, wenn Sie sie mit dir (myMesh) und dir (myPart) untersuchen. Bis auf eines, myMesh hat eine "Mesh"-Eigenschaft und "Part" hat eine "Shape"-Eigenschaft(Gestalt). Das ist, wo die Mesh-und Part-Daten gespeichert sind. Zum Beispiel erstellen wir ein Teil Würfel und speichern Sie es in unserem MyPart Objekt:
</div>

{{Code|code=
{{Code|code=
import Part
import Part
cube = Part.makeBox(2,2,2)
cube = Part.makeBox(2, 2, 2)
myPart.Shape = cube
myPart.Shape = cube
}}
}}

<div class="mw-translate-fuzzy">
Falls Sie versuchen, den Würfel innerhalb der Mesh-Eigenschaft des Objekts myMesh zu speichern, wird ein Fehler gemeldet, da es sich um den falschen Typ handelt. Das passiert, weil die Eigenschaften so vorgegeben sind, das sie nur einen bestimmten Typ speichern. In der "myMesh"-Mesh-Eigenschaft können Sie nur speichern, was mit dem Mesh-Modul erstellt wurde. Beachten Sie, dass die meisten Module auch eine Verknüpfung haben, über die sie ihre Geometrie zum Dokument hinzufügen:
Falls Sie versuchen, den Würfel innerhalb der Mesh-Eigenschaft des Objekts myMesh zu speichern, wird ein Fehler gemeldet, da es sich um den falschen Typ handelt. Das passiert, weil die Eigenschaften so vorgegeben sind, das sie nur einen bestimmten Typ speichern. In der "myMesh"-Mesh-Eigenschaft können Sie nur speichern, was mit dem Mesh-Modul erstellt wurde. Beachten Sie, dass die meisten Module auch eine Verknüpfung haben, über die sie ihre Geometrie zum Dokument hinzufügen:
</div>

{{Code|code=
{{Code|code=
import Part
import Part
cube = Part.makeBox(2,2,2)
cube = Part.makeBox(2, 2, 2)
Part.show(cube)
Part.show(cube)
}}
}}

[[#top|top]]

<div class="mw-translate-fuzzy">
=== Ändern von Objekten ===
=== Ändern von Objekten ===


Ändern eines Objekts geschiet auf dieselbe Weise:
Ändern eines Objekts geschiet auf dieselbe Weise:
</div>

Modifying an object is done in the same way:

{{Code|code=
{{Code|code=
import Part
import Part
cube = Part.makeBox(2,2,2)
cube = Part.makeBox(2, 2, 2)
myPart.Shape = cube
myPart.Shape = cube
}}
}}

Wollen jetzt wir die Form in eine größere ändern:
Wollen jetzt wir die Form in eine größere ändern:

{{Code|code=
{{Code|code=
biggercube = Part.makeBox(5,5,5)
biggercube = Part.makeBox(5, 5, 5)
myPart.Shape = biggercube
myPart.Shape = biggercube
}}
}}

[[#top|top]]

<div class="mw-translate-fuzzy">
=== Abfragen von Objekten ===
=== Abfragen von Objekten ===


Sie können jederzeit den Typ eines Objekts wie folgt ermitteln:
Sie können jederzeit den Typ eines Objekts wie folgt ermitteln:
</div>

You can always look at the type of an object like this:

{{Code|code=
{{Code|code=
myObj = FreeCAD.ActiveDocument.getObject("myObjectName")
myObj = FreeCAD.ActiveDocument.getObject("myObjectName")
print myObj.TypeId
print(myObj.TypeId)
}}
}}

<div class="mw-translate-fuzzy">
der feststellen, ob ein Objekt von einer der Grunformen abgeleitet wurde(Part Feature, Mesh Feature, etc):
der feststellen, ob ein Objekt von einer der Grunformen abgeleitet wurde(Part Feature, Mesh Feature, etc):
</div>

{{Code|code=
{{Code|code=
print myObj.isDerivedFrom("Part::Feature")
print(myObj.isDerivedFrom("Part::Feature"))
}}
}}
<div class="mw-translate-fuzzy">
Jetzt können Sie wirklich anfangen, mit FreeCAD zu spielen! Um herauszufinden, was Sie mit dem [[Part Module/de|Part Modul]] tun können, Lesen Sie die [[Topological data scripting/de|Part scripting]]-Seite, oder die [[Mesh Scripting/de|Mesh Skripting in FreeCAD]] -Seite für die Arbeit mit dem [[Mesh Module/de|Mesh-Modul]]. Beachten Sie, dass, obwohl das Teil- und Mesh-Modul die vollständigsten und am weitesten verbreitetet sind, andere Module, haben andere Module wie das [[Draft Module/de|Draft-Modul]] auch [[Draft API/de|scripting]]-APIs, die für Sie nützlich sein können. Eine vollständige Liste der einzelnen Module und ihrer verfügbaren Tools finden Sie im [[:Category:API]]-Abschnitt.
</div>


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
Jetzt können Sie wirklich anfangen, mit FreeCAD zu spielen! Um herauszufinden, was Sie mit dem [[Part Module/de|Part Modul]] tun können, Lesen Sie die [[Topological data scripting/de|Part scripting]]-Seite, oder die [[Mesh Scripting/de|Mesh Skripting in FreeCAD]]-Seite für die Arbeit mit dem [[Mesh Module/de|Mesh-Modul]]. Beachten Sie, dass, obwohl das Teil- und Mesh-Modul die vollständigsten und am weitesten verbreitetet sind, haben andere Module wie das [[Draft Module/de|Draft-Modul]] auch [[Draft API/de|scripting]]-APIs, die für Sie nützlich sein können. Eine vollständige Liste der einzelnen Module und ihrer verfügbaren Tools finden Sie im [[:Category:API/de|Category:API]]-Abschnitt.
{{docnav/de|[[Introduction to Python/de|Einführung in Python]]|[[Mesh Scripting/de|Mesh Skripting in FreeCAD]]}}
</div>
</div>


[[#top|top]]
{{Userdocnavi/de}}

[[Category:Poweruser Documentation/de]]

[[Category:Python Code]]


<div class="mw-translate-fuzzy">
{{docnav/de|[[Python scripting tutorial/de|Einführung in Python]]|[[Mesh Scripting/de|Mesh Skripting in FreeCAD]]}}
</div>


{{Powerdocnavi{{#translation:}}}}
[[Category:Developer Documentation{{#translation:}}]]
[[Category:Python Code{{#translation:}}]]
{{clear}}
{{clear}}

Revision as of 21:44, 5 June 2020

Python skripten in FreeCAD

FreeCAD wurde von Grund auf neu entwickelt, um vollständig von Python Skripten gesteuert zu werden. Nahezu alle Teile von FreeCAD, wie z.B. die Oberfläche, die Szeneninhalte und sogar die Darstellung dieser Inhalte in den 3D Ansichten, sind über den eingebauten Python Interpreter oder über eigene Skripte zugänglich. Damit ist FreeCAD wahrscheinlich eine der am weitesten anpassbaren Engineering Anwendungen, die heute verfügbar sind.

FreeCAD is built from scratch to be totally controlled by Python scripts. Almost all parts of FreeCAD, such as the interface, the scene contents, and even the representation of this content in the 3D views, are accessible from the built-in Python interpreter or from your own scripts. As a result, FreeCAD is probably one of the most deeply customizable engineering applications available today.

Wenn Sie nicht mit Python vertraut sind, empfehlen wir Ihnen, nach Tutorien im Internet zu suchen, um so einen kurzen Blick auf seine Struktur zu bekommen. Python ist eine sehr einfache Sprache zu lernen, vor allem, weil es innerhalb eines Interpreters ausgeführt werden kann, wobei von einfachen Befehlen bis zu vollständigen Programmen alles dynamisch ausgeführt werden kann. Wenn Sie das Fenster mit der Aufschrift "Report-Ansicht", wie unten dargestellt nicht sehen, können Sie es unter Ansicht → Paneele → Berichtsansicht aktivieren, um den Interpreter anzeigen zu lassen.

Der Interpreter

Über den Interpreter, können Sie auf alle Ihre systeminstallierten Python-Module zugreifen, sowie die eingebaute FreeCAD Module und alle zusätzlichen Module, die Sie später installiert haben. Der folgende Screenshot zeigt den Python-Interpreter:

From the interpreter, you can access all your system-installed Python modules, as well as the built-in FreeCAD modules, and all additional FreeCAD modules you installed later. The screenshot below shows the Python interpreter:

The FreeCAD Python interpreter

Im Interpreter kann man Python-Code ausführen und die verfügbaren Klassen und Funktion durchsuchen. FreeCAD stellt einen sehr handlichen Klassenbrowser für die Erforschung Ihrer neuen FreeCAD Welt zur Verfügung: Wenn Sie den Namen einer bekannten Klasse gefolgt von einem Punkt tippen (das heißt, Sie wollen etwas von dieser Klasse hinzufügen), öffnet sich ein Klassenbrowser-Fenster, wo Sie zwischen verfügbaren Unterklassen und Methoden navigieren können. Wenn Sie etwas auswählen, wird ein verbundener Hilfstext(falls bestehend) gezeigt:

The FreeCAD class browser

Als Anfang tippen wir '"App."' oder '"Gui."' ein und sehen was passiert. Ein weiterer Python-üblicher Weg zur Erkundung der Inhalte der Module und Klassen ist es, den verwenden. print dir() -Befehl zu nutzen. Zum Beispiel, das Schreiben von print dir() wird alle in FreeCAD zurzeit geladenen Module auflisten. print dir(App) wird Ihnen alles innerhalb des App Moduls anzeigen, usw.

Eine weitere nützliche Funktion des Interpreters ist die Möglichkeit, zurück zu gehen in Kommando-History und eine Zeile des Codes wiederzubekommen, den Sie bereits früher tippten. Um in der zu navigieren, benutzen Sie einfach STRG + HOCH oder STRG + RUNTER.

Mit der rechten Maustaste in der Interpreter-Fenster haben Sie auch einige andere Optionen, wie z. B. Kopie der gesamten Geschichte (nützlich, um hier etwas experimentieren, dann machen Sie eine vollständige Skript davon), oder fügen Sie Dateinamen mit dem ganzen Pfad ein.

top

Im FreeCAD Hilfemenü findest Du den Eintrag "Automatische Python Moduldokumentation", der ein Browserfenster öffnet, das eine vollständige, in Echtzeit generierte Dokumentation aller dem FreeCAD Interpreter zur Verfügung stehenden Python Module enthält, einschließlich Python- und FreeCAD Einbaumodule, systeminstallierte Module und FreeCAD Zusatzmodule. Die dort verfügbare Dokumentation hängt davon ab, wie viel Aufwand jeder Modulentwickler in die Dokumentation seines Codes gesteckt hat, aber normalerweise haben Python Module den Ruf, ziemlich gut dokumentiert zu sein. Ihr FreeCAD Fenster muss geöffnet bleiben, damit dieses Dokumentationssystem funktioniert. Der Eintrag 'Python Hilfe' gibt Ihnen einen schnellen Link zu diesem Wiki Bereich "Nutzer Verteiler".

In the FreeCAD Help menu, you'll find an entry labeled Automatic python modules documentation, which will open a browser window containing a complete, realtime-generated documentation of all Python modules available to the FreeCAD interpreter, including Python and FreeCAD built-in modules, system-installed modules, and FreeCAD additional modules. The documentation available there depends on how much effort each module developer put into documenting his code, but Python modules have a reputation for being fairly well documented. Your FreeCAD window must stay open for this documentation system to work. The entry Python scripting documentation will give you a quick link to the Power users hub wiki section.

top

Eingebaute Module

Da FreeCAD für den Betrieb ohne grafische Benutzeroberfläche (GUI) konzipiert ist, ist fast die gesamte Funktionalität in zwei Gruppen unterteilt: Kernfunktionalität, genannt 'App', und GUI-Funktionalität, genannt 'Gui'. Unsere beiden wichtigsten FreeCAD Einbaumodule heißen daher App und Gui. Auf diese beiden Module kann auch von Skripten außerhalb des Interpreters unter den Namen 'FreeCAD' bzw.'FreeCADGui' zugegriffen werden.

Since FreeCAD is designed so that it can also be run without a Graphical User Interface (GUI), almost all its functionality is separated into two groups: Core functionality, named App, and GUI functionality, named Gui. These two modules can also be accessed from scripts outside of the interpreter, by the names FreeCAD and FreeCADGui respectively.

  • Im App Modul findest Du alles, was mit der Anwendung selbst zu tun hat, wie Methoden zum Öffnen oder Schließen von Dateien, und mit den Dokumenten, wie das Setzen des aktiven Dokuments oder das Auflisten seines Inhalts.
  • Im GUI-Modul, werden Sie Werkzeuge für den Zugriff und das Management GUI-Elemente zu finden, wie die Arbeitsbereiche und ihre Symbolleisten, und, noch interessanter, die grafische Darstellung aller Inhalte in FreeCAD.

Die Auflistung des ganzen Inhalts jener Module ist eine kontraproduktive Aufgabe, da sie ziemlich schnell entlang der FreeCAD Entwicklung wachsen. Aber die zwei zur Verfügung gestellten Browsing-Tools(der Klassenbrowser und die Python-Hilfe) sollten Ihnen, jederzeit, eine komplette und aktuelle Dokumentation dieser Module geben.

top

Die App und GUI-Objekte

Wie gesagt, in FreeCAD, wird alles zwischen Kern und Darstellung getrennt. Dazu gehören auch die 3D-Objekte. Sie können auf die Definition von Eigenschaften von Objekten (so genannte Features in FreeCAD) über das App Modul zugreifen, und die Art ändern, wie sie auf dem Schirm über das Gui Modul dargestellt werden. Zum Beispiel hat ein Würfel Eigenschaften, um ihn zu definieren, wie Breite, Länge, Höhe, die in einem App-Objekt gespeichert sind, und Darstellung-Eigenschaften, wie Flächen-Farbe, Zeichnen-Modus, die in einem entsprechenden GUI-Objekt gespeichert sind.

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 App module, and change the way they are represented on screen via the Gui module. For example, a cube has properties that define it (like width, length, height) that are stored in an App object, and representation properties (like faces color, drawing mode) that are stored in a corresponding Gui object.

Diese Handlungsweise ermöglicht eine sehr breite Palette von Anwendungen, wie mit Algorithmen nur aem Teil der Definition von Features zu arbeiten, ohne die Notwendigkeit, sich um den visuellen Teil kümmern zu müssen, oder sogar den Inhalt des Dokumentes zu nichtgraphischen Anwendung, wie Listen, Spreadsheets, oder Element-Analysen umzuleiten.

Für jedes App-Objekt in Ihrem Dokument, existiert ein entsprechendes GUI-Objekt. Das Dokument selbst hat tatsächlich auch App, und ein GUI-Objekt. Dies ist natürlich nur dann gültig, wenn Sie FreeCAD mit seiner vollen Schnittstelle starten. In der Kommandozeilen-Version besteht keine GUI, so dass nur App-Objekte verfügbar sind. Beachten Sie, dass der GUI-Teil der Objekte jedemal neu generiert wird, sobald ein ein App-Objekt markiert wird als "neu zu berechnen"(Zum Beispiel, wenn sich einer ihrer Parameter ändert), so dass Änderungen, die Sie direkt am GUI-Objekt vorgenommen haben, verloren gehen können.

Um auf den App Teil von etwas zuzugreifen, tippen Sie:

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

wobei "ObjectName" der Name Ihres Objektes ist. Sie können auch eingeben:

myObject = App.ActiveDocument.ObjectName

Um den GUI-Teil des gleichen Objekts zuzugreifen, geben Sie ein:

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

wobei "ObjectName" der Name Ihres Objektes ist. Sie können auch eingeben:

myViewObject = App.ActiveDocument.ObjectName.ViewObject

Wenn wir kein GUI (zum Beispiel sind wir im Kommandozeilen-Modus) haben, wird die letzte Zeile None zurückgeben.

top

Die Dokument-Objekte

In FreeCAD wird Ihre gesamte Arbeit in Dokumenten hinterlegt. Ein Dokument enthält Ihre Geometrie und kann zu einer Datei gespeichert werden. Es können auch mehrere Dokumente zur gleichen Zeit geöffnet werden. Das Dokument, wie auch die darin enthalten Geometrie, hat App und GUI-Objekte. App-Objekt enthält Ihre tatsächliche Geometrie Definitionen, während dasdie GUI-Objekt die verschiedenen Ansichten von Ihrem Dokument enthält. Sie können mehrere Fenster öffnen, jedes, um Ihre Arbeit mit einem anderen Zoomfaktor oder Ansicht zu betrachten. Diese Ansichten sind alle Teil des GUI-Objekts Ihres Dokuments.

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 App and Gui objects. The App object contains your actual geometry definitions, while the 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 Gui object.

Für den Zugriff auf den App-Teil des aktuell geöffneten (aktiv) Dokuments, schreiben Sie:

myDocument = App.ActiveDocument

Um ein neues Dokument zu erstellen, eingeben:

myDocument = App.newDocument("Document Name")

Für den Zugriff auf den GUI-Teil des aktuell geöffneten (aktiv) Dokuments, geben Sie ein:

myGuiDocument = Gui.ActiveDocument

Um auf die gegenwärtige Ansicht zuzugreifen, tippen Sie:

myView = Gui.ActiveDocument.ActiveView

top

Das Verwenden zusätzlicher Module

Die FreeCAD und FreeCADGui Module sind ausschließlich Verantwortlich für das Erstellen und Verwalten von Objekten in einem FreeCAD Dokument. Sie haben nichts zu tun, mit dem Erstellen oder Ändern von Geometrie. Das liegt daran, dass die Geometrie aus mehreren Typen bestehen kann, somit werden sie durch zusätzliche Module verwaltet, jeweils zuständig für die Verwaltung eines bestimmten Geometrie-Typs. Zum Beispiel, Part Modul verwendet den OpenCascade Kern, und kann daher die Erstellung und Bearbeitung von B-rep Geometrien behandeln, wofür OpenCascade entwickelt wurde. Das Mesh-Modul ist in der Lage, Mesh-Objekte zu erzeugen und zu modifizieren. Auf diese Weise ist FreeCAD in der Lage, eine Vielzahl von Objekttypen, die alle im selben Dokument koexistieren können, zu handhaben, und neue Arten könnten in der Zukunft leicht hinzugefügt werden.

The FreeCAD and 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, using the OpenCascade kernel, is able to create and manipulate BRep type geometry. Whereas the 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.

top

Erzeugen von Objekten

Jedes Modul hat seine eigene Art und Weise seiner Geometrie zu behandeln, aber eines können sie in der Regel alle, neue Objekte im Dokument erzeugen. Aber das FreeCAD Dokument ist sich auch der verfügbaren, durch die Module zur Verfügung gestellten Objektarten bewusst:

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:

FreeCAD.ActiveDocument.supportedTypes()

listet Ihnen alle möglichen Objekte, die Sie erstellen können. Zum Beispiel, erstellen wir ein Mesh (behandelt durch das Mesh-Modul) und einen Teil (behandelt durch das Part-Modul):

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

Das erste Argument ist die Objektart, das zweite der Name desObjekts. Unsere beiden Objekte sehen fast gleich aus: Sie enthalten noch keine Geometrie, und die meisten ihrer Eigenschaften sind die selben, wenn Sie sie mit dir (myMesh) und dir (myPart) untersuchen. Bis auf eines, myMesh hat eine "Mesh"-Eigenschaft und "Part" hat eine "Shape"-Eigenschaft(Gestalt). Das ist, wo die Mesh-und Part-Daten gespeichert sind. Zum Beispiel erstellen wir ein Teil Würfel und speichern Sie es in unserem MyPart Objekt:

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

Falls Sie versuchen, den Würfel innerhalb der Mesh-Eigenschaft des Objekts myMesh zu speichern, wird ein Fehler gemeldet, da es sich um den falschen Typ handelt. Das passiert, weil die Eigenschaften so vorgegeben sind, das sie nur einen bestimmten Typ speichern. In der "myMesh"-Mesh-Eigenschaft können Sie nur speichern, was mit dem Mesh-Modul erstellt wurde. Beachten Sie, dass die meisten Module auch eine Verknüpfung haben, über die sie ihre Geometrie zum Dokument hinzufügen:

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

top

Ändern von Objekten

Ändern eines Objekts geschiet auf dieselbe Weise:

Modifying an object is done in the same way:

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

Wollen jetzt wir die Form in eine größere ändern:

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

top

Abfragen von Objekten

Sie können jederzeit den Typ eines Objekts wie folgt ermitteln:

You can always look at the type of an object like this:

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

der feststellen, ob ein Objekt von einer der Grunformen abgeleitet wurde(Part Feature, Mesh Feature, etc):

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

Jetzt können Sie wirklich anfangen, mit FreeCAD zu spielen! Um herauszufinden, was Sie mit dem Part Modul tun können, Lesen Sie die Part scripting-Seite, oder die Mesh Skripting in FreeCAD-Seite für die Arbeit mit dem Mesh-Modul. Beachten Sie, dass, obwohl das Teil- und Mesh-Modul die vollständigsten und am weitesten verbreitetet sind, haben andere Module wie das Draft-Modul auch scripting-APIs, die für Sie nützlich sein können. Eine vollständige Liste der einzelnen Module und ihrer verfügbaren Tools finden Sie im Category:API-Abschnitt.

top