Stap 5: Regelen van de letters
In de module willen wij de volgende stappen uit:
Schaal van het teken op de juiste grootte (het komt in ongeveer 2mm breed - maar we willen dat het veel groter!): scale(textsize)
Zorg ervoor dat we het 3D (zoals het kwam in flat): linear_extrude (hoogte = 7, centrum = false)
Draaien op de juiste manier: rotate([90,0,180])
Het afstappen van de oorsprong (rotatie rond de oorsprong, dus dit te doen voordat roterende maakt graag een stuk makkelijker werkt!: translate([0,radius,0.8*textsize])
Roteren is weer afhankelijk van waar in het woord het karakter is: rotate([0,0,rot*360/7])
En dan zijn we gesorteerd! Je eindigen met een module als volgt:
hoogte = 40;
straal = 30;
TextSize = 20;
module char (rot, naam) {}
Rotate([0,0,rot*360/7]) translate([0,radius,0.8*textsize]) rotate([90,0,180]) linear_extrude (hoogte = 7, centrum = false) scale(textsize) import(file=name,origin=[1,1]);
}
en vervolgens om te schrijven een naam, je gewoon noemen het voor elke letter:
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 is er slechts één definitieve bits links, om de werkelijke 'band'. OpenSCAD gebruikt CSG (constructieve ruimtemeetkunde) zodat u shapes maken door het toevoegen of aftrekken van hen. Alles wat we moeten doen is het toevoegen van (Unie) alle letters samen, evenals een cilinder, waarna aftrekken (verschil) een iets dunnere cilinder zodat een gat wordt gemaakt in het midden:
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");
cilinder (h = hoogte, r = straal + 5);
}
Translate([0,0,-1]) cilinder (h = hoogte + 2, r = straal);
}
En thats it! Het volledige ding is hieronder:
---text_MARIANNE.scad
hoogte = 40;
straal = 30;
TextSize = 20;
module char (rot, naam) {}
Rotate([0,0,rot*360/9]) translate([0,radius,0.8*textsize]) rotate([90,0,180]) linear_extrude (hoogte = 7, centrum = 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");
cilinder (h = hoogte, r = straal + 5);
}
Translate([0,0,-1]) cilinder (h = hoogte + 2, r = straal);
}
-------------------------------------------