item boxes

This commit is contained in:
2026-04-07 10:17:39 +02:00
parent 3aa38785a6
commit 9db0473369
4 changed files with 255 additions and 0 deletions

View File

@@ -19,3 +19,6 @@ while IFS=',' read -r b t h name; do
-D "name=\"$name\"" \
-o "$output" "$SCAD_FILE"
done <./HeroesKeepOut/cardConfigs.txt
echo "Rendering $output..."
"$OPENSCAD" -o "$output" "$SCAD_FILE"

View File

@@ -0,0 +1,68 @@
include <BOSL2/std.scad>
// Parameter for console overwrite
b = 178;
t = 38;
h = 20;
module box(b, t, h) {
difference() {
difference() {
// base
cuboid([ b, t, h], anchor = [ -1, -1, -1 ],rounding = 1,edges = [ TOP, 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);
// inner
translate([ 21, 19, h-11 ]) cylinder(h = 12, r = 13, center = false);
translate([14, -1, h-11]) cube([14, t + 2, 18.5], false);
translate([ 55, 19, h-11 ]) cylinder(h = 12, r = 13, center = false);
translate([49, -1, h-11]) cube([14, t + 2, 18.5], false);
translate([ 89, 23, h-11 ]) cylinder(h = 12, r = 13, center = false);
translate([83, -1, h-11]) cube([14, t + 2, 18.5], false);
translate([ 123, 25, h-11 ]) cylinder(h = 12, r = 13, center = false);
translate([117, -1, h-11]) cube([14, t + 2, 18.5], false);
translate([ 157, 25, h-11 ]) cylinder(h = 12, r = 13, center = false);
translate([151, -1, h-11]) cube([14, t + 2, 18.5], false);
// clean area for card pocket
translate([b- 79, -1, -1]) cube([80, 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);

View File

@@ -0,0 +1,66 @@
include <BOSL2/std.scad>
// Parameter for console overwrite
b = 178;
t = 38;
h = 20;
module box(b, t) {
bInner = b - 10;
tInner = t - 10;
difference() {
union () {
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);
}
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([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);

View File

@@ -0,0 +1,118 @@
include <BOSL2/std.scad>
// Parameter for console overwrite
b = 178;
t = 38;
h = 20;
module box(b, t, h) {
difference() {
difference() {
// base
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
translate([150, 12, 1.5]) {
cube([1, 24.5, 18.5], false);
}
translate([127, 12, 1.5]) {
cube([1, 24.5, 18.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
translate([b- 80, 0, ]) {
difference() {
cube([78.4, 12, 40], false);
translate([1.5, -1, 1.5]) {
cube([75.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([7.5, 0, 1.5]) {
difference() {
cube([63.4, 1.5, 11], false);
translate([0, -1, 6]) {
cuboid([63.4, 4.5, 6], anchor = [-1, -1, -1], rounding = 5, edges = [ BOTTOM + LEFT, BOTTOM + RIGHT]);
}
}
}
}
}
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);