diff --git a/01_3D-Druck/README_3d-druck.md b/01_3D-Druck/README_3d-druck.md index f3b404b..0d59569 100644 --- a/01_3D-Druck/README_3d-druck.md +++ b/01_3D-Druck/README_3d-druck.md @@ -18,11 +18,21 @@ Verankerung und Steckmechanik. ## Grundsätzliche Design-Entscheidungen -- **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** (Ø 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). +- **Ein Puck pro Station** (Ø 100 × 6 mm rund) statt eckigem Tile + separater Scheibe. + Der Puck vereint Stations-Markierung, Figuren-Standorte (7 Mulden) und Beschriftung + in **einem** Teil → halb so viele Druckteile, keine Scheibe-Toleranz. +- **Ein Modell für die ganze Bahn:** Station- und Gate-Puck sind dasselbe STL — + 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 diff --git a/01_3D-Druck/bauteile-masse.svg b/01_3D-Druck/bauteile-masse.svg index 2ab02fd..aaefea2 100644 --- a/01_3D-Druck/bauteile-masse.svg +++ b/01_3D-Druck/bauteile-masse.svg @@ -129,7 +129,7 @@ R - + A @@ -144,7 +144,7 @@ ~236 74 × 6 mm · R/C/I je 4 (2×2) · A = genau 1 (schematisch) - Ø18 (A Ø22) · Pitch 24 (Sockel Ø20) · keine Löcher + Ø22 (alle gleich, wie Puck) · Pitch 24 (Sockel Ø20) · keine Löcher diff --git a/01_3D-Druck/materialliste.md b/01_3D-Druck/materialliste.md index 9d0eb90..8d6ccc3 100644 --- a/01_3D-Druck/materialliste.md +++ b/01_3D-Druck/materialliste.md @@ -1,196 +1,162 @@ # 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) -- **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-Platzierung:** Figuren werden **gestellt, nicht gesteckt** (flacher - Standfuß **Ø 20 mm**, kein Pin). Standorte sind als **flache Standfelder** - (Ø 18 mm, Gravur ~0,6 mm) am **Aktiv-Feld** und an den **Gate-Toren** markiert — - keine Löcher. +- **Station = Puck:** runde Scheibe **Ø 100 × 6 mm**, 5 mm Rand, leichte Einbuchtung + (Spielfläche Ø 90). Keine Verankerung Ø60, keine Steckverbindung mehr. +- **Figuren-Platzierung:** Figuren werden **gestellt/reingestellt** (flacher Standfuß + **Ø 20 mm**, kein Pin). Am **Puck** in **Mulden Ø 22 × 1,5 mm** (reinstellbar), am + **Aktiv-Feld** auf flachen **Standfeldern Ø 22** (wie Puck-Mulden, Gravur ~0,6 mm). +- **Beschriftung:** **Rundetikett Ø 37** in der Mittenmulde Ø 37,5. Keine Gravur — + ID/Farbe trägt das Etikett. (Ø 37 ist kein Avery-Standard — Avery rund = 30/40; + Bezugsquelle vor Kauf prüfen, ggf. anderer Hersteller oder Print-&-Cut.) --- -## 1. Phasen-Basistiles (lineare Bahn) +## 1. Station-Puck (lineare Bahn) | Merkmal | Wert | |---------|------| -| Grundfläche | 100 × 100 × 6 mm | -| Verankerung | zentriert, Ø 60 × 4 mm | -| Kanten | Puzzle-Tabs (Tab/Slot abwechselnd) | +| Grundkörper | **Ø 100 × 6 mm**, rund, obere Außenkante 1 mm gefast | +| Rand | **5 mm** breit, bleibt auf voller Höhe | +| 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) | -| 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 % | -| Druckzeit | ~1,5 h/Tile | - -> Tiles bleiben bewusst **clean** (nur Verankerung + Tabs). Die Rollen-Platzierung -> übernimmt das mobile **Aktiv-Feld** (Abschnitt 4a), das neben dem Action-Stein steht. +| Druckzeit | ~1,3 h/Puck | +| Datei | `openscad/puck.scad` | **Verteilung nach Phasenfarbe** (= Aktivitäten je Phase): -| Phase | Farbe | Aktivitäten | Tiles | +| Phase | Farbe | Aktivitäten | Pucks | |-------|-------|-------------|:---:| | Design | blau | ds_01–ds_04 | 4 | | Transition | orange | tr_02–tr_08, tr_10, tr_11 | 9 | | Operation | grün | op_01–op_07 | 7 | | Support | teal | sp_01–sp_11 | 11 | | Review | lila | rv_01–rv_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.** -Alle Tiles sind **gerade** und werden zu einer **linearen Bahn** aneinandergereiht -(kein Ring). Bei Platzmangel kann die Bahn mäandrierend (Zeilenumbruch) gelegt -werden — die Puzzle-Tabs erlauben auch 90°-Ecken. +Die Pucks werden zu einer **linearen Bahn** ausgelegt (kein Ring), bei Platzmangel +mäandrierend. Als optische Linie + Halt empfiehlt sich eine **flache Unterlage/Matte** +(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 | |---------|------| -| 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** (alle identisch & blanko; an den 3 Gate-Positionen steht stattdessen ein Gate-Tor) | -| Material | PLA, einheitlich blanko (Phasenfarbe & Text trägt der Aufkleber) | +| Geometrie | wie Station-Puck (`openscad/puck.scad`) | +| Farbe | **Rot** (klar von den 5 Phasenfarben abgesetzt) | +| Etikett | **G1 / G2 / G3** + Entscheidungs-Icon (statt Aktivitäts-ID) | +| Figurenplätze | dieselben 7 Mulden (deckt SOR-Gremium ~5 + Puffer ab) | +| Menge | **3** (Gate 1, 2, 3) | +| Material | PLA, Infill 15 %, rotes Filament | -> **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. +> Es gibt **kein Gate-Tor und keine Gate-Karte** mehr. Gate-Logik (Keeper, +> geforderte Artefakte, Auflösung) läuft über die **App**; die Entscheidung fällt +> über die **Entscheidungs-Chips** (§5). Das „Tor-Gefühl" entsteht durch Farbe + +> Icon + das Stellen der Pflicht-Figuren + den Chip-Moment. ## 3. Action-Stein (Szenario-Träger) | 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 | -| 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) | | Stabilitäts-Option | zusätzlicher Standring Ø 70 mm, falls Karte zu kopflastig | | Menge | **1–2** | | 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 | |---------|------| -| Form | Bogen/Tor, lichte Weite **68 mm**, Gesamtbreite **92 mm**, Höhe 100 mm + 14 mm Querbalken, Materialstärke 8 mm | -| 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ß | -| Kartenschlitz | oben quer, Breite 65 mm, Tiefe 3 mm (Gate-Beschreibungskarte) | -| Gravur | **keine feste** — Gate-Nr / Keeper / Pfade trägt die eingesteckte Gate-Karte | -| 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 | +| Grundkörper | **120 × 120 × 6 mm**, Ecken r5 (quadratisches 2×2-Raster) | +| Bereiche | **2×2-Matrix:** oben **R \| A**, unten **C \| I** (eingravierte Umrandung), 4 gleich große Felder | +| Standfelder | R / C / I: je 4 (2×2) · A: genau 1 = **13**; alle Markierung Ø 22 (wie Puck), Pitch 24 | +| Gravur | Feld-Umrandung 0,6 mm + Zonen-Buchstabe R / A / C / I, Tiefe 0,8 mm | | Menge | **1** (ggf. 2 bei parallelen Tischen) | | Material | PLA, Infill 20 % | +| Datei | `openscad/aktiv-feld.scad` | -> **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. +> **Goldene RACI-Regel: A = genau 1.** Je Aktivität ist genau eine Rolle *Accountable*. -## 4b. Gate-Tile (Gate-Position) - -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) +## 5. Entscheidungs-Chips | Merkmal | Wert | |---------|------| | Form | Münze Ø 30 × 4 mm, Symbolgravur | | Varianten | Go / Go mit Auflagen / Zurück / Ablehnung | -| Menge | je 3 | +| Menge | je 3 (= 12) | | 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) | Teil | Menge | Datei | |------|------:|-------| -| Phasen-Basistile | 37 | `openscad/aktivitaets-tile.scad` | -| Gate-Tile | 3 | `openscad/gate-tile.scad` | -| Aktivitäts-Scheibe (blanko) | 37 | `openscad/aktivitaets-plaque.scad` + 60-mm-Aufkleber | +| Station-Puck | 37 | `openscad/puck.scad` (Phasenfarbe) | +| Gate-Puck | 3 | `openscad/puck.scad` (rot) | | Action-Stein | 2 | `openscad/action-stein.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 (RACI-Board + Bahn/Gates) | +| Rollen-Figuren (Einzel) | 32 | 16 Rollen × 2 | | Team-Sonderfiguren | 6 | 3 Teams × 2 | | 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) -Diese Maße sind aktuell (v0.6) und weichen vom **ersten Entwurf** ab — bitte die -neuesten OpenSCAD-Modelle verwenden, nicht ältere: - -- **Verankerung im Tile = Ø 60** (früher Ø 50!). Sie nimmt **beides** auf: die - **Blanko-Scheibe Ø 60** und den **Action-Stein-Fuß Ø 59**. Mit Ø-50-Tiles passt - nichts → unbedingt die aktuelle `aktivitaets-tile.scad` nutzen. -- **Figuren: Sockel Ø 20, Höhe ~50 mm, KEIN Pin** (Figuren werden gestellt). -- **Standfelder** (Aktiv-Feld, Gate-Tile) sind **flache Gravur-Markierungen - Ø 18** (kein Loch); Aktiv-Feld-Raster **Pitch 24**, A-Feld einzeln Ø 22; - 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. +- **Puck = einziges Bahn-Teil** (Ø 100 × 6). Station vs. Gate nur über Filamentfarbe + + Etikett — **ein STL, 40× drucken** (37 Phasen + 3 rot). +- **Figuren-Mulde Ø 22, Tiefe 1,5** für Sockel **Ø 20** (reinstellbar, Fase als + Einführhilfe). 7 Mulden auf Kreis r 33. +- **Etikettenmulde Ø 37,5 × 0,3** — Rundetikett Ø37 (Puck-Rand bleibt sichtbar, + ~3,3 mm Restwand zu den Figurenmulden). Maximal möglich wäre Ø40. +- **Keine** Verankerung Ø60, **keine** Puzzle-Tabs, **kein** Gate-Tor, **keine** + Gate-Karte mehr. +- **Action-Stein-Kartenschlitz B 64** (für 60-mm-Karte). ## Hinweise für den Producer -- Toleranzen Verankerung/Scheibe und Gate-Zapfen/Loch an **einem Probedruck** kalibrieren (Drucker-spezifisch). -- Gravurtiefe 0,6–1,0 mm; Aktivitäts-Scheiben sind **blanko** (Text/Farbe via 60-mm-Aufkleber). -- Farbtrennung über Filamentwechsel; **exakte Töne frei — nur klar unterscheidbar** (Phasen 5 Farben, Figuren-Kategorien 5 + Teams grün). +- Toleranzen Sockel↔Puck-Mulde und Etikett↔Mulde an **einem Probedruck** kalibrieren. +- Gravurtiefe (nur noch Aktiv-Feld, Chips) 0,6–1,0 mm; Pucks sind **blanko** + (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). diff --git a/01_3D-Druck/openscad/README_openscad.md b/01_3D-Druck/openscad/README_openscad.md index 62aa03e..7d2fb3f 100644 --- a/01_3D-Druck/openscad/README_openscad.md +++ b/01_3D-Druck/openscad/README_openscad.md @@ -6,24 +6,49 @@ Parametrische Quellmodelle der Schlüsselteile. In [OpenSCAD](https://openscad.o | Datei | Bauteil | |-------|---------| -| `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 (Bogen) mit Kartenschlitz + 2 Stecksockel-Zapfen | -| `gate-tile.scad` | Gate-Tile (100×100, eigene Farbe): 8 Standfelder, Gate-Stecksockel, Entscheidungs-Icon | +| `puck.scad` | **Station-/Gate-Puck** (Ø100, Rand + Einbuchtung, 7 Figurenmulden Ø22, Etikettenmulde Ø37,5) | +| `action-stein.scad` | Szenario-Träger mit Kartenschlitz + M8-Gewichtsaussparung (Fuß bleibt **außerhalb** des Pucks) | +| `aktiv-feld.scad` | RACI-Fläche (R · A · C · I) — bleibt als separates mobiles Board | -## Serienfertigung der Scheiben +## Ein Puck für die ganze Bahn -`aktivitaets-plaque.scad` ist **blanko** — alle **37 Scheiben sind identisch** -(einmal rendern, 37× drucken). Kein Text-Override, keine Serien-STLs mehr nötig. +`puck.scad` ist **das einzige Bahn-Teil**. Station- und Gate-Puck sind **geometrisch +identisch** — der Unterschied ist nur: -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. +- **Filamentfarbe:** Station = Phasenfarbe (blau/orange/grün/teal/lila), Gate = **Rot**. +- **Etikett:** Station = ID (`op_05`), Gate = `G1` / `G2` / `G3` + Entscheidungs-Icon. + +→ **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 -- Gravur-Text bewusst kurz halten; lange Kurzbeschreibungen ggf. auf Label auslagern. -- Umlaute in Gravuren je nach Font kritisch — im Zweifel `ae/oe/ue` verwenden (so in den Vorlagen). -- Vor Serienstart **ein** Tile + Plättchen + Stein als Passungs-Funktionsmuster drucken. +- **Figuren werden reingestellt:** Mulden Ø22 für Sockel Ø20, Tiefe 1,5 mm mit + Einführ-Fase. 7 Mulden im Ring (r 33) — Abstand der Mulden ~6,6 mm. +- **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). diff --git a/01_3D-Druck/openscad/aktiv-feld.scad b/01_3D-Druck/openscad/aktiv-feld.scad index 1278ee6..00868a8 100644 --- a/01_3D-Druck/openscad/aktiv-feld.scad +++ b/01_3D-Druck/openscad/aktiv-feld.scad @@ -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 -// 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 // (goldene RACI-Regel: genau eine Rolle ist Accountable). // Standflaechen sind nur flache Gravur-Markierungen (keine Loecher). @@ -11,46 +14,49 @@ corner_r = 5; plate_margin = 6; // Rand aussen /* [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_pitch = 24; // Mitte-zu-Mitte (Sockel Ø20 + ~4 mm Luft) -grid_cols = 2; // Raster fuer R/C/I: 2 x 2 = 4 Standflaechen -grid_rows = 2; -a_spot_d = 22; // A: EIN groesseres zentrales Standfeld (genau 1 Figur) +spot_pitch = 24; // Mitte-zu-Mitte (Sockel Ø20 + Luft) +a_spot_d = spot_d; // A: GLEICHE Groesse wie die anderen — nur die Anzahl (genau 1) zaehlt -/* [Bereiche / Zonen] — [Label, cols, rows]; A = 1x1 (goldene RACI-Regel) */ -zones = [["R", 2, 2], ["A", 1, 1], ["C", 2, 2], ["I", 2, 2]]; +/* [Zonen] — [Label, cols, rows, gridX, gridY]; gridY 0 = oben */ +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) -label_h = 12; // Platz fuer den Buchstaben unten im Feld zone_gap = 8; // Abstand zwischen den Feldern /* [Gravur] */ frame_w = 1.5; // Strichstaerke der Feld-Umrandung frame_depth = 0.6; -label_size = 10; +label_size = 8; // Buchstabe sitzt in der Mittenluecke zwischen den 4 Feldern label_depth = 0.8; $fn = 48; // --- 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; +// QUADRATISCHE Zellen (Buchstabe in der Mittenluecke, kein Extra-Streifen). +spots_span = (2 - 1) * spot_pitch; // 24 (2x2-Raster) +cell_w = spots_span + 2 * cell_pad; // 50 +cell_h = cell_w; // 50 -> Platte wird quadratisch -function zone_cx(i) = - -plate_w/2 + plate_margin + cell_w/2 + i * (cell_w + zone_gap); +plate_w = n_cols * cell_w + (n_cols - 1) * zone_gap + 2 * plate_margin; // 120 +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 -------------------------------------------------------------- module rrect(l, w, h, r) { 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 - translate([cx, 0, plate_thick - frame_depth]) + translate([cx, cy, plate_thick - frame_depth]) linear_extrude(frame_depth + 0.1) difference() { square([cell_w, cell_h], center = true); @@ -58,41 +64,42 @@ module field_frame(cx) { } } -module zone_marks(i) { - cx = zone_cx(i); - lab = zones[i][0]; - nc = zones[i][1]; - nr = zones[i][2]; +module zone_marks(z) { + lab = z[0]; nc = z[1]; nr = z[2]; + cx = zone_cx(z[3]); cy = zone_cy(z[4]); if (lab == "A") { - // genau EIN zentrales Standfeld (goldene RACI-Regel) - translate([cx, label_h/2, plate_thick - spot_depth]) + // genau EIN Standfeld (gleiche Groesse), leicht nach oben gerueckt; Buchstabe darunter + translate([cx, cy + 7, plate_thick - spot_depth]) 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 { + // 2x2 Standfelder zentriert; Buchstabe in der Mittenluecke 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; + sy = cy + ((nr - 1)/2 - r) * spot_pitch; translate([sx, sy, plate_thick - spot_depth]) cylinder(d = spot_d, h = spot_depth + 0.1); } + translate([cx, cy, plate_thick - label_depth]) + linear_extrude(label_depth + 0.1) + text(lab, size = label_size, halign = "center", valign = "center"); } - // 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() { rrect(plate_w, plate_h, plate_thick, corner_r); for (i = [0 : len(zones) - 1]) { - field_frame(zone_cx(i)); - zone_marks(i); + z = zones[i]; + field_frame(zone_cx(z[3]), zone_cy(z[4])); + zone_marks(z); } } } 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); diff --git a/01_3D-Druck/openscad/aktivitaets-plaque.scad b/01_3D-Druck/openscad/aktivitaets-plaque.scad deleted file mode 100644 index df5426b..0000000 --- a/01_3D-Druck/openscad/aktivitaets-plaque.scad +++ /dev/null @@ -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(); diff --git a/01_3D-Druck/openscad/aktivitaets-tile.scad b/01_3D-Druck/openscad/aktivitaets-tile.scad deleted file mode 100644 index 2fe1168..0000000 --- a/01_3D-Druck/openscad/aktivitaets-tile.scad +++ /dev/null @@ -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(); diff --git a/01_3D-Druck/openscad/gate-tile.scad b/01_3D-Druck/openscad/gate-tile.scad deleted file mode 100644 index b858df8..0000000 --- a/01_3D-Druck/openscad/gate-tile.scad +++ /dev/null @@ -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); diff --git a/01_3D-Druck/openscad/gate-tor.scad b/01_3D-Druck/openscad/gate-tor.scad deleted file mode 100644 index acf65fa..0000000 --- a/01_3D-Druck/openscad/gate-tor.scad +++ /dev/null @@ -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); diff --git a/01_3D-Druck/openscad/puck.scad b/01_3D-Druck/openscad/puck.scad new file mode 100644 index 0000000..b6e3585 --- /dev/null +++ b/01_3D-Druck/openscad/puck.scad @@ -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);