Backpack Organizer v12: adjust ropeways, top layer alignment square.

This commit is contained in:
2026-01-02 16:33:51 -06:00
parent 537e61d97b
commit 510ccffa0d
+84 -5
View File
@@ -6,7 +6,7 @@ $fn=128;
outerWall=4;
innerWall=2;
layerClearance = 0.5;
verStr="v11";
verStr="v12";
font="Montserrat";
ep = 0.01; // smallest unit to ensure overlap between shapes
@@ -77,6 +77,27 @@ module shellBottom(dims) {
}
*/
// ropeway
for (i = [1, 3]) {
for (j = [-1, 1]) {
/* Older, diagonal cut
translate([dims[0]/2 - j*dims[0]/2 + j*1.5, i*dims[1]/4, -1])
rotate([0, 0, 45 + 90*j])
cube([4, 4, bottomShellH + 8]);
*/
translate([dims[0]/2 - j*dims[0]/2 - 1.5, i*dims[1]/4 - 2.5, -1])
chamferedCube([3, 5, bottomShellH + 8], chamfer=1.5);
}
/* Older, diagonal cut
translate([-1, i*dims[1]/4, 1.5])
rotate([-135, 0, 0])
cube([dims[0] + 8, 4, 4]);
*/
translate([-1, i*dims[1]/4 - 2.5, -1.5])
chamferedCube([dims[0] + 8, 5, 3], chamfer=1.5);
}
// version marker
color("black")
translate([0.6, 26, 8]) rotate([90, 0,-90])
@@ -132,11 +153,71 @@ module shellTop(dims) {
}
*/
// ropeway
for (i = [1, 3]) {
for (j = [-1, 1]) {
/* Older, diagonal cut
translate([dims[0]/2 - j*dims[0]/2 + j*1.5, i*dims[1]/4, -1])
rotate([0, 0, 45 + 90*j])
cube([4, 4, topShellH + 8]);
*/
translate([dims[0]/2 - j*dims[0]/2 - 1.5, i*dims[1]/4 - 2.5, -1])
chamferedCube([3, 5, topShellH + 8], chamfer=1.5);
}
/* Older, diagonal cut
translate([-1, i*dims[1]/4, 1.5])
rotate([-135, 0, 0])
cube([dims[0] + 8, 4, 4]);
*/
translate([-1, i*dims[1]/4 - 2.5, -1.5])
chamferedCube([dims[0] + 8, 5, 3], chamfer=1.5);
}
// version marker
color("black")
translate([0.6, 26, 8]) rotate([90, 0,-90])
linear_extrude(0.61) text(text = verStr, font = font, size = 8);
}
/* -45 = x + -y
* x = y - 45
*
* 135 = x + y
* y = 135 - x
* y = 135 - (y - 45)
* y = 180 - y
* y = 90
*
*/
// tray indent location
// X: innerWall + iW/2 - audioTraySide/2
// 2 + (innerBoxWidth - 2*layerClearance - 2*innerWall)/2 - 64/2
// 2 + ((outerBoxWidth - 2*outerWall) - 2*0.5 - 2*2)/2 - 32
// 2 + (154 - 8 - 1 - 4)/2 - 32
// 40.5
//
// Y: innerWall + iL - audioTraySide/2 - cableDia/2 - innerWall
// 2 + (innerBoxLength - 2*layerClearance - 2*innerWall) - 64/2 - 130/2 - 2
// 2 + (outerBoxLength - 2*outerWall) - 2*0.5 - 2*2 - 32 - 65 - 2
// 300 - 8 - 1 - 4 - 32 - 65
// 190
//
translate([
40.5 + outerWall + layerClearance,
190 + outerWall + layerClearance,
1])
//(dims[0] - audioTraySide)/2,
//dims[1] - outerWall - innerWall - audioTraySide/2 - 130/2,
//1])
roundedCube(
[ audioTraySide - 2*(innerWall + layerClearance),
audioTraySide - 2*(innerWall + layerClearance),
4],
[1, 1, 1]);
}
module layer1() {
@@ -544,9 +625,8 @@ standoffX = outerBoxWidth + 10;
standoffY = outerBoxLength + 10;
// test-print the lip
shellBottom([20, 30, 30]);
translate([24, 0, 0]) shellTop([20, 30, 30]);
/*
// shellBottom([20, 30, 30]);
// translate([24, 0, 0]) shellTop([20, 30, 30]);
shellBottom([outerBoxWidth, outerBoxLength, outerBoxHeight]);
translate([0, standoffY, 0]) shellTop([outerBoxWidth, outerBoxLength, outerBoxHeight]);
translate([standoffX, 0, 0]) layer1();
@@ -555,4 +635,3 @@ translate([2*standoffX, 0, 0]) audioJackTray();
translate([2*standoffX, 80, 0]) usbBitsTray();
translate([2*standoffX, 160, 0]) headphoneAmpTray();
translate([2*standoffX, 240, 0]) drumKeyTray();
*/