commit fbb6acffc3089ce52625fcf25f6360feb700d7c5 Author: sqozz Date: Mon Aug 14 01:07:00 2023 +0200 Add initial draft diff --git a/case.scad b/case.scad new file mode 100644 index 0000000..bd0c237 --- /dev/null +++ b/case.scad @@ -0,0 +1,84 @@ +/* +include +include +*/ + +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(); + } + } +} \ No newline at end of file diff --git a/thinkpad_plug.scad b/thinkpad_plug.scad new file mode 100644 index 0000000..b0b1687 --- /dev/null +++ b/thinkpad_plug.scad @@ -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(); +} \ No newline at end of file