Compare commits
6 Commits
78a43e41bc
...
f90fc095e0
Author | SHA1 | Date |
---|---|---|
Brian S. Stephan | f90fc095e0 | |
Brian S. Stephan | f54aa989f7 | |
Brian S. Stephan | abc4577173 | |
Brian S. Stephan | 7b2289624e | |
Brian S. Stephan | 15083f6787 | |
Brian S. Stephan | a5724209fe |
|
@ -31,9 +31,9 @@ module panel_holes() {
|
|||
module button_24mm_hole() {
|
||||
cylinder(r=small_button_radius, h=100, $fn=50, center=true);
|
||||
// carve out space for snap-ins, leave 3mm
|
||||
// slagcoin has screw-in nut diameter at 29.5mm, so radius+6 to leave some space
|
||||
// slagcoin has screw-in nut diameter at 29.5mm, so radius+3 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);
|
||||
translate([0, 0, -25]) cylinder(r=small_button_radius+3, h=49, $fn=50, center=true);
|
||||
// space for decorative button surround stuff
|
||||
translate([0, 0, 50]) cylinder(r=small_button_radius*decorative_radius_scale, h=20, $fn=50, center=true);
|
||||
translate([0, 0, 70]) cylinder(r=small_button_radius*jumbo_decorative_radius_scale, h=20, $fn=50, center=true);
|
||||
|
@ -83,14 +83,14 @@ 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-(panel_z*2)], center=true);
|
||||
cube([30.5, 8, frame_z-(panel_z*2)], center=true);
|
||||
}
|
||||
|
||||
// bank of three 24mm buttons, commonly on a frame face
|
||||
module aux_control_three_button_cluster() {
|
||||
translate([-40, 0, 0]) button_24mm_hole();
|
||||
translate([-37, 0, 0]) button_24mm_hole();
|
||||
translate([0, 0, 0]) button_24mm_hole();
|
||||
translate([40, 0, 0]) button_24mm_hole();
|
||||
translate([37, 0, 0]) button_24mm_hole();
|
||||
}
|
||||
|
||||
module m2_mount_post() {
|
||||
|
@ -163,15 +163,32 @@ module levermountholes() {
|
|||
}
|
||||
|
||||
module base_panel() {
|
||||
cube([panel_x, panel_y, panel_z], center=true);
|
||||
translate([panel_to_frame_point_x, panel_to_frame_point_y, -panel_z])
|
||||
scale([1.4, 1.4, 0.1]) frame_hex_bolt_hole();
|
||||
translate([-panel_to_frame_point_x, panel_to_frame_point_y, -panel_z])
|
||||
scale([1.4, 1.4, 0.1]) frame_hex_bolt_hole();
|
||||
translate([panel_to_frame_point_x, -panel_to_frame_point_y, -panel_z])
|
||||
scale([1.4, 1.4, 0.1]) frame_hex_bolt_hole();
|
||||
translate([-panel_to_frame_point_x, -panel_to_frame_point_y, -panel_z])
|
||||
scale([1.4, 1.4, 0.1]) frame_hex_bolt_hole();
|
||||
difference() {
|
||||
union() {
|
||||
cube([panel_x, panel_y, panel_z], center=true);
|
||||
// add posts that sink into the frame, just to give
|
||||
// a somewhat more sturdy/tight connection
|
||||
translate([panel_to_frame_point_x, panel_to_frame_point_y, -panel_z])
|
||||
scale([1.5, 1.5, 0.1]) frame_hex_bolt_hole();
|
||||
translate([-panel_to_frame_point_x, panel_to_frame_point_y, -panel_z])
|
||||
scale([1.5, 1.5, 0.1]) frame_hex_bolt_hole();
|
||||
translate([panel_to_frame_point_x, -panel_to_frame_point_y, -panel_z])
|
||||
scale([1.5, 1.5, 0.1]) frame_hex_bolt_hole();
|
||||
translate([-panel_to_frame_point_x, -panel_to_frame_point_y, -panel_z])
|
||||
scale([1.5, 1.5, 0.1]) frame_hex_bolt_hole();
|
||||
}
|
||||
// the posts mentioned above need space for the actual hex bolts
|
||||
// used in connecting to the frame
|
||||
translate([panel_to_frame_point_x, panel_to_frame_point_y, -panel_z])
|
||||
scale([1, 1, 0.1]) frame_hex_bolt_hole();
|
||||
translate([-panel_to_frame_point_x, panel_to_frame_point_y, -panel_z])
|
||||
scale([1, 1, 0.1]) frame_hex_bolt_hole();
|
||||
translate([panel_to_frame_point_x, -panel_to_frame_point_y, -panel_z])
|
||||
scale([1, 1, 0.1]) frame_hex_bolt_hole();
|
||||
translate([-panel_to_frame_point_x, -panel_to_frame_point_y, -panel_z])
|
||||
scale([1, 1, 0.1]) frame_hex_bolt_hole();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module base_bottom_panel() {
|
||||
|
@ -223,11 +240,16 @@ module panel_with_raised_overhang() {
|
|||
|
||||
module frame_box() {
|
||||
difference() {
|
||||
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] ];
|
||||
top_points = [
|
||||
// top part, majority of shape
|
||||
[(frame_x/2)-3, (frame_y/2)-3, panel_z/2],
|
||||
[-(frame_x/2)+3, (frame_y/2)-3, panel_z/2],
|
||||
[(frame_x/2)-3, -(frame_y/2)+3, panel_z/2],
|
||||
[-(frame_x/2)+3, -(frame_y/2)+3, panel_z/2],
|
||||
];
|
||||
hull() {
|
||||
for (p = points) {
|
||||
translate(p) cylinder(r=3, h=frame_z, center=true);
|
||||
for (p = top_points) {
|
||||
translate(p) cylinder(r=3, h=frame_z-panel_z, center=true);
|
||||
}
|
||||
}
|
||||
// cut out the middle to make it a box
|
||||
|
@ -282,6 +304,9 @@ module frame() {
|
|||
translate([-panel_to_frame_point_x, -panel_to_frame_point_y, 0]) frame_hex_bolt_hole();
|
||||
|
||||
// comfort bevel
|
||||
translate([frame_x/2, 0, frame_z/2]) rotate([0, 45, 0]) cube([4, frame_y+0.01, 4], center=true);
|
||||
translate([-frame_x/2, 0, frame_z/2]) rotate([0, 45, 0]) cube([4, frame_y+0.01, 4], center=true);
|
||||
translate([0, frame_y/2, frame_z/2]) rotate([45, 0, 0]) cube([frame_x+0.01, 4, 4], center=true);
|
||||
translate([0, -frame_y/2, frame_z/2]) rotate([45, 0, 0]) cube([frame_x+0.01, 4, 4], center=true);
|
||||
|
||||
// slightly larger holes than the posts in the base_panel
|
||||
|
|
|
@ -24,13 +24,13 @@ module left_frame() {
|
|||
frame_cable_routing_hole();
|
||||
|
||||
// aux button holes
|
||||
translate([-30, 101.5, 0]) rotate([270, 0, 0]) aux_control_three_button_cluster();
|
||||
translate([-30, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
|
||||
translate([-70, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
|
||||
translate([10, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
|
||||
translate([-35, 101.5, panel_z/2]) rotate([270, 0, 0]) aux_control_three_button_cluster();
|
||||
translate([-35, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
|
||||
translate([-72, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
|
||||
translate([2, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
|
||||
|
||||
// neutrix button hole
|
||||
translate([frame_center_to_neutrik, (frame_y/2)-neutrik_panel_thickness, 0])
|
||||
translate([frame_center_to_neutrik, (frame_y/2)-neutrik_panel_thickness, panel_z/2])
|
||||
rotate([90, 0, 0]) neutrik_d_mount();
|
||||
translate([frame_center_to_neutrik, (frame_y/2)-neutrik_panel_thickness-4, 0])
|
||||
frame_cutout();
|
||||
|
|
|
@ -27,11 +27,14 @@ module middle_frame() {
|
|||
mirror([1, 0, 0]) frame_cable_routing_hole();
|
||||
|
||||
// neutrik mounts for connector, switches
|
||||
translate([0, (frame_y/2)-neutrik_panel_thickness, 0]) rotate([90, 0, 0]) neutrik_d_mount();
|
||||
translate([0, (frame_y/2)-neutrik_panel_thickness, panel_z/2])
|
||||
rotate([90, 0, 0]) neutrik_d_mount();
|
||||
translate([0, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
|
||||
translate([-40, (frame_y/2)-neutrik_panel_thickness, 0]) rotate([90, 0, 0]) neutrik_d_mount();
|
||||
translate([-40, (frame_y/2)-neutrik_panel_thickness, panel_z/2])
|
||||
rotate([90, 0, 0]) neutrik_d_mount();
|
||||
translate([-40, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
|
||||
translate([40, (frame_y/2)-neutrik_panel_thickness, 0]) rotate([90, 0, 0]) neutrik_d_mount();
|
||||
translate([40, (frame_y/2)-neutrik_panel_thickness, panel_z/2])
|
||||
rotate([90, 0, 0]) neutrik_d_mount();
|
||||
translate([40, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,13 +24,13 @@ module right_frame() {
|
|||
mirror([1, 0, 0]) frame_cable_routing_hole();
|
||||
|
||||
// aux button holes
|
||||
translate([30, 101.5, 0]) rotate([270, 0, 0]) aux_control_three_button_cluster();
|
||||
translate([30, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
|
||||
translate([70, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
|
||||
translate([-10, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
|
||||
translate([35, 101.5, panel_z/2]) rotate([270, 0, 0]) aux_control_three_button_cluster();
|
||||
translate([35, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
|
||||
translate([72, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
|
||||
translate([-2, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
|
||||
|
||||
// neutrix button hole
|
||||
translate([-frame_center_to_neutrik, (frame_y/2)-neutrik_panel_thickness, 0])
|
||||
translate([-frame_center_to_neutrik, (frame_y/2)-neutrik_panel_thickness, panel_z/2])
|
||||
rotate([90, 0, 0]) neutrik_d_mount();
|
||||
translate([-frame_center_to_neutrik, (frame_y/2)-neutrik_panel_thickness-4, 0])
|
||||
frame_cutout();
|
||||
|
|
|
@ -11,23 +11,25 @@ module solo_frame() {
|
|||
frame();
|
||||
|
||||
// neutrik mounts for connector, switches
|
||||
translate([0, (frame_y/2)-2.5, 0]) rotate([90, 0, 0]) neutrik_d_mount();
|
||||
translate([0, (frame_y/2)-2.5, panel_z/2]) rotate([90, 0, 0]) neutrik_d_mount();
|
||||
translate([0, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
|
||||
translate([-40, (frame_y/2)-2.5, 0]) rotate([90, 0, 0]) neutrik_d_mount();
|
||||
translate([-40, (frame_y/2)-2.5, panel_z/2]) rotate([90, 0, 0]) neutrik_d_mount();
|
||||
translate([-40, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
|
||||
translate([40, (frame_y/2)-2.5, 0]) rotate([90, 0, 0]) neutrik_d_mount();
|
||||
translate([40, (frame_y/2)-2.5, panel_z/2]) rotate([90, 0, 0]) neutrik_d_mount();
|
||||
translate([40, (frame_y/2)-neutrik_panel_thickness-4, 0]) frame_cutout();
|
||||
|
||||
// aux button holes
|
||||
translate([-frame_x/2+2.5, 0, 0]) rotate([90, 0, 270]) aux_control_three_button_cluster();
|
||||
translate([-frame_x/2+2.5, 0, panel_z/2]) rotate([90, 0, 270])
|
||||
aux_control_three_button_cluster();
|
||||
translate([(frame_x/2)-neutrik_panel_thickness-4, 0, 0]) rotate([0, 0, 90]) frame_cutout();
|
||||
translate([(frame_x/2)-neutrik_panel_thickness-4, -40, 0]) rotate([0, 0, 90]) frame_cutout();
|
||||
translate([(frame_x/2)-neutrik_panel_thickness-4, 40, 0]) rotate([0, 0, 90]) frame_cutout();
|
||||
translate([(frame_x/2)-neutrik_panel_thickness-4, -37, 0]) rotate([0, 0, 90]) frame_cutout();
|
||||
translate([(frame_x/2)-neutrik_panel_thickness-4, 37, 0]) rotate([0, 0, 90]) frame_cutout();
|
||||
|
||||
translate([frame_x/2+2.5, 0, 0]) rotate([90, 0, 270]) aux_control_three_button_cluster();
|
||||
translate([frame_x/2+2.5, 0, panel_z/2]) rotate([90, 0, 270])
|
||||
aux_control_three_button_cluster();
|
||||
translate([-(frame_x/2)+neutrik_panel_thickness+4, 0, 0]) rotate([0, 0, 90]) frame_cutout();
|
||||
translate([-(frame_x/2)+neutrik_panel_thickness+4, -40, 0]) rotate([0, 0, 90]) frame_cutout();
|
||||
translate([-(frame_x/2)+neutrik_panel_thickness+4, 40, 0]) rotate([0, 0, 90]) frame_cutout();
|
||||
translate([-(frame_x/2)+neutrik_panel_thickness+4, -37, 0]) rotate([0, 0, 90]) frame_cutout();
|
||||
translate([-(frame_x/2)+neutrik_panel_thickness+4, 37, 0]) rotate([0, 0, 90]) frame_cutout();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -10,8 +10,8 @@ use <misc-neutrik-d-plate.scad>
|
|||
module aux_control_three_button_cluster_decorative_plate() {
|
||||
difference() {
|
||||
hull() {
|
||||
translate([-50, 0, 0]) neutrik_d_plate();
|
||||
translate([50, 0, 0]) neutrik_d_plate();
|
||||
translate([-44, 0, 0]) neutrik_d_plate();
|
||||
translate([44, 0, 0]) neutrik_d_plate();
|
||||
}
|
||||
translate([0, 0, -10]) aux_control_three_button_cluster();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue