G-code/it

From RepRap
Revision as of 18:50, 12 October 2018 by Zonalimitatore (talk | contribs)
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 ha solitamente l'estensione .g, .gco o .gcode. I file per BFB/RapMan hanno come estensione .bfb. Un file 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:

Support Marlin RepRapFirmware Klipper Prusa Buddy Repetier Smoothie Druid MK4duo
Partial ??? ??? ??? ??? Experimental Deprecated ??? Partial
grbl Sprinter BFB FiveD Machinekit Redeem Teacup Yaskawa MakerBot
??? No ??? Yes ??? Yes Automatic ??? ???

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.

Campi

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 è così
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.

Campi Speciali

N: Line number

Support Marlin RepRapFirmware Klipper Prusa Buddy Repetier Smoothie Druid MK4duo
Yes Yes ??? ??? ??? Yes ??? ??? Yes
grbl Sprinter BFB FiveD Machinekit Redeem Teacup Yaskawa MakerBot
??? Yes ??? Yes Yes Yes Yes ??? ???
Esempio
N123

Se presente, il numero di riga dovrebbe essere il primo campo di una riga. Per il codice G memorizzato nei file su schede SD, il numero di riga viene generalmente omesso.

Se il controllo è supportato, il firmware RepRap prevede che i numeri di riga aumentino di 1 ogni riga e, se ciò non accade, viene contrassegnato come un errore. Ma puoi resettare il conteggio usando M110 </ code> (vedi sotto).

Sebbene supportato, l'utilizzo di N in Machinekit è scoraggiato in quanto non serve a nulla.

*: Checksum

Support Marlin RepRapFirmware Klipper Prusa Buddy Repetier Smoothie Druid MK4duo
Yes Yes ??? ??? ??? Yes ??? ??? Yes
grbl Sprinter BFB FiveD Machinekit Redeem Teacup Yaskawa MakerBot
??? Yes ??? Yes ??? No Yes ??? ???

Esempio: <code>*71

Se presente, il checksum dovrebbe essere l'ultimo campo di una riga, ma prima di un commento. Per il codice G memorizzato nei file su schede SD, il checksum viene generalmente omesso.

Il firmware confronta il checksum con un valore calcolato localmente. Se differiscono, richiede una ripetizione della trasmissione della linea.

Checking

Support Marlin RepRapFirmware Klipper Prusa Buddy Repetier Smoothie Druid MK4duo
Yes Yes ??? ??? ??? Yes ??? ??? Yes
grbl Sprinter BFB FiveD Machinekit Redeem Teacup Yaskawa MakerBot
??? Yes ??? Yes ??? No Yes ??? ???
}
Esempio
N123 [...G Code qui...] *71

Il firmware RepRap controlla il numero di riga e il checksum. Puoi lasciare entrambi fuori - RepRap funzionerà ancora, ma non controllerà. Devi avere entrambi o nessuno dei due però. Se appare solo uno, produce un errore.

Il checksum "cs" per una stringa Codice-G "cmd" (compreso il suo numero di riga) viene calcolato esorizzando i byte nella stringa fino a e non includendo il carattere * come segue:

int cs = 0;
for(i = 0; cmd[i] != '*' && cmd[i] != NULL; i++)
   cs = cs ^ cmd[i];
cs &= 0xff;  // Programmazione difensiva...

e il valore viene aggiunto come intero decimale al comando dopo il carattere *.

Buffering

Support Marlin RepRapFirmware Klipper Prusa Buddy Repetier Smoothie Druid MK4duo
Yes Yes ??? ??? ??? ??? ??? ??? Yes
grbl Sprinter BFB FiveD Machinekit Redeem Teacup Yaskawa MakerBot
Yes ??? ??? Yes ??? Yes Yes ??? ???

