Initial import of gearbox model
Gearbox for Monster Mill 2 Planetary gears look good, input train looks good. Needs hardware for real gears and cover plate.
This commit is contained in:
203
gearbox.scad
Normal file
203
gearbox.scad
Normal file
@@ -0,0 +1,203 @@
|
||||
use <PolyGear/PolyGear.scad>
|
||||
use <PolyGear/PolyGearBasics.scad>
|
||||
use <PolyGear/shortcuts.scad>
|
||||
use <lovejoy.scad>
|
||||
|
||||
shaftd=9.49; // 3/8"
|
||||
shaftback=21.41 + shaftd/2;
|
||||
shaftz=21.75+shaftd/2;
|
||||
flat=9.30;
|
||||
ringh=3;
|
||||
ringw=2;
|
||||
|
||||
GMod=.8;
|
||||
|
||||
module shaft(h, shaftd) {
|
||||
difference() {
|
||||
cylinder(d=shaftd, h=h, $fs=.1);
|
||||
for (r=[0,120,240])
|
||||
rotate([0,0,r]) translate([flat/2,-shaftd/2,-.05])
|
||||
cube([shaftd/2,shaftd, h + .1]);
|
||||
}
|
||||
}
|
||||
|
||||
module drive_gear() {
|
||||
difference() {
|
||||
spur_gear(m=2, n=12, z=ringh, chamfer=10);
|
||||
translate([0,0,-(ringh+2)/2]) shaft(h=ringh+2, shaftd=4);
|
||||
}
|
||||
}
|
||||
|
||||
module planet_gear(nt=10, gh, sh=4, m, ha=30) {
|
||||
gfn = $preview ? 9 : 18;
|
||||
difference() {
|
||||
rotate([0,0,36/2]) spur_gear(m=m, n=nt, z=gh, chamfer=20, helix_angle=-ha, $fn=gfn, x=-.2);
|
||||
cylinder(d=sh, h=gh+.1, $fs=.1, center=true);
|
||||
}
|
||||
}
|
||||
|
||||
module planet_carrier(nt=7, np=7, ns=49, m=GMod, incolor=true, pcolor="blue", ccolor="green", ha=30, rh=ringh) {
|
||||
|
||||
gfn = $preview ? 9 : 15;
|
||||
cfs = $preview ? .1 : 2;
|
||||
ratio = ns/np;
|
||||
meshd = m*(ns+nt)/2;
|
||||
planet_r = [ for (i = [0: 360/np : 360]) i + 90];
|
||||
//planet_w = 180/-m*(nt/ns);
|
||||
planet_w = ns % nt;
|
||||
bodr = m*(ns+2*nt) - 4;
|
||||
echo("Carrier Body Radius: ", bodr);
|
||||
|
||||
planet_color = incolor ? pcolor : undef;
|
||||
carrier_color = incolor ? ccolor : undef;
|
||||
color(planet_color) for (r=planet_r) {
|
||||
rotate([0,0,r]) translate([meshd,0]) rotate([0,0,planet_w-r])
|
||||
planet_gear(nt=nt, sh=4, m=m, gh=rh, ha=herringbone(helix=30, $fn=gfn));
|
||||
}
|
||||
color(carrier_color) translate([0,0,0]) difference() {
|
||||
union() {
|
||||
rotate([0,0,30])
|
||||
cylinder(d=bodr, h=rh+2.4, center=true,$fs=cfs);
|
||||
}
|
||||
translate([0,0,ringh+1.2]) cylinder(d=309, h=2.3, center=true, $fs=cfs);
|
||||
// Planet Orbits
|
||||
for (r=planet_r) {
|
||||
rotate([0,0,r]) translate([meshd,0])
|
||||
difference() {
|
||||
cylinder(d=2+m+nt*m, h=rh+.4, center=true, $fs=cfs);
|
||||
cylinder(d=4-.4, h=rh+.6, center=true, $fs=cfs);
|
||||
}
|
||||
}
|
||||
|
||||
// Sun void
|
||||
cylinder(d=2+m+ns*m, h=rh+.4, center=true, $fs=cfs);
|
||||
cylinder(d=10, h=rh+.4, center=false, $fs=cfs);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
module motor_gear(GMod=.8, z=8.25) {
|
||||
//z=2*ringh;
|
||||
|
||||
// translate([0,0]) spur_gear(m=GMod, n=5, z=z, helix_angle=-30);
|
||||
linear_extrude(height=z, twist=72*z/8.25)
|
||||
projection() spur_gear(m=GMod, n=5, z=1, helix_angle=0);
|
||||
|
||||
}
|
||||
|
||||
module sun_gear(GMod=.8, nt=49, ha=30, h=2*ringh) {
|
||||
gfn = $preview ? 9 : 15;
|
||||
sd = 5.1;
|
||||
spur_gear(m=GMod, n=nt, z=h, chamfer=20, helix_angle=ha, x=-.2, $fn=gfn);
|
||||
cylinder(d=7.9, h=h+9.2, center=false, $fs=.1);
|
||||
translate([0,7.9/2,h+6 +.2]) cube([2.95,2,6], center=true);
|
||||
color("red")
|
||||
translate([0,0,h/2+3+sd])
|
||||
input_gear(nt=55, ha=-30);
|
||||
}
|
||||
|
||||
module input_gear(GMod=.8, nt=49, ha=30, h=2*ringh) {
|
||||
spur_gear(m=GMod, n=nt, z=h, chamfer=00, helix_angle=ha);
|
||||
}
|
||||
|
||||
module ring_gear(np=14, ns=49, m=GMod, ww=1.5, rh=ringh) {
|
||||
n=2*np + ns;
|
||||
bodr = m*(ns+np/2) + .2;
|
||||
bd = n*m + 2*ww;
|
||||
ha = herringbone(helix=-30, $fn=9);
|
||||
gfn = $preview ? 9 : 15;
|
||||
cfs = $preview ? .1 : 2;
|
||||
ch= rh;
|
||||
difference() {
|
||||
intersection () {
|
||||
cylinder(h=ch+2*ww, d=bd, center=true);
|
||||
//translate([-4,0,-5]) cube([50,60,20]);
|
||||
}
|
||||
//#translate([0,0,ringh/2+.7])
|
||||
// middle clearance
|
||||
cylinder(h=ch+.6, d=bd-2*ww-2, center=true, $fs=cfs);
|
||||
cylinder(h=ch+.6+2, d=bodr, center=true, $fs=cfs);
|
||||
spur_gear(m=m, n=n, z=rh+.2, chamfer=00, helix_angle=ha,
|
||||
type=1, x=.3, ded=-.2, add=.2, $fn=gfn);
|
||||
// Top Opening
|
||||
translate([0,0,(ch/2 +ww/2)]) cylinder(h=ww+.1, d=11, center=true);
|
||||
// Bottom Opening
|
||||
translate([0,0,-(ch/2 +ww/2)]) cylinder(h=ww+.1, d=11, center=true);
|
||||
}
|
||||
}
|
||||
|
||||
module gearbox(ww) {
|
||||
motor_r = 3*360/14 -90;
|
||||
m=GMod;
|
||||
ns=9;
|
||||
np=7;
|
||||
nt=24;
|
||||
nr=ns+2*nt;
|
||||
|
||||
R=-nr/ns;
|
||||
|
||||
echo("R= ", R);
|
||||
echo("Output: ", (1/(1+R)));
|
||||
echo("Ring Size: ", nr);
|
||||
|
||||
color(sun_color) sun_gear(nt=ns, h=ringh, ha=herringbone(helix=30, $fn=9));
|
||||
planet_carrier(incolor=incolor, ns=ns, np=3, nt=nt);
|
||||
difference() {
|
||||
//rr = 180/(ns+2*nt);
|
||||
rr=0;
|
||||
rotate([0,0,rr]) ring_gear(np=nt,ns=ns, ww=5);
|
||||
translate([0,-shaftz-1,0]) cube([20,2,ringh+2*ww+.2], center=true);
|
||||
}
|
||||
}
|
||||
|
||||
incolor=true;
|
||||
drive_color = incolor ? "green" : undef;
|
||||
sun_color = incolor ? "yellow" : undef;
|
||||
|
||||
ww=5;
|
||||
translate([0,shaftz,0]) {
|
||||
difference() {
|
||||
gearbox(ww=ww);
|
||||
//translate([-30,-30])
|
||||
//cube([60,60,40]);
|
||||
//translate([0,-shaftz-1,0]) cube([20,2,ringh+2*ww+.2], center=true);2
|
||||
|
||||
}
|
||||
// Input Drive
|
||||
mgt=5;
|
||||
tgt=49;
|
||||
igt=55;
|
||||
im=.8;
|
||||
mmd=-im*(tgt+mgt)/2;
|
||||
imd=-im*(igt+tgt)/2;
|
||||
translate([0,0,5.1+3+ringh/2]) {
|
||||
//color("red") input_gear(nt=igt, ha=-30);
|
||||
echo("Motor Transmission D: ", mmd);
|
||||
translate([imd,0]) color("darkslategrey") input_gear();
|
||||
echo("Motor Drive D: ", mmd+imd);
|
||||
translate([mmd+imd,0,-5]) rotate([0,0,5/8.25*72]) color("white") motor_gear();
|
||||
}
|
||||
|
||||
// Input Body
|
||||
Ri(D);
|
||||
}
|
||||
|
||||
// Base Plate
|
||||
translate([-60,0,-5]) cube([90,3,10]);
|
||||
|
||||
// Drive gear
|
||||
//%rotate([0,0,motor_r]) translate([-m*(49+5)/2,0]) color(drive_color) {
|
||||
// z=8.25;
|
||||
// rotate([0,0,(ns-np) * motor_r *.8 +180]) {
|
||||
// translate([0,0,0]) motor_gear(z=z);
|
||||
// translate([0,0,-z]) motor_gear(z=z);
|
||||
// }
|
||||
//}
|
||||
|
||||
|
||||
|
||||
//rotate([0,0,36]) %sun_gear();
|
||||
|
||||
//translate([20,0,0]) spur_gear(m=.64, n=13, z=ringh, chamfer=10, helix_angle=30);
|
||||
|
||||
//rotate([0,0,0]) spur_gear(m=.64, n=13, z=ringh, chamfer=10, helix_angle=-30);
|
||||
Reference in New Issue
Block a user