trestlebase = 80; // fixme needs to be checked
include <doveclip.scad>
+include <axlepin.scad>
+
+spoolinnerslop = 2;
-spoolwidthgap = 2;
barrad = 7;
-guidewidth = 3;
-guiderad = 20;
+barwasherrad = 17;
legw = 12;
plugl = 20;
pintaperlen = plugwmax * 0.85;
pinstraightlen = 10;
+spoolouterpad = AxlePin_holerad()*2 * 1.5;
+spoolbarlen = spoolwidth +
+ 2*(Washer_thick() + AxlePin_holerad() + spoolinnerslop + spoolouterpad);
+ barz = barrad * 0.5;
+axlepin_x = spoolwidth/2 + Washer_thick() + spoolinnerslop +
+ AxlePin_holerad()*0.5;
+
module Plug(d=0){
dw = d;
dh = d;
}
module Bar(){ ////toplevel
- spoolw = spoolwidth + spoolwidthgap*2;
- barz = barrad * 0.5;
+ spoolw = spoolbarlen;
biggestw = spoolw + 50;
intersection(){
for (mir=[0,1]) {
mirror([mir,0,0]) {
- translate([0,0,barz]) {
- translate([-1,0,0])
- rotate([0,90,0]) cylinder(r=barrad, 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]);
}
}
- 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([axlepin_x, 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);
+ }
}
}
+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);
}
}
-Bar();
+module Demo(){
+ %Bar();
+ for (mir=[0,1]) {
+ mirror([mir,0,0]) {
+ %translate([spoolbarlen/2,0,0]) rotate([90,0,90]) Trestle();
+ translate([spoolwidth/2 + spoolinnerslop/4, 0, barz])
+ rotate([0,90,0]) AxleWasher();
+ translate([axlepin_x, 0, barz]) rotate([90,0,90]) FtAxlePin();
+ }
+ }
+}
+
+//Bar();
+//FtAxlePin();
+//AxleWasher();
//Trestle();
//Pin();
//TestKit();
//Plug(d=1);
//ExtenderPillars(80,12,8, baseweb=true);
+Demo();