Std LinkMake/it

Descrizione
crea un App Link (classe ), che è un tipo di oggetto che fa riferimento o 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 assemblaggi 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 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 un array, duplicando più volte il suo oggetto base; questo può essere fatto impostando la sua proprietà su  o più grande. Questo oggetto "Link_Array" può essere creato anche con i diversi strumenti dell'array Ambiente Draft, per esempio,, , and.

Quando si lavora con l' Ambiente Part Design, i link sono destinati ad essere utilizzati con i, quindi si consiglia di impostare la modalità su  per selezionare le caratteristiche dell'intero corpo, e non le singole caratteristiche. Per creare array di elementi interni Funzioni di PartDesign, utilizzare, , e.

Lo strumento non è definito da un particolare banco di lavoro, ma dal sistema di base, quindi si trova nella  che è disponibile in tutti gli ambienti di lavoro. L'oggetto Link, usato insieme a per raggruppare vari oggetti, costituisce la base di  Assembly3 e  Assembly4 Workbenches.

Utilizzo
Con selezione:
 * 1) Selezionare un oggetto nella vista ad albero o nella vista 3D per il quale si desidera creare un link.
 * 2) Premere il pulsante . L'oggetto prodotto ha la stessa icona dell'oggetto originale, ma ha una freccia sovrapposta che indica che è un collegamento.

Senza selezione:
 * 1) Se non viene selezionato alcun oggetto, premere il pulsanteLink.svg  per creare un link vuoto.
 * 2) Vai all'editor delle proprietà, quindi clicca sulla proprietà  per aprire metodi di selezione e scegliere un oggetto, poi premi.
 * 3) 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.



Utilizzo: documenti esterni

 * 1) Iniziare con un documento che ha almeno un oggetto che sarà la fonte del Link.
 * 2) Aprire un nuovo documento o un documento esistente. Per una più facile gestione, usare  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.
 * 3) Nel primo documento, selezionare l'oggetto che si desidera collegare; poi passare alle schede nell'area della vista principale per passare al secondo documento.
 * 4) Premere . 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.


 * 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  oppure.
 * 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 per scegliere anche solo alcuni sotto elementi.



Drag and drop
Invece di passare da una scheda all'altra del documento, è possibile creare dei Links 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 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 si copia l'oggetto; nel cursore viene mostrato un segno più.
 * Tenendo premuto il tasto si crea un collegamento; una coppia di maglie di catena viene mostrata nel cursore.

Per i modificatori e, 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
può essere usato su al fine di duplicare rapidamente gruppi di oggetti posizionati nello spazio, cioè assemblaggi.



Un regolare non possiede una proprietà, quindi non può controllare la posizione degli oggetti al suo interno. Tuttavia, quando è usato con, il Link risultante si comporta essenzialmente come una  e può anche essere spostata nello spazio.



Un collegamento a una 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 consentirà il controllo indipendente delle visibilità.



Aspetto dominante
Quando viene creato un Link, di default la è, quindi il Link avrà lo stesso aspetto dell'originale.

Quando la è impostato su, la proprietà  controllerà l'aspetto del Link.

Indipendentemente dallo stato della, è possibile impostare individualmente l'aspetto dei sottoelementi (vertici, bordi, facce) di un Link.
 * 1) Selezionare il Link nella vista ad albero. Aprire il menu contestuale (tasto destro del mouse) e scegliere.
 * 2) Ora scegliere i singoli sottoelementi che si desidera nella vista 3D, premere, e modificare le proprietà, inclusa la trasparenza.
 * 3) Per rimuovere gli attributi personalizzati, selezionare gli elementi nella lista, e premere.
 * 4) Quando si è soddisfatti del risultato, premere  per chiudere la finestra di dialogo.

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.



Link Array
Draft: Serie ortogonale.

Quando viene creato un Link, di default il suo è, quindi solo un singolo oggetto Link sarà visibile nella vista ad albero.

Dato che è  di default, quando  è impostato su  o più, automaticamente verranno creati più Link sotto il primo; ogni nuovo Link può essere posizionato nella posizione desiderata cambiando la proprietà.

In modo simile, ogni elemento dell'array può avere il proprio aspetto modificato, sia con le proprietà e, sia usando il menu  sull'intero array e quindi selezionando le singole facce; questo è descritto in Aspetto dominante.



Una volta che si è soddisfatti del posizionamento e delle proprietà degli elementi di collegamento nell'array, si può cambiare in  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 array Link, è necessario posizionare manualmente ciascuno degli elementi; tuttavia, se si desidera utilizzare modelli specifici per posizionare le copie, è possibile utilizzare gli strumenti di array del Ambiente Draft, come, , e ; questi comandi possono creare copie normali o copie Link a seconda delle opzioni al momento della creazione.

Visibilità
Quando è  e i singoli elementi sono elencati nella vista ad albero in un Link Array, ogni Link può essere mostrato o nascosto premendo la barra  della tastiera.

Un altro modo per nascondere i singoli elementi è usare il menu.
 * 1) Selezionare l'array, aprire il menu  (click destro).
 * 2) Nella vista 3D, scegliere qualsiasi sottoelemento da qualsiasi Link dell'array.
 * 3) Premere . Dovrebbe apparire l'icona di un occhio Invisible.svg, ad indicare che questo elemento è stato nascosto dalla vista 3D. L'oggetto si mostrerà temporaneamente quando il cursore si posiziona sopra l'icona Invisible.svg.
 * 4) Si può cliccare  per confermare l'operazione e chiudere la finestra di dialogo. Il collegamento rimarrà nascosto anche se viene mostrato come visibile 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 per rimuovere lo stato nascosto, e cliccare  per confermare e chiudere la finestra di dialogo. L'elemento sarà di nuovo visibile nella vista 3D.

