Guía para principiantes de OpenSCAD: Programación de modelos impresos en 3D

El software de modelado 3D puede ser difícil de usar si no eres artístico. OpenSCAD proporciona una forma de diseñar modelos específicamente para impresión en 3D, usando solo código.

El software de modelado 3D puede ser difícil de usar si no eres artístico.  OpenSCAD proporciona una forma de diseñar modelos específicamente para impresión en 3D, usando solo código.
Anuncio

¿Siempre has querido diseñar tus propios modelos en 3D? ¿Qué pasa con la impresión 3D de una pieza que ha diseñado? Hay muchos programas de modelado en 3D, pero estos pueden ser difíciles de usar si no eres artístico (como yo). OpenSCAD proporciona una forma de diseñar modelos específicamente para impresión en 3D, usando solo código . No se preocupe si tampoco sabe cómo codificar, hoy lo guiaré a través de lo básico.

¿Qué es OpenSCAD?

OpenSCAD es un modelador gratuito de Solid Aided Design . Está disponible para Windows, Mac y Linux. Lo que lo hace diferente a muchos otros programas es que diseñas partes usando código en lugar de un mouse. Esto hace que sea muy fácil hacer cálculos matemáticos, almacenar dimensiones en variables, cambiar el tamaño de partes y más.

Hay algunos factores que debe tener en cuenta cuando se imprimen modelos 3D, pero muchos de ellos se aplican a los modelos CAD de impresión 3D en general, no solo a los diseños de OpenSCAD. Si desea obtener más información acerca de la impresión 3D, consulte nuestra Guía para principiantes Ultimate Guía para principiantes de la impresión 3D Guía definitiva para principiantes sobre la impresión 3D Se suponía que la impresión 3D era la nueva "revolución industrial". Todavía no se ha apoderado del mundo, pero estoy aquí para hablar con usted sobre todo lo que necesita saber para comenzar. Lee mas . Si está buscando un modelador más interactivo, lea la guía para crear objetos en Sketchup Diseñe y construya edificios y objetos virtuales en 3D con Google SketchUp Diseñe y construya edificios y objetos virtuales en 3D con Google SketchUp Google SketchUp es el programa de modelado principal para Google BuildingMaker, que permite a los diseñadores gráficos enviar diseños de edificios a Google para agregarlos a las imágenes oficiales de Google Earth. Lee mas .

Cómo configurar

Primero, vaya a la página de descargas y encuentre una versión de OpenSCAD adecuada para su sistema operativo. Estoy usando Mac OS, pero estos principios de OpenSCAD se aplican a todos los sistemas.

Una vez instalado, ve y ábrelo. Se te presentará este menú de inicio:

Menú de inicio de OpenSCAD

Esto le muestra los archivos que abrió por última vez, y le da la opción de cargar algunos ejemplos. Siéntase libre de mirar alrededor de algunos de los ejemplos, sin embargo, encontré que esto hizo que las cosas fueran más confusas cuando recién comenzaba. Para este tutorial, cree un nuevo archivo haciendo clic en el nuevo botón.

Una vez abierto, se le presentará esta interfaz desnuda:

Interfaz OpenSCAD

Esto se divide en tres áreas principales. A la izquierda está tu editor y menú. Aquí es donde escribirás tu código. Esto no tendrá ningún código aún, ya que estás creando un nuevo archivo. En la parte superior, hay algunos botones de menú para realizar tareas básicas, como cargar, guardar, deshacer, y así sucesivamente.

Editor de OpenSCAD

La parte inferior derecha es la consola . Esto le mostrará cualquier error al construir el modelo.

Consola OpenSCAD

La sección final es la interfaz principal en la parte superior derecha. Aquí puedes interactuar con tu modelo, pero no podrás editarlo aquí (escribirás código para hacerlo).

Interfaz OpenSCAD

Hay varios botones en la parte inferior de esta interfaz principal. Estos principalmente le permiten ver su diseño de diferentes maneras.

Continúe y guarde un archivo nuevo presionando el botón Guardar en el menú del editor o yendo a Archivo > Guardar .

Los basicos

La forma en que OpenSCAD funciona la mayor parte del tiempo es a través de la suma y la resta de formas simples. Puedes construir modelos muy complejos de esta manera, así que vamos a entrar directamente.

Aquí está la primera forma, una caja simple:

Caja simple de OpenSCAD

Y aquí está el código para producir eso:

cube(); // create a cube 

Para que su código se ejecute y cree el modelo, debe obtener una vista previa. OpenSCAD hará esto de forma predeterminada cada vez que guarde, o puede presionar F5 para forzar una actualización. Experimenta moviéndote en el espacio 3D manteniendo presionados los botones izquierdo y derecho del mouse.

Ahora, esto produce un bonito cubo, pero no es terriblemente útil sin ninguna dimensión. OpenSCAD no funciona en ningún sistema de medición particular, en cambio, las unidades son todas relativas. Puede crear un cuadro de 20 x 10, y depende de cualquier otro programa (como su cortadora de impresión 3D) interpretar estos, sean métricos o imperiales. En realidad proporciona una gran flexibilidad.

