10 ratchettoothsmoothr=1;
11 ratchettoothslope=0.75;
17 ratchetpawl=ratchetstep-ratchettooth-bigslop*2;
19 include <doveclip.scad>
21 channelwidth = prongthick + slop;
22 channeldepth = prongwidth + ratchettoothheight;
23 totalwidth = armendwallthick*2 + channelwidth;
24 totalheight = channeldepth + armendbasethick;
26 doveclipheight = totalheight;
28 module ArmEnd(length=120){
29 translate([ratchettoothsmoothr, channelwidth/2, -armendbasethick]) {
31 DoveClipPairBase(h=doveclipheight);
34 for (dx = [0 : ratchetstep : length]) translate([dx,0,0]) {
36 translate([0, -armendwallthick, -armendbasethick])
37 cube([ratchetstep+overlap, totalwidth, totalheight]);
39 cube([ratchetstep+overlap+2, channelwidth, channeldepth+1]);
41 translate([ratchettoothsmoothr+0.5, armendwallthick/2, 0]) minkowski(){
43 cylinder($fn=20, r=ratchettoothsmoothr, h=armendwallthick);
44 multmatrix([ [ 1, 0, ratchettoothslope, 0 ],
48 cube([ratchettooth - ratchettoothsmoothr*2,
49 channelwidth, ratchettoothheight]);
54 module FilamentHandle(stalklength=50){
55 pawlusewidth = ratchetpawl-ratchettoothsmoothr*2;
57 cube([stalklength, prongwidth, prongthick]);
58 translate([ratchettoothsmoothr, prongwidth, 0]) {
60 cylinder($fn=20,r=ratchettoothsmoothr, h=1);
61 multmatrix([ [ 1, -ratchettoothslope, 0, 0 ],
66 ratchettoothheight - ratchettoothsmoothr,