56 lines
2 KiB
OpenSCAD
56 lines
2 KiB
OpenSCAD
// Artefakt-Token (Service-Akte) — gedruckte "Karte" statt Pappkarte
|
|
// SLC-Workshop Tabletop · Einheiten: mm
|
|
// Kleine Tile mit gravierter A-Nummer; wird in einen Slot des Artefakt-Trays
|
|
// (artefakt-tray.scad) gelegt. Eingefaerbt in der PHASENFARBE der erzeugenden
|
|
// Phase (Design/Transition/Operation/Support/Review) -> Farbe via Filament.
|
|
//
|
|
// "Lebende" Artefakte (A2 Service-Definition, A11 Problem Record,
|
|
// A13 Wissensdatenbank) wachsen sichtbar: Basis-Token + je Aktualisierung
|
|
// eine duenne Status-Platte oben drauf (Entwurf -> Final -> Aktualisiert).
|
|
//
|
|
// part = "token" -> ein Artefakt-Token (Nummer via tok_label)
|
|
// "plate" -> eine Status-Platte zum Aufstapeln (lebende Artefakte)
|
|
|
|
part = "token"; // "token" | "plate"
|
|
|
|
/* [Token] */
|
|
tok_w = 30; // Breite
|
|
tok_d = 20; // Tiefe
|
|
tok_h = 4; // Hoehe (Basis-Token)
|
|
tok_r = 2.5; // Eckenradius
|
|
tok_label = "A2"; // gravierte A-Nummer
|
|
lab_size = 11; // Schriftgroesse A-Nummer
|
|
lab_depth = 0.8; // Gravurtiefe
|
|
|
|
/* [Status-Platte] (lebende Artefakte) */
|
|
plate_h = 2.5; // Hoehe je Aktualisierungs-Platte
|
|
|
|
$fn = 48;
|
|
|
|
module rrect(l, w, h, r) {
|
|
linear_extrude(h) offset(r) offset(-r) square([l, w], center = true);
|
|
}
|
|
|
|
module token(label) {
|
|
difference() {
|
|
rrect(tok_w, tok_d, tok_h, tok_r);
|
|
translate([0, 0, tok_h - lab_depth])
|
|
linear_extrude(lab_depth + 0.1)
|
|
text(label, size = lab_size, halign = "center", valign = "center");
|
|
}
|
|
}
|
|
|
|
// duenne Platte zum Aufstapeln; kleine Mittenrille als Status-Markierung
|
|
module status_plate() {
|
|
difference() {
|
|
rrect(tok_w, tok_d, plate_h, tok_r);
|
|
translate([0, 0, plate_h - 0.5])
|
|
linear_extrude(0.6)
|
|
square([tok_w - 10, 1.2], center = true);
|
|
}
|
|
}
|
|
|
|
if (part == "plate") status_plate();
|
|
else token(tok_label);
|
|
|
|
echo(part = part, tok = [tok_w, tok_d, tok_h], plate_h = plate_h);
|