Backpack Organizer v7: tweak usb bits tray, add additional holders.

This commit is contained in:
2025-12-30 11:12:38 -06:00
parent 77daf344b7
commit be16bda8ee
+73 -27
View File
@@ -1,3 +1,4 @@
include <../lib/chamfered-cube.scad>
include <../lib/rounded-cube.scad>
// All units in mm
@@ -5,7 +6,7 @@ $fn=128;
outerWall=4;
innerWall=2;
layerClearance = 0.5;
verStr="v6";
verStr="v7";
font="Montserrat";
// as a convention, outer dimensions refer to measurements from outside wall to
@@ -17,6 +18,7 @@ outerBoxWidth = 154;
innerBoxLength = outerBoxLength - 2*outerWall;
innerBoxWidth = outerBoxWidth - 2*outerWall;
innerBoxHeight = 44;
audioTraySide = 64;
audioTrayHeight = 15;
@@ -25,11 +27,12 @@ audioTrayIH = audioTrayHeight - innerWall;
module audioLayer() {
iH = 42; // inner height
oH = innerBoxHeight;
oL = innerBoxLength - 2*layerClearance; // outer length
oW = innerBoxWidth - 2*layerClearance; // outer width
iL = oL - 2*innerWall; // inner length
iW = oW - 2*innerWall; // inner width
iH = oH - innerWall; // inner height
handleDia=42;
cableDia = 130;
@@ -38,8 +41,10 @@ module audioLayer() {
difference() {
// main shell
translate([-innerWall, -innerWall, -innerWall])
roundedCube([oW, oL, iH], [1, 1, 1]);
roundedCube([oW, oL, oH], [1, 1, 1]);
translate([0, 169, 0])
mirror([0, 1, 0])
union() {
// screwdriver handle
translate([handleDia / 2, handleDia / 2, handleDia / 2])
@@ -48,37 +53,71 @@ module audioLayer() {
translate([handleDia / 2, handleDia / 2, handleDia / 2])
cylinder(d=handleDia, h = handleDia / 2 + innerWall);
translate([(handleDia - 32) / 2, handleDia / 2, 7]) cube([32, 130 + handleDia/2, iH]);
translate([(handleDia - 32) / 2, handleDia / 2, 7]) cube([32, 102 - handleDia/2, oH]);
// screw bits
bitL = 112;
bitW = 22;
translate([(handleDia - bitW) / 2, handleDia / 2, 0]) cube([bitW, bitL + handleDia/2, iH]);
// release ramp
/*
translate([(handleDia - bitW)/2, handleDia/2 + 20 + bitL + 1, 0])
rotate([-45, 0, 0]) translate([0, -iH, 0]) cube([bitW, iH, iH*2]);
*/
// plain cube version (we're going to oversize and chamfer to get
// diagonal edges)
// translate([(handleDia - bitW) / 2, handleDia / 2, 0]) cube([bitW, bitL + handleDia/2, oH]);
translate([(handleDia - bitW) / 2 - 5, handleDia / 2 - 5, -0.01])
chamferedCube([bitW + 10, bitL + handleDia/2 + 10, 16], chamfer=5);
// power block cutout
translate([(handleDia - 32) / 2 - 4, handleDia / 2 + 80, 7]) cube([40, 68, oH]);
// fingerway cut-outs
translate([handleDia*0.6, 55, 0]) cube([24, 36, oH]);
}
// lower-right cubby
translate([handleDia + 2*innerWall, 0, 0])
cube([iW - handleDia - 3*innerWall, 150, iH]);
cube([iW - handleDia - 3*innerWall, 150, oH]);
// cable cut-out
translate([iW/2, iL - cableDia/2 - innerWall, 0])
cylinder(d=cableDia, h=iH);
cylinder(d=cableDia, h=oH);
// fingerway cut-outs
translate([handleDia*0.6, 70, 0]) cube([24, 36, iH]);
}
//translate([innerWall, innerWall, innerWall]) cube([iW, iL, iH]);
// upper-left bits
union() {
// PortaPow
translate([6.5, 249.5, 22])
rotate([0, 0, 45])
cube([44.5, 10.5, oH]);
// USB thumbdrive
translate([5, 272, 1])
rotate([0, 0, 45])
cube([13, 5, oH]);
// fingerway
translate([16, 271, iH + 15])
sphere(d=46);
}
translate([handleDia*0.988, 69.5, -0.1])
cylinder(d=9, iH - innerWall + 0.1);
// SD-card adapter + SIM removal tool
union() {
translate([iW - 26, 278, 9.5])
rotate([0, 0, -45])
cube([24.5, 2, 33]);
translate([handleDia*0.988, 105.5, -0.1])
cylinder(d=9, iH - innerWall + 0.1);
translate([iW - 8, 280, 4.5])
rotate([0, 0, -135])
cube([8.5, 1, 38]);
// fingerway
translate([iW - 16, 271, iH + 15])
sphere(d=46);
}
}
translate([handleDia*0.988, 77.5, -0.1])
cylinder(d=9, oH - innerWall + 0.1);
translate([handleDia*0.988, 114.5, -0.1])
cylinder(d=9, oH - innerWall + 0.1);
translate([iW/2 - audioTraySide/2, iL - audioTraySide/2 - cableDia/2 - innerWall, 0])
difference() {
@@ -261,18 +300,18 @@ module usbBitsTray() {
// right-angle connectors (1st variation)
translate([innerWall, innerWall, -1])
for (i = [0, 1]) {
translate([33*i, 16*i, 0])
translate([34*i, 16*i, 0])
rotate([0, 0, 180*i])
union() {
// main body
cube([22, 7, 14]);
cube([22.5, 7, 14]);
// usb connector
// 1.64 to edge, 4.64 thick
translate([1.4, 0, 0]) cube([5.2, 16, 14]);
translate([1.4, 0, 0]) cube([6, 16, 14]);
// release wedge
translate([22, 0, 0])
translate([22.5, 0, 0])
rotate([0, 15, 0])
translate([-22, 0, 0])
cube([22, 7, 14]);
@@ -296,19 +335,26 @@ module usbBitsTray() {
// 10.32 wide, 0.73 to edge
cube([12, 22, 7]);
// release wedge
//color("blue")
translate([17, 0, 0])
rotate([0, 30, 0])
cube([8, 13, 7]);
// finergway
translate([25, 6.5, 8]) sphere(d=13);
}
}
// usb A-C converers
// 29 x 18 x 9
translate([innerWall + 38, innerWall - 0.5, 5])
translate([innerWall + 38, innerWall - 0.5, 3])
for(i = [0,1]) {
translate([0, 28.5*2*i, 0])
mirror([0, i, 0])
union() {
// main body
cube([18, 29, 9]);
cube([18, 29, 10]);
// release wedge
//color("blue")
@@ -325,5 +371,5 @@ module usbBitsTray() {
//audioLayer();
//translate([outerBoxWidth + 10, 0, 0]) audioTray1();
translate([outerBoxWidth + 10, 80, 0]) usbBitsTray();
translate([outerBoxWidth + 10, 160, 0]) audioTray3();
//translate([outerBoxWidth + 10, 160, 0]) audioTray3();
//translate([outerBoxWidth + 10, 240, 0]) audioTray2();