frames: re-bevel the bottom and top, center buttons

this undoes my work to simplify the bottom of the frame and move button
holes in the frames accordingly. the top and bottom are now symmetrical
in terms of their bevel, and the buttons are centered. this will make
the print of the frame difficult again, but I have an upcoming change to
modularize the frame walls and that will print far better, so I'm
thinking this is what I want. testing ongoing

This reverts commit ed031b9308.
This reverts commit f90fc095e0.

Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
This commit is contained in:
Brian S. Stephan 2024-03-01 09:36:58 -06:00
parent 365faebfcb
commit 390df34f2b
Signed by: bss
GPG Key ID: 3DE06D3180895FCB
6 changed files with 63 additions and 45 deletions

View File

@ -83,7 +83,7 @@ module rocker_20mm_mount() {
// space for a neutrik D mount or 24mm button - Z is to cut the whole inside without affecting panel lip
module frame_cutout() {
cube([30.5, 8, frame_z-(panel_z*2)-2], center=true);
cube([30.5, 8, frame_z-(panel_z*2)], center=true);
}
// bank of three 24mm buttons, commonly on a frame face
@ -244,15 +244,35 @@ module panel_with_raised_overhang() {
module frame_box() {
difference() {
top_points = [
// top part, majority of shape
[(frame_x/2)-3, (frame_y/2)-3, panel_z/2],
[-(frame_x/2)+3, (frame_y/2)-3, panel_z/2],
[(frame_x/2)-3, -(frame_y/2)+3, panel_z/2],
[-(frame_x/2)+3, -(frame_y/2)+3, panel_z/2],
// top 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],
];
base_points = [
// majority of shape
[(frame_x/2)-2, (frame_y/2)-2, 0],
[-(frame_x/2)+2, (frame_y/2)-2, 0],
[(frame_x/2)-2, -(frame_y/2)+2, 0],
[-(frame_x/2)+2, -(frame_y/2)+2, 0],
];
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 = top_points) {
translate(p) cylinder(r=3, h=frame_z-panel_z, center=true);
translate(p) cylinder(r=2, h=frame_bottom_bevel_height, center=true);
}
for (p = base_points) {
translate(p) cylinder(r=2, h=frame_z-(frame_bottom_bevel_height*2), 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
@ -306,12 +326,6 @@ module frame() {
translate([panel_to_frame_point_x, -panel_to_frame_point_y, 0]) frame_hex_bolt_hole();
translate([-panel_to_frame_point_x, -panel_to_frame_point_y, 0]) frame_hex_bolt_hole();
// comfort bevel
translate([frame_x/2, 0, frame_z/2]) rotate([0, 45, 0]) cube([4, frame_y+0.01, 4], center=true);
translate([-frame_x/2, 0, frame_z/2]) rotate([0, 45, 0]) cube([4, frame_y+0.01, 4], center=true);
translate([0, frame_y/2, frame_z/2]) rotate([45, 0, 0]) cube([frame_x+0.01, 4, 4], center=true);
translate([0, -frame_y/2, frame_z/2]) rotate([45, 0, 0]) cube([frame_x+0.01, 4, 4], center=true);
// slightly larger holes than the posts in the base_panel
translate([panel_to_frame_point_x, panel_to_frame_point_y, frame_z/2-panel_z-5])
scale([1.55, 1.55, 0.2]) frame_hex_bolt_hole();

View File

@ -24,15 +24,15 @@ module left_frame() {
frame_cable_routing_hole();
// aux button holes
translate([-35, 101.5, panel_z/2]) rotate([270, 0, 0]) aux_control_three_button_cluster();
translate([-35, (frame_y/2)-neutrik_panel_thickness-4, 1]) frame_cutout();
translate([-72, (frame_y/2)-neutrik_panel_thickness-4, 1]) frame_cutout();
translate([2, (frame_y/2)-neutrik_panel_thickness-4, 1]) frame_cutout();
translate([-35, 101.5, 0]) 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, panel_z/2])
translate([frame_center_to_neutrik, (frame_y/2)-neutrik_panel_thickness, 0])
rotate([90, 0, 0]) neutrik_d_mount();
translate([frame_center_to_neutrik, (frame_y/2)-neutrik_panel_thickness-4, 1])
translate([frame_center_to_neutrik, (frame_y/2)-neutrik_panel_thickness-4, 0])
frame_cutout();
}
}

View File

@ -27,15 +27,15 @@ module middle_frame() {
mirror([1, 0, 0]) frame_cable_routing_hole();
// neutrik mounts for connector, switches
translate([0, (frame_y/2)-neutrik_panel_thickness, panel_z/2])
translate([0, (frame_y/2)-neutrik_panel_thickness, 0])
rotate([90, 0, 0]) neutrik_d_mount();
translate([0, (frame_y/2)-neutrik_panel_thickness-4, 1]) frame_cutout();
translate([-40, (frame_y/2)-neutrik_panel_thickness, panel_z/2])
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-4, 1]) frame_cutout();
translate([40, (frame_y/2)-neutrik_panel_thickness, panel_z/2])
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-4, 1]) frame_cutout();
translate([40, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
}
}

