App DocumentObject/fr: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(suppression d'un espace entre deux crochets (le lien ne fonctionnait donc pas))
 
(14 intermediate revisions by 2 users not shown)
Line 8: Line 8:
Un objet [[App_DocumentObject/fr|App DocumentObject]], ou officiellement {{incode|App::DocumentObject}}, est la classe de base de toutes les classes d'objets gérées dans le document.
Un objet [[App_DocumentObject/fr|App DocumentObject]], ou officiellement {{incode|App::DocumentObject}}, est la classe de base de toutes les classes d'objets gérées dans le document.


De manière générale, un "DocumentObject" est toute "chose" qui peut apparaître dans la [[tree view/fr|vue en arborescence]] et qui est enregistrée et restaurée lors de l'ouverture d'un document.
De manière générale, un "DocumentObject" est toute "chose" qui peut apparaître dans la [[Tree_view/fr|vue en arborescence]] et qui est enregistrée et restaurée lors de l'ouverture d'un document.


[[File:App_DocumentObject_example.png]]
[[File:App_DocumentObject_example.png]]
Line 16: Line 16:
[[File:FreeCAD_core_objects.svg|800px]]
[[File:FreeCAD_core_objects.svg|800px]]


{{Caption|Diagramme simplifié des relations entre les objets centraux du programme. La classe {{incode|App::DocumentObject}} est la classe de base de pratiquement tous les objets du logiciel.}}
{{Caption|Diagramme simplifié des relations entre les objets centraux dans Freecad}}


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


[[App_DocumentObject/fr|App DocumentObject]] est une classe interne, elle ne peut donc pas être créée à partir de l'interface graphique, ni destinée à être utilisée seule. Il définit simplement le comportement de base et les propriétés des objets dans le logiciel.
[[App_DocumentObject/fr|App DocumentObject]] est une classe interne, elle ne peut donc pas être créée à partir de l'interface graphique, ni destinée à être utilisée seule. Il définit simplement le comportement de base et les propriétés des objets dans le programme.


Certains des DocumentObjects les plus importants sont les suivants:
Certains des DocumentObjects les plus importants sont les suivants:
* La classe [[App_FeaturePython/fr|App FeaturePython]], un objet vide qui peut être utilisé à différentes fins, en fonction des propriétés ajoutées.
* La classe [[App_FeaturePython/fr|App FeaturePython]], un objet vide qui peut être utilisé à différentes fins, en fonction des propriétés ajoutées.
* La classe [[App_GeoFeature/fr|App GeoFeature]] , l'objet de base de tous les objets géométriques, c'est-à-dire des objets qui ont une propriété [[Placement/fr|Placement]] qui définit leur position dans la [[3D view/fr|vue 3D] ].
* La classe [[App_GeoFeature/fr|App GeoFeature]] , l'objet de base de tous les objets géométriques, c'est-à-dire des objets qui ont une propriété [[Placement/fr|Placement]] qui définit leur position dans la [[3D_view/fr|vue 3D]].
* La classe [[Part_Feature/fr|Part Feature]], dérivée d'App GeoFeature, et la classe parent d'objets avec 2D et 3D [[Part_TopoShape/fr|topological shapes]].
* La classe [[Part_Feature/fr|Part Feature]], dérivée d'App GeoFeature, et la classe parent d'objets avec 2D et 3D [[Part_TopoShape/fr|topological shapes]].
* La classe [[Mesh_Feature/fr|Mesh Feature]], dérivée d'App GeoFeature, et la classe parent d'objets avec 2D et 3D [[Mesh_MeshObject/fr|meshes]].
* La classe [[Mesh_Feature/fr|Mesh Feature]], dérivée d'App GeoFeature, et la classe parent d'objets avec 2D et 3D [[Mesh_MeshObject/fr|maillages]].


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


Line 34: Line 36:
Ce sont les propriétés de base que possèdent essentiellement tous les objets. Ces propriétés sont accessibles depuis la [[Python console/fr|console Python]].
Ce sont les propriétés de base que possèdent essentiellement tous les objets. Ces propriétés sont accessibles depuis la [[Python console/fr|console Python]].


* {{PropertyData/fr|Expression Engine|ExpressionEngine}}: une liste d'expressions.
* {{PropertyData|Expression Engine|ExpressionEngine}} : une liste d'expressions.
* {{PropertyData/fr|Label|String}}: le nom modifiable par l'utilisateur de cet objet, il s'agit d'une chaîne UTF8 arbitraire. Par défaut, c'est la même chose que {{incode|Name}}.
* {{PropertyData|Label|String}} : le nom modifiable par l'utilisateur de cet objet, il s'agit d'une chaîne UTF8 arbitraire. Par défaut, c'est la même chose que {{incode|Name}}.
* {{PropertyData/fr|Label2|String}}: description plus longue et modifiable par l'utilisateur de cet objet, il s'agit d'une chaîne UTF8 arbitraire qui peut inclure des retours à la ligne. Par défaut, il s'agit d'une chaîne vide {{value|""}}.
* {{PropertyData|Label2|String}} : description plus longue et modifiable par l'utilisateur de cet objet, il s'agit d'une chaîne UTF8 arbitraire qui peut inclure des retours à la ligne. Par défaut, il s'agit d'une chaîne vide {{value|""}}.
* {{PropertyData/fr|Visibility|Bool}}: afficher ou non l'objet.
* {{PropertyData|Expression Engine|ExpressionEngine}} : une liste d'expressions.
* {{PropertyData|Visibility|Bool}} : afficher ou non l'objet.


Pour les objets dérivés, seul {{PropertyData/fr|Label}} sera répertoriée par défaut dans l'[[property editor/fr| éditeur de propriété]]. Les autres propriétés seront masquées.
Pour les objets dérivés, seul {{PropertyData/fr|Label}} sera répertoriée par défaut dans l'[[property editor/fr| éditeur de propriété]]. Les autres propriétés seront masquées.


<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 DocumentObject est créé avec la méthode {{incode|addObject()}} du document. Cependant, en général, il n'est pas nécessaire de créer cet objet manuellement. Il est généralement préférable de sous-classer l'une des sous-classes les plus complexes, par exemple, [[App_FeaturePython/fr|App FeaturePython]], [[App_GeoFeature/fr|App GeoFeature]], [[Part_Feature/fr||Part Feature]], [[Part_Part2DObject/fr|Part Part2DObject]], etc.
Un DocumentObject est créé avec la méthode {{incode|addObject()}} du document. Cependant, en général, il n'est pas nécessaire de créer cet objet manuellement. Il est généralement préférable de sous-classer l'une des sous-classes les plus complexes, par exemple, [[App_FeaturePython/fr|App FeaturePython]], [[App_GeoFeature/fr|App GeoFeature]], [[Part_Feature/fr||Part Feature]], [[Part_Part2DObject/fr|Part Part2DObject]], etc.
Line 57: Line 61:
}}
}}


