A2plus Workbench/it

Introduzione
A2plus è un ambiente esterno per assemblare parti differenti in FreeCAD.

Questa documentazione descrive la versione A2plus 0.4.45 o più recente.

Installazione
L'ambiente A2plus è un componente aggiuntivo di FreeCAD. Può essere facilmente installato tramite il menu. A2plus è in sviluppo attivo e riceve frequentemente nuove funzioni. Pertanto si dovrebbe aggiornarlo regolarmente usando sempre il menu. Il codice A2plus è ospitato e sviluppato in su GitHub e può anche essere installato manualmente copiandolo nella directory MOD di FreeCAD.

Per iniziare
Passare sulla barra degli strumenti di A2plus in FreeCAD. Per creare un assieme, creare un nuovo file. All'inizio questo file deve essere salvato. Si consiglia (ma non è necessario) di salvarlo nella stessa cartella delle parti che si desidera assemblare.

Ora è possibile aggiungere parti all'assieme utilizzando il pulsante della barra degli strumenti o. Il pulsante aggiunge tutti i corpi nel file selezionato come una singola parte. Quando si usa il pulsante si può scegliere quale singolo corpo del file deve essere importato come parte. . La prima parte aggiunta ottiene una posizione fissa per impostazione predefinita. (in seguito è possibile modificare questo tramite la proprietà della parte .) Le parti già presenti nell'assieme possono essere clonate con il pulsante della barra degli strumenti. Per modificare una parte dall'assieme, selezionarla nell'albero del modello e utilizzare il pulsante della barra degli strumenti. Questo apre la parte in una nuova scheda in FreeCAD o passa alla sua scheda se il file è già aperto. Per importare le modifiche nelle parti nell'assieme fai clic sul pulsante della barra degli strumenti.

To update changed parts in assemblies click on the toolbar button. The toolbar button imports parts too but recursively over possible subassemblies. If you select one or some parts in FreeCAD's the tree view, A2plus will ask you to only update the selected parts.

Le parti importate mantengono le loro dipendenze esterne e possono essere modificate. Per parti ben definite, come le viti, è comunque utile che la loro forma non possa essere modificata. Questo può essere ottenuto con il pulsante della barra degli strumenti che converte la parte selezionata in una copia statica della parte originale.

Per salvare l'assemblaggio e in seguito chiuderlo, è possibile utilizzare il pulsante della barra degli strumenti.

Assemblaggio
L'assemblaggio delle parti viene effettuato aggiungendo dei vincoli tra le parti. Dopo l'applicazione di un vincolo, A2plus sposta le parti in base al vincolo, se possibile. Per i vincoli complessi tra le parti A2plus potrebbe non riuscire a risolvere i vincoli. Pertanto, dare un'occhiata anche alla sezione Risoluzione dei problemi per le strategie su come risolvere tali casi.

I vincoli tra le parti vengono aggiunti mantenendo premuto il tasto e selezionando un bordo o una faccia di due parti. Il vincolo viene aggiunto allegato nell'albero del modello alle parti interessate.

For complex constraints between parts A2plus might fail to solve the constraints. Therefore also have a look at section Troubleshooting for strategies to resolve such cases.

Tenere traccia
Più parti si aggiungono, più è importante mantenere la traccia. A2plus offre quindi questi strumenti per spostare e visualizzare le parti:


 * Per spostare una parte nell'assieme, selezionarla nell'albero del modello e utilizzare il pulsante [[Image:A2p MovePart.svg|24px]]. Quando la parte è posizionato dove si desidera, fare clic con il tasto sinistro del mouse. Se la parte spostata ha già dei vincoli, la parte viene posizionata di conseguenza premendo il pulsante [[Image:A2p solver.svg|24px]] perché questo innesca la risoluzione di tutti i vincoli dell'assieme.
 * Per mostrare un vincolo selezionarlo nell'albero del modello e utilizzare il pulsante [[Image:A2p ViewConnection.svg|24px]]. Ciò rende l'intero assemblaggio trasparente e evidenzia i due elementi che sono connessi nel vincolo. Per tornare alla visualizzazione normale, fare clic con il tasto sinistro sull'assieme.
 * Per mostrare solo alcune parti nell'assieme, selezionare queste parti nell'albero del modello e utilizzare il pulsante [[Image:A2p Isolate Element.svg|24px]]. In alternativa si può nascondere una certa parte selezionandola nell'albero del modello e premendo per commutare la sua visibilità.
 * Per attivare la vista trasparenza dell'intero assieme, si può utilizzare il pulsante [[Image:A2p ToggleTransparency.svg|24px]].
 * Ogni parte può essere resa trasparente utilizzando la normale modalità di FreeCAD. Tuttavia a volte l'impostazione della trasparenza per le parti viene persa quando si riapre l'assieme a causa di un bug in FreeCAD. Per risolvere il problema, si può utilizzare il pulsante [[Image:A2p_Restore_Transparency.svg|24px]] della barra degli strumenti per ripristinare le impostazioni di trasparenza.

