Assembly3 Workbench/it

Introduzione
Assembly3 è un banco di lavoro esterno che viene utilizzato per eseguire l'assemblaggio di diversi corpi contenuti in un unico file o in più documenti. Il banco da lavoro si basa su diverse modifiche delle funzioni principali effettuate per la versione di FreeCAD 0.19 (ad es. App Link), quindi il banco da lavoro Assembly3 non può essere utilizzato con le versioni precedenti.

Le caratteristiche principali del banco da lavoro Assembly3 sono
 * dynamic/interactive solver. Ciò significa che è possibile spostare le parti con il mouse mentre il risolutore limita il movimento. Ciò consente, ad esempio, di collegare una ruota ad un asse e di ruotare la ruota in modo interattivo con il mouse.
 * links. Ciò significa che è possibile utilizzare un solo pezzo, ad es. una vite più volte in un assemblaggio (in luoghi diversi) senza duplicare la geometria.
 * external links. E' possibile avere un documento freecad che contiene solo un assemblaggio e non parti. Tutte le parti potrebbero essere in file singoli. I file potrebbero anche essere in una libreria o in qualsiasi altra parte del file system. L'unico requisito è che il file deve essere caricato al momento del collegamento. Dopo che il collegamento è stato fatto, il file deve essere aperto per fare gli aggiornamenti ai collegamenti che coinvolgono il file. Assembly3 risolve questo problema aprendo i file in background.
 * hierarchical assemblies. Come nella vita reale, un assemblaggio meccanico può essere costituito da sottoinsiemi. Questi potrebbero consistere di nuovo in sottoinsiemi e così via.
 * assembly freeze. Poiché la CPU può gestire solo un numero limitato di vincoli simultanei in tempo reale, il congelamento di un assieme permette di utilizzare i vincoli anche per assiemi di grandi dimensioni. Congelando gli assiemi finiti o i vincoli che non devono rimanere dinamici (ad es. parti saldate, bullonate o incollate), questi vengono esclusi dai calcoli di aggiornamento e considerati geometria fissa dal solutore Assembly3.
 * Si noti che altri approcci offrono soluzioni diverse a questo problema, per esempio Assembly4_workbench_icon.svg Assembly4 Workbench.

Torna all'inizio

Barre degli strumenti
A partire dal 2020 il banco da lavoro Assembly3 è dotato delle seguenti barre degli strumenti.


 * Assembly3_ToolbarMain.png
 * Barra degli strumenti principale


 * La barra degli strumenti principale contiene strumenti per
 * Aggiungere una cartella assembly
 * Importare file STEP
 * Strumenti per spostare le parti in 3D
 * Controlli per l'aspetto e il solutore.
 * Strumenti per ordinare gli elementi dell'albero


 * Assembly3_ToolbarConstraints_1.jpg
 * Barra dei vincoli principali. Alcuni strumenti sono di fatto un menu per altri strumenti.


 * Assembly3_ToolbarConstraints_2.jpg
 * Barra dei vincoli supplementari. È possibile abilitare questa funzione selezionando l'icona "..." nella barra dei vincoli principale.


 * Le Barre dei vincoli saranno l'interfaccia principale utilizzata per l'assemblaggio delle parti. Sono grigie di default, ma vengono attivate una volta selezionata almeno una faccia, una linea o un punto di una parte. Generalmente si selezionano gli elementi che devono essere uniti e poi si seleziona il tipo di vincolo. Le diverse cornici colorate contrassegnano le diverse caratteristiche dei vincoli: se è possibile aggiungere più di 2 elementi in 2D/3D. Una descrizione dettagliata si trova nel wiki di Gibhub.


 * "Bloccare" il primissimo vincolo. In ogni assemblaggio una parte deve essere bloccata per agire come parte base. Bloccare non significa altro che vincolare questa parte in 6DOF alla sua posizione e orientamento attuali.


 * Assembly3_ToolbarNavigation.jpg
 * Barra degli strumenti di navigazione
 * Queste funzioni sono utili quando si lavora con un assemblaggio con una gerarchia di file esterni collegati
 * Selezionare l'oggetto pezzo corrispondente nel gruppo di relazioni
 * Selezionare l'oggetto collegato
 * Selezionare l'oggetto link più profondo


 * Assembly3_ToolbarMeasurement.jpg
 * Barra degli strumenti di misura
 * La Barra degli strumenti di misura aggiunge funzioni per misurare le distanze tra due punti, un punto e una retta o un punto e una faccia. Lo strumento Misura angolo traccia l'angolo tra due facce o rette. Non esiste una funzione per misurare un raggio o un diametro.
 * Gli strumenti di misura sopravvivono ai cambiamenti del pezzo, ad esempio la distanza tra i bordi di un cubo quando il cubo viene ridimensionato. Come i vincoli, i calcoli sono fatti in tempo reale e aggiornati ad ogni cambiamento. Dietro le quinte, la funzione è molto simile alla funzione vincoli. La distanza o l'angolo viene calcolata tra elementi come per ivincoli. Il visualizzatore nell'albero funziona allo stesso modo.

