161 lines
4.6 KiB
OpenSCAD
161 lines
4.6 KiB
OpenSCAD
/*
|
|
* SPDX-FileCopyrightText: © 2023 Brian S. Stephan <bss@incorporeal.org>
|
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
|
*/
|
|
|
|
|
|
// CONNECTION POINT SIZES
|
|
|
|
|
|
// adjustments
|
|
hole_tolerance = 0.15;
|
|
|
|
// M2
|
|
m2_screw_selftap_radius = 0.95;
|
|
|
|
// M3
|
|
m3_screw_selftap_radius = 1.3;
|
|
|
|
// M4
|
|
m4_bolt_radius = 2 + hole_tolerance;
|
|
m4_bolt_countersink_radius = 6.1 + hole_tolerance;
|
|
m4_bolt_hex_exterior_radius = 3.6 + hole_tolerance;
|
|
|
|
// M6
|
|
m6_bolt_radius = 3 + hole_tolerance;
|
|
|
|
// 24mm button
|
|
small_button_radius = 12 + hole_tolerance;
|
|
|
|
// 30mm button
|
|
big_button_radius = 15 + hole_tolerance;
|
|
|
|
// carve out space around buttons for screw-in nuts
|
|
// slagcoin has screw-in nut diameter at 36mm for 30mm buttons, 29.5 for 24mm buttons
|
|
// radius + value below should leave space for the nut and for fingers to grab the nut
|
|
button_radius_connector_space = 5;
|
|
|
|
// standard lever hole
|
|
lever_plate_hole = 12;
|
|
|
|
// neutrik D screw holes
|
|
neutrik_d_screw_radius = 1.6 + hole_tolerance;
|
|
neutrik_d_radius = 12 + hole_tolerance;
|
|
|
|
|
|
// ELEMENT DIMENSIONS
|
|
|
|
|
|
// JLF mount dimensions
|
|
lever_mount_x = 53;
|
|
lever_mount_y = 95;
|
|
lever_mount_z = 2;
|
|
|
|
// base frame box. reminder: inside top and bottom (including mounts) are chopped by panel_z for plates
|
|
frame_x = 233;
|
|
frame_y = 208;
|
|
frame_z = 57;
|
|
|
|
// depth of the "lip" of the frame that the top plate sets into/supports the overhang
|
|
frame_wall = 4;
|
|
|
|
// top plate, which can either be the whole plate ("inset") or the mounting frame for a plate that overhangs
|
|
panel_x = frame_x - (frame_wall * 2);
|
|
panel_y = frame_y - (frame_wall * 2);
|
|
panel_z = 5;
|
|
|
|
// some dimensions for frame pieces, useful in doing some intersections and chopping
|
|
frame_piece_x_x = frame_x - (frame_wall * 2); // essentially panel_x, yes
|
|
frame_piece_y_y = frame_y; // the whole y of the frame, yes
|
|
|
|
// degree to which the extended frame pieces stick out from the end of the frame
|
|
frame_extension_x = 25;
|
|
frame_extension_y = 25;
|
|
|
|
// this sinks the bottom and top of the frame inward a bit, and is used to math out two shapes
|
|
// when creating the frame box / overhang panel
|
|
frame_bevel_height = 2;
|
|
overhang_panel_bevel_height = 1;
|
|
|
|
frame_center_to_neutrik = 70;
|
|
|
|
// width of the column in the frame corners to support the hex bolt
|
|
frame_mount_column_width = 20;
|
|
|
|
// per neutrik (mm)
|
|
neutrik_panel_thickness = 3;
|
|
|
|
// inside the frame
|
|
inner_frame_z = frame_z - (panel_z * 2);
|
|
|
|
// "windowed" pieces chop out the inner wall of the frame as a separate piece in order
|
|
// to print it a different color/way/style. to improve friction fit, it is only the below
|
|
// value scale of the whole wall, so that the rest of the wall is retained on the outer
|
|
// piece, which helps clamp the two together (and helps the panels clamp it all)
|
|
inner_frame_z_decorative_scale = 0.95;
|
|
|
|
// 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)
|
|
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);
|
|
|
|
panel_to_frame_point_offset = 10;
|
|
panel_to_frame_point_x = (panel_x/2) - panel_to_frame_point_offset;
|
|
panel_to_frame_point_y = (panel_y/2) - panel_to_frame_point_offset;
|
|
|
|
// frame interior that supports the top plates
|
|
panel_support_width = 5;
|
|
|
|
// additional button radius for decorative panels, etc.
|
|
decorative_radius_scale = 1.75;
|
|
jumbo_decorative_radius_scale = 2;
|
|
|
|
// decorative wall cutout parameters
|
|
// thicker than the actual base wall to account for the longish pieces
|
|
wall_cutout_depth = frame_wall * 3;
|
|
|
|
// decorative slash parameters
|
|
slash_inner_displacement = 10;
|
|
slash_width = 15;
|
|
slash_height = frame_z-panel_z*3;
|
|
|
|
// dustwasher parameters
|
|
jlf_dustwasher_radius = 19;
|
|
jlf_shaft_inner_radius = 4.55;
|
|
|
|
lsx_nobi_dustwasher_radius = jlf_dustwasher_radius;
|
|
lsx_nobi_shaft_inner_radius = 5;
|
|
|
|
shaft_position_tolerance = 2;
|
|
|
|
// stand dimensions to display a stick
|
|
stand_x = 5;
|
|
stand_y = frame_z;
|
|
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
|
|
|
|
|
|
sega_2p_column_2_offset = 30.5;
|
|
sega_2p_column_3_offset = sega_2p_column_2_offset + 36;
|
|
sega_2p_column_4_offset = sega_2p_column_3_offset + 36;
|
|
sega_2p_column_5_offset = sega_2p_column_4_offset + 36;
|
|
|
|
// this offset is from the left edge of the panel
|
|
sega_2p_column_1_left_panel_edge_offset = 28.06;
|
|
|
|
dir_arc_30mm_column_2_offset = 33.8;
|
|
dir_arc_30mm_column_3_offset = dir_arc_30mm_column_2_offset + 34.8;
|
|
dir_arc_30mm_row_2_offset = 57.2;
|
|
dir_arc_30mm_row_3_offset = dir_arc_30mm_row_2_offset + 12.9;
|
|
dir_arc_w_30mm_row_4_offset = dir_arc_30mm_row_3_offset + 34.5;
|