mobile_psu_case/case.scad

84 lines
3.3 KiB
OpenSCAD

/*
include </home/sqozz/Downloads/hex-grid.scad>
include </home/sqozz/git/BOSL2/std.scad>
*/
front_wall_strength = 3;
side_wall_strength = 6;
case_depth = 45;
spacing_between_components = 5;
jack_width = 34;
jack_height = 20;
jack_outer_width = 53;
socket_diameter = 12;
panel_width = 75.0;
panel_height = 39.3;
front_panel_width =
side_wall_strength +
spacing_between_components +
jack_height +
spacing_between_components +
panel_width +
spacing_between_components +
socket_diameter +
spacing_between_components +
side_wall_strength;
front_panel_height = front_wall_strength*2 + jack_outer_width;
cooling_holes_offset_from_front = 22.7;
cooling_holes_width = 70;
cooling_holes_depth = 20;
case();
module case() {
color("grey") case_front();
translate([0, front_wall_strength/2, 0]) case_side();
}
module case_side() {
difference() {
difference() {
cube([front_panel_width, case_depth, front_panel_height]);
color("red") translate([side_wall_strength, 0, front_wall_strength]) cube([front_panel_width - side_wall_strength*2, case_depth, front_panel_height - front_wall_strength*2]);
}
//translate([side_wall_strength + spacing_between_components + jack_height + spacing_between_components + cooling_holes_width/2, cooling_holes_depth/2 + cooling_holes_offset_from_front, front_panel_height - front_wall_strength/2]) cube([cooling_holes_width,cooling_holes_depth,front_wall_strength], center=true);
}
translate([side_wall_strength + spacing_between_components + jack_height + spacing_between_components + cooling_holes_width/2, cooling_holes_depth/2 + cooling_holes_offset_from_front, front_panel_height - front_wall_strength/2]) create_grid(size=[cooling_holes_width,cooling_holes_depth,front_wall_strength],SW=4,wall=1);
}
module banana_socket() {
translate([0, front_wall_strength, 0]) rotate([90, 0, 0]) cylinder(front_wall_strength*2, d = socket_diameter);
}
module audio_jack() {
translate([0, -front_wall_strength, 0]) cube([jack_width, front_wall_strength*2, jack_height]);
}
module panel() {
translate([0, -front_wall_strength, 0]) cube([panel_width, front_wall_strength*2, panel_height]);
}
module case_front() {
difference() {
translate([0, -front_wall_strength/2, 0]) cube([front_panel_width, front_wall_strength, front_panel_height]);
translate([side_wall_strength + spacing_between_components, 0, (front_panel_height - jack_width)/2]) {
translate([0, 0, jack_width]) rotate([0, 90, 0]) audio_jack();
}
translate([side_wall_strength + spacing_between_components + jack_height + spacing_between_components, 0, (front_panel_height - panel_height)/2]) {
panel();
}
translate([side_wall_strength + spacing_between_components + jack_height + spacing_between_components, 0, (front_panel_height - panel_height)/2]) {
panel();
}
translate([side_wall_strength + spacing_between_components + jack_height + spacing_between_components + panel_width + spacing_between_components + socket_diameter/2, 0, (front_panel_height - panel_height)/2 + socket_diameter/2 + spacing_between_components/2]) {
banana_socket();
translate([0, 0, panel_height - socket_diameter - spacing_between_components]) banana_socket();
}
}
}