Come al solito è possibile modificare le barre degli strumenti e aggiungere o rimuovere singoli strumenti. Accertarsi di controllare nel menu Assembly3 le funzioni che potrebbero non essere presenti nelle barre degli strumenti.

Torna all'inizio

Vincoli
Il progettista utilizza i vincoli per ottenere il risultato desiderato nella relazione tra due parti. L'arte è la selezione dei giusti vincoli più adatti ad affrontare ogni problema. Ogni DOF eliminato dovrebbe in teoria essere eliminato solo una volta tra due oggetti, ma in pratica con molti strumenti CAD i vincoli selezionati causano combinazioni di vincoli eccessivi, spesso compensati da algoritmi complessi, a volte no. Assembly3 utilizza algoritmi per rilevare e compensare gli eccessi di vincoli, ma chiaramente non sono ancora molto maturi. Quindi in pratica per i vincoli di Assembly3 si evitano problemi essendo consapevoli di quanti gradi di libertà (DOF) sono stati utilizzati e quali devono ancora essere bloccati dai vincoli. Nessuna parte dovrebbe avere una connessione di vincoli utilizzati maggiore di 6DOF.


 * Nota: Se il risolutore incontra una combinazione che non può essere risolta, darà un errore. È molto difficile per il risolutore scoprire cosa ha causato il problema, quindi tipicamente da questo errore dato non sarà chiaro dove è il problema. In assemblaggi più grandi questo può portare a ricerche complesse del problema. Purtroppo non c'è un modo semplice per evitarlo. Tuttavia, aiuta essere pienamente consapevoli di come funziona il sistema (.e.g. vedi Elementi qui sotto), utilizzare nomi chiari per tutti i componenti coinvolti e aggiungere vincoli aggiuntivi solo quando il risolutore risolve l'assemblaggio corrente. Molto utile per rintracciare un problema è la funzione "ContexMenu/Deactivate" di ogni Vincolo.

Assembly3 I vincoli definiscono le restrizioni nella posizione o nell'orientamento tra due Elementi. Alcuni vincoli funzionano anche con più di due Elementi. Un Elemento può essere una faccia, una linea o un bordo o un punto di una parte. Generalmente i vincoli sono definiti selezionando gli Elementi e poi selezionare il vincolo dai Vincoli toolbar.

