Jugando con OpenSCAD

Desde que probé y he estado jugando con OpenSCAD estoy encantado con él.

Supongo que por el concepto de programar objetos mediante un script, que además me recuerda mucho a cosas que había hecho con POV (Persistence of Vision Raytracer) a principios de los 90.

Esta semana hice un objeto sencillo, pero práctico.

Los tapones
Los tapones

El tapón de corcho de mi aceitera se ha ido degradando tanto que necesita un reemplazo. ¿Porqué no en PLA?

Y de paso, lo hago con mejoras.

Así que pie de rey en mano cojo las dimensiones.

En openSCAD es un simple cilindro. Puedes indicarle el ancho en las dos caras del cilindro y por tanto hacer elementos con ángulo, o en un extremo un cono.

cylinder(h=10,r1=5, r2=0, center=true);

(código para un cono)

Tapon aceitera
Tapon aceitera

Un paso más allá

Luego viene cuando lo complicas. El upgrade del tapón de corcho consiste en añadirle un agujero para que deje fluir el aceite con continuidad.

Eso es simplemente otro cilindro pequeño y por diferencia con el mayor consigues el agujero.

El siguiente refinamiento viene en la colocación del agujero. No lo quería en el centro si no en un lado y con el mismo ángulo del tapón. Lo fácil y rápido, probando a base de cambiar el parámetro hasta que cuadra.

Pero luego, como tenía intención de subir el objeto a Thingiverse, lo he querido dejar con parámetros de entrada.

Eso implica que el ángulo y posición del agujero debe calcularse por fórmula.

Bueno, aquí google es nuestro amigo como siempre para refrescar recuerdos de mates bastante enterrados ya en mi memoria. Finalmente la arcotangente es lo que necesito.

angle=atan((radius1-radius2)/height)

Con el desplazamiento del agujero en la cara del tapón tengo que hacer algo parecido para dejarlo cerca del borde en función de las medidas entradas.

translate([0,(radius1+radius2)/2-3,0])

El resultado final

$fn=100;
radius1=29/2; //larger width radius
radius2=24.5/2; //shorter width radius
height=21.4; // height

angle=atan((radius1-radius2)/height);//angle for the air hole
difference(){
   cylinder(h=height,r1=radius1, r2=radius2, center=true);
   translate([0,(radius1+radius2)/2-3,0])rotate([angle,0,0])cylinder(h=height+10,r=1, center=true);
}
La aceitera y el tapón tuneado
La aceitera y el tapón tuneado

Lo podéis encontrar en Thingiverse aquí.

 

Para acabar, sólo me falta retocar el código para que se pueda utilizar con Customizer.

Si no lo conocéis está realmente bien. Siguiendo unas reglas definidas Customizer es capaz de detectar los parámetros de entrada para un objeto openSCAD, y el rango de valores para cada uno. Con esto cualquier usuario, sin conocer nada del programa, puede modificar el objeto desde la web de Thingiverse a sus necesidades en función de esos parámetros definidos por el diseñador. Después te genera el STL necesario.

 

Por cierto, yo lo he impreso en PLA. No es ideal pero tengo entendido que mejor que el ABS en contacto con alimentos.

3 comentarios en “Jugando con OpenSCAD”

  1. Pingback: Me encanta Customizer - Norbert Rovira Studio

  2. Pingback: Me encanta Customizer - Norbert Rovira tech thoughts and passions

  3. Pingback: Me encanta Customizer - Norbert Rovira's Tech thoughts and passions

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Scroll al inicio