slop=0.5;
+bigslop=slop*2;
prongthick=5;
prongwidth=5;
armendwallthick=2.5;
armendbasethick=1.2;
-include <doveclip.scad>
+ratchetpawl=ratchetstep-ratchettooth-bigslop*2;
-module ArmEnd(length=120){
- channelwidth = prongthick + slop;
- channeldepth = prongwidth + ratchettoothheight;
- totalwidth = armendwallthick*2 + channelwidth;
- totalheight = channeldepth + armendbasethick;
+include <doveclip.scad>
- basecube = 5;
+channelwidth = prongthick + slop;
+channeldepth = prongwidth + ratchettoothheight;
+totalwidth = armendwallthick*2 + channelwidth;
+totalheight = channeldepth + armendbasethick;
- translate([0, 3, -armendbasethick]) {
- translate([-basecube+0.5, -7.5, 0])
- cube([basecube, 15, totalheight]);
+doveclipheight = totalheight;
- translate([-basecube+2,0,0])
- rotate([0,0,-90])
- DoveClipPair(h=totalheight);
+module ArmEnd(length=120){
+ translate([ratchettoothsmoothr, channelwidth/2, -armendbasethick]) {
+ rotate([0,0,-90])
+ 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();