Vincoli
Quando si crea un vincolo, dopo aver premuto un pulsante della barra degli strumenti dei vincoli, viene visualizzata questa finestra di dialogo: . Per alcuni vincoli, consente di modificare la direzione del vincolo. Con il pulsante si può verificare in anteprima se questo nuovo vincolo può essere risolto con A2plus. In caso contrario, dare un'occhiata alla sezione Risoluzione dei problemi.

Constraints can be disabled by changing its visibility. This is done by selecting the constraint in the tree view and pressing. This toggles the property. A suppressed contsraint is not taken into account when the assembly is solved.

A2plus fornisce i seguenti vincoli:

Punto su punto
Selezionare un vertice (punto) su ciascuna parte. Il pulsante della barra degli strumenti aggiunge il vincolo. Rende i vertici coincidenti.

Punto sul linea
Selezionare un vertice (punto), o bordo circolare (seleziona il suo punto centrale), o una faccia sferica (seleziona anche il suo punto centrale) su una parte e un bordo sull'altra parte. Il pulsante della barra degli strumenti aggiunge il vincolo. Posiziona il vertice sul bordo.

Punto su piano
Selezionare un vertice (punto), o bordo circolare (seleziona il suo punto centrale), o una faccia sferica (seleziona anche il suo punto centrale) su una parte e un piano sull'altra parte. Il pulsante aggiunge il vincolo. La finestra di dialogo dei vincoli consente di specificare uno scostamento tra il punto e il piano. Questo offset può anche essere capovolto su entrambi i lati del piano. Se l'offset è zero, il vincolo posiziona il punto sul piano.

Sfera su sfera
Selezionare una faccia sferica o una vertice (punto) su entrambe le parti. Il pulsante aggiunge il vincolo. Rende il centro delle sfere, o il centro della sfera e il vertice, o i vertici coincidenti.

Bordo circolare sul bordo circolare
Selezionare un bordo circolare su entrambe le parti. Il pulsante aggiunge il vincolo. La finestra di dialogo dei vincoli consente di specificare un offset tra i bordi. Questo offset può anche essere invertito. È inoltre possibile impostare la direzione del vincolo e bloccare la rotazione delle parti. Se l'offset è zero, il vincolo posiziona i bordi concentrici sullo stesso piano.

Asse coincidente
Selezionare una faccia cilindrica o un bordo lineare su entrambe le parti. Il pulsante aggiunge il vincolo. La finestra di dialogo dei vincoli consente di specificare la direzione dell'asse. La finestra di dialogo consente inoltre di bloccare la rotazione delle parti. Il vincolo rende coincidenti gli assi o le linee.

Asse parallelo
Selezionare una faccia cilindrica o un bordo lineare su entrambe le parti. Il pulsante aggiunge il vincolo. La finestra di dialogo dei vincoli consente di specificare la direzione dell'asse. Il vincolo rende paralleli gli assi o le linee.

Asse su piano parallelo
Selezionare una faccia cilindrica o un bordo lineare su una parte e un piano sull'altra parte. Il pulsante aggiunge il vincolo. Il vincolo rende l'asse o la linea paralleli al piano.

