diff --git a/gear-v3.scad b/gear-v3.scad index 7e03d84..3d7d3d8 100644 --- a/gear-v3.scad +++ b/gear-v3.scad @@ -63,29 +63,25 @@ translate([0, 0, 16]) /* 2-stud-thick variant of 32-teeth ring gear */ -ring_gear_2u_32t(); +//ring_gear_2u_32t(); /* Standard 8-teeth gear */ //std_gear8(); -/* Planetary ring gear with both inner and outer 40 teeth */ +/* 40-teeth (both inside and outside) planetary ring gear */ //planetary_ring_gear(plane_height=1); -/* 40-teeth planetary ring gear with clutch */ - -//planetary_ring_gear_with_clutch(); - /* Solid clutch gear, like standard 16-teeth */ //clutchGear(32); -/* Gear with clutch fully offset to one side */ +/* Gear with clutch fully offset to one side - useful for compact gearbox */ -//offsetClutchGear(16); +//offsetClutchGear(23); -/* Gear with bearing only at one side */ +/* Gear fully offset to one side */ //offsetGear(number_of_teeth=8, gear_height=3.8); // Sample offset gear with 28 teeth and 4 holes @@ -93,7 +89,7 @@ ring_gear_2u_32t(); /* Gear with offset teeth, axle hole and sparse body */ -//offsetGearSparse(20, gear_height=3.9); +offsetGearSparse(9, gear_height=3.9); /* Half-stud parametric gear with some holes */ @@ -351,52 +347,6 @@ module std_gear8() { axle(0, 0, -1, 10); }} -module planetary_ring_gear_with_clutch() { - union() { - difference() { - cylinder($fn=100, h=8, r=22); - // make inner gear slightly bigger - translate([0, 0, -0.1]) gear(mm_per_tooth=3.1415926, number_of_teeth=40, thickness=6.1); - cylinder($fn=100, h=8.1, r=19); - } - translate([0, 0, 8]) - difference() { - union() { - cylinder($fn=100, h=2, r=(0.1+3.1*(40/2+1)/3.1415926)); - translate([0, 0, 2]) gear(mm_per_tooth=3.1, number_of_teeth=40, thickness=4, clearance=-0.1); - translate([0, 0, 5]) cylinder($fn=100, h=2.2, r=(3.1*(40/2-1)/3.1415926)); - cylinder($fn=100, h=8, r=6.8); - } - translate([0, 0, 4]) difference() { - translate([0, 0, -0.1]) cylinder($fn=100, h=20, r=5.8); - translate([0, 0, -0.1]) cylinder($fn=100, h=20.2, r=3.5); - } - translate([0, 0, -0.1]) difference() { - cylinder($fn=100, h=8.2, r=(3.1*(40/2-1)/3.1415926)-1); - translate([0, 0, 3.5]) cylinder($fn=100, h=1, r=(3.1*(40/2-1)/3.1415926)-1); - translate([0, 0, -0.1]) cylinder($fn=100, h=10, r=6.8); - translate([-0.5, -20, -0.1]) cube(size=[1, 40, 10]); - translate([-20, -0.5, -0.1]) cube(size=[40, 1, 10]); -/* translate([-10, 8-0.5, -0.1]) cube(size=[20, 1, 10]); - translate([-10, -8-0.5, -0.1]) cube(size=[20, 1, 10]); - translate([8-0.5, -10, -0.1]) cube(size=[1, 20, 10]); - translate([-8-0.5, -10, -0.1]) cube(size=[1, 20, 10]); - rotate([0, 0, -45]) translate([-0.5, 10, -0.1]) cube(size=[1, 10, 10]); - rotate([0, 0, 45]) translate([-0.5, 10, -0.1]) cube(size=[1, 10, 10]); - rotate([0, 0, -135]) translate([-0.5, 10, -0.1]) cube(size=[1, 10, 10]); - rotate([0, 0, 135]) translate([-0.5, 10, -0.1]) cube(size=[1, 10, 10]);*/ - } - translate([0, 0, -0.1]) cylinder($fn=100, h=10, r=2.5); - } - translate([0, 0, 10.2]) union() { - clutchTeeth(); - rotate([0, 0, 90]) clutchTeeth(); - rotate([0, 0, 180]) clutchTeeth(); - rotate([0, 0, -90]) clutchTeeth(); - } - } -} - // Planetary ring gear, 2 stud thick, sparse module planetary_ring_gear(plane_height = 1) { union() { @@ -503,22 +453,26 @@ module offsetGear(number_of_teeth, gear_height=3.9) { // Gear with interface for driving ring, with offset teeth // => The minimal printable size of such gear is 9 teeth... -// (8 teeth will probably be too thin in some places) +// (8 teeth will probably be too thin at root circle) module offsetClutchGear(number_of_teeth) { union() { difference() { union() { - gear(number_of_teeth=number_of_teeth, mm_per_tooth=3.05, thickness=3.9); - translate([0, 0, 3.9]) cylinder($fn=100, h=4.1, r=6.8); + gear(number_of_teeth=number_of_teeth, mm_per_tooth=3.05, thickness=4); + translate([0, 0, 3.9]) cylinder($fn=max(32,2*number_of_teeth), h=4.1, r=6.8); } difference() { - translate([0, 0, 4.8]) cylinder($fn=100, h=4, r=5.8); - translate([0, 0, 4.8]) cylinder($fn=100, h=4, r=3.3); + translate([0, 0, 4.8]) cylinder($fn=50, h=4, r=5.8); + translate([0, 0, 4.8]) cylinder($fn=50, h=4, r=3.3); + } + difference() { + translate([0, 0, -0.1]) cylinder($fn=50, h=2.9+0.1, r=3.05*(number_of_teeth/2-1)/3.1415926-1); + translate([0, 0, -0.2]) cylinder($fn=50, h=4, r=3.5); + translate([-0.5, -20, -0.1]) cube(size=[1, 40, 10]); + translate([-20, -0.5, -0.1]) cube(size=[40, 1, 10]); } // round hole - translate([0, 0, -3]) cylinder($fn=100, h=12, r=2.5); - // axle hole - //axle(0, 0, -1, 10); + translate([0, 0, -2]) cylinder($fn=50, h=12, r=2.5); } translate([0, 0, 3]) union() { clutchTeeth();