Manual:A gentle introduction/de: Difference between revisions

From FreeCAD Documentation
(Created page with "[https://en.wikipedia.org/wiki/Python_%28programming_language%29 Python] ist eine populäre, quelloffene Programmiersprache, die sehr oft als Skriptsprache in Anwendungen eing...")
No edit summary
 
(72 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
{{Docnav|Manual:Creating renderings|Manual:Creating and manipulating geometry|[[Manual:Introduction|Manual start]]|IconC=Crystal Clear manual.png}}


{{Manual:TOC/de}}
{{Docnav/de
|[[Manual:Creating_renderings/de|Bildsynthesen erstellen]]
|[[Manual:Creating_and manipulating_geometry/de|Erstellen und Handhabung von Geometrie]]
|[[Manual:Introduction|Handbuch:Einführung]]
|IconC=Crystal_Clear_manual.png
}}


{{Manual:TOC}}
[https://en.wikipedia.org/wiki/Python_%28programming_language%29 Python] ist eine populäre, quelloffene Programmiersprache, die sehr oft als Skriptsprache in Anwendungen eingebettet ist, wie es bei FreeCAD der Fall ist. Sie hat eine Reihe von Eigenschaften, die sie für uns FreeCAD Anwender geeignet machen: Es ist sehr leicht zu erlernen, besonders für Leute, die noch nie programmiert haben, und es ist in viele andere Anwendungen eingebettet. Das macht es zu einem wertvollen Lernwerkzeug, da Sie es in anderen Programmen wie [http://www.blender.org Blender], [http://www.inkscape.org Inkscape] oder [http://grass.osgeo.org/ GRASS] verwenden können.


[https://en.wikipedia.org/wiki/Python_%28programming_language%29 Python] ist eine populäre, quelloffene Programmiersprache, die sehr oft als Skriptsprache in Anwendungen eingebettet ist, so auch in FreeCAD. Sie hat eine Reihe von Eigenschaften, die sie für uns FreeCAD-Anwender geeignet machen: Sie ist sehr leicht zu erlernen, besonders für Leute, die noch nie programmiert haben und sie ist in viele andere Anwendungen eingebettet. Das macht sie zu einem wertvollen Werkzeug, das sich zu lernen lohnt, da sie auch in anderen Programmen wie [http://www.blender.org Blender], [http://www.inkscape.org Inkscape] oder [http://grass.osgeo.org/ GRASS] verwendet werden kann.
FreeCAD makes extensive use of Python. With it, you can access and control almost any feature of FreeCAD. For example, you can create new objects, modify their geometry, analyze their contents, or even create new interface controls, tools and panels. Some FreeCAD workbenches and most of the addon workbenches are fully programmed in Python. FreeCAD has an advanced Python console, available from menu '''View->Panels->Python console'''. It is often useful to perform operations for which there is no toolbar button yet, or to check shapes for problems, or to perform repetitive tasks:

FreeCAD macht umfangreichen Gebrauch von Python. Damit kann auf fast alle Funktionen von FreeCAD zugegriffen werden, um sie zu steuern. So können beispielsweise neue Objekte erstellt, ihre Geometrie geändert, ihr Inhalt analysiert und sogar neue Bedienelemente, Werkzeuge und Bedienfelder erstellt werden. Einige FreeCAD-Arbeitsbereiche und die meisten Addon-Arbeitsbereiche sind vollständig in Python programmiert. FreeCAD enthält eine fortschrittliche Python-Konsole, die über den Menüeintrag '''Ansicht → Paneele → Python-Konsole''' zur Verfügung steht. Sie ist oft nützlich, um Operationen durchzuführen, für die es noch keine Schaltfläche in der Symbolleiste gibt, oder um Formen auf Probleme zu überprüfen oder um sich wiederholende Aufgaben durchzuführen:


[[Image:Exercise_python_01.jpg]]
[[Image:Exercise_python_01.jpg]]


Aber die Python-Konsole hat noch eine andere sehr wichtige Verwendung: Jedes Mal, wenn eine Schaltfläche in der Werkzeugleiste gedrückt oder andere Operationen in FreeCAD ausgeführt werden, wird ein Teil des Python-Codes in der Konsole ausgegeben (wenn die Option {{MenuCommand|Skriptbefehle in Python-Konsole anzeigen}} in den Voreinstellungen unter {{MenuCommand|Bearbeiten → Einstellungen... → Python → Makro}} aktiviert ist) und ausgeführt. Wird die Python-Konsole offen gelassen, kann man buchstäblich sehen, wie sich der Python-Code bei der Arbeit entfaltet, und im Handumdrehen, fast ohne es zu wissen, lernt man etwas von der Sprache Python.
But the Python console has another very important use: Every time you press a toolbar button, or perform other operations in FreeCAD, some Python code is printed in the console and executed. By leaving the Python console open, you can literally see the Python code unfold as you work, and in no time, almost without knowing it, you will learning some of the Python language.


FreeCAD also has a [[Macros|macros system]], which allows you to record actions to be replayed later. This system also uses the Python console, by simply recording everything that is done in it.
FreeCAD verfügt auch über ein [[Macros/de|Makro-System]], mit dem Aktionen aufgezeichnet und später wiedergegeben werden können. Dieses System verwendet ebenfalls die Python-Konsole, indem es einfach alles aufzeichnet, was darin gemacht wird.


In this chapter, we will discover very generally the Python language. If you are interested in learning more, the FreeCAD documentation wiki has an extensive section related to [[Power_users_hub|Python programming]].
In diesem Kapitel werden wir ganz allgemein die Sprache Python entdecken. Wer daran interessiert ist, mehr zu erfahren, findet im FreeCAD-Dokumentations-Wiki einen ausführlichen Abschnitt zum Thema [[Power_users_hub/de|Python-Programmierung]].


<span id="Writing_Python_code"></span>
=== Writing Python code ===
===Python-Code schreiben===


Es gibt zwei einfache Möglichkeiten, Python-Code in FreeCAD zu schreiben: Von der Python-Konsole aus ({{MenuCommand|Ansicht → Paneele → Python-Konsole}}), oder vom Makro-Editor aus ({{MenuCommand|Makro → Makros... → Erstellen}}). In der Konsole werden nacheinander Python-Befehle geschrieben, die ausgeführt werden, wenn die Eingabetaste gedrückt wird, während Makros ein komplexeres Skript aus mehreren Zeilen enthalten können, das nur dann ausgeführt wird, wenn das Makro von demselben Makro-Fenster aus gestartet wird.
There are two easy ways to write Python code in FreeCAD: From the Python console (menu '''View -> Panels -> Python Console'''), or from the Macro editor (menu '''Tools -> Macros -> New'''). In the console, you write Python commands one by one, which are executed when you press return, while the macros can contain a more complex script made of several lines, which is executed only when the macro is launched from the same Macros window.


In diesem Kapitel wirst du beide Methoden verwenden können, aber es wird dringend empfohlen, die Python-Konsole zu verwenden, da sie dich sofort über alle Fehler informiert, die du beim Tippen machst.
In this chapter, you will be able to use both methods, but it is highly recommended to use the Python Console, since it will immediately inform you of any errors you make while typing.


If this is your first time using Python, consider reading this short [[Introduction_to_Python|introduction to Python programming]] before going any further, it will make the basic concepts of Python clearer.
Wenn du Python zum ersten Mal verwendest, solltest du diese kurze [[Introduction_to_Python/de|Einführung in die Python-Programmierung]] liest, bevor du weitermachst, wird sie die grundlegenden Konzepte von Python klarer machen.


<span id="Manipulating_FreeCAD_objects"></span>
=== Manipulating FreeCAD objects ===
=== Handhabung von FreeCAD Objekten ===


Beginnen wir damit, ein neues leeres Dokument zu erstellen:
Let's start by creating a new empty document:


doc = FreeCAD.newDocument()
doc = FreeCAD.newDocument()


If you type this in the FreeCAD Python console, you will notice that as soon as you type "FreeCAD." (the word FreeCAD followed by a dot), a windows pops up, allowing to quickly autocomplete the rest of your line. Even better, each entry in the autocomplete list has a tooltip explaining what it does. This makes it very easy to explore the functionality available. Before choosing "newDocument", have a look at the other options available.
Wenn du dies in der FreeCAD-Python-Konsole eingibst, wirst du, sobald du "FreeCAD." eintippst (das Wort FreeCAD gefolgt von einem Punkt), bemerken, dass sich ein Fenster öffnet, das ermöglicht den Rest deiner Zeile schnell automatisch vervollständigen zu können. Besser noch, jeder Eintrag in der Autovervollständigungsliste hat eine QuickInfo, die erklärt, was er tut. Dies macht es sehr einfach, die verfügbaren Funktionen zu erkunden. Bevor du "newDocument" wählst, wirf einen Blick auf die anderen verfügbaren Optionen.


[[Image:Exercise_python_02.jpg]]
[[Image:Exercise_python_02.jpg]]


As soon as you press '''Enter''' our new document will be created. This is similar to pressing the "new document" button on the toolbar. In Python, the dot is used to indicate something that is contained inside something else (newDocument is a function that is inside the FreeCAD module). The window that pops up therefore shows you everything that is contained inside "FreeCAD". If you would add a dot after newDocument, instead of the parentheses, it would show you everything that is contained inside the newDocument function. The parentheses are mandatory when you are calling a Python function, such as this one. We will illustrate that better below.
Sobald du '''Enter''' drückst, wird unser neues Dokument erstellt. Dies ist ähnlich wie das Drücken der Schaltfläche "Neues Dokument" in der Werkzeugleiste. In Python wird der Punkt verwendet, um etwas anzuzeigen, das in etwas anderem enthalten ist (newDocument ist eine Funktion, die sich innerhalb des FreeCAD-Moduls befindet). Das sich öffnende Fenster zeigt dir daher alles, was in "FreeCAD" enthalten ist. Wenn du nach "newDocument" anstelle der Klammern einen Punkt hinzufügen würdest, würde es dir alles anzeigen, was in der Funktion "newDocument" enthalten ist. Die Klammern sind obligatorisch, wenn du eine Python-Funktion, wie diese hier, aufrufst. Wir werden das weiter unten besser veranschaulichen.


Kommen wir nun zurück zu unserem Dokument. Lasse uns sehen, was wir damit machen können. Gib Folgendes ein und untersuche die verfügbaren Optionen:
Now let's get back to our document. Let's see what we can do with it. Type the following and explore the available options:


doc.
doc.


Normalerweise sind Namen, die mit einem Großbuchstaben beginnen, Attribute: Sie enthalten einen Wert. Namen, die mit einem Kleinbuchstaben beginnen, sind Funktionen (auch Methoden genannt): sie "tun etwas". Namen, die mit einem Unterstrich beginnen, sind normalerweise für den internen Gebrauch des Moduls da, und du solltest sie ignorieren. Lasse uns eine der Methoden verwenden, um ein neues Objekt zu unserem Dokument hinzuzufügen:
Usually names that begin with an upper-case letter are attributes: they contain a value. Names that begin with a lower-case letter are functions (also called methods): they "do something". Names that begin with an underscore are usually there for the internal use of the module, and you should ignore them. Let's use one of the methods to add a new object to our document:


box = doc.addObject("Part::Box","myBox")
box = doc.addObject("Part::Box","myBox")


Unser Kasten wird in der Baumansicht hinzugefügt, aber in der 3D-Ansicht passiert noch nichts, weil beim Arbeiten von Python aus das Dokument nie automatisch neu berechnet wird. Wir müssen dies manuell tun, wann immer es erforderlich ist:
Our box is added in the tree view, but nothing happens in the 3D view yet, because when working from Python, the document is never recomputed automatically. We must do that manually, whenever required:


doc.recompute()
doc.recompute()


Jetzt ist unser Kasten in der 3D-Ansicht erschienen. Viele der Schaltflächen auf der Werkzeugleiste, mit denen in FreeCAD Objekte hinzugefügt werden können, tun eigentlich zwei Dinge: das Objekt hinzufügen und neu berechnen. Versuche nun, mit der entsprechenden Schaltfläche im Arbeitsbereich Part eine Kugel hinzuzufügen, und du wirst sehen, wie die beiden Zeilen des Python-Codes nacheinander ausgeführt werden.
Now our box has appeared in the 3D view. Many of the toolbar buttons that add objects in FreeCAD actually do two things: add the object, and recompute. If you turned on the "show script commands in Python console" option above, try now adding a sphere with the appropriate button in the Part Workbench, and you will see the two lines of Python code being executed one after the other.


Du kannst eine Liste aller möglichen Objekttypen wie Part::Box abfragen:
You can get a list of all possible object types like Part::Box:


doc.supportedTypes()
doc.supportedTypes()


Lass uns nun den Inhalt unseres Kastens erkunden:
Now let's explore the contents of our box:


box.
box.


Du wirst sofort ein paar sehr interessante Dinge sehen, wie zum Beispiel:
You'll immediately see a couple of very interesting things such as:


box.Height
box.Height


Dadurch wird die aktuelle Höhe unseres Kastens ausgegeben. Versuchen wir nun, das zu ändern:
This will print the current height of our box. Now let's try to change that:


box.Height = 5
box.Height = 5


Wenn du dein Kästchen mit der Maus markierst, siehst du, dass im Eigenschafteneditor unter dem '''Daten'''-Reiter unsere Eigenschaft '''Höhe''' mit dem neuen Wert erscheint. Alle Eigenschaften eines FreeCAD-Objekts, die in den Reitern '''Daten''' und '''Ansicht''' erscheinen, sind auch von Python direkt zugänglich, und zwar über ihren Namen, wie wir es bei der Eigenschaft Höhe getan haben. Auf die Dateneigenschaften wird z.B. direkt vom Objekt selbst aus zugegriffen:
If you select your box with the mouse, you will see that in the properties panel, under the '''Data''' tab, our '''Height''' property appears with the new value. All properties of a FreeCAD object that appear in the '''Data''' and '''View''' tabs are directly accessible by Python too, by their names, like we did with the Height property. Data properties are accessed directly from the object itself, for example:


box.Length
box.Length


View properties are stored inside a '''ViewObject'''. Each FreeCAD object possesses a ViewObject, which stores the visual properties of the object. When running FreeCAD without its Graphical Interface (for example when launching it from a terminal with the -c command line option, or using it from another Python script), the ViewObject is not available, since there is no visual at all.
Ansichtseigenschaften werden in einem '''ViewObject''' gespeichert. Jedes FreeCAD-Objekt verfügt über ein ViewObject, das die visuellen Eigenschaften des Objekts speichert. Wenn FreeCAD ohne seine grafische Schnittstelle ausgeführt wird (z.B. wenn es von einem Terminal mit der Befehlszeilenoption -c gestartet wird oder wenn es von einem anderen Python-Skript aus verwendet wird), ist das ViewObject nicht verfügbar, da es überhaupt keine bildliche Darstellung gibt.


Versuche das folgende Beispiel, um auf die Linienfarbe unserer Kiste zuzugreifen:
Try the following example to access the line color of our box:


box.ViewObject.LineColor
box.ViewObject.LineColor


<span id="Vectors_and_Placements"></span>
=== Vectors and Placements ===
=== Vektoren und Platzierungen ===


Vectors are a fundamental concept in any 3D application. It is a list of 3 numbers (x, y and z), describing a point or position in the 3D space. A lot of things can be done with vectors, such as additions, subtractions, projections and much more. In FreeCAD vectors work like this:
Vektoren sind ein grundlegendes Konzept in jeder 3D-Anwendung. Es ist eine Liste von 3 Zahlen (x, y und z), die einen Punkt oder eine Position im 3D-Raum beschreiben. Mit Vektoren können viele Dinge gemacht werden, wie z.B. Additionen, Subtraktionen, Projektionen und vieles mehr. In FreeCAD funktionieren Vektoren wie folgt:


myvec = FreeCAD.Vector(2,0,0)
myvec = FreeCAD.Vector(2,0,0)
Line 88: Line 97:




Another common feature of FreeCAD objects is their '''Placement'''. As we saw in earlier chapters, each object has a Placement property, which contains the position (Base) and orientation (Rotation) of the object. These properties are easy to manipulate from Python, for example to move our object:
Ein weiteres gemeinsames Merkmal von FreeCAD-Objekten ist ihre '''Platzierung'''. Wie wir in früheren Kapiteln gesehen haben, hat jedes Objekt eine Placement-Eigenschaft, die die Position (Base) und die Orientierung (Rotation) des Objekts enthält. Diese Eigenschaften lassen sich von Python aus leicht manipulieren, z.B. um unser Objekt zu verschieben:


print(box.Placement)
print(box.Placement)
Line 97: Line 106:
box.Placement = otherpla
box.Placement = otherpla


'''Read more'''
'''Mehr lesen'''


* [https://www.python.org Python]
* [https://www.python.org Python]
* [[Macros|Working with Macros]]
* [[Macros/de|Makros]]
* [[Introduction_to_Python|Introduction to Python scripting]]
* [[Introduction_to_Python/de|Einführung in Python]]
* [[Python_scripting_tutorial|Using Python in FreeCAD]]
* [[Python_scripting_tutorial/de|Python Skripterstellung Tutorium]]
* [[Power_users_hub|The Python scripting wiki hub]]
* [[Power_users_hub/de|Hauptanwenderzentrum]]


{{Docnav/de
|[[Manual:Creating_renderings/de|Bildsynthesen erstellen]]
|[[Manual:Creating_and manipulating_geometry/de|Erstellen und Handhabung von Geometrie]]
|[[Manual:Introduction|Handbuch:Einführung]]
|IconC=Crystal_Clear_manual.png
}}


{{Powerdocnavi{{#translation:}}}}
{{Docnav|Manual:Creating renderings|Manual:Creating and manipulating geometry|[[Manual:Introduction|Manual start]]|IconC=Crystal Clear manual.png}}
[[Category:Developer Documentation{{#translation:}}]]
[[Category:Python Code{{#translation:}}]]

Latest revision as of 13:33, 24 January 2024

Python ist eine populäre, quelloffene Programmiersprache, die sehr oft als Skriptsprache in Anwendungen eingebettet ist, so auch in FreeCAD. Sie hat eine Reihe von Eigenschaften, die sie für uns FreeCAD-Anwender geeignet machen: Sie ist sehr leicht zu erlernen, besonders für Leute, die noch nie programmiert haben und sie ist in viele andere Anwendungen eingebettet. Das macht sie zu einem wertvollen Werkzeug, das sich zu lernen lohnt, da sie auch in anderen Programmen wie Blender, Inkscape oder GRASS verwendet werden kann.

FreeCAD macht umfangreichen Gebrauch von Python. Damit kann auf fast alle Funktionen von FreeCAD zugegriffen werden, um sie zu steuern. So können beispielsweise neue Objekte erstellt, ihre Geometrie geändert, ihr Inhalt analysiert und sogar neue Bedienelemente, Werkzeuge und Bedienfelder erstellt werden. Einige FreeCAD-Arbeitsbereiche und die meisten Addon-Arbeitsbereiche sind vollständig in Python programmiert. FreeCAD enthält eine fortschrittliche Python-Konsole, die über den Menüeintrag Ansicht → Paneele → Python-Konsole zur Verfügung steht. Sie ist oft nützlich, um Operationen durchzuführen, für die es noch keine Schaltfläche in der Symbolleiste gibt, oder um Formen auf Probleme zu überprüfen oder um sich wiederholende Aufgaben durchzuführen:

Aber die Python-Konsole hat noch eine andere sehr wichtige Verwendung: Jedes Mal, wenn eine Schaltfläche in der Werkzeugleiste gedrückt oder andere Operationen in FreeCAD ausgeführt werden, wird ein Teil des Python-Codes in der Konsole ausgegeben (wenn die Option Skriptbefehle in Python-Konsole anzeigen in den Voreinstellungen unter Bearbeiten → Einstellungen... → Python → Makro aktiviert ist) und ausgeführt. Wird die Python-Konsole offen gelassen, kann man buchstäblich sehen, wie sich der Python-Code bei der Arbeit entfaltet, und im Handumdrehen, fast ohne es zu wissen, lernt man etwas von der Sprache Python.

FreeCAD verfügt auch über ein Makro-System, mit dem Aktionen aufgezeichnet und später wiedergegeben werden können. Dieses System verwendet ebenfalls die Python-Konsole, indem es einfach alles aufzeichnet, was darin gemacht wird.

In diesem Kapitel werden wir ganz allgemein die Sprache Python entdecken. Wer daran interessiert ist, mehr zu erfahren, findet im FreeCAD-Dokumentations-Wiki einen ausführlichen Abschnitt zum Thema Python-Programmierung.

Python-Code schreiben

Es gibt zwei einfache Möglichkeiten, Python-Code in FreeCAD zu schreiben: Von der Python-Konsole aus (Ansicht → Paneele → Python-Konsole), oder vom Makro-Editor aus (Makro → Makros... → Erstellen). In der Konsole werden nacheinander Python-Befehle geschrieben, die ausgeführt werden, wenn die Eingabetaste gedrückt wird, während Makros ein komplexeres Skript aus mehreren Zeilen enthalten können, das nur dann ausgeführt wird, wenn das Makro von demselben Makro-Fenster aus gestartet wird.

In diesem Kapitel wirst du beide Methoden verwenden können, aber es wird dringend empfohlen, die Python-Konsole zu verwenden, da sie dich sofort über alle Fehler informiert, die du beim Tippen machst.

Wenn du Python zum ersten Mal verwendest, solltest du diese kurze Einführung in die Python-Programmierung liest, bevor du weitermachst, wird sie die grundlegenden Konzepte von Python klarer machen.

Handhabung von FreeCAD Objekten

Beginnen wir damit, ein neues leeres Dokument zu erstellen:

doc = FreeCAD.newDocument()

Wenn du dies in der FreeCAD-Python-Konsole eingibst, wirst du, sobald du "FreeCAD." eintippst (das Wort FreeCAD gefolgt von einem Punkt), bemerken, dass sich ein Fenster öffnet, das ermöglicht den Rest deiner Zeile schnell automatisch vervollständigen zu können. Besser noch, jeder Eintrag in der Autovervollständigungsliste hat eine QuickInfo, die erklärt, was er tut. Dies macht es sehr einfach, die verfügbaren Funktionen zu erkunden. Bevor du "newDocument" wählst, wirf einen Blick auf die anderen verfügbaren Optionen.

Sobald du Enter drückst, wird unser neues Dokument erstellt. Dies ist ähnlich wie das Drücken der Schaltfläche "Neues Dokument" in der Werkzeugleiste. In Python wird der Punkt verwendet, um etwas anzuzeigen, das in etwas anderem enthalten ist (newDocument ist eine Funktion, die sich innerhalb des FreeCAD-Moduls befindet). Das sich öffnende Fenster zeigt dir daher alles, was in "FreeCAD" enthalten ist. Wenn du nach "newDocument" anstelle der Klammern einen Punkt hinzufügen würdest, würde es dir alles anzeigen, was in der Funktion "newDocument" enthalten ist. Die Klammern sind obligatorisch, wenn du eine Python-Funktion, wie diese hier, aufrufst. Wir werden das weiter unten besser veranschaulichen.

Kommen wir nun zurück zu unserem Dokument. Lasse uns sehen, was wir damit machen können. Gib Folgendes ein und untersuche die verfügbaren Optionen:

doc.

Normalerweise sind Namen, die mit einem Großbuchstaben beginnen, Attribute: Sie enthalten einen Wert. Namen, die mit einem Kleinbuchstaben beginnen, sind Funktionen (auch Methoden genannt): sie "tun etwas". Namen, die mit einem Unterstrich beginnen, sind normalerweise für den internen Gebrauch des Moduls da, und du solltest sie ignorieren. Lasse uns eine der Methoden verwenden, um ein neues Objekt zu unserem Dokument hinzuzufügen:

box = doc.addObject("Part::Box","myBox")

Unser Kasten wird in der Baumansicht hinzugefügt, aber in der 3D-Ansicht passiert noch nichts, weil beim Arbeiten von Python aus das Dokument nie automatisch neu berechnet wird. Wir müssen dies manuell tun, wann immer es erforderlich ist:

doc.recompute()

Jetzt ist unser Kasten in der 3D-Ansicht erschienen. Viele der Schaltflächen auf der Werkzeugleiste, mit denen in FreeCAD Objekte hinzugefügt werden können, tun eigentlich zwei Dinge: das Objekt hinzufügen und neu berechnen. Versuche nun, mit der entsprechenden Schaltfläche im Arbeitsbereich Part eine Kugel hinzuzufügen, und du wirst sehen, wie die beiden Zeilen des Python-Codes nacheinander ausgeführt werden.

Du kannst eine Liste aller möglichen Objekttypen wie Part::Box abfragen:

doc.supportedTypes()

Lass uns nun den Inhalt unseres Kastens erkunden:

box.

Du wirst sofort ein paar sehr interessante Dinge sehen, wie zum Beispiel:

box.Height 

Dadurch wird die aktuelle Höhe unseres Kastens ausgegeben. Versuchen wir nun, das zu ändern:

box.Height = 5 

Wenn du dein Kästchen mit der Maus markierst, siehst du, dass im Eigenschafteneditor unter dem Daten-Reiter unsere Eigenschaft Höhe mit dem neuen Wert erscheint. Alle Eigenschaften eines FreeCAD-Objekts, die in den Reitern Daten und Ansicht erscheinen, sind auch von Python direkt zugänglich, und zwar über ihren Namen, wie wir es bei der Eigenschaft Höhe getan haben. Auf die Dateneigenschaften wird z.B. direkt vom Objekt selbst aus zugegriffen:

box.Length 

Ansichtseigenschaften werden in einem ViewObject gespeichert. Jedes FreeCAD-Objekt verfügt über ein ViewObject, das die visuellen Eigenschaften des Objekts speichert. Wenn FreeCAD ohne seine grafische Schnittstelle ausgeführt wird (z.B. wenn es von einem Terminal mit der Befehlszeilenoption -c gestartet wird oder wenn es von einem anderen Python-Skript aus verwendet wird), ist das ViewObject nicht verfügbar, da es überhaupt keine bildliche Darstellung gibt.

Versuche das folgende Beispiel, um auf die Linienfarbe unserer Kiste zuzugreifen:

box.ViewObject.LineColor 

Vektoren und Platzierungen

Vektoren sind ein grundlegendes Konzept in jeder 3D-Anwendung. Es ist eine Liste von 3 Zahlen (x, y und z), die einen Punkt oder eine Position im 3D-Raum beschreiben. Mit Vektoren können viele Dinge gemacht werden, wie z.B. Additionen, Subtraktionen, Projektionen und vieles mehr. In FreeCAD funktionieren Vektoren wie folgt:

myvec = FreeCAD.Vector(2,0,0)
print(myvec)
print(myvec.x)
print(myvec.y)
othervec = FreeCAD.Vector(0,3,0)
sumvec = myvec.add(othervec)


Ein weiteres gemeinsames Merkmal von FreeCAD-Objekten ist ihre Platzierung. Wie wir in früheren Kapiteln gesehen haben, hat jedes Objekt eine Placement-Eigenschaft, die die Position (Base) und die Orientierung (Rotation) des Objekts enthält. Diese Eigenschaften lassen sich von Python aus leicht manipulieren, z.B. um unser Objekt zu verschieben:

print(box.Placement)
print(box.Placement.Base)
box.Placement.Base = sumvec
otherpla = FreeCAD.Placement()
otherpla.Base = FreeCAD.Vector(5,5,0)
box.Placement = otherpla

Mehr lesen