diff --git a/01_3D-Druck/README_3d-druck.md b/01_3D-Druck/README_3d-druck.md index 9b5cb76..17bf41a 100644 --- a/01_3D-Druck/README_3d-druck.md +++ b/01_3D-Druck/README_3d-druck.md @@ -18,7 +18,8 @@ Verankerung und Steckmechanik. ## Grundsätzliche Design-Entscheidungen -- **Ein Puck pro Station** (Ø 100 × 6 mm rund) statt eckigem Tile + separater Scheibe. +- **Ein Puck pro Station** (Ø 100 × 8 mm rund) statt eckigem Tile + separater Scheibe. + Kopplung über Magnettaschen an 2 Flats (Eingang/Ausgang) → Pucks koppeln zur Kette. 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 — diff --git a/01_3D-Druck/materialliste.md b/01_3D-Druck/materialliste.md index bfd8b9f..5bda532 100644 --- a/01_3D-Druck/materialliste.md +++ b/01_3D-Druck/materialliste.md @@ -10,8 +10,10 @@ Stand: 2026-06-04 · 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. +- **Station = Puck:** runde Scheibe **Ø 100 × 8 mm**, 5 mm Rand, leichte Einbuchtung + (Spielfläche Ø 90). Keine Verankerung Ø60. **Kopplung:** Eingang/Ausgang als + abgeflachte Kontaktstelle mit je 1 Magnettasche → Pucks koppeln zur Kette + an die + Phasen-Ring-Köpfe. (8 mm, damit der Ø6-Magnet in die Kante passt.) - **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). @@ -25,17 +27,22 @@ Stand: 2026-06-04 · Maße in mm · Mengen für **ein** Workshop-Set. | Merkmal | Wert | |---------|------| -| Grundkörper | **Ø 100 × 6 mm**, rund, obere Außenkante 1 mm gefast | +| Grundkörper | **Ø 100 × 8 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) | +| Figurenplätze | **7 Mulden** Ø 22 × 1,5 mm (Einführ-Fase), auf Kreis r 33 (Ø 66), 15° gedreht | | Etikettenmulde | mittig Ø 37,5 × 0,3 mm (Rundetikett Ø37; Puck-Rand bleibt sichtbar) | +| Kopplung | 2 Flats (bei x = ±47) mit je 1 **Magnettasche Ø 6,2 × 2,2** (Mitte Höhe) | | Farbe | je Phase (blau/orange/grün/teal/lila) | | Menge | **37** (eine je Aktivität) | | Material | PLA, Infill 15 % | -| Druckzeit | ~1,3 h/Puck | +| Druckzeit | ~1,6 h/Puck | | Datei | `openscad/puck.scad` | +> **Magnet-Polarität konsistent einkleben:** alle **Ausgang** (+X) gleicher Pol nach +> außen (z. B. Nord), alle **Eingang** (−X) Gegenpol (Süd) → Nachbarn ziehen sich an; +> der Design-Ring-Kopf passt an den ersten Puck. Ohne Magnete: Flats liegen einfach an. + **Verteilung nach Phasenfarbe** (= Aktivitäten je Phase): | Phase | Farbe | Aktivitäten | Pucks | @@ -158,13 +165,16 @@ linearen Puck-Bahn — das **Design-Segment ist der Start** vor dem ersten Puck. | 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 | +| Magnete Ø6 × 2 | ~100 | Pucks 2× je Stück (80) + Phasen-Ring bis 20 | ## Kritische Maße & Passungen (bitte prüfen) -- **Puck = einziges Bahn-Teil** (Ø 100 × 6). Station vs. Gate nur über Filamentfarbe +- **Puck = einziges Bahn-Teil** (Ø 100 × 8). Station vs. Gate nur über Filamentfarbe + Etikett — **ein STL, 40× drucken** (37 Phasen + 3 rot). +- **Kopplung:** 2 Flats bei x = ±47, je 1 Magnettasche Ø 6,2 × 2,2 auf Höhenmitte. + Polarität konsistent einkleben (Ausgang/Eingang). Ø6-Magnet braucht die 8 mm Dicke. - **Figuren-Mulde Ø 22, Tiefe 1,5** für Sockel **Ø 20** (reinstellbar, Fase als - Einführhilfe). 7 Mulden auf Kreis r 33. + Einführhilfe). 7 Mulden auf Kreis r 33, 15° gedreht (frei von der Kopplungsachse). - **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** diff --git a/01_3D-Druck/openscad/README_openscad.md b/01_3D-Druck/openscad/README_openscad.md index 9317968..ac9a9a0 100644 --- a/01_3D-Druck/openscad/README_openscad.md +++ b/01_3D-Druck/openscad/README_openscad.md @@ -6,7 +6,7 @@ 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) | +| `puck.scad` | **Station-/Gate-Puck** (Ø100×8, 7 Figurenmulden Ø22, Etikettenmulde Ø37,5, Kopplungs-Flats + Magnettaschen Ø6) | | `aktiv-feld.scad` | RACI-Fläche (R · A · C · I, 2×2) — separates mobiles Board, 130×130 | | `phasen-ring.scad` | **Phasen-Ring** (5× 72°-Segment): Übersichts-Donut ↔ Bahn-Köpfe, Magnettaschen, `phase=0..4` | diff --git a/01_3D-Druck/openscad/puck.scad b/01_3D-Druck/openscad/puck.scad index b6e3585..2823c05 100644 --- a/01_3D-Druck/openscad/puck.scad +++ b/01_3D-Druck/openscad/puck.scad @@ -7,14 +7,19 @@ // - 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) +// - Mitte: flache Mulde fuer ein rundes Etikett Ø37 // -// Beschriftung: KEINE Gravur. ID + Phasenfarbe via Avery-Etikett Ø40 in der Mitte -// (wiederverwendbar/korrigierbar). Modell bleibt dadurch fuer alle 40 identisch. +// KOPPLUNG (coupling=true): Eingang/Ausgang als abgeflachte Kontaktstelle mit je +// einer Magnettasche -> Pucks koppeln zur Kette + an die Phasen-Ring-Koepfe. +// Dafuer ist der Puck 8 mm hoch (Ø6-Magnet passt in die Kante). +// POLARITAET beim Einkleben konsistent: alle AUSGANG (+X) z.B. Nordpol nach +// aussen, alle EINGANG (-X) Suedpol nach aussen -> Nachbarn ziehen sich an. +// +// Beschriftung: KEINE Gravur. ID/Phasenfarbe via Etikett Ø37 in der Mitte. /* [Puck] */ puck_d = 100; // Aussendurchmesser -puck_h = 6; // Gesamthoehe +puck_h = 8; // Gesamthoehe (8 -> Ø6-Magnet passt in die Kante) edge_cham = 1; // Fase obere Aussenkante (Optik/Griff) /* [Rand + Einbuchtung] */ @@ -27,16 +32,23 @@ 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 +spot_a0 = 15; // Winkel-Offset: keine Mulde auf der Kopplungsachse (X) /* [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 +/* [Kopplung] — Magnete an Eingang/Ausgang */ +coupling = true; // Flats + Magnettaschen an +X/-X +flat_at = 47; // Abstand der Kontakt-Flache von der Mitte (Flat-Tiefe = 50-47 = 3) +mag_d = 6.2; // Loch fuer Ø6-Magnet +mag_t = 2.2; // Tiefe (Ø6x2-Magnet + Spiel) + $fn = 96; // abgeleitet play_d = puck_d - 2*rim_w; // Spielflaeche Ø90 -play_z = puck_h - recess_dep; // Hoehe der eingebuchteten Spielflaeche (4.8) +play_z = puck_h - recess_dep; // Hoehe der eingebuchteten Spielflaeche (6.8) // --- Grundkoerper mit gefaster Oberkante ------------------------------------ module puck_blank() { @@ -48,34 +60,51 @@ module puck_blank() { // --- 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); } } +// --- Kopplung: Flat-Schnitt + Magnettasche je Seite ------------------------ +module coupling_flat_cut() { + // entfernt Material jenseits von x = +/- flat_at -> zwei Kontakt-Flachen + for (s = [-1, 1]) + translate([s * (flat_at + 40), 0, puck_h/2]) + cube([80, puck_d + 20, puck_h + 2], center = true); +} + +module coupling_magnets() { + // +X (Ausgang): Tasche von der Flache nach innen + translate([flat_at + 0.3, 0, puck_h/2]) + rotate([0, -90, 0]) cylinder(d = mag_d, h = mag_t + 0.3, $fn = 32); + // -X (Eingang) + translate([-flat_at - 0.3, 0, puck_h/2]) + rotate([0, 90, 0]) cylinder(d = mag_d, h = mag_t + 0.3, $fn = 32); +} + module puck() { difference() { puck_blank(); + if (coupling) coupling_flat_cut(); // Einbuchtung / Spielflaeche - translate([0, 0, play_z]) - cylinder(d = play_d, h = recess_dep + 0.1); - // 7 Figurenmulden im Ring + translate([0, 0, play_z]) cylinder(d = play_d, h = recess_dep + 0.1); + // 7 Figurenmulden im Ring (mit Offset, frei von der Kopplungsachse) for (i = [0 : spot_count - 1]) { - a = 360/spot_count * i; + a = spot_a0 + 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); + translate([0, 0, play_z - label_dep]) cylinder(d = label_d, h = label_dep + 0.1); + // Magnettaschen + if (coupling) coupling_magnets(); } } 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); +echo(puck_d = puck_d, puck_h = puck_h, spielflaeche = play_d, + figurenplaetze = spot_count, spot_d = spot_d, etikett_mulde = label_d, + kopplung = coupling);