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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user