App FeaturePython/fr: Difference between revisions

From FreeCAD Documentation
No edit summary
No edit summary
Tag: Manual revert
 
(43 intermediate revisions by 5 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
{{TOCright}}


== Introduction ==
== Introduction ==


Un objet [[Image:Feature.svg|32px]] [[App_FeaturePython/fr|App FeaturePython]], ou officiellement {{incode|App::FeaturePython}}, est une simple instance de [[App_DocumentObject/fr|App DocumentObject]] dans [[Python/fr|Python]].
[[File:Feature.svg|32px]]


Il s'agit d'un objet simple qui, par défaut, n'a pas beaucoup de propriétés, par exemple il n'a pas de [[Placement/fr|positionnement]] ou de [[Part_TopoShape/fr|forme topologique]]. En fonction des propriétés qui lui sont attribuées, il peut être utilisé pour gérer différents types de données.
Un objet [[App_FeaturePython/fr|App FeaturePython]], ou officiellement {{incode|App::FeaturePython}}, est une simple instance de [[App_DocumentObject/fr|App DocumentObject]] dans [[Python/fr|Python]].


[[Image:FreeCAD_core_objects.svg|800px]]
This is a simple object that by default doesn't have many properties, for example, no [[Placement|placement]] nor [[Part_TopoShape|topological shape]]. This object is for general purpose use; depending on the properties that are assigned to it, it can be used to manage different types of data.


{{Caption|Diagramme simplifié des relations entre les objets centraux dans Freecad}}
[[File:FreeCAD_core_objects.svg|800px]]

{{Caption|Diagramme simplifié des relations entre les objets centraux du programme. La classe {{incode|App::FeaturePython}} est une implémentation simple de {{incode|App::DocumentObject}} qui peut être utilisée à n'importe quelle fin, car elle n'a pas de [[Part_TopoShape/fr|TopoShape]] par défaut.}}


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


[[App_FeaturePython/fr|App FeaturePython]] est un objet interne. Il ne peut donc pas être créé à partir de l'interface graphique. Il est censé être sous-classé par des classes qui géreront différents types de données.
[[App_FeaturePython/fr|App FeaturePython]] est un objet interne. Il ne peut donc pas être créé à partir de l'interface graphique. Il est censé être sous-classé par des classes qui géreront différents types de données.


Par exemple, les éléments [[Draft_Text/fr|Draft Text]], [[Draft_Dimension/fr|Draft Dimension]] et [[Draft_WorkingPlaneProxy/fr|Draft Proxy pour plan de travail]] de l'[[Draft_Workbench/fr|Atelier Draft]] sont des objets {{incode|App::FeaturePython}} avec une icône personnalisée et des propriétés additionnelles. Ils contiennent des données mais pas une [[Part_TopoShape/fr|Part TopoShape]] réelle.
Voir [[App_FeaturePython/fr#Script|Script]] pour plus d'informations.


Si l'objet désiré doit avoir un placement, une forme, un attachement ou d'autres propriétés complexes, il est préférable de créer une des classes plus complexes, par exemple, [[App_GeoFeature/fr|App GeoFeature]], [[Part_Feature/fr|Part Feature ]] ou [[Part_Part2DObject/fr|Part Part2DObject]].

<span id="Properties"></span>
== Propriétés ==
== Propriétés ==


Voir [[Property/fr|Propriétés]] pour tous les types de propriétés que les objets scriptés peuvent avoir.
Une classe [[App_FeaturePython/fr|App FeaturePython]] ({{incode|App::FeaturePython}} classe) est dérivée de la classe de base [[App_DocumentObject/fr|App DocumentObject]] ({{incode|App::DocumentObject}} classe).Elle partage toutes les propriétés de cette dernière.


La classe [[App_FeaturePython/fr|App FeaturePython]] (classe {{incode|App::FeaturePython}}) est dérivée de la classe de base [[App_DocumentObject/fr|App DocumentObject]]. (classe {{incode|App::DocumentObject}}) et hérite de toutes ses propriétés. Il possède également plusieurs propriétés supplémentaires.
En plus des propriétés décrites dans [[App_DocumentObject/fr|App DocumentObject]], FeaturePython possède un fournisseur de vues de base, il apparaît donc dans la [[tree view/fr|vue arborescente]].


Ce sont les propriétés disponibles dans l'[[Property_editor/fr|éditeur de propriétés]]. Les propriétés masquées peuvent être affichées en utilisant la commande {{MenuCommand|Show all}} dans le menu contextuel de l'[[Property_editor/fr|éditeur de propriétés]].
Voir [[Property/fr|Propriétés]] pour tous les types de propriétés que les objets scriptés peuvent avoir.

Ce sont les propriétés disponibles dans l'[[property editor/fr|éditeur de propriétés]]. Les propriétés masquées peuvent être affichées en utilisant la commande {{MenuCommand|Show all}} dans le menu contextuel de l'[[property editor/fr|éditeur de propriétés]].


<span id="Data"></span>
===Données===
===Données===


{{TitleProperty|Base}}
{{TitleProperty|Base}}


* {{PropertyData/fr|Label|String}}: le nom modifiable par l'utilisateur de cet objet, il s'agit d'une chaîne UTF8 arbitraire.
* {{PropertyData/fr|Proxy|PythonObject|Hidden}}: une classe personnalisée associée à cet objet.
* {{PropertyData/fr|Label|String}}: le nom modifiable par l'utilisateur de cet objet, c'est une chaîne UTF8 arbitraire.

* {{PropertyData/fr|Label2|String|Hidden}}: une description plus longue et modifiable par l'utilisateur de cet objet, c'est une chaîne UTF8 arbitraire qui peut inclure des retours à la ligne. Par défaut, c'est une chaîne vide {{value|""}}.
===== Propriétés cachées de Données =====
* {{PropertyData/fr|Expression Engine|ExpressionEngine|Hidden}}: une liste d'expressions. Par défaut vide {{value|[]}}.

* {{PropertyData/fr|Visibility|Bool|Hidden}}: affiche ou non l'objet.
<div class="mw-translate-fuzzy">
* {{PropertyData/fr|Expression Engine|ExpressionEngine}}: une liste d'expressions. Par défaut, elle est vide {{value|[]}}.
* {{PropertyData/fr|Label2|String}}: description plus longue et modifiable par l'utilisateur de cet objet. C'est une chaîne UTF8 arbitraire. Par défaut, il s'agit d'une chaîne vide {{value|""}}.
* {{PropertyData/fr|Proxy|PythonObject}}: classe associée à cet objet.
* {{PropertyData/fr|Visibility|Bool}}: affiche ou non l'objet.
</div>


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


{{TitleProperty|Base}}
{{TitleProperty|Base}}


* {{PropertyView|Proxy|PythonObject|Hidden}} : une classe personnalisée de [[Viewprovider/fr|viewprovider]] associée à cet objet.
* {{PropertyView/fr|Display Mode|Enumeration}}: vide par défaut.
* {{PropertyView/fr|On Top When Selected|Enumeration}}: {{value|Disabled}} (défaut), {{value|Enabled}}, {{value|Object}}, {{value|Element}}.
* {{PropertyView/fr|Selection Style|Enumeration}}: {{value|Shape}} (défaut), {{value|BoundBox}}. Si l'option est {{value|Shape}}, la forme entière (sommets, arêtes et faces) sera mise en surbrillance dans la [[3D view/fr|Vue 3D]]; s'il s'agit de {{value|BoundBox}}, seul le cadre de sélection sera mis en surbrillance.
* {{PropertyView/fr|Show In Tree|Bool}}: s'il s'agit de {{TRUE}}, l'objet apparaît dans la [[tree view|vue arborescente]]. Sinon, il est défini comme invisible.
* {{PropertyView/fr|Visibility|Bool}}: s'il s'agit de {{TRUE}}, l'objet apparaît dans la [[3D view/fr|Vue 3D]]; sinon, il est invisible. Par défaut, cette propriété peut être activée et désactivée en appuyant sur la barre {{KEY|Espace}} du clavier.


{{TitleProperty|Display Options}}
===== Propriétés cachées de Vue =====
* {{PropertyView|Display Mode|Enumeration}}: il est vide par défaut.
* {{PropertyView|Show In Tree|Bool}}: la valeur par défaut est {{TRUE}}, auquel cas l'objet apparaîtra dans la [[Tree_view/fr|Vue en arborescence]] sinon l'objet sera masqué dans l'arborescence. Une fois qu'un objet de l'arborescence est invisible, vous pouvez le revoir en ouvrant le menu contextuel sur le nom du document (clic droit) et en sélectionnant {{CheckBox|TRUE|Show hidden items}}. Ensuite, l'élément masqué peut être choisi et {{PropertyView|Show In Tree}} peut être rétabli à {{TRUE}}.
* {{PropertyView|Visibility|Bool}}: par défaut {{TRUE}}, dans ce cas l'objet sera visible dans la [[3D_view/fr|Vue 3D]] s'il a une [[Part_TopoShape/fr|Shape]] sinon il sera invisible. Par défaut, cette propriété peut être activée et désactivée en sélectionnant l'objet et en appuyant sur la barre {{KEY|Espace}} du clavier.


{{TitleProperty|Selection}}
* {{PropertyView|Proxy|PythonObject}}: une classe de fournisseur de vue personnalisée associée à cet objet. Par defaut, vide.


* {{PropertyView|On Top When Selected|Enumeration}}: il contrôle la manière dont la sélection s'effectue dans la [[3D_view/fr|Vue 3D]] si l'objet a une [[Part_TopoShape/fr|Shape]]et s'il y a de nombreux objets partiellement couverts par d'autres. La valeur par défaut est {{value|Disabled}}, ce qui signifie qu'aucune mise en évidence spéciale ne se produira; {{value|Enabled}} signifie que l'objet apparaîtra au-dessus de tout autre objet lorsqu'il est sélectionné; {{value|Object}} signifie que l'objet n'apparaîtra en haut que si l'objet entier est sélectionné dans la [[Tree_view/fr|Vue en arborescence]]; {{value|Element}} signifie que l'objet n'apparaîtra en haut que si un sous-élément (sommet, arête, face) est sélectionné dans la [[3D_view/fr|Vue 3D]].
* {{PropertyView|Selection Style|Enumeration}}: il contrôle la façon dont l'objet est mis en évidence s'il a une [[Part_TopoShape/fr|Shape]]. Si c'est {{value|Shape}}, la forme entière (sommets, arêtes et faces) sera mise en surbrillance dans la [[3D_view/fr|Vue 3D]]; s'il s'agit de {{value|BoundBox}}, un cadre de délimitation apparaîtra autour de l'objet et sera mis en surbrillance.

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


{{Emphasis|Voir aussi:}} [[FreeCAD Scripting Basics/fr|Débuter avec les scripts]] et [[scripted objects/fr|Objets créés par script]].
{{Emphasis|Voir aussi :}} [[FreeCAD_Scripting_Basics/fr|Débuter avec les scripts]] et [[Scripted_objects/fr|Objets créés par script]].


Voir [[Part_Feature/fr|Part Feature]] pour les informations générales sur l'ajout d'objets au programme.
Voir [[Part_Feature/fr|Part Feature]] pour les informations générales sur l'ajout d'objets au document.


Un App FeaturePython est créé avec la méthode {{incode|addObject()}} du document.
Un App FeaturePython est créé avec la méthode {{incode|addObject()}} du document.
Line 74: Line 75:
}}
}}


