App GeoFeature/fr: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
No edit summary
 
(44 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
{{TOCright}}


== Introduction ==
== Introduction ==
Line 5: Line 6:
[[File:Feature.svg|32px]]
[[File:Feature.svg|32px]]


Un objet [[App_GeoFeature/fr|App GeoFeature]], ou officiellement {{incode|App::GeoFeature}}, est la classe de base de la plupart des objets qui afficheront des éléments géométriques dans la [[3D view/fr|vue 3D]] car il inclut la propriété {{PropertyData|Placement}}.
Un objet [[App_GeoFeature/fr|App GeoFeature]], ou officiellement {{incode|App::GeoFeature}}, est la classe de base de la plupart des objets qui afficheront des éléments géométriques dans la [[3D_view/fr|Vue 3D]] car il inclut une propriété {{PropertyData|Placement}}.


[[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::GeoFeature}} est la classe de base de pratiquement tous les objets du logiciel qui affichera la géométrie dans le [[3D view/fr|vue 3D]].}}
{{Caption|Diagramme simplifié des relations entre les objets centraux dans Freecad}}


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


[[App_GeoFeature/fr|App GeoFeature]] est un objet interne, il ne peut donc pas être créé à partir de l'interface graphique. Il n'est généralement pas destiné à être utilisé directement, mais il peut plutôt être sous-classé pour obtenir un objet nu qui n'a qu'une propriété {{PropertyData|Placement}} de base pour définir sa position dans la [[3D_view/fr|vue 3D]].
[[App_GeoFeature/fr|App GeoFeature]] est un objet interne, il ne peut donc pas être créé à partir de l'interface graphique. Il n'est généralement pas destiné à être utilisé directement, mais il peut plutôt être sous-classé pour obtenir un objet nu qui n'a qu'une propriété {{PropertyData|Placement}} de base pour définir sa position dans la [[3D_view/fr|vue 3D]].


Certains des objets dérivés les plus importants sont les suivants :
<div class="mw-translate-fuzzy">
Certains des objets dérivés les plus importants sont les suivants:
* La classe [[Part_Feature/fr|Part Feature]], le parent de la plupart des objets 2D et 3D [[Part_TopoShape/fr|formes topologiques]].
* La classe [[Part_Feature/fr|Part Feature]], le parent de la plupart des objets 2D et 3D [[Part_TopoShape/fr|formes topologiques]].
* La classe [[Mesh_Feature/fr|Mesh Feature]], le parent des objets fabriqués à partir de maillages, pas de solides.
* La classe [[Mesh_Feature/fr|Mesh Feature]], le parent de la plupart des objets fabriqués à partir de [[Mesh_MeshObject/fr|maillages]], pas des solides.
* La classe [[FEM_Mesh/fr|Fem FemMeshObject]], le parent des maillages d'éléments finis créés avec l'[[FEM_Workbench/fr|atelier FEM]].
* La classe [[App_Part/fr|App Part]], qui définit [[Std_Part/fr|Std Parts]] qui peut être utilisée comme conteneurs de corps pour effectuer des assemblages.
* La classe [[CAM_Feature/fr|CAM Feature]], le parent des chemins créés avec l'[[CAM_Workbench/fr|atelier CAM]] pour une utilisation dans l'usinage CNC.
</div>
* La classe [[App_Part/fr|App Part]], qui définit les [[Std_Part/fr|Std Parts]] qui peuventt être utilisés comme conteneurs de corps pour effectuer des assemblages.


Lorsque vous créez cet objet dans [[Python/fr|Python]], au lieu de sous-classer {{incode|App::GeoFeature}}, vous devez sous-classer {{incode|App::GeometryPython}} car ce dernier inclut une valeur par défaut fournisseur de vues et attributs {{incode|Proxy}} pour l'objet lui-même et son fournisseur de vues. Voir [[App_GeoFeature/fr#Script|Script]].
Lorsque vous créez cet objet dans [[Python/fr|Python]], au lieu de sous-classer {{incode|App::GeoFeature}}, vous devez sous-classer {{incode|App::GeometryPython}} car ce dernier inclut une valeur par défaut fournisseur de vues et attributs {{incode|Proxy}} pour l'objet lui-même et son fournisseur de vues. Voir [[App_GeoFeature/fr#Script|Script]].


