AutoCAD: disegno, modellazione e stampa 3D

Disegnare con AutoCAD - 27 capitoli interattivi di Claudio Gasparini

Software di slicing

Dopo aver verificato il file in formato STL da un software dedicato, è necessario processare la geometria del modello nel linguaggio operativo della stampante. Storicamente le stampanti 3D professionali utilizzano un linguaggio proprietario chiuso e non modificabile dall'utente.

Con la diffusione delle stampanti Open Source si sono resi disponibili alcuni software, detti slicer,  finalizzati  alla traduzione delle mesh STL in codici corrispondenti a layer che la stampante esegue stato per strato.

I software slicer traducono quindi la geometria in sequenze operative corrispondenti ad una singola sezione di stampa

Il linguaggio utilizzato nel mondo Open Source è il G-Code che è un linguaggio nato in ambito CAM ( Computer Aided Manufacturing)  cioè produzione assistita da computer.

I principali parametri che si devono definire prima di inviare il file alla stampante sono i seguenti:

  • Spessore dello strato (Layer Height): è il parametro che controlla l'altezza dello strato (layer) e quindi determina la precisione della stampa. Maggiore altezza dello strato corrisponde ad una maggiore velocità ma anche ad una minore precisione;  
  • Spessore delle pareti (Shell Thickness): è lo spessore minimo di una parete stampata. Il valore da impostare dipende dal materiale usato, dal modello di stampante e dalla velocità definita;
  • Densità di riempimento (Fill Density): definisce la percentuale di riempimento delle parti interne del modello. Le geometrie di riempimento vengono definite dal programma slicer  e possono avere forme diverse in rapporto con la percentuale di riempimento scelta: è una scelta che deve conciliare la rigidità strutturale con il peso e la velocità di stampa;     
  • Tipo di supporto (Support Type): in caso di parti sospese, controlla il  tipo di sostegno inserire sotto le sporgenze;
  • Base di appoggio (Raft): costruisce uno zoccolo di sostegno;
  • Superficie di appoggio (Brim): inserisce alla base un bordo leggero corrispondente ad un layer.

Altri parametri importanti dipendono dalle caratteristiche della stampante e variano a seconda del modello e della tecnologia di stampa utilizzata.

  • Velocità di stampa (Print Speed): la velocità varia molto a secondo della stampante che si utilizza e  va da 30 millimetri al secondo (mm/s)   fino a 200-300 mm/s.
  • Temperatura di stampa (Print Temperature): la temperatura del filamento è di 160-220 gradi per il PLA mentre è più alta, attorno a 220-260 gradi, per l'ABS. Ogni costruttore fornisce le indicazioni esatte per impostare le temperature a seconda del materiale.

Gli slicer più diffusi

Oltre a Cura, che analizziamo in seguito, ci sono diversi altri software  slicer in ambito RepRap  cioè nella fascia di stampanti che fanno riferimento al progetto Open Source iniziato nel 2005 dal Adrian Browyer all'Università di Bath nel Regno Unito. 

Nota: RepRap Project, è un'abbreviazione di Replicating Rapid Prototyper  cioè creatore di prototipi a replicazione rapida e si riferisce ad una serie di progetti iniziati dal prof. Adrian Bowyer per la costruzione di una stampante 3D Open Source. Alla stampante è stata affidata la missione di essere autoreplicante  perché il progetto intendeva fornire a tutti gli strumenti di conoscenza ed operativi per costruirsi una stampante a costo contenuto. I primi progetti resi pubblici sono stati denominati Darwin e Mendel in onore di due biologi che hanno contribuito a teorizzare l'evoluzione della specie.

Citiamo i principali slicer fra i più utilizzati e conosciuti:

Slic3r (slic3r.org): software libero sviluppato da Alessandro Ranellucci  è lo slicer fra i più usati dai makers che è anche supportato nello sviluppo da alcuni produttori di stampanti. Rispetto a Cura è considerato più veloce, più completo ma anche più complesso da usare.

