Std Créer un lien

From FreeCAD Documentation
Jump to navigation Jump to search
This page is a translated version of the page Std LinkMake and the translation is 100% complete.
Other languages:
Deutsch • ‎English • ‎français • ‎italiano • ‎русский
Arrow-left.svg Page précédente : Std Group.svg Group
Page suivante : Créer un sous-lien Std LinkMakeRelative.svg Arrow-right.svg

Std LinkMake.svg Std Créer un lien

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

Description

Std LinkMake.svg Std LinkMake crée une classe App Link (App::Link), un type d'objet faisant référence ou lié à un autre objet, dans le même document ou dans un autre document. Il est spécialement conçu pour dupliquer efficacement un seul objet plusieurs fois, ce qui permet de créer des assemblages complexes à partir de sous-assemblages plus petits et de plusieurs composants réutilisables tels que des vis, des écrous et des éléments de fixation similaires.

L'objet App Link a été nouvellement introduit dans la v0.19. Auparavant, une simple duplication d'objets pouvait être réalisée avec Draft Clone.svg Draft Clone, mais c'est une solution moins efficace en raison de son implémentation qui crée essentiellement une copie de la Forme interne de l'objet source. D'un autre côté, un lien fait directement référence à la forme d'origine, donc plus efficace en mémoire.

En lui-même, l'objet Link peut se comporter comme un tableau dupliquant son objet de base plusieurs fois. Cela peut être fait en définissant sa propriété DonnéesElement Count sur 1 ou plus. Cet objet "Link Array" peut également être créé avec les différents outils de tableau du Workbench Draft.svg atelier Draft, par exemple Draft OrthoArray.svg Draft Réseau orthogonal, Draft PolarArray.svg Draft Réseau polaire, et Draft CircularArray.svg Draft Réseau circulaire.

Lorsqu'ils sont utilisés avec l'Workbench PartDesign.svg atelier PartDesign, les liens sont destinés à être utilisés avec PartDesign Body.svg PartDesign Corps. Il est donc recommandé de définir VueDisplay Mode Body sur Tip pour sélectionner les caractéristiques du corps entier et non les fonctions individuelles. Pour créer des tableaux des PartDesign Features internes, utilisez PartDesign LinearPattern.svg PartDesign Répétition linéaire, PartDesign PolarPattern.svg PartDesign Répétition circulaire et PartDesign MultiTransform.svg PartDesign Transformation multiple.

L'outil Std LinkMake.svg Std Créer un lien n'est pas défini par un atelier particulier mais par le système de base. De ce fait il se trouve donc dans Barre d'outils Structure qui est disponible dans tous les ateliers. L'objet Link, utilisé en conjonction avec Std Part.svg Std Part pour regrouper divers objets, constitue la base des ateliers Assembly3 workbench icon.svg Assembly3 et Assembly4 workbench icon.svg Assembly4.

Utilisation

Avec sélection:

  1. Sélectionnez un objet dans la Vue en arborescence ou la vue 3D pour lequel vous souhaitez créer un lien.
  2. Appuyez sur le bouton Std LinkMake.svg Std Créer un lien. L'objet crée a la même icône que l'objet d'origine mais a une flèche superposée indiquant qu'il s'agit d'un lien.

Sans sélection:

  1. Si aucun objet n'est sélectionné, appuyez sur le bouton Std LinkMake.svg Std Créer un lien pour créer un lien vide Link.svg.
  2. Allez dans l'Éditeur de propriétés, puis cliquez sur la propriété DonnéesLinked Object pour ouvrir la Dialogue de sélection des liens pour choisir un objet, puis appuyez sur OK .
  3. Au lieu de choisir un objet entier dans la Vue en arborescence, vous pouvez également choisir des sous-éléments (sommets, arêtes ou faces) d'un seul objet dans la Vue 3D. Dans ce cas, le lien dupliquera uniquement ces sous-éléments et la superposition de flèches sera différente. Cela peut également être fait avec Std LinkMakeRelative.svg Std Créer un sous-lien.

Std Link tree example.png Std Link example.png

(1) Un objet, (2) un lien vide, (3) un lien complet vers le premier objet (avec un matériau de remplacement), et (4) un lien vers seulement quelques sous-éléments de l'objet. Le lien vide n'est pas lié à l'objet réel et n'est donc pas affiché dans la vue 3D.

