chiark / gitweb /
filamentclip as trying small again
[reprap-play.git] / filamentclip.scad
1 include <cliphook.scad>
2
3 h=3.5;
4 teethw=1.5;
5
6 looprad=2.5;
7
8 fdia=1.77;
9 //fdia=3;
10
11 d=0.01;
12
13 module FilamentClipTeeth(teethw=teethw,
14                          stembendd=0.5, stembendl=7, teethxl=1.5) {
15   gapw = fdia-stembendd*2;
16   teethbigw = gapw + teethw*2;
17   basew = fdia+teethw*2-stembendd*2;
18   based = basew/3;
19
20   translate([-based, -basew/2, 0]) cube([based, basew, h]);
21   difference() {
22     union() {
23       translate([-d, -teethbigw/2, 0])
24         cube([d+stembendl + teethw, teethbigw, h]);
25 //  translate([
26 //  stembigw = fdia + stembend
27 //  translate([-d, -stemw, 
28       linear_extrude(height=h) {
29         translate([stembendl-fdia/2, 0]) circle(fdia/2+teethw, $fn=30);
30       }
31     }
32     translate([0,0,-1]) {
33       translate([0,-gapw/2])
34         cube([stembendl+teethxl+1, gapw, h+2]);
35       linear_extrude(height=h+2) {
36         translate([stembendl-fdia/2, 0]) circle(fdia/2, $fn=30);
37       }
38     }
39   }
40
41   for (mirr=[0:1]) {
42     mirror([0,mirr,0]) {
43       translate([stembendl + teethw, gapw/2, 0])
44         rotate([0,0,30])
45         cube([teethxl, teethw, h]);
46     }
47   }
48 }
49
50 module our_ClipHook(ye){
51   ClipHook(h=h, w=w, g=0.6, k=1.5, g=0.6, ye=ye, cupcaph=0.5, cupcapg=0.8);
52 }
53
54 module FilamentClip(w, rad, trans) {
55   loopw=w;
56
57   rotate([0,0, trans ? -90 : -70]) {
58     translate([(trans ? 7 : 0), rad - (trans ? 0 : 1.5), 0]) {
59       rotate([0,0,8])
60         our_ClipHook(w=w, ye=-1.3);
61     }
62   }
63
64   rotate([0,0, trans ? -55 : -35]) {
65     translate([(trans ? +1.5 : 0), rad, 0]) {
66       rotate([0,0,180])
67         our_ClipHook(w=w, ye=0.8);
68     }
69   }
70
71   linear_extrude(height=h) {
72     assign($fn=80) {
73       FlatArc(0,0, rad-w/2,rad+w/2, 80,181);
74       translate([0,-trans,0])
75         FlatArc(0,0, rad-w/2,rad+w/2, 179, trans ? 360 : 350);
76     }
77     assign($fn=30) {
78       rotate([0,0,loopang])
79         FlatArc(0,rad+looprad+w, looprad,looprad+loopw);
80     }
81   }
82
83   if (trans==0) {
84     for (mir=[0,1]) {
85       mirror([mir,0,0])
86         rotate([0,0,-40])
87         translate([rad+w*0.3+teethw*0.3+fdia/2, 0, 0])
88         rotate([0,0,95])
89         FilamentClipTeeth();
90     }
91   } else {
92     for (mir=[0,1]) {
93       mirror([mir,0,0])
94         translate([0, mir==0 ? 0 : -trans, 0])
95         rotate([0,0, mir ? 0 : 180])
96         translate([0,-2,0])
97         rotate([0,0, -25])
98         translate([rad+w*0.3+teethw*0.3+fdia/2 - 1.6, 0, 0])
99         rotate([0,0,95])
100         FilamentClipTeeth();
101     }
102     for (mir=[0,1]) {
103       mirror([mir,0,0])
104         translate([-rad-w/2, -trans-0.1, 0])
105         cube([w, trans+0.2 + (mir ? -13 : 0), h]);
106     }
107   }
108 }
109
110 //FilamentClip(w=2.5, rad=19, trans=0);
111
112 //translate([40,0,0])
113   FilamentClip(w=1.5, rad=4, trans=13);