// 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(); }