Utilisation: documents externes

  1. Commencez par un document contenant au moins un objet qui sera la source du lien.
  2. Ouvrez un nouveau document ou un document existant. Pour une manipulation plus facile, utilisez Std TreeMultiDocument.svg Std Arborescence plusieurs documents pour afficher les deux documents dans la Vue en arborescence. Avant de continuer, sauvegarder les deux documents. Le lien ne pourra pas trouver sa source et sa cible à moins que les deux documents ne soient enregistrés sur le disque.
  3. Dans le premier document, sélectionnez l'objet que vous souhaitez lier, puis changez d'onglet dans Zone de vue principale pour passer au deuxième document.
  4. Appuyez sur Std LinkMake.svg Std Créer un lien. L'objet produit a la même icône que l'objet d'origine mais a une flèche superposée indique qu'il s'agit d'un lien provenant d'un document externe.

Remarques:

  • Lors de l'enregistrement du document avec le lien, il sera demandé également de sauvegarder le document source qui contient l'objet d'origine.
  • Pour inclure l'objet d'origine dans le document avec le lien, utilisez Std LinkImport.svg Std Importer des liens ou Std LinkImportAll.svg Std Importer tous les liens.
  • Std LinkMake.svg Std Créer un lien peut être utilisé sur un objet Link existant afin de créer un lien vers un lien qui résout finalement l'objet original dans le document source. Cela peut être réalisé avec Std LinkMakeRelative.svg Std Créer un sous-lien pour ne sélectionner que certains sous-éléments également.

Std Link tree documents example.png Std Link documents example.png

(1, 2) Deux objets d'un document source liés à un document cible, (3) un lien vers le deuxième lien (avec un matériau de remplacement) et (4) un lien vers les sous-éléments du deuxième lien.

Glisser-déposer

Au lieu de changer d'onglet de document, vous pouvez créer des liens en effectuant une opération de glisser-déposer dans la Vue en arborescence: sélectionnez l'objet source dans le premier document, faites-le glisser, puis déposez-le dans le nom du second document tout en maintenant la touche Alt du clavier.

Le glisser-déposer entraîne différentes actions en fonction de la touche de modification enfoncée.

  • Sans touche de modification, il déplace simplement l'objet d'un document à l'autre; une flèche inclinée s'affiche dans le curseur.
  • Maintenir la touche Ctrl copie l'objet; un signe plus est affiché dans le curseur.
  • Maintenir la touche Alt crée un lien; une paire de maillons de chaîne est affichée dans le curseur.

Pour les modificateurs Ctrl et Alt, le glisser-déposer peut également être effectué avec un seul document. Autrement dit, faire glisser un objet et le déposer dans le même nom de document peut être utilisé pour créer plusieurs copies ou plusieurs liens vers celui-ci.

Groupes

Std LinkMake.svg Std Créer un lien peut être utilisé avec des objets Std Part.svg Std Part afin de dupliquer rapidement des groupes d'objets positionnés dans l'espace, c'est-à-dire assemblages.

Std Link tree Std Part example.png

Lien créé à partir d'une Std Part; les objets ne sont pas dupliqués mais ils sont répertoriés sous le conteneur d'origine et sous le conteneur Lien.

Un Std Group.svg Std Groupe ne possède pas de propriété DonnéesPlacement, il ne peut donc pas contrôler la position des objets à l'intérieur de celui-ci. Cependant, lorsque Std LinkMake.svg Std Créer un lien est utilisé avec Std Group.svg Std Groupe, le lien résultant se comporte essentiellement comme un Std Part.svg Std Part et peut également être déplacé dans l'espace.

Std Link tree Std Group example.png Std Link Std Group example.png

Lien créé à partir d'un Std Groupe; les objets ne sont pas dupliqués mais ils sont répertoriés sous le conteneur d'origine et sous le conteneur Lien. Le lien (avec le matériau de remplacement) peut être déplacé dans l'espace, tout comme un Std Part.

Un lien vers un Std Part.svg Std Part gardera la visibilité des objets synchronisée avec la Part d'origine. Donc si vous masquez un objet dans un lien, il sera masqué dans tous les liens et dans l'objet d'origine. D'un autre côté, un lien vers un Std Group.svg Std Groupe permettra un contrôle indépendant des visibilités.

Std Link tree Std Part visibility.png Std Link tree Std Group visibility.png

A gauche: Std Part avec deux objets et deux liens vers la pièce; la visibilité des objets est synchronisée. A droite: Std Group avec deux objets et deux liens vers le groupe. La visibilité des objets est contrôlée indépendamment dans chaque groupe.

Apparence de remplacement

Lorsqu'un lien est créé, par défaut VueOverride Material est false, donc le lien aura la même apparence que l'original DonnéesLinked Object.

Lorsque VueOverride Material est défini sur true, la propriété VueShape Material contrôlera désormais l'apparence du lien.

