Part Feature

From FreeCAD Documentation
Jump to navigation Jump to search
This page is a translated version of the page Part Feature and the translation is 100% complete.
Other languages:
Deutsch • ‎English • ‎français • ‎italiano

Introduction

Tree Part.svg

Un objet Part Feature, ou formellement un Part::Feature, est un élément simple associé à 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.

Chaque objet créé avec l'Atelier Part est essentiellement un Part Feature.

FreeCAD core objects.svg

Schéma simplifié des relations entre les objets principaux dans le programme. La classe Part::Feature est l’origine de la plupart des objets 2D (Draft, Sketcher) et 3D (Part, PartDesign) qui ont des Part formes topologiques.


Utilisation

La 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 Scrip. section.

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

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

Un objet Part::Feature possède de simples propriétés, telles qu'un 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.

Propriétés

Part Feature (Part::Feature class) est dérivé de la classe de base App GeoFeature (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, Part Feature possède la propriété DataShape qui contrôle le type de géométrie affiché dans la vue 3D. Elle stocke Part TopoShape de cet objet. Il s'agit de la géométrie affichée dans la Vue 3D.

Les autres propriétés de cet objet sont celles liées à l'apparence de sa TopoShape, incluant ViewAngular Deflection, ViewDeviation, ViewDraw Style, ViewLighting, ViewLine Color, ViewLine Width, ViewPoint Color, ViewPoint Size ainsi que les propriétés cachées ViewDiffuse Color, ViewLine Color Array, ViewLine Material, ViewPoint Color Array et ViewPoint Material.

Voir 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'é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éesPlacement (Placement): la position de l'objet dans la Vue 3D. Le placement est défini par une Base un point (vecteur) et une Rotation (axe et angle). Voir Placement.
    • DonnéesAngle: l'angle de rotation autour des DonnéesAxis. Par défaut, il s'agit de (zéro en degré).
    • DonnéesAxis: 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 la magnitude 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.
Propriétés cachées de Données
  • Données (caché)Expression Engine (ExpressionEngine): une liste d'expressions. Par défaut, elle est vide [].
  • Données (caché)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 "".
  • Données (caché)Proxy (PythonObject): une classe personnalisée associée à cet objet. Cela n'existe que pour la version Python. Voir Script.
  • Données (caché)Shape (PartShape): classe Part TopoShape associée à cet objet.
  • Données (caché)Visibility (Bool): affiche ou non l'objet.

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 vue 3D et dans la 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.

Base

  • 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.
  • VueBounding Box (Bool): s'il est réglé sur True, l'objet affichera le cadre de sélection dans la Vue 3D.
  • 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.

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 de délimitation.

  • VueDisplay Mode (Enumeration): Flat Lines (visualisation régulière), Shaded (pas de bords), Wireframe (pas de faces), Points (uniquement les sommets).
  • VueDraw Style (Enumeration): Solid (par défaut), 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 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 par défaut, il s'agit de (0.09, 0.09, 0.09) qui s'affiche sous la forme [25,25,25] sur la base 255 presque noir .
  • VueLine Width (FloatConstraint): valeur flottante qui détermine la largeur en pixels des bords dans la Vue 3D. Par défaut 2.0.
  • VueOn Top When Selected (Enumeration): Disabled (par défaut), Enabled, Object, Element.
  • VuePoint Color (Color): similair à ViewLine Color, définit la couleur des sommets.
  • VuePoint Size (FloatConstraint): similaire à ViewLine Width, définit la taille des sommets.
  • VueSelectable (Bool): s'il s'agit de 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): Shape (par défaut), BoundBox. Si l'option 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, seul le cadre de sélection sera mis en surbrillance.
  • VueShape Color (Color): similaire à ViewLine 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 .
  • VueShow In Tree (Bool): s'il s'agit de True, l'objet apparaît dans la Vue par arborescence. Sinon, il est défini comme invisible.
  • 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 ViewSelectable est True.
  • VueVisibility (Bool): s'il s'agit de 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 du clavier.
Propriétés cachées de Données
  • Vue (caché)Diffuse Color (ColorList): il s'agit d'une liste de tuples RVB définissant les couleurs, similaire à ViewShape Color. Valeur par défaut [(0.8, 0.8, 0.8)].
  • Vue (caché)Line Color Array (ColorList): il s'agit d'une liste de tuples RVB définissant les couleurs, similaire à ViewLine Color. Valeur par défaut [(0.09, 0.09, 0.09)].
  • Vue (caché)Line Material (Material): un App Material associé aux bords de cet objet, par défaut vide.
  • Vue (caché)Point Color Array (ColorList): il s'agit d'une liste de tuples RVB définissant les couleurs, similaire à VuePoint Color. Valeur par défaut [(0.09, 0.09, 0.09)].
  • Vue (caché)Point Material (Material): un App Material associé aux sommets de cet objet, par défaut vide.
  • Vue (caché)Proxy (PythonObject): une classe de fournisseur de vue personnalisée associée à cet objet, par défaut vide. Cela n'existe que pour la version Python. Voir Script.
  • Vue (caché)Shape Material (Material): un App Material associé à cet objet, par défaut vide.

Valeur d'écart

View property Deviation.svg

Paramètres de déflexion de l'algorithme BRepMesh_IncrementalMesh; d < déviation linéaire, α < déviation angulaire.


Consultez le fil du forum, Déviation et déviation angulaire.

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"

Ce 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, 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"

Nom

La fonction addObject a deux arguments de chaîne de base.

  • 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_".
    • Name ne peut pas commencer par un nombre; il doit commencer par une lettre ou le trait de soulignement [_a-zA-Z]. Par exemple, "123ABC" est converti en "_23ABC".
    • Name est fixé au moment de la création; il ne peut pas être modifié par la suite.
    • Name doit être unique dans tout le document. Si le même "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 "Name" existe déjà, les nouveaux objets seront appelés "Name001", "Name002", "Name003" etc.

Étiquette

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

  • Lors de la création de l'objet, Label est identique à Name.
  • Cependant, contrairement à Name, Label peut accepter n'importe quelle chaîne UTF8, y compris les accents et les espaces. Étant donné que la vue en arborescence affiche le Label, il est recommandé de remplacer le Label par 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, Edition → 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.