Hai sempre desiderato progettare i tuoi modelli 3D? Che dire della stampa 3D di una parte che hai progettato? Ci sono molti programmi di modellazione 3D in giro, ma questi possono essere difficili da usare se non si è artistici (come me). OpenSCAD ti offre un modo per progettare modelli specifici per la stampa 3D, utilizzando solo il codice . Non preoccuparti se non sai nemmeno come codificarti, oggi ti guiderò attraverso le basi.
Cos'è OpenSCAD?
OpenSCAD è un modellatore di progettazione assistita da computer solido gratuito. È disponibile per Windows, Mac e Linux. Ciò che lo rende diverso da molti altri programmi è la progettazione di parti usando il codice al posto del mouse. Ciò rende molto semplice eseguire calcoli matematici, memorizzare dimensioni in variabili, ridimensionare parti e altro ancora.
Ci sono alcuni fattori da tenere in considerazione quando si stampano modelli 3D, ma molti di questi si applicano alla stampa 3D di modelli CAD in generale, non solo ai progetti OpenSCAD. Se vuoi saperne di più sulla stampa 3D, consulta la nostra guida per principianti Ultimate Beginner's Guide to 3D Printing Guida per principianti alla stampa 3D La stampa 3D avrebbe dovuto essere la nuova "rivoluzione industriale". Non ha ancora conquistato il mondo, ma sono qui per parlarti di tutto ciò che devi sapere per iniziare. Leggi di più . Se stai cercando un modellatore più interattivo, leggi la guida alla creazione di oggetti in Sketchup Design & Build Edifici virtuali 3D e oggetti con Google SketchUp Progetta e costruisci edifici virtuali 3D e oggetti con Google SketchUp Google SketchUp è il programma di modellazione backbone per Google BuildingMaker, che consente ai grafici di inviare progetti di costruzione a Google da aggiungere alle immagini ufficiali di Google Earth. Leggi di più .
Prepararsi
Per prima cosa, vai alla pagina dei download e trova una versione di OpenSCAD adatta al tuo sistema operativo. Sto usando Mac OS, ma questi principi di OpenSCAD si applicano a tutti i sistemi.
Una volta installato, vai avanti e aprilo. Ti verrà presentato questo menu di avvio:
Questo ti mostra i file che hai aperto per ultimi e ti dà la possibilità di caricare alcuni esempi. Sentiti libero di dare un'occhiata ad alcuni esempi, tuttavia ho scoperto che queste cose rendevano le cose più confuse al momento del primo avvio. Per questo tutorial, crea un nuovo file facendo clic sul nuovo pulsante.
Una volta aperto, ti verrà presentata questa interfaccia dall'aspetto appariscente:
Questo è diviso in tre aree principali. A sinistra c'è il tuo editor e menu. Qui è dove scriverai il tuo codice. Non avrà ancora alcun codice, dato che stai creando un nuovo file. Nella parte superiore, ci sono alcuni pulsanti di menu per eseguire attività di base, come caricare, salvare, annullare e così via.
La parte in basso a destra è la console . Questo mostrerà eventuali errori nella costruzione del modello.
La sezione finale è l' interfaccia principale in alto a destra. Qui puoi interagire con il tuo modello, ma non sarai in grado di modificarlo qui (scriverò codice per farlo).
Ci sono diversi pulsanti nella parte inferiore di questa interfaccia principale. Questi ti consentono principalmente di visualizzare il tuo design in diversi modi.
Vai avanti e salva un nuovo file premendo il pulsante Salva nel menu dell'editor o andando su File > Salva .
Le basi
Il modo in cui OpenSCAD funziona la maggior parte del tempo è attraverso l'addizione e la sottrazione di forme semplici. Puoi costruire modelli molto complessi in questo modo, quindi saltiamo dentro.
Ecco la prima forma, una semplice scatola:
Ed ecco il codice per produrlo:
cube(); // create a cube
Per ottenere il codice da eseguire e creare il modello, è necessario visualizzarlo in anteprima. OpenSCAD lo farà di default ogni volta che salvi, oppure puoi premere F5 per forzare un aggiornamento. Prova a muoverti nello spazio 3D tenendo premuti i pulsanti sinistro o destro del mouse.
Ora, questo produce un bel cubo, ma non è terribilmente utile senza alcuna dimensione. OpenSCAD non funziona in nessun particolare sistema di misura, invece, le unità sono tutte relative l'una all'altra. Puoi creare una scatola 20 x 10, e spetta a qualsiasi altro programma (come l'affettatrice di stampa 3D) interpretare questi, che siano metrici o imperiali. In realtà fornisce una grande flessibilità.
Aggiungiamo alcune dimensioni al tuo cubo. Lo fai passando i parametri al metodo cubo :
cube(size = [10, 20, 30]); // rectangle
I valori 10, 20 e 30 rappresentano la dimensione del cubo nell'asse X, Y e Z. Nota come questo ha prodotto un rettangolo molto più grande:
Per impostazione predefinita, OpenSCAD disegna i componenti in basso a sinistra. Puoi regolarlo impostando il parametro centrale su true . Ecco il codice per farlo nel rettangolo:
cube(size = [10, 20, 30], center = true); // rectangle centered
Ed ecco come appare:
La centratura degli oggetti funziona bene per forme semplici, ma rende le cose complicate per oggetti non simmetrici. Dovrai decidere quale metodo funziona meglio per te.
Passando a una forma più complessa, ecco un cilindro :
Ecco il codice per crearlo:
cylinder(d = 10, h = 10, center = true); // cylinder
A differenza dei cubi, i cilindri vengono disegnati automaticamente al centro dell'asse X e Y. Il parametro d sta per diametro (puoi invece passare nel raggio se preferisci). Il parametro h è l'altezza. Qui però c'è qualcosa di sbagliato. Questo cilindro sembra abbastanza "blocky". È necessario aumentare il numero di volti disegnati sulla circonferenza. Questo è facile da fare: aggiungi il seguente parametro al tuo codice cilindro.
$fn = 100
Quindi la definizione del cilindro diventa:
cylinder(d = 10, h = 10, center = true, $fn = 100);
Ecco come appare:
Questo aumenta il numero di facce necessarie per creare cerchi: 100 è un buon punto di partenza. Tieni presente che ciò aumenterà notevolmente i tempi di rendering, in particolare su modelli complessi, quindi di solito è meglio lasciarlo fuori fino alla fine della progettazione.
È facile applicare trasformazioni sulle forme. Devi chiamare metodi speciali prima di creare le tue forme. Ecco come ruotare il cilindro usando il metodo di rotazione :
rotate(a = [0, 90, 0]) cylinder(d = 10, h = 10, center = true); // rotated cylinder
I valori passati al parametro a rappresentano l'angolo di rotazione dell'asse X, Y e Z. Ecco il risultato:
Un'altra funzione molto utile è tradurre . Ciò consente di spostare gli oggetti nello spazio 3D. Ancora una volta, dovrai passare la quantità di movimento per ciascun asse. Ecco il risultato:
Ecco il codice:
translate(v = [0, 25, 0]) cylinder(d = 10, h = 10, center = true); // translated cylinder
Capire il metodo di traduzione è una delle cose più importanti che puoi fare. È richiesto per la progettazione di disegni più complessi.
Infine, un'altra forma utile è una sfera :
Ecco il codice:
sphere(d = 100);
Proprio come il cilindro, puoi appianarlo usando il codice $ fn sopra.
Codifica avanzata
Ora che conosci le basi, diamo un'occhiata ad alcune abilità più avanzate. Quando si progetta una parte, è utile pensare a come potrebbe essere composta da oggetti e forme più piccole. Non devi farlo e puoi "inventare le cose" mentre procedi, ma aiuta ad avere un piano approssimativo - anche se è solo nella tua testa.
Creiamo una forma avanzata: un cubo con un interno di sfera scavata. Crea un cubo e una sfera con il centro impostato su vero. Sottrarre gli uni dagli altri usando il metodo di differenza :
difference() { // subtraction cube(size = [50, 50, 50], center = true); // outer cube sphere(d = 65, center = true); // inner sphere }
Ecco il risultato:
Sperimenta con il diametro (parametro d ) della sfera e vedi cosa succede.
In OpenSCAD, di solito ci sono molti modi per realizzare lo stesso compito. Se vuoi un groove in un cubo, puoi sottrarre un altro cubo o aggiungerne altri due sopra. Di solito non importa in che modo vengono fatte le cose, ma a seconda della complessità della parte, può essere più semplice fare certe manipolazioni prima.
Ecco come creare un canale in un cubo. Invece di usare un altro cubo, l'uso di un cilindro creerà un canale arrotondato. Si noti come viene utilizzato ancora una volta il metodo della differenza e come vengono utilizzati i metodi translate e rotation per manipolare le forme. L'utilizzo del metodo di rotazione spesso rende complicate le trasformazioni, quindi gioca con i parametri fino a raggiungere il risultato desiderato. Ecco il codice:
difference() { // subtraction cube(size = [50, 150, 50]); // outer cube translate(v = [25, 150, 50]) rotate(a = [90, 0, 0]) cylinder(d = 40, h = 150); // cylinder channel }
Ecco come appare:
Forse ti starai chiedendo cosa siano tutte le cose verdi. Questo è qui perché il modello 3D è solo un'anteprima in questo momento. Per risolvere questo problema, premere F6 per eseguire il rendering completo del modello. Questo può richiedere del tempo, a seconda della complessità. L'anteprima ( F5 ) di solito è abbastanza buona mentre si lavora. Ecco come appare il rendering finale (con $ fn impostato su 100):
Ecco un altro esempio avanzato. Supponi di voler montare qualcosa usando un bullone. Creare un buco è abbastanza semplice usando il cilindro, ma cosa succederebbe se si volesse montare la testa del bullone per i bulloni a testa svasata? Potresti semplicemente creare un cilindro grande per la testa del bullone, ma non sarebbe molto bello. La soluzione è uno smusso, che è possibile creare con il metodo del cilindro . Il trucco qui è di specificare due diametri - d1 e d2 . Crea queste dimensioni diverse e OpenSCAD farà il resto.
Dato che sono inglese, userò qui le dimensioni metriche, per un bullone a testa svasata M5. Potresti facilmente regolarlo per adattarlo a qualsiasi fissazione che desideri utilizzare. Ecco il codice:
$fn = 100; // bolt settings m5_clearance_diameter = 5.5; m5_head_clearance_diameter = 11; m5_head_depth = 5; difference() { // subtract cube(20, 20, 20); bolt_hole(10, 10, 20); bolt_bevel(10, 10, 15); } module bolt_hole(x, y, height) { /* M5 hole at 90 deg. */ translate(v = [x, y, 0]) cylinder(d = m5_clearance_diameter, h = height); } module bolt_bevel(x, y, z) { // M5 bevel translate(v = [x, y, z]) cylinder(d2 = m5_head_clearance_diameter, d1 = m5_clearance_diameter, h = m5_head_depth); }
Si noti come le dimensioni dei bulloni sono memorizzate in variabili? Ciò semplifica notevolmente la programmazione e la manutenzione. Un metodo che potresti non aver ancora incontrato è il modulo . Questo ti permette di definire un blocco di codice da eseguire quando vuoi. In realtà, questa è una funzione . Dovresti utilizzare moduli e variabili per qualsiasi forma complessa, in quanto rendono le cose più facili da leggere e più veloci per apportare eventuali modifiche. Ecco come appare lo smusso:
Diamo un'occhiata ad un ultimo esempio. Supponi di voler produrre una serie di fori attorno a un cerchio. Potresti misurare, tradurre e ruotare manualmente tutti questi, ma anche con i moduli questo sarebbe noioso. Ecco il risultato finale, 10 cilindri distribuiti anche attorno a un cerchio:
Ecco il codice:
$fn = 100; number_of_holes = 10; for(i = [1 : 360 / number_of_holes : 360]) { // number_of_holes defines number of times this code runs make_cylinder(i); } module make_cylinder(i) { // make cylinder and even distribute rotate([0, 0, i]) translate([10, 0, 0]) cylinder(h = 2, r = 2); }
Questo codice è più semplice di quanto ti aspetteresti. Un ciclo for viene utilizzato per chiamare il modulo make_cylinder per dieci volte. Poiché ci sono 360 gradi in un cerchio e 360/10 = 36, ogni cilindro deve essere ruotato con incrementi di 36 gradi. Ogni iterazione di questo ciclo incrementa la variabile i di 36. Questo ciclo chiama il modulo make_cylinder, che semplicemente disegna un cilindro e lo posiziona in base ai gradi passati ad esso dal ciclo. Puoi disegnare più o meno cilindri modificando la variabile number_of_holes - sebbene tu possa voler regolare la spaziatura se lo fai. Ecco come appaiono i 100 cilindri, si sovrappongono leggermente:
Esportazione
Ora che sai come codificare in OpenScad, c'è un ultimo passaggio necessario prima di poter stampare i tuoi modelli in 3D. È necessario esportare il design da OpenSCAD nel formato STL standard utilizzato dalla maggior parte delle stampanti 3D. fortunatamente, c'è un'esportazione nel pulsante STL: Menu Editor > In alto a destra :
Questo è tutto per oggi. Ora dovresti avere un'ottima conoscenza operativa di OpenSCAD - tutte le cose complesse si basano su queste basi e molte forme complesse sono davvero tante forme semplici combinate.
Per una sfida, perché non guardare alcuni dei nostri progetti di stampa 3D e provare a ricreare le parti in OpenSCAD:
- Stampabili 3D per giochi di ruolo fantasy da tavolo I migliori stampabili 3D per giochi di ruolo fantasy da tavolo I migliori stampabili 3D per giochi fantasy da tavolo Se preferisci un'esperienza coinvolgente per giochi di ruolo, c'è un nuovo modo per farlo: usa la stampa 3D per creare pezzi di terreno fisico e miniature. Leggi di più
- Tasti di scelta rapida personalizzati Crea i tuoi pulsanti di scelta rapida personalizzati con un Arduino Crea i tuoi pulsanti di scelta rapida personalizzati con un Arduino L'umile Arduino può fare un sacco di cose, ma sapevi che può emulare una tastiera USB? È possibile combinare scorciatoie da tastiera lunghe in un unico tasto di scelta rapida personalizzato, con questo semplice circuito. Leggi di più
- Electronic D20 Roll in Style con questo fai-da-te elettronico D20 Die-roll in stile con questo DIY Electronic D20 Die Vuoi qualcosa di unico al tuo prossimo incontro di gioco? Dai un'occhiata a questo D20 elettronico fai da te, con grafica personalizzata per i colpi e le mancate critiche. Leggi di più
- Giochi 3D puoi stampare 6 giochi fantastici Puoi stampare in 3D a casa 6 I giochi più fantastici puoi stampare in 3D a casa Tutti sanno delle stampanti 3D, ma quello che potresti non sapere è quanto sia divertente la stampa 3D e quanto divertimento possa creare tutta la tua famiglia. Stiamo parlando di giochi da tavolo stampati in 3D. Leggi di più
Hai imparato nuovi trucchi oggi? Qual è la tua funzione OpenSCAD preferita? Passerai presto da un altro strumento CAD? Fateci sapere nei commenti qui sotto!