Quel que soit l'état de VueOverride Material, il est possible de définir individuellement l'apparence des sous-éléments (sommets, arêtes, faces) d'un lien.

  1. Sélectionnez le lien dans la Vue en arborescence. Ouvrez le menu contextuel (clic droit) et choisissez Override colors.
  2. Choisissez maintenant les sous-éléments individuels que vous voulez dans la Vue 3D, appuyez sur Edit et modifiez les propriétés, y compris la transparence.
  3. Pour supprimer les attributs personnalisés, sélectionnez les éléments dans la liste et appuyez sur Remove.
  4. Lorsque vous êtes satisfait du résultat, appuyez sur OK pour fermer la boîte de dialogue.

Remarque: à partir de la v0.19, la coloration des sous-éléments est soumise au Problème de dénomination topologique. Elle doit être effectuée comme dernière étape de modélisation lorsque le modèle n'est plus sensé être modifié.

Std Link override color example.png

(1) Un objet original, (2) un lien avec un matériau de remplacement et (3) un deuxième lien avec des sous-éléments modifiés individuels.

Réseau lien

Voir aussi: Draft Réseau orthogonal.

Lorsqu'un lien est créé, par défaut, son DonnéesElement Count est 0, donc un seul objet Link sera visible dans la Vue en arborescence.

Étant donné que DonnéesShow Element est true par défaut, lorsque DonnéesElement Count est défini sur 1 ou plus, automatiquement plus de liens seront créés sous le premier. Chaque nouveau lien peut être placé à la position souhaitée en modifiant sa propre propriété DonnéesPlacement.

De la même manière, chaque élément du réseau peut avoir sa propre apparence modifiée, soit par les propriétés VueOverride Material et VueShape Material, soit en utilisant le menu Override colors sur l'ensemble du réseau puis en sélectionnant des faces une par une. Ceci est décrit dans Apparence de remplacement.

Std Link tree array example.png Std Link array example.png

(1) Objet d'origine, et (2, 3, 4) un réseau Lien avec trois éléments, chacun dans une position différente. Le premier lien a un matériau de remplacement et des faces transparentes, les deux autres ont des couleurs de face personnalisées.

Une fois que vous êtes satisfait de l'emplacement et des propriétés des éléments Liens dans le réseau, vous pouvez changer DonnéesShow Element en false afin de masquer les liens individuels dans la Vue en arborescence. Cela présente l'avantage de rendre le système plus réactif, en particulier si vous avez de nombreux objets dans le document.

Lors de la création de ce type de réseau de liens, vous devez placer chacun des éléments manuellement. Cependant, si vous souhaitez utiliser des modèles spécifiques pour placer les copies, vous pouvez utiliser les outils de réseau de l'Workbench Draft.svg atelier Draft, comme Draft OrthoArray.svg Draft Réseau orthogonal, Draft PolarArray.svg Draft Réseau polaire et Draft CircularArray.svg Draft Réseau circulaire; ces commandes peuvent créer des copies normales ou des copies de lien selon les options au moment de la création.

Visibilité

Lorsque DonnéesShow Element est true et que des éléments individuels sont répertoriés dans la Vue en arborescence dans un Réseau lien, chaque lien peut être affiché ou masqué par en appuyant sur la barre Espace du clavier.

Une autre façon de masquer les éléments individuels consiste à utiliser le menu Override colors.

  1. Sélectionnez le tableau, ouvrez le menu Override colors (clic droit).
  2. Dans la Vue 3D, choisissez n'importe quel sous-élément à partir de n'importe quel lien du réseau.
  3. Appuyez sur Hide. Une icône représentant un œil Invisible.svg devrait apparaître, indiquant que cet élément a été masqué de la Vue 3D. L'objet s'affichera temporairement lorsque le curseur survolera l'icône Invisible.svg.
  4. Vous pouvez cliquer sur OK pour confirmer l'opération et fermer la boîte de dialogue. Le lien restera caché même s'il est affiché comme visible dans la Vue en arborescence.

Std Link array visibility example.png

Boîte de dialogue des couleurs des éléments disponibles lors de l'ouverture du menu contextuel d'un objet Lien dans l'arborescence.

Si vous souhaitez restaurer la visibilité de cet élément du réseau, entrez à nouveau dans la boîte de dialogue, choisissez l'icône en forme d'œil, puis cliquez sur Remove pour supprimer l'état caché et cliquez sur OK pour confirmer et fermez la boîte de dialogue. L'élément sera à nouveau visible dans Vue 3D.

Lorsque le lien est pour un Std Part.svg Std Part ou un Std Group.svg Std Groupe, le menu Override colors fonctionne de la même manière qu'avec les réseaux. Il permet de contrôler la couleur de la face, la couleur de l'objet entier et la visibilité des objets du groupe.