Quando il Link è per una o un, 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.



Proprietà
Un App Link ( class) è derivato dall'App DocumentObject ( class) di base quindi ha le proprietà di base di quest'ultimo come e.

Di seguito sono riportate le proprietà specifiche disponibili nell'editor delle proprietà. Le proprietà nascoste possono essere mostrate utilizzando il comando nel menu contestuale dell'editor delle proprietà.

Dati

 * : indica l'oggetto sorgente dell'App Link; questo può essere un oggetto intero o un sottoelemento dello stesso (vertice, bordo o faccia).
 * : è impostato su, in questo caso il Link sovrascriverà il posizionamento del . Se è impostato su , il Link sarà posizionato nella stessa posizione del , e il suo posizionamento sarà relativo al posizionamento del . Questo può essere ottenuto anche con.
 * : il posizionamento del Link in coordinate assolute.
 * : è un offset applicato in aggiunta al dell'. Questa proprietà è normalmente nascosta, ma appare se  è impostato su ; in questo caso,  diventa ora nascosto.
 * : è impostato di default su, nel qual caso la vista ad albero mostrerà le singole copie del Link, a condizione che sia  o più grande.
 * : è impostato su . Se è o più grande, il App Link si comporterà come un array, e duplicherà lo stesso  molte volte. Se  è, ogni elemento dell'array sarà visualizzato nella vista ad albero, e ognuno può avere il proprio  modificato. Ogni copia del Link avrà un nome basato sul Link Nome, incrementato da , dove  è un numero che inizia con . Per esempio, con un singolo , le copie saranno denominate , , , ecc.
 * :nome della funzione di esecuzione che verrà eseguita per questo particolare oggetto Link. Il suo valore predefinito è . Impostarlo su per disabilitarlo.
 * : elenco di link che hanno subito la sovrascrittura del loro colore.
 * : è impostato su . È un fattore per una scalabilità uniforme in ogni direzione, , e . Per esempio, un cubo di x  x , che viene scalato da , risulterà in una forma con dimensioni  x  x.
 * : il fattore di scala per ogni componente per tutti gli elementi Link quando  è  o più grande. Se  è diverso da, lo stesso valore sarà utilizzato nei tre componenti.
 * : il fattore di scala per ogni elemento Link.
 * : lo stato di visibilità di ogni elemento Link, o  o.
 * : il posizionamento per ogni elemento Link.
 * : l'elenco degli elementi Link.


 * : 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 originale, quindi l'editor  delle proprietà può avere gruppi di proprietà come , ,  e così via.

Vista



 * : this property includes sub-properties that describe the appearance of the object.
 * , it defaults to, which is displayed as on base 255, light blue.
 * , it defaults to, which is displayed as on base 255, dark gray.
 * , it defaults to, which is displayed as on base 255, black.
 * , it defaults to, which is displayed as on base 255, black.
 * , it defaults to
 * , it defaults to.


 * : if individual materials have been added, they will be listed here.
 * : if the individual faces or edges of the link have been overridden they will be listed here.
 * : if the individual materials of the link have been overridden they will be listed here.
 * : if the individual materials of the link have been overridden they will be listed here.


 * : or.
 * : see the information in App FeaturePython.
 * : see the information in App FeaturePython.


 * : see the information in App FeaturePython.
 * : see the information in App FeaturePython.

Mostra inoltre le proprietà Vista dell'originale.

Eredità
Un App Link è formalmente un'istanza della classe, il cui genitore è il genitore di base App DocumentObject. ( class). È un oggetto di livello molto basso, che può essere usato con la maggior parte degli altri oggetti documento.



Script
Script di base per FreeCAD, e script di oggetti.

Vedere Funzione Part per le informazioni generali.

Un App Link viene creato con il metodo del documento. Questo può definire il suo sovrascrivendo il suo attributo, o usando il suo metodo.

Questo non ha un oggetto Proxy, quindi non può essere pienamente utilizzato per la sotto-classe.

Pertanto, per la sottoclasse Python, è necessario creare l'oggetto.

Ulteriori letture
L'oggetto App Link è stato introdotto dopo 2 anni di sviluppo e prototipazione. Questo componente è stato pensato e sviluppato quasi da solo dall'utente. 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.

The App Link project started after the redesign of the PartDesign Workbench was complete in v0.17. The history of App Link can be traced to some essential forum threads:
 * Why an object can only be inside one App::Part? (March 2017)
 * Introducing App::Link/XLink (March 2017)
 * Links (May 2017)
 * Realthunder Link implementation: Architecture discussion (June 2017)
 * PR #876: Link, stage one, context aware selection (July 2017)
 * Preview: Link, stage two, API groundwork (July 2017)
 * Assembly3 preview (December 2017)
 * Merging of my Link branch (June 2018)

Finally, the pull request and merge happened:
 * App::Link: the big merge, old thread (July 2019), pull request #2350 (the BIG merge), LinkMerge branch.
 * App::Link: the big merge, main thread (July 2019)
 * A simple path description of Link, 019, Link stage, Asm3, merge? (August 2019)
 * PR#2559: expose link and navigation actions, an introduction to the Link feature in 0.19 (September 2019).