Jump to content
Ultimaker Community of 3D Printing Experts
dreamworker

Conoscere il Gcode

Recommended Posts

Ciao a tutti,

apro il primo di vari thread dedicato alla conoscenza della nostra stampante, e non solo. Qui di sotto ho cercato di spiegare sinteticamente il significato dei comandi che troviamo scritti nei file che poi "diamo in pasto" alla nostra stampante, il Gcode. Per visualizzare i file gcode che i software come Cura generano, è sufficiente aprirli con il il blocco note, o qualsiasi editor di testo. Se vogliamo invece vedere passo passo come la nostra Stampante interpreta i comandi di questi file basta utilizzare dei software come Repetier, ma di questo parleremo in un altro thread.

Sentitevi liberi di correggere i miei errori, così da poter dare delle informazioni il più corrette possibile. Vorrei in oltre che qui si discutesse anche dell'eventuale sviluppo di plugin per Cura.

Alla prossima

Paolo

Firmware Marlin

 

Codici Implementati

 

 

G0

 

 

Movimento Rapido

esempio: G0 X11 movimento rapido in X=11mm.

 

 

G1

 

 

Movimento Controllato X Y Z E

esempio: G1 X90.6 Y13.8 E22.4 si muove dall'attuale posizione (X,Y) a (90.6 13.8) estrudendo il materiale dalla posizione attuale a quella finale dall'attuale lunghezza di estrusione a quella di 22.4

 

 

G2

 

 

Movimento controllato ad arco in senso orario

esempio: G2 X90.6 Y13.8 I5 J10 E22.4 va dall'attuale posizione (X,Y) con movimento ad arco orario alla posizione (90.6 13.8) mantenendo una distanza costante dal punto (5 10) estrudendo il materiale dalla posizione attuale a quella finale dall'attuale lunghezza di estrusione a quella di 22.4

 

 

G3

 

 

Movimento controllato ad arco in senso antiorario

esempio: G2 X90.6 Y13.8 I5 J10 E22.4 va dall'attuale posizione (X,Y) con movimento ad arco antiorario alla posizione (90.6 13.8) mantenendo una distanza costante dal punto (5 10) estrudendo il materiale dalla posizione attuale a quella finale dall'attuale lunghezza di estrusione a quella di 22.4

 

 

G4

 

 

Pausa per S o P

esempio: G4 P200

non fare nulla per 200 msec. Durante questa pausa lo stato della macchina viene mantenuto costante e controllato.

 

 

G10

 

 

Ritrae il filamento in accordo con le specifiche del comando M207

 

 

G11

 

 

Ritrae e recupera il filamento in accordo con le specifiche del comando M208

 

 

G28

 

 

Ritorna al punto d'origine degli assi

 

 

 

G29

 

 

Comando per il Test del piano di stampa. Usa un test su tre punti.

 

 

G30

 

 

Comando per il test del piano di stampa. Usa un solo punto di test

 

 

G31

 

 

Riporta l'attuale stato del test.

 

 

G32

 

 

Testa Z e calcola la posizione del piano Z

 

 

G90

 

 

Usa coordinate assolute

 

 

G91

 

 

Usa coordinate relative

 

 

G92

 

 

Imposta le coordinate

esempio: G92 X10 E90 consente la programmazione dello zero assoluto, per resettare la posizione corrente ai valori specificati. Nell'esempio si imposta a 10 X e a 90 l'estrusione. Non si verificherà nessun movimento fisico. Senza nessuna specifica, il comando resetterà tutti gli assi a zero.

 

 

 

 

 

 

RepRap Codici M

 

 

M0

 

 

Stop.

Esempio: M0

La macchina si ferma torna alla sua posizione di riposo, poi si spegne. Tutti i motori e riscaldatori si spengono. La macchina si riavvia premendo il tasto di Reset

 

 

M1

 

 

Sleep.

Esempio: M1

La macchina si ferma torna alla sua posizione di riposo, poi si spegne. Tutti i motori e riscaldatori si spengono. La macchina si riavvia premendo qualsiasi tasto

 

 

M104

 

 

Imposta la temperatura dell'estrusore selezionato

Esempio: M104 S190 imposta la temperatura dell'estrusore a 190°C

 

 

M105

 

 

Legge la temperatura corrente dal sensore

 

 

M106

 

 

Ventola on

 

 

M107

 

 

Ventola off

 

 

M108

 

 

Imposta la velocità di estrusione

 

 

M109

 

 

Imposta la temperatura di estrusione ed attende

 

 

M110

 

 

Imposta la linea corrente del G-code

 

 

M114

 

 

Visualizza la posizione attuale

 

 

M115

 

 

Visualizza la versione corrente del firmware

 

 

Codici Custom M

 

 

M17

 

 

Accende o spegne tutti i motori passo passo

 

 

M18

 

 

Spegne i motori passo passo come il comando M84

 

 

M20

 

 

Mostra il contenuto della SD card

 

 

M21

 

 

Inizializza la SD card

 

 

M22

 

 

Consente di rimuovere la SD card

 

 

M23

 

 

Seleziona un file dalla SD

 

 

M24

 

 

Inizia o riprende la stampa di un file della SD

 

 

M25

 

 

Pausa della stampa dalla SD

 

 

M26

 

 

Imposta la posizione della SD in bytes

 

 

M27

 

 

Riporta lo stato della stampa del file della SD

 

 

M28

 

 

Inizia a scrivere nella SD

 

 

M29

 

 

