diff --git a/libtest.png b/libtest.png index d169c11..eeb7743 100644 Binary files a/libtest.png and b/libtest.png differ diff --git a/libtest.scad b/libtest.scad index 4a12c49..3d3d31a 100644 --- a/libtest.scad +++ b/libtest.scad @@ -225,7 +225,7 @@ inserts_y = 0; nuts_y = inserts_y + 20; washers_y = nuts_y + 120; screws_y = washers_y + 120; -circlips_y = screws_y + 160; +circlips_y = screws_y + 180; springs_y = circlips_y + 20; o_rings_y = springs_y; sealing_strip_y = springs_y + 20; @@ -402,21 +402,21 @@ extrusions_y = panel_meters_y + 80; translate([x3, veroboard_y]) veroboard_test(); -translate([x3 + 60, veroboard_y + 20]) +translate([x3 + 50, veroboard_y + 20]) geared_steppers(); translate([x3 + 160, ssrs_y]) pcb_mounts(); -translate([x3 + 170, veroboard_y + 16]) +translate([x3 + 145, veroboard_y + 16]) cameras(); +translate([x3 + 145, d_connectors_y - 10]) + camera_housings(); + translate([x3, d_connectors_y]) d_connectors(); -translate([x3 + 170, d_connectors_y - 10]) - camera_housings(); - translate([x3, iecs_y]) iecs(); diff --git a/readme.md b/readme.md index a48dc59..f76fcf1 100644 --- a/readme.md +++ b/readme.md @@ -3484,6 +3484,7 @@ For an explanation of `screw_polysink()` see = max_thread + 5 ? max_thread : length : length; - d = 2 * screw_radius(type); - pitch = metric_coarse_pitch(d); + thread_offset = has_shoulder ? thread : 0; + thread_d = 2 * thread_rad; + pitch = metric_coarse_pitch(thread_d); colour = nylon || head_type == hs_grub ? grey(40) : grey(80); module shaft(socket = 0, headless = false) { - point = screw_nut(type) ? 0 : 3 * rad; - shank = length - thread - socket; + point = screw_nut(type) ? 0 : 3 * shaft_rad; + shank = length - socket - (has_shoulder ? 0 : thread); if(show_threads && !point && pitch) - translate_z(-length) - male_metric_thread(d, pitch, thread - (shank > 0 || headless ? 0 : socket), false, top = headless ? -1 : 0, solid = !headless, colour = colour); + translate_z(-length - thread_offset) + male_metric_thread(thread_d, pitch, thread - (shank > 0 || headless ? 0 : socket), false, top = headless ? -1 : 0, solid = !headless, colour = colour); else color(colour * 0.9) rotate_extrude() { - translate([0, -length + point]) - square([rad, length - socket - point]); + translate([0, -length + point - thread_offset]) + square([thread_rad - eps, length - socket - point]); if(point) polygon([ - [0.4, -length], [0, point - length], [rad, point - length] + [0.4, -length], [0, point - length], [shaft_rad, point - length] ]); } if(shank > 0) color(colour) translate_z(-shank - socket) - cylinder(r = rad + eps, h = shank); + cylinder(r = shaft_rad + eps, h = shank); } module cs_head(socket_rad, socket_depth) { - head_t = rad / 5; + head_t = shaft_rad / 5; head_height = head_rad + head_t; color(colour) { @@ -173,7 +177,7 @@ module screw(type, length, hob_point = 0, nylon = false) { //! Draw specified sc } if(head_type == hs_grub) { color(colour) { - r = show_threads ? rad - pitch / 2 : rad; + r = show_threads ? shaft_rad - pitch / 2 : shaft_rad; translate_z(-socket_depth) linear_extrude(socket_depth) difference() { diff --git a/vitamins/screws.scad b/vitamins/screws.scad index ab11d23..152361c 100644 --- a/vitamins/screws.scad +++ b/vitamins/screws.scad @@ -103,6 +103,9 @@ M8_hex_screw = ["M8_hex", "M8 hex", hs_hex, 8, 15, 5.65, 0, 0 M3_low_cap_screw = ["M3_low_cap", "M3 low cap", hs_cap, 3, 5.5, 2, 1.5, 2.0, 18, M3_washer, M3_nut, M3_tap_radius, M3_clearance_radius]; +M3_shoulder_screw= ["M3_shoulder", "M3 shoulder",hs_cap, 4, 7.0, 2.4, 1.5, 3.0, 6, M4_washer, M3_nut, M3_tap_radius, 2, 3]; +M4_shoulder_screw= ["M4_shoulder", "M4 shoulder",hs_cap, 5, 9.0, 2.4, 1.5, 3.0, 8, M5_washer, M4_nut, M4_tap_radius, 2.5, 4]; + M3_grub_screw = ["M3_grub", "M3 grub", hs_grub, 3, 0, 0, 2.5, 1.5, 0, M3_washer, M3_nut, M3_tap_radius, M3_clearance_radius]; M4_grub_screw = ["M4_grub", "M4 grub", hs_grub, 4, 0, 0, 2.4, 2.0, 0, M4_washer, M4_nut, M4_tap_radius, M4_clearance_radius]; M5_grub_screw = ["M5_grub", "M5 grub", hs_grub, 5, 0, 0, 2.4, 2.5, 0, M5_washer, M5_nut, M5_tap_radius, M5_clearance_radius]; @@ -117,6 +120,7 @@ No8_screw = ["No8", "No8 pan wood", hs_pan, 4.2, 8.2, 3.05, 0, 0 screw_lists = [ [ M2_cap_screw, M2p5_cap_screw, M3_cap_screw, M4_cap_screw, M5_cap_screw, M6_cap_screw, M8_cap_screw], [ 0, 0, M3_low_cap_screw], +[ 0, 0, M3_shoulder_screw, M4_shoulder_screw], [ M2_cs_cap_screw, 0, M3_cs_cap_screw, M4_cs_cap_screw, M5_cs_cap_screw, M6_cs_cap_screw, M8_cs_cap_screw], [ M2_dome_screw, M2p5_dome_screw,M3_dome_screw, M4_dome_screw, M5_dome_screw], [ 0, 0, M3_hex_screw, M4_hex_screw, M5_hex_screw, M6_hex_screw, M8_hex_screw],