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
|
||||
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
|
||||
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/`
|
||||
* `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
|
||||
lay them all face down on the print surface for better adhesion and surface patterns. There are also 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
|
||||
getting a box look, you get a longer slab with nice bevels. These look nice, but slightly fiddily to print
|
||||
(and of course need more material) --- watch your surface adhesion.
|
||||
modular pieces to print separately. Because they are separate pieces, you can mix and match colors, and you
|
||||
can lay them all face down on the print surface for better adhesion and surface patterns. There are also
|
||||
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. Rather than getting a
|
||||
box look, you get a longer slab with nice bevels. These look nice, but slightly fiddily to print (and of
|
||||
course need more material) --- watch your surface adhesion.
|
||||
* `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
|
||||
a two-panel-long stick.
|
||||
* `panels/`
|
||||
* `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.
|
||||
* `overhang/` --- overhang panels have their face extending over the edge of the frame, creating a bit of a sandwich
|
||||
look. This is mostly an aesthetic choice, but they sit higher in the frame as well, the main panel being
|
||||
* `overhang/` --- overhang panels have their plane extending over the edge of the frame, creating a bit of a
|
||||
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
|
||||
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
|
||||
variants depending on where you put things.
|
||||
* `misc/`
|
||||
* Pieces that I haven't organized better (yet) --- there are decorative plates for face buttons or top buttons to
|
||||
give more color variance and some layers to the arcade stick, some very simple dustwashers, plates that fit rocker
|
||||
* Pieces that I haven't organized better (yet) --- there are decorative plates for top buttons and similar to give
|
||||
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
|
||||
desired height. You don't *need* any of these, but you'll probably use a few.
|
||||
* `extras/`
|
||||
@ -80,11 +80,11 @@ What you'll need beyond these objects:
|
||||
* An arcade stick board (I recommend [TheTrain's RP2040 Advanced Breakout
|
||||
Board](https://github.com/OpenStickCommunity/Hardware/tree/main/RP2040%20Advanced%20Breakout%20Board))
|
||||
* 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)
|
||||
* 8 M4 countersunk hex bolts
|
||||
* Overhang plates 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
|
||||
* Overhang panels should use 12-16mm length bolts since they are taller
|
||||
* Inset panels should probably use 8-12mm bolts --- some standoffs aren't threaded the whole way, making 16mm
|
||||
too long to go flush
|
||||
* 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):
|
||||
@ -122,8 +122,8 @@ Filament masses from Bambu Studio estimates, using Bambu PLA Basic, 20% gyroid i
|
||||
stick anyway
|
||||
* You can also use a shorter length with longer bolts, or combine multiple standoffs, if either of those yield better
|
||||
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 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 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 panels to frames: **$0.72 USD** (you can get a pack of 100 on Amazon for $9, as of
|
||||
2023-09-12)
|
||||
|
||||
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
|
||||
|
||||
* 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 <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/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/sega-2p-plus-one-plus-control-panel-with-mount.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(frame_side_color) translate([-frame_x/2+4, 0, -2.5]) extra_extended_left_or_right_frame_piece();
|
||||
color(frame_side_color) translate([frame_x/2-4, 0, -2.5]) mirror([1, 0, 0]) extra_extended_left_or_right_frame_piece();
|
||||
color(frame_top_bottom_color) translate([-frame_x/2+4, 0, -2.5]) extended_top_or_bottom_frame_piece();
|
||||
color(frame_top_bottom_color) translate([frame_x/2-4, 0, -2.5]) extended_top_or_bottom_frame_piece();
|
||||
color(frame_top_bottom_color) translate([-frame_x/2+4, 0, -2.5]) rotate([180, 0, 0]) top_or_bottom_aux_and_neutrik_box_frame_piece_for_extended_side();
|
||||
color(frame_top_bottom_color) translate([frame_x/2-4, 0, -2.5]) rotate([180, 180, 0]) top_or_bottom_aux_and_neutrik_box_frame_piece_for_extended_side();
|
||||
color(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_front_or_back_frame_piece();
|
||||
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]) 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();
|
||||
|
||||
|
@ -7,8 +7,8 @@ include <parameters.scad>
|
||||
include <components.scad>
|
||||
use <frames/complete/left-frame.scad>
|
||||
use <frames/pieces/box/side.scad>
|
||||
use <frames/pieces/box/top-or-bottom.scad>
|
||||
use <frames/pieces/box/top-or-bottom-aux-and-neutrik.scad>
|
||||
use <frames/pieces/box/front-or-back.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/sega-2p-plus-one-plus-control-panel-with-mount.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(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]) top_or_bottom_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]) front_or_back_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();
|
||||
|
||||
|
@ -7,8 +7,8 @@ include <parameters.scad>
|
||||
include <components.scad>
|
||||
use <frames/pieces/interconnect.scad>
|
||||
use <frames/pieces/box/side.scad>
|
||||
use <frames/pieces/box/top-or-bottom.scad>
|
||||
use <frames/pieces/box/top-or-bottom-aux-and-neutrik.scad>
|
||||
use <frames/pieces/box/front-or-back.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/right-sega-2p-plus-one-plus-control-panel-with-mount.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]) 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") rotate([0, 180, 0]) 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]) front_or_back_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([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]) 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]) 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]) front_or_back_aux_and_neutrik_box_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") 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
|
||||
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
|
||||
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/`
|
||||
* `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
|
||||
lay them all face down on the print surface for better adhesion and surface patterns. There are also 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
|
||||
getting a box look, you get a longer slab with nice bevels. These look nice, but slightly fiddily to print
|
||||
(and of course need more material) --- watch your surface adhesion.
|
||||
modular pieces to print separately. Because they are separate pieces, you can mix and match colors, and you
|
||||
can lay them all face down on the print surface for better adhesion and surface patterns. There are also
|
||||
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. Rather than getting a
|
||||
box look, you get a longer slab with nice bevels. These look nice, but slightly fiddily to print (and of
|
||||
course need more material) --- watch your surface adhesion.
|
||||
* `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
|
||||
a two-panel-long stick.
|
||||
* `panels/`
|
||||
* `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.
|
||||
* `overhang/` --- overhang panels have their face extending over the edge of the frame, creating a bit of a sandwich
|
||||
look. This is mostly an aesthetic choice, but they sit higher in the frame as well, the main panel being
|
||||
* `overhang/` --- overhang panels have their plane extending over the edge of the frame, creating a bit of a
|
||||
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
|
||||
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
|
||||
variants depending on where you put things.
|
||||
* `misc/`
|
||||
* Pieces that I haven't organized better (yet) --- there are decorative plates for face buttons or top buttons to
|
||||
give more color variance and some layers to the arcade stick, some very simple dustwashers, plates that fit rocker
|
||||
* Pieces that I haven't organized better (yet) --- there are decorative plates for top buttons and similar to give
|
||||
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
|
||||
desired height. You don't *need* any of these, but you'll probably use a few.
|
||||
* `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
|
||||
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
|
||||
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.
|
||||
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
|
||||
|
@ -5,11 +5,11 @@
|
||||
|
||||
include <parameters.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() {
|
||||
top_or_bottom_box_frame_piece();
|
||||
front_or_back_box_frame_piece();
|
||||
|
||||
// aux button holes
|
||||
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 <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() {
|
||||
top_or_bottom_box_frame_piece();
|
||||
front_or_back_box_frame_piece();
|
||||
// minus the outer wall
|
||||
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)
|
||||
@ -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 <components.scad>
|
||||
use <top-or-bottom.scad>
|
||||
use <top-or-bottom-inner-wall.scad>
|
||||
use <front-or-back.scad>
|
||||
use <front-or-back-inner-wall.scad>
|
||||
|
||||
module backslash() {
|
||||
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();
|
||||
}
|
||||
|
||||
module backslashes_windowed_top_or_bottom_box_frame_piece() {
|
||||
module backslashes_windowed_front_or_back_box_frame_piece() {
|
||||
difference() {
|
||||
top_or_bottom_box_frame_piece();
|
||||
front_or_back_box_frame_piece();
|
||||
// subtract slashes from the frame wall
|
||||
backslashes();
|
||||
// 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 <components.scad>
|
||||
use <top-or-bottom.scad>
|
||||
use <top-or-bottom-inner-wall.scad>
|
||||
use <top-or-bottom-windowed-backslashes.scad>
|
||||
use <front-or-back.scad>
|
||||
use <front-or-back-inner-wall.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() {
|
||||
top_or_bottom_box_frame_piece();
|
||||
front_or_back_box_frame_piece();
|
||||
// subtract slashes from the frame wall
|
||||
mirror([0, 0, 1]) backslashes();
|
||||
// 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 <components.scad>
|
||||
use <top-or-bottom.scad>
|
||||
use <top-or-bottom-inner-wall.scad>
|
||||
use <front-or-back.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() {
|
||||
top_or_bottom_box_frame_piece();
|
||||
front_or_back_box_frame_piece();
|
||||
// subtract frame wall window
|
||||
translate([0, -frame_y/2, 0])
|
||||
cube([frame_x-frame_mount_column_width*3.5, (frame_wall+panel_support_width)*2,
|
||||
frame_z-panel_z*3], center=true);
|
||||
// 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>
|
||||
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;
|
||||
intersection() {
|
||||
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 <components.scad>
|
||||
use <top-or-bottom.scad>
|
||||
use <front-or-back.scad>
|
||||
|
||||
module side_box_frame_piece() {
|
||||
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
|
||||
frame();
|
||||
// minus the top and bottom
|
||||
top_or_bottom_box_frame_piece();
|
||||
rotate([180, 0, 0]) top_or_bottom_box_frame_piece();
|
||||
front_or_back_box_frame_piece();
|
||||
rotate([180, 0, 0]) front_or_back_box_frame_piece();
|
||||
// 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);
|
||||
}
|
||||
|
@ -5,11 +5,11 @@
|
||||
|
||||
include <parameters.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() {
|
||||
top_or_bottom_box_frame_piece_for_extended_side();
|
||||
front_or_back_box_frame_piece_for_extended_side();
|
||||
|
||||
// aux button holes
|
||||
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 <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() {
|
||||
top_or_bottom_box_frame_piece();
|
||||
front_or_back_box_frame_piece();
|
||||
// ...minus the frame wall and lip on the left
|
||||
translate([-frame_x/2+frame_wall/2, 0, 0]) cube([frame_wall, frame_y, frame_z], center=true);
|
||||
}
|
||||
}
|
||||
|
||||
top_or_bottom_box_frame_piece_for_extended_side();
|
||||
front_or_back_box_frame_piece_for_extended_side();
|
@ -5,11 +5,11 @@
|
||||
|
||||
include <parameters.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() {
|
||||
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
|
||||
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() {
|
||||
// get a slice of the piece (before the bevel), to use it in extruding
|
||||
projection(cut=true) rotate([-90, 0, 0]) translate([0, frame_y/2-(frame_wall-frame_bevel_height)*3/2, 0])
|
||||
clean_top_or_bottom();
|
||||
clean_front_or_back();
|
||||
}
|
||||
|
||||
module bottom_piece_extension() {
|
||||
@ -29,9 +29,9 @@ module bottom_piece_extension() {
|
||||
}
|
||||
}
|
||||
|
||||
module extended_top_or_bottom_frame_piece() {
|
||||
clean_top_or_bottom();
|
||||
module extended_front_or_back_frame_piece() {
|
||||
clean_front_or_back();
|
||||
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>
|
||||
use <frames/complete/left-frame.scad>
|
||||
use <frames/pieces/box/side.scad>
|
||||
use <top-or-bottom.scad>
|
||||
use <front-or-back.scad>
|
||||
|
||||
module side_and_bottom_frame_piece_wall() {
|
||||
// get a slice of the pieces, to use it in extruding
|
||||
|
@ -7,7 +7,7 @@ include <parameters.scad>
|
||||
include <components.scad>
|
||||
use <frames/complete/left-frame.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() {
|
||||
// get a slice of the piece, to use it in extruding
|
||||
|
Loading…
Reference in New Issue
Block a user