From a695974ac562b88ed08cc3ea54a2a4e07f638c5f Mon Sep 17 00:00:00 2001 From: Tex Date: Mon, 4 Mar 2024 11:11:37 -0600 Subject: [PATCH 1/6] updating after maybe breaking debian --- vitamins/pulleys.scad | 52 +++++++++++++++++++++--------------- vitamins/stepper_motor.scad | 2 +- vitamins/stepper_motors.scad | 3 ++- 3 files changed, 34 insertions(+), 23 deletions(-) diff --git a/vitamins/pulleys.scad b/vitamins/pulleys.scad index e7f9628..0f9f6d1 100644 --- a/vitamins/pulleys.scad +++ b/vitamins/pulleys.scad @@ -18,26 +18,34 @@ // include // -// n t o b w h h b f f s s s s -// a e d e i u u o l l c c c c -// m e l d b b r a a r r r r -// e t t t e n n e e e e -// h h d l g g w w w w -// e e s -// l z -// d t -// -T5x10_pulley = ["T5x10_pulley", "T5", 10, 15, T5x6, 11.6, 7.9, 7, 5, 19.3, 1.7, 3, 10.7, M3_grub_screw, 1]; -T2p5x16_pulley = ["T2p5x16_pulley", "T2.5", 16, 12.16, T2p5x6, 8, 16, 5.7, 5, 16.0, 1.0, 6, 3.75, M4_grub_screw, 1]; -GT2x20um_pulley = ["GT2x20um_pulley", "GT2UM", 20, 12.22, GT2x6, 7.5, 18, 6.5, 5, 18.0, 1.0, 6, 3.75, M3_grub_screw, 2]; //Ultimaker -GT2x20ob_pulley = ["GT2x20ob_pulley", "GT2OB", 20, 12.22, GT2x6, 7.5, 16, 5.5, 5, 16.0, 1.0, 6, 3.25, M3_grub_screw, 2]; //Openbuilds -GT2x16_pulley = ["GT2x16_pulley", "GT2", 16, 9.75, GT2x6, 7.0, 13, 5, 5, 13.0, 1.0,4.5,3.0, M3_grub_screw, 2]; -GT2x12_pulley = ["GT2x12_pulley", "GT2RD", 12, 7.15, GT2x6, 6.5, 12, 5.5, 4, 12.0, 1.0, 4, 3.0, M3_grub_screw, 2]; //Robotdigg -GT2x20_toothed_idler = ["GT2x20_toothed_idler", "GT2", 20, 12.22, GT2x6, 6.5, 18, 0, 4, 18.0, 1.0, 0, 0, false, 0]; -GT2x20_plain_idler = ["GT2x20_plain_idler", "GT2", 0, 12.0, GT2x6, 6.5, 18, 0, 4, 18.0, 1.0, 0, 0, false, 0]; -GT2x16_toothed_idler = ["GT2x16_toothed_idler", "GT2", 16, 9.75, GT2x6, 6.5, 14, 0, 3, 14.0, 1.0, 0, 0, false, 0]; -GT2x16_plain_idler = ["GT2x16_plain_idler", "GT2", 0, 9.63, GT2x6, 6.5, 13, 0, 3, 13.0, 1.0, 0, 0, false, 0]; -GT2x16x7_plain_idler = ["GT2x16x7_plain_idler", "GT2", 0, 9.63, GT2x6, 7.0, 13, 0, 3, 13.0, 1.0, 0, 0, false, 0]; +// n t o b w h h b f f s s s s +// a e d e i u u o l l c c c c +// m e l d b b r a a r r r r +// e t t t e n n e e e e +// h h d l g g w w w w +// e e s +// l z +// d t +// +T5x10_pulley = ["T5x10_pulley", "T5", 10, 15, T5x6, 11.6, 7.9, 7, 5, 19.3, 1.7, 3, 10.7, M3_grub_screw, 1]; +T2p5x16_pulley = ["T2p5x16_pulley", "T2.5", 16, 12.16, T2p5x6, 8, 16, 5.7, 5, 16.0, 1.0, 6, 3.75, M4_grub_screw, 1]; +GT2x20um_pulley = ["GT2x20um_pulley", "GT2UM", 20, 12.22, GT2x6, 7.5, 18, 6.5, 5, 18.0, 1.0, 6, 3.75, M3_grub_screw, 2]; //Ultimaker +GT2x20ob_pulley = ["GT2x20ob_pulley", "GT2OB", 20, 12.22, GT2x6, 7.5, 16, 5.5, 5, 16.0, 1.0, 6, 3.25, M3_grub_screw, 2]; //Openbuilds +GT2x16_pulley = ["GT2x16_pulley", "GT2", 16, 9.75, GT2x6, 7.0, 13, 5, 5, 13.0, 1.0,4.5,3.0, M3_grub_screw, 2]; +GT2x12_pulley = ["GT2x12_pulley", "GT2RD", 12, 7.15, GT2x6, 6.5, 12, 5.5, 4, 12.0, 1.0, 4, 3.0, M3_grub_screw, 2]; //Robotdigg +GT2x20_toothed_idler = ["GT2x20_toothed_idler", "GT2", 20, 12.22, GT2x6, 6.5, 18, 0, 4, 18.0, 1.0, 0, 0, false, 0]; +GT2x20_plain_idler = ["GT2x20_plain_idler", "GT2", 0, 12.0, GT2x6, 6.5, 18, 0, 4, 18.0, 1.0, 0, 0, false, 0]; +GT2x16_toothed_idler = ["GT2x16_toothed_idler", "GT2", 16, 9.75, GT2x6, 6.5, 14, 0, 3, 14.0, 1.0, 0, 0, false, 0]; +GT2x16_plain_idler = ["GT2x16_plain_idler", "GT2", 0, 9.63, GT2x6, 6.5, 13, 0, 3, 13.0, 1.0, 0, 0, false, 0]; +GT2x16x7_plain_idler = ["GT2x16x7_plain_idler", "GT2", 0, 9.63, GT2x6, 7.0, 13, 0, 3, 13.0, 1.0, 0, 0, false, 0]; + +GT2x80_pulley = ["GT2x80_pulley", "GT2", 80, 50.42, GT2x6, 7, 35, 9, 5, 55, 1.0, 6, 4.5, M5_grub_screw, 2]; // Powge branded from West3D +GT2x16_toothed_idler_9 = ["GT2x16_toothed_idler_9", "GT2", 16, 9.75, GT2x9, 10, 14, 0, 3, 14.0, 1.0, 0, 0, false, 0];//Robotdigg +GT2x16_pulley_9 = ["GT2x16_pulley_9", "GT2", 16, 9.65, GT2x9, 9.5, 14, 6.5, 5, 14.0, 1.0, 6, 3.5, M3_grub_screw, 2]; +GT2x20_pulley_9 = ["GT2x20_pulley_9", "GT2", 20, 12.22, GT2x9, 11, 16, 7, 5, 16.0, 1.0, 6, 3.25, M4_grub_screw, 2];//Powge +GT2x20_toothed_idler_9 = ["GT2x20_toothed_idler_9", "GT2", 20, 12.22, GT2x9, 10, 18, 0, 5, 18.0, 1.0, 0, 0, false, 0]; + + pulleys = [T5x10_pulley, T2p5x16_pulley, @@ -49,6 +57,8 @@ pulleys = [T5x10_pulley, GT2x20_plain_idler, GT2x16_toothed_idler, GT2x16_plain_idler, - GT2x16x7_plain_idler]; + GT2x16x7_plain_idler + + ]; use diff --git a/vitamins/stepper_motor.scad b/vitamins/stepper_motor.scad index 57b6ad4..3cbc862 100644 --- a/vitamins/stepper_motor.scad +++ b/vitamins/stepper_motor.scad @@ -80,7 +80,7 @@ module NEMA(type, shaft_angle = 0, jst_connector = false) { //! Draw specified N shaft_rad = NEMA_shaft_dia(type) / 2; cap = NEMA_cap_heights(type)[1]; cap2 = NEMA_cap_heights(type)[0]; - vitamin(str("NEMA(", type[0], "): Stepper motor NEMA", round(NEMA_width(type) / 2.54), " x ", length, "mm")); + vitamin(str("NEMA(", type[0], "): Stepper motor NEMA", round(NEMA_width(type) / 2.54), " x ", length, "mm (", type[7],"x",type[8], " shaft)")); thread_d = NEMA_thread_d(type); corner_r = 0.9; bore = NEMA_shaft_bore(type); diff --git a/vitamins/stepper_motors.scad b/vitamins/stepper_motors.scad index 48cd6b2..c333a36 100644 --- a/vitamins/stepper_motors.scad +++ b/vitamins/stepper_motors.scad @@ -26,6 +26,7 @@ NEMA8_30 = ["NEMA8_30", 20, 30, 30/2, 20, 7.5, 1.6, 4, 6, 16, [8, 8], 2, true, true, 0, 0]; NEMA8_30BH = ["NEMA8_30BH", 20, 30, 30/2, 20, 7.5, 1.6, 5, 12, 16, [8, 8], 2, true, true, 7, 2.8]; NEMA17_47 = ["NEMA17_47", 42.3, 47, 53.6/2, 25, 11, 2, 5, 24, 31, [11.5, 9], 3, false, false, 0, 0]; +NEMA17_47L80 = ["NEMA17_47L80", 42.3, 47, 53.6/2, 25, 11, 2, 5, 80, 31, [11.5, 9], 3, false, true, 0, 0]; NEMA17_40 = ["NEMA17_40", 42.3, 40, 53.6/2, 25, 11, 2, 5, 20, 31, [12.5, 11], 3, false, false, 0, 0]; NEMA17_40L280 = ["NEMA17_40L280", 42.3, 40, 53.6/2, 25, 11, 2, 8, [280, 8, 4], 31, [12.5, 11], 3, false, false, 0, 0]; NEMA17_34 = ["NEMA17_34", 42.3, 34, 53.6/2, 25, 11, 2, 5, 24, 31, [8, 8], 3, false, false, 0, 0]; @@ -34,7 +35,7 @@ NEMA16_19 = ["NEMA16_19", 39.5, 19.2, 50.6/2, 50.6/2, 11, 2, 5 NEMA14_36 = ["NEMA14_36", 35.2, 36, 46.4/2, 21, 11, 2, 5, 21, 26, [8, 8], 3, false, false, 0, 0]; NEMA23_51 = ["NEMA23_51", 56.4, 51.2, 75.7/2, 35, 38.1/2, 1.6, 6.35, 24, 47.1, [8, 8], 3, false, false, 0, 0]; -stepper_motors = [NEMA8_30, NEMA8_30BH, NEMA14_36, NEMA16_19, NEMA17_27, NEMA17_34, NEMA17_40, NEMA17_47, NEMA23_51]; +stepper_motors = [NEMA8_30, NEMA8_30BH, NEMA14_36, NEMA16_19, NEMA17_27, NEMA17_34, NEMA17_40, NEMA17_47,NEMA17_47L80, NEMA23_51]; small_steppers = []; use From 905fc016778d6a78774c05236425463fa2aa3323 Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 13 Mar 2024 17:46:08 -0500 Subject: [PATCH 2/6] adding rod end bearing and a yellow bed spring --- vitamins/rod_end.scad | 144 +++++++++++++++++++++++++++++++++++++++++ vitamins/rod_ends.scad | 5 ++ vitamins/springs.scad | 8 ++- 3 files changed, 154 insertions(+), 3 deletions(-) create mode 100644 vitamins/rod_end.scad create mode 100644 vitamins/rod_ends.scad diff --git a/vitamins/rod_end.scad b/vitamins/rod_end.scad new file mode 100644 index 0000000..9c4cfae --- /dev/null +++ b/vitamins/rod_end.scad @@ -0,0 +1,144 @@ +include +include + + +function rod_end_bearing_bore(type) =type[1]; // radius of the bore hole in the bearing +function rod_end_bearing_od(type) =type[2]; // Outer diameter of the bearing +function rod_end_bore_width(type) = type[3]; //! Width +function rod_end_bearing_width(type) = type[4]; //! Width +function rod_end_bearing_shield_colour(type) = type[5]; //! Shield colour, "silver" for metal +function rod_end_screw_radius(type) =type[6]/2; // radius of the screw end, not the bore +// function screw_pitch(type) =type[6]; // pitch of the screw end, not the bore +function rod_end_sphere_seg_width(type) = type[7]; // the width of the pivoting part, effectively a (sphere - sphereCaps - center bore) +function rod_end_sphere_radius(type) = type[8]; +function rod_end_screw_length(type) =type[9]; // length of the screw from eye center, not the bore +function rod_end_thread_length(type) =type[10]; // length of the threads +function rod_end_overall_length(type) = type[11]; +function rod_end_bearing_rim(type) = type[12]; //! Outer rim thickness guesstimate + +// function screw_thread_radius(type) = //! Thread radius +// let(d = screw_thread_diameter(type)) is_undef(d) ? rod_end_screw_radius(type) : d / 2; + + +module rod_end_bearing(type) { + + bb_bore = rod_end_bearing_bore(type); + bb_od=rod_end_bearing_od(type); + bb_rim=rod_end_bearing_rim(type); + + bb_width=rod_end_bearing_width(type); + bb_shield_colour = rod_end_bearing_shield_colour(type); + length = rod_end_screw_length(type); + sphere_rad = rod_end_sphere_radius(type)/2; + rod_end_sphere_seg_width= rod_end_sphere_seg_width(type); + shaft_rad = rod_end_screw_radius(type) - eps; + thread_rad = rod_end_screw_radius(type); + thread = rod_end_thread_length(type); //length - bb_od/2; + // thread = length - bb_od/2; + thread_offset = 0; + thread_d = 2 * thread_rad; + pitch = metric_coarse_pitch(thread_d); + colour = grey(80); + shield_width=bb_width - (bb_width < 5 ? 0.5 : 1); + chamfer = bb_rim / 6; + +description = str("Rod End Bearing ", type[1], length < 10 ? " x " : " x ", length, "mm"); + vitamin(str("Rod End Bearing(", type[0], length, "): ", description)); + + // show_threads=true; + + module shaft(socket = 0, headless = false) { + // point = screw_nut(type) ? 0 : 3 * shaft_rad; + shank = length; + + if(show_threads && pitch) + translate_z(-length - thread_offset) + male_metric_thread(thread_d, pitch, thread, false, top = headless ? -1 : 0, solid = !headless, colour = colour); + else + color(colour * 0.9) + rotate_extrude() { + translate([0, -length - thread_offset]) + square([thread_rad - eps, thread ]); + + // if(point) + // polygon([ + // [0.4, -length], [0, point - length], [shaft_rad, point - length] + // ]); + } + + + // if(shank > 0) + // color(colour) + // translate_z(-shank - socket) + // cylinder(r = shaft_rad + eps, h = shank); + } + + module bearingEye(){ + rotate_extrude() + { + difference() { + circle(r = sphere_rad); + translate(v = [0,-sphere_rad]) + square(size = sphere_rad*2); + + for(i=[0,1]) + mirror(v = [0,i]) + translate(v = [-sphere_rad,rod_end_sphere_seg_width/2]) + square(size = sphere_rad*2); + + square([bb_bore,rod_end_sphere_seg_width+1], center=true); + } + } + + color(bb_shield_colour) + rotate_extrude() + { + difference() { + translate([0,-shield_width/2]) + square([bb_od/2-bb_rim,shield_width]); + circle(r = sphere_rad); + } + } + + // rotate_extrude() + // { + // translate([0,-bb_width/2]) + // difference() { + // square([(bb_od)/2,bb_width]); + // square([bb_od/2-bb_rim,bb_width]); + // } + // } + + rotate_extrude() + hull() { + // rim= bb_rim; + or= bb_od/2; + h = bb_width; + translate([or - bb_rim, -h / 2 + chamfer]) + square([bb_rim, h - 2 * chamfer]); + + translate([or - bb_rim, -h / 2]) + square([bb_rim - chamfer, h]); + } + translate([0,0,-bb_width/2+chamfer]) + linear_extrude(bb_width-chamfer*2){ + difference() { + + hull(){ + circle(r = bb_od/2); + translate([length-thread,-shaft_rad]) + square([0.5,shaft_rad*2]); + } + circle(r = bb_od/2-bb_rim); + } + } + } + + + + shaft(); + rotate([0,90,0]) + bearingEye(); + + // square() +} \ No newline at end of file diff --git a/vitamins/rod_ends.scad b/vitamins/rod_ends.scad new file mode 100644 index 0000000..10ed3cd --- /dev/null +++ b/vitamins/rod_ends.scad @@ -0,0 +1,5 @@ +RE_m5_bearing = ["rodEndBearingM5", 5, 16, 8, 6, "gold", 5, 8, 11.11, 33, 21, 41, 2.0, 2.0, 0, 0]; // uxcell M5x0.8 Right Hand Thread, Self-Lubricating Joint Rod Ends + +rod_ends= [ RE_m5_bearing]; + +use \ No newline at end of file diff --git a/vitamins/springs.scad b/vitamins/springs.scad index 2972c24..004e425 100644 --- a/vitamins/springs.scad +++ b/vitamins/springs.scad @@ -17,9 +17,11 @@ // If not, see . // -peg_spring = ["peg_spring", 6.4, 0.9, 15.5, 8, 1, false, 0, "silver"]; -batt_spring = ["batt_spring", 5, 0.5, 8, 5, 1, false, 6, "silver"]; +// name OD wireG len #trns clsd flat OD2 color +peg_spring = ["peg_spring", 6.4, 0.9, 15.5, 8, 1, false, 0, "silver"]; +yellow_bed_spring = ["yellow_bed_spring", 8, 0.9, 20, 10, 1, false, 0, "yellow"]; +batt_spring = ["batt_spring", 5, 0.5, 8, 5, 1, false, 6, "silver"]; -springs = [peg_spring, batt_spring]; +springs = [peg_spring, batt_spring, yellow_bed_spring]; use From 90fb9eb01f8721cb48589e59a14b3770da250cd5 Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 18 Mar 2024 11:58:21 -0500 Subject: [PATCH 3/6] adding F625 ball bearing --- vitamins/ball_bearings.scad | 1 + 1 file changed, 1 insertion(+) diff --git a/vitamins/ball_bearings.scad b/vitamins/ball_bearings.scad index 9e1596a..05a095c 100644 --- a/vitamins/ball_bearings.scad +++ b/vitamins/ball_bearings.scad @@ -34,6 +34,7 @@ BBMR93 = ["MR93", 3, 9, 4, "silver", 0.5, 0.5, 0, 0]; BBMR95 = ["MR95", 5, 9, 3, "silver", 0.5, 0.5, 0, 0]; BBF623 = ["F623", 3, 10, 4, "black", 0.6, 0.7, 11.5, 1]; BBF693 = ["F693", 3, 8, 3, "silver", 0.5, 0.7, 9.5, 0.7]; +BBF625 = ["F625", 5, 16, 5, "silver", 1.0, 1.0, 18, 1]; BBF695 = ["F695", 5, 13, 4, "silver", 1.0, 1.0, 15, 1]; ball_bearings = [BBF693, BBF623, BBF695, BBMR63, BBMR83, BBMR93, BBSMR95, BB624, BB686, BB696, BB608, BB6200, BB6201, BB6808]; From ba45f8558007c7efe6bfd17bebacf285293ba4ad Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 13 Aug 2024 12:13:58 -0500 Subject: [PATCH 4/6] adding weld nuts, m4 and m6 for now --- vitamins/nut.scad | 33 +++++++++++++++++++++++++++++++++ vitamins/nuts.scad | 4 +++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/vitamins/nut.scad b/vitamins/nut.scad index f803a3d..50151e0 100644 --- a/vitamins/nut.scad +++ b/vitamins/nut.scad @@ -245,6 +245,39 @@ module sliding_t_nut(type) { //! Draw a sliding T nut, T nut with a spring loade extrusionSlidingNut(size, tab[0], tab[1], tabSizeZ, holeRadius, 0, hammerNut); } +module weld_nut(type) { + thread_d = nut_size(type); + hole_rad = thread_d / 2; + nut_neck_rad = nut_radius(type); + // top_rad = type[4] / 2; + thickness = nut_thickness(type); + base_rad = type[7]/2; + base_thickness= type[8]; + + + vitamin(str("weld nut(", type[0], "): Weld Nut M", nut_size(type))); + colour = silver; + explode(10) { + color(colour) { + + rotate_extrude() + polygon([ + [hole_rad, -base_thickness], + [base_rad, -base_thickness], + [base_rad, 0], + [hole_rad, 0], + [nut_neck_rad, 0], + [nut_neck_rad, thickness], + [hole_rad, thickness] + ]); + } + + if(show_threads) + female_metric_thread(thread_d, metric_coarse_pitch(thread_d), thickness, center = false, colour = colour); + } + +} + module extrusionSlidingNut(size, tabSizeY1, tabSizeY2, tabSizeZ, holeRadius, holeOffset = 0, hammerNut = false) { // center section stem_h = size.z - tabSizeZ; diff --git a/vitamins/nuts.scad b/vitamins/nuts.scad index 03e14e9..7ac1359 100644 --- a/vitamins/nuts.scad +++ b/vitamins/nuts.scad @@ -49,7 +49,9 @@ M6_half_nut = ["M6_half_nut", 6, 11.5, 3, 8, M6_washer, 3, M8_nut = ["M8_nut", 8, 15, 6.5, 8, M8_washer, M8_nut_depth, 0, [15, 11.35]]; toggle_nut = ["toggle_nut", 6.1, 9.2, 1.5, 1.5, M6_washer, 1.5, inch(1/40)]; -M4_wingnut = ["M4_wingnut", 4, 10, 3.75,8, M4_washer, 0, 22, 10, 6, 3]; +M4_wingnut = ["M4_wingnut", 4, 10, 3.75,8, M4_washer, 0, 22, 10, 6, 3]; +M4_weld_nut = ["M4_weld_nut", 4, 5.3, 6.3, 8, M4_washer, 0, 18, 0.8, 6, 3]; +M6_weld_nut = ["M6_weld_nut", 6, 7.7, 7.9, 8, M6_washer, 0, 19.1, 1.2, 6, 3]; // sx ty1 ty2 hammer M3_sliding_t_nut = ["M3_sliding_t_nut", 3, 6, 3.0, 4.0, false, 0, 10, 10, 6, false]; M4_sliding_t_nut = ["M4_sliding_t_nut", 4, 6, 3.7, 4.7, false, 0, 11, 10, 6, false]; From e97f9fdacc87bbc31cb9f0f3474132bc09f5ed91 Mon Sep 17 00:00:00 2001 From: = Date: Wed, 14 Aug 2024 09:38:17 -0500 Subject: [PATCH 5/6] adding weld nuts --- vitamins/nut.scad | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vitamins/nut.scad b/vitamins/nut.scad index 50151e0..dcba1ea 100644 --- a/vitamins/nut.scad +++ b/vitamins/nut.scad @@ -257,7 +257,7 @@ module weld_nut(type) { vitamin(str("weld nut(", type[0], "): Weld Nut M", nut_size(type))); colour = silver; - explode(10) { + explode(-20) { color(colour) { rotate_extrude() From f86dfef919731f9731ca39f70ebd07b2c7204dfa Mon Sep 17 00:00:00 2001 From: texas Date: Wed, 14 Aug 2024 09:40:52 -0500 Subject: [PATCH 6/6] fixed the calculations for dome screws to now use equations for a scaled sphere cap instead. This allows for larger and smaller sizes than were previously possible, and also eliminates the need for that lift value. Adding M6 and M8 dome screws as a result of this new ability --- vitamins/screw.scad | 18 +++++++++++------- vitamins/screws.scad | 4 +++- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/vitamins/screw.scad b/vitamins/screw.scad index befca53..7023f53 100644 --- a/vitamins/screw.scad +++ b/vitamins/screw.scad @@ -237,21 +237,25 @@ module screw(type, length, hob_point = 0, nylon = false) { //! Draw specified sc } if(head_type == hs_dome) { - lift = 0.38; - h = head_height - lift; - r = min(2 * head_height, (sqr(head_rad) + sqr(h)) / 2 * h); // Special case for M2 - y = sqrt(sqr(r) - sqr(head_rad)); + R_minus_h = head_height; // h would be the height of the sphere cap that's cut off of the top of the screw dome + a= socket_rad; + // this is the trig way to do this, + // alpha=atan(R_minus_h/a); + // R = R_minus_h/sin(alpha); //Radius if the cap was a perfect unscaled sphere + // this is mathematcially equivalent, but may run faster computationally with sqrt and ^2 instead of trig + R= a*sqrt((R_minus_h^2/a^2)+1); // Radius if the cap was a perfect unscaled sphere + dome_height_scaling_factor= R/head_rad; color(colour) { rotate_extrude() { difference() { intersection() { - translate([0, -y + lift]) - circle(r); + scale([1,dome_height_scaling_factor]) + circle(r=head_rad); square([head_rad, head_height]); } translate([0, head_height - socket_depth]) - square([socket_rad, 10]); + square([socket_rad, 20]); } } linear_extrude(head_height) diff --git a/vitamins/screws.scad b/vitamins/screws.scad index 152361c..6fd2b7d 100644 --- a/vitamins/screws.scad +++ b/vitamins/screws.scad @@ -87,6 +87,8 @@ M2p5_dome_screw = ["M2p5_dome", "M2.5 dome", hs_dome,2.5, 5.35,1.6, 0.8, 2.0 M3_dome_screw = ["M3_dome", "M3 dome", hs_dome, 3, 5.7, 1.65, 1.04,2.0, 18, M3_washer, M3_nut, M3_tap_radius, M3_clearance_radius]; M4_dome_screw = ["M4_dome", "M4 dome", hs_dome, 4, 7.6, 2.2, 1.3, 2.5, 20, M4_washer, M4_nut, M4_tap_radius, M4_clearance_radius]; M5_dome_screw = ["M5_dome", "M5 dome", hs_dome, 5, 9.5, 2.75, 1.56,3.0, 22, M5_washer, M5_nut, M5_tap_radius, M5_clearance_radius]; +M6_dome_screw = ["M6_dome", "M6 dome", hs_dome, 6, 10.5, 3.3, 2.5,4.0, 24, M6_washer, M6_nut, M6_tap_radius, M6_clearance_radius]; +M8_dome_screw = ["M8_dome", "M8 dome", hs_dome, 8, 14, 4.4, 3,5.0, 30, M8_washer, M8_nut, M8_tap_radius, M8_clearance_radius]; M2p5_pan_screw = ["M2p5_pan", "M2.5 pan", hs_pan, 2.5, 4.7, 1.7, 0, 0, 0, M2p5_washer, M2p5_nut, M2p5_tap_radius, M2p5_clearance_radius]; M3_pan_screw = ["M3_pan", "M3 pan", hs_pan, 3, 5.4, 2.0, 0, 0, 0, M3_washer, M3_nut, M3_tap_radius, M3_clearance_radius]; @@ -122,7 +124,7 @@ screw_lists = [ [ 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], +[ M2_dome_screw, M2p5_dome_screw,M3_dome_screw, M4_dome_screw, M5_dome_screw, M6_dome_screw, M8_dome_screw], [ 0, 0, M3_hex_screw, M4_hex_screw, M5_hex_screw, M6_hex_screw, M8_hex_screw], [ 0, M2p5_pan_screw, M3_pan_screw, M4_pan_screw, M5_pan_screw, M6_pan_screw, No632_pan_screw], [ No2_screw, 0, No4_screw, No6_screw, No8_screw, No6_cs_screw],