Compare commits

..

2 commits

Author SHA1 Message Date
e8a71d7415 Aktiv-Feld: quadratisches 2x2-RACI-Raster (R|A / C|I), 120x120
- Layout von 4-in-Reihe (236x74) auf 2x2-Matrix umgestellt: R|A oben, C|I unten.
- Platte exakt 120x120: Buchstabe sitzt in der Mittenluecke statt im Extra-Streifen.
- Alle Standfelder gleich gross Ø22 (wie Puck-Mulden) — gleiche Ø20-Figuren;
  A unterscheidet sich nur durch die Anzahl (genau 1), nicht durch die Groesse.
- materialliste, README_3d-druck, bauteile-masse.svg nachgezogen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-04 19:10:46 +02:00
efdd0e84c0 Tile-Redesign: runder Puck statt eckigem Tile + Scheibe
- Neues puck.scad: Ø100, Rand 5mm + Einbuchtung, 7 Figurenmulden Ø22,
  Etikettenmulde Ø37,5 (Rundetikett Ø37). EIN Modell fuer die ganze Bahn
  (Station=Phasenfarbe, Gate=rot; Unterschied nur Filament + Etikett).
- Entfernt: aktivitaets-tile, aktivitaets-plaque, gate-tile, gate-tor.
  Gate-Karte gestrichen (Logik via App + Entscheidungs-Chips).
- Materialliste + READMEs (3d-druck, openscad) auf Puck-System umgestellt.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-04 18:56:22 +02:00
10 changed files with 272 additions and 417 deletions

View file

@ -18,11 +18,21 @@ Verankerung und Steckmechanik.
## Grundsätzliche Design-Entscheidungen ## Grundsätzliche Design-Entscheidungen
- **Modulares Tile-System** statt eines großen Boards — jedes Teil passt auf ein übliches Druckbett (≥ 200 × 200 mm). - **Ein Puck pro Station** (Ø 100 × 6 mm rund) statt eckigem Tile + separater Scheibe.
- **Lineare Bahn** (kein Ring) — Tiles werden zu einer durchgehenden Linie aneinandergereiht, bei Platzmangel mäandrierend. Der Puck vereint Stations-Markierung, Figuren-Standorte (7 Mulden) und Beschriftung
- **Eine standardisierte Verankerung** (Ø 60 mm Rundsockel) für *alle* Blanko-Scheiben und für den Action-Stein → Teile sind austauschbar. in **einem** Teil → halb so viele Druckteile, keine Scheibe-Toleranz.
- **Steckverbindungen** (Puzzle-Tabs) zwischen Tiles, damit die Bahn stabil zusammenhält und flexibel gelegt werden kann. - **Ein Modell für die ganze Bahn:** Station- und Gate-Puck sind dasselbe STL —
- **Materialempfehlung:** PLA für Tiles/Plättchen/Gates (formstabil, günstig), PLA + Gewichtseinlage (M8-Mutter) für den Action-Stein (Standfestigkeit mit aufrechter Karte). Unterschied nur Filamentfarbe (Phase vs. Rot) + aufgeklebtes Etikett. Einmal slicen,
40× drucken (37 Phasen + 3 Gate).
- **Lineare Bahn** (kein Ring) — Pucks werden zu einer Linie ausgelegt, bei Platzmangel
mäandrierend; als optische Linie dient eine flache Unterlage/Matte ([`board-layout.svg`](board-layout.svg)).
- **Beschriftung via Rundetikett Ø 37** in der Mittenmulde (Puck-Rand bleibt sichtbar) —
wiederverwendbar, korrigierbar, mehrsprachig; Pucks bleiben blanko. (Ø 37 ist kein
Avery-Standard — Bezugsquelle prüfen.)
- **Figuren werden gestellt/reingestellt** (Sockel Ø 20, kein Pin): am Puck in Mulden
Ø 22, am Aktiv-Feld auf flachen Standfeldern Ø 22 (gleiche Größe).
- **Materialempfehlung:** PLA für Pucks/Aktiv-Feld/Chips (formstabil, günstig), PLA +
Gewichtseinlage (M8-Mutter) für den Action-Stein (Standfestigkeit mit aufrechter Karte).
## Drucker-Annahmen ## Drucker-Annahmen

View file

@ -129,7 +129,7 @@
<text x="31" y="66" class="zone">R</text> <text x="31" y="66" class="zone">R</text>
<!-- Feld A (genau 1) --> <!-- Feld A (genau 1) -->
<rect x="64" y="10" width="42" height="60" rx="3" fill="#f7f9fb" stroke="#c0392b" stroke-width="1.6"/> <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"/> <circle cx="85" cy="33" r="8" class="spot"/>
<text x="85" y="66" class="zone">A</text> <text x="85" y="66" class="zone">A</text>
<!-- Feld C --> <!-- Feld C -->
<rect x="118" y="10" width="42" height="60" rx="3" fill="#f7f9fb" stroke="#9fb2c6"/> <rect x="118" y="10" width="42" height="60" rx="3" fill="#f7f9fb" stroke="#9fb2c6"/>
@ -144,7 +144,7 @@
<line x1="0" y1="92" x2="224" y2="92" class="dim"/> <line x1="0" y1="92" x2="224" y2="92" class="dim"/>
<text x="100" y="106" class="dimt">~236</text> <text x="100" y="106" class="dimt">~236</text>
<text x="0" y="128" class="lbl">74 × 6 mm · R/C/I je 4 (2×2) · A = genau 1 (schematisch)</text> <text x="0" y="128" class="lbl">74 × 6 mm · R/C/I je 4 (2×2) · A = genau 1 (schematisch)</text>
<text x="0" y="144" class="lbl">Ø18 (A Ø22) · Pitch 24 (Sockel Ø20) · keine Löcher</text> <text x="0" y="144" class="lbl">Ø22 (alle gleich, wie Puck) · Pitch 24 (Sockel Ø20) · keine Löcher</text>
</g> </g>
<!-- ============ ROLLEN-FIGUR (side) ============ --> <!-- ============ ROLLEN-FIGUR (side) ============ -->

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 8.9 KiB

Before After
Before After

View file