Std Link Std Part visibility example.png Std Link Std Part visibility example 3D.png

Un Std Part contenant trois objets et un lien vers cette pièce; dans le lien, (1) le premier objet est rendu invisible, (2) le deuxième objet a des sous-éléments avec des couleurs différentes, (3) le troisième objet entier a une couleur et un niveau de transparence différents.

Propriétés

Un App Link (classe App::Link) est dérivé de App DocumentObject (classe App::DocumentObject). Il a donc les propriétés de base de ce dernier comme DonnéesLabel et DonnéesLabel2.

Voici les propriétés spécifiques disponibles dans l'Éditeur de propriétés. Les propriétés masquées peuvent être affichées en utilisant la commande Afficher tout dans le menu contextuel de l'Éditeur de propriétés.

Données

Link

  • DonnéesLinked Object (XLink): il indique l'objet source de App Link; il peut s'agir d'un objet entier ou d'un sous-élément de celui-ci (sommet, arête ou face).
  • DonnéesLink Transform (Bool): la valeur par défaut est false, auquel cas le lien remplacera le propre emplacement de DonnéesLinked Object. S'il est défini sur true, le lien sera placé à la même position que DonnéesLinked Object, et son placement sera relatif à l'emplacement de DonnéesLinked Object . Ceci peut également être réalisé avec Std LinkMakeRelative.svg Std Créer un sous-lien.
  • DonnéesPlacement (Placement): le placement du lien en coordonnées absolues.
  • Données (caché)Link Placement (Placement): il s'agit d'un décalage appliqué au-dessus du DonnéesPlacement du DonnéesLinked Object. Cette propriété est normalement masquée mais apparaît si DonnéesLink Transform est défini sur true; dans ce cas, DonnéesPlacement devient désormais masqué.
  • DonnéesShow Element (Bool): la valeur par défaut est true, auquel cas la Vue en arborescence affichera les copies de lien individuelles, tant que DonnéesElement Count est 1 ou plus grand.
  • DonnéesElement Count (IntegerConstraint): la valeur par défaut est 0. S'il est 1 ou plus grand, le App Link se comportera comme un réseau et dupliquera le même DonnéesLinked Object plusieurs fois. Si DonnéesShow Elements est true, chaque élément du tableau sera affiché dans la Vue en arborescence et chacun pourra avoir son propre DonnéesPlacement modifié. Chaque copie de lien aura un nom basé sur le nom (Name) du lien, augmenté de _iN, où N est un nombre commençant par 0. Par exemple, avec un seul Link, les copies seront nommées Link_i0, Link_i1, Link_i2, etc.
  • DonnéesLink Execute (String): nom de la fonction d'exécution qui s'exécutera pour cet objet Link particulier. La valeur par défaut est 'appLinkExecute'. Réglez-le sur 'None' pour le désactiver.
  • Données (caché)Colored Elements (LinkSubHidden): liste des éléments Link dont la couleur a été remplacée.
  • DonnéesScale (Float): la valeur par défaut est 1.0. C'est un facteur de mise à l'échelle uniforme dans chaque direction X, Y et Z. Par exemple, un cube de 2 mm x 2 mm x 2 mm, qui est mis à l'échelle par 2.0, donnera une forme aux dimensions 4 mm x 4 mm x 4 mm.
  • Données (caché)Scale Vector (Vector): le facteur d'échelle pour chaque composant (X, Y, Z) pour tous les éléments Link lorsque DonnéesElement Count est 1 ou plus. Si DonnéesScale est différent de 1.0, cette même valeur sera utilisée dans les trois composants.
  • DonnéesScale List (VectorList): le facteur d'échelle pour chaque élément Link.
  • Données (caché)Visibility List (BoolList): (lecture seule) l'état de visibilité de chaque élément Link, soit true ou false.
  • Données (caché)Placement List (PlacementList): (lecture seule) l'emplacement de chaque élément Link.
  • Données (caché)Element List (LinkList): la liste des éléments Link.
  • Données (caché)_LinkTouched (Bool):
  • Données (caché)_ChildCache (LinkList):

Base

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

L'objet App Link affichera en plus les propriétés de DataLinked Object d'origine, ainsi l'Éditeur de propriétés peut avoir des groupes de propriétés comme Attachment, Box, Draft, etc.

Vues

