App FeaturePython/de: Difference between revisions

From FreeCAD Documentation
No edit summary
No edit summary
 
(20 intermediate revisions by 2 users not shown)
Line 2: Line 2:
{{TOCright}}
{{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. 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.
<div class="mw-translate-fuzzy">
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.
</div>


[[Image:FreeCAD_core_objects.svg|800px]]
[[Image:FreeCAD_core_objects.svg|800px]]
Line 14: Line 13:
{{Caption|Vereinfachtes Diagramm der Beziehungen zwischen den Kernobjekten in FreeCAD}}
{{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]].
<div class="mw-translate-fuzzy">
Beispielsweise , die [[Draft_Text/de|Entwurf Text]], [[Draft_Dimension/de|Entwurf Abmessung]], und [[Draft_WorkingPlaneProxy/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]].
</div>


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]].
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]].


<span id="Properties"></span>
== Eigenschaften ==
==Eigenschaften==


Siehe [[Property/de|Eigenschaft]] für alle Eigenschaftstypen, die geskriptete Objekte haben können.
Siehe [[Property/de| Objekteigenschaften]] für alle Arten von Eigenschaften, die skriptgenerierte Objekte besitzen können.


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.
<div class="mw-translate-fuzzy">
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.
</div>


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 ===


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


* {{PropertyView/de|Proxy|PythonObject|Hidden}}: Eine spezielle [[Viewprovider/de|Viewprovider]]-Klasse, die mit diesem Objekt verbunden ist.
<div class="mw-translate-fuzzy">
* {{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.
</div>


{{TitleProperty|Anzeigeoptionen}}
{{TitleProperty|Display Options}}
* {{PropertyView|Anzeigemodus|Aufzählung}}: sie ist standardmäßig leer.
* {{PropertyView/de|Display Mode|Enumeration}}: ist standardmäßig leer.
* {{PropertyView|Anzeige im Baum|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. Sobald ein Objekt in der Baumansicht unsichtbar ist, kannst du es wieder sehen, indem du das Kontextmenü über dem Namen des Dokuments öffnest (Rechtsklick) und {{CheckBox|TRUE|Anzeige ausgeblendete Elemente}} wählst. Dann kann das ausgeblendete Element ausgewählt und {{PropertyView|Im Baum anzeigen}} wieder zu {{TRUE}} zurückgeschaltet werden.
* {{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|Sichtbarkeit|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/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.


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


* {{PropertyView|Oben, wenn ausgewählt|Aufzählung}}: 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|Deaktiviert}}, was bedeutet, dass keine besondere Hervorhebung erfolgt; {{value|Aktiviert}} 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 ist; {{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 ist.
* {{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|Auswahlstil|Aufzählung}}: steuert die Art und Weise, wie das Objekt hervorgehoben wird, wenn es eine [[Part_TopoShape/de|Form]] hat. Wenn es {{value|Form}} ist, wird die gesamte Form (Knoten, Kanten und Flächen) in der [[3D_view/de|3D Ansicht]] hervorgehoben; wenn es {{value|Begrenzungsrahmen}} ist, erscheint ein Begrenzungsrahmen um das Objekt herum und wird hervorgehoben.
* {{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 Dokument.
<div class="mw-translate-fuzzy">
Siehe [[Part_Feature/de|Part Formelement]] für die allgemeinen Informationen über das Hinzufügen von Objekten zum Programm.
</div>


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=

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"