prongthick=5;
prongwidth=5;
-ratchetstep=10;
+ratchetstep=15;
ratchettooth=3;
ratchettoothheight=5;
+ratchettoothsmoothr=1;
+ratchettoothslope=0.75;
overlap=0.5;
armendwallthick=2.5;
armendbasethick=1.2;
-module ArmEnd(length=100){
+include <doveclip.scad>
+
+module ArmEnd(length=120){
channelwidth = prongthick + slop;
channeldepth = prongwidth + ratchettoothheight;
totalwidth = armendwallthick*2 + channelwidth;
totalheight = channeldepth + armendbasethick;
- difference(){
- translate([0, -armendwallthick, -armendbasethick])
- cube([ratchetstep+overlap, totalwidth, totalheight]);
- translate([-1, 0, 0])
- cube([ratchetstep+overlap+2, channelwidth, channeldepth+1]);
+
+ basecube = 5;
+
+ translate([0, 3, -armendbasethick]) {
+ translate([-basecube+0.5, -7.5, 0])
+ cube([basecube, 15, totalheight]);
+
+ translate([-basecube+2,0,0])
+ rotate([0,0,-90])
+ DoveClipPair(h=totalheight);
+ }
+
+ for (dx = [0 : ratchetstep : length]) translate([dx,0,0]) {
+ difference(){
+ translate([0, -armendwallthick, -armendbasethick])
+ cube([ratchetstep+overlap, totalwidth, totalheight]);
+ translate([-1, 0, 0])
+ cube([ratchetstep+overlap+2, channelwidth, channeldepth+1]);
+ }
+ translate([ratchettoothsmoothr+0.5, armendwallthick/2, 0]) minkowski(){
+ rotate([90,0,0])
+ cylinder($fn=20, r=ratchettoothsmoothr, h=armendwallthick);
+ multmatrix([ [ 1, 0, ratchettoothslope, 0 ],
+ [ 0, 1, 0, 0 ],
+ [ 0, 0, 1, 0 ],
+ [ 0, 0, 0, 1 ]])
+ cube([ratchettooth - ratchettoothsmoothr*2,
+ channelwidth, ratchettoothheight]);
+ }
}
}