Add initial draft

This commit is contained in:
sqozz 2023-08-14 01:07:00 +02:00
commit fbb6acffc3
2 changed files with 107 additions and 0 deletions

84
case.scad Normal file
View file

@ -0,0 +1,84 @@
/*
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();
}
}
}

23
thinkpad_plug.scad Normal file
View file

@ -0,0 +1,23 @@
tpplug_height = 6.45;
tpplug_width = 15.2;
tpplug_width_with_noses = 16.3;
tpplug_depth = 11.7;
nose_depth = 3.1;
nose_height = 3.0;
nose_width = (tpplug_width_with_noses - tpplug_width) / 2;
nose_offset_front = 5 - nose_depth;
nose_offset_top = 5.5 - nose_height;
module thinkpad_plug() {
cube([tpplug_width, tpplug_depth, tpplug_height]);
translate([0, 0, 0]) {
translate([-nose_width, 0, nose_offset_top]) cube([tpplug_width_with_noses, nose_depth + nose_offset_front, nose_height]);
}
}
difference() {
cube([tpplug_width_with_noses + 10, tpplug_depth, tpplug_height + 10]);
translate([5, 0, 5]) thinkpad_plug();
}