Asse su piano normale
Selezionare una faccia cilindrica o un bordo lineare su una parte e un piano sull'altra parte. Il pulsante aggiunge il vincolo. Il vincolo rende l'asse o la linea normale rispetto al piano.

Axis on Plane angle
Select either a cylindrical face or a linear edge on one part and a plane on the other part. The toolbar button adds the constraint. The constraint will at first make the axis parallel to the plane. Then you can adjust the angle for the axis in the appearing constraint settings dialog.

Piano parallelo
Selezionare un piano su entrambe le parti. Il pulsante della barra degli strumenti aggiunge il vincolo. La finestra di dialogo dei vincoli consente di specificare la direzione del vincolo. Il vincolo rende paralleli i piani.

Piano su piano
Selezionare un piano su entrambe le parti. Il pulsante della barra degli strumenti aggiunge il vincolo. La finestra di dialogo dei vincoli consente di specificare una direzione del vincolo e un offset tra i piani. Questo offset può anche essere capovolto. Se l'offset è zero, il vincolo rende i piani coincidenti.

Angolo tra i piani
Selezionare un piano su entrambe le parti. Il pulsante aggiunge il vincolo. La finestra di dialogo dei vincoli consente di specificare un angolo tra i piani. Il vincolo rende i piani paralleli e imposta l'angolo specificato.

Coincidenza al centro di massa
Selezionare un bordo chiuso o un piano su entrambe le parti. Il pulsante aggiunge il vincolo. La finestra di dialogo dei vincoli consente di specificare un offset tra i bordi o i piani. Questo offset può anche essere capovolto. È inoltre possibile impostare la direzione del vincolo e bloccare la rotazione delle parti. Se l'offset è zero, il vincolo mette i bordi o i piani nello stesso piano.

Sottoassiemi
Un assieme può contenere altri assiemi. Vengono aggiunti come parti premendo il pulsante della barra degli strumenti e selezionando un file  contenente un assemblaggio. Tali sottoassiemi possono anche essere modificati come parti utilizzando il pulsante. Per fasi di assemblaggio più elevate, e in caso di modifiche, accertarsi di aggiornare l'assieme tramite il pulsante.

Gestione dei vincoli
I vincoli che possono essere selezionati vengono visualizzati nella barra degli strumenti e nella finestra di dialogo Constraint Tools attivando i pulsanti corrispondenti. La finestra di dialogo Constraint Tools si apre tramite il pulsante. È previsto che rimanga aperto per poter aggiungere rapidamente diversi vincoli all'assieme.

I vincoli esistenti possono essere modificati selezionandoli nell'albero del modello e quindi facendo doppio clic su di essi o utilizzando il pulsante della. Questo apre la finestra di dialogo Constraint Properties.

Constraints can be temporarily suppressed by selecting them in the model tree and changing the tree element property.

È possibile eliminare i vincoli selezionandoli nell'albero del modello e premendo o selezionando una parte con i vincoli nell'albero del modello e utilizzando il pulsante.

Tutti i vincoli possono essere risolti in qualsiasi momento con il pulsante. Se il pulsante della barra degli strumenti è attivato, viene eseguita automaticamente una risoluzione dopo ogni modifica di un vincolo.

Il pulsante ha effetto sull'ultimo vincolo aggiunto. Capovolge la direzione del vincolo.

Elenchi delle parti
Per creare degli elenchi di parti di assiemi, le diverse parti dell'assieme devono ottenere informazioni sulla parte che possano essere lette da A2plus. Questo viene fatto modificando la parte con il pulsante. Nella parte aperta premere il pulsante per creare un foglio di calcolo con il nome #PARTINFO#.

La struttura del foglio di calcolo è come questa:



Compilare i campi grigi con le informazioni che si hanno e che si vuole avere nella lista delle parti finali.

Nell'assemblaggio o nel sottoassieme, utilizzare il pulsante. Viene chiesto se si vuole fare una iterazione ricorsiva su tutti i sottoassiemi. Cliccare su "Sì". Questo crea un nuovo foglio di calcolo con il nome #PARTSLIST# . Contiene le informazioni dei diversi fogli di calcolo "#PARTSINFO#" delle parti in una lista come questa:



La posizione (POS) viene automaticamente impostata in base alla posizione delle parti nell'albero del modello. La parte di livello superiore ottiene POS 1. La quantità (QTY) viene calcolata automaticamente dall'assieme. Se una parte è presente due volte nell'assieme, ottiene QTY 2.

Se si sono aggiornate delle informazioni sulla parte, è possibile aggiornare di nuovo l'elenco delle parti premendo nuovamente il pulsante.

Per i sottoassiemi è anche possibile creare un foglio di calcolo delle informazioni utilizzando il pulsante. Quando si crea o si aggiorna l'elenco delle parti dell'assieme principale, queste informazioni vengono utilizzate se si clicca su "No" alla domanda se si desidera ripetere l'iterazione ricorsiva su tutti i sottoassiemi. Quindi le diverse parti non sono nell'elenco delle parti ma solo nei sottoassiemi.

Struttura dell'assemblaggio
Il pulsante crea un file HTML con la struttura dell'assieme. Per impostazione predefinita il file viene creato nella cartella del file dell'assemblaggio. La struttura assomiglia a questa:

Gradi di libertà
Il pulsante etichetta tutte le parti dell'assieme con i loro gradi di libertà. Inoltre genera una lista con tutte le parti e le loro dipendenze. L'elenco viene visualizzato nel widget di FreeCAD Vista Report. Se questo widget non è visibile, può essere mostrato facendo clic con il pulsante destro del mouse su una parte vuota dell'area della barra degli strumenti di FreeCAD e quindi selezionandolo nel menu di scelta rapida visualizzato o con il menu. Le etichette dei gradi di libertà possono essere rimosse facendo nuovamente clic sul pulsante.

Etichette delle parti
Il pulsante contrassegna nella vista 3D ogni parte dell'assieme con il proprio nome. Le etichette delle parti possono essere rimosse facendo nuovamente clic sul pulsante.

Forma dell'intero assemblaggio
A volte è necessario avere l'intero assemblaggio combinato in una unica forma. Questa forma può quindi essere utilizzata ad esempio per la stampa 3D nell'ambiente Mesh o per i disegni nell'ambiente TechDraw. Viene creata utilizzando il pulsante della barra degli strumenti. Di default la forma non è visibile. Utilizzare lo stesso pulsante della barra degli strumenti per aggiornare la forma in caso di modifiche all'assieme.

Convert absolute Paths to relative Ones
With the menu you can convert absolute paths of imported parts to relative ones.

Preferenze
Le preferenze di A2plus sono accessibili tramite il menu di FreeCAD, nella sezione A2plus. È possibile impostare le seguenti opzioni:

Metodo di risoluzione predefinito

 * Use solving of partial systems Il risolutore inizia con una parte che ha la proprietà impostata su "true" e una parte vincolata ad essa. Tutte le altre parti non sono calcolate. Se è possibile trovare una soluzione, la successiva parte vincolata viene aggiunta e calcolata e così via.
 * Use "magnetic" solver, solving all parts at once Il risolutore cerca di spostare tutte le parti contemporaneamente in direzione di una parte che ha la proprietà impostata su "true". Notare  che nella maggior parte dei casi questo richiede più tempo per il calcolo di una soluzione.
 * Force fixed position Questo imposta per tutte le parti dell'assieme la proprietà su true. Quindi non viene praticamente eseguito nessun calcolo poiché tutte le parti sono sempre fissate nelle posizioni in cui sono state create.

Comportamento predefinito del risolutore

 * Solve automatically if a constraint property is changed Il risolutore viene avviato automaticamente. Equivale ad attivare la funzione premendo il pulsante [[Image:A2p ToggleAutoSolve.svg|24px]].