Se è supportato il buffering, il firmware RepRap memorizza internamente alcuni comandi in un ring buffer per l'esecuzione. Ciò significa che non vi è alcun ritardo (apprezzabile) mentre un comando viene riconosciuto e il successivo trasmesso. A sua volta, ciò significa che le sequenze di segmenti di linea possono essere tracciate senza una pausa tra l'una e l'altra. Non appena viene ricevuto uno di questi comandi buffer, viene riconosciuto e memorizzato localmente. Se il buffer locale è pieno, il riconoscimento viene ritardato finché non è disponibile spazio per la memorizzazione nel buffer. Ecco come si ottiene il controllo del flusso.

In genere, i seguenti comandi di spostamento sono memorizzati nel buffer: G0-G3 e G28-G32. Il Teacup Firmware fa da buffer anche questi comandi: G20, G21, G90 e G91. Tutti gli altri G, M o T non vengono bufferati.

RepRapFirmware implementa anche una coda interna per garantire che determinati codici (come M106) siano eseguiti nell'ordine corretto e non quando l'ultima mossa è stata aggiunta alla coda look-ahead.

Quando viene ricevuto un comando senza buffer, viene memorizzato, ma non viene riconosciuto all'host fino a quando il buffer non viene esaurito e quindi il comando è stato eseguito. Quindi l'host si fermerà su uno di questi comandi finché non sarà stato eseguito. Brevi pause tra questi comandi e quelli che potrebbero seguirli non influiscono sulle prestazioni della macchina.


Comandi-G

G0 & G1: Movimento

Support Marlin RepRapFirmware Klipper Prusa Buddy Repetier Smoothie Druid MK4duo
Yes Yes ??? ??? ??? Yes Yes ??? Yes
grbl Sprinter BFB FiveD Machinekit Redeem Teacup Yaskawa MakerBot
Yes Yes Yes Yes Yes Yes Yes ??? Yes


  • G0 : Movimento rapido lineare
  • G1 : Movimento lineare
Uso
G0 Xnnn Ynnn Znnn Ennn Fnnn Snnn
G1 Xnnn Ynnn Znnn Ennn Fnnn Snnn
Parametri
Not tutti i parametri hanno bisogno di essere usati, ma almeno uno dev'essere usato
Xnnn La posizione in cui spostarsi sull'asse X
Ynnn La posizione in cui spostarsi sull'asse Y
Znnn La posizione in cui spostarsi sull'asse Z
Ennn La quantità da estrudere tra il punto iniziale e il punto finale
Fnnn L'avanzamento al minuto del movimento tra il punto iniziale e il punto finale (se fornito)
Snnn Contrassegna per verificare se è stato toccato un fine corsa (S1 controllare, S0 ignorare, S2 vedi nota, il valore predefinito è S0)1
Esempi
G0 X12               ; Muovi di 12mm sull'asse X
G0 F1500             ; Imposta l'avanzamento a 1500mm/minuto
G1 X90.6 Y13.8 E22.4 ; Muovi di 90.6mm sull'asse X e 13.8mm sulla Y mentre estrudi 22.4mm di materiale

Le specifiche del firmware RepRap considerano G0 e G1 come lo stesso comando, poiché è altrettanto efficiente che non farlo. 2

La maggior parte dei firmware RepRap fa cose sottili con gli avanzamenti

G1 F1500           ; Imposta avanzamento a 1500mm/m
G1 X50 Y25.3 E22.4 ; Muovi ed estrudi

Nell'esempio sopra, per prima cosa impostiamo la velocità di avanzamento su 1500mm / m, quindi spostiamoci su 50mm su X e 25.3mm su Y mentre estrai 22.4mm di filamento tra i due punti.

G1 F1500                 ; Avanzamento 1500mm/m
G1 X50 Y25.3 E22.4 F3000 ; Accelerazione a 3000mm/m

Tuttavia, nell'esempio sopra, impostiamo una velocità di avanzamento di 1500 mm / m, quindi eseguiamo la stessa mossa, ma accelerando a 3000 mm / m. Tutto rimane sincronizzato, quindi l'estrusione accelera proprio con il movimento X e Y.

La specifica RepRap considera l'avanzamento come semplicemente un'altra variabile (come X, Y, Z ed E) da interpolare linearmente. Ciò consente il controllo completo dell'accelerazione e della decelerazione della testina della stampante in modo tale da garantire che tutto si muova armoniosamente e il giusto volume di materiale venga estruso in tutti i punti. 3

Per invertire l'estrusore di una certa quantità (ad esempio per ridurne la pressione interna mentre fa un movimento in aria in modo da non dribblare) usa semplicemente G0 o G1 per inviare un valore E inferiore alla lunghezza attualmente estrusa.

Note

1Alcuni firmware consentono a RepRap di abilitare o disabilitare il "rilevamento" di fermi durante una mossa. Si prega di verificare quale firmware si sta utilizzando per vedere se supporta il parametro <codice>S</code> in questo modo, in quanto si può verificare un danno se si assume erroneamente. In RepRapFirmware, l'utilizzo del parametro S1 o S2 su una stampante delta fa sì che i parametri XYZ facciano riferimento alle singole posizioni del motore della torre anziché alla posizione testina, e per abilitare il rilevamento endstop anche se il parametro è S1

2Nella specifica RS274NGC, G0 è Movimento Rapido, che è stato utilizzato per spostarsi tra il punto corrente nello spazio e il nuovo punto nel modo più rapido ed efficiente possibile ed G1 è Movimento Controllato, che è stato utilizzato per spostarsi tra il punto corrente nello spazio e il nuovo punto nel modo più preciso possibile

3Alcuni firmware potrebbero non supportare l'impostazione della velocità di avanzamento in linea con un movimento.

4RepRapFirmware fornisce un Parametro aggiuntivo 'R1' per dire alla macchina di tornare alle coordinate su cui una stampa era stata precedentemente messa in pausa. Se si utilizza questo parametro e il codice contiene lettere di assi, verrà aggiunto un offset alle coordinate di pausa (e.g. G1 R1 Z5).

Alcune macchine più vecchie, CNC o meno, si muovevano più velocemente se non si muovevano in linea retta. Questo vale anche per alcune stampanti non cartesiane, come quelle delta o polari, che si muovono più facilmente e più velocemente in una curva.



G2 & G3: Movimento ad arco controllato

Support Marlin RepRapFirmware Klipper Prusa Buddy Repetier Smoothie Druid MK4duo
Yes1 No ??? ??? ??? Yes Yes ??? Yes
grbl Sprinter BFB FiveD Machinekit Redeem Teacup Yaskawa MakerBot
Yes Yes No No Yes Experimental No ??? ???
Uso
G2 Xnnn Ynnn Innn Jnnn Ennn Fnnn (Arco orario)
G3 Xnnn Ynnn Innn Jnnn Ennn Fnnn (Arco antiorario)
Parametri
Xnnn La posizione in cui spostarsi sull'asse X.
Ynnn La posizione in cui spostarsi sull'asse Y.
Innn Il punto nello spazio X dalla posizione X corrente dalla quale mantenere una distanza costante
Jnnn Il punto nello spazio Y dalla posizione Y corrente dalla quale mantenere una distanza costante
Ennn La quantità da estrudere tra il punto iniziale e il punto finale
Fnnn L'avanzamento al minuto del movimento tra il punto iniziale e il punto finale (se fornito)
Esempi
G2 X90.6 Y13.8 I5 J10 E22.4

(Spostati in un arco in senso orario dal punto corrente al punto (X=90.6,Y=13.8), con il punto centrale a (X=current_X+5, Y=current_Y+10), estrudendo 22.4mm di materiale fra inizio e fine)

G3 X90.6 Y13.8 I5 J10 E22.4

(Spostati in un arco in senso antiorario dal punto corrente al punto (X=90.6,Y=13.8), con il punto centrale a (X=current_X+5, Y=current_Y+10), estrudendo 22.4mm di materiale fra inizio e fine)

Note

1Nel firmware Marlin non implementato per stampanti 'DELTA' e 'SCARA'

G4: Pausa

Support Marlin RepRapFirmware Klipper Prusa Buddy Repetier Smoothie Druid MK4duo
Yes Yes ??? ??? ??? Yes Yes ??? Yes
grbl Sprinter BFB FiveD Machinekit Redeem Teacup Yaskawa MakerBot
Yes Yes Yes Yes Yes Yes Yes ??? Yes

Metti in pausa per un tot di tempo.

Parametri
Pnnn Tempo d'attesa, in millisecondi (In Teacup, P0, aspetta finchè tutti i precedenti movimenti siano finiti)
Snnn Tempo d'attesa, in secondi (Solo su Repetier, Marlin, Smoothieware, e RepRapFirmware 1.16 e successivi)
Esempio
G4 P200

In questo caso, non si sta ancora facendo nulla per 200 millisecondi. Durante i ritardi lo stato della macchina (ad esempio le temperature dei suoi estrusori) sarà comunque conservato e controllato.

Su Marlin, Smoothie e RepRapFirmware, il parametro "S" attenderà per secondi, mentre il parametro "P" attenderà per millisecondi. "G4 S2" e "G4 P2000" sono equivalenti.

G6: Spostamento diretto passo-passo

Support Marlin RepRapFirmware Klipper Prusa Buddy Repetier Smoothie Druid MK4duo
No Use G1 S2 ??? ??? ??? No No ??? No
grbl Sprinter BFB FiveD Machinekit Redeem Teacup Yaskawa MakerBot
No No No No No No No ??? No

Eseguire direttamente uno spostamento sincronizzato diretto, non interpolato e non cinematico di uno o più stepper. Le unità possono essere lineari (ad es., Mm o pollici su DELTA) o specificate in gradi (SCARA). Questo comando è utile per l'inizializzazione, la diagnostica e la calibrazione e dovrebbe essere disabilitato sulle apparecchiature di produzione. Questo tipo di movimento può essere potenzialmente pericoloso, in particolare per i deltabot, pertanto le implementazioni dovrebbero fare del loro meglio per limitare il movimento per evitare di effettuare dei tiri e danneggiare il gruppo del carrello.

Parametri
Annn Stepper A posizione o angolo
Bnnn Stepper B posizione o angolo
Cnnn Stepper C posizione o angolo
R Flag di movimento relativo
SCARA Esempio
G6 A45     ; Muovi SCARA A stepper alla posizione 45°
G6 B20 R   ; Muovi SCARA B stepper 20° antiorario
DELTA Esempio
G6 C10 R   ; Muovi DELTA C trasportando fino a 10mm


G10: Offset dell'utensile

Support Marlin RepRapFirmware Klipper Prusa Buddy Repetier Smoothie Druid MK4duo
No Yes ??? ??? ??? No No ??? No
grbl Sprinter BFB FiveD Machinekit Redeem Teacup Yaskawa MakerBot
??? No No No Yes No No ??? ???
Uso
G10 Pnnn Xnnn Ynnn Znnn Rnnn Snnn1
Parametri
Pnnn Numero utensile
Xnnn X offset
Ynnn Y offset
U,V,Wnnn assi U, V e W offsets5
Znnn Z offset2
Rnnn Temperatura Standby
Snnn Temperatura attiva
Esempi
G10 P2 X17.8 Y-19.3 Z0.0

