fbpx

Come modificare un file .gcode

Spesso ci si trova in difficoltà nel gestire i files generati per le stampanti 3D dagli slicer: e se vi dicessi che sono dei semplicissimi documenti che potete aprire e modificare persino con il cellulare?

Andando per gradi… perchè editare/modificare un files .gcode? Si perchè è proprio questa l’estensione del file che le stampanti 3D leggono, un po’ come andare dalla copisteria a farsi stampare la tesina in .pdf. Non si mette di certo l’STL direttamente in macchina, si deve passare attraverso un passaggio di conversione in coordinate. Lo slicer, che sia Simplify 3D, Cura, Kisslicer , Slic3r, fa proprio questo: converte un modello 3D in tanti strati “2D”. Ogni strato viene, passatemi il termine, disegnato dalla stampante seguendo delle istruzioni/coordinate di tipo cartesiano. Tralasciando il discorso stampante Delta, le più comuni cartesiane tipo Prusa, Anet, Creality ecc ecc si muovo su 3 assi distinti X, Y e Z. All’interno del file . gcode si troveranno istruzioni di :

 

  • Movimento, espresse in vere e proprie coordinate. Un po’ come giocare a battaglia navale. Il comando G1 X10 Y20 Z5 (partendo da una coordinata a 0 in tutti e tre gli assi) farà muovere la stampante di 10 mm in X, 20 in Y e 5 in Z. Quando si parla di estrusione la coordinata sarà espressa come E.
  • Velocità (espressa in mm/min): il comando di prima, con associato il valore F1000 alla fine, farà muovere la stampante con una velocità pari a 1000 mm al minuto, pari a 16 mm/s.
  • Temperatura: comandi tipo M190 e M104 indicano a che temperatura arriverà il nozzle

e tante altre cose tipo gestione delle ventole, sensori, luci, azzeramenti, accelerazioni  ecc ecc.

 

Questo video nasce in particolare per rispondere ad una delle domande che maggiormente fate sul canale Youtube nei video relativi alla calibrazione degli step/mm degli assi ed estrusore. Ma se la mia stampante ha la EEPROM “bloccata” e non riesco a salvare i valori, come faccio a darglieli in pasto ugualmente? Le mie risposte veloci sono sempre:

 

  • Inserisci manualmente la stringa nel file gcode
  • Modifica lo start gcode nel tuo slicer preferito

 

Due procedure che portano allo stesso risultato. Una più laboriosa, l’altra meno.

 

Modificare un files di tipo .gcode

https://www.sublimetext.com/

https://notepad-plus-plus.org

Questi sono due editor di testo che consiglio per poter aprire correttamente questo tipo di estensione. In realtà, se provate, si aprono anche con un banalissimo notepad di Windows. Questi due software sono più comodi ed offrono una visualizzazione del codice molto più ordinata. Piccola nota sull’editor integrato di MacOs: non usatelo… in alcuni casi riformatta alcuni caratteri e il gcode non viene letto correttamente.

Una volta aperto il file vi troverete di fronte ad una lista di comandi infinita. Alcune volte vengono riportate anche le informazioni di slicing ma sono SOLO per consultazione. Se li modificate non cambia di certo il resto del gcode! Ricordatevi che è lo slicer il motore che genera tutte le coordinate. Quello che potete variare sono invece le coordinate vere e proprie oppure direttamente i valori di temperatura e velocità. Tutto quello che non ha un ; (punto e virgola) davanti, allora è qualcosa che se modificato allora viene letto dalla stampante.

Volete una lista dei comandi G che governano le nostre stampanti? http://reprap.org/wiki/G-code ecco a voi! Poi fate attenzione che alcuni Firmware (tipo MarlinKimbra) hanno comandi leggermente differenti oppure addirittura comandi esclusivi per quel firmware.

Riprendendo parte dell’articolo scritto dal Mago sulla EEPROM : https://www.marlinkimbra.it/?p=948

 

