Compare commits
5 Commits
a92ecffe38
...
b564847eff
Author | SHA1 | Date |
---|---|---|
Brian S. Stephan | b564847eff | |
Brian S. Stephan | fd2f1da28c | |
Brian S. Stephan | 773433cd10 | |
Brian S. Stephan | bad3c7628f | |
Brian S. Stephan | 6a1e1cc1f3 |
|
@ -15,13 +15,13 @@ use <misc-decorative-plate-24mm-button.scad>
|
|||
use <misc-decorative-plate-dir_arc-plus-w-30mm-and-sega-2p-plus-one.scad>
|
||||
use <misc-dustwasher-lsx-nobi.scad>
|
||||
|
||||
color("#C12E1F") translate([-top_plate_x/2-25, 0, frame_z/2+75]) top_panel_left_lever_and_dir_arc_w_30mm();
|
||||
color("#C12E1F") translate([top_plate_x/2+25, 0, frame_z/2+75]) top_panel_right_sega_2p_plus_one_plus_control_with_mount();
|
||||
color("#C12E1F") translate([-panel_x/2-25, 0, frame_z/2+75]) top_panel_left_lever_and_dir_arc_w_30mm();
|
||||
color("#C12E1F") translate([panel_x/2+25, 0, frame_z/2+75]) top_panel_right_sega_2p_plus_one_plus_control_with_mount();
|
||||
color("black") translate([-frame_x/2+5-25, 0, -2.5]) left_frame();
|
||||
color("black") translate([frame_x/2+25, 0, -2.5]) right_frame();
|
||||
color("#C12E1F") translate([-top_plate_x/2-25, 0, -5-frame_z/2-75]) bottom_panel_left();
|
||||
color("#C12E1F") translate([top_plate_x/2+25, 0, -5-frame_z/2-75]) bottom_panel_right();
|
||||
color("#C12E1F") translate([-panel_x/2-25, 0, -5-frame_z/2-75]) bottom_panel_left();
|
||||
color("#C12E1F") translate([panel_x/2+25, 0, -5-frame_z/2-75]) bottom_panel_right();
|
||||
|
||||
color("black") translate([0, 0, 3+frame_z/2+150]) dir_arc_plus_w_30mm_and_sega_2p_plus_one_decorative_plate();
|
||||
color("black") translate([-195, 25, 3+frame_z/2+150]) lsx_nobi_dustwasher();
|
||||
color("black") translate([top_plate_x, 25, 3+frame_z/2+150]) button_24mm_decorative_plate();
|
||||
color("black") translate([panel_x, 25, 3+frame_z/2+150]) button_24mm_decorative_plate();
|
||||
|
|
|
@ -6,11 +6,8 @@
|
|||
include <parameters.scad>
|
||||
include <components.scad>
|
||||
|
||||
module bottom_panel() {
|
||||
difference() {
|
||||
mirror([0, 0, 1]) panel();
|
||||
translate([0, 0, top_plate_z/2]) cube([top_plate_x-40, top_plate_y-40, top_plate_z], center=true);
|
||||
}
|
||||
module inset_bottom_panel() {
|
||||
bottom_panel();
|
||||
}
|
||||
|
||||
bottom_panel();
|
||||
inset_bottom_panel();
|
||||
|
|
|
@ -8,8 +8,8 @@ include <components.scad>
|
|||
|
||||
module bottom_panel_solo() {
|
||||
difference() {
|
||||
rotate([180, 0, 0]) base_top_plate_with_raised_overhang();
|
||||
rotate([180, 0, 0]) top_plate_holes();
|
||||
rotate([180, 0, 0]) base_panel_with_raised_overhang();
|
||||
rotate([180, 0, 0]) panel_holes();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -13,17 +13,17 @@ module m4_hole_countersink() {
|
|||
cylinder(r1=m4_bolt_radius, r2=m4_bolt_countersink_radius, h=3.2, $fn=50, center=true);
|
||||
}
|
||||
|
||||
module top_plate_holes() {
|
||||
module panel_holes() {
|
||||
// holes for mount bolts
|
||||
translate([plate_to_frame_point_x, plate_to_frame_point_y, 0]) m4_hole();
|
||||
translate([plate_to_frame_point_x, -plate_to_frame_point_y, 0]) m4_hole();
|
||||
translate([-plate_to_frame_point_x, plate_to_frame_point_y, 0]) m4_hole();
|
||||
translate([-plate_to_frame_point_x, -plate_to_frame_point_y, 0]) m4_hole();
|
||||
translate([panel_to_frame_point_x, panel_to_frame_point_y, 0]) m4_hole();
|
||||
translate([panel_to_frame_point_x, -panel_to_frame_point_y, 0]) m4_hole();
|
||||
translate([-panel_to_frame_point_x, panel_to_frame_point_y, 0]) m4_hole();
|
||||
translate([-panel_to_frame_point_x, -panel_to_frame_point_y, 0]) m4_hole();
|
||||
// holes for mount bolt countersinks
|
||||
translate([plate_to_frame_point_x, plate_to_frame_point_y, 2]) m4_hole_countersink();
|
||||
translate([plate_to_frame_point_x, -plate_to_frame_point_y, 2]) m4_hole_countersink();
|
||||
translate([-plate_to_frame_point_x, plate_to_frame_point_y, 2]) m4_hole_countersink();
|
||||
translate([-plate_to_frame_point_x, -plate_to_frame_point_y, 2]) m4_hole_countersink();
|
||||
translate([panel_to_frame_point_x, panel_to_frame_point_y, 2]) m4_hole_countersink();
|
||||
translate([panel_to_frame_point_x, -panel_to_frame_point_y, 2]) m4_hole_countersink();
|
||||
translate([-panel_to_frame_point_x, panel_to_frame_point_y, 2]) m4_hole_countersink();
|
||||
translate([-panel_to_frame_point_x, -panel_to_frame_point_y, 2]) m4_hole_countersink();
|
||||
}
|
||||
|
||||
// button hole, with extra wide bits for various uses (cutting out space
|
||||
|
@ -83,7 +83,7 @@ module rocker_20mm_mount() {
|
|||
|
||||
// space for a neutrik D mount or 24mm button - Z is to cut the whole inside without affecting panel lip
|
||||
module frame_cutout() {
|
||||
cube([36.5, 8, frame_z-(top_plate_z*2)], center=true);
|
||||
cube([36.5, 8, frame_z-(panel_z*2)], center=true);
|
||||
}
|
||||
|
||||
// bank of three 24mm buttons, commonly on a frame face
|
||||
|
@ -163,56 +163,86 @@ module levermountholes() {
|
|||
}
|
||||
|
||||
module base_panel() {
|
||||
cube([top_plate_x, top_plate_y, top_plate_z], center=true);
|
||||
cube([panel_x, panel_y, panel_z], center=true);
|
||||
}
|
||||
|
||||
module base_bottom_panel() {
|
||||
difference() {
|
||||
base_panel();
|
||||
translate([0, panel_y/2, panel_z]) rotate([45, 0, 0]) cube([panel_x+0.01, 10, 10], center=true);
|
||||
translate([0, -panel_y/2, panel_z]) rotate([315, 0, 0]) cube([panel_x+0.01, 10, 10], center=true);
|
||||
translate([panel_x/2, 0, panel_z]) rotate([0, 45, 0]) cube([10, panel_y+0.01, 10], center=true);
|
||||
translate([-panel_x/2, 0, panel_z]) rotate([0, 315, 0]) cube([10, panel_y+0.01, 10], center=true);
|
||||
}
|
||||
}
|
||||
|
||||
module panel() {
|
||||
difference() {
|
||||
base_panel();
|
||||
top_plate_holes();
|
||||
panel_holes();
|
||||
}
|
||||
}
|
||||
|
||||
module bottom_panel() {
|
||||
difference() {
|
||||
base_bottom_panel();
|
||||
mirror([0, 0, 1]) panel_holes();
|
||||
}
|
||||
}
|
||||
|
||||
module overhang_plate() {
|
||||
roundedcube([overhang_top_plate_x, overhang_top_plate_y, top_plate_z], center=true, radius=1);
|
||||
roundedcube([overhang_panel_x, overhang_panel_y, panel_z], center=true, radius=1);
|
||||
}
|
||||
|
||||
// this takes the base_panel and makes it a small frame, putting a larger top plate
|
||||
module base_top_plate_with_raised_overhang() {
|
||||
module base_panel_with_raised_overhang() {
|
||||
// make a frame out of the top plate (and keep the main plate on the center plane)
|
||||
translate([0, 0, -5]) difference() {
|
||||
base_panel();
|
||||
cube([top_plate_x-(panel_support_width*2), top_plate_y-(panel_support_width*2), top_plate_z*2], center=true);
|
||||
cube([panel_x-(panel_support_width*2), panel_y-(panel_support_width*2), panel_z*2], center=true);
|
||||
}
|
||||
translate([plate_to_frame_point_x, plate_to_frame_point_y, -2.5]) resize([0, 0, 10]) frame_mount_column();
|
||||
translate([-(plate_to_frame_point_x), plate_to_frame_point_y, -2.5]) resize([0, 0, 10]) frame_mount_column();
|
||||
translate([plate_to_frame_point_x, -(plate_to_frame_point_y), -2.5]) resize([0, 0, 10]) frame_mount_column();
|
||||
translate([-(plate_to_frame_point_x), -(plate_to_frame_point_y), -2.5]) resize([0, 0, 10]) frame_mount_column();
|
||||
translate([panel_to_frame_point_x, panel_to_frame_point_y, -2.5]) resize([0, 0, 10])
|
||||
frame_mount_column();
|
||||
translate([-(panel_to_frame_point_x), panel_to_frame_point_y, -2.5]) resize([0, 0, 10])
|
||||
rotate([0, 0, 90]) frame_mount_column();
|
||||
translate([panel_to_frame_point_x, -(panel_to_frame_point_y), -2.5]) resize([0, 0, 10])
|
||||
rotate([0, 0, 270]) frame_mount_column();
|
||||
translate([-(panel_to_frame_point_x), -(panel_to_frame_point_y), -2.5]) resize([0, 0, 10])
|
||||
rotate([0, 0, 180]) frame_mount_column();
|
||||
overhang_plate();
|
||||
}
|
||||
|
||||
module top_plate_with_raised_overhang() {
|
||||
module panel_with_raised_overhang() {
|
||||
difference() {
|
||||
base_top_plate_with_raised_overhang();
|
||||
top_plate_holes();
|
||||
base_panel_with_raised_overhang();
|
||||
panel_holes();
|
||||
}
|
||||
}
|
||||
|
||||
module frame_box() {
|
||||
difference() {
|
||||
roundedcube([frame_x, frame_y, frame_z], center=true, radius=3);
|
||||
points = [ [(frame_x/2)-3, (frame_y/2)-3, 0], [-(frame_x/2)+3, (frame_y/2)-3, 0],
|
||||
[(frame_x/2)-3, -(frame_y/2)+3, 0], [-(frame_x/2)+3, -(frame_y/2)+3, 0] ];
|
||||
hull() {
|
||||
for (p = points) {
|
||||
translate(p) cylinder(r=3, h=frame_z, center=true);
|
||||
}
|
||||
}
|
||||
// cut out the middle to make it a box
|
||||
cube([top_plate_x-(panel_support_width*2), top_plate_y-(panel_support_width*2), frame_z+5], center=true);
|
||||
cube([panel_x-(panel_support_width*2), panel_y-(panel_support_width*2), frame_z+5], center=true);
|
||||
}
|
||||
}
|
||||
|
||||
module frame_mount_column() {
|
||||
cube([20, 20, frame_z], center=true);
|
||||
// add some corners back to do a lame chamfer
|
||||
linear_extrude(height=frame_z, center=true)
|
||||
polygon([[10, 10], [-20, 10], [10, -20]]);
|
||||
}
|
||||
|
||||
module side_chopper() {
|
||||
translate([(frame_x-frame_wall)/2+top_plate_overhang_amount, 0, 0])
|
||||
cube([frame_wall+top_plate_overhang_amount*2, overhang_top_plate_y, frame_z], center=true);
|
||||
translate([(frame_x-frame_wall)/2+panel_overhang_amount, 0, 0])
|
||||
cube([frame_wall+panel_overhang_amount*2, overhang_panel_y, frame_z], center=true);
|
||||
}
|
||||
|
||||
module frame_connection_holes() {
|
||||
|
@ -233,21 +263,24 @@ module frame_cable_routing_hole() {
|
|||
|
||||
module base_frame() {
|
||||
frame_box();
|
||||
translate([plate_to_frame_point_x, plate_to_frame_point_y, 0]) frame_mount_column();
|
||||
translate([-plate_to_frame_point_x, plate_to_frame_point_y, 0]) frame_mount_column();
|
||||
translate([plate_to_frame_point_x, -(plate_to_frame_point_y), 0]) frame_mount_column();
|
||||
translate([-plate_to_frame_point_x, -(plate_to_frame_point_y), 0]) frame_mount_column();
|
||||
translate([panel_to_frame_point_x, panel_to_frame_point_y, 0]) frame_mount_column();
|
||||
translate([-panel_to_frame_point_x, panel_to_frame_point_y, 0]) rotate([0, 0, 90]) frame_mount_column();
|
||||
translate([-panel_to_frame_point_x, -(panel_to_frame_point_y), 0]) rotate([0, 0, 180]) frame_mount_column();
|
||||
translate([panel_to_frame_point_x, -(panel_to_frame_point_y), 0]) rotate([0, 0, 270]) frame_mount_column();
|
||||
}
|
||||
|
||||
module frame() {
|
||||
difference() {
|
||||
base_frame();
|
||||
translate([0, 0, frame_z/2]) scale([1, 1, 2]) base_panel();
|
||||
translate([0, 0, -frame_z/2]) scale([1, 1, 2]) base_panel();
|
||||
translate([plate_to_frame_point_x, plate_to_frame_point_y, 0]) frame_hex_bolt_hole();
|
||||
translate([-plate_to_frame_point_x, plate_to_frame_point_y, 0]) frame_hex_bolt_hole();
|
||||
translate([plate_to_frame_point_x, -plate_to_frame_point_y, 0]) frame_hex_bolt_hole();
|
||||
translate([-plate_to_frame_point_x, -plate_to_frame_point_y, 0]) frame_hex_bolt_hole();
|
||||
translate([0, 0, -frame_z/2]) scale([1, 1, 2]) base_bottom_panel();
|
||||
translate([panel_to_frame_point_x, panel_to_frame_point_y, 0]) frame_hex_bolt_hole();
|
||||
translate([-panel_to_frame_point_x, panel_to_frame_point_y, 0]) frame_hex_bolt_hole();
|
||||
translate([panel_to_frame_point_x, -panel_to_frame_point_y, 0]) frame_hex_bolt_hole();
|
||||
translate([-panel_to_frame_point_x, -panel_to_frame_point_y, 0]) frame_hex_bolt_hole();
|
||||
|
||||
// comfort bevel
|
||||
translate([0, -frame_y/2, frame_z/2]) rotate([45, 0, 0]) cube([frame_x+0.01, 4, 4], center=true);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -294,7 +327,7 @@ module dir_arc_plus_w_24mm_8_button() {
|
|||
|
||||
module dir_arc_30mm_thumb_button() {
|
||||
// just my guesstimate on this one, but note that this is the same position as sega 2p (just mirrored)
|
||||
translate([(top_plate_x/2)-28.06, (-top_plate_y/2)+62, 0]) button_30mm_hole();
|
||||
translate([(panel_x/2)-28.06, (-panel_y/2)+62, 0]) button_30mm_hole();
|
||||
}
|
||||
|
||||
module dir_arc_30mm_finger_buttons() {
|
||||
|
@ -317,7 +350,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, 140, 0]) button_30mm_hole();
|
||||
translate([-panel_x/2, -panel_y/2, 0]) translate([35, 140, 0]) button_30mm_hole();
|
||||
}
|
||||
|
||||
module noir_plus_one() {
|
||||
|
@ -338,7 +371,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, 140, 0]) button_30mm_hole();
|
||||
translate([-panel_x/2, -panel_y/2, 0]) translate([28.06, 140, 0]) button_30mm_hole();
|
||||
}
|
||||
|
||||
module sega_2p_6_button() {
|
||||
|
|
|
@ -12,18 +12,18 @@ module dir_arc_plus_w_30mm_and_sega_2p_plus_one_decorative_plate_of_plates() {
|
|||
difference() {
|
||||
// get a 2mm slice of the bigger button cylinders
|
||||
union() {
|
||||
translate([-top_plate_x/2, 0, -25]) {
|
||||
translate([-panel_x/2, 0, -25]) {
|
||||
hull() union() {
|
||||
dir_arc_30mm_finger_buttons();
|
||||
translate([-26.8, 57.2+12.9+34.5, 0]) dir_arc_30mm_thumb_button();
|
||||
}
|
||||
}
|
||||
translate([top_plate_x/2, 0, -25]) {
|
||||
translate([panel_x/2, 0, -25]) {
|
||||
hull() sega_2p();
|
||||
}
|
||||
hull() {
|
||||
translate([-top_plate_x/2, 0, -25]) dir_arc_30mm_thumb_button();
|
||||
translate([top_plate_x/2, -19-9-11-19-9-11, -25]) sega_2p_p1();
|
||||
translate([-panel_x/2, 0, -25]) dir_arc_30mm_thumb_button();
|
||||
translate([panel_x/2, -19-9-11-19-9-11, -25]) sega_2p_p1();
|
||||
}
|
||||
difference() {
|
||||
translate([-60, -8, 0]) cube(60, center=true);
|
||||
|
@ -42,8 +42,8 @@ module dir_arc_plus_w_30mm_and_sega_2p_plus_one_decorative_plate_of_plates() {
|
|||
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
|
||||
translate([-top_plate_x/2, 0, -1]) dir_arc_w_30mm();
|
||||
translate([top_plate_x/2, 0, -1]) sega_2p_plus_one();
|
||||
translate([-panel_x/2, 0, -1]) dir_arc_w_30mm();
|
||||
translate([panel_x/2, 0, -1]) sega_2p_plus_one();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -10,14 +10,14 @@ module dir_arc_plus_w_30mm_and_sega_2p_plus_one_decorative_plate() {
|
|||
difference() {
|
||||
// get a 2mm slice of the bigger button cylinders
|
||||
union() {
|
||||
translate([-top_plate_x/2, 0, -65]) dir_arc_w_30mm();
|
||||
translate([top_plate_x/2, 0, -65]) sega_2p_plus_one();
|
||||
translate([-panel_x/2, 0, -65]) dir_arc_w_30mm();
|
||||
translate([panel_x/2, 0, -65]) sega_2p_plus_one();
|
||||
}
|
||||
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
|
||||
translate([-top_plate_x/2, 0, -1]) dir_arc_w_30mm();
|
||||
translate([top_plate_x/2, 0, -1]) sega_2p_plus_one();
|
||||
translate([-panel_x/2, 0, -1]) dir_arc_w_30mm();
|
||||
translate([panel_x/2, 0, -1]) sega_2p_plus_one();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -32,10 +32,10 @@ lever_mount_z = 2;
|
|||
lever_plate_hole = 12;
|
||||
|
||||
// case dimensions
|
||||
// base frame box. reminder: top of inside (including mounts) is chopped by top_plate_z for plates
|
||||
// base frame box. reminder: top of inside (including mounts) is chopped by panel_z for plates
|
||||
frame_x = 233;
|
||||
frame_y = 208;
|
||||
frame_z = 55;
|
||||
frame_z = 57;
|
||||
|
||||
frame_center_to_neutrik = 70;
|
||||
|
||||
|
@ -46,18 +46,18 @@ frame_wall = 4;
|
|||
neutrik_panel_thickness = 3;
|
||||
|
||||
// top plate, which can either be the whole plate ("inset") or the mounting frame for a plate that overhangs
|
||||
top_plate_x = frame_x - (frame_wall * 2);
|
||||
top_plate_y = frame_y - (frame_wall * 2);
|
||||
top_plate_z = 5;
|
||||
panel_x = frame_x - (frame_wall * 2);
|
||||
panel_y = frame_y - (frame_wall * 2);
|
||||
panel_z = 5;
|
||||
|
||||
// how much the top plate x/y is expanded to overhang the frame
|
||||
// note that this is relative to the top plate (so the wall is added back)
|
||||
top_plate_overhang_amount = 8.5;
|
||||
overhang_top_plate_x = top_plate_x + (frame_wall * 2) + (top_plate_overhang_amount * 2);
|
||||
overhang_top_plate_y = top_plate_y + (frame_wall * 2) + (top_plate_overhang_amount * 2);
|
||||
panel_overhang_amount = 8.5;
|
||||
overhang_panel_x = panel_x + (frame_wall * 2) + (panel_overhang_amount * 2);
|
||||
overhang_panel_y = panel_y + (frame_wall * 2) + (panel_overhang_amount * 2);
|
||||
|
||||
plate_to_frame_point_x = (top_plate_x/2)-10;
|
||||
plate_to_frame_point_y = (top_plate_y/2)-10;
|
||||
panel_to_frame_point_x = (panel_x/2)-10;
|
||||
panel_to_frame_point_y = (panel_y/2)-10;
|
||||
|
||||
// frame interior that supports the top plates
|
||||
panel_support_width = 5;
|
||||
|
|
|
@ -9,7 +9,7 @@ use <top-panel-inset-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([-15, -40, -(panel_z/2) - 3]) rotate([0, 0, -15]) pcb_mount();
|
||||
}
|
||||
|
||||
dir_arc_w_30mm_plus_one_panel_with_mount();
|
||||
|
|
|
@ -10,11 +10,11 @@ module top_panel_inset_lever_and_dir_arc_w_30mm() {
|
|||
difference() {
|
||||
union() {
|
||||
panel();
|
||||
translate([(-top_plate_x/2)+55, (top_plate_y/2)-75, -((top_plate_z/2)+(lever_mount_z/2))])
|
||||
translate([(-panel_x/2)+55, (panel_y/2)-75, -((panel_z/2)+(lever_mount_z/2))])
|
||||
levermountbase();
|
||||
}
|
||||
dir_arc_w_30mm();
|
||||
translate([(-top_plate_x/2)+55, (top_plate_y/2)-75, 0]) levermountholes();
|
||||
translate([(-panel_x/2)+55, (panel_y/2)-75, 0]) levermountholes();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ use <top-panel-inset-lever.scad>
|
|||
|
||||
module lever_panel_with_mount() {
|
||||
lever_panel();
|
||||
translate([0, -top_plate_y/2+25, -(top_plate_z/2) - 3]) pcb_mount();
|
||||
translate([0, -panel_y/2+25, -(panel_z/2) - 3]) pcb_mount();
|
||||
}
|
||||
|
||||
lever_panel_with_mount();
|
||||
|
|
|
@ -12,7 +12,7 @@ module lever_panel() {
|
|||
// base plate
|
||||
union() {
|
||||
translate([0,-20,0]) panel();
|
||||
translate([0, 0, -((top_plate_z/2)+(lever_mount_z/2))]) levermountbase();
|
||||
translate([0, 0, -((panel_z/2)+(lever_mount_z/2))]) levermountbase();
|
||||
}
|
||||
// holes to mount the lever
|
||||
levermountholes();
|
||||
|
|
|
@ -9,7 +9,7 @@ use <top-panel-inset-sega-2p-plus-one-plus-control.scad>
|
|||
|
||||
module top_panel_inset_sega_2p_plus_one_plus_control_with_mount() {
|
||||
top_panel_inset_sega_2p_plus_one_plus_control();
|
||||
translate([30, -50, -(top_plate_z/2) - 3]) pcb_mount();
|
||||
translate([30, -50, -(panel_z/2) - 3]) pcb_mount();
|
||||
}
|
||||
|
||||
top_panel_inset_sega_2p_plus_one_plus_control_with_mount();
|
||||
|
|
|
@ -9,12 +9,12 @@ include <components.scad>
|
|||
module top_panel_left_lever_and_dir_arc_w_30mm() {
|
||||
difference() {
|
||||
union() {
|
||||
top_plate_with_raised_overhang();
|
||||
translate([(-top_plate_x/2)+55, (top_plate_y/2)-75, -((top_plate_z/2)+(lever_mount_z/2))]) levermountbase();
|
||||
panel_with_raised_overhang();
|
||||
translate([(-panel_x/2)+55, (panel_y/2)-75, -((panel_z/2)+(lever_mount_z/2))]) levermountbase();
|
||||
}
|
||||
dir_arc_w_30mm();
|
||||
side_chopper();
|
||||
translate([(-top_plate_x/2)+55, (top_plate_y/2)-75, 0]) levermountholes();
|
||||
translate([(-panel_x/2)+55, (panel_y/2)-75, 0]) levermountholes();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -11,8 +11,8 @@ module top_panel_left_lever() {
|
|||
difference() {
|
||||
// base plate
|
||||
union() {
|
||||
translate([0,-20,0]) top_plate_with_raised_overhang();
|
||||
translate([0, 0, -((top_plate_z/2)+(lever_mount_z/2))]) levermountbase();
|
||||
translate([0,-20,0]) panel_with_raised_overhang();
|
||||
translate([0, 0, -((panel_z/2)+(lever_mount_z/2))]) levermountbase();
|
||||
}
|
||||
// holes to mount the lever
|
||||
levermountholes();
|
||||
|
|
|
@ -9,7 +9,7 @@ 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();
|
||||
translate([-15, -40, -(panel_z/2) - 3]) rotate([0, 0, -45]) pcb_mount();
|
||||
}
|
||||
|
||||
top_panel_middle_dir_arc_w_30mm_with_mount();
|
||||
|
|
|
@ -8,7 +8,7 @@ include <components.scad>
|
|||
|
||||
module top_panel_middle_dir_arc_w_30mm() {
|
||||
difference() {
|
||||
top_plate_with_raised_overhang();
|
||||
panel_with_raised_overhang();
|
||||
dir_arc_w_30mm();
|
||||
rotate([0, 0, 180]) side_chopper();
|
||||
side_chopper();
|
||||
|
|
|
@ -9,7 +9,7 @@ use <top-panel-right-sega-2p-plus-one-plus-control.scad>
|
|||
|
||||
module top_panel_right_sega_2p_plus_one_plus_control_with_mount() {
|
||||
top_panel_right_sega_2p_plus_one_plus_control();
|
||||
translate([30, -50, -(top_plate_z/2) - 3]) pcb_mount();
|
||||
translate([30, -50, -(panel_z/2) - 3]) pcb_mount();
|
||||
}
|
||||
|
||||
top_panel_right_sega_2p_plus_one_plus_control_with_mount();
|
||||
|
|
|
@ -8,7 +8,7 @@ include <components.scad>
|
|||
|
||||
module top_panel_right_sega_2p_plus_one_plus_control() {
|
||||
difference() {
|
||||
top_plate_with_raised_overhang();
|
||||
panel_with_raised_overhang();
|
||||
sega_2p_plus_one();
|
||||
rotate([0, 0, 180]) side_chopper();
|
||||
translate([89, 30, 0]) button_24mm_hole();
|
||||
|
|
|
@ -9,7 +9,7 @@ use <top-panel-right-sega-2p-plus-one.scad>
|
|||
|
||||
module top_panel_right_sega_2p_plus_one_with_mount() {
|
||||
top_panel_right_sega_2p_plus_one();
|
||||
translate([30, -50, -(top_plate_z/2) - 3]) pcb_mount();
|
||||
translate([30, -50, -(panel_z/2) - 3]) pcb_mount();
|
||||
}
|
||||
|
||||
top_panel_right_sega_2p_plus_one_with_mount();
|
||||
|
|
|
@ -8,7 +8,7 @@ include <components.scad>
|
|||
|
||||
module top_panel_right_sega_2p_plus_one() {
|
||||
difference() {
|
||||
top_plate_with_raised_overhang();
|
||||
panel_with_raised_overhang();
|
||||
sega_2p_plus_one();
|
||||
rotate([0, 0, 180]) side_chopper();
|
||||
}
|
||||
|
|
|
@ -8,8 +8,8 @@ include <components.scad>
|
|||
|
||||
module dir_arc_24mm_6_button_panel() {
|
||||
difference() {
|
||||
top_plate_with_raised_overhang();
|
||||
translate([-71.5, -top_plate_y/2+122.5, 0]) dir_arc_24mm_6_button();
|
||||
panel_with_raised_overhang();
|
||||
translate([-71.5, -panel_y/2+122.5, 0]) dir_arc_24mm_6_button();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -8,8 +8,8 @@ include <components.scad>
|
|||
|
||||
module dir_arc_plus_w_24mm_8_button_panel() {
|
||||
difference() {
|
||||
top_plate_with_raised_overhang();
|
||||
translate([-80.5, top_plate_y/6, 0]) dir_arc_plus_w_24mm_8_button();
|
||||
panel_with_raised_overhang();
|
||||
translate([-80.5, panel_y/6, 0]) dir_arc_plus_w_24mm_8_button();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -10,8 +10,8 @@ module top_panel_solo_lever_and_sega_2p_6_button() {
|
|||
difference() {
|
||||
// base plate
|
||||
union() {
|
||||
top_plate_with_raised_overhang();
|
||||
translate([-60, 18, -((top_plate_z/2)+(lever_mount_z/2))]) levermountbase();
|
||||
panel_with_raised_overhang();
|
||||
translate([-60, 18, -((panel_z/2)+(lever_mount_z/2))]) levermountbase();
|
||||
}
|
||||
translate([95, -20, 0]) sega_2p_6_button();
|
||||
translate([-60, 18, 0]) levermountholes();
|
||||
|
|
Loading…
Reference in New Issue