@ -1,196 +1,162 @@
# Materialliste — zu druckende Elemente # Materialliste — zu druckende Elemente
Stand: 2026-05-27 · Maße in mm · Mengen für **ein** Workshop-Set. Stand: 2026-06-04 · Maße in mm · Mengen für **ein** Workshop-Set.
> **Designwechsel ggü. v0.6:** Die eckigen Tiles (100×100) + separaten Ø60-Scheiben
> + eckigen Gate-Tiles + Gate-Tore sind **ersetzt durch einen runden Ø100-Puck**.
> Ein Puck markiert die Station, nimmt die beteiligten Figuren auf (7 Mulden) und
> trägt die Beschriftung als **Avery-Rundetikett Ø40** in der Mitte. Station- und
> Gate-Puck sind **dasselbe Druckteil** (Unterschied: Filamentfarbe + Etikett).
## Standard-Schnittstelle (für alle Teile gültig) ## Standard-Schnittstelle (für alle Teile gültig)
- **Verankerung (Sockel):** zylindrische Vertiefung **Ø 60 mm, Tiefe 4 mm**, mit - **Station = Puck:** runde Scheibe **Ø 100 × 6 mm**, 5 mm Rand, leichte Einbuchtung
0,4 mm Spielpassung. Sowohl die Blanko-Scheibe (Ø 60) als auch der (Spielfläche Ø 90). Keine Verankerung Ø60, keine Steckverbindung mehr.
Action-Stein-Fuß (Ø 59) passen hinein. - **Figuren-Platzierung:** Figuren werden **gestellt/reingestellt** (flacher Standfuß
- **Tile-Steckverbindung:** Puzzle-Tab **12 mm breit, 6 mm tief**, mittig je Kante. **Ø 20 mm**, kein Pin). Am **Puck** in **Mulden Ø 22 × 1,5 mm** (reinstellbar), am
- **Figuren-Platzierung:** Figuren werden **gestellt, nicht gesteckt** (flacher **Aktiv-Feld** auf flachen **Standfeldern Ø 22** (wie Puck-Mulden, Gravur ~0,6 mm).
Standfuß **Ø 20 mm**, kein Pin). Standorte sind als **flache Standfelder** - **Beschriftung:** **Rundetikett Ø 37** in der Mittenmulde Ø 37,5. Keine Gravur —
(Ø 18 mm, Gravur ~0,6 mm) am **Aktiv-Feld** und an den **Gate-Toren** markiert — ID/Farbe trägt das Etikett. (Ø 37 ist kein Avery-Standard — Avery rund = 30/40;
keine Löcher. Bezugsquelle vor Kauf prüfen, ggf. anderer Hersteller oder Print-&-Cut.)
--- ---
## 1. Phasen-Basistiles (lineare Bahn) ## 1. Station-Puck (lineare Bahn)
| Merkmal | Wert | | Merkmal | Wert |
|---------|------| |---------|------|
| Grundfläche | 100 × 100 × 6 mm | | Grundkörper | **Ø 100 × 6 mm**, rund, obere Außenkante 1 mm gefast |
| Verankerung | zentriert, Ø 60 × 4 mm | | Rand | **5 mm** breit, bleibt auf voller Höhe |
| Kanten | Puzzle-Tabs (Tab/Slot abwechselnd) | | Einbuchtung | Spielfläche Ø 90, **1,2 mm** tief |
| Figurenplätze | **7 Mulden** Ø 22 × 1,5 mm (Einführ-Fase), auf Kreis r 33 (Ø 66) |
| Etikettenmulde | mittig Ø 37,5 × 0,3 mm (Rundetikett Ø37; Puck-Rand bleibt sichtbar) |
| Farbe | je Phase (blau/orange/grün/teal/lila) | | Farbe | je Phase (blau/orange/grün/teal/lila) |
| Menge | **37** (eine je Aktivität; die 3 Gate-Positionen sind **Gate-Tiles**, s. §4b) | | Menge | **37** (eine je Aktivität) |
| Material | PLA, Infill 15 % | | Material | PLA, Infill 15 % |
| Druckzeit | ~1,5 h/Tile | | Druckzeit | ~1,3 h/Puck |
| Datei | `openscad/puck.scad` |
> Tiles bleiben bewusst **clean** (nur Verankerung + Tabs). Die Rollen-Platzierung
> übernimmt das mobile **Aktiv-Feld** (Abschnitt 4a), das neben dem Action-Stein steht.
**Verteilung nach Phasenfarbe** (= Aktivitäten je Phase): **Verteilung nach Phasenfarbe** (= Aktivitäten je Phase):
| Phase | Farbe | Aktivitäten | Tiles | | Phase | Farbe | Aktivitäten | Pucks |
|-------|-------|-------------|:---:| |-------|-------|-------------|:---:|
| Design | blau | ds_01ds_04 | 4 | | Design | blau | ds_01ds_04 | 4 |
| Transition | orange | tr_02tr_08, tr_10, tr_11 | 9 | | Transition | orange | tr_02tr_08, tr_10, tr_11 | 9 |
| Operation | grün | op_01op_07 | 7 | | Operation | grün | op_01op_07 | 7 |
| Support | teal | sp_01sp_11 | 11 | | Support | teal | sp_01sp_11 | 11 |
| Review | lila | rv_01rv_06 | 6 | | Review | lila | rv_01rv_06 | 6 |
| | | **Σ Phasen-Basistile** | **37** | | | | **Σ Station-Pucks** | **37** |
Die 3 Gates (tr_01, tr_09, tr_12) sind **Gate-Tiles** (eigene Farbe, §4b) → 3 Stück. Die 3 Gates (tr_01, tr_09, tr_12) sind **Gate-Pucks** (gleiches Teil, rot, §2) → 3 Stück.
**Bahn gesamt = 37 + 3 = 40 Positionen.** **Bahn gesamt = 37 + 3 = 40 Positionen.**
Alle Tiles sind **gerade** und werden zu einer **linearen Bahn** aneinandergereiht Die Pucks werden zu einer **linearen Bahn** ausgelegt (kein Ring), bei Platzmangel
(kein Ring). Bei Platzmangel kann die Bahn mäandrierend (Zeilenumbruch) gelegt mäandrierend. Als optische Linie + Halt empfiehlt sich eine **flache Unterlage/Matte**
werden — die Puzzle-Tabs erlauben auch 90°-Ecken. (Layout liegt als [`board-layout.svg`](board-layout.svg) vor) — die Pucks markieren
darauf die Stationen.
## 2. Aktivitäts-Scheibe (blanko + Aufkleber) ## 2. Gate-Puck (Gate-Position)
**Identisches Druckteil wie der Station-Puck** — Unterschied nur:
| Merkmal | Wert | | Merkmal | Wert |
|---------|------| |---------|------|
| Form | Rundscheibe **Ø 60 × 4 mm**, plane Oberseite (passt in Verankerung Ø 60) | | Geometrie | wie Station-Puck (`openscad/puck.scad`) |
| Beschriftung | **60-mm-Rundaufkleber** mit ID + Kurzbezeichnung (z. B. `op_05 — Überwachen der Services`), plan aufgeklebt. **Keine Gravur.** Erklärung liegt in der App | | Farbe | **Rot** (klar von den 5 Phasenfarben abgesetzt) |
| Griff | umlaufende Fase 1 mm zum leichten Herausnehmen | | Etikett | **G1 / G2 / G3** + Entscheidungs-Icon (statt Aktivitäts-ID) |
| Menge | **37** (alle identisch & blanko; an den 3 Gate-Positionen steht stattdessen ein Gate-Tor) | | Figurenplätze | dieselben 7 Mulden (deckt SOR-Gremium ~5 + Puffer ab) |
| Material | PLA, einheitlich blanko (Phasenfarbe & Text trägt der Aufkleber) | | Menge | **3** (Gate 1, 2, 3) |
| Material | PLA, Infill 15 %, rotes Filament |
> **Vorteil Aufkleber:** Scheiben sind identisch und **wiederverwendbar** — neu > Es gibt **kein Gate-Tor und keine Gate-Karte** mehr. Gate-Logik (Keeper,
> bekleben für andere Aktivitäten, Korrekturen oder Mehrsprachigkeit; keine > geforderte Artefakte, Auflösung) läuft über die **App**; die Entscheidung fällt
> Serien-STLs/Gravur nötig. Aufkleber Ø 58 sitzt plan, Ø 60 überdeckt die obere > über die **Entscheidungs-Chips** (§5). Das „Tor-Gefühl" entsteht durch Farbe +
> Fase leicht. > Icon + das Stellen der Pflicht-Figuren + den Chip-Moment.
> 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) ## 3. Action-Stein (Szenario-Träger)
| Merkmal | Wert | | Merkmal | Wert |
|---------|------| |---------|------|
| Fuß | Ø 59 × 5 mm (sitzt in Verankerung Ø 60) | | Fuß | Ø 59 × 5 mm (steht **neben** dem aktiven Puck — keine Verankerung mehr nötig) |
| Körper | Zylinder Ø 35, Höhe 30 mm | | Körper | Zylinder Ø 35, Höhe 30 mm |
| Kartenschlitz | Breite 64 mm, Tiefe 4 mm, Höhe 25 mm (für Action Card **60 mm** breit, zum Draufstecken) | | Kartenschlitz | Breite 64 mm, Tiefe 4 mm, Höhe 25 mm (für Action Card **60 mm** breit) |
| Gewichtseinlage | Aussparung für M8-Mutter im Fuß (Kippschutz) | | Gewichtseinlage | Aussparung für M8-Mutter im Fuß (Kippschutz) |
| Stabilitäts-Option | zusätzlicher Standring Ø 70 mm, falls Karte zu kopflastig | | Stabilitäts-Option | zusätzlicher Standring Ø 70 mm, falls Karte zu kopflastig |
| Menge | **12** | | Menge | **12** |
| Material | PLA, Infill ≥ 40 % + Metalleinlage | | Material | PLA, Infill ≥ 40 % + Metalleinlage |
## 4. Gate-Tore > Der Stein-Fuß bleibt **außerhalb** des Pucks (markiert „wir sind hier" durch
> Danebenstellen). Da er in keine Mulde mehr passen muss, ist der Fuß-Ø frei wählbar.
## 4. Aktiv-Feld (RACI-Fläche)
Bleibt **unverändert** als separates, mobiles Board neben dem Action-Stein. Hier
werden die beteiligten Rollen je Aktivität nach **RACI** gestellt — die 7 Mulden am
Puck zeigen „wer ist beteiligt", das Aktiv-Feld zeigt „in welcher Verantwortung".
| Merkmal | Wert | | Merkmal | Wert |
|---------|------| |---------|------|
| Form | Bogen/Tor, lichte Weite **68 mm**, Gesamtbreite **92 mm**, Höhe 100 mm + 14 mm Querbalken, Materialstärke 8 mm | | Grundkörper | **120 × 120 × 6 mm**, Ecken r5 (quadratisches 2×2-Raster) |
| Stecksockel | **2 Zapfen** (Ø 10 × 5 mm, Abstand **80 mm** = Pfostenmitten) → stecken in die **Gate-Tile-Löcher**. Keine eigenen Füße — das Gate-Tile ist der Standfuß | | Bereiche | **2×2-Matrix:** oben **R \| A**, unten **C \| I** (eingravierte Umrandung), 4 gleich große Felder |
| Kartenschlitz | oben quer, Breite 65 mm, Tiefe 3 mm (Gate-Beschreibungskarte) | | Standfelder | R / C / I: je 4 (2×2) · A: genau 1 = **13**; alle Markierung Ø 22 (wie Puck), Pitch 24 |
| Gravur | **keine feste** — Gate-Nr / Keeper / Pfade trägt die eingesteckte Gate-Karte | | Gravur | Feld-Umrandung 0,6 mm + Zonen-Buchstabe R / A / C / I, Tiefe 0,8 mm |
| Menge | **3** |
| Material | PLA, Infill 20 % |
> Die Figuren stehen auf dem **Gate-Tile** (§4b), nicht am Tor. Hinweis: hoher Bogen
> auf 2 Zapfen in 6-mm-Tile → Standfestigkeit am Funktionsmuster prüfen; bei Bedarf
> auf flache Steck-Laschen umstellen.
## 4a. Aktiv-Feld (RACI-Fläche)
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 | **~236 × 74 × 6 mm**, Ecken r5 |
| 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 Ø 22) = **13 gesamt**; flache Markierung Ø 18 mm (A Ø 22), Gravur ~0,6 mm, Pitch 24 mm (für Sockel Ø 20, 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) | | Menge | **1** (ggf. 2 bei parallelen Tischen) |
| Material | PLA, Infill 20 % | | Material | PLA, Infill 20 % |
| Datei | `openscad/aktiv-feld.scad` |
> **Goldene RACI-Regel: A = genau 1.** Das A-Feld hat bewusst **nur ein** (größeres, > **Goldene RACI-Regel: A = genau 1.** Je Aktivität ist genau eine Rolle *Accountable*.
> 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. Gate-Tile (Gate-Position) ## 5. Entscheidungs-Chips
Einheitliches Tile für **alle 3 Gates** — gleiche Außenmaße wie ein Aktivitäts-Tile,
aber **eigene Farbe**. Das Gate-Tor steckt ein; die Figuren stehen auf dem Tile.
| Merkmal | Wert |
|---------|------|
| Grundkörper | **100 × 100 × 6 mm**, Ecken r3, Puzzle-Tabs (wie Aktivitäts-Tile) |
| Farbe | **eigene Gate-Farbe** (z. B. Rot/Dunkelgrau) — klar von den Phasenfarben unterscheidbar |
| Standfelder | **8 generische** flache Markierungen (Ø 18, Gravur ~0,6) im Ring (Ø 62) — für die Figuren (Sockel Ø 20) |
| Gate-Stecksockel | **2 Löcher** Ø 10,4 × 5 mm, Abstand **80 mm**, nahe der Eingangskante (für die Gate-Tor-Zapfen) |
| Gravur | **nur Entscheidungs-Icon** mittig (3 Pfeile + Fragezeichen) — **keine Beschriftung/Text** |
| Menge | **3** (Gate 1, 2, 3 — Modell identisch) |
| Material | PLA, Infill 20 % |
| Datei | `openscad/gate-tile.scad` |
> Besetzung (über App/Gate-Karte, Tile selbst neutral): **Gate 1 & 3 = SOR-Gremium**
> (SPM + OP + SSM + SHM + SO ≈ 5 Figuren), **Gate 2 = SO allein** (1). 8 Standfelder
> decken das mit Puffer ab.
## 5. Rollen-Figuren
| Merkmal | Wert |
|---------|------|
| Form | Figur **Höhe ~50 mm**, **flacher Standfuß (kein Pin)** — wird auf die Standfelder gestellt |
| Standfläche | rund **Ø 20 mm** (< Pitch 24 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. **Exakte Töne frei — nur Unterscheidbarkeit zählt** (gilt für alle Elemente) |
| Team-Sonderfiguren | **mehrere Mini-Figuren auf einem Sockel** (Betrieb, Support, Projekt) — klar als Team erkennbar |
| Menge | **je Figur 2×****32** Einzelrollen (16 × 2) + **6** Team-Figuren (3 × 2) = **38**. (1× fürs RACI-Board, 1× für Gates/Bahn.) SOR ist ein Gremium, keine Figur. Details `../02_Spielfiguren/` |
| Material | PLA, eingefärbt je Kategorie |
## 6. Entscheidungs-Chips (optional 3D statt Karte)
| Merkmal | Wert | | Merkmal | Wert |
|---------|------| |---------|------|
| Form | Münze Ø 30 × 4 mm, Symbolgravur | | Form | Münze Ø 30 × 4 mm, Symbolgravur |
| Varianten | Go / Go mit Auflagen / Zurück / Ablehnung | | Varianten | Go / Go mit Auflagen / Zurück / Ablehnung |
| Menge | je 3 | | Menge | je 3 (= 12) |
| Material | PLA | | Material | PLA |
## 6. Rollen-Figuren
| Merkmal | Wert |
|---------|------|
| Form | Figur **Höhe ~50 mm**, **flacher Standfuß (kein Pin)** |
| Standfläche | rund **Ø 20 mm** (passt in Puck-Mulde Ø 22 und Aktiv-Feld-Standfeld Ø 22) |
| 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) |
| Menge | je Figur 2×**32** Einzelrollen (16 × 2) + **6** Team-Figuren (3 × 2) = **38** |
| Material | PLA, eingefärbt je Kategorie |
--- ---
## Stückliste (Kurzfassung) ## Stückliste (Kurzfassung)
| Teil | Menge | Datei | | Teil | Menge | Datei |
|------|------:|-------| |------|------:|-------|
| Phasen-Basistile | 37 | `openscad/aktivitaets-tile.scad` | | Station-Puck | 37 | `openscad/puck.scad` (Phasenfarbe) |
| Gate-Tile | 3 | `openscad/gate-tile.scad` | | Gate-Puck | 3 | `openscad/puck.scad` (rot) |
| Aktivitäts-Scheibe (blanko) | 37 | `openscad/aktivitaets-plaque.scad` + 60-mm-Aufkleber |
| Action-Stein | 2 | `openscad/action-stein.scad` | | Action-Stein | 2 | `openscad/action-stein.scad` |
| Aktiv-Feld (RACI-Fläche) | 1 | `openscad/aktiv-feld.scad` | | Aktiv-Feld (RACI-Fläche) | 1 | `openscad/aktiv-feld.scad` |
| Gate-Tor | 3 | `openscad/gate-tor.scad` | | Rollen-Figuren (Einzel) | 32 | 16 Rollen × 2 |
| Rollen-Figuren (Einzel) | 32 | 16 Rollen × 2 (RACI-Board + Bahn/Gates) |
| Team-Sonderfiguren | 6 | 3 Teams × 2 | | Team-Sonderfiguren | 6 | 3 Teams × 2 |
| Entscheidungs-Chips | 12 | (einfache Münze + Gravur) | | Entscheidungs-Chips | 12 | (einfache Münze + Gravur) |
| Rundetiketten Ø37 | 40 | via Generator aus YAML (ID + Phasenfarbe); ablösbar bevorzugt |
## Kritische Maße & Passungen (bitte prüfen) ## Kritische Maße & Passungen (bitte prüfen)
Diese Maße sind aktuell (v0.6) und weichen vom **ersten Entwurf** ab — bitte die - **Puck = einziges Bahn-Teil** (Ø 100 × 6). Station vs. Gate nur über Filamentfarbe
neuesten OpenSCAD-Modelle verwenden, nicht ältere: + Etikett — **ein STL, 40× drucken** (37 Phasen + 3 rot).
- **Figuren-Mulde Ø 22, Tiefe 1,5** für Sockel **Ø 20** (reinstellbar, Fase als
- **Verankerung im Tile = Ø 60** (früher Ø 50!). Sie nimmt **beides** auf: die Einführhilfe). 7 Mulden auf Kreis r 33.
**Blanko-Scheibe Ø 60** und den **Action-Stein-Fuß Ø 59**. Mit Ø-50-Tiles passt - **Etikettenmulde Ø 37,5 × 0,3** — Rundetikett Ø37 (Puck-Rand bleibt sichtbar,
nichts → unbedingt die aktuelle `aktivitaets-tile.scad` nutzen. ~3,3 mm Restwand zu den Figurenmulden). Maximal möglich wäre Ø40.
- **Figuren: Sockel Ø 20, Höhe ~50 mm, KEIN Pin** (Figuren werden gestellt). - **Keine** Verankerung Ø60, **keine** Puzzle-Tabs, **kein** Gate-Tor, **keine**
- **Standfelder** (Aktiv-Feld, Gate-Tile) sind **flache Gravur-Markierungen Gate-Karte mehr.
Ø 18** (kein Loch); Aktiv-Feld-Raster **Pitch 24**, A-Feld einzeln Ø 22; - **Action-Stein-Kartenschlitz B 64** (für 60-mm-Karte).
Gate-Tile **8 Standfelder** im Ring (Ø 62).
- **Gate ↔ Gate-Tile Steckung:** Gate-Tor (Gesamtbreite **92**) hat **2 Zapfen Ø 10**,
Gate-Tile **2 Löcher Ø 10,4**, Abstand **80 mm** (Pfostenmitten). Einzige echten
„Löcher" im Set.
- **Action-Stein-Kartenschlitz B 64** (für 60-mm-Karte); **Gate-Kartenschlitz B 65**.
- **Bahn = 40 Positionen:** 37 Phasen-Basistile + 3 Gate-Tiles (Gate 1/2/3); Gate-Tore 3.
## Hinweise für den Producer ## Hinweise für den Producer
- Toleranzen Verankerung/Scheibe und Gate-Zapfen/Loch an **einem Probedruck** kalibrieren (Drucker-spezifisch). - Toleranzen Sockel↔Puck-Mulde und Etikett↔Mulde an **einem Probedruck** kalibrieren.
- Gravurtiefe 0,61,0 mm; Aktivitäts-Scheiben sind **blanko** (Text/Farbe via 60-mm-Aufkleber). - Gravurtiefe (nur noch Aktiv-Feld, Chips) 0,61,0 mm; Pucks sind **blanko**
- Farbtrennung über Filamentwechsel; **exakte Töne frei — nur klar unterscheidbar** (Phasen 5 Farben, Figuren-Kategorien 5 + Teams grün). (ID/Farbe via Avery-Etikett Ø40).
- Farbtrennung über Filamentwechsel; **exakte Töne frei — nur klar unterscheidbar**
(Phasen 5 Farben, Gate rot, Figuren-Kategorien 5 + Teams grün).

View file

@ -6,24 +6,49 @@ Parametrische Quellmodelle der Schlüsselteile. In [OpenSCAD](https://openscad.o
| Datei | Bauteil | | Datei | Bauteil |
|-------|---------| |-------|---------|
| `aktivitaets-tile.scad` | Phasen-Basistile (100×100, Verankerung Ø60, Puzzle-Tabs) | | `puck.scad` | **Station-/Gate-Puck** (Ø100, Rand + Einbuchtung, 7 Figurenmulden Ø22, Etikettenmulde Ø37,5) |
| `aktivitaets-plaque.scad` | Blanko-Scheibe (Ø60) für 60-mm-Rundaufkleber — keine Gravur | | `action-stein.scad` | Szenario-Träger mit Kartenschlitz + M8-Gewichtsaussparung (Fuß bleibt **außerhalb** des Pucks) |
| `action-stein.scad` | Szenario-Träger mit Kartenschlitz + M8-Gewichtsaussparung | | `aktiv-feld.scad` | RACI-Fläche (R · A · C · I) — bleibt als separates mobiles Board |
| `gate-tor.scad` | Gate-Tor (Bogen) mit Kartenschlitz + 2 Stecksockel-Zapfen |
| `gate-tile.scad` | Gate-Tile (100×100, eigene Farbe): 8 Standfelder, Gate-Stecksockel, Entscheidungs-Icon |
## Serienfertigung der Scheiben ## Ein Puck für die ganze Bahn
`aktivitaets-plaque.scad` ist **blanko** — alle **37 Scheiben sind identisch** `puck.scad` ist **das einzige Bahn-Teil**. Station- und Gate-Puck sind **geometrisch
(einmal rendern, 37× drucken). Kein Text-Override, keine Serien-STLs mehr nötig. identisch** — der Unterschied ist nur:
Die Beschriftung läuft über **60-mm-Rundaufkleber**: Ein kleines Skript liest die - **Filamentfarbe:** Station = Phasenfarbe (blau/orange/grün/teal/lila), Gate = **Rot**.
`service-lifecycle_*.yaml` und erzeugt einen **Aufkleberbogen** (ID + Kurzbezeichnung, - **Etikett:** Station = ID (`op_05`), Gate = `G1` / `G2` / `G3` + Entscheidungs-Icon.
Phasenfarbe) als PDF — analog zur Kartengenerierung. Vorteil: wiederverwendbar,
korrigierbar, mehrsprachig. **Einmal slicen, 40× drucken** (37 Phasen-Pucks + 3 Gate-Pucks). Keine Serien-STLs,
keine Gravur, keine separaten Aktivitäts-Scheiben mehr.
## Beschriftung: Rundetiketten Ø37
Die Beschriftung läuft über **runde Etiketten Ø37** in der Mittenmulde (Ø37,5) —
der Puck-Rand bleibt rundherum sichtbar:
- **Ablösbar bevorzugt** (korrigierbar/wiederverwendbar); Folie für mehr Abrieb.
- **Hinweis:** Ø37 ist kein Avery-Standardmaß (Avery rund = 30/40). Bezugsquelle vor
Kauf prüfen — ggf. anderer Hersteller oder selbst per Print-&-Cut schneiden.
Ein kleines Skript liest die `service-lifecycle_*.yaml` und erzeugt einen
**Etikettenbogen** (ID + Phasenfarbe) — analog zur Kartengenerierung.
Vorteil: wiederverwendbar, korrigierbar, mehrsprachig; die Pucks bleiben blanko.
## Ersetzte Modelle (entfernt)
Mit dem Wechsel auf den Puck sind weggefallen:
`aktivitaets-tile.scad` (eckiges Tile), `aktivitaets-plaque.scad` (Ø60-Scheibe),
`gate-tile.scad` (eckiges Gate-Tile) und `gate-tor.scad` (Torbogen + Gate-Karte).
Begründung: Der Ø100-Puck vereint Station-Markierung, Figuren-Standorte und
Beschriftung in **einem** Teil; die Gate-Karte ist durch App + Entscheidungs-Chips
abgedeckt. (Historie in der Git-Geschichte.)
## Hinweise ## Hinweise
- Gravur-Text bewusst kurz halten; lange Kurzbeschreibungen ggf. auf Label auslagern. - **Figuren werden reingestellt:** Mulden Ø22 für Sockel Ø20, Tiefe 1,5 mm mit
- Umlaute in Gravuren je nach Font kritisch — im Zweifel `ae/oe/ue` verwenden (so in den Vorlagen). Einführ-Fase. 7 Mulden im Ring (r 33) — Abstand der Mulden ~6,6 mm.
- Vor Serienstart **ein** Tile + Plättchen + Stein als Passungs-Funktionsmuster drucken. - **Etikettenmulde Ø37,5 × 0,3 mm** flach — Etikett sitzt plan, Rand schützt die
Kante vorm Abpellen, Puck-Rand bleibt sichtbar (~3,3 mm zu den Figurenmulden).
Maximal möglich wäre Ø40.
- Vor Serienstart **ein** Puck + Figur + Etikett als Passungs-Funktionsmuster drucken
(Sockel↔Mulde, Etikett↔Mulde).

View file

@ -1,6 +1,9 @@
// Aktiv-Feld RACI-Fläche (Figuren werden GESTELLT, nicht gesteckt) // Aktiv-Feld RACI-Flaeche (Figuren werden GESTELLT, nicht gesteckt)
// SLC-Workshop Tabletop · Einheiten: mm // SLC-Workshop Tabletop · Einheiten: mm
// Eine flache Platte mit 4 abgetrennten Bereichen R · A · C · I (gleich gross). // QUADRATISCHES 2x2-Zonenraster (wie die klassische RACI-Matrix):
// R | A
// --+--
// C | I
// R/C/I haben je 4 Standflaechen (2x2). A hat GENAU EIN zentrales Standfeld // R/C/I haben je 4 Standflaechen (2x2). A hat GENAU EIN zentrales Standfeld
// (goldene RACI-Regel: genau eine Rolle ist Accountable). // (goldene RACI-Regel: genau eine Rolle ist Accountable).
// Standflaechen sind nur flache Gravur-Markierungen (keine Loecher). // Standflaechen sind nur flache Gravur-Markierungen (keine Loecher).
@ -11,46 +14,49 @@ corner_r = 5;
plate_margin = 6; // Rand aussen plate_margin = 6; // Rand aussen
/* [Standflaechen] (flache Markierung, kein Loch) — passend zum Sockel Ø20 */ /* [Standflaechen] (flache Markierung, kein Loch) — passend zum Sockel Ø20 */
spot_d = 18; // Durchmesser der Markierung (etwas < Sockel Ø20) spot_d = 22; // Durchmesser wie die Puck-Mulden (gleiche Ø20-Figuren stehen hier)
spot_depth = 0.6; // Gravurtiefe spot_depth = 0.6; // Gravurtiefe
spot_pitch = 24; // Mitte-zu-Mitte (Sockel Ø20 + ~4 mm Luft) spot_pitch = 24; // Mitte-zu-Mitte (Sockel Ø20 + Luft)
grid_cols = 2; // Raster fuer R/C/I: 2 x 2 = 4 Standflaechen a_spot_d = spot_d; // A: GLEICHE Groesse wie die anderen nur die Anzahl (genau 1) zaehlt
grid_rows = 2;
a_spot_d = 22; // A: EIN groesseres zentrales Standfeld (genau 1 Figur)
/* [Bereiche / Zonen] — [Label, cols, rows]; A = 1x1 (goldene RACI-Regel) */ /* [Zonen] — [Label, cols, rows, gridX, gridY]; gridY 0 = oben */
zones = [["R", 2, 2], ["A", 1, 1], ["C", 2, 2], ["I", 2, 2]]; zones = [["R", 2, 2, 0, 0], ["A", 1, 1, 1, 0],
["C", 2, 2, 0, 1], ["I", 2, 2, 1, 1]];
n_cols = 2;
n_rows = 2;
cell_pad = 13; // Rand um die Standflaechen im Feld (haelt Ø20-Sockel) cell_pad = 13; // Rand um die Standflaechen im Feld (haelt Ø20-Sockel)
label_h = 12; // Platz fuer den Buchstaben unten im Feld
zone_gap = 8; // Abstand zwischen den Feldern zone_gap = 8; // Abstand zwischen den Feldern
/* [Gravur] */ /* [Gravur] */
frame_w = 1.5; // Strichstaerke der Feld-Umrandung frame_w = 1.5; // Strichstaerke der Feld-Umrandung
frame_depth = 0.6; frame_depth = 0.6;
label_size = 10; label_size = 8; // Buchstabe sitzt in der Mittenluecke zwischen den 4 Feldern
label_depth = 0.8; label_depth = 0.8;
$fn = 48; $fn = 48;
// --- abgeleitete Maße ------------------------------------------------------- // --- abgeleitete Maße -------------------------------------------------------
spots_span_x = (grid_cols - 1) * spot_pitch; // QUADRATISCHE Zellen (Buchstabe in der Mittenluecke, kein Extra-Streifen).
spots_span_y = (grid_rows - 1) * spot_pitch; spots_span = (2 - 1) * spot_pitch; // 24 (2x2-Raster)
cell_w = spots_span_x + 2 * cell_pad; // 21 cell_w = spots_span + 2 * cell_pad; // 50
cell_h = spots_span_y + 2 * cell_pad + label_h; // 30 cell_h = cell_w; // 50 -> Platte wird quadratisch
plate_w = len(zones) * cell_w + (len(zones) - 1) * zone_gap + 2 * plate_margin;
plate_h = cell_h + 2 * plate_margin;
function zone_cx(i) = plate_w = n_cols * cell_w + (n_cols - 1) * zone_gap + 2 * plate_margin; // 120
-plate_w/2 + plate_margin + cell_w/2 + i * (cell_w + zone_gap); plate_h = n_rows * cell_h + (n_rows - 1) * zone_gap + 2 * plate_margin; // 120
function zone_cx(gx) =
-plate_w/2 + plate_margin + cell_w/2 + gx * (cell_w + zone_gap);
function zone_cy(gy) =
plate_h/2 - plate_margin - cell_h/2 - gy * (cell_h + zone_gap);
// --- Geometrie -------------------------------------------------------------- // --- Geometrie --------------------------------------------------------------
module rrect(l, w, h, r) { module rrect(l, w, h, r) {
linear_extrude(h) offset(r) offset(-r) square([l, w], center = true); linear_extrude(h) offset(r) offset(-r) square([l, w], center = true);
} }
module field_frame(cx) { module field_frame(cx, cy) {
// eingravierte Umrandung -> grenzt den Bereich ab // eingravierte Umrandung -> grenzt den Bereich ab
translate([cx, 0, plate_thick - frame_depth]) translate([cx, cy, plate_thick - frame_depth])
linear_extrude(frame_depth + 0.1) linear_extrude(frame_depth + 0.1)
difference() { difference() {
square([cell_w, cell_h], center = true); square([cell_w, cell_h], center = true);
@ -58,41 +64,42 @@ module field_frame(cx) {
} }
} }
module zone_marks(i) { module zone_marks(z) {
cx = zone_cx(i); lab = z[0]; nc = z[1]; nr = z[2];
lab = zones[i][0]; cx = zone_cx(z[3]); cy = zone_cy(z[4]);
nc = zones[i][1];
nr = zones[i][2];
if (lab == "A") { if (lab == "A") {
// genau EIN zentrales Standfeld (goldene RACI-Regel) // genau EIN Standfeld (gleiche Groesse), leicht nach oben gerueckt; Buchstabe darunter
translate([cx, label_h/2, plate_thick - spot_depth]) translate([cx, cy + 7, plate_thick - spot_depth])
cylinder(d = a_spot_d, h = spot_depth + 0.1); cylinder(d = a_spot_d, h = spot_depth + 0.1);
translate([cx, cy - 13, plate_thick - label_depth])
linear_extrude(label_depth + 0.1)
text(lab, size = label_size, halign = "center", valign = "center");
} else { } else {
// 2x2 Standfelder zentriert; Buchstabe in der Mittenluecke
for (c = [0 : nc - 1]) for (c = [0 : nc - 1])
for (r = [0 : nr - 1]) { for (r = [0 : nr - 1]) {
sx = cx + (c - (nc - 1)/2) * spot_pitch; sx = cx + (c - (nc - 1)/2) * spot_pitch;
sy = label_h/2 + ((nr - 1)/2 - r) * spot_pitch; sy = cy + ((nr - 1)/2 - r) * spot_pitch;
translate([sx, sy, plate_thick - spot_depth]) translate([sx, sy, plate_thick - spot_depth])
cylinder(d = spot_d, h = spot_depth + 0.1); cylinder(d = spot_d, h = spot_depth + 0.1);
} }
} translate([cx, cy, plate_thick - label_depth])
// Buchstabe unten im Feld
translate([cx, -cell_h/2 + label_h/2, plate_thick - label_depth])
linear_extrude(label_depth + 0.1) linear_extrude(label_depth + 0.1)
text(lab, size = label_size, halign = "center", valign = "center"); text(lab, size = label_size, halign = "center", valign = "center");
}
} }
module aktiv_feld() { module aktiv_feld() {
difference() { difference() {
rrect(plate_w, plate_h, plate_thick, corner_r); rrect(plate_w, plate_h, plate_thick, corner_r);
for (i = [0 : len(zones) - 1]) { for (i = [0 : len(zones) - 1]) {
field_frame(zone_cx(i)); z = zones[i];
zone_marks(i); field_frame(zone_cx(z[3]), zone_cy(z[4]));
zone_marks(z);
} }
} }
} }
aktiv_feld(); 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); echo(plate_w = plate_w, plate_h = plate_h, plate_thick = plate_thick);

View file

@ -1,23 +0,0 @@
// Aktivitaets-Scheibe BLANKO Rundscheibe fuer 60-mm-Rundaufkleber
// SLC-Workshop Tabletop · Einheiten: mm
// 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 = 60; // Durchmesser (Verankerung 60 - Passung); passt zum 60-mm-Aufkleber
disc_h = 4; // Dicke
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, 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);
translate([0,0,disc_h-0.01]) cylinder(d = disc_d - 2*chamfer, h = 0.01);
}
}
disc_body();

