Compare commits
5 Commits
2074bd832e
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
7ee5c48e98
|
|||
|
bcbcc87ed8
|
|||
|
a91812def9
|
|||
|
fc86c842d8
|
|||
|
961793c975
|
@@ -20,8 +20,8 @@ echo "Rendering Box-Figures-Heroes..."
|
||||
echo "Rendering Box-Figures-Big..."
|
||||
"$OPENSCAD" -o "$FOLDER/Box/Box-Figure-Big.stl" "./HeroesKeepOut/Box-Figure-Big.scad"
|
||||
|
||||
echo "Rendering Box-Figures-Monster-1..."
|
||||
"$OPENSCAD" -o "$FOLDER/Box/Box-Figure-Monster-1.stl" "./HeroesKeepOut/Box-Figure-Monster-1.scad"
|
||||
echo "Rendering Box-Figures-Monsters..."
|
||||
"$OPENSCAD" -o "$FOLDER/Box/Box-Figure-Monsters.stl" "./HeroesKeepOut/Box-Figure-Monsters.scad"
|
||||
|
||||
SCAD_FILE="./HeroesKeepOut/Box-Figure.scad"
|
||||
while IFS=',' read -r x y z name; do
|
||||
|
||||
42
Box-Lid.scad
42
Box-Lid.scad
@@ -1,36 +1,38 @@
|
||||
include <BOSL2/std.scad>
|
||||
|
||||
// Parameter for console overwrite
|
||||
b = 30.0;
|
||||
t = 30.0;
|
||||
x = 30.0;
|
||||
y = 30.0;
|
||||
|
||||
module lid(b, t) {
|
||||
bInner = b - 10;
|
||||
tInner = t - 10;
|
||||
boxLid(x, y);
|
||||
|
||||
if (bInner >= 6 && tInner >= 6) {
|
||||
module boxLid(x, y) {
|
||||
xInner = x - 10;
|
||||
yInner = y - 10;
|
||||
|
||||
if (xInner >= 6 && yInner >= 6) {
|
||||
difference() {
|
||||
cube([ b, t, 2 ], false);
|
||||
cube([ x, y, 2 ], false);
|
||||
|
||||
bSpace = 5 + (((bInner + 2) % 8) / 2);
|
||||
bAmount = (((bInner + 2) - bSpace + 5) / 8);
|
||||
tSpace = 5 + (((tInner + 2) % 8) / 2);
|
||||
tAmount = (((tInner + 2) - tSpace + 5) / 8);
|
||||
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:bAmount - 1], j = [0:tAmount - 1]) translate([ bSpace + i * 8, tSpace + j * 8, -1 ]) cube([ 6, 6, 3.5 ], false);
|
||||
for (i = [0:xAmount - 1], j = [0:yAmount - 1]) translate([ xSpace + i * 8, ySpace + j * 8, -1 ]) cube([ 6, 6, 3.5 ], false);
|
||||
}
|
||||
} else cube([ b, t, 2 ], false);
|
||||
} else cube([ x, y, 2 ], false);
|
||||
|
||||
sideCut(b,t);
|
||||
sideCut(y);
|
||||
|
||||
translate([b, 0, 0]) mirror([1, 0, 0]) sideCut(b,t);
|
||||
translate([ x, 0, 0 ]) mirror([ 1, 0, 0 ]) sideCut(y);
|
||||
}
|
||||
|
||||
module sideCut(b,t) {
|
||||
module sideCut(y) {
|
||||
difference() {
|
||||
translate([0,0,2]) cube([3, 0.75 * t - 2.5,6.6], false);
|
||||
translate([0,0,2]) cube([3, 0.75 * y - 2.5,6.6], false);
|
||||
|
||||
translate([2.3,t/4+2,0.5]) rotate([-90,-90,0]) linear_extrude(0.5 * t) polygon(points=[
|
||||
translate([2.3,y/4+2,0.5]) rotate([-90,-90,0]) linear_extrude(0.5 * y) polygon(points=[
|
||||
[-1,-1],
|
||||
[-1,1],
|
||||
[7, 1],
|
||||
@@ -38,7 +40,5 @@ module sideCut(b,t) {
|
||||
]);
|
||||
}
|
||||
|
||||
translate([0,0,2]) cube([1.4, t, 3.4], false);
|
||||
translate([0,0,2]) cube([1.4, y, 3.4], false);
|
||||
}
|
||||
|
||||
lid(b, t);
|
||||
|
||||
32
Box.scad
32
Box.scad
@@ -1,15 +1,17 @@
|
||||
include <BOSL2/std.scad>
|
||||
|
||||
// Parameter for console overwrite
|
||||
b = 30.0;
|
||||
t = 30.0;
|
||||
h = 20.0;
|
||||
x = 30.0;
|
||||
y = 30.0;
|
||||
z = 20.0;
|
||||
|
||||
module box(b, t, h) {
|
||||
box(x, y, z);
|
||||
|
||||
module box(x, y, z) {
|
||||
difference() {
|
||||
// base
|
||||
cuboid(
|
||||
[ b, t, h - 2],
|
||||
[ x, y, z - 2],
|
||||
anchor = [ -1, -1, -1 ],
|
||||
rounding = 1,
|
||||
edges = [
|
||||
@@ -23,7 +25,7 @@ module box(b, t, h) {
|
||||
|
||||
// inner
|
||||
translate([ 5, 1.5, 1.5 ]) cuboid(
|
||||
[ b - 10, t - 3, h - 0.5 ],
|
||||
[ x - 10, y - 3, z - 0.5 ],
|
||||
anchor = [ -1, -1, -1 ],
|
||||
rounding = 8,
|
||||
edges = [
|
||||
@@ -38,15 +40,15 @@ module box(b, t, h) {
|
||||
]
|
||||
);
|
||||
|
||||
sideCut(t); // left lower
|
||||
translate([0, 0, h - 2]) mirror([0, 0, 1]) sideCut(t); // left upper
|
||||
translate([b, 0, 0]) mirror([1, 0, 0]) sideCut(t); // right lower
|
||||
translate([b, 0, h - 2]) mirror([1, 0, 0]) mirror([0, 0, 1]) sideCut(t); // right upper
|
||||
sideCut(y); // left lower
|
||||
translate([0, 0, z - 2]) mirror([0, 0, 1]) sideCut(y); // left upper
|
||||
translate([x, 0, 0]) mirror([1, 0, 0]) sideCut(y); // right lower
|
||||
translate([x, 0, z - 2]) mirror([1, 0, 0]) mirror([0, 0, 1]) sideCut(y); // right upper
|
||||
}
|
||||
}
|
||||
|
||||
module sideCut(t) {
|
||||
translate([0,-1,0]) rotate([-90,-90,0]) linear_extrude(t/4+4) polygon(points=[
|
||||
module sideCut(y) {
|
||||
translate([0,-1,0]) rotate([-90,-90,0]) linear_extrude(y/4+4) polygon(points=[
|
||||
[-1,-1],
|
||||
[-1,2.1],
|
||||
[3.05, 2.1],
|
||||
@@ -54,14 +56,14 @@ module sideCut(t) {
|
||||
]);
|
||||
|
||||
difference() {
|
||||
translate([0,t/4+2,0]) rotate([-90,-90,0]) linear_extrude(0.75 * t) polygon(points=[
|
||||
translate([0,y/4+2,0]) rotate([-90,-90,0]) linear_extrude(0.75 * y) polygon(points=[
|
||||
[-1,-1],
|
||||
[-1,3.45],
|
||||
[7.15, 3.45],
|
||||
[11.45,-1]
|
||||
]);
|
||||
|
||||
translate([2.45,0.75 * t - 2.4, 0]) rotate([90,-90,0]) linear_extrude(0.4 * t + 5) polygon(points=[
|
||||
translate([2.45,0.75 * y - 2.4, 0]) rotate([90,-90,0]) linear_extrude(0.4 * y + 5) polygon(points=[
|
||||
[-1,-1],
|
||||
[-1,0.35],
|
||||
[3.05, 0.35],
|
||||
@@ -69,5 +71,3 @@ module sideCut(t) {
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
box(b, t, h);
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
include <BOSL2/std.scad>
|
||||
|
||||
boxHelper(45, 53, "Reaper", "Zyklop", "Megaslime");
|
||||
translate([ 88.5, 39, 0 ]) zrot(180, cp=[0, 0, 0]) boxHelper(45, 53, "Drache", "Medusa", "Träumer");
|
||||
boxHelper(45, 39, 53, "Sensenmann", "Steintroll", "König Schleim");
|
||||
translate([ 88.5, 39, 0 ]) zrot(180, cp=[0, 0, 0]) boxHelper(45, 39, 53, "Drache", "Gorgone", "Träumer");
|
||||
|
||||
module boxHelper(x, z, frontName, middleName, backName) {
|
||||
module boxHelper(x, y, z, frontName, middleName, backName) {
|
||||
difference() {
|
||||
cube([ x, 39, z ], false);
|
||||
translate([ 1.5, 1.5, 1.5 ]) cube([ x - 3, 36, z - 1 ], false);
|
||||
cube([ x, y, z ], false);
|
||||
translate([ 1.5, 1.5, 1.5 ]) cube([ x - 3, y - 3, z - 1 ], false);
|
||||
|
||||
// windows
|
||||
window(x / 2, 39, z, "Schleim", "Reaper");
|
||||
window(x / 2, y, z, frontName, backName);
|
||||
|
||||
// floor
|
||||
xInner = x - 10;
|
||||
yInner = 39 - 10;
|
||||
yInner = y - 10;
|
||||
|
||||
if (xInner >= 6 && yInner >= 6) {
|
||||
xSpace = 5 + (((xInner + 2) % 8) / 2);
|
||||
@@ -31,16 +31,6 @@ module boxHelper(x, z, frontName, middleName, backName) {
|
||||
halign="center"
|
||||
);
|
||||
}
|
||||
|
||||
difference() {
|
||||
union() {
|
||||
translate([ 0, 12.5, 0 ]) cube([ x, 1.5, z ], false);
|
||||
translate([ 0, 25, 0 ]) cube([ x, 1.5, z ], false);
|
||||
}
|
||||
|
||||
windowHelper(x / 2, 12.5, z, "");
|
||||
windowHelper(x / 2, 25, z, "");
|
||||
}
|
||||
}
|
||||
|
||||
module window(x, y, z, frontName, backName) {
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
32,83,28.5,Schleim
|
||||
31,73,34.5,Unholde
|
||||
28,63,29.5,Skelette
|
||||
29,53,27.5,Echsenvolk
|
||||
39,23,33.5,Hexen
|
||||
38,33,31.5,Geister
|
||||
31,43,34.5,Gnolle
|
||||
29,83,26.5,Pilze
|
||||
38,53,27,Spinne
|
||||
30,93,25.5,Rattenvolk
|
||||
27,43,26.5,Hellgrün
|
||||
51,45,33.5,Werwolf
|
||||
55,25,35.5,Vampir
|
||||
33,31,29,Geister
|
||||
26,82,25,Pilzknilche
|
||||
36,51,27,Spinnen
|
||||
33,45,34,Werwolf
|
||||
21,53,35,Vampir
|
||||
|
||||
@@ -4,11 +4,10 @@ include <BOSL2/std.scad>
|
||||
x = 172;
|
||||
y = 84;
|
||||
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() {
|
||||
cube([ x, y, z ], 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, 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([ 123.5, 57, 0 ]) cube([ 1.5, 27, 6.5], false); // Feen
|
||||
translate([ 125, 81, 0 ]) cube([ 42, 1.5, 6.5], false); // Feen
|
||||
translate([ 167, 57, 0 ]) cube([ 1.5, 27, 6.5], false); // Feen
|
||||
translate([ 127, 57, 0 ]) cube([ 1.5, 27, 6.5], false); // Feen
|
||||
translate([ 128.5, 81.5, 0 ]) cube([ 42, 1.5, 6.5], false); // Feen
|
||||
|
||||
/*
|
||||
*/
|
||||
73
HeroesKeepOut/Box-Figure.scad
Normal file
73
HeroesKeepOut/Box-Figure.scad
Normal 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"
|
||||
);
|
||||
}
|
||||
@@ -3,9 +3,9 @@ use <../Box-Lid.scad>
|
||||
|
||||
difference() {
|
||||
union() {
|
||||
lid(178, 38);
|
||||
translate([92.95, 21.2, 0]) cube([85.1, 16.8, 2], false); // frame area around card pocket
|
||||
boxLid(178, 38);
|
||||
translate([ 92.95, 21.2, 0 ]) cube([ 85.1, 16.8, 2 ], false); // frame area around card pocket
|
||||
}
|
||||
|
||||
translate([96.75, 26, -1]) cube([81.4, 13, 41], false); // clean area for card pocket
|
||||
translate([ 96.75, 26, -1 ]) cube([ 81.4, 13, 41 ], false); // clean area for card pocket
|
||||
}
|
||||
|
||||
@@ -28,16 +28,16 @@ difference() {
|
||||
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 , 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([ 84 , 6, 16.5 ]) cube([ 11, 26, 15 ]); // Rest rund
|
||||
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([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([ 83 , 18.5, 14 ]) rotate(90, [ 0, 1, 0 ]) cylinder(h = 12, r = 13.5, center = false); // 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([ 110, 14, 1.5 ]) cube([ 3, 22, 29 ], false); // Rest
|
||||
translate([ 118, 14.5, 8.5 ]) cube([ 15, 21, 22 ], false); // Fässer
|
||||
translate([ 137, 13, 1.5 ]) cube([ 34, 24, 29 ], false); // Truhe
|
||||
|
||||
union() {
|
||||
translate([4, 19, 29.5]) rotate(90, [ 0, 1, 0 ]) cylinder(h = 92.75, r = 7.5, center = false);
|
||||
translate([95, 25, 29.5]) rotate(90, [ 0, 1, 0 ]) cylinder(h = 79, r = 7.5, center = false);
|
||||
translate([ 4, 19, 29.5 ]) rotate(90, [ 0, 1, 0 ]) cylinder(h = 92.75, r = 7.5, center = false);
|
||||
translate([ 94.9, 25, 29.5 ]) rotate(90, [ 0, 1, 0 ]) cylinder(h = 79.1, r = 7.5, center = false);
|
||||
}
|
||||
|
||||
// clean area for card pocket
|
||||
|
||||
Reference in New Issue
Block a user