Variabili Dinamiche

[[ZSpeed]]
Velocità in micron/secondo, calcolata in base alla velocità di avvio/minima/massima/lenta nella pagina delle impostazioni. Viene utilizzato il risultato della velocità dinamica.
[[ZLiftDistance]]
l'altezza di sollevamento dopo stampa a per ogni strato in millimetri. Sarà utilizzato il risultato di sollevamento dinamico.
[[SyscallResult]]
Se una casella GCODE è associata all'esecuzione esterna, il risultato dell'esecuzione può essere utilizzato all'interno della casella GCODE.

Codice di 'Controllo'

[[LayerChange layer]]
Cambia lo Strato es. [[LayerChange 22.1]]
[[PositionSet mm]]
Aggiorna la posizione assoluta attuale es. [[PositionSet 22.1]]
[[PositionChange mm]]
Aggiorna la posizione relativa attuale es. [[PositionChange -2.1]]

Codice di 'Azione'

[[DisplayLayer LayerID]]
Visualizza lo strato indicato della piastra attuale es. [[DisplayLayer 10]]
[[Blank]]
Svuota lo schermo
[[LayerSkip Value]]
Per i valori positivi, salta un livello es. [[LayerSkip 1]]

Ignora tutti i compiti rimanenti del GCode sull'attuale livello e inizia il livello successivo.

Un'esempio di un'utilizzo più avanzato [[LayerSkip ((100>[[PixDiff]])*(1-[[SkippedLayers]])*([[LayerNumber]]>3))]]
Il codice di cui sopra potrebbe causare il salto dei livelli dopo i primi tre se un livello prima di quello corrente non è stato ignorato e la differenza tra lo strato precedente e quello corrente è inferiore a 100 pixel.
[[Delay Seconds]]
Inserisce un ritardo es. [[Delay 1.23]]
[[WaitForDoneMessage]]
In attesa del messaggio Z_move_comp da RAMPS o schede simili
[[Pause]]
Sospende la stampa, richiede il riavvio dal pannello di controllo per continuare

Codice di 'Comunicazione'

[[Net URL]]
Invia richiesta all'URL specificato senza aspettare il risultato es. [[Net http://example.com/api]]
[[NetReturn URL]]
Invia richiesta all'URL specificato e invia il risultato a RAMPS es. [[NetReturn http://127.0.0.1/gcode?layer=[[LayerNumber]]]]
[[Exec Command]]
Esegue il comando esterno senza aspettare il risultato es. [[Exec python my_python_script.py]]
[[ExecReturn Command]]
Esegue il comando esterno e invia il risultato a RAMPS es. [[ExecReturn python my_python_script.py]]

Codice 'Hardware'

[[GPIOWaitForLow]]
In attesa della risposta "wait pin" che il GPIO sia LOW
[[Projector Command]]
Invia qualsiasi comando al proiettore es. [[Projector \x01\x02\x03 On]]
[[GPIOHigh GPIO]]
Segna tutti i GPIO come HIGH es. [[GPIOHigh 12]]
[[GPIOLow GPIO]]
Segna tutti i GPIO come LOW

Sincronizzazione dei movimenti

NanoDLP non ha conoscenza di quanto tempo ci vorrà per completare un movimento. Ci sono un paio di modi per risolvere questo problema.

1. Usando il codice [[Delay Seconds]]
È possibile mettere il ritardo dopo ogni movimento. È il metodo piÙ utilizzato.
G1 Z1.1
[[Delay 1.5]]

2. Usando il codice [[GPIOWaitForLow]]
Per sincronizzare i movimenti, nanoDLP attende che il pin sia LOW. All'inizio del movimento, i Driver di controllo devono fare questo pin HIGH e alla fine del movimento invece LOW. Il ritardo massimo per il rilevamento è 1ms.
G1 Z1.1
[[GPIOWaitForLow]]

3. Usando il codice [[WaitForDoneMessage]]
Utilizzando un Firmware modificato grbl / marlin è possibile ottenere movimenti sincronizzati.Dopo aver visto il suddetto codice, nanoDLP attende la risposta Z_move_comp da RAMPS.
G1 Z1.1
[[WaitForDoneMessage]]


Ripristino dei guasti(blocchi improvvisi)

L'utilizzo delle impostazioni corrette è la chiave per il recupero di guasti e per trarre beneficio da nanoDLP. Un modo per farlo è delegare il posizionamento a nanoDLP.
Segui i codici di esempio riportati di seguito per capire come delegare il posizionamento a nanoDLP. In questo modo, oltre al recupero dei guasti, la stampante si ferma e altre funzioni inizieranno a lavorare.

Avvio della Stampa
G90 ; Mette il posizionamento in modalità assoluta
G28 ; posiziona il piano nella posizione di Home
[[WaitForDoneMessage]] ;Attende che il movimento sia completato, richiede che firmware venga modificato per Z_move_comp, se non si desidera utilizzare un firmware modificato è possibile utilizzare [[Delay n.n]]
[[PositionSet 0]] ; Imposta la posizione corrente su nanodlp in modo da poter recuperare in caso di guasto

Prima di ogni Strato
G1 Z[[LayerPosition]] ; Passa alla posizione dello strato
[[WaitForDoneMessage]] ; Attende che il movimento sia terminato
[[PositionSet [[LayerPosition]]]] ; Salva la posizione dello strato come posizione corrente

Dopo ogni Strato
G1 Z{[[LayerPosition]]+[[ZLiftDistance]]} ; Solleva in posizione di attesa
[[WaitForDoneMessage]] ; Attende che il movimento sia terminato
[[PositionChange [[ZLiftDistance]]]] ; Aggiorna ancora la posizione

Riavvio Stampa
G90 ; Mette il posizionamento in modalità assoluta
G92 Z[[CurrentPosition]] Y0 X0 ; Il sistema si è bloccato così abbiamo bisogno di recuperare la posizione corrente da nanodlp e impostarla su RAMPS
G1 Z[[LayerPosition]] ; Passa alla posizione dello strato
...