CAD

cilindro openSCAD

cilindro openSCAD
Durante la preparazione di questo articolo, volevo scoprire quali problemi hanno le persone con openSCAD. Con mia sorpresa, la domanda più comune riguardava la creazione di un cilindro. C'è un comando a cilindro di cui imparerai prima i dettagli. Successivamente, vedrai modi innovativi per creare cilindri a tuo piacimento. Puoi anche togliere i cilindri da altri pezzi per creare cose più interessanti. La maggior parte dei lettori che vengono qui probabilmente vuole vedere un cilindro cavo o un tubo di qualche tipo. Continua a leggere, abbiamo molto in serbo per te.

Il comando del cilindro

Se usi la versione più semplice del comando del cilindro, hai solo bisogno di un parametro. Questo rende un cilindro solido e uniforme e niente di più. Dovresti notare che quel cilindro sarà di raggio standard e l'altezza del valore tra parentesi. Tuttavia, il comando ha molte opzioni, esaminiamole.

cilindro( r1 = 20 );
cilindro( r1 = 20, r2 = 5 );
cilindro( r1 = 20, h = 40 );
cilindro( r = 20, h = 40 );
cilindro( r1 = 20, r2 = 5, h = 40, centro = vero );

I primi due cilindri nel codice sopra non hanno senso perché non hanno altezza. Un errore comune è quando dimentichi il valore e non sembra come volevi. Quando usi le variabili, succede la stessa cosa se usi una variabile non definita. In questo caso per l'altezza, ma controlla il registro della console quando lo esegui.

Un cono

Il terzo è un cono, il motivo è che il valore r2 ha una dimensione standard. Prova il quarto e guarda cosa succede. L'ultimo crea un cono in cui hai il pieno controllo delle dimensioni. Questo è semplice da usare per i coni solidi. Imposti i due raggi e l'altezza e il gioco è fatto. Puoi anche usare il diametro se ti si addice meglio.

Il valore centro = vero è valido per l'asse z, lasciando il cono a metà altezza dal “terreno”. L'impostazione predefinita è false, il che fa sì che il fondo del cono finisca per "terreno" per così dire. Puoi anche scegliere quanto sono vicine le pareti dei coni alla forma circolare con il parametro '$fn'.

Cilindro cavo

Ehi, aspetta un minuto! Questo crea solo pezzi solidi, come faccio a praticare dei fori?? Tu chiedi, grazie! te lo dirò. La risposta è tutta nella differenza. Il comando che è. Considera il codice seguente, contiene due cilindri che sono abbracciati con parentesi graffe e il comando di differenza.

differenza()
cilindro(r = 30, h = 40);
cilindro(r = 28, h = 41);

In poche parole, quando hai più pezzi, tagli via il materiale dal primo pezzo usando tutti i pezzi successivi. In questo caso, tagli un cilindro da un cilindro. Se vuoi ritagliare qualsiasi altra forma, puoi farlo anche tu. Prova un cubo o una sfera! Nota gli effetti interessanti e talvolta devastanti che il valore $fn può avere su questo codice.

Cono cavo

Puoi farlo anche con un cono, basta usare i valori del doppio raggio. Poiché stai definendo entrambi i coni, hai molto controllo sul risultato finale. Il cono cavo più semplice è solo due coni uno dentro l'altro con uno spessore per il materiale.

differenza()
cilindro( r1 = 30, r2 = 12, h = 50);
cilindro( r1 = 25, r2 = 7, h = 45);

Questo cono è coperto nella parte superiore, puoi aprirlo semplicemente impostando la seconda altezza più alta della prima. Dato che hai due cilindri, puoi cambiare uno qualsiasi dei due. Ad esempio, puoi praticare un foro dritto attraverso di esso cambiando il secondo cilindro. Puoi anche scegliere un cubo, ma tieni presente che questo può tagliare troppo materiale dal cono.

Piramide

