App FeaturePython

From FreeCAD Documentation
Revision as of 09:09, 21 August 2020 by Maker (talk | contribs)

Einführung

Ein Anwendung FormelementPython Objekt oder formal ein App::FeaturePython, ist eine einfache Instanz des Anwendung DokumentObjekt in Python.

Hierbei handelt es sich um ein einfaches Objekt, das standardmäßig nicht viele Eigenschaften hat, z.B. weder Platzierung noch topologische Form. Dieses Objekt ist für allgemeine Zwecke bestimmt; je nach den Eigenschaften, die ihm zugeordnet sind, kann es zur Verwaltung verschiedener Datentypen verwendet werden.

Vereinfachtes Diagramm der Beziehungen zwischen den Kernobjekten im Programm. Die Klasse App::FeaturePython ist eine einfache Implementierung der Klasse App::DocumentObject, die für jeden Zweck verwendet werden kann, da sie standardmäßig keinen TopoForm hat.

Anwendung

Die Anwendung FormelementPython ist ein internes Objekt, so dass es nicht über die grafische Oberfläche erstellt werden kann. Es ist dazu gedacht, durch Klassen unterteilt zu werden, die verschiedene Arten von Daten verarbeiten.

Siehe Skripten für weitere Information.

Eigenschaften

Eine Anwendung FormelementPython (App::DocumentObjectGroup Klasse) stammt aus einer Anwendung DokumentObjekt (App::DocumentObject Klasse). Deshalb hat es die meisten Eigenschaften mit letzterem gemein.

Zusätzlich zu den in Anwendung DokumentObjekt beschriebenen Eigenschaften verfügt FormelementPython über einen grundlegenden Ansichtsanbieter, so dass es in der Baumansicht angezeigt wird.

Siehe Eigenschaft für alle Eigenschaftstypen, die geskriptete Objekte haben können.

Diese Eigenschaften stehen im Eigenschaftseditor zur Verfügung. Versteckte Eigenschaften werden durch den Befehl Alle anzeigen im Kontextmenü des Eigenschaftseditors angezeigt.

Daten

Template:TitleProperty/de

  • DatenLabel (String): der vom Benutzer editierbare Name dieses Objekts, es ist eine beliebige UTF8 Zeichenkette.

Ausgeblendete Dateneigenschaften

  • DatenExpression Engine (ExpressionEngine): a list of expressions. By default, it is empty [].
  • DatenLabel2 (String): a longer, user editable description of this object, it is an arbitrary UTF8 string that may include newlines. By default, it is an empty string "".
  • DatenProxy (PythonObject): a custom class associated with this object.
  • DatenVisibility (Bool): whether to display the object or not.

Ansicht

Template:TitleProperty/de

  • AnsichtDisplay Mode (Enumeration): it is empty by default.
  • AnsichtOn Top When Selected (Enumeration): Disabled (default), Enabled, Object, Element.
  • AnsichtSelection Style (Enumeration): Shape (default), BoundBox. If the option is Shape, the entire shape (vertices, edges, and faces) will be highlighted in the 3D view; if it is BoundBox only the bounding box will be highlighted.
  • AnsichtShow In Tree (Bool): if it is true, the object appears in the tree view. Otherwise, it is set as invisible.
  • AnsichtVisibility (Bool): if it is true, the object appears in the 3D view; otherwise it is invisible. By default this property can be toggled on and off by pressing the Space bar in the keyboard.

Ausgeblendete Eigenschaften Ansicht

  • AnsichtProxy (PythonObject): eine benutzerdefinierte View Provider Klasse, die mit diesem Objekt verknüpft ist.

Skripten

Siehe auch: FreeCAD Skripten Grundlagen, und geskriptete Objekte.

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

Eine Anwendung FormelementPython wird mit der addObject() Methode des Dokuments erstellt.

import FreeCAD as App

doc = App.newDocument()
obj = App.ActiveDocument.addObject("App::FeaturePython", "Name")
obj.Label = "Custom label"

Beispielsweise , die Entwurf Text, Entwurf Abmessung, und Arbeitsebenen proxy Elemente der Entwurf Arbeitsbereich sind App::FeaturePython Objekte mit einem benutzerdefinierten Symbol und zusätzlichen Eigenschaften. Sie enthalten Daten, aber keine tatsächliche Part TopoForm.

Wenn das gewünschte Objekt eine Platzierung, eine Form, einen Anhang oder andere komplexe Eigenschaften haben soll, ist es besser, eine der komplexeren Klassen zu erstellen, zum Beispiel App GeoFeature, Part Formelement, oder Part Teil2DObjekt.