Serata a tema: OpenSCAD - disegnare in 3D programmando
Lunedì 10 dicembre 2012, per Pillole di Free Software, serata dedicata a OpenSCAD
OpenSCAD è un software per creare oggetti CAD 3D. Stiamo parlando di un software libero e disponibile per Linux/UNIX, MS Windows e Mac OS X.

Esso non si focalizza sulla modellazione artistica tipica di software come Blender, bensì mantiene un legame più stretto con la progettazione CAD.
OpenSCAD è qualcosa di simile a un compilatore 3D che legge un file script per descrivere un oggetto e renderizzarlo. Questo garantisce un controllo completo al designer e permette di modificare con semplicità ogni passaggio nel processo di modellazione o di creare modelli definiti da parametri configurabili.
Il programma offre principalmente due tecniche di modellazione:
- Geometria solida costruttiva (CSG, vedi sotto)
- Estrusione di perimetri 2D
Come formato di scambio per i perimetri 2D è utilizzato il formato DXF, dal quale è inoltre possibile leggere dei parametri. OpenSCAD può leggere e creare modelli 3D nel formato STL e OFF.
Geometria Solida Costruttiva (CSG)
La geometria solida costruttiva, abbreviata spesso in CSG, è un modello di rappresentazione di oggetti 3D, di tipo volume-based. In questo approccio le forme vengono costruite a partire da una famiglia di solidi geometrici elementari, chiamati primitive, come ad esempio il parallelepipedo, il cilindro, la sfera, il cono, il toro.
Per costruire volumi complessi a partire da questi volumi elementari si fa uso di operazioni booleane, che derivano dalle operazioni sugli insiemi:
- Somma (unione)
- Sottrazione (differenza)
- Intersezione
Il procedimento che porta a ottenere il solido finale può essere organizzato in uno schema, chiamato albero CSG: ogni foglia rappresenta un solido e a ogni nodo corrisponde un’operazione booleana, mentre in cima troviamo l’oggetto finale.

Un esempio: il cilindro
Vediamo come creare una forma primitiva. Sperimentiamo con un cilindro modificando vari parametri:
cylinder(h = 10, r1 = 10, r2 = 20, center = false);
cylinder(h = 20, r1 = 20, r2 = 10, center = true);
Adesso proviamo a vedere cosa succede unendo i due oggetti o intersecandoli:
union() {
cylinder(h = 10, r1 = 10, r2 = 20, center = false);
cylinder(h = 20, r1 = 20, r2 = 10, center = true);
}
difference() {
cylinder(h = 10, r1 = 10, r2 = 20, center = false);
cylinder(h = 20, r1 = 20, r2 = 10, center = true);
}
La serata: modellare un anemometro passo per passo
Nel corso dell’incontro vedremo come modellare passo passo un anemometro completo, partendo dalle primitive e combinandole con le operazioni CSG. Sarà un ottimo modo per mettere in pratica i concetti illustrati e capire come OpenSCAD rende la progettazione 3D ripetibile e parametrizzabile.