Questo può sembrare irrilevante, ma è un trucco utile che devi tenere a mente mentre continui a utilizzare openSCAD. Tutti i cilindri e gli altri elementi sono un'approssimazione di una forma. Hai letto prima del parametro $fn, qui ne approfitti. Con questo in mente, potresti pensare: una piramide è un cono con quattro lati. Corretta! usa $fn = 4 e hai un cono con quattro lati, che significa una piramide.

differenza()
cilindro(r1 = 30, r2 = 12, h = 40, $fn = 4);
cilindro(r1 = 25, r2 = 7, h = 35, $fn = 4);

Il cilindro interno taglia lo stesso cilindro di quello esterno. Fino a quando non inizi a giocare con il parametro $fn. Per familiarizzare con gli effetti di questo parametro, prova a realizzare uno sgabello a quattro zampe. In che modo il parametro $fn influisce sul risultato?? Inoltre, come puoi coprire la parte superiore o inferiore??

Combinando molti

Per utilizzare molto i cilindri, dovresti imparare a combinarne molti. Il risultato finale può essere molto complesso e talvolta anche utile. Mettere una cima al tuo cilindro è un'opzione. Per farlo bene, devi iniziare a usare le variabili. Prendi l'abitudine di metterli in cima a ciò che stai progettando. Rende più facile creare moduli in seguito.

spessore = 5;
base = 30;
sopra = 12;
altezza = 50;
unione()
// Il cono inferiore
differenza()
cilindro(r1 = base, r2 = topr, h = altezza);
cilindro(r1 = base-spessore, r2 = topr - spessore, h = altezza + spessore);

// La palla in alto
translate([0, 0, altezza])
differenza()
sfera(r = sopra);
sfera(r = topr -thickn);
translate([0, 0, -topr])
cubo(dimensione = topr*2, centro = vero);

Partendo dall'alto, hai variabili. Sono per lo spessore, il raggio di base, il raggio superiore e l'altezza. La dichiarazione del sindacato mette insieme i pezzi. All'interno delle bretelle, hai il cono e poi la palla in alto. Perché sono all'interno dell'unione, alla fine diventeranno un pezzo solo. Puoi fare ancora di più quando usi molti cilindri in molte angolazioni.

Fare una provetta

Passando dai coni, fai una provetta. Per prima cosa, devi considerare quali forme formano una provetta. La parte principale è un cilindro, niente di speciale, solo la normale differenza tra due cilindri. Se imposti la lunghezza come variabile, puoi usare quel valore come riferimento. Devi sapere dove finisce il tubo e diventa la semisfera in basso. Utilizzerai anche il raggio del tubo per definire la sfera.

tubo = 20;
tubl = 80;
spessore = 2;
differenza()
cilindro(r1 = tubr, r2 = tubr, h = tubl);
cilindro(r1 = tubo - spessore, r2 = tubo - spessore, h = tubo);

Prova questo e avrai solo un semplice cilindro, per fare tutto il tubo devi fonderlo insieme alla mezza sfera. Non c'è mezza sfera nell'openSCAD predefinito, devi farlo make. Usa la differenza tra due sfere per creare una sfera cava, quindi rimuovi un altro cubo che taglia la sfera.

differenza()
sfera(tubr);
sfera(tubr - spessore);
translate([0, 0, -tubr])
cubo(dimensione=tubr*2, centro = vero);

Ora hai due pezzi separati. Il prossimo passo è metterli insieme. Qui puoi usare il comando union. Come il comando differenza, l'unione prende tutti i pezzi in ordine. Nell'unione, l'ordine non è così importante poiché è un'aggiunta. Il codice sembrerà un po' brutto perché qui non usiamo moduli.

unione()
// Tubo principale
differenza()
cilindro(r1 = tubr, r2 = tubr, h = tubl);
cilindro(r1 = tubo - spessore, r2 = tubo - spessore, h = tubo);

// Sfera inferiore
translate([0, 0, tubl])
differenza()
sfera(tubr);
sfera(tubr - spessore);
translate([0, 0, -tubr])
cubo(dimensione=tubr*2, centro = vero);


// Anello superiore
differenza()
cilindro(r = tubo + spessore, h = spessore);
cilindro(r = tubo, h = spessore);

