update 01.06.2026

This commit is contained in:
breitenbach76 2026-06-01 14:19:10 +02:00
parent 7f1a09572e
commit 1af051990f
21 changed files with 1365 additions and 380 deletions

View file

@ -20,7 +20,7 @@ Verankerung und Steckmechanik.
- **Modulares Tile-System** statt eines großen Boards — jedes Teil passt auf ein übliches Druckbett (≥ 200 × 200 mm).
- **Lineare Bahn** (kein Ring) — Tiles werden zu einer durchgehenden Linie aneinandergereiht, bei Platzmangel mäandrierend.
- **Eine standardisierte Verankerung**50 mm Rundsockel) für *alle* Plättchen und für den Action-Stein → Teile sind austauschbar.
- **Eine standardisierte Verankerung**60 mm Rundsockel) für *alle* Blanko-Scheiben und für den Action-Stein → Teile sind austauschbar.
- **Steckverbindungen** (Puzzle-Tabs) zwischen Tiles, damit die Bahn stabil zusammenhält und flexibel gelegt werden kann.
- **Materialempfehlung:** PLA für Tiles/Plättchen/Gates (formstabil, günstig), PLA + Gewichtseinlage (M8-Mutter) für den Action-Stein (Standfestigkeit mit aufrechter Karte).

View file

