CANALLA

tutorial de openSCAD

tutorial de openSCAD
Hacer una pieza mecánica requiere un dibujo. Comenzó con papel y los primeros programas CAD utilizaron exactamente el mismo estilo. Incluso hay cuadrados estándar en los dibujos para que cada dibujo esté identificado. Todo esto es útil cuando comienzas a entrar en producción en grandes corporaciones. Sin embargo, cuando comience a hacer una nueva pieza mecánica, es posible que desee otros métodos.

Los métodos CAD 3D le permiten ver la pieza completa tal como está. También puedes girarlo y girarlo. En software avanzado, también puede simular movimiento. En todos los casos, las piezas se dibujan utilizando una interfaz gráfica. Esto es ideal para hacer cajas y cilindros, pero cuando desee hacer formas más complejas, es posible que necesite métodos matemáticos.

Ingrese una forma estándar de describir cualquier material con comandos.

Que hace que openSCAD sea tan especial?

En openSCAD, no dibuja nada con su puntero o bolígrafo. Codifica toda la pieza con comandos y funciones. Esto es incómodo para los ingenieros mecánicos, pero para los programadores, tienen otra situación. Aparte de las preferencias personales, también tiene la ventaja de la precisión. Cuando lo diseñas con código, tienes la precisión en el código.

La característica más poderosa de openSCAD son las operaciones binarias. Puede utilizar operadores binarios para juntar piezas o cortar material. Es fácil hacer un cubo con un agujero en el centro retrayendo el cilindro del cubo. Algunas de estas operaciones están disponibles en otro software CAD, pero es natural usarlas en openSCAD.

Cuales son las necesidades de su proyecto?

Después de haber puesto su diseño en una servilleta, puede pensar que necesita ver lo que está sucediendo cuando intenta convertirlo en un diseño completo. No te preocupes; hay una ventana de vista previa para que la mire mientras codifica. Una vez que comprenda las ideas básicas, sabrá si es la mejor opción para su proyecto.

En resumen, si desea crear piezas pequeñas que tengan formas complejas, debe probar openSCAD. Para equipos completos y sistemas mecánicos, desea utilizar aplicaciones gráficas más avanzadas. Dicho esto, todo es cuestión de gustos. Puede hacer formas complicadas con solo código, ¿consideraría codificar un automóvil completo??

Instalando

OpenSCAD, disponible en sus repositorios estándar para la mayoría de las distribuciones, también se puede instalar usando un complemento y AppImage. Interesante es que también tienes un segundo paquete que incluye tornillos, engranajes y formas genéricas. El paquete más nuevo está en el complemento de openscad-nightly.

sudo apt instalar openscad
sudo snap instalar openscad-nightly

Si desea usar los tornillos incluidos que vienen como un paquete separado, use los repositorios de su distribución.

sudo apt instalar openscad-mcad

El uso de las piezas incluidas es otro asunto, que se explica más adelante.

Varias formas estándar

Los principios de la creación de secuencias de comandos CAD es que tiene algunas formas geométricas estándar. Utiliza estas formas y las combina en formas más complejas. Las formas estándar son círculo, cuadrado y polígono para 2D. Para 3D, tienes una esfera, un cubo, un cilindro y un poliedro. Al usar algunos de estos para construir y otros para cortar, puede crear formas muy complejas.

También hay una función de texto que crea un texto 2D. Cuando necesite crear dibujos para su posterior procesamiento, puede utilizar el comando de proyección. Este comando corta una forma 3D a lo largo de un plano para que pueda transferirla a un dibujo. También puede agregar formas de otros programas o incluso imágenes, usando el comando de importación. Esto también funciona con formas 3D.

Además, puede extruir formas a partir de objetos existentes.

Transformaciones

De forma predeterminada, crea todas las piezas en el punto central de la cuadrícula en todas las dimensiones. Esto hace que todos se superpongan. Una vez que tenga varias formas, querrá colocarlas en el lugar correcto y rotarlas. Estas funciones son las simples, translate pone el objeto en otro lugar. El comando rotar gira el objeto o los objetos secundarios. También tiene la función de espejo, que crea una copia del objeto reflejado alrededor del eje dado.

