STL files: cosa sono e come verificarli per una stampa 3D

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 (comeSkeinforgeSlic3r), 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, CuraRepetierHost.

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.

stl-defects-01
Fig.1: si puo trovare un buco nella mesh quando è possibile vedere la geometria interna dell’oggetto attraverso di esso.

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..

stl-defects-02
Fig.2: sulla sinistra è rappresentato un oggetto con le normali che puntano correttamente tutte verso l’esterno, mentre sulla destra uno dei trangoli mostra la sua superficie interna verso l’esterno.

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.

stl-defects-03
Fig.3: nel modello di destra, i triangoli che descrivono la parte inferiore del parallelepipedo più piccolo (la parte immersa nella scatola più grande) non sono necessari e possono essere rimossi.

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“.

stl-defects-05
Fig.4: un bad-edge

In un file STL ci potrebbero essere dei triangoli che si intersecano tra di loro tagliandosi così l’un l’altro.

stl-defects-04
Fig.5: due triangoli che si tagliano 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.

banner_a_scriviarticolo

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.

stl-defects-netfabb
Fig.6: il netFabb Cloud service

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.

stl-defects-willit
Fig.7: la pagina di Willit3DPrint

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.

stl-defects-willit-01
Fig.8: puoi regolare l’analisi in base al modello 3D

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.

stl-defects-willit-02
Fig.9: il risultato dell’analisi è mostrato attraverso un modello 3D

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.

stl-defects-willit-03
Fig.10: la roughness viene indicata con un gradiente di colore

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.

stl-defects-willit-04
Fig.11: il modello è stampabile se è tutto verde e quindi è un “oggetto solido”

Infine questa applicazione web è in grado di fornirci alcune informazioni riguardo i tempi di stampa e di costo.

stl-defects-willit-05
Fig.12: i tempi e i costi di stampa vengono mostrati in una pagina simile ad una lavagna

Lascia un commento