Repetier-Host (www.repetier.com): è un aggregatore Open Source che permette di svolgere diverse operazioni a livello professionale, compreso lo slicing per il quale si appoggia su Slic3r  ed altri. Fornisce funzioni di calibrazione della stampante molto raffinate qualora sia necessario ricalibrare i  vari componenti come nel caso di stampanti autocostruite.

KISSlicer ( kisslicer.com): software giunto di recente sul mercato, non è Open Source ma fornisce una versione gratuita e una professionale dal costo contenuto.

Cura

Il software Open Source  Cura è sviluppato dal produttore olandese di stampanti 3D Ultimaker  che utilizza la community GitHub per sostenere lo sviluppo software.

Rispetto ad altri programmi slicer, Cura si caratterizza per la semplicità d'uso e per la velocità nel creare i file G-Code. Il programma non ha per ora la versione in italiano pertanto abbiamo utilizzato la versione 15.4 in inglese.  

Per installare il programma, dopo aver fatto il download del software dal sito del produttore www.ultimaker.com, si attiva la procedura specificando la cartella d'installazione. Il programma nella versione per Windows non crea l'icona sul desktop quindi sarà necessario creare un collegamento del file eseguibile sul desktop.   

 

Figura 13.12- Finestre iniziali di scelta del tipo di stampante utilizzata.  

Nelle due finestre di figura 13.12 sono elencate le configurazioni delle principali stampanti 3D contemplate da Cura, comprese ovviamente tutti i modelli Ultimaker. Se la vostra stampante non è in elenco neppure nella seconda finestra alla quale si accede con l'opzione Other , è possibile scegliere l'opzione Custom

 

Figura 13.13- Finestra di configurazione personalizzata della stampante: come esempi sono riportate le configurazioni  consigliate per due stampanti di produzione italiana: PowerWasp e Sharebot NG.

Caricare i profili

Alcuni produttori forniscono sul loro sito dei file in formato INI contenenti le impostazioni di particolari profili della stampante, quali materiali e numero di estrusori. Questo serve a facilitare il lavoro di personalizzazione e permette di settare correttamente e compiutamente la stampante.

Caricare il modello da stampare

Nel menu File con Load model file si carica il modello da stampare. In Cura si possono importare i seguenti formati di file: STL, OBJ, DAE, AMF

 Nota: il formato di file DAE è un formato open standard XML format   definito nel protocollo COLLADA (COLLAborative Design Activity) come formato file di interscambio tra applicazioni 3D e che attualmente è adottato dai principali produttori di sistemi CAD e di motori grafici di giochi (Game Engines).  Il formato AMF è l'acronimo di Additive Manufacturing File Format ed è stato sviluppato da American Society for Testing and Materials presso la Cornell University  come estensione del formato STL rispetto al quale fornisce una struttura più completa delle informazioni 3D quali colori, texture, metadati e geometrie curve.

 

Figura 13.14 - Dopo aver selezionato il modello, vengono visualizzate le icone delle modifiche che si possono operare.  

Dopo aver importato e selezionato il modello, vengono visualizzate (figura 13.14)   le icone delle modifiche che si possono operare:  Rotazione, Scala, Specchio (Mirror).

 

 Nell'area dei menu a sinistra, attivando il quickprint profile, è possibile scegliere la qualità di stampa (veloce, normale, alta qualità, qualità Ultimaker)   e il tipo di materiale installato sulla stampante: PLA, ABS e U-PET.

A destra il programma fornisce le informazioni testuali relative al tempo di stampa, ai metri di filo che sarà utilizzato, al peso finale dell'oggetto ed al costo del materiale se si sono forniti i dati nelle Preferences (Ctrl+,).

Le tre icone nell'area grafica forniscono le funzioni di Salva, Carica ed accesso alla community  YouMagine dove poter condividere i modelli fra utenti Ultimaker.   

 

Figura 13.15 - Modifica della scala lungo l'asse Z per determinare uno stiramento in altezza della caffettiera.

Cura fornisce delle utili funzioni di modifica quali la modifica della scala lungo i tre assi con la possibilità di deformare la geometria lungo una dimensione, come in figura 13.15. 

