cilindro de openscad

cilindro de 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 crear un cilindro. Hay un comando de cilindro sobre el que aprenderá los detalles primero. Después de eso, verá formas innovadoras de crear cilindros para su gusto. También puede quitar los 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 en la tienda para ti.

El comando de cilindro

Si usa la versión más simple del comando 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 en el paréntesis. Sin embargo, el comando tiene muchas opciones.

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, Center = True);

Los primeros dos cilindros en el código anterior no tienen sentido porque no tienen altura. Un error común es cuando olvida el valor y no se ve como usted pretendía. 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. Configuras los dos radios y la altura y has terminado. También puedes usar el diámetro si eso te adapta mejor.

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

Cilindro hueco

Oye, espera un minuto! Esto solo crea piezas sólidas, ¿cómo perforo agujeros en ellas?? Usted pregunta, gracias! Te lo diré. La respuesta está en la diferencia. El comando que es. Considere el siguiente código, contiene dos cilindros que se aceptan con soportes rizados y el comando de diferencia.

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

En pocas palabras, cuando tenga varias piezas, entonces corta el material de la primera pieza usando todas las siguientes piezas. En este caso, corta un cilindro de un cilindro. Si quieres cortar cualquier otra forma, también puedes hacerlo. Prueba un cubo o una esfera! Tenga en cuenta los efectos interesantes y a veces devastadores que el valor $ FN puede tener en este código.

Cono hueco

También puede hacer esto con un cono, solo use los valores de doble radio. Como está definiendo ambos conos, tiene mucho control sobre el resultado final. El cono hueco más simple es 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 tienes dos cilindros, puedes 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. Lees sobre el parámetro $ fn antes, 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, lo que significa una pirámide.

diferencia()
cilindro (R1 = 30, R2 = 12, H = 40, $ fn = 4);
cilindro (R1 = 25, R2 = 7, H = 35, $ ​​fn = 4);

El cilindro interno corta el mismo cilindro que el exterior. Hasta que comiences 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 el resultado?? Además, ¿cómo puede cubrir la parte superior o la parte inferior??

Combinando muchos

Para tener mucho uso de cilindros, debe aprender a combinar muchos de ellos. El resultado final puede ser muy complejo y, a veces, incluso útil. Poner un top en tu cilindro es una opción. Para hacer esto bien, debe comenzar a usar variables. Haz que sea un hábito ponerlos en la parte superior de lo que estás diseñando. Hace que sea más fácil hacer módulos más tarde.

grueso = 5;
base = 30;
topr = 12;
altura = 50;
Unión()
// el cono inferior
diferencia()
cilindro (r1 = baser, r2 = topr, h = altura);
cilindro (R1 = Baser -Thickn, R2 = Topr - Grousn, H = Altura + grueso);

// la bola superior
traducir ([0, 0, altura])
diferencia()
esfera (r = topr);
esfera (r = topr -thickn);
traducir ([0, 0, -topr])
cubo (size = topr*2, center = true);

Comenzando desde arriba, tienes variables. Son para el grosor, el radio base, el radio superior y la altura. La declaración de la Unión reúne a las piezas. Dentro de los aparatos ortopédicos, tienes el cono y luego la bola superior. Porque están dentro de la unión, se convertirán en una pieza al final. Puedes hacer aún más cuando usas muchos cilindros en muchos ángulos.

Haciendo un tubo de ensayo

Pasar de los conos, hacer un tubo de ensayo. Primero, debe 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. Necesita saber dónde termina el tubo y se convierte en la media esfera en la parte inferior. También usará el radio para el tubo para definir la esfera.

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

Prueba esto y solo tendrás un cilindro simple, para hacer que todo el tubo necesite derretirlo junto con la media esfera. No hay media esfera en el valor predeterminado de OpenScad, debe hacerlo. Use la diferencia entre dos esferas para crear una esfera hueca, luego retire otro cubo que corta la esfera.

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

Ahora tienes dos piezas separadas. El siguiente paso es armarlos. Aquí, puedes usar el comando sindical. Como el comando de diferencia, el sindicato toma todas las piezas en orden. En unión, la 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 - grueso, r2 = tubr - espesor, h = tubl);

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


// anillo superior
diferencia()
cilindro (r = Tubr + grosero, h = grueso);
cilindro (r = tubr, h = grueso);

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