Las otras transformaciones necesitan ejemplos para explicar. En resumen, el casco crea las líneas exteriores de muchas formas. Prueba con dos círculos y combínalos con casco (). O el código de abajo.

traducir ([- 10,0,0])
casco ()
cilindro (30, 5, 1);
cubo (9);
esfera (12);

La operación de Minkowski se usa generalmente para crear bordes; si los quieres redondeados, usa una esfera.

Operaciones booleanas

Muchas piezas no se pueden crear con solo cuadrados, cilindros y esferas. Lo primero que puede hacer es combinar y cortar muchas formas en una sola forma. Usas operadores booleanos para hacer esto. Son unión, diferencia e intersección.

Unión()
cubo ([35, 5, 2], centro = verdadero);
cilindro (h = 2, r = 5, centro = verdadero);

En el código de arriba, obtienes una sola pieza que tiene una bombilla en el centro. Para hacer un tubo, se toma la diferencia entre un cilindro y otro.

diferencia ()
cilindro (h = 15, r1 = 30, r2 = 30, centro = verdadero);
cilindro (h = 15, r1 = 25, r2 = 25, centro = verdadero);

A medida que avancemos, usará estos y más. Aquí hay un ejemplo de intersección.

intersección()

rotar ([45,0.0])
cilindro (h = 40, r = 4, centro = verdadero);
traducir (5,5,5)
cilindro (h = 40, r = 6, centro = verdadero);

La intersección deja solo las cosas superpuestas; puedes crear muchas formas usando este método.

Para bucles

Muchos de tus diseños tendrán la misma pieza muchas veces, considera un patio. Suelen estar formados por varios tablones con espacios entre ellos. En este caso, haces una tabla y simplemente la iteras con un bucle for.

brecha = 8;
plank_width = (bed_width / 4) - espacio;
num_planks = 4;
para (plank_x_pos = [0: 1: num_planks - 1])

traducir ([plank_width * plank_x_pos + gap * plank_x_pos, 0,0])
cubo ([ancho_plancha, 4200]);

Sin el bucle for, habría escrito el cubo y habría traducido declaraciones cuatro veces. También habría tenido que calcular qué tan lejos iría la siguiente tabla. Incluso con solo cuatro piezas, esta solución parece mucho más fácil. En el ejemplo, también puede ver las variables que deben configurarse. Todas las variables se establecen en tiempo de compilación, esto es importante ya que puede tener problemas de depuración si piensa en ellos como valores en otros lenguajes de programación. Como verás más adelante, también puedes hacer de todo el patio un módulo.

Matemáticas

Incluido en openSCAD, tiene algunas funciones matemáticas disponibles. Las características admitidas son la mayoría de las funciones trigonométricas, redondeando de diferentes formas y función logarítmica. Puedes ver un ejemplo a continuación.

para (i = [0:36])
traducir ([i * 10,0,0])
cilindro (r = 5, h = cos (i * 10) * 50 + 60);

La función anterior crea una fila larga y recta de cilindros de diferente altura. Las funciones principales están conectadas a la trigonometría. Sin embargo, con las funciones de redondeo aleatorias y los operadores estándar, puede crear prácticamente todo. También hay soporte para vectores, matrices y raíz cuadrada. Incluso con estas funciones, puedes llegar muy lejos. Sin embargo, no cubren todo lo que puedas imaginar; en su lugar, puedes crear funciones.

Módulos y funciones

Tiene muchos módulos incluidos en la instalación de openSCAD. Sin embargo, también puede descargar otras bibliotecas. En su distribución, probablemente encuentre MCAD, también llamado openscad-mcad. Para instalar en Ubuntu.

$ sudo apt instalar openscad-mcad

Dentro de este paquete, encontrará tanto módulos como funciones. Antes de comenzar cualquier proyecto, busque bibliotecas y módulos. Ya existe una biblioteca de tornillos, y eso es solo el comienzo. Falta una parte de tu diseño? Crea tus propios módulos; los usas para hacer nuevas piezas. Cuando usa parámetros, puede hacer muchas versiones de ellos. La mejor manera de crear un módulo es hacer el diseño como un archivo separado, averiguar qué debe ser dinámico y agregar un 'módulo' alrededor de la pieza.

