soundslab/soundslab_10000_v1.scad

133 lines
2.9 KiB
OpenSCAD
Raw Normal View History

2020-07-10 14:01:52 -04:00
// SoundSlab 10000 v1 case
2020-07-10 18:55:25 -04:00
//
// THIS IS ALL HACKY RIGHT NOW - OMG DO NOT USE
// imports
include <roundedcube.scad>
2020-07-10 14:01:52 -04:00
// parameters - all lengths in mm
battery_width = 60;
battery_length = 102;
battery_depth = 13;
2020-07-10 18:55:25 -04:00
depth_of_circuit_boards = 6; // includes tallest component
lcd_width = 23.4;
lcd_height = 23.4;
lcd_depth = 6; // how far to recess from top surface of case
// build
2020-07-10 18:55:25 -04:00
difference() {
// case
color("white", 0.4) {
roundedcube(
[
battery_width + 1,
battery_length + 1,
depth_of_circuit_boards + battery_depth + 2
],
false,
5
);
}
// hollow out the case leaving 1mm thick shell
translate([1, 1, 1]) {
color("white", 0.0) {
roundedcube(
[
battery_width - 1,
battery_length - 1,
depth_of_circuit_boards + battery_depth
],
false,
5
);
}
}
2020-07-10 18:55:25 -04:00
// active area of the LCD screen is 23.4mm x 23.4mm according to http://www.lcdwiki.com/1.3inch_IPS_Module
// lcd cutout
translate ([
((battery_width + 1) / 2) + 8 - (lcd_width / 2),
((battery_length + 1) - 10) - (lcd_height),
battery_depth + 6
]) {
color ("blue") {
cube(
[lcd_width, lcd_height, lcd_depth],
false
);
}
}
// lcd buttons
translate ([
((battery_width + 1) / 2) + 21,
((battery_length + 1) - 18),
battery_depth + 6
]) {
color ("green") {
cube(
[3, 2, lcd_depth],
false
);
}
}
translate ([
((battery_width + 1) / 2) + 21,
((battery_length + 1) - 28),
battery_depth + 6
]) {
color ("green") {
cube(
[3, 2, lcd_depth],
false
);
}
}
translate ([
((battery_width + 1) / 2) - 8,
((battery_length + 1) - 18),
battery_depth + 6
]) {
color ("green") {
cube(
[3, 2, lcd_depth],
false
);
}
}
translate ([
((battery_width + 1) / 2) - 8,
((battery_length + 1) - 28),
battery_depth + 6
]) {
color ("green") {
cube(
[3, 2, lcd_depth],
false
);
}
}
// joystick
translate ([
((battery_width + 1) / 2) - 17,
((battery_length + 1) - 27.5),
battery_depth + 6
]) {
rotate(a=45,v=[0,0,1]) {
color ("green") {
cube(
[8, 8, lcd_depth],
false
);
}
}
}
}