Modellare filettature e scalanature per viti, bulloni ed altro in Blender 2.5; versione testuale
NOTA --- Per visualizzare la versione video di questo tutorial, cliccare qui
Salve a tutti, in questo tutorial vedremo come realizzare la filettatura di viti, bulloni ed altri elementi in Blender 3D.
Si tratta di un'operazione che apparentemente può sembrare difficile, ma in realtà è sufficiente utilizzare una Texture, che nei casi migliori può essere addirittura una Texture procedurale fornita di serie da Blender, ed anzi per il primo esempio vedremo proprio questo caso.
Il tutorial è stato realizzato con la versione 2.59 di Blender 3D.
Quello che dobbiamo fare è individuare le parti della mesh che dovranno presentare la filettatura, isolarle con un Vertex Group, dare loro una buona risoluzione in termini di vertici e facce ed applicare un modificatore Displace.
Il modifier Displace deformerà la mesh lungo le normali delle facce seguendo i valori di grigio di una Texture, ed in particolare “alzerà”, per così dire, le parti più chiare, mantenendo basse o inalterate quelle scure e nere.
Attraverso l'uso di una Empty, come vedremo, potremo traslare, ruotare o scalare la filettatura lungo la mesh.
Partiamo dall'esempio della vite: inseriamo nella scena un cilindro con un elevato numero di vertici, ad esempio 96 o 128; avendo cura di disattivare lo Z-Clipping, in una finestra frontale o laterale selezioniamo una delle due basi del cilindro e scaliamola a un centesimo della dimensione iniziale, con S 0.01; non stiamo inserendo direttamente un cono perché, per ottenere una buona risoluzione della mesh, dobbiamo applicare Ring Cut in modalità multitaglio, con tagli equidistanziati, e non possiamo utilizzarlo con un cono.
Selezionando tutti i vertici, quindi, premiamo CTRL R, posizioniamo il mouse in modo da far apparire la linea di taglio orizzontale, ma non applichiamo subito il modificatore, ruotando invece la rotellina del mouse per far apparire nuove linee di taglio equidistanziate; quando il loro numero, e la conseguente risoluzione spaziale, sarà sufficiente, applichiamo il modificatore con click del tasto sinistro del mouse.

