Compare commits

...

3 Commits

Author SHA1 Message Date
7ee5c48e98 correct spacing again 2026-05-10 08:56:01 +02:00
bcbcc87ed8 adjust monster spacings 2026-05-07 19:02:09 +02:00
a91812def9 fix figure boxes 2026-05-07 15:15:36 +02:00
5 changed files with 88 additions and 27 deletions

View File

@@ -1,7 +1,7 @@
include <BOSL2/std.scad> include <BOSL2/std.scad>
boxHelper(45, 43.5, 53, "Sensenmann", "Steintroll", "König Schleim"); boxHelper(45, 39, 53, "Sensenmann", "Steintroll", "König Schleim");
translate([ 88.5, 43.5, 0 ]) zrot(180, cp=[0, 0, 0]) boxHelper(45, 43.5, 53, "Drache", "Gorgone", "Träumer"); translate([ 88.5, 39, 0 ]) zrot(180, cp=[0, 0, 0]) boxHelper(45, 39, 53, "Drache", "Gorgone", "Träumer");
module boxHelper(x, y, z, frontName, middleName, backName) { module boxHelper(x, y, z, frontName, middleName, backName) {
difference() { difference() {
@@ -31,16 +31,6 @@ module boxHelper(x, y, z, frontName, middleName, backName) {
halign="center" halign="center"
); );
} }
difference() {
union() {
translate([ 0, 14, 0 ]) cube([ x, 1.5, z ], false);
translate([ 0, 28, 0 ]) cube([ x, 1.5, z ], false);
}
windowHelper(x / 2, 14, z, "");
windowHelper(x / 2, 28, z, "");
}
} }
module window(x, y, z, frontName, backName) { module window(x, y, z, frontName, backName) {

View File

@@ -1,5 +1,5 @@
38,33,31.5,Geister 33,31,29,Geister
29,83,26.5,Pilze 26,82,25,Pilzknilche
38,53,27,Spinne 36,51,27,Spinnen
51,45,33.5,Werwolf 33,45,34,Werwolf
55,25,35.5,Vampir 21,53,35,Vampir

View File

@@ -4,11 +4,10 @@ include <BOSL2/std.scad>
x = 172; x = 172;
y = 84; y = 84;
z = 35.5; z = 35.5;
name = "Vampir";
figureHolder(x, y, z, name); figureHolder(x, y, z);
module figureHolder(x, y, z, name) { module figureHolder(x, y, z) {
difference() { difference() {
cube([ x, y, z ], false); cube([ x, y, z ], false);
translate([ 1.5, 1.5, 1.5 ]) cube([ x - 3, y - 3, z - 1 ], false); translate([ 1.5, 1.5, 1.5 ]) cube([ x - 3, y - 3, z - 1 ], false);
@@ -97,9 +96,8 @@ module figureHolder(x, y, z, name) {
translate([ 87.5, 55.5, 0 ]) cube([ 28, 1.5, 6.5], false); // Hexen translate([ 87.5, 55.5, 0 ]) cube([ 28, 1.5, 6.5], false); // Hexen
translate([ 87.5, 78, 0 ]) cube([ 28, 1.5, 6.5], false); // Hexen translate([ 87.5, 78, 0 ]) cube([ 28, 1.5, 6.5], false); // Hexen
translate([ 115.5, 57, 0 ]) cube([ 1.5, 22.5, 6.5], false); // Hexen translate([ 115.5, 57, 0 ]) cube([ 1.5, 22.5, 6.5], false); // Hexen
translate([ 123.5, 57, 0 ]) cube([ 1.5, 27, 6.5], false); // Feen translate([ 127, 57, 0 ]) cube([ 1.5, 27, 6.5], false); // Feen
translate([ 125, 81, 0 ]) cube([ 42, 1.5, 6.5], false); // Feen translate([ 128.5, 81.5, 0 ]) cube([ 42, 1.5, 6.5], false); // Feen
translate([ 167, 57, 0 ]) cube([ 1.5, 27, 6.5], false); // Feen
/* /*
*/ */

View File

@@ -0,0 +1,73 @@
include <BOSL2/std.scad>
x = 28;
y = 29;
z = 28;
name = "Figure";
figureBox(x + 3, y + 3, z + 1.5, name);
module figureBox(x, y, z, name) {
difference() {
cube([ x, y, z ], false);
translate([ 1.5, 1.5, 1.5 ]) cube([ x - 3, y - 3, z - 1 ], false);
// windows
window(x / 2, y, z, name, "");
// floor
xInner = x - 10;
yInner = y - 10;
if (xInner >= 6 && yInner >= 6) {
xSpace = 5 + (((xInner + 2) % 8) / 2);
xAmount = (((xInner + 2) - xSpace + 5) / 8);
ySpace = 5 + (((yInner + 2) % 8) / 2);
yAmount = (((yInner + 2) - ySpace + 5) / 8);
for (i = [0:xAmount - 1], j = [0:yAmount - 1]) translate([ xSpace + i * 8, ySpace + j * 8, -1 ]) cube([ 6, 6, 3.5 ], false);
}
}
}
module window(x, y, z, frontName, backName) {
windowHelper(x, 0, z, frontName);
zrot(180, cp=[x, y / 2, 0]) windowHelper(x, 0, z, backName);
}
module windowHelper(x, y, z, name) {
translate([ 7, y - 1, 8 ]) cuboid(
[ 2 * (x - 7), 3.5, z - 8 ],
anchor = [-1, -1, -1],
rounding = 3,
edges = [
BOTTOM + LEFT,
BOTTOM + RIGHT
]
);
difference() {
translate([ 1.5, y - 1, z - 5 ]) cube([ 2 * (x - 1.5), 3.5, 6 ], false);
translate([ 1, y - 1, z - 6 ]) cuboid(
[ 6, 3.5 , 6 ],
anchor = [-1, -1, -1],
rounding = 5,
edges = TOP + RIGHT
);
translate([ 2 * x - 7, y - 1, z - 6 ]) cuboid(
[ 6, 3.5 , 6 ],
anchor = [-1, -1, -1],
rounding = 5,
edges = TOP + LEFT
);
}
translate([ x, y + 0.6, 4 ]) rotate([ 90, 0, 0 ]) linear_extrude(height = 1.6) text(
name,
size = 4,
font = "Arial:style=Bold",
halign="center",
valign="center"
);
}

View File

@@ -28,12 +28,12 @@ difference() {
translate([ 6 , 6, 16.5 ]) cube([ 51, 26, 15 ]); // Helden translate([ 6 , 6, 16.5 ]) cube([ 51, 26, 15 ]); // Helden
translate([ 59.5 , 19, 14 ]) rotate(90, [ 0, 1, 0 ]) cylinder(h = 21, r = 13, center = false); // Portale translate([ 59.5 , 19, 14 ]) rotate(90, [ 0, 1, 0 ]) cylinder(h = 21, r = 13, center = false); // Portale
translate([ 59.5 , 6, 16.5 ]) cube([ 21, 26, 15 ]); // Portale translate([ 59.5 , 6, 16.5 ]) cube([ 21, 26, 15 ]); // Portale
translate([ 84 , 19, 14 ]) rotate(90, [ 0, 1, 0 ]) cylinder(h = 11, r = 13, center = false); // Rest rund translate([ 83 , 18.5, 14 ]) rotate(90, [ 0, 1, 0 ]) cylinder(h = 12, r = 13.5, center = false); // Rest rund
translate([ 84 , 6, 16.5 ]) cube([ 11, 26, 15 ]); // Rest rund translate([ 84 , 5.5, 16.5 ]) cube([ 11, 27, 15 ]); // Rest rund
translate([ 100, 15.5, 4.5 ]) cube([ 11, 19, 26 ], false); // Rest translate([ 100, 15.5, 4.5 ]) cube([ 11, 19, 26 ], false); // Rest
translate([ 110, 14.5, 1.5 ]) cube([ 2, 21, 29 ], false); // Rest translate([ 110, 14, 1.5 ]) cube([ 3, 22, 29 ], false); // Rest
translate([ 118, 14.5, 8.5 ]) cube([ 15, 21, 22 ], false); // Fässer translate([ 118, 14.5, 8.5 ]) cube([ 15, 21, 22 ], false); // Fässer
translate([ 138, 13.5, 1.5 ]) cube([ 33, 23, 29 ], false); // Truhe translate([ 137, 13, 1.5 ]) cube([ 34, 24, 29 ], false); // Truhe
union() { union() {
translate([ 4, 19, 29.5 ]) rotate(90, [ 0, 1, 0 ]) cylinder(h = 92.75, r = 7.5, center = false); translate([ 4, 19, 29.5 ]) rotate(90, [ 0, 1, 0 ]) cylinder(h = 92.75, r = 7.5, center = false);