This commit is contained in:
breitenbach76 2026-06-07 14:44:36 +02:00
parent 213243f308
commit 7d474a054e
4 changed files with 320 additions and 14 deletions

View file

@ -0,0 +1,56 @@
// 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);