chiark / gitweb /
7c2434e32b4ed5b369ff559810c9f9570880b1fd
[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   translate([ratchettoothsmoothr, channelwidth/2, -armendbasethick]) {
25     rotate([0,0,-90])
26       DoveClipPairBase(h=totalheight);
27   }
28
29   for (dx = [0 : ratchetstep : length]) translate([dx,0,0]) {
30     difference(){
31       translate([0, -armendwallthick, -armendbasethick])
32         cube([ratchetstep+overlap, totalwidth, totalheight]);
33       translate([-1, 0, 0])
34         cube([ratchetstep+overlap+2, channelwidth, channeldepth+1]);
35     }
36     translate([ratchettoothsmoothr+0.5, armendwallthick/2, 0]) minkowski(){
37       rotate([90,0,0])
38         cylinder($fn=20, r=ratchettoothsmoothr, h=armendwallthick);
39       multmatrix([      [       1, 0, ratchettoothslope, 0      ],
40                         [       0,      1,      0,      0       ],
41                         [       0,      0,      1,      0       ],
42                         [       0,      0,      0,      1       ]])
43         cube([ratchettooth - ratchettoothsmoothr*2,
44               channelwidth, ratchettoothheight]);
45     }
46   }
47 }
48
49 ArmEnd();