Altro
 * Fissa 6 DOF, lascia 0 DOF:
 * Lock: Il blocco del vincolo fissa tutti i DOF per una faccia. Dovrebbe essere usato per una parte di base in ogni assemblaggio. Si può anche attivare la funzione "MoveLock" (nella barra degli strumenti) in modo che il pezzo non possa essere spostato accidentalmente. Normalmente non importa quale faccia/linea/punto si usa per fissare un pezzo. Si noti inoltre che il blocco è valido solo per l'assemblaggio diretto, cioè nel caso di un sottoinsieme l'assemblaggio principale richiederebbe comunque una parte bloccata.
 * Attachment: Rende i sistemi di coordinate di entrambi gli elementi uguali per tutti gli assi. Questa è la funzione più comoda per il calcolo e dovrebbe essere usata dove possibile. Si noti che si potrebbero usare le proprietà degli elementi per compensare gli offset e gli angoli se i due elementi non sono perfettamente allineati.
 * Fissa 5 DOF, lascia 1 DOF:
 * Plane Coincident: fissa Tx,Ty,Tz, Rx,Ry. Solo Rz è libero. Rimane la rotazione intorno al normale che passa attraverso il centro del piano.
 * Fissa 4 DOF, lascia 2 DOF:
 * Axial Alignment: fissa Tx,Ty, Rx,Ry. Solo Tz, Rz sono liberi. Rimangono la rotazione intorno all'asse della figura e la traslazione lungo questo stesso asse. Due vincoli PointOnLine (se i due punti sono diversi) danno lo stesso risultato. Come anche i vincoli'‘Colinear'’.
 * PointOnLine: In questo modo si elimina la traslazione e la rotazione lungo le normali verso la linea di riferimento. Sono consentite solo la traslazione e la rotazione lungo l'asse della linea.
 * Fissa 3 DOF, lascia 3 DOF:
 * Same Orientation: fissa Rx,Rz,Rz. Tutte le T rimangono libere.
 * Points Coincident: fissa Tx,Ty,Tz. Tutte le R rimangono libere.
 * PointOnPoint Il vincolo elimina le 3 traslazioni.
 * Plane Alignment: fissa Tz, Rx,Ry. In movimento il piano e Rz. Questo elimina la traslazione lungo il piano normale verso il piano di riferimento e le due rotazioni intorno agli assi di questo piano.
 * Fissa 2 DOF, lascia 4 DOF:
 * Multi Parallel: fissa Rx,Ry. rimangono tutte le T e le Rz. Questo elimina le due rotazioni intorno agli assi del piano di riferimento.
 * Fissa 1 DOF, lascia 5 DOF:
 * Points in Plane: Fissa Tz. Questo elimina la traslazione lungo il piano normale verso il piano di riferimento.
 * Points Distance: fissa la distanza tra le origini dell'elemento.
 * Questo ti dà più libertà rispetto a Points in Plane
 * Points on Circle: fissa Tz e parzialmente Tx,Ty. Congela la traslazione del punto (o più punti) su un cerchio o su un'area del disco. Devi scegliere il cerchio per secondo. Questo lascia tutte le rotazioni libere e dà una traslazione limitata nel piano di riferimento del cerchio.

'': Nota: Nella seguente lista Tx,Ty,Tz e Rx,Ry,Rz sono usati per descrivere le traslazioni e le rotazioni dei sistemi di coordinate di riferimento dell'elemento interessato. Questo non è sempre esatto o completamente definito, ad esempio quando è coinvolta una linea non è definito se corre in X, Y o qualsiasi altro angolo in mezzo. Il sistema è usato per un breve e facile comparazione a favore di una definizione corretta ma più complessa. Quindi Z è generalmente la direzione normale di tutte le facce coinvolte. Sentitevi liberi di modificarla con un approccio migliore con una migliore leggibilità".

Torna all'inizio

Elements è un termine specifico usato nel banco di lavoro Assembly3 ed è importante capire Elements per capire come Assembly3 deve essere usato.

È utile pensare a un elemento come parola generale per un "elemento selezionabile" di una parte, cioè una faccia, un bordo, un cerchio o un angolo o un altro punto. Gli elementi che si selezionano per vincolarli, sono quegli elementi. Nell'albero una cartella Assembly ha tre sottocartelle. Accanto a 'Parts' e 'Constraints' c'è una cartella chiamata 'Elements', che è vuota finché non vengono aggiunti vincoli. Quando si aggiunge un vincolo il vincolo stesso ottiene due (o più) linee, questi sono gli 'Elementi' selezionati. Anche questi vengono aggiunti nella cartella 'Elements' che è solo un elenco di tutti gli elementi utilizzati nell'assieme. E' una buona idea cambiare i loro nomi (con il tasto F2), specialmente negli assemblaggi più grandi.

Vediamo un esempio
 * Creare un nuovo file e aggiungere dal banco di lavoro Part un cubo e un cilindro.Impileremo il cilindro sul cubo. Prima fissiamo la parte base, nel nostro caso il cubo. Selezioniamo la faccia inferiore del cubo e selezioniamo i vincoli "Bloccato" (prima icona nei Vincoli barra degli strumenti). Selezionare la faccia superiore del cilindro e la faccia superiore del cubo. Quindi selezionare il vincolo "Plane Coincident". Ora il cilindro viene spostato nel cubo e nell'albero è stata aggiunta una nuova foglia con due nodi figli sotto "Constraints". Inoltre gli stessi due nodi figli sono stati aggiunti sotto "Elements". Se il cilindro si trova all'interno del cubo invece che sopra il cubo, correggiamo prima questo: sotto 'Constraints' selezionate il nodo figlio che mostra la faccia del cilindro e con un clic destro del mouse nel menu contestuale selezionate 'Flip Part'. Ora il cilindro è impilato sul cubo.

La chiave per capire è che il vincolo opera sui collegamenti agli elementi nella lista della cartella ad albero 'Elements'. Questo permette di mantenere intatta la struttura del vincolo mentre si cambiano le parti. Questo è molto difficile da comprendere senza un esempio.

Torniamo all'esempio precedente
 * Nota: assicurarsi di aver aggiunto il vincolo "Lock" al cubo o questo sembrerà disorientante
 * Nella finestra CAD selezionare un'altra faccia del cubo. Ora lavoriamo solo nella vista ad albero. Andate con il mouse nell'albero dove il cubo deve apparire selezionato. Trascinare il cubo nella cartella "Elements". Trascinatelo sul nome 'Elements', in nessun altro punto della cartella vedremo in seguito il motivo. Dovreste vedere che un altro Elemento viene aggiunto alla lista degli 'Elementi'. Ora selezionate nella cartella 'Constraints' il nodo figlio della faccia del cubo nel vincolo "Plane Coincident" e cancellatelo. Il Vincolo mostrerà un punto esclamativo poiché manca un elemento. Si noti che cancellando l'elemento in Constraint non lo abbiamo cancellato dalla lista. Questo perché nel vincolo c'era solo un link all'Elemento. Ora prendiamo l'Elemento appena aggiunto nella lista 'Elements' e lo trasciniamo sul vincolo "Plane Coincident". Ora il cilidro si sposta sull'altra faccia che abbiamo selezionato. Potremmo aver bisogno di selezionare di nuovo 'Flip Part nel menu contestuale' se il cilindro è di nuovo all'interno del cubo.

L'esempio ha mostrato che senza rimuovere il vincolo possiamo cambiare gli Elementi che vengono utilizzati per il vincolo. Allo stesso modo possiamo spostare il cilindro in una parte totalmente diversa. Dopo aver giocato un po' di più con questo esempio, si noteranno alcune cose aggiuntive come
 * Se si rinomina un elemento nella lista, il nome verrà cambiato in tutti i Vincoli.
 * è possibile utilizzare un elemento della lista in diversi vincoli.
 * È possibile utilizzare la finestra delle proprietà di un elemento per aggiungere Offset. Nell'esempio questo potrebbe spostare il cilindro sulla faccia del cubo.
 * è possibile utilizzare il pulsante "Show Element Coordinate System" nella barra degli strumenti principale per vedere le funzioni 'Menu contestuale/Flip Part' e 'Menu contestuale/Flip Element'. Assicuratevi di guardare cosa succede nella finestra delle proprietà.
 * è possibile aggiungere un vincolo in un ordine completamente diverso: Per prima cosa aggiungere alcuni elementi alla 'Lista degli elementi' (la denominazione è utile, es. "Cube Top Face" o "Cube Front Face"), poi aggiungere un vincolo senza selezionare nulla - sarà un vincolo vuoto. Quindi trascinare gli Elementi dalla lista 'Elements'. Il risultato è lo stesso di quello che abbiamo fatto nel primo esempio. Dopo aver fatto questo esercizio, la natura di come funzionano i vincoli con gli Elementi dovrebbe essere chiara.
 * potete cambiare un vincolo esistente tra elementi esistenti semplicemente selezionando un elemento diverso nella Finestra delle proprietà/ConstraintType.