Comportamento durante l'aggiornamento delle parti importate

 * Recalculate imported parts before updating them Tutte le parti dell'assieme, compresi i sottoassiemi, vengono aperte in FreeCAD per essere ricostruite utilizzando i valori dei fogli di calcolo. Questa funzione è progettata per vincolare in modo completamente parametrico. Nota: Questa funzione è molto sperimentale e non è consigliata per progetti importanti. Problemi noti:
 * L'assemblaggio può essere distrutto a causa di riferimenti errati ai nomi topologici nelle parti.
 * I fogli di calcolo Master possono rompersi quando vengono modificati mentre un file di una parte di riferimento è già stato chiuso. Questo può causare un arresto anomalo di FreeCAD.


 * Enable recursive update of imported parts Apre tutti i sottoassiemi in modo ricorsivo per aggiornarli.


 * Use experimental topological naming Durante l'importazione di parti nell'assieme, un algoritmo genera dei nomi topologici per ciascun sottoelemento della forma importata. I nomi topologici sono scritti in . Quando è necessario aggiornare una parte importata, questi nomi topologici vengono utilizzati per aggiornare i sottoelementi dei vincoli. Quindi gli assemblaggi diventano più robusti rispetto ai numeri volatili dei sottoelementi di FreeCAD. Nota: Questo aumenta però le dimensioni dei file e il tempo di calcolo durante l'importazione delle parti. Se è necessario utilizzare la denominazione topologica, bisogna attivarla prima di creare l'assemblaggio.


 * Inherit per face transparency from parts and subassemblies Usa le impostazioni di colore e la trasparenza delle parti importate. Nota: Questa funzione è ancora molto sperimentale e non consigliata per progetti importanti.


 * Do not import invisible shapes Questo nasconde le forme di costruzione o di riferimento invisibili. Nota: Nessun vincolo deve essere collegato alle origini o agli oggetti di costruzione in sottoinsiemi o in insiemi superiori, altrimenti l'assemblaggio puoi rompersi.


 * Use solid union for importing parts and subassemblies Tutte le parti importate vengono create direttamente come unione. Questa funzione è utile per le FEM o per la stampa 3D se è consentito un solo solido. L'alternativa è creare in seguito una Forma dell'intero assemblaggio.

Impostazioni dell'interfaccia utente

 * Show constraints in toolbar Per risparmiare spazio, se questa opzione non viene utilizzata, i pulsanti della barra degli strumenti per i diversi vincoli non sono visibili. È comunque possibile impostare dei nuovi vincoli utilizzando la finestra di dialogo Constraint Tools (il pulsante [[Image:A2p DefineConstraints.svg|24px]]) della barra degli strumenti.

Archiviazione dei file

 * Use relative paths for imported parts Utilizza i percorsi dei file relativi ai file delle parti.
 * Use absolute paths for imported parts Utilizza i percorsi di file assoluti per i file delle parti.
 * All files are in this project folder: Tutti i file del progetto devono trovarsi nella cartella specificata. Non importa se si trovano in sottocartelle di questa cartella. Nota: Nessun file può esistere più volte nella cartella (ad esempio in diverse sottocartelle). Questa opzione è utile per lavorare su macchine diverse perché in questo caso è sufficiente copiare la cartella del progetto.

Risoluzione dei problemi
Prima o poi si incontrano dei problema che A2plus non può risolvere i vincoli che sono stati imposti. Per superare questo, ci sono diverse strategie:

Controllo della direzione dei vincoli
Talvolta i vincoli sembrano essere coerentemente definiti, tuttavia non possono essere risolti. Un esempio: si supponga di avere un set di vincoli per due piani. Ora si vuole impostare per gli stessi piani il vincolo  e A2plus non può risolverlo. Questo succede perchè le direzioni dei vincoli di e di  sono diverse. Utilizzare la stessa direzione per entrambi i vincoli per risolvere questo problema.

Eliminazione dei vincoli
La maggior parte dei casi di vincoli irrisolvibili si verifica direttamente quando si aggiunge un nuovo vincolo. La soluzione è quindi eliminare il vincolo aggiunto per ultimo. A2plus lo propone anche.

A volte la strategia di cancellazione dei vincoli è l'unica applicabile, ad esempio quando si modifica una parte in FreeCAD in modo che dopo mancano facce o spigoli collegati a vincoli. Si dovrebbe quindi eliminare uno dopo l'altro i vincoli che sono collegati alla parte modificata. Usare il pulsante della barra degli strumenti dopo ogni cancellazione per vedere se si è raggiunto uno stato risolvibile.

