SLC_Game/01_3D-Druck/openscad/puck.scad
breitenbach76 fa8294870a 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>
2026-06-04 23:27:28 +02:00

77 lines
3 KiB
OpenSCAD

// 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 Etikett Ø37
//
// KEINE Magnete / keine Kopplung: Pucks werden lose zur Bahn ausgelegt.
// Beschriftung: KEINE Gravur. ID/Phasenfarbe via Etikett Ø37 in der Mitte.
/* [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() {
z0 = play_z - spot_dep;
union() {
translate([0, 0, z0]) cylinder(d = spot_d, h = spot_dep + 0.1);
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, puck_h = puck_h, spielflaeche = play_d,
figurenplaetze = spot_count, spot_d = spot_d, etikett_mulde = label_d);