Torna all'inizio

Compatibilità
Assembly3 è stato ispirato da Assembly2, ma non è con questo compatibile. Se avete modelli precedenti realizzati in Assembly2, dovreste rimanere con FreeCAD 0.16 e usare Assembly2.

I nuovi modelli sviluppati con Assembly3 devono essere aperti e modificati solo con questo banco di lavoro.

Anche se possono avere strumenti simili, Assembly3 non è compatibile con A2plus né con Assembly4. I modelli creati con questi workbenches devono essere aperti solo con il rispettivo workbench.

Torna all'inizio

Test
Il Assembly3 Workbench è in fase di sviluppo e non è ancora disponibile (aprile 2020) tramite lo Addon Manager, ma si prevede che ciò avverrà prima o poi.

Si può provare in due modi:
 * Uno speciale fork di FreeCAD realizzata da realthunder; vedi FreeCAD_assembly3 releases. Questo fork si basa su un particolare commit del ramo master di FreeCAD, ma ha anche caratteristiche aggiuntive attualmente non presenti nel ramo master. Dato che questo fork è basato su un particolare snapshot di sviluppo, non ha le ultime caratteristiche unite quotidianamente al ramo master.
 * Lo sviluppo AppImage; questo si basa sul ramo master corrente, e include le dipendenze necessarie per lavorare con Assembly3 come il solutore SolveSpace.

Dato che l'AppImage funziona solo per Linux, per gli utenti Windows al momento l'unica opzione per testare Assembly3 è la prima opzione (realthunder's fork).

Torna all'inizio

Cominciamo
Ci sono molti modi per creare un assemblaggio con Assembly3. Ecco il più semplice che si possa fare.


 * Assembly3_Example-GettingStarted.jpg
 * Risultato finale del primo esempio. Nell'immagine è selezionato il banco di lavoro Assembly3 Worksbench, quindi sono visibili le sue barre degli strumenti multiple. Si noti che la "TabBar" verticale a sinistra della vista ad albero è un AddOn Workbench che non è contenuto nel FreeCAD standard (ma può essere installato con l'Addon-Manager)'.


 * Creare un nuovo file FreeCAD
 * Selezionare il Workbench di montaggio. Selezionare CreateAssembly (prima icona)
 * Selezionare Part Workbench e aggiungere un cilindro e un cubo
 * Salva il file con il nome del file che preferisci. Chiudere e aprire il file.
 * La vista ad albero dovrebbe avere questo aspetto


 * Ora disegnare e rilasciare con il mouse sia Cilindro che Cubo nella cartella Parts. Verranno spostati in quella cartella.
 * Questo è il modo più veloce. Si noti che il modo migliore' è quello di aprire il menu contestuale su entrambi e selezionare ContetxMenu/LinkActions/MakeLink. Questo aggiunge due file di link. Poi trascina i file di collegamento nella cartella Parts. Per casi semplici come questo non ha molta importanza.
 * Cliccare entrambe le superfici superiori di Cylinder e Cube (tenere premuto Ctrl)
 * Selezionare assembly Workbench. Selezionare "PlaceCoincident" dalla Barra dei vincoli principali.
 * Ora le parti dovrebbero essere unite l'una all'altra e il vostro albero dovrebbe avere questo aspetto

