add 36t double bevel
parent
7a6fbf32e2
commit
93e45dedd6
101
gear-v3.scad
101
gear-v3.scad
|
@ -83,9 +83,11 @@ translate([20, 0, 16])
|
||||||
//ring_gear_2u_32t();
|
//ring_gear_2u_32t();
|
||||||
//carrier_32t_easy();
|
//carrier_32t_easy();
|
||||||
//carrier_32t_not_so_easy();
|
//carrier_32t_not_so_easy();
|
||||||
sun_drive_32t();
|
//sun_drive_32t();
|
||||||
//sun_drive_32t_simpler();
|
//sun_drive_32t_simpler();
|
||||||
|
|
||||||
|
double_bevel_36t();
|
||||||
|
|
||||||
/* Standard 8-teeth gear */
|
/* Standard 8-teeth gear */
|
||||||
|
|
||||||
//std_gear8();
|
//std_gear8();
|
||||||
|
@ -293,6 +295,29 @@ module satellites_32t() {
|
||||||
|
|
||||||
//-------------
|
//-------------
|
||||||
|
|
||||||
|
// An attempt to make something like standard 36t double bevel gear...
|
||||||
|
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);
|
||||||
|
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);
|
||||||
|
translate([0, 0, -4])
|
||||||
|
cylinder($fn=48, h=8, r=3.14*(36/2-1)/3.1415926);
|
||||||
|
translate([0, 0, -1.5])
|
||||||
|
cylinder($fn=48, h=3, r=3.14*(36/2+1)/3.1415926);
|
||||||
|
}
|
||||||
|
translate([0, 0, -8]) linear_extrude(slices=5, height=16)
|
||||||
|
gear_concat_flat(mm_per_tooth=3.14, number_of_teeth=36);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------
|
||||||
|
|
||||||
// An attempt to make something like standard 20t bevel gear...
|
// An attempt to make something like standard 20t bevel gear...
|
||||||
module bevel_20t() {
|
module bevel_20t() {
|
||||||
difference() {
|
difference() {
|
||||||
|
@ -625,13 +650,13 @@ module gear(
|
||||||
clearance = 0.0, //gap between top of a tooth on one gear and bottom of valley on a meshing gear (in millimeters)
|
clearance = 0.0, //gap between top of a tooth on one gear and bottom of valley on a meshing gear (in millimeters)
|
||||||
backlash = 0.0 //gap between two meshing teeth, in the direction along the circumference of the pitch circle
|
backlash = 0.0 //gap between two meshing teeth, in the direction along the circumference of the pitch circle
|
||||||
) {
|
) {
|
||||||
assign(pi = 3.1415926)
|
pi = 3.1415926;
|
||||||
assign(p = mm_per_tooth * number_of_teeth / pi / 2) //radius of pitch circle
|
p = mm_per_tooth * number_of_teeth / pi / 2; //radius of pitch circle
|
||||||
assign(c = p + mm_per_tooth / pi - clearance) //radius of outer circle
|
c = p + mm_per_tooth / pi - clearance; //radius of outer circle
|
||||||
assign(b = p*cos(pressure_angle)) //radius of base circle
|
b = p*cos(pressure_angle); //radius of base circle
|
||||||
assign(r = p-(c-p)-clearance) //radius of root circle
|
r = p-(c-p)-clearance; //radius of root circle
|
||||||
assign(t = mm_per_tooth/2-backlash/2) //tooth thickness at pitch circle
|
t = mm_per_tooth/2-backlash/2; //tooth thickness at pitch circle
|
||||||
assign(k = -iang(b, p) - t/2/p/pi*180) //angle to where involute meets base circle on each side of tooth
|
k = -iang(b, p) - t/2/p/pi*180; //angle to where involute meets base circle on each side of tooth
|
||||||
difference() {
|
difference() {
|
||||||
union() {
|
union() {
|
||||||
// $fn: so gear teeth edge never match cylinder segment edges
|
// $fn: so gear teeth edge never match cylinder segment edges
|
||||||
|
@ -678,13 +703,13 @@ module gear_teeth(
|
||||||
clearance = 0.0, //gap between top of a tooth on one gear and bottom of valley on a meshing gear (in millimeters)
|
clearance = 0.0, //gap between top of a tooth on one gear and bottom of valley on a meshing gear (in millimeters)
|
||||||
backlash = 0.0 //gap between two meshing teeth, in the direction along the circumference of the pitch circle
|
backlash = 0.0 //gap between two meshing teeth, in the direction along the circumference of the pitch circle
|
||||||
) {
|
) {
|
||||||
assign(pi = 3.1415926)
|
pi = 3.1415926;
|
||||||
assign(p = mm_per_tooth * number_of_teeth / pi / 2) //radius of pitch circle
|
p = mm_per_tooth * number_of_teeth / pi / 2; //radius of pitch circle
|
||||||
assign(c = p + mm_per_tooth / pi - clearance) //radius of outer circle
|
c = p + mm_per_tooth / pi - clearance; //radius of outer circle
|
||||||
assign(b = p*cos(pressure_angle)) //radius of base circle
|
b = p*cos(pressure_angle); //radius of base circle
|
||||||
assign(r = p-(c-p)-clearance) //radius of root circle
|
r = p-(c-p)-clearance; //radius of root circle
|
||||||
assign(t = mm_per_tooth/2-backlash/2) //tooth thickness at pitch circle
|
t = mm_per_tooth/2-backlash/2; //tooth thickness at pitch circle
|
||||||
assign(k = -iang(b, p) - t/2/p/pi*180) //angle to where involute meets base circle on each side of tooth
|
k = -iang(b, p) - t/2/p/pi*180; //angle to where involute meets base circle on each side of tooth
|
||||||
union() {
|
union() {
|
||||||
for (i = [0:number_of_teeth-1])
|
for (i = [0:number_of_teeth-1])
|
||||||
rotate([0,0,i*360/number_of_teeth])
|
rotate([0,0,i*360/number_of_teeth])
|
||||||
|
@ -726,13 +751,13 @@ module gear_concat(
|
||||||
clearance = 0.0, //gap between top of a tooth on one gear and bottom of valley on a meshing gear (in millimeters)
|
clearance = 0.0, //gap between top of a tooth on one gear and bottom of valley on a meshing gear (in millimeters)
|
||||||
backlash = 0.0 //gap between two meshing teeth, in the direction along the circumference of the pitch circle
|
backlash = 0.0 //gap between two meshing teeth, in the direction along the circumference of the pitch circle
|
||||||
) {
|
) {
|
||||||
assign(pi = 3.1415926)
|
pi = 3.1415926;
|
||||||
assign(p = mm_per_tooth * number_of_teeth / pi / 2) //radius of pitch circle
|
p = mm_per_tooth * number_of_teeth / pi / 2; //radius of pitch circle
|
||||||
assign(c = p + mm_per_tooth / pi - clearance) //radius of outer circle
|
c = p + mm_per_tooth / pi - clearance; //radius of outer circle
|
||||||
assign(b = p*cos(pressure_angle)) //radius of base circle
|
b = p*cos(pressure_angle); //radius of base circle
|
||||||
assign(r = p-(c-p)-clearance) //radius of root circle
|
r = p-(c-p)-clearance; //radius of root circle
|
||||||
assign(t = mm_per_tooth/2-backlash/2) //tooth thickness at pitch circle
|
t = mm_per_tooth/2-backlash/2; //tooth thickness at pitch circle
|
||||||
assign(k = -iang(b, p) - t/2/p/pi*180) //angle to where involute meets base circle on each side of tooth
|
k = -iang(b, p) - t/2/p/pi*180; //angle to where involute meets base circle on each side of tooth
|
||||||
linear_extrude(height = thickness, center = false, convexity = 10, twist = twist)
|
linear_extrude(height = thickness, center = false, convexity = 10, twist = twist)
|
||||||
polygon(
|
polygon(
|
||||||
points = gear_points(r, b, c, k, number_of_teeth, number_of_teeth),
|
points = gear_points(r, b, c, k, number_of_teeth, number_of_teeth),
|
||||||
|
@ -749,13 +774,13 @@ module gear_concat_flat(
|
||||||
backlash = 0.0, //gap between two meshing teeth, in the direction along the circumference of the pitch circle
|
backlash = 0.0, //gap between two meshing teeth, in the direction along the circumference of the pitch circle
|
||||||
trim_factor = 1
|
trim_factor = 1
|
||||||
) {
|
) {
|
||||||
assign(pi = 3.1415926)
|
pi = 3.1415926;
|
||||||
assign(p = mm_per_tooth * number_of_teeth / pi / 2) //radius of pitch circle
|
p = mm_per_tooth * number_of_teeth / pi / 2; //radius of pitch circle
|
||||||
assign(c = p + mm_per_tooth / pi - clearance) //radius of outer circle
|
c = p + mm_per_tooth / pi - clearance; //radius of outer circle
|
||||||
assign(b = p*cos(pressure_angle)) //radius of base circle
|
b = p*cos(pressure_angle); //radius of base circle
|
||||||
assign(r = p-(c-p)-clearance) //radius of root circle
|
r = p-(c-p)-clearance; //radius of root circle
|
||||||
assign(t = mm_per_tooth/2-backlash/2) //tooth thickness at pitch circle
|
t = mm_per_tooth/2-backlash/2; //tooth thickness at pitch circle
|
||||||
assign(k = -iang(b, p) - t/2/p/pi*180) //angle to where involute meets base circle on each side of tooth
|
k = -iang(b, p) - t/2/p/pi*180; //angle to where involute meets base circle on each side of tooth
|
||||||
polygon(
|
polygon(
|
||||||
points = gear_points_trimmed(r, b, c, k, number_of_teeth, number_of_teeth, trim_factor),
|
points = gear_points_trimmed(r, b, c, k, number_of_teeth, number_of_teeth, trim_factor),
|
||||||
paths = [ range(15*(number_of_teeth)) ]
|
paths = [ range(15*(number_of_teeth)) ]
|
||||||
|
@ -832,13 +857,13 @@ module gear_original(
|
||||||
clearance = 0.0, //gap between top of a tooth on one gear and bottom of valley on a meshing gear (in millimeters)
|
clearance = 0.0, //gap between top of a tooth on one gear and bottom of valley on a meshing gear (in millimeters)
|
||||||
backlash = 0.0 //gap between two meshing teeth, in the direction along the circumference of the pitch circle
|
backlash = 0.0 //gap between two meshing teeth, in the direction along the circumference of the pitch circle
|
||||||
) {
|
) {
|
||||||
assign(pi = 3.1415926)
|
pi = 3.1415926;
|
||||||
assign(p = mm_per_tooth * number_of_teeth / pi / 2) //radius of pitch circle
|
p = mm_per_tooth * number_of_teeth / pi / 2; //radius of pitch circle
|
||||||
assign(c = p + mm_per_tooth / pi - clearance) //radius of outer circle
|
c = p + mm_per_tooth / pi - clearance; //radius of outer circle
|
||||||
assign(b = p*cos(pressure_angle)) //radius of base circle
|
b = p*cos(pressure_angle); //radius of base circle
|
||||||
assign(r = p-(c-p)-clearance) //radius of root circle
|
r = p-(c-p)-clearance; //radius of root circle
|
||||||
assign(t = mm_per_tooth/2-backlash/2) //tooth thickness at pitch circle
|
t = mm_per_tooth/2-backlash/2; //tooth thickness at pitch circle
|
||||||
assign(k = -iang(b, p) - t/2/p/pi*180) //angle to where involute meets base circle on each side of tooth
|
k = -iang(b, p) - t/2/p/pi*180; //angle to where involute meets base circle on each side of tooth
|
||||||
difference() {
|
difference() {
|
||||||
for (i = [0:number_of_teeth-teeth_to_hide-1])
|
for (i = [0:number_of_teeth-teeth_to_hide-1])
|
||||||
rotate([0,0,i*360/number_of_teeth])
|
rotate([0,0,i*360/number_of_teeth])
|
||||||
|
@ -859,10 +884,6 @@ module gear_original(
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// these 4 functions are used by gear
|
// these 4 functions are used by gear
|
||||||
function polar(r,theta) = r*[sin(theta), cos(theta)]; //convert polar to cartesian coordinates
|
function polar(r,theta) = r*[sin(theta), cos(theta)]; //convert polar to cartesian coordinates
|
||||||
function iang(r1,r2) = sqrt((r2/r1)*(r2/r1) - 1)/3.1415926*180 - acos(r1/r2); //unwind a string this many degrees to go from radius r1 to radius r2
|
function iang(r1,r2) = sqrt((r2/r1)*(r2/r1) - 1)/3.1415926*180 - acos(r1/r2); //unwind a string this many degrees to go from radius r1 to radius r2
|
||||||
|
|
Loading…
Reference in New Issue