chiark / gitweb /
doveclip DoveClipPairBase
[reprap-play.git] / filamentspool.scad
1
2 slop=0.5;
3
4 prongthick=5;
5 prongwidth=5;
6 ratchetstep=15;
7 ratchettooth=3;
8 ratchettoothheight=5;
9 ratchettoothsmoothr=1;
10 ratchettoothslope=0.75;
11 overlap=0.5;
12
13 armendwallthick=2.5;
14 armendbasethick=1.2;
15
16 include <doveclip.scad>
17
18 module ArmEnd(length=120){
19   channelwidth = prongthick + slop;
20   channeldepth = prongwidth + ratchettoothheight;
21   totalwidth = armendwallthick*2 + channelwidth;
22   totalheight = channeldepth + armendbasethick;
23
24   basecube = 5;
25
26   translate([0, 3, -armendbasethick]) {
27     translate([-basecube+0.5, -7.5, 0])
28       cube([basecube, 15, totalheight]);
29
30     translate([-basecube+2,0,0])
31       rotate([0,0,-90])
32       DoveClipPair(h=totalheight);
33   }
34
35   for (dx = [0 : ratchetstep : length]) translate([dx,0,0]) {
36     difference(){
37       translate([0, -armendwallthick, -armendbasethick])
38         cube([ratchetstep+overlap, totalwidth, totalheight]);
39       translate([-1, 0, 0])
40         cube([ratchetstep+overlap+2, channelwidth, channeldepth+1]);
41     }
42     translate([ratchettoothsmoothr+0.5, armendwallthick/2, 0]) minkowski(){
43       rotate([90,0,0])
44         cylinder($fn=20, r=ratchettoothsmoothr, h=armendwallthick);
45       multmatrix([      [       1, 0, ratchettoothslope, 0      ],
46                         [       0,      1,      0,      0       ],
47                         [       0,      0,      1,      0       ],
48                         [       0,      0,      0,      1       ]])
49         cube([ratchettooth - ratchettoothsmoothr*2,
50               channelwidth, ratchettoothheight]);
51     }
52   }
53 }
54
55 ArmEnd();