Termina la scrittura nella SD

 

 

M30

 

 

Cancella un file dalla SD

 

 

M41

 

 

Stampa in loop

 

 

M42

 

 

Cambia lo stato del pin via gcode

 

 

M80

 

 

Accende l'alimentatore

 

 

M81

 

 

Spegne l'alimentatore

 

 

M82

 

 

Seleziona i codici assoluti dell'estrusore E (default)

 

 

M83

 

 

Seleziona i codici relativi dell'etrusore E

 

 

M84

 

 

Disabilita i passo passo fino al prossimo movimento, o usa S per specificare un tempo di attesa, prima che gli steppers vengano disabilitati. S0 si usa per disabilitare l'attesa.

 

 

M85

 

 

Imposta il timer di spegnimento mediante il parametro S. Per disabilitarlo porre a zero (default)

 

 

M92

 

 

Imposta la programmazione dei passi per gli assi, utile per la calibrazione

 

 

M114

 

 

Manda nella porta seriale la posizione attuale

 

 

M115

 

 

Comunica l'attuale versione del Firmware e la capacità del microcontrollore usato

 

 

M117

 

 

Visualizza un messaggio

esempio: M117 Ciao mondo

visualizza sull'LCD la frase Ciao mondo

 

 

M119

 

 

Comunica alla porta seriale che è presente uno stato di endstop

 

 

M140

 

 

Imposta la temperatura del piano di stampa

 

 

M190

 

 

Aspetta finché la temperatura del piano di stampa non raggiunge quella impostata

 

 

M200

 

 

Imposta il diametro del filamento

 

 

M201

 

 

Imposta la massima accelerazione di stampa in unità/s^2 per i movimenti durante la stampa (M201 X1000 Y1000)

 

 

M202

 

 

Imposta la massima accelerazione in units/s^2 per i movimenti non di stampa (M202 X1000 Y1000) Non usato nel firmware Marlin!!

 

 

M203

 

 

Imposta la massima velocità di estrusione della macchina (M203 X200 Y200 Z300 E10000) in mm/sec

 

 

M204

 

 

Imposta la velocità di default: S per i normali movimenti; T solo per i movimenti dell'erogatore del materiale (M204 S3000 T7000) in mm/sec^2 in segmenti di tempo mini, espressi in in ms (B20000)

 

 

M205

 

 

Impostazioni avanzate: velocità minima di moviemnto S=durante la stampa T=solo movimenti, B=minimo segmento temporale X= massimo strappo xy, Z=massimo strappo Z , E=massimo strappo E

 

 

M206

 

 

Imposta un punto di riposo addizionale

 

 

M207

 

 

Imposta la lunghezza di ritrazione S[positivo mm] F[feedrate mm/sec] Z[additional zlift/hop]

 

 

M208

 

 

Imposta il massimo movimento per gli assi

 

 

M209

 

 

Abilita la ritrazione automatica

 

 

M220

 

 

S- imposta il valore del fattore di override di velocità in percentuale

 

 

M221

 

 

S- imposta il valore del fattore di override di estrusione in percentuale

 

 

M240

 

 

Impulso di trigger per scattare una foto

 

 

M301

 

 

Imposta i paramentri PID, P I e D

 

 

M302

 

 

Abilita l'estrusione a freddo

 

 

M303

 

 

PID relay autotune S imposta la temperatura (default = 150C)

 

 

M400

 

 

Finisce tutti i movimenti

 

 

M500

 

 

Memorizza i parametri nella EEPROM

 

 

M501

 

 

Legge i parametri dalla EEPROM

 

 

M502

 

 

Ritorna ai paramentri di fabbrica. Naturalmente questi devono essere stati memorizzati nella EEPROM precedentemente

 

 

M503

 

 

Stampa gli attuali paramentri (dalla memoria non dalla eeprom)

 

 

M999

 

 

Riavvia dopo un errore

 

 

 

Share this post


Link to post
Share on other sites

eccomi di ritorno dopo una settimana di assenza.

Allora i non sono cosi esperto e non ho ancora mai provato ad interaggire con la stampante direttamente ma questo è facilmente recuperabile. La mia domanda è più concettuale quale funzionalità vorresti aggiungere alla stampante attravarso un plugin?

 

Share this post


Link to post
Share on other sites

Beh in questo momento non ho un idea precisa di cosa implementare, visto che i problemi principali risiedono nel software di generazione del g-code, cioè Cura. Una cosa notevole sarebbe migliorare Theak at Z, facendo in modo di specificare degli intervalli di layer dove cambiare i parametri di stampa. Ora come ora si può simulare una cosa del genere usando più volte il plugin in successione, anche se, a dire il vero, a me questa soluzione non funziona .

 

Share this post


Link to post
Share on other sites

si ho notato anche io delle interpretazioni fantasiose del gcode alle volte sto ancora scoprendo funzionalità e setup effettivamente un plugin che permette di variare dei setup durante la stampa potrebbe ottimizzare i tempi

c'è un documento di riferimento per il gcode della um2?

 

Share this post


Link to post
Share on other sites

ho cominciato ad inviare codici cgoce alla stampante attraverso pronterface per fare una taratura del piatto manuale un po più accurata comincio ad entrare nell'ottica del gcode ho solo parura di diventare autistico :)

poi come metterlo dentro un plugin non ne ha idea al momento

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Welcome to the Ultimaker Community of 3D printing experts. Visit the following links to read more about our Terms of Use or our Privacy Policy. Thank you!