<span id="Properties_App_GeoFeature"></span>
== Propriétés ==
== Propriétés App GeoFeature ==


Voir [[Property/fr|Propriétés]] pour tous les types de propriétés que les objets crées par script peuvent avoir.
[[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}}). Elle partage toutes les propriétés de cette dernière.


En plus des propriétés décrites dans [[App_DocumentObject/fr|App DocumentObject]], la GeoFeature possède la propriété {{PropertyData|Placement}} qui contrôle sa position dans la [[3D view/fr|vue 3D]].
[[App_GeoFeature/fr|App GeoFeature]] (classe {{incode|App::GeoFeature}}) 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. En outre, il possède une propriété {{PropertyData|Placement}}, qui contrôle sa position dans la [[3D_view|vue 3D]].


<span id="Properties_App_GeometryPython"></span>
Voir [[Property/fr|Propriétés]] pour tous les types de propriétés que les objets crées par script peuvent avoir.
== Propriétés App GeometryPython ==


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


La classe [[App_GeoFeature/fr|App GeometryPython]] (classe {{incode|App::GeometryPython}}) est dérivée de la classe de base [[App_GeoFeature/fr|App GeoFeature]] (classe {{incode|App::GeoFeature}}) et hérite de toutes ses propriétés. Elle possède également plusieurs propriétés supplémentaires.

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|Proxy|PythonObject|Hidden}} : une classe personnalisée associée à cet objet.
* {{PropertyData/fr|Placement|Placement}}: la position de l'objet dans la [[3D view/fr|Vue 3D]]. Le placement est défini par un point {{incode|Base}} (vecteur) et un {{incode|Rotation}} (axe et angle). Voir [[Placement/fr|Positionnement]].
* {{PropertyData|Placement|Placement}}: la position de l'objet dans la [[3D view/fr|Vue 3D]]. Le placement est défini par un point {{incode|Base}} (vecteur) et un {{incode|Rotation}} (axe et angle). Voir [[Placement/fr|Positionnement]].
** {{PropertyData/fr|Angle}}: l'angle de rotation autour de {{PropertyData|Axis}}. Par défaut {{value|0°}} (zéro degré).
** {{PropertyData|Angle}}: l'angle de rotation autour de {{PropertyData|Axis}}. Par défaut {{value|0°}} (zéro degré).
** {{PropertyData/fr|Axis}}: le vecteur unitaire qui définit l'axe de rotation pour le placement. Chaque composant est une valeur à virgule flottante entre {{value|0}} et {{value|1}}. Si une valeur est supérieure à {{value|1}}, le vecteur est normalisé de sorte que l'amplitude du vecteur est {{value|1}}. Par défaut, il s'agit de l'axe Z positif, {{value|(0, 0, 1)}}.
** {{PropertyData/fr|Position}}: un vecteur avec les coordonnées 3D du point de base. Par défaut, c'est l'origine {{value|(0, 0, 0)}}.
** {{PropertyData|Axis}}: le vecteur unitaire qui définit l'axe de rotation pour le placement. Chaque composant est une valeur à virgule flottante entre {{value|0}} et {{value|1}}. Si une valeur est supérieure à {{value|1}}, le vecteur est normalisé de sorte que l'amplitude du vecteur est {{value|1}}. Par défaut, il s'agit de l'axe Z positif, {{value|(0, 0, 1)}}.
* {{PropertyData/fr|Label|String}}: le nom modifiable par l'utilisateur de cet objet, il s'agit d'une chaîne UTF8 arbitraire.
** {{PropertyData|Position}}: un vecteur avec les coordonnées 3D du point de base. Par défaut, c'est l'origine {{value|(0, 0, 0)}}.
* {{PropertyData|Label|String}}: le nom modifiable par l'utilisateur de cet objet, il s'agit d'une chaîne UTF8 arbitraire.

