Part Feature/fr: Difference between revisions

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


== Introduction ==
== Introduction ==


[[File:Part_3D_object.svg|32px]]
{{TOCright}}
[[File:Tree_Part.svg|32px]]

Un objet [[Part Feature/fr|Part Feature]], ou formellement un {{incode|Part::Feature}}, est un élément simple associé à une [[Part_TopoShape/fr|forme topologique]] qui peut être affiché dans la [[3D view/fr|Vue 3D]].


Un objet [[Part_Feature/fr|Part Feature]] (Part Fonction), ou formellement un {{incode|Part::Feature}}, est une [[Part_TopoShape/fr|forme topologique]] qui peut être affiché dans la [[3D_view/fr|Vue 3D]].
Part Feature est la classe parente de la plupart des objets 2D (Draft, Sketcher) et 3D (Part, PartDesign), à l'exception des maillages, qui sont normalement basés sur [[Mesh_Feature/fr|Mesh Feature]] ou [[Fem_FemMeshObject/fr|Fem FemMeshObject]] pour les objets FEM.


Part Feature est la classe parente de la plupart des objets 2D (Draft, Sketcher) et 3D (Part, PartDesign), à l'exception des maillages, qui sont normalement basés sur [[Mesh_Feature/fr|Mesh Feature]] ou [[FEM_Mesh/fr|FEM FemMeshObject]] pour les objets FEM.
Chaque objet créé avec l'[[Part_Workbench/fr|Atelier Part]] est essentiellement un [[Part Feature/fr|Part Feature]].


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


{{Caption|Schéma simplifié des relations entre les objets principaux dans le programme. La classe {{incode|Part::Feature}} est l’origine de la plupart des objets 2D (Draft, Sketcher) et 3D (Part, PartDesign) qui ont des [[Part_TopoShape/fr|Part formes topologiques]].}}
{{Caption|Diagramme simplifié des relations entre les objets centraux dans Freecad}}


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


La [[Part Feature/fr|Part Feature]] est un objet interne. Par conséquent, il ne peut pas être créé à partir de l'interface graphique, uniquement à partir de la [[Python console/fr|Console Python]], comme décrit dans la section [[Part_Feature#Script|Scrip]]. section.
[[Part Feature/fr|Part Feature]] est un objet interne. Par conséquent, il ne peut pas être créé à partir de l'interface graphique, uniquement à partir de la [[Python_console/fr|Console Python]], comme décrit dans la section [[#Script|Script]].


L'objet {{incode|Part::Feature}} est défini dans [[Part Workbench/fr|Part Workbench]], mais peut être utilisé comme classe de base pour [[scripted objects/fr|objets scripté]] dans tous les [[Workbenches/fr|ateliers]] générant des formes géométriques 2D et 3D. En fait, tous les objets produits dans [[Part Workbench/fr|Atelier Part]] sont des instances d'un {{incode|Part::Feature}}. Les objets solides importés à partir de fichiers STEP ou BREP seront importés à l'aide de [[Part Workbench/fr|Atelier Part]]. Ils seront donc également importés en tant qu'éléments {{incode|Part::Feature}} bien que sans historique paramétrique.
L'objet {{incode|Part::Feature}} est défini dans l'[[Part_Workbench/fr|atelier Part]] mais peut être utilisé comme classe de base pour les [[Scripted_objects/fr|objets scriptés]] dans tous les [[Workbenches/fr|ateliers]] générant des formes géométriques 2D et 3D. En fait, tous les objets produits dans l'[[Part_Workbench/fr|atelier Part]] sont des instances d'un {{incode|Part::Feature}}.


{{incode|Part::Feature}} est également la classe parente de [[PartDesign Body/fr|PartDesign Corps]], de [[PartDesign_Feature/fr|PartDesign Features]] et de [[Part_Part2DObject/fr|Part Part2DObject]], qui est spécialisée pour les formes 2D (planes).
{{incode|Part::Feature}} est également la classe parente de [[PartDesign_Body/fr|PartDesign Corps]], de [[PartDesign_Feature/fr|PartDesign Features]] et de [[Part_Part2DObject/fr|Part Part2DObject]], qui est spécialisée pour les formes 2D (planes).


Un objet {{incode|Part::Feature}} possède de simples propriétés, telles qu'un [[Placement/fr|emplacement]], et des couleurs permettant de définir l'apparence de ses sommets, arêtes et faces. Les ateliers peuvent ajouter plus de propriétés à cet élément de base pour produire un objet avec un comportement complexe.
Des ateliers peuvent ajouter plus de propriétés à cet élément de base pour produire un objet au comportement complexe.


