G-code/it

From RepRap
Revision as of 12:30, 11 October 2018 by Zonalimitatore (talk | contribs) (Created page with "{{Languages|G-code}} Questa pagina cerca di descrivere il '''Codice-G''' che viene usato nei firmware RepRap, e come funzionano. L'obbiettivo principale è la fabbricazione u...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


Questa pagina cerca di descrivere il Codice-G che viene usato nei firmware RepRap, e come funzionano. L'obbiettivo principale è la fabbricazione usando i processi FFF. I codici per stampare e per il movimenti della testina seguono lo standard NIST RS274NGC G-code standard, quindi i firmware RepRap sono abbastanza utilizzabili per la fresatura CNC e applicazioni simili. Vedi anche Articolo Wikipedia sul Codice-G.

Ci sono differenti modi di creare un codice G per la stampa. Un metodo sarebbe quello di utilizzare un programma di slicing come Slic3r, Skeinforge o Cura. Questi programmi importano il modello CAD, lo "affettano" in strati, restituendo il Codice-G richiesto per stampare ogni strato. Gli Slicers sono il modo più semplice per avere parti stampabili partendo da un modello 3D , tuttavia l'utente sacrifica una certa flessibilità usandoli. Un altro modo per generarlo è utilizzando una libreria di basso livello come mecode. Le librerie come mecode danno un preciso controllo sul percorso che dovrà fare l'utensile, e quindi sono utili se si deve fare una stampa complessa che non è molto adatta da dare in pasto agli slicer. L'ultima opzione è scrivere tu stesso il Codice-G. Questa potrebbe essere la scelta migliore se hai solo bisogno di eseguire alcune linee di test durante la calibrazione della stampante.

Esistono molti firmware diversi e i loro sviluppatori tendono a implementare nuove funzionalità senza discutere strategie o guardare ciò che gli altri hanno fatto prima di loro, Diversi tipi di varianti sono stati sviluppati nel corso degli anni,specifici per la stampa 3D. Questa particolare pagina è la pagina "maestro" per RepRap. Da nessuna parte qui dovrebbe essere usato lo stesso codice per due cose diverse; ci sono sempre più numeri da usare ... La regola è: 'aggiungi qui il tuo nuovo codice, quindi implementalo' .Sfortunatamente, essendo la natura umana quella che è, le migliori procedure non sono sempre seguite, quindi esistono più usi dello stesso codice. La regola da seguire è che le nuove apparizioni di un codice su questa pagina (più tardi rispetto all'uso originale di un codice), sono deprecate e dovrebbero essere cambiate, a meno che non ci sia un buon motivo tecnico (come lo standard Codice-G) perché un'istanza successiva dovrebbe essere preferita. Nota che la chiave data qui è l'aspetto, non l'implementazione.

Introduzione

Una tipica stringa di Codice-G usato in RepRap può essere così:

N3 T0*57
N4 G92 E0*67
N5 G28*22
N6 G1 F1500.0*82
N7 G1 X2.0 Y2.0 F3000.0*85
N8 G1 X3.0 Y3.0*33

Il Codice-G può anche essere messo su schede SD. Un file che contiene il Codice-G RepRap Gcode ha solitamente l'estensione .g, .gco o .gcode. I file per BFB/RapMan hanno come estensione .bfb. Un file o prodotto da un slicer potrebbe assomigliare a questo:

G92 E0
G28
G1 F1500
G1 X2.0 Y2.0 F3000
G1 X3.0 Y3.0

Il significato di tutti i simboli e numeri (ed altro) è spiegato sotto.

Gli slicers potranno (opzionalmente) aggiungere scripts all'inizio e alla fine al file finale,per fare specifiche azioni prima e/o dopo ogni stampa,come azzerare l'asse Z al piano di stampa, riscaldare/raffreddare il piano o l'hotend, l'esecuzione di routine "pulizia ugello" all'inizio , cambiare lo stato on/off, ed eventualmente "espellere" parti. Più informazioni in Start GCode routines e End GCode routines .

Per scoprire quali specifici Gcode sono implementati in un determinato firmware, ci sono alcune tabelle allegate alle descrizioni dei comandi, come questa: Template:Firmware Supporto

Che significa:

{{si}}
Il Codice-G è completamente supportato dal firmware.
{{partial}} or {{experimental}}
C'è un po di supporto per il Codice-G. Spesso è necessario controllare il codice sorgente del firmware (di solito memorizzato in un sorgente diverso) o capovolgere gli interruttori di configurazione sulla scheda madre.
{{automatico}}
Il firmware gestisce questo Codice-G automaticamente, quindi non è necessario inviare il comando. Un esempio è l'accensione / spegnimento dell'alimentatore Codice-G (M80 / M81) nel firmware Teacup.
{{???}}
Non è noto se il firmware supporta questo Codice-G. Si consiglia di testarlo da soli prima di utilizzarlo in produzione.
{{no}}
Il firmware non supporta questo Codice-G.
{{deprecato}}
Il firmware ha deprecato questo Codice-G. Gli autori del firmware dovrebbero modificare il codice-G deprecato in questa pagina con soluzioni alternative (se necessario) e l'ultima versione del firmware supportata che accetterà questo Codice-G.

Per gli utenti più "tecnici", le terminazioni di linea del Codice-G sono Unix Line Endings ( \ n </ code>), ma accetteranno i fine linea di Windows (<code> \ r \ n </ code>), quindi non è necessario preoccuparsi della conversione tra i due, ma è preferibile utilizzare Unix Line Endings ove possibile.

Fields

Un Codice-G RepRap è un elenco di campi separati da spazi bianchi o interruzioni di riga. Un campo può essere interpretato come un comando, parametro, o per qualsiasi altro scopo speciale. Consiste di una lettera seguita direttamente da un numero o può essere solo una lettera autonoma (Flag). La lettera fornisce informazioni sul significato del campo (vedere l'elenco di seguito in questa sezione). I numeri possono essere numeri interi (128) o frazionari (12.42), a seconda del contesto. Ad esempio, una coordinata X può assumere numeri interi (<code> X175 </ code>) o frazionali (<code> X17.62 </ code>), ma selezionare il numero di estrusore 2.76 non avrebbe senso. In questa descrizione, i numeri nei campi sono rappresentati da <code> nnn </ code> come segnaposto.

Nel firmware RepRap, alcuni parametri possono essere seguiti da più di un numero, con i due punti utilizzati per separarli. Tipicamente questo è usato per specificare i parametri dell'estrusore, con un valore fornito per estrusore. Se viene fornito un solo valore in cui è necessario un valore per ciascun estrusore, tale valore viene applicato a tutti gli estrusori.

Lettera Significato
Gnnn Comando Codice-G standard, come movimento in un punto
Mnnn Comando definito da RepRap, come accendere una ventola
Tnnn Selezione strumento nnn. In RepRap, uno strumento è in genere associato a un ugello, che può essere alimentato da uno o più estrusori.
Snnn Comando parametro, come tempo in seconndi; temperature; voltaggio da mandare al motore
Pnnn Comando parametro, come tempo in millisecondi; proporzionale (Kp) in PID Tuning
Xnnn Una coordinata X, solitamente da muovere. Questo può essere un numero intero o un numero frazionario.
Ynnn Una coordinata Y, solitamente da muovere. Questo può essere un numero intero o un numero frazionario.
Znnn Una coordinata Z, solitamente da muovere. Questo può essere un numero intero o un numero frazionario.
U,V,W Coordinate di assi aggiuntivi (RepRapFirmware)
Innn Parametro - X-offset in un movimento ad arco; integrale (Ki) in PID Tuning
Jnnn Parametro - Y-offset in un movimento ad arco
Dnnn Parametro - usato per il diametro; derivato (Kd) in PID Tuning
Hnnn Parametro - utilizzato per il numero di riscaldatore in PID Tuning
Fnnn Avanzamento (feedrate) in mm al minuto. (Velocità del movimento della testina di stampa)
Rnnn Parametro - usato per le temperature
Qnnn Parametro - attualmente non usato
Ennn Lunghezza da estrudere. Esattamente come X, Y e Z, ma per la lunghezza del filamento da consumare.
Nnnn Numero di linea. Utilizzato per richiedere la ripetizione della trasmissione in caso di errori di comunicazione.
*nnn Checksum. Usato per controllare errori nella comunicazione.

Case sensitivity

Lo standard originale NIST Codice-G richiede che l'interprete del Codice-G sia case-insensitive, tranne per i commmenti. Tuttavia, non tutti i firmware di stampanti 3D sono conformi a questo e alcuni riconoscono solo lettere di comando in maiuscolo e parametri.

Firmwares che son conosciuti come case-insensitive
RepRapFirmware versione 1.19 e successive (tranne all'interno di stringhe citate)
Firmwares che son conosciuti come case-sensitive
RepRapFirmware version 1.18 e precedenti

Stringhe Quotate

Nel firmware RepRap, alcuni comandi supportano la stringa quotata quando si forniscono nomi di file e altri parametri di stringa. Questo permette nomi di file, WiFi password etc. di contenere spazi, semicolonne e altri caratteri che non sarebbero permessi. I caratteri a doppia virgola vengono utilizzati per delimitare la stringa e ogni carattere in doppia virgoletta all'interno della stringa deve essere ripetuto.

Sfortunatamente, alcuni programmi che mandano il Codice-G convertono tutti i caratteri in maiuscolo non permettendo di cambiare questa funzione. Pertanto, all'interno di una stringa quotata, il carattere a virgoletta singola viene utilizzato come flag per forzare il seguente carattere in lettere minuscole. Se si desidera includere un carattere in virgoletta singola nella stringa, utilizzare due virgolette singole per rappresentare un singolo carattere di virgoletta.

Esempio: per aggiungere SSID MYROUTER con la password <code>ABCxyz;" 123 alla lista delle reti WiFi, usa il comando:

M587 S"MYROUTER" P"ABCxyz;"" 123"

o se non puoi mandare caratteri minuscoli:

M587 S"MYROUTER" P"ABC'X'Y'Z;"" 123"

Commenti

I commenti nel Codice-G, iniziano con un punto e virgola e terminano alla fine della riga:

N3 T0*57 ; Questo è un commento
N4 G92 E0*67
; Quindi è cosiì
N5 G28*22

Alcuni firmware obbediscono anche allo standard Codice-G del CNC, che consiste nel racchiudere i commenti tra parentesi tonde. I commenti di questo modulo devono iniziare e terminare sulla stessa riga:

(Origine assi)
G28 (qui l'asse da mandare a fare lo zero) X Y

Commenti e spazi bianchi saranno ignorati dalla tua stampante RepRap. È meglio lasciarli sul computer host prima di inviare il Codice-G alla stampante, in quanto ciò consente di risparmiare larghezza di banda.