* {{PropertyData|Label2|String|Hidden}} : une description plus longue, modifiable par l'utilisateur, de cet objet. Il s'agit d'une chaîne UTF8 arbitraire qui peut inclure des nouvelles lignes. Par défaut, il s'agit d'une chaîne vide {{value|""}}.
===== Propriétés cachées de Données =====
* {{PropertyData|Expression Engine|ExpressionEngine|Hidden}} : une liste d'expressions. Par défaut, elle est vide {{value|[]}}.

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


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


{{TitleProperty|Display Options}}
* {{PropertyView/fr|Bounding Box|Bool}}: s'il s'agit de {{TRUE}}, l'objet affichera le cadre de délimitation dans la [[3D view/fr|Vue 3D]].
* {{PropertyView|Bounding Box|Bool}}: mis à {{TRUE}}, l'objet affichera le cadre de délimitation dans la [[3D_view/fr|Vue 3D]].
* {{PropertyView/fr|Display Mode|Enumeration}}: il est vide par défaut.
* {{PropertyView/fr|On Top When Selected|Enumeration}}: {{value|Disabled}} (par défaut), {{value|Enabled}}, {{value|Object}}, {{value|Element}}.
* {{PropertyView|Display Mode|Enumeration}}: voir les informations dans [[App_FeaturePython/fr|App FeaturePython]].
* {{PropertyView|Show In Tree|Bool}}: voir les informations dans [[App_FeaturePython/fr|App FeaturePython]].
* {{PropertyView/fr|Selectable|Bool}}: s'il s'agit de {{TRUE}}, l'objet peut être sélectionné avec le pointeur dans la [[3D view/fr|Vue 3D]]. Sinon, l'objet ne peut pas être sélectionné tant que cette option n'est pas définie sur {{TRUE}}.
* {{PropertyView|Visibility|Bool}}: voir les informations dans [[App_FeaturePython/fr|App FeaturePython]].
* {{PropertyView/fr|Selection Style|Enumeration}}: {{value|Shape}} (par 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|Shape Color|Color}}: un tuple de trois valeurs RVB à virgule flottante {{value|(r,g,b)}} pour définir la couleur des faces dans la [[3D view/fr|Vue 3D]]. Par défaut, il s'agit de {{value|(0.8, 0.8, 0.8)}}, qui s'affiche sous la forme {{value|[204,204,204]}} sur la base 255, un <span style="background-color:#ccc; width:3em; height:12pt; padding: 2px 1em 2px;"> gris clair </span>.
* {{PropertyView/fr|Show In Tree|Bool}}: s'il s'agit de {{TRUE}}, l'objet apparaît dans la [[tree view/fr|vue arborescente]]. Sinon, il est défini comme invisible.
* {{PropertyView/fr|Transparency|Percent}}: un entier de {{value|0}} à {{value|100}} qui détermine le niveau de transparence des faces dans la [[3D view/fr|vue 3D]]. Une valeur de {{value|100}} indique des faces complètement invisibles. Les faces sont invisibles mais peuvent toujours être sélectionnées tant que {{PropertyView|Selectable}} est {{TRUE}}.
* {{PropertyView/fr|Visibility|Bool}}: s'il s'agit de {{TRUE}}, l'objet apparaît dans la [[3D view/fr|Vue 3D]] sinon 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|Object Style}}
===== Propriétés cachées de Vue =====
* {{PropertyView|Shape Color|Color}}: un tuple de trois valeurs RVB à virgule flottante {{value|(r,g,b)}} pour définir la couleur des faces dans la [[3D_view/fr|Vue 3D]]. Par défaut, il s'agit de {{value|(0.8, 0.8, 0.8)}}, qui s'affiche sous la forme {{value|[204, 204, 204]}} sur la base 255, un <span style="background-color:#ccc; width:3em; height:12pt; padding: 2px 1em 2px;"> light gray </span>.
* {{PropertyView|Shape Material|Material|Hidden}}: un [[App_Material/fr|App Material]] associé à cet objet. Par defaut, vide.
* {{PropertyView|Transparency|Percent}}: un entier de {{value|0}} à {{value|100}} qui détermine le niveau de transparence des faces dans la [[3D_view/fr|Vue 3D]]. Une valeur de {{value|100}} indique des faces complètement invisibles. Les faces sont invisibles mais elles peuvent toujours être sélectionnées tant que {{PropertyView|Selectable}} est {{TRUE}}.