Agreguemos algunas dimensiones a su cubo. Usted hace esto pasando parámetros al método del cubo :

 cube(size = [10, 20, 30]); // rectangle 

Los valores 10, 20 y 30 representan el tamaño del cubo en los ejes X, Y y Z. Observe cómo esto ha producido un rectángulo mucho más grande:

Rectángulo de OpenSCAD

De forma predeterminada, OpenSCAD dibuja los componentes de la parte inferior izquierda. Puede ajustar esto estableciendo el parámetro central en verdadero . Aquí está el código para hacer eso en el rectángulo:

 cube(size = [10, 20, 30], center = true); // rectangle centered 

Y esto es lo que parece:

OpenSCAD Rectangle Centered

Centrar objetos funciona bien para formas simples, pero complica las cosas para objetos no simétricos. Deberá decidir qué método funciona mejor para usted.

Pasando a una forma más compleja, aquí hay un cilindro :

Cilindro OpenSCAD

Aquí está el código para crearlo:

 cylinder(d = 10, h = 10, center = true); // cylinder 

A diferencia de los cubos, los cilindros se dibujan automáticamente en el centro de los ejes X e Y. El parámetro d representa el diámetro (puede pasar el radio en su lugar, si lo prefiere). El parámetro h es la altura. Algo está mal aquí sin embargo. Este cilindro parece bastante "blocky". Necesita aumentar el número de caras dibujadas en la circunferencia. Esto es fácil de hacer: agregue el siguiente parámetro a su código de cilindro.

 $fn = 100 

Entonces la definición del cilindro se convierte en:

 cylinder(d = 10, h = 10, center = true, $fn = 100); 

Esto es lo que parece:
Cilindro de alta resolución OpenSCAD

Esto aumenta el número de caras necesarias para hacer círculos: 100 es un buen punto de partida. Tenga en cuenta que esto aumentará en gran medida los tiempos de renderizado, particularmente en modelos complejos, por lo que generalmente es mejor dejar esto fuera hasta que haya terminado de diseñar.

Es fácil aplicar transformaciones a las formas. Debe llamar a métodos especiales antes de crear sus formas. A continuación se explica cómo rotar el cilindro con el método de rotación :

 rotate(a = [0, 90, 0]) cylinder(d = 10, h = 10, center = true); // rotated cylinder 

Los valores pasados ​​al parámetro a representan el ángulo de rotación de los ejes X, Y y Z. Este es el resultado:

Rotación de OpenSCAD

Otra función muy útil es traducir . Esto le permite mover objetos en el espacio 3D. Una vez más, necesitarás pasar la cantidad de movimiento para cada eje. Este es el resultado:

OpenSCAD Traducir

Aquí está el código:

 translate(v = [0, 25, 0]) cylinder(d = 10, h = 10, center = true); // translated cylinder 

Comprender el método de traducir es una de las cosas más importantes que puedes hacer. Se requiere para diseñar diseños más complejos.

Finalmente, otra forma útil es una esfera :

OpenSCAD Esfera

Aquí está el código:

 sphere(d = 100); 

Al igual que el cilindro, puede suavizar esto usando el código $ fn anterior.

Codificación avanzada

Ahora que conoce los conceptos básicos, veamos algunas habilidades más avanzadas. Al diseñar una pieza, es útil tener una idea de cómo se podría hacer con formas y objetos más pequeños. No tiene que hacer esto, y puede "arreglar las cosas" a medida que avanza, pero ayuda tener un plan aproximado, incluso si solo está en su cabeza.

Vamos a crear una forma avanzada: un cubo con un interior ahuecado de la esfera. Crea un cubo y una esfera con centro establecido en verdadero. Reste uno del otro usando el método de diferencia :

 difference() { // subtraction cube(size = [50, 50, 50], center = true); // outer cube sphere(d = 65, center = true); // inner sphere } 

Este es el resultado:

OpenSCAD Advanced Cube

Experimente con el diámetro ( d parámetro) de la esfera y vea qué sucede.

En OpenSCAD, generalmente hay muchas maneras de lograr la misma tarea. Si desea un surco en un cubo, puede restar otro cubo de él, o agregar dos más por encima. Normalmente no importa de qué manera se hacen las cosas, pero dependiendo de la complejidad de la pieza, puede ser más fácil hacer ciertas manipulaciones primero.

A continuación, se explica cómo crear un canal en un cubo. En lugar de usar otro cubo, usar un cilindro creará un canal redondeado. Observe cómo se usa el método de diferencia una vez más y cómo se usan los métodos de traducir y rotar para manipular las formas. El uso del método de rotación a menudo dificulta las transformaciones, así que juegue con los parámetros hasta lograr el resultado deseado. Aquí está el código:

 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 } 

Esto es lo que parece:

Cubo de canales OpenSCAD

