Compare commits

..

5 Commits

3 changed files with 45 additions and 35 deletions

View File

@ -43,13 +43,28 @@ lever_mount_y = 95;
lever_mount_z = 2; lever_mount_z = 2;
// case dimensions // case dimensions
// base frame box. reminder: top of inside (including mounts) is chopped by top_plate_z for plates
frame_x = 183; frame_x = 183;
frame_y = 208; frame_y = 208;
frame_z = 50; // reminder: inside (including mounts) is chopped by top_plate_z for plates frame_z = 50;
top_plate_x = 175;
top_plate_y = 200; // depth of the "lip" of the frame that the top plate sets into/supports the overhang
frame_wall = 8;
// top plate, which can either be the whole plate ("inset") or the mounting frame for a plate that overhangs
top_plate_x = frame_x - frame_wall;
top_plate_y = frame_y - frame_wall;
top_plate_z = 5; top_plate_z = 5;
// how much the top plate x/y is expanded to overhang the frame
// note that this is relative to the top plate (so the wall is added back)
top_plate_overhang_amount = frame_wall + 17;
overhang_top_plate_x = top_plate_x + top_plate_overhang_amount;
overhang_top_plate_y = top_plate_y + top_plate_overhang_amount;
plate_to_frame_point_x = (top_plate_x/2)-10;
plate_to_frame_point_y = (top_plate_y/2)-10;
// frame interior that supports the top plates // frame interior that supports the top plates
panel_support_width = 5; panel_support_width = 5;
@ -73,15 +88,15 @@ module m4_hole_countersink() {
module top_plate_holes() { module top_plate_holes() {
// holes for mount bolts // holes for mount bolts
translate([77.5, 90, 0]) m4_hole(); translate([plate_to_frame_point_x, plate_to_frame_point_y, 0]) m4_hole();
translate([77.5, -90, 0]) m4_hole(); translate([plate_to_frame_point_x, -plate_to_frame_point_y, 0]) m4_hole();
translate([-77.5, 90, 0]) m4_hole(); translate([-plate_to_frame_point_x, plate_to_frame_point_y, 0]) m4_hole();
translate([-77.5, -90, 0]) m4_hole(); translate([-plate_to_frame_point_x, -plate_to_frame_point_y, 0]) m4_hole();
// holes for mount bolt countersinks // holes for mount bolt countersinks
translate([77.5, 90, 2]) m4_hole_countersink(); translate([plate_to_frame_point_x, plate_to_frame_point_y, 2]) m4_hole_countersink();
translate([77.5, -90, 2]) m4_hole_countersink(); translate([plate_to_frame_point_x, -plate_to_frame_point_y, 2]) m4_hole_countersink();
translate([-77.5, 90, 2]) m4_hole_countersink(); translate([-plate_to_frame_point_x, plate_to_frame_point_y, 2]) m4_hole_countersink();
translate([-77.5, -90, 2]) m4_hole_countersink(); translate([-plate_to_frame_point_x, -plate_to_frame_point_y, 2]) m4_hole_countersink();
} }
// button hole, with extra wide bits for various uses (cutting out space // button hole, with extra wide bits for various uses (cutting out space
@ -188,7 +203,7 @@ module base_topplate() {
} }
module overhang_plate() { module overhang_plate() {
roundedcube([top_plate_x+25, top_plate_y+25, top_plate_z], center=true, radius=1); roundedcube([overhang_top_plate_x, overhang_top_plate_y, top_plate_z], center=true, radius=1);
} }
// this takes the base_topplate and makes it a small frame, putting a larger top plate // this takes the base_topplate and makes it a small frame, putting a larger top plate
@ -198,10 +213,10 @@ module base_top_plate_with_raised_overhang() {
base_topplate(); base_topplate();
cube([top_plate_x-(panel_support_width*2), top_plate_y-(panel_support_width*2), top_plate_z*2], center=true); cube([top_plate_x-(panel_support_width*2), top_plate_y-(panel_support_width*2), top_plate_z*2], center=true);
} }
translate([(top_plate_x/2)-10, (top_plate_y/2)-10, -2.5]) resize([0, 0, 10]) frame_mount_column(); translate([plate_to_frame_point_x, plate_to_frame_point_y, -2.5]) resize([0, 0, 10]) frame_mount_column();
translate([-((top_plate_x/2)-10), (top_plate_y/2)-10, -2.5]) resize([0, 0, 10]) frame_mount_column(); translate([-(plate_to_frame_point_x), plate_to_frame_point_y, -2.5]) resize([0, 0, 10]) frame_mount_column();
translate([(top_plate_x/2)-10, -((top_plate_y/2)-10), -2.5]) resize([0, 0, 10]) frame_mount_column(); translate([plate_to_frame_point_x, -(plate_to_frame_point_y), -2.5]) resize([0, 0, 10]) frame_mount_column();
translate([-((top_plate_x/2)-10), -((top_plate_y/2)-10), -2.5]) resize([0, 0, 10]) frame_mount_column(); translate([-(plate_to_frame_point_x), -(plate_to_frame_point_y), -2.5]) resize([0, 0, 10]) frame_mount_column();
overhang_plate(); overhang_plate();
} }
@ -226,6 +241,10 @@ module top_plate_with_raised_overhang() {
} }
} }
module top_plate_with_raised_overhang_long() {
rotate([0, 0, -90]) top_plate_with_raised_overhang();
}
module frame_box() { module frame_box() {
difference() { difference() {
roundedcube([frame_x, frame_y, frame_z], center=true, radius=3); roundedcube([frame_x, frame_y, frame_z], center=true, radius=3);
@ -259,28 +278,20 @@ module frame_cable_routing_hole() {
module base_frame() { module base_frame() {
frame_box(); frame_box();
translate([(top_plate_x/2)-10, (top_plate_y/2)-10, 0]) translate([plate_to_frame_point_x, plate_to_frame_point_y, 0]) frame_mount_column();
frame_mount_column(); translate([-plate_to_frame_point_x, plate_to_frame_point_y, 0]) frame_mount_column();
translate([-((top_plate_x/2)-10), (top_plate_y/2)-10, 0]) translate([plate_to_frame_point_x, -(plate_to_frame_point_y), 0]) frame_mount_column();
frame_mount_column(); translate([-plate_to_frame_point_x, -(plate_to_frame_point_y), 0]) frame_mount_column();
translate([(top_plate_x/2)-10, -((top_plate_y/2)-10), 0])
frame_mount_column();
translate([-((top_plate_x/2)-10), -((top_plate_y/2)-10), 0])
frame_mount_column();
} }
module frame() { module frame() {
difference() { difference() {
base_frame(); base_frame();
translate([0, 0, frame_z/2]) scale([1, 1, 2]) base_topplate(); translate([0, 0, frame_z/2]) scale([1, 1, 2]) base_topplate();
translate([(top_plate_x/2)-10, (top_plate_y/2)-10, 0]) translate([plate_to_frame_point_x, plate_to_frame_point_y, 0]) frame_hex_bolt_hole();
frame_hex_bolt_hole(); translate([-plate_to_frame_point_x, plate_to_frame_point_y, 0]) frame_hex_bolt_hole();
translate([-((top_plate_x/2)-10), (top_plate_y/2)-10, 0]) translate([plate_to_frame_point_x, -plate_to_frame_point_y, 0]) frame_hex_bolt_hole();
frame_hex_bolt_hole(); translate([-plate_to_frame_point_x, -plate_to_frame_point_y, 0]) frame_hex_bolt_hole();
translate([(top_plate_x/2)-10, -((top_plate_y/2)-10), 0])
frame_hex_bolt_hole();
translate([-((top_plate_x/2)-10), -((top_plate_y/2)-10), 0])
frame_hex_bolt_hole();
} }
} }

View File

@ -20,7 +20,7 @@ include <components.scad>
module dir_arc_24mm_6_button_panel() { module dir_arc_24mm_6_button_panel() {
difference() { difference() {
rotate([0, 0, -90]) top_plate_with_raised_overhang(); top_plate_with_raised_overhang_long();
translate([-top_plate_x+105, -top_plate_y/2+135, 0]) dir_arc_24mm_6_button(); translate([-top_plate_x+105, -top_plate_y/2+135, 0]) dir_arc_24mm_6_button();
} }
} }

View File

@ -17,11 +17,10 @@
*/ */
include <components.scad> include <components.scad>
use <top-panel-solo-dir_arc-24mm-6-button.scad>
module dir_arc_plus_w_24mm_8_button_panel() { module dir_arc_plus_w_24mm_8_button_panel() {
difference() { difference() {
rotate([0, 0, -90]) top_plate_with_raised_overhang(); top_plate_with_raised_overhang_long();
translate([-top_plate_x+105, -top_plate_y/2+123, 0]) dir_arc_24mm_8_button_compressed(); translate([-top_plate_x+105, -top_plate_y/2+123, 0]) dir_arc_24mm_8_button_compressed();
translate([-34.5, 51, 0]) button_24mm_hole(); translate([-34.5, 51, 0]) button_24mm_hole();
} }