Compare commits

..

No commits in common. "bcf2adcaa2d0bac13e5345bcb77f8ceded0c3015" and "d9d11834881f052455f3943e6196aaa15b0dd1a5" have entirely different histories.

11 changed files with 46 additions and 63 deletions

View File

@ -135,16 +135,6 @@ Board, ~$60 for Sanwa buttons and a lever, and ~$20 for miscellaneous connectors
full-featured controller with an open source foundation together for around $140. Reducing wall and infill settings
will probably save you around $5 of material, and you can probably decide what you want to do from there.
## FAQ
### I get a bunch of warnings on not being able to include files when I open them in OpenSCAD, what do I do?
OpenSCAD pathing is relative to the current working directory by default, which is probably not the `src/` directory.
When you start OpenSCAD, you must either start it from inside the project's `src/` directory, or point it at the path to
the source files via e.g. `OPENSCADPATH=path/to/buildable-stick-system/src/` openscad`.
See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Include_Statement.
## Miscellany
See the `/docs/` directory for more thoughts too scattered for this document.

View File

@ -9,7 +9,7 @@ use <frames/pieces/side-trapezoid.scad>
use <frames/pieces/front-or-back-aux-and-neutrik.scad>
use <frames/pieces/front-or-back-windowed-horiz-stripes.scad>
use <panels/inset/lever-and-dir_arc-plus-w-30mm-panel.scad>
use <panels/inset/sega-2p-nine-plus-aux-button-with-mount.scad>
use <panels/inset/sega-2p-nine-plus-control-panel-with-mount.scad>
use <misc/decorative-plate-24mm-button.scad>
use <misc/decorative-plate-dir_arc-plus-w-30mm-and-sega-2p-nine.scad>
use <misc/dustwasher-lsx-nobi.scad>
@ -21,7 +21,7 @@ frame_side_color = "#8E9089";
top_deco_color = "#8E9089";
color(top_panel_color) translate([-panel_x/2, 0, frame_z/2-panel_z+0.01]) lever_and_dir_arc_w_30mm_panel();
color(top_panel_color) translate([panel_x/2, 0, frame_z/2-panel_z+0.01]) sega_2p_nine_plus_aux_button_with_mount();
color(top_panel_color) translate([panel_x/2, 0, frame_z/2-panel_z+0.01]) sega_2p_nine_plus_control_panel_with_mount();
color(frame_side_color) translate([-frame_x/2+4, 0, -2.5]) side_trapezoid_frame_piece();
color(frame_side_color) translate([frame_x/2-4, 0, -2.5]) mirror([1, 0, 0]) side_trapezoid_frame_piece();
color(frame_top_bottom_color) translate([-frame_x/2+4, 0, -2.5]) horiz_striped_windowed_front_or_back_frame_piece();

View File

@ -5,24 +5,24 @@
include <parameters.scad>
include <components.scad>
use <frames/pieces/front-or-back-aux-and-neutrik.scad>
use <frames/pieces/front-or-back-trapezoid.scad>
use <frames/pieces/side-trapezoid-extended-to-front-trapezoid.scad>
use <panels/inset/lever-and-dir_arc-plus-w-30mm-panel-with-oled.scad>
use <panels/inset/sega-2p-nine-plus-aux-button-with-mount.scad>
use <frames/pieces/front-or-back-aux-and-neutrik.scad>
use <panels/inset/lever-and-dir_arc-plus-w-30mm-panel.scad>
use <panels/inset/sega-2p-nine-plus-control-panel-with-mount.scad>
use <misc/decorative-plate-24mm-button.scad>
use <misc/decorative-plate-dir_arc-plus-w-30mm-and-sega-2p-nine.scad>
use <misc/dustwasher-lsx-nobi.scad>
top_panel_color = "#0086D6";
bottom_panel_color = "white";
frame_front_color = "white";
frame_back_color = "white";
frame_side_color = "yellow";
top_panel_color = "purple";
bottom_panel_color = "black";
frame_front_color = "black";
frame_back_color = "black";
frame_side_color = "red";
top_deco_color = "white";
color(top_panel_color) translate([-panel_x/2, 0, frame_z/2-panel_z+0.01]) lever_and_dir_arc_w_30mm_panel_with_oled();
color(top_panel_color) translate([panel_x/2, 0, frame_z/2-panel_z+0.01]) sega_2p_nine_plus_aux_button_with_mount();
color(top_panel_color) translate([-panel_x/2, 0, frame_z/2-panel_z+0.01]) lever_and_dir_arc_w_30mm_panel();
color(top_panel_color) translate([panel_x/2, 0, frame_z/2-panel_z+0.01]) sega_2p_nine_plus_control_panel_with_mount();
color(frame_side_color) translate([-frame_x/2+4, 0, -2.5]) side_trapezoid_extended_to_front_frame_piece();
color(frame_side_color) translate([frame_x/2-4, 0, -2.5]) mirror([1, 0, 0]) side_trapezoid_extended_to_front_frame_piece();
color(frame_front_color) translate([-frame_x/2+4, 0, -2.5]) front_or_back_trapezoid_frame_piece();
@ -33,5 +33,5 @@ color(bottom_panel_color) translate([-panel_x/2, 0, -5-frame_z/2+5]) panel();
color(bottom_panel_color) translate([panel_x/2, 0, -5-frame_z/2+5]) panel();
color(top_deco_color) translate([0, 0, 3+frame_z/2-panel_z]) dir_arc_plus_w_30mm_and_sega_2p_nine_decorative_plate();
color(top_deco_color) translate([-170, 20, 3+frame_z/2-panel_z]) rotate([180, 0, 0]) lsx_nobi_dustwasher();
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

@ -9,10 +9,11 @@ use <frames/pieces/side.scad>
use <frames/pieces/front-or-back.scad>
use <frames/pieces/front-or-back-aux-and-neutrik.scad>
use <panels/inset/lever-and-dir_arc-plus-w-30mm-panel.scad>
use <panels/inset/sega-2p-nine-plus-aux-button-with-mount.scad>
use <panels/inset/sega-2p-nine-plus-control-panel-with-mount.scad>
use <misc/decorative-plate-24mm-button.scad>
use <misc/decorative-plate-dir_arc-plus-w-30mm-and-sega-2p-nine.scad>
use <misc/dustwasher-lsx-nobi.scad>
use <misc/decorative-corner.scad>
panel_color = "red";
base_color = "gray";
@ -20,7 +21,7 @@ top_deco_color = "white";
brace_color = "gray";
color(panel_color) translate([-panel_x/2, 0, frame_z/2-panel_z/2+0.001]) lever_and_dir_arc_w_30mm_panel();
color(panel_color) translate([panel_x/2, 0, frame_z/2-panel_z/2+0.001]) sega_2p_nine_plus_aux_button_with_mount();
color(panel_color) translate([panel_x/2, 0, frame_z/2-panel_z/2+0.001]) sega_2p_nine_plus_control_panel_with_mount();
color(base_color) translate([panel_x/2, 0, 0]) rotate([0, 180, 0]) side_frame_piece();
color(base_color) translate([-panel_x/2, 0, 0]) side_frame_piece();
color(base_color) translate([panel_x/2, 0, 0]) front_or_back_frame_piece();
@ -30,6 +31,11 @@ color(base_color) translate([-panel_x/2, 0, 0]) rotate([180, 0, 0]) front_or_bac
color(base_color) translate([-panel_x/2, 0, -frame_z/2+panel_z/2]) panel();
color(base_color) translate([panel_x/2, 0, -frame_z/2+panel_z/2]) panel();
color(brace_color) translate([-panel_x/2, 0, 0]) decorative_corner();
color(brace_color) mirror([1, 0, 0]) translate([-panel_x/2, 0, 0]) decorative_corner();
color(brace_color) mirror([0, 1, 0]) translate([-panel_x/2, 0, 0]) decorative_corner();
color(brace_color) mirror([1, 0, 0]) mirror([0, 1, 0]) translate([-panel_x/2, 0, 0]) decorative_corner();
color(top_deco_color) translate([0, 0, 4+frame_z/2-panel_z/2+0.001]) dir_arc_plus_w_30mm_and_sega_2p_nine_decorative_plate();
color(top_deco_color) translate([-170, 20, 4+frame_z/2-panel_z/2+0.001]) lsx_nobi_dustwasher();
color(top_deco_color) translate([panel_x-24, 30, 4+frame_z/2-panel_z/2+0.001]) button_24mm_decorative_plate();

View File

@ -10,14 +10,14 @@ use <frames/pieces/side.scad>
use <frames/pieces/front-or-back.scad>
use <frames/pieces/front-or-back-aux-and-neutrik.scad>
use <panels/overhang/left-lever-and-dir_arc-plus-w-30mm-panel.scad>
use <panels/overhang/right-sega-2p-nine-plus-aux-button-with-mount.scad>
use <panels/overhang/right-sega-2p-nine-plus-control-panel-with-mount.scad>
use <panels/overhang/left-or-right-panel.scad>
use <misc/decorative-plate-24mm-button.scad>
use <misc/decorative-plate-dir_arc-plus-w-30mm-and-sega-2p-nine.scad>
use <misc/dustwasher-lsx-nobi.scad>
color("#C12E1F") translate([-panel_x/2-25, 0, frame_z/2+75]) lever_and_dir_arc_w_30mm_left_overhang_panel();
color("#C12E1F") translate([panel_x/2+25, 0, frame_z/2+75]) sega_2p_nine_plus_aux_button_right_overhang_panel_with_mount();
color("#C12E1F") translate([panel_x/2+25, 0, frame_z/2+75]) sega_2p_nine_plus_control_right_overhang_panel_with_mount();
color("black") translate([-frame_x/2+5-25, -55, -2.5]) front_or_back_frame_piece();
color("black") rotate([0, 180, 0]) translate([-frame_x/2+5-25, -55, -2.5]) front_or_back_frame_piece();
color("black") translate([-frame_x/2+5-50, 0, -2.5]) side_frame_piece();

View File

@ -1,24 +0,0 @@
/* Wrap a smaller width hex spacer with plastic to get it to fit in our standard post hole.
*
* Since the hex spacers can vary in width, you may have to adjust the inner dimensions
* to make this work right for your piece, but this worked right for mine. YMMV.
*
* SPDX-FileCopyrightText: © 2025 Brian S. Stephan <bss@incorporeal.org>
* SPDX-License-Identifier: GPL-3.0-or-later
*/
include <parameters.scad>
include <components.scad>
module small_m4_hole() {
scale([1, 1, 2]) cylinder(r=3.25, h=frame_z, $fn=6, center=true);
}
module m4_hex_spacer_sleeve() {
difference() {
resize([0, 0, 45]) frame_hex_bolt_hole();
small_m4_hole();
}
}
m4_hex_spacer_sleeve();

View File

@ -8,6 +8,17 @@ include <components.scad>
use <lever-and-dir_arc-plus-w-30mm-panel.scad>
module lever_and_dir_arc_w_30mm_panel_with_oled() {
/* // TEMP FOR PRINTING JUST THE SECTION AS A TEST */
/* intersection() { */
/* union() { */
/* difference() { */
/* lever_and_dir_arc_w_30mm_panel(); */
/* translate([0, -(panel_y/2 - 30), 0]) adafruit_pid_326_oled_ssd1306_mount_cutout(); */
/* } */
/* translate([0, -(panel_y/2 - 30), 0]) adafruit_pid_326_oled_ssd1306_mount(); */
/* } */
/* translate([0, -(panel_y/2-30), 0]) cube([50, 40, 10], center=true); */
/* } */
difference() {
lever_and_dir_arc_w_30mm_panel();
translate([0, -(panel_y/2 - 22), 0]) adafruit_pid_326_oled_ssd1306_mount_cutout();

View File

@ -5,11 +5,11 @@
include <parameters.scad>
include <components.scad>
use <sega-2p-nine-plus-aux-button.scad>
use <sega-2p-nine-plus-control-panel.scad>
module sega_2p_nine_plus_aux_button_with_mount() {
sega_2p_nine_plus_aux_button();
module sega_2p_nine_plus_control_panel_with_mount() {
sega_2p_nine_plus_control_panel();
translate([30, -50, -(panel_z/2) - 3]) pcb_mount();
}
sega_2p_nine_plus_aux_button_with_mount();
sega_2p_nine_plus_control_panel_with_mount();

View File

@ -6,7 +6,7 @@
include <parameters.scad>
include <components.scad>
module sega_2p_nine_plus_aux_button() {
module sega_2p_nine_plus_control_panel() {
difference() {
panel();
sega_2p_nine();
@ -14,4 +14,4 @@ module sega_2p_nine_plus_aux_button() {
}
}
sega_2p_nine_plus_aux_button();
sega_2p_nine_plus_control_panel();

View File

@ -5,11 +5,11 @@
include <parameters.scad>
include <components.scad>
use <right-sega-2p-nine-plus-aux-button.scad>
use <right-sega-2p-nine-plus-control-panel.scad>
module sega_2p_nine_plus_aux_button_right_overhang_panel_with_mount() {
sega_2p_nine_plus_aux_button_right_overhang_panel();
module sega_2p_nine_plus_control_right_overhang_panel_with_mount() {
sega_2p_nine_plus_control_right_overhang_panel();
translate([30, -50, -(panel_z/2) - 3]) pcb_mount();
}
sega_2p_nine_plus_aux_button_right_overhang_panel_with_mount();
sega_2p_nine_plus_control_right_overhang_panel_with_mount();

View File

@ -6,7 +6,7 @@
include <parameters.scad>
include <components.scad>
module sega_2p_nine_plus_aux_button_right_overhang_panel() {
module sega_2p_nine_plus_control_right_overhang_panel() {
difference() {
panel_with_raised_overhang();
sega_2p_nine();
@ -15,4 +15,4 @@ module sega_2p_nine_plus_aux_button_right_overhang_panel() {
}
}
sega_2p_nine_plus_aux_button_right_overhang_panel();
sega_2p_nine_plus_control_right_overhang_panel();