Par exemple, les éléments [[Draft_Text/fr|Draft Text]], [[Draft_Dimension/fr|Draft Dimension]] et [[Draft_SetWorkingPlaneProxy/fr|Proxy pour plan de travail]] de l'[[Draft_Workbench/fr|Atelier Draft]] sont des {{incode|App::FeaturePython}} objets avec une icône personnalisée. Ils contiennent des données mais pas une [[Part_TopoShape/fr|Part TopoShape]] réelle.

If the desired object should have a placement, a shape, an attachment, or other complex properties, it is better to create one of the more complex classes, for example, [[App_GeoFeature|App GeoFeature]], [[Part_Feature|Part Feature]], or [[Part_Part2DObject|Part Part2DObject]].


{{Document_objects_navi{{#translation:}}}}
{{Userdocnavi/fr}}
{{Userdocnavi{{#translation:}}}}

Latest revision as of 17:24, 19 January 2024

Other languages:

Introduction

Un objet App FeaturePython, ou officiellement App::FeaturePython, est une simple instance de App DocumentObject dans Python.

Il s'agit d'un objet simple qui, par défaut, n'a pas beaucoup de propriétés, par exemple il n'a pas de positionnement ou de forme topologique. En fonction des propriétés qui lui sont attribuées, il peut être utilisé pour gérer différents types de données.

Diagramme simplifié des relations entre les objets centraux dans Freecad

Utilisation

App FeaturePython est un objet interne. Il ne peut donc pas être créé à partir de l'interface graphique. Il est censé être sous-classé par des classes qui géreront différents types de données.

Par exemple, les éléments Draft Text, Draft Dimension et Draft Proxy pour plan de travail de l'Atelier Draft sont des objets App::FeaturePython avec une icône personnalisée et des propriétés additionnelles. Ils contiennent des données mais pas une Part TopoShape réelle.

Si l'objet désiré doit avoir un placement, une forme, un attachement ou d'autres propriétés complexes, il est préférable de créer une des classes plus complexes, par exemple, App GeoFeature, Part Feature ou Part Part2DObject.

Propriétés

Voir Propriétés pour tous les types de propriétés que les objets scriptés peuvent avoir.

La classe App FeaturePython (classe App::FeaturePython) est dérivée de la classe de base App DocumentObject. (classe App::DocumentObject) et hérite de toutes ses propriétés. Il possède également plusieurs propriétés supplémentaires.

Ce sont les propriétés disponibles dans l'éditeur de propriétés. Les propriétés masquées peuvent être affichées en utilisant la commande Show all dans le menu contextuel de l'éditeur de propriétés.

Données

Base

  • Données (caché)Proxy (PythonObject): une classe personnalisée associée à cet objet.
  • DonnéesLabel (String): le nom modifiable par l'utilisateur de cet objet, c'est une chaîne UTF8 arbitraire.
  • Données (caché)Label2 (String): une description plus longue et modifiable par l'utilisateur de cet objet, c'est une chaîne UTF8 arbitraire qui peut inclure des retours à la ligne. Par défaut, c'est une chaîne vide "".
  • Données (caché)Expression Engine (ExpressionEngine): une liste d'expressions. Par défaut vide [].
  • Données (caché)Visibility (Bool): affiche ou non l'objet.

Vue

Base

  • Vue (Hidden)Proxy (PythonObject) : une classe personnalisée de viewprovider associée à cet objet.

Display Options

  • VueDisplay Mode (Enumeration): il est vide par défaut.
  • VueShow In Tree (Bool): la valeur par défaut est true, auquel cas l'objet apparaîtra dans la Vue en arborescence sinon l'objet sera masqué dans l'arborescence. Une fois qu'un objet de l'arborescence est invisible, vous pouvez le revoir en ouvrant le menu contextuel sur le nom du document (clic droit) et en sélectionnant Show hidden items. Ensuite, l'élément masqué peut être choisi et VueShow In Tree peut être rétabli à true.
  • VueVisibility (Bool): par défaut true, dans ce cas l'objet sera visible dans la Vue 3D s'il a une Shape sinon il sera invisible. Par défaut, cette propriété peut être activée et désactivée en sélectionnant l'objet et en appuyant sur la barre Espace du clavier.

Selection

  • VueOn Top When Selected (Enumeration): il contrôle la manière dont la sélection s'effectue dans la Vue 3D si l'objet a une Shapeet s'il y a de nombreux objets partiellement couverts par d'autres. La valeur par défaut est Disabled, ce qui signifie qu'aucune mise en évidence spéciale ne se produira; Enabled signifie que l'objet apparaîtra au-dessus de tout autre objet lorsqu'il est sélectionné; Object signifie que l'objet n'apparaîtra en haut que si l'objet entier est sélectionné dans la Vue en arborescence; Element signifie que l'objet n'apparaîtra en haut que si un sous-élément (sommet, arête, face) est sélectionné dans la Vue 3D.
  • VueSelection Style (Enumeration): il contrôle la façon dont l'objet est mis en évidence s'il a une Shape. Si c'est Shape, la forme entière (sommets, arêtes et faces) sera mise en surbrillance dans la Vue 3D; s'il s'agit de BoundBox, un cadre de délimitation apparaîtra autour de l'objet et sera mis en surbrillance.

Script

Voir aussi : Débuter avec les scripts et Objets créés par script.

Voir Part Feature pour les informations générales sur l'ajout d'objets au document.

Un App FeaturePython est créé avec la méthode addObject() du document.

import FreeCAD as App

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