From 390df34f2b807e2b3ee166d96b819518eb44da26 Mon Sep 17 00:00:00 2001 From: "Brian S. Stephan" Date: Fri, 1 Mar 2024 09:36:58 -0600 Subject: [PATCH] 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 ed031b9308b062b8900a40851dafac5f18aaa535. This reverts commit f90fc095e04b46073f33681b6cbe94b3ac421256. Signed-off-by: Brian S. Stephan --- src/components.scad | 40 +++++++++++++++++++++++++++------------- src/frame-left.scad | 12 ++++++------ src/frame-middle.scad | 12 ++++++------ src/frame-right.scad | 12 ++++++------ src/frame-solo.scad | 28 ++++++++++++++-------------- src/parameters.scad | 4 ++++ 6 files changed, 63 insertions(+), 45 deletions(-) diff --git a/src/components.scad b/src/components.scad index b9c24c5..fd7a41d 100644 --- a/src/components.scad +++ b/src/components.scad @@ -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(); diff --git a/src/frame-left.scad b/src/frame-left.scad index 5b65d8d..6d90f7a 100644 --- a/src/frame-left.scad +++ b/src/frame-left.scad @@ -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(); } } diff --git a/src/frame-middle.scad b/src/frame-middle.scad index b2087d2..ddccf0a 100644 --- a/src/frame-middle.scad +++ b/src/frame-middle.scad @@ -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(); } } diff --git a/src/frame-right.scad b/src/frame-right.scad index fb027d8..89fd83b 100644 --- a/src/frame-right.scad +++ b/src/frame-right.scad @@ -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(); } } diff --git a/src/frame-solo.scad b/src/frame-solo.scad index b5bc121..999122d 100644 --- a/src/frame-solo.scad +++ b/src/frame-solo.scad @@ -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(); } } diff --git a/src/parameters.scad b/src/parameters.scad index f00e5a1..b39bb4d 100644 --- a/src/parameters.scad +++ b/src/parameters.scad @@ -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