View file

@ -1,52 +0,0 @@
// Phasen-Basistile mit zentraler Verankerung und Puzzle-Tabs
// SLC-Workshop Tabletop · Einheiten: mm
// Anpassen und mit OpenSCAD nach STL exportieren (F6 -> Export).
/* [Tile] */
tile_size = 100; // Kantenlaenge
tile_height = 6; // Dicke
corner_r = 3; // Eckenradius
/* [Verankerung / Sockel] */
socket_d = 60; // Durchmesser Vertiefung (nimmt Blanko-Scheibe Ø60 oder Action-Stein-Fuss auf)
socket_depth = 4; // Tiefe
fit_clear = 0.4; // Spielpassung
/* [Puzzle-Tabs] */
tab_w = 12; // Breite
tab_d = 6; // Tiefe (Ueberstand / Aussparung)
tab_h = tile_height;
$fn = 64;
module rounded_square(s, r, h) {
linear_extrude(h)
offset(r) offset(-r)
square([s, s], center=true);
}
module tab(positive=true) {
// Tab ragt heraus (positive) oder wird ausgespart (negative)
d = positive ? tab_d : tab_d + fit_clear;
w = positive ? tab_w : tab_w + fit_clear;
translate([0, 0, tab_h/2])
cube([w, d*2, tab_h], center=true);
}
module tile() {
difference() {
union() {
rounded_square(tile_size, corner_r, tile_height);
// Tabs an Nord- und Ost-Kante (positive)
translate([0, tile_size/2, 0]) tab(true);
translate([ tile_size/2, 0, 0]) rotate([0,0,90]) tab(true);
}
// Verankerung
translate([0, 0, tile_height - socket_depth])
cylinder(d = socket_d + fit_clear, h = socket_depth + 0.1);
// Slots an Sued- und West-Kante (negative)
translate([0, -tile_size/2, 0]) tab(false);
translate([-tile_size/2, 0, 0]) rotate([0,0,90]) tab(false);
}
}
tile();

