tune 36t gear
parent
17820e8a64
commit
46cdee1fae
149
torsen.scad
149
torsen.scad
|
@ -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(
|
||||
|
|
Loading…
Reference in New Issue