Add case
This commit is contained in:
parent
ad1463b8a6
commit
8c09ca0d10
1 changed files with 95 additions and 0 deletions
95
src/modules/needy_finetuner/3d/case.scad
Normal file
95
src/modules/needy_finetuner/3d/case.scad
Normal file
|
@ -0,0 +1,95 @@
|
||||||
|
dialWidth = 46;
|
||||||
|
potWidth = 10.5;
|
||||||
|
potHeight = 76;
|
||||||
|
|
||||||
|
boxLength = 125;
|
||||||
|
boxWidth = 100;
|
||||||
|
boxHeight = 30;
|
||||||
|
lidHeight = 12;
|
||||||
|
wallSize = 1;
|
||||||
|
|
||||||
|
$fn=50;
|
||||||
|
|
||||||
|
module ccube(coords, centered) {
|
||||||
|
offsets = [
|
||||||
|
centered[0] ? -coords[0] / 2 : 0,
|
||||||
|
centered[1] ? -coords[1] / 2 : 0,
|
||||||
|
centered[2] ? -coords[2] / 2 : 0
|
||||||
|
];
|
||||||
|
translate (offsets) {
|
||||||
|
cube(coords);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
xCentered = [true, false, false];
|
||||||
|
xyCentered = [true, true, false];
|
||||||
|
|
||||||
|
difference() {
|
||||||
|
ccube([boxLength, boxWidth, boxHeight], xyCentered);
|
||||||
|
|
||||||
|
// Hollow
|
||||||
|
translate ([0, 0, wallSize])
|
||||||
|
ccube([boxLength - 2*wallSize, boxWidth - 2*wallSize, boxHeight], xyCentered);
|
||||||
|
|
||||||
|
screwHoleOffset = 6;
|
||||||
|
// Screw holes
|
||||||
|
translate([0, boxWidth / 2 - 8, boxHeight - screwHoleOffset])
|
||||||
|
rotate([0, 90, 0])
|
||||||
|
cylinder(boxLength + 5, r=2.86/2, center=true);
|
||||||
|
translate([0, -boxWidth / 2 + 8, boxHeight - screwHoleOffset])
|
||||||
|
rotate([0, 90, 0])
|
||||||
|
cylinder(boxLength + 5, r=2.86/2, center=true);
|
||||||
|
|
||||||
|
// Cable hole
|
||||||
|
translate([-boxLength/2, 0, 5])
|
||||||
|
ccube([10, 7, 5], xyCentered);
|
||||||
|
}
|
||||||
|
|
||||||
|
module cornerPiece() {
|
||||||
|
translate([0, 0, wallSize]) cube([1, 1, boxHeight - lidHeight]);
|
||||||
|
}
|
||||||
|
translate([boxLength/2 - 2*wallSize, boxWidth/2 - 2*wallSize, 0]) cornerPiece();
|
||||||
|
translate([boxLength/2 - 2*wallSize, -boxWidth/2 + wallSize, 0]) cornerPiece();
|
||||||
|
translate([-boxLength/2 + wallSize, boxWidth/2 - 2*wallSize, 0]) cornerPiece();
|
||||||
|
translate([-boxLength/2 + wallSize, -boxWidth/2 + wallSize, 0]) cornerPiece();
|
||||||
|
|
||||||
|
|
||||||
|
translate([boxLength + 10, 0, 0])
|
||||||
|
//rotate([180, 0, 0])
|
||||||
|
difference() {
|
||||||
|
ccube([
|
||||||
|
boxLength - 2*wallSize - 0.5,
|
||||||
|
boxWidth - 2*wallSize - 0.5,
|
||||||
|
lidHeight
|
||||||
|
], xyCentered);
|
||||||
|
|
||||||
|
// Hollow
|
||||||
|
translate ([0, 0, wallSize])
|
||||||
|
ccube([
|
||||||
|
boxLength - 4*wallSize - 0.5,
|
||||||
|
boxWidth - 4*wallSize - 0.5,
|
||||||
|
lidHeight
|
||||||
|
], xyCentered);
|
||||||
|
|
||||||
|
translate([0, -35, -1]) {
|
||||||
|
// Dial hole
|
||||||
|
translate([0, 0, -1])
|
||||||
|
ccube([dialWidth, dialWidth, 10], xCentered);
|
||||||
|
|
||||||
|
// Pot hole
|
||||||
|
translate([0, dialWidth + 4, -1])
|
||||||
|
ccube([potHeight, potWidth, 10], xCentered);
|
||||||
|
|
||||||
|
// LED hole
|
||||||
|
translate([0, dialWidth + 4 + potWidth + 10, -1])
|
||||||
|
cylinder(10, 3, center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Screw holes
|
||||||
|
translate([0, boxWidth / 2 - 8, 6])
|
||||||
|
rotate([0, 90, 0])
|
||||||
|
cylinder(boxLength + 5, r=2.86/2, center=true);
|
||||||
|
translate([0, -boxWidth / 2 + 8, 6])
|
||||||
|
rotate([0, 90, 0])
|
||||||
|
cylinder(boxLength + 5, r=2.86/2, center=true);
|
||||||
|
}
|
Loading…
Reference in a new issue