update 01.06.2026
This commit is contained in:
parent
7f1a09572e
commit
1af051990f
21 changed files with 1365 additions and 380 deletions
94
01_3D-Druck/openscad/sor-tile.scad
Normal file
94
01_3D-Druck/openscad/sor-tile.scad
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
// SOR-Sonder-Tile (Gremium) — Service Operations Runde
|
||||
// SLC-Workshop Tabletop · Einheiten: mm
|
||||
// Die SOR ist kein Einzel-Figur, sondern ein Gremium -> eigenes Tile:
|
||||
// - Gate-Tor wird am Eingang (Vorderkante) installiert -> Eingang ins Gremium
|
||||
// - Mitte: Platz fuer den Entscheidungs-Chip (Ø30); alternativ "Gremium" graviert
|
||||
// - rundherum: Standfelder fuer die teilnehmenden Figuren (gestellt, kein Pin)
|
||||
|
||||
/* [Tile] */
|
||||
tile_size = 120; // etwas groesser als Standardtile (Platz fuer Ring + Gate)
|
||||
tile_height = 6;
|
||||
corner_r = 4;
|
||||
|
||||
/* [Mitte: Chip oder Gravur] */
|
||||
use_chip = true; // true: Chip-Mulde Ø30 · false: "Gremium" eingraviert
|
||||
chip_d = 30;
|
||||
chip_recess_d = 0.6; // Spielpassung
|
||||
chip_depth = 1.5; // Mulden-Tiefe fuer den Chip
|
||||
gremium_text = "Gremium";
|
||||
gremium_size = 12;
|
||||
gremium_depth = 0.8;
|
||||
|
||||
/* [Ring aus Standfeldern] */
|
||||
ring_count = 6; // Plaetze fuer Gremiums-Figuren rund um die Mitte
|
||||
ring_d = 84; // Kreisdurchmesser, auf dem die Standfelder liegen
|
||||
spot_d = 8; // Standfeld-Durchmesser
|
||||
spot_depth = 0.5; // Gravurtiefe (Markierung, kein Loch)
|
||||
|
||||
/* [Gate-Eingang an der Vorderkante] */
|
||||
gate_seat_w = 116; // Breite der Aufsetzflaeche fuer das Gate (Fuesse 2x60)
|
||||
gate_seat_d = 30; // Tiefe (= Gate-Fusstiefe)
|
||||
gate_seat_depth = 1.5; // flache Mulde, in der die Gate-Fuesse stehen
|
||||
gate_label = "SOR";
|
||||
gate_label_size = 7;
|
||||
gate_label_depth= 0.8;
|
||||
|
||||
/* [Puzzle-Tab am Eingang -> Anschluss an die Bahn] */
|
||||
tab_w = 12; tab_d = 6;
|
||||
|
||||
$fn = 96;
|
||||
|
||||
module rounded_square(s, r, h) {
|
||||
linear_extrude(h) offset(r) offset(-r) square([s, s], center=true);
|
||||
}
|
||||
|
||||
module ring_spots() {
|
||||
for (i = [0 : ring_count - 1]) {
|
||||
a = 360/ring_count * i;
|
||||
x = (ring_d/2) * cos(a);
|
||||
y = (ring_d/2) * sin(a);
|
||||
translate([x, y, tile_height - spot_depth])
|
||||
cylinder(d = spot_d, h = spot_depth + 0.1);
|
||||
}
|
||||
}
|
||||
|
||||
module center_feature() {
|
||||
if (use_chip) {
|
||||
// Mulde fuer den Entscheidungs-Chip
|
||||
translate([0, 0, tile_height - chip_depth])
|
||||
cylinder(d = chip_d + chip_recess_d, h = chip_depth + 0.1);
|
||||
} else {
|
||||
// "Gremium" eingraviert
|
||||
translate([0, 0, tile_height - gremium_depth])
|
||||
linear_extrude(gremium_depth + 0.1)
|
||||
text(gremium_text, size = gremium_size,
|
||||
halign = "center", valign = "center");
|
||||
}
|
||||
}
|
||||
|
||||
module gate_entrance() {
|
||||
// flache Mulde an der Vorderkante (Suedkante), in die die Gate-Fuesse gestellt werden
|
||||
translate([0, -tile_size/2 + gate_seat_d/2, tile_height - gate_seat_depth])
|
||||
cube([gate_seat_w, gate_seat_d, gate_seat_depth + 0.1], center = true);
|
||||
// Beschriftung "SOR" an der Vorderkante
|
||||
translate([0, -tile_size/2 + gate_seat_d + gate_label_size, tile_height - gate_label_depth])
|
||||
linear_extrude(gate_label_depth + 0.1)
|
||||
text(gate_label, size = gate_label_size, halign = "center", valign = "center");
|
||||
}
|
||||
|
||||
module sor_tile() {
|
||||
difference() {
|
||||
union() {
|
||||
rounded_square(tile_size, corner_r, tile_height);
|
||||
// Puzzle-Tab am Eingang (Suedkante) zum Anschluss an die Bahn
|
||||
translate([0, -tile_size/2 - tab_d, 0])
|
||||
cube([tab_w, tab_d*2, tile_height]);
|
||||
}
|
||||
center_feature();
|
||||
ring_spots();
|
||||
gate_entrance();
|
||||
}
|
||||
}
|
||||
|
||||
sor_tile();
|
||||
echo(tile_size = tile_size, ring_count = ring_count, use_chip = use_chip);
|
||||
Loading…
Add table
Add a link
Reference in a new issue