93d98a10ca
+ ‘hab/’ + ‘hab/18650.scad’ + ‘hab/battery_holder.scad’ + ‘hab/cr18650.scad’ + ‘hab/debug.log’ + ‘hab/libjuju.scad’ + ‘hab/pigateway.scad’ + ‘hab/sensemicro.scad’ + ‘hab/thermo.scad’ ...
78 lines
1.3 KiB
OpenSCAD
78 lines
1.3 KiB
OpenSCAD
include <libjuju.scad>;
|
|
|
|
wall = 1.2;
|
|
pi_d = [65, 30, 2];
|
|
box_d = [pi_d[0] + wall*2 + 6, 48, 30];
|
|
e = 0.01;
|
|
|
|
module pigateway() {
|
|
module standoffs() {
|
|
r = 3.5;
|
|
n = 2.4;
|
|
|
|
translate([r, r, 0]) {
|
|
// Hole pads.
|
|
for (x = [0, 58]) {
|
|
for (y = [0, 23]) {
|
|
translate([x, y, 0]) {
|
|
cylinder(h, r, r);
|
|
// Nubs
|
|
translate([0, 0, h])
|
|
cylinder(h, n/2, n/2);
|
|
}
|
|
}
|
|
}
|
|
// Mid holdoffs.
|
|
for (x = [1, 2, 3]) {
|
|
y = 23/2;
|
|
translate([x*58/4, y, 0])
|
|
cylinder(h, r, r);
|
|
}
|
|
}
|
|
}
|
|
|
|
translate([wall+2, wall*2, wall])
|
|
standoffs();
|
|
|
|
// Hole for the USB cables.
|
|
usb_d = [(54-41)*2 + 3, 10, 9+2];
|
|
|
|
// The main box.
|
|
difference() {
|
|
rbox(box_d, wall, 3);
|
|
translate([6, box_d[1] + wall*2, wall+h/2])
|
|
rotate(90, [1, 0, 0])
|
|
rcube(usb_d);
|
|
}
|
|
}
|
|
|
|
module lid() {
|
|
dim = [box_d[0], box_d[1], wall];
|
|
rim = 2;
|
|
r = 9;
|
|
|
|
module main() {
|
|
rcube(dim);
|
|
translate([wall, wall, 0])
|
|
rbox(dim - [2*wall, 2*wall, 0] + [0, 0, wall + rim], wall, 3);
|
|
}
|
|
|
|
module holes() {
|
|
for (x = [1, 2, 3, 4, 5]) {
|
|
for (y = [1, 2, 3]) {
|
|
translate([x*dim[0]/6, y*dim[1]/4, -e])
|
|
cylinder(rim*2, r/2, r/2);
|
|
}
|
|
}
|
|
}
|
|
|
|
difference() {
|
|
main();
|
|
holes();
|
|
}
|
|
}
|
|
|
|
$fn = 50;
|
|
lid();
|
|
|