// 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);