Magnete ueberall entfernt (Pucks + Phasen-Ring)

- puck.scad: zurueck auf 6 mm, Kopplungs-Flats + Magnettaschen raus -> runder
  Puck, wird lose zur Bahn ausgelegt.
- phasen-ring.scad: Magnettaschen raus, 8 -> 6 mm (gleiche Hoehe wie Pucks),
  Segmente werden lose aneinandergelegt.
- materialliste + READMEs nachgezogen (6 mm, keine Magnete, Magnet-Zeile/
  Polaritaets-Hinweise entfernt).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
breitenbach76 2026-06-04 23:27:28 +02:00
parent b87806e3c8
commit fa8294870a
5 changed files with 24 additions and 85 deletions

View file

@ -18,8 +18,8 @@ Verankerung und Steckmechanik.
## Grundsätzliche Design-Entscheidungen ## Grundsätzliche Design-Entscheidungen
- **Ein Puck pro Station** (Ø 100 × 8 mm rund) statt eckigem Tile + separater Scheibe. - **Ein Puck pro Station** (Ø 100 × 6 mm rund) statt eckigem Tile + separater Scheibe.
Kopplung über Magnettaschen an 2 Flats (Eingang/Ausgang) → Pucks koppeln zur Kette. Pucks werden lose zur Bahn ausgelegt (keine Magnete, keine Steckverbindung).
Der Puck vereint Stations-Markierung, Figuren-Standorte (7 Mulden) und Beschriftung Der Puck vereint Stations-Markierung, Figuren-Standorte (7 Mulden) und Beschriftung
in **einem** Teil → halb so viele Druckteile, keine Scheibe-Toleranz. in **einem** Teil → halb so viele Druckteile, keine Scheibe-Toleranz.
- **Ein Modell für die ganze Bahn:** Station- und Gate-Puck sind dasselbe STL — - **Ein Modell für die ganze Bahn:** Station- und Gate-Puck sind dasselbe STL —

View file