Abbiamo omesso un passo importante che dovrebbe essere fatto negli assemblaggi più grandi: bloccare una parte base. Ciò significa definire una parte che non deve essere spostata da vincoli. Nel vostro caso per questo usiamo il cubo: Fatto. Se volete nell'albero potete spostare verso l'alto il vincolo "Bloccato". Utilizzare il pulsante "MoveItemUp" nella barra Barra degli strumenti principale.
 * Cliccare con il tasto destro del mouse su uno dei due "_Element" e selezionare "Flip Part".
 * Ora il Cilindro dovrebbe essere sopra la scatola. Se il tutto è sottosopra, tornare indietro e selezionare "Flip Part" sull'altro elemento.
 * Selezionare la faccia inferiore del cubo. Solo la faccia inferiore, non l'intero cubo.
 * selezionare il vincolo "Lock" dalla barra degli strumenti dei vincoli
 * L'albero di montaggio finito dovrebbe apparire come nell'immagine qui sopra

Nota: tutti i nuovi file esterni devono essere salvati, chiusi e riaperti almeno una volta, in modo che Assembly3 possa trovarlo. Senza fare questo FreeCAD non può dare una gestione dei file al Workbench Assembly3 e non può trovare il nuovo pezzo. Quando tutte le parti sono nello stesso file, è necessario salvare e riaprire il file.

Torna all'inizio

Aggiungete un Offset
Il montaggio3 non offre l'Offset con i vincoli nel modo in cui lo fanno A2plus Workbench o altri strumenti CAD. Offre invece un sistema più generale e flessibile per aggiungere traslazioni offset ma anche angoli.


 * Aggiungere l'offset nelle proprietà di un Vincolo di un Elemento.

Example:
 * Add 2 cubes to an assembly and select their side faces.
 * select "PlaneCoincident". The cubes will be attached inside each other.
 * select one Element and ContextMenu/Flip Part. The cubes will be attached side-by-side.
 * select one Element property Offset/Position/Zz and set to 5mm. The cubes will be 5mm apart.
 * Test with other axes or the angle/axis fields. Also verify that you get the same result when using the other Element.

This is the same approach for all other constraints.

top

Solve a Solver Failure
This often happens when parts are over-constraints, i.e. more than 6 DOF are locked.

The easiest way to find the problem is to click relevant constraints in the tree and select ContextMenu/Disable and re-calculate. It is helpful to know the last added constraints before the solver failed and just undo them.

Note: as Assembly3 tries to compensate for over-constraint parts behind the scenes, sometimes the problem is just triggered by a new constraint but the root cause is somewhere different. Before deleting all and starting again, remember that you can re-use Elements. If you named them you can identify the required elements and re-build the constraints without using the 3D view at all. See Elements seciton above.

top

Tips & Tricks

 * Using hierarchical assemblies helps in avoiding solver issues and keeping you model fluid. You can freeze a subassembly with one click and save CPU resources easily. Also note that Assembly3 does not need to keep external files for frozes subassemblies open. For large assemblies with large MB files this can be a severe advantage.
 * Using external files makes it easier to re-use a parts or do part versioning with systems like git or subversion. The workflow in FreeCAD with Assembly feels quite the same as with files that have all parts in the same file. For exchanging files often with other parties, single files might be more convenient.
 * Multiply linked parts. If you added a link into the assembly, it will have a property value named "Element Count", default 0. If you set this to 3 you get 3 instances of that part. They will be added into a subfolder and can be used like fully separte parts. Use this feature to keep the data footprint of your file low, because the part is saved only once. Each instance only contain the differences.
 * Insert multiple Screws with one click. Check out the Assembly3 Wiki on the Github site. This is not only a stunning function (even a bit magic), but really really useful.


 * Using the TabBar Workbench speeds up working with assembly. This adds a Toolbar with one button for each workbench. You can sort the toolbar and can put it where every you want it. Many people put it vertically on the left side just beside the tree view. Of you have Assembly3, Part, PartDesign and other often used workbenches close to the top switching between them becomes extremely easy.

top

Links

 * App Link object that makes Assembly3 work.
 * FreeCAD_assembly3 repository and documentation.
 * Assembly3 preview, big discussion thread.
 * Test tutorial for Assembly 3 WB by jpg87.
 * Current Assembly Status
 * External workbenches
 * External workbench list
 * Old Assembly project development plan, to get acquainted with the history of the issue.