CANALLA

cilindro openSCAD

cilindro openSCAD
Al preparar este artículo, quería averiguar qué personas tienen problemas con openSCAD. Para mi sorpresa, la pregunta más común era sobre la creación de un cilindro. Hay un comando de cilindro sobre el que aprenderá los detalles primero. Después de eso, verá formas innovadoras de crear cilindros a su gusto. También puedes quitar cilindros de otras piezas para crear cosas más interesantes. La mayoría de los lectores que vienen aquí probablemente quieran ver un cilindro hueco o un tubo de algún tipo. Sigue leyendo, tenemos mucho reservado para ti.

El comando del cilindro

Si usa la versión más simple del comando del cilindro, solo necesita un parámetro. Esto hace un cilindro uniforme sólido y nada más. Debe tener en cuenta que ese cilindro será de radio estándar y la altura del valor entre paréntesis. Sin embargo, el comando tiene muchas opciones, analicémoslas.

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 = verdadero);

Los dos primeros cilindros del código anterior no tienen sentido porque no tienen altura. Un error común es cuando olvidas el valor y no se ve como esperabas. Cuando usa variables, sucede lo mismo si usa una variable indefinida. En este caso para la altura, pero verifique el registro de la consola cuando lo ejecute.

Un cono

El tercero es un cono, la razón es que el valor r2 tiene un tamaño estándar. Prueba el cuarto y mira qué pasa. El último crea un cono donde tienes el control total de las dimensiones. Este es fácil de usar para conos sólidos. Establece los dos radios y la altura y ya está. También puede utilizar el diámetro si le conviene más.

El valor centro = verdadero es válido para el eje z, dejando el cono a la mitad del "suelo". El valor predeterminado es falso, lo que hace que la parte inferior del cono termine en el "suelo", por así decirlo. También puede elegir qué tan cerca están las paredes de los conos de ser circulares con el parámetro '$ fn'.

Cilindro hueco

Oye, espera un minuto! Esto solo crea piezas sólidas, ¿cómo taladro agujeros en ellas?? Preguntas gracias! Te lo diré. La respuesta está en la diferencia. El comando que es. Considere el código a continuación, contiene dos cilindros que se abrazan con llaves y el comando de diferencia.

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

En pocas palabras, cuando tenga varias piezas, corte el material de la primera pieza utilizando todas las piezas siguientes. En este caso, cortas un cilindro de un cilindro. Si desea recortar cualquier otra forma, también puede hacerlo. Prueba con un cubo o una esfera! Tenga en cuenta los efectos interesantes y, a veces, devastadores que el valor de $ fn puede tener en este código.

Cono hueco

También puede hacer esto con un cono, solo use los valores de radio doble. Dado que está definiendo ambos conos, tiene mucho control sobre el resultado final. El cono hueco más simple son solo dos conos uno dentro del otro con un grosor para el material.

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

Este cono está cubierto en la parte superior, puede abrirlo simplemente configurando la segunda altura más alta que la primera. Como tiene dos cilindros, puede cambiar cualquiera de los dos. Como ejemplo, puede cortar un agujero recto a través de él cambiando el segundo cilindro. También puede elegir un cubo, pero tenga en cuenta que esto puede cortar demasiado material del cono.

Pirámide

Esto puede parecer irrelevante, pero es un truco útil que debe tener en cuenta mientras continúa usando openSCAD. Todos los cilindros y otros elementos son una aproximación de una forma. Leíste sobre el parámetro $ fn anteriormente, aquí lo aprovechas. Con esto en mente, puede pensar: Una pirámide es un cono con cuatro lados. Correcto! usa $ fn = 4 y tienes un cono con cuatro lados, es decir, una pirámide.

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

El cilindro interior corta el mismo cilindro que el exterior. Hasta que empieces a jugar con el parámetro $ fn. Para familiarizarse con los efectos de este parámetro, intente hacer un taburete de cuatro patas. ¿Cómo afecta el parámetro $ fn al resultado?? Además, ¿cómo se puede cubrir la parte superior o la inferior??

Combinando muchos

Para tener mucho uso de los cilindros, debes aprender a combinar muchos de ellos. El resultado final puede ser muy complejo y, a veces, incluso útil. Poner una tapa en su cilindro es una opción. Para hacer esto bien, debes comenzar a usar variables. Adquiera el hábito de ponerlos en la parte superior de lo que está diseñando. Facilita la creación de módulos más tarde.

grueso = 5;
baser = 30;
topr = 12;
altura = 50;
Unión()
// El cono inferior
diferencia ()
cilindro (r1 = más bajo, r2 = topr, h = altura);
cilindro (r1 = base-espesor, r2 = topr - espesor, h = altura + espesor);

// La bola superior
traducir ([0, 0, altura])
diferencia()
esfera (r = topr);
esfera (r = topr -thickn);
traducir ([0, 0, -topr])
cubo (tamaño = topr * 2, centro = verdadero);

