bevel the bottom of the frame

mostly an aesthetic choice, but I think it helps mitigate the look of
the front relative to the need to have the case be deeper for some
levers, so (I believe) it's not an arbitrary aesthetic choice.

also maybe there's some benefit to have it be slightly less flush on the
surface, IDK

Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
This commit is contained in:
Brian S. Stephan 2024-02-16 12:25:17 -06:00
parent 7b2289624e
commit abc4577173
Signed by: bss
GPG Key ID: 3DE06D3180895FCB
6 changed files with 41 additions and 16 deletions

View File

@ -240,11 +240,27 @@ module panel_with_raised_overhang() {
module frame_box() {
difference() {
points = [ [(frame_x/2)-3, (frame_y/2)-3, 0], [-(frame_x/2)+3, (frame_y/2)-3, 0],
[(frame_x/2)-3, -(frame_y/2)+3, 0], [-(frame_x/2)+3, -(frame_y/2)+3, 0] ];
frame_bottom_bevel_height = 6;
top_points = [
// top part, majority of shape
[(frame_x/2)-3, (frame_y/2)-3, frame_bottom_bevel_height/2],
[-(frame_x/2)+3, (frame_y/2)-3, frame_bottom_bevel_height/2],
[(frame_x/2)-3, -(frame_y/2)+3, frame_bottom_bevel_height/2],
[-(frame_x/2)+3, -(frame_y/2)+3, frame_bottom_bevel_height/2],
];
bottom_points = [
// bottom bevel
[(frame_x/2)-4, (frame_y/2)-4, -frame_z/2+frame_bottom_bevel_height/2],
[-(frame_x/2)+4, (frame_y/2)-4, -frame_z/2+frame_bottom_bevel_height/2],
[(frame_x/2)-4, -(frame_y/2)+4, -frame_z/2+frame_bottom_bevel_height/2],
[-(frame_x/2)+4, -(frame_y/2)+4, -frame_z/2+frame_bottom_bevel_height/2],
];
hull() {
for (p = points) {
translate(p) cylinder(r=3, h=frame_z, center=true);
for (p = top_points) {
translate(p) cylinder(r=3, h=frame_z-frame_bottom_bevel_height, center=true);
}
for (p = bottom_points) {
translate(p) cylinder(r=2, h=frame_bottom_bevel_height, center=true);
}
}
// cut out the middle to make it a box

View File

@ -24,13 +24,13 @@ module left_frame() {
frame_cable_routing_hole();
// aux button holes
translate([-35, 101.5, 0]) rotate([270, 0, 0]) aux_control_three_button_cluster();
translate([-35, 101.5, frame_bottom_bevel_height/2]) rotate([270, 0, 0]) aux_control_three_button_cluster();
translate([-35, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
translate([-72, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
translate([2, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
// neutrix button hole
translate([frame_center_to_neutrik, (frame_y/2)-neutrik_panel_thickness, 0])
translate([frame_center_to_neutrik, (frame_y/2)-neutrik_panel_thickness, frame_bottom_bevel_height/2])
rotate([90, 0, 0]) neutrik_d_mount();
translate([frame_center_to_neutrik, (frame_y/2)-neutrik_panel_thickness-4, 0])
frame_cutout();

View File

@ -27,11 +27,14 @@ module middle_frame() {
mirror([1, 0, 0]) frame_cable_routing_hole();
// neutrik mounts for connector, switches
translate([0, (frame_y/2)-neutrik_panel_thickness, 0]) rotate([90, 0, 0]) neutrik_d_mount();
translate([0, (frame_y/2)-neutrik_panel_thickness, frame_bottom_bevel_height/2])
rotate([90, 0, 0]) neutrik_d_mount();
translate([0, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
translate([-40, (frame_y/2)-neutrik_panel_thickness, 0]) rotate([90, 0, 0]) neutrik_d_mount();
translate([-40, (frame_y/2)-neutrik_panel_thickness, frame_bottom_bevel_height/2])
rotate([90, 0, 0]) neutrik_d_mount();
translate([-40, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
translate([40, (frame_y/2)-neutrik_panel_thickness, 0]) rotate([90, 0, 0]) neutrik_d_mount();
translate([40, (frame_y/2)-neutrik_panel_thickness, frame_bottom_bevel_height/2])
rotate([90, 0, 0]) neutrik_d_mount();
translate([40, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
}
}

View File

@ -24,13 +24,13 @@ module right_frame() {
mirror([1, 0, 0]) frame_cable_routing_hole();
// aux button holes
translate([35, 101.5, 0]) rotate([270, 0, 0]) aux_control_three_button_cluster();
translate([35, 101.5, frame_bottom_bevel_height/2]) rotate([270, 0, 0]) aux_control_three_button_cluster();
translate([35, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
translate([72, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
translate([-2, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
// neutrix button hole
translate([-frame_center_to_neutrik, (frame_y/2)-neutrik_panel_thickness, 0])
translate([-frame_center_to_neutrik, (frame_y/2)-neutrik_panel_thickness, frame_bottom_bevel_height/2])
rotate([90, 0, 0]) neutrik_d_mount();
translate([-frame_center_to_neutrik, (frame_y/2)-neutrik_panel_thickness-4, 0])
frame_cutout();

View File

@ -11,20 +11,22 @@ module solo_frame() {
frame();
// neutrik mounts for connector, switches
translate([0, (frame_y/2)-2.5, 0]) rotate([90, 0, 0]) neutrik_d_mount();
translate([0, (frame_y/2)-2.5, frame_bottom_bevel_height/2]) rotate([90, 0, 0]) neutrik_d_mount();
translate([0, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
translate([-40, (frame_y/2)-2.5, 0]) rotate([90, 0, 0]) neutrik_d_mount();
translate([-40, (frame_y/2)-2.5, frame_bottom_bevel_height/2]) rotate([90, 0, 0]) neutrik_d_mount();
translate([-40, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
translate([40, (frame_y/2)-2.5, 0]) rotate([90, 0, 0]) neutrik_d_mount();
translate([40, (frame_y/2)-2.5, frame_bottom_bevel_height/2]) rotate([90, 0, 0]) neutrik_d_mount();
translate([40, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
// aux button holes
translate([-frame_x/2+2.5, 0, 0]) rotate([90, 0, 270]) aux_control_three_button_cluster();
translate([-frame_x/2+2.5, 0, frame_bottom_bevel_height/2]) rotate([90, 0, 270])
aux_control_three_button_cluster();
translate([(frame_x/2)-neutrik_panel_thickness-4, 0, 0]) rotate([0, 0, 90]) frame_cutout();
translate([(frame_x/2)-neutrik_panel_thickness-4, -37, 0]) rotate([0, 0, 90]) frame_cutout();
translate([(frame_x/2)-neutrik_panel_thickness-4, 37, 0]) rotate([0, 0, 90]) frame_cutout();
translate([frame_x/2+2.5, 0, 0]) rotate([90, 0, 270]) aux_control_three_button_cluster();
translate([frame_x/2+2.5, 0, frame_bottom_bevel_height/2]) rotate([90, 0, 270])
aux_control_three_button_cluster();
translate([-(frame_x/2)+neutrik_panel_thickness+4, 0, 0]) rotate([0, 0, 90]) frame_cutout();
translate([-(frame_x/2)+neutrik_panel_thickness+4, -37, 0]) rotate([0, 0, 90]) frame_cutout();
translate([-(frame_x/2)+neutrik_panel_thickness+4, 37, 0]) rotate([0, 0, 90]) frame_cutout();

View File

@ -37,6 +37,10 @@ frame_x = 233;
frame_y = 208;
frame_z = 57;
// this sinks the bottom of the frame inward a bit, and is used to math out two shapes
// when creating the frame box
frame_bottom_bevel_height = 6;
frame_center_to_neutrik = 70;
// depth of the "lip" of the frame that the top plate sets into/supports the overhang