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:
Brian S. Stephan 2024-06-21 10:28:56 -05:00
parent de3914fa85
commit bc68f8b0dc
Signed by: bss
GPG Key ID: 3DE06D3180895FCB
19 changed files with 97 additions and 97 deletions

View File

@ -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

View File

@ -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?

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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/`

View File

@ -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

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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);
}

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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

View File

@ -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