Usted se estará preguntando qué es todo lo verde. Esto es aquí porque el modelo 3D es solo una vista previa en este momento. Para solucionar esto, presione F6 para renderizar completamente el modelo. Esto puede llevar algo de tiempo, dependiendo de la complejidad. La vista previa ( F5 ) generalmente es lo suficientemente buena mientras se trabaja. Así es como se ve el render final (con $ fn establecido en 100):

Cubo de canales de alta resolución OpenSCAD

Aquí hay otro ejemplo avanzado. Digamos que querías una montura con un perno. Crear un agujero es lo suficientemente simple usando un cilindro, pero ¿qué pasa si usted quiere que la cabeza del perno esté empotrada para los pernos avellanados? Simplemente podría crear un cilindro grande para que se asiente la cabeza del perno, pero eso no se vería muy bien. La solución es un chaflán, que puedes crear con el método del cilindro . El truco aquí es especificar dos diámetros: d1 y d2 . Haga estos diferentes tamaños, y OpenSCAD hará el resto.

Como soy británico, usaré dimensiones métricas aquí, para un tornillo avellanado M5. Podrías ajustar esto fácilmente para que se ajuste a las fijaciones que quieras usar. Aquí está el código:

 $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); } 

¿Observe cómo las dimensiones del perno se almacenan en variables? Esto hace que la codificación y el mantenimiento sean mucho más fáciles. Un método que quizás aún no conozcas es el módulo . Esto le permite definir un bloque de código para ejecutar siempre que lo desee. En realidad, esta es una función . Debe usar módulos y variables para cualquier forma compleja, ya que hacen que las cosas sean más fáciles de leer y más rápidas para realizar cambios. Esto es lo que parece el chaflán:

OpenSCAD Chamfer

Veamos un ejemplo final. Digamos que quería producir una serie de agujeros alrededor de un círculo. Podrías medir, traducir y rotar todos estos, pero incluso con módulos esto sería tedioso. Aquí está el resultado final, 10 cilindros incluso distribuidos alrededor de un círculo:

OpenSCAD Circle Distribution

Aquí está el código:

 $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); } 

Este código es más simple de lo que cabría esperar. Un bucle for se usa para llamar al módulo make_cylinder diez veces. Como hay 360 grados en un círculo y 360/10 = 36, cada cilindro debe girarse en incrementos de 36 grados. Cada iteración de este bucle incrementará la variable i en 36. Este bucle llama al módulo make_cylinder, que simplemente dibuja un cilindro y lo posiciona de acuerdo con los grados pasados ​​por el bucle. Puede dibujar más o menos cilindros modificando la variable number_of_holes, aunque es posible que desee ajustar el espaciado si lo hace. Así es como se ven los 100 cilindros, se superponen ligeramente:

OpenSCAD 100 Circle Distribution

Exportador

Ahora que sabe cómo codificar en OpenScad, hay un último paso requerido antes de poder imprimir sus modelos en 3D. Debe exportar su diseño desde OpenSCAD al formato estándar STL utilizado por la mayoría de las impresoras 3D. Afortunadamente, hay un botón de exportación a STL: Menú del editor > Arriba a la derecha :

OpenSCAD Exportación STL

Es todo por hoy. Ahora debe tener un excelente conocimiento práctico de OpenSCAD: todas las cosas complejas se basan en estos fundamentos, y muchas formas complejas son en realidad muchas formas simples combinadas.

Para un desafío, ¿por qué no mirar algunos de nuestros proyectos de impresión 3D e intentar recrear las piezas en OpenSCAD?

  • 3D Printables para Tabletop Fantasy RPG Los mejores 3D Printables para Tabletop Fantasy RPG Los mejores 3D Printables para Tabletop Fantasy RPG Si prefiere una experiencia inmersiva para los juegos de rol, hay una nueva forma de hacerlo: use la impresión 3D para crear piezas físicas del terreno y miniaturas. Lee mas
  • Botones de acceso directo personalizados Crea tus propios botones de acceso directo personalizados con un Arduino Crea tus propios botones de acceso directo personalizados con un Arduino El humilde Arduino puede hacer muchas cosas, pero ¿sabías que puede emular un teclado USB? Puede combinar atajos de teclado largos en una sola tecla de acceso directo personalizada, con este circuito simple. Lee mas
  • Rollo electrónico D20 en estilo con este bricolaje D20 electrónico Rollo en estilo con este DIY Electrónico D20 Die ¿Quieres algo un poco único en tu próxima reunión de juego? Echa un vistazo a este D20 electrónico DIY, que presenta gráficos personalizados para éxitos y errores críticos. Lee mas
  • Juegos que puedes imprimir en 3D 6 juegos geniales que puedes imprimir en 3D en tu hogar 6 juegos geniales que puedes imprimir en 3D en tu hogar Todo el mundo conoce las impresoras 3D, pero lo que quizás no sepas es lo divertida que es la impresión 3D y lo divertido que puede ser toda tu familia Estamos hablando de juegos de mesa impresos en 3D. Lee mas

¿Aprendiste algún truco nuevo hoy? ¿Cuál es tu característica favorita de OpenSCAD? ¿Va a cambiar de otra herramienta de CAD pronto? Háganos saber en los comentarios a continuación!

In this article