The STL file
STL (STereoLithography) è un tipo di file largamente utilizzato nel mondo che ruota intorno alle stampanti 3D.
Un file STL viene utilizzato principalmente per descrivere la geometria della superficie di un modello 3D. Essenzialmente questo file contiene tutte le informazioni geometriche senza però considerare alcuna attribuzione di colore o texture, come invece è comune per altri formati di file CAD.
I file STL possono essere sia in formato ASCII che binari, anche se i file binari sono molto più comuni proprio per le loro dimensioni più compatte. Se analizziamo all’interno un file STL ASCII (non binario) aprendono con un qualsiasi editor di testo (per esempio Notepad++) si può facilmente vedere come siano strutturati i dati che rappresentano il modello 3D.
Qualsiasi file STL deve cominciare con la seguente riga:
solid name
con name indichiamo il nome dell’oggetto, può assumere qualsiasi valore ed è opzionale (anche se è necessario far seguire il comando solid con uno spazio).
Il file continua con un elenco di triangoli (indicati con facet), ciascuno dei quali viene riportato con il seguente formato
facet normal ni nj nk outer loop vertex v1x v1y v1z vertex v2x v2y v2z vertex v3x v3y v3z endloop endfacet
n è la normale alla superficie del triangolo (facet normal) e i tre vertici del triangolo vengono indicati attraverso tre vettori vn. La normale dovrebbe essere un versore (vettore unitario) che punta all’esterno dell’oggetto solido. Tutti i triangoli contenuti all’interno del file STL andranno a comporre la superficie del modello 3D. Infine, a chiusura del file c’è la seguente riga:
endsolid name
che informa gli interpreti e altre applicazioni del termine della struttura dati STL.
Alcune regole generali da seguire
Se stai sviluppando un modello 3D che verrà utilizzato in seguito per creare un’immagine renderizzata o per essere utilizzato in un videogame, allora non ci sarà bisogno che tu impazzisca a controllare se il modello sia poi fattibile nella realtà. Spesso in questi casi, molte scene 3D contengono oggetti che in realtà sono costituiti solo da quegli elementi che sono visibili mentre quelli che rimanfono nascosti non vengono proprio creati (un po’ come gli scenari di un film western con i palazzi a destra e sinistra che in realtà sono solo delle facciate).
Quindi il file STL potrebbe contenere senza problemi anche topologie sensa senso, cattive mesh e vertici duplicati. Ma se hai bisogno di stampare quelo modello con una stampante 3D, allora la situazione è completamente differente!
Gli utililzzatori delle stampanti 3D generalmente utilizza parecchi software nelle varie fasi di creazione di un modello 3D da stampare. Per esempio, per la creazione di un modello 3D, OpenSCAD e Blender sono due software open-source gratuiti, ma chiunque possa disporre di una licenza a pagamento può utilizzare benissimo uno dei tantissimi CAD professionali.
Successivamente, c’è bisogno di utilizzare uno slicing tool (comeSkeinforge o Slic3r), questo affinchè la geometria tridimensionale di un modello 3D sia sottoposta ad una conversione di istruzioni G-Code, necessarie per generare un toolpath per l’extruder.
Infine, il modello 3D prende forma grazie ad una delle tante stampanti 3D controllate a loro volta da un programma di controllo come per esempio Printrun, Cura o RepetierHost.
Oggetti chiusi ‘Watertight’ (nessun bucon nella mesh)
Nella catena di applicazioni utilizzate per la generazione e stampa di un modello 3D, si deve sempre tenere in mente che si sta lavorando con un oggetto solido e reale! Quindi i modelli 3D creati per la stampa devono essere ‘a chiusura stagna’. Quando stai progettando un oggetto, immagina di riempirlo con dell’acqua. bene nessuna goccia di acqua deve poter fuoriuscire da quell’oggetto.
Orientamenteo dei versori normali
Un altro aspetto molto importante è come è definito l’orientamente dei versori normali per ciascun triangolo all’interno del file STL. Tutti i triangoli devono avere la normale che punta verso l’esterno dell’oggetto. Se il modello definito nel file STL contiene una normale invertita (cioè che punta nella direzione opposta) gli interpreti (tra cui la stampante 3D) non sono più in grado di determinare quale sia la parte interna e quale sia quella esterna dell’oggetto..
Rimozione di tutti gli errori dalla Mesh (superficie)
Spesso, specialmente quando abbiamo a che fare con un modello 3D abbastanza complesso, ci potrebbero essere al suo interno alcuni elementi duplicati o ridondanti (linee o facce in più).
Un oggetto è una collezione di triangoli che sono connessi tra di loro per formare una superficie chiusa. Normalmente qualsiasi superficie può essere espressa mediante una serie di triangoli. Tutti gli altri triangoli sono ridondanti o non necessari poichè non definiscono la superficie dell’oggetto.
Tutti i lati dei triangoli che compongono la superficie devono essere propriamente connessi l’un l’altro. Se così non fosse, si potrebbero formare dei buchi, o delle superfici sovrapposte o tagliate. In questo caso, questi lati vengono definiti con l’appellativo di “bad-edges“.
In un file STL ci potrebbero essere dei triangoli che si intersecano tra di loro tagliandosi così l’un l’altro.
Rientrare nelle specifiche della tua stampante 3D.
E’ necessario prestare attenzione alla dimensione massima che gli oggetti possono avere per poter essere interamente stampati dalla stampante 3D che stiamo utilizzando, inoltre è necessario anche fare attenzione allo spessore della stampa.
Per fortuna, e in parte dovuto anche al fatto che questo genere di errori sia abbastanza comune, ci sono una miriade di soluzioni per poter ottimizzare e controllare l’esattezza del modello nel file STL per poter poi essere sottoposto alla stampa. Tra i più utilizzati ci sono per esempio Netfabb, Rhino (usando le funzioni Mesh Repair), Willit3DPrint, Meshmixer.
Una volta che il file STL è stato testato, e riparato se necessario, puoi sottoporre il modello allo slicing per la generazione del g-code e infine passare il tutto alla stampa.
Come controllare e riparare un file STL non corretto?
Certamente la stragrande maggioranza dei prodotti professionali oggi in circolazione presenta una serie di strumenti integrati atti proprio ad effettuare questo genere di operazioni. Anche alcuni software open-source stanno cominciando ad offrire servizi simili. Ma la soluzione che preferisco è quella di ottimizzare e riparare i file STL con un servizio Web gratuito (senza così dover installare niente nel mio PC!!!)..
In questo post tratterò due di questi servizi Web (free) che possono essere utilizzati in sequenza e che possono rappresentare una soluzione ideale per tutti coloro che desiderano analizzare i proprio file STL prima di sottoporli alla stampa 3D.
Netfabb Cloud Services è un prodotto gratuito specifico per la stampa 3D. Può essere utilizzato da qualsiasi browser e su qualsiasi sistema operativo. Semplicemente, basta visitare la pagina web, caricare il file STL, immettere l’indirizzo di posta elettronica e attendere qualche minuto prima di ricevere una email con un link per effettuare il download del nostro STL file completamente riparato.
Un altro servizio Web è Willit 3D Print. Questo sito web utilizza sia JavaScript che WebGL per la visualizzazione e l’analisi del modello 3D contenuto nel file STL che andremo a caricare.
Scoprirai presto l’utilità pratica dell’analisi effettuata da questo sito. Infatti, dopo aver fatto l’upload del file STL (può risiedere nel nostro PC che passato direttamente tramite un URL) otterrai immediatamente tutta una serie di informazioni molti utili.
Prima di cominciare con l’analisi vera e propria del file STL, il sito ti richiede di impostare il modello di stampante 3D che hai intenzione di usare, il materiale che userai e il valore di thickness.
A seconda di questi valori, i risultati varieranno. Dopo alcuni secondi di calcolo la pagina web ti mostrerà il modello in tre dimensioni racchiuso all’interno di una box. La box è il volume operativo in cui la stampante 3D è in grado di operare. In fondo a sinistra c’è una finestra che mostra alcuni valori utili come per esempio le dimensioni reali dell’oggetto, il suo volume e l’area coperta dalla sua superficie.
Partendo da questo scenario 3D, per prima cosa, possiamo esaminare in dettagli il modello tridimensionale descritto dal nostro file STL, ruotando e scalando l’oggetto muovendo il mouse. Successivamente possiamo utilizzare alcuni strumenti di analisi che il sito ci fornisce. Per esempio, si può analizzare il grado di roughness del modello rappresentato attraverso un gradiente di colori che va dal giallo fino al rosso.
Inoltre è possibile chiedere all’applicazione se la stampa 3D del modello sottoposto ad analisi sia fattibile. Dopo pochi secondi di calcolo, si ottiene un buon risultato se l’intera struttura del modello è riportata in verde. Se invece abbiamo qualche sezione colorata in rosso o in grigio, allora vuol dire che quella sezione comporta dei problemi od errori che impediscono o rendono problematica la stampa del modello.
Infine questa applicazione web è in grado di fornirci alcune informazioni riguardo i tempi di stampa e di costo.