Le impostazioni di stampa

Prima di creare il file di stampa, è necessario definire alcune impostazioni di slicing relative alle proprietà della stampante e dei materiali.

 

Figura 13.16 - Nella scheda Basic sono presenti le impostazioni più importanti che definiscono alcune  caratteristiche e proprietà della stampa.

Impostazioni di base

Nella scheda Basic possiamo definire diversi parametri di stampa, alcuni già analizzati in precedenza fra le proprietà generali delle stampanti:

Layer height:  definisce l'altezza dei livelli che possono variare da  uno spessore di 0.06 mm  fino a 0.5 mm corrispondente ad una stampa grezza ma veloce. Lo spessore dipende soprattutto dalle prestazioni che la stampante può fornire;

Shell thickness: imposta lo spessore minimo delle pareti verticali che in genere dovrebbe corrispondere a tre volte il diametro dell'ugello;

Enable retraction: abilita la ritrazione cioè il risucchio dell'estrusore dopo la gettata per evitare sgocciolamenti di fili durante lo spostamento;

Bottm/Top thickness: definisce lo spessore in millimetri della chiusura nella parte superiore e inferiore di un solido, che dovrebbe essere corrispondente allo spessore delle pareti  (Shell thickness);

Fill Density: stabilisce la percentuale di riempimento del reticolo interno quando l'interno dell'oggetto non è definito e quindi risulta vuoto. E' impostato al valore del 20%  di default ma si può arrivare anche ad 80% in oggetti che richiedono una resistenza meccanica mentre può scendere sotto il 20%  in oggetti che possono supportare solo un perimetro esterno.

Printer Speed: imposta la velocità di stampa dell'estrusore che può essere lenta, circa 30 mm/s per oggetti che richiedono un'alta qualità,  mentre può essere superiore,    con valori maggiori del 80 mm/s, per modelli che non esigono caratteristiche estetiche elevate.

Printing temperature: stabilisce la temperatura di estrusione del materiale utilizzato che è rapportata al tipo di materiale (ABS, PLA o altro) secondo le indicazioni del costruttore.

Bed temperature: se la stampante è dotata di una base riscaldata, imposta la temperatura di lavoro del piano di appoggio.

Support type: in presenza di geometrie sospese dove l'estrusore non avrebbe una base di appoggio, è necessario prevedere dei sostegni che saranno eliminati una volta terminata la stampa. Il supporto è consigliato  per pareti che superano i 30 gradi di inclinazione rispetto alla verticale. 

I supporti possono essere di due tipi:

  • Touching buildplate: il programma traccia le proiezioni a terra e inserisce i supporti dove necessario;
  • Everywhere: vengono inseriti i supporti in tutte le parti sporgenti.
  • None: non vengono  inseriti i supporti senza nessun calcolo di convenienza. 

Platform adhesion type: nel caso di una base di appoggio ristretta, viene inserito un aiuto per aumentare l'adesione del pezzo al piatto di stampa, come analizzato in precedenza in questo capitolo.

  • Raft: definita anche zattera, crea un reticolato di base che solleva l'oggetto su una base che ha anche una funzione di sostegno;
  • Brim: crea una estensione del primo layer per aumentare la superficie di contatto.

Diameter: definisce il diametro del filamento che deve essere quello consigliato dal produttore.

Flow: è un fattore di correzione che definisce, in percentuale, la quantità di filo da estrudere rispetto al flusso normale definito al 100%. Con l'esperienza, è possibile aumentare o diminuire questa percentuale a seconda dei materiali o dei modelli stampati.

Nota: il manuale di Cura è disponibile sul sito di www.ultimaker.com digitando la voce di ricerca Cura_User-Manual oppure sui siti dei vari costruttori di stampanti che forniscono una versione personalizzata del manuale. Inoltre ogni costruttore in genere fornisce una guida di personalizzazione del programma Cura  dove sono specificate le impostazioni consigliate per le proprie stampanti.


Figura 13.17 - Nella scheda Advanced  le impostazioni riguardano le proprietà principali della stampante come diametro dell'estrusore, qualità di stampa e velocità di spostamento.