Para usar un módulo, lo llama por su nombre. Dado que muchos módulos vienen en archivos separados, debe colocar una declaración de inclusión en la parte superior de su archivo. Preste atención a la diferencia entre la declaración "incluir" y la declaración "uso". Si desea que se ejecute todo en un archivo, lo "incluye", si solo desea que se definan módulos y funciones, "use" el archivo. Para asegurarse de que puede usar los módulos, debe colocarlos en el directorio actual de su modelo o en una de las rutas de búsqueda.

Primero, veamos algunos que puede descargar y usar.

Empulgueras

En el paquete de la sección anterior, puede encontrar muchas cosas. Un grupo son tornillos! Puede probarlos cargándolos en la aplicación y llamando al módulo. En la biblioteca MCAD, puede encontrar muchos tornillos. Hay muchas otras colecciones de otras fuentes. Para usar un tornillo, cree un archivo que contenga la declaración de inclusión para el módulo que necesita. Ahora, en cualquier lugar donde desee utilizar el módulo, puede utilizar el nombre del módulo para crear su tornillo.

incluir ;
ranura_bola (12, 40, 2);

Este es un tornillo que puede encajar en una bola. Usted además puede encontrar tuercas_y_pernos_scad, que define tornillos y pernos métricos. Los diseñadores utilizaron un sitio web donde puedes encontrar tornillos y crearon un método para que lo uses. Otro ejemplo es un agujero para un perno.

incluir
diferencia ()
cubo ([12,16,20], centro = verdadero);
traducir ([0,0, -3])
boltHole (8, longitud = 300);

El código anterior crea un agujero lo suficientemente grande para el perno M8, este ejemplo crea un cubo y corta dos cilindros de dos tamaños. Eso no es muy complicado, pero la complejidad crece rápidamente cuando usa otros componentes. Agregue los tornillos a las cajas paramétricas y podrá ver cómo ayuda una biblioteca.

Haciendo un carro

Para realizar cualquier construcción de cualquier complejidad, necesitará hacer una pieza a la vez. Luego, los combinas entre sí. Como mencionamos anteriormente, puede usar módulos y funciones. La mejor manera de comenzar es decidir dónde debe establecer las variables. Para un carro simple, necesita altura, distancia entre ejes y longitud. Debe establecer los valores en un lugar y utilizarlos para que las piezas encajen en el diseño. Es posible que necesite más valores, pero no los ponga todos cuando comience. Cuando inicie un nuevo proyecto, no tendrá todas las piezas listas, así que esté preparado para cambiar las cosas.

distancia entre ejes = 150;
cartlength = distancia entre ejes * 1.2;
cartwidth = 50;
diámetro de la rueda = 25;
altura de la suspensión = (diámetro de la rueda / 2) + 5;
traducir ([wheelbase / 2, cartwidth, 0])
rotar ([90,0,0])
cilindro (r = radio de rueda, 10, centro = verdadero);
traducir ([wheelbase / 2, - (cartwidth), 0])
rotar ([90,0,0])
cilindro (r = radio de rueda, 10, centro = verdadero);

El código muestra el código de las dos primeras ruedas. Si lo piensa un poco, probablemente pueda hacer que las ruedas traseras. Para agregar el fuego antiaéreo, la superficie donde van todas las cosas, solo agrega un cubo. Usa las variables que pones en el código.

traducir ([0, 0, altura de suspensión])
cube ([cartlength, cartwidth, 10], center = true);

Sin embargo, este fuego antiaéreo está a la misma altura que las ruedas, así que nos encargamos de eso con el valor de la altura de la suspensión. La declaración traducida afecta lo que está directamente después de ella. Tenga en cuenta que no hay punto y coma al final de una línea. Cuando las declaraciones en el interior se vuelven largas, usa llaves alrededor.