{{TitleProperty|Selection}}
* {{PropertyView/fr|Proxy|PythonObject}}: une classe de fournisseur de vue personnalisée associée à cet objet. Par defaut, vide.
* {{PropertyView/fr|Shape Material|Material}}: un [[App_Material/fr|App Material]] associé à cet objet. Par defaut, vide.
* {{PropertyView|On Top When Selected|Enumeration}}: voir les informations dans [[App_FeaturePython/fr|App FeaturePython]].
* {{PropertyView|Selectable|Bool}}: s'il est {{TRUE}}, l'objet peut être sélectionné avec le pointeur dans la [[3D_view/fr|Vue 3D]]. Sinon, l'objet ne peut pas être sélectionné tant que cette option n'est pas définie sur {{TRUE}}.
* {{PropertyView|Selection Style|Enumeration}}: voir les informations dans [[App_FeaturePython/fr|App FeaturePython]].


<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 GeoFeature est créé avec la méthode {{incode|addObject()}} du document. Si vous souhaitez créer un objet avec une 2D ou 3D [[Part_TopoShape/fr|forme topologique]], il peut être préférable de créer l'une des sous-classes spécialisées pour cela, par exemple, [[Part_Feature/fr|Part Feature]] ou [[Part_Part2DObject/fr|Part Part2DObject]].
Un GeoFeature est créé avec la méthode {{incode|addObject()}} du document. Si vous souhaitez créer un objet avec une 2D ou 3D [[Part_TopoShape/fr|forme topologique]], il peut être préférable de créer l'une des sous-classes spécialisées pour la manipulation des formes, par exemple, [[Part_Feature/fr|Part Feature]] ou [[Part_Part2DObject/fr|Part Part2DObject]].


{{Code|code=
{{Code|code=
Line 86: Line 96:
}}
}}


Pour la sous-classification de [[Python/fr|Python]], vous devez créer l'objet {{incode|App::GeometryPython}}.
Cette {{incode|App::GeoFeature}} de base n'a pas de fournisseur de vue par défaut donc aucune icône ne sera affichée dans la [[tree view/fr|vue arborescente]] et aucune propriété {{MenuCommand|View}} ne sera disponible.

Par conséquent, pour les scripts [[Python/fr|Python]], la recommandation est de créer l'objet {{incode|Part::GeometryPython}}.


{{Code|code=
{{Code|code=
Line 98: Line 106:
}}
}}


Par exemple, l'élément [[Arch_BuildingPart/fr|Arch Partie de bâtiment]] de [[Arch_Workbench/fr|Atelier Arch]] est un objet {{incode|App::GeometryPython}} avec une icône personnalisée.


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

Latest revision as of 08:46, 27 April 2024

Introduction

Un objet App GeoFeature, ou officiellement App::GeoFeature, est la classe de base de la plupart des objets qui afficheront des éléments géométriques dans la Vue 3D car il inclut une propriété DonnéesPlacement.

Diagramme simplifié des relations entre les objets centraux dans Freecad

Utilisation

App GeoFeature est un objet interne, il ne peut donc pas être créé à partir de l'interface graphique. Il n'est généralement pas destiné à être utilisé directement, mais il peut plutôt être sous-classé pour obtenir un objet nu qui n'a qu'une propriété DonnéesPlacement de base pour définir sa position dans la vue 3D.

Certains des objets dérivés les plus importants sont les suivants :

Lorsque vous créez cet objet dans Python, au lieu de sous-classer App::GeoFeature, vous devez sous-classer App::GeometryPython car ce dernier inclut une valeur par défaut fournisseur de vues et attributs Proxy pour l'objet lui-même et son fournisseur de vues. Voir Script.

