naming consistency: panels are top/bottom
vertical planes that make up the frame are either sides or front/back Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
This commit is contained in:
parent
de3914fa85
commit
bc68f8b0dc
34
README.md
34
README.md
@ -36,31 +36,31 @@ about what the types of parts are and how to use them:
|
|||||||
* `complete/` --- these are the four walls of the frame as one piece, in a couple variations for combining into
|
* `complete/` --- these are the four walls of the frame as one piece, in a couple variations for combining into
|
||||||
larger arcade sticks. They are simple to assemble, but you have fewer modularity/customization options, and they
|
larger arcade sticks. They are simple to assemble, but you have fewer modularity/customization options, and they
|
||||||
are harder to print because the physics of the material cooling will probably pull the corners up. They also need
|
are harder to print because the physics of the material cooling will probably pull the corners up. They also need
|
||||||
supports, since the face and back of the frame both have trays for panels to go into. Use at your own risk.
|
supports, since the top and bottom of the frame both have trays for panels to go into. Use at your own risk.
|
||||||
* `pieces/`
|
* `pieces/`
|
||||||
* `box/` --- these are the same four walls (generally speaking) as in the complete frames above, broken out into
|
* `box/` --- these are the same four walls (generally speaking) as in the complete frames above, broken out into
|
||||||
modular faces to print separately. Because they are separate pieces, you can mix and match colors, and you can
|
modular pieces to print separately. Because they are separate pieces, you can mix and match colors, and you
|
||||||
lay them all face down on the print surface for better adhesion and surface patterns. There are also variants
|
can lay them all face down on the print surface for better adhesion and surface patterns. There are also
|
||||||
here, the "windowed" pieces, for doing two-tone variants and that kind of thing.
|
variants here, the "windowed" pieces, for doing two-tone variants and that kind of thing.
|
||||||
* `extended/` --- the frame walls are pulled out to create MCZ TE-style extended sides/bottom. Rather than
|
* `extended/` --- the frame walls are pulled out to create MCZ TE-style extended sides. Rather than getting a
|
||||||
getting a box look, you get a longer slab with nice bevels. These look nice, but slightly fiddily to print
|
box look, you get a longer slab with nice bevels. These look nice, but slightly fiddily to print (and of
|
||||||
(and of course need more material) --- watch your surface adhesion.
|
course need more material) --- watch your surface adhesion.
|
||||||
* `interconnect` --- complete frames are bolted to one another, but for frame pieces, there is an interconnect
|
* `interconnect` --- complete frames are bolted to one another, but for frame pieces, there is an interconnect
|
||||||
that stands in for the joined inner wall. You need this if you are combining multiple sets of walls, e.g. for
|
that stands in for the joined inner wall. You need this if you are combining multiple sets of walls, e.g. for
|
||||||
a two-panel-long stick.
|
a two-panel-long stick.
|
||||||
* `panels/`
|
* `panels/`
|
||||||
* `inset/` --- various panels, all of the same size, that fit into and flush with the frame, making the arcade stick
|
* `inset/` --- various panels, all of the same size, that fit into and flush with the frame, making the arcade stick
|
||||||
face or back. These work equally well with box or extended frames, and aside from using up a bit of the space
|
top or bottom. These work equally well with box or extended frames, and aside from using up a bit of the space
|
||||||
inside the frame, come with no downsides --- they print easily and are a pretty simple shape to tweak and remix.
|
inside the frame, come with no downsides --- they print easily and are a pretty simple shape to tweak and remix.
|
||||||
* `overhang/` --- overhang panels have their face extending over the edge of the frame, creating a bit of a sandwich
|
* `overhang/` --- overhang panels have their plane extending over the edge of the frame, creating a bit of a
|
||||||
look. This is mostly an aesthetic choice, but they sit higher in the frame as well, the main panel being
|
sandwich look. This is mostly an aesthetic choice, but they sit higher in the frame as well, the main panel being
|
||||||
over/under the frame rather than within it. This extra space is useful for taller levers. The only downside to
|
over/under the frame rather than within it. This extra space is useful for taller levers. The only downside to
|
||||||
these is that they aren't as reusable as the inset panels, since the inset panels can go anywhere, but the
|
these is that they aren't as reusable as the inset panels, since the inset panels can go anywhere, but the
|
||||||
overhang panels must be designed to not overlap with other overhang panels, so you might have to make more custom
|
overhang panels must be designed to not overlap with other overhang panels, so you might have to make more custom
|
||||||
variants depending on where you put things.
|
variants depending on where you put things.
|
||||||
* `misc/`
|
* `misc/`
|
||||||
* Pieces that I haven't organized better (yet) --- there are decorative plates for face buttons or top buttons to
|
* Pieces that I haven't organized better (yet) --- there are decorative plates for top buttons and similar to give
|
||||||
give more color variance and some layers to the arcade stick, some very simple dustwashers, plates that fit rocker
|
more color variance and some layers to the arcade stick, some very simple dustwashers, plates that fit rocker
|
||||||
switches and the like in Neutrik D or 20mm holes, and a lever mount spacer for getting your lever shaft at the
|
switches and the like in Neutrik D or 20mm holes, and a lever mount spacer for getting your lever shaft at the
|
||||||
desired height. You don't *need* any of these, but you'll probably use a few.
|
desired height. You don't *need* any of these, but you'll probably use a few.
|
||||||
* `extras/`
|
* `extras/`
|
||||||
@ -80,11 +80,11 @@ What you'll need beyond these objects:
|
|||||||
* An arcade stick board (I recommend [TheTrain's RP2040 Advanced Breakout
|
* An arcade stick board (I recommend [TheTrain's RP2040 Advanced Breakout
|
||||||
Board](https://github.com/OpenStickCommunity/Hardware/tree/main/RP2040%20Advanced%20Breakout%20Board))
|
Board](https://github.com/OpenStickCommunity/Hardware/tree/main/RP2040%20Advanced%20Breakout%20Board))
|
||||||
* 4 M3 8mm hex bolts to secure the PCB to a panel
|
* 4 M3 8mm hex bolts to secure the PCB to a panel
|
||||||
* Per frame and plate combo:
|
* Per frame and panel combo:
|
||||||
* 4 45mm M4 hex brass standoffs (or equivalent)
|
* 4 45mm M4 hex brass standoffs (or equivalent)
|
||||||
* 8 M4 countersunk hex bolts
|
* 8 M4 countersunk hex bolts
|
||||||
* Overhang plates should use 12-16mm length bolts since they are taller
|
* Overhang panels should use 12-16mm length bolts since they are taller
|
||||||
* Inset plates should probably use 8-12mm bolts --- some standoffs aren't threaded the whole way, making 16mm
|
* Inset panels should probably use 8-12mm bolts --- some standoffs aren't threaded the whole way, making 16mm
|
||||||
too long to go flush
|
too long to go flush
|
||||||
* If making the 45mm standoffs from multiple smaller ones, make sure they have enough length to take your bolts!
|
* If making the 45mm standoffs from multiple smaller ones, make sure they have enough length to take your bolts!
|
||||||
* Per frame connection point (only necessary if you are using complete frames and not frame pieces):
|
* Per frame connection point (only necessary if you are using complete frames and not frame pieces):
|
||||||
@ -122,8 +122,8 @@ Filament masses from Bambu Studio estimates, using Bambu PLA Basic, 20% gyroid i
|
|||||||
stick anyway
|
stick anyway
|
||||||
* You can also use a shorter length with longer bolts, or combine multiple standoffs, if either of those yield better
|
* You can also use a shorter length with longer bolts, or combine multiple standoffs, if either of those yield better
|
||||||
prices
|
prices
|
||||||
* 8 16mm M4 bolts to connect top plates to frames: **$0.72 USD** (you can get a pack of 100 on Amazon for $9, as of
|
* 8 16mm M4 bolts to connect top panels 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
|
* 8 12mm M4 bolts to connect bottom panels 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 $31, 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
|
||||||
|
2
TODO.md
2
TODO.md
@ -4,4 +4,4 @@ Notes for "next time".
|
|||||||
|
|
||||||
## v4.x
|
## v4.x
|
||||||
|
|
||||||
* Engraving some cosmetic stuff? Or maybe a place to mount other plates on the face?
|
* Engraving some cosmetic stuff? Or maybe a place to mount other plates on the top?
|
||||||
|
@ -5,9 +5,9 @@
|
|||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
include <components.scad>
|
include <components.scad>
|
||||||
use <frames/pieces/extended/top-or-bottom.scad>
|
use <frames/pieces/extended/front-or-back.scad>
|
||||||
use <frames/pieces/extended/side-extended-to-bottom.scad>
|
use <frames/pieces/extended/side-extended-to-bottom.scad>
|
||||||
use <frames/pieces/extended/top-or-bottom-clean-for-extended-side-aux-and-neutrik.scad>
|
use <frames/pieces/extended/front-or-back-clean-for-extended-side-aux-and-neutrik.scad>
|
||||||
use <panels/inset/lever-and-dir_arc-plus-w-30mm-panel.scad>
|
use <panels/inset/lever-and-dir_arc-plus-w-30mm-panel.scad>
|
||||||
use <panels/inset/sega-2p-plus-one-plus-control-panel-with-mount.scad>
|
use <panels/inset/sega-2p-plus-one-plus-control-panel-with-mount.scad>
|
||||||
use <misc/decorative-plate-24mm-button.scad>
|
use <misc/decorative-plate-24mm-button.scad>
|
||||||
@ -25,10 +25,10 @@ color(top_panel_color) translate([-panel_x/2, 0, frame_z/2-panel_z+0.01]) lever_
|
|||||||
color(top_panel_color) translate([panel_x/2, 0, frame_z/2-panel_z+0.01]) sega_2p_plus_one_plus_control_panel_with_mount();
|
color(top_panel_color) translate([panel_x/2, 0, frame_z/2-panel_z+0.01]) sega_2p_plus_one_plus_control_panel_with_mount();
|
||||||
color(frame_side_color) translate([-frame_x/2+4, 0, -2.5]) extra_extended_left_or_right_frame_piece();
|
color(frame_side_color) translate([-frame_x/2+4, 0, -2.5]) extra_extended_left_or_right_frame_piece();
|
||||||
color(frame_side_color) translate([frame_x/2-4, 0, -2.5]) mirror([1, 0, 0]) extra_extended_left_or_right_frame_piece();
|
color(frame_side_color) translate([frame_x/2-4, 0, -2.5]) mirror([1, 0, 0]) extra_extended_left_or_right_frame_piece();
|
||||||
color(frame_top_bottom_color) translate([-frame_x/2+4, 0, -2.5]) extended_top_or_bottom_frame_piece();
|
color(frame_top_bottom_color) translate([-frame_x/2+4, 0, -2.5]) extended_front_or_back_frame_piece();
|
||||||
color(frame_top_bottom_color) translate([frame_x/2-4, 0, -2.5]) extended_top_or_bottom_frame_piece();
|
color(frame_top_bottom_color) translate([frame_x/2-4, 0, -2.5]) extended_front_or_back_frame_piece();
|
||||||
color(frame_top_bottom_color) translate([-frame_x/2+4, 0, -2.5]) rotate([180, 0, 0]) top_or_bottom_aux_and_neutrik_box_frame_piece_for_extended_side();
|
color(frame_top_bottom_color) translate([-frame_x/2+4, 0, -2.5]) rotate([180, 0, 0]) front_or_back_aux_and_neutrik_box_frame_piece_for_extended_side();
|
||||||
color(frame_top_bottom_color) translate([frame_x/2-4, 0, -2.5]) rotate([180, 180, 0]) top_or_bottom_aux_and_neutrik_box_frame_piece_for_extended_side();
|
color(frame_top_bottom_color) translate([frame_x/2-4, 0, -2.5]) rotate([180, 180, 0]) front_or_back_aux_and_neutrik_box_frame_piece_for_extended_side();
|
||||||
color(bottom_panel_color) translate([-panel_x/2, 0, -5-frame_z/2+5]) panel();
|
color(bottom_panel_color) translate([-panel_x/2, 0, -5-frame_z/2+5]) panel();
|
||||||
color(bottom_panel_color) translate([panel_x/2, 0, -5-frame_z/2+5]) panel();
|
color(bottom_panel_color) translate([panel_x/2, 0, -5-frame_z/2+5]) panel();
|
||||||
|
|
||||||
|
@ -7,8 +7,8 @@ include <parameters.scad>
|
|||||||
include <components.scad>
|
include <components.scad>
|
||||||
use <frames/complete/left-frame.scad>
|
use <frames/complete/left-frame.scad>
|
||||||
use <frames/pieces/box/side.scad>
|
use <frames/pieces/box/side.scad>
|
||||||
use <frames/pieces/box/top-or-bottom.scad>
|
use <frames/pieces/box/front-or-back.scad>
|
||||||
use <frames/pieces/box/top-or-bottom-aux-and-neutrik.scad>
|
use <frames/pieces/box/front-or-back-aux-and-neutrik.scad>
|
||||||
use <panels/inset/lever-and-dir_arc-plus-w-30mm-panel.scad>
|
use <panels/inset/lever-and-dir_arc-plus-w-30mm-panel.scad>
|
||||||
use <panels/inset/sega-2p-plus-one-plus-control-panel-with-mount.scad>
|
use <panels/inset/sega-2p-plus-one-plus-control-panel-with-mount.scad>
|
||||||
use <misc/decorative-plate-24mm-button.scad>
|
use <misc/decorative-plate-24mm-button.scad>
|
||||||
@ -24,8 +24,8 @@ color(panel_color) translate([-panel_x/2, 0, frame_z/2-panel_z+0.01]) lever_and_
|
|||||||
color(panel_color) translate([panel_x/2, 0, frame_z/2-panel_z+0.01]) sega_2p_plus_one_plus_control_panel_with_mount();
|
color(panel_color) translate([panel_x/2, 0, frame_z/2-panel_z+0.01]) sega_2p_plus_one_plus_control_panel_with_mount();
|
||||||
color(base_color) translate([-frame_x/2+5, 0, -2.5]) left_frame();
|
color(base_color) translate([-frame_x/2+5, 0, -2.5]) left_frame();
|
||||||
color(base_color) translate([panel_x/2, 0, -2.5]) rotate([0, 180, 0]) side_box_frame_piece();
|
color(base_color) translate([panel_x/2, 0, -2.5]) rotate([0, 180, 0]) side_box_frame_piece();
|
||||||
color(base_color) translate([panel_x/2, 0, -2.5]) top_or_bottom_box_frame_piece();
|
color(base_color) translate([panel_x/2, 0, -2.5]) front_or_back_box_frame_piece();
|
||||||
color(base_color) translate([panel_x/2, 0, -2.5]) rotate([180, 180, 0]) top_or_bottom_aux_and_neutrik_box_frame_piece();
|
color(base_color) translate([panel_x/2, 0, -2.5]) rotate([180, 180, 0]) front_or_back_aux_and_neutrik_box_frame_piece();
|
||||||
color(base_color) translate([-panel_x/2, 0, -5-frame_z/2+5]) panel();
|
color(base_color) translate([-panel_x/2, 0, -5-frame_z/2+5]) panel();
|
||||||
color(base_color) translate([panel_x/2, 0, -5-frame_z/2+5]) panel();
|
color(base_color) translate([panel_x/2, 0, -5-frame_z/2+5]) panel();
|
||||||
|
|
||||||
|
@ -7,8 +7,8 @@ include <parameters.scad>
|
|||||||
include <components.scad>
|
include <components.scad>
|
||||||
use <frames/pieces/interconnect.scad>
|
use <frames/pieces/interconnect.scad>
|
||||||
use <frames/pieces/box/side.scad>
|
use <frames/pieces/box/side.scad>
|
||||||
use <frames/pieces/box/top-or-bottom.scad>
|
use <frames/pieces/box/front-or-back.scad>
|
||||||
use <frames/pieces/box/top-or-bottom-aux-and-neutrik.scad>
|
use <frames/pieces/box/front-or-back-aux-and-neutrik.scad>
|
||||||
use <panels/overhang/left-lever-and-dir_arc-plus-w-30mm-panel.scad>
|
use <panels/overhang/left-lever-and-dir_arc-plus-w-30mm-panel.scad>
|
||||||
use <panels/overhang/right-sega-2p-plus-one-plus-control-panel-with-mount.scad>
|
use <panels/overhang/right-sega-2p-plus-one-plus-control-panel-with-mount.scad>
|
||||||
use <panels/overhang/left-or-right-panel.scad>
|
use <panels/overhang/left-or-right-panel.scad>
|
||||||
@ -18,12 +18,12 @@ use <misc/dustwasher-lsx-nobi.scad>
|
|||||||
|
|
||||||
color("#C12E1F") translate([-panel_x/2-25, 0, frame_z/2+75]) lever_and_dir_arc_w_30mm_left_overhang_panel();
|
color("#C12E1F") translate([-panel_x/2-25, 0, frame_z/2+75]) lever_and_dir_arc_w_30mm_left_overhang_panel();
|
||||||
color("#C12E1F") translate([panel_x/2+25, 0, frame_z/2+75]) sega_2p_plus_one_plus_control_right_overhang_panel_with_mount();
|
color("#C12E1F") translate([panel_x/2+25, 0, frame_z/2+75]) sega_2p_plus_one_plus_control_right_overhang_panel_with_mount();
|
||||||
color("black") translate([-frame_x/2+5-25, -55, -2.5]) top_or_bottom_box_frame_piece();
|
color("black") translate([-frame_x/2+5-25, -55, -2.5]) front_or_back_box_frame_piece();
|
||||||
color("black") rotate([0, 180, 0]) translate([-frame_x/2+5-25, -55, -2.5]) top_or_bottom_box_frame_piece();
|
color("black") rotate([0, 180, 0]) translate([-frame_x/2+5-25, -55, -2.5]) front_or_back_box_frame_piece();
|
||||||
color("black") translate([-frame_x/2+5-50, 0, -2.5]) side_box_frame_piece();
|
color("black") translate([-frame_x/2+5-50, 0, -2.5]) side_box_frame_piece();
|
||||||
color("black") rotate([0, 180, 0]) translate([-frame_x/2+5-50, 0, -2.5]) side_box_frame_piece();
|
color("black") rotate([0, 180, 0]) translate([-frame_x/2+5-50, 0, -2.5]) side_box_frame_piece();
|
||||||
color("black") rotate([180, 0, 0]) translate([-frame_x/2+5-25, -55, -2.5]) top_or_bottom_aux_and_neutrik_box_frame_piece();
|
color("black") rotate([180, 0, 0]) translate([-frame_x/2+5-25, -55, -2.5]) front_or_back_aux_and_neutrik_box_frame_piece();
|
||||||
color("black") rotate([180, 0, 0]) rotate([0, 180, 0]) translate([-frame_x/2+5-25, -55, -2.5]) top_or_bottom_aux_and_neutrik_box_frame_piece();
|
color("black") rotate([180, 0, 0]) rotate([0, 180, 0]) translate([-frame_x/2+5-25, -55, -2.5]) front_or_back_aux_and_neutrik_box_frame_piece();
|
||||||
color("black") interconnect_frame_piece();
|
color("black") interconnect_frame_piece();
|
||||||
color("#C12E1F") translate([-panel_x/2-25, 0, -5-frame_z/2-75]) left_or_right_overhang_panel();
|
color("#C12E1F") translate([-panel_x/2-25, 0, -5-frame_z/2-75]) left_or_right_overhang_panel();
|
||||||
color("#C12E1F") mirror([0, 1, 0]) translate([panel_x/2+25, 0, -5-frame_z/2-75]) left_or_right_overhang_panel();
|
color("#C12E1F") mirror([0, 1, 0]) translate([panel_x/2+25, 0, -5-frame_z/2-75]) left_or_right_overhang_panel();
|
||||||
|
@ -10,31 +10,31 @@ The following notes document the objects in the Buildable Stick System and how y
|
|||||||
* `complete/` --- these are the four walls of the frame as one piece, in a couple variations for combining into
|
* `complete/` --- these are the four walls of the frame as one piece, in a couple variations for combining into
|
||||||
larger arcade sticks. They are simple to assemble, but you have fewer modularity/customization options, and they
|
larger arcade sticks. They are simple to assemble, but you have fewer modularity/customization options, and they
|
||||||
are harder to print because the physics of the material cooling will probably pull the corners up. They also need
|
are harder to print because the physics of the material cooling will probably pull the corners up. They also need
|
||||||
supports, since the face and back of the frame both have trays for panels to go into. Use at your own risk.
|
supports, since the top and bottom of the frame both have trays for panels to go into. Use at your own risk.
|
||||||
* `pieces/`
|
* `pieces/`
|
||||||
* `box/` --- these are the same four walls (generally speaking) as in the complete frames above, broken out into
|
* `box/` --- these are the same four walls (generally speaking) as in the complete frames above, broken out into
|
||||||
modular faces to print separately. Because they are separate pieces, you can mix and match colors, and you can
|
modular pieces to print separately. Because they are separate pieces, you can mix and match colors, and you
|
||||||
lay them all face down on the print surface for better adhesion and surface patterns. There are also variants
|
can lay them all face down on the print surface for better adhesion and surface patterns. There are also
|
||||||
here, the "windowed" pieces, for doing two-tone variants and that kind of thing.
|
variants here, the "windowed" pieces, for doing two-tone variants and that kind of thing.
|
||||||
* `extended/` --- the frame walls are pulled out to create MCZ TE-style extended sides/bottom. Rather than
|
* `extended/` --- the frame walls are pulled out to create MCZ TE-style extended sides. Rather than getting a
|
||||||
getting a box look, you get a longer slab with nice bevels. These look nice, but slightly fiddily to print
|
box look, you get a longer slab with nice bevels. These look nice, but slightly fiddily to print (and of
|
||||||
(and of course need more material) --- watch your surface adhesion.
|
course need more material) --- watch your surface adhesion.
|
||||||
* `interconnect` --- complete frames are bolted to one another, but for frame pieces, there is an interconnect
|
* `interconnect` --- complete frames are bolted to one another, but for frame pieces, there is an interconnect
|
||||||
that stands in for the joined inner wall. You need this if you are combining multiple sets of walls, e.g. for
|
that stands in for the joined inner wall. You need this if you are combining multiple sets of walls, e.g. for
|
||||||
a two-panel-long stick.
|
a two-panel-long stick.
|
||||||
* `panels/`
|
* `panels/`
|
||||||
* `inset/` --- various panels, all of the same size, that fit into and flush with the frame, making the arcade stick
|
* `inset/` --- various panels, all of the same size, that fit into and flush with the frame, making the arcade stick
|
||||||
face or back. These work equally well with box or extended frames, and aside from using up a bit of the space
|
top or bottom. These work equally well with box or extended frames, and aside from using up a bit of the space
|
||||||
inside the frame, come with no downsides --- they print easily and are a pretty simple shape to tweak and remix.
|
inside the frame, come with no downsides --- they print easily and are a pretty simple shape to tweak and remix.
|
||||||
* `overhang/` --- overhang panels have their face extending over the edge of the frame, creating a bit of a sandwich
|
* `overhang/` --- overhang panels have their plane extending over the edge of the frame, creating a bit of a
|
||||||
look. This is mostly an aesthetic choice, but they sit higher in the frame as well, the main panel being
|
sandwich look. This is mostly an aesthetic choice, but they sit higher in the frame as well, the main panel being
|
||||||
over/under the frame rather than within it. This extra space is useful for taller levers. The only downside to
|
over/under the frame rather than within it. This extra space is useful for taller levers. The only downside to
|
||||||
these is that they aren't as reusable as the inset panels, since the inset panels can go anywhere, but the
|
these is that they aren't as reusable as the inset panels, since the inset panels can go anywhere, but the
|
||||||
overhang panels must be designed to not overlap with other overhang panels, so you might have to make more custom
|
overhang panels must be designed to not overlap with other overhang panels, so you might have to make more custom
|
||||||
variants depending on where you put things.
|
variants depending on where you put things.
|
||||||
* `misc/`
|
* `misc/`
|
||||||
* Pieces that I haven't organized better (yet) --- there are decorative plates for face buttons or top buttons to
|
* Pieces that I haven't organized better (yet) --- there are decorative plates for top buttons and similar to give
|
||||||
give more color variance and some layers to the arcade stick, some very simple dustwashers, plates that fit rocker
|
more color variance and some layers to the arcade stick, some very simple dustwashers, plates that fit rocker
|
||||||
switches and the like in Neutrik D or 20mm holes, and a lever mount spacer for getting your lever shaft at the
|
switches and the like in Neutrik D or 20mm holes, and a lever mount spacer for getting your lever shaft at the
|
||||||
desired height. You don't *need* any of these, but you'll probably use a few.
|
desired height. You don't *need* any of these, but you'll probably use a few.
|
||||||
* `extras/`
|
* `extras/`
|
||||||
|
@ -8,10 +8,10 @@ Assembly of a stick is pretty straightforward, but there are some choices that c
|
|||||||
following is the most consistent way I've found to put one together. This is assuming a v4.2 or beyond stick, with two
|
following is the most consistent way I've found to put one together. This is assuming a v4.2 or beyond stick, with two
|
||||||
panels to make a long standard stick, and the frame made of pieces.
|
panels to make a long standard stick, and the frame made of pieces.
|
||||||
|
|
||||||
1. Prepare the frame top pieces: this is your best shot the e.g. Neutrik plates for the USB mount, SPDT switches, etc.
|
1. Prepare the frame pieces: this is your best shot to get the e.g. Neutrik plates for the USB mount, SPDT switches, etc.
|
||||||
installed, so do it now, and give them a good tighten. You shouldn't need to adjust these again, so finish their
|
installed, so do it now, and give them a good tighten. You shouldn't need to adjust these again, so finish their
|
||||||
installation while the pieces are free.
|
installation while the pieces are free.
|
||||||
1. You could also do the decorative plates and top buttons, but it might be just as well to leave those for step 7,
|
1. You could also do the decorative plates and related buttons, but it might be just as well to leave those for step 7,
|
||||||
just to make sure the buttons don't get in the way of other buttons or a lever or so on.
|
just to make sure the buttons don't get in the way of other buttons or a lever or so on.
|
||||||
2. Start the top panels: you want both to get the components installed now when it's easy, and to make sure that the
|
2. Start the top panels: you want both to get the components installed now when it's easy, and to make sure that the
|
||||||
overall assembly works with your components, so again get your buttons, lever, etc., in place. You can secure them at
|
overall assembly works with your components, so again get your buttons, lever, etc., in place. You can secure them at
|
||||||
|
@ -5,11 +5,11 @@
|
|||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
include <components.scad>
|
include <components.scad>
|
||||||
use <top-or-bottom.scad>
|
use <front-or-back.scad>
|
||||||
|
|
||||||
module top_or_bottom_aux_and_neutrik_box_frame_piece() {
|
module front_or_back_aux_and_neutrik_box_frame_piece() {
|
||||||
difference() {
|
difference() {
|
||||||
top_or_bottom_box_frame_piece();
|
front_or_back_box_frame_piece();
|
||||||
|
|
||||||
// aux button holes
|
// aux button holes
|
||||||
translate([-35.25, -101.5, 0]) rotate([90, 0, 0]) aux_control_three_button_cluster();
|
translate([-35.25, -101.5, 0]) rotate([90, 0, 0]) aux_control_three_button_cluster();
|
||||||
@ -25,4 +25,4 @@ module top_or_bottom_aux_and_neutrik_box_frame_piece() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
top_or_bottom_aux_and_neutrik_box_frame_piece();
|
front_or_back_aux_and_neutrik_box_frame_piece();
|
@ -6,11 +6,11 @@
|
|||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
include <components.scad>
|
include <components.scad>
|
||||||
use <top-or-bottom.scad>
|
use <front-or-back.scad>
|
||||||
|
|
||||||
module top_or_bottom_inner_wall_frame_piece() {
|
module front_or_back_inner_wall_frame_piece() {
|
||||||
difference() {
|
difference() {
|
||||||
top_or_bottom_box_frame_piece();
|
front_or_back_box_frame_piece();
|
||||||
// minus the outer wall
|
// minus the outer wall
|
||||||
translate([0, -(frame_y-frame_wall)/2, 0]) cube([frame_x, frame_wall, frame_z], center=true);
|
translate([0, -(frame_y-frame_wall)/2, 0]) cube([frame_x, frame_wall, frame_z], center=true);
|
||||||
// minus half of the mounting posts (the other half provided by the outer wall)
|
// minus half of the mounting posts (the other half provided by the outer wall)
|
||||||
@ -21,4 +21,4 @@ module top_or_bottom_inner_wall_frame_piece() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
top_or_bottom_inner_wall_frame_piece();
|
front_or_back_inner_wall_frame_piece();
|
@ -5,8 +5,8 @@
|
|||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
include <components.scad>
|
include <components.scad>
|
||||||
use <top-or-bottom.scad>
|
use <front-or-back.scad>
|
||||||
use <top-or-bottom-inner-wall.scad>
|
use <front-or-back-inner-wall.scad>
|
||||||
|
|
||||||
module backslash() {
|
module backslash() {
|
||||||
polyhedron([[5, -frame_y/2, -(frame_z-panel_z*3)/2], [20, -frame_y/2, -(frame_z-panel_z*3)/2],
|
polyhedron([[5, -frame_y/2, -(frame_z-panel_z*3)/2], [20, -frame_y/2, -(frame_z-panel_z*3)/2],
|
||||||
@ -27,14 +27,14 @@ module backslashes() {
|
|||||||
translate([60, 0, 0]) backslash();
|
translate([60, 0, 0]) backslash();
|
||||||
}
|
}
|
||||||
|
|
||||||
module backslashes_windowed_top_or_bottom_box_frame_piece() {
|
module backslashes_windowed_front_or_back_box_frame_piece() {
|
||||||
difference() {
|
difference() {
|
||||||
top_or_bottom_box_frame_piece();
|
front_or_back_box_frame_piece();
|
||||||
// subtract slashes from the frame wall
|
// subtract slashes from the frame wall
|
||||||
backslashes();
|
backslashes();
|
||||||
// subtract the inner wall area that will be provided by the other piece
|
// subtract the inner wall area that will be provided by the other piece
|
||||||
top_or_bottom_inner_wall_frame_piece();
|
front_or_back_inner_wall_frame_piece();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
backslashes_windowed_top_or_bottom_box_frame_piece();
|
backslashes_windowed_front_or_back_box_frame_piece();
|
@ -5,18 +5,18 @@
|
|||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
include <components.scad>
|
include <components.scad>
|
||||||
use <top-or-bottom.scad>
|
use <front-or-back.scad>
|
||||||
use <top-or-bottom-inner-wall.scad>
|
use <front-or-back-inner-wall.scad>
|
||||||
use <top-or-bottom-windowed-backslashes.scad>
|
use <front-or-back-windowed-backslashes.scad>
|
||||||
|
|
||||||
module forwardslashes_windowed_top_or_bottom_box_frame_piece() {
|
module forwardslashes_windowed_front_or_back_box_frame_piece() {
|
||||||
difference() {
|
difference() {
|
||||||
top_or_bottom_box_frame_piece();
|
front_or_back_box_frame_piece();
|
||||||
// subtract slashes from the frame wall
|
// subtract slashes from the frame wall
|
||||||
mirror([0, 0, 1]) backslashes();
|
mirror([0, 0, 1]) backslashes();
|
||||||
// subtract the inner wall area that will be provided by the other piece
|
// subtract the inner wall area that will be provided by the other piece
|
||||||
top_or_bottom_inner_wall_frame_piece();
|
front_or_back_inner_wall_frame_piece();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
forwardslashes_windowed_top_or_bottom_box_frame_piece();
|
forwardslashes_windowed_front_or_back_box_frame_piece();
|
@ -5,19 +5,19 @@
|
|||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
include <components.scad>
|
include <components.scad>
|
||||||
use <top-or-bottom.scad>
|
use <front-or-back.scad>
|
||||||
use <top-or-bottom-inner-wall.scad>
|
use <front-or-back-inner-wall.scad>
|
||||||
|
|
||||||
module windowed_top_or_bottom_box_frame_piece() {
|
module windowed_front_or_back_box_frame_piece() {
|
||||||
difference() {
|
difference() {
|
||||||
top_or_bottom_box_frame_piece();
|
front_or_back_box_frame_piece();
|
||||||
// subtract frame wall window
|
// subtract frame wall window
|
||||||
translate([0, -frame_y/2, 0])
|
translate([0, -frame_y/2, 0])
|
||||||
cube([frame_x-frame_mount_column_width*3.5, (frame_wall+panel_support_width)*2,
|
cube([frame_x-frame_mount_column_width*3.5, (frame_wall+panel_support_width)*2,
|
||||||
frame_z-panel_z*3], center=true);
|
frame_z-panel_z*3], center=true);
|
||||||
// subtract the inner wall area that will be provided by the other piece
|
// subtract the inner wall area that will be provided by the other piece
|
||||||
top_or_bottom_inner_wall_frame_piece();
|
front_or_back_inner_wall_frame_piece();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
windowed_top_or_bottom_box_frame_piece();
|
windowed_front_or_back_box_frame_piece();
|
@ -7,7 +7,7 @@ include <parameters.scad>
|
|||||||
include <components.scad>
|
include <components.scad>
|
||||||
use <frames/complete/left-frame.scad>
|
use <frames/complete/left-frame.scad>
|
||||||
|
|
||||||
module top_or_bottom_box_frame_piece() {
|
module front_or_back_box_frame_piece() {
|
||||||
piece_width = panel_support_width+frame_wall+frame_mount_column_width;
|
piece_width = panel_support_width+frame_wall+frame_mount_column_width;
|
||||||
intersection() {
|
intersection() {
|
||||||
left_frame();
|
left_frame();
|
||||||
@ -27,4 +27,4 @@ module top_or_bottom_box_frame_piece() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
top_or_bottom_box_frame_piece();
|
front_or_back_box_frame_piece();
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
include <components.scad>
|
include <components.scad>
|
||||||
use <top-or-bottom.scad>
|
use <front-or-back.scad>
|
||||||
|
|
||||||
module side_box_frame_piece() {
|
module side_box_frame_piece() {
|
||||||
piece_width = panel_support_width+frame_wall+frame_mount_column_width;
|
piece_width = panel_support_width+frame_wall+frame_mount_column_width;
|
||||||
@ -13,8 +13,8 @@ module side_box_frame_piece() {
|
|||||||
// side piece is left/right agnostic
|
// side piece is left/right agnostic
|
||||||
frame();
|
frame();
|
||||||
// minus the top and bottom
|
// minus the top and bottom
|
||||||
top_or_bottom_box_frame_piece();
|
front_or_back_box_frame_piece();
|
||||||
rotate([180, 0, 0]) top_or_bottom_box_frame_piece();
|
rotate([180, 0, 0]) front_or_back_box_frame_piece();
|
||||||
// and just chop out the rest of the frame
|
// and just chop out the rest of the frame
|
||||||
translate([piece_width, 0, 0]) cube([frame_x, frame_y+1, frame_z+1], center=true);
|
translate([piece_width, 0, 0]) cube([frame_x, frame_y+1, frame_z+1], center=true);
|
||||||
}
|
}
|
||||||
|
@ -5,11 +5,11 @@
|
|||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
include <components.scad>
|
include <components.scad>
|
||||||
use <top-or-bottom-clean-for-extended-side.scad>
|
use <front-or-back-clean-for-extended-side.scad>
|
||||||
|
|
||||||
module top_or_bottom_aux_and_neutrik_box_frame_piece_for_extended_side() {
|
module front_or_back_aux_and_neutrik_box_frame_piece_for_extended_side() {
|
||||||
difference() {
|
difference() {
|
||||||
top_or_bottom_box_frame_piece_for_extended_side();
|
front_or_back_box_frame_piece_for_extended_side();
|
||||||
|
|
||||||
// aux button holes
|
// aux button holes
|
||||||
translate([-35.25, -101.5, 0]) rotate([90, 0, 0]) aux_control_three_button_cluster();
|
translate([-35.25, -101.5, 0]) rotate([90, 0, 0]) aux_control_three_button_cluster();
|
||||||
@ -25,4 +25,4 @@ module top_or_bottom_aux_and_neutrik_box_frame_piece_for_extended_side() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
top_or_bottom_aux_and_neutrik_box_frame_piece_for_extended_side();
|
front_or_back_aux_and_neutrik_box_frame_piece_for_extended_side();
|
@ -5,14 +5,14 @@
|
|||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
include <components.scad>
|
include <components.scad>
|
||||||
use <frames/pieces/box/top-or-bottom.scad>
|
use <frames/pieces/box/front-or-back.scad>
|
||||||
|
|
||||||
module top_or_bottom_box_frame_piece_for_extended_side() {
|
module front_or_back_box_frame_piece_for_extended_side() {
|
||||||
difference() {
|
difference() {
|
||||||
top_or_bottom_box_frame_piece();
|
front_or_back_box_frame_piece();
|
||||||
// ...minus the frame wall and lip on the left
|
// ...minus the frame wall and lip on the left
|
||||||
translate([-frame_x/2+frame_wall/2, 0, 0]) cube([frame_wall, frame_y, frame_z], center=true);
|
translate([-frame_x/2+frame_wall/2, 0, 0]) cube([frame_wall, frame_y, frame_z], center=true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
top_or_bottom_box_frame_piece_for_extended_side();
|
front_or_back_box_frame_piece_for_extended_side();
|
@ -5,11 +5,11 @@
|
|||||||
|
|
||||||
include <parameters.scad>
|
include <parameters.scad>
|
||||||
include <components.scad>
|
include <components.scad>
|
||||||
use <top-or-bottom-clean-for-extended-side.scad>
|
use <front-or-back-clean-for-extended-side.scad>
|
||||||
|
|
||||||
module clean_top_or_bottom() {
|
module clean_front_or_back() {
|
||||||
difference() {
|
difference() {
|
||||||
top_or_bottom_box_frame_piece_for_extended_side();
|
front_or_back_box_frame_piece_for_extended_side();
|
||||||
// chop off the lip we left on the basic piece
|
// chop off the lip we left on the basic piece
|
||||||
translate([-frame_x/2+frame_wall/2, 0, 0]) cube([frame_wall, frame_y, frame_z], center=true);
|
translate([-frame_x/2+frame_wall/2, 0, 0]) cube([frame_wall, frame_y, frame_z], center=true);
|
||||||
};
|
};
|
||||||
@ -18,7 +18,7 @@ module clean_top_or_bottom() {
|
|||||||
module bottom_piece_wall() {
|
module bottom_piece_wall() {
|
||||||
// get a slice of the piece (before the bevel), to use it in extruding
|
// get a slice of the piece (before the bevel), to use it in extruding
|
||||||
projection(cut=true) rotate([-90, 0, 0]) translate([0, frame_y/2-(frame_wall-frame_bevel_height)*3/2, 0])
|
projection(cut=true) rotate([-90, 0, 0]) translate([0, frame_y/2-(frame_wall-frame_bevel_height)*3/2, 0])
|
||||||
clean_top_or_bottom();
|
clean_front_or_back();
|
||||||
}
|
}
|
||||||
|
|
||||||
module bottom_piece_extension() {
|
module bottom_piece_extension() {
|
||||||
@ -29,9 +29,9 @@ module bottom_piece_extension() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module extended_top_or_bottom_frame_piece() {
|
module extended_front_or_back_frame_piece() {
|
||||||
clean_top_or_bottom();
|
clean_front_or_back();
|
||||||
translate([0, -frame_y/2+frame_wall, 0]) rotate([90, 0, 0]) bottom_piece_extension();
|
translate([0, -frame_y/2+frame_wall, 0]) rotate([90, 0, 0]) bottom_piece_extension();
|
||||||
}
|
}
|
||||||
|
|
||||||
extended_top_or_bottom_frame_piece();
|
extended_front_or_back_frame_piece();
|
@ -7,7 +7,7 @@ include <parameters.scad>
|
|||||||
include <components.scad>
|
include <components.scad>
|
||||||
use <frames/complete/left-frame.scad>
|
use <frames/complete/left-frame.scad>
|
||||||
use <frames/pieces/box/side.scad>
|
use <frames/pieces/box/side.scad>
|
||||||
use <top-or-bottom.scad>
|
use <front-or-back.scad>
|
||||||
|
|
||||||
module side_and_bottom_frame_piece_wall() {
|
module side_and_bottom_frame_piece_wall() {
|
||||||
// get a slice of the pieces, to use it in extruding
|
// get a slice of the pieces, to use it in extruding
|
||||||
|
@ -7,7 +7,7 @@ include <parameters.scad>
|
|||||||
include <components.scad>
|
include <components.scad>
|
||||||
use <frames/complete/left-frame.scad>
|
use <frames/complete/left-frame.scad>
|
||||||
use <frames/pieces/box/side.scad>
|
use <frames/pieces/box/side.scad>
|
||||||
use <top-or-bottom-clean-for-extended-side.scad>
|
use <front-or-back-clean-for-extended-side.scad>
|
||||||
|
|
||||||
module side_frame_piece_wall() {
|
module side_frame_piece_wall() {
|
||||||
// get a slice of the piece, to use it in extruding
|
// get a slice of the piece, to use it in extruding
|
||||||
|
Loading…
Reference in New Issue
Block a user