// -*- C -*-
-spoolwidth = 80; // fixme needs to be measured
-spoolinnerrad = 25; // fixme needs to be checked
-spoolouterrad = 60; // fixme needs to be checked
+spoolinnerdia = 32;
+spoolwidth = 88.0;
+spoolinnerrad = (spoolinnerdia - 0.2) / 2;
+spoolouterrad = spoolinnerrad + 61.5;
include <doveclip.scad>
include <axlepin.scad>
spoolradclear = 10;
spoolradslop = 2;
-spoolinnerslop = 2;
+spoolinnerslop = 3;
axleslop = 0.5;
axlerad = 7;
barwasherrad = 17;
-hubbasethick = 6;
-hubmainthick = 20;
-hubbaseweb = 2;
-hubbasestalkwidth = 6;
-hubwalls = 3;
+hubbasethick = 4;
+hubmainthick = 15;
+hubbaseweb = 1.2;
+hubbasestalkwidth = 4;
+hubwalls = 2.5;
hubpillarw = 4;
-hubbaserad = spoolinnerrad + 15;
+hubbaserad = spoolinnerrad + 10;
hubmainrad = spoolinnerrad - spoolradslop;
legw = 12;
plugslope = 0.5;
plugwmax = plugwmin + plugh * plugslope * 2;
+trestlefoot = 15;
+
trestlelegw = 10;
trestlebaseh = 10;
trestleplugd = 1;
-topblockthick = 4;
+topblockthick = 3;
topblockbasedepth = 5;
-pinbasew = 5.0;
-pinminh = 1.5;
-pinmaxh = 4.5;
-pindh = 0.50;
-pindwidth = 0.75;
+pinbasew = 4.0;
+pinminh = 1.0;
+pinmaxh = 3.5;
+pindh = 1.75;
+pindwidth = 1.75;
-pintaperlen = plugwmax * 0.85;
-pinstraightlen = 10;
+pintaperlen = 20;
+pinstraightlen = 30-pintaperlen;
spoolouterpad = AxlePin_holerad()*2 * 1.5;
spoolbarlen = spoolwidth +
}
translate([0,0,barz]) {
translate([-100,0,0])
- rotate([0,90,0]) cylinder(r=axlerad, h=200, $fn=30);
+ rotate([0,90,0]) cylinder(r=axlerad, h=200, $fn=60);
}
}
}
baseweb=true);
translate([-trestlebase/2, -trestleheight, 0])
- cylinder(r=trestlelegw/2*1.2, h=plugl);
+ cylinder(r=trestlelegw/2*1.2, h=trestlefoot);
}
}
translate([-topblockw/2, -topblockbasedepth, 0])
cube([topblockw,
topblockbasedepth + plugh + topblockthick
- + (pinmaxh - pinminh)*0.6 + pindh,
+ + (pinmaxh - pinminh)*0.5,
plugl]);
translate([-trestlebase/2, -trestleheight, 0])
ExtenderPillars(length=trestlebase, width=trestlebaseh*2, height=legw);
}
translate([-300, -trestleheight-50, -1])
- cube([600, 50, plugl+2]);
+ cube([600, 50, 52]);
rotate([-90,-90,0])
Plug(d=trestleplugd);
for (rot=[0,180]) {
translate([0,0,plugl/2]) rotate([0,rot,0]) translate([0,0,-plugl/2]) {
translate([0,
- plugh + pindh - (pinmaxh - pinminh)*0.75,
+ plugh - (pinmaxh - pinminh)*1.00,
(plugl - pinholebasew*2)/3]) {
translate([-(topblockw*0.25+1), 0, pinholebasew/2])
rotate([-90,0,0]) %Pin();
translate([-(topblockw+1), 0, 0]) {
rotate([0,90,0]) {
- linear_extrude(height = topblockw*1.0+2) {
+ linear_extrude(height = topblockw*2.0+2) {
polygon([[-1.0 * pinholebasew, -0.01],
[-0.5 * pinholebasew, pinholeh],
[ 0 , -0.01]]);
module TestKit(){ ////toplevel
- translate([30,0,0]) Pin();
- translate([30,30,0]) Pin();
+ translate([60,0,0]) mirror([1,0,0]) Pin();
+ translate([60,15,0]) mirror([1,0,0]) Pin();
translate([0,40,0]) intersection(){
Trestle();
translate([-50,-10,-1]) cube([100,100,100]);
}
intersection(){
- translate([-60,0,0]) Bar();
+ translate([-60,10,0]) Bar();
cube(50,center=true);
}
+ %translate([50,40, AxlePin_zoffset()]) FtAxlePin();
+ %translate([0,-20,0]) AxleWasher();
}
module DemoSpool(){
}
}
-module Demo(){
- Bar();
+module Demo(){ ////toplevel
+ color("blue") Bar();
for (mir=[0,1]) {
mirror([mir,0,0]) {
- translate([spoolbarlen/2,0,0]) rotate([90,0,90]) Trestle();
- translate([spoolwidth/2 + hubbasethick + spoolinnerslop/4, 0, barz])
+ color("red") translate([spoolbarlen/2,0,0])
+ rotate([90,0,90]) Trestle();
+ color("orange")
+ translate([spoolwidth/2 + hubbasethick + spoolinnerslop*2/3, 0, barz])
rotate([0,90,0]) AxleWasher();
- translate([axlepin_x, 0, barz]) rotate([90,0,90]) FtAxlePin();
+ color("orange") translate([axlepin_x, 0, barz])
+ rotate([90,0,90]) FtAxlePin();
+ color("cyan")
+ translate([spoolwidth/2 + hubbasethick + spoolinnerslop*1/3, 0, barz])
+ rotate([0,-90,0]) HubEnd();
}
}
%translate([0,0,barz]) DemoSpool();
//TestKit();
//Plug(d=1);
//ExtenderPillars(80,12,8, baseweb=true);
-HubEnd();
+//HubEnd();
//Demo();