Compare commits
No commits in common. "9881f6391e9cd52560703c9f0408e6abd5a75fd7" and "16d3feadc18e5c7fbe6d755108e6933adf7731a3" have entirely different histories.
9881f6391e
...
16d3feadc1
@ -80,20 +80,24 @@ module top_plate_holes() {
|
||||
translate([-77.5, -90, 2]) m4_hole_countersink();
|
||||
}
|
||||
|
||||
// button hole, with extra wide bits for various uses (cutting out space
|
||||
// for snap-ins, etc.
|
||||
module button_24mm_hole() {
|
||||
cylinder(r=small_button_radius, h=100, $fn=50, center=true);
|
||||
}
|
||||
|
||||
module button_24mm_hole_for_snapins() {
|
||||
button_24mm_hole();
|
||||
// carve out space for snap-ins, leave 3mm
|
||||
// slagcoin has screw-in nut diameter at 29.5mm, so radius+6 to leave some space
|
||||
// translation is to leave 3mm thickness in the plate without recentering anything
|
||||
translate([0, 0, -25]) cylinder(r=small_button_radius+6, h=49, $fn=50, center=true);
|
||||
}
|
||||
|
||||
// button hole, with extra wide bits for various uses (cutting out space
|
||||
// for snap-ins, etc.
|
||||
module button_30mm_hole() {
|
||||
cylinder(r=big_button_radius, h=100, $fn=50, center=true);
|
||||
}
|
||||
|
||||
module button_30mm_hole_for_snapins() {
|
||||
button_30mm_hole();
|
||||
// carve out space for snap-ins, leave 3mm
|
||||
// slagcoin has screw-in nut diameter at 36mm, so radius+6 to leave some space
|
||||
// translation is to leave 3mm thickness in the plate without recentering anything
|
||||
@ -279,31 +283,31 @@ module frame() {
|
||||
// Directional Arc (both hands)
|
||||
|
||||
module dir_arc_24mm_6_button() {
|
||||
button_24mm_hole();
|
||||
translate([29.5, 0, 0]) button_24mm_hole();
|
||||
translate([29.5+26.3, -12.9, 0]) button_24mm_hole();
|
||||
button_24mm_hole_for_snapins();
|
||||
translate([29.5, 0, 0]) button_24mm_hole_for_snapins();
|
||||
translate([29.5+26.3, -12.9, 0]) button_24mm_hole_for_snapins();
|
||||
|
||||
translate([29.5+26.3+15.5+9.7+2.6, 0, 0]) button_24mm_hole();
|
||||
translate([29.5+26.3+15.5+9.7+2.6+26.9, 10.9, 0]) button_24mm_hole();
|
||||
translate([29.5+26.3+15.5+9.7+2.6+26.9+29.6, 10.9, 0]) button_24mm_hole();
|
||||
translate([29.5+26.3+15.5+9.7, -29.4, 0]) button_24mm_hole();
|
||||
translate([29.5+26.3+15.5+9.7+2.6+26.9-1.7, 10.9-30.1, 0]) button_24mm_hole();
|
||||
translate([29.5+26.3+15.5+9.7+2.6+26.9+29.6, 10.9-30.1, 0]) button_24mm_hole();
|
||||
translate([29.5+26.3+15.5+9.7+2.6, 0, 0]) button_24mm_hole_for_snapins();
|
||||
translate([29.5+26.3+15.5+9.7+2.6+26.9, 10.9, 0]) button_24mm_hole_for_snapins();
|
||||
translate([29.5+26.3+15.5+9.7+2.6+26.9+29.6, 10.9, 0]) button_24mm_hole_for_snapins();
|
||||
translate([29.5+26.3+15.5+9.7, -29.4, 0]) button_24mm_hole_for_snapins();
|
||||
translate([29.5+26.3+15.5+9.7+2.6+26.9-1.7, 10.9-30.1, 0]) button_24mm_hole_for_snapins();
|
||||
translate([29.5+26.3+15.5+9.7+2.6+26.9+29.6, 10.9-30.1, 0]) button_24mm_hole_for_snapins();
|
||||
|
||||
translate([29.5+26.3+15.5, -65.2, 0]) button_30mm_hole();
|
||||
translate([29.5+26.3+15.5, -65.2, 0]) button_30mm_hole_for_snapins();
|
||||
}
|
||||
|
||||
// 6 button plus the normal fourth column for 8 button actually on a third row
|
||||
module dir_arc_24mm_8_button_compressed() {
|
||||
dir_arc_24mm_6_button();
|
||||
translate([29.5+26.3+15.5+9.7+2.6+2.6, 29.4, 0]) button_24mm_hole();
|
||||
translate([29.5+26.3+15.5+9.7+2.6+26.9+2.6, 40.3, 0]) button_24mm_hole();
|
||||
translate([29.5+26.3+15.5+9.7+2.6+2.6, 29.4, 0]) button_24mm_hole_for_snapins();
|
||||
translate([29.5+26.3+15.5+9.7+2.6+26.9+2.6, 40.3, 0]) button_24mm_hole_for_snapins();
|
||||
}
|
||||
|
||||
// Directional Arc (left hand)
|
||||
|
||||
module dir_arc_30mm_button_l() {
|
||||
translate([-top_plate_x/2, -top_plate_y/2, 0]) translate([73, 132, 0]) button_30mm_hole();
|
||||
translate([68, 132, 0]) button_30mm_hole_for_snapins();
|
||||
}
|
||||
|
||||
module dir_arc_w_30mm() {
|
||||
@ -312,7 +316,7 @@ module dir_arc_w_30mm() {
|
||||
translate([35+33.5, -12.9, 0]) dir_arc_30mm_button_l();
|
||||
translate([35+7, 34.5, 0]) dir_arc_30mm_button_l();
|
||||
// just my guesstimate on this one, but note that this is the same position as sega 2p (just mirrored)
|
||||
translate([-top_plate_x/2, -top_plate_y/2, 0]) translate([top_plate_x-28.06, 145-19-9-11-19-9-11, 0]) button_30mm_hole();
|
||||
translate([top_plate_x-33.06, 145-19-9-11-19-9-11, 0]) button_30mm_hole_for_snapins();
|
||||
}
|
||||
|
||||
module dir_arc_w_30mm_plus_one() {
|
||||
@ -323,7 +327,7 @@ module dir_arc_w_30mm_plus_one() {
|
||||
// Namco Noir (right hand)
|
||||
|
||||
module noir_button_p1() {
|
||||
translate([-top_plate_x/2, -top_plate_y/2, 0]) translate([35, 145, 0]) button_30mm_hole();
|
||||
translate([40, 145, 0]) button_30mm_hole_for_snapins();
|
||||
}
|
||||
|
||||
module noir_plus_one() {
|
||||
@ -344,7 +348,7 @@ module noir_plus_one() {
|
||||
// Sega Astro City 2P (right hand)
|
||||
|
||||
module sega_2p_p1() {
|
||||
translate([-top_plate_x/2, -top_plate_y/2, 0]) translate([28.06, 145, 0]) button_30mm_hole();
|
||||
translate([33.06, 145, 0]) button_30mm_hole_for_snapins();
|
||||
}
|
||||
|
||||
module sega_2p_plus_one() {
|
||||
|
@ -36,9 +36,9 @@ module left_frame() {
|
||||
translate([0, 0, -top_plate_z/2]) frame_cable_routing_hole();
|
||||
|
||||
// aux button holes
|
||||
translate([0, 101.5, 0]) rotate([270, 0, 0]) button_24mm_hole();
|
||||
translate([-40, 101.5, 0]) rotate([270, 0, 0]) button_24mm_hole();
|
||||
translate([40, 101.5, 0]) rotate([270, 0, 0]) button_24mm_hole();
|
||||
translate([0, 100, 0]) rotate([90, 0, 0]) button_24mm_hole();
|
||||
translate([-40, 100, 0]) rotate([90, 0, 0]) button_24mm_hole();
|
||||
translate([40, 100, 0]) rotate([90, 0, 0]) button_24mm_hole();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -29,17 +29,17 @@ module solo_frame() {
|
||||
|
||||
// aux button holes
|
||||
translate([-frame_y/2+2.5, 0, 0]) rotate([0, 0, 270])
|
||||
translate([0, 0, 0]) rotate([90, 0, 0]) button_24mm_hole();
|
||||
translate([0, 0, 0]) rotate([90, 0, 0]) button_24mm_hole_for_snapins();
|
||||
translate([-frame_y/2+2.5, 0, 0]) rotate([0, 0, 270])
|
||||
translate([-40, 0, 0]) rotate([90, 0, 0]) button_24mm_hole();
|
||||
translate([-40, 0, 0]) rotate([90, 0, 0]) button_24mm_hole_for_snapins();
|
||||
translate([-frame_y/2+2.5, 0, 0]) rotate([0, 0, 270])
|
||||
translate([40, 0, 0]) rotate([90, 0, 0]) button_24mm_hole();
|
||||
translate([40, 0, 0]) rotate([90, 0, 0]) button_24mm_hole_for_snapins();
|
||||
translate([frame_y/2-2.5, 0, 0]) rotate([0, 0, 90])
|
||||
translate([0, 0, 0]) rotate([90, 0, 0]) button_24mm_hole();
|
||||
translate([0, 0, 0]) rotate([90, 0, 0]) button_24mm_hole_for_snapins();
|
||||
translate([frame_y/2-2.5, 0, 0]) rotate([0, 0, 90])
|
||||
translate([-40, 0, 0]) rotate([90, 0, 0]) button_24mm_hole();
|
||||
translate([-40, 0, 0]) rotate([90, 0, 0]) button_24mm_hole_for_snapins();
|
||||
translate([frame_y/2-2.5, 0, 0]) rotate([0, 0, 90])
|
||||
translate([40, 0, 0]) rotate([90, 0, 0]) button_24mm_hole();
|
||||
translate([40, 0, 0]) rotate([90, 0, 0]) button_24mm_hole_for_snapins();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -21,7 +21,7 @@ use <top-panel-dir_arc-plus-w-30mm-plus-one.scad>
|
||||
|
||||
module dir_arc_w_30mm_plus_one_panel_with_mount() {
|
||||
dir_arc_w_30mm_plus_one_panel();
|
||||
translate([-15, -40, -(top_plate_z/2) - 3]) rotate([0, 0, -15]) pcb_mount();
|
||||
translate([65, 55, -(top_plate_z/2) - 3]) pcb_mount();
|
||||
}
|
||||
|
||||
dir_arc_w_30mm_plus_one_panel_with_mount();
|
||||
|
@ -20,7 +20,7 @@ include <components.scad>
|
||||
|
||||
module dir_arc_w_30mm_plus_one_panel() {
|
||||
difference() {
|
||||
topplate();
|
||||
translate([top_plate_x/2, top_plate_y/2, 0]) topplate();
|
||||
dir_arc_w_30mm_plus_one();
|
||||
}
|
||||
}
|
||||
|
@ -19,17 +19,22 @@
|
||||
include <components.scad>
|
||||
|
||||
// combine the lever mount and generic plate, with mounting holes
|
||||
module top_panel_left_lever() {
|
||||
module left_lever_panel() {
|
||||
difference() {
|
||||
// base plate
|
||||
union() {
|
||||
translate([0,-20,0]) topplate_with_raised_overhang();
|
||||
translate([20,-20,0])
|
||||
topplate();
|
||||
translate([0, 0, -((top_plate_z/2)+(lever_mount_z/2))]) levermountbase();
|
||||
}
|
||||
// holes to mount the lever
|
||||
levermountholes();
|
||||
side_chopper();
|
||||
}
|
||||
}
|
||||
|
||||
top_panel_left_lever();
|
||||
module left_lever_panel_with_mount() {
|
||||
left_lever_panel();
|
||||
translate([0, -top_plate_y/2+25, -(top_plate_z/2) - 3]) pcb_mount();
|
||||
}
|
||||
|
||||
left_lever_panel_with_mount();
|
||||
|
@ -1,27 +0,0 @@
|
||||
/* Copyright Brian Stephan 2023
|
||||
*
|
||||
* This file is part of the Buildable Stick System.
|
||||
*
|
||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation, either version 3 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
include <components.scad>
|
||||
use <top-panel-middle-dir_arc-plus-w-30mm.scad>
|
||||
|
||||
module top_panel_middle_dir_arc_w_30mm_with_mount() {
|
||||
top_panel_middle_dir_arc_w_30mm();
|
||||
translate([-15, -40, -(top_plate_z/2) - 3]) rotate([0, 0, -45]) pcb_mount();
|
||||
}
|
||||
|
||||
top_panel_middle_dir_arc_w_30mm_with_mount();
|
@ -1,30 +0,0 @@
|
||||
/* Copyright Brian Stephan 2023
|
||||
*
|
||||
* This file is part of the Buildable Stick System.
|
||||
*
|
||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation, either version 3 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
include <components.scad>
|
||||
|
||||
module top_panel_middle_dir_arc_w_30mm() {
|
||||
difference() {
|
||||
topplate_with_raised_overhang();
|
||||
dir_arc_w_30mm();
|
||||
rotate([0, 0, 180]) side_chopper();
|
||||
side_chopper();
|
||||
}
|
||||
}
|
||||
|
||||
top_panel_middle_dir_arc_w_30mm();
|
@ -20,7 +20,7 @@ include <components.scad>
|
||||
|
||||
module namco_noir_plus_one_panel() {
|
||||
difference() {
|
||||
topplate();
|
||||
translate([top_plate_x/2, top_plate_y/2, 0]) topplate();
|
||||
noir_plus_one();
|
||||
}
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ include <components.scad>
|
||||
|
||||
module namco_noir_plus_two_panel() {
|
||||
difference() {
|
||||
topplate();
|
||||
translate([top_plate_x/2, top_plate_y/2, 0]) topplate();
|
||||
noir_plus_one();
|
||||
translate([32.94-3.47-3.47, -78+7.37+4.49, 0]) noir_button_p1();
|
||||
}
|
||||
|
@ -1,29 +0,0 @@
|
||||
/* Copyright Brian Stephan 2023
|
||||
*
|
||||
* This file is part of the Buildable Stick System.
|
||||
*
|
||||
* The Buildable Stick System is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation, either version 3 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* The Buildable Stick System is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* the Buildable Stick System. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
include <components.scad>
|
||||
|
||||
module top_panel_right_sega_2p_plus_one() {
|
||||
difference() {
|
||||
topplate_with_raised_overhang();
|
||||
sega_2p_plus_one();
|
||||
rotate([0, 0, 180]) side_chopper();
|
||||
}
|
||||
}
|
||||
|
||||
top_panel_right_sega_2p_plus_one();
|
@ -20,7 +20,7 @@ include <components.scad>
|
||||
|
||||
module sega_2p_plus_one_panel() {
|
||||
difference() {
|
||||
topplate();
|
||||
translate([top_plate_x/2, top_plate_y/2, 0]) topplate();
|
||||
sega_2p_plus_one();
|
||||
}
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ module dir_arc_plus_w_24mm_8_button_panel() {
|
||||
difference() {
|
||||
rotate([0, 0, -90]) topplate_with_raised_overhang();
|
||||
translate([-top_plate_x+105, -top_plate_y/2+123, 0]) dir_arc_24mm_8_button_compressed();
|
||||
translate([-34.5, 51, 0]) button_24mm_hole();
|
||||
translate([-34.5, 51, 0]) button_24mm_hole_for_snapins();
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user