chiark / gitweb /
filamenttrestle new bar
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 17 Oct 2012 20:17:33 +0000 (21:17 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 17 Oct 2012 20:17:33 +0000 (21:17 +0100)
axlepin.scad
filamenttrestle.scad

index b684f04..818b5a2 100644 (file)
@@ -15,6 +15,8 @@ module AxlePin(axlerad, pinlen, holerad=2, tabthick=5, slop=0.5){
   }
 }
 
+function Washer_thick() = 1.2;
+
 module Washer(axlerad, washerrad, thick=1.2, slop=0.5){
   difference(){
     cylinder(h=thick, r=washerrad);
index 8d17cf6..340a6d5 100644 (file)
@@ -7,9 +7,10 @@ trestlebase = 80; // fixme needs to be checked
 include <doveclip.scad>
 include <axlepin.scad>
 
-spoolwidthgap = 2;
+spoolinnerslop = 2;
+
 barrad = 7;
-barwasherrad = 20;
+barwasherrad = 17;
 
 legw = 12;
 plugl = 20;
@@ -34,6 +35,10 @@ pindwidth = 0.75;
 pintaperlen = plugwmax * 0.85;
 pinstraightlen = 10;
 
+spoolouterpad = AxlePin_holerad()*2 * 1.5;
+spoolbarlen = spoolwidth +
+  2*(Washer_thick() + AxlePin_holerad() + spoolinnerslop + spoolouterpad);
+
 module Plug(d=0){
   dw = d;
   dh = d;
@@ -52,7 +57,7 @@ module Plug(d=0){
 }
 
 module Bar(){ ////toplevel
-  spoolw = spoolwidth + spoolwidthgap*2;
+  spoolw = spoolbarlen;
   barz = barrad * 0.5;
   biggestw = spoolw + 50;
 
@@ -65,8 +70,17 @@ module Bar(){ ////toplevel
          cube([spoolw/2+1.1, 100, 100]);
       }
     }
-    translate([-biggestw/2, -50, 0])
-      cube([biggestw, 100, 100]);
+    difference(){
+      translate([-biggestw/2, -50, 0])
+       cube([biggestw, 100, 100]);
+      for (mir=[0,1]) {
+       mirror([mir,0,0])
+         translate([spoolwidth/2 + Washer_thick() + spoolinnerslop +
+                    AxlePin_holerad()*0.5,
+                    0, -50])
+         cylinder(r=AxlePin_holerad(), 100, $fn=15);
+      }
+    }
     translate([0,0,barz]) {
       translate([-100,0,0])
        rotate([0,90,0]) cylinder(r=barrad, h=200, $fn=30);
@@ -74,10 +88,14 @@ module Bar(){ ////toplevel
   }
 }
 
-module FtAxlePin(){
+module FtAxlePin(){ ////toplevel
   AxlePin(barrad, (barrad + barwasherrad*2)/3 * 2);
 }
 
+module AxleWasher(){ ////toplevel
+  Washer(barrad, barwasherrad);
+}
+
 module Trestle(){ ////toplevel
   legang = atan2(trestlebase/2, trestleheight);
   eplen = sqrt(trestleheight*trestleheight + trestlebase*trestlebase*0.25);
@@ -169,8 +187,9 @@ module TestKit(){ ////toplevel
   }
 }
 
-//Bar();
-FtAxlePin();
+Bar();
+//FtAxlePin();
+//AxleWasher();
 //Trestle();
 //Pin();
 //TestKit();