Passare da un modello CAD a un file utilizzabile da uno slicer sembra un’operazione semplice, ma la conversione nasconde diversi problemi geometrici. Un file STEP descrive superfici, raccordi, fori e solidi attraverso entità matematiche precise, mentre un file STL rappresenta lo stesso oggetto mediante una rete composta da triangoli.
Durante questa trasformazione possono comparire fessure tra le superfici, triangoli molto sottili, bordi non collegati oppure parti mancanti. Il modello può apparire corretto sullo schermo e, allo stesso tempo, produrre errori durante lo slicing, la modifica della mesh o la generazione del percorso di stampa.
Per affrontare questo passaggio, Stefan Hermann di CNC Kitchen ha sviluppato meshStep, uno strumento gratuito e open source che permette di aprire, analizzare e convertire file STEP direttamente all’interno di un browser.
Il progetto era nato come ambiente di verifica per un nuovo convertitore da STEP a mesh. Nel corso dello sviluppo si è trasformato in un visualizzatore CAD dotato di strumenti per il controllo della geometria, la misurazione del modello e l’esportazione in STL.
Dal modello CAD alla rete triangolare
I file STEP, riconoscibili dalle estensioni .step e .stp, sono utilizzati per trasferire modelli tridimensionali tra programmi CAD differenti. Possono conservare superfici matematiche, corpi separati, colori, nomi dei componenti e strutture di assieme.
Gli slicer per la stampa 3D lavorano invece soprattutto con formati basati su mesh, come STL e 3MF. Prima di preparare il G-code, il modello STEP deve quindi essere trasformato in una superficie composta da triangoli.
Questo processo viene chiamato tassellazione. Aumentando il numero dei triangoli è possibile seguire con maggiore precisione curve e raccordi, ma si ottengono file più pesanti. Riducendo troppo la risoluzione, le superfici cilindriche possono diventare visibilmente sfaccettate e i dettagli più piccoli rischiano di essere semplificati.
meshStep consente di intervenire sui parametri che regolano la generazione della mesh, in modo da trovare un equilibrio tra precisione geometrica, qualità dei triangoli e dimensione del file.
Una mesh pensata per essere elaborata, non soltanto visualizzata
Molti convertitori CAD generano separatamente i triangoli di ogni superficie del modello. Il risultato può apparire corretto in un visualizzatore, ma contenere vertici duplicati o sottili discontinuità lungo i bordi che dovrebbero essere condivisi.
Il progetto di CNC Kitchen segue un’impostazione diversa. I bordi comuni alle superfici vengono campionati una sola volta e collegati tra loro, con l’obiettivo di produrre per ogni corpo una mesh chiusa e coerente.
Questo aspetto diventa importante quando il modello non deve essere soltanto mostrato sullo schermo, ma anche sottoposto a operazioni successive. Una mesh con difetti può creare difficoltà durante:
- lo slicing;
- le operazioni booleane;
- l’aggiunta di texture o rilievi;
- la creazione di offset;
- la voxelizzazione;
- le simulazioni;
- la generazione automatica di riempimenti;
- la modifica e la riparazione del modello.
meshStep cerca inoltre di limitare la presenza dei cosiddetti “sliver triangles”, triangoli molto lunghi e sottili che possono rendere instabili alcune elaborazioni geometriche.
Per trattare superfici periodiche come cilindri, coni, sfere e tori, il programma sviluppa temporaneamente la superficie su un piano prima di eseguire la triangolazione. Questo metodo serve a evitare torsioni della mesh lungo le linee di chiusura della superficie.
Tutto il modello rimane sul computer dell’utente
Uno degli aspetti più interessanti di meshStep riguarda il trattamento dei dati. L’elaborazione avviene localmente nel browser e il file CAD non viene inviato a un server esterno.
Questo comportamento può risultare utile quando si lavora con componenti industriali, prototipi non ancora presentati, ricambi proprietari o progetti coperti da accordi di riservatezza.
Non è quindi necessario trasferire il modello a un servizio remoto per ottenere la conversione. Le operazioni vengono eseguite sul dispositivo utilizzato dall’utente attraverso un Web Worker, così da separare l’elaborazione della geometria dall’interfaccia principale del browser.
Il nucleo del programma è scritto in TypeScript e non richiede WebAssembly, librerie native o l’installazione di un kernel CAD completo. Il codice occupa circa 182 KB nella versione minimizzata, che scendono a circa 68 KB con compressione gzip.
Quali formati può aprire meshStep
Il programma legge file STEP basati sullo standard ISO 10303-21 e supporta le principali varianti utilizzate nello scambio di dati CAD:
- AP203;
- AP214;
- AP242.
Sono gestiti modelli con più corpi e assiemi con strutture di prodotto. Quando presenti nel file, meshStep può recuperare i nomi dei componenti, la gerarchia dell’assieme, le istanze ripetute e i colori associati alle superfici o ai corpi.
Oltre ai file STEP, il visualizzatore può aprire mesh già esistenti in formato STL e 3MF. I file STL possono essere sia binari sia ASCII, mentre il lettore 3MF interpreta anche trasformazioni, componenti e colori assegnati ai triangoli.
L’esportazione disponibile è al momento orientata soprattutto verso il formato STL binario. Il supporto completo all’esportazione 3MF figura ancora tra le funzioni da completare.
Visualizzazione, sezioni e struttura degli assiemi
Dopo il caricamento del modello, meshStep mette a disposizione diversi sistemi di visualizzazione. L’utente può mostrare l’oggetto in modalità ombreggiata, trasparente, wireframe oppure evidenziando i bordi.
Le linee che delimitano le superfici CAD possono essere mantenute nella mesh. Questo permette di distinguere, per esempio, una superficie cilindrica da un piano, oppure di individuare con maggiore facilità raccordi, fori e separazioni tra i corpi.
Nel caso di assiemi o parti multicorpo, una struttura ad albero permette di selezionare, nascondere o mostrare i singoli componenti. Le associazioni tra triangoli, superfici STEP e corpi originali vengono conservate durante la conversione.
Questa informazione non è presente in un normale STL, che contiene soprattutto coordinate e normali dei triangoli. All’interno di meshStep può invece essere utilizzata per selezionare superfici reali del modello CAD senza doverle riconoscere nuovamente analizzando la geometria.
Il programma dispone anche di un piano di sezione regolabile, utile per osservare cavità, pareti interne e intersezioni. La visualizzazione esplosa consente di separare graficamente i componenti di un assieme e comprenderne la disposizione.
Misurazioni basate sulla geometria STEP
Il visualizzatore include strumenti di misura che sfruttano, quando disponibili, le informazioni geometriche presenti nel file STEP.
Un cerchio o un foro, per esempio, non viene considerato soltanto come una sequenza di triangoli. meshStep può recuperare il centro, il raggio e l’asse definiti nella geometria CAD originale.
Questa caratteristica consente misurazioni più coerenti rispetto a quelle ottenute selezionando casualmente punti sulla superficie triangolata. Il risultato dipende comunque dalla qualità e dalla correttezza del file STEP caricato.
Controllo delle aperture e delle superfici problematiche
Prima di esportare il modello è possibile verificare se la mesh presenta bordi aperti o zone non manifold.
Una mesh chiusa dovrebbe delimitare un volume senza fessure. Ogni bordo interno deve essere condiviso dal numero corretto di triangoli. Quando un bordo appartiene a un solo triangolo, può indicare una superficie aperta o una parte mancante. Quando è condiviso da troppi triangoli, può segnalare una struttura non manifold.
meshStep evidenzia graficamente questi difetti e produce una diagnostica al termine dell’importazione. Il controllo considera anche:
- superfici che non sono state triangolate;
- entità geometriche scartate durante la lettura;
- riparazioni euristiche applicate;
- bordi aperti;
- bordi non manifold;
- corpi non chiusi.
Se vengono rilevati problemi importanti, il programma invita a ispezionare il modello e, se necessario, a esportare nuovamente la mesh dal software CAD originale.
Confrontare la conversione con un file STL di riferimento
Una funzione particolare permette di caricare un secondo STL da utilizzare come riferimento. meshStep calcola la distanza tra la mesh generata e il modello di confronto, rappresentando le deviazioni attraverso una mappa visiva.
Questo sistema può essere utilizzato per controllare quanto la tassellazione si discosti da un’esportazione prodotta dal CAD oppure per confrontare due impostazioni di conversione.
Non si tratta di un controllo metrologico certificato, ma di uno strumento utile per individuare rapidamente zone in cui la mesh appare troppo semplificata o presenta scostamenti concentrati.
La regolazione della qualità della mesh
I parametri principali richiamano quelli presenti nei sistemi di esportazione mesh dei programmi CAD:
- deviazione massima dalla superficie;
- deviazione delle normali;
- lunghezza massima dei bordi;
- rimodellazione isotropica opzionale.
La deviazione dalla superficie stabilisce quanto i triangoli possono allontanarsi dalla geometria matematica. Valori ridotti aumentano la fedeltà, ma producono un numero maggiore di triangoli.
La deviazione delle normali controlla quanto può cambiare l’orientamento tra triangoli adiacenti, mentre la lunghezza massima dei bordi impedisce la creazione di triangoli troppo estesi.
La rimodellazione isotropica cerca di ottenere triangoli più uniformi e vicini alla forma equilatera. Durante questo passaggio, i vertici vengono riproiettati sulle superfici matematiche del modello STEP, mentre i bordi caratteristici vengono mantenuti.
Non sempre la mesh con il maggior numero di triangoli è quella più adatta alla stampa. Per superfici piane o poco curve, una densità eccessiva aumenta la dimensione del file senza produrre benefici visibili. Per piccoli raccordi, filettature e superfici curve, una risoluzione troppo bassa può invece modificare la forma del componente.
I risultati dichiarati dal progetto
CNC Kitchen ha pubblicato anche alcuni dati sui test condotti durante lo sviluppo.
Su una raccolta controllata di 13 modelli contenenti geometrie analitiche, superfici NURBS e assiemi, le mesh sono risultate chiuse e senza bordi non manifold. Su un gruppo di 81 modelli comprendente file scaricati da Printables e casi di prova NIST, 70 modelli sono stati convertiti senza difetti, nove hanno mostrato aperture localizzate e due hanno prodotto errori di importazione.
Il test più ampio ha utilizzato 10.000 file del dataset di ricerca ABC. In questo caso 9.719 modelli, pari al 97,2%, hanno prodotto mesh chiuse, manifold e con tutte le superfici triangolate. I file rimanenti hanno evidenziato perdite lungo le giunzioni, timeout, superfici non triangolate o altri difetti.
Questi dati provengono dal repository del progetto e non rappresentano una certificazione indipendente. Mostrano però che lo sviluppatore ha scelto di pubblicare anche i casi in cui il convertitore non riesce a produrre un risultato corretto.
I limiti attuali di meshStep
meshStep non vuole sostituire un kernel CAD completo. Non offre strumenti per modificare parametricamente il modello, costruire nuove superfici, eseguire raccordi o correggere in profondità una geometria STEP danneggiata.
Il programma si affida alla topologia contenuta nel file originale. Se il modello presenta già fessure, autointersezioni, superfici sovrapposte o collegamenti errati, questi problemi non vengono necessariamente riparati.
Il supporto è concentrato sul formato STEP. Chi deve gestire IGES, JT, Parasolid o altri formati CAD deve utilizzare software differenti oppure convertire prima il modello.
CNC Kitchen segnala inoltre che alcune geometrie complesse, come filettature con più avvolgimenti, superfici degeneri o modelli aziendali particolarmente pesanti, possono richiedere molto tempo oppure produrre errori. Circa lo 0,7% dei modelli del dataset ABC ha superato il limite di elaborazione di 120 secondi impostato nei test più severi.
Per file CAD industriali con geometrie anomale, metadati PMI, necessità di riparazione automatica o compatibilità con molti formati, rimangono più adatti kernel come OpenCASCADE o SDK commerciali quali CAD Exchanger e HOOPS Exchange.
Un progetto open source con licenza AGPL
Il codice di meshStep è pubblicato con licenza AGPL 3.0. Può quindi essere studiato, modificato e integrato in altri progetti open source nel rispetto delle condizioni previste dalla licenza.
Per l’integrazione in prodotti proprietari è prevista la possibilità di richiedere una licenza commerciale. CNC Kitchen dichiara che il codice appartiene a un unico titolare e non incorpora componenti di terze parti, condizione che semplifica la concessione di eccezioni commerciali.
Il progetto comprende una libreria utilizzabile anche al di fuori del visualizzatore. Gli sviluppatori possono importare un file STEP, accedere alla mesh generata, mantenere il collegamento tra triangoli e superfici CAD, leggere la struttura dell’assieme ed esportare un STL binario.
L’interfaccia web rappresenta quindi una delle possibili applicazioni della libreria, non l’unico scopo del progetto.
Dove può essere utile nella stampa 3D
meshStep può trovare spazio soprattutto nei flussi di lavoro in cui si riceve un file STEP ma non si dispone del programma CAD con cui è stato creato.
Un service di stampa può utilizzarlo per controllare rapidamente un componente inviato dal cliente. Un progettista può confrontare diverse impostazioni di tassellazione prima di generare lo STL. Un maker può aprire un file STEP, verificarne le dimensioni e prepararlo per lo slicer senza installare una suite CAD completa.
Il fatto che l’elaborazione avvenga localmente rende lo strumento adatto anche alla prima verifica di progetti che non dovrebbero essere trasferiti su piattaforme esterne.
Rimane importante conservare sempre il file STEP originale. La conversione in STL elimina una parte delle informazioni CAD, come superfici matematiche, struttura parametrica, nomi delle lavorazioni e relazioni tra gli elementi.
Per una stampa occasionale può essere sufficiente ottenere una mesh chiusa e correttamente dimensionata. Per modifiche progettuali, produzione seriale o archiviazione tecnica, il formato STEP continua invece a rappresentare il riferimento principale.
meshStep si colloca quindi tra il programma CAD e lo slicer: non modifica il progetto e non prepara direttamente il G-code, ma offre un ambiente accessibile per trasformare la geometria CAD in una mesh, controllarne la struttura e individuare eventuali problemi prima di avviare la stampa.
