Add initial draft
This commit is contained in:
commit
fbb6acffc3
2 changed files with 107 additions and 0 deletions
84
case.scad
Normal file
84
case.scad
Normal 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
23
thinkpad_plug.scad
Normal 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();
|
||||
}
|
Loading…
Reference in a new issue