chiark / gitweb /
3f7c05f2b592276725d0de05c68dad611c9c5a94
[reprap-play.git] / mic-table-clamp.scad
1 // -*- C -*-
2
3 // print on High Detail
4 // but adjust shell thickness to 2mm
5
6 include <threads.scad>
7 include <camera-mount.scad>
8
9 positive_dia = inch * 3/8. - 0.375;
10 positive_l = inch * 1/2.;
11
12 stem_l = 40;
13 stem_dia = 12;
14 stem_th = 3;
15 stem_ceil = 2;
16 stem_base_th  = 4;
17 stem_base_dia = 25;
18 stem_inner_l = 30;
19
20 thread_nom = 8;
21 thread_pitch = 1.25;
22 thread_act = thread_nom + 0.600;
23
24 wingnut_th = 5;
25 wingnut_wall = 4;
26 wingnut_wing_mindia = 17.0;
27 wingnut_wing_xrad = 8;
28 wingnut_wing_xh = 5;
29 wingnut_wing_th = 3;
30
31 $test= true;
32 ///$test= false;
33
34 //$fa= 3;
35 //$fs= 0.2;
36
37 // calculated
38
39 wingnut_cnr = wingnut_wing_th/2 -0.1;
40
41 module OurThread(l){
42   translate([0,0,-0.01])
43     metric_thread(diameter=thread_act, pitch=thread_pitch,
44                   leadin=3, internal=true,
45                   test=$test, length=l);
46 }
47
48 module Stem(){
49   translate([0,0, stem_l -0.1])
50     english_thread(diameter=positive_dia/inch, threads_per_inch=16,
51                    leadin=1, test=$test,
52                    length= (positive_l + 0.1) / inch);
53
54   difference(){
55     union(){
56       cylinder(r= stem_dia/2 * 1/(0.5 * sqrt(3)),
57                h = stem_l,
58                $fn=6);
59       cylinder(r= stem_base_dia/2,
60                h = stem_base_th);
61     }
62     OurThread(stem_inner_l);
63   }
64 }
65
66 module Wingnut(){
67   difference(){
68     union(){
69       cylinder(r= (thread_nom+wingnut_wall)/2,
70                h= wingnut_th);
71       minkowski(){
72         sphere(r= wingnut_cnr);
73         translate([0,0, wingnut_cnr*0.5])
74           linear_extrude(height= wingnut_wing_xh + wingnut_th
75                          - wingnut_cnr*1.5)
76           square([wingnut_wing_mindia + wingnut_wing_xrad*2 - wingnut_cnr*2,
77                   wingnut_wing_th - wingnut_cnr*2],
78                  center=true);
79       }
80     }
81     translate([0,0, wingnut_th])
82       linear_extrude(height= wingnut_wing_xh+1)
83       square(wingnut_wing_mindia, center=true);
84     translate([0,0, wingnut_th])
85       rotate([180,0,0])
86       OurThread(wingnut_th+3);
87     mirror([0,0,1])
88       linear_extrude(height=5)
89       square(center=true, wingnut_wing_mindia*2);
90   }
91 }
92
93 //Wingnut();
94 Stem();