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 <bss@incorporeal.org>
This commit is contained in:
Brian S. Stephan 2024-06-19 13:23:01 -05:00
parent d578890d96
commit 4e65445e16
Signed by: bss
GPG Key ID: 3DE06D3180895FCB
6 changed files with 119 additions and 23 deletions

View File

@ -0,0 +1,43 @@
/*
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
* 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();

View File

@ -5,13 +5,16 @@
include <parameters.scad>
include <components.scad>
use <frame-left.scad>
use <frame-piece-side-for-box.scad>
use <frame-piece-top-or-bottom-extended.scad>
use <frame-piece-side.scad>
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);
}

View File

@ -5,12 +5,16 @@
include <parameters.scad>
include <components.scad>
use <frame-piece-side.scad>
use <frame-left.scad>
use <frame-piece-side-for-box.scad>
use <frame-piece-top-or-bottom-for-extended-side.scad>
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);
}

View File

@ -5,33 +5,33 @@
include <parameters.scad>
include <components.scad>
use <frame-piece-top-or-bottom.scad>
use <frame-piece-top-or-bottom-for-extended-side.scad>
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();

View File

@ -0,0 +1,28 @@
/*
* SPDX-FileCopyrightText: © 2024 Brian S. Stephan <bss@incorporeal.org>
* SPDX-License-Identifier: GPL-3.0-or-later
*/
include <parameters.scad>
include <components.scad>
use <frame-piece-top-or-bottom-for-extended-side.scad>
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();

View File

@ -0,0 +1,18 @@
/*
* SPDX-FileCopyrightText: © 2024 Brian S. Stephan <bss@incorporeal.org>
* SPDX-License-Identifier: GPL-3.0-or-later
*/
include <parameters.scad>
include <components.scad>
use <frame-piece-top-or-bottom-for-box.scad>
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();