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.
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)
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);
}
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.
Pingback: Me encanta Customizer - Norbert Rovira Studio
Pingback: Me encanta Customizer - Norbert Rovira tech thoughts and passions
Pingback: Me encanta Customizer - Norbert Rovira's Tech thoughts and passions