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]);
|
2024-06-23 18:39:36 +02:00
|
|
|
|
|
|
|
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();
|
2024-04-01 12:41:30 +02:00
|
|
|
color("black")name(name);
|
|
|
|
}
|
|
|
|
if(part==3)color("limegreen")tag();
|