Objet name
Introduction
Tous les objets du programme ont un object name qui les identifie de manière unique dans un document donné.
Ces informations s'appliquent à tous les objets dérivés de App DocumentObject (classe App::DocumentObject
), qui comprend essentiellement tous les objets qu'il est possible de créer dans un document.
Les Names
Il existe différentes propriétés pour les noms:
- Le
Name
ne peut contenir que des caractères alphanumériques simples et le trait de soulignement,[_0-9a-zA-Z]
. - Le
Name
ne peut pas commencer par un nombre. Il doit commencer par une lettre ou le trait de soulignement,[_a-zA-Z]
. - Le
Name
est attribué au moment de la création de l'objet ensuite, il n'est plus modifiable. L'objet ne peut jamais être renommé. - Le
Name
doit être unique dans tout le document. Peu importe si deux objets sont de types complètement différents, par exemple, l'un est un PartDesign Cavité et l'autre est un Arch Mur. Ils doivent avoir des noms différents. - Lors de la création d'un objet du même type, normalement le nom est augmenté d'un numéro séquentiel par exemple
Box
,Box001
,Box002
etc.... Cela permet d'éviter la collusion des noms.. - Une fois l'objet supprimé, son
Name
devient disponible pour être utilisé par un objet nouvellement créé. Cela signifie que siBox
,Box001
etBox002
existent et que nous supprimons le premier élément, la boîte suivante créée avec Part Cube ne sera pasBox003
, ce sera à nouveauBox
, cette chaîne étant disponible pour être réutilisée. Notez qu'il n'est pas possible de renommerBox001
ouBox002
enBox
car leurs noms sont fixes.
En résumé, Name
agit essentiellement comme un identifiant unique (UID) pour un objet. Puisqu'un Name
unique est très restrictif, tous les objets ont également une propriété Label
qui permet de "renommer" l'objet en quelque chose de plus descriptif. Le Name
interne reste en fait fixe, mais le Label
modifiable par l'utilisateur peut être utilisé dans la plupart des situations où le Name
serait utilisé. Dans l'utilisation courante dans le programme et la documentation, "renommer" signifie changer le Label
et non le Name
réel de l'objet.
Les Labels
Il existe différentes propriétés pour les étiquettes:
- Le
Label
peut accepter n'importe quelle chaîne UTF8, y compris les accents et les espaces. - La vue en arborescence affiche en fait le
Label
de l'objet et pas leName
. Par conséquent, chaque fois qu'un nouvel objet est créé, il est recommandé de remplacerLabel
par une chaîne plus descriptive. Pour renommer l'objet, sélectionnez-le dans l'arborescence et appuyez sur F2 (ou plutôt Return sur macOS), ou ouvrez le menu contextuel (clic droit) et choisissez Rename. - Même après qu'un objet a été renommé (ré-étiqueté), le
Name
interne sera toujours déclaré à de nombreux endroits, par exemple, dans la Barre d'état ou dans la Fenêtre de sélection lorsque l'objet est sélectionné. - Étant donné que les fonctions internes du programme font référence aux objets par
Name
, de nombreuses boîtes de dialogue affichent leName
en premier suivi de l'étiquetteLabel
modifiable par l'utilisateur entre parenthèses, par exemple,Box (Extruded piece)
. - Par défaut, le
Label
est unique, tout comme leName
. Cependant, ce comportement peut être modifié dans éditeur de 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
n'est pas unique dans le document et peut en fait être répété. Cependant, la recommandation est de garder leLabel
unique, car c'est probablement ce qui est le plus utile pour identifier différents objets. Lors de l'écriture de fonctions personnalisées qui manipulent des objets, les méthodes doivent utiliser leName
de l'objet plutôt que sonLabel
pour garantir que l'objet correct est utilisé. - Lors de l'utilisation des expressions, par exemple, dans l'Éditeur de propriétés ou dans une feuille de calcul, l'étiquette peut être référencé à l'aide de doubles crochets constitués de symboles "moins que" et "plus que".
<<Custom Label With Spaces>>.Height
<<Label may use UTF8 characters>>.Width
Label2
Il s'agit d'une chaîne simple qui peut contenir du texte arbitraire et peut donc être utilisée pour documenter (décrire plus en détail) l'objet créé.
- Dans la vue en arborescence, modifiez le champ à côté de l'icône, sous "Description", en cliquant dessus et en appuyant sur F2 (ou plutôt Retour sur macOS).
- Vous pouvez également modifier cette propriété en modifiant l'attribut
Label2
à partir de la console Python. - L'attribut DonnéesLabel2 est normalement masqué dans l'éditeur de propriétés mais peut être rendu visible en ouvrant le menu contextuel (clic droit) et en sélectionnant Afficher tout.
Script
Voir aussi : Débuter avec les scripts et Objets créés par script.
Tout objet du logiciel est créé en interne avec la méthode addObject()
du document. La majorité des objets 2D et 3D que l'utilisateur verra dans la vue 3D sont dérivés d'un Part Feature. Dans l'exemple suivant, l'objet créé est une Part Box.
import FreeCAD as App
doc = App.newDocument()
obj = doc.addObject("Part::Box", "Name")
obj.Label = "Custom label"
Name (Nom)
La fonction addObject
a deux arguments de chaîne de base.
- Le premier argument indique le type d'objet, dans ce cas,
"Part::Box"
. - 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 de l'objet, c'est-à-dire"Part__Box"
où les deux symboles invalides, les deux-points::
, sont remplacé par deux traits de soulignement__
.- Le
Nom
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_"
. - Le
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"
. - Le
Name
est fixe au moment de la création; il ne peut pas être modifié par la suite. - Le
Name
doit être unique dans tout le document. Si le même"Nom"
est utilisé, 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"
, {{incode|"Name003"} } etc...
- Le
Label (Etiquette)
Label
est une propriété de l'objet créé et peut être changé en un texte plus significatif.
- Lors de la création de l'objet, le
Label
est le même que leName
. - Cependant, contrairement au
Name
,Label
peut accepter n'importe quelle chaîne UTF8 y compris les accents et les espaces. - Le
Label
peut être modifié à tout moment en affectant simplement la chaîne souhaitée,obj.Label = "New label"
Accéder à un objet par Name ou Label
Tous les objets d'un document sont des attributs de données de l'objet Document correspondant. Le nom de l'attribut correspond à Name
interne de l'objet.
import FreeCAD as App
obj1 = App.ActiveDocument.Box
obj2 = App.ActiveDocument.Box001
obj3 = App.ActiveDocument.Box002
Cela équivaut à utiliser la méthode getObject
de document.
import FreeCAD as App
obj1 = App.ActiveDocument.getObject('Box')
obj2 = App.ActiveDocument.getObject('Box001')
obj3 = App.ActiveDocument.getObject('Box002')
Cependant, il est également possible d'obtenir l'objet par Label
davantage descriptif.
import FreeCAD as App
obj1 = App.ActiveDocument.getObjectsByLabel("Concrete wall")[0]
obj2 = App.ActiveDocument.getObjectsByLabel("Custom parallelepiped")[0]
obj3 = App.ActiveDocument.getObjectsByLabel("Some special name for this cube__002")[0]
Étant donné que Label
n'est en général pas unique, la méthode getObjectsByLabel
renvoie une liste avec tous les objets trouvés avec cette Label
. Cependant, si Label
est unique dans le document, le premier élément de cette liste doit être l'objet souhaité.

- Démarrer avec FreeCAD
- Installation : Téléchargements, Windows, Linux, Mac, Logiciels supplémentaires, Docker, AppImage, Ubuntu Snap
- Bases : À propos de FreeCAD, Interface, Navigation par la souris, Méthodes de sélection, Objet name, Préférences, Ateliers, Structure du document, Propriétés, Contribuer à FreeCAD, Faire un don
- Aide : Tutoriels, Tutoriels vidéo
- Ateliers : Std Base, Arch, Assembly, CAM, Draft, FEM, Inspection, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Surface, TechDraw, Test