(imposta l'offset per lo strumento (o nella testa di estrusione delle implementazioni precedenti) 2 sui valori X, Y e Z specificati)

G10 P1 R140 S205

(impostare la modalità standby e le temperature attive3 per l'utensile 1)

Ricordare che qualsiasi Parametro che non si specifica verrà automaticamente impostato sull'ultimo valore per quel Parametro. Questo di solito significa che vuoi impostare esplicitamente Z0.0. RepRapFirmware riporterà lo strumento Parametros se è specificato solo il numero dell'utensile.

Il significato preciso dei valori X, Y (e altri offset) è: senza offset questo strumento è a questo punto rispetto a dove uno strumento con offset (0, 0, 0) sarebbe . Quindi se lo strumento è a 10mm a sinistra di uno strumento di offset a zero, il valore X sarebbe -10, e così via.

Il valore R è la temperatura di standby in o C che verrà utilizzata per lo strumento e il valore S è la sua temperatura operativa. Se non si desidera che lo strumento abbia una temperatura diversa quando non è in uso, impostare entrambi i valori allo stesso modo. Vedi Codice T (seleziona strumento) sotto. Negli utensili con più riscaldatori vengono specificate le temperature per tutte: R100.0: 90.0: 20.0 S185.0: 200.0: 150.0.

Vedi anche M585.

Note

1Marlin usa G10/G11 per eseguire una mossa di ritrazione / unretraction. La versione di RepRapPro di Marlin supporta G10 per l'offset dell'utensile. Smoothie usa G10 per ritrarre e G10 Ln per impostare le coordinate dell'area di lavoro.

2Di solito è una cattiva idea inserire un valore Z diverso da zero a meno che gli strumenti non vengano caricati e scaricati da qualche tipo di cambio utensile o su carrelli indipendenti. Quando tutti gli strumenti sono nella macchina in una volta, dovrebbero essere tutti impostati sulla stessa altezza Z.

3Se la temperatura zero assoluta (-273,15) viene passata come temperatura attiva e di standby, RepRapFirmware spegne solo il riscaldatore / gli utensili senza modificare le temperature predefinite attive o di standby. RepRapFirmware-dc42 non supporta questa impostazione.

4Il NIST G-code standard dice di un aggiuntivo L Parametro che è ignorato (tranne in smoothie). Questo comando è subject to discusyeson.

5Gli offset utensile vengono applicati dopo aver eseguito una mappatura dell'asse X. Pertanto, se ad esempio si esegue il mapping da X a U nel comando M563 per creare lo strumento, è necessario specificare un offset U non un offset X. Se si mappa X su entrambi X e U, è possibile specificare entrambi gli offset.

G10: Ritirare

Support Marlin RepRapFirmware Klipper Prusa Buddy Repetier Smoothie Druid MK4duo
Yes dc42,ch ??? ??? ??? Yes: 0.92 Yes ??? Yes
grbl Sprinter BFB FiveD Machinekit Redeem Teacup Yaskawa MakerBot
??? No No No No No No ??? ???
Parametri
Snnn ritrarre la lunghezza (S1 = ritrazione lunga, S0 = ritrazione breve = default) (Solo Repetier)
Esempio
G10

Ritira il filamento secondo le impostazioni diM207 (Marlin, RepRapFirmware) o secondo il valore S (Repetier).

RepRapFirmware riconosce G10 come un comando per impostare gli offset e / o le temperature degli strumenti se è presente il parametro P e come comando di retrazione se è assente.


G11: Spinta

Support Marlin RepRapFirmware Klipper Prusa Buddy Repetier Smoothie Druid MK4duo
Yes dc42,ch ??? ??? ??? Yes: 0.92 Yes ??? Yes
grbl Sprinter BFB FiveD Machinekit Redeem Teacup Yaskawa MakerBot
??? No No No No No No ??? ???
Parametri
Snnn lunghezza ritiro (S1 = ritiro lungo, S0 = ritiro breve = default) (Solo Repetier)
Esempio
G11

Recupera il filamento secondo M208 (Marlin, RepRapFirmware) o secondo il valore S (Repetier).

G12: Pulizia Utensile

Support Marlin RepRapFirmware Klipper Prusa Buddy Repetier Smoothie Druid MK4duo
Yes: 1.1.0 via macro feature ??? ??? ??? No No ??? Yes
grbl Sprinter BFB FiveD Machinekit Redeem Teacup Yaskawa MakerBot
??? No No No No No No ??? ???
Uso
[P<0|1>] [S<count>] [T<count>]
G12 Pnnn Snnn Tnnn
Parametri
Pnnn1 Seleziona stile del motivo
Snnn Numero di colpi (cioè movimenti avanti e indietro)
Tnnn Numbeo di ripetizioni
Esempi

G12 ; motivo a colpi (default)

Per generare un motivo a zig-zag a tre triangoli che verrà tratteggiato tre volte, utilizzare il seguente comando. G12 P1 S3 T2; motivo a zig-zag con 2 triangoli

Note

1In Marlin firmware e Mk4duo questo è implementato da comportamenti firmware Come definito nelle variabili NOZZLE_CLEAN_STROKES, NOZZLE_CLEAN_START_POINT, NOZZLE_CLEAN_END_POINT e NOZZLE_CLEAN_PARK.

Con NOZZLE_CLEAN_PARK abilitato, l'ugello ritornerà automaticamente alla posizione XYZ dopo che G12 è stato eseguito.

Ulteriori informazioni su questo comportamento sono documentate dentro il codice sorgente.


G17..19: Selezione piano (specifico CNC)

Support Marlin RepRapFirmware Klipper Prusa Buddy Repetier Smoothie Druid MK4duo
Yes:1.1.4 No ??? ??? ??? ??? ??? ??? No
grbl Sprinter BFB FiveD Machinekit Redeem Teacup Yaskawa MakerBot
Yes ??? ??? ??? Yes No ??? ??? ???

Questi codici impostano il piano corrente come segue:

  • G17 : XY (default)
  • G18 : ZX
  • G19 : YZ

Questa modalità applica a G2/G3 movimenti circolari. I normali movimenti circolari sono nel piano XY e per la maggior parte delle applicazioni è tutto ciò che serve. Per il routing CNC può essere utile eseguire piccole mosse di "scavo" durante i tagli, quindi per mantenere il codice compatto, usa gli archi G2 / G3 che coinvolgono il piano Z.

Questi comandi sono supportati in Marlin 1.1.4 e versioni successive con ARC_SUPPORT e CNC_WORKSPACE_PLANES abilitati.

G20: Imposta unità in Pollici

Support Marlin RepRapFirmware Klipper Prusa Buddy Repetier Smoothie Druid MK4duo
Yes Yes ??? ??? ??? Yes Yes ??? Yes
grbl Sprinter BFB FiveD Machinekit Redeem Teacup Yaskawa MakerBot
Yes Yes No Yes Yes No Yes ??? ???
Esempio
G20

D'ora in poi tutta le unità di misura saranno in pollici.

G21: Imposta unità in Millimetri

Support Marlin RepRapFirmware Klipper Prusa Buddy Repetier Smoothie Druid MK4duo
Yes Yes ??? ??? ??? Yes Yes ??? Yes
grbl Sprinter BFB FiveD Machinekit Redeem Teacup Yaskawa MakerBot
Yes Yes Yes Yes Yes Yes Yes ??? ???
Esempio
G21

D'ora in poi tutta le unità di misura saranno in pollici. (Questo è di default in RepRap.)

G22 & G23: Ritrazione/Precarico Firmware

Support Marlin RepRapFirmware Klipper Prusa Buddy Repetier Smoothie Druid MK4duo
No No ??? ??? ??? No No ??? No
grbl Sprinter BFB FiveD Machinekit Redeem Teacup Yaskawa MakerBot
??? No No No Yes No No ??? ???
Uso
G22 ; Ritrazione
G23 ; Precarico

Ci si affida al firmware della macchina per eseguire il movimento di retrazione/precarico, invece di farlo generare dallo slicer G1 dell'asse E. La lunghezza di ritrazione/precarico e la velocità viene gestita dal firmware della macchina.

G26: Pattern di convalida della mesh

Support Marlin RepRapFirmware Klipper Prusa Buddy Repetier Smoothie Druid MK4duo
Yes: 1.1.0 No ??? ??? ??? No No ??? No
grbl Sprinter BFB FiveD Machinekit Redeem Teacup Yaskawa MakerBot
No No No No No No No ??? No
Uso
G26 C P O2.25 ; Fa una tipica sequenza di test

Il G26 è progettato per essere utilizzato in combinazione con vari sistemi di livellamento del letto – quelli che si adattano per un letto non uniforme - piuttosto che appena inclinato. Il comando G26 stampa un pattern di livello sull'intero letto di stampa, fornendo una chiara indicazione di quanto accuratamente ogni punto mesh sia definito. G26 può essere usato per determinare quali aree della mesh non sono perfette e quanto regolare ciascun punto di mesh.

G26 ha un ampio elenco di funzionalità, incluso un test integrato che estrude il materiale sul letto. Di default questo è configurato per le temperature del PLA e un ugello di 0,4 mm. (Questo sarà regolabile a breve in Marlin.)

Vedi G26_Mesh_Validation_Tool.cpp file nel codice sorgente Malin,per la piena documentazione sul parametro G26

G28: Origine (Home)

Support Marlin RepRapFirmware Klipper Prusa Buddy Repetier Smoothie Druid MK4duo
Yes Yes ??? ??? ??? Yes Yes ??? Yes1
grbl Sprinter BFB FiveD Machinekit Redeem Teacup Yaskawa MakerBot
Yes Yes Yes Yes Yes Yes Yes ??? Yes
Parametri
Questo comando può essere usato senza parametri aggiuntivi.
X Contrassegna per tornare all'origine dell'asse X.
Y Contrassegna per tornare all'origine dell'asse Y.
Z Contrassegna per tornare all'origine dell'asse Z.
Esempi
G28     ; Origine tutti gli assi
G28 X Z ; Origine X e Z

Quando il firmware riceve questo comando, sposta rapidamente gli assi specificati (o tutti gli assi se non ne viene dato nessuno) ai punti di arresto, arretra da ciascun punto di arresto di una breve distanza e ritocca lentamente l'arresto per aumentare la precisione della posizione. Questo processo, noto come "'Homing' '", è necessario per determinare il finecorsa del piatto/i di stampa. Alcuni firmware possono persino vietare il movimento lontano dai finecorsa e da altre operazioni fino a quando gli assi non sono stati mandati in origine.

X, Y, e Z vengono usati come contrassegno. Qualsiasi coordinata data sarà ignorata. Per esempio, G28 Z10 da lo stesso risultato di G28 Z. Le stampanti Delta non possono mandare in origine un singolo asse, ma manderà in origine tutti e 3, quindi X Y Z saranno semplicemente ignorati da queste macchine.

Il firmware Marlin (versione 1.1.0 e successive) hanno un opzione chiamata Z_SAFE_HOMING per le stampanti che usano un sensore al posto del fine corsa. Con questa opzione, gli assi XY fanno l'origine per primi, poi il piatto si sposta in una posizione –solitamente al centro– dove la Z scende e può prendere il suo zero.

RepRapFirmware utilizza file macro per l'origine di tutti gli assi o di singoli assi. Se tutti gli assi sono azzerati, il file homeall.g è processato. Per gli assi individuali sarà utilizzato homex.g, homey.g, o homez.g. Sulle stampanti Delta,il comando G28 sposterà sempre in origine tutte e tre le torri homedelta.g indipendentemente dai parametri X Y Z

Perché il comportamento G28 non è specificato, è consigliabile 'non' includere automaticamente G28 alla fine del tuo Codice-G. Sulle cartesiane andrà a danneggiare l'oggetto in stampa. Se hai bisogno di muovere il piano alla fine della stampa,usa G0 oppure G1.

Note

1 MK4duo ha il parametro B che dice alla stampante di ritornare alle coordinate precedenti all homing.
2 L'Originale Prusa i3 Mk2/Mk3 supporta il codice W per sopprimere il livellamento del piatto con mash. Se W è omesso, G28 manderà in homing gli assi e farà il livellamento.