3 // print Stem and Wingnut on High Detail
4 // but adjust shell thickness to 2mm
10 include <camera-mount.scad>
12 positive_dia = inch * 3/8. - 0.375;
13 positive_l = inch * 1/2.;
25 thread_act = thread_nom + 0.600;
30 clamp_bot_tooth_h = 2.5;
31 clamp_bot_tooth_d = 10;
32 clamp_bot_collar = 20;
33 clamp_bot_collar_th = 4.0;
36 clamp_max_table_th = 35;
38 clamp_hole_dia = thread_nom + 0.30;
40 clamp_reg_clear_x = 2.5;
41 clamp_reg_clear_y = 0.75; // each side
42 clamp_reg_extra_x = 4;
48 wingnut_wing_mindia = 17.0;
49 wingnut_wing_xrad = 8;
61 wingnut_cnr = wingnut_wing_th/2 -0.1;
63 clamp_reg_bot_x_min = stem_base_dia/2 + clamp_reg_clear_x - clamp_reg_sz;
66 translate([0,0,-0.01])
67 metric_thread(diameter=thread_act, pitch=thread_pitch,
68 leadin=3, internal=true,
69 test=$test, length=l);
72 module Stem(){ ////toplevel
73 translate([0,0, stem_l -0.1])
74 english_thread(diameter=positive_dia/inch, threads_per_inch=16,
76 length= (positive_l + 0.1) / inch);
80 cylinder(r= stem_dia/2 * 1/(0.5 * sqrt(3)),
83 cylinder(r= stem_base_dia/2,
86 OurThread(stem_inner_l);
90 module Wingnut(){ ////toplevel
93 cylinder(r= (thread_nom+wingnut_wall)/2,
96 sphere(r= wingnut_cnr);
97 translate([0,0, wingnut_cnr*0.5])
98 linear_extrude(height= wingnut_wing_xh + wingnut_th
100 square([wingnut_wing_mindia + wingnut_wing_xrad*2 - wingnut_cnr*2,
101 wingnut_wing_th - wingnut_cnr*2],
105 translate([0,0, wingnut_th])
106 linear_extrude(height= wingnut_wing_xh+1)
107 square(wingnut_wing_mindia, center=true);
108 translate([0,0, wingnut_th])
110 OurThread(wingnut_th+3);
112 linear_extrude(height=5)
113 square(center=true, wingnut_wing_mindia*2);
117 module ClampCollarPlan(){
118 circle(r= thread_nom/2 + clamp_bot_collar_th);
120 module ClampHolePlan(){
121 circle(r= clamp_hole_dia/2);
123 module ClampArmPlan(){
124 rectfromto([0, -clamp_w/2],
125 [clamp_l, +clamp_w/2]);
128 module ClampTop(){ ////toplevel
129 linear_extrude(height = clamp_top_th, convexity=4) {
138 linear_extrude(height = clamp_reg_sz, convexity=4) {
142 translate([0, clamp_reg_sz/2 + clamp_reg_clear_y, 0])
143 rectfromto([-clamp_reg_bot_x_min - clamp_reg_extra_x, 0 ],
151 module ClampBot(){ ////toplevel
152 linear_extrude(height = clamp_bot_th, convexity=4) {
158 translate([clamp_l, 0, clamp_bot_th-0.1])
159 linear_extrude(height = clamp_bot_tooth_h +0.1)
160 rectfromto([ -clamp_bot_tooth_d, -clamp_w/2 ],
162 translate([0,0, clamp_bot_th])
164 linear_extrude(height = clamp_bot_collar)
169 translate([0, 0, clamp_bot_th]) {
170 linextr(-clamp_reg_sz, clamp_max_table_th+clamp_reg_sz) {
171 translate([-clamp_reg_bot_x_min, 0]) {
172 rectfromto([ 0, -clamp_reg_sz/2 ],
173 [ clamp_reg_sz, +clamp_reg_sz/2 ]);
176 linextr(-clamp_reg_sz, 0) {
178 rectfromto([ -clamp_reg_bot_x_min, -clamp_reg_sz/2 ],
179 [ 0, +clamp_reg_sz/2 ]);