Quando si ottiene un assemblaggio che può essere risolto, aggiungere passo dopo passo i vincoli necessari.

Parti mobili
In alcuni casi, il risolutore necessita solo di valori di avvio migliori per risolvere i vincoli. Prendiamo ad esempio il caso che si abbia una parte asse e una parte ruota. Si aggiunge un vincolo e non si ottiene alcuna informazione che il risolutore abbia avuto esito negativo, ma le parti non vengono spostate di conseguenza e nel widget Vista Report di FreeCAD viene visualizzato "REACHED  POS-ACCURACY :0.0". Una soluzione per questo è spostare le parti più vicino alla posizione che si desidera ottenere dal vincolo.

Nota: Assicurarsi che almeno una parte del vincolo abbia la proprietà impostata su false.

Impostazione della proprietà Tip - Entità finale
Se dopo l'importazione in un assieme di A2plus, mancano alcune funzioni della parte controllare la proprietà. A2plus importa i corpi delle parti con tutte le loro funzioni fino alla funzione finale, la funzione Tip. Questo è sensato perché impostare la funzione finale su una determinata funzione significa che tutte le funzioni sottostanti la funzione finale non dovrebbero apparire nell'entità finale. Quindi se in A2plus si perde una parte di funzioni, aprire la parte tramite il pulsante, selezionare un corpo e guardare la sua proprietà. Se l'entità finale non è nella funzione in cui la si desidera, fare clic con il pulsante destro del mouse sulla funzione in cui dovrebbe trovarsi e scegliere. Infine salvare la parte e ricaricare l'assieme usando il pulsante.

Riparare l'albero dell'assieme
Se non si riesce a trovare una ragione chiara per cui alcuni vincoli non possono essere risolti, si può provare a utilizzare il pulsante. Questo risolve tutti i vincoli e li raggruppa di nuovo sotto le diverse parti.

Migrating old A2plus assemblies
Assemblies created with A2plus older than March 2019 do not show the correct icons for imported parts and have obsolete properties. These assemblies can be migrated to A2plus version 0.4.35 and newer using the menu. After doing this, you must save and reopen your assembly file.

Evitare i caratteri accentati
This strategy is not necessary for Windows.

Su alcuni sistemi operativi si possono avere problemi se i nomi dei file o i percorsi dei file delle parti o dell'assieme contengono caratteri accentati. Quindi evitare tali caratteri e tutti i caratteri speciali in generale.

Posizione di fissaggio
Questa strategia non è più necessaria per gli assemblaggi creati con A2plus 0.3.11 o successivi perché ora A2plus presenta un avvertimento per le posizioni fisse mancanti.

Quando si imposta un vincolo tra due parti e nessuna parte ha la proprietà impostata su true o è connessa da un vincolo a un'altra parte con  impostato su true, il vincolo non può essere risolto. Lo stesso accade se entrambe le parti del vincolo hanno impostata su true.

In questi casi A2plus restituisce l'informazione che la soluzione non è possibile, ma a volte si vede solo che le parti non vengono spostate di conseguenza e nel widget Report di FreeCAD viene visualizzato "REACHED POS-ACCURACY :0.0". Ciò significa che il risolutore ha completato la risoluzione senza errori, ma che in realtà non è stato in grado di risolvere i vincoli.

Pertanto, verificare che almeno una delle parti nell'assieme abbia impostata su "true". Quindi assicurarsi di impostare solo i vincoli su una parte che è in qualche modo collegata alla parte fissa. Per visualizzare queste dipendenze, vedere la sezione Struttura dell'assemblaggio.

Parti rotanti
Questa strategia non è più necessaria per gli assiemi creati con A2plus 0.4.0 o successivi perché ora A2plus ruota le parti automaticamente un po' in background per ottenere un angolo iniziale sufficiente per il risolutore.

