68 lines
1.7 KiB
OpenSCAD
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"
|
|
);
|
|
}
|