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 Créer un lien crée une classe 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é introduit dans la v0.19. Auparavant, une simple duplication d'objets pouvait être réalisée avec Draft Cloner, 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. Au lieu de cela, un lien fait directement référence à la forme d'origine, ce qui permet d'économiser de la mémoire.
En lui-même, l'objet Link peut se comporter comme un réseau 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 réseau de l' atelier Draft, par exemple
Draft Réseau orthogonal,
Draft Réseau polaire et
Draft Réseau circulaire.
Lorsqu'ils sont utilisés avec l' atelier PartDesign, les liens sont destinés à être utilisés avec
PartDesign Corps. Il est recommandé de mettre VueDisplay Mode Body sur
Tip pour sélectionner les fonctions du corps entier et non chacun des fonctions. Pour créer des réseaux de PartDesign Fonctions internes, utilisez PartDesign Répétition linéaire,
PartDesign Répétition circulaire et
PartDesign Transformation multiple.
L'outil Std Créer un lien n'est pas défini par un atelier particulier, mais par le système de base, il se trouve donc dans la barre d'outils de structure, disponible dans tous les ateliers.
Utilisation
Avec sélection :
- Sélectionnez un objet dans l'arborescence ou la vue 3D pour lequel vous souhaitez créer un lien.
- Appuyez sur le bouton
Std Créer un lien. L'objet créé 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 :
- Si aucun objet n'est sélectionné, appuyez sur le bouton
Std Créer un lien pour créer un lien vide.
- Allez dans l'éditeur de propriétés, puis cliquez sur la propriété DonnéesLinked Object pour ouvrir la fenêtre de dialogue de sélection des liens pour choisir un objet, puis appuyez sur OK .
- Au lieu de choisir un objet entier dans l'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 Créer un sous-lien.
(1) Un objet
(2) Un lien vide
(3) Un lien complet vers le premier objet (avec un matériau rajouté)
(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
- Commencez par un document contenant au moins un objet qui sera la source du lien.
- Ouvrez un nouveau document ou un document existant. Pour une manipulation plus facile, utilisez
Std Arborescence Tous les documents pour afficher les deux documents dans l'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.
- Dans le premier document, sélectionnez l'objet que vous souhaitez lier, puis changez d'onglet dans la zone de vue principale pour passer au deuxième document.
- Appuyez sur
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 Importer des liens ou
Std Importer tous les liens.
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 Créer un sous-lien pour ne sélectionner que certains sous-éléments également.
(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 rajouté)
(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 l'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.
Copier en cas de modification
La fonction Copier en cas de modification permet à un lien de commencer comme une référence légère, puis de se séparer en un objet indépendant lorsque des modifications spécifiques sont apportées. Cela suit la philosophie « copy-on-write » (copie à l'écriture), garantissant que les variantes ne consomment de la mémoire et de l'espace disque que lorsqu'elles divergent réellement de l'original (voir l'annonce sur le forum FreeCAD).
Sélection des propriétés
Pour que ce mécanisme fonctionne, certaines propriétés de l'objet source doivent être marquées comme pouvant être copiées.
- Dans l'éditeur de propriétés, cliquez avec le bouton droit sur une propriété et sélectionnez Status → CopyOnChange.
- Lorsque ce statut est actif, tout lien pointant vers cet objet surveillera les modifications apportées à cette propriété. Le comportement exact est défini par la propriété DonnéesLinkCopyOnChange du lien.
Processus de travail
Le comportement du lien est contrôlé par sa propriété DonnéesLinkCopyOnChange :
- Disabled (par défaut) : le lien agit comme un simple proxy. Toute modification apportée à une propriété (y compris celles marquées comme « CopyOnChange ») est transmise à l'objet source d'origine. Il reste une référence légère. À ce stade, cette relation est toujours bidirectionnelle : la modification d'une propriété sur l'objet source modifie également celle-ci sur le lien.
- Enabled : il s'agit d'un état de surveillance latent.
- Tant que seule la source est modifiée, le lien suivra ces modifications et restera synchronisé.
- Dès qu'une propriété « CopyOnChange » est modifiée directement sur le lien, celui-ci déclenche une copie profonde unique, incluant l'objet source et ses dépendances. Il crée une version interne et indépendante de l'objet source avec les nouvelles valeurs. La connexion à la source a été rompue et le lien n'est plus une référence légère. Le statut du lien passe automatiquement à Owned.
- Owned : cela indique que le lien a « pris possession » de ses données. Il possède désormais son propre modèle et sa propre géométrie indépendants. Cet état est généralement défini par le logiciel une fois que la copie profonde a eu lieu, mais :
- Manual trigger : l'utilisateur peut passer manuellement un lien de
EnabledàOwnedpour forcer une copie profonde immédiate du modèle original en fonction de sa configuration actuelle.
- Manual trigger : l'utilisateur peut passer manuellement un lien de
- Tracking : mode de synchronisation connecté dans lequel le lien possède sa propre copie, mais tente de synchroniser les propriétés non modifiées avec les modifications futures apportées à l'original.
Ces instances de liens forquées sont parfois appelées Variant Links. Elles peuvent éventuellement être associées à une feuille de calcul pour utiliser des tables de configuration.
Le statut de la propriété DonnéesLinkCopyOnChange peut être modifié dans l'interface utilisateur de deux manières différentes :
- Sélectionnez l'objet Link à modifier, soit dans l'arborescence, soit dans la vue 3D, puis utilisez l'éditeur de propriétés pour modifier sa valeur.
- Cliquez avec le bouton droit sur l'objet Link dans l'arborescence et, dans le menu contextuel, accédez à l'entrée de sous-menu Copier en cas de modification. Vous pouvez alors basculer entre (à ce stade)
EnabledetTracking.
Configurer l'objet configurable
L'utilisateur peut contrôler précisément quels objets et dépendances copier lors de la création de la variante :
- Cliquez avec le bouton droit sur le lien avec DonnéesLinkCopyOnChange défini sur
Enabled. - Sélectionnez l'entrée du menu contextuel Configurer l'objet configurable.
- Une boîte de dialogue s'affiche pour vous permettre de choisir l'objet à copier, afin d'exclure éventuellement les objets dépendants ou non pertinents de la copie.
Masquer des propriétés
Si un lien doit avoir une valeur différente de celle de sa source pour une propriété spécifique (même si « CopyOnChange » n'est pas utilisé), un ajout manuel peut être effectué, la propriété d'origine étant alors masquée par un remplacement.
Si un lien possède une propriété dont le nom et le type sont exactement identiques à ceux de son objet source, le lien privilégiera sa propre valeur locale et cessera de lire à partir de la source. (voir discussion sur le forum FreeCAD).
Comment créer un ajout dans l'interface utilisateur :
- Sélectionnez le lien dans l'arborescence.
- Cliquez avec le bouton droit n'importe où dans l'éditeur de propriétés et sélectionnez Ajouter une propriété.
- Choisissez Type et entrez le nom correspondant à la propriété que vous souhaitez remplacer.
- La propriété apparaîtra désormais dans la liste des liens avec sa propre valeur indépendante. Elle n'apparaîtra plus en vert dans l'éditeur de propriétés, afin d'indiquer ce nouvel état.
Avec cette ajout, les liens peuvent toujours se comporter comme des références légères sans déclencher de copie profonde. Cependant, ils peuvent utiliser de manière sélective leurs propres propriétés indépendantes, déconnectées de l'objet source.
Processus de travail prototype
Pour les projets qui nécessitent des liens variants, une structure à deux niveaux est recommandée :
- The inventory (prototypes) : créez un groupe à la racine de votre document qui servira d'inventaire. Placez-y vos pièces de base. Si vous avez besoin d'une variante (par exemple, une vis d'une longueur différente), créez un lien vers la pièce de base, définissez sa DonnéesLinkCopyOnChange sur
Enabled(ouOwned), puis modifiez la longueur. Ce lien est le prototype. - The Instances : utilisez des liens normaux (DonnéesLinkCopyOnChange=
Disabled) qui pointent vers les prototypes pour les placer dans le modèle.
Cela présente les avantages suivants :
- Performance : la plupart des instances restent des références légères à un prototype partagé.
- Maintenance : si la conception fondamentale d'une pièce nécessite des modifications, seul le prototype source d'origine doit être modifié. Toutes les instances du projet seront automatiquement mises à jour.
Groupes
Std Créer un lien peut être utilisé avec des objets
Std Part afin de dupliquer rapidement des groupes d'objets positionnés dans l'espace, c'est-à-dire assemblages.
Lien créé à partir d'un Std Part. Les objets ne sont pas dupliqués mais ils sont répertoriés sous le conteneur d'origine et sous le conteneur Link.
Un Std Groupe standard ne possède pas de propriété DonnéesPlacement, il ne peut donc pas contrôler la position des objets qu'il contient. Cependant, lorsque
Std Créer un lien est utilisé avec
Std Groupe, le lien résultant se comporte essentiellement comme un
Std Part et peut également être déplacé dans l'espace.
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 Link. Le lien (avec un matériau rajouté) peut être déplacé dans l'espace, tout comme un Std Part.
Un lien vers un Std Part gardera la visibilité des objets synchronisée avec le 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 Groupe permettra un contrôle indépendant des visibilités.
À gauche : un Std Part avec deux objets et deux liens vers le Part. La visibilité des objets est synchronisée.
À droite : un Std Groupe avec deux objets et deux liens vers le groupe. La visibilité des objets est contrôlée indépendamment dans chaque groupe.
Contrôler l'apparence
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 l'apparence de chacun des sous-éléments (sommets, arêtes, faces) d'un lien.
- Sélectionnez le lien dans l'arborescence. Ouvrez le menu contextuel (clic droit) et choisissez Remplacer des couleurs.
- Choisissez maintenant chacun des sous-éléments que vous voulez dans la vue 3D, appuyez sur Éditer et modifiez les propriétés, y compris la transparence.
- Pour supprimer les attributs personnalisés, sélectionnez les éléments dans la liste et appuyez sur Supprimer.
- Lorsque vous êtes satisfait du résultat, appuyez sur OK pour fermer la fenêtre de dialogue.
Remarque : à partir de la v0.19, la mise en couleur 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é.
(1) L'objet d'origine
(2) Un lien avec un matériau rajouté
(3) Un deuxième lien avec chacun des sous-éléments modifiés
Réseau de liens
Voir aussi : Draft Réseau orthogonal.
Lorsqu'un lien est créé, par défaut, DonnéesElement Count vaut 0, donc un seul objet Link sera visible dans l'arborescence.
Étant donné que DonnéesShow Element est true par défaut, lorsque DonnéesElement Count vaut 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 Remplacer des couleurs sur l'ensemble du réseau puis en sélectionnant des faces une par une. Ceci est décrit dans Contrôler l'apparence.
(1) Objet d'origine
(2, 3, 4) Un réseau de liens avec trois éléments, chacun dans une position différente. Le premier lien a un matériau rajouté 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 Link dans le réseau, vous pouvez changer DonnéesShow Element par false afin de masquer chaque lien dans l'arborescence. Cela présente l'avantage de rendre le système plus réactif, en particulier si votre document contient de nombreux objets.
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' atelier Draft, comme
Draft Réseau orthogonal,
Draft Réseau polaire et
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 vaut true et que chaque élément est répertorié dans l'arborescence dans un réseau de liens, 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 individuellement consiste à utiliser le menu Remplacer des couleurs.
- Sélectionnez le réseau, ouvrez le menu Remplacer des couleurs (clic droit).
- Dans la vue 3D, choisissez n'importe quel sous-élément à partir de n'importe quel lien du réseau.
- Appuyez sur Caché. Une icône représentant un œil
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
.
- Vous pouvez cliquer sur OK pour confirmer l'opération et fermer la fenêtre de dialogue. Le lien restera caché même s'il est affiché comme visible dans l'arborescence.
Fenêtre de dialogue des couleurs des éléments disponibles lors de l'ouverture du menu contextuel d'un objet Link dans l'arborescence.
Si vous souhaitez restaurer la visibilité de cet élément du réseau, entrez à nouveau dans la fenêtre de dialogue, choisissez l'icône en forme d'œil, puis cliquez sur Supprimer pour supprimer l'état caché et cliquez sur OK pour confirmer et fermez la fenêtre de dialogue. L'élément sera à nouveau visible dans vue 3D.
Lorsque le lien est pour un Std Part ou un
Std Groupe, le menu Remplacer des couleurs 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.
Un Std Part contenant trois objets et un lien vers cette pièce :
(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 les propriétés cachées dans le menu contextuel de l'éditeur de propriétés.
Voir Part Feature pour une explication des propriétés énumérées ci-dessous.
Données
Link
- DonnéesLinked Object (
XLink) : indique l'objet source du 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 Claim Child (
Bool) : revendique l'objet lié en tant qu'enfant. - DonnéesLink Transform (
Bool) : par défautfalse, auquel cas le lien remplace l'emplacement de DonnéesLinked Object. S'il est réglé surtrue, le lien sera placé à la même position que DonnéesLinked Object et son placement sera relatif à celui de DonnéesLinked Object. Ceci peut également être réalisé avecStd Créer un sous-lien.
- Données (Hidden)Link Placement (
Placement) : il s'agit d'un décalage appliqué par-dessus DonnéesPlacement de DonnéesLinked Object. Cette propriété est normalement cachée, mais elle apparaît si DonnéesLink Transform est défini surtrue, dans ce cas, DonnéesPlacement devient caché. - DonnéesPlacement (
Placement) - DonnéesShow Element (
Bool) : par défauttrue, auquel cas l'arborescence affichera chacunes des copies du lien, tant que DonnéesElement Count vaut1ou est plus grand. - DonnéesElement Count (
IntegerConstraint) : nombre d'éléments. Par défaut0. Si il vaut1ou est supérieur, App Link se comportera comme un tableau et dupliquera plusieurs fois le même DonnéesObjet lié. Si DonnéesShow Elements esttrue, chaque élément du tableau sera affiché dans l'arborescence et chacun pourra avoir son propre DonnéesPlacement modifié. Chaque copie de lien aura un nom basé sur le nom du lien, augmenté de_iN, oùNest un nombre commençant par0. Par exemple, avec un seulLink, les copies seront nomméesLink_i0,Link_i1,Link_i2, etc. - DonnéesLink Execute (
String) : nom de la fonction d'exécution qui sera exécutée pour cet objet Link particulier. La valeur par défaut est'appLinkExecute'. Définissez-la à'None'pour la désactiver. - Données (Hidden)Colored Elements (
LinkSubHidden) : liste des éléments Link dont la couleur a été remplacée. - DonnéesLink Copy On Change (
Enumeration) :Disabled: désactive la création d'une copie de l'objet lié, déclenchée par une modification de l'une de ses propriétés définies commeCopyOnChange.Enabled: active une copie profonde de l'objet lié si l'une de ses propriétés marquées commeCopyOnChangeest modifiée. Une fois la copie profonde effectuée, il n'y aura plus de lien entre l'objet original et l'objet copié. Par conséquent, les modifications apportées à l'objet original ne seront pas répercutées dans les copies. Remarque : il s'agit d'un état provisoire, la copie réelle n'aura lieu que lorsque les propriétésCopyOnChangeseront modifiées. Voir l'état deOwned.Owned: indique que l'objet lié a été copié et que la copie appartient au lien. Cet état est défini automatiquement par le lien, et non par l'utilisateur. Le processus est le suivant : si l'état estEnabledet que l'utilisateur modifie les propriétés précédemment définies commeCopyOnChange, l'état passe àOwned. C'est à ce moment-là que le lien effectuera la copie profonde de l'objet lié. Dans cet état, le lien n'essaiera pas de synchroniser les modifications de l'objet lié original avec la copie.Tracking: identique àEnabled, mais la copie sera automatiquement mise à jour en cas de modification de l'objet source d'origine.
- Données (Hidden)Link Copy On Change Source (
XLink) : l'objet source copié en cas de changement. - Données (Hidden)Link Copy On Change Group (
Link) : lié à un objet de groupe interne destiné à contenir les copies en cas de modification. - Données (Hidden)Link Copy On Change Touched (
Bool) : indique que la copie sur l'objet source de la modification a été modifiée. - DonnéesScale (
Float) : par défaut1.0. Il s'agit d'un facteur permettant une mise à l'échelle uniforme dans chaque directionX,YetZ. Par exemple, un cube de2 mmx2 mmx2 mm, mis à l'échelle par2.0, donnera une forme de dimensions4 mmx4 mmx4 mm. - Données (Hidden)Scale Vector (
Vector) : le facteur d'échelle de chaque composant(X, Y, Z)pour tous les éléments Link lorsque DonnéesElement Count est1ou plus. Si DonnéesScale est différent de1.0, cette même valeur sera utilisée dans les trois composantes. - DonnéesScale List (
VectorList) : le facteur d'échelle pour chaque élément Link. - DonnéesVisibility List (
BoolList) : l'état de visibilité de chaque élément Link. - DonnéesPlacement List (
PlacementList) : l'emplacement de chaque élément Link. - Données (Hidden)Element List (
LinkList) : la liste des éléments Link. - Données (Hidden)_ Link Touched (
Bool) : à définir. - Données (Hidden, ReadOnly)_ Child Cache (
LinkList) : à définir. - Données (Hidden)_ Link Owner (
Integer) : à définir.
Base
- Données (Hidden)Proxy (
PythonObject)
L'objet App Link affichera en plus les propriétés de l'objet lié DonnéesLinked 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) - VueLine Width (
FloatConstraint) - VueOverride Material (
Bool) : par défautfalse. Sitrue, cela remplacera le matériau de DonnéesLinked Object et affichera les couleurs définies dans VueShape Material. - VuePoint Size (
FloatConstraint)
- VueShape Material (
Material)
Base
- Vue (Hidden)Child View Provider (
PersistentObject) : à définir - Vue (Hidden, ReadOnly)Material List (
MaterialList) : si des matériaux ont été ajoutés, ils seront listés ici. - Vue (Hidden, ReadOnly)Override Color List (
ColorList) : si chacune des faces ou arêtes du lien ont été remplacées, elles seront listées ici. - Vue (Hidden, ReadOnly)Override Material List (
BoolList) : si des 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) - VueVisibility (
Bool)
Selection
- VueOn Top When Selected (
Enumeration) - VueSelection Style (
Enumeration)
Il montrera en outre les propriétés de vue de l'original DonnéesLinked Object.
Héritage
Un App Link est formellement une instance de la classe App::Link, dont le parent est l'objet de base App DocumentObject (classe App::DocumentObject). Il s'agit d'un objet de très bas niveau, qui peut être utilisé avec la plupart des autres objets des documents.
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"
Exemple masquage de propriétés. La fonction appLinkExecute est exécutée lorsque le lien est recalculé.
def appLinkExecute(self, obj, linkObj, index, linkElement)
properties = linkObj.PropertiesList
# This is assuming all these properties you want to add exists in obj
# You don't need to hide the original property. The action of adding a property of the same name will hide the linked property.
for prop in ("XYZ", "MNO", "PQR"):
if prop not in properties:
linkObj.addProperty(obj.getTypeIdOfProperty(prop), prop, obj.getGroupOfProperty(prop))
# now do what you like...
Lecture complémentaire
Si vous souhaitez passer outre les détails historiques, rendez-vous sur le site introduction aux liens orientée vers l'utilisateur.
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 :
- Pourquoi un objet ne peut être que dans un seul App::Part? (mars 2017)
- Présentation de App::Link/XLink (mars 2017)
- Liens (mai 2017)
- Implémentation de Realthunder Link: discussion sur l'architecture (juin 2017)
- PR # 876: Lien, première étape, sélection sensible au contexte (juillet 2017)
- Preview: Link, stage two, API groundwork (juillet 2017)
- Aperçu Assembly3 (décembre 2017)
- Fusion de ma branche Link (juin 2018)
Enfin, le pull request et le merge ont eu lieu :
- App::Link: the big merge, ancien fil de discussion (juillet 2019), pull request #2350 (the BIG merge), LinkMerge branch.
- App::Link: the big merge, fil de discussion principal (juillet 2019)
- A simple path description of Link, 019, Link stage, Asm3, merge? (août 2019)
- PR#2559: expose link and navigation actions, une introduction à la fonctionnalité Lien dans la version 0.19 (septembre 2019).
D'autres « liens » à propos de Link incluent :
- Dynamic Linked Object : un modèle avec des liens et des assemblages qui vise à réduire la duplication de la logique liée à l'assemblage, telle que l'orientation, le positionnement ou le nombre d'instances.
- Fichier : Nouveau document, Ouvrir, Fichiers récents, Fermer, Tout fermer, Enregistrer, Enregistrer sous, Enregistrer une copie, Tout enregistrer, Rétablir, Importer, Exporter, Fusionner au document, Informations sur le document, Imprimer, Aperçu avant impression, Exporter au format PDF, Quitter
- Édition : Annuler, Rétablir, Couper, Copier, Coller, Dupliquer une sélection, Recalculer, Sélection d'objets par boîte, Sélection de faces par boîte, Tout sélectionner, Supprimer, Vers la console Python, Positionner, Transformer, Aligner, Bascule du mode d'édition, Properties, Mode d'édition, Préférences
- Affichage :
- Divers : Créer une nouvelle vue, Vue orthographique, Vue en perspective, Plein écran, Boîte englobante, Axes du repère, Plan de coupe, Appliquer une texture, Basculer en mode navigation, Matériau, Apparence, Couleur aléatoire, Apparence par face, Basculer la transparence, Atelier, Barre d'état
- Vues standards : Tout afficher, Afficher la sélection, Align to Selection, Isométrique, Dimétrique, Trimétrique, Accueil, Vue de devant, Vue de dessus, Vue de droite, Vue de l'arrière, Vue de dessous, Vue de gauche, Rotation à gauche, Rotation à droite, Stocker la vue de travail, Rappel de vue de travail
- Figer l'affichage : Enregistrer les vues, Charger les vues, Figer l'affichage, Effacer les vues
- Style de représentation : Par défaut, Points, Filaire, Ligne cachée, Pas d'ombrage, Ombré, Filaire ombré
- Stéréo : Stéréo rouge/cyan, Tampon stéréo quadruple, Lignes stéréo entrelacées, Colonnes stéréo entrelacées, Stéréo désactivée, Position de la caméra
- Zoom : Zoom avant, Zoom arrière, Zoom fenêtre
- Fenêtre de document : Ancrer, Désancrer, Plein écran
- Visibilité : Basculer la visibilité, Afficher la sélection, Masquer la sélection, Sélectionner les objets visibles, Basculer tous les objets, Afficher tous les objets, Masquer tous les objets, Basculer la sélectivité
- Barre d'outils : Fichier, Édition, Presse-papiers, Atelier, Macro, Vue, Vue individuelle, Structure, Aide, Lock Toolbars
- Panneaux : Vue en arborescence, Éditeur de propriétés, Vue combinée, Fenêtre de sélection, Console Python, Vue rapport, Panneau des tâches, Vue DAG
- Superposition des panneaux ancrables : Basculer la superposition pour tout, Basculer la transparence pour tout, Basculer une superposition, Basculer une transparence, Panneaux non interactifs, Basculer à gauche, Basculer à droite, Basculer en haut, Basculer en bas
- Navigation par lien : Objet lié, Objet lié le plus profond, Tous les liens
- Actions dans l'arborescence : Synchroniser la vue, Synchroniser la sélection, Synchroniser le placement, Présélection, Enregistrer la sélection, Document unique, Tous les documents, Réduire/développer, Déplacement, Aller à la sélection, Sélection précédente, Sélection suivante
- Outils : Gestionnaire des extensions, Mesurer, Préciser une sélection, Mesure rapide, Convertisseur d'unités, Charger une image, Capture d'écran, Ajouter un document texte, Vue en rotation, Inspecteur du graphe de scène, Graphique de dépendance, Exporter le graphe de dépendance, Utilitaire de projet, Éditeur des paramètres, Personnaliser
- Macro : Enregistrer une macro, Macros…, Lancer la macro, Débogueur distant, Déboguer la macro, Arrêt du débogage, Passer outre, Rentrer dedans, Basculer le point d'arrêt
- Aide : Qu'est-ce que c'est ?, Page de démarrage, Documentation utilisateurs, Forum de FreeCAD, Signaler un bogue, Redémarrer en mode sans échec, Manuel pour développeur, Documentation des modules Python, Site web de FreeCAD, Don à FreeCAD, À propos de FreeCAD
- Additionel :
- Divers : Std Part, Std Groupe, Jeu de variables, Link Group, Sélectionner toutes les instances, Basculer le figeage
- Références : Système de coordonnées, Plan de référence, Ligne de référence, Point de référence
- Actions sur les liens : Créer un lien, Créer un sous-lien, Remplacer par un lien, Délier, Importer des liens, Importer tous les liens
- Actions sur les expressions : Copier la sélection, Copier le document actif, Copier tous les documents, Coller
- Part-Filtre : Sélection des sommets, Sélection des arêtes, Sélection des faces, Supprimer tous les filtres
- 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, Assembly, BIM, CAM, Draft, FEM, Inspection, Material, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Surface, TechDraw, Test