Qui lo progettiamo sottosopra, sta a voi. Fai ciò che è conveniente per il caso particolare. Puoi sempre ruotarlo quando lo usi. L'anello superiore ha spigoli vivi, puoi rimediare usando un cerchio e ruotalo_estrudendolo. Ci sono altri modi per farlo, esplorare e sperimentare!

ruotare_estrusione(convessità = 10, $fn = 100)
translate([tubr, 0, 0])
cerchio(r = spessore, $fn=100);

Combinare molti cilindri

Dopo aver realizzato un tubo con più cilindri, potresti anche volerli collegare in modi diversi. Per fare ciò, puoi usare di nuovo un'unione. Diciamo che vuoi un tubo con un angolo di quarantacinque gradi rispetto all'altro tubo. Per fare ciò, posiziona il tubo angolato a metà del tubo grande.

unione()
tubo(50, 4, 300);
translate([0, 0, totlength/2]) ruotare([45, 0, 0])
tubo(50, 4, 150);

Quando lo provi, sembra fantastico dall'esterno. Quando guardi dentro, vedi che hai entrambi i tubi interi. Quello corto sta bloccando il flusso nel tubo lungo. Per rimediare a questo, è necessario cancellare entrambi i cilindri all'interno dei tubi. Puoi considerare l'intera unione un pezzo e mettere i cilindri corrispondenti dopo di essa all'interno di una differenza.

differenza()
unione()
tubo(50, 4, 300);
translate([0, 0, totlength/2]) ruotare([45, 0, 0])
tubo(50, 4, 150);


cilindro(r = 50 - 4, h = lunghezza totale);
translate([0, 0, totlength/2]) ruotare([45, 0, 0])
cilindro(r = 50 - 4, h = lunghezza totale/2);

Come puoi vedere, il primo cilindro si estende per tutta la lunghezza del tubo. Questo cancellerà qualsiasi cosa all'interno del tubo grande, ma anche il tubo piccolo che è inclinato deve essere cancellato. Il comando di traslazione sposta il tubo verso l'alto a metà, quindi ruota e inserisce il cilindro all'interno del tubo. Infatti il ​​codice viene copiato dall'alto e il tubo viene sostituito con un cilindro.

impianto idraulico

Se vuoi creare più tubi, puoi usare il modulo nell'esempio sopra e iniziare ad espandere. Il codice è disponibile su https://github.com/matstage/openSCAD-Cylinders.git, Al momento della scrittura, ci sono solo questi due ma controlla spesso per vedere di più. Potresti essere in grado di creare cose più eccitanti.

Dentro un blocco a

Se stai mirando a realizzare un motore a combustione interna, hai bisogno di un foro cilindrico in un pezzo solido. Di seguito un esempio, il più semplice possibile, per canali di raffreddamento e pistoni c'è molto altro da aggiungere. Questo è per un altro giorno però.

blocco cilindri del modulo (
cilindro R = 3,
Bordo = 1,
numCilindri = 8)

differenza()
cubo([cilindroR*2 + Bordo * 2,
cilindroR*2*numCylinders+Edge*numCylinders + Edge,10]);
for(x = [0:1:numCylinders-1])
translate([cylinderR + Edge, cilindroR*x*2+Edge*x+ cilindroR+Edge,0])
cilindro(r = cilindroR, h = 12);

Qui hai un cubo che cresce in base al numero di cilindri che vuoi all'interno del blocco. Tutti i valori nel modulo sono predefiniti, quindi puoi usarlo senza valori. Per usarlo, usa il pulsante "usa" ' dichiarazione nella parte superiore del file e quindi aggiungi il blocco cilindri (numCylinders = 8). Puoi usare o omettere qualsiasi valore, quando li ometti, prenderà il valore predefinito. In breve, l'interno del modulo inizia con i valori e poi crea un cubo abbastanza lungo da contenere i cilindri. Quindi continua rimuovendo i cilindri con un'istruzione for. Grazie all'istruzione for, puoi creare un blocco più grande o più piccolo. Per i moduli più avanzati, puoi inserire dei vincoli che modificano il design quando vengono raggiunti determinati valori. Forse vuoi farla a V se è 8 o più cilindri.