View file

@ -1,106 +0,0 @@
// Gate-Tile Gate-Position mit Figuren-Standfeldern + Entscheidungs-Icon
// SLC-Workshop Tabletop · Einheiten: mm
// Identische Außenmaße wie das Aktivitaets-Tile (100x100x6), aber EIGENE FARBE.
// - 8 generische Standfelder (Ring) fuer die Figuren (Sockel Ø20)
// - 2 Stecksockel: das Gate-Tor steckt mit 2 Zapfen ein
// - Mitte: eingraviertes "Entscheidung"-Icon (3 Pfeile + Fragezeichen) sonst KEINE Beschriftung
// 3 Stueck: Gate 1, 2, 3 (Modell identisch; Unterschied nur Position/Karte).
/* [Tile] */
tile_size = 100;
tile_height = 6;
corner_r = 3;
/* [Puzzle-Tabs] (wie Aktivitaets-Tile) */
tab_w = 12;
tab_d = 6;
fit_clear = 0.4;
/* [Standfelder] — 8 Figuren (Sockel Ø20), generisch */
spot_count = 8;
ring_d = 62; // Kreisdurchmesser fuer die 8 Standfelder
spot_d = 18; // Markierung (etwas < Sockel Ø20)
spot_depth = 0.6;
/* [Gate-Stecksockel] — Gate-Tor steckt mit 2 Zapfen ein */
gate_peg_d = 10.4; // Loch (Zapfen Ø10 + Passung)
gate_peg_depth = 5;
gate_peg_dx = 40; // halber Abstand (= Gate-Pfostenmitte)
gate_peg_y = -tile_size/2 + 12; // nahe Eingangskante (Sued)
/* [Entscheidungs-Icon (Gravur Mitte)] */
icon_depth = 0.6;
$fn = 64;
// --- Geometrie-Helfer -------------------------------------------------------
module rounded_square(s, r, h) {
linear_extrude(h) offset(r) offset(-r) square([s, s], center = true);
}
module tab(positive = true) {
d = positive ? tab_d : tab_d + fit_clear;
w = positive ? tab_w : tab_w + fit_clear;
translate([0, 0, tile_height/2]) cube([w, d*2, tile_height], center = true);
}
module ring_spots() {
for (i = [0 : spot_count - 1]) {
a = 360/spot_count * i;
translate([(ring_d/2)*cos(a), (ring_d/2)*sin(a), tile_height - spot_depth])
cylinder(d = spot_d, h = spot_depth + 0.1);
}
}
module gate_pegs() {
for (x = [-1, 1])
translate([x*gate_peg_dx, gate_peg_y, tile_height - gate_peg_depth])
cylinder(d = gate_peg_d, h = gate_peg_depth + 0.1);
}
// --- Entscheidungs-Icon: offener Ring + Fragezeichen + 3 Pfeile nach oben ----
module arrow2d(ang, len, shaft_w = 1.8, head = 4) {
rotate(ang) union() {
translate([-shaft_w/2, 0]) square([shaft_w, len]);
translate([0, len]) polygon([[-head/2, 0], [head/2, 0], [0, head]]);
}
}
module decision_icon() {
// offener Ring (oben aufgeschnitten, damit die Pfeile austreten)
difference() {
circle(r = 12);
circle(r = 9.5);
translate([-7, 3]) square([14, 14]);
}
// Fragezeichen im Ring
translate([0, -4]) text("?", size = 9, halign = "center", valign = "center");
// drei Pfeile faechern nach oben (links / hoch / rechts)
translate([0, 3]) {
arrow2d(0, 9);
arrow2d(38, 8);
arrow2d(-38, 8);
}
}
// --- Tile ------------------------------------------------------------------
module gate_tile() {
difference() {
union() {
rounded_square(tile_size, corner_r, tile_height);
translate([0, tile_size/2, 0]) tab(true); // Nord-Tab
translate([ tile_size/2, 0, 0]) rotate([0,0,90]) tab(true); // Ost-Tab
}
// Slots Sued + West (Anschluss an die Bahn)
translate([0, -tile_size/2, 0]) tab(false);
translate([-tile_size/2, 0, 0]) rotate([0,0,90]) tab(false);
// Standfelder + Gate-Stecksockel + Icon (alle als Gravur/Loch)
ring_spots();
gate_pegs();
translate([0, 0, tile_height - icon_depth])
linear_extrude(icon_depth + 0.1) decision_icon();
}
}
gate_tile();
echo(tile_size = tile_size, standfelder = spot_count, ring_d = ring_d);

