include <axlepin.scad>
spoolradclear = 10;
+spoolradslop = 2;
-spoolinnerslop = 2;
+spoolinnerslop = 4.5;
+axleslop = 0.5;
-barrad = 7;
+axlerad = 7;
barwasherrad = 17;
-hubbasethick = 4;
+hubbasethick = 6;
+hubmainthick = 20;
+hubbaseweb = 2;
+hubbasestalkwidth = 6;
+hubwalls = 2.5;
+hubpillarw = 4;
+hubbaserad = spoolinnerrad + 15;
+hubmainrad = spoolinnerrad - spoolradslop;
legw = 12;
plugl = 20;
pindwidth = 0.75;
pintaperlen = plugwmax * 0.85;
-pinstraightlen = 10;
+pinstraightlen = 17.5;
spoolouterpad = AxlePin_holerad()*2 * 1.5;
spoolbarlen = spoolwidth +
2*(Washer_thick() + hubbasethick + AxlePin_holerad()
+ spoolinnerslop + spoolouterpad);
- barz = barrad * 0.5;
+ barz = axlerad * 0.5;
axlepin_x = spoolwidth/2 + hubbasethick +
Washer_thick() + spoolinnerslop + AxlePin_holerad()*0.5;
}
translate([0,0,barz]) {
translate([-100,0,0])
- rotate([0,90,0]) cylinder(r=barrad, h=200, $fn=30);
+ rotate([0,90,0]) cylinder(r=axlerad, h=200, $fn=30);
}
}
}
module FtAxlePin(){ ////toplevel
- AxlePin(barrad, (barrad + barwasherrad*2)/3 * 2);
+ AxlePin(axlerad, (axlerad + barwasherrad*2)/3 * 2);
}
module AxleWasher(){ ////toplevel
- Washer(barrad, barwasherrad);
+ Washer(axlerad, barwasherrad);
}
module Trestle(){ ////toplevel
for (rot=[0,180]) {
translate([0,0,plugl/2]) rotate([0,rot,0]) translate([0,0,-plugl/2]) {
- translate([-(topblockw*0.25+1),
+ translate([0,
plugh + pindh - (pinmaxh - pinminh)*0.75,
(plugl - pinholebasew*2)/3]) {
- translate([0,0,pinholebasew/2]) rotate([-90,0,0]) %Pin();
- rotate([0,90,0]) {
- linear_extrude(height = topblockw*1.0+2) {
- polygon([[-1.0 * pinholebasew, -0.01],
- [-0.5 * pinholebasew, pinholeh],
- [ 0 , -0.01]]);
+ 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) {
+ polygon([[-1.0 * pinholebasew, -0.01],
+ [-0.5 * pinholebasew, pinholeh],
+ [ 0 , -0.01]]);
+ }
}
}
}
}
}
+module HubEnd(){ ////toplevel
+ thick = hubmainthick+hubbasethick;
+ difference(){
+ union(){
+ for (ang=[0 : 60 : 359]) {
+ rotate([0,0,ang]) {
+ translate([hubmainrad - hubwalls/2, -hubbasestalkwidth/2, 0])
+ cube([hubbaserad - (hubmainrad - hubwalls/2),
+ hubbasestalkwidth, hubbasethick]);
+ ExtenderPillar(length = hubmainrad-hubwalls/2,
+ height = hubbasethick + hubmainthick,
+ pillarw = hubpillarw);
+ }
+ }
+ cylinder(r=axlerad+hubwalls, h=thick);
+ cylinder(r=hubmainrad-0.1, h=hubbaseweb);
+ difference(){
+ cylinder(r=hubmainrad, h=thick, $fn=100);
+ translate([0,0,-1])
+ cylinder(r=hubmainrad-hubwalls, h=thick+2);
+ }
+ difference(){
+ cylinder(r=hubbaserad, h=hubbasethick, $fn=50);
+ translate([0,0,-1])
+ cylinder(r=hubbaserad-hubwalls, h=hubbasethick+2);
+ }
+ }
+ translate([0,0,-1])
+ cylinder(r=axlerad+axleslop, h=thick+2, $fn=50);
+ }
+}
+
+
module TestKit(){ ////toplevel
translate([30,0,0]) Pin();
translate([30,30,0]) Pin();
}
module Demo(){
- Bar();
+ 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();
Demo();