Paso 5: Arreglo de las letras
En el módulo, queremos hacer los siguientes pasos:
El personaje al tamaño correcto de la escala (viene en unos 2mm de ancho - pero queremos mucho más!): scale(textsize)
Asegúrese de que haga 3D (como sucedió en el plano): linear_extrude (altura = 7, centro = false)
Gire hacia arriba de la manera correcta: rotate([90,0,180])
Alejarse del origen (rotación trabaja alrededor del origen, así que hacerlo antes de rotación hace como mucho más fácil!: translate([0,radius,0.8*textsize])
El personaje gire otra vez dependiendo de donde la palabra es: rotate([0,0,rot*360/7])
Y entonces nosotros estamos clasificados! Terminas con un módulo como este:
altura = 40;
radio = 30;
TEXTSIZE = 20;
módulo char (putrefacción, nombre) {}
Rotate([0,0,Rot*360/7]) translate([0,radius,0.8*textsize]) rotate([90,0,180]) linear_extrude (altura = 7, centro = false) scale(textsize) import(file=name,origin=[1,1]);
}
y luego para escribir un nombre, sólo llama para cada letra:
Char (0, "char_M.dxf");
Char (1, "char_A.dxf");
Char (2, "char_R.dxf");
Char (3, "char_I.dxf");
Char (4, "char_A.dxf");
Char (5, "char_N.dxf");
Char (6, "char_N.dxf");
Char (7, "char_E.dxf");
Ahora queda sólo un bit final, para hacer la banda de real. OpenSCAD utiliza CSG (la geometría sólida constructiva) para hacer formas sumando o restando los. Todo lo que necesitamos hacer es agregar (Unión) todas las letras juntas, así como un cilindro y luego resta (diferencia) un cilindro ligeramente más delgado que se realiza un orificio en el centro:
Difference() {}
{} Union()
Char (0, "char_M.dxf");
Char (1, "char_A.dxf");
Char (2, "char_R.dxf");
Char (3, "char_I.dxf");
Char (4, "char_A.dxf");
Char (5, "char_N.dxf");
Char (6, "char_N.dxf");
Char (7, "char_E.dxf");
cilindro (h = altura, r = radio + 5);
}
translate([0,0,-1]) cilindro (h = altura + 2, r = radio);
}
Y eso es todo! Lo completo es a continuación:
---text_MARIANNE.scad
altura = 40;
radio = 30;
TEXTSIZE = 20;
módulo char (putrefacción, nombre) {}
Rotate([0,0,Rot*360/9]) translate([0,radius,0.8*textsize]) rotate([90,0,180]) linear_extrude (altura = 7, centro = false) scale(textsize) import(file=name,origin=[1,1]);
}
Difference() {}
{} Union()
Char (0, "char_M.dxf");
Char (1, "char_A.dxf");
Char (2, "char_R.dxf");
Char (3, "char_I.dxf");
Char (4, "char_A.dxf");
Char (5, "char_N.dxf");
Char (6, "char_N.dxf");
Char (7, "char_E.dxf");
cilindro (h = altura, r = radio + 5);
}
translate([0,0,-1]) cilindro (h = altura + 2, r = radio);
}
-------------------------------------------