View file

@ -1,53 +0,0 @@
// Gate-Tor Bogen, steckt mit 2 Zapfen in ein Gate-Tile (keine eigenen Fuesse)
// SLC-Workshop Tabletop · Einheiten: mm
// Die Figuren stehen auf dem GATE-TILE (nicht am Tor). Das Tor traegt oben eine
// Gate-Beschreibungskarte; keine feste Gravur.
/* [Tor] */
opening_w = 68; // lichte Weite (Action-Stein Ø59 + 60-mm-Karte passt durch)
opening_h = 100; // lichte Hoehe
thick = 8; // Materialstaerke (Tiefe)
post_w = 12; // Pfostenbreite
top_h = 14; // Hoehe des Querbalkens
/* [Kartenschlitz oben] */
card_w = 65; // Gate-Beschreibungskarte 60 mm + Spiel
card_t = 3;
card_depth = 10;
/* [Stecksockel-Zapfen] — stecken in die Gate-Tile-Loecher (Ø10,4) */
tenon_d = 10;
tenon_h = 5;
tenon_dx = 40; // halber Abstand = Pfostenmitte (opening_w/2 + post_w/2)
$fn = 48;
total_w = opening_w + 2*post_w; // 92 -> passt auf das 100er Gate-Tile
module arch() {
difference() {
translate([-total_w/2, 0, 0]) cube([total_w, thick, opening_h + top_h]);
translate([-opening_w/2, -0.1, 0]) cube([opening_w, thick + 0.2, opening_h]);
}
}
module card_slot() {
translate([-card_w/2, thick/2 - card_t/2, opening_h + top_h - card_depth])
cube([card_w, card_t, card_depth + 0.1]);
}
module tenons() {
// 2 Zapfen unter den Pfosten -> stecken ins Gate-Tile
for (x = [-1, 1])
translate([x*tenon_dx, thick/2, -tenon_h])
cylinder(d = tenon_d, h = tenon_h + 0.1);
}
// Bogen inkl. Kartenschlitz
difference() {
arch();
card_slot();
}
// Stecksockel-Zapfen
tenons();
echo(total_w = total_w, opening_w = opening_w, tenon_dx = tenon_dx);

