- sor-tile.scad: use_chip=false, Mitte-Gravur "SOR"; 2 Gate-Stecksockel (Loecher Ø10,4 x5, links/rechts) fuer die Gate-Zapfen - gate-tor.scad: 2 Zapfen (Ø10 x5) unter den Pfosten -> stecken ins SOR-Tile - materialliste: Gate-Stecksockel + SOR-Tile-Eingang/Mitte aktualisiert; Gate-Gravur entfaellt (Gate-Karte traegt Nr/Keeper/Pfade) - sor-tile.svg: Mitte "SOR", 2 Stecksockel, Gate-Zapfen Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
81 lines
2.4 KiB
OpenSCAD
81 lines
2.4 KiB
OpenSCAD
// Gate-Tor mit Rollen-Steckplaetzen und Kartenschlitz
|
|
// SLC-Workshop Tabletop · Einheiten: mm
|
|
|
|
/* [Tor] */
|
|
opening_w = 90; // lichte Weite
|
|
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_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;
|
|
|
|
total_w = opening_w + 2*post_w;
|
|
total_h = opening_h + top_h + foot_h;
|
|
|
|
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]);
|
|
}
|
|
}
|
|
|
|
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
|
|
for (x = [-1, 1])
|
|
translate([x*tenon_dx, thick/2, -tenon_h])
|
|
cylinder(d = tenon_d, h = tenon_h + 0.1);
|
|
}
|
|
|
|
// Tor 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();
|
|
}
|