<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.
[[Part_Feature/fr|Part Feature]] ({{incode|Part::Feature}} class) est dérivé de la classe de base [[App_GeoFeature/fr|App GeoFeature]] ({{incode|App::GeoFeature}} class) de ce fait partage toutes les propriétés de cette dernière.

Outre les propriétés décrites dans [[App_GeoFeature/fr|App GeoFeature]], Part Feature possède la propriété {{PropertyData|Shape}} qui contrôle le type de géométrie affiché dans la [[3D view/fr|vue 3D]]. Elle stocke [[Part_TopoShape/fr|Part TopoShape]] de cet objet. Il s'agit de la géométrie affichée dans la [[3D view/fr|Vue 3D]].


[[Part_Feature/fr|Part Feature]] (classe {{incode|Part::Feature}}) est dérivée de [[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. Notamment une propriété {{PropertyData|Shape}}, qui stocke la [[Part_TopoShape/fr|Part TopoShape]] de l'objet. Il s'agit de la géométrie qui est affichée dans la [[3D_view/fr|vue 3D]]. Les autres propriétés de cet objet sont celles liées à l'apparence de sa [[Part_TopoShape/fr|TopoShape]].
Les autres propriétés de cet objet sont celles liées à l'apparence de sa [[Part_TopoShape/fr|TopoShape]], incluant {{PropertyView|Angular Deflection}}, {{PropertyView|Deviation}}, {{PropertyView|Draw Style}}, {{PropertyView|Lighting}}, {{PropertyView|Line Color}}, {{PropertyView|Line Width}}, {{PropertyView|Point Color}}, {{PropertyView|Point Size}} ainsi que les propriétés cachées {{PropertyView|Diffuse Color}}, {{PropertyView|Line Color Array}}, {{PropertyView|Line Material}}, {{PropertyView|Point Color Array}} et {{PropertyView|Point Material}}.

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]].
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. Ceci n'existe que pour la version en [[Python/fr|Python]]. Voir [[#Script|Script]].
* {{PropertyData/fr|Placement|Placement}}: la position de l'objet dans la [[3D view/fr| Vue 3D]]. Le placement est défini par une {{incode|Base}} un point (vecteur) et une {{incode|Rotation}} (axe et angle). Voir [[Placement/fr|Placement]].
* {{PropertyData|Shape|PartShape|Hidden}} : une classe [[Part_TopoShape/fr|Part TopoShape]] associée à cet objet.
** {{PropertyData/fr|Angle}}: l'angle de rotation autour des {{PropertyData/fr|Axis}}. Par défaut, il s'agit de {{value|0°}} (zéro en degré).
* {{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 {{incode|Rotation}} (axe et angle). Voir [[Placement/fr|Placement]].
** {{PropertyData/fr|Axis}}: 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 la magnitude 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|Angle}} : l'angle de rotation autour de {{PropertyData|Axis}}. Par défaut, il est {{value|0°}}. (zéro degré).
** {{PropertyData|Axis}} : le vecteur unitaire qui définit l'axe de rotation du placement. Chaque composante est une valeur à virgule flottante comprise entre {{value|0}} et {{value|1}}. Si une valeur est supérieure à {{value|1}}, le vecteur est normalisé de manière à ce que sa magnitude soit {{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 contenant les coordonnées 3D du point de base. Par défaut, il s'agit de 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.
===== Propriétés cachées de Données =====
* {{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|""}}.

* {{PropertyData/fr|Expression Engine|ExpressionEngine|hidden}}: une liste d'expressions. Par défaut, elle est vide {{value|[]}}.
* {{PropertyData|Expression Engine|ExpressionEngine|Hidden}} : une liste d'expressions. Par défaut, elle est vide {{value|[]}}.
* {{PropertyData|Visibility|Bool|Hidden}} : affichage ou non de l'objet.
* {{PropertyData/fr|Label2|String|hidden}}: 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|Proxy|PythonObject|hidden}}: une classe personnalisée associée à cet objet. Cela n'existe que pour la version [[Python/fr|Python]]. Voir [[Part_Feature/fr#Script|Script]].
* {{PropertyData/fr|Shape|PartShape|hidden}}: classe [[Part_TopoShape/fr|Part TopoShape]] associée à cet objet.
* {{PropertyData/fr|Visibility|Bool|hidden}}: affiche ou non l'objet.


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