View file

@ -0,0 +1,81 @@
// Station-Puck (= Gate-Puck) runde Station mit 7 Figurenplaetzen + Etikettenmulde
// SLC-Workshop Tabletop · Einheiten: mm
// EIN Modell fuer die ganze Bahn: 37x in Phasenfarbe (Stationen) + 3x in Rot (Gates).
// Unterschied Station/Gate = nur Filamentfarbe + aufgeklebtes Etikett (ID bzw. G1/G2/G3).
//
// Aufbau (von aussen nach innen):
// - Aussenrand Ø100, ~5 mm breit, bleibt auf voller Hoehe
// - leichte Einbuchtung (Spielflaeche) innerhalb des Rands
// - Ring aus 7 Figurenmulden (Sockel Ø20 wird REINGESTELLT, daher Ø22)
// - Mitte: flache Mulde fuer ein rundes Avery-Etikett Ø40 (Art. 5080 abloesbar)
//
// Beschriftung: KEINE Gravur. ID + Phasenfarbe via Avery-Etikett Ø40 in der Mitte
// (wiederverwendbar/korrigierbar). Modell bleibt dadurch fuer alle 40 identisch.
/* [Puck] */
puck_d = 100; // Aussendurchmesser
puck_h = 6; // Gesamthoehe
edge_cham = 1; // Fase obere Aussenkante (Optik/Griff)
/* [Rand + Einbuchtung] */
rim_w = 5; // Randbreite (bleibt auf voller Hoehe)
recess_dep = 1.2; // Tiefe der Einbuchtung (Spielflaeche)
/* [Figurenplaetze] — Sockel Ø20 wird reingestellt */
spot_count = 7; // Anzahl Standmulden im Ring
spot_d = 22; // Mulden-Ø (Sockel Ø20 + Luft -> reinstellbar)
spot_dep = 1.5; // Tiefe der Standmulde (zusaetzlich zur Einbuchtung)
spot_ring_r = 33; // Radius des Mulden-Kreises (Mitte-Mitte)
spot_lead = 0.8; // Einfuehr-Fase oben an der Mulde
/* [Etikettenmulde Mitte] — rundes Etikett Ø37 */
label_d = 37.5; // Mulden-Ø (Etikett Ø37 + 0,5 Spiel); Puck-Rand bleibt sichtbar
label_dep = 0.3; // flach: Etikett sitzt plan + kantengeschuetzt
$fn = 96;
// abgeleitet
play_d = puck_d - 2*rim_w; // Spielflaeche Ø90
play_z = puck_h - recess_dep; // Hoehe der eingebuchteten Spielflaeche (4.8)
// --- Grundkoerper mit gefaster Oberkante ------------------------------------
module puck_blank() {
hull() {
cylinder(d = puck_d - 2*edge_cham, h = puck_h);
cylinder(d = puck_d, h = puck_h - edge_cham);
}
}
// --- eine Figurenmulde mit Einfuehr-Fase ------------------------------------
module figure_spot() {
// Boden der Mulde liegt spot_dep unter der Spielflaeche
z0 = play_z - spot_dep;
union() {
translate([0, 0, z0]) cylinder(d = spot_d, h = spot_dep + 0.1);
// Fase als Einfuehrhilfe oben
translate([0, 0, play_z - spot_lead])
cylinder(d1 = spot_d, d2 = spot_d + 2*spot_lead, h = spot_lead + 0.1);
}
}
module puck() {
difference() {
puck_blank();
// Einbuchtung / Spielflaeche
translate([0, 0, play_z])
cylinder(d = play_d, h = recess_dep + 0.1);
// 7 Figurenmulden im Ring
for (i = [0 : spot_count - 1]) {
a = 360/spot_count * i;
translate([spot_ring_r*cos(a), spot_ring_r*sin(a), 0]) figure_spot();
}
// Etikettenmulde Mitte
translate([0, 0, play_z - label_dep])
cylinder(d = label_d, h = label_dep + 0.1);
}
}
puck();
echo(puck_d = puck_d, spielflaeche = play_d, figurenplaetze = spot_count,
spot_d = spot_d, ring_r = spot_ring_r, etikett_mulde = label_d);