View File

@ -24,15 +24,15 @@ module right_frame() {
mirror([1, 0, 0]) frame_cable_routing_hole();
// aux button holes
translate([35, 101.5, panel_z/2]) rotate([270, 0, 0]) aux_control_three_button_cluster();
translate([35, (frame_y/2)-neutrik_panel_thickness-4, 1]) frame_cutout();
translate([72, (frame_y/2)-neutrik_panel_thickness-4, 1]) frame_cutout();
translate([-2, (frame_y/2)-neutrik_panel_thickness-4, 1]) frame_cutout();
translate([35, 101.5, 0]) 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, panel_z/2])
translate([-frame_center_to_neutrik, (frame_y/2)-neutrik_panel_thickness, 0])
rotate([90, 0, 0]) neutrik_d_mount();
translate([-frame_center_to_neutrik, (frame_y/2)-neutrik_panel_thickness-4, 1])
translate([-frame_center_to_neutrik, (frame_y/2)-neutrik_panel_thickness-4, 0])
frame_cutout();
}
}

View File

@ -11,25 +11,25 @@ module solo_frame() {
frame();
// neutrik mounts for connector, switches
translate([0, (frame_y/2)-2.5, panel_z/2]) rotate([90, 0, 0]) neutrik_d_mount();
translate([0, (frame_y/2)-neutrik_panel_thickness-4, 1]) frame_cutout();
translate([-40, (frame_y/2)-2.5, panel_z/2]) rotate([90, 0, 0]) neutrik_d_mount();
translate([-40, (frame_y/2)-neutrik_panel_thickness-4, 1]) frame_cutout();
translate([40, (frame_y/2)-2.5, panel_z/2]) rotate([90, 0, 0]) neutrik_d_mount();
translate([40, (frame_y/2)-neutrik_panel_thickness-4, 1]) frame_cutout();
translate([0, (frame_y/2)-2.5, 0]) 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)-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)-neutrik_panel_thickness-4, 0]) frame_cutout();
// aux button holes
translate([-frame_x/2+2.5, 0, panel_z/2]) rotate([90, 0, 270])
translate([-frame_x/2+2.5, 0, 0]) rotate([90, 0, 270])
aux_control_three_button_cluster();
translate([(frame_x/2)-neutrik_panel_thickness-4, 0, 1]) rotate([0, 0, 90]) frame_cutout();
translate([(frame_x/2)-neutrik_panel_thickness-4, -37, 1]) rotate([0, 0, 90]) frame_cutout();
translate([(frame_x/2)-neutrik_panel_thickness-4, 37, 1]) rotate([0, 0, 90]) frame_cutout();
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, panel_z/2]) rotate([90, 0, 270])
translate([frame_x/2+2.5, 0, 0]) rotate([90, 0, 270])
aux_control_three_button_cluster();
translate([-(frame_x/2)+neutrik_panel_thickness+4, 0, 1]) rotate([0, 0, 90]) frame_cutout();
translate([-(frame_x/2)+neutrik_panel_thickness+4, -37, 1]) rotate([0, 0, 90]) frame_cutout();
translate([-(frame_x/2)+neutrik_panel_thickness+4, 37, 1]) rotate([0, 0, 90]) frame_cutout();
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