Il risolutore spesso fallisce con il vincolo se i due piani selezionati hanno un angolo attuale di 0 ° o 180 °. (Le parti non vengono spostate di conseguenza e nel widget Report di FreeCAD si vede "REACHED POS-ACCURACY :0.0".) Una soluzione per questo è di ruotare una parte di alcuni gradi usando la funzione Trasforma di FreeCAD (fare clic con il tasto destro sulla parte nell'albero del modello e selezionare  nel menu di scelta rapida).

Nota: Assicurarsi che almeno una parte del vincolo abbia la proprietà impostata su false.

Animazione
A2plus offers animations via dragging and via Python scripts.

Dragging
Dragging animations are interactive since you trigger it by dragging a part of the assembly. To get these kind of animations:
 * 1) Fully constrain the part whose movement or rotation should be animated
 * 2) Click on the toolbar button [[Image:A2p MovePartUnderConstraints.svg|24px]]. This enables the dragging mode.
 * 3) Click on the desired part in the assembly.
 * 4) Now you can move the mouse and the part will follow the movement of the mouse within the defined constraints.
 * 5) To end the dragging mode, left click in the assembly or press ESC.

Here is an example assembly to try out the dragging animation: A2p_example-for-dragging-animation.FCStd

This is the dragging animation using the example assembly:



Scripting
Despite the dragging mode offers nice interactive animations, they are sometimes not precise enough for screencasts or videos. Scripted animations have the advantage that they animate movements and rotations in a defined way. You can for example rotate a part by exactly 10° back and forth. The following examples use an assembly where a part should be rotated. If you try to animate this using the dragging mode, you will see how hard it is to get a back and forth rotation that you can e.g. show your boss in a presentation. With the interactive example script, however, this is an easy task.

A scripted animation works usually this way:
 * 1) The assembly is fully constrained
 * 2) The script changes a parameter, for example the position or rotation angle of a part
 * 3) After the parameter change, the assembly constraints are solved
 * 4) Step 2. and 3. are repeated to get the animation

It is also possible to change instead of a placement parameter a constraint, for example the distance between 2 planes.

Simple Script Example
The simplest way to script an animation is a non-interactive animation that follows a defined movement. Here is an example: First download this assembly file: A2p_animated-example.FCStd and also this Python script: A2p_animation-example-script.py.

This is the content of the script and the lines beginning with a '#' describe what the different script lines do:

To use the script to perform the animation, we must
 * 1) Open the assembly file in FreeCAD.
 * 2) Open the script file in FreeCAD.
 * 3) Click on the toolbar button [[Image:Menu_Std_DlgMacroExecute_fr_02.png|24px]] to execute the script (also called macro).
 * 4) Change to the tab of the assembly to see the rotation.

To practice, just change something in the script and execute it afterwards. For example increase step to 5.

This is the result of the example animation:



Interactive Script Example
The first script example demonstrated how to create an animation without any user feedback. For most applications you need to interact with the animation. For example the interesting issue in the example is to see how the driving pins cross the center groove of the wheel. To have a closer look you might present this detail to your colleagues or boss. Therefore you need an interactive solution.

This can be done by using a custom animation dialog with a slider. By moving the slider you can set the rotation angle and therefore rotate back and forth at interesting position.

We use the same assembly file: A2p_animated-example.FCStd and this Python script: A2p_animation-example-script.py.

This is the content of the script to get the interactive animation dialog:

The dialog defined in the script looks like this:

Script Commands
To understand the script syntax better, here is some command info:

The command means, we change the placement property Rotation.Angle of the part get got previously as "starWheel". This property gets the angle as radian. The function radians from the library math converts the angle from degree to radian.

The property Rotation.Angle uses the current placement axis of the part (in our example the x-axis). To rotate the part e.g. around the z-axis one can set the rotation axis (before calling the rotation command) using the command

Instead of rotating, parts can also be moved. To change for example the placement in y-direction of the wheel, the command would be In this case we would not define the variable angle but  PositionShift that we change on every loop run. There are different ways to set the placement of a part. Some are documented here. Unfortunately there is no list with all possible placement commands.

The command is a A2plus-specific command. It solves the assembly constraints of the assembly we previously got as "document". The option useTransaction specifies if FreeCAD should store every change in the undo/redo stack. For large animations you might therefore set it to False.