<div class="mw-translate-fuzzy">
{{Document objects navi/fr}}
{{Userdocnavi/fr}}
</div>


{{Document_objects_navi{{#translation:}}}}
{{Userdocnavi}}
{{Userdocnavi{{#translation:}}}}

Latest revision as of 00:01, 9 January 2024

Other languages:

Introduction

Un objet App DocumentObject, ou officiellement App::DocumentObject, est la classe de base de toutes les classes d'objets gérées dans le document.

De manière générale, un "DocumentObject" est toute "chose" qui peut apparaître dans la vue en arborescence et qui est enregistrée et restaurée lors de l'ouverture d'un document.

Vue arborescente montrant différents objets dans le document. Chacun d'eux est un "document object", finalement dérivé de la classe App::DocumentObject base.

Diagramme simplifié des relations entre les objets centraux dans Freecad

Utilisation

App DocumentObject est une classe interne, elle ne peut donc pas être créée à partir de l'interface graphique, ni destinée à être utilisée seule. Il définit simplement le comportement de base et les propriétés des objets dans le programme.

Certains des DocumentObjects les plus importants sont les suivants:

  • La classe App FeaturePython, un objet vide qui peut être utilisé à différentes fins, en fonction des propriétés ajoutées.
  • La classe App GeoFeature , l'objet de base de tous les objets géométriques, c'est-à-dire des objets qui ont une propriété Placement qui définit leur position dans la vue 3D.
  • La classe Part Feature, dérivée d'App GeoFeature, et la classe parent d'objets avec 2D et 3D topological shapes.
  • La classe Mesh Feature, dérivée d'App GeoFeature, et la classe parent d'objets avec 2D et 3D maillages.

Propriétés

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

Ce sont les propriétés de base que possèdent essentiellement tous les objets. Ces propriétés sont accessibles depuis la console Python.

  • DonnéesExpression Engine (ExpressionEngine) : une liste d'expressions.
  • DonnéesLabel (String) : le nom modifiable par l'utilisateur de cet objet, il s'agit d'une chaîne UTF8 arbitraire. Par défaut, c'est la même chose que Name.
  • DonnéesLabel2 (String) : description plus longue et modifiable par l'utilisateur de cet objet, il s'agit d'une chaîne UTF8 arbitraire qui peut inclure des retours à la ligne. Par défaut, il s'agit d'une chaîne vide "".
  • DonnéesExpression Engine (ExpressionEngine) : une liste d'expressions.
  • DonnéesVisibility (Bool) : afficher ou non l'objet.

Pour les objets dérivés, seul DonnéesLabel sera répertoriée par défaut dans l' éditeur de propriété. Les autres propriétés seront masquées.

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 DocumentObject est créé avec la méthode addObject() du document. Cependant, en général, il n'est pas nécessaire de créer cet objet manuellement. Il est généralement préférable de sous-classer l'une des sous-classes les plus complexes, par exemple, App FeaturePython, App GeoFeature, |Part Feature, Part Part2DObject, etc.

import FreeCAD as App

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