Empezando desde arriba, tienes variables. Son para el grosor, el radio base, el radio superior y la altura. La declaración de unión une las piezas. Dentro de los tirantes, tienes el cono y luego la bola superior. Debido a que están dentro de la unión, al final se convertirán en una sola pieza. Puede hacer aún más cuando usa muchos cilindros en muchos ángulos.

Hacer un tubo de ensayo

Pasando de los conos, haz un tubo de ensayo. Primero, debes considerar qué formas hacen un tubo de ensayo. La parte principal es un cilindro, nada lujoso, solo la diferencia regular entre dos cilindros. Si establece la longitud como una variable, puede usar ese valor como referencia. Necesitas saber dónde termina el tubo y se convierte en la media esfera en la parte inferior. También usarás el radio del tubo para definir la esfera.

tubr = 20;
tubl = 80;
grueso = 2;
diferencia ()
cilindro (r1 = tubr, r2 = tubr, h = tubl);
cilindro (r1 = tubr - espesar, r2 = tubr - espesar, h = tubl);

Prueba esto y tendrás solo un cilindro simple, para hacer todo el tubo necesitas derretirlo junto con la media esfera. No hay semiesfera en el openSCAD predeterminado, debe hacerlo. Usa la diferencia entre dos esferas para crear una esfera hueca, luego quita otro cubo que corta la esfera.

diferencia ()
esfera (tubr);
esfera (tubr - espesar);
traducir ([0, 0, -tubr])
cubo (tamaño = tubr * 2, centro = verdadero);

Ahora tienes dos piezas separadas. El siguiente paso es juntarlos. Aquí, puede usar el comando union. Como el comando de diferencia, el sindicato toma todas las piezas en orden. En unión, el orden no es tan importante ya que es una adición. El código se verá un poco feo porque no usamos módulos aquí.

Unión()
// Tubo principal
diferencia ()
cilindro (r1 = tubr, r2 = tubr, h = tubl);
cilindro (r1 = tubr - espesar, r2 = tubr - espesar, h = tubl);

// Esfera inferior
traducir ([0, 0, tubl])
diferencia ()
esfera (tubr);
esfera (tubr - espesar);
traducir ([0, 0, -tubr])
cubo (tamaño = tubr * 2, centro = verdadero);


// Anillo superior
diferencia ()
cilindro (r = tubr + espesar, h = espesar);
cilindro (r = tubr, h = espesar);

Aquí lo diseñamos al revés, esto depende de ti. Haz lo que sea conveniente para el caso particular. Siempre puedes rotarlo cuando lo uses. El anillo superior tiene bordes afilados, puede remediar esto usando un círculo y rote_extruya. Hay otras formas de hacerlo, explorar y experimentar!

rotar_extruir (convexidad = 10, $ fn = 100)
traducir ([tubr, 0, 0])
círculo (r = grueso, $ fn = 100);

Combinando muchos cilindros

Una vez que haya hecho un tubo con varios cilindros, es posible que también desee conectarlos de diferentes maneras. Para hacer esto, puede usar una unión nuevamente. Digamos que quiere un tubo en un ángulo de cuarenta y cinco grados con respecto al otro tubo. Para hacer esto, coloque el tubo en ángulo a la mitad del tubo grande.

Unión()
tubo (50, 4, 300);
traducir ([0, 0, totlength / 2]) rotar ([45, 0, 0])
tubo (50, 4, 150);

Cuando intentas esto, se ve genial desde fuera. Cuando miras dentro, ves que tienes ambos tubos enteros. El corto bloquea el flujo en el tubo largo. Para remediar esto, debe borrar ambos cilindros dentro de los tubos. Puede considerar toda la unión de una pieza y colocar los cilindros correspondientes después de ella dentro de una diferencia.

diferencia ()
Unión()
tubo (50, 4, 300);
traducir ([0, 0, totlength / 2]) rotar ([45, 0, 0])
tubo (50, 4, 150);


cilindro (r = 50 - 4, h = longitud total);
traducir ([0, 0, totlength / 2]) rotar ([45, 0, 0])
cilindro (r = 50 - 4, h = longitud total / 2);

Como puede ver, el primer cilindro se extiende por toda la longitud del tubo. Esto borrará todo lo que esté dentro del tubo grande, pero el tubo pequeño que está inclinado también debe borrarse. El comando trasladar mueve el tubo hacia arriba hasta la mitad, luego gira y coloca el cilindro dentro del tubo. De hecho, el código se copia desde arriba y el tubo se reemplaza por un cilindro.

Plomería

Si desea hacer más tubos, puede usar el módulo en el ejemplo anterior y comenzar a expandir. El código está disponible en https: // github.com / matstage / openSCAD-Cylinders.git, en el momento de escribir este artículo, solo existen estos dos, pero consulte con frecuencia para ver más. Es posible que pueda crear cosas más emocionantes.

Dentro de un bloque

Si su objetivo es hacer un motor de combustión interna, necesita un orificio cilíndrico en una pieza sólida. A continuación se muestra un ejemplo, el más simple posible, para canales de enfriamiento y pistones hay mucho más que agregar. Eso es para otro día aunque.

