|
@ -117,7 +117,8 @@ module rack ( |
|
|
height = 120, //height of rack in mm, from tooth top to far side of rack. |
|
|
height = 120, //height of rack in mm, from tooth top to far side of rack. |
|
|
twist = 0, //teeth rotate this many degrees from bottom of gear to top. 360 makes the gear a screw with each thread going around once |
|
|
twist = 0, //teeth rotate this many degrees from bottom of gear to top. 360 makes the gear a screw with each thread going around once |
|
|
pressure_angle = 28, //Controls how straight or bulged the tooth sides are. In degrees. |
|
|
pressure_angle = 28, //Controls how straight or bulged the tooth sides are. In degrees. |
|
|
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 |
|
|
|
|
|
additional = 27 |
|
|
) { |
|
|
) { |
|
|
pi = 3.1415926; |
|
|
pi = 3.1415926; |
|
|
a = mm_per_tooth / pi; //addendum |
|
|
a = mm_per_tooth / pi; //addendum |
|
@ -158,7 +159,7 @@ module rack ( |
|
|
[7,0,8,15], // back |
|
|
[7,0,8,15], // back |
|
|
[8,9,10,11,12,13,14,15], // top |
|
|
[8,9,10,11,12,13,14,15], // top |
|
|
]); |
|
|
]); |
|
|
translate([(number_of_teeth-2)*mm_per_tooth/2,-(height)/2,0]) cube([(number_of_teeth+5)*mm_per_tooth,height-2*a,thickness], center=true); |
|
|
translate([(number_of_teeth-2)*mm_per_tooth/2-additional,-(height)/2,0]) cube([(number_of_teeth+5)*mm_per_tooth,height-2*a,thickness], center=true); |
|
|
} |
|
|
} |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
@ -220,7 +221,7 @@ module servo_gear() { |
|
|
difference() { |
|
|
difference() { |
|
|
gear(mm_per_tooth,n2,thickness,hole_screw,twist,108); // servo gear |
|
|
gear(mm_per_tooth,n2,thickness,hole_screw,twist,108); // servo gear |
|
|
translate([0,0,-thickness/2]) cylinder(r=4.5/2, h=kopf_screw*2, center=true, $fn=100); |
|
|
translate([0,0,-thickness/2]) cylinder(r=4.5/2, h=kopf_screw*2, center=true, $fn=100); |
|
|
translate([0,0,thickness/2]) gear(0.77,n_servo,thickness_servo*2,0,0,108); // servo gear |
|
|
translate([0,0,thickness/2]) gear(0.76,n_servo,thickness_servo*2,0,0,0,35); // servo gear |
|
|
}; |
|
|
}; |
|
|
echo("pitch radius of servo bearing is: ", pitch_radius(0.79, n_servo)); |
|
|
echo("pitch radius of servo bearing is: ", pitch_radius(0.79, n_servo)); |
|
|
} |
|
|
} |
|
@ -236,11 +237,12 @@ module rod_pusher() { |
|
|
translate([mm_per_tooth*(-floor(n5/2)-floor(n1/2)+$t+n1/(3/2)-1/2)+100, +d1+0.4, 0]) rotate([0,0,180]) |
|
|
translate([mm_per_tooth*(-floor(n5/2)-floor(n1/2)+$t+n1/(3/2)-1/2)+100, +d1+0.4, 0]) rotate([0,0,180]) |
|
|
difference() { |
|
|
difference() { |
|
|
minkowski() { |
|
|
minkowski() { |
|
|
translate([0,2,0])rotate([90,-90,0])linear_extrude(height=9.7)polygon([[0,0],[-15,10],[15,10]]); |
|
|
translate([-6,2,0])rotate([90,-90,0]) |
|
|
|
|
|
linear_extrude(height=9.7)polygon([[0,0],[-15,20],[-15,40],[15,40],[15,20]]); |
|
|
cylinder(r=mink,h=0.2,$fn=50); |
|
|
cylinder(r=mink,h=0.2,$fn=50); |
|
|
rotate([90,0,0])cylinder(r=mink,h=0.2,$fn=50); |
|
|
rotate([90,0,0])cylinder(r=mink,h=0.2,$fn=50); |
|
|
} |
|
|
} |
|
|
translate([-3,-8/2-1.6,0])cube([12,10,thickness+0.4],center=true); |
|
|
translate([-3-30/2,-8/2-1.6,0])cube([12+30,10,thickness+0.4],center=true); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|