Compare commits
9 Commits
v4.7.0
...
d9d1183488
| Author | SHA1 | Date | |
|---|---|---|---|
|
d9d1183488
|
|||
|
fe8826d86f
|
|||
|
8b96f60f37
|
|||
|
5675921875
|
|||
|
d70ccf6491
|
|||
|
432e6e74d5
|
|||
|
1e64f59134
|
|||
|
a4f2650f00
|
|||
|
c9a74ebb18
|
14
CHANGELOG.md
14
CHANGELOG.md
@@ -2,6 +2,20 @@
|
|||||||
|
|
||||||
Included is a summary of changes to the project, by version. Details can be found in the commit history.
|
Included is a summary of changes to the project, by version. Details can be found in the commit history.
|
||||||
|
|
||||||
|
## v4.7.1
|
||||||
|
|
||||||
|
### Fixes
|
||||||
|
|
||||||
|
* Hull-based decorative plates were accidentally grown in v4.7.0 due to ye olde refactoring. They are back to the
|
||||||
|
dimensions they should be (give or take) because there was an underlying bug in how they were geometried pre-v4.7.1.
|
||||||
|
* The docs/ directory in the build now includes the images referred to, especially in the README.
|
||||||
|
|
||||||
|
### Miscellaneous
|
||||||
|
|
||||||
|
* Some README tweaks, including another demonstrative photo.
|
||||||
|
* The build creates both a ZIP of everything, including docs, for humans to download, and also a ZIP of *just* the STLs,
|
||||||
|
to ease uploading to Printables.
|
||||||
|
|
||||||
## v4.7.0
|
## v4.7.0
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|||||||
6
Makefile
6
Makefile
@@ -3,11 +3,11 @@ all:
|
|||||||
mkdir -p ./build/docs
|
mkdir -p ./build/docs
|
||||||
cp ./README.md ./build/README.md
|
cp ./README.md ./build/README.md
|
||||||
cp ./docs/README-objects.md ./build/README-objects.md
|
cp ./docs/README-objects.md ./build/README-objects.md
|
||||||
cp ./docs/assembly-and-tips.md ./build/docs/assembly-and-tips.md
|
cp ./docs/* ./build/docs/
|
||||||
cp ./docs/printing-and-materials.md ./build/docs/printing-and-materials.md
|
|
||||||
cp ./LICENSE ./build/LICENSE
|
cp ./LICENSE ./build/LICENSE
|
||||||
cp ./CHANGELOG.md ./build/CHANGELOG.md
|
cp ./CHANGELOG.md ./build/CHANGELOG.md
|
||||||
pushd ./build; zip ./buildable-stick-system-`git describe --dirty`-stls.zip . -r; popd
|
pushd ./build; zip ./buildable-stick-system-`git describe --dirty`-stls-and-docs.zip . -r; popd
|
||||||
|
pushd ./build; zip ./buildable-stick-system-`git describe --dirty`-stls.zip extras frames misc panels -r; popd
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf ./build
|
rm -rf ./build
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# The Buildable Stick System
|
# The Buildable Stick System
|
||||||
|
|
||||||
Files for 3D printing an arcade stick.
|
Files for 3D printing and building an arcade stick enclosure.
|
||||||
|
|
||||||
Have you ever wanted to conjure your own arcade stick out of the ether (well, plastic), or to prototype a new layout or
|
Have you ever wanted to conjure your own arcade stick out of the ether (well, plastic), or to prototype a new layout or
|
||||||
design before sending it to a custom builder? Do you just love having your space filled with arcade stick enclosures,
|
design before sending it to a custom builder? Do you just love having your space filled with arcade stick enclosures,
|
||||||
@@ -195,3 +195,9 @@ like the below should suffice in either electronic or printed form:
|
|||||||
|
|
||||||
> This arcade stick is part of the Buildable Stick System, version X.Y.Z; the source code to this program is available
|
> This arcade stick is part of the Buildable Stick System, version X.Y.Z; the source code to this program is available
|
||||||
> under the terms of the GNU General Public License, at [LINK].
|
> under the terms of the GNU General Public License, at [LINK].
|
||||||
|
|
||||||
|
## Gallery
|
||||||
|
|
||||||
|
More photos.
|
||||||
|
|
||||||
|

|
||||||
|
|||||||
@@ -31,7 +31,6 @@ color(frame_top_bottom_color) translate([frame_x/2-4, 0, -2.5]) rotate([180, 180
|
|||||||
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();
|
||||||
|
|
||||||
/* color(top_deco_color) translate([0, 0, 3+frame_z/2-4]) dir_arc_plus_w_30mm_and_sega_2p_nine_decorative_plate_of_plates(); */
|
|
||||||
color(top_deco_color) translate([0, 0, 3+frame_z/2-panel_z]) dir_arc_plus_w_30mm_and_sega_2p_nine_decorative_plate();
|
color(top_deco_color) translate([0, 0, 3+frame_z/2-panel_z]) dir_arc_plus_w_30mm_and_sega_2p_nine_decorative_plate();
|
||||||
color(top_deco_color) translate([-170, 20, 3+frame_z/2-panel_z]) lsx_nobi_dustwasher();
|
color(top_deco_color) translate([-170, 20, 3+frame_z/2-panel_z]) lsx_nobi_dustwasher();
|
||||||
color(top_deco_color) translate([panel_x-24, 30, 3+frame_z/2-panel_z]) button_24mm_decorative_plate();
|
color(top_deco_color) translate([panel_x-24, 30, 3+frame_z/2-panel_z]) button_24mm_decorative_plate();
|
||||||
|
|||||||
@@ -14,20 +14,21 @@ use <misc/decorative-plate-24mm-button.scad>
|
|||||||
use <misc/decorative-plate-dir_arc-plus-w-30mm-and-sega-2p-nine.scad>
|
use <misc/decorative-plate-dir_arc-plus-w-30mm-and-sega-2p-nine.scad>
|
||||||
use <misc/dustwasher-lsx-nobi.scad>
|
use <misc/dustwasher-lsx-nobi.scad>
|
||||||
|
|
||||||
top_panel_color = "#5B6579";
|
top_panel_color = "purple";
|
||||||
bottom_panel_color = "#8E9089";
|
bottom_panel_color = "black";
|
||||||
frame_top_bottom_color = "#8E9089";
|
frame_front_color = "black";
|
||||||
frame_side_color = "#8E9089";
|
frame_back_color = "black";
|
||||||
top_deco_color = "#8E9089";
|
frame_side_color = "red";
|
||||||
|
top_deco_color = "white";
|
||||||
|
|
||||||
color(top_panel_color) translate([-panel_x/2, 0, frame_z/2-panel_z+0.01]) lever_and_dir_arc_w_30mm_panel();
|
color(top_panel_color) translate([-panel_x/2, 0, frame_z/2-panel_z+0.01]) lever_and_dir_arc_w_30mm_panel();
|
||||||
color(top_panel_color) translate([panel_x/2, 0, frame_z/2-panel_z+0.01]) sega_2p_nine_plus_control_panel_with_mount();
|
color(top_panel_color) translate([panel_x/2, 0, frame_z/2-panel_z+0.01]) sega_2p_nine_plus_control_panel_with_mount();
|
||||||
color(frame_side_color) translate([-frame_x/2+4, 0, -2.5]) side_trapezoid_extended_to_front_frame_piece();
|
color(frame_side_color) translate([-frame_x/2+4, 0, -2.5]) side_trapezoid_extended_to_front_frame_piece();
|
||||||
color(frame_side_color) translate([frame_x/2-4, 0, -2.5]) mirror([1, 0, 0]) side_trapezoid_extended_to_front_frame_piece();
|
color(frame_side_color) translate([frame_x/2-4, 0, -2.5]) mirror([1, 0, 0]) side_trapezoid_extended_to_front_frame_piece();
|
||||||
color(frame_top_bottom_color) translate([-frame_x/2+4, 0, -2.5]) front_or_back_trapezoid_frame_piece();
|
color(frame_front_color) translate([-frame_x/2+4, 0, -2.5]) front_or_back_trapezoid_frame_piece();
|
||||||
color(frame_top_bottom_color) translate([frame_x/2-4, 0, -2.5]) front_or_back_trapezoid_frame_piece();
|
color(frame_front_color) translate([frame_x/2-4, 0, -2.5]) front_or_back_trapezoid_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_frame_piece();
|
color(frame_back_color) translate([-frame_x/2+4, 0, -2.5]) rotate([180, 0, 0]) front_or_back_aux_and_neutrik_frame_piece();
|
||||||
color(frame_top_bottom_color) translate([frame_x/2-4, 0, -2.5]) rotate([180, 180, 0]) front_or_back_aux_and_neutrik_frame_piece();
|
color(frame_back_color) translate([frame_x/2-4, 0, -2.5]) rotate([180, 180, 0]) front_or_back_aux_and_neutrik_frame_piece();
|
||||||
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();
|
||||||
|
|
||||||
|
|||||||
BIN
docs/finished-v4.7-x3.jpg
Normal file
BIN
docs/finished-v4.7-x3.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 416 KiB |
@@ -107,16 +107,24 @@ module m2_mount_post() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module oled_ssd1306_mount() {
|
module adafruit_pid_326_oled_ssd1306_mount_post() {
|
||||||
translate([11.5, 12, 0]) m2_mount_post();
|
cylinder(r=2.25/2, h=8, $fn=50, center=true);
|
||||||
translate([11.5, -12, 0]) m2_mount_post();
|
|
||||||
translate([-11.5, 12, 0]) m2_mount_post();
|
|
||||||
translate([-11.5, -12, 0]) m2_mount_post();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module oled_ssd1306_mount_cutout() {
|
// aligned to the cutout below
|
||||||
translate([0, 1.9, 0]) cube([25, 14, 5], center=true);
|
module adafruit_pid_326_oled_ssd1306_mount() {
|
||||||
translate([0, 0, -1.0]) cube([35, 35, 4], center=true);
|
translate([12, 13.25, -2]) adafruit_pid_326_oled_ssd1306_mount_post();
|
||||||
|
translate([12, -13.25, -2]) adafruit_pid_326_oled_ssd1306_mount_post();
|
||||||
|
translate([-12, 13.25, -2]) adafruit_pid_326_oled_ssd1306_mount_post();
|
||||||
|
translate([-12, -13.25, -2]) adafruit_pid_326_oled_ssd1306_mount_post();
|
||||||
|
}
|
||||||
|
|
||||||
|
module adafruit_pid_326_oled_ssd1306_mount_cutout() {
|
||||||
|
translate([0, 3.5, 0]) cube([ssd1306_x, ssd1306_y, panel_z+0.1], center=true);
|
||||||
|
translate([0, 0, -ssd1306_z/2]) cube([adafruit_pid_326_oled_ssd1306_cutout_x,
|
||||||
|
adafruit_pid_326_oled_ssd1306_cutout_y, panel_z-ssd1306_z+0.1], center=true);
|
||||||
|
translate([0, 0, -ssd1306_z/2-2]) cube([adafruit_pid_326_oled_ssd1306_cutout_x*3/2,
|
||||||
|
adafruit_pid_326_oled_ssd1306_cutout_y/2, panel_z/2+0.1], center=true);
|
||||||
}
|
}
|
||||||
|
|
||||||
module m3_mount_post() {
|
module m3_mount_post() {
|
||||||
|
|||||||
@@ -10,11 +10,13 @@ include <components.scad>
|
|||||||
|
|
||||||
module aux_control_three_button_tight_cluster_decorative_plate() {
|
module aux_control_three_button_tight_cluster_decorative_plate() {
|
||||||
difference() {
|
difference() {
|
||||||
// get a 2mm slice of the bigger button cylinders
|
hull() difference() {
|
||||||
translate([0, 0, -25]) hull() aux_control_three_button_tight_cluster();
|
// get a 2mm slice of the decorative button cylinders
|
||||||
// keep a thin slice
|
translate([0, 0, -50]) aux_control_three_button_tight_cluster();
|
||||||
translate([0, 0, -100]) cube([500, 500, 198], center=true);
|
// keep a thin slice
|
||||||
translate([0, 0, 100]) cube([500, 500, 198], center=true);
|
translate([0, 0, -100]) cube([500, 500, 198], center=true);
|
||||||
|
translate([0, 0, 100]) cube([500, 500, 198], center=true);
|
||||||
|
}
|
||||||
// cut out the normal holes
|
// cut out the normal holes
|
||||||
translate([0, 0, -1]) aux_control_three_button_tight_cluster();
|
translate([0, 0, -1]) aux_control_three_button_tight_cluster();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ include <components.scad>
|
|||||||
|
|
||||||
module button_24mm_decorative_plate() {
|
module button_24mm_decorative_plate() {
|
||||||
difference() {
|
difference() {
|
||||||
// get a 2mm slice of the bigger button cylinders
|
// get a 2mm slice of the decorative button cylinders
|
||||||
translate([0, 0, -55]) button_24mm_hole();
|
translate([0, 0, -50]) button_24mm_hole();
|
||||||
translate([0, 0, -100]) cube([500, 500, 198], center=true);
|
translate([0, 0, -100]) cube([500, 500, 198], center=true);
|
||||||
translate([0, 0, 100]) cube([500, 500, 198], center=true);
|
translate([0, 0, 100]) cube([500, 500, 198], center=true);
|
||||||
// cut out the normal holes
|
// cut out the normal holes
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ include <components.scad>
|
|||||||
|
|
||||||
module dir_arc_plus_w_24mm_8_button_decorative_plate() {
|
module dir_arc_plus_w_24mm_8_button_decorative_plate() {
|
||||||
difference() {
|
difference() {
|
||||||
// get a 2mm slice of the bigger button cylinders
|
// get a 2mm slice of the decorative button cylinders
|
||||||
translate([0, 0, -55]) dir_arc_plus_w_24mm_8_button();
|
translate([0, 0, -50]) dir_arc_plus_w_24mm_8_button();
|
||||||
translate([0, 0, -100]) cube([500, 500, 198], center=true);
|
translate([0, 0, -100]) cube([500, 500, 198], center=true);
|
||||||
translate([0, 0, 100]) cube([500, 500, 198], center=true);
|
translate([0, 0, 100]) cube([500, 500, 198], center=true);
|
||||||
// cut out the normal holes
|
// cut out the normal holes
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ module dir_arc_plus_w_30mm_and_sega_2p_nine_decorative_superplate() {
|
|||||||
difference() {
|
difference() {
|
||||||
union() {
|
union() {
|
||||||
hull() difference() {
|
hull() difference() {
|
||||||
// get a 2mm slice of the bigger button cylinders
|
// get a 2mm slice of the decorative button cylinders
|
||||||
union() {
|
union() {
|
||||||
translate([-panel_x/2, 0, -50]) dir_arc_w_30mm();
|
translate([-panel_x/2, 0, -50]) dir_arc_w_30mm();
|
||||||
translate([panel_x/2, 0, -50]) sega_2p_nine();
|
translate([panel_x/2, 0, -50]) sega_2p_nine();
|
||||||
|
|||||||
@@ -8,10 +8,10 @@ include <components.scad>
|
|||||||
|
|
||||||
module dir_arc_plus_w_30mm_and_sega_2p_nine_decorative_plate() {
|
module dir_arc_plus_w_30mm_and_sega_2p_nine_decorative_plate() {
|
||||||
difference() {
|
difference() {
|
||||||
// get a 2mm slice of the bigger button cylinders
|
// get a 2mm slice of the jumbo decorative button cylinders
|
||||||
union() {
|
union() {
|
||||||
translate([-panel_x/2, 0, -65]) dir_arc_w_30mm();
|
translate([-panel_x/2, 0, -70]) dir_arc_w_30mm();
|
||||||
translate([panel_x/2, 0, -65]) sega_2p_nine();
|
translate([panel_x/2, 0, -70]) sega_2p_nine();
|
||||||
}
|
}
|
||||||
translate([0, 0, -100]) cube([500, 500, 198], center=true);
|
translate([0, 0, -100]) cube([500, 500, 198], center=true);
|
||||||
translate([0, 0, 100]) cube([500, 500, 198], center=true);
|
translate([0, 0, 100]) cube([500, 500, 198], center=true);
|
||||||
|
|||||||
@@ -10,10 +10,12 @@ include <components.scad>
|
|||||||
|
|
||||||
module dir_arc_plus_w_30mm_plate_decorative_plate() {
|
module dir_arc_plus_w_30mm_plate_decorative_plate() {
|
||||||
difference() {
|
difference() {
|
||||||
// get a 2mm slice of the bigger button cylinders
|
hull() difference() {
|
||||||
translate([-panel_x/2, 0, -25]) hull() dir_arc_w_30mm();
|
// get a 2mm slice of the decorative button cylinders
|
||||||
translate([0, 0, -100]) cube([500, 500, 198], center=true);
|
translate([-panel_x/2, 0, -50]) dir_arc_w_30mm();
|
||||||
translate([0, 0, 100]) cube([500, 500, 198], center=true);
|
translate([0, 0, -100]) cube([500, 500, 198], center=true);
|
||||||
|
translate([0, 0, 100]) cube([500, 500, 198], center=true);
|
||||||
|
}
|
||||||
// cut out the normal holes
|
// cut out the normal holes
|
||||||
translate([-panel_x/2, 0, -1]) dir_arc_w_30mm();
|
translate([-panel_x/2, 0, -1]) dir_arc_w_30mm();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ include <components.scad>
|
|||||||
|
|
||||||
module dir_arc_plus_w_30mm_decorative_plate() {
|
module dir_arc_plus_w_30mm_decorative_plate() {
|
||||||
difference() {
|
difference() {
|
||||||
// get a 2mm slice of the bigger button cylinders
|
// get a 2mm slice of the decorative button cylinders
|
||||||
translate([0, 0, -55]) dir_arc_w_30mm();
|
translate([0, 0, -50]) dir_arc_w_30mm();
|
||||||
translate([0, 0, -100]) cube([500, 500, 198], center=true);
|
translate([0, 0, -100]) cube([500, 500, 198], center=true);
|
||||||
translate([0, 0, 100]) cube([500, 500, 198], center=true);
|
translate([0, 0, 100]) cube([500, 500, 198], center=true);
|
||||||
// cut out the normal holes
|
// cut out the normal holes
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ include <components.scad>
|
|||||||
|
|
||||||
module sega_2p_6_button_decorative_plate() {
|
module sega_2p_6_button_decorative_plate() {
|
||||||
difference() {
|
difference() {
|
||||||
// get a 2mm slice of the bigger button cylinders
|
// get a 2mm slice of the decorative button cylinders
|
||||||
translate([0, 0, -55]) sega_2p_6_button();
|
translate([0, 0, -50]) sega_2p_6_button();
|
||||||
translate([0, 0, -100]) cube([500, 500, 198], center=true);
|
translate([0, 0, -100]) cube([500, 500, 198], center=true);
|
||||||
translate([0, 0, 100]) cube([500, 500, 198], center=true);
|
translate([0, 0, 100]) cube([500, 500, 198], center=true);
|
||||||
// cut out the normal holes
|
// cut out the normal holes
|
||||||
|
|||||||
@@ -10,10 +10,12 @@ include <components.scad>
|
|||||||
|
|
||||||
module sega_2p_eleven_plate_decorative_plate() {
|
module sega_2p_eleven_plate_decorative_plate() {
|
||||||
difference() {
|
difference() {
|
||||||
// get a 2mm slice of the bigger button cylinders
|
hull() difference() {
|
||||||
translate([panel_x/2, 0, -25]) hull() sega_2p_eleven();
|
// get a 2mm slice of the decorative button cylinders
|
||||||
translate([0, 0, -100]) cube([500, 500, 198], center=true);
|
translate([panel_x/2, 0, -50]) sega_2p_eleven();
|
||||||
translate([0, 0, 100]) cube([500, 500, 198], center=true);
|
translate([0, 0, -100]) cube([500, 500, 198], center=true);
|
||||||
|
translate([0, 0, 100]) cube([500, 500, 198], center=true);
|
||||||
|
}
|
||||||
// cut out the normal holes
|
// cut out the normal holes
|
||||||
translate([panel_x/2, 0, -1]) sega_2p_eleven();
|
translate([panel_x/2, 0, -1]) sega_2p_eleven();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,17 +8,17 @@ include <parameters.scad>
|
|||||||
decorative_radius_scale = 1.5;
|
decorative_radius_scale = 1.5;
|
||||||
include <components.scad>
|
include <components.scad>
|
||||||
|
|
||||||
module sega_2p_nine_decorative_plate_of_plates() {
|
module sega_2p_nine_decorative_plate() {
|
||||||
difference() {
|
difference() {
|
||||||
// get a 2mm slice of the bigger button cylinders
|
hull() difference() {
|
||||||
union() {
|
// get a 2mm slice of the decorative button cylinders
|
||||||
translate([panel_x/2, 0, -25]) hull() sega_2p_nine();
|
translate([panel_x/2, 0, -50]) sega_2p_nine();
|
||||||
|
translate([0, 0, -100]) cube([500, 500, 198], center=true);
|
||||||
|
translate([0, 0, 100]) cube([500, 500, 198], center=true);
|
||||||
}
|
}
|
||||||
translate([0, 0, -100]) cube([500, 500, 198], center=true);
|
|
||||||
translate([0, 0, 100]) cube([500, 500, 198], center=true);
|
|
||||||
// cut out the normal holes
|
// cut out the normal holes
|
||||||
translate([panel_x/2, 0, -1]) sega_2p_nine();
|
translate([panel_x/2, 0, -1]) sega_2p_nine();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sega_2p_nine_decorative_plate_of_plates();
|
sega_2p_nine_decorative_plate();
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ include <components.scad>
|
|||||||
|
|
||||||
module sega_2p_nine_decorative_plate() {
|
module sega_2p_nine_decorative_plate() {
|
||||||
difference() {
|
difference() {
|
||||||
// get a 2mm slice of the bigger button cylinders
|
// get a 2mm slice of the decorative button cylinders
|
||||||
translate([0, 0, -55]) sega_2p_nine();
|
translate([0, 0, -50]) sega_2p_nine();
|
||||||
translate([0, 0, -100]) cube([500, 500, 198], center=true);
|
translate([0, 0, -100]) cube([500, 500, 198], center=true);
|
||||||
translate([0, 0, 100]) cube([500, 500, 198], center=true);
|
translate([0, 0, 100]) cube([500, 500, 198], center=true);
|
||||||
// cut out the normal holes
|
// cut out the normal holes
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ include <components.scad>
|
|||||||
|
|
||||||
module sega_2p_decorative_plate() {
|
module sega_2p_decorative_plate() {
|
||||||
difference() {
|
difference() {
|
||||||
// get a 2mm slice of the bigger button cylinders
|
// get a 2mm slice of the decorative button cylinders
|
||||||
translate([0, 0, -55]) sega_2p();
|
translate([0, 0, -50]) sega_2p();
|
||||||
translate([0, 0, -100]) cube([500, 500, 198], center=true);
|
translate([0, 0, -100]) cube([500, 500, 198], center=true);
|
||||||
translate([0, 0, 100]) cube([500, 500, 198], center=true);
|
translate([0, 0, 100]) cube([500, 500, 198], center=true);
|
||||||
// cut out the normal holes
|
// cut out the normal holes
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
include <parameters.scad>
|
||||||
|
include <components.scad>
|
||||||
|
use <lever-and-dir_arc-plus-w-30mm-panel.scad>
|
||||||
|
|
||||||
|
module lever_and_dir_arc_w_30mm_panel_with_oled() {
|
||||||
|
/* // TEMP FOR PRINTING JUST THE SECTION AS A TEST */
|
||||||
|
/* intersection() { */
|
||||||
|
/* union() { */
|
||||||
|
/* difference() { */
|
||||||
|
/* lever_and_dir_arc_w_30mm_panel(); */
|
||||||
|
/* translate([0, -(panel_y/2 - 30), 0]) adafruit_pid_326_oled_ssd1306_mount_cutout(); */
|
||||||
|
/* } */
|
||||||
|
/* translate([0, -(panel_y/2 - 30), 0]) adafruit_pid_326_oled_ssd1306_mount(); */
|
||||||
|
/* } */
|
||||||
|
/* translate([0, -(panel_y/2-30), 0]) cube([50, 40, 10], center=true); */
|
||||||
|
/* } */
|
||||||
|
difference() {
|
||||||
|
lever_and_dir_arc_w_30mm_panel();
|
||||||
|
translate([0, -(panel_y/2 - 22), 0]) adafruit_pid_326_oled_ssd1306_mount_cutout();
|
||||||
|
}
|
||||||
|
translate([0, -(panel_y/2 - 22), 0]) adafruit_pid_326_oled_ssd1306_mount();
|
||||||
|
}
|
||||||
|
|
||||||
|
lever_and_dir_arc_w_30mm_panel_with_oled();
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
/*
|
|
||||||
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
|
||||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
*/
|
|
||||||
|
|
||||||
include <parameters.scad>
|
|
||||||
include <components.scad>
|
|
||||||
use <right-sega-2p-nine-plus-control-panel-with-mount.scad>
|
|
||||||
|
|
||||||
module sega_2p_nine_plus_control_right_overhang_panel_with_mount_with_oled() {
|
|
||||||
difference() {
|
|
||||||
sega_2p_nine_plus_control_right_overhang_panel_with_mount();
|
|
||||||
translate([75, 77.5, 0]) oled_ssd1306_mount_cutout();
|
|
||||||
}
|
|
||||||
translate([75, 77.5, 0.5]) oled_ssd1306_mount();
|
|
||||||
}
|
|
||||||
|
|
||||||
sega_2p_nine_plus_control_right_overhang_panel_with_mount_with_oled();
|
|
||||||
@@ -134,6 +134,13 @@ stand_x = 5;
|
|||||||
stand_y = frame_z;
|
stand_y = frame_z;
|
||||||
stand_z = 15;
|
stand_z = 15;
|
||||||
|
|
||||||
|
// oled cutout stuff
|
||||||
|
ssd1306_x = 23;
|
||||||
|
ssd1306_y = 12;
|
||||||
|
ssd1306_z = 1;
|
||||||
|
adafruit_pid_326_oled_ssd1306_cutout_x = 30;
|
||||||
|
adafruit_pid_326_oled_ssd1306_cutout_y = 32;
|
||||||
|
|
||||||
|
|
||||||
// LAYOUTS
|
// LAYOUTS
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user