CORSI CAD

CORSI CAD A MILANO E LOMBARDIA – AutoCAD, MAP, Inventor, Fusion 360, Revit,3ds Max, Alias, Maya, RasterDesign: corsi e formazione per i professionisti

Riprendere una stampa 3D interrotta

Scritto da matteo.trasi On Aprile - 25 - 2018
Stampa 3D interrotte: come riprendere? lezione su G-CODE per stampa FDM da CAD

Una stampa FDM si può interrompere per mille motivi!

Dopo qualche ora di stampa salta la luce? Il gatto stacca la spina giocando col topo? Ti è finito il filamento proprio sul più bello? Quando una stampa 3D si interrompe, il tuo oggetto rimane irrimediabilmente a metà, ed è molto seccante se il processo di stampa era già a buon punto e i tempi per stamparlo lunghi. A parte il gatto, i problemi più comuni sono l’interruzione di corrente durante la stampa e il termine del filamento  (PLA, ABC o altro) , ma anche involontari reset della scheda, per esempio alcune stampanti quando si collega la presa USB e si attiva il software di controllo sul PC vengono resettate, interrompendo ogni operazione. Anche se hai seguito un ottimo corso sulla stampa 3D non puoi farci nulla!

Stampa 3D interrotta - corso su GCODE e stampa fdm CAD

Con il giusto GCode possiamo rimediare!.

Alcuni firmware hanno un sistema di sicurezza che permette di “resuscitare” la stampa. Per esempio è tipico delle Wasp con il “resurrection system“.  Per poter attuare un simile miracolo, a prescindere dal firmware, sono a logica necessari alcuni requisiti:

  1. Sapere a che punto si è interrotta la stampa.
  2. Poter riposizionare la testina in quel punto.
  3. Sapere “cosa succede dopo” ovverosia avere a disposizione il G-Code (file con il codice di controllo della stampante) che è stato interrotto, per ripartire dal punto giusto e completare la parte mancante.

A che punto si è interrotta la stampa 3D

Come dicevamo alcuni firmware, quando si stampa un file presente sulla stampante, permettono di mantenere traccia del punto esatto del codice attualmente in esecuzione da parte dei motori e quindi se salta la corrente o finisce il filamento (se dotati del sensore) possono poi riprendere esattamente a eseguire il codice da quel punto, dopo aver ripristinato le temperature e la ventilazione.

Se non disponiamo di una simile stampante, quasi di sicuro non possiamo conoscere il punto esatto del G-Code in cui la stampa si è interrotta. Possiamo però sapere a che altezza è successo misurando con un calibro il pezzo parzialmente stampato per conoscere il suo punto di massima Z. Sarà necessaria la massima precisione, ovviamente, ma una volta nota la Z possiamo risalire  al layer in cui si è fermata la stampa, quindi alla sezione del G-Code da cui ripartire. Ci serve:

  • Un calibro o un calibro elettronico in grado di misurare le profondità
  • Il G-Code interrotto
  • Possibilmente i parametri usati per lo slice

Quindi:

Misuriamo l’altezza della stampa.

Apriamo il G-Code con un programma come il fantastico Notepad++ o il blocco Note di Windows e cerchiamo la riga che indica la nostra Z. Dato che la misurazione non può essere così precisa da “azzeccare” la Z esatta del G-Code, possiamo fare qualche calcolo se conosciamo i parametri dello slice: oppure usare un metodo più empirico.

Se abbiamo a disposizione i parametri di slice possiamo fare qualche calcolo: sottraiamo alla Z misurata lo spessore del primo layer di adesione, dividiamo il risultato per lo spessore degli altri layer e otterremo il numero con decimali che esprime la posizione in cui si è interrotta la stampa. Togliamo i decimali, moltiplichiamo per lo spessore layer e risommiamo lo spessore dello zero. In questo modo abbiamo arrotondato al layer sottostante la nostra misura.

Complicato? C’è un’altro modo più “spannometrico” ma spesso altrettanto valido: cerchiamo nel G-Code il testo che indica lo spostamento alla Z misurata senza decimali. Per esempio se abbiamo misurato 53.61 cerchiamo Z53. Dovremmo trovare qualche occorrenza di Z53 per tutti gli spostamento fra i 53 e i 54 millimetri. Scegliamo la riga del G-Code con l’occorrenza più vicina alla Z misurata e questo sarà il punto di ripartenza della stampa.

Riposizionare la testina

Una volta capita la Z, e avendo il codice G-Code in cui viene nominata la nostra Z, non va bene semplicemente eseguire il G-Code dal punto individuato! Prima bisogna scaldare l’estrusore, far scorrere un poco di materiale (prime) e azzerare gli assi, quindi riportare la testina alla Z giusta senza andare a sbattere contro il pezzo già stampato. Queste operazioni si possono di solito fare dal pannello di controllo della stampante: alziamo un pochino la Z, tenendo traccia di quanto la incrementiamo, scaldiamo e facciamo uscire qualche millimetro di materiale. Portiamo quindi X e Y a zero, per segnare la posizione Home su X e Y e poi riportiamo la Z alla sua posizione. Se fosse possibile potremmo anche portare la la Z a zero per il probe (solo se non si urtano i pezzi già stampati) e poi riportarla alla giusta altezza. Se non possiamo azzerare la Z, dovremo portarla a combaciare con il layer superiore, quindi inviare il G-Code necessario a indicare che la Z attuale è quella calcolata ai punti precedenti (codice G92 Z53.61 se la Z calcolata era 53.61).  Un’operazione analoga deve essere effettuata sulla posizione dell’estrusore: prendete nota del valore E nel primo comando G1 nel G-Code. Se per esempio E fosse 1920.78 e inviate G92 E1920.78. Quindi da un lato dovremo riportare le cose alla situazione in cui tutto si era interrotto, ma dall’altro dobbiamo indicare che le coordinate dell’estrusore e della Z sono proprio quelle: il codice G92 ci aiuta.

Riprendere

Copiamo e incolliamo il G-Code dal punto individuato fino alla fine in un nuovo file, inviamolo per la stampa e… incrociamo le dita. Un’ottima idea potrebbe essere scaldare di più la testina e andare estremamente piano (molte stampanti permettono di “rallentare” la stampa direttamente dal pannello di controllo). In questo modo si eviteranno gli urti violenti con la parte di layer già stampata e si permette alla testina di “fondere” eventuali ostacoli.

G-Code utile

Di seguito un esempio di G-Code inserito prima di quello creato con il “taglia e incolla” della procedura di cui sopra.

M104 S200 ;Scalda la testina senza aspettare
M82 ;absolute extrusion mode
G0 X0 Y0
G28 ;Home
M109 S200
;Prime the extruder
G92 E0
G1 F200 E7
G92 E2534.71925 ;imposta la posizione al valore presente nel G-Code successivo (questo è un valore di esempio)
M220 S40 ;imposta una velocità seguente del 40% (rallenta la stampa)
G1 Z50 ;riporta la Z sopra al punto di interruzione (nell’ipotesi era qualche mm sotto a 50)
M106 ;riaccende le ventole