Files
BoardGameInlets/HeroesKeepOut/Box-Figures-Heroes.scad
Elias Schröter bd6ea68d9a format&heroes
cleanup the formaat and make heroes box
2026-04-29 15:45:31 +02:00

68 lines
1.7 KiB
OpenSCAD

include <BOSL2/std.scad>
difference() {
cube([ 175, 55, 37 ], false);
translate([ 1.5, 1.5, 1.5 ]) cube([ 172, 52, 36 ], false);
// windows
window(16.875, 55, "Neuling");
window(49.5, 55, "Krieger");
window(83.25, 55, "Schurkin");
window(113.5, 55, "Magier");
window(149.25, 55, "Bogenschützin");
}
// deviders
translate([ 8.25, 1.5, 1.5]) cube([1, 52, 5.5], false);
translate([ 27.5, 1.5, 1.5]) cube([1, 52, 5.5], false);
translate([ 38, 1.5, 1.5]) cube([1, 52, 5.5], false);
translate([ 63, 1.5, 1.5]) cube([1, 52, 5.5], false);
translate([ 73.25, 1.5, 1.5]) cube([1, 52, 5.5], false);
translate([ 95.25, 1.5, 1.5]) cube([1, 52, 5.5], false);
translate([ 99.25, 1.5, 1.5]) cube([1, 52, 5.5], false);
translate([ 129.75, 1.5, 1.5]) cube([1, 52, 5.5], false);
translate([ 137.5, 1.5, 1.5]) cube([1, 52, 5.5], false);
translate([ 163, 1.5, 1.5]) cube([1, 52, 5.5], false);
module window(x, y, name) {
windowHelper(x, 0, name);
windowHelper(x, y - 1, "");
}
module windowHelper(x, y, name) {
translate([ x - 10, y - 1, 12 ]) cuboid(
[ 23, 3.5, 26 ],
anchor = [-1, -1, -1],
rounding = 5,
edges = [
BOTTOM + LEFT,
BOTTOM + RIGHT
]
);
difference() {
translate([ x - 15, y - 1, 32 ]) cube([ 33, 3.5, 6 ], false);
translate([ x - 16, y - 1, 31 ]) cuboid(
[ 6, 3.5 , 6 ],
anchor = [-1, -1, -1],
rounding = 5,
edges = TOP + RIGHT
);
translate([ x + 13, y - 1, 31 ]) cuboid(
[ 6, 3.5 , 6 ],
anchor = [-1, -1, -1],
rounding = 5,
edges = TOP + LEFT
);
}
translate([ x + 1.5, y + 0.6, 6 ]) rotate([ 90, 0, 0 ]) linear_extrude(height = 1.6) text(
name,
size = 4,
font = "Arial:style=Bold",
halign="center",
valign="center"
);
}