chiark / gitweb /
filamenttrestle new bar
[reprap-play.git] / filamenttrestle.scad
index 924135230e684cd1c6b69d23ee08cdcbf987a488..340a6d5e1ef46887bbe64aa4e335237ab3daed5e 100644 (file)
@@ -5,12 +5,12 @@ trestleheight = 80; // fixme needs to be checked
 trestlebase = 80; // fixme needs to be checked
 
 include <doveclip.scad>
+include <axlepin.scad>
 
-spoolwidthgap = 2;
-barrady = 5;
-barradz = 7;
-guidewidth = 3;
-guiderad = 20;
+spoolinnerslop = 2;
+
+barrad = 7;
+barwasherrad = 17;
 
 legw = 12;
 plugl = 20;
@@ -35,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;
@@ -53,28 +57,45 @@ module Plug(d=0){
 }
 
 module Bar(){ ////toplevel
-  spoolw = spoolwidth + spoolwidthgap*2;
-  barz = barradz * 0.5;
+  spoolw = spoolbarlen;
+  barz = barrad * 0.5;
   biggestw = spoolw + 50;
 
   intersection(){
     for (mir=[0,1]) {
       mirror([mir,0,0]) {
-       translate([0,0,barz]) {
-         scale([1,barrady,barradz]) translate([-1,0,0])
-           rotate([0,90,0]) cylinder(r=1, h=spoolw/2+2, $fn=30);
-         translate([spoolw/2,0,0])
-           rotate([0,90,0]) cylinder(r=guiderad, h=guidewidth, $fn=60);
-       }
-       translate([spoolw/2 + guidewidth, 0, 0])
+       translate([spoolw/2, 0, 0])
          Plug();
+       translate([-1, -50, -50])
+         cube([spoolw/2+1.1, 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([-biggestw/2, -50, 0])
-      cube([biggestw, 100, 100]);
+    translate([0,0,barz]) {
+      translate([-100,0,0])
+       rotate([0,90,0]) cylinder(r=barrad, h=200, $fn=30);
+    }
   }
 }
 
+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);
@@ -166,7 +187,9 @@ module TestKit(){ ////toplevel
   }
 }
 
-//Bar();
+Bar();
+//FtAxlePin();
+//AxleWasher();
 //Trestle();
 //Pin();
 //TestKit();