From 4e65445e16ab1996cf6cc22df836beb8f97ada6b Mon Sep 17 00:00:00 2001 From: "Brian S. Stephan" Date: Wed, 19 Jun 2024 13:23:01 -0500 Subject: [PATCH] fix the extended pieces, sans 45 degree box corner box pieces having a 45 degree cut for the corners looks very nice, and works well, but the cut interferes with the extended piece options, so this reuses the pieces to take ones with the 45 degree lip cut off, which would be combined with the flush extended pieces, much like how things used to work for these pieces before I made the box pieces use said cut. this also commits a demo of combining everything extended-style phew Signed-off-by: Brian S. Stephan --- demo/all-together-demo-extended.scad | 43 +++++++++++++++++++ src/frame-piece-side-extended-to-bottom.scad | 11 +++-- src/frame-piece-side-extended.scad | 12 ++++-- src/frame-piece-top-or-bottom-extended.scad | 30 ++++++------- ...tom-for-extended-side-aux-and-neutrik.scad | 28 ++++++++++++ ...piece-top-or-bottom-for-extended-side.scad | 18 ++++++++ 6 files changed, 119 insertions(+), 23 deletions(-) create mode 100644 demo/all-together-demo-extended.scad create mode 100644 src/frame-piece-top-or-bottom-for-extended-side-aux-and-neutrik.scad create mode 100644 src/frame-piece-top-or-bottom-for-extended-side.scad diff --git a/demo/all-together-demo-extended.scad b/demo/all-together-demo-extended.scad new file mode 100644 index 0000000..4317411 --- /dev/null +++ b/demo/all-together-demo-extended.scad @@ -0,0 +1,43 @@ +/* + * SPDX-FileCopyrightText: © 2023 Brian S. Stephan + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +include <../src/parameters.scad> +include <../src/components.scad> +use <../src/frame-piece-top-or-bottom-extended.scad> +use <../src/frame-piece-side-extended-to-bottom.scad> +use <../src/frame-piece-top-or-bottom-for-extended-side-aux-and-neutrik.scad> +use <../src/top-panel-inset-lever-and-dir_arc-plus-w-30mm.scad> +use <../src/top-panel-inset-sega-2p-plus-one-plus-control-with-mount.scad> +use <../src/misc-decorative-plate-24mm-button.scad> +use <../src/misc-decorative-plate-dir_arc-plus-w-30mm-and-sega-2p-plus-one.scad> +use <../src/misc-decorative-plate-dir_arc-plus-w-30mm-and-sega-2p-plus-one-plates.scad> +use <../src/misc-dustwasher-lsx-nobi.scad> + +/* top_panel_color = "white"; */ +/* bottom_panel_color = "red"; */ +/* frame_top_bottom_color = "red"; */ +/* frame_side_color = "red"; */ +/* top_deco_color = "black"; */ +top_panel_color = "#5B6579"; +bottom_panel_color = "#8E9089"; +frame_top_bottom_color = "#8E9089"; +frame_side_color = "#8E9089"; +top_deco_color = "#8E9089"; + +color(top_panel_color) translate([-panel_x/2, 0, frame_z/2-panel_z+0.01]) top_panel_inset_lever_and_dir_arc_w_30mm(); +color(top_panel_color) translate([panel_x/2, 0, frame_z/2-panel_z+0.01]) top_panel_inset_sega_2p_plus_one_plus_control_with_mount(); +color(frame_side_color) translate([-frame_x/2+4, 0, -2.5]) extra_extended_left_or_right_frame_piece(); +color(frame_side_color) translate([frame_x/2-4, 0, -2.5]) mirror([1, 0, 0]) extra_extended_left_or_right_frame_piece(); +color(frame_top_bottom_color) translate([-frame_x/2+4, 0, -2.5]) extended_top_or_bottom_frame_piece(); +color(frame_top_bottom_color) translate([frame_x/2-4, 0, -2.5]) extended_top_or_bottom_frame_piece(); +color(frame_top_bottom_color) translate([-frame_x/2+4, 0, -2.5]) rotate([180, 0, 0]) top_or_bottom_aux_and_neutrik_box_frame_piece_for_extended_side(); +color(frame_top_bottom_color) translate([frame_x/2-4, 0, -2.5]) rotate([180, 180, 0]) top_or_bottom_aux_and_neutrik_box_frame_piece_for_extended_side(); +color(bottom_panel_color) translate([-panel_x/2, 0, -5-frame_z/2+5]) bottom_panel(); +color(bottom_panel_color) translate([panel_x/2, 0, -5-frame_z/2+5]) bottom_panel(); + +/* color(top_deco_color) translate([0, 0, 3+frame_z/2-4]) dir_arc_plus_w_30mm_and_sega_2p_plus_one_decorative_plate_of_plates(); */ +color(top_deco_color) translate([0, 0, 3+frame_z/2-panel_z]) dir_arc_plus_w_30mm_and_sega_2p_plus_one_decorative_plate(); +color(top_deco_color) translate([-170, 20, 3+frame_z/2-panel_z]) lsx_nobi_dustwasher(); +color(top_deco_color) translate([panel_x-24, 30, 3+frame_z/2-panel_z]) button_24mm_decorative_plate(); diff --git a/src/frame-piece-side-extended-to-bottom.scad b/src/frame-piece-side-extended-to-bottom.scad index 7b9b4b2..531251d 100644 --- a/src/frame-piece-side-extended-to-bottom.scad +++ b/src/frame-piece-side-extended-to-bottom.scad @@ -5,13 +5,16 @@ include include +use +use use -use module side_and_bottom_frame_piece_wall() { // get a slice of the pieces, to use it in extruding - projection(cut=true) rotate([0, 90, 0]) translate([frame_x/2-frame_bevel_height, 0, 0]) - side_frame_piece(); + // this doesn't use the side_frame_piece because of the 45 degree angle geometry + // not creating a clean thing to cut, so we just take the whole wall and use that + projection(cut=true) rotate([0, 90, 0]) translate([frame_x/2-frame_wall-(frame_bevel_height/2), 0, 0]) + left_frame(); projection(cut=true) translate([0, -frame_y/2+frame_wall, 0]) rotate([90, 90, 0]) bottom_piece_extension(); } @@ -25,7 +28,7 @@ module side_and_bottom_frame_piece_extension() { module extra_extended_left_or_right_frame_piece() { difference() { - side_frame_piece(); + side_box_frame_piece(); // chop off the old edge which is getting replaced with the extension translate([-frame_x/2+frame_bevel_height/2, 0, 0]) cube([frame_bevel_height, frame_y, frame_z], center=true); } diff --git a/src/frame-piece-side-extended.scad b/src/frame-piece-side-extended.scad index cc88f7f..d931c05 100644 --- a/src/frame-piece-side-extended.scad +++ b/src/frame-piece-side-extended.scad @@ -5,12 +5,16 @@ include include -use +use +use +use module side_frame_piece_wall() { // get a slice of the piece, to use it in extruding - projection(cut=true) rotate([0, 90, 0]) translate([frame_x/2-frame_bevel_height, 0, 0]) - side_frame_piece(); + // this doesn't use the side_frame_piece because of the 45 degree angle geometry + // not creating a clean thing to cut, so we just take the whole wall and use that + projection(cut=true) rotate([0, 90, 0]) translate([frame_x/2-frame_wall-(frame_bevel_height/2), 0, 0]) + left_frame(); } module side_frame_piece_extension() { @@ -23,7 +27,7 @@ module side_frame_piece_extension() { module extended_bottom_left_or_right_frame_piece() { difference() { - side_frame_piece(); + side_box_frame_piece(); // chop off the old edge which is getting replaced with the extension translate([-frame_x/2+frame_bevel_height/2, 0, 0]) cube([frame_bevel_height, frame_y, frame_z], center=true); } diff --git a/src/frame-piece-top-or-bottom-extended.scad b/src/frame-piece-top-or-bottom-extended.scad index bf7f7bd..8ab4356 100644 --- a/src/frame-piece-top-or-bottom-extended.scad +++ b/src/frame-piece-top-or-bottom-extended.scad @@ -5,33 +5,33 @@ include include -use +use + +module clean_top_or_bottom() { + difference() { + top_or_bottom_box_frame_piece_for_extended_side(); + // chop off the lip we left on the basic piece + translate([-frame_x/2+frame_wall/2, 0, 0]) cube([frame_wall, frame_y, frame_z], center=true); + }; +} module bottom_piece_wall() { - // get a slice of the piece, to use it in extruding - projection(cut=true) rotate([-90, 0, 0]) translate([0, frame_y/2-frame_bevel_height, 0]) - difference() { - top_or_bottom_frame_piece(); - // chop off the lip we left on the basic piece - translate([-frame_x/2+frame_wall/2, 0, 0]) cube([frame_wall, frame_y, frame_z], center=true); - }; + // get a slice of the piece (before the bevel), to use it in extruding + projection(cut=true) rotate([-90, 0, 0]) translate([0, frame_y/2-(frame_wall-frame_bevel_height)*3/2, 0]) + clean_top_or_bottom(); } module bottom_piece_extension() { // combine the original with a shrunken piece to "pull" the wall out hull() { linear_extrude(height=frame_extension_y) scale([1, 0.5, 1]) bottom_piece_wall(); - linear_extrude(height=frame_bevel_height) bottom_piece_wall(); + linear_extrude(height=(frame_wall-frame_bevel_height)) bottom_piece_wall(); } } module extended_top_or_bottom_frame_piece() { - difference() { - top_or_bottom_frame_piece(); - // chop off the lip we left on the basic piece - translate([-frame_x/2+frame_wall/2, 0, 0]) cube([frame_wall, frame_y+1, frame_z], center=true); - } - translate([0, -frame_y/2+frame_bevel_height, 0]) rotate([90, 0, 0]) bottom_piece_extension(); + clean_top_or_bottom(); + translate([0, -frame_y/2+frame_wall, 0]) rotate([90, 0, 0]) bottom_piece_extension(); } extended_top_or_bottom_frame_piece(); diff --git a/src/frame-piece-top-or-bottom-for-extended-side-aux-and-neutrik.scad b/src/frame-piece-top-or-bottom-for-extended-side-aux-and-neutrik.scad new file mode 100644 index 0000000..3834924 --- /dev/null +++ b/src/frame-piece-top-or-bottom-for-extended-side-aux-and-neutrik.scad @@ -0,0 +1,28 @@ +/* + * SPDX-FileCopyrightText: © 2024 Brian S. Stephan + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +include +include +use + +module top_or_bottom_aux_and_neutrik_box_frame_piece_for_extended_side() { + difference() { + top_or_bottom_box_frame_piece_for_extended_side(); + + // aux button holes + translate([-35.25, -101.5, 0]) rotate([90, 0, 0]) aux_control_three_button_cluster(); + translate([-35.25, -(frame_y/2)+neutrik_panel_thickness+4, 0]) frame_cutout(); + translate([-72.25, -(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]) + rotate([270, 0, 0]) neutrik_d_mount(); + translate([frame_center_to_neutrik, -(frame_y/2)+neutrik_panel_thickness+4, 0]) + frame_cutout(); + } +} + +top_or_bottom_aux_and_neutrik_box_frame_piece_for_extended_side(); diff --git a/src/frame-piece-top-or-bottom-for-extended-side.scad b/src/frame-piece-top-or-bottom-for-extended-side.scad new file mode 100644 index 0000000..72b976c --- /dev/null +++ b/src/frame-piece-top-or-bottom-for-extended-side.scad @@ -0,0 +1,18 @@ +/* + * SPDX-FileCopyrightText: © 2024 Brian S. Stephan + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +include +include +use + +module top_or_bottom_box_frame_piece_for_extended_side() { + difference() { + top_or_bottom_box_frame_piece(); + // ...minus the frame wall and lip on the left + translate([-frame_x/2+frame_wall/2, 0, 0]) cube([frame_wall, frame_y, frame_z], center=true); + } +} + +top_or_bottom_box_frame_piece_for_extended_side();