bloque de cilindros del módulo
cilindroR = 3,
Borde = 1,
numCylinders = 8)

diferencia ()
cubo ([cilindroR * 2 + Borde * 2,
cilindroR * 2 * numCylinders + Edge * numCylinders + Edge, 10]);
para (x = [0: 1: numCylinders-1])
traducir ([cilindroR + Borde, cilindroR * x * 2 + Borde * x + cilindroR + Borde, 0])
cilindro (r = cilindroR, h = 12);

Aquí tienes un cubo que crece según la cantidad de cilindros que quieras dentro del bloque. Todos los valores en el módulo son los predeterminados, por lo que puede usarlo sin valores. Para usarlo, use el 'use 'en la parte superior de su archivo y luego agregue el bloque de cilindros (numCylinders = 8). Puede usar u omitir cualquier valor, cuando los omita, tomará el valor predeterminado. En resumen, el interior del módulo comienza con los valores y luego crea un cubo que es lo suficientemente largo para adaptarse a los cilindros. Luego continúa retirando los cilindros con una declaración for. Gracias a la declaración for, puedes hacer un bloque más grande o más pequeño. Para módulos más avanzados, puede poner restricciones que cambian el diseño cuando se alcanzan ciertos valores. Tal vez quieras convertirlo en una V si tiene 8 o más cilindros.

Extrusión de una forma plana

Otra forma de crear un cilindro es hacer un círculo y extruirlo. Un cilindro sólido tiene solo dos líneas:

extrusión_lineal (15)
círculo (20);

Esto crea un 15 (sin unidades en openSCAD) de largo, con un radio de 20. Puedes usar el diámetro usando el parámetro d. Crear un cilindro no es muy útil, pero puede usar la misma técnica para cualquier forma 2D. Verás esto más tarde. Mientras que un cilindro hueco, el código es un poco más largo.

extrusión_lineal (15)
diferencia ()
círculo (20);
círculo (18);

Esto es lo mismo pero, como hicimos anteriormente, eliminas el círculo central. También puede doblarlo en un círculo con la versión rotate_extrude. Esto es genial para hacer donas, la versión más simple parece una.

rotar_extruir (ángulo = 180, convexidad = 10)
traducir ([30,0,0])
diferencia ()
círculo (20);
círculo (10);

Este código crea un semicírculo que es hueco. Una nota con la que debe tener cuidado es que la traslación es necesaria o obtendrá un error: “ERROR: todos los puntos para rotateextrude () deben tener el mismo signo de coordenada X (el rango es -2.09 -> 20.00) ". Los números dependerán del valor en el círculo. Dado que esto crea la misma forma que un cilindro, puede parecer inútil. No lo es! El mejor uso de este comando es hacer que la forma plana sea funcional de alguna manera. El manual tiene un polígono simple como ejemplo, crea una forma redonda donde puedes ejecutar un cinturón. También puedes girarlo. El siguiente código crea un sacacorchos.

traducir ([- 80,0,0])
extrusión_lineal (80, giro = 900, escala = 2.0, rodajas = 100)
traducir ([2, 0, 0])
cuadrado (10);

El ejemplo del manual muestra un polígono que puede ser útil. El siguiente código puede ser lo que quiera, pero ilustra el poder de hacerlo de esta manera.

traducir ([0, -80, 0])
rotar_extruir (ángulo = 275)
traducir ([12,3,2])
polígono (puntos = [[0,0], [20,17], [34,12], [25,22], [20, 30]]);

Puede experimentar con la forma del polígono hasta que sea adecuada para su aplicación. Si se siente un poco abrumador usando solo números, puede crear el perfil en otros programas CAD e importar el resultado dxf usando el comando import ().

Conclusión

Hacer un cilindro es simple pero solo el comienzo del proceso. La parte complicada es hacer algo útil con él. También debe incorporarlo a su diseño y tal vez crear problemas más complejos que los cilindros. Encuentre formas y desafíos para su expansión continua de conocimiento usando openSCAD. Recuerde usar la documentación y apoyarse en otro software cuando no se pueda lograr fácilmente con números y tal. Algo que no se cubre en esta publicación es que puede dibujar cosas en Inkscape y Blender e importarlas a openSCAD. La exportación de openSCAD a stl y otros formatos está bien soportada y si tienes mucha curiosidad, echa un vistazo a las creaciones en Thingiverse. Tienen un grupo de entusiastas que contribuyen con cosas a su sitio.

Motores de juegos gratuitos y de código abierto para desarrollar juegos de Linux
Este artículo cubrirá una lista de motores de juegos de código abierto y gratuitos que se pueden usar para desarrollar juegos 2D y 3D en Linux. Existe...
Tutorial de Shadow of the Tomb Raider para Linux
Shadow of the Tomb Raider es la duodécima incorporación a la serie Tomb Raider, una franquicia de juegos de acción y aventuras creada por Eidos Montre...
Cómo impulsar FPS en Linux?
FPS significa Cuadros por segundo. La tarea de FPS es medir la velocidad de fotogramas en reproducciones de video o actuaciones de juegos. En palabras...