ROTATE_EXTRUDE (convexity = 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, también es posible que desee conectarlos de diferentes maneras. Para hacer esto, puede usar un sindicato nuevamente. Digamos que quieres un tubo en un ángulo de cuarenta y cinco grados para el otro tubo. Para hacer esto, coloca el tubo en ángulo a la mitad del tubo grande.

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

Cuando intentas esto, se ve muy bien desde el exterior. Cuando miras adentro, ves que tienes ambos tubos enteros. El corto está bloqueando el flujo en el tubo largo. Para remediar esto, debe borrar ambos cilindros dentro de los tubos. Puede considerar todo el sindicato de una pieza y poner los cilindros correspondientes después de él dentro de una diferencia.

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


cilindro (r = 50 - 4, H = TotLength);
traducir ([0, 0, totLength/2]) Rotate ([45, 0, 0])
cilindro (r = 50 - 4, H = TotLength/2);

Como puede ver, el primer cilindro estira toda la longitud del tubo. Esto borrará cualquier cosa dentro del tubo grande, pero el pequeño tubo que se inclina también debe borrarse. El comando traducir mueve el tubo a mitad de camino, luego gira y coloca el cilindro dentro del tubo. De hecho, el código se copia desde arriba y el tubo se reemplaza con un cilindro.

Plomería

Si desea hacer más tubos, puede usar el módulo en el ejemplo anterior y comenzar a expandirse. El código está disponible en https: // github.com/matstage/openscad-cylinders.Git, al momento de escribir, solo hay estos dos, pero vuelve a ver a menudo 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 agujero cilíndrico en una pieza sólida. A continuación se muestra un ejemplo, lo más simple posible, para los canales de enfriamiento y los pistones, hay mucho más que agregar. Eso es para otro día.

módulo de cilindro (
cylinderr = 3,
Borde = 1,
numcylinders = 8)

diferencia()
cubo ([cylinderr * 2 + borde * 2,
cylinderr*2*numcylinders + borde*numcylinders + borde, 10]);
para (x = [0: 1: numcylinders-1])
Traducir ([Cylinderr+ Edge, Cylinderr*X*2+ Edge*X+ Cylinderr+ Edge, 0])
cilindro (r = cylinderr, h = 12);

Aquí, tiene un cubo que crece de acuerdo con la cantidad de cilindros que desea dentro del bloque. Todos los valores en el módulo son el valor predeterminado, por lo que puede usarlo sin valores. Para usarlo, use la instrucción 'Use' en la parte superior de su archivo y luego agregue cilindro (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 para ser lo suficientemente largo como para adaptarse a los cilindros. Luego continúa eliminando los cilindros con una declaración para. Gracias a la declaración de For, puede hacer un bloque más grande o más pequeño. Para módulos más avanzados, puede poner restricciones en ese cambio del diseño cuando se alcanzan ciertos valores. Tal vez quieras convertirlo en una V si son 8 o más cilindros.

Extruido de una forma plana

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

lineal_extrude (15)
círculo (20);

Esto crea 15 (sin unidades en OpenScad) de largo, con un radio de 20. Puede usar el diámetro utilizando el parámetro D. Simplemente 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.

lineal_extrude (15)
diferencia()
círculo (20);
círculo (18);

Esto es lo mismo, pero, como lo hemos hecho anteriormente, elimina el círculo central. También puede doblarlo en un círculo con la versión Rotate_Extrude. Esto es ideal para hacer donas, la versión más simple se parece a una.

ROTATE_EXTRUDE (Angle = 180, Convexity = 10)
Traducir ([30,0,0])
diferencia()
círculo (20);
círculo (10);

Este código crea un medio círculo que es hueco. Una nota con la que debe tener cuidado es necesario que la traducción sea necesaria o obtendrá un error: "Error: todos los puntos para rotateExtrude () deben tener el mismo signo de coordenadas X (el rango es -2 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 funcione 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 torcerlo. El siguiente código crea un sacacorchos.

traducir ([-80,0,0])
lineal_extrude (80, giro = 900, escala = 2.0, rebanadas = 100)
traducir ([2, 0, 0])
cuadrado (10);

El ejemplo en el 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_extrude (á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 lo haga bien para su aplicación. Si se siente un poco desalentador 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 difícil 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 del conocimiento utilizando OpenScad. Recuerde usar la documentación y apoyarme en otro software cuando no se puede lograr fácilmente con números y tales. Algo que no está cubierto en esta publicación es que puedes dibujar cosas en Inkscape y Blender e importarlo a OpenScad. Exportar desde OpenScad a STL y otros formatos es bien compatible y si tiene mucha curiosidad, consulte las creaciones sobre Thingiverse. Tienen un paquete de entusiastas que contribuyen a su sitio.