diff --git a/01_3D-Druck/README_3d-druck.md b/01_3D-Druck/README_3d-druck.md index 0d59569..f3b404b 100644 --- a/01_3D-Druck/README_3d-druck.md +++ b/01_3D-Druck/README_3d-druck.md @@ -18,21 +18,11 @@ Verankerung und Steckmechanik. ## Grundsätzliche Design-Entscheidungen -- **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). +- **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). ## Drucker-Annahmen diff --git a/01_3D-Druck/bauteile-masse.svg b/01_3D-Druck/bauteile-masse.svg index aaefea2..2ab02fd 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) - Ø22 (alle gleich, wie Puck) · Pitch 24 (Sockel Ø20) · keine Löcher + Ø18 (A Ø22) · Pitch 24 (Sockel Ø20) · keine Löcher diff --git a/01_3D-Druck/materialliste.md b/01_3D-Druck/materialliste.md index 8d6ccc3..9d0eb90 100644 --- a/01_3D-Druck/materialliste.md +++ b/01_3D-Druck/materialliste.md @@ -1,162 +1,196 @@ # Materialliste — zu druckende Elemente -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). +Stand: 2026-05-27 · Maße in mm · Mengen für **ein** Workshop-Set. ## Standard-Schnittstelle (für alle Teile gültig) -- **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.) +- **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. --- -## 1. Station-Puck (lineare Bahn) +## 1. Phasen-Basistiles (lineare Bahn) | Merkmal | Wert | |---------|------| -| 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) | +| Grundfläche | 100 × 100 × 6 mm | +| Verankerung | zentriert, Ø 60 × 4 mm | +| Kanten | Puzzle-Tabs (Tab/Slot abwechselnd) | | Farbe | je Phase (blau/orange/grün/teal/lila) | -| Menge | **37** (eine je Aktivität) | +| Menge | **37** (eine je Aktivität; die 3 Gate-Positionen sind **Gate-Tiles**, s. §4b) | | Material | PLA, Infill 15 % | -| Druckzeit | ~1,3 h/Puck | -| Datei | `openscad/puck.scad` | +| 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. **Verteilung nach Phasenfarbe** (= Aktivitäten je Phase): -| Phase | Farbe | Aktivitäten | Pucks | +| Phase | Farbe | Aktivitäten | Tiles | |-------|-------|-------------|:---:| | 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 | -| | | **Σ Station-Pucks** | **37** | +| | | **Σ Phasen-Basistile** | **37** | -Die 3 Gates (tr_01, tr_09, tr_12) sind **Gate-Pucks** (gleiches Teil, rot, §2) → 3 Stück. +Die 3 Gates (tr_01, tr_09, tr_12) sind **Gate-Tiles** (eigene Farbe, §4b) → 3 Stück. **Bahn gesamt = 37 + 3 = 40 Positionen.** -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. +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. -## 2. Gate-Puck (Gate-Position) - -**Identisches Druckteil wie der Station-Puck** — Unterschied nur: +## 2. Aktivitäts-Scheibe (blanko + Aufkleber) | Merkmal | Wert | |---------|------| -| 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 | +| 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) | -> 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. +> **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ß | Ø 59 × 5 mm (steht **neben** dem aktiven Puck — keine Verankerung mehr nötig) | +| Fuß | Ø 59 × 5 mm (sitzt in Verankerung Ø 60) | | 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) | +| Kartenschlitz | Breite 64 mm, Tiefe 4 mm, Höhe 25 mm (für Action Card **60 mm** breit, zum Draufstecken) | | 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 | -> 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". +## 4. Gate-Tore | Merkmal | Wert | |---------|------| -| 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 | +| 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 | | Menge | **1** (ggf. 2 bei parallelen Tischen) | | Material | PLA, Infill 20 % | -| Datei | `openscad/aktiv-feld.scad` | -> **Goldene RACI-Regel: A = genau 1.** Je Aktivität ist genau eine Rolle *Accountable*. +> **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. -## 5. Entscheidungs-Chips +## 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) | Merkmal | Wert | |---------|------| | Form | Münze Ø 30 × 4 mm, Symbolgravur | | Varianten | Go / Go mit Auflagen / Zurück / Ablehnung | -| Menge | je 3 (= 12) | +| Menge | je 3 | | 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 | |------|------:|-------| -| Station-Puck | 37 | `openscad/puck.scad` (Phasenfarbe) | -| Gate-Puck | 3 | `openscad/puck.scad` (rot) | +| 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 | | Action-Stein | 2 | `openscad/action-stein.scad` | | Aktiv-Feld (RACI-Fläche) | 1 | `openscad/aktiv-feld.scad` | -| Rollen-Figuren (Einzel) | 32 | 16 Rollen × 2 | +| Gate-Tor | 3 | `openscad/gate-tor.scad` | +| Rollen-Figuren (Einzel) | 32 | 16 Rollen × 2 (RACI-Board + Bahn/Gates) | | 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) -- **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). +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. ## Hinweise für den Producer -- 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). +- 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). diff --git a/01_3D-Druck/openscad/README_openscad.md b/01_3D-Druck/openscad/README_openscad.md index 7d2fb3f..62aa03e 100644 --- a/01_3D-Druck/openscad/README_openscad.md +++ b/01_3D-Druck/openscad/README_openscad.md @@ -6,49 +6,24 @@ Parametrische Quellmodelle der Schlüsselteile. In [OpenSCAD](https://openscad.o | Datei | Bauteil | |-------|---------| -| `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 | +| `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 | -## Ein Puck für die ganze Bahn +## Serienfertigung der Scheiben -`puck.scad` ist **das einzige Bahn-Teil**. Station- und Gate-Puck sind **geometrisch -identisch** — der Unterschied ist nur: +`aktivitaets-plaque.scad` ist **blanko** — alle **37 Scheiben sind identisch** +(einmal rendern, 37× drucken). Kein Text-Override, keine Serien-STLs mehr nötig. -- **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.) +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 -- **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). +- 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. diff --git a/01_3D-Druck/openscad/aktiv-feld.scad b/01_3D-Druck/openscad/aktiv-feld.scad index 00868a8..1278ee6 100644 --- a/01_3D-Druck/openscad/aktiv-feld.scad +++ b/01_3D-Druck/openscad/aktiv-feld.scad @@ -1,9 +1,6 @@ -// Aktiv-Feld — RACI-Flaeche (Figuren werden GESTELLT, nicht gesteckt) +// Aktiv-Feld — RACI-Fläche (Figuren werden GESTELLT, nicht gesteckt) // SLC-Workshop Tabletop · Einheiten: mm -// QUADRATISCHES 2x2-Zonenraster (wie die klassische RACI-Matrix): -// R | A -// --+-- -// C | I +// 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). @@ -14,49 +11,46 @@ corner_r = 5; plate_margin = 6; // Rand aussen /* [Standflaechen] (flache Markierung, kein Loch) — passend zum Sockel Ø20 */ -spot_d = 22; // Durchmesser wie die Puck-Mulden (gleiche Ø20-Figuren stehen hier) +spot_d = 18; // Durchmesser der Markierung (etwas < Sockel Ø20) spot_depth = 0.6; // Gravurtiefe -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 +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) -/* [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; +/* [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 = 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 = 8; // Buchstabe sitzt in der Mittenluecke zwischen den 4 Feldern +label_size = 10; label_depth = 0.8; $fn = 48; // --- abgeleitete Maße ------------------------------------------------------- -// 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 +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; -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); +function zone_cx(i) = + -plate_w/2 + plate_margin + cell_w/2 + i * (cell_w + 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, cy) { +module field_frame(cx) { // eingravierte Umrandung -> grenzt den Bereich ab - translate([cx, cy, plate_thick - frame_depth]) + translate([cx, 0, plate_thick - frame_depth]) linear_extrude(frame_depth + 0.1) difference() { square([cell_w, cell_h], center = true); @@ -64,42 +58,41 @@ module field_frame(cx, cy) { } } -module zone_marks(z) { - lab = z[0]; nc = z[1]; nr = z[2]; - cx = zone_cx(z[3]); cy = zone_cy(z[4]); +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 Standfeld (gleiche Groesse), leicht nach oben gerueckt; Buchstabe darunter - translate([cx, cy + 7, plate_thick - spot_depth]) + // 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); - 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 = cy + ((nr - 1)/2 - r) * 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); } - 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]) { - z = zones[i]; - field_frame(zone_cx(z[3]), zone_cy(z[4])); - zone_marks(z); + field_frame(zone_cx(i)); + zone_marks(i); } } } 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 new file mode 100644 index 0000000..df5426b --- /dev/null +++ b/01_3D-Druck/openscad/aktivitaets-plaque.scad @@ -0,0 +1,23 @@ +// 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 new file mode 100644 index 0000000..2fe1168 --- /dev/null +++ b/01_3D-Druck/openscad/aktivitaets-tile.scad @@ -0,0 +1,52 @@ +// 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 new file mode 100644 index 0000000..b858df8 --- /dev/null +++ b/01_3D-Druck/openscad/gate-tile.scad @@ -0,0 +1,106 @@ +// 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 new file mode 100644 index 0000000..acf65fa --- /dev/null +++ b/01_3D-Druck/openscad/gate-tor.scad @@ -0,0 +1,53 @@ +// 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 deleted file mode 100644 index b6e3585..0000000 --- a/01_3D-Druck/openscad/puck.scad +++ /dev/null @@ -1,81 +0,0 @@ -// 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);