Impostazioni avanzate

Nella scheda Advanced sono disponibili altre impostazioni che permettono la modifica di alcune proprietà della stampante.

Vediamo le impostazioni critiche che spesso determinano il successo della stampa.

Nozzle size: permette di modificare il diametro dell'estrusore definito durante la fase d'installazione e che può essere modificato in caso di un nuovo estrusore;

Speed: riguarda la velocità di ritrazione definita nella scheda  Basic  precedente ed è attiva solo se è stata abilitata. Un valore medio è di 40 mm/s ma può arrivare anche a 140 mm/s.

Distance: stabilisce la lunghezza di ritrazione del  filo di stampa per non avere delle sbavature durante gli spostamenti. Un valore medio è 4.5 mm che  garantisce mediamente l'assenza di sfilamenti.

Initial layer thickness: il primo layer in genere viene impostato per avere uno spessore maggiore rispetto ai layer normali e questo per garantire una maggior aderenza al piatto di appoggio. Il valore inserito determina lo spessore che dovrebbe essere  2 o 3 volte lo spessore definito per il layer (layer height) nella scheda Basic. Se impostato a zero  avrà lo stesso valore del layer.

Cut off object bottom: se il modello non ha un fondo piatto e regolare, è possibile tagliare una parte del modello eliminando una porzione della base come in una normale operazione di TRANCIA con AutoCAD. 

Travel speed: definisce la velocità dell'estrusore quando si sta spostando fra le zone da stampare. La velocità media è di 150 mm/s ma in una stampante ben calibrata può arrivare anche a 250 mm/s, dopo ovviamente aver testato i risultati di stampa.

Bottom layer speed: il primo strato può essere stampato con una velocità minore per aumentare l'aderenza al piano di appoggio e permettere all'ugello di andare a regime con la temperatura.

Infill Speed, Outer Shell Speed, Inner Shell Speed: è possibile variare la velocità di stampa per le parti interne ed esterne del modello al fine di diminuire il tempo di lavoro: in genere la velocità nelle zone visibili è minore per aumentare la qualità della superfice. Non è consigliato però variare molto la velocità fra le parti perché questo influenza il tempo di raffreddamento del materiale e provoca possibili deformazioni differenziate.

Minimal layer time: per evitare che uno strato sia deposto sopra uno non perfettamente solidificato, si definisce il tempo minimo di passaggio con conseguente rallentamento dell'estrusore.

Enable cooling fan: è possibile disabilitare il funzionamento della ventola, posizionata nella testa di stampa, nella stampa con alcuni materiali, come in alcuni casi con l'ABS.

Usare i plugin di Cura

I plugin sono dei programmi scritti in linguaggio Python che aggiungono  alcune determinate  funzioni al programma al fine di creare effetti di lavorazione particolari prima di creare il codice G-Code.

Nel sito di Ultimaker è possibile fare il download di alcuni plugin messi a disposizione dagli utenti.

Come caricare un plugin

Per caricare un nuovo plugin in Cura è sufficiente copiare il plugin, che ha un'estensione .PY, nella cartella plugins del programma. Dopo aver avviato il programma,  la nuova aggiunta  comparirà nella scheda Plugins  di figura 13.18. Come si può vedere nell'elenco,  è stato caricato il plugin Wood.py  che aggiunge un effetto legno al codice G-Code mediante  la variazione di temperatura di stampa lungo l'altezza dell'oggetto. Per attivare il plugin si fa clic sulla freccia in basso sotto l'elenco e quindi si operano le modifiche opportune nella scheda dei valori.  Come si può verificare, i  valori inseriti riguardano la variazione di temperatura da 200 a 240 gradi durante la stampa e la definizione di una granularità  nella deposizione del materiale definita di spessore 3 mm. In figura 13.19 si può vedere il risultato stampato con un discreto  effetto legno applicato al modello.

 

Figura 13.18 -E' stato aggiunto il nuovo plugin Wood.py che crea un effetto legno nel modello mediante  la variazione della temperatura da 200 a 240 gradi C.

