tune 36t gear

master
Vitaliy Filippov 2015-11-17 22:08:13 +00:00
parent 17820e8a64
commit 46cdee1fae
1 changed files with 78 additions and 71 deletions

View File

@ -1,73 +1,78 @@
$fn = 100;
union() {
difference() {
/* union() {
import("/var/home/vitali/LEGO Creations/cad/gear_36_bevel.stl");
rotate([90, 0, 0]) cylinder(r=16, h=9, center=true, $fn=100);
}*/
//import("/var/home/vitali/LEGO Creations/cad/gear_36_solid_pre.stl");
rotate([90, 0, 0]) double_bevel_36t();
translate([0, 5, 0]) rotate([90, 0, 0]) cylinder(r=30, h=2, center=true, $fn=100);
translate([0, -5, 0]) rotate([90, 0, 0]) cylinder(r=30, h=2, center=true, $fn=100);
rotate([90, 0, 0]) cylinder(r=2.5, h=10, center=true);
}
translate([0, 0, 8]) difference() {
union() {
hull() {
translate([0, 8, 0]) rotate([90, 0, 90]) cylinder(r=3.2, h=8, center=true);
translate([0, 0, 0]) rotate([90, 0, 90]) cylinder(r=3.2, h=8, center=true);
}
hull() {
translate([-3.6, 8, 0]) rotate([90, 0, 90]) cylinder(r=4, h=0.8, center=true);
translate([-3.6, 0, 0]) rotate([90, 0, 90]) cylinder(r=4, h=0.8, center=true);
}
hull() {
translate([3.6, 8, 0]) rotate([90, 0, 90]) cylinder(r=4, h=0.8, center=true);
translate([3.6, 0, 0]) rotate([90, 0, 90]) cylinder(r=4, h=0.8, center=true);
}
translate([0, 8, 0]) rotate([90, 0, 90]) axle(h=16, axlemesh=1.75);
/*intersection() {
union() {
hull() {
translate([-10, 8, 0]) rotate([90, 0, 90]) cylinder(r=4, h=4, center=true);
translate([-10, 0, 0]) rotate([90, 0, 90]) cylinder(r=4, h=4, center=true);
}
hull() {
translate([10, 8, 0]) rotate([90, 0, 90]) cylinder(r=4, h=4, center=true);
translate([10, 0, 0]) rotate([90, 0, 90]) cylinder(r=4, h=4, center=true);
}
hull() {
translate([-10, 8, -16]) rotate([90, 0, 90]) cylinder(r=4, h=4, center=true);
translate([-10, 0, -16]) rotate([90, 0, 90]) cylinder(r=4, h=4, center=true);
}
hull() {
translate([10, 8, -16]) rotate([90, 0, 90]) cylinder(r=4, h=4, center=true);
translate([10, 0, -16]) rotate([90, 0, 90]) cylinder(r=4, h=4, center=true);
}
}
translate([0, 0, -8]) rotate([90, 0, 0]) cylinder(r=16, h=30, center=true);
torsen_diff_36t();
module torsen_diff_36t() {
union() {
difference() {
/*union() {
import("/var/home/vitali/LEGO Creations/cad/gear_36_bevel.stl");
rotate([90, 0, 0]) cylinder(r=16, h=9, center=true, $fn=100);
}*/
//import("/var/home/vitali/LEGO Creations/cad/gear_36_solid_pre.stl");
rotate([90, 0, 0]) double_bevel_36t();
translate([0, 5, 0]) rotate([90, 0, 0]) cylinder(r=30, h=2, center=true, $fn=100);
translate([0, -5, 0]) rotate([90, 0, 0]) cylinder(r=30, h=2, center=true, $fn=100);
rotate([90, 0, 0]) cylinder(r=2.5, h=10, center=true);
}
//translate([0, 8, 0]) rotate([90, 0, 90]) axle(h=40);
//translate([0, 8, 0]) rotate([90, 0, 90]) cylinder(r=2.5, h=40, center=true);
}
translate([0, 0, -8]) difference() {
union() {
hull() {
translate([0, 8, 0]) rotate([90, 0, 90]) cylinder(r=3.2, h=8, center=true);
translate([0, 0, 0]) rotate([90, 0, 90]) cylinder(r=3.2, h=8, center=true);
translate([0, 0, 8]) difference() {
union() {
hull() {
translate([0, 8, 0]) rotate([90, 0, 90]) cylinder(r=3.2, h=8, center=true);
translate([0, 0, 0]) rotate([90, 0, 90]) cylinder(r=3.2, h=8, center=true);
}
hull() {
translate([-3.6, 8, 0]) rotate([90, 0, 90]) cylinder(r=4, h=0.8, center=true);
translate([-3.6, 0, 0]) rotate([90, 0, 90]) cylinder(r=4, h=0.8, center=true);
}
hull() {
translate([3.6, 8, 0]) rotate([90, 0, 90]) cylinder(r=4, h=0.8, center=true);
translate([3.6, 0, 0]) rotate([90, 0, 90]) cylinder(r=4, h=0.8, center=true);
}
translate([0, 8, 0]) rotate([90, 0, 90]) axle(h=16, axlemesh=1.75);
/*intersection() {
union() {
hull() {
translate([-10, 8, 0]) rotate([90, 0, 90]) cylinder(r=4, h=4, center=true);
translate([-10, 0, 0]) rotate([90, 0, 90]) cylinder(r=4, h=4, center=true);
}
hull() {
translate([10, 8, 0]) rotate([90, 0, 90]) cylinder(r=4, h=4, center=true);
translate([10, 0, 0]) rotate([90, 0, 90]) cylinder(r=4, h=4, center=true);
}
hull() {
translate([-10, 8, -16]) rotate([90, 0, 90]) cylinder(r=4, h=4, center=true);
translate([-10, 0, -16]) rotate([90, 0, 90]) cylinder(r=4, h=4, center=true);
}
hull() {
translate([10, 8, -16]) rotate([90, 0, 90]) cylinder(r=4, h=4, center=true);
translate([10, 0, -16]) rotate([90, 0, 90]) cylinder(r=4, h=4, center=true);
}
}
translate([0, 0, -8]) rotate([90, 0, 0]) cylinder(r=16, h=30, center=true);
}*/
}
hull() {
translate([-3.6, 8, 0]) rotate([90, 0, 90]) cylinder(r=4, h=0.8, center=true);
translate([-3.6, 0, 0]) rotate([90, 0, 90]) cylinder(r=4, h=0.8, center=true);
}
hull() {
translate([3.6, 8, 0]) rotate([90, 0, 90]) cylinder(r=4, h=0.8, center=true);
translate([3.6, 0, 0]) rotate([90, 0, 90]) cylinder(r=4, h=0.8, center=true);
}
translate([0, 8, 0]) rotate([90, 0, 90]) axle(h=16, axlemesh=1.75);
//translate([0, 8, 0]) rotate([90, 0, 90]) axle(h=40);
//translate([0, 8, 0]) rotate([90, 0, 90]) cylinder(r=2.5, h=40, center=true);
}
translate([0, 0, -8]) difference() {
union() {
hull() {
translate([0, 8, 0]) rotate([90, 0, 90]) cylinder(r=3.2, h=8, center=true);
translate([0, 0, 0]) rotate([90, 0, 90]) cylinder(r=3.2, h=8, center=true);
}
hull() {
translate([-3.6, 8, 0]) rotate([90, 0, 90]) cylinder(r=4, h=0.8, center=true);
translate([-3.6, 0, 0]) rotate([90, 0, 90]) cylinder(r=4, h=0.8, center=true);
}
hull() {
translate([3.6, 8, 0]) rotate([90, 0, 90]) cylinder(r=4, h=0.8, center=true);
translate([3.6, 0, 0]) rotate([90, 0, 90]) cylinder(r=4, h=0.8, center=true);
}
translate([0, 8, 0]) rotate([90, 0, 90]) axle(h=16, axlemesh=1.75);
}
//translate([0, 8, 0]) rotate([90, 0, 90]) axle();
}
//translate([0, 8, 0]) rotate([90, 0, 90]) axle();
}
}
@ -93,23 +98,25 @@ module axle(h = 24, axleradius = 2.4, axlemesh = 1.85, axleround = 0)
}
// An attempt to make something like standard 36t double bevel gear...
// std lego 36t gear outer radius = ~36.5
// std lego 36t gear root radius = ~32.2
module double_bevel_36t() {
intersection() {
union() {
translate([0, 0, 1.5])
linear_extrude(slices=5, height=2.5, scale=(36/2+1-2.5*tan(45))/(36/2+1))
gear_concat_flat(mm_per_tooth=3.53, number_of_teeth=36, backlash=2, clearance=0.8, trim_factor=0.7);
gear_concat_flat(mm_per_tooth=3.4, number_of_teeth=36, backlash=2, clearance=0.8, trim_factor=0.7);
translate([0, 0, -1.5])
rotate([180, 0, 0])
linear_extrude(slices=5, height=2.5, scale=(36/2+1-2.5*tan(45))/(36/2+1))
gear_concat_flat(mm_per_tooth=3.53, number_of_teeth=36, backlash=2, clearance=0.8, trim_factor=0.7);
gear_concat_flat(mm_per_tooth=3.4, number_of_teeth=36, backlash=2, clearance=0.8, trim_factor=0.7);
translate([0, 0, -4])
cylinder($fn=48, h=8, r=3.14*(36/2-1)/3.1415926);
cylinder($fn=36*2, h=8, r=2.98*(36/2-1)/3.1415926);
translate([0, 0, -1.5])
cylinder($fn=48, h=3, r=3.14*(36/2+1)/3.1415926);
cylinder($fn=36*2, h=3, r=2.98*(36/2+1)/3.1415926+0.5);
}
translate([0, 0, -8]) linear_extrude(slices=5, height=16)
gear_concat_flat(mm_per_tooth=3.14, number_of_teeth=36);
gear_concat_flat(mm_per_tooth=2.98, number_of_teeth=36, pressure_angle=15, backlash=-0.5, clearance=-0.3);
}
}
@ -126,7 +133,7 @@ module gear_concat_flat(
p = mm_per_tooth * number_of_teeth / pi / 2; //radius of pitch circle
c = p + mm_per_tooth / pi - clearance; //radius of outer circle
b = p*cos(pressure_angle); //radius of base circle
r = p-(c-p)-clearance; //radius of root circle
r = p - mm_per_tooth / pi; //radius of root circle
t = mm_per_tooth/2-backlash/2; //tooth thickness at pitch circle
k = -iang(b, p) - t/2/p/pi*180; //angle to where involute meets base circle on each side of tooth
polygon(