App FeaturePython/de: Difference between revisions

From FreeCAD Documentation
No edit summary
No edit summary
 
(33 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
{{TOCright}}


<span id="Introduction"></span>
== Einführung ==
==Einleitung==


Ein [[Image:Feature.svg|32px]] [[App FeaturePython/de|Anwendung FormelementPython]] Objekt oder formal ein {{incode|App::FeaturePython}}, ist eine einfache Instanz des [[App_DocumentObject/de|Anwendung DokumentObjekt]] in [[Python/de|Python]].
Ein [[Image:Feature.svg|32px]] [[App_FeaturePython/de|App FeaturePython]]-Objekt oder formal ein {{incode|App::FeaturePython}}, ist eine einfache Instanz des [[App_DocumentObject/de|App DocumentObject]] in [[Python/de|Python]].


Hierbei handelt es sich um ein einfaches Objekt, das standardmäßig nicht viele Eigenschaften hat, z.B. weder [[Placement/de|Platzierung]] noch [[Part_TopoShape/de|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.
Hierbei handelt es sich um ein einfaches Objekt, das standardmäßig nicht viele Eigenschaften hat, z.B. hat es keine [[Placement/de|Positionierung]] und keine [[Part_TopoShape/de|topologische Form]]. Abhängig von den Eigenschaften, die ihm zugeordnet sind, kann es zur Verwaltung verschiedener Datentypen verwendet werden.


[[Image:FreeCAD_core_objects.svg|800px]]
[[Image:FreeCAD_core_objects.svg|800px]]


{{Caption|Vereinfachtes Diagramm der Beziehungen zwischen den Kernobjekten im Programm. Die Klasse {{incode|App::FeaturePython}} ist eine einfache Implementierung der Klasse {{incode|App::DocumentObject}}, die für jeden Zweck verwendet werden kann, da sie standardmäßig keinen [[Part_TopoShape/de|TopoForm]] hat.}}
{{Caption|Vereinfachtes Diagramm der Beziehungen zwischen den Kernobjekten in FreeCAD}}


<span id="Usage"></span>
== Anwendung ==
== Anwendung ==


Die [[App_FeaturePython/de|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.
Das [[App_FeaturePython/de|App FeaturePython]]-Objekt ist ein internes Objekt, so dass es nicht über die grafische Oberfläche erstellt werden kann. Es ist dazu gedacht, von ihm Unterklassen abzuleiten, die unterschiedliche Arten von Daten verarbeiten.


Beispielsweise sind die Elemente [[Draft_Text/de|Draft Text]], [[Draft_Dimension/de|Draft Maß]], und [[Draft_WorkingPlaneProxy/de|Arbeitsebenen Proxy]] des Arbeitsbereichs [[Draft_Workbench/de|Draft]] {{incode|App::FeaturePython}}-Objekte mit einem benutzerdefinierten Symbol und zusätzlichen Eigenschaften. Sie enthalten Daten, aber keine tatsächliche [[Part_TopoShape/de|Part TopoForm]].
Siehe [[App_FeaturePython#Scripting/de|Skripten]] für weitere Information.


Wenn das gewünschte Objekt eine Positionierung, eine Form, einen Anhang oder andere komplexe Eigenschaften haben soll, ist es besser, eine der komplexeren Klassen zu erstellen, zum Beispiel [[App_GeoFeature/de|App GeoFeature]], [[Part_Feature/de|Part Feature]], oder [[Part_Part2DObject/de|Part Part2DObject]].
== Eigenschaften ==


<span id="Properties"></span>
Eine [[App_FeaturePython/de|Anwendung FormelementPython]] ({{incode|App::DocumentObjectGroup}} Klasse) stammt aus einer [[App_DocumentObject/de|Anwendung DokumentObjekt]] ({{incode|App::DocumentObject}} Klasse). Deshalb hat es die meisten Eigenschaften mit letzterem gemein.
==Eigenschaften==


Siehe [[Property/de| Objekteigenschaften]] für alle Arten von Eigenschaften, die skriptgenerierte Objekte besitzen können.
Zusätzlich zu den in [[App_DocumentObject/de|Anwendung DokumentObjekt]] beschriebenen Eigenschaften verfügt FormelementPython über einen grundlegenden Ansichtsanbieter, so dass es in der [[tree view/de|Baumansicht]] angezeigt wird.


Das [[App_FeaturePython/de|App FeaturePython]]-Objekt (Klasse {{incode|App::FeaturePython}}) wird von einem [[App_DocumentObject/de|App DocumentObject]] (Klasse {{incode|App::DocumentObject}}) abgeleitet und erbt alle seine Eigenschaften. Es besitzt einige zusätzliche Eigenschaften.
Siehe [[Property/de|Eigenschaft]] für alle Eigenschaftstypen, die geskriptete Objekte haben können.


Diese Eigenschaften stehen im [[property editor/de|Eigenschaftseditor]] zur Verfügung. Versteckte Eigenschaften werden durch den Befehl {{MenuCommand|Alle anzeigen}} im Kontextmenü des [[property editor/de|Eigenschaftseditors]] angezeigt.
Diese Eigenschaften stehen im [[Property_editor/de|Eigenschafteneditor]] zur Verfügung. Versteckte Eigenschaften werden durch den Befehl {{MenuCommand|Alle anzeigen}} im Kontextmenü des [[Property_editor/de|Eigenschafteneditors]] angezeigt.


<span id="Data"></span>
=== Daten ===
=== Daten ===


{{TitleProperty|Basis}}
{{TitleProperty|Basis}}


* {{PropertyData|Proxy|PythonObject|Hidden}}: a custom class associated with this object.
* {{PropertyData/de|Proxy|PythonObject|Hidden}}: Eine spezielle, mit diesem Objekt verbundene Klasse.
* {{PropertyData|Label|String}}: der Nutzer editierbare Name dieses Objekts, es ist eine arbitrary UTF8 Zeichenfolge.
* {{PropertyData/de|Label|String}}: Die vom Anwender editierbare Bezeichnung dieses Objekts; es ist eine beliebige UTF8-Zeichenfolge.
* {{PropertyData|Label2|String}}: eine längere, vom Benutzer bearbeitbare Beschreibung dieses Objekts, es ist eine beliebige UTF8 Zeichenkette, die Zeilenumbrüche enthalten kann. Standardmäßig ist es eine leere Zeichenkette {{value|""}}.
* {{PropertyData/de|Label2|String}}: Eine längere, vom Anwender editierbare Beschreibung dieses Objekts; es ist eine beliebige UTF8-Zeichenfolge, die Zeilenumbrüche enthalten kann. Standardmäßig ist es eine leere Zeichenkette {{value|""}}.
* {{PropertyData/de|Expression_Engine|ExpressionEngine|Hidden}}: Eine Liste von Ausdrücken. a list of expressions. Standardmäßig ist sie leer {{value|[]}}.
* {{PropertyData|Proxy|PythonObject}}: eine benutzerdefinierte Klasse, die mit diesem Objekt verknüpft ist.
* {{PropertyData|Visibility|Bool|Hidden}}: ob das Objekt angezeigt werden soll oder nicht.
* {{PropertyData/de|Visibility|Bool|Hidden}}: Bestimmt, ob das Objekt angezeigt werden soll oder nicht.


<span id="View"></span>
=== Ansicht ===
=== Ansicht ===

Diese Eigenschaften entsprechen den grundlegenden Eigenschaften der Basis [[viewprovider/de|Ansichtsanbieter]], {{incode|Gui::ViewProviderDocumentObject}}, die von allen Ansichtsanbietern in der Software geerbt wird.


{{TitleProperty|Basis}}
{{TitleProperty|Basis}}


* {{PropertyView|Proxy|PythonObject|Hidden}}: eine benutzerdefinierte View Provider Klasse, die diesem Objekt zugeordnet ist. Diese Eigenschaft existiert nur für die Klassen, die in der Lage sind, eine benutzerdefinierte Klasse zuzuordnen.
* {{PropertyView/de|Proxy|PythonObject|Hidden}}: Eine spezielle [[Viewprovider/de|Viewprovider]]-Klasse, die mit diesem Objekt verbunden ist.


{{TitleProperty|Display Options}}
{{TitleProperty|Display Options}}
* {{PropertyView|Display Mode|Enumeration}}: it is empty by default.
* {{PropertyView/de|Display Mode|Enumeration}}: ist standardmäßig leer.
* {{PropertyView|Show In Tree|Bool}}: it defaults to {{TRUE}}, in which case the object will appear in the [[tree view|tree view]]; otherwise, the object will be hidden in the tree view. Once an object in the tree is invisible, you can see it again by opening the context menu over the name of the document (right-click), and selecting {{CheckBox|TRUE|Show hidden items}}. Then the hidden item can be chosen and {{PropertyView|Show In Tree}} can be switched back to {{TRUE}}.
* {{PropertyView/de|Show In Tree|Bool}}: die Standardeinstellung ist {{TRUE}}; in diesem Fall erscheint das Objekt in der [[Tree_view/de|Baumansicht]]. Andernfalls wird das Objekt in der Baumansicht ausgeblendet. Ist ein Objekt unsichtbar in der Baumansicht, kann es wieder sichtbar gemacht werden, indem das Kontextmenü über den Namen des Dokuments geöffnet wird (Rechtsklick) und {{CheckBox|TRUE|Ausgeblendete Elemente anzeigen}} ausgewählt wird. Dann kann das ausgeblendete Element ausgewählt und die {{PropertyView/de|Show In Tree}} wieder auf {{TRUE}} zurückgesetzt werden.
* {{PropertyView|Visibility|Bool}}: it defaults to {{TRUE}}, in which case the object will be visible in the [[3D_view|3D view]] if it has a [[Part_TopoShape|Shape]], otherwise it will be invisible. By default this property can be toggled on and off by selecting the object, and pressing the {{KEY|Space}} bar in the keyboard.
* {{PropertyView/de|Visibility|Bool}}: auf {{TRUE}} voreingestellt. In diesem Fall ist das Objekt in der [[3D_view/de|3D-Ansicht]] sichtbar, wenn es eine [[Part_TopoShape/de|Form]] hat, andernfalls ist es unsichtbar. Standardmäßig kann diese Eigenschaft ein- und ausgeschaltet werden, indem das Objekt ausgewählt und die {{KEY|Leertaste}} gedrückt wird.








* {{PropertyView|Display Mode|Aufzählung}}: sie ist standardmäßig leer.
* {{PropertyView|On Top When Selected|Aufzählung}}: {{value|Deaktiviert}} (Standard), {{value|Aktiviert}}, {{value|Objekt}}, {{value|Element}}.
* {{PropertyView|Selection Style|Aufzählung}}: {{value|Form}} (Standard), {{value|BindungBox}}. Wenn die Option ist {{value|Form}}, die ganze Form (Knoten, Ecken, und Flächen) wird dies hervorgehoben in der [[3D view/de|3D Ansicht]]; wenn dies ist {{value|BindungBox}} nur die BindungBox wird hervorgehoben sein.
* {{PropertyView|Show In Tree|Bool}}: wenn dies {{TRUE}} ist, erscheint das Objekt in der [[tree view/de|Baumansicht]]. Andernfalls wird sie als ausgeblendet gesetzt.
* {{PropertyView|Visibility|Bool}}: wenn dies {{TRUE}} ist, erscheint das Objekt in der [[tree view/de|Baumansicht]]. Andernfalls wird sie als ausgeblendet gesetzt. Standardmäßig kann diese Eigenschaft durch Drücken der {{KEY|Leertaste}} Leiste in der Tastatur ein- und ausgeschaltet werden.


{{TitleProperty|Auswahl}}
{{TitleProperty|Auswahl}}


* {{PropertyView|On Top When Selected|Enumeration}}: it controls the way in which the selection occurs in the [[3D_view|3D view]] if the object has a [[Part_TopoShape|Shape]], and there are many objects partially covered by others. It defaults to {{value|Disabled}}, meaning that no special highlighting will occur; {{value|Enabled}} means that the object will appear on top of any other object when selected; {{value|Object}} means that the object will appear on top only if the entire object is selected in the [[tree_view|tree view]]; {{value|Element}} means that the object will appear on top only if a subelement (vertex, edge, face) is selected in the [[3D_view|3D view]].
* {{PropertyView/de|On Top When Selected|Enumeration}}: Sie steuert die Art und Weise, wie die Auswahl in der [[3D_view/de|3D-Ansicht]] erfolgt, wenn das Objekt eine [[Part_TopoShape/de|Form]] hat und es viele Objekte gibt, die teilweise von anderen abgedeckt werden. Die Standardeinstellung ist {{value|Disabled}}, was bedeutet, dass keine besondere Hervorhebung erfolgt; {{value|Enabled}} bedeutet, dass das Objekt über jedem anderen Objekt erscheint, wenn es ausgewählt wird; {{value|Object}} bedeutet, dass das Objekt nur dann oben erscheint, wenn das gesamte Objekt in der [[Tree_view/de|Baumansicht]] ausgewählt wird; {{value|Element}} bedeutet, dass das Objekt nur dann oben erscheint, wenn ein Unterelement (Knoten, Kante, Fläche) in der [[3D_view/de|3D-Ansicht]] ausgewählt wird.
* {{PropertyView|Selection Style|Enumeration}}: it controls the way the object is highlighted if it has a [[Part_TopoShape|Shape]]. If it is {{value|Shape}}, the entire shape (vertices, edges, and faces) will be highlighted in the [[3D view|3D view]]; if it is {{value|BoundBox}} a bounding box will appear surrounding the object and will be highlighted.
* {{PropertyView/de|Selection Style|Enumeration}}: steuert die Art und Weise, wie das Objekt hervorgehoben wird, wenn es eine [[Part_TopoShape/de|Form]] hat. Ist es {{value|Shape}}, wird die gesamte Form (Knoten, Kanten und Flächen) in der [[3D_view/de|3D-Ansicht]] hervorgehoben; ist es {{value| BoundBox}}, erscheint ein Begrenzungsrahmen um das Objekt herum und wird hervorgehoben.


<span id="Scripting"></span>
== Skripten ==
==Skripten==


{{Emphasis|Siehe auch:}} [[FreeCAD Scripting Basics/de|FreeCAD Skripten Grundlagen]], und [[scripted objects/de|geskriptete Objekte]].
{{Emphasis|Siehe auch:}} [[FreeCAD_Scripting_Basics/de|FreeCAD Grundlagen Skripten]] und [[Scripted_objects/de|Skriptgenerierte Objekte]].


Siehe [[Part_Feature/de|Part Formelement]] für die allgemeinen Informationen über das Hinzufügen von Objekten zum Programm.
Siehe [[Part_Feature/de|Part Formelement]] für die allgemeinen Informationen über das Hinzufügen von Objekten zum Dokument.


Eine Anwendung FormelementPython wird mit der {{incode|addObject()}} Methode des Dokuments erstellt.
Ein App-FeaturePython-Objekt wird mit der Methode {{incode|addObject()}} des Dokuments erstellt.


{{Code|code=
{{Code|code=
Line 84: Line 76:
}}
}}


Beispielsweise , die [[Draft_Text/de|Entwurf Text]], [[Draft_Dimension/de|Entwurf Abmessung]], und [[Draft_SetWorkingPlaneProxy/de|Arbeitsebenen proxy]] Elemente der [[Draft_Workbench/de|Entwurf Arbeitsbereich]] sind {{incode|App::FeaturePython}} Objekte mit einem benutzerdefinierten Symbol und zusätzlichen Eigenschaften. Sie enthalten Daten, aber keine tatsächliche [[Part_TopoShape/de|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/de|App GeoFeature]], [[Part_Feature/de|Part Formelement]], oder [[Part_Part2DObject/de|Part Teil2DObjekt]].


{{Document objects navi{{#translation:}}}}
{{Document_objects_navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}

Latest revision as of 12:09, 29 January 2023

Einleitung

Ein App FeaturePython-Objekt oder formal ein App::FeaturePython, ist eine einfache Instanz des App DocumentObject in Python.

Hierbei handelt es sich um ein einfaches Objekt, das standardmäßig nicht viele Eigenschaften hat, z.B. hat es keine Positionierung und keine topologische Form. Abhängig von den Eigenschaften, die ihm zugeordnet sind, kann es zur Verwaltung verschiedener Datentypen verwendet werden.

Vereinfachtes Diagramm der Beziehungen zwischen den Kernobjekten in FreeCAD

Anwendung

Das App FeaturePython-Objekt ist ein internes Objekt, so dass es nicht über die grafische Oberfläche erstellt werden kann. Es ist dazu gedacht, von ihm Unterklassen abzuleiten, die unterschiedliche Arten von Daten verarbeiten.

Beispielsweise sind die Elemente Draft Text, Draft Maß, und Arbeitsebenen Proxy des Arbeitsbereichs Draft 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 Positionierung, eine Form, einen Anhang oder andere komplexe Eigenschaften haben soll, ist es besser, eine der komplexeren Klassen zu erstellen, zum Beispiel App GeoFeature, Part Feature, oder Part Part2DObject.

Eigenschaften

Siehe Objekteigenschaften für alle Arten von Eigenschaften, die skriptgenerierte Objekte besitzen können.

Das App FeaturePython-Objekt (Klasse App::FeaturePython) wird von einem App DocumentObject (Klasse App::DocumentObject) abgeleitet und erbt alle seine Eigenschaften. Es besitzt einige zusätzliche Eigenschaften.

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

Daten

Basis

  • Daten-Eigenschaft (versteckt)Proxy (PythonObject): Eine spezielle, mit diesem Objekt verbundene Klasse.
  • Daten-EigenschaftLabel (String): Die vom Anwender editierbare Bezeichnung dieses Objekts; es ist eine beliebige UTF8-Zeichenfolge.
  • Daten-EigenschaftLabel2 (String): Eine längere, vom Anwender editierbare Beschreibung dieses Objekts; es ist eine beliebige UTF8-Zeichenfolge, die Zeilenumbrüche enthalten kann. Standardmäßig ist es eine leere Zeichenkette "".
  • Daten-Eigenschaft (versteckt)Expression_Engine (ExpressionEngine): Eine Liste von Ausdrücken. a list of expressions. Standardmäßig ist sie leer [].
  • Daten-Eigenschaft (versteckt)Visibility (Bool): Bestimmt, ob das Objekt angezeigt werden soll oder nicht.

Ansicht

Basis

  • Ansicht-Eigenschaft (versteckt)Proxy (PythonObject): Eine spezielle Viewprovider-Klasse, die mit diesem Objekt verbunden ist.

Display Options

  • Ansicht-EigenschaftDisplay Mode (Enumeration): ist standardmäßig leer.
  • Ansicht-EigenschaftShow In Tree (Bool): die Standardeinstellung ist true; in diesem Fall erscheint das Objekt in der Baumansicht. Andernfalls wird das Objekt in der Baumansicht ausgeblendet. Ist ein Objekt unsichtbar in der Baumansicht, kann es wieder sichtbar gemacht werden, indem das Kontextmenü über den Namen des Dokuments geöffnet wird (Rechtsklick) und Ausgeblendete Elemente anzeigen ausgewählt wird. Dann kann das ausgeblendete Element ausgewählt und die Ansicht-EigenschaftShow In Tree wieder auf true zurückgesetzt werden.
  • Ansicht-EigenschaftVisibility (Bool): auf true voreingestellt. In diesem Fall ist das Objekt in der 3D-Ansicht sichtbar, wenn es eine Form hat, andernfalls ist es unsichtbar. Standardmäßig kann diese Eigenschaft ein- und ausgeschaltet werden, indem das Objekt ausgewählt und die Leertaste gedrückt wird.

Auswahl

  • Ansicht-EigenschaftOn Top When Selected (Enumeration): Sie steuert die Art und Weise, wie die Auswahl in der 3D-Ansicht erfolgt, wenn das Objekt eine Form hat und es viele Objekte gibt, die teilweise von anderen abgedeckt werden. Die Standardeinstellung ist Disabled, was bedeutet, dass keine besondere Hervorhebung erfolgt; Enabled bedeutet, dass das Objekt über jedem anderen Objekt erscheint, wenn es ausgewählt wird; Object bedeutet, dass das Objekt nur dann oben erscheint, wenn das gesamte Objekt in der Baumansicht ausgewählt wird; Element bedeutet, dass das Objekt nur dann oben erscheint, wenn ein Unterelement (Knoten, Kante, Fläche) in der 3D-Ansicht ausgewählt wird.
  • Ansicht-EigenschaftSelection Style (Enumeration): steuert die Art und Weise, wie das Objekt hervorgehoben wird, wenn es eine Form hat. Ist es Shape, wird die gesamte Form (Knoten, Kanten und Flächen) in der 3D-Ansicht hervorgehoben; ist es BoundBox, erscheint ein Begrenzungsrahmen um das Objekt herum und wird hervorgehoben.

Skripten

Siehe auch: FreeCAD Grundlagen Skripten und Skriptgenerierte Objekte.

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

Ein App-FeaturePython-Objekt wird mit der Methode addObject() des Dokuments erstellt.

import FreeCAD as App

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