@ -0,0 +1,164 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1000" height="960" viewBox="0 0 1000 960" font-family="system-ui, Arial, sans-serif">
<style>
.part { fill:#eef2f7; stroke:#1d2430; stroke-width:1.5; }
.disc { stroke:#1d2430; stroke-width:1.5; }
.recess{ fill:#dde5ee; stroke:#1d2430; stroke-width:1; }
.cut { fill:#ffffff; stroke:#1d2430; stroke-width:1; stroke-dasharray:4 3; }
.spot { fill:#dde5ee; stroke:#2f80c9; stroke-width:1; stroke-dasharray:3 2; }
.dim { stroke:#c0392b; stroke-width:1; }
.dimt { fill:#c0392b; font-size:11px; }
.lbl { fill:#444; font-size:11px; }
.lblb { fill:#1d2430; font-size:12px; font-weight:700; }
.title { fill:#1d2430; font-size:13px; font-weight:700; }
.h1 { fill:#1d2430; font-size:18px; font-weight:700; }
.zone { fill:#1d2430; font-size:14px; font-weight:700; text-anchor:middle; }
</style>
<rect x="0" y="0" width="1000" height="960" fill="#ffffff"/>
<text x="30" y="34" class="h1">SLC-Workshop — Bauteilmaße (aktuell, v0.4)</text>
<text x="30" y="52" class="lbl">Maßstab 2 px = 1 mm · rote Maße in mm · Figuren werden gestellt (keine Stecklöcher)</text>
<!-- scale bar 50 mm = 100 px -->
<line x1="760" y1="46" x2="860" y2="46" class="dim"/>
<line x1="760" y1="42" x2="760" y2="50" class="dim"/>
<line x1="860" y1="42" x2="860" y2="50" class="dim"/>
<text x="765" y="40" class="dimt">50 mm</text>
<!-- ============ TILE (top view) ============ -->
<g transform="translate(60,110)">
<text x="0" y="-26" class="title">Phasen-Basistile (Draufsicht)</text>
<!-- tabs N & E (positive) -->
<rect x="88" y="-12" width="24" height="12" class="part"/>
<rect x="200" y="88" width="12" height="24" class="part"/>
<!-- body -->
<rect x="0" y="0" width="200" height="200" rx="6" class="part"/>
<!-- slots S & W (negative) -->
<rect x="88" y="188" width="24" height="12" class="cut"/>
<rect x="0" y="88" width="12" height="24" class="cut"/>
<!-- socket -->
<circle cx="100" cy="100" r="60" class="recess"/>
<text x="100" y="98" class="lbl" text-anchor="middle">Verankerung</text>
<text x="100" y="112" class="lblb" text-anchor="middle">Ø60 · T4</text>
<!-- dims -->
<line x1="0" y1="-20" x2="200" y2="-20" class="dim"/>
<text x="92" y="-23" class="dimt">100</text>
<line x1="-20" y1="0" x2="-20" y2="200" class="dim"/>
<text x="-38" y="104" class="dimt">100</text>
<text x="116" y="-2" class="lbl">Tab 12×6 (N/O)</text>
<text x="118" y="200" class="lbl">Slot 12×6 (S/W)</text>
<text x="0" y="228" class="lbl">Dicke 6 mm · Ecken r3 · Passung +0,4 mm</text>
</g>
<!-- ============ AKTIVITÄTS-PLÄTTCHEN ============ -->
<g transform="translate(340,120)">
<text x="0" y="-26" class="title">Aktivitäts-Scheibe (blanko + Aufkleber)</text>
<circle cx="60" cy="60" r="60" class="disc" fill="#f3ece0"/>
<circle cx="60" cy="60" r="58" fill="none" stroke="#2f80c9" stroke-width="1" stroke-dasharray="4 3"/>
<text x="60" y="50" class="lblb" text-anchor="middle">op_05</text>
<text x="60" y="66" class="lbl" text-anchor="middle">Aufkleber</text>
<text x="60" y="80" class="lbl" text-anchor="middle">Ø5860</text>
<line x1="0" y1="132" x2="120" y2="132" class="dim"/>
<text x="48" y="146" class="dimt">Ø60</text>
<text x="-4" y="166" class="lbl">× 4 mm · Fase 1 mm · blanko (Aufkleber statt Gravur)</text>
</g>
<!-- ============ ENTSCHEIDUNGS-CHIP ============ -->
<g transform="translate(560,140)">
<text x="0" y="-56" class="title">Entscheidungs-Chip</text>
<circle cx="60" cy="60" r="60" class="disc" fill="#e9efe9"/>
<text x="60" y="66" class="lblb" text-anchor="middle">GO</text>
<line x1="0" y1="132" x2="120" y2="132" class="dim"/>
<text x="48" y="146" class="dimt">Ø30</text>
<text x="-6" y="166" class="lbl">× 4 mm · Münze, Symbolgravur</text>
<text x="-6" y="182" class="lbl">Go / Go m. Auflagen / Zurück / Ablehnung</text>
</g>
<!-- ============ ACTION-STEIN (front view) ============ -->
<g transform="translate(770,150)">
<text x="-20" y="-66" class="title">Action-Stein</text>
<!-- card -->
<path d="M -21 -50 L 119 -50 L 119 30 L 70 30 L 66 36 L 70 42 L 119 42 L 119 50 L -21 50 L -21 42 L 28 42 L 32 36 L 28 30 L -21 30 Z" fill="#fff" stroke="#1d2430" stroke-width="1.2"/>
<text x="49" y="-30" class="lbl" text-anchor="middle">Karte</text>
<text x="49" y="-14" class="lblb" text-anchor="middle">70×120</text>
<!-- body -->
<rect x="14" y="50" width="70" height="60" class="part"/>
<text x="49" y="84" class="lbl" text-anchor="middle">Ø35</text>
<text x="49" y="98" class="lbl" text-anchor="middle">×30</text>
<!-- base -->
<rect x="-10" y="110" width="118" height="10" class="part"/>
<text x="49" y="138" class="lbl" text-anchor="middle">Fuß Ø59 × 5 · M8-Mutter</text>
<text x="49" y="154" class="lbl" text-anchor="middle">Schlitz B74 × T4 · Standring Ø70 opt.</text>
</g>
<!-- ============ GATE-TOR (front view) ============ -->
<g transform="translate(150,470)">
<text x="0" y="-26" class="title">Gate-Tor (Vorderansicht)</text>
<!-- top beam -->
<rect x="0" y="0" width="228" height="28" class="part"/>
<!-- card slot in beam -->
<rect x="49" y="0" width="130" height="7" class="cut"/>
<!-- posts -->
<rect x="0" y="28" width="24" height="200" class="part"/>
<rect x="204" y="28" width="24" height="200" class="part"/>
<!-- feet -->
<rect x="-48" y="228" width="120" height="8" class="part"/>
<rect x="156" y="228" width="120" height="8" class="part"/>
<!-- stand spots (4) -->
<circle cx="12" cy="232" r="8" class="spot"/>
<circle cx="80" cy="232" r="8" class="spot"/>
<circle cx="148" cy="232" r="8" class="spot"/>
<circle cx="216" cy="232" r="8" class="spot"/>
<!-- dims -->
<line x1="24" y1="120" x2="204" y2="120" class="dim"/>
<text x="100" y="116" class="dimt">lichte Weite 90</text>
<line x1="244" y1="28" x2="244" y2="228" class="dim"/>
<text x="248" y="130" class="dimt">Höhe 100</text>
<text x="60" y="20" class="lbl">Querbalken 14</text>
<text x="-46" y="258" class="lbl">Füße 60×30×4</text>
<text x="96" y="258" class="lbl">4 Standfelder Ø8 (Gravur 0,6) — keine Löcher</text>
<text x="0" y="278" class="lbl">Materialstärke (Tiefe) 8 · Pfosten 12 · Kartenschlitz 65×3 (T10)</text>
</g>
<!-- ============ AKTIV-FELD (top view) ============ -->
<g transform="translate(520,520)">
<text x="0" y="-26" class="title">Aktiv-Feld · RACI-Fläche (Draufsicht)</text>
<rect x="0" y="0" width="224" height="80" rx="4" class="part"/>
<!-- Feld R -->
<rect x="10" y="10" width="42" height="60" rx="3" fill="#f7f9fb" stroke="#9fb2c6"/>
<circle cx="22" cy="24" r="8" class="spot"/><circle cx="40" cy="24" r="8" class="spot"/>
<circle cx="22" cy="42" r="8" class="spot"/><circle cx="40" cy="42" r="8" class="spot"/>
<text x="31" y="66" class="zone">R</text>
<!-- Feld A (genau 1) -->
<rect x="64" y="10" width="42" height="60" rx="3" fill="#f7f9fb" stroke="#c0392b" stroke-width="1.6"/>
<circle cx="85" cy="33" r="11" class="spot"/>
<text x="85" y="66" class="zone">A</text>
<!-- Feld C -->
<rect x="118" y="10" width="42" height="60" rx="3" fill="#f7f9fb" stroke="#9fb2c6"/>
<circle cx="130" cy="24" r="8" class="spot"/><circle cx="148" cy="24" r="8" class="spot"/>
<circle cx="130" cy="42" r="8" class="spot"/><circle cx="148" cy="42" r="8" class="spot"/>
<text x="139" y="66" class="zone">C</text>
<!-- Feld I -->
<rect x="172" y="10" width="42" height="60" rx="3" fill="#f7f9fb" stroke="#9fb2c6"/>
<circle cx="184" cy="24" r="8" class="spot"/><circle cx="202" cy="24" r="8" class="spot"/>
<circle cx="184" cy="42" r="8" class="spot"/><circle cx="202" cy="42" r="8" class="spot"/>
<text x="193" y="66" class="zone">I</text>
<line x1="0" y1="92" x2="224" y2="92" class="dim"/>
<text x="100" y="106" class="dimt">~112</text>
<text x="0" y="128" class="lbl">40 × 5 mm · R/C/I je 4 (2×2) · A = genau 1</text>
<text x="0" y="144" class="lbl">Ø8 (A Ø11) · Gravur 0,5 · Pitch 9 · keine Löcher</text>
</g>
<!-- ============ ROLLEN-FIGUR (side) ============ -->
<g transform="translate(820,540)">
<text x="0" y="-26" class="title">Rollen-Figur</text>
<!-- simple meeple silhouette ~22mm tall = 44px -->
<circle cx="30" cy="14" r="10" class="part"/>
<path d="M 14 24 Q 30 18 46 24 L 42 44 L 18 44 Z" class="part"/>
<!-- flat base -->
<rect x="14" y="44" width="32" height="6" class="part"/>
<text x="60" y="20" class="lbl">Höhe ~22 mm</text>
<text x="60" y="40" class="lbl">flacher Standfuß,</text>
<text x="60" y="54" class="lbl">kein Pin</text>
<line x1="14" y1="60" x2="46" y2="60" class="dim"/>
<text x="6" y="74" class="dimt">Sockel Ø~7,5</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.8 KiB

View file

@ -4,12 +4,13 @@ Stand: 2026-05-27 · Maße in mm · Mengen für **ein** Workshop-Set.
## Standard-Schnittstelle (für alle Teile gültig)
- **Verankerung (Sockel):** zylindrische Vertiefung **Ø 50 mm, Tiefe 4 mm**, mit
0,4 mm Spielpassung. Sowohl Aktivitätsplättchen als auch der Action-Stein-Fuß
passen hinein.
- **Verankerung (Sockel):** zylindrische Vertiefung **Ø 60 mm, Tiefe 4 mm**, mit
0,4 mm Spielpassung. Sowohl die Blanko-Scheibe (Ø 60) als auch der
Action-Stein-Fuß (Ø 59) passen hinein.
- **Tile-Steckverbindung:** Puzzle-Tab **12 mm breit, 6 mm tief**, mittig je Kante.
- **Figuren-Steckplatz:** Pin-Loch **Ø 4,2 mm, Tiefe 4 mm** (für Figuren-Pin Ø 4,0 mm).
Einheitlich am **Aktiv-Feld** und an den **Gate-Toren** — jede Figur passt überall.
- **Figuren-Platzierung:** Figuren werden **gestellt, nicht gesteckt** (flacher
Standfuß, kein Pin). Standorte sind als **flache Standfelder** (Ø 8 mm, Gravur
~0,5 mm) am **Aktiv-Feld** und an den **Gate-Toren** markiert — keine Löcher.
---
@ -18,7 +19,7 @@ Stand: 2026-05-27 · Maße in mm · Mengen für **ein** Workshop-Set.
| Merkmal | Wert |
|---------|------|
| Grundfläche | 100 × 100 × 6 mm |
| Verankerung | zentriert, Ø 50 × 4 mm |
| Verankerung | zentriert, Ø 60 × 4 mm |
| Kanten | Puzzle-Tabs (Tab/Slot abwechselnd) |
| Farbe | je Phase (blau/orange/grün/teal/lila) |
| Menge | **40** (eine je Lifecycle-ID: 37 Aktivitäten + 3 Gate-Positionen) |
@ -32,26 +33,29 @@ Alle Tiles sind **gerade** und werden zu einer **linearen Bahn** aneinandergerei
(kein Ring). Bei Platzmangel kann die Bahn mäandrierend (Zeilenumbruch) gelegt
werden — die Puzzle-Tabs erlauben auch 90°-Ecken.
## 2. Aktivitätsplättchen (einseitig)
## 2. Aktivitäts-Scheibe (blanko + Aufkleber)
| Merkmal | Wert |
|---------|------|
| Form | Rundscheibe Ø 49 × 4 mm (passt in Verankerung) |
| Gravur | **einseitig: ID + Kurzbezeichnung** (z. B. `op_05 — Überwachen der Services`). Rückseite leer/Phasenfarbe — Erklärung liegt in der App |
| Form | Rundscheibe **Ø 60 × 4 mm**, plane Oberseite (passt in Verankerung Ø 60) |
| Beschriftung | **60-mm-Rundaufkleber** mit ID + Kurzbezeichnung (z. B. `op_05 — Überwachen der Services`), plan aufgeklebt. **Keine Gravur.** Erklärung liegt in der App |
| Griff | umlaufende Fase 1 mm zum leichten Herausnehmen |
| Menge | **37** (eine je Aktivität; an den 3 Gate-Positionen steht stattdessen ein Gate-Tor) |
| Material | PLA, je Phase eingefärbt (matcht Tile) |
| Menge | **37** (alle identisch & blanko; an den 3 Gate-Positionen steht stattdessen ein Gate-Tor) |
| Material | PLA, einheitlich blanko (Phasenfarbe & Text trägt der Aufkleber) |
> Plättchen bleibt entnehmbar: beim Bearbeiten herausnehmen und den Action-Stein
> in die Verankerung stellen („wir sind hier"). Die ausführliche Auflösung kommt
> über die Companion-App, nicht über eine Rückseiten-Gravur.
> Bei zu kleiner Schrift für Gravur: glatte Scheibe drucken + bedrucktes Label aufkleben.
> **Vorteil Aufkleber:** Scheiben sind identisch und **wiederverwendbar** — neu
> bekleben für andere Aktivitäten, Korrekturen oder Mehrsprachigkeit; keine
> Serien-STLs/Gravur nötig. Aufkleber Ø 58 sitzt plan, Ø 60 überdeckt die obere
> Fase leicht.
> Scheibe bleibt entnehmbar: beim Bearbeiten herausnehmen und den Action-Stein in
> die Verankerung stellen („wir sind hier"). Die ausführliche Auflösung kommt über
> die Companion-App.
## 3. Action-Stein (Szenario-Träger)
| Merkmal | Wert |
|---------|------|
| Fuß | Ø 49 × 5 mm (sitzt in Verankerung) |
| Fuß | Ø 59 × 5 mm (sitzt in Verankerung Ø 60) |
| Körper | Zylinder Ø 35, Höhe 30 mm |
| Kartenschlitz | Breite 74 mm, Tiefe 4 mm, Höhe 25 mm (für Karte 70 mm breit) |
| Gewichtseinlage | Aussparung für M8-Mutter im Fuß (Kippschutz) |
@ -65,41 +69,58 @@ werden — die Puzzle-Tabs erlauben auch 90°-Ecken.
|---------|------|
| Form | Bogen/Tor, lichte Weite 90 mm, Höhe 100 mm, Materialstärke 8 mm |
| Standfüße | 2 × Grundplatte 30 × 60 mm, überspannt 2 Tiles |
| Rollen-Steckplätze | Lochreihe **Ø 4,2 mm** an der Basis (für Figuren-Pin), 4 Plätze, Pitch 8 mm |
| Rollen-Standfelder | **4 flache Standfelder** (Ø 8 mm, Gravur ~0,6 mm) an der Basis — keine Löcher |
| Kartenschlitz | oben quer, Breite 65 mm, Tiefe 3 mm (Gate-Beschreibungskarte) |
| Gravur | „Gate 1/2/3" + Gate-Keeper |
| Menge | **3** |
| Material | PLA, Infill 20 % |
## 4a. Aktiv-Feld (RACI-Stecklochleiste)
## 4a. Aktiv-Feld (RACI-Fläche)
Mobile Leiste, die **neben dem Action-Stein** steht und mit ihm weiterwandert.
Hier werden die je Aktivität beteiligten Rollen-Figuren nach **RACI** gesteckt —
Flache Platte, die **neben dem Action-Stein** liegt und mit ihm weiterwandert.
Hier werden die je Aktivität beteiligten Rollen-Figuren nach **RACI** gestellt —
RACI wird so **pro Schritt** sichtbar, ohne die Tiles zu verändern.
| Merkmal | Wert |
|---------|------|
| Grundkörper | ~86 × 26 × 6 mm (Länge ergibt sich aus den Zonen), Ecken r3 |
| Zonen | **R** (2 Plätze) · **A** (1 Platz) · **C** (3 Plätze) · **I** (3 Plätze) |
| Steckplätze | Ø 4,2 mm, Tiefe 4 mm, Pitch 8 mm (für Figuren-Pin Ø 4,0) |
| Gravur | Zonen-Buchstaben R / A / C / I vorne, Tiefe 0,8 mm |
| Grundkörper | **~112 × 40 × 5 mm**, Ecken r4 |
| Bereiche | **R · A · C · I** — 4 abgetrennte Felder (eingravierte Umrandung), **symmetrisch** |
| Standfelder | **R / C / I: je 4 (2×2)** · **A: genau 1** (zentrales, größeres Feld Ø 11) = **13 gesamt**; flache Markierung Ø 8 mm (A Ø 11), Gravur ~0,5 mm, Pitch 9 mm (keine Löcher) |
| Gravur | Feld-Umrandung 0,6 mm + Zonen-Buchstabe R / A / C / I je Feld, Tiefe 0,8 mm |
| Menge | **1** (ggf. 2 bei parallelen Tischen) |
| Material | PLA, Infill 20 % |
> **A = genau 1 Platz** — bildet ab, dass je Aktivität genau eine Rolle
> *Accountable* ist (RACI-Regel aus `spm_rollen.yaml`). Nicht jeder Platz muss
> belegt sein; die Leiste ist großzügig ausgelegt.
> Optional: Rastnase, damit die Leiste an den Action-Stein-Fuß andockt.
> **Goldene RACI-Regel: A = genau 1.** Das A-Feld hat bewusst **nur ein** (größeres,
> zentrales) Standfeld — je Aktivität ist genau eine Rolle *Accountable*
> (`spm_rollen.yaml`). R / C / I haben je 4 Felder (2×2) und decken die reale
> Belegung ab (R bis 3, C bis 4, I bis 2). Alle vier Bereiche sind außen
> gleich groß; nicht jede Fläche muss belegt sein.
> Optional: Rastnase, damit die Platte an den Action-Stein-Fuß andockt.
## 4b. SOR-Sonder-Tile (Gremium)
Die SOR ist ein **Gremium** und daher kein Figur, sondern ein eigenes Tile.
| Merkmal | Wert |
|---------|------|
| Grundkörper | ~120 × 120 × 6 mm, Ecken r4, Puzzle-Tab am Eingang |
| Eingang | flache Aufsetz-Mulde (~116 × 30 × 1,5 mm) für die **Gate-Tor-Füße** + Gravur „SOR" |
| Mitte | Mulde für **Entscheidungs-Chip Ø 30** — alternativ **„Gremium" eingraviert** (`use_chip=false`) |
| Standfelder | **Ring aus 6** flachen Markierungen (Ø 8, Gravur ~0,5) für die Gremiums-Figuren |
| Menge | **1** (ggf. 2 — Gate 1 & Gate 3 sind beide SOR-Gremium) |
| Material | PLA, Infill 20 % |
| Datei | `openscad/sor-tile.scad` |
## 5. Rollen-Figuren
| Merkmal | Wert |
|---------|------|
| Form | Schlanker Pöppel, Höhe ~22 mm, **Standfuß-Pin Ø 4,0 mm × 4 mm** (passt in Aktiv-Feld & Gate-Loch Ø 4,2) |
| Standfläche | schmal (~8 mm), damit mehrere Figuren in einer Zonen-Reihe nebeneinander stehen |
| Codierung | Farbe + Formvariante je Rollenkategorie |
| Menge | siehe `../02_Spielfiguren/` (Governance, Management, Teams) |
| Material | PLA, eingefärbt |
| Form | Schlanker Pöppel, Höhe ~22 mm, **flacher Standfuß (kein Pin)** — wird auf die Standfelder gestellt |
| Standfläche | rund **Ø ~7,5 mm** (< Pitch 9 mm), damit mehrere Figuren nebeneinander stehen |
| Codierung | Farbe je **Kategorie** (6): Governance Gold · Umfeld/Auftraggeber Bordeaux · Management Blau · Operative Grau · Externe Weiß · Teams Grün |
| Team-Sonderfiguren | **mehrere Mini-Figuren auf einem Sockel** (Betrieb, Support, Projekt) — klar als Team erkennbar |
| Menge | **16 Einzelrollen + 3 Team-Figuren** (SOR ist ein Tile, keine Figur); Details `../02_Spielfiguren/` |
| Material | PLA, eingefärbt je Kategorie |
## 6. Entscheidungs-Chips (optional 3D statt Karte)
@ -117,11 +138,13 @@ RACI wird so **pro Schritt** sichtbar, ohne die Tiles zu verändern.
| Teil | Menge | Datei |
|------|------:|-------|
| Phasen-Basistile | 40 | `openscad/aktivitaets-tile.scad` |
| Aktivitätsplättchen | 37 | `openscad/aktivitaets-plaque.scad` |
| Aktivitäts-Scheibe (blanko) | 37 | `openscad/aktivitaets-plaque.scad` + 60-mm-Aufkleber |
| Action-Stein | 2 | `openscad/action-stein.scad` |
| Aktiv-Feld (RACI-Leiste) | 1 | `openscad/aktiv-feld.scad` |
| Aktiv-Feld (RACI-Fläche) | 1 | `openscad/aktiv-feld.scad` |
| Gate-Tor | 3 | `openscad/gate-tor.scad` |
| Rollen-Figuren | ~20 | (Standard-Meeple-Modell + Einfärbung) |
| SOR-Sonder-Tile | 1 (ggf. 2: Gate 1 & 3) | `openscad/sor-tile.scad` |
| Rollen-Figuren (Einzel) | 16 | (Figur + Einfärbung je Kategorie) |
| Team-Sonderfiguren | 3 | (mehrere Figuren auf einem Sockel) |
| Entscheidungs-Chips | 12 | (einfache Münze + Gravur) |
## Hinweise für den Producer

View file

@ -6,25 +6,21 @@ Parametrische Quellmodelle der Schlüsselteile. In [OpenSCAD](https://openscad.o
| Datei | Bauteil |
|-------|---------|
| `aktivitaets-tile.scad` | Phasen-Basistile (100×100, Verankerung Ø50, Puzzle-Tabs) |
| `aktivitaets-plaque.scad` | Beidseitiges Aktivitätsplättchen (Ø49) — Text per Variable |
| `aktivitaets-tile.scad` | Phasen-Basistile (100×100, Verankerung Ø60, Puzzle-Tabs) |
| `aktivitaets-plaque.scad` | Blanko-Scheibe (Ø60) für 60-mm-Rundaufkleber — keine Gravur |
| `action-stein.scad` | Szenario-Träger mit Kartenschlitz + M8-Gewichtsaussparung |
| `gate-tor.scad` | Gate-Tor mit 4 Rollen-Steckplätzen + Kartenschlitz |
| `gate-tor.scad` | Gate-Tor mit 4 Rollen-Standfeldern + Kartenschlitz |
| `sor-tile.scad` | SOR-Sonder-Tile (Gremium): Gate-Eingang, Chip/„Gremium"-Mitte, Figuren-Ring |
## Serienfertigung der Plättchen
## Serienfertigung der Scheiben
`aktivitaets-plaque.scad` enthält den Text als Variablen (`front_id`,
`front_name`, `back_text`). Für alle 38 Aktivitäten empfiehlt sich ein kleines
Skript, das die Werte aus den `service-lifecycle_*.yaml` liest und je Aktivität
ein STL erzeugt (z.B. via OpenSCAD-Kommandozeile `-D` Parameter-Override):
`aktivitaets-plaque.scad` ist **blanko** — alle **37 Scheiben sind identisch**
(einmal rendern, 37× drucken). Kein Text-Override, keine Serien-STLs mehr nötig.
```bash
openscad -o op_05.stl \
-D 'front_id="op_05"' \
-D 'front_name="Ueberwachen der Services"' \
-D 'back_text="..."' \
aktivitaets-plaque.scad
```
Die Beschriftung läuft über **60-mm-Rundaufkleber**: Ein kleines Skript liest die
`service-lifecycle_*.yaml` und erzeugt einen **Aufkleberbogen** (ID + Kurzbezeichnung,
Phasenfarbe) als PDF — analog zur Kartengenerierung. Vorteil: wiederverwendbar,
korrigierbar, mehrsprachig.
## Hinweise

View file

@ -2,7 +2,7 @@
// SLC-Workshop Tabletop · Einheiten: mm
/* [Fuss] */
foot_d = 49; // sitzt in Verankerung (Ø50)
foot_d = 59; // sitzt in Verankerung (Ø60)
foot_h = 5;
stand_ring = 70; // optionaler Standring fuer Kippstabilitaet
use_ring = true;

View file

@ -1,77 +1,98 @@
// Aktiv-Feld RACI-Stecklochleiste
// Aktiv-Feld RACI-Fläche (Figuren werden GESTELLT, nicht gesteckt)
// SLC-Workshop Tabletop · Einheiten: mm
// Steht NEBEN dem Action-Stein. Bei jeder Aktivitaet werden die beteiligten
// Rollen-Figuren nach RACI in die passende Zone gesteckt:
// R = Responsible · A = Accountable (genau 1) · C = Consulted · I = Informed
// Anpassen und mit OpenSCAD nach STL exportieren (F6 -> Export).
// Eine flache Platte mit 4 abgetrennten Bereichen R · A · C · I (gleich gross).
// R/C/I haben je 4 Standflaechen (2x2). A hat GENAU EIN zentrales Standfeld
// (goldene RACI-Regel: genau eine Rolle ist Accountable).
// Standflaechen sind nur flache Gravur-Markierungen (keine Loecher).
/* [Leiste] */
strip_w = 26; // Tiefe (zum Spieler)
strip_h = 6; // Dicke
corner_r = 3;
/* [Platte] */
plate_thick = 5; // Dicke der Flaeche
corner_r = 4;
plate_margin = 5; // Rand aussen
/* [Steckplaetze] */
pin_hole_d = 4.2; // Loch fuer Figuren-Pin (Pin Oe 4,0 + Spiel)
pin_hole_depth = 4;
pin_pitch = 8; // Mitte-zu-Mitte innerhalb einer Zone
zone_gap = 10; // Luecke zwischen den Zonen
end_margin = 8; // Rand links/rechts
socket_y = 5; // Lochreihe nach hinten versetzt (weg von der Beschriftung)
/* [Standflaechen] (flache Markierung, kein Loch) */
spot_d = 8; // Durchmesser
spot_depth = 0.5; // Gravurtiefe
spot_pitch = 9; // Mitte-zu-Mitte im Raster (R/C/I)
grid_cols = 2; // Raster fuer R/C/I: 2 x 2 = 4 Standflaechen
grid_rows = 2;
a_spot_d = 11; // A: EIN groesseres zentrales Standfeld (genau 1 Figur)
/* [Beschriftung] */
label_size = 7; // Buchstabengroesse
label_depth = 0.8; // Gravurtiefe
label_y = -8; // Position der Buchstaben (vorne, zum Spieler)
/* [Bereiche / Zonen] — [Label, cols, rows]; A = 1x1 (goldene RACI-Regel) */
zones = [["R", 2, 2], ["A", 1, 1], ["C", 2, 2], ["I", 2, 2]];
cell_pad = 6; // Rand um die Standflaechen im Feld
label_h = 9; // Platz fuer den Buchstaben unten im Feld
zone_gap = 6; // Abstand zwischen den Feldern
/* [Zonen] */
// [Label, Anzahl Steckplaetze] A bewusst nur 1 (genau eine Rolle accountable)
zones = [ ["R", 2], ["A", 1], ["C", 3], ["I", 3] ];
/* [Gravur] */
frame_w = 1.2; // Strichstaerke der Feld-Umrandung
frame_depth = 0.6;
label_size = 7;
label_depth = 0.8;
$fn = 48;
// --- Hilfsfunktionen -------------------------------------------------------
function zone_span(c) = (c - 1) * pin_pitch;
// --- abgeleitete Maße -------------------------------------------------------
spots_span_x = (grid_cols - 1) * spot_pitch;
spots_span_y = (grid_rows - 1) * spot_pitch;
cell_w = spots_span_x + 2 * cell_pad; // 21
cell_h = spots_span_y + 2 * cell_pad + label_h; // 30
plate_w = len(zones) * cell_w + (len(zones) - 1) * zone_gap + 2 * plate_margin;
plate_h = cell_h + 2 * plate_margin;
function sumspan(i = 0) =
i >= len(zones) ? 0 : zone_span(zones[i][1]) + sumspan(i + 1);
function zone_cx(i) =
-plate_w/2 + plate_margin + cell_w/2 + i * (cell_w + zone_gap);
function total_len() =
end_margin * 2 + zone_gap * (len(zones) - 1) + sumspan();
// linker Startversatz der Zone idx (Summe vorheriger Zonen + Luecken)
function zone_offset(idx, i = 0, acc = 0) =
i >= idx ? acc
: zone_offset(idx, i + 1, acc + zone_span(zones[i][1]) + zone_gap);
// --- Geometrie -------------------------------------------------------------
module rounded_rect(l, w, h, r) {
linear_extrude(h)
offset(r) offset(-r)
square([l, w], center = true);
// --- Geometrie --------------------------------------------------------------
module rrect(l, w, h, r) {
linear_extrude(h) offset(r) offset(-r) square([l, w], center = true);
}
module raci_strip() {
L = total_len();
module field_frame(cx) {
// eingravierte Umrandung -> grenzt den Bereich ab
translate([cx, 0, plate_thick - frame_depth])
linear_extrude(frame_depth + 0.1)
difference() {
square([cell_w, cell_h], center = true);
square([cell_w - 2*frame_w, cell_h - 2*frame_w], center = true);
}
}
module zone_marks(i) {
cx = zone_cx(i);
lab = zones[i][0];
nc = zones[i][1];
nr = zones[i][2];
if (lab == "A") {
// genau EIN zentrales Standfeld (goldene RACI-Regel)
translate([cx, label_h/2, plate_thick - spot_depth])
cylinder(d = a_spot_d, h = spot_depth + 0.1);
} else {
for (c = [0 : nc - 1])
for (r = [0 : nr - 1]) {
sx = cx + (c - (nc - 1)/2) * spot_pitch;
sy = label_h/2 + ((nr - 1)/2 - r) * spot_pitch;
translate([sx, sy, plate_thick - spot_depth])
cylinder(d = spot_d, h = spot_depth + 0.1);
}
}
// Buchstabe unten im Feld
translate([cx, -cell_h/2 + label_h/2, plate_thick - label_depth])
linear_extrude(label_depth + 0.1)
text(lab, size = label_size, halign = "center", valign = "center");
}
module aktiv_feld() {
difference() {
rounded_rect(L, strip_w, strip_h, corner_r);
for (idx = [0 : len(zones) - 1]) {
cnt = zones[idx][1];
sx = -L/2 + end_margin + zone_offset(idx);
// Steckplaetze der Zone
for (i = [0 : cnt - 1])
translate([sx + i * pin_pitch, socket_y, strip_h - pin_hole_depth])
cylinder(d = pin_hole_d, h = pin_hole_depth + 0.1);
// Zonen-Beschriftung (mittig unter den Loechern)
cx = sx + zone_span(cnt) / 2;
translate([cx, label_y, strip_h - label_depth])
linear_extrude(label_depth + 0.1)
text(zones[idx][0], size = label_size,
halign = "center", valign = "center");
rrect(plate_w, plate_h, plate_thick, corner_r);
for (i = [0 : len(zones) - 1]) {
field_frame(zone_cx(i));
zone_marks(i);
}
}
}
raci_strip();
aktiv_feld();
// Maße zur Info (Konsole): echo(plate_w, plate_h, plate_thick);
echo(plate_w = plate_w, plate_h = plate_h, plate_thick = plate_thick);

View file

@ -1,22 +1,18 @@
// Beidseitiges Aktivitaetsplaettchen (Rundscheibe fuer Verankerung)
// Aktivitaets-Scheibe BLANKO Rundscheibe fuer 60-mm-Rundaufkleber
// SLC-Workshop Tabletop · Einheiten: mm
// Text per Variable setzen; fuer Serie ueber Skript je Aktivitaet generieren.
// Keine Gravur mehr: ID + Kurzbezeichnung kommen als 60-mm-Rundaufkleber auf die
// plane Oberseite. Vorteil: wiederverwendbar (neu bekleben), mehrsprachig,
// keine Serien-STLs noetig alle 37 Scheiben sind identisch.
/* [Scheibe] */
disc_d = 49; // Durchmesser (Verankerung 50 - Passung)
disc_d = 60; // Durchmesser (Verankerung 60 - Passung); passt zum 60-mm-Aufkleber
disc_h = 4; // Dicke
chamfer = 1; // Fase als Griffhilfe
/* [Gravur] */
engrave_depth = 0.8;
front_id = "op_05";
front_name = "Ueberwachen der Services";
back_text = "Laufende Ueberwachung von Verfuegbarkeit, Leistung und Qualitaet des Service.";
font = "Liberation Sans:style=Bold";
chamfer = 1; // Fase als Griffhilfe (oben + unten). Aufkleber Ø58 sitzt plan,
// Ø60 ueberdeckt die obere Fase leicht.
$fn = 96;
module disc_body() {
// Scheibe mit beidseitiger Fase
// Scheibe mit beidseitiger Fase, plane Oberseite fuer den Aufkleber
hull() {
cylinder(d = disc_d - 2*chamfer, h = 0.01);
translate([0,0,chamfer]) cylinder(d = disc_d, h = disc_h - 2*chamfer);
@ -24,25 +20,4 @@ module disc_body() {
}
}
module front_engraving() {
translate([0, 6, disc_h - engrave_depth])
linear_extrude(engrave_depth + 0.1)
text(front_id, size=7, halign="center", font=font);
translate([0, -6, disc_h - engrave_depth])
linear_extrude(engrave_depth + 0.1)
text(front_name, size=3.2, halign="center", font=font);
}
module back_engraving() {
// gespiegelt, weil Rueckseite
mirror([1,0,0])
translate([0, 0, -0.1])
linear_extrude(engrave_depth + 0.1)
text(back_text, size=2.6, halign="center", font=font);
}
difference() {
disc_body();
front_engraving();
back_engraving();
}
disc_body();

View file

@ -8,7 +8,7 @@ tile_height = 6; // Dicke
corner_r = 3; // Eckenradius
/* [Verankerung / Sockel] */
socket_d = 50; // Durchmesser Vertiefung
socket_d = 60; // Durchmesser Vertiefung (nimmt Blanko-Scheibe Ø60 oder Action-Stein-Fuss auf)
socket_depth = 4; // Tiefe
fit_clear = 0.4; // Spielpassung

View file

@ -13,10 +13,10 @@ foot_w = 60;
foot_d = 30;
foot_h = 4;
/* [Rollen-Steckplaetze] */
peg_d = 8.2; // Loch fuer Figuren-Pin (Ø7,5 + Passung)
peg_count = 4;
peg_depth = 6;
/* [Rollen-Standfelder] (keine Loecher — Figuren werden gestellt) */
spot_d = 8; // Durchmesser der eingravierten Standflaeche
spot_count = 4; // 4 Pflicht-Figuren (SPM + SO + AL B&C + AL App)
spot_depth = 0.6; // Gravurtiefe (reine Markierung)
/* [Kartenschlitz oben] */
card_w = 65;
@ -44,13 +44,12 @@ module feet() {
cube([foot_w, foot_d, foot_h]);
}
module peg_holes() {
// Lochreihe entlang der Vorderkante der Fuesse
spacing = (opening_w + post_w) / (peg_count - 1);
for (i = [0 : peg_count - 1])
translate([-(opening_w + post_w)/2 + i*spacing, foot_d/2 - peg_d, foot_h])
rotate([180,0,0])
cylinder(d = peg_d, h = peg_depth);
module stand_spots() {
// Flache Standfeld-Markierungen entlang der Vorderkante der Fuesse
spacing = (opening_w + post_w) / (spot_count - 1);
for (i = [0 : spot_count - 1])
translate([-(opening_w + post_w)/2 + i*spacing, foot_d/2 - spot_d, foot_h - spot_depth])
cylinder(d = spot_d, h = spot_depth + 0.1);
}
module card_slot() {
@ -63,8 +62,8 @@ difference() {
translate([0,0,foot_h]) arch();
translate([0,0,foot_h]) card_slot();
}
// Fuesse inkl. Rollen-Steckplaetze
// Fuesse inkl. Rollen-Standfelder (flache Markierung)
difference() {
feet();
peg_holes();
stand_spots();
}

View file

@ -0,0 +1,94 @@
// SOR-Sonder-Tile (Gremium) Service Operations Runde
// SLC-Workshop Tabletop · Einheiten: mm
// Die SOR ist kein Einzel-Figur, sondern ein Gremium -> eigenes Tile:
// - Gate-Tor wird am Eingang (Vorderkante) installiert -> Eingang ins Gremium
// - Mitte: Platz fuer den Entscheidungs-Chip (Ø30); alternativ "Gremium" graviert
// - rundherum: Standfelder fuer die teilnehmenden Figuren (gestellt, kein Pin)
/* [Tile] */
tile_size = 120; // etwas groesser als Standardtile (Platz fuer Ring + Gate)
tile_height = 6;
corner_r = 4;
/* [Mitte: Chip oder Gravur] */
use_chip = true; // true: Chip-Mulde Ø30 · false: "Gremium" eingraviert
chip_d = 30;
chip_recess_d = 0.6; // Spielpassung
chip_depth = 1.5; // Mulden-Tiefe fuer den Chip
gremium_text = "Gremium";
gremium_size = 12;
gremium_depth = 0.8;
/* [Ring aus Standfeldern] */
ring_count = 6; // Plaetze fuer Gremiums-Figuren rund um die Mitte
ring_d = 84; // Kreisdurchmesser, auf dem die Standfelder liegen
spot_d = 8; // Standfeld-Durchmesser
spot_depth = 0.5; // Gravurtiefe (Markierung, kein Loch)
/* [Gate-Eingang an der Vorderkante] */
gate_seat_w = 116; // Breite der Aufsetzflaeche fuer das Gate (Fuesse 2x60)
gate_seat_d = 30; // Tiefe (= Gate-Fusstiefe)
gate_seat_depth = 1.5; // flache Mulde, in der die Gate-Fuesse stehen
gate_label = "SOR";
gate_label_size = 7;
gate_label_depth= 0.8;
/* [Puzzle-Tab am Eingang -> Anschluss an die Bahn] */
tab_w = 12; tab_d = 6;
$fn = 96;
module rounded_square(s, r, h) {
linear_extrude(h) offset(r) offset(-r) square([s, s], center=true);
}
module ring_spots() {
for (i = [0 : ring_count - 1]) {
a = 360/ring_count * i;
x = (ring_d/2) * cos(a);
y = (ring_d/2) * sin(a);
translate([x, y, tile_height - spot_depth])
cylinder(d = spot_d, h = spot_depth + 0.1);
}
}
module center_feature() {
if (use_chip) {
// Mulde fuer den Entscheidungs-Chip
translate([0, 0, tile_height - chip_depth])
cylinder(d = chip_d + chip_recess_d, h = chip_depth + 0.1);
} else {
// "Gremium" eingraviert
translate([0, 0, tile_height - gremium_depth])
linear_extrude(gremium_depth + 0.1)
text(gremium_text, size = gremium_size,
halign = "center", valign = "center");
}
}
module gate_entrance() {
// flache Mulde an der Vorderkante (Suedkante), in die die Gate-Fuesse gestellt werden
translate([0, -tile_size/2 + gate_seat_d/2, tile_height - gate_seat_depth])
cube([gate_seat_w, gate_seat_d, gate_seat_depth + 0.1], center = true);
// Beschriftung "SOR" an der Vorderkante
translate([0, -tile_size/2 + gate_seat_d + gate_label_size, tile_height - gate_label_depth])
linear_extrude(gate_label_depth + 0.1)
text(gate_label, size = gate_label_size, halign = "center", valign = "center");
}
module sor_tile() {
difference() {
union() {
rounded_square(tile_size, corner_r, tile_height);
// Puzzle-Tab am Eingang (Suedkante) zum Anschluss an die Bahn
translate([0, -tile_size/2 - tab_d, 0])
cube([tab_w, tab_d*2, tile_height]);
}
center_feature();
ring_spots();
gate_entrance();
}
}
sor_tile();
echo(tile_size = tile_size, ring_count = ring_count, use_chip = use_chip);

View file

@ -21,25 +21,26 @@ sauberste Geometrie; Beschriftungen bewusst sparsam halten.
Clean technical product render, neutral light-grey studio background, exploded
view of a set of 3D-printed tabletop game components in matte PLA. Show: a square
modular base tile (100x100mm) with puzzle-tab edges and a round centered recess;
a round single-sided insert disc that fits the recess (top face with a short
engraved code, plain back); a cylindrical game token
a round blank insert disc (~60mm) that fits the recess, its flat top carrying a
round printed label sticker; a cylindrical game token
with a wide weighted base and a vertical card slot on top; a small upright
arch-shaped "gate" with peg holes at its base; a meeple figure with a round pin
foot. Parts floating slightly apart to show how they connect. Soft shadows,
arch-shaped "gate" with marked stand spots at its base; a meeple figure with a
flat round base. Parts floating slightly apart to show how they relate. Soft shadows,
isometric angle, high detail, dimension-focused, minimal text.
```
## Prompt B — Aktivitätsplättchen: einseitig & entnehmbar
```
Close-up technical render of round single-sided game discs in matte colored PLA,
each about 49mm diameter and 4mm thick with a chamfered edge for easy gripping.
Three discs shown: one sitting flush inside a square tile's round recess (top face
showing a short engraved activity code), one lifted out by fingers, and one lying
beside the tile with a plain blank back. The empty recess of one tile is clearly
visible (this is where the upright action token will stand). Emphasis on the
removable fit and the freed socket. Neutral grey background, soft studio light,
shallow depth of field, premium board-game component photography.
Close-up technical render of round blank game discs in matte PLA, each about 60mm
diameter and 4mm thick with a chamfered edge for easy gripping, the flat top face
carrying a round printed label sticker with a short activity code. Three discs
shown: one sitting flush inside a square tile's round recess, one lifted out by
fingers, and one blank disc with the round sticker beside it. The empty recess of
one tile is clearly visible (this is where the upright action token will stand).
Emphasis on the removable fit and the re-stickerable blank top. Neutral grey
background, soft studio light, shallow depth of field, premium board-game
component photography.
```
## Prompt C — Action-Stein im Detail
@ -55,16 +56,16 @@ lighting, isometric, emphasis on proportions and the card slot fit, no decorativ
text.
```
## Prompt D — Gate-Tor mit Rollen-Steckplätzen
## Prompt D — Gate-Tor mit Rollen-Standfeldern
```
Technical product render of a small upright arch-shaped game piece in matte PLA,
like a doorway about 100mm tall with 90mm clear opening, 8mm thick. Two flat feet
at the base spanning two tiles of a straight track. A row of four small round holes
along the front base edge for inserting pin-footed figures. A thin horizontal slot
across the top of the arch holding a small reference card. A round-pin meeple figure
is inserted in one of the base holes. Neutral background, isometric, soft shadows,
focus on the peg-hole mechanism, minimal text.
at the base spanning two tiles of a straight track. A row of four small shallow
engraved circular stand spots along the front base edge where figures are placed.
A thin horizontal slot across the top of the arch holding a small reference card.
A flat-based meeple figure stands on one of the marked spots. Neutral background,
isometric, soft shadows, focus on the stand-spot markings, minimal text.
```
## Prompt E — Tile-Steckmechanik (gerade Bahn)