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:
parent
7b2289624e
commit
abc4577173
@ -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
|
||||
|
@ -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();
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
@ -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();
|
||||
|
@ -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();
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user