Estrusione da una forma piatta

Un altro modo per creare un cilindro è creare un cerchio ed estruderlo. Un cilindro solido è solo due linee:

estrusione_lineare(15)
cerchio (20);

Questo crea un 15 (nessuna unità in openSCAD) lungo, con un raggio di 20. Puoi usare il diametro usando il parametro d. La semplice creazione di un cilindro non è molto utile, ma puoi utilizzare la stessa tecnica per qualsiasi forma 2D. Lo vedrai più tardi. Mentre un cilindro cavo il codice è un po' più lungo.

estrusione_lineare(15)
differenza()
cerchio (20);
cerchio(18);

Questo è lo stesso ma, come abbiamo fatto prima, rimuovi il cerchio centrale. Puoi anche piegarlo in un cerchio con la versione rotate_extrude. Questo è ottimo per fare ciambelle, la versione più semplice sembra una.

rotazione_estrusione(angolo =180, convessità =10)
traduci([30,0,0])
differenza()
cerchio (20);
cerchio(10);

Questo codice crea un semicerchio vuoto. Una nota a cui dovresti prestare attenzione è che la traduzione è necessaria o otterrai un errore: "ERRORE: tutti i punti per rotateextrude() devono avere lo stesso segno di coordinata X (l'intervallo è -2.09 -> 20.00)”. I numeri dipenderanno dal valore nel cerchio. Dal momento che questo crea la stessa forma di un cilindro può sembrare inutile. Non è! L'uso migliore di questo comando è rendere funzionale la forma piatta in qualche modo. Il manuale ha un semplice poligono come esempio, crea una forma rotonda dove puoi far scorrere una cintura. Puoi anche girarlo intorno. Il codice seguente crea un cavatappi.

traduci([-80,0,0])
linear_extrude(80, twist = 900, scale = 2.0, fette = 100)
traduci([2, 0, 0])
quadrato(10);

L'esempio nel manuale mostra un poligono che può essere utile. Il codice seguente può essere quello che ti piace, ma illustra il potere di farlo in questo modo.

traduci([0, -80, 0])
rotazione_estrusione(angolo = 275)
traduci([12,3,2])
poligono(punti = [[0,0], [20,17], [34,12], [25,22], [20, 30]]);

Puoi sperimentare con la forma del poligono finché non lo ottieni adatto alla tua applicazione. Se ti sembra un po' scoraggiante usare solo i numeri, puoi creare il profilo in altri programmi CAD e importare il risultato dxf usando il comando import().

Conclusione

Fare un cilindro è semplice ma è solo l'inizio del processo. La parte difficile è creare qualcosa di utile con esso. Devi anche incorporarlo nel tuo design e forse creare problemi più complessi rispetto ai cilindri. Trova modi e sfide per la tua continua espansione delle conoscenze utilizzando openSCAD. Ricordati di usare la documentazione e appoggiarti ad altri software quando non può essere facilmente ottenuto con numeri e simili. Qualcosa non trattato in questo post è che puoi disegnare cose in Inkscape e Blender e importarle in openSCAD. L'esportazione da openSCAD a stl e altri formati è ben supportata e se sei davvero curioso, dai un'occhiata alle creazioni su Thingiverse. Hanno un gruppo di appassionati che contribuiscono al loro sito.

I migliori giochi da giocare con il tracciamento delle mani
Oculus Quest ha recentemente introdotto la grande idea del tracciamento manuale senza controller. Con un numero sempre crescente di giochi e attività ...
Come mostrare l'overlay OSD in app e giochi Linux a schermo intero
Giocare a giochi a schermo intero o utilizzare app in modalità a schermo intero senza distrazioni può tagliarti fuori dalle informazioni di sistema ri...
Le 5 migliori carte di acquisizione del gioco
Abbiamo tutti visto e amato i giochi in streaming su YouTube. PewDiePie, Jakesepticye e Markiplier sono solo alcuni dei migliori giocatori che hanno g...