“Alcune variabili però sono rimaste come gli step per mm, le velocità e le accelerazioni, variabili, che con gcode o con il display, è possibile modificare senza scaricare il firmware ricompilato. Ora questi valori però se modificati essendo in ram allo spegnimento della stampante tornano a essere quelli che erano inizialmente cioè quelli dettati dalle configurazioni, per esempio se si varia la velocità da 100 a 110 per un asse, durante tutto il funzionamento della stampante quel valore sarà 110, ma alla nuova accensione tornerà a essere 100 costringendo l’utente a inserire gocde negli start gocde per rimettere a 110 quel valore. Ecco che ci arriva in aiuto la EEPROM, cioè una memoria scrivibile dal software stesso permanente finche non sovra scritta.Quindi se io modifico il valore della velocità con il display o con il gcode e lo porto a 110 e poi lo memorizzo in EEPROM (se attiva), alla nuova accensione verrà letta la EEPROM e invece di mettere a 100 (come settato nella configurazione) la velocità il firmware la mette a 110”

 

è facile capire che avere la EEPROM abilitata ci aiuta notevolmente a “pasticciare” con i parametri e a fare tante prove senza dover ricaricare il Firmware ogni volta. Per gli step/mm o le velocità però possiamo anche evitare di andare a modificare il Firmware per sbloccare la EEPROM. Questo lo dico perchè molti utenti sono già impacciati con slicing e so benissimo che si troverebbero ancora peggio nel dover flashare un firmware e riconfigurarlo da zero.

La stringa M92 del video https://youtu.be/mpd22vvkNxM , ad esempio, la si può benissimo inserire all’interno di un gcode già generato. Aprite il file con un editor di testo e andate a cercare la parte relativa allo start gcode. In realtà potete metterlo anche subito nelle primissime righe! Salvate il file e rimettete in stampa: da quel momento fino a quando non spegnerete la macchina, i nuovi valori di step/mm saranno nella RAM della vostra scheda. Una volta accesa ritornerà ai valori stock (che abbia la eeprom attiva o meno). Ma appena lanceremo in stampa quel file, subito verrà letta la stringa con i valori degli step/mm.  Se cambiate gcode e ne mettete uno in stampa SENZA quella stringa beh… no problem! Terrà sempre i valori M92 del precedente file messo in stampa. Se nel nuovo file ne inserite un M92 diverso questo si sovrascriverà al precedente e così via!

Vi starete chiedendo… ma dove lo trovo questo benedetto Start Gcode in questo file lunghissimo? Date una occhiata al video, lo spiego in un paio di minuti.

 

Molto più semplice è invece modificare il nostro profilo di slicing alla voce “Start/End Gcode”. Dirvi dove si trova questa voce in TUTTI gli slicer è difficile. Con un po’ di buon senso cercatela in giro nel programma: quando trovate delle grosse aree in cui è possibile scrivere del testo allora , forse, siete nel punto giusto. Nel video ne faccio vedere un paio comunque.

A questo punto come si procede? Nulla di più semplice, si scrive la stessa stringa di prima all’inizio dello start Gcode, prima di tutti i comandi già inseriti. Così siete certi che verrà letta prima di qualsiasi tipo di comando relativo alla movimentazione.

 

Quale dei due metodi è preferibile utilizzare? Io direi il secondo, è molto più comodo e soprattutto non dovete preoccuparvi del fatto che la stringa/comando siano stati inseriti o meno nel gcode. Tutto ciò che viene generato da quel profilo di slicing avrà al suo interno i comandi custom e non dovremo inserirli a mano ogni volta su ogni gcode!

 

Tutto qua, di una semplicità incredibile: sicuramente mi sono dilungato e sono stato molto ridondante, ma preferisco chiarire alla perfezione il concetto.

 

Buone stampe!

Stanco di non trovare la soluzione ?

Porta le tue competenze al livello successivo

Ecco perchè ho detto BASTA ai corsi di gruppo