From b0b8994cac66d398fadc5ccca8fe9fe356201951 Mon Sep 17 00:00:00 2001 From: sjc Date: Mon, 20 Apr 2020 08:04:14 -0400 Subject: [PATCH] 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. --- gearbox.scad | 203 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 203 insertions(+) create mode 100644 gearbox.scad diff --git a/gearbox.scad b/gearbox.scad new file mode 100644 index 0000000..1908067 --- /dev/null +++ b/gearbox.scad @@ -0,0 +1,203 @@ +use +use +use +use + +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);