Dibujar logo Ansible Tools en 3D usando OpenSCAD y Blender

index | about | archive | charlas | docs | links

dot | git | img | plt | tty | uml

GraphViz, antes te admiraba!

Mi primer approuch para graficar suele ser GraphViz 1, pero esta vez se complicó un poco, de por si, siempre se resiste a seguir órdenes estrictas y solo acepta sugerencias que no siempre las toma en cuenta…

3D es la que vá!

Entonces decidí usar OpenSCAD 2 el cual ya había utilizado con anterioridad para graficar el isotipo de gcoop 3 y el de FACTTIC 4, y teniendo en cuenta la geometría del logo de Ansible Tools 5, no debería ser muy complejo…

Inicialmente fue fácil, dibujar la porción que se repite, elementos básicos, comencé con un \cylinder\ de radio 1, y luego fue cuestión de agregar los otros 3 \cylinders\ moviendo (translate) y rotando (rotate) a la posición correcta.

module circles() {
    $fn=32;
    translate([d1,0,0]) cylinder(r=r3, h);
    translate([d2,0,0]) cylinder(r=r3, h);    
    rotate([0,0,a1]) translate([d1,0,0]) cylinder(r=r3, h);
    rotate([0,0,a1]) translate([d2,0,0]) cylinder(r=r3, h);
}

Ahora bien, para agregar las líneas que unían los círculos, en principio fueron simples las exteriores, porque su origen y destino eran el centro de cada circulo dibujados con cylinders, pero las diagonales, no tenía el dato preciso (estoy oxidado con trigonometría), entonces fui probando ángulos por aproximación, queda pendiente mayor precisión.

module lines() {
    $fn=32;
    translate([d1,0,r3/2]) rotate([0,90,45]) cylinder(r=r3/2,(d2-d1)*1.2);
    translate([d2,0,r3/2]) rotate([0,90,145]) cylinder(r=r3/2,(d2-d1)*1.2);    
    translate([d1,0,r3/2]) rotate([0,90,0]) cylinder(r=r3/2,d2-d1);
    translate([d1,0,r3/2]) rotate([270,0,5]) cylinder(r=r3/2,l1);
    translate([d2,0,r3/2]) rotate([270,0,6]) cylinder(r=r3/2,l2);        
}

Y con estas 2 funciones (circles y lines) ya tenía el modulo que se repetía.

module modulo()
{
    union() {
        lines();
        circles();
    }
}

Capturando la secuencia construí un gif del paso a paso del modulo:

ansible-tools-openscad-modulo.gif

Bastó contar, cuántas veces se repetía, eran 32 veces, dividiendo los 360 grados, el ángulo de rotación daba 11.25 grados.

module border() {
    for ( i = [1 : 32] ) {
        rotate([0,0,i*a1]) modulo();
    }
}

ansible-tools-openscad.gif

AAAA…

Ahora solo faltaban el círculo central con la A de Ansible, y si bien OpenSCAD permite importar un svg y extruirlo, no recordaba como hacerlo y mucho tiempo no tenía, entonces como no podía resolver la tarea, la delegué en herzet 6 que sabe bastante de Blender 7, solo tuve que exportar el modelo y a otra cosa mariposa…

En cuestión de minutos hertzet ya estaba solucionado mis bugs en Blender y un screenshot bastó para despreocuparme…

ansible-tools-blender-import.jpg

Un par de horas mas tarde, obtuve una secuencia de imágenes con la animación para convertir en video! Comparto un gif

ansible-tools-blender.gif

También podes leer

ChangeLog

  • 2023-05-21 22:47 agregar tag en Dibujar logo Ansible Tools en 3D usando OpenSCAD y Blender
  • 2023-05-21 16:28 agregar Dibujar logo Ansible Tools en 3D usando OpenSCAD y Blender

Notas al pie de página: