← Journal / CAD · CAE · Design · Ingegneria · Solidworks

Tassellatura di Voronoi e strutture lattiginose

5 aprile 2022 / Alessandro Mastrofini

Realizzazione di una struttura lattiginosa basata sulla tassellatura di Voronoi. Viene anche eseguita un’analisi sulla posizione ottima dei punti tale da minimizzare il volume del corpo.

Il seguente articolo è un estratto di un progetto realizzato per il corso di Tecniche Avanzate di Progettazione di Dispositivi Protesi. Tenuto per Ingegneria Medica presso l’Università degli Studi di Roma Tor Vergata.

Autori: Mastrofini Alessandro & Muscedere Erica

Diagrammi di Voronoi

Un diagramma, o tassellatura, di Voronoi è una decomposizione di uno spazio metrico determinata dalle distanze di un insieme discreto di punti. Nel caso bidimensionale, il diagramma di Voronoi per 𝑆 è la partizione del piano che associa una regione 𝑉 ad ogni punto 𝑝 ∈ 𝑆 in modo tale che tutti i punti di 𝑉 siano più vicini a 𝑝 che ad ogni altro punto in 𝑆.

Per realizzare il diagramma è possibile utilizzare i comandi predefiniti all’interno di Matlab e/o Wolfram Mathematica. In particolare, il comando di Matlab presenta alcune limitazioni in quanto restituisce l’insieme di punti delimitanti i segmenti del diagramma ma non i punti di bordo. Questo rende difficile misurarne la lunghezza complessiva e richiede approssimazioni notevoli per l’ottimizzazione del volume.
All’interno di Mathematica è più facile trattare l’oggetto restituito dalla funzione e calcolare la lunghezza totale di tutti i segmenti presenti (bordo compreso). Inoltre, è possibile esportare facilmente un’immagine vettoriale del diagramma di dimensioni corrette e tale da includere solo segmenti e punti centrali. Tale immagine verrà poi usata direttamente in Solidworks.

Voronoi

Figura 1: Tassellatura di Voronoi. Ottimizzazione tramite ciclo (a) e disposizione a raggiera (b)

Volume minimo

L’obiettivo di minimizzazione riguarda il rapporto tra il peso della struttura lattiginosa e il peso della struttura piena. I volumi in fig. 2 fanno riferimento alla struttura di metà cilindro dopo l’estrusione dei rami e la raccordatura. Il focus è facilmente trasferibile al calcolo del minor volume della struttura lattiginosa e quindi alla lunghezza dei rami. Questo è stato affrontato già dal design del diagramma cercando di minimizzare la lunghezza totale dei segmenti. Sono stati utilizzati due differenti approcci che hanno portato a conclusioni simili.

Approccio esaustivo

Un possibile approccio è di tipo esaustivo, ovvero un’analisi a «forza bruta» su diverse combinazioni. In particolare, mediante Mathematica abbiamo impostato una funzione tale da generare coppie random di numeri {𝑥, 𝑦} nel range di interesse (dominio di 200 mm × 300 mm) verificando automaticamente che la distanza tra i punti fosse entro i requisiti di progetto (altrimenti selezionava un nuovo punto). Si estraggono 20 punti ed è possibile creare il diagramma di Voronoi associato. Testando oltre 1 milione di diagrammi mediante un ciclo di ottimizzazione si riesce a ridurre la somma delle lunghezze dei segmenti generati nel diagramma (bordi compresi). Sono stati estratti i punti e il diagramma in fig. 1a.

Geometrie ragionate

Un approccio differente prevede l’utilizzo di particolari simmetrie. Grazie a Mathematica è stato possibile generare un diagramma interattivo che, spostando i punti, forniva la tassellatura. Questo ha permesso di fare alcune considerazioni. Utilizzando una griglia ordinata si raggiungevano buoni risultati ma l’opzione migliore è stata quella di disporre i punti su una circonferenza (fig. 1b) di raggio:

R= distanza tra i punti 2sin⁡(2π2⋅n. punti )R=\frac{\text { distanza tra i punti }}{2 \sin \left(\frac{2 \pi}{2 \cdot n . \text { punti }}\right)}

Così da avere i punti distanti come da specifiche e avere il minor numero di rami.

Costruzione CAD

Per la costruzione si utilizza direttamente l’immagine esportata in vettoriale. Prima di caricarla all’interno di Solidworks è stata convertita in formato .DXF separando i segmenti intersecanti in diversi livelli così da semplificare la successiva fase di estrusione. Quindi è possibile estrudere i rami centrali tramite estrusione sottile centrata e i bordi avendo cura di estrudere verso l’interno (così da avere la struttura 200×300 mm). Mediante il comando flex si flettee infine si specchia per completare il cilindro.
Il risultato migliore è stato raggiunto con la disposizione a raggiera.

Figura 2: Schermata delle strutture finali. Costruzione randomica (a) e costruzione a raggiera (b). I volumi e i rapporti fanno riferimento a metà cilindro (solamente con l’estrusione dei rami e i raccordi)

Riferimenti