Ein App DocumentObject oder formal ein App::DocumentObject
ist die Basisklasse aller im Dokument behandelten Objektklassen.
Allgemein ausgedrückt ist ein "DocumentObject" jedes "Ding", das in der Baumansicht erscheinen kann und das gespeichert und beim Öffnen eines Dokuments wiederhergestellt wird.
Baumansicht, die verschiedene Objekte im Dokument anzeigt. Jedes von ihnen ist ein "Dokumentobjekt", das letztlich von der Basisklasse App::DocumentObject
abgeleitet ist.
Vereinfachtes Diagramm der Beziehungen zwischen den Kernobjekten in FreeCAD
Das App DocumentObject ist eine interne Klasset; es kann daher nicht von der grafischen Oberfläche aus erstellt werden. Es ist auch nicht dafür vorgesehen, selbst eingesetzt zu werden. Es definiert lediglich das grundlegende Verhalten und die Eigenschaften von Objekten im Programm.
Einige der wichtigsten Dokumentobjekte sind die folgenden:
Siehe Objekteigenschaften für alle Arten von Eigenschaften, die skriptgenerierte Objekte besitzen können.
Dies sind die grundlegenden Eigenschaften, die im Wesentlichen alle Objekte haben. Auf diese Eigenschaften kann über die Python-Konsole zugegriffen werden.
String
): Die vom Benutzer editierbare Benennung dieses Objekts; sie ist eine beliebige "UTF8-Zeichenkette. Standardmäßig entspricht sie dem Inhalt von Name
.String
): Eine längere, vom Benutzer editierbare Beschreibung dieses Objekts, es ist eine beliebige UTF8-Zeichenfolge, die Zeilenumbrüche enthalten kann. Standardmäßig ist es eine leere Zeichenfolge ""
.ExpressionEngine
): Eine Liste von Ausdrücken.Bool
): Bestimmt, ob das Objekt dargestellt werden soll oder nicht.Für abgeleitete Objekte wird standardmäßig nur die Daten-EigenschaftLabel im Eigenschafteneditor aufgelistet. Die anderen Eigenschaften werden ausgeblendet.
Siehe auch: FreeCAD Grundlagen Skripten und Skriptgenerierte Objekte.
Siehe Part Formelement für allgemeine Informationen zum Hinzufügen von Objekten zu einem Dokument.
Ein Dokumentobjekt wird mit der Methode addObject()
des Dokuments erstellt. Im Allgemeinen ist es jedoch nicht erforderlich, dieses Objekt von Hand zu erstellen. In der Regel ist es besser, eine der komplexeren Klassen als Unterklasse abzuleiten, z.B. App FeaturePython, App GeoFeature, Part Feature, Part Part2DObjekt, usw.
import FreeCAD as App
doc = App.newDocument()
obj = App.ActiveDocument.addObject("App::DocumentObject", "Name")
obj.Label = "Custom label"