63 lines
No EOL
1.6 KiB
OpenSCAD
63 lines
No EOL
1.6 KiB
OpenSCAD
$fn = 20;
|
|
|
|
baseplate_thickness = 2;
|
|
inner_clearance = 7.5;
|
|
pcb_thickness = 1.6;
|
|
|
|
module roundsquare (size, r) {
|
|
translate([r, r]) minkowski() {
|
|
square([size.x-2*r, size.y-2*r]);
|
|
circle(r=r);
|
|
}
|
|
}
|
|
|
|
module shell () {
|
|
difference() {
|
|
linear_extrude(baseplate_thickness + inner_clearance + pcb_thickness) {
|
|
translate([-1, -1]) roundsquare([214+1*2, 67+1*2], r=2+1);
|
|
}
|
|
translate([0, 0, baseplate_thickness + inner_clearance]) linear_extrude(pcb_thickness + 2) {
|
|
roundsquare([214, 67], r=2);
|
|
}
|
|
translate([0, 0, baseplate_thickness]) linear_extrude(inner_clearance + 10) {
|
|
translate([1, 1]) roundsquare([214 - 1 * 2, 67 - 1 * 2], r=1);
|
|
}
|
|
}
|
|
}
|
|
|
|
module standoffs () {
|
|
for (point = [
|
|
[17 + 18 * 0, 16.5 + 17 * 0],
|
|
[17 + 18 * 2, 16.5 + 17 * 2],
|
|
[17 + 18 * 4, 16.5 + 17 * 0],
|
|
[17 + 18 * 5, 16.5 + 17 * 2],
|
|
[17 + 18 * 6, 16.5 + 17 * 0],
|
|
[17 + 18 * 8, 16.5 + 17 * 2],
|
|
[17 + 18 * 10, 16.5 + 17 * 0],
|
|
]) {
|
|
translate([point.x, point.y, baseplate_thickness - 0.1]) difference() {
|
|
cylinder(h = inner_clearance + .1, d = 5);
|
|
translate([0, 0, inner_clearance + .1 - 3 * 1.5]) cylinder(h = 3 * 1.5 + .2, d = 3); // hole inner - adjust for insert size
|
|
}
|
|
}
|
|
}
|
|
|
|
difference() {
|
|
shell();
|
|
translate([4.5, 65-.01, baseplate_thickness + inner_clearance - 7.5])
|
|
// cube([34, 2, 30]);
|
|
// cube([34, 5, 6]);
|
|
cube([18+17-4.5, 2, 30]);
|
|
translate([17 + 18/2 - 9/2, 71, baseplate_thickness + inner_clearance - 6.75]) {
|
|
rotate([90, 0, 0]) linear_extrude(8) {
|
|
roundsquare([9, 3.5], r = 1.5);
|
|
}
|
|
}
|
|
translate([4.5, 71, baseplate_thickness + inner_clearance - 3]) {
|
|
rotate([90, 0, 0]) linear_extrude(8) {
|
|
roundsquare([9, 3], r = 0.5);
|
|
}
|
|
}
|
|
}
|
|
|
|
standoffs(); |