-- Leo's gemini proxy

-- Connecting to gmi.osiux.com:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini;lang=es_AR

Dibujar logo *Ansible Tools* en *3D* usando *OpenSCAD* y *Blender*


AUTHOR: Osiris Alejandro Gomez

EMAIL: osiux@osiux.com

DATE: 2023-03-28 09:57


`GraphViz`, antes te admiraba!


Mi primer *approuch* para graficar suele ser `GraphViz` ^1[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[2] el cual ya había utilizado con anterioridad para graficar el isotipo de `gcoop` ^3[3] y el de `FACTTIC` ^4[4], y teniendo en cuenta la geometría del logo de `Ansible Tools` ^5[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`{=latex}\ de `radio 1`, y luego fue cuestión de agregar los otros 3 `\cylinders`{=latex}\ 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:


[IMG]

[6]


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

[IMG]

[7]


*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[8] que sabe bastante de `Blender` ^7[9], 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...


[IMG]

[10]


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


[IMG]

[11]


También podes leer


Ansible Buenos Aires Meetup MAR/2023[12]

*Ansible Tools* `v0.3.0`[13]


ChangeLog


`2023-05-21 22:47`[14] agregar tag en Dibujar logo *Ansible Tools* en *3D* usando *OpenSCAD* y *Blender*

`2023-05-21 16:28`[15] agregar Dibujar logo *Ansible Tools* en *3D* usando *OpenSCAD* y *Blender*


1: https://graphviz.gmi/

2: https://openscad.gmi/

3: https://www.gcoop.coop/

4: https://facttic.gmi.ar/

5: https://gitlab.com/osiux/ansible_tools/

6: file:img/ansible-tools/ansible-tools-openscad-modulo.gif

7: file:img/ansible-tools/ansible-tools-openscad.gif

8: https://github.com/hertzet

9: https://www.blender.gmi/

10: file:img/ansible-tools/ansible-tools-blender-import.jpg

11: file:img/ansible-tools/ansible-tools-blender-1920x1080.gif

12: 2023-03-30-ansible-buenos-aires-meeetup-marzo-2023.gmi

13: 2022-10-03-ansible-tools-v0-3-0.gmi

14: https://gitlab.com/osiux/osiux.gitlab.io/-/commit/a54eaa70e255017a155b488f18d33d6b6be5bb5b

15: https://gitlab.com/osiux/osiux.gitlab.io/-/commit/deff9a796987fad3fc5c9fb77d324243936724f9

-- Response ended

-- Page fetched on Thu May 2 01:51:27 2024