AuerNameTag/AuerNameTag.scad

64 lines
2.0 KiB
OpenSCAD
Raw Normal View History

2024-05-21 18:38:59 +02:00
name="madex";
symbolPre="";
symbolPost="";
2024-04-01 15:17:59 +02:00
part=3; //[1:base,2:text,3:preview]
2024-03-31 22:20:04 +02:00
use <./font/LiberationSans-Bold.ttf>;
2024-05-21 18:38:59 +02:00
use <./font/Symbola_hint.ttf>;
2024-03-31 22:20:04 +02:00
label_thickness= 1.5;
font = "Liberation Sans:style=Bold";
2024-05-21 18:38:59 +02:00
symbolFont="Symbola:style=Regular";
2024-03-31 22:20:04 +02:00
font_size = 12;
font_offset = 9;
$fn = 128;
module tag() {
linear_extrude(height=10 + label_thickness/2) translate([91.62, 9.25]) {
difference() { union() {
for (a = [0:180:180])
rotate(v=[0, 0, 1], a=a) {
polygon([[1, 1], [10.9, 2], [10.2, 7.5], [0,4]]);
polygon([[0, 0], [-10.3, 5], [-10.2, 8.1], [-5, 8.3]]);
}
}
circle(d=16.1);
}
}
translate([88.7, 9.25, 0]) cube([181, 20, label_thickness], center=true);
2024-04-01 15:12:46 +02:00
translate([157.5, 12.6, 0]) cube([17, 5, 4 + label_thickness/2]);
translate([150.8, 4, 0]) cube([3, 10, 4 + label_thickness/2]);
translate([156.2, 4, 0]) cube([3, 10, 4 + label_thickness/2]);
translate([2, 1.1, 0]) cube([60, 3, 10 + label_thickness/2]);
translate([2, 15, 0]) cube([60, 3, 10 + label_thickness/2]);
translate([2, 3.6, label_thickness/2]) rotate([0,90,0])cylinder(r=label_thickness,h=60);
translate([2, 15.5, label_thickness/2]) rotate([0,90,0])cylinder(r=label_thickness,h=60);
2024-03-31 22:20:04 +02:00
}
module name(str) {
2024-05-21 18:38:59 +02:00
translate([-9+15, font_offset + font_size/2, -label_thickness/2 + 0.29]) rotate(v=[1,0,0],a=180) linear_extrude(0.3) {
text(symbolPre,font_size,symbolFont);
symbolPreSize=textmetrics(symbolPre,font_size,font);
echo (symbolPreSize);
translate([symbolPreSize.size[0]+symbolPreSize.advance[0],0,0]){
text(str, size=font_size, font = font);
echo(textSize);
translate([textSize.advance[0],0,0]) text(symbolPost,font_size,symbolFont);
}
textSize=textmetrics(str, size=font_size, font = font);
}
2024-03-31 22:20:04 +02:00
}
difference() {
if(part==1)tag();
color("black")name(name);
}
if(part==3)color("limegreen")tag();