Ahora, necesita agregar ejes y suspensión. Los ejes pueden ser cilindros simples que van entre las ruedas. Los coloca de la misma manera que lo hizo con las ruedas usando rotar y trasladar. De hecho, lo mejor es utilizar los mismos valores.

traducir ([wheelbase / 2,0,0])
rotar ([90,0,0])
cilindro (r = radio de rueda * 0.25, h = (ancho del carro * 2) + 15, centro = verdadero);

El código aquí coloca el eje delantero en su lugar. El eje trasero, te dejo el lector para que lo averigües. Podemos solucionar la suspensión de muchas formas. En este caso, lo haremos sencillo.

// Suspensión
traducir ([wheelbase / 2, 0, suspensionheight])
rotar ([90,0,0])

diferencia ()
cilindro (r = altura de suspensión, 10, centro = verdadero);
cilindro (r = altura de suspensión - 5, 11, centro = verdadero);
cubo ([102, altura de suspensión / 6, 12], centro = verdadero);

traducir ([altura de suspensión, 0, 0])
cilindro (r = altura de suspensión / 3, h = 12, centro = verdadero);
traducir ([- altura de suspensión, 0, 0])
cilindro (r = altura de suspensión / 3, h = 12, centro = verdadero);

Este código crea una suspensión muy burda; solo usa cilindros, por lo que no será el mejor cuando empieces a usarlo. Ilustra una forma de crear diseños a partir de las primitivas; cilindro, cubo y bueno, eso es todo para este modelo. A medida que avanza, convertirá cada pieza en un módulo y colocará esas piezas.

El código del carrito está disponible en https: // github.com / matstage / Carriage! Otros desarrollos pueden venir más tarde.

Bibliotecas

En la parte anterior, solo usaste círculos. Cualquier diseño que utilice solo esas primitivas no será el mejor para todas las aplicaciones. Necesita crear diseños atractivos y eficientes. La solución son las matemáticas! Para agregar esto, debe comenzar por usar las bibliotecas de otras personas.

Hay una gran cantidad de bibliotecas construidas por personas inteligentes en la comunidad. Las personas que construyen son usuarios que resuelven sus problemas y luego lo comparten gentilmente con todos los demás. Gracias a todos ustedes! Un buen ejemplo es dotSCAD; para el ejemplo de suspensión, puede encontrar una curva de Bézier.

Exportar a otro software

Una vez que tenga un diseño decente, es posible que desee usarlo en otro software. Puede exportar a stl, dwg y una gran cantidad de otros formatos. Sus entusiastas de la impresión 3D pueden usar los archivos stl directamente en sus programas de corte.

Alternativas

Otra alternativa interesante es ImplicitCAD. Este software está muy en desarrollo. Tienes que ejecutar su línea de comando y requiere Haskell en tu sistema. La mayoría de las instalaciones estándar no tienen Haskell!

Conclusión

A primera vista, usar openSCAD es muy difícil. Superar la curva de aprendizaje es un poco complicado, pero para muchos usuarios vale la pena. Gracias a los proyectos por contribuir al proyecto. Tienes muchas funciones disponibles al final de un comando git. El simple hecho de comprender los conceptos básicos de la creación de diseños mecánicos a través del código cambia su forma de pensar sobre las formas. Esto es beneficioso incluso si seguirá usando apuntar y hacer clic para hacer sus otros proyectos.

  • https: // www.openscad.org / documentación.html?versión = 2019.05
  • http: // edutechwiki.unige.ch / en / OpenScad_beginners_tutorial
  • https: // www.openscad.org / cheatsheet / index.html
Tutorial de OpenTTD
OpenTTD es uno de los juegos de simulación empresarial más populares que existen. En este juego, necesitas crear un maravilloso negocio de transporte....
SuperTuxKart para Linux
SuperTuxKart es un gran título diseñado para ofrecerte la experiencia Mario Kart de forma gratuita en tu sistema Linux. Es bastante desafiante y diver...
Tutorial de Battle for Wesnoth
The Battle for Wesnoth es uno de los juegos de estrategia de código abierto más populares que puedes jugar en este momento. Este juego no solo ha esta...