@ -10,10 +10,9 @@ Stand: 2026-06-04 · Maße in mm · Mengen für **ein** Workshop-Set.
## Standard-Schnittstelle (für alle Teile gültig) ## Standard-Schnittstelle (für alle Teile gültig)
- **Station = Puck:** runde Scheibe **Ø 100 × 8 mm**, 5 mm Rand, leichte Einbuchtung - **Station = Puck:** runde Scheibe **Ø 100 × 6 mm**, 5 mm Rand, leichte Einbuchtung
(Spielfläche Ø 90). Keine Verankerung Ø60. **Kopplung:** Eingang/Ausgang als (Spielfläche Ø 90). Keine Verankerung Ø60, keine Steckverbindung, keine Magnete —
abgeflachte Kontaktstelle mit je 1 Magnettasche → Pucks koppeln zur Kette + an die Pucks werden lose zur Bahn ausgelegt.
Phasen-Ring-Köpfe. (8 mm, damit der Ø6-Magnet in die Kante passt.)
- **Figuren-Platzierung:** Figuren werden **gestellt/reingestellt** (flacher Standfuß - **Figuren-Platzierung:** Figuren werden **gestellt/reingestellt** (flacher Standfuß
**Ø 20 mm**, kein Pin). Am **Puck** in **Mulden Ø 22 × 1,5 mm** (reinstellbar), am **Ø 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). **Aktiv-Feld** auf flachen **Standfeldern Ø 22** (wie Puck-Mulden, Gravur ~0,6 mm).
@ -27,22 +26,17 @@ Stand: 2026-06-04 · Maße in mm · Mengen für **ein** Workshop-Set.
| Merkmal | Wert | | Merkmal | Wert |
|---------|------| |---------|------|
| Grundkörper | **Ø 100 × 8 mm**, rund, obere Außenkante 1 mm gefast | | Grundkörper | **Ø 100 × 6 mm**, rund, obere Außenkante 1 mm gefast |
| Rand | **5 mm** breit, bleibt auf voller Höhe | | Rand | **5 mm** breit, bleibt auf voller Höhe |
| Einbuchtung | Spielfläche Ø 90, **1,2 mm** tief | | Einbuchtung | Spielfläche Ø 90, **1,2 mm** tief |
| Figurenplätze | **7 Mulden** Ø 22 × 1,5 mm (Einführ-Fase), auf Kreis r 33 (Ø 66), 15° gedreht | | 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) | | 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) | | Farbe | je Phase (blau/orange/grün/teal/lila) |
| Menge | **37** (eine je Aktivität) | | Menge | **37** (eine je Aktivität) |
| Material | PLA, Infill 15 % | | Material | PLA, Infill 15 % |
| Druckzeit | ~1,6 h/Puck | | Druckzeit | ~1,3 h/Puck |
| Datei | `openscad/puck.scad` | | 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): **Verteilung nach Phasenfarbe** (= Aktivitäten je Phase):
| Phase | Farbe | Aktivitäten | Pucks | | Phase | Farbe | Aktivitäten | Pucks |
@ -139,17 +133,17 @@ linearen Puck-Bahn — das **Design-Segment ist der Start** vor dem ersten Puck.
| Merkmal | Wert | | Merkmal | Wert |
|---------|------| |---------|------|
| Form | Ringsegment 72°, **Ø 180 außen / Ø 84 innen × 8 mm** | | Form | Ringsegment 72°, **Ø 180 außen / Ø 84 innen × 6 mm** |
| Beschriftung | **graviert** (nur 5 Stück): Phasenname + Sublabel + Icon | | Beschriftung | **graviert** (nur 5 Stück): Phasenname + Sublabel + Icon |
| Farbe | je Phase (blau/orange/grün/teal/lila) — wie die Pucks | | Farbe | je Phase (blau/orange/grün/teal/lila) — wie die Pucks |
| Verbindung | **Magnettaschen** Ø 6 × 2, je 2 pro Stoßkante; Magnete optional einkleben — **ohne Magnete einfach lose aneinanderlegen** | | Verbindung | **keine** — Segmente werden lose aneinandergelegt (Ring oder Phasen-Köpfe) |
| Menge | **5** (1 je Phase) | | Menge | **5** (1 je Phase) |
| Material | PLA, Infill 15 %, Filament je Phasenfarbe | | Material | PLA, Infill 15 %, Filament je Phasenfarbe |
| Datei | `openscad/phasen-ring.scad` | | Datei | `openscad/phasen-ring.scad` |
> Export: `render_mode="single"` + `phase=0..4` → ein Segment je Phase. > Export: `render_mode="single"` + `phase=0..4` → ein Segment je Phase.
> Vorschau: `render_mode="ring"` (Preview-Modus, nicht `--render` — sonst eine > Vorschau: `render_mode="ring"` (Preview-Modus, nicht `--render` — sonst eine
> Einheitsfarbe). Magnete: bis zu **20** (Ø 6 × 2) für den geschlossenen Ring. > Einheitsfarbe).
--- ---
@ -165,16 +159,13 @@ linearen Puck-Bahn — das **Design-Segment ist der Start** vor dem ersten Puck.
| Team-Sonderfiguren | 6 | 3 Teams × 2 | | Team-Sonderfiguren | 6 | 3 Teams × 2 |
| Entscheidungs-Chips | 12 | (einfache Münze + Gravur) | | Entscheidungs-Chips | 12 | (einfache Münze + Gravur) |
| Rundetiketten Ø37 | 40 | via Generator aus YAML (ID + Phasenfarbe); ablösbar bevorzugt | | 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) ## Kritische Maße & Passungen (bitte prüfen)
- **Puck = einziges Bahn-Teil** (Ø 100 × 8). Station vs. Gate nur über Filamentfarbe - **Puck = einziges Bahn-Teil** (Ø 100 × 6). Station vs. Gate nur über Filamentfarbe
+ Etikett — **ein STL, 40× drucken** (37 Phasen + 3 rot). + 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 - **Figuren-Mulde Ø 22, Tiefe 1,5** für Sockel **Ø 20** (reinstellbar, Fase als
Einführhilfe). 7 Mulden auf Kreis r 33, 15° gedreht (frei von der Kopplungsachse). Einführhilfe). 7 Mulden auf Kreis r 33.
- **Etikettenmulde Ø 37,5 × 0,3** — Rundetikett Ø37 (Puck-Rand bleibt sichtbar, - **Etikettenmulde Ø 37,5 × 0,3** — Rundetikett Ø37 (Puck-Rand bleibt sichtbar,
~3,3 mm Restwand zu den Figurenmulden). Maximal möglich wäre Ø40. ~3,3 mm Restwand zu den Figurenmulden). Maximal möglich wäre Ø40.
- **Keine** Verankerung Ø60, **keine** Puzzle-Tabs, **kein** Gate-Tor, **keine** - **Keine** Verankerung Ø60, **keine** Puzzle-Tabs, **kein** Gate-Tor, **keine**

View file