Come esempio di plugin di facile applicazione, abbiamo caricato il plugin Wood.py trovato nel sito di Ultimaker.

Nota: il sito dove scaricare molti plugin  è quello di Ultimaker: http://wiki.ultimaker.com/Category:CuraPlugin   dove è possibile fare il download del plugin Wood.py di Jérémie Francois che cura il sito http://www.tridimake.com/. Il modello del gufo in formato STL è disponibile sul sito Thingiverse : http://www.thingiverse.com/thing:49276

 Creare il file G-Code

Prima di creare il codice di stampa, facciamo  un controllo delle intestazioni del file in G-Code nella scheda Start/End-GCode  di figura 13.20. L'intestazione del file in formato testo riporta, sotto forma di commento, alcune informazioni che serviranno da documentazione per il programmatore e dove se si è particolarmente esperti e pignoli, è possibile inserire delle nostre  note riguardante la stampa ed il modello. Le righe commentate hanno il punto e virgola ( ; ) come primo carattere e sono visualizzate in colore verde nella scheda.

 

Figura 13.20 - Scheda Start/End-GCode con visualizzate  le prime righe del file di stampa G-Code che sarà prodotto da Cura.

Visualizzazione del modello

Il programma Cura fornisce alcune scelte di visualizzazione  (figura 13.21) che permettono la verifica strutturale ed interna del modello che sarà stampato. Fra le opzioni possiamo attivare la rappresentazione  Transparent  che attiva una vista traslucida,  Overhang che  evidenzia in rosso le aree che presentano delle sporgenze e la visualizzazione per  Layers che permette di sezionare l'oggetto su un layer specifico come in figura 13.22.

 

Figura 13.21 - Opzione di visualizzazione Overhang ( sporgenza)  che evidenzia in rosso le aree sporgenti che dovrebbero richiedere dei supporti.

La modalità di visualizzazione Layers di figura 13.22 permette di evidenziare una sezione su un particolare layer fra quelli calcolati dal sistema e segnala  i supporti  ( in verde) che saranno inseriti, con le impostazioni correnti, a sostegno delle sporgenze.  Ogni volta che si modificano i parametri di stampa o si fa scorrere il cursore a destra relativo al layer selezionato, il sistema ricalcola il modello e visualizza i risultati.

Figura 13.22 - Visualizzazione in modalità Layers che permette di raffigurare una sezione su uno dei 395  layer calcolati dal sistema per la caffettiera.

Perché si usa il linguaggio G-Code

Il formato G-code è stato sviluppato al MIT agli inizi degli anno ’50 nel Servomechanisms Laboratory   ed è sempre stato dedicato ad applicazioni in settori di  machine a Controllo Numerico CNC e CAM (Computer Aided Manufacturing).  Nel 1980 è diventato uno standard ISO 6983  adottato dall'industria manifatturiera e meccanica. Il linguaggio è editabile con un normale editor di testo e comprende una serie di codici ed istruzioni che definiscono la  geometria, gli spostamenti e le operazioni che la macchina deve compiere.

Quando si è trattato di scegliere il linguaggio di controllo per le stampanti 3D,  è sembrato naturale adottare il linguaggio storico utilizzato nel controllo delle macchine CNC, scelta determinata anche per la sua sintassi molto semplice e  lineare, ma soprattutto sperimentata da decenni di utilizzo.

Nota: l'acronimo G-Code deriva dalla lettera G che nel linguaggio di programmazione  precede le istruzioni di movimento e di controllo ed è la più usata nei comandi. Nel settore delle macchine CNC le funzioni di lavorazione vengono ancora scritte direttamente in linguaggio G-Code con una pregevole produzione di corsi e di manuali di programmazione.

Creazione del file  G-Code

Alla fine delle modifiche e della definizione dei vari parametri, con l'opzione File / Save GCode il programma genera il file di stampa in formato G-Code.

In genere per stampare un oggetto si salva il file su una chiave USB o su una scheda SD a seconda del lettore in dotazione della stampante.