Att skapa personligt 3D tryckt servett ringar/placeringskort (5 / 8 steg)
Steg 5: Arrangera bokstäverna
I modulen vill vi göra följande:
Skala tecknet till rätt storlek (det gäller i ca 2mm brett - men vi vill ha det mycket större!): scale(textsize)
Se till att vi gör det 3D (som det kom i lägenhet): linear_extrude (höjd = 7, center = false)
Vrida den på rätt sätt: rotate([90,0,180])
Flytta den från ursprung (rotation fungerar runt ursprung, så gör detta innan roterande gör gillar mycket enklare!: translate([0,radius,0.8*textsize])
Rotera igen beroende på var i ordet karaktär är: rotate([0,0,rot*360/7])
Och då vi är sorterade! Du sluta med en modul som denna:
höjd = 40;
radie = 30.
textstorlek = 20;
modul char (röta, namn) {
rotate([0,0,rot*360/7]) translate([0,radius,0.8*textsize]) rotate([90,0,180]) linear_extrude (höjd = 7, center = false) scale(textsize) import(file=name,origin=[1,1]);
}
och sedan skriva ett namn, du kalla bara det för varje bokstav:
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");
Nu finns det bara en sista bit kvar, att göra det faktiska "bandet". OpenSCAD använder CSG (Constructive Solid Geometry) så du göra former genom att dem eller. Allt vi behöver göra är att lägga till (unionen) alla bokstäver tillsammans som en cylinder, och sedan subtrahera (skillnad) en något tunnare cylinder så att ett hål görs i mitten:
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");
cylinder (h = höjd, r = radie + 5);
}
translate([0,0,-1]) cylinder (h = höjd + 2, r = radie);
}
Och det är det! Det hela är nedan:
---text_MARIANNE.scad
höjd = 40;
radie = 30.
textstorlek = 20;
modul char (röta, namn) {
rotate([0,0,rot*360/9]) translate([0,radius,0.8*textsize]) rotate([90,0,180]) linear_extrude (höjd = 7, center = 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");
cylinder (h = höjd, r = radie + 5);
}
translate([0,0,-1]) cylinder (h = höjd + 2, r = radie);
}
-------------------------------------------