@ -6,9 +6,9 @@ Parametrische Quellmodelle der Schlüsselteile. In [OpenSCAD](https://openscad.o
| Datei | Bauteil | | Datei | Bauteil |
|-------|---------| |-------|---------|
| `puck.scad` | **Station-/Gate-Puck** (Ø100×8, 7 Figurenmulden Ø22, Etikettenmulde Ø37,5, Kopplungs-Flats + Magnettaschen Ø6) | | `puck.scad` | **Station-/Gate-Puck** (Ø100×6, 7 Figurenmulden Ø22, Etikettenmulde Ø37,5) |
| `aktiv-feld.scad` | RACI-Fläche (R · A · C · I, 2×2) — separates mobiles Board, 130×130 | | `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` | | `phasen-ring.scad` | **Phasen-Ring** (5× 72°-Segment, Ø180×6): Übersichts-Donut ↔ Bahn-Köpfe, `phase=0..4` |
## Ein Puck für die ganze Bahn ## Ein Puck für die ganze Bahn

View file

@ -4,8 +4,8 @@
// //
// - 1 Segment = 72°-Ringsegment in seiner Phasenfarbe (wie die Pucks). // - 1 Segment = 72°-Ringsegment in seiner Phasenfarbe (wie die Pucks).
// - Beschriftung GRAVIERT (nur 5 Stueck): Phasenname + Sublabel + einfaches Icon. // - Beschriftung GRAVIERT (nur 5 Stueck): Phasenname + Sublabel + einfaches Icon.
// - Magnettaschen an beiden Stosskanten: Magnete einkleben -> haelt als Ring zusammen; // - KEINE Magnete: Segmente werden lose aneinandergelegt (als Ring oder als
// ohne Magnete einfach lose aneinanderlegen (Taschen stoeren nicht). // Phasen-Koepfe entlang der Bahn).
// //
// EXPORT: render_mode="single" + phase=0..4 -> ein Segment je Phase als STL. // EXPORT: render_mode="single" + phase=0..4 -> ein Segment je Phase als STL.
// VORSCHAU: render_mode="ring" -> alle 5 farbig zusammengesetzt. // VORSCHAU: render_mode="ring" -> alle 5 farbig zusammengesetzt.
@ -17,16 +17,10 @@ phase = 0; // 0 Design · 1 Transition · 2 Operation · 3 Support
/* [Ring-Geometrie] */ /* [Ring-Geometrie] */
r_out = 90; // Aussenradius (Ø180) r_out = 90; // Aussenradius (Ø180)
r_in = 42; // Innenradius (Ø84) r_in = 42; // Innenradius (Ø84)
seg_h = 8; // Dicke (etwas dicker als Pucks -> Platz fuer Magnete in der Kante) seg_h = 6; // Dicke (wie die Pucks)
seg_ang = 72; // 360/5 seg_ang = 72; // 360/5
gap_deg = 1.2; // kleiner Spalt zwischen Segmenten (Passung) gap_deg = 1.2; // kleiner Spalt zwischen Segmenten (Passung)
/* [Magnettaschen] (an den Stosskanten) */
mag_d = 6.2; // Loch fuer Ø6-Magnet
mag_t = 2.2; // Tiefe (Ø6x2-Magnet + Spiel)
mag_r1 = 56; // Radius Tasche 1
mag_r2 = 78; // Radius Tasche 2
/* [Gravur] */ /* [Gravur] */
eng_depth = 0.8; eng_depth = 0.8;
name_size = 7; name_size = 7;
@ -62,12 +56,6 @@ module ring_sector(a) {
} }
} }
module magnet_pocket(edge_ang, inward_ang, r) {
translate([r*cos(edge_ang), r*sin(edge_ang), seg_h/2])
rotate([0,0,inward_ang]) rotate([0,90,0])
translate([0,0,-0.3]) cylinder(d = mag_d, h = mag_t + 0.3, $fn = 32);
}
// --- Icons (einfache gravierte Glyphen, 2D) --------------------------------- // --- Icons (einfache gravierte Glyphen, 2D) ---------------------------------
module icon(i) { module icon(i) {
// zentriert um (0,0), ~14 mm // zentriert um (0,0), ~14 mm
@ -101,15 +89,8 @@ module icon(i) {
// --- ein Segment ------------------------------------------------------------ // --- ein Segment ------------------------------------------------------------
module phase_segment(idx) { module phase_segment(idx) {
a = seg_ang - gap_deg; a = seg_ang - gap_deg;
e0 = 90 - a/2; // untere Kante
e1 = 90 + a/2; // obere Kante
difference() { difference() {
ring_sector(a); ring_sector(a);
// Magnettaschen: 2 je Stosskante
magnet_pocket(e0, e0 + 90, mag_r1);
magnet_pocket(e0, e0 + 90, mag_r2);
magnet_pocket(e1, e1 - 90, mag_r1);
magnet_pocket(e1, e1 - 90, mag_r2);
// Gravur (oben) // Gravur (oben)
translate([0,0,seg_h - eng_depth]) linear_extrude(eng_depth + 0.1) { translate([0,0,seg_h - eng_depth]) linear_extrude(eng_depth + 0.1) {
translate([0,82]) scale(0.9) icon(idx); translate([0,82]) scale(0.9) icon(idx);

View file

@ -9,17 +9,12 @@
// - Ring aus 7 Figurenmulden (Sockel Ø20 wird REINGESTELLT, daher Ø22) // - Ring aus 7 Figurenmulden (Sockel Ø20 wird REINGESTELLT, daher Ø22)
// - Mitte: flache Mulde fuer ein rundes Etikett Ø37 // - Mitte: flache Mulde fuer ein rundes Etikett Ø37
// //
// KOPPLUNG (coupling=true): Eingang/Ausgang als abgeflachte Kontaktstelle mit je // KEINE Magnete / keine Kopplung: Pucks werden lose zur Bahn ausgelegt.
// 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. // Beschriftung: KEINE Gravur. ID/Phasenfarbe via Etikett Ø37 in der Mitte.
/* [Puck] */ /* [Puck] */
puck_d = 100; // Aussendurchmesser puck_d = 100; // Aussendurchmesser
puck_h = 8; // Gesamthoehe (8 -> Ø6-Magnet passt in die Kante) puck_h = 6; // Gesamthoehe
edge_cham = 1; // Fase obere Aussenkante (Optik/Griff) edge_cham = 1; // Fase obere Aussenkante (Optik/Griff)
/* [Rand + Einbuchtung] */ /* [Rand + Einbuchtung] */
@ -32,23 +27,16 @@ spot_d = 22; // Mulden-Ø (Sockel Ø20 + Luft -> reinstellbar)
spot_dep = 1.5; // Tiefe der Standmulde (zusaetzlich zur Einbuchtung) spot_dep = 1.5; // Tiefe der Standmulde (zusaetzlich zur Einbuchtung)
spot_ring_r = 33; // Radius des Mulden-Kreises (Mitte-Mitte) spot_ring_r = 33; // Radius des Mulden-Kreises (Mitte-Mitte)
spot_lead = 0.8; // Einfuehr-Fase oben an der Mulde 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 */ /* [Etikettenmulde Mitte] — rundes Etikett Ø37 */
label_d = 37.5; // Mulden-Ø (Etikett Ø37 + 0,5 Spiel); Puck-Rand bleibt sichtbar label_d = 37.5; // Mulden-Ø (Etikett Ø37 + 0,5 Spiel); Puck-Rand bleibt sichtbar
label_dep = 0.3; // flach: Etikett sitzt plan + kantengeschuetzt 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; $fn = 96;
// abgeleitet // abgeleitet
play_d = puck_d - 2*rim_w; // Spielflaeche Ø90 play_d = puck_d - 2*rim_w; // Spielflaeche Ø90
play_z = puck_h - recess_dep; // Hoehe der eingebuchteten Spielflaeche (6.8) play_z = puck_h - recess_dep; // Hoehe der eingebuchteten Spielflaeche (4.8)
// --- Grundkoerper mit gefaster Oberkante ------------------------------------ // --- Grundkoerper mit gefaster Oberkante ------------------------------------
module puck_blank() { module puck_blank() {
@ -68,43 +56,22 @@ module figure_spot() {
} }
} }
// --- 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() { module puck() {
difference() { difference() {
puck_blank(); puck_blank();
if (coupling) coupling_flat_cut();
// Einbuchtung / Spielflaeche // Einbuchtung / Spielflaeche
translate([0, 0, play_z]) cylinder(d = play_d, h = recess_dep + 0.1); translate([0, 0, play_z]) cylinder(d = play_d, h = recess_dep + 0.1);
// 7 Figurenmulden im Ring (mit Offset, frei von der Kopplungsachse) // 7 Figurenmulden im Ring
for (i = [0 : spot_count - 1]) { for (i = [0 : spot_count - 1]) {
a = spot_a0 + 360/spot_count * i; a = 360/spot_count * i;
translate([spot_ring_r*cos(a), spot_ring_r*sin(a), 0]) figure_spot(); translate([spot_ring_r*cos(a), spot_ring_r*sin(a), 0]) figure_spot();
} }
// Etikettenmulde Mitte // 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(); puck();
echo(puck_d = puck_d, puck_h = puck_h, spielflaeche = play_d, echo(puck_d = puck_d, puck_h = puck_h, spielflaeche = play_d,
figurenplaetze = spot_count, spot_d = spot_d, etikett_mulde = label_d, figurenplaetze = spot_count, spot_d = spot_d, etikett_mulde = label_d);
kopplung = coupling);