Estrudiamo un po' la base maggiore di quello che, in realtà, è un tronco di cono; se vogliamo, possiamo selezionare i vertici della base minore e premere S 0 per rendere appuntita la vite.
A questo punto, impostiamo un Vertex Group per le facce della mesh che dovranno presentare la filettatura, selezionandole magari in modalità Face Select in una 3D View; ricordo che, dopo aver creato il Vertex Group, è necessario cliccare su Assign per assegnare effettivamente le facce selezionate al Vertex Group.
Adesso ci serve una Texture per definire la filettatura; per questo primo esempio, inseriamo nella scena una Texture procedurale di tipo Marble.
Come spiegato nel mio ebook sulle Textures in Blender 3D, le bande delle Textures procedurali di tipo Wood e Marble rappresentano delle funzioni matematiche viste, per così dire, dall'alto, dove il bianco è un valore di intensità associato al picco positivo dell'onda, mentre il nero è associato al picco negativo; se la Turbolenza è a 0, le bande di Marble e Wood saranno dritte: l'algoritmo serve infatti a definire la perturbazione di tali bande se la Turbolenza è maggiore di 0, così come Sin/Tri/Saw servono a specificare la forma dell'onda, e quindi se il passaggio nero-bianco-nero dovrà essere sinusoidale, triangolare o a dente di sega.
Tutte queste informazioni ci servono per definire l'aspetto della filettatura o, al contrario, delle scalanature.
Impostiamo, per iniziare, Turbolenza 0, Soft, Sin.
Selezioniamo quindi la mesh ed aggiungiamo un modificatore Displace, impostando il Vertex Group precedentemente creato nel relativo campo, la Texture appena definita e abbassando il valore di Midlevel e Strength, portando il primo a 0.0 e il secondo al valore che preferiamo; in genere, il valore di default di Strength, 1.0, si rivelerà eccessivo, ma non è detto.
Il risultato sarà molto deludente... Ciò è dovuto alla mappatura della Texture, applicata di default dal modificatore in modalità Map, come si può notare osservando il menù Texture Coordinates di Displace.
Per risolvere questo problema ottenendo, nel mentre, il massimo controllo possibile sulla mappatura, inseriamo nella scena una Empty, impostiamo Texture Coordinates Object per Displace e, nel campo che apparirà nella scheda del Modifier, digitiamo il nome della Empty appena creata.
Adesso dobbiamo lavorare sulla Empty, trasformandola ed osservando in tempo reale gli effetti sulla mesh; in particolare, la traslazione avrà l'effetto di spostare la “fase” della filettatura, mentre la rotazione (da effettuare singolarmente intorno a ciascun asse) varierà l'inclinazione e lo scaling aumenterà la densità. Per rendere più o meno evidente l'effetto, invece, è necessario variare Strength in Displace.
Può essere utile, per ottenere un risultato più gradevole, attivare Set Smooth, se non altro per le sole facce appartenenti al Vertex Group selezionato.
Il nostro grado di controllo sull'aspetto della filettatura non si limita però a questo: come anticipato, possiamo cambiare la forma d'onda utilizzando, ad esempio, Tri o Saw nella Texture, o rendere più o meno ripidi i passaggi con Soft, Sharp e Sharper... e non è finita: attivando la Color Ramp, possiamo personalizzare al massimo la forma d'onda, inserendo nuove bande per variare le transizioni nero-bianco (e quindi la filettatura), cambiare il contrasto ed altro ancora, il tutto osservando in tempo reale le modifiche generate, cosa che semplifica enormemente il lavoro.
Va da sé che, se applicato con Strength negativa, Displace può essere utilizzato per generare delle scalanature, ed eccoci al secondo esempio di questo tutorial: il bullone.
Inseriamo un cilindro nella scena impostando, però, solo 6 vertici: ciò avrà l'effetto di creare un prisma esagonale.
Per poter ottenere un buon foro circolare in questa mesh, inseriamo un nuovo cilindro, questa volta con un numero elevato di vertici (ad esempio 64 o più) e ricorriamo al modificatore Boolean, ed in particolare: posizioniamo il cilindro in modo da passare il prisma da parte a parte, selezioniamo il prisma esagonale, apriamo la scheda Modifiers dello stesso, aggiungiamo un modificatore Boolean, impostiamo la modalità Difference, selezioniamo il nuovo cilindro nel campo Object, e... aspettiamo, ed in particolare aspettiamo che Blender applichi per la prima volta il modificatore, operazione che, a seconda dei casi (ad esempio, dal numero di vertici degli oggetti) può richiedere poco o molto tempo.
Possiamo osservare un'anteprima del risultato passando in modalità Wireframe in una 3D View; in questa fase, ossia quando ancora non abbiamo cliccato su “Applica” nella scheda del modificatore Boolean, possiamo ancora effettuare delle trasformazioni, ad esempio scalando lungo uno o più assi uno dei due oggetti, per variare le dimensioni del foro.
Quando il risultato ci soddisfa, clicchiamo su “Applica” nella scheda del modificatore. Possiamo anche cancellare il secondo cilindro, a questo punto, ottenendo il bullone.
Come detto in un mio precedente videotutorial, per realizzare mesh da passare ad esempio in STL per la prototipazione rapida e la stampa 3D, è preferibile utilizzare boolean per unioni o sottrazioni di volumi. Le mesh realizzate con le modalità descritte in questo tutorial, dopo aver applicato i modifiers boolean e displace (per rendere definitivi gli effetti) si presteranno bene alla stampa 3D.
Torniamo comunque al nostro esempio... La cosa interessante è che Boolean crea le facce interne del bullone seguendo le facce della mesh utilizzata per creare il foro, creando quindi delle facce rettangolari (infatti siamo partiti da un cilindro) per cui per selezionarle tutte sarà sufficiente selezionarne una (in modalità selezione facce) e scegliere “Linked Flat Faces” dal menù Select, nell'header di una finestra 3D View.
Qualora Boolean dovesse generare erroneamente qualche faccia triangolare, possiamo procedere col lavoro, noioso ma necessario, di selezionare gli spigoli per così dire “diagonali” di confine tra facce triangolari, eliminarli, selezionare a 4 a 4 i vertici dello spazio vuoto che verrà creato e premere F, per FILL, per riempire gli spazi con facce quadrangolari.
Prima di continuare, una piccola parentesi: qui ho utilizzato delle mesh per parlare, nel mentre, del modificatore Boolean, tuttavia una mesh con dei fori può essere realizzata in maniera più agevole ricorrendo alle Curves, visto che una Curve dentro un'altra crea appunto dei fori, ed estrudendo l'oggetto Curve così definito prima di procedere alla conversione in mesh... maggiori informazioni su queste operazioni con le Curves nelle relative puntate del mio videocorso di base su Blender 3D.
La selezione delle facce interne ci serve per aumentare la densità delle stesse e applicare Displace solo a tali facce, non a tutta la mesh.
Per aumentare la densità, ricorriamo ancora una volta a Ring Cut con CTRL R e muovendo la rotellina del mouse per aumentare il numero di suddivisioni equidistanziate.
Questa suddivisione creerà molte facce ma fortunatamente l'operazione di selezione è ancora facile, grazie a Linked Flat Faces.
Impostiamo quindi un Vertex Group per tali facce, ma ATTENZIONE: vi consiglio fortemente di TOGLIERE dalla selezione di facce la prima e l'ultima “striscia”, in quanto queste facce sono collegate alle facce superiore e inferiore del bullone e una distorsione dei loro vertici (in seguito all'applicazione di Displace) avrà effetti indesiderati su tali parti della mesh; in alternativa, è possibile inserire anche queste facce ma procedere, in seguito, all'allineamento dei vertici che compongono il cerchio superiore e quello inferiore del foro, allineamento che avviene selezionando (un cerchio per volta) i vertici e premendo S Z Z 0.0, se Z è l'asse locale verticale del foro.
E' possibile rimuovere certi vertici, spigoli e facce da un Vertex Group selezionando tali elementi nella mesh in Edit Mode, selezionando il Vertex Group con Select e cliccando su Remove, per rimuovere appunto la selezione dal gruppo di vertici selezionato. Blender non aggiorna la 3D View dopo aver fatto quest'operazione, per cui vedremo i vertici ancora selezionati anche dopo aver cliccato su Deselect nel Vertex Group.
Inseriamo quindi un modificatore Displace per la mesh, impostando il Vertex Group, Midlevel, Strength, la Texture (possiamo riutilizzare Marble creata precedentemente per la vite) e una nuova Empty per definire la mappatura della Texture sulle facce del Vertex Group, tutto come visto poco fa per la vite, con la sola differenza che in questo caso Strength di Displace dovrà avere valori negativi, in modo da lasciare al giusto livello le facce corrispondenti alle parti nere della Texture e incidere quelle corrispondenti alle parti bianche.
Abbiamo fatto uso di Texture procedurali ma ovviamente è possibile ricorrere a immagini in scala di grigi, opzione utile se il disegno della filettatura è estremamente preciso o se si desidera effettuare rilievi o incisioni con “motivi ornamentali”.
Facciamo quindi un terzo esempio, per mostrare nel mentre come dovrebbe essere impostata una Texture per replicare correttamente un motivo su una mesh.
Supponendo di voler creare dei rilievi a forma di rombo, non dovremo disegnare un rombo bianco centrato in un'immagine a sfondo nero (eventualmente sfumando l'immagine per creare una transizione dolce nel rilievo): dovremo, invece, posizionare 4 copie del rombo agli angoli del rettangolo nero, mostrando in ogni angolo solo un quarto del rombo.
Questa operazione ci serve per generare una texture adatta al TILING, ossia la ripetizione: affiancando infatti varie copie della Texture in verticale e in orizzontale, comporremo correttamente i rombi bianchi su sfondo nero (le parti d'angolo si completeranno con quelle delle copie adiacenti).
Questo concetto va applicato alla generazione di una qualsiasi texture dedicata allo scopo qui descritto.
Ovviamente si procederà con la definizione della giusta risoluzione delle facce alle quali applicare l'effetto, l'assegnazione di tali facce ad un Vertex Group e la creazione di un modifier Displace “pilotato” da una Empty per orientare e scalare la Texture sull'oggetto; la novità, in questo caso, è rappresentata dai campi Repeat X e Repeat Y della sezione Image Mapping della Texture immagine utilizzata.
A differenza delle Texture procedurali, infatti, una Texture immagine verrà applicata, di default, solo UNA VOLTA a tutte le facce appartenenti al Vertex Group; l'operazione di scaling della Empty di controllo avrà l'effetto di ridimensionare tale immagine senza però replicarla, come avveniva invece con le Texture Procedurali.
Per poter replicare l'immagine e, quindi, il “motivo” sulla mesh, è necessario: aprire il pannello Image Mapping della Texture immagine nella scheda Texture, all'interno della Properties Window; impostare Extension: Repeat (di default dovrebbe avere proprio questo valore); impostare valori maggiori di 1 per i campi Repeat X e Repeat Y (ripetizione in orizzontale e in verticale).
A questo punto potremo ruotare la Empty per impostare il “motivo” sull'oggetto.

Per questo tutorial è tutto;
a presto!
|