chiark / gitweb /
warptest2 before print
[reprap-play.git] / filamentspool.scad
index 5724dcce584482899a2f0f6b260753425b3fe83a..55da1ac7324eb27a81e7bf1aae1f0eab5ddc893b 100644 (file)
@@ -65,7 +65,11 @@ axlepinrad = 2;
 axlepintabrad = 5;
 
 washerthick = 1.2;
 axlepintabrad = 5;
 
 washerthick = 1.2;
+washerthinthick = 0.8;
+washerverythinthick = 0.4;
 washerrad = hubaxlerad + 7.5;
 washerrad = hubaxlerad + 7.5;
+frictionwasherarmwidth = 3;
+frictionwasherextrapush = 1.0;
 
 ratchetpawl=ratchetstep-ratchettooth-bigslop*2;
 
 
 ratchetpawl=ratchetstep-ratchettooth-bigslop*2;
 
@@ -202,6 +206,10 @@ module ArmDoveClipPin(){ ////toplevel
   DoveClipPin(h=doveclipheight);
 }
 
   DoveClipPin(h=doveclipheight);
 }
 
+module TowerDoveClipPin(){ ////toplevel
+  DoveClipPin(h=towercliph/2);
+}
+
 module Hub(){ ////toplevel
   difference(){
     cylinder($fn=60, h=hublthick, r=hubbigrad);
 module Hub(){ ////toplevel
   difference(){
     cylinder($fn=60, h=hublthick, r=hubbigrad);
@@ -261,7 +269,6 @@ module AxlePin(){ ////toplevel
 module Axle(){ ////toplevel
   pillarswidth = DoveClipPairSane_width(towerclipcount);
 
 module Axle(){ ////toplevel
   pillarswidth = DoveClipPairSane_width(towerclipcount);
 
-if(0)
   rotate([0,0, -( axleaxlefudgebend + atan(slop/hubaxlelen) ) ])
   translate([-axlehorizoffset, -axlevertheight, 0]) {
     rotate([0,0,-axletowerfudgebend])
   rotate([0,0, -( axleaxlefudgebend + atan(slop/hubaxlelen) ) ])
   translate([-axlehorizoffset, -axlevertheight, 0]) {
     rotate([0,0,-axletowerfudgebend])
@@ -311,11 +318,44 @@ if(0)
   }
 }
 
   }
 }
 
+module washer(thick){
+  difference(){
+    cylinder(h=thick, r=washerrad);
+    translate([0,0,-1]) cylinder(h=washerthick+2, r=hubaxlerad+slop);
+  }
+}
+
 module AxleWasher(){ ////toplevel
 module AxleWasher(){ ////toplevel
+  washer(thick=washerthick);
+}
+
+module AxleThinWasher(){ ////toplevel
+  washer(thick=washerthinthick);
+}
+
+module AxleVeryThinWasher(){ ////toplevel
+  washer(thick=washerverythinthick);
+}
+
+module AxleFrictionWasher(){ ////toplevel
   difference(){
     cylinder(h=washerthick, r=washerrad);
     translate([0,0,-1]) cylinder(h=washerthick+2, r=hubaxlerad+slop);
   }
   difference(){
     cylinder(h=washerthick, r=washerrad);
     translate([0,0,-1]) cylinder(h=washerthick+2, r=hubaxlerad+slop);
   }
+  frarmr = hubbigrad;
+  frarmw = frictionwasherarmwidth;
+  frarmpawlr = hublwidth;
+  frarmpawlpush = slop*4 + frictionwasherextrapush;
+  for (ang=[0,180]) rotate([0,0,ang]) {
+    translate([washerrad-1, -frarmw/2, 0])
+      cube([frarmr - washerrad + 1, frarmw, washerthick]);
+    intersection(){
+      translate([frarmr - frarmpawlr, -50, 0])
+       cube([frarmpawlr, 100, 50]);
+      rotate([0,90,0])
+       cylinder(h = 50, r = frarmpawlpush, $fn=36);
+    }
+  }
 }
 
 module TowerExtender(){ ////toplevel
 }
 
 module TowerExtender(){ ////toplevel
@@ -335,3 +375,4 @@ module TowerExtender(){ ////toplevel
 //Axle();
 //AxleWasher();
 //AxlePin();
 //Axle();
 //AxleWasher();
 //AxlePin();
+//AxleFrictionWasher();