86 lines
2.3 KiB
OpenSCAD
86 lines
2.3 KiB
OpenSCAD
include <BOSL2/std.scad>
|
|
|
|
// Parameter for console overwrite
|
|
b = 58;
|
|
t = 3;
|
|
h = 88;
|
|
name = "Cards";
|
|
|
|
module cardHolder(b, t, h, name) {
|
|
|
|
// floor
|
|
bInner = b - 10;
|
|
tInner = t - 10;
|
|
if (bInner >= 6 && tInner >= 6) {
|
|
difference() {
|
|
cube([ b, t, 1.5 ], 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);
|
|
for (i = [0:bAmount - 1], j = [0:tAmount - 1]) {
|
|
translate([ bSpace + i * 8, tSpace + j * 8, -1 ]) {
|
|
cube([ 6, 6, 3.5 ], false);
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
cube([ b, t, 1.5 ], false);
|
|
}
|
|
|
|
// left
|
|
translate([ 0, 0, 1.5 ]) {
|
|
cuboid([ 1.5, t, h - 1.5 ], anchor = [ -1, -1, -1 ],
|
|
rounding = min(10, t - 1.5), edges = FRONT + TOP);
|
|
}
|
|
|
|
// right
|
|
translate([ b - 1.5, 0, 1.5 ]) {
|
|
cuboid([ 1.5, t, h - 1.5 ], anchor = [ -1, -1, -1 ],
|
|
rounding = min(10, t - 1.5), edges = FRONT + TOP);
|
|
}
|
|
|
|
// back
|
|
translate([ 1.5, t - 1.5, 1.5 ]) {
|
|
cuboid([ 10, 1.5, h -1.5], anchor = [ -1, -1, -1 ], rounding = 5,
|
|
edges = RIGHT + TOP);
|
|
translate([ b - 13, 0, 0 ]) {
|
|
cuboid([ 10, 1.5, h - 1.5 ], anchor = [ -1, -1, -1 ], rounding = 5,
|
|
edges = LEFT + TOP);
|
|
}
|
|
translate([ 10, 0, 0 ]) {
|
|
difference() {
|
|
difference() {
|
|
cube([ b - 23, 1.5, h - 1 ], false);
|
|
translate([ 0, -1, 15 ]) {
|
|
cuboid([ b - 23, 3, h - 12 ], anchor = [ -1, -1, -1 ],
|
|
rounding = 10, edges = [ LEFT + BOTTOM, RIGHT + BOTTOM ]);
|
|
}
|
|
}
|
|
translate([ -1, -1, 35 ]) { cube([ b - 21, 3, h - 20 ], false); }
|
|
}
|
|
}
|
|
}
|
|
|
|
// front
|
|
translate([ 1, 0, 1 ]) {
|
|
difference() {
|
|
cuboid([ 10, 1.5, h - 21 ], anchor = [ -1, -1, -1 ], rounding = 5,
|
|
edges = RIGHT + TOP);
|
|
translate([ 7.5, 0.4, 2.5 ]) {
|
|
rotate([ 0, -90, 90 ]) {
|
|
linear_extrude(height = 0.6) {
|
|
text(name, size = 5, font = "Arial:style=Bold");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
translate([ b - 12, 0, 0 ]) {
|
|
cuboid([ 10, 1.5, h - 21 ], anchor = [ -1, -1, -1 ], rounding = 5,
|
|
edges = LEFT + TOP);
|
|
}
|
|
}
|
|
}
|
|
|
|
cardHolder(b + 5, t + 3, h + 4, name);
|