slop=0.5;
+bigslop=slop*2;
prongthick=5;
prongwidth=5;
armendwallthick=2.5;
armendbasethick=1.2;
+ratchetpawl=ratchetstep-ratchettooth-bigslop*2;
+
include <doveclip.scad>
-module ArmEnd(length=120){
- channelwidth = prongthick + slop;
- channeldepth = prongwidth + ratchettoothheight;
- totalwidth = armendwallthick*2 + channelwidth;
- totalheight = channeldepth + armendbasethick;
+channelwidth = prongthick + slop;
+channeldepth = prongwidth + ratchettoothheight;
+totalwidth = armendwallthick*2 + channelwidth;
+totalheight = channeldepth + armendbasethick;
+
+doveclipheight = totalheight;
+module ArmEnd(length=120){
translate([ratchettoothsmoothr, channelwidth/2, -armendbasethick]) {
rotate([0,0,-90])
- DoveClipPairBase(h=totalheight);
+ DoveClipPairBase(h=doveclipheight);
}
for (dx = [0 : ratchetstep : length]) translate([dx,0,0]) {
}
}
-ArmEnd();
+module FilamentHandle(stalklength=50){
+ pawlusewidth = ratchetpawl-ratchettoothsmoothr*2;
+ mirror([0,1,0]) {
+ cube([stalklength, prongwidth, prongthick]);
+ translate([ratchettoothsmoothr, prongwidth, 0]) {
+ minkowski(){
+ cylinder($fn=20,r=ratchettoothsmoothr, h=1);
+ multmatrix([ [ 1, -ratchettoothslope, 0, 0 ],
+ [ 0, 1, 0, 0 ],
+ [ 0, 0, 1, 0 ],
+ [ 0, 0, 0, 1 ]])
+ cube([pawlusewidth,
+ ratchettoothheight - ratchettoothsmoothr,
+ prongthick]);
+ }
+ }
+ }
+}
+
+//ArmEnd();
+FilamentHandle();