SLC_Game/01_3D-Druck/openscad/gate-tor.scad
2026-05-28 15:50:08 +02:00

70 lines
1.8 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-Steckplaetze] */
peg_d = 8.2; // Loch fuer Figuren-Pin (Ø7,5 + Passung)
peg_count = 4;
peg_depth = 6;
/* [Kartenschlitz oben] */
card_w = 65;
card_t = 3;
card_depth = 10;
$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 peg_holes() {
// Lochreihe entlang der Vorderkante der Fuesse
spacing = (opening_w + post_w) / (peg_count - 1);
for (i = [0 : peg_count - 1])
translate([-(opening_w + post_w)/2 + i*spacing, foot_d/2 - peg_d, foot_h])
rotate([180,0,0])
cylinder(d = peg_d, h = peg_depth);
}
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]);
}
// Tor inkl. Kartenschlitz
difference() {
translate([0,0,foot_h]) arch();
translate([0,0,foot_h]) card_slot();
}
// Fuesse inkl. Rollen-Steckplaetze
difference() {
feet();
peg_holes();
}