App DocumentObject

From FreeCAD Documentation
Revision as of 18:56, 18 April 2024 by FBXL5 (talk | contribs)

Einleitung

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

Anwendung

Das App DocumentObject ist eine interne Klasse, kann also weder von der grafischen Oberfläche aus erstellt werden, noch ist sie für sich selbst gedacht. Sie definiert lediglich das grundlegende Verhalten und die Eigenschaften von Objekten im Programm.

Einige der wichtigsten DocumentObjects sind die folgenden:

  • Die Klasse App FeaturePython, ein leeres Objekt, das je nach den hinzugefügten Eigenschaften für verschiedene Zwecke verwendet werden kann.
  • Die Klasse App GeoFeature, das Basisobjekt aller geometrischen Objekte, d.h. von Objekten, die eine Eigenschaft Placement haben, die ihre Position in der 3D-Ansicht definiert.
  • Die Klasse Part Feature (Part Formelement), abgeleitet von App GeoFeature, und die übergeordnete Klasse von Objekten mit 2- und 3-dimensionalen topologischen Formen.
  • Die Klasse Mesh Feature (Mesh Formelement), abgeleitet von App GeoFeature, und die übergeordnete Klasse von Objekten mit 2D- und 3D-Polygonnetzen.

Eigenschaften

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.

  • Daten-EigenschaftLabel (String): Der vom Benutzer editierbare Name dieses Objekts, es ist ein beliebiger UTF8-String. Standardmäßig ist es derselbe wie der Name.
  • Daten-EigenschaftLabel2 (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 "".
  • Daten-EigenschaftExpression Engine (ExpressionEngine): Eine Liste von Ausdrücken.
  • Daten-EigenschaftVisibility (Bool): Entscheidet, 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.

Skripten

Siehe auch: FreeCAD Grundlagen Skripten, und geskriptete Objekte.

Siehe Part Formelement für die allgemeinen Informationen über das Hinzufügen von Objekten zum Dokument.

Ein DocumentObject 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 unterzuordnen, 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"