Facciamo grafica 3D con OpenSCAD (seconda parte)

Nella prima parte dell'articolo abbiamo esplorato le caratteristiche salienti del programma OpenSCAD, consentendo già di produrre interessanti lavori e utili scene 3D. Abbiamo anche apprezzato la relativa facilità d'uso del programma. In questa seconda e conclusiva parte affineremo le tecniche di modellazione solida e apprenderemo nuove funzioni e tecniche avanzate, al fine di produrre scene 3D sempre più sofisticate.

CSG - Geometria Solida Costruttiva

Andiamo ad esplorare uno dei punti di forza del programma: la geometria solida costruttiva. Con essa si possono effettuare operazioni aritmetiche tra i solidi, e precisamente:

  • Unione;
  • Differenza;
  • Intersezione.

Con tali operazioni è possibile scavare dei solidi, tagliarli, rimuovere le parti interessate e sagomarle secondo i propri gusti, il tutto con tecniche booleane. Ben lungi dallo spiegare in dettaglio di cosa si tratti (la Rete è piena di documentazione a riguardo) vediamo come si comporta OpenSCAD con le operazioni booleane tra oggetti. La figura 1 riporta alcune operazioni CSG.

Unione

Il programma effettua una somma logica tra gli oggetti coinvolti. Il risultato ottenuto è un unico solido, come somma dei suoi componenti. Un esempio di unione è descritto nel seguente listato:

union() {
    cylinder(4,1,1,center=true,$fn=100);
    
    translate([0,0,2.3])
    sphere(0.8,center=true,$fn=100);
}

Differenza

Il programma effettua una differenza logica tra gli oggetti coinvolti, rispettando l'ordine di comparsa. Il risultato ottenuto è un unico solido, come operazione di "scavo" tra i suoi componenti. Risulta utile quando un solido deve essere forato. Se l'ordine degli oggetti cambia, anche il risultato finale sarà differente. Un esempio di differenza è descritto nel seguente listato:

difference() {
    cylinder(4,1,1,center=true,$fn=100);
    
    translate([0,0,2.3])
    sphere(0.8,center=true,$fn=100);
}

Intersezione

Il programma effettua una operazione di intersezione tra gli oggetti coinvolti. Il risultato ottenuto è un unico solido, con le sole parti in comune tra i suoi componenti. Un esempio di intersezione è descritto nel seguente listato:

intersection() {
    cylinder(4,1,1,center=true,$fn=100);
    
    translate([0,0,2.3])
    sphere(0.8,center=true,$fn=100);
}

 

 Figura 1: Operazioni di CSG

Figura 1: Operazioni di CSG

I moduli

I moduli di OpenSCAD si possono paragonare alle funzioni e procedure dei tradizionali linguaggi di programmazione. La possibilità di generalizzare un oggetto, infatti, semplifica notevolmente il lavoro ed accorcia il listato di parecchio. Al solito, un esempio pratico, chiarirà immediatamente il concetto. Si debbano costruire tre portaceneri, dalla forma uguale ma dai colori differenti (vedi figura 2). Grazie all'adozione dei moduli, tutto [...]

Iscriviti e ricevi GRATIS
Speciale Pi

Fai subito il DOWNLOAD (valore 15€) GRATIS

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2307 parole ed è riservato agli abbonati PLATINUM. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici MAKER e PLATINUM e potrai fare il download (PDF) di tutti gli EOS-Book, Firmware e degli speciali MONOTEMATICI. ABBONATI ORA, è semplice e sicuro.

Abbonati alle riviste di elettronica

4 Commenti

  1. smania2000 smania2000 6 ottobre 2016
    • Maurizio Di Paolo Emilio Maurizio 6 ottobre 2016
      • smania2000 smania2000 6 ottobre 2016
  2. Giovanni Di Maria Giovanni Di Maria 10 ottobre 2016

Scrivi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Iscriviti e ricevi GRATIS
Speciale Pi

Fai subito il DOWNLOAD (valore 15€) GRATIS