|
Posizione nel menu |
---|
None |
Ambiente |
Tutti |
Avvio veloce |
Nessuno |
Introdotto nella versione |
0.19 |
Vedere anche |
Parte, Gruppo, Corpo di PartDesign |
Descrizione
Crea link crea un App Link (classe
App::Link
), che è un tipo di oggetto che fa riferimento o si collega ad un altro oggetto nello stesso documento o in un altro documento. È appositamente progettato per duplicare in modo efficiente un singolo oggetto più volte, il che aiuta nella creazione di assiemi complessi da sottoassiemi più piccoli e da più componenti riutilizzabili come viti, dadi e dispositivi di fissaggio simili.
L'oggetto App Link è stato introdotto di recente nella versione 0.19; in passato, si poteva ottenere una semplice duplicazione di oggetti con Clona di Draft, ma questa è una soluzione meno efficiente a causa della sua implementazione, che essenzialmente crea una copia della Forma (Shape) interna dell'oggetto sorgente. Invece, un link fa riferimento direttamente alla forma originale, quindi è più efficiente in termini di memoria.
Di per sé l'oggetto Link può comportarsi come una serie (array), duplicando più volte il suo oggetto base; questo può essere fatto impostando la sua proprietà DatiElement Count su 1
o più grande. Questo oggetto "Link_Array" può essere creato anche con i diversi strumenti dell'array Ambiente Draft, per esempio,
Draft Serie ortogonale,
Draft Serie polare, and
Draft Serie circolare.
Quando si lavora con l' Ambiente Part Design, i link sono destinati ad essere utilizzati con i
Corpi di Part Design, quindi si consiglia di impostare la modalità VistaDisplay Mode Body su
Tip
per selezionare le caratteristiche dell'intero corpo, e non le singole caratteristiche.
Per creare array di elementi interni Funzioni di PartDesign, utilizzare PartDesign Serie lineare,
PartDesign Serie polare, e
PartDesign Multitransformazione.
Lo strumento Crea link non è definito da un particolare ambiente di lavoro, ma dal sistema di base, quindi si trova nella Struttura della barra degli strumenti che è disponibile in tutti gli ambienti di lavoro. L'oggetto Link, usato insieme a
Parte per raggruppare vari oggetti, costituisce la base di
Assembly3 e di
Assembly4.
Utilizzo
Con selezione:
- Selezionare un oggetto nella vista ad albero o nella vista 3D per il quale si desidera creare un link.
- Premere il pulsante
Crea link. L'oggetto prodotto avrà stessa icona dell'oggetto originale, ma con una freccia sovrapposta che indica che è un collegamento.
Senza selezione:
- Se non viene selezionato alcun oggetto, premere il pulsante
Make link per creare un Link vuoto
.
- Andare all'editor delle proprietà, quindi cliccare sulla proprietà DatiLinked Object per aprire metodi di selezione e scegliere un oggetto, poi premere OK.
- Invece di scegliere un intero oggetto nella vista ad albero, è anche possibile scegliere i sottoelementi (vertici, bordi o facce) di un singolo oggetto nella vista 3D. In questo caso, il Link duplicherà solo questi sottoelementi, e la sovrapposizione delle frecce sarà diversa. Questo può essere fatto anche con
crea un link relativo.
(1) Un oggetto, (2) Un Link vuoto, (3) un Link completo del primo oggetto (con materiale di rivestimento), (4) un collegamento solo ad alcuni sottoelementi dell'oggetto. Il Link vuoto non è legato all'oggetto reale, quindi non viene visualizzato nella vista 3D.
Utilizzo: documenti esterni
- Iniziare con un documento che ha almeno un oggetto che sarà la fonte del Link.
- Aprire un nuovo documento o un documento esistente. Per una più facile gestione, usare
Visualizza Multi documento per mostrare entrambi i documenti nella vista ad albero. Prima di procedere, salva entrambi i documenti. Il Link non sarà in grado di trovare la sua fonte e la sua destinazione a meno che entrambi i documenti non siano salvati su disco.
- Nel primo documento, selezionare l'oggetto che si desidera collegare; poi passare alle schede nell'area della vista principale per passare al secondo documento.
- Premere
Crea link. L'oggetto prodotto ha la stessa icona dell'oggetto originale, ma ha una freccia aggiuntiva che indica che si tratta di un link proveniente da un documento esterno.
Notes:
- Quando si salva il documento con il Link, verrà anche chiesto di salvare il documento di origine che contiene l'oggetto originale.
- Per includere l'oggetto originale nel documento con il Link, utilizzare
Importa un link oppure
Importa tutti i link.
Crea link può essere utilizzato su un oggetto Link esistente, al fine di creare un Link ad un Link che si risolve in definitiva con l'oggetto originale nel documento di origine. Questo può essere utlizato con
Crea un link relativo per scegliere anche solo alcuni sotto elementi.
(1, 2) Due oggetti di un documento sorgente collegati in un documento di destinazione, (3) un Link al secondo Link (con materiale di sovrascrittura), e (4) un Link ai sotto elementi del secondo Link.
Drag and drop
Invece di passare da una scheda all'altra del documento, è possibile creare dei Link eseguendo un'operazione di drag and drop nella vista ad albero: selezionare l'oggetto sorgente dal primo documento, trascinarlo, quindi rilasciarlo nel nome del secondo documento tenendo premuto il tasto Alt della tastiera.
Il trascinamento porta ad azioni diverse a seconda della tasto di modifica che si sta utilizzando.
- Senza il tasto di modifica si sposta semplicemente l'oggetto da un documento all'altro; una freccia inclinata viene mostrata nel cursore.
- Tenendo premuto il tasto Ctrl si copia l'oggetto; sul cursore viene mostrato un segno più.
- Tenendo premuto il tasto Alt si crea un collegamento; sul cursore viene mostrata una coppia di maglie di una catena.
Per i modificatori Ctrl e Alt, il trascinamento può essere fatto anche con un singolo documento. Ovvero, trascinando un oggetto e rilasciandolo nel nome dello stesso documento si possono creare più copie o più link ad esso.
Gruppi
Crea link può essere usato su una
Parte al fine di duplicare rapidamente gruppi di oggetti posizionati nello spazio, ovvero degli assiemi.
Link creato da una Parte; gli oggetti non sono duplicati, ma sono elencati sotto il contenitore originale e sotto il Link contenitore.
Un Gruppo normalmente non possiede una proprietà DatiPlacement, quindi non può controllare la posizione degli oggetti al suo interno. Tuttavia, quando
Crea link è usato con un
Gruppo, il Link risultante si comporta essenzialmente come una
Parte e quindi può anche essere spostato nello spazio.
Link creato da un Gruppo; gli oggetti non sono duplicati ma sono elencati sotto il contenitore originale e sotto il contenitore Link. Il Link (col materiale sovrascritto) può essere spostato nello spazio, proprio come una Parte.
Un collegamento a una Parte manterrà la visibilità degli oggetti sincronizzati con la Parte originale; quindi se si nasconde un oggetto in un Link, esso sarà nascosto in tutti i Link e nell'oggetto originale. Invece un Link ad un
Gruppo consentirà il controllo indipendente delle visibilità.
Sinistra: Parte con due oggetti, e due Links alla Parte; la visibilità degli oggetti è sincronizzata. Destra: Gruppo con due oggetti, e due Links al Gruppo; la visibilità degli oggetti è controllata indipendentemente in ogni gruppo.
Sovrascrittura dell'aspetto
Quando viene creato un Link, di default la VistaOverride Material è false
, quindi il Link avrà lo stesso aspetto dell'originale DatiLinked Object.
Quando la VistaOverride Material è impostato su true
, la proprietà VistaShape Material controllerà l'aspetto del Link.
Indipendentemente dallo stato della VistaOverride Material, è possibile impostare individualmente l'aspetto dei sottoelementi (vertici, bordi, facce) di un Link.
- Selezionare il Link nella vista ad albero. Aprire il menu contestuale (tasto destro del mouse) e scegliere Override colors.
- Ora scegliere i singoli sottoelementi che si desidera nella vista 3D, premere Edit, e modificare le proprietà, inclusa la trasparenza.
- Per rimuovere gli attributi personalizzati, selezionare gli elementi nella lista, e premere Remove.
- Quando si è soddisfatti del risultato, premere OK per chiudere la finestra di dialogo.
Nota: A partire dalla v0.19, la colorazione dei sottoelementi è soggetta al problema di denominazione topologica, quindi dovrebbe essere fatta come ultima fase di modellazione, quando il modello non è più soggetto a modifiche.
(1) L'oggetto originale, (2) un Link con il materiale sovrascritto e (3) un secondo Link con i singoli sotto elementi modificati.
Link Array
Vedi anche: Draft: Serie ortogonale.
Quando viene creato un Link, di default il suo DatiElement Count è 0
, quindi solo un singolo oggetto Link sarà visibile nella vista ad albero.
Dato che DatiShow Element è true
di default, quando DatiElement Count è impostato su 1
o più, automaticamente verranno creati più Link sotto il primo; ogni nuovo Link può essere posizionato nella posizione desiderata cambiando la proprietà DatiPlacement.
In modo simile, ogni elemento dell'array può avere il proprio aspetto modificato, sia con le proprietà VistaOverride Material e VistaShape Material, sia usando il menu Override colors sull'intero array e quindi selezionando le singole facce; questo è descritto al paragrafo Sovrascrittura dell'aspetto.
(1) Oggetto di origine, e un Link array con tre elementi (2, 3, 4), ciascuno in una posizione diversa. Il primo Link ha il materiale sovrascritto e le facce trasparenti, gli altri due hanno colori personalizzati per le facce.
Una volta che si è soddisfatti del posizionamento e delle proprietà degli elementi di collegamento nell'array, si può cambiare DatiShow Element in false
per nascondere i singoli collegamenti nella vista ad albero; questo ha il vantaggio di rendere il sistema più reattivo, soprattutto se si hanno molti oggetti nel documento.
Quando si crea questo tipo di Link array, è necessario posizionare manualmente ciascuno degli elementi; tuttavia, se si desidera utilizzare modelli specifici per posizionare le copie, è possibile utilizzare gli strumenti di array dell' Ambiente Draft, come
Draft: Serie ortogonale,
Draft: Serie Polare, e
Draft: Serie circolare; questi comandi possono creare copie normali o copie Link a seconda delle opzioni al momento della creazione.
Visibilità
Quando DatiShow Element è true
e i singoli elementi sono elencati nella vista ad albero in un Link Array, ogni Link può essere mostrato o nascosto premendo la barra Space della tastiera.
Un altro modo per nascondere i singoli elementi è usare il menu Override colors.
- Selezionare l'array, aprire il menu Override colors (click destro).
- Nella vista 3D, scegliere qualsiasi sottoelemento da qualsiasi Link dell'array.
- Premere Nascondi. Dovrebbe apparire l'icona di un occhio
, ad indicare che questo elemento è stato nascosto dalla vista 3D. L'oggetto si mostrerà temporaneamente quando il cursore si posiziona sopra l'icona
.
- Si può cliccare OK per confermare l'operazione e chiudere la finestra di dialogo. Il collegamento rimarrà nascosto anche se viene mostrato come visibile nella vista ad albero.
Finestra di dialogo colore dell'elemento disponibile quando si apre il menu contestuale di un oggetto Link nella vista ad albero.
Se si desidera ripristinare la visibilità di questo elemento array, entrare di nuovo nella finestra di dialogo, scegliere l'icona occhio, quindi cliccare su Remove per rimuovere lo stato nascosto, e cliccare OK per confermare e chiudere la finestra di dialogo. L'elemento sarà di nuovo visibile nella vista 3D.
Quando il Link è per una Parte o un
Gruppo, il menu funziona in modo simile a quello degli array; permette di controllare il colore della faccia, il colore dell'intero oggetto e la visibilità degli oggetti del gruppo.
Una Parte contenente tre oggetti e un Link a quella Parte; nel Link, (1) il primo oggetto è reso invisibile, (2) il secondo oggetto ha alcuni sotto-elementi con colori diversi, (3) l'intero terzo oggetto ha un diverso colore e livello di trasparenza.
Proprietà
Un App Link (App::Link
class) è derivato dall'App DocumentObject (App::DocumentObject
class) di base quindi ha le proprietà di base di quest'ultimo come DatiLabel e DatiLabel2.
Di seguito sono riportate le proprietà specifiche disponibili nell'editor delle proprietà. Le proprietà nascoste possono essere mostrate utilizzando il comando Mostra tutte nel menu contestuale dell'editor delle proprietà.
Dati
Link
- Dati (LockDynamic, Hidden)ColoredElements (
LinkSubHidden
): elenco di elementi Link a cui è stato sostituito il colore. - Dati (LockDynamic)Element Count (
IntegerConstraint
): conteggio degli elementi del collegamento. Il valore predefinito è0
. Se è1
o maggiore, App Link si comporterà come una serie e duplicherà lo stesso DatiLinked Object più volte. Se DatiShow Elements ètrue
, ogni elemento nell'array verrà visualizzato nella Vista ad albero e ciascuno potrà avere il proprio DatiPlacement modificato. Ogni copia del collegamento avrà un nome basato sul Nome del collegamento, aumentato da_iN
, doveN
è un numero che inizia da0
. Ad esempio, con un singoloLink
, le copie verranno chiamateLink_i0
,Link_i1
,Link_i2
, ecc. - Dati (Immutable, Hidden, LockDynamic)ElementList (
LinkList
): l'elenco degli elementi Link. - Dati (LockDynamic)LinkClaimChild (
Bool
): rivendica l'oggetto collegato come figlio - Dati (LockDynamic)LinkCopyOnChange (
Enumeration
):Disabled
: disabilita la creazione di una copia dell'oggetto collegato, attivata da una modifica di una qualsiasi delle sue proprietà impostate comeCopyOnChange
.Enabled
: abilita una copia profonda dell'oggetto collegato se una qualsiasi delle sue proprietà contrassegnate comeCopyOnChange
viene modificata. Una volta eseguita la copia profonda, non ci sarà alcun collegamento tra l'oggetto originale e quello copiato. Pertanto, le modifiche apportate all'oggetto originale non si rifletteranno nelle copie. Nota: questo è uno stato preparatorio, la copia reale avverrà solo dopo che le proprietàCopyOnChange
sono cambiate. Vedere lo statoOwned
.Owned
: indica che l'oggetto collegato è stato copiato e la copia è di proprietà del Link. Questo stato è impostato dal Link automaticamente, non dall'utente. Il flusso di lavoro è il seguente: se lo stato èEnabled
e l'utente modifica qualsiasi proprietà precedentemente impostata comeCopyOnChange
, allora lo stato viene modificato inOwned
. Questo è il momento in cui il Link eseguirà la copia profonda dell'oggetto collegato. In questo stato, il link non cercherà di sincronizzare eventuali modifiche dell'oggetto originale collegato alla copia.Tracking
: uguale aEnabled
, ma in più la copia verrà aggiornata automaticamente se l'oggetto di origine originale cambia.
- Dati (Hidden, LockDynamic)LinkCopyOnChangeGroup (
Link
): collegato a un oggetto di gruppo interno per conservare le copie delle modifiche - Dati (Hidden, LockDynamic)LinkCopyOnChangeSource (
XLink
): la copia sull'oggetto di origine della modifica - Dati (Hidden, LockDynamic)LinkCopyOnChangeTouched (
Bool
): indica che la copia sull'oggetto di origine della modifica è stata modificata - Dati (LockDynamic)LinkExecute (
String
): nome della funzione di esecuzione che verrà eseguita per questo particolare oggetto Link. Il valore predefinito è'appLinkExecute'
. Impostarlo su'None'
per disabilitarlo. - Dati (Hidden, LockDynamic)Link Placement (
Placement
): è un offset applicato sopra il DatiPlacement del DatiLinked Object. Questa proprietà è normalmente nascosta ma appare se DatiLink Transform è impostato sutrue
; in questo caso, DatiPlacement ora diventa nascosto. - DatiLink Transform (
Bool
): il valore predefinito èfalse
, nel qual caso il collegamento sovrascriverà il posizionamento di DatiLinked Object. Se è impostato sutrue
, il collegamento verrà posizionato nella stessa posizione di DatiLinked Object e il suo posizionamento sarà relativo al posizionamento di DatiLinked Object . Ciò può essere ottenuto anche conStd LinkMakeRelative.
- DatiLinked Object (
XLink
): indica l'oggetto sorgente dell'App Link; questo può essere un oggetto intero o un suo sottoelemento (vertice, bordo o faccia). - DatiPlacement (
Placement
): il posizionamento del Link in coordinate assolute. - Dati (LockDynamic)PlacementList (
PlacementList
): il posizionamento per ciascun elemento Link - DatiScale (
Float
): il valore predefinito è1.0
. È un fattore per il ridimensionamento uniforme in ciascuna direzioneX
,Y
eZ
. Ad esempio, un cubo di2 mm
x2 mm
x2 mm
, ridimensionato di2.0
, risulterà in una forma con dimensioni4 mm
x4 mm
x4 mm
. - DatiScale List (
VectorList
): il fattore di scala per ciascun elemento Link. - Dati (Hidden)Scale Vector (
Vector
): il fattore di scala per ciascun componente(X, Y, Z)
per tutti gli elementi Link quando DatiElement Count è1
o più grande. Se DatiScale è diverso da1.0
, questo stesso valore verrà utilizzato nei tre componenti. - DatiShow Element (
Bool
): il valore predefinito ètrue
, nel qual caso la VIsta ad albero mostrerà le singole copie del collegamento, purché {{PropertyData|Element Count} } è1
o maggiore. - Dati (NoPersist, ReadOnly, Hidden)_ChildCache (
LinkList
): da definire - Dati (Nascosto, output)_LinkOwner (
Integer
): da definire - Dati (NoPersist, Hidden)_LinkTouched (
Bool
): da definire
Base
- Dati (nascosto)Proxy (
PythonObject
): una classe personalizzata associata a questo oggetto. Questa esiste solo per la versione Python. Vedi Scripting.
L'oggetto App Link mostra inoltre le proprietà del DatiLinked Object originale, quindi l'editor delle proprietà può avere gruppi di proprietà come Attachment , Box, Draft e così via.
Vista
Link
- VistaDraw Style (
Enumeration
): è predefinito aNone
; può essereSolid
,Dashed
,Dotted
,Dashdot
; definisce lo stile dei bordi nella vista 3D. - VistaLine Width (
FloatConstraint
): un float che determina la larghezza in pixel dei bordi nella vista 3d. E' predefinito a2.0
. - VistaOverride Material (
Bool
): è predefinito afalse
; se impostato sutrue
sovrascriverà il materiale dell'DatiLinked Object, e visualizzerà i colori definiti in VistaShape Material. - VistaPoint Size (
FloatConstraint
): simile a VistaLine Width, definisce la dimensione dei vertici. - VistaSelectable (
Bool
): se ètrue
, l'oggetto può essere scelto con il puntatore nella vista 3D. Altrimenti, l'oggetto non può essere selezionato finché questa opzione non è impostata sutrue
.
- VistaShape Material (
Material
): questa proprietà include sottoproprietà che descrivono l'aspetto dell'oggetto.- VistaDiffuse Color, è predefinito a
(0.4, 1.0, 1.0)
, viene visualizzato come[102, 255, 255]
su base 255, light blue . - VistaAmbient Color, è predefinito a
(0.2, 0.2, 0.2)
, viene visualizzato come[51, 51, 51]
su base 255, dark gray . - VistaSpecular Color, è predefinito a
(0.0, 0.0, 0.0)
, viene visualizzato come[0, 0, 0]
su base 255, black . - VistaEmissive Color, è predefinito a
(0.0, 0.0, 0.0)
, viene visualizzato come[0, 0, 0]
su base 255, black . - VistaShininess, è predefinito a
0.2
- VistaTransparency, è predefinito a
0.0
.
- VistaDiffuse Color, è predefinito a
Base
- Vista (Hidden)Child View Provider (
PersistentObject
): - Vista (Hidden)Material List (
MaterialList
): (read-only) se sono stati aggiunti materiali specifici, saranno elencati qui. - Vista (Hidden)Override Color List (
ColorList
): (read-only) se le singole facce o i bordi del collegamento sono stati sovrascritti saranno elencati qui. - Vista (Hidden)Override Material List (
BoolList
): (read-only) se i singoli materiali del link sono stati sovrascritti saranno elencati qui.
Opzioni di visualizzazione
- VistaDisplay Mode (
Enumeration
):'Link'
or'ChildView'
. - VistaShow In Tree (
Bool
): vedere le informazioni in App FeaturePython. - VistaVisibility (
Bool
): vedere le informazioni in App FeaturePython.
Selezione
- VistaOn Top When Selected (
Enumeration
): vedere le informazioni in App FeaturePython. - VistaSelection Style (
Enumeration
): vedere le informazioni in App FeaturePython.
Mostra inoltre le proprietà Vista dell'originale DatiLinked Object.
Ereditarietà
Un App Link è formalmente un'istanza della classe App::Link
, il cui genitore è il genitore di base App DocumentObject. (App::DocumentObject
class). È un oggetto di livello molto basso, che può essere usato con la maggior parte degli altri oggetti documento.
Diagramma semplificato delle relazioni tra gli oggetti principali del programma. L'oggetto App::Link
è un componente principale del sistema, non dipende da alcun ambiente, ma può essere utilizzato con la maggior parte degli oggetti creati in tutti gli ambienti.
Script
Vedere anche: Script di base per FreeCAD, e script di oggetti.
Vedere Funzione Part per le informazioni generali.
Un App Link viene creato con il metodo addObject()
del documento. Questo può definire il suo DatiLinked Object sovrascrivendo il suo attributo LinkedObject
, o usando il suo metodo 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()
App::Link
è basico e non ha un oggetto Proxy, quindi non può essere pienamente utilizzato per la sotto-classe.
Pertanto, per la sottoclasse Python, è necessario creare l'oggetto App::LinkPython
.
import FreeCAD as App
doc = App.newDocument()
obj = App.ActiveDocument.addObject("App::LinkPython", "Link")
obj.Label = "Custom label"
Ulteriori letture
Se si vuole saltare i dettagli storici, andare all'introduzione orientata all'utente ai collegamenti.
L'oggetto App Link è stato introdotto dopo 2 anni di sviluppo e prototipazione. Questo componente è stato pensato e sviluppato quasi solamente dall'utente realthunder. Le motivazioni e le implementazioni progettuali alla base di questo progetto sono descritte nella sua pagina GitHub, Link. Per realizzare questa funzione, sono state apportate diverse modifiche fondamentali a FreeCAD; anche queste sono state ampiamente documentati in Core-Changes.
Il progetto App Link è iniziato dopo la riprogettazione del Ambiente PartDesign è stato completato nella v0.17. La storia di App Link può essere rintracciata in alcuni thread essenziali del forum:
- Why an object can only be inside one App::Part? (Marzo 2017)
- Introducing App::Link/XLink (Marzo 2017)
- Links (Maggio 2017)
- Realthunder Link implementation: Architecture discussion (Giugno 2017)
- PR #876: Link, stage one, context aware selection (Luglio 2017)
- Preview: Link, stage two, API groundwork (Luglio 2017)
- Assembly3 preview (Deicembre 2017)
- Merging of my Link branch (Giugno 2018)
Infine, la richiesta di pull e il merge sono avvenuti:
- App::Link: the big merge, vecchio thread (Luglio 2019), pull request #2350 (il GRANDE merge), LinkMerge branch.
- App::Link: the big merge, thread principale (Luglio 2019)
- A simple path description of Link, 019, Link stage, Asm3, merge? (Agosto 2019)
- PR#2559: expose link and navigation actions, un'introduzione alla funzione Link in 0.19 (Settembre 2019).
Altri "link" vari su Link includono:
- Dynamic linked object - Un pattern con Link e assembly che mira a ridurre la duplicazione della logica correlata all'assembly come l'orientamento, il posizionamento o il numero di istanze.
Questa pagina è recuperata da https://wiki.freecad.org/Std_LinkMake