La plupart des objets dans FreeCAD ont ce qu'on appelle un "fournisseur de vues", c'est-à-dire une classe qui définit l'apparence visuelle de l'objet dans la [[3D view/fr|vue 3D]] et dans la [[tree view/fr|vue en arborescence]] . Le fournisseur de vue par défaut des objets Part Feature définit les propriétés suivantes. Les objets scriptés dérivés de Part Feature auront également accès à ces propriétés.
La plupart des objets dans FreeCAD ont ce qu'on appelle un "[[viewprovider/fr|viewprovider]]", c'est-à-dire une classe qui définit l'apparence visuelle de l'objet dans la [[3D_view/fr|vue 3D]] et dans la [[Tree_view/fr|vue en arborescence]]. Le viewprovider par défaut des objets Part Feature définit les propriétés suivantes. Les objets scriptés dérivés de Part Feature auront également accès à ces propriétés.


{{TitleProperty|Base}}
{{TitleProperty|Base}}
* {{PropertyView/fr|Proxy|PythonObject|hidden}}: une classe [[Viewprovider/fr|viewprovider]] personnalisée associée à cet objet. Cela n'existe que pour la version [[Python/fr|Python]]. Voir [[#Script|Script]].


{{TitleProperty|Options d'affichage}}
* {{PropertyView/fr|Angular Deflection|Angle}}: il accompagne {{PropertyView/fr|Déviation}}. C'est un autre moyen de spécifier la précision avec laquelle générer le maillage pour le rendu à l'écran ou lors de l'exportation. La valeur par défaut est {{value|28.5 degrees}} ou {{value|0.5 radians}}. Il s'agit de la valeur maximale, plus la valeur est petite, plus l'apparence sera lisse dans la [[3D view/fr|vue 3D]] et plus le maillage exporté sera fin.
* {{PropertyView/fr|Bounding Box|Bool}}: s'il est réglé sur {{TRUE}}, l'objet affichera le cadre de sélection dans la [[3D view/fr|Vue 3D]].
* {{PropertyView/fr|Deviation|FloatConstraint}}: il accompagne {{PropertyView/fr|Déviation angulaire}}. C'est un autre moyen de spécifier la précision avec laquelle générer le maillage pour le rendu à l'écran ou lors de l'exportation. La valeur par défaut est {{value|0.5%}}. Il s'agit de la valeur maximale, plus la valeur est petite, plus l'apparence sera lisse dans la [[3D view/fr|vue 3D]] et plus le maillage exporté sera fin.


* {{PropertyView|Bounding Box|Bool}}: si {{TRUE}}, l'objet affichera le cadre de délimitation dans la [[3D_view/fr|Vue 3D]].
L'écart est une valeur en pourcentage qui est liée aux dimensions en millimètres de la boîte englobante de l'objet. L'écart en millimètres peut être calculé comme suit:
* {{PropertyView|Display Mode|Enumeration}}: {{value|Flat Lines}} (visualisation régulière), {{value|Shaded}} (pas d'arêtes), {{value|Wireframe}} (pas de faces), {{value|Points}} (uniquement les sommets).
{{Code|code=
* {{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}}.
deviation_in_mm = (w + h + d)/3 * deviation/100
* {{PropertyView|Visibility|Bool}}: si {{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}}.
}}

où {{value|w}}, {{value|h}}, {{value|d}} sont les dimensions de la boîte de délimitation.
{{TitleProperty|Style de l'objet}}

* {{PropertyView|Angular Deflection|Angle}} : il accompagne {{PropertyView|Déviation}}. C'est un autre moyen de spécifier la précision avec laquelle générer le maillage pour le rendu à l'écran ou lors de l'exportation. La valeur par défaut est {{value|28.5 degrees}} ou {{value|0.5 radians}}. Il s'agit de la valeur maximale, plus la valeur est petite, plus l'apparence sera lisse dans la [[3D_view/fr|vue 3D]] et plus le maillage exporté sera fin.
* {{PropertyView|Deviation|FloatConstraint}} : il accompagne {{PropertyView|Déviation angulaire}}. C'est un autre moyen de spécifier la précision avec laquelle générer le maillage pour le rendu à l'écran ou lors de l'exportation. La valeur par défaut est {{value|0.5%}}. Il s'agit de la valeur maximale, plus la valeur est petite, plus l'apparence sera lisse dans la [[3D_view/fr|vue 3D]] et plus le maillage exporté sera fin.
* {{PropertyView|Diffuse Color|ColorList|hidden}}: c'est une liste de tuples RVB définissant les couleurs, similaire à {{PropertyView|Shape Color}}. La valeur par défaut est la liste {{value|[(0.8, 0.8, 0.8)]}}.
* {{PropertyView|Draw Style|Enumeration}}: {{value|Solid}} (default), {{value|Dashed}}, {{value|Dotted}}, {{value|Dashdot}} ; définit le style des bords dans la [[3D_view/fr|vue 3D]].
* {{PropertyView|Lighting|Enumeration}}: {{value|Two side}} (par défaut), {{value|One side}} ; l'éclairage provient de deux côtés ou d'un seul côté dans la [[3D_view/fr|vue 3D]].
* {{PropertyView|Line Color|Color}} : un tuple de trois valeurs RVB à virgule flottante {{value|(r,g,b)}} pour définir la couleur des bords dans la [[3D_view/fr|vue 3D]] ; la valeur par défaut est {{value|(0. 09, 0.09, 0.09)}}, qui est affichée comme {{value|[25,25,25]}} sur la base 255, <span style="background-color:#222; color:#eee; width:3em; height:12pt; padding: 2px 1em 2px;"> presque noir </span>.
* {{PropertyView|Line Color Array|ColorList|hidden}} : il s'agit d'une liste de tuples RVB définissant les couleurs, similaire à {{PropertyView|Line Color}}. Par défaut, il s'agit d'une liste de {{value|[(0.09, 0.09, 0.09)]}}.
* {{PropertyView|Line Material|Material|hidden}} : un [[App_Material/fr|App Material]] associé aux bords de cet objet. Par défaut, il est vide.
* {{PropertyView|Line Width|FloatConstraint}} : un flottant qui détermine la largeur en pixels des bords dans la [[3D_view/fr|vue 3D]]. La valeur par défaut est {{value|2.0}}.


* {{PropertyView/fr|Display Mode|Enumeration}}: {{value|Flat Lines}} (visualisation régulière), {{value|Shaded}} (pas de bords), {{value|Wireframe}} (pas de faces), {{value|Points}} (uniquement les sommets).
* {{PropertyView/fr|Draw Style|Enumeration}}: {{value|Solid}} (par défaut), {{value|Dashed}}, {{value|Dotted}}, {{value|Dashdot}}; définit le style des bords dans la [[3D view/fr|Vue 3D]].
* {{PropertyView/fr|Lighting|Enumeration}}: {{value|Two side}} (par défaut), {{value|One side}}; l'éclairage provient de deux côtés ou d'un côté dans la [[3D view/fr|Vue 3D]].
* {{PropertyView/fr|Line Color|Color}}: un tuple de trois valeurs RVB à virgule flottante {{value|(r,g,b)}} pour définir la couleur des bords dans la [[3D view/fr|Vue 3D]] par défaut, il s'agit de {{value|(0.09, 0.09, 0.09)}} qui s'affiche sous la forme {{value|[25,25,25]}} sur la base 255 <span style="background-color:#222; color:#eee; width:3em; height:12pt; padding: 2px 1em 2px;"> presque noir </span>.
* {{PropertyView/fr|Line Width|FloatConstraint}}: valeur flottante qui détermine la largeur en pixels des bords dans la [[3D view/fr|Vue 3D]]. Par défaut {{value|2.0}}.
* {{PropertyView/fr|On Top When Selected|Enumeration}}: {{value|Disabled}} (par défaut), {{value|Enabled}}, {{value|Object}}, {{value|Element}}.
* {{PropertyView/fr|Point Color|Color}}: similair à {{PropertyView|Line Color}}, définit la couleur des sommets.
* {{PropertyView/fr|Point Color|Color}}: similair à {{PropertyView|Line Color}}, définit la couleur des sommets.
* {{PropertyView/fr|Point Color Array|ColorList|hidden}}: c'est une liste de tuples RVB définissant les couleurs, similaire à {{PropertyView/fr|Point Color}}. la valeur par défaut est la liste {{value|[(0.09, 0.09, 0.09)]}}.
* {{PropertyView/fr|Point Material|Material|hidden}}: un [[App_Material/fr|App Material]] associé aux arêtes de cet objet. Par defaut c'est vide.
* {{PropertyView/fr|Point Size|FloatConstraint}}: similaire à {{PropertyView|Line Width}}, définit la taille des sommets.
* {{PropertyView/fr|Point Size|FloatConstraint}}: similaire à {{PropertyView|Line Width}}, définit la taille des sommets.
* {{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/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}}: similaire à {{PropertyView|Line Color}}, définit la couleur des faces. Il est par défaut {{value|(0.8, 0.8, 0.8)}} qui est affiché comme {{value|[204,204,204]}} sur la base 255, a <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 par arborescence]]. Sinon, il est défini comme invisible.
* {{PropertyView/fr|Transparency|Percent}}: un entier de {{value|0}} à {{value|100}} (un pourcentage) 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 visages sont invisibles, mais ils peuvent toujours être sélectionnés 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 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.


* {{PropertyView|Shape Color|Color}}: similaire à {{PropertyView|Line Color}}, définit la couleur des faces. Il est par défaut {{value|(0.8, 0.8, 0.8)}} qui est affiché comme {{value|[204,204,204]}} sur la base 255, a <span style="background-color:#ccc; width:3em; height:12pt; padding: 2px 1em 2px;">gris clair </span>.
===== Propriétés cachées de Données =====
* {{PropertyView|Shape Material|Material|hidden}}: un [[App_Material/fr|App Material]] associé aux arêtes de cet objet. Par defaut c'est vide.
* {{PropertyView|Transparency|Percent}}: un entier de {{value|0}} à {{value|100}} (un pourcentage) 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 visages sont invisibles, mais ils peuvent toujours être sélectionnés tant que {{PropertyView|Selectable}} est {{TRUE}}.

{{TitleProperty|Selection}}


* {{PropertyView|On Top When Selected|Enumeration}}: 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 beaucoup d'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/fr|Diffuse Color|ColorList|hidden}}: il s'agit d'une liste de tuples RVB définissant les couleurs, similaire à {{PropertyView|Shape Color}}. Valeur par défaut {{value|[(0.8, 0.8, 0.8)]}}.
* {{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/fr|Line Color Array|ColorList|hidden}}: il s'agit d'une liste de tuples RVB définissant les couleurs, similaire à {{PropertyView|Line Color}}. Valeur par défaut {{value|[(0.09, 0.09, 0.09)]}}.
* {{PropertyView|Selection Style|Enumeration}}: il contrôle la façon dont l'objet est mis en évidence. 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.
* {{PropertyView/fr|Line Material|Material|hidden}}: un [[App_Material/fr|App Material]] associé aux bords de cet objet, par défaut vide.
* {{PropertyView/fr|Point Color Array|ColorList|hidden}}: il s'agit d'une liste de tuples RVB définissant les couleurs, similaire à {{PropertyView/fr|Point Color}}. Valeur par défaut {{value|[(0.09, 0.09, 0.09)]}}.
* {{PropertyView/fr|Point Material|Material|hidden}}: un [[App_Material/fr|App Material]] associé aux sommets de cet objet, par défaut vide.
* {{PropertyView/fr|Proxy|PythonObject|hidden}}: une classe de fournisseur de vue personnalisée associée à cet objet, par défaut vide. Cela n'existe que pour la version [[Python/fr|Python]]. Voir [[Part_Feature/fr#Script|Script]].
* {{PropertyView/fr|Shape Material|Material|hidden}}: un [[App_Material/fr|App Material]] associé à cet objet, par défaut vide.


<span id="Angular_deflection_and_deviation"></span>
=== Valeur d'écart ===
=== Déflexion angulaire et déviation ===


[[File:View_property_Deviation.svg|500px]]
[[File:View_property_Deviation.svg|500px]]
{{Caption|Paramètres de déflexion de l'algorithme {{incode|BRepMesh_IncrementalMesh}}; d < déviation linéaire, α < déviation angulaire.}}
{{Caption|Déflexion angulaire et paramètres de déviation ; d < déflexion linéaire, α < déflexion angulaire.}}


L'écart est une valeur en pourcentage qui est liée aux dimensions en millimètres de la boîte englobante de l'objet. L'écart en millimètres peut être calculé comme suit:
Consultez le fil du forum, [https://forum.freecadweb.org/viewtopic.php?f=3&t=45512 Déviation et déviation angulaire].


{{Code|code=
deviation_in_mm = (w + h + d)/3 * deviation/100
}}

où {{value|w}}, {{value|h}}, {{value|d}} sont les dimensions de la boîte englobante.

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


Une entité de pièce, Part Feature, est créée avec la méthode {{incode|addObject()}} du document.
Une entité de pièce, Part Feature, est créée avec la méthode {{incode|addObject()}} du document.

{{Code|code=
{{Code|code=
import FreeCAD as App
import FreeCAD as App
Line 117: Line 121:
}}
}}


Pour la sous-classification de [[Python/fr|Python]], vous devez créer l'objet {{incode|Part::FeaturePython}}.
Ce {{incode|Part::Feature}} de base n'a pas d'objet Proxy, il ne peut donc pas être entièrement utilisé pour la sous-classification.


Par conséquent, pour la sous-classe [[Python/fr|Python]], vous devez créer l'objet {{incode|Part::FeaturePython}}.
{{Code|code=
{{Code|code=
import FreeCAD as App
import FreeCAD as App
Line 128: Line 131:
}}
}}


<span id="Name"></span>
=== Name (Nom) ===
=== Name (Nom) ===


Voir aussi : [[Object_name/fr|Object name]] pour plus d'informations sur les propriétés de {{incode|Name}}.
La fonction {{incode|addObject}} a deux arguments de chaîne de base.

La méthode {{incode|addObject}} possède deux arguments de base de type chaîne.


* Le premier argument indique le type d'objet, dans ce cas, {{incode|"Part::FeaturePython"}}.
* Le premier argument indique le type d'objet, dans ce cas, {{incode|"Part::FeaturePython"}}.
* Le deuxième argument est une chaîne qui définit l'attribut {{incode|Name}}. S'il n'est pas fourni, il utilise par défaut le même nom que la classe, c'est-à-dire {{incode|"Part__FeaturePython"}}.
* Le deuxième argument est une chaîne qui définit l'attribut {{incode|Name}}. S'il n'est pas fourni, il utilise par défaut le même nom que la classe, c'est-à-dire {{incode|"Part__FeaturePython"}}. {{incode|Name}} ne peut contenir que des caractères alphanumériques simples et le trait de soulignement, {{incode|[_0-9a-zA-Z]}}. Si d'autres symboles sont donnés, ils seront convertis en traits de soulignement; par exemple, {{incode|"A+B:C*"}} est converti en {{incode|"A_B_C_"}}.
** {{incode|Name}} ne peut contenir que des caractères alphanumériques simples et le trait de soulignement, {{incode|[_0-9a-zA-Z]}}. Si d'autres symboles sont donnés, ils seront convertis en traits de soulignement; par exemple, {{incode|"A+B:C*"}} est converti en {{incode|"A_B_C_"}}.
** {{incode|Name}} ne peut pas commencer par un nombre; il doit commencer par une lettre ou le trait de soulignement {{incode|[_a-zA-Z]}}. Par exemple, {{incode|"123ABC"}} est converti en {{incode|"_23ABC"}}.
** {{incode|Name}} est fixé au moment de la création; il ne peut pas être modifié par la suite.
** {{incode|Name}} doit être unique dans tout le document. Si le même {{incode|"Name"}} est utilisé au moment de la création avec de nombreux objets, un numéro séquentiel sera ajouté automatiquement afin que les noms résultants soient uniques; par exemple, si {{incode|"Name"}} existe déjà, les nouveaux objets seront appelés {{incode|"Name001"}}, {{incode|"Name002"}}, {{incode|"Name003"}} etc.


<span id="Label"></span>
===Étiquette===
===Label (Étiquette) ===


Si vous le souhaitez, l'attribut {{incode|Label}} peut être remplacé par un texte plus significatif.
Si vous le souhaitez, l'attribut {{incode|Label}} peut être remplacé par un texte plus significatif.
* {{incode|Label}} peut accepter n'importe quelle chaîne UTF8, y compris les accents et les espaces. Puisque la [[Tree_view/fr|Vue en arborescence]] affiche {{incode|Label}}, il est recommandé de changer {{incode|Label}} en une chaîne plus descriptive.
* Lors de la création de l'objet, {{incode|Label}} est identique à {{incode|Name}}.
* Par défaut, {{incode|Label}} est unique, tout comme {{incode|Name}}. Ce comportement peut être modifié dans [[Preferences_Editor/fr|Réglage des préférences]], {{MenuCommand|Édition → Préférences → Général → Document → Autoriser la duplication des étiquettes dans un document}}. Cela signifie qu'en général, {{incode|Label}} peut être répété dans le même document. Lors du test d'un élément spécifique, l'utilisateur doit s'appuyer sur {{incode|Name}} plutôt que sur {{incode|Label}}.
* Cependant, contrairement à {{incode|Name}}, {{incode|Label}} peut accepter n'importe quelle chaîne UTF8, y compris les accents et les espaces. Étant donné que la [[tree view/fr|vue en arborescence]] affiche le {{incode|Label}}, il est recommandé de remplacer le {{incode|Label}} par une chaîne plus descriptive.

* Par défaut, {{incode|Label}} est unique, tout comme {{incode|Name}}. Ce comportement peut être modifié dans [[Preferences Editor/fr|Réglage des préférences]], {{MenuCommand|Edition → Préférences → Général → Document → Autoriser la duplication des étiquettes dans un document}}. Cela signifie qu'en général, {{incode|Label}} peut être répété dans le même document. Lors du test d'un élément spécifique, l'utilisateur doit s'appuyer sur {{incode|Name}} plutôt que sur {{incode|Label}}.


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

Latest revision as of 04:22, 2 December 2023

Introduction

Un objet Part Feature (Part Fonction), ou formellement un Part::Feature, est une forme topologique qui peut être affiché dans la Vue 3D.

Part Feature est la classe parente de la plupart des objets 2D (Draft, Sketcher) et 3D (Part, PartDesign), à l'exception des maillages, qui sont normalement basés sur Mesh Feature ou FEM FemMeshObject pour les objets FEM.

Diagramme simplifié des relations entre les objets centraux dans Freecad

Utilisation

Part Feature est un objet interne. Par conséquent, il ne peut pas être créé à partir de l'interface graphique, uniquement à partir de la Console Python, comme décrit dans la section Script.

L'objet Part::Feature est défini dans l'atelier Part mais peut être utilisé comme classe de base pour les objets scriptés dans tous les ateliers générant des formes géométriques 2D et 3D. En fait, tous les objets produits dans l'atelier Part sont des instances d'un Part::Feature.

Part::Feature est également la classe parente de PartDesign Corps, de PartDesign Features et de Part Part2DObject, qui est spécialisée pour les formes 2D (planes).

Des ateliers peuvent ajouter plus de propriétés à cet élément de base pour produire un objet au comportement complexe.

Propriétés

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

Part Feature (classe Part::Feature) est dérivée de App GeoFeature (classe App::GeoFeature) et hérite de toutes ses propriétés. Elle possède également plusieurs propriétés supplémentaires. Notamment une propriété DonnéesShape, qui stocke la Part TopoShape de l'objet. Il s'agit de la géométrie qui est affichée dans la vue 3D. Les autres propriétés de cet objet sont celles liées à l'apparence de sa TopoShape.

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. Ceci n'existe que pour la version en Python. Voir Script.
  • Données (Hidden)Shape (PartShape) : une classe Part TopoShape 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 Rotation (axe et angle). Voir Placement.
    • DonnéesAngle : l'angle de rotation autour de DonnéesAxis. Par défaut, il est . (zéro degré).
    • DonnéesAxis : le vecteur unitaire qui définit l'axe de rotation du placement. Chaque composante est une valeur à virgule flottante comprise entre 0 et 1. Si une valeur est supérieure à 1, le vecteur est normalisé de manière à ce que sa magnitude soit 1. Par défaut, il s'agit de l'axe Z positif, (0, 0, 1).
    • DonnéesPosition : un vecteur contenant les coordonnées 3D du point de base. Par défaut, il s'agit de 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

La plupart des objets dans FreeCAD ont ce qu'on appelle un "viewprovider", c'est-à-dire une classe qui définit l'apparence visuelle de l'objet dans la vue 3D et dans la vue en arborescence. Le viewprovider par défaut des objets Part Feature définit les propriétés suivantes. Les objets scriptés dérivés de Part Feature auront également accès à ces propriétés.

Base

  • Vue (caché)Proxy (PythonObject): une classe viewprovider personnalisée associée à cet objet. Cela n'existe que pour la version Python. Voir Script.

Options d'affichage

  • VueBounding Box (Bool): si true, l'objet affichera le cadre de délimitation dans la Vue 3D.
  • VueDisplay Mode (Enumeration): Flat Lines (visualisation régulière), Shaded (pas d'arêtes), Wireframe (pas de faces), Points (uniquement les sommets).
  • 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): si true, l'objet apparaît dans la 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 Espace.

Style de l'objet

  • VueAngular Deflection (Angle) : il accompagne VueDéviation. C'est un autre moyen de spécifier la précision avec laquelle générer le maillage pour le rendu à l'écran ou lors de l'exportation. La valeur par défaut est 28.5 degrees ou 0.5 radians. Il s'agit de la valeur maximale, plus la valeur est petite, plus l'apparence sera lisse dans la vue 3D et plus le maillage exporté sera fin.
  • VueDeviation (FloatConstraint) : il accompagne VueDéviation angulaire. C'est un autre moyen de spécifier la précision avec laquelle générer le maillage pour le rendu à l'écran ou lors de l'exportation. La valeur par défaut est 0.5%. Il s'agit de la valeur maximale, plus la valeur est petite, plus l'apparence sera lisse dans la vue 3D et plus le maillage exporté sera fin.
  • Vue (hidden)Diffuse Color (ColorList): c'est une liste de tuples RVB définissant les couleurs, similaire à VueShape Color. La valeur par défaut est la liste [(0.8, 0.8, 0.8)].
  • VueDraw Style (Enumeration): Solid (default), Dashed, Dotted, Dashdot ; définit le style des bords dans la vue 3D.
  • VueLighting (Enumeration): Two side (par défaut), One side ; l'éclairage provient de deux côtés ou d'un seul côté dans la vue 3D.
  • VueLine Color (Color) : un tuple de trois valeurs RVB à virgule flottante (r,g,b) pour définir la couleur des bords dans la vue 3D ; la valeur par défaut est (0. 09, 0.09, 0.09), qui est affichée comme [25,25,25] sur la base 255, presque noir .
  • Vue (hidden)Line Color Array (ColorList) : il s'agit d'une liste de tuples RVB définissant les couleurs, similaire à VueLine Color. Par défaut, il s'agit d'une liste de [(0.09, 0.09, 0.09)].
  • Vue (hidden)Line Material (Material) : un App Material associé aux bords de cet objet. Par défaut, il est vide.
  • VueLine Width (FloatConstraint) : un flottant qui détermine la largeur en pixels des bords dans la vue 3D. La valeur par défaut est 2.0.
  • VuePoint Color (Color): similair à VueLine Color, définit la couleur des sommets.
  • Vue (caché)Point Color Array (ColorList): c'est une liste de tuples RVB définissant les couleurs, similaire à VuePoint Color. la valeur par défaut est la liste [(0.09, 0.09, 0.09)].
  • Vue (caché)Point Material (Material): un App Material associé aux arêtes de cet objet. Par defaut c'est vide.
  • VuePoint Size (FloatConstraint): similaire à VueLine Width, définit la taille des sommets.
  • VueShape Color (Color): similaire à VueLine Color, définit la couleur des faces. Il est par défaut (0.8, 0.8, 0.8) qui est affiché comme [204,204,204] sur la base 255, a gris clair .
  • Vue (hidden)Shape Material (Material): un App Material associé aux arêtes de cet objet. Par defaut c'est vide.
  • VueTransparency (Percent): un entier de 0 à 100 (un pourcentage) qui détermine le niveau de transparence des faces dans la Vue 3D. Une valeur de 100 indique des faces complètement invisibles; les visages sont invisibles, mais ils peuvent toujours être sélectionnés tant que VueSelectable est true.

Selection

  • VueOn Top When Selected (Enumeration): contrôle la manière dont la sélection s'effectue dans la Vue 3D, si l'objet a une Shape et s'il y a beaucoup d'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.
  • 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): il contrôle la façon dont l'objet est mis en évidence. 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.

Déflexion angulaire et déviation

Déflexion angulaire et paramètres de déviation ; d < déflexion linéaire, α < déflexion angulaire.

L'écart est une valeur en pourcentage qui est liée aux dimensions en millimètres de la boîte englobante de l'objet. L'écart en millimètres peut être calculé comme suit:

deviation_in_mm = (w + h + d)/3 * deviation/100

w, h, d sont les dimensions de la boîte englobante.

Script

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

Une entité de pièce, Part Feature, est créée avec la méthode addObject() du document.

import FreeCAD as App

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

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

import FreeCAD as App

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

Name (Nom)

Voir aussi : Object name pour plus d'informations sur les propriétés de Name.

La méthode addObject possède deux arguments de base de type chaîne.

  • Le premier argument indique le type d'objet, dans ce cas, "Part::FeaturePython".
  • Le deuxième argument est une chaîne qui définit l'attribut Name. S'il n'est pas fourni, il utilise par défaut le même nom que la classe, c'est-à-dire "Part__FeaturePython". Name ne peut contenir que des caractères alphanumériques simples et le trait de soulignement, [_0-9a-zA-Z]. Si d'autres symboles sont donnés, ils seront convertis en traits de soulignement; par exemple, "A+B:C*" est converti en "A_B_C_".

Label (Étiquette)

Si vous le souhaitez, l'attribut Label peut être remplacé par un texte plus significatif.

  • Label peut accepter n'importe quelle chaîne UTF8, y compris les accents et les espaces. Puisque la Vue en arborescence affiche Label, il est recommandé de changer Label en une chaîne plus descriptive.
  • Par défaut, Label est unique, tout comme Name. Ce comportement peut être modifié dans Réglage des préférences, Édition → Préférences → Général → Document → Autoriser la duplication des étiquettes dans un document. Cela signifie qu'en général, Label peut être répété dans le même document. Lors du test d'un élément spécifique, l'utilisateur doit s'appuyer sur Name plutôt que sur Label.