Link

  • VueDraw Style (Enumeration): il vaut par défaut None; il peut s'agir de Solid, Dashed, Dotted, Dashdot; définit le style des arêtes dans la Vue 3D.
  • VueLine Width (FloatConstraint): un flotteur qui détermine la largeur en pixels des bords dans la Vue 3D. La valeur par défaut est 2.0.
  • VueOverride Material (Bool): la valeur par défaut est false; s'il est défini sur true, il remplacera le matériau de DataLinked Object et affichera les couleurs définies dans VueShape Material.
  • VuePoint Size (FloatConstraint): similaire à VueLine Width, définit la taille des sommets.
  • 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.
  • VueShape Material (Material): cette propriété comprend des sous-propriétés qui décrivent l'apparence de l'objet.
    • VueDiffuse Color, la valeur par défaut est (0.4, 1.0, 1.0), qui s'affiche sous la forme [102, 255, 255] sur la base 255, light blue ..
    • VueAmbient Color, la valeur par défaut est (0.2, 0.2, 0.2), qui s'affiche sous la forme [51, 51, 51] sur la base 255, dark gray .
    • VueSpecular Color, la valeur par défaut est (0.0, 0.0, 0.0), qui s'affiche sous la forme [0, 0, 0] sur la base 255, black .
    • VueEmissive Color, la valeur par défaut est (0.0, 0.0, 0.0), qui s'affiche sous la forme [0, 0, 0] sur la base 255, black .
    • VueShininess, la valeur par défaut est 0.2
    • VueTransparency, la valeur par défaut est 0.0.

Base

  • Vue (caché)Child View Provider (PersistentObject):
  • Vue (caché)Material List (MaterialList): (lecture seulement) si des matériaux individuels ont été ajoutés, ils seront listés ici.
  • Vue (caché)Override Color List (ColorList): (lecture seulement) si les faces ou arêtes individuelles du lien ont été remplacées, elles seront listées ici.
  • Vue (caché)Override Material List (BoolList): (lecture seulement) si les différents matériaux du lien ont été remplacés, ils seront listés ici.

Options d'affichage

  • VueDisplay Mode (Enumeration): 'Link' ou 'ChildView'.
  • VueShow In Tree (Bool): voir les informations dans App FeaturePython.
  • VueVisibility (Bool): voir les informations dans App FeaturePython.

Selection

Il montrera en outre les propriétés de vue de l'original DataLinked Object.

Héritage

Un App Link est formellement une instance de la classe App::Link, dont le parent est le App DocumentObject (classe App::DocumentObject). C'est un objet de très bas niveau, qui peut être utilisé avec la plupart des autres objets de document.

FreeCAD core objects.svg

Schéma simplifié des relations entre les objets principaux du programme. L'objet App::Link est un composant central du système, il ne dépend d'aucun atelier, mais il peut être utilisé avec la plupart des objets créés dans tous les ateliers.

Script

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

Voir Part Feature pour plus d'informations.

Un lien d'application est créé avec la méthode addObject() du document. Il peut définir son DonnéesLinked Object en remplaçant son attribut LinkedObject, ou en utilisant sa méthode setLink.

import FreeCAD as App

doc = App.newDocument()
bod1 = App.ActiveDocument.addObject("Part::Box", "Box")
bod2 = App.ActiveDocument.addObject("Part::Cylinder", "Cylinder")
bod1.Placement.Base = App.Vector(10, 0, 0)
bod2.Placement.Base = App.Vector(0, 10, 0)

obj1 = App.ActiveDocument.addObject("App::Link", "Link")
obj2 = App.ActiveDocument.addObject("App::Link", "Link")

obj1.LinkedObject = bod1
obj2.setLink(bod2)
obj1.Placement.Base = App.Vector(-10, -10, 0)
obj2.Placement.Base = App.Vector(10, -10, 0)
obj1.ViewObject.OverrideMaterial = True
App.ActiveDocument.recompute()

Le App::Link 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-classification Python, vous devez créer l'objet App::LinkPython.

import FreeCAD as App

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

Lecture complémentaire

L'objet App Link a été introduit après 2 ans de développement et de prototypage. Ce composant a été pensé et développé presque seul par l'utilisateur realthunder. Les motivations et les implémentations de conception derrière ce projet sont décrites dans sa page GitHub, Link. Afin d'accomplir cette fonctionnalité, plusieurs modifications fondamentales de FreeCAD ont été apportées; ceux-ci ont également été largement documentés dans Core-Changes.

Le projet App Link a démarré après que la refonte de l'atelier PartDesign s'est terminée dans la v0.17. L'histoire d'App Link peut être retracée à certains fils de discussion essentiels du forum:

Enfin, le pull request et le merge ont eu lieu:


Arrow-left.svg Page précédente : Std Group.svg Group
Page suivante : Créer un sous-lien Std LinkMakeRelative.svg Arrow-right.svg