Std Part/fr: Difference between revisions

From FreeCAD Documentation
No edit summary
No edit summary
Line 45: Line 45:
== Remarques ==
== Remarques ==


* Un objet ne peut appartenir qu'à une seule pièce.
<div class="mw-translate-fuzzy">
* Les opérations 3D comme les [[Part_Boolean/fr|Part Opérationd booléenned]] ne peuvent pas être appliquées aux pièces. Par exemple, vous ne pouvez pas sélectionner deux pièces et effectuer un [[Part_Fuse/fr|Part Union]] ou un [[Part_Cut/fr|Part Soustraction]].
* Depuis la v0.19, un objet donné ne peut appartenir qu'à un seul Part.
* Double-cliquez sur Part dans la [[tree_view/fr|vue en arborescence]] ou ouvrez le menu contextuel (clic droit) et sélectionnez {{MenuCommand|Toggle active part}} pour activer ou désactiver Part. Si un autre Part est actif, il sera désactivé. Voir [[Std_Part/fr#Statut_actif|status actif]] pour plus d'informations.
</div>


==Propriétés==
==Propriétés==

Revision as of 20:43, 23 February 2022

Std Part

Emplacement du menu
Aucun
Ateliers
Tous
Raccourci par défaut
Aucun
Introduit dans la version
0.17
Voir aussi
Std Groupe, PartDesign Corps

Description

Std Part (appelé en interne App Part) est un conteneur à usage général qui conserve ensemble un groupe d'objets afin qu'ils puissent être déplacés ensemble en tant qu'unité dans la vue 3D.

L'élément Std Part a été développé pour être le bloc de construction de base pour créer des assemblages mécaniques. En particulier, il est conçu pour organiser les objets qui ont une Part TopoShape, comme Part Primitives, PartDesign Corps, et d'autres Part Features. Std Part fournit un objet Origin avec des axes X, Y et Z locaux et des plans standard, qui peuvent être utilisés comme référence pour positionner les objets contenus. De plus, des Std Parts peuvent être imbriquées dans d'autres Std Parts pour créer un grand assemblage à partir de sous-assemblages plus petits.

Bien qu'elle soit principalement destinée aux corps solides, Std Part peut être utilisée pour gérer tout objet possédant une propriété Positionnement, elle peut donc également contenir Mesh Features, Esquisses et d'autres objets dérivés de la classe App GeoFeature.

Ne pas confondre PartDesign Corps avec Std Part. Le premier est un objet spécifique utilisé dans l' Atelier PartDesign, destiné à modéliser un solide contigu unique au moyen de PartDesign Features. En revanche, Std Part n'est pas utilisée pour la modélisation, juste pour arranger différents objets dans l'espace, avec l'intention de créer des assemblages.

L'outil Std Part n'est pas défini par un atelier particulier mais par le système de base. Il se trouve donc dans la structure toolbar qui est disponible dans tous les ateliers. Pour grouper des objets arbitrairement sans tenir compte de leur position, utilisez Std Groupe. Cet objet n'affecte pas les placements des éléments qu'il contient, c'est essentiellement juste un dossier qui sert à garder la Vue en arborescence organisée.

À gauche : éléments à l'intérieur d'une Std Part dans la Vue en arborescence. À droite : les objets positionnés dans l'espace, référés à l'origine de Std Part.

Utilisation

  1. Appuyez sur le bouton Créer une pièce.
  2. Une pièce vide est créée et devient automatiquement active.
  3. Pour ajouter des objets à la pièce, sélectionnez-les dans la Vue en arborescence, puis faites-les glisser et déposez-les sur la pièce.
  4. Pour retirer des objets de la pièce, faites-les glisser hors de la pièce et déposez-les sur l'étiquette du document en haut de la Vue en arborescence.
  5. Vous pouvez également ajouter et supprimer des objets en modifiant la propriété DonnéesGroup de la pièce.

Remarques

Propriétés

Std Part est appelée en interne App Part (classe App::Part) et est dérivé d'une App GeoFeature (classe App::GeoFeature). Il partage donc la plupart des propriétés de ce dernier.

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éesType (String) : une description de cet objet. Par défaut, il s'agit d'une chaîne vide "".
  • DonnéesId (String) : une identification ou un numéro de pièce pour cet objet. Par défaut, il s'agit d'une chaîne vide "".
  • DonnéesLicense (String) : un champ pour spécifier la licence pour cet objet. Par défaut, il s'agit d'une chaîne vide "".
  • DonnéesLicenseURL (String) : un champ pour spécifier l'adresse Web de la licence ou du contrat pour cet objet. Par défaut, il s'agit d'une chaîne vide "".
  • DonnéesColor (Color) : un tuple de quatre valeurs RGBA à virgule flottante (r,g,b,a) pour définir la couleur de l'objet; par défaut, c'est (1.0, 1.0, 1.0, 1.0) qui est affiché comme [255,255,255] sur la base 255, white color.
  • DonnéesPlacement (Placement) : la position de l'objet dans la Vue 3D. Le placement est défini par un point Base (vecteur) et une Rotation (axe et angle). Voir Positionnement.
    • DonnéesAngle : l'angle de rotation autour de DonnéesAxis. Par défaut, il s'agit de (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, c'est une chaîne UTF8 arbitraire.
  • DonnéesGroup (LinkList) : une liste d'objets référencés. Par défaut, il est vide [].

Vue

Display Options

  • VueDisplay Mode (Enumeration): Group.
  • VueShow In Tree (Bool): if it is true, the object appears in the Tree view. Otherwise, it is set as invisible.
  • VueVisibility (Bool): if it is true, the object appears in the 3D view; otherwise it is invisible. By default this property can be toggled on and off by pressing the Space bar in the keyboard.

Selection

  • VueOn Top When Selected (Enumeration): Disabled (default), Enabled, Object, Element.
  • VueSelection Style (Enumeration): Shape (default), BoundBox. If the option is Shape, the entire shape (vertices, edges, and faces) will be highlighted in the 3D view; if it is BoundBox only the bounding box will be highlighted.

Explications détaillées

Statut actif

Un document ouvert peut contenir plusieurs Part. Un Part actif sera affiché dans la vue en arborescence avec la couleur d'arrière-plan spécifiée par la valeur Conteneur actif dans éditeur de préférences (par défaut, clair bleu). Une partie active sera également affichée en gras.

Pour activer ou désactiver un Part :

  • Double-cliquez dessus dans l'arborescence ou
  • Ouvrez le menu contextuel (clic droit) et sélectionnez Toggle active part.

Document avec deux Std Parts, dont le second est actif.

Origine

L'Origine se compose des trois axes standard (X, Y, Z) et de trois plans standard (XY, XZ et YZ). Les Esquisses et d'autres objets peuvent être attachés à ces éléments lors de leur création.

À gauche : Part Origin dans la vue en arborescence et telle qu'elle apparaît affichée dans la vue 3D. À droite : représentation des éléments Origin dans la Vue 3D.

Remarque : L'origine est un App Origin objet (de classe App::Origin) tandis que les axes et les plans sont respectivement des objets de type App::Line et App::Plane. Chacun de ces éléments peut être masqué et non masqué individuellement avec la barre Espace. Cela est utile pour choisir la référence correcte lors de la création d'autres objets.

Remarque 2 : tous les éléments à l'intérieur du Part sont référencés à l'origine du Part, ce qui signifie que le Part peut être déplacé et tourné en référence au système de coordonnées global sans affecter le placement des éléments à l'intérieur.

Gestion de la visibilité

La visibilité d'un Part remplace la visibilité de tout objet qu'elle contient. Si Part est masqué, les objets qu'il contient seront également masqués, même si leur propriété individuelle VueVisibility est définie sur true. Si Part est visible, la VueVisibility de chaque objet détermine si l'objet est affiché ou non.

La visibilité de Std Part détermine si les objets regroupés sous lui sont affichés dans la vue 3D ou non. À gauche : Part est masqué, donc aucun des objets ne sera affiché dans la vue 3D. À droite : Part est visible, donc chaque objet contrôle sa propre visibilité.

Script

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

Std Part (App Part) est créé avec la méthode addObject() du document. Une fois que Part existe, d'autres objets peuvent y être ajoutés avec les méthodes addObject() ou addObjects() de Part.

import FreeCAD as App

doc = App.newDocument()
part = App.ActiveDocument.addObject("App::Part", "Part")

obj1 = App.ActiveDocument.addObject("PartDesign::Body", "Body")
obj2 = App.ActiveDocument.addObject("Part::Box", "Box")

part.addObjects([obj1, obj2])
App.ActiveDocument.recompute()

Vous ne pouvez pas créer un App::Part scripté. Cependant, vous pouvez ajouter un comportement App::Part à un objet Part::FeaturePython scripté en utilisant le code suivant :

class MyGroup(object):
    def __init__(self, obj=None):
        self.Object = obj
        if obj:
            self.attach(obj)

    def __getstate__(self):
        return

    def __setstate__(self, _state):
        return

    def attach(self, obj):
        obj.addExtension("App::OriginGroupExtensionPython")
        obj.Origin = FreeCAD.ActiveDocument.addObject("App::Origin", "Origin")

    def onDocumentRestored(self, obj):
        self.Object = obj

class ViewProviderMyGroup(object):
    def __init__(self, vobj=None):
        if vobj:
            vobj.Proxy = self
            self.attach(vobj)
        else:
            self.ViewObject = None

    def attach(self, vobj):
        vobj.addExtension("Gui::ViewProviderOriginGroupExtensionPython")
        self.ViewObject = vobj

    def __getstate__(self):
        return None

    def __setstate__(self, _state):
        return None

App.ActiveDocument.addObject("Part::FeaturePython",
                             "Group",
                             group.MyGroup(),
                             group.ViewProviderMyGroup(),
                             True)