Compare commits
37 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
05dab45152
|
|||
|
180b7deb9e
|
|||
|
8987d403ce
|
|||
|
44a238f454
|
|||
|
ed031b9308
|
|||
|
296e6da14b
|
|||
|
c0c9b9e1dc
|
|||
|
b7af797349
|
|||
|
dd3d77ae90
|
|||
|
f90fc095e0
|
|||
|
f54aa989f7
|
|||
|
abc4577173
|
|||
|
7b2289624e
|
|||
|
15083f6787
|
|||
|
a5724209fe
|
|||
|
78a43e41bc
|
|||
|
370aeb56c6
|
|||
|
06c27bd4aa
|
|||
|
773433cd10
|
|||
|
bad3c7628f
|
|||
|
6a1e1cc1f3
|
|||
|
3c8aa4e090
|
|||
|
dac1073aa0
|
|||
|
d3940c4109
|
|||
|
53834363a6
|
|||
|
02993ab6a6
|
|||
|
543e31aec7
|
|||
|
438220466d
|
|||
|
97f69b9332
|
|||
|
b653815ef5
|
|||
|
14150a3f04
|
|||
|
a0db9d9c3f
|
|||
|
abc35affea
|
|||
|
feebf5a38d
|
|||
|
3ee8745d09
|
|||
|
99b03a3b48
|
|||
|
20373cf856
|
35
CONTRIBUTING.md
Normal file
35
CONTRIBUTING.md
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
# Contributing Guidelines
|
||||||
|
|
||||||
|
The Buildable Stick System is made available under the GPLv3 (or later) license. Contributions are welcome via pull
|
||||||
|
requests. This document outlines the process to get your contribution accepted.
|
||||||
|
|
||||||
|
## Sign Offs/Custody of Contributions
|
||||||
|
|
||||||
|
I do not request the copyright of contributions be assigned to me or to the project, and I require no provision that I
|
||||||
|
be allowed to relicense your contributions. My personal oath is to maintain inbound=outbound in my open source projects,
|
||||||
|
and the expectation is authors are responsible for their contributions.
|
||||||
|
|
||||||
|
I am following the the [Developer Certificate of Origin (DCO)](https://developercertificate.org/), also available at
|
||||||
|
`DCO.txt`. The DCO is a way for contributors to certify that they wrote or otherwise have the right to license their
|
||||||
|
code contributions to the project. Contributors must sign-off that they adhere to these requirements by adding a
|
||||||
|
`Signed-off-by` line to their commit message, and/or, for frequent contributors, by signing off on their entry in
|
||||||
|
`MAINTAINERS.md`.
|
||||||
|
|
||||||
|
This process is followed by a number of open source projects, most notably the Linux kernel. Here's the gist of it:
|
||||||
|
|
||||||
|
```
|
||||||
|
[Your normal Git commit message here.]
|
||||||
|
|
||||||
|
Signed-off-by: Random J Developer <random@developer.example.org>
|
||||||
|
```
|
||||||
|
|
||||||
|
`git help commit` has more info on adding this:
|
||||||
|
|
||||||
|
```
|
||||||
|
-s, --signoff
|
||||||
|
Add Signed-off-by line by the committer at the end of the commit log
|
||||||
|
message. The meaning of a signoff depends on the project, but it typically
|
||||||
|
certifies that committer has the rights to submit this work under the same
|
||||||
|
license and agrees to a Developer Certificate of Origin (see
|
||||||
|
http://developercertificate.org/ for more information).
|
||||||
|
```
|
||||||
34
DCO.txt
Normal file
34
DCO.txt
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
Developer Certificate of Origin
|
||||||
|
Version 1.1
|
||||||
|
|
||||||
|
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
|
||||||
|
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies of this
|
||||||
|
license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
|
||||||
|
Developer's Certificate of Origin 1.1
|
||||||
|
|
||||||
|
By making a contribution to this project, I certify that:
|
||||||
|
|
||||||
|
(a) The contribution was created in whole or in part by me and I
|
||||||
|
have the right to submit it under the open source license
|
||||||
|
indicated in the file; or
|
||||||
|
|
||||||
|
(b) The contribution is based upon previous work that, to the best
|
||||||
|
of my knowledge, is covered under an appropriate open source
|
||||||
|
license and I have the right under that license to submit that
|
||||||
|
work with modifications, whether created in whole or in part
|
||||||
|
by me, under the same open source license (unless I am
|
||||||
|
permitted to submit under a different license), as indicated
|
||||||
|
in the file; or
|
||||||
|
|
||||||
|
(c) The contribution was provided directly to me by some other
|
||||||
|
person who certified (a), (b) or (c) and I have not modified
|
||||||
|
it.
|
||||||
|
|
||||||
|
(d) I understand and agree that this project and the contribution
|
||||||
|
are public and that a record of the contribution (including all
|
||||||
|
personal information I submit with it, including my sign-off) is
|
||||||
|
maintained indefinitely and may be redistributed consistent with
|
||||||
|
this project or the open source license(s) involved.
|
||||||
10
MAINTAINERS.md
Normal file
10
MAINTAINERS.md
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# Maintainers
|
||||||
|
|
||||||
|
This file contains information about people permitted to make major decisions and direction on the project.
|
||||||
|
|
||||||
|
## Contributing Under the DCO
|
||||||
|
|
||||||
|
By adding your name and email address to this section, you certify that all of your subsequent contributions to the
|
||||||
|
Buildable Stick System are made under the terms of the Developer's Certificate of Origin 1.1, available at `DCO.txt`.
|
||||||
|
|
||||||
|
* Brian S. Stephan (<bss@incorporeal.org>)
|
||||||
1
Makefile
1
Makefile
@@ -1,4 +1,5 @@
|
|||||||
SRC_FILES := $(wildcard ./src/*.scad)
|
SRC_FILES := $(wildcard ./src/*.scad)
|
||||||
|
SRC_FILES := $(filter-out ./src/all-together-demo.scad, $(SRC_FILES))
|
||||||
SRC_FILES := $(filter-out ./src/blown-up-demo.scad, $(SRC_FILES))
|
SRC_FILES := $(filter-out ./src/blown-up-demo.scad, $(SRC_FILES))
|
||||||
SRC_FILES := $(filter-out ./src/components.scad, $(SRC_FILES))
|
SRC_FILES := $(filter-out ./src/components.scad, $(SRC_FILES))
|
||||||
SRC_FILES := $(filter-out ./src/roundedcube.scad, $(SRC_FILES))
|
SRC_FILES := $(filter-out ./src/roundedcube.scad, $(SRC_FILES))
|
||||||
|
|||||||
26
README.md
26
README.md
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
Files for 3D printing an arcade stick.
|
Files for 3D printing an arcade stick.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
[OpenSCAD-based illustration of how the components for an overhang panel-based stick fit together.]
|
[OpenSCAD-based illustration of how the components for an overhang panel-based stick fit together.]
|
||||||
|
|
||||||
@@ -28,6 +28,10 @@ These items all fit on a 256mm^2 print bed; I use a Bambu Lab P1P based on what
|
|||||||
OpenStickCommunity. Standard settings seem sufficiently sturdy for my purposes, though the slicer has done a couple
|
OpenStickCommunity. Standard settings seem sufficiently sturdy for my purposes, though the slicer has done a couple
|
||||||
weird things, in my experience.
|
weird things, in my experience.
|
||||||
|
|
||||||
|
My preferred settings are 3 wall loops with 20% gyroid sparse infill. This gives the models a bit more weight and
|
||||||
|
stability, but something like 2 wall loops, 15% grid sparse infill is fine and does not lead to a weak enclosure. The
|
||||||
|
costs below have been made against my settings.
|
||||||
|
|
||||||
## Assembling
|
## Assembling
|
||||||
|
|
||||||
What you'll need beyond these objects:
|
What you'll need beyond these objects:
|
||||||
@@ -59,10 +63,10 @@ What you'll need beyond these objects:
|
|||||||
This is a rough estimate of the cost to produce one of these sticks, assuming a usual 2-frame design and layout.
|
This is a rough estimate of the cost to produce one of these sticks, assuming a usual 2-frame design and layout.
|
||||||
Filament masses from Bambu Studio estimates, using Bambu PLA Basic.
|
Filament masses from Bambu Studio estimates, using Bambu PLA Basic.
|
||||||
|
|
||||||
* Left and right frame: **$7.08 USD** (141.84g each, as of 2023-09-12)
|
* Left and right frame: **$10.42 USD** (208.50g each, as of 2024-02-22)
|
||||||
* Left and right (overhang) top panels: **~$6.74 USD** (~135g each, as of 2023-09-12)
|
* Left and right (inset) top panels: **~$6.40 USD** (~128g each, as of 2024-02-22)
|
||||||
* Left and right (overhang) bottom panels: **$5.90 USD** (118.16g each, as of 2023-09-12)
|
* Left and right (non-overhang) bottom panels: **$6.80 USD** (135.99g each, as of 2024-02-22)
|
||||||
* Miscellaneous mounting plates, decorative plates, etc.: **~$1.00 USD** (~40g, as of 2023-09-12)
|
* Miscellaneous mounting plates, decorative plates, etc.: **~$1.83 USD** (~73g, as of 2024-02-22)
|
||||||
* 8 16mm M4 bolts to connect the frames: **$0.72 USD** (you can get a pack of 100 on Amazon for $9, as of 2023-09-12)
|
* 8 16mm M4 bolts to connect the frames: **$0.72 USD** (you can get a pack of 100 on Amazon for $9, as of 2023-09-12)
|
||||||
* 8 M4 flange nuts to connect the frames: **$0.68 USD** (you can get a pack of 100 on Amazon for $8.50, as of 2023-09-12)
|
* 8 M4 flange nuts to connect the frames: **$0.68 USD** (you can get a pack of 100 on Amazon for $8.50, as of 2023-09-12)
|
||||||
* 4 10mm M3 bolts to connect Neutrik D plates to frames: **$0.40 USD** (you can get a pack of 100 on Amazon for $10, as
|
* 4 10mm M3 bolts to connect Neutrik D plates to frames: **$0.40 USD** (you can get a pack of 100 on Amazon for $10, as
|
||||||
@@ -79,9 +83,10 @@ Filament masses from Bambu Studio estimates, using Bambu PLA Basic.
|
|||||||
* 8 12mm M4 bolts to connect bottom plates to frames: **$0.72 USD** (you can get a pack of 100 on Amazon for $9, as of
|
* 8 12mm M4 bolts to connect bottom plates to frames: **$0.72 USD** (you can get a pack of 100 on Amazon for $9, as of
|
||||||
2023-09-12)
|
2023-09-12)
|
||||||
|
|
||||||
With an enclosure coming in around $26, depending on your choices --- say, ~$30 for TheTrain's RP2040 Advanced Breakout
|
With an enclosure coming in around $31, depending on your choices --- say, ~$30 for TheTrain's RP2040 Advanced Breakout
|
||||||
Board, ~$60 for Sanwa buttons and a lever, and ~$20 for miscellaneous connectors and wiring --- you can put a
|
Board, ~$60 for Sanwa buttons and a lever, and ~$20 for miscellaneous connectors and wiring --- you can put a
|
||||||
full-featured controller with an open source foundation together for around $135.
|
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.
|
||||||
|
|
||||||
## Miscellany
|
## Miscellany
|
||||||
|
|
||||||
@@ -99,6 +104,13 @@ Improvements, variants, new layouts, novel ideas, and etc. are all welcome.
|
|||||||
These files are suitable for previewing and rendering in OpenSCAD. They may also work in FreeCAD and perhaps other
|
These files are suitable for previewing and rendering in OpenSCAD. They may also work in FreeCAD and perhaps other
|
||||||
software, but they are developed in OpenSCAD, so YMMV otherwise.
|
software, but they are developed in OpenSCAD, so YMMV otherwise.
|
||||||
|
|
||||||
|
This project is hosted at [my personal Git site](https://git.incorporeal.org/bss/buildable-stick-system), but people are
|
||||||
|
more likely to want to interact with [the GitHub mirror](https://github.com/bsstephan/buildable-stick-system). Feel free
|
||||||
|
to use either.
|
||||||
|
|
||||||
|
You may find me at a number of places; I maintain an IRC channel, `#buildable-stick-system`, on [my IRC network,
|
||||||
|
Randomus](https://randomus.net/).
|
||||||
|
|
||||||
## Attribution
|
## Attribution
|
||||||
|
|
||||||
Inspired by the incredible work of [TheTrain](https://github.com/TheTrainGoes) on the [OpenStickCommunity Fightstick
|
Inspired by the incredible work of [TheTrain](https://github.com/TheTrainGoes) on the [OpenStickCommunity Fightstick
|
||||||
|
|||||||
4
TODO.md
4
TODO.md
@@ -2,6 +2,10 @@
|
|||||||
|
|
||||||
Notes for "next time".
|
Notes for "next time".
|
||||||
|
|
||||||
|
## v3.3
|
||||||
|
|
||||||
|
* Try not using roundedcube and instead bezel the top, to get cleaner seams everywhere else
|
||||||
|
|
||||||
## v4
|
## v4
|
||||||
|
|
||||||
* Engraving some cosmetic stuff? Or maybe a place to mount other plates?
|
* Engraving some cosmetic stuff? Or maybe a place to mount other plates?
|
||||||
|
|||||||
BIN
docs/blown-up-demo.png
Normal file
BIN
docs/blown-up-demo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 49 KiB |
@@ -1,40 +1,27 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
/*
|
||||||
*
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
* This file is part of the Buildable Stick System.
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
include <components.scad>
|
include <components.scad>
|
||||||
use <frame-left.scad>
|
use <frame-left.scad>
|
||||||
use <frame-right.scad>
|
use <frame-right.scad>
|
||||||
use <top-panel-left-lever-and-dir_arc-plus-w-30mm.scad>
|
use <top-panel-overhang-left-lever-and-dir_arc-plus-w-30mm.scad>
|
||||||
use <top-panel-right-sega-2p-plus-one-plus-control-with-mount.scad>
|
use <top-panel-overhang-right-sega-2p-plus-one-plus-control-with-mount.scad>
|
||||||
use <bottom-panel-left.scad>
|
use <bottom-panel-overhang-left.scad>
|
||||||
use <bottom-panel-right.scad>
|
use <bottom-panel-overhang-right.scad>
|
||||||
use <misc-decorative-plate-24mm-button.scad>
|
use <misc-decorative-plate-24mm-button.scad>
|
||||||
use <misc-decorative-plate-dir_arc-plus-w-30mm-and-sega-2p-plus-one.scad>
|
use <misc-decorative-plate-dir_arc-plus-w-30mm-and-sega-2p-plus-one.scad>
|
||||||
use <misc-dustwasher-lsx-nobi.scad>
|
use <misc-dustwasher-lsx-nobi.scad>
|
||||||
|
|
||||||
color("#C12E1F") translate([-top_plate_x/2-25, 0, frame_z/2+75]) top_panel_left_lever_and_dir_arc_w_30mm();
|
color("#C12E1F") translate([-panel_x/2-25, 0, frame_z/2+75]) top_panel_left_lever_and_dir_arc_w_30mm();
|
||||||
color("#C12E1F") translate([top_plate_x/2+25, 0, frame_z/2+75]) top_panel_right_sega_2p_plus_one_plus_control_with_mount();
|
color("#C12E1F") translate([panel_x/2+25, 0, frame_z/2+75]) top_panel_right_sega_2p_plus_one_plus_control_with_mount();
|
||||||
color("black") translate([-frame_x/2+5-25, 0, -2.5]) left_frame();
|
color("black") translate([-frame_x/2+5-25, 0, -2.5]) left_frame();
|
||||||
color("black") translate([frame_x/2+25, 0, -2.5]) right_frame();
|
color("black") translate([frame_x/2+25, 0, -2.5]) right_frame();
|
||||||
color("#C12E1F") translate([-top_plate_x/2-25, 0, -5-frame_z/2-75]) bottom_panel_left();
|
color("#C12E1F") translate([-panel_x/2-25, 0, -5-frame_z/2-75]) bottom_panel_left();
|
||||||
color("#C12E1F") translate([top_plate_x/2+25, 0, -5-frame_z/2-75]) bottom_panel_right();
|
color("#C12E1F") translate([panel_x/2+25, 0, -5-frame_z/2-75]) bottom_panel_right();
|
||||||
|
|
||||||
color("black") translate([0, 0, 3+frame_z/2+150]) dir_arc_plus_w_30mm_and_sega_2p_plus_one_decorative_plate();
|
color("black") translate([0, 0, 3+frame_z/2+150]) dir_arc_plus_w_30mm_and_sega_2p_plus_one_decorative_plate();
|
||||||
color("black") translate([-195, 25, 3+frame_z/2+150]) lsx_nobi_dustwasher();
|
color("black") translate([-195, 25, 3+frame_z/2+150]) lsx_nobi_dustwasher();
|
||||||
color("black") translate([top_plate_x, 25, 3+frame_z/2+150]) button_24mm_decorative_plate();
|
color("black") translate([panel_x, 25, 3+frame_z/2+150]) button_24mm_decorative_plate();
|
||||||
|
|||||||
@@ -1,29 +0,0 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
|
||||||
*
|
|
||||||
* This file is part of the Buildable Stick System.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
include <parameters.scad>
|
|
||||||
include <components.scad>
|
|
||||||
|
|
||||||
module bottom_panel() {
|
|
||||||
difference() {
|
|
||||||
mirror([0, 0, 1]) topplate();
|
|
||||||
translate([0, 0, top_plate_z/2]) cube([top_plate_x-40, top_plate_y-40, top_plate_z], center=true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bottom_panel();
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
|
||||||
*
|
|
||||||
* This file is part of the Buildable Stick System.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
include <parameters.scad>
|
|
||||||
include <components.scad>
|
|
||||||
use <bottom-panel-solo.scad>
|
|
||||||
|
|
||||||
module bottom_panel_left() {
|
|
||||||
difference() {
|
|
||||||
bottom_panel_solo();
|
|
||||||
// chop the right edge off
|
|
||||||
side_chopper();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bottom_panel_left();
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
|
||||||
*
|
|
||||||
* This file is part of the Buildable Stick System.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
include <parameters.scad>
|
|
||||||
include <components.scad>
|
|
||||||
use <bottom-panel-left.scad>
|
|
||||||
use <bottom-panel-right.scad>
|
|
||||||
|
|
||||||
module bottom_panel_middle() {
|
|
||||||
intersection() {
|
|
||||||
bottom_panel_left();
|
|
||||||
bottom_panel_right();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bottom_panel_middle();
|
|
||||||
18
src/bottom-panel-overhang-left.scad
Normal file
18
src/bottom-panel-overhang-left.scad
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
include <parameters.scad>
|
||||||
|
include <components.scad>
|
||||||
|
use <bottom-panel-overhang-solo.scad>
|
||||||
|
|
||||||
|
module bottom_panel_left() {
|
||||||
|
difference() {
|
||||||
|
bottom_panel_solo();
|
||||||
|
// chop the right edge off
|
||||||
|
side_chopper();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bottom_panel_left();
|
||||||
18
src/bottom-panel-overhang-middle.scad
Normal file
18
src/bottom-panel-overhang-middle.scad
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
include <parameters.scad>
|
||||||
|
include <components.scad>
|
||||||
|
use <bottom-panel-overhang-left.scad>
|
||||||
|
use <bottom-panel-overhang-right.scad>
|
||||||
|
|
||||||
|
module bottom_panel_middle() {
|
||||||
|
intersection() {
|
||||||
|
bottom_panel_left();
|
||||||
|
bottom_panel_right();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bottom_panel_middle();
|
||||||
14
src/bottom-panel-overhang-right.scad
Normal file
14
src/bottom-panel-overhang-right.scad
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
include <parameters.scad>
|
||||||
|
include <components.scad>
|
||||||
|
use <bottom-panel-overhang-left.scad>
|
||||||
|
|
||||||
|
module bottom_panel_right() {
|
||||||
|
rotate([0, 0, 180]) bottom_panel_left();
|
||||||
|
}
|
||||||
|
|
||||||
|
bottom_panel_right();
|
||||||
16
src/bottom-panel-overhang-solo.scad
Normal file
16
src/bottom-panel-overhang-solo.scad
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
include <parameters.scad>
|
||||||
|
include <components.scad>
|
||||||
|
|
||||||
|
module bottom_panel_solo() {
|
||||||
|
difference() {
|
||||||
|
overhang_plate();
|
||||||
|
rotate([180, 0, 0]) panel_holes();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bottom_panel_solo();
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
|
||||||
*
|
|
||||||
* This file is part of the Buildable Stick System.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
include <parameters.scad>
|
|
||||||
include <components.scad>
|
|
||||||
use <bottom-panel-left.scad>
|
|
||||||
|
|
||||||
module bottom_panel_right() {
|
|
||||||
rotate([0, 0, 180]) bottom_panel_left();
|
|
||||||
}
|
|
||||||
|
|
||||||
bottom_panel_right();
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
|
||||||
*
|
|
||||||
* This file is part of the Buildable Stick System.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
include <parameters.scad>
|
|
||||||
include <components.scad>
|
|
||||||
|
|
||||||
module bottom_panel_solo() {
|
|
||||||
difference() {
|
|
||||||
bottom_plate_with_overhang();
|
|
||||||
translate([0, 0, top_plate_z/2]) cube([top_plate_x-40, top_plate_y-40, top_plate_z], center=true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bottom_panel_solo();
|
|
||||||
9
src/bottom-panel.scad
Normal file
9
src/bottom-panel.scad
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
include <parameters.scad>
|
||||||
|
include <components.scad>
|
||||||
|
|
||||||
|
bottom_panel();
|
||||||
@@ -1,19 +1,6 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
/*
|
||||||
*
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
* This file is part of the Buildable Stick System.
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include <roundedcube.scad>
|
include <roundedcube.scad>
|
||||||
@@ -26,17 +13,17 @@ module m4_hole_countersink() {
|
|||||||
cylinder(r1=m4_bolt_radius, r2=m4_bolt_countersink_radius, h=3.2, $fn=50, center=true);
|
cylinder(r1=m4_bolt_radius, r2=m4_bolt_countersink_radius, h=3.2, $fn=50, center=true);
|
||||||
}
|
}
|
||||||
|
|
||||||
module top_plate_holes() {
|
module panel_holes() {
|
||||||
// holes for mount bolts
|
// holes for mount bolts
|
||||||
translate([plate_to_frame_point_x, plate_to_frame_point_y, 0]) m4_hole();
|
translate([panel_to_frame_point_x, panel_to_frame_point_y, 0]) m4_hole();
|
||||||
translate([plate_to_frame_point_x, -plate_to_frame_point_y, 0]) m4_hole();
|
translate([panel_to_frame_point_x, -panel_to_frame_point_y, 0]) m4_hole();
|
||||||
translate([-plate_to_frame_point_x, plate_to_frame_point_y, 0]) m4_hole();
|
translate([-panel_to_frame_point_x, panel_to_frame_point_y, 0]) m4_hole();
|
||||||
translate([-plate_to_frame_point_x, -plate_to_frame_point_y, 0]) m4_hole();
|
translate([-panel_to_frame_point_x, -panel_to_frame_point_y, 0]) m4_hole();
|
||||||
// holes for mount bolt countersinks
|
// holes for mount bolt countersinks
|
||||||
translate([plate_to_frame_point_x, plate_to_frame_point_y, 2]) m4_hole_countersink();
|
translate([panel_to_frame_point_x, panel_to_frame_point_y, 2]) m4_hole_countersink();
|
||||||
translate([plate_to_frame_point_x, -plate_to_frame_point_y, 2]) m4_hole_countersink();
|
translate([panel_to_frame_point_x, -panel_to_frame_point_y, 2]) m4_hole_countersink();
|
||||||
translate([-plate_to_frame_point_x, plate_to_frame_point_y, 2]) m4_hole_countersink();
|
translate([-panel_to_frame_point_x, panel_to_frame_point_y, 2]) m4_hole_countersink();
|
||||||
translate([-plate_to_frame_point_x, -plate_to_frame_point_y, 2]) m4_hole_countersink();
|
translate([-panel_to_frame_point_x, -panel_to_frame_point_y, 2]) m4_hole_countersink();
|
||||||
}
|
}
|
||||||
|
|
||||||
// button hole, with extra wide bits for various uses (cutting out space
|
// button hole, with extra wide bits for various uses (cutting out space
|
||||||
@@ -44,9 +31,9 @@ module top_plate_holes() {
|
|||||||
module button_24mm_hole() {
|
module button_24mm_hole() {
|
||||||
cylinder(r=small_button_radius, h=100, $fn=50, center=true);
|
cylinder(r=small_button_radius, h=100, $fn=50, center=true);
|
||||||
// carve out space for snap-ins, leave 3mm
|
// carve out space for snap-ins, leave 3mm
|
||||||
// slagcoin has screw-in nut diameter at 29.5mm, so radius+6 to leave some space
|
// slagcoin has screw-in nut diameter at 29.5mm, so radius+3 to leave some space
|
||||||
// translation is to leave 3mm thickness in the plate without recentering anything
|
// translation is to leave 3mm thickness in the plate without recentering anything
|
||||||
translate([0, 0, -25]) cylinder(r=small_button_radius+6, h=49, $fn=50, center=true);
|
translate([0, 0, -25]) cylinder(r=small_button_radius+3, h=49, $fn=50, center=true);
|
||||||
// space for decorative button surround stuff
|
// space for decorative button surround stuff
|
||||||
translate([0, 0, 50]) cylinder(r=small_button_radius*decorative_radius_scale, h=20, $fn=50, center=true);
|
translate([0, 0, 50]) cylinder(r=small_button_radius*decorative_radius_scale, h=20, $fn=50, center=true);
|
||||||
translate([0, 0, 70]) cylinder(r=small_button_radius*jumbo_decorative_radius_scale, h=20, $fn=50, center=true);
|
translate([0, 0, 70]) cylinder(r=small_button_radius*jumbo_decorative_radius_scale, h=20, $fn=50, center=true);
|
||||||
@@ -87,16 +74,23 @@ module neutrik_d_mount() {
|
|||||||
translate([-9.5, -12, 0]) neutrik_d_screw_hole();
|
translate([-9.5, -12, 0]) neutrik_d_screw_hole();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
module rocker_20mm_mount() {
|
||||||
|
cylinder(r=10+hole_tolerance, h=5, $fn=50, center=true);
|
||||||
|
cube([2.2, 22, 5], center=true);
|
||||||
|
translate([9.5, 12, 0]) neutrik_d_screw_hole();
|
||||||
|
translate([-9.5, -12, 0]) neutrik_d_screw_hole();
|
||||||
|
}
|
||||||
|
|
||||||
// space for a neutrik D mount or 24mm button - Z is to cut the whole inside without affecting panel lip
|
// space for a neutrik D mount or 24mm button - Z is to cut the whole inside without affecting panel lip
|
||||||
module frame_cutout() {
|
module frame_cutout() {
|
||||||
cube([36.5, 8, frame_z-(top_plate_z*2)], center=true);
|
cube([30.5, 8, frame_z-(panel_z*2)-2], center=true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// bank of three 24mm buttons, commonly on a frame face
|
// bank of three 24mm buttons, commonly on a frame face
|
||||||
module aux_control_three_button_cluster() {
|
module aux_control_three_button_cluster() {
|
||||||
translate([-40, 0, 0]) button_24mm_hole();
|
translate([-37, 0, 0]) button_24mm_hole();
|
||||||
translate([0, 0, 0]) button_24mm_hole();
|
translate([0, 0, 0]) button_24mm_hole();
|
||||||
translate([40, 0, 0]) button_24mm_hole();
|
translate([37, 0, 0]) button_24mm_hole();
|
||||||
}
|
}
|
||||||
|
|
||||||
module m2_mount_post() {
|
module m2_mount_post() {
|
||||||
@@ -157,6 +151,9 @@ module levermountholes() {
|
|||||||
m4_hole();
|
m4_hole();
|
||||||
translate([-20, -42.5, 0])
|
translate([-20, -42.5, 0])
|
||||||
m4_hole();
|
m4_hole();
|
||||||
|
}
|
||||||
|
|
||||||
|
module levermountcountersinks() {
|
||||||
// holes for joystick bolt countersinks
|
// holes for joystick bolt countersinks
|
||||||
translate([20, 42.5, 2])
|
translate([20, 42.5, 2])
|
||||||
m4_hole_countersink();
|
m4_hole_countersink();
|
||||||
@@ -168,63 +165,111 @@ module levermountholes() {
|
|||||||
m4_hole_countersink();
|
m4_hole_countersink();
|
||||||
}
|
}
|
||||||
|
|
||||||
module base_topplate() {
|
module base_panel() {
|
||||||
cube([top_plate_x, top_plate_y, top_plate_z], center=true);
|
difference() {
|
||||||
|
union() {
|
||||||
|
cube([panel_x, panel_y, panel_z], center=true);
|
||||||
|
// add posts that sink into the frame, just to give
|
||||||
|
// a somewhat more sturdy/tight connection
|
||||||
|
translate([panel_to_frame_point_x, panel_to_frame_point_y, -panel_z])
|
||||||
|
scale([1.5, 1.5, 0.1]) frame_hex_bolt_hole();
|
||||||
|
translate([-panel_to_frame_point_x, panel_to_frame_point_y, -panel_z])
|
||||||
|
scale([1.5, 1.5, 0.1]) frame_hex_bolt_hole();
|
||||||
|
translate([panel_to_frame_point_x, -panel_to_frame_point_y, -panel_z])
|
||||||
|
scale([1.5, 1.5, 0.1]) frame_hex_bolt_hole();
|
||||||
|
translate([-panel_to_frame_point_x, -panel_to_frame_point_y, -panel_z])
|
||||||
|
scale([1.5, 1.5, 0.1]) frame_hex_bolt_hole();
|
||||||
|
}
|
||||||
|
// the posts mentioned above need space for the actual hex bolts
|
||||||
|
// used in connecting to the frame
|
||||||
|
translate([panel_to_frame_point_x, panel_to_frame_point_y, -panel_z])
|
||||||
|
scale([1, 1, 0.1]) frame_hex_bolt_hole();
|
||||||
|
translate([-panel_to_frame_point_x, panel_to_frame_point_y, -panel_z])
|
||||||
|
scale([1, 1, 0.1]) frame_hex_bolt_hole();
|
||||||
|
translate([panel_to_frame_point_x, -panel_to_frame_point_y, -panel_z])
|
||||||
|
scale([1, 1, 0.1]) frame_hex_bolt_hole();
|
||||||
|
translate([-panel_to_frame_point_x, -panel_to_frame_point_y, -panel_z])
|
||||||
|
scale([1, 1, 0.1]) frame_hex_bolt_hole();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
module base_bottom_panel() {
|
||||||
|
cube([panel_x, panel_y, panel_z], center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
module panel() {
|
||||||
|
difference() {
|
||||||
|
base_panel();
|
||||||
|
panel_holes();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module bottom_panel() {
|
||||||
|
difference() {
|
||||||
|
base_bottom_panel();
|
||||||
|
mirror([0, 0, 1]) panel_holes();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module overhang_plate() {
|
module overhang_plate() {
|
||||||
roundedcube([overhang_top_plate_x, overhang_top_plate_y, top_plate_z], center=true, radius=1);
|
roundedcube([overhang_panel_x, overhang_panel_y, panel_z], center=true, radius=1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// this takes the base_topplate and makes it a small frame, putting a larger top plate
|
// this takes the base_panel and makes it a small frame, putting a larger top plate
|
||||||
module base_top_plate_with_raised_overhang() {
|
module base_panel_with_raised_overhang() {
|
||||||
// make a frame out of the top plate (and keep the main plate on the center plane)
|
// make a frame out of the top plate (and keep the main plate on the center plane)
|
||||||
translate([0, 0, -5]) difference() {
|
translate([0, 0, -5]) difference() {
|
||||||
base_topplate();
|
base_panel();
|
||||||
cube([top_plate_x-(panel_support_width*2), top_plate_y-(panel_support_width*2), top_plate_z*2], center=true);
|
cube([panel_x-(panel_support_width*2), panel_y-(panel_support_width*2), panel_z], center=true);
|
||||||
}
|
}
|
||||||
translate([plate_to_frame_point_x, plate_to_frame_point_y, -2.5]) resize([0, 0, 10]) frame_mount_column();
|
translate([panel_to_frame_point_x, panel_to_frame_point_y, -2.5]) resize([0, 0, 10])
|
||||||
translate([-(plate_to_frame_point_x), plate_to_frame_point_y, -2.5]) resize([0, 0, 10]) frame_mount_column();
|
frame_mount_column();
|
||||||
translate([plate_to_frame_point_x, -(plate_to_frame_point_y), -2.5]) resize([0, 0, 10]) frame_mount_column();
|
translate([-(panel_to_frame_point_x), panel_to_frame_point_y, -2.5]) resize([0, 0, 10])
|
||||||
translate([-(plate_to_frame_point_x), -(plate_to_frame_point_y), -2.5]) resize([0, 0, 10]) frame_mount_column();
|
rotate([0, 0, 90]) frame_mount_column();
|
||||||
|
translate([panel_to_frame_point_x, -(panel_to_frame_point_y), -2.5]) resize([0, 0, 10])
|
||||||
|
rotate([0, 0, 270]) frame_mount_column();
|
||||||
|
translate([-(panel_to_frame_point_x), -(panel_to_frame_point_y), -2.5]) resize([0, 0, 10])
|
||||||
|
rotate([0, 0, 180]) frame_mount_column();
|
||||||
overhang_plate();
|
overhang_plate();
|
||||||
}
|
}
|
||||||
|
|
||||||
module topplate() {
|
module panel_with_raised_overhang() {
|
||||||
difference() {
|
difference() {
|
||||||
base_topplate();
|
base_panel_with_raised_overhang();
|
||||||
top_plate_holes();
|
panel_holes();
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module bottom_plate_with_overhang() {
|
|
||||||
difference() {
|
|
||||||
rotate([180, 0, 0]) base_top_plate_with_raised_overhang();
|
|
||||||
rotate([180, 0, 0]) top_plate_holes();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module top_plate_with_raised_overhang() {
|
|
||||||
difference() {
|
|
||||||
base_top_plate_with_raised_overhang();
|
|
||||||
top_plate_holes();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module frame_box() {
|
module frame_box() {
|
||||||
difference() {
|
difference() {
|
||||||
roundedcube([frame_x, frame_y, frame_z], center=true, radius=3);
|
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],
|
||||||
|
];
|
||||||
|
hull() {
|
||||||
|
for (p = top_points) {
|
||||||
|
translate(p) cylinder(r=3, h=frame_z-panel_z, center=true);
|
||||||
|
}
|
||||||
|
}
|
||||||
// cut out the middle to make it a box
|
// cut out the middle to make it a box
|
||||||
cube([top_plate_x-(panel_support_width*2), top_plate_y-(panel_support_width*2), frame_z+5], center=true);
|
cube([panel_x-(panel_support_width*2), panel_y-(panel_support_width*2), frame_z+5], center=true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module frame_mount_column() {
|
module frame_mount_column() {
|
||||||
cube([20, 20, frame_z], center=true);
|
cube([20, 20, frame_z], center=true);
|
||||||
|
// add some corners back to do a lame chamfer
|
||||||
|
linear_extrude(height=frame_z, center=true)
|
||||||
|
polygon([[10, 10], [-20, 10], [10, -20]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
module side_chopper() {
|
module side_chopper() {
|
||||||
translate([frame_x/2+4, 0, 0]) cube([16, 2*(frame_y+top_plate_y), 2*(frame_z+top_plate_z)], center=true);
|
translate([(frame_x-frame_wall)/2+panel_overhang_amount, 0, 0])
|
||||||
|
cube([frame_wall+panel_overhang_amount*2, overhang_panel_y, frame_z], center=true);
|
||||||
}
|
}
|
||||||
|
|
||||||
module frame_connection_holes() {
|
module frame_connection_holes() {
|
||||||
@@ -245,21 +290,37 @@ module frame_cable_routing_hole() {
|
|||||||
|
|
||||||
module base_frame() {
|
module base_frame() {
|
||||||
frame_box();
|
frame_box();
|
||||||
translate([plate_to_frame_point_x, plate_to_frame_point_y, 0]) frame_mount_column();
|
translate([panel_to_frame_point_x, panel_to_frame_point_y, 0]) frame_mount_column();
|
||||||
translate([-plate_to_frame_point_x, plate_to_frame_point_y, 0]) frame_mount_column();
|
translate([-panel_to_frame_point_x, panel_to_frame_point_y, 0]) rotate([0, 0, 90]) frame_mount_column();
|
||||||
translate([plate_to_frame_point_x, -(plate_to_frame_point_y), 0]) frame_mount_column();
|
translate([-panel_to_frame_point_x, -(panel_to_frame_point_y), 0]) rotate([0, 0, 180]) frame_mount_column();
|
||||||
translate([-plate_to_frame_point_x, -(plate_to_frame_point_y), 0]) frame_mount_column();
|
translate([panel_to_frame_point_x, -(panel_to_frame_point_y), 0]) rotate([0, 0, 270]) frame_mount_column();
|
||||||
}
|
}
|
||||||
|
|
||||||
module frame() {
|
module frame() {
|
||||||
difference() {
|
difference() {
|
||||||
base_frame();
|
base_frame();
|
||||||
translate([0, 0, frame_z/2]) scale([1, 1, 2]) base_topplate();
|
translate([0, 0, frame_z/2]) scale([1, 1, 2]) base_panel();
|
||||||
translate([0, 0, -frame_z/2]) scale([1, 1, 2]) base_topplate();
|
translate([0, 0, -frame_z/2]) scale([1, 1, 2]) base_panel();
|
||||||
translate([plate_to_frame_point_x, plate_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();
|
||||||
translate([-plate_to_frame_point_x, plate_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();
|
||||||
translate([plate_to_frame_point_x, -plate_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();
|
||||||
translate([-plate_to_frame_point_x, -plate_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();
|
||||||
|
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();
|
||||||
|
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();
|
||||||
|
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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -306,18 +367,18 @@ module dir_arc_plus_w_24mm_8_button() {
|
|||||||
|
|
||||||
module dir_arc_30mm_thumb_button() {
|
module dir_arc_30mm_thumb_button() {
|
||||||
// just my guesstimate on this one, but note that this is the same position as sega 2p (just mirrored)
|
// just my guesstimate on this one, but note that this is the same position as sega 2p (just mirrored)
|
||||||
translate([(top_plate_x/2)-28.06, (-top_plate_y/2)+62, 0]) button_30mm_hole();
|
translate([(panel_x/2)-28.06, (-panel_y/2)+62, 0]) button_30mm_hole();
|
||||||
}
|
}
|
||||||
|
|
||||||
module dir_arc_30mm() {
|
module dir_arc_30mm_finger_buttons() {
|
||||||
dir_arc_30mm_thumb_button();
|
|
||||||
translate([0, 57.2, 0]) dir_arc_30mm_thumb_button();
|
translate([0, 57.2, 0]) dir_arc_30mm_thumb_button();
|
||||||
translate([-33.8, 57.2+12.9, 0]) dir_arc_30mm_thumb_button();
|
translate([-33.8, 57.2+12.9, 0]) dir_arc_30mm_thumb_button();
|
||||||
translate([-33.8-34.8, 57.2+12.9, 0]) dir_arc_30mm_thumb_button();
|
translate([-33.8-34.8, 57.2+12.9, 0]) dir_arc_30mm_thumb_button();
|
||||||
}
|
}
|
||||||
|
|
||||||
module dir_arc_w_30mm() {
|
module dir_arc_w_30mm() {
|
||||||
dir_arc_30mm();
|
dir_arc_30mm_thumb_button();
|
||||||
|
dir_arc_30mm_finger_buttons();
|
||||||
translate([-26.8, 57.2+12.9+34.5, 0]) dir_arc_30mm_thumb_button();
|
translate([-26.8, 57.2+12.9+34.5, 0]) dir_arc_30mm_thumb_button();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -329,7 +390,7 @@ module dir_arc_w_30mm_plus_one() {
|
|||||||
// Namco Noir (right hand)
|
// Namco Noir (right hand)
|
||||||
|
|
||||||
module noir_button_p1() {
|
module noir_button_p1() {
|
||||||
translate([-top_plate_x/2, -top_plate_y/2, 0]) translate([35, 140, 0]) button_30mm_hole();
|
translate([-panel_x/2, -panel_y/2, 0]) translate([35, 140, 0]) button_30mm_hole();
|
||||||
}
|
}
|
||||||
|
|
||||||
module noir_plus_one() {
|
module noir_plus_one() {
|
||||||
@@ -350,7 +411,7 @@ module noir_plus_one() {
|
|||||||
// Sega Astro City 2P (right hand)
|
// Sega Astro City 2P (right hand)
|
||||||
|
|
||||||
module sega_2p_p1() {
|
module sega_2p_p1() {
|
||||||
translate([-top_plate_x/2, -top_plate_y/2, 0]) translate([28.06, 140, 0]) button_30mm_hole();
|
translate([-panel_x/2, -panel_y/2, 0]) translate([28.06, 140, 0]) button_30mm_hole();
|
||||||
}
|
}
|
||||||
|
|
||||||
module sega_2p_6_button() {
|
module sega_2p_6_button() {
|
||||||
|
|||||||
@@ -1,19 +1,6 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
/*
|
||||||
*
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
* This file is part of the Buildable Stick System.
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
@@ -37,14 +24,16 @@ module left_frame() {
|
|||||||
frame_cable_routing_hole();
|
frame_cable_routing_hole();
|
||||||
|
|
||||||
// aux button holes
|
// aux button holes
|
||||||
translate([-30, 101.5, 0]) rotate([270, 0, 0]) aux_control_three_button_cluster();
|
translate([-35, 101.5, panel_z/2]) rotate([270, 0, 0]) aux_control_three_button_cluster();
|
||||||
translate([-30, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
|
translate([-35, (frame_y/2)-neutrik_panel_thickness-4, 1]) frame_cutout();
|
||||||
translate([-70, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
|
translate([-72, (frame_y/2)-neutrik_panel_thickness-4, 1]) frame_cutout();
|
||||||
translate([10, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
|
translate([2, (frame_y/2)-neutrik_panel_thickness-4, 1]) frame_cutout();
|
||||||
|
|
||||||
// neutrix button hole
|
// neutrix button hole
|
||||||
translate([70, (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, panel_z/2])
|
||||||
translate([70, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
|
rotate([90, 0, 0]) neutrik_d_mount();
|
||||||
|
translate([frame_center_to_neutrik, (frame_y/2)-neutrik_panel_thickness-4, 1])
|
||||||
|
frame_cutout();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,19 +1,6 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
/*
|
||||||
*
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
* This file is part of the Buildable Stick System.
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
@@ -40,12 +27,15 @@ module middle_frame() {
|
|||||||
mirror([1, 0, 0]) frame_cable_routing_hole();
|
mirror([1, 0, 0]) frame_cable_routing_hole();
|
||||||
|
|
||||||
// neutrik mounts for connector, switches
|
// neutrik mounts for connector, switches
|
||||||
translate([0, (frame_y/2)-neutrik_panel_thickness, 0]) rotate([90, 0, 0]) neutrik_d_mount();
|
translate([0, (frame_y/2)-neutrik_panel_thickness, panel_z/2])
|
||||||
translate([0, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
|
rotate([90, 0, 0]) neutrik_d_mount();
|
||||||
translate([-40, (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-4, 0]) frame_cutout();
|
translate([-40, (frame_y/2)-neutrik_panel_thickness, panel_z/2])
|
||||||
translate([40, (frame_y/2)-neutrik_panel_thickness, 0]) rotate([90, 0, 0]) neutrik_d_mount();
|
rotate([90, 0, 0]) neutrik_d_mount();
|
||||||
translate([40, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
|
translate([-40, (frame_y/2)-neutrik_panel_thickness-4, 1]) frame_cutout();
|
||||||
|
translate([40, (frame_y/2)-neutrik_panel_thickness, panel_z/2])
|
||||||
|
rotate([90, 0, 0]) neutrik_d_mount();
|
||||||
|
translate([40, (frame_y/2)-neutrik_panel_thickness-4, 1]) frame_cutout();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,19 +1,6 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
/*
|
||||||
*
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
* This file is part of the Buildable Stick System.
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
@@ -37,14 +24,16 @@ module right_frame() {
|
|||||||
mirror([1, 0, 0]) frame_cable_routing_hole();
|
mirror([1, 0, 0]) frame_cable_routing_hole();
|
||||||
|
|
||||||
// aux button holes
|
// aux button holes
|
||||||
translate([30, 101.5, 0]) rotate([270, 0, 0]) aux_control_three_button_cluster();
|
translate([35, 101.5, panel_z/2]) rotate([270, 0, 0]) aux_control_three_button_cluster();
|
||||||
translate([30, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
|
translate([35, (frame_y/2)-neutrik_panel_thickness-4, 1]) frame_cutout();
|
||||||
translate([70, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
|
translate([72, (frame_y/2)-neutrik_panel_thickness-4, 1]) frame_cutout();
|
||||||
translate([-10, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
|
translate([-2, (frame_y/2)-neutrik_panel_thickness-4, 1]) frame_cutout();
|
||||||
|
|
||||||
// neutrix button hole
|
// neutrix button hole
|
||||||
translate([-70, (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, panel_z/2])
|
||||||
translate([-70, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
|
rotate([90, 0, 0]) neutrik_d_mount();
|
||||||
|
translate([-frame_center_to_neutrik, (frame_y/2)-neutrik_panel_thickness-4, 1])
|
||||||
|
frame_cutout();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,19 +1,6 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
/*
|
||||||
*
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
* This file is part of the Buildable Stick System.
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
@@ -24,23 +11,25 @@ module solo_frame() {
|
|||||||
frame();
|
frame();
|
||||||
|
|
||||||
// neutrik mounts for connector, switches
|
// neutrik mounts for connector, switches
|
||||||
translate([0, (frame_y/2)-2.5, 0]) rotate([90, 0, 0]) neutrik_d_mount();
|
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, 0]) frame_cutout();
|
translate([0, (frame_y/2)-neutrik_panel_thickness-4, 1]) frame_cutout();
|
||||||
translate([-40, (frame_y/2)-2.5, 0]) rotate([90, 0, 0]) neutrik_d_mount();
|
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, 0]) frame_cutout();
|
translate([-40, (frame_y/2)-neutrik_panel_thickness-4, 1]) frame_cutout();
|
||||||
translate([40, (frame_y/2)-2.5, 0]) rotate([90, 0, 0]) neutrik_d_mount();
|
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, 0]) frame_cutout();
|
translate([40, (frame_y/2)-neutrik_panel_thickness-4, 1]) frame_cutout();
|
||||||
|
|
||||||
// aux button holes
|
// aux button holes
|
||||||
translate([-frame_x/2+2.5, 0, 0]) rotate([90, 0, 270]) aux_control_three_button_cluster();
|
translate([-frame_x/2+2.5, 0, panel_z/2]) rotate([90, 0, 270])
|
||||||
translate([(frame_x/2)-neutrik_panel_thickness-4, 0, 0]) rotate([0, 0, 90]) frame_cutout();
|
aux_control_three_button_cluster();
|
||||||
translate([(frame_x/2)-neutrik_panel_thickness-4, -40, 0]) rotate([0, 0, 90]) frame_cutout();
|
translate([(frame_x/2)-neutrik_panel_thickness-4, 0, 1]) rotate([0, 0, 90]) frame_cutout();
|
||||||
translate([(frame_x/2)-neutrik_panel_thickness-4, 40, 0]) 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+2.5, 0, 0]) rotate([90, 0, 270]) aux_control_three_button_cluster();
|
translate([frame_x/2+2.5, 0, panel_z/2]) rotate([90, 0, 270])
|
||||||
translate([-(frame_x/2)+neutrik_panel_thickness+4, 0, 0]) rotate([0, 0, 90]) frame_cutout();
|
aux_control_three_button_cluster();
|
||||||
translate([-(frame_x/2)+neutrik_panel_thickness+4, -40, 0]) rotate([0, 0, 90]) frame_cutout();
|
translate([-(frame_x/2)+neutrik_panel_thickness+4, 0, 1]) rotate([0, 0, 90]) frame_cutout();
|
||||||
translate([-(frame_x/2)+neutrik_panel_thickness+4, 40, 0]) 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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,19 +1,6 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
/*
|
||||||
*
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
* This file is part of the Buildable Stick System.
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
include <parameters.scad>
|
||||||
|
include <components.scad>
|
||||||
|
use <misc-neutrik-d-plate.scad>
|
||||||
|
|
||||||
|
module aux_connectors_two_neutrik_cluster_decorative_plate() {
|
||||||
|
difference() {
|
||||||
|
hull() {
|
||||||
|
translate([-50, 0, 0]) neutrik_d_plate();
|
||||||
|
translate([50, 0, 0]) neutrik_d_plate();
|
||||||
|
}
|
||||||
|
translate([(frame_x/2)-frame_center_to_neutrik-frame_wall, 0, 0]) rocker_20mm_mount();
|
||||||
|
translate([-((frame_x/2)-frame_center_to_neutrik-frame_wall), 0, 0]) neutrik_d_mount();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
aux_connectors_two_neutrik_cluster_decorative_plate();
|
||||||
@@ -1,19 +1,6 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
/*
|
||||||
*
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
* This file is part of the Buildable Stick System.
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
@@ -23,8 +10,8 @@ use <misc-neutrik-d-plate.scad>
|
|||||||
module aux_control_three_button_cluster_decorative_plate() {
|
module aux_control_three_button_cluster_decorative_plate() {
|
||||||
difference() {
|
difference() {
|
||||||
hull() {
|
hull() {
|
||||||
translate([-50, 0, 0]) neutrik_d_plate();
|
translate([-44, 0, 0]) neutrik_d_plate();
|
||||||
translate([50, 0, 0]) neutrik_d_plate();
|
translate([44, 0, 0]) neutrik_d_plate();
|
||||||
}
|
}
|
||||||
translate([0, 0, -10]) aux_control_three_button_cluster();
|
translate([0, 0, -10]) aux_control_three_button_cluster();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,19 +1,6 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
/*
|
||||||
*
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
* This file is part of the Buildable Stick System.
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
|
|||||||
@@ -0,0 +1,50 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: © 2024 Brian S. Stephan <bss@incorporeal.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
include <parameters.scad>
|
||||||
|
decorative_radius_scale = 1.5;
|
||||||
|
jumbo_decorative_radius_scale = 0;
|
||||||
|
include <components.scad>
|
||||||
|
|
||||||
|
module dir_arc_plus_w_30mm_and_sega_2p_plus_one_decorative_plate_of_plates() {
|
||||||
|
difference() {
|
||||||
|
// get a 2mm slice of the bigger button cylinders
|
||||||
|
union() {
|
||||||
|
translate([-panel_x/2, 0, -25]) {
|
||||||
|
hull() union() {
|
||||||
|
dir_arc_30mm_finger_buttons();
|
||||||
|
translate([-26.8, 57.2+12.9+34.5, 0]) dir_arc_30mm_thumb_button();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
translate([panel_x/2, 0, -25]) {
|
||||||
|
hull() sega_2p();
|
||||||
|
}
|
||||||
|
hull() {
|
||||||
|
translate([-panel_x/2, 0, -25]) dir_arc_30mm_thumb_button();
|
||||||
|
translate([panel_x/2, -19-9-11-19-9-11, -25]) sega_2p_p1();
|
||||||
|
}
|
||||||
|
difference() {
|
||||||
|
translate([-60, -8, 0]) cube(60, center=true);
|
||||||
|
translate([-98.35, -39.25, 0]) cylinder(h=50, r=48, $fn=50, center=true);
|
||||||
|
}
|
||||||
|
difference() {
|
||||||
|
translate([43.35, -10.30, 0]) cube(50, center=true);
|
||||||
|
translate([68.35, -35.30, 0]) cylinder(h=50, r=18, $fn=50, center=true);
|
||||||
|
}
|
||||||
|
difference() {
|
||||||
|
translate([-10, 55, 0]) cube(43, center=true);
|
||||||
|
translate([-5.15, 76.25, 0]) cylinder(h=50, r=27, $fn=50, center=true);
|
||||||
|
}
|
||||||
|
translate([-7, 0, 0]) cube(80, center=true);
|
||||||
|
}
|
||||||
|
translate([0, 0, -100]) cube([500, 500, 198], center=true);
|
||||||
|
translate([0, 0, 100]) cube([500, 500, 198], center=true);
|
||||||
|
// cut out the normal holes
|
||||||
|
translate([-panel_x/2, 0, -1]) dir_arc_w_30mm();
|
||||||
|
translate([panel_x/2, 0, -1]) sega_2p_plus_one();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dir_arc_plus_w_30mm_and_sega_2p_plus_one_decorative_plate_of_plates();
|
||||||
@@ -1,19 +1,6 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
/*
|
||||||
*
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
* This file is part of the Buildable Stick System.
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
@@ -23,14 +10,14 @@ module dir_arc_plus_w_30mm_and_sega_2p_plus_one_decorative_plate() {
|
|||||||
difference() {
|
difference() {
|
||||||
// get a 2mm slice of the bigger button cylinders
|
// get a 2mm slice of the bigger button cylinders
|
||||||
union() {
|
union() {
|
||||||
translate([-top_plate_x/2, 0, -65]) dir_arc_w_30mm();
|
translate([-panel_x/2, 0, -65]) dir_arc_w_30mm();
|
||||||
translate([top_plate_x/2, 0, -65]) sega_2p_plus_one();
|
translate([panel_x/2, 0, -65]) sega_2p_plus_one();
|
||||||
}
|
}
|
||||||
translate([0, 0, -100]) cube([500, 500, 198], center=true);
|
translate([0, 0, -100]) cube([500, 500, 198], center=true);
|
||||||
translate([0, 0, 100]) cube([500, 500, 198], center=true);
|
translate([0, 0, 100]) cube([500, 500, 198], center=true);
|
||||||
// cut out the normal holes
|
// cut out the normal holes
|
||||||
translate([-top_plate_x/2, 0, -1]) dir_arc_w_30mm();
|
translate([-panel_x/2, 0, -1]) dir_arc_w_30mm();
|
||||||
translate([top_plate_x/2, 0, -1]) sega_2p_plus_one();
|
translate([panel_x/2, 0, -1]) sega_2p_plus_one();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,19 +1,6 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
/*
|
||||||
*
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
* This file is part of the Buildable Stick System.
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
|
|||||||
@@ -1,19 +1,6 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
/*
|
||||||
*
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
* This file is part of the Buildable Stick System.
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
|
|||||||
@@ -1,19 +1,6 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
/*
|
||||||
*
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
* This file is part of the Buildable Stick System.
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
|
|||||||
@@ -1,19 +1,6 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
/*
|
||||||
*
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
* This file is part of the Buildable Stick System.
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
|
|||||||
@@ -1,19 +1,6 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
/*
|
||||||
*
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
* This file is part of the Buildable Stick System.
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
|
|||||||
16
src/misc-lever-mount-sanwa-seimitsu.scad
Normal file
16
src/misc-lever-mount-sanwa-seimitsu.scad
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
include <parameters.scad>
|
||||||
|
include <components.scad>
|
||||||
|
|
||||||
|
module sanwa_seimitsu_lever_mount() {
|
||||||
|
difference() {
|
||||||
|
levermountbase();
|
||||||
|
levermountholes();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sanwa_seimitsu_lever_mount();
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
|
||||||
*
|
|
||||||
* This file is part of the Buildable Stick System.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
include <parameters.scad>
|
|
||||||
include <components.scad>
|
|
||||||
use <misc-neutrik-d-plate.scad>
|
|
||||||
|
|
||||||
module neutrik_d_plate_20mm() {
|
|
||||||
difference() {
|
|
||||||
neutrik_d_plate();
|
|
||||||
cylinder(r=10+hole_tolerance, h=5, $fn=50, center=true);
|
|
||||||
cube([2.2, 22, 5], center=true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
neutrik_d_plate_20mm();
|
|
||||||
@@ -1,19 +1,6 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
/*
|
||||||
*
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
* This file is part of the Buildable Stick System.
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
@@ -23,7 +10,7 @@ use <misc-neutrik-d-plate.scad>
|
|||||||
module neutrik_d_plate_24mm() {
|
module neutrik_d_plate_24mm() {
|
||||||
difference() {
|
difference() {
|
||||||
neutrik_d_plate();
|
neutrik_d_plate();
|
||||||
cylinder(r=12+hole_tolerance, h=5, $fn=50, center=true);
|
neutrik_d_mount();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,19 +1,6 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
/*
|
||||||
*
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
* This file is part of the Buildable Stick System.
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
|
|||||||
17
src/misc-rocker-20mm-plate.scad
Normal file
17
src/misc-rocker-20mm-plate.scad
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
include <parameters.scad>
|
||||||
|
include <components.scad>
|
||||||
|
use <misc-neutrik-d-plate.scad>
|
||||||
|
|
||||||
|
module rocker_plate_20mm() {
|
||||||
|
difference() {
|
||||||
|
neutrik_d_plate();
|
||||||
|
rocker_20mm_mount();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
rocker_plate_20mm();
|
||||||
@@ -1,19 +1,6 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
/*
|
||||||
*
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
* This file is part of the Buildable Stick System.
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// adjustments
|
// adjustments
|
||||||
@@ -45,10 +32,12 @@ lever_mount_z = 2;
|
|||||||
lever_plate_hole = 12;
|
lever_plate_hole = 12;
|
||||||
|
|
||||||
// case dimensions
|
// case dimensions
|
||||||
// base frame box. reminder: top of inside (including mounts) is chopped by top_plate_z for plates
|
// base frame box. reminder: top of inside (including mounts) is chopped by panel_z for plates
|
||||||
frame_x = 233;
|
frame_x = 233;
|
||||||
frame_y = 208;
|
frame_y = 208;
|
||||||
frame_z = 55;
|
frame_z = 57;
|
||||||
|
|
||||||
|
frame_center_to_neutrik = 70;
|
||||||
|
|
||||||
// depth of the "lip" of the frame that the top plate sets into/supports the overhang
|
// depth of the "lip" of the frame that the top plate sets into/supports the overhang
|
||||||
frame_wall = 4;
|
frame_wall = 4;
|
||||||
@@ -57,18 +46,18 @@ frame_wall = 4;
|
|||||||
neutrik_panel_thickness = 3;
|
neutrik_panel_thickness = 3;
|
||||||
|
|
||||||
// top plate, which can either be the whole plate ("inset") or the mounting frame for a plate that overhangs
|
// top plate, which can either be the whole plate ("inset") or the mounting frame for a plate that overhangs
|
||||||
top_plate_x = frame_x - (frame_wall * 2);
|
panel_x = frame_x - (frame_wall * 2);
|
||||||
top_plate_y = frame_y - (frame_wall * 2);
|
panel_y = frame_y - (frame_wall * 2);
|
||||||
top_plate_z = 5;
|
panel_z = 5;
|
||||||
|
|
||||||
// how much the top plate x/y is expanded to overhang the frame
|
// how much the top plate x/y is expanded to overhang the frame
|
||||||
// note that this is relative to the top plate (so the wall is added back)
|
// note that this is relative to the top plate (so the wall is added back)
|
||||||
top_plate_overhang_amount = 8.5;
|
panel_overhang_amount = 8.5;
|
||||||
overhang_top_plate_x = top_plate_x + (frame_wall * 2) + (top_plate_overhang_amount * 2);
|
overhang_panel_x = panel_x + (frame_wall * 2) + (panel_overhang_amount * 2);
|
||||||
overhang_top_plate_y = top_plate_y + (frame_wall * 2) + (top_plate_overhang_amount * 2);
|
overhang_panel_y = panel_y + (frame_wall * 2) + (panel_overhang_amount * 2);
|
||||||
|
|
||||||
plate_to_frame_point_x = (top_plate_x/2)-10;
|
panel_to_frame_point_x = (panel_x/2)-10;
|
||||||
plate_to_frame_point_y = (top_plate_y/2)-10;
|
panel_to_frame_point_y = (panel_y/2)-10;
|
||||||
|
|
||||||
// frame interior that supports the top plates
|
// frame interior that supports the top plates
|
||||||
panel_support_width = 5;
|
panel_support_width = 5;
|
||||||
|
|||||||
@@ -1,19 +1,6 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
/*
|
||||||
*
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
* This file is part of the Buildable Stick System.
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
@@ -22,7 +9,7 @@ use <top-panel-inset-dir_arc-plus-w-30mm-plus-one.scad>
|
|||||||
|
|
||||||
module dir_arc_w_30mm_plus_one_panel_with_mount() {
|
module dir_arc_w_30mm_plus_one_panel_with_mount() {
|
||||||
dir_arc_w_30mm_plus_one_panel();
|
dir_arc_w_30mm_plus_one_panel();
|
||||||
translate([-15, -40, -(top_plate_z/2) - 3]) rotate([0, 0, -15]) pcb_mount();
|
translate([-15, -40, -(panel_z/2) - 3]) rotate([0, 0, -15]) pcb_mount();
|
||||||
}
|
}
|
||||||
|
|
||||||
dir_arc_w_30mm_plus_one_panel_with_mount();
|
dir_arc_w_30mm_plus_one_panel_with_mount();
|
||||||
|
|||||||
@@ -1,19 +1,6 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
/*
|
||||||
*
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
* This file is part of the Buildable Stick System.
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
@@ -21,7 +8,7 @@ include <components.scad>
|
|||||||
|
|
||||||
module dir_arc_w_30mm_plus_one_panel() {
|
module dir_arc_w_30mm_plus_one_panel() {
|
||||||
difference() {
|
difference() {
|
||||||
topplate();
|
panel();
|
||||||
dir_arc_w_30mm_plus_one();
|
dir_arc_w_30mm_plus_one();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,19 +1,6 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
/*
|
||||||
*
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
* This file is part of the Buildable Stick System.
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
@@ -21,12 +8,10 @@ include <components.scad>
|
|||||||
|
|
||||||
module top_panel_inset_lever_and_dir_arc_w_30mm() {
|
module top_panel_inset_lever_and_dir_arc_w_30mm() {
|
||||||
difference() {
|
difference() {
|
||||||
union() {
|
panel();
|
||||||
topplate();
|
|
||||||
translate([(-top_plate_x/2)+55, (top_plate_y/2)-75, -((top_plate_z/2)+(lever_mount_z/2))]) levermountbase();
|
|
||||||
}
|
|
||||||
dir_arc_w_30mm();
|
dir_arc_w_30mm();
|
||||||
translate([(-top_plate_x/2)+55, (top_plate_y/2)-75, 0]) levermountholes();
|
translate([(-panel_x/2)+55, (panel_y/2)-75, 0]) levermountholes();
|
||||||
|
translate([(-panel_x/2)+55, (panel_y/2)-75, 0]) levermountcountersinks();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,19 +1,6 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
/*
|
||||||
*
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
* This file is part of the Buildable Stick System.
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
@@ -22,7 +9,7 @@ use <top-panel-inset-lever.scad>
|
|||||||
|
|
||||||
module lever_panel_with_mount() {
|
module lever_panel_with_mount() {
|
||||||
lever_panel();
|
lever_panel();
|
||||||
translate([0, -top_plate_y/2+25, -(top_plate_z/2) - 3]) pcb_mount();
|
translate([0, -panel_y/2+25, -(panel_z/2) - 3]) pcb_mount();
|
||||||
}
|
}
|
||||||
|
|
||||||
lever_panel_with_mount();
|
lever_panel_with_mount();
|
||||||
|
|||||||
@@ -1,19 +1,6 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
/*
|
||||||
*
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
* This file is part of the Buildable Stick System.
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
@@ -23,14 +10,10 @@ include <components.scad>
|
|||||||
module lever_panel() {
|
module lever_panel() {
|
||||||
difference() {
|
difference() {
|
||||||
// base plate
|
// base plate
|
||||||
union() {
|
translate([0,-20,0]) panel();
|
||||||
translate([0,-20,0])
|
|
||||||
topplate();
|
|
||||||
translate([0, 0, -((top_plate_z/2)+(lever_mount_z/2))])
|
|
||||||
levermountbase();
|
|
||||||
}
|
|
||||||
// holes to mount the lever
|
// holes to mount the lever
|
||||||
levermountholes();
|
levermountholes();
|
||||||
|
levermountcountersinks();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,19 +1,6 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
/*
|
||||||
*
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
* This file is part of the Buildable Stick System.
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
@@ -21,7 +8,7 @@ include <components.scad>
|
|||||||
|
|
||||||
module namco_noir_plus_one_panel() {
|
module namco_noir_plus_one_panel() {
|
||||||
difference() {
|
difference() {
|
||||||
topplate();
|
panel();
|
||||||
noir_plus_one();
|
noir_plus_one();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,19 +1,6 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
/*
|
||||||
*
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
* This file is part of the Buildable Stick System.
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
@@ -21,7 +8,7 @@ include <components.scad>
|
|||||||
|
|
||||||
module namco_noir_plus_two_panel() {
|
module namco_noir_plus_two_panel() {
|
||||||
difference() {
|
difference() {
|
||||||
topplate();
|
panel();
|
||||||
noir_plus_one();
|
noir_plus_one();
|
||||||
translate([32.94-3.47-3.47, -78+7.37+4.49, 0]) noir_button_p1();
|
translate([32.94-3.47-3.47, -78+7.37+4.49, 0]) noir_button_p1();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,19 +1,6 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
/*
|
||||||
*
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
* This file is part of the Buildable Stick System.
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
@@ -22,7 +9,7 @@ use <top-panel-inset-sega-2p-plus-one-plus-control.scad>
|
|||||||
|
|
||||||
module top_panel_inset_sega_2p_plus_one_plus_control_with_mount() {
|
module top_panel_inset_sega_2p_plus_one_plus_control_with_mount() {
|
||||||
top_panel_inset_sega_2p_plus_one_plus_control();
|
top_panel_inset_sega_2p_plus_one_plus_control();
|
||||||
translate([30, -50, -(top_plate_z/2) - 3]) pcb_mount();
|
translate([30, -50, -(panel_z/2) - 3]) pcb_mount();
|
||||||
}
|
}
|
||||||
|
|
||||||
top_panel_inset_sega_2p_plus_one_plus_control_with_mount();
|
top_panel_inset_sega_2p_plus_one_plus_control_with_mount();
|
||||||
|
|||||||
@@ -1,19 +1,6 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
/*
|
||||||
*
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
* This file is part of the Buildable Stick System.
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
@@ -21,7 +8,7 @@ include <components.scad>
|
|||||||
|
|
||||||
module top_panel_inset_sega_2p_plus_one_plus_control() {
|
module top_panel_inset_sega_2p_plus_one_plus_control() {
|
||||||
difference() {
|
difference() {
|
||||||
topplate();
|
panel();
|
||||||
sega_2p_plus_one();
|
sega_2p_plus_one();
|
||||||
rotate([0, 0, 180]) side_chopper();
|
rotate([0, 0, 180]) side_chopper();
|
||||||
translate([89, 30, 0]) button_24mm_hole();
|
translate([89, 30, 0]) button_24mm_hole();
|
||||||
|
|||||||
@@ -1,19 +1,6 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
/*
|
||||||
*
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
* This file is part of the Buildable Stick System.
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
@@ -21,7 +8,7 @@ include <components.scad>
|
|||||||
|
|
||||||
module sega_2p_plus_one_panel() {
|
module sega_2p_plus_one_panel() {
|
||||||
difference() {
|
difference() {
|
||||||
topplate();
|
panel();
|
||||||
sega_2p_plus_one();
|
sega_2p_plus_one();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,34 +0,0 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
|
||||||
*
|
|
||||||
* This file is part of the Buildable Stick System.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
include <parameters.scad>
|
|
||||||
include <components.scad>
|
|
||||||
|
|
||||||
module top_panel_left_lever_and_dir_arc_w_30mm() {
|
|
||||||
difference() {
|
|
||||||
union() {
|
|
||||||
top_plate_with_raised_overhang();
|
|
||||||
translate([(-top_plate_x/2)+55, (top_plate_y/2)-75, -((top_plate_z/2)+(lever_mount_z/2))]) levermountbase();
|
|
||||||
}
|
|
||||||
dir_arc_w_30mm();
|
|
||||||
side_chopper();
|
|
||||||
translate([(-top_plate_x/2)+55, (top_plate_y/2)-75, 0]) levermountholes();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
top_panel_left_lever_and_dir_arc_w_30mm();
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
|
||||||
*
|
|
||||||
* This file is part of the Buildable Stick System.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
include <parameters.scad>
|
|
||||||
include <components.scad>
|
|
||||||
|
|
||||||
// combine the lever mount and generic plate, with mounting holes
|
|
||||||
module top_panel_left_lever() {
|
|
||||||
difference() {
|
|
||||||
// base plate
|
|
||||||
union() {
|
|
||||||
translate([0,-20,0]) top_plate_with_raised_overhang();
|
|
||||||
translate([0, 0, -((top_plate_z/2)+(lever_mount_z/2))]) levermountbase();
|
|
||||||
}
|
|
||||||
// holes to mount the lever
|
|
||||||
levermountholes();
|
|
||||||
side_chopper();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
top_panel_left_lever();
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
|
||||||
*
|
|
||||||
* This file is part of the Buildable Stick System.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
include <parameters.scad>
|
|
||||||
include <components.scad>
|
|
||||||
use <top-panel-middle-dir_arc-plus-w-30mm.scad>
|
|
||||||
|
|
||||||
module top_panel_middle_dir_arc_w_30mm_with_mount() {
|
|
||||||
top_panel_middle_dir_arc_w_30mm();
|
|
||||||
translate([-15, -40, -(top_plate_z/2) - 3]) rotate([0, 0, -45]) pcb_mount();
|
|
||||||
}
|
|
||||||
|
|
||||||
top_panel_middle_dir_arc_w_30mm_with_mount();
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
|
||||||
*
|
|
||||||
* This file is part of the Buildable Stick System.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
include <parameters.scad>
|
|
||||||
include <components.scad>
|
|
||||||
|
|
||||||
module top_panel_middle_dir_arc_w_30mm() {
|
|
||||||
difference() {
|
|
||||||
top_plate_with_raised_overhang();
|
|
||||||
dir_arc_w_30mm();
|
|
||||||
rotate([0, 0, 180]) side_chopper();
|
|
||||||
side_chopper();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
top_panel_middle_dir_arc_w_30mm();
|
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
include <parameters.scad>
|
||||||
|
include <components.scad>
|
||||||
|
|
||||||
|
module top_panel_left_lever_and_dir_arc_w_30mm() {
|
||||||
|
difference() {
|
||||||
|
panel_with_raised_overhang();
|
||||||
|
dir_arc_w_30mm();
|
||||||
|
side_chopper();
|
||||||
|
translate([(-panel_x/2)+55, (panel_y/2)-75, 0]) levermountholes();
|
||||||
|
translate([(-panel_x/2)+55, (panel_y/2)-75, 0]) levermountcountersinks();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
top_panel_left_lever_and_dir_arc_w_30mm();
|
||||||
21
src/top-panel-overhang-left-lever.scad
Normal file
21
src/top-panel-overhang-left-lever.scad
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
include <parameters.scad>
|
||||||
|
include <components.scad>
|
||||||
|
|
||||||
|
// combine the lever mount and generic plate, with mounting holes
|
||||||
|
module top_panel_left_lever() {
|
||||||
|
difference() {
|
||||||
|
// base plate
|
||||||
|
panel_with_raised_overhang();
|
||||||
|
// holes to mount the lever
|
||||||
|
translate([0, 20, 0]) levermountholes();
|
||||||
|
translate([0, 20, 0]) levermountcountersinks();
|
||||||
|
side_chopper();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
top_panel_left_lever();
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
include <parameters.scad>
|
||||||
|
include <components.scad>
|
||||||
|
use <top-panel-overhang-middle-dir_arc-plus-w-30mm.scad>
|
||||||
|
|
||||||
|
module top_panel_middle_dir_arc_w_30mm_with_mount() {
|
||||||
|
top_panel_middle_dir_arc_w_30mm();
|
||||||
|
translate([-15, -40, -(panel_z/2) - 3]) rotate([0, 0, -45]) pcb_mount();
|
||||||
|
}
|
||||||
|
|
||||||
|
top_panel_middle_dir_arc_w_30mm_with_mount();
|
||||||
18
src/top-panel-overhang-middle-dir_arc-plus-w-30mm.scad
Normal file
18
src/top-panel-overhang-middle-dir_arc-plus-w-30mm.scad
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
include <parameters.scad>
|
||||||
|
include <components.scad>
|
||||||
|
|
||||||
|
module top_panel_middle_dir_arc_w_30mm() {
|
||||||
|
difference() {
|
||||||
|
panel_with_raised_overhang();
|
||||||
|
dir_arc_w_30mm();
|
||||||
|
rotate([0, 0, 180]) side_chopper();
|
||||||
|
side_chopper();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
top_panel_middle_dir_arc_w_30mm();
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
include <parameters.scad>
|
||||||
|
include <components.scad>
|
||||||
|
use <top-panel-overhang-right-sega-2p-plus-one-plus-control-with-mount.scad>
|
||||||
|
|
||||||
|
module top_panel_right_sega_2p_plus_one_plus_control_with_mount_with_oled() {
|
||||||
|
difference() {
|
||||||
|
top_panel_right_sega_2p_plus_one_plus_control_with_mount();
|
||||||
|
translate([75, 77.5, 0]) oled_ssd1306_mount_cutout();
|
||||||
|
}
|
||||||
|
translate([75, 77.5, 0.5]) oled_ssd1306_mount();
|
||||||
|
}
|
||||||
|
|
||||||
|
top_panel_right_sega_2p_plus_one_plus_control_with_mount_with_oled();
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
include <parameters.scad>
|
||||||
|
include <components.scad>
|
||||||
|
use <top-panel-overhang-right-sega-2p-plus-one-plus-control.scad>
|
||||||
|
|
||||||
|
module top_panel_right_sega_2p_plus_one_plus_control_with_mount() {
|
||||||
|
top_panel_right_sega_2p_plus_one_plus_control();
|
||||||
|
translate([30, -50, -(panel_z/2) - 3]) pcb_mount();
|
||||||
|
}
|
||||||
|
|
||||||
|
top_panel_right_sega_2p_plus_one_plus_control_with_mount();
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
include <parameters.scad>
|
||||||
|
include <components.scad>
|
||||||
|
|
||||||
|
module top_panel_right_sega_2p_plus_one_plus_control() {
|
||||||
|
difference() {
|
||||||
|
panel_with_raised_overhang();
|
||||||
|
sega_2p_plus_one();
|
||||||
|
rotate([0, 0, 180]) side_chopper();
|
||||||
|
translate([89, 30, 0]) button_24mm_hole();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
top_panel_right_sega_2p_plus_one_plus_control();
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
include <parameters.scad>
|
||||||
|
include <components.scad>
|
||||||
|
use <top-panel-overhang-right-sega-2p-plus-one.scad>
|
||||||
|
|
||||||
|
module top_panel_right_sega_2p_plus_one_with_mount() {
|
||||||
|
top_panel_right_sega_2p_plus_one();
|
||||||
|
translate([30, -50, -(panel_z/2) - 3]) pcb_mount();
|
||||||
|
}
|
||||||
|
|
||||||
|
top_panel_right_sega_2p_plus_one_with_mount();
|
||||||
17
src/top-panel-overhang-right-sega-2p-plus-one.scad
Normal file
17
src/top-panel-overhang-right-sega-2p-plus-one.scad
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
include <parameters.scad>
|
||||||
|
include <components.scad>
|
||||||
|
|
||||||
|
module top_panel_right_sega_2p_plus_one() {
|
||||||
|
difference() {
|
||||||
|
panel_with_raised_overhang();
|
||||||
|
sega_2p_plus_one();
|
||||||
|
rotate([0, 0, 180]) side_chopper();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
top_panel_right_sega_2p_plus_one();
|
||||||
16
src/top-panel-overhang-solo-dir_arc-24mm-6-button.scad
Normal file
16
src/top-panel-overhang-solo-dir_arc-24mm-6-button.scad
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
include <parameters.scad>
|
||||||
|
include <components.scad>
|
||||||
|
|
||||||
|
module dir_arc_24mm_6_button_panel() {
|
||||||
|
difference() {
|
||||||
|
panel_with_raised_overhang();
|
||||||
|
translate([-71.5, -panel_y/2+122.5, 0]) dir_arc_24mm_6_button();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dir_arc_24mm_6_button_panel();
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
include <parameters.scad>
|
||||||
|
include <components.scad>
|
||||||
|
|
||||||
|
module dir_arc_plus_w_24mm_8_button_panel() {
|
||||||
|
difference() {
|
||||||
|
panel_with_raised_overhang();
|
||||||
|
translate([-80.5, panel_y/6, 0]) dir_arc_plus_w_24mm_8_button();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dir_arc_plus_w_24mm_8_button_panel();
|
||||||
21
src/top-panel-overhang-solo-lever-and-sega-2p-6-button.scad
Normal file
21
src/top-panel-overhang-solo-lever-and-sega-2p-6-button.scad
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
include <parameters.scad>
|
||||||
|
include <components.scad>
|
||||||
|
|
||||||
|
module top_panel_solo_lever_and_sega_2p_6_button() {
|
||||||
|
difference() {
|
||||||
|
// base plate
|
||||||
|
union() {
|
||||||
|
panel_with_raised_overhang();
|
||||||
|
translate([-60, 18, -((panel_z/2)+(lever_mount_z/2))]) levermountbase();
|
||||||
|
}
|
||||||
|
translate([95, -20, 0]) sega_2p_6_button();
|
||||||
|
translate([-60, 18, 0]) levermountholes();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
top_panel_solo_lever_and_sega_2p_6_button();
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
|
||||||
*
|
|
||||||
* This file is part of the Buildable Stick System.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
include <parameters.scad>
|
|
||||||
include <components.scad>
|
|
||||||
use <top-panel-right-sega-2p-plus-one-plus-control-with-mount.scad>
|
|
||||||
|
|
||||||
module top_panel_right_sega_2p_plus_one_plus_control_with_mount_with_oled() {
|
|
||||||
difference() {
|
|
||||||
top_panel_right_sega_2p_plus_one_plus_control_with_mount();
|
|
||||||
translate([75, 77.5, 0]) oled_ssd1306_mount_cutout();
|
|
||||||
}
|
|
||||||
translate([75, 77.5, 0.5]) oled_ssd1306_mount();
|
|
||||||
}
|
|
||||||
|
|
||||||
top_panel_right_sega_2p_plus_one_plus_control_with_mount_with_oled();
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
|
||||||
*
|
|
||||||
* This file is part of the Buildable Stick System.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
include <parameters.scad>
|
|
||||||
include <components.scad>
|
|
||||||
use <top-panel-right-sega-2p-plus-one-plus-control.scad>
|
|
||||||
|
|
||||||
module top_panel_right_sega_2p_plus_one_plus_control_with_mount() {
|
|
||||||
top_panel_right_sega_2p_plus_one_plus_control();
|
|
||||||
translate([30, -50, -(top_plate_z/2) - 3]) pcb_mount();
|
|
||||||
}
|
|
||||||
|
|
||||||
top_panel_right_sega_2p_plus_one_plus_control_with_mount();
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
|
||||||
*
|
|
||||||
* This file is part of the Buildable Stick System.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
include <parameters.scad>
|
|
||||||
include <components.scad>
|
|
||||||
|
|
||||||
module top_panel_right_sega_2p_plus_one_plus_control() {
|
|
||||||
difference() {
|
|
||||||
top_plate_with_raised_overhang();
|
|
||||||
sega_2p_plus_one();
|
|
||||||
rotate([0, 0, 180]) side_chopper();
|
|
||||||
translate([89, 30, 0]) button_24mm_hole();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
top_panel_right_sega_2p_plus_one_plus_control();
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
|
||||||
*
|
|
||||||
* This file is part of the Buildable Stick System.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
include <parameters.scad>
|
|
||||||
include <components.scad>
|
|
||||||
use <top-panel-right-sega-2p-plus-one.scad>
|
|
||||||
|
|
||||||
module top_panel_right_sega_2p_plus_one_with_mount() {
|
|
||||||
top_panel_right_sega_2p_plus_one();
|
|
||||||
translate([30, -50, -(top_plate_z/2) - 3]) pcb_mount();
|
|
||||||
}
|
|
||||||
|
|
||||||
top_panel_right_sega_2p_plus_one_with_mount();
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
|
||||||
*
|
|
||||||
* This file is part of the Buildable Stick System.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
include <parameters.scad>
|
|
||||||
include <components.scad>
|
|
||||||
|
|
||||||
module top_panel_right_sega_2p_plus_one() {
|
|
||||||
difference() {
|
|
||||||
top_plate_with_raised_overhang();
|
|
||||||
sega_2p_plus_one();
|
|
||||||
rotate([0, 0, 180]) side_chopper();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
top_panel_right_sega_2p_plus_one();
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
|
||||||
*
|
|
||||||
* This file is part of the Buildable Stick System.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
include <parameters.scad>
|
|
||||||
include <components.scad>
|
|
||||||
|
|
||||||
module dir_arc_24mm_6_button_panel() {
|
|
||||||
difference() {
|
|
||||||
top_plate_with_raised_overhang();
|
|
||||||
translate([-71.5, -top_plate_y/2+122.5, 0]) dir_arc_24mm_6_button();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
dir_arc_24mm_6_button_panel();
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
|
||||||
*
|
|
||||||
* This file is part of the Buildable Stick System.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
include <parameters.scad>
|
|
||||||
include <components.scad>
|
|
||||||
|
|
||||||
module dir_arc_plus_w_24mm_8_button_panel() {
|
|
||||||
difference() {
|
|
||||||
top_plate_with_raised_overhang();
|
|
||||||
translate([-80.5, top_plate_y/6, 0]) dir_arc_plus_w_24mm_8_button();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
dir_arc_plus_w_24mm_8_button_panel();
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
/* Copyright Brian Stephan 2023
|
|
||||||
*
|
|
||||||
* This file is part of the Buildable Stick System.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
||||||
* more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with
|
|
||||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
include <parameters.scad>
|
|
||||||
include <components.scad>
|
|
||||||
|
|
||||||
module top_panel_solo_lever_and_sega_2p_6_button() {
|
|
||||||
difference() {
|
|
||||||
// base plate
|
|
||||||
union() {
|
|
||||||
top_plate_with_raised_overhang();
|
|
||||||
translate([-60, 18, -((top_plate_z/2)+(lever_mount_z/2))]) levermountbase();
|
|
||||||
}
|
|
||||||
translate([95, -20, 0]) sega_2p_6_button();
|
|
||||||
translate([-60, 18, 0]) levermountholes();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
top_panel_solo_lever_and_sega_2p_6_button();
|
|
||||||
Reference in New Issue
Block a user