chiark / gitweb /
filamentspool FilamentHandle wip etc.
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 15 Sep 2012 21:11:30 +0000 (22:11 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 15 Sep 2012 21:11:30 +0000 (22:11 +0100)
filamentspool.scad

index 7c2434e..c88e30c 100644 (file)
@@ -1,5 +1,6 @@
 
 slop=0.5;
+bigslop=slop*2;
 
 prongthick=5;
 prongwidth=5;
@@ -13,17 +14,21 @@ overlap=0.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]) {
@@ -46,4 +51,24 @@ module ArmEnd(length=120){
   }
 }
 
-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();