This commit is contained in:
breitenbach76 2026-06-02 15:14:08 +02:00
parent 223a6738c6
commit c9b03a94dc
10 changed files with 283 additions and 304 deletions

80
01_3D-Druck/gate-tile.svg Normal file
View file

@ -0,0 +1,80 @@
<svg xmlns="http://www.w3.org/2000/svg" width="640" height="500" viewBox="0 0 640 500" font-family="system-ui, Arial, sans-serif">
<style>
.tile { fill:#f3e3e3; stroke:#1d2430; stroke-width:1.5; } /* eigene Gate-Farbe (Beispiel rötlich) */
.spot { fill:#ffffff; stroke:#c0392b; stroke-width:1.2; stroke-dasharray:3 2; }
.hole { fill:#8a94a3; stroke:#1d2430; stroke-width:1; }
.icon { fill:none; stroke:#1d2430; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }
.h1 { fill:#1d2430; font-size:18px; font-weight:700; }
.sub { fill:#444; font-size:12px; }
.lbl { fill:#444; font-size:11px; text-anchor:middle; }
.cap { fill:#1d2430; font-size:13px; font-weight:700; }
</style>
<rect x="0" y="0" width="640" height="500" fill="#ffffff"/>
<defs>
<marker id="ah" markerWidth="7" markerHeight="7" refX="3" refY="6" orient="auto">
<path d="M0,6 L3,0 L6,6" fill="none" stroke="#1d2430" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</marker>
</defs>
<text x="24" y="30" class="h1">Gate-Tile</text>
<text x="24" y="50" class="sub">100 × 100 × 6 mm wie Aktivitäts-Tile, eigene Farbe · 8 generische Standfelder · Gate steckt ein · Entscheidungs-Icon (Gravur) · keine Beschriftung</text>
<!-- ===== Draufsicht (2 px = 1 mm) ===== -->
<g transform="translate(70,80)">
<!-- Puzzle-Tabs N + O -->
<rect x="88" y="-12" width="24" height="12" class="tile"/>
<rect x="200" y="88" width="12" height="24" class="tile"/>
<!-- Tile -->
<rect x="0" y="0" width="200" height="200" rx="6" class="tile"/>
<!-- Slots S + W -->
<rect x="88" y="188" width="24" height="12" fill="#fff" stroke="#1d2430" stroke-width="1" stroke-dasharray="4 3"/>
<rect x="0" y="88" width="12" height="24" fill="#fff" stroke="#1d2430" stroke-width="1" stroke-dasharray="4 3"/>
<!-- 8 Standfelder im Ring (r62 px) -->
<circle cx="162" cy="100" r="18" class="spot"/>
<circle cx="144" cy="144" r="18" class="spot"/>
<circle cx="100" cy="162" r="18" class="spot"/>
<circle cx="56" cy="144" r="18" class="spot"/>
<circle cx="38" cy="100" r="18" class="spot"/>
<circle cx="56" cy="56" r="18" class="spot"/>
<circle cx="100" cy="38" r="18" class="spot"/>
<circle cx="144" cy="56" r="18" class="spot"/>
<!-- Gate-Stecksockel (2 Löcher), nahe Eingangskante (unten) -->
<circle cx="60" cy="176" r="10" class="hole"/>
<circle cx="140" cy="176" r="10" class="hole"/>
<!-- Entscheidungs-Icon (Gravur) in der Mitte -->
<g transform="translate(100,100)">
<!-- offener Ring + Fragezeichen -->
<path class="icon" d="M -14 -2 A 14 14 0 1 0 14 -2"/>
<text x="0" y="9" text-anchor="middle" font-size="22" font-weight="700" fill="#1d2430">?</text>
<!-- drei Pfeile nach oben -->
<path class="icon" d="M 0 -8 L 0 -26" marker-end="url(#ah)"/>
<path class="icon" d="M -8 -6 L -22 -20" marker-end="url(#ah)"/>
<path class="icon" d="M 8 -6 L 22 -20" marker-end="url(#ah)"/>
</g>
<text x="100" y="224" class="lbl">unten: Eingangskante — Gate-Tor steckt in die 2 Löcher</text>
</g>
<!-- ===== Legende ===== -->
<g transform="translate(330,90)">
<text x="0" y="0" class="cap">Eckdaten</text>
<text x="0" y="24" class="sub">• 8 Standfelder Ø18 im Ring (Ø62), Sockel Ø20</text>
<text x="0" y="44" class="sub">• 2 Gate-Stecksockel Ø10,4 · Abstand 80 mm</text>
<text x="0" y="64" class="sub">• Mitte: Entscheidungs-Icon (3 Pfeile + ?), Gravur ~0,6</text>
<text x="0" y="84" class="sub">• sonst KEINE Beschriftung; eigene Gate-Farbe</text>
<text x="0" y="104" class="sub">• Puzzle-Tabs wie Aktivitäts-Tile (in der Bahn)</text>
<text x="0" y="140" class="cap">Besetzung (über App/Gate-Karte)</text>
<text x="0" y="164" class="sub">• Gate 1 &amp; 3 = SOR-Gremium:</text>
<text x="0" y="182" class="sub"> SPM + OP + SSM + SHM + SO ≈ 5 Figuren</text>
<text x="0" y="200" class="sub">• Gate 2 = SO allein (1 Figur)</text>
<text x="0" y="218" class="sub">→ 8 Standfelder decken das mit Puffer ab.</text>
<text x="0" y="254" class="cap">Hinweis</text>
<text x="0" y="278" class="sub">Hoher Bogen auf 2 Zapfen im 6-mm-Tile:</text>
<text x="0" y="296" class="sub">Standfestigkeit am Funktionsmuster prüfen.</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.3 KiB

View file

@ -23,27 +23,26 @@ Stand: 2026-05-27 · Maße in mm · Mengen für **ein** Workshop-Set.
| Verankerung | zentriert, Ø 60 × 4 mm |
| Kanten | Puzzle-Tabs (Tab/Slot abwechselnd) |
| Farbe | je Phase (blau/orange/grün/teal/lila) |
| Menge | **38** (37 Aktivitäten + Gate-2-Position; Gate 1 & 3 sind SOR-Sonder-Tiles, s. §4b) |
| Menge | **37** (eine je Aktivität; die 3 Gate-Positionen sind **Gate-Tiles**, s. §4b) |
| 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.
**Verteilung nach Phasenfarbe** (= Aktivitäten je Phase; Gate 2 in Transition → orange):
**Verteilung nach Phasenfarbe** (= Aktivitäten je Phase):
| Phase | Farbe | Aktivitäten | Tiles |
|-------|-------|-------------|:---:|
| Design | blau | ds_01ds_04 | 4 |
| Transition | orange | tr_02tr_08, tr_10, tr_11 **+ Gate 2 (tr_09)** | 10 |
| Transition | orange | tr_02tr_08, tr_10, tr_11 | 9 |
| Operation | grün | op_01op_07 | 7 |
| Support | teal | sp_01sp_11 | 11 |
| Review | lila | rv_01rv_06 | 6 |
| | | **Σ Phasen-Basistile** | **38** |
| | | **Σ Phasen-Basistile** | **37** |
Gate 1 (tr_01) & Gate 3 (tr_12) sind **SOR-Sonder-Tiles** (neutral, §4b) → 2 Stück.
**Bahn gesamt = 38 + 2 = 40 Positionen.** *(Gate 2 ist eine orange Transition-Position;
wenn ihr Gate-Positionen lieber neutral wollt, wären es orange 9 + 1 neutrales Gate-2-Tile.)*
Die 3 Gates (tr_01, tr_09, tr_12) sind **Gate-Tiles** (eigene Farbe, §4b) → 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
@ -83,15 +82,17 @@ werden — die Puzzle-Tabs erlauben auch 90°-Ecken.
| Merkmal | Wert |
|---------|------|
| Form | Bogen/Tor, lichte Weite 90 mm, Höhe 100 mm, Materialstärke 8 mm |
| Standfüße | 2 × Grundplatte 30 × 60 mm, überspannt 2 Tiles |
| Stecksockel | **2 Zapfen** (Ø 10 × 5 mm, links/rechts unter den Pfosten) → stecken in die SOR-Tile-Löcher, damit das Tor stabil steht |
| Rollen-Standfelder | **4 flache Standfelder** (Ø 18 mm, Gravur ~0,6 mm) an der Basis — keine Löcher |
| 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.
@ -114,19 +115,25 @@ RACI wird so **pro Schritt** sichtbar, ohne die Tiles zu verändern.
> gleich groß; nicht jede Fläche muss belegt sein.
> Optional: Rastnase, damit die Platte an den Action-Stein-Fuß andockt.
## 4b. SOR-Sonder-Tile (Gremium)
## 4b. Gate-Tile (Gate-Position)
Die SOR ist ein **Gremium** und daher kein Figur, sondern ein eigenes Tile.
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 | ~120 × 120 × 6 mm, Ecken r4, Puzzle-Tab am Eingang |
| Eingang | **2 Gate-Stecksockel** (Löcher Ø 10,4 × 5 mm, links/rechts, Abstand 102 mm) für die Gate-Zapfen + flache Aufsetz-Mulde + Gravur „EINGANG" |
| Mitte | **„SOR" eingraviert** (kein Chip; `use_chip=false`) |
| Standfelder | **Ring aus 6** flachen Markierungen (Ø 18, Gravur ~0,6) für die Gremiums-Figuren |
| Menge | **2** (Gate 1 & Gate 3 — beide SOR-Gremium; besetzen ihre Bahn-Position) |
| 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/sor-tile.scad` |
| 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
@ -136,7 +143,7 @@ Die SOR ist ein **Gremium** und daher kein Figur, sondern ein eigenes Tile.
| 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 | **16 Einzelrollen + 3 Team-Figuren** (SOR ist ein Tile, keine Figur); Details `../02_Spielfiguren/` |
| Menge | **16 Einzelrollen + 3 Team-Figuren** (SOR ist ein Gremium am Gate-Tile, keine Figur); Details `../02_Spielfiguren/` |
| Material | PLA, eingefärbt je Kategorie |
## 6. Entscheidungs-Chips (optional 3D statt Karte)
@ -154,8 +161,8 @@ Die SOR ist ein **Gremium** und daher kein Figur, sondern ein eigenes Tile.
| Teil | Menge | Datei |
|------|------:|-------|
| Phasen-Basistile | 38 | `openscad/aktivitaets-tile.scad` |
| SOR-Sonder-Tile | 2 | `openscad/sor-tile.scad` |
| 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` |
@ -173,13 +180,14 @@ neuesten OpenSCAD-Modelle verwenden, nicht ältere:
**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, SOR-Tile) sind **flache Gravur-Markierungen
Ø 18** (kein Loch); Aktiv-Feld-Raster **Pitch 24**, A-Feld einzeln Ø 22.
- **Gate ↔ SOR-Tile Steckung:** Gate-Tor hat **2 Zapfen Ø 10**, SOR-Tile **2 Löcher
Ø 10,4**, Abstand **102 mm** (Pfostenmitten). Einzige echten „Löcher" im Set.
- **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:** 38 Phasen-Basistile (inkl. Gate-2-Position) + 2 SOR-Tiles
(Gate 1 & 3). Gate-Tore: 3 (Gate 2 frei stehend, 2 stecken in die SOR-Tiles).
- **Bahn = 40 Positionen:** 37 Phasen-Basistile + 3 Gate-Tiles (Gate 1/2/3); Gate-Tore 3.
## Hinweise für den Producer

View file

@ -9,8 +9,8 @@ Parametrische Quellmodelle der Schlüsselteile. In [OpenSCAD](https://openscad.o
| `aktivitaets-tile.scad` | Phasen-Basistile (100×100, Verankerung Ø60, Puzzle-Tabs) |
| `aktivitaets-plaque.scad` | Blanko-Scheibe (Ø60) für 60-mm-Rundaufkleber — keine Gravur |
| `action-stein.scad` | Szenario-Träger mit Kartenschlitz + M8-Gewichtsaussparung |
| `gate-tor.scad` | Gate-Tor mit 4 Rollen-Standfeldern + Kartenschlitz |
| `sor-tile.scad` | SOR-Sonder-Tile (Gremium): Gate-Eingang, Chip/„Gremium"-Mitte, Figuren-Ring |
| `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

View file

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

View file

@ -1,81 +1,53 @@
// Gate-Tor mit Rollen-Steckplaetzen und Kartenschlitz
// 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 = 90; // lichte Weite
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
/* [Fuesse] */
foot_w = 60;
foot_d = 30;
foot_h = 4;
/* [Rollen-Standfelder] (keine Loecher — Figuren werden gestellt) */
spot_d = 18; // Durchmesser der Standflaeche-Markierung (Sockel Ø20)
spot_count = 4; // 4 Pflicht-Figuren
spot_depth = 0.6; // Gravurtiefe (reine Markierung)
/* [Kartenschlitz oben] */
card_w = 65;
card_w = 65; // Gate-Beschreibungskarte 60 mm + Spiel
card_t = 3;
card_depth = 10;
/* [Stecksockel-Zapfen (links/rechts) — stecken in die SOR-Tile-Loecher] */
tenon_d = 10; // Zapfen-Durchmesser (Tile-Loch 10,4)
tenon_h = 5; // Zapfen-Laenge
tenon_dx = 51; // halber Abstand = Pfostenmitte (opening_w/2 + post_w/2)
$fn = 48;
/* [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)
total_w = opening_w + 2*post_w;
total_h = opening_h + top_h + foot_h;
$fn = 48;
total_w = opening_w + 2*post_w; // 92 -> passt auf das 100er Gate-Tile
module arch() {
difference() {
// Aussenkontur
translate([-total_w/2, 0, 0])
cube([total_w, thick, opening_h + top_h]);
// Oeffnung
translate([-opening_w/2, -0.1, 0])
cube([opening_w, thick + 0.2, opening_h]);
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 feet() {
for (x = [-1, 1])
translate([x*(opening_w/2 + post_w/2) - foot_w/2, -(foot_d-thick)/2, 0])
cube([foot_w, foot_d, foot_h]);
}
module stand_spots() {
// Flache Standfeld-Markierungen entlang der Vorderkante der Fuesse
spacing = (opening_w + post_w) / (spot_count - 1);
for (i = [0 : spot_count - 1])
translate([-(opening_w + post_w)/2 + i*spacing, foot_d/2 - spot_d, foot_h - spot_depth])
cylinder(d = spot_d, h = spot_depth + 0.1);
}
module card_slot() {
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 (links/rechts) zum Einstecken ins SOR-Tile
// 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);
}
// Tor inkl. Kartenschlitz
// Bogen inkl. Kartenschlitz
difference() {
translate([0,0,foot_h]) arch();
translate([0,0,foot_h]) card_slot();
}
// Fuesse + Stecksockel-Zapfen, inkl. Rollen-Standfelder (flache Markierung)
difference() {
union() { feet(); tenons(); }
stand_spots();
arch();
card_slot();
}
// Stecksockel-Zapfen
tenons();
echo(total_w = total_w, opening_w = opening_w, tenon_dx = tenon_dx);

View file

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

View file

@ -1,79 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="760" height="500" viewBox="0 0 760 500" font-family="system-ui, Arial, sans-serif">
<style>
.tile { fill:#eef2f7; stroke:#1d2430; stroke-width:1.5; }
.seat { fill:#dde5ee; stroke:#1d2430; stroke-width:1; }
.chip { fill:#cfd8e3; stroke:#1d2430; stroke-width:1.2; }
.spot { fill:#ffffff; stroke:#2f80c9; stroke-width:1; stroke-dasharray:3 2; }
.part { fill:#eef2f7; stroke:#1d2430; stroke-width:1.4; }
.h1 { fill:#1d2430; font-size:18px; font-weight:700; }
.sub { fill:#444; font-size:12px; }
.lbl { fill:#444; font-size:11px; text-anchor:middle; }
.pl { fill:#1d2430; font-size:10px; font-weight:700; text-anchor:middle; }
.cap { fill:#1d2430; font-size:13px; font-weight:700; }
.dimt { fill:#c0392b; font-size:11px; }
</style>
<rect x="0" y="0" width="760" height="500" fill="#ffffff"/>
<text x="24" y="30" class="h1">SOR-Sonder-Tile (Gremium)</text>
<text x="24" y="50" class="sub">120 × 120 × 6 mm · Gate-Tor steckt im Eingang (2 Zapfen) · „SOR" in der Mitte · Ring aus 6 Standfeldern (Ø18) für die Gremiums-Figuren</text>
<!-- ===== Draufsicht ===== -->
<g transform="translate(40,80)">
<text x="120" y="-8" class="lbl">Draufsicht (2 px = 1 mm)</text>
<!-- Puzzle-Tab am Eingang (Süd) -->
<rect x="108" y="240" width="24" height="12" class="tile"/>
<!-- Tile -->
<rect x="0" y="0" width="240" height="240" rx="8" class="tile"/>
<!-- Gate-Eingang: Aufsetz-Mulde + 2 Stecksockel an der Vorderkante -->
<rect x="4" y="180" width="232" height="56" rx="3" class="seat"/>
<text x="120" y="200" class="lbl">Gate-Eingang (Gate-Tor steckt ein)</text>
<text x="120" y="232" class="pl">EINGANG</text>
<!-- 2 Gate-Stecksockel (Löcher) links/rechts -->
<circle cx="18" cy="216" r="10" fill="#8a94a3" stroke="#1d2430" stroke-width="1"/>
<circle cx="222" cy="216" r="10" fill="#8a94a3" stroke="#1d2430" stroke-width="1"/>
<text x="18" y="206" class="pl" font-size="8">Sockel</text>
<text x="222" y="206" class="pl" font-size="8">Sockel</text>
<!-- Mitte: "SOR" eingraviert (kein Chip) -->
<text x="120" y="108" text-anchor="middle" font-size="34" font-weight="700" fill="#9fb2c6">SOR</text>
<!-- Ring: 6 Standfelder Ø18 (r18) um die Mitte -->
<circle cx="120" cy="30" r="18" class="spot"/>
<circle cx="177" cy="63" r="18" class="spot"/>
<circle cx="63" cy="63" r="18" class="spot"/>
<circle cx="63" cy="129" r="18" class="spot"/>
<circle cx="177" cy="129" r="18" class="spot"/>
<circle cx="120" cy="162" r="18" class="spot"/>
<!-- Beispiel: Kern-Gremium SPM + SO + OP -->
<g transform="translate(120,18)"><circle cx="0" cy="6" r="7" fill="#d4a017" stroke="#1d2430"/><path d="M -9 26 Q 0 10 9 26 Z" fill="#d4a017" stroke="#1d2430"/></g>
<text x="120" y="44" class="pl">SPM</text>
<g transform="translate(177,51)"><circle cx="0" cy="6" r="7" fill="#d4a017" stroke="#1d2430"/><path d="M -9 26 Q 0 10 9 26 Z" fill="#d4a017" stroke="#1d2430"/></g>
<text x="177" y="77" class="pl">SO</text>
<g transform="translate(63,51)"><circle cx="0" cy="6" r="7" fill="#2f80c9" stroke="#1d2430"/><path d="M -9 26 Q 0 10 9 26 Z" fill="#2f80c9" stroke="#1d2430"/></g>
<text x="63" y="77" class="pl">OP</text>
</g>
<!-- ===== Gate-Tor in Seitenansicht (steht im Eingang) ===== -->
<g transform="translate(440,110)">
<text x="86" y="-8" class="lbl">Gate-Tor steht im Eingang</text>
<!-- Tile-Kante (Schnitt) -->
<rect x="-10" y="180" width="200" height="14" class="seat"/>
<!-- Arch -->
<rect x="0" y="0" width="171" height="21" class="part"/> <!-- Querbalken -->
<rect x="0" y="21" width="18" height="159" class="part"/> <!-- Pfosten links -->
<rect x="153" y="21" width="18" height="159" class="part"/> <!-- Pfosten rechts -->
<rect x="37" y="0" width="97" height="6" fill="#fff" stroke="#1d2430" stroke-width="1"/> <!-- Kartenschlitz -->
<!-- 2 Zapfen stecken in die Tile-Stecksockel -->
<rect x="4" y="180" width="10" height="14" fill="#8a94a3" stroke="#1d2430" stroke-width="0.8" stroke-dasharray="3 2"/>
<rect x="157" y="180" width="10" height="14" fill="#8a94a3" stroke="#1d2430" stroke-width="0.8" stroke-dasharray="3 2"/>
<text x="86" y="110" class="lbl">Gate-Karte</text>
<text x="86" y="125" class="lbl">(Nr · Keeper · Pfade)</text>
<text x="86" y="214" class="lbl">2 Zapfen Ø10 stecken im SOR-Tile</text>
</g>
<!-- ===== Legende ===== -->
<g transform="translate(40,380)">
<text x="0" y="0" class="cap">Hinweise</text>
<text x="0" y="22" class="sub">Mitte: „SOR" eingraviert (kein Chip).</text>
<text x="0" y="42" class="sub">Ring: 6 Standfelder Ø18 (Sockel Ø20) — Kern-Gremium SPM + SO + OP, weitere nach Bedarf (AML/DPM/ISB).</text>
<text x="0" y="62" class="sub">Eingang: Gate-Tor steckt mit 2 Zapfen (Ø10, links/rechts) in die Stecksockel → steht stabil.</text>
<text x="0" y="82" class="sub">Gate selbst trägt keine feste Gravur — Gate-Nr / Keeper / Pfade kommen über die eingesteckte Gate-Karte.</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.1 KiB