format&heroes
cleanup the formaat and make heroes box
This commit is contained in:
@@ -5,6 +5,18 @@ FOLDER=STL/HeroesKeepOut
|
|||||||
mkdir -p STL
|
mkdir -p STL
|
||||||
mkdir -p $FOLDER
|
mkdir -p $FOLDER
|
||||||
|
|
||||||
|
# ── Boxes ─────────────────────────────────────────────────────────────
|
||||||
|
echo "Rendering Box-Items..."
|
||||||
|
"$OPENSCAD" -o "$FOLDER/Box-Items.stl" "./HeroesKeepOut/Box-Items.scad"
|
||||||
|
"$OPENSCAD" -o "$FOLDER/Box-Items-Lid.stl" "./HeroesKeepOut/Box-Items-Lid.scad"
|
||||||
|
|
||||||
|
echo "Rendering Box-Heroes..."
|
||||||
|
"$OPENSCAD" -o "$FOLDER/Box-Heroes.stl" "./HeroesKeepOut/Box-Heroes.scad"
|
||||||
|
"$OPENSCAD" -o "$FOLDER/Box-Heroes-Lid.stl" "./HeroesKeepOut/Box-Heroes-Lid.scad"
|
||||||
|
|
||||||
|
echo "Rendering Box-Figures-Heroes..."
|
||||||
|
"$OPENSCAD" -o "$FOLDER/Box-Figures-Heroes.stl" "./HeroesKeepOut/Box-Figures-Heroes.scad"
|
||||||
|
|
||||||
# ── Cards ─────────────────────────────────────────────────────────────
|
# ── Cards ─────────────────────────────────────────────────────────────
|
||||||
while IFS=',' read -r b t h name; do
|
while IFS=',' read -r b t h name; do
|
||||||
# Remove quotes around name, replace spaces with -
|
# Remove quotes around name, replace spaces with -
|
||||||
@@ -19,6 +31,3 @@ while IFS=',' read -r b t h name; do
|
|||||||
-D "name=\"$name\"" \
|
-D "name=\"$name\"" \
|
||||||
-o "$output" "$SCAD_FILE"
|
-o "$output" "$SCAD_FILE"
|
||||||
done <./HeroesKeepOut/cardConfigs.txt
|
done <./HeroesKeepOut/cardConfigs.txt
|
||||||
|
|
||||||
echo "Rendering $output..."
|
|
||||||
"$OPENSCAD" -o "$output" "$SCAD_FILE"
|
|
||||||
|
|||||||
44
Box-Lid.scad
Normal file
44
Box-Lid.scad
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
include <BOSL2/std.scad>
|
||||||
|
|
||||||
|
// Parameter for console overwrite
|
||||||
|
b = 30.0;
|
||||||
|
t = 30.0;
|
||||||
|
|
||||||
|
module lid(b, t) {
|
||||||
|
bInner = b - 10;
|
||||||
|
tInner = t - 10;
|
||||||
|
|
||||||
|
if (bInner >= 6 && tInner >= 6) {
|
||||||
|
difference() {
|
||||||
|
cube([ b, t, 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);
|
||||||
|
|
||||||
|
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, 2 ], false);
|
||||||
|
|
||||||
|
sideCut(b,t);
|
||||||
|
|
||||||
|
translate([b, 0, 0]) mirror([1, 0, 0]) sideCut(b,t);
|
||||||
|
}
|
||||||
|
|
||||||
|
module sideCut(b,t) {
|
||||||
|
difference() {
|
||||||
|
translate([0,0,2]) cube([3, 0.75 * t - 2.5,6.6], false);
|
||||||
|
|
||||||
|
translate([2.3,t/4+2,0.5]) rotate([-90,-90,0]) linear_extrude(0.5 * t) polygon(points=[
|
||||||
|
[-1,-1],
|
||||||
|
[-1,1],
|
||||||
|
[7, 1],
|
||||||
|
[5.1,-1]
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([0,0,2]) cube([1.4, t, 3.4], false);
|
||||||
|
}
|
||||||
|
|
||||||
|
lid(b, t);
|
||||||
101
Box.scad
101
Box.scad
@@ -3,82 +3,71 @@ include <BOSL2/std.scad>
|
|||||||
// Parameter for console overwrite
|
// Parameter for console overwrite
|
||||||
b = 30.0;
|
b = 30.0;
|
||||||
t = 30.0;
|
t = 30.0;
|
||||||
h = 30.0;
|
h = 20.0;
|
||||||
|
|
||||||
module box(b, t, h) {
|
module box(b, t, h) {
|
||||||
difference() {
|
difference() {
|
||||||
// base
|
// base
|
||||||
cuboid(
|
cuboid(
|
||||||
[ b, t, h],
|
[ b, t, h - 2],
|
||||||
anchor = [ -1, -1, -1 ],
|
anchor = [ -1, -1, -1 ],
|
||||||
rounding = 1,
|
rounding = 1,
|
||||||
edges = [ TOP, FRONT + LEFT, FRONT + RIGHT, BACK + LEFT, BACK + RIGHT ]
|
edges = [
|
||||||
|
TOP,
|
||||||
|
FRONT + LEFT,
|
||||||
|
FRONT + RIGHT,
|
||||||
|
BACK + LEFT,
|
||||||
|
BACK + RIGHT
|
||||||
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
// inner
|
// inner
|
||||||
translate([ 5, 1.5, 1.5 ]) {
|
translate([ 5, 1.5, 1.5 ]) cuboid(
|
||||||
cuboid(
|
|
||||||
[ b - 10, t - 3, h - 0.5 ],
|
[ b - 10, t - 3, h - 0.5 ],
|
||||||
anchor = [ -1, -1, -1 ],
|
anchor = [ -1, -1, -1 ],
|
||||||
rounding = 8,
|
rounding = 8,
|
||||||
edges = [ BOTTOM + FRONT, BOTTOM + LEFT, BOTTOM + BACK, BOTTOM + RIGHT, FRONT + LEFT, FRONT + RIGHT, BACK + LEFT, BACK + RIGHT ]
|
edges = [
|
||||||
|
BOTTOM + FRONT,
|
||||||
|
BOTTOM + LEFT,
|
||||||
|
BOTTOM + BACK,
|
||||||
|
BOTTOM + RIGHT,
|
||||||
|
FRONT + LEFT,
|
||||||
|
FRONT + RIGHT,
|
||||||
|
BACK + LEFT,
|
||||||
|
BACK + RIGHT
|
||||||
|
]
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
// left lower
|
sideCut(t); // left lower
|
||||||
sideCut(b,t);
|
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
|
||||||
// left upper
|
translate([b, 0, h - 2]) mirror([1, 0, 0]) mirror([0, 0, 1]) sideCut(t); // right upper
|
||||||
translate([0, 0, h]) {
|
|
||||||
mirror([0, 0, 1]) {
|
|
||||||
sideCut(b, t);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// right lower
|
module sideCut(t) {
|
||||||
translate([b, 0, 0]) {
|
translate([0,-1,0]) rotate([-90,-90,0]) linear_extrude(t/4+4) polygon(points=[
|
||||||
mirror([1, 0, 0]) {
|
[-1,-1],
|
||||||
sideCut(b,t);
|
[-1,2.1],
|
||||||
}
|
[3.05, 2.1],
|
||||||
}
|
[6.35,-1]
|
||||||
|
]);
|
||||||
// right upper
|
|
||||||
translate([b, 0, h]) {
|
|
||||||
mirror([1, 0, 0]) {
|
|
||||||
mirror([0, 0, 1]) {
|
|
||||||
sideCut(b, t);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module sideCut(b,t) {
|
|
||||||
translate([0,-1,0]) {
|
|
||||||
rotate([-90,-90,0]) {
|
|
||||||
linear_extrude(t/4+4) {
|
|
||||||
polygon(points=[[-1,-1], [-1,1.85], [3.35, 1.85], [6.35,-1]]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
difference() {
|
difference() {
|
||||||
translate([0,t/4+2,0]) {
|
translate([0,t/4+2,0]) rotate([-90,-90,0]) linear_extrude(0.75 * t) polygon(points=[
|
||||||
rotate([-90,-90,0]) {
|
[-1,-1],
|
||||||
linear_extrude(0.75 * t) {
|
[-1,3.45],
|
||||||
polygon(points=[[-1,-1], [-1,3.45], [7.15, 3.45], [11.45,-1]]);
|
[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=[
|
||||||
|
[-1,-1],
|
||||||
|
[-1,0.35],
|
||||||
|
[3.05, 0.35],
|
||||||
|
[4.65,-1]
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
translate([2.45,0.75 * t - 2.4, 0]) {
|
box(b, t, h);
|
||||||
rotate([90,-90,0]) {
|
|
||||||
linear_extrude(0.4 * t + 5) {
|
|
||||||
polygon(points=[[-1,-1], [-1,0.35], [3.05, 0.35], [4.65,-1]]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
box(b, t, h - 2);
|
|
||||||
|
|||||||
58
BoxLid.scad
58
BoxLid.scad
@@ -1,58 +0,0 @@
|
|||||||
include <BOSL2/std.scad>
|
|
||||||
|
|
||||||
// Parameter for console overwrite
|
|
||||||
b = 30.0;
|
|
||||||
t = 30.0;
|
|
||||||
|
|
||||||
module box(b, t) {
|
|
||||||
bInner = b - 10;
|
|
||||||
tInner = t - 10;
|
|
||||||
|
|
||||||
if (bInner >= 6 && tInner >= 6) {
|
|
||||||
difference() {
|
|
||||||
cube([ b, t, 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);
|
|
||||||
|
|
||||||
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, 2 ], false);
|
|
||||||
}
|
|
||||||
sideCut(b,t);
|
|
||||||
|
|
||||||
translate([b, 0, 0]) {
|
|
||||||
mirror([1, 0, 0]) {
|
|
||||||
sideCut(b,t);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module sideCut(b,t) {
|
|
||||||
difference() {
|
|
||||||
translate([0,0,2]) {
|
|
||||||
cube([3, 0.75 * t - 2.5,6.6], false);
|
|
||||||
}
|
|
||||||
|
|
||||||
translate([2.3,t/4+2,0.5]) {
|
|
||||||
rotate([-90,-90,0]) {
|
|
||||||
linear_extrude(0.5 * t) {
|
|
||||||
polygon(points=[[-1,-1], [-1,1], [7, 1], [5.1,-1]]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
translate([0,0,2]) {
|
|
||||||
cube([1.4, t, 3.4], false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
box(b, t);
|
|
||||||
67
HeroesKeepOut/Box-Figures-Heroes.scad
Normal file
67
HeroesKeepOut/Box-Figures-Heroes.scad
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
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"
|
||||||
|
);
|
||||||
|
}
|
||||||
11
HeroesKeepOut/Box-Heroes-Lid.scad
Normal file
11
HeroesKeepOut/Box-Heroes-Lid.scad
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
include <BOSL2/std.scad>
|
||||||
|
use <../Box-Lid.scad>
|
||||||
|
|
||||||
|
difference() {
|
||||||
|
union() {
|
||||||
|
lid(140, 38);
|
||||||
|
translate([54.95, 21.2, 0]) cube([85.1, 16.8, 2], false); // frame area around card pocket
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([58.75, 26, -1]) cube([81.4, 13, 41], false); // clean area for card pocket
|
||||||
|
}
|
||||||
@@ -1,68 +1,40 @@
|
|||||||
include <BOSL2/std.scad>
|
include <BOSL2/std.scad>
|
||||||
|
use <../Box.scad>
|
||||||
|
|
||||||
// Parameter for console overwrite
|
|
||||||
b = 178;
|
|
||||||
t = 38;
|
|
||||||
h = 20;
|
|
||||||
|
|
||||||
module box(b, t, h) {
|
|
||||||
difference() {
|
difference() {
|
||||||
difference() {
|
difference() {
|
||||||
// base
|
// base
|
||||||
cuboid([ b, t, h], anchor = [ -1, -1, -1 ],rounding = 1,edges = [ TOP, FRONT + LEFT, FRONT + RIGHT, BACK + LEFT, BACK + RIGHT ]);
|
cuboid(
|
||||||
|
[ 140, 38, 18],
|
||||||
|
anchor = [ -1, -1, -1 ],
|
||||||
|
rounding = 1,
|
||||||
|
edges = [
|
||||||
|
TOP,
|
||||||
|
FRONT + LEFT,
|
||||||
|
FRONT + RIGHT,
|
||||||
|
BACK + LEFT,
|
||||||
|
BACK + RIGHT
|
||||||
|
]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// left lower
|
sideCut(43); // left lower
|
||||||
sideCut(b,t);
|
translate([0, 0, 18]) mirror([0, 0, 1]) sideCut(43); // left upper
|
||||||
// left upper
|
translate([140, 0, 0]) mirror([1, 0, 0]) sideCut(43); // right lower
|
||||||
translate([0, 0, h]) mirror([0, 0, 1]) sideCut(b, t);
|
translate([140, 0, 18]) mirror([1, 0, 0]) mirror([0, 0, 1]) sideCut(43); // right upper
|
||||||
// right lower
|
|
||||||
translate([b, 0, 0]) mirror([1, 0, 0]) sideCut(b,t);
|
|
||||||
// right upper
|
|
||||||
translate([b, 0, h]) mirror([1, 0, 0]) mirror([0, 0, 1]) sideCut(b, t);
|
|
||||||
|
|
||||||
// inner
|
// inner
|
||||||
translate([ 21, 19, h-11 ]) cylinder(h = 12, r = 13, center = false);
|
translate([16.5, 18.5, 7]) cylinder(h = 12, r = 13, center = false);
|
||||||
translate([14, -1, h-11]) cube([14, t + 2, 18.5], false);
|
translate([9.5, -1, 7]) cube([14, 46, 18.5], false);
|
||||||
translate([ 55, 19, h-11 ]) cylinder(h = 12, r = 13, center = false);
|
translate([43, 18.5, 7]) cylinder(h = 12, r = 13, center = false);
|
||||||
translate([49, -1, h-11]) cube([14, t + 2, 18.5], false);
|
translate([36, -1, 7]) cube([14, 46, 18.5], false);
|
||||||
translate([ 89, 23, h-11 ]) cylinder(h = 12, r = 13, center = false);
|
translate([70, 24.5, 7]) cylinder(h = 12, r = 13, center = false);
|
||||||
translate([83, -1, h-11]) cube([14, t + 2, 18.5], false);
|
translate([63, -1, 7]) cube([14, 46, 18.5], false);
|
||||||
translate([ 123, 25, h-11 ]) cylinder(h = 12, r = 13, center = false);
|
translate([97, 24.5, 7]) cylinder(h = 12, r = 13, center = false);
|
||||||
translate([117, -1, h-11]) cube([14, t + 2, 18.5], false);
|
translate([90, -1, 7]) cube([14, 46, 18.5], false);
|
||||||
translate([ 157, 25, h-11 ]) cylinder(h = 12, r = 13, center = false);
|
translate([123.5, 24.5, 7]) cylinder(h = 12, r = 13, center = false);
|
||||||
translate([151, -1, h-11]) cube([14, t + 2, 18.5], false);
|
translate([116.5, -1, 7]) cube([14, 46, 18.5], false);
|
||||||
|
|
||||||
// clean area for card pocket
|
// clean area for card pocket
|
||||||
translate([b- 79, -1, -1]) cube([80, 13, 41], false);
|
translate([58.75, -1, -1]) cube([81.4, 13, 41], false);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
module sideCut(b,t) {
|
|
||||||
translate([0,-1,0]) {
|
|
||||||
rotate([-90,-90,0]) {
|
|
||||||
linear_extrude(t/4+4) {
|
|
||||||
polygon(points=[[-1,-1], [-1,1.6], [3.1, 1.6], [6.1,-1]]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
difference() {
|
|
||||||
translate([0,t/4+2,0]) {
|
|
||||||
rotate([-90,-90,0]) {
|
|
||||||
linear_extrude(0.75 * t) {
|
|
||||||
polygon(points=[[-1,-1], [-1,3.2], [6.9, 3.2], [11.2,-1]]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
translate([2.2,0.75 * t - 2.4, 0]) {
|
|
||||||
rotate([90,-90,0]) {
|
|
||||||
linear_extrude(0.4 * t + 5) {
|
|
||||||
polygon(points=[[-1,-1], [-1,0.6], [3.3, 0.6], [4.9,-1]]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
box(b, t, h);
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,66 +1,11 @@
|
|||||||
include <BOSL2/std.scad>
|
include <BOSL2/std.scad>
|
||||||
|
use <../Box-Lid.scad>
|
||||||
|
|
||||||
// Parameter for console overwrite
|
|
||||||
b = 178;
|
|
||||||
t = 38;
|
|
||||||
h = 20;
|
|
||||||
|
|
||||||
module box(b, t) {
|
|
||||||
bInner = b - 10;
|
|
||||||
tInner = t - 10;
|
|
||||||
difference() {
|
difference() {
|
||||||
union() {
|
union() {
|
||||||
if (bInner >= 6 && tInner >= 6) {
|
lid(178, 38);
|
||||||
difference() {
|
translate([92.95, 21.2, 0]) cube([85.1, 16.8, 2], false); // frame area around card pocket
|
||||||
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);
|
|
||||||
}
|
|
||||||
sideCut(b,t);
|
|
||||||
translate([b, 0, 0]) {
|
|
||||||
mirror([1, 0, 0]) {
|
|
||||||
sideCut(b,t);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// frame area around card pocket
|
|
||||||
translate([b-83, t - 16, 0]) {
|
|
||||||
cube([83, 16, 1.5], false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// clean area for card pocket
|
translate([96.75, 26, -1]) cube([81.4, 13, 41], false); // clean area for card pocket
|
||||||
translate([b-79, t - 12, -1]) {
|
|
||||||
cube([80, 13, 41], false);
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module sideCut(b,t) {
|
|
||||||
difference() {
|
|
||||||
translate([0,0,1.5]) {
|
|
||||||
cube([3, 0.75 * t - 2.5,6.6], false);
|
|
||||||
}
|
|
||||||
translate([2.3,t/4+2,0]) {
|
|
||||||
rotate([-90,-90,0]) {
|
|
||||||
linear_extrude(0.5 * t) {
|
|
||||||
polygon(points=[[-1,-1], [-1,1], [7, 1], [5.1,-1]]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
translate([0,0,1.5]) {
|
|
||||||
cube([1.4, t, 3.4], false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
box(b, t);
|
|
||||||
|
|||||||
@@ -1,118 +1,54 @@
|
|||||||
include <BOSL2/std.scad>
|
include <BOSL2/std.scad>
|
||||||
|
use <../Box.scad>
|
||||||
|
|
||||||
// Parameter for console overwrite
|
|
||||||
b = 178;
|
|
||||||
t = 38;
|
|
||||||
h = 20;
|
|
||||||
|
|
||||||
module box(b, t, h) {
|
|
||||||
difference() {
|
difference() {
|
||||||
difference() {
|
box(178, 38, 20);
|
||||||
// base
|
translate([96.75, -1, -1]) cube([79.4, 13, 41], false); // clean area for card pocket
|
||||||
cuboid([ b, t, h], anchor = [ -1, -1, -1 ],rounding = 1,edges = [ TOP, FRONT + LEFT, FRONT + RIGHT, BACK + LEFT, BACK + RIGHT ]);
|
|
||||||
|
|
||||||
// inner
|
|
||||||
translate([ 5, 1.5, 1.5 ]) {
|
|
||||||
cuboid([ b - 10, t - 3, h - 0.5 ], anchor = [ -1, -1, -1 ],
|
|
||||||
rounding = 8, edges = [ BOTTOM + FRONT, BOTTOM + LEFT, BOTTOM + BACK, BOTTOM + RIGHT, FRONT + LEFT, FRONT + RIGHT, BACK + LEFT, BACK + RIGHT ]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// left lower
|
|
||||||
sideCut(b,t);
|
|
||||||
// left upper
|
|
||||||
translate([0, 0, h]) {
|
|
||||||
mirror([0, 0, 1]) {
|
|
||||||
sideCut(b, t);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// right lower
|
|
||||||
translate([b, 0, 0]) {
|
|
||||||
mirror([1, 0, 0]) {
|
|
||||||
sideCut(b,t);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// right upper
|
|
||||||
translate([b, 0, h]) {
|
|
||||||
mirror([1, 0, 0]) {
|
|
||||||
mirror([0, 0, 1]) {
|
|
||||||
sideCut(b, t);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// clean area for card pocket
|
|
||||||
translate([b- 79, -1, -1]) {
|
|
||||||
cube([77.4, 13, 41], false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// deviders
|
// deviders
|
||||||
translate([150, 12, 1.5]) {
|
translate([154, 12, 1.5]) cube([1, 24.5, 16.5], false);
|
||||||
cube([1, 24.5, 18.5], false);
|
translate([129, 12, 1.5]) cube([1, 24.5, 16.5], false);
|
||||||
}
|
translate([104, 12, 1.5]) cube([1, 24.5, 16.5], false);
|
||||||
translate([127, 12, 1.5]) {
|
translate([79, 1.5, 1.5]) cube([1, 35, 16.5], false);
|
||||||
cube([1, 24.5, 18.5], false);
|
translate([54, 1.5, 1.5]) cube([1, 35, 16.5], false);
|
||||||
}
|
|
||||||
translate([104, 12, 1.5]) {
|
|
||||||
cube([1, 24.5, 18.5], false);
|
|
||||||
}
|
|
||||||
translate([81, 1.5, 1.5]) {
|
|
||||||
cube([1, 35, 18.5], false);
|
|
||||||
}
|
|
||||||
translate([58, 1.5, 1.5]) {
|
|
||||||
cube([1, 35, 18.5], false);
|
|
||||||
}
|
|
||||||
|
|
||||||
// card pocket
|
// card pocket
|
||||||
translate([b- 80, 0, ]) {
|
|
||||||
difference() {
|
difference() {
|
||||||
cube([78.4, 12, 40], false);
|
translate([96.75, 0, 0]) {
|
||||||
translate([1.5, -1, 1.5]) {
|
difference() {
|
||||||
cube([75.4, 11.5, 41], false);
|
cube([79.4, 12, 40], false);
|
||||||
}
|
translate([1.5, -1, 1.5]) cube([76.4, 11.5, 41], false);
|
||||||
}
|
|
||||||
translate([1.5, 0, 1.5]) {
|
|
||||||
cuboid([6, 1.5, 38.5], anchor = [-1, -1, -1], rounding = 5, edges = TOP + RIGHT);
|
|
||||||
}
|
|
||||||
translate([70.9, 0, 1.5]) {
|
|
||||||
cuboid([6, 1.5, 38.5], anchor = [-1, -1, -1], rounding = 5, edges = TOP + LEFT);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
translate([1.5, 0, 1.5]) cuboid(
|
||||||
|
[6, 1.5, 38.5],
|
||||||
|
anchor = [-1, -1, -1],
|
||||||
|
rounding = 5,
|
||||||
|
edges = TOP + RIGHT
|
||||||
|
);
|
||||||
|
|
||||||
|
translate([71.9, 0, 1.5]) cuboid(
|
||||||
|
[6, 1.5, 38.5],
|
||||||
|
anchor = [-1, -1, -1],
|
||||||
|
rounding = 5, edges = TOP + LEFT
|
||||||
|
);
|
||||||
|
|
||||||
translate([7.5, 0, 1.5]) {
|
translate([7.5, 0, 1.5]) {
|
||||||
difference() {
|
difference() {
|
||||||
cube([63.4, 1.5, 11], false);
|
cube([64.4, 1.5, 11], false);
|
||||||
translate([0, -1, 6]) {
|
translate([0, -1, 6]) cuboid(
|
||||||
cuboid([63.4, 4.5, 6], anchor = [-1, -1, -1], rounding = 5, edges = [ BOTTOM + LEFT, BOTTOM + RIGHT]);
|
[64.4, 4.5, 6],
|
||||||
}
|
anchor = [-1, -1, -1],
|
||||||
}
|
rounding = 5,
|
||||||
|
edges = [
|
||||||
|
BOTTOM + LEFT,
|
||||||
|
BOTTOM + RIGHT
|
||||||
|
]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module sideCut(b,t) {
|
translate([178, 0, 0]) mirror([1, 0, 0]) sideCut(43);
|
||||||
translate([0,-1,0]) {
|
|
||||||
rotate([-90,-90,0]) {
|
|
||||||
linear_extrude(t/4+4) {
|
|
||||||
polygon(points=[[-1,-1], [-1,1.6], [3.1, 1.6], [6.1,-1]]);
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
difference() {
|
|
||||||
translate([0,t/4+2,0]) {
|
|
||||||
rotate([-90,-90,0]) {
|
|
||||||
linear_extrude(0.75 * t) {
|
|
||||||
polygon(points=[[-1,-1], [-1,3.2], [6.9, 3.2], [11.2,-1]]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
translate([2.2,0.75 * t - 2.4, 0]) {
|
|
||||||
rotate([90,-90,0]) {
|
|
||||||
linear_extrude(0.4 * t + 5) {
|
|
||||||
polygon(points=[[-1,-1], [-1,0.6], [3.3, 0.6], [4.9,-1]]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
box(b, t, h);
|
|
||||||
|
|||||||
Reference in New Issue
Block a user