Propriétés App GeoFeature

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

App GeoFeature (classe App::GeoFeature) est dérivée de la classe de base App DocumentObject. (classe App::DocumentObject) et hérite de toutes ses propriétés. En outre, il possède une propriété DonnéesPlacement, qui contrôle sa position dans la vue 3D.

Propriétés App GeometryPython

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

La classe App GeometryPython (classe App::GeometryPython) est dérivée de la classe de base App GeoFeature (classe App::GeoFeature) et hérite de toutes ses propriétés. Elle 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 (Hidden)Proxy (PythonObject) : une classe personnalisée associée à cet objet.
  • DonnéesPlacement (Placement): la position de l'objet dans la Vue 3D. Le placement est défini par un point Base (vecteur) et un Rotation (axe et angle). Voir Positionnement.
    • DonnéesAngle: l'angle de rotation autour de DonnéesAxis. Par défaut (zéro degré).
    • DonnéesAxis: le vecteur unitaire qui définit l'axe de rotation pour le placement. Chaque composant est une valeur à virgule flottante entre 0 et 1. Si une valeur est supérieure à 1, le vecteur est normalisé de sorte que l'amplitude du vecteur est 1. Par défaut, il s'agit de l'axe Z positif, (0, 0, 1).
    • DonnéesPosition: un vecteur avec les coordonnées 3D du point de base. Par défaut, c'est l'origine (0, 0, 0).
  • DonnéesLabel (String): le nom modifiable par l'utilisateur de cet objet, il s'agit d'une chaîne UTF8 arbitraire.
  • Données (Hidden)Label2 (String) : une description plus longue, modifiable par l'utilisateur, de cet objet. Il s'agit d'une chaîne UTF8 arbitraire qui peut inclure des nouvelles lignes. Par défaut, il s'agit d'une chaîne vide "".
  • Données (Hidden)Expression Engine (ExpressionEngine) : une liste d'expressions. Par défaut, elle est vide [].
  • Données (Hidden)Visibility (Bool) : affichage ou non de l'objet.

Vue

Base

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

Display Options

  • VueBounding Box (Bool): mis à true, l'objet affichera le cadre de délimitation dans la Vue 3D.
  • VueDisplay Mode (Enumeration): voir les informations dans App FeaturePython.
  • VueShow In Tree (Bool): voir les informations dans App FeaturePython.
  • VueVisibility (Bool): voir les informations dans App FeaturePython.

Object Style

  • VueShape Color (Color): un tuple de trois valeurs RVB à virgule flottante (r,g,b) pour définir la couleur des faces dans la Vue 3D. Par défaut, il s'agit de (0.8, 0.8, 0.8), qui s'affiche sous la forme [204, 204, 204] sur la base 255, un light gray .
  • Vue (Hidden)Shape Material (Material): un App Material associé à cet objet. Par defaut, vide.
  • VueTransparency (Percent): un entier de 0 à 100 qui détermine le niveau de transparence des faces dans la Vue 3D. Une valeur de 100 indique des faces complètement invisibles. Les faces sont invisibles mais elles peuvent toujours être sélectionnées tant que VueSelectable est true.

Selection

  • VueOn Top When Selected (Enumeration): voir les informations dans App FeaturePython.
  • VueSelectable (Bool): s'il est true, l'objet peut être sélectionné avec le pointeur dans la Vue 3D. Sinon, l'objet ne peut pas être sélectionné tant que cette option n'est pas définie sur true.
  • VueSelection Style (Enumeration): voir les informations dans App FeaturePython.

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 GeoFeature est créé avec la méthode addObject() du document. Si vous souhaitez créer un objet avec une 2D ou 3D forme topologique, il peut être préférable de créer l'une des sous-classes spécialisées pour la manipulation des formes, par exemple, Part Feature ou Part Part2DObject.

import FreeCAD as App

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

Pour la sous-classification de Python, vous devez créer l'objet App::GeometryPython.

import FreeCAD as App

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