Compare commits
10 commits
bd761409f7
...
265ce0600c
Author | SHA1 | Date | |
---|---|---|---|
Kaan Barmore-Genç | 265ce0600c | ||
bd0a7ba3f0 | |||
2e11114708 | |||
9d88138aed | |||
6f0ca2a57e | |||
28fbdac168 | |||
4b4caeb5da | |||
7a9942cf85 | |||
c32a63c914 | |||
b88fc567ba |
|
@ -155,7 +155,7 @@ module donutSlice(innerSize,outerSize, start_angle, end_angle) {
|
||||||
{
|
{
|
||||||
pieSlice(outerSize, start_angle, end_angle);
|
pieSlice(outerSize, start_angle, end_angle);
|
||||||
|
|
||||||
if(len(innerSize) > 1)
|
if(is_list(innerSize) && len(innerSize) > 1)
|
||||||
ellipse(innerSize[0]*2,innerSize[1]*2);
|
ellipse(innerSize[0]*2,innerSize[1]*2);
|
||||||
else
|
else
|
||||||
circle(innerSize);
|
circle(innerSize);
|
||||||
|
@ -163,8 +163,8 @@ module donutSlice(innerSize,outerSize, start_angle, end_angle) {
|
||||||
}
|
}
|
||||||
|
|
||||||
module pieSlice(size, start_angle, end_angle) { //size in radius(es)
|
module pieSlice(size, start_angle, end_angle) { //size in radius(es)
|
||||||
rx = len(size) > 1? size[0] : size;
|
rx = (is_list(size) && len(size) > 1)? size[0] : size;
|
||||||
ry = len(size) > 1? size[1] : size;
|
ry = (is_list(size) && len(size) > 1)? size[1] : size;
|
||||||
trx = rx* sqrt(2) + 1;
|
trx = rx* sqrt(2) + 1;
|
||||||
try = ry* sqrt(2) + 1;
|
try = ry* sqrt(2) + 1;
|
||||||
a0 = (4 * start_angle + 0 * end_angle) / 4;
|
a0 = (4 * start_angle + 0 * end_angle) / 4;
|
||||||
|
@ -175,7 +175,7 @@ module pieSlice(size, start_angle, end_angle) { //size in radius(es)
|
||||||
|
|
||||||
if(end_angle > start_angle)
|
if(end_angle > start_angle)
|
||||||
intersection() {
|
intersection() {
|
||||||
if(len(size) > 1)
|
if(is_list(size) && len(size) > 1)
|
||||||
ellipse(rx*2,ry*2);
|
ellipse(rx*2,ry*2);
|
||||||
else
|
else
|
||||||
circle(rx);
|
circle(rx);
|
||||||
|
|
71
bearing.scad
71
bearing.scad
|
@ -81,6 +81,7 @@ function bearingDimensions(model) =
|
||||||
model == 688 ? [8*mm, 16*mm, 5*mm]:
|
model == 688 ? [8*mm, 16*mm, 5*mm]:
|
||||||
model == 689 ? [9*mm, 17*mm, 5*mm]:
|
model == 689 ? [9*mm, 17*mm, 5*mm]:
|
||||||
|
|
||||||
|
model == 692 ? [2*mm, 6*mm, 3*mm]:
|
||||||
model == 693 ? [3*mm, 8*mm, 4*mm]:
|
model == 693 ? [3*mm, 8*mm, 4*mm]:
|
||||||
model == 694 ? [4*mm, 11*mm, 4*mm]:
|
model == 694 ? [4*mm, 11*mm, 4*mm]:
|
||||||
model == 695 ? [5*mm, 13*mm, 4*mm]:
|
model == 695 ? [5*mm, 13*mm, 4*mm]:
|
||||||
|
@ -89,15 +90,85 @@ function bearingDimensions(model) =
|
||||||
model == 698 ? [8*mm, 19*mm, 6*mm]:
|
model == 698 ? [8*mm, 19*mm, 6*mm]:
|
||||||
model == 699 ? [9*mm, 20*mm, 6*mm]:
|
model == 699 ? [9*mm, 20*mm, 6*mm]:
|
||||||
|
|
||||||
|
model == 6000 ? [10*mm, 26*mm, 8*mm]:
|
||||||
|
model == 6001 ? [12*mm, 28*mm, 8*mm]:
|
||||||
|
model == 6002 ? [15*mm, 32*mm, 9*mm]:
|
||||||
|
model == 6003 ? [17*mm, 35*mm, 10*mm]:
|
||||||
|
model == 6004 ? [20*mm, 42*mm, 12*mm]:
|
||||||
|
model == 6005 ? [25*mm, 47*mm, 12*mm]:
|
||||||
|
model == 6006 ? [30*mm, 55*mm, 13*mm]:
|
||||||
|
model == 6007 ? [35*mm, 62*mm, 14*mm]:
|
||||||
|
model == 6008 ? [40*mm, 68*mm, 15*mm]:
|
||||||
|
model == 6009 ? [45*mm, 75*mm, 16*mm]:
|
||||||
|
model == 6010 ? [50*mm, 80*mm, 16*mm]:
|
||||||
|
model == 6011 ? [55*mm, 90*mm, 18*mm]:
|
||||||
|
model == 6012 ? [60*mm, 95*mm, 18*mm]:
|
||||||
|
model == 6013 ? [65*mm, 100*mm, 18*mm]:
|
||||||
|
model == 6014 ? [70*mm, 110*mm, 20*mm]:
|
||||||
|
model == 6015 ? [75*mm, 115*mm, 20*mm]:
|
||||||
|
|
||||||
model == 6200 ? [10*mm, 30*mm, 9*mm]:
|
model == 6200 ? [10*mm, 30*mm, 9*mm]:
|
||||||
model == 6201 ? [12*mm, 32*mm, 10*mm]:
|
model == 6201 ? [12*mm, 32*mm, 10*mm]:
|
||||||
model == 6202 ? [15*mm, 35*mm, 11*mm]:
|
model == 6202 ? [15*mm, 35*mm, 11*mm]:
|
||||||
model == 6203 ? [17*mm, 40*mm, 12*mm]:
|
model == 6203 ? [17*mm, 40*mm, 12*mm]:
|
||||||
|
model == 6204 ? [20*mm, 47*mm, 14*mm]:
|
||||||
model == 6205 ? [25*mm, 52*mm, 15*mm]:
|
model == 6205 ? [25*mm, 52*mm, 15*mm]:
|
||||||
model == 6206 ? [30*mm, 62*mm, 16*mm]:
|
model == 6206 ? [30*mm, 62*mm, 16*mm]:
|
||||||
|
model == 6207 ? [35*mm, 72*mm, 17*mm]:
|
||||||
|
model == 6208 ? [40*mm, 80*mm, 18*mm]:
|
||||||
|
model == 6209 ? [45*mm, 85*mm, 19*mm]:
|
||||||
|
|
||||||
|
model == 6300 ? [10*mm, 35*mm, 11*mm]:
|
||||||
|
model == 6301 ? [12*mm, 37*mm, 12*mm]:
|
||||||
|
model == 6302 ? [15*mm, 42*mm, 13*mm]:
|
||||||
|
model == 6303 ? [17*mm, 47*mm, 14*mm]:
|
||||||
|
model == 6304 ? [20*mm, 52*mm, 15*mm]:
|
||||||
|
model == 6305 ? [25*mm, 62*mm, 17*mm]:
|
||||||
|
model == 6306 ? [30*mm, 72*mm, 19*mm]:
|
||||||
|
model == 6307 ? [35*mm, 80*mm, 21*mm]:
|
||||||
|
model == 6308 ? [40*mm, 90*mm, 23*mm]:
|
||||||
|
model == 6309 ? [45*mm, 100*mm, 25*mm]:
|
||||||
|
model == 6310 ? [50*mm, 110*mm, 27*mm]:
|
||||||
|
model == 6311 ? [55*mm, 120*mm, 29*mm]:
|
||||||
|
model == 6312 ? [60*mm, 130*mm, 31*mm]:
|
||||||
|
model == 6313 ? [65*mm, 140*mm, 33*mm]:
|
||||||
|
model == 6314 ? [70*mm, 150*mm, 35*mm]:
|
||||||
|
model == 6315 ? [75*mm, 160*mm, 37*mm]:
|
||||||
|
|
||||||
|
model == 6700 ? [10*mm, 15*mm, 4*mm]:
|
||||||
|
model == 6701 ? [12*mm, 18*mm, 4*mm]:
|
||||||
|
|
||||||
model == 6808 ? [40*mm, 52*mm, 7*mm]:
|
model == 6808 ? [40*mm, 52*mm, 7*mm]:
|
||||||
|
|
||||||
|
model == 6900 ? [10*mm, 22*mm, 6*mm]:
|
||||||
|
model == 6901 ? [12*mm, 24*mm, 6*mm]:
|
||||||
|
model == 6902 ? [15*mm, 28*mm, 7*mm]:
|
||||||
|
model == 6903 ? [17*mm, 30*mm, 7*mm]:
|
||||||
|
model == 6904 ? [20*mm, 37*mm, 9*mm]:
|
||||||
|
model == 6905 ? [25*mm, 42*mm, 9*mm]:
|
||||||
|
|
||||||
|
model == "LM12" ? [12*mm, 21*mm, 30*mm]:
|
||||||
|
|
||||||
|
model == "MR52" ? [2*mm, 5*mm, 2.5*mm]:
|
||||||
|
model == "MR62" ? [2*mm, 6*mm, 2.5*mm]:
|
||||||
|
model == "MR63" ? [3*mm, 6*mm, 2.5*mm]:
|
||||||
|
model == "MR72" ? [2*mm, 7*mm, 3*mm]:
|
||||||
|
model == "MR74" ? [4*mm, 7*mm, 2.5*mm]:
|
||||||
|
model == "MR83" ? [3*mm, 8*mm, 3*mm]:
|
||||||
|
model == "MR84" ? [4*mm, 8*mm, 3*mm]:
|
||||||
|
model == "MR85" ? [5*mm, 8*mm, 2.5*mm]:
|
||||||
|
model == "MR93" ? [3*mm, 9*mm, 4*mm]:
|
||||||
|
model == "MR95" ? [5*mm, 9*mm, 3*mm]:
|
||||||
|
model == "MR104" ? [4*mm, 10*mm, 4*mm]:
|
||||||
|
model == "MR105" ? [5*mm, 10*mm, 4*mm]:
|
||||||
|
model == "MR106" ? [6*mm, 10*mm, 3*mm]:
|
||||||
|
model == "MR115" ? [5*mm, 11*mm, 4*mm]:
|
||||||
|
model == "MR117" ? [7*mm, 11*mm, 3*mm]:
|
||||||
|
model == "MR126" ? [6*mm, 12*mm, 4*mm]:
|
||||||
|
model == "MR128" ? [8*mm, 12*mm, 3.5*mm]:
|
||||||
|
model == "MR137" ? [7*mm, 13*mm, 4*mm]:
|
||||||
|
model == "MR148" ? [8*mm, 14*mm, 4*mm]:
|
||||||
|
model == "MR149" ? [9*mm, 14*mm, 4.5*mm]:
|
||||||
[8*mm, 22*mm, 7*mm]; // this is the default
|
[8*mm, 22*mm, 7*mm]; // this is the default
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -303,8 +303,15 @@ module gear (
|
||||||
rim_width=undef,
|
rim_width=undef,
|
||||||
hub_thickness=undef,
|
hub_thickness=undef,
|
||||||
hub_diameter=undef,
|
hub_diameter=undef,
|
||||||
|
spokes=0,
|
||||||
|
spoke_width=undef,
|
||||||
|
spoke_thickness=undef,
|
||||||
|
spoke_square=false,
|
||||||
|
centered_gear=false,
|
||||||
|
centered_hub=false,
|
||||||
bore_diameter=undef,
|
bore_diameter=undef,
|
||||||
circles=0,
|
circles=0,
|
||||||
|
circle_diameter=undef,
|
||||||
backlash=0,
|
backlash=0,
|
||||||
twist=0,
|
twist=0,
|
||||||
involute_facets=0,
|
involute_facets=0,
|
||||||
|
@ -350,29 +357,43 @@ module gear (
|
||||||
rim_width = (rim_width!=undef?rim_width:root_radius * .1);
|
rim_width = (rim_width!=undef?rim_width:root_radius * .1);
|
||||||
rim_radius = root_radius - rim_width;
|
rim_radius = root_radius - rim_width;
|
||||||
|
|
||||||
// Variables controlling the hub_diameter
|
// Variables controlling the hub
|
||||||
hub_thickness = (hub_thickness!=undef?(hub_thickness!=0?hub_thickness:gear_thickness):gear_thickness * 2);
|
hub_thickness = (hub_thickness!=undef?(hub_thickness!=0?hub_thickness:gear_thickness):gear_thickness * 2);
|
||||||
hub_diameter = (hub_diameter!=undef?hub_diameter:root_radius * .3);
|
hub_diameter = (hub_diameter!=undef?hub_diameter:root_radius * .3);
|
||||||
|
hub_base = (centered_hub == false)? 0 : rim_thickness/2 - hub_thickness/2;
|
||||||
|
|
||||||
|
// Variables controlling the spokes
|
||||||
|
spokes = spokes == undef? 0 : spokes;
|
||||||
|
spoke_thickness = (spoke_thickness == undef)? rim_thickness : spoke_thickness;
|
||||||
|
spoke_width = (spokes==0)? 1 : (spoke_width == undef)? 0.75 * pi * hub_diameter / spokes : spoke_width;
|
||||||
|
//spoke_depth is depth spoke must penetrate into hub to ensure complete penetration
|
||||||
|
spoke_depth = ((hub_diameter/2)^2-(spoke_width/2)^2)^0.5 +.01;
|
||||||
|
//spoke length is length of spoke including the depth sunk into the hub
|
||||||
|
spoke_length = spoke_depth+rim_radius-(hub_diameter/2.0);
|
||||||
|
//spoke raius is the distance from gear center to base of the spoke(inside the hub)
|
||||||
|
spoke_radius = (hub_diameter/2.0)-spoke_depth;
|
||||||
|
//echo (str("spoke_width: ",spoke_width,", hub_diameter: ",hub_diameter, ", spoke_depth: ",spoke_depth));
|
||||||
|
|
||||||
// Variables controlling the bore
|
// Variables controlling the bore
|
||||||
bore_diameter = (bore_diameter!=undef?bore_diameter:root_radius * .1);
|
bore_diameter = bore_diameter!=undef?bore_diameter:root_radius * .1;
|
||||||
|
|
||||||
// Variables controlling the circular holes in the gear.
|
// Variables controlling the circular holes in the gear.
|
||||||
circle_orbit_diameter=hub_diameter/2+rim_radius;
|
circle_orbit_diameter=hub_diameter/2+rim_radius;
|
||||||
circle_orbit_curcumference=pi*circle_orbit_diameter;
|
circle_orbit_curcumference=pi*circle_orbit_diameter;
|
||||||
|
|
||||||
// Limit the circle size to 90% of the gear face.
|
// Limit the circle size to 90% of the gear face.
|
||||||
circle_diameter=
|
circle_default_diameter = min (
|
||||||
min (
|
|
||||||
0.70*circle_orbit_curcumference/circles,
|
0.70*circle_orbit_curcumference/circles,
|
||||||
(rim_radius-hub_diameter/2)*0.9);
|
(rim_radius+hub_diameter/2)*0.9);
|
||||||
|
circle_diameter=(circle_diameter != undef)? circle_diameter : circle_default_diameter;
|
||||||
|
echo(str("cir_orb_dia: ", circle_orbit_diameter, ", cir_orb_circumf: ", circle_orbit_curcumference, ", default cir dia: ",circle_default_diameter, ", cir_dia:",circle_diameter));
|
||||||
difference()
|
difference()
|
||||||
{
|
{
|
||||||
union ()
|
union ()
|
||||||
{
|
{
|
||||||
difference ()
|
difference ()
|
||||||
{
|
{
|
||||||
|
//start with a plane toothed disk gear
|
||||||
linear_extrude_flat_option(flat=flat, height=rim_thickness, convexity=10, twist=twist)
|
linear_extrude_flat_option(flat=flat, height=rim_thickness, convexity=10, twist=twist)
|
||||||
gear_shape (
|
gear_shape (
|
||||||
number_of_teeth,
|
number_of_teeth,
|
||||||
|
@ -383,21 +404,78 @@ module gear (
|
||||||
half_thick_angle = half_thick_angle,
|
half_thick_angle = half_thick_angle,
|
||||||
involute_facets=involute_facets);
|
involute_facets=involute_facets);
|
||||||
|
|
||||||
if (flat == false && gear_thickness < rim_thickness)
|
//if we have a 0 hub thickness, then hub must be removed
|
||||||
|
if (hub_thickness == 0)
|
||||||
|
translate ([0,0,-1])
|
||||||
|
cylinder (r=rim_radius,h=rim_thickness+2);
|
||||||
|
//if the rim is thicker than the gear, carve out gear body
|
||||||
|
else if (rim_thickness>gear_thickness){
|
||||||
|
//if not centered, carve out only the top
|
||||||
|
if (centered_gear == false){
|
||||||
translate ([0,0,gear_thickness])
|
translate ([0,0,gear_thickness])
|
||||||
cylinder (r=rim_radius,h=rim_thickness-gear_thickness+1);
|
cylinder (r=rim_radius,h=rim_thickness);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
//carve out half from top and half from bottom
|
||||||
|
union ()
|
||||||
|
{
|
||||||
|
translate ([0,0,(gear_thickness + rim_thickness)/2])
|
||||||
|
cylinder (r=rim_radius,h=rim_thickness+1);
|
||||||
|
translate ([0,0,-1 -(gear_thickness + rim_thickness)/2])
|
||||||
|
cylinder (r=rim_radius,h=rim_thickness+1);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//extend the gear body if gear_thickness > rim_thickness unless spoked,
|
||||||
if (gear_thickness > rim_thickness)
|
if (gear_thickness > rim_thickness)
|
||||||
|
{
|
||||||
|
if (centered_gear == false)
|
||||||
|
{
|
||||||
linear_extrude_flat_option(flat=flat, height=gear_thickness)
|
linear_extrude_flat_option(flat=flat, height=gear_thickness)
|
||||||
circle (r=rim_radius);
|
circle (r=rim_radius);
|
||||||
if (flat == false && hub_thickness > gear_thickness)
|
|
||||||
translate ([0,0,gear_thickness])
|
|
||||||
linear_extrude_flat_option(flat=flat, height=hub_thickness-gear_thickness)
|
|
||||||
circle (r=hub_diameter/2);
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
translate ([0,0,-(gear_thickness - rim_thickness)/2])
|
||||||
|
linear_extrude_flat_option(flat=flat, height=gear_thickness)
|
||||||
|
circle (r=rim_radius);
|
||||||
|
}
|
||||||
|
//if rim is thicker than body, body protrudes into rim
|
||||||
|
}
|
||||||
|
//add the hub
|
||||||
|
translate ([0,0,hub_base])
|
||||||
|
linear_extrude_flat_option(flat=flat, height=hub_thickness)
|
||||||
|
circle (r=hub_diameter/2);
|
||||||
|
|
||||||
|
//add in spokes
|
||||||
|
if (spokes>0)
|
||||||
|
{
|
||||||
|
for(i=[0:spokes-1])
|
||||||
|
translate([0,0,rim_thickness/2])
|
||||||
|
rotate([90,0,i*360/spokes])
|
||||||
|
translate([0,0,spoke_radius])
|
||||||
|
{
|
||||||
|
if (spoke_square==true){
|
||||||
|
resize([spoke_width,spoke_thickness,spoke_length])
|
||||||
|
translate([0,0,.5])
|
||||||
|
cube(1,center=true);
|
||||||
|
}
|
||||||
|
if (spoke_square==false){
|
||||||
|
resize([spoke_width,spoke_thickness,spoke_length])
|
||||||
|
cylinder(h=10,d=10);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//remove the center bore
|
||||||
translate ([0,0,-1])
|
translate ([0,0,-1])
|
||||||
linear_extrude_flat_option(flat =flat, height=2+max(rim_thickness,hub_thickness,gear_thickness))
|
linear_extrude_flat_option(flat =flat, height=2+max(rim_thickness,hub_thickness,gear_thickness))
|
||||||
circle (r=bore_diameter/2);
|
circle (r=bore_diameter/2);
|
||||||
|
|
||||||
|
//remove circles from gear body
|
||||||
if (circles>0)
|
if (circles>0)
|
||||||
{
|
{
|
||||||
for(i=[0:circles-1])
|
for(i=[0:circles-1])
|
||||||
|
@ -423,10 +501,10 @@ module rack(
|
||||||
echo("MCAD ERROR: gear module needs either a diametral_pitch or circular_pitch");
|
echo("MCAD ERROR: gear module needs either a diametral_pitch or circular_pitch");
|
||||||
|
|
||||||
//Convert diametrial pitch to our native circular pitch
|
//Convert diametrial pitch to our native circular pitch
|
||||||
circular_pitch = (circular_pitch!=false?circular_pitch:180/diametral_pitch);
|
circular_pitch = (circular_pitch!=false?circular_pitch:pi/diametral_pitch);
|
||||||
pitch = circular_pitch / 180 * PI;
|
pitch = circular_pitch;
|
||||||
|
|
||||||
addendum = circular_pitch / 180;
|
addendum = circular_pitch / pi;
|
||||||
dedendum = addendum + clearance;
|
dedendum = addendum + clearance;
|
||||||
pitch_slope = tan(pressure_angle);
|
pitch_slope = tan(pressure_angle);
|
||||||
|
|
||||||
|
@ -566,23 +644,31 @@ function involute (base_radius, involute_angle) =
|
||||||
|
|
||||||
module test_gears()
|
module test_gears()
|
||||||
{
|
{
|
||||||
|
$fs = 0.2;
|
||||||
|
$fa =1;
|
||||||
translate([17,-15])
|
translate([17,-15])
|
||||||
{
|
{
|
||||||
gear (number_of_teeth=17,
|
gear (number_of_teeth=17,
|
||||||
circular_pitch=500,
|
circular_pitch=500*pi/180,
|
||||||
circles=8);
|
spokes=6,
|
||||||
|
spoke_thickness=4,
|
||||||
|
gear_thickness=0,
|
||||||
|
rim_thickness=5,
|
||||||
|
hub_thickness=5,
|
||||||
|
hub_diameter=10,
|
||||||
|
circles=0);
|
||||||
|
|
||||||
rotate ([0,0,360*4/17])
|
rotate ([0,0,360*4/17])
|
||||||
translate ([39.088888,0,0])
|
translate ([39.088888,0,0])
|
||||||
{
|
{
|
||||||
gear (number_of_teeth=11,
|
gear (number_of_teeth=11,
|
||||||
circular_pitch=500,
|
circular_pitch=500*pi/180,
|
||||||
hub_diameter=0,
|
hub_diameter=0,
|
||||||
rim_width=65);
|
rim_width=65);
|
||||||
translate ([0,0,8])
|
translate ([0,0,8])
|
||||||
{
|
{
|
||||||
gear (number_of_teeth=6,
|
gear (number_of_teeth=6,
|
||||||
circular_pitch=300,
|
circular_pitch=300*pi/180,
|
||||||
hub_diameter=0,
|
hub_diameter=0,
|
||||||
rim_width=5,
|
rim_width=5,
|
||||||
rim_thickness=6,
|
rim_thickness=6,
|
||||||
|
@ -590,7 +676,7 @@ module test_gears()
|
||||||
rotate ([0,0,360*5/6])
|
rotate ([0,0,360*5/6])
|
||||||
translate ([22.5,0,1])
|
translate ([22.5,0,1])
|
||||||
gear (number_of_teeth=21,
|
gear (number_of_teeth=21,
|
||||||
circular_pitch=300,
|
circular_pitch=300*pi/180,
|
||||||
bore_diameter=2,
|
bore_diameter=2,
|
||||||
hub_diameter=4,
|
hub_diameter=4,
|
||||||
rim_width=1,
|
rim_width=1,
|
||||||
|
@ -604,22 +690,29 @@ module test_gears()
|
||||||
translate ([-61.1111111,0,0])
|
translate ([-61.1111111,0,0])
|
||||||
{
|
{
|
||||||
gear (number_of_teeth=27,
|
gear (number_of_teeth=27,
|
||||||
circular_pitch=500,
|
circular_pitch=500*pi/180,
|
||||||
circles=5,
|
circles=6,
|
||||||
|
circle_diameter=12,
|
||||||
|
spokes=6,
|
||||||
|
gear_thickness=2,
|
||||||
|
hub_thickness=10,
|
||||||
|
centered_gear=true,
|
||||||
|
spoke_thickness=3,
|
||||||
hub_diameter=2*8.88888889);
|
hub_diameter=2*8.88888889);
|
||||||
|
|
||||||
translate ([-37.5,0,0])
|
translate ([-37.5,0,0])
|
||||||
rotate ([0,0,-90])
|
rotate ([0,0,-90])
|
||||||
rack (
|
rack (
|
||||||
circular_pitch=500
|
circular_pitch=500*pi/180
|
||||||
);
|
);
|
||||||
|
|
||||||
translate ([0,0,10])
|
translate ([0,0,10])
|
||||||
{
|
{
|
||||||
gear (
|
gear (
|
||||||
number_of_teeth=14,
|
number_of_teeth=14,
|
||||||
circular_pitch=200,
|
circular_pitch=200*pi/180,
|
||||||
pressure_angle=5,
|
pressure_angle=5,
|
||||||
|
twist=30,
|
||||||
clearance = 0.2,
|
clearance = 0.2,
|
||||||
gear_thickness = 10,
|
gear_thickness = 10,
|
||||||
rim_thickness = 10,
|
rim_thickness = 10,
|
||||||
|
@ -628,16 +721,18 @@ module test_gears()
|
||||||
circles=0);
|
circles=0);
|
||||||
translate ([13.8888888,0,1])
|
translate ([13.8888888,0,1])
|
||||||
gear (
|
gear (
|
||||||
number_of_teeth=11,
|
number_of_teeth=10,
|
||||||
circular_pitch=200,
|
circular_pitch=200*pi/180,
|
||||||
pressure_angle=5,
|
pressure_angle=5,
|
||||||
clearance = 0.2,
|
clearance = 0.2,
|
||||||
gear_thickness = 10,
|
gear_thickness = 10,
|
||||||
rim_thickness = 10,
|
rim_thickness = 8,
|
||||||
|
twist=-30*8/10,
|
||||||
rim_width = 15,
|
rim_width = 15,
|
||||||
hub_thickness = 20,
|
hub_thickness = 10,
|
||||||
hub_diameter=2*7.222222,
|
centered_hub=true,
|
||||||
bore_diameter=5,
|
hub_diameter=7,
|
||||||
|
bore_diameter=4,
|
||||||
circles=0);
|
circles=0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -645,7 +740,7 @@ module test_gears()
|
||||||
rotate ([0,0,360*-5/17])
|
rotate ([0,0,360*-5/17])
|
||||||
translate ([44.444444444,0,0])
|
translate ([44.444444444,0,0])
|
||||||
gear (number_of_teeth=15,
|
gear (number_of_teeth=15,
|
||||||
circular_pitch=500,
|
circular_pitch=500*pi/180,
|
||||||
hub_diameter=10,
|
hub_diameter=10,
|
||||||
rim_width=5,
|
rim_width=5,
|
||||||
rim_thickness=5,
|
rim_thickness=5,
|
||||||
|
@ -656,7 +751,7 @@ module test_gears()
|
||||||
rotate ([0,0,360*-1/17])
|
rotate ([0,0,360*-1/17])
|
||||||
translate ([30.5555555,0,-1])
|
translate ([30.5555555,0,-1])
|
||||||
gear (number_of_teeth=5,
|
gear (number_of_teeth=5,
|
||||||
circular_pitch=500,
|
circular_pitch=500*pi/180,
|
||||||
hub_diameter=0,
|
hub_diameter=0,
|
||||||
rim_width=5,
|
rim_width=5,
|
||||||
rim_thickness=10);
|
rim_thickness=10);
|
||||||
|
@ -683,7 +778,7 @@ module test_double_helix_gear (
|
||||||
pressure_angle=30;
|
pressure_angle=30;
|
||||||
|
|
||||||
gear (number_of_teeth=teeth,
|
gear (number_of_teeth=teeth,
|
||||||
circular_pitch=700,
|
circular_pitch=700*pi/180,
|
||||||
pressure_angle=pressure_angle,
|
pressure_angle=pressure_angle,
|
||||||
clearance = 0.2,
|
clearance = 0.2,
|
||||||
gear_thickness = height/2*0.5,
|
gear_thickness = height/2*0.5,
|
||||||
|
@ -696,7 +791,7 @@ module test_double_helix_gear (
|
||||||
twist=twist/teeth);
|
twist=twist/teeth);
|
||||||
mirror([0,0,1])
|
mirror([0,0,1])
|
||||||
gear (number_of_teeth=teeth,
|
gear (number_of_teeth=teeth,
|
||||||
circular_pitch=700,
|
circular_pitch=700*pi/180,
|
||||||
pressure_angle=pressure_angle,
|
pressure_angle=pressure_angle,
|
||||||
clearance = 0.2,
|
clearance = 0.2,
|
||||||
gear_thickness = height/2,
|
gear_thickness = height/2,
|
||||||
|
@ -721,7 +816,7 @@ module test_backlash ()
|
||||||
rotate ([0,0,-360/teeth/4])
|
rotate ([0,0,-360/teeth/4])
|
||||||
gear (
|
gear (
|
||||||
number_of_teeth = teeth,
|
number_of_teeth = teeth,
|
||||||
circular_pitch=700,
|
circular_pitch=700*pi/180,
|
||||||
gear_thickness = 12,
|
gear_thickness = 12,
|
||||||
rim_thickness = 15,
|
rim_thickness = 15,
|
||||||
rim_width = 5,
|
rim_width = 5,
|
||||||
|
@ -734,7 +829,7 @@ module test_backlash ()
|
||||||
rotate ([0,0,360/teeth/4])
|
rotate ([0,0,360/teeth/4])
|
||||||
gear (
|
gear (
|
||||||
number_of_teeth = teeth,
|
number_of_teeth = teeth,
|
||||||
circular_pitch=700,
|
circular_pitch=700*pi/180,
|
||||||
gear_thickness = 12,
|
gear_thickness = 12,
|
||||||
rim_thickness = 15,
|
rim_thickness = 15,
|
||||||
rim_width = 5,
|
rim_width = 5,
|
||||||
|
@ -745,7 +840,8 @@ module test_backlash ()
|
||||||
circles=8);
|
circles=8);
|
||||||
}
|
}
|
||||||
|
|
||||||
color([0,0,128,0.5])
|
color([0,0,1,0.5])
|
||||||
translate([0,0,-5])
|
translate([0,0,-5])
|
||||||
cylinder ($fn=20,r=backlash / 4,h=25);
|
cylinder ($fn=20,r=backlash / 4,h=25);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -145,7 +145,7 @@ METRIC_BOLT_CAP_DIAMETERS =
|
||||||
[
|
[
|
||||||
-1, //0 index is not used but reduces computation
|
-1, //0 index is not used but reduces computation
|
||||||
-1,
|
-1,
|
||||||
-1,
|
3.8,
|
||||||
5.50,//m3
|
5.50,//m3
|
||||||
7.00,//m4
|
7.00,//m4
|
||||||
8.50,//m5
|
8.50,//m5
|
||||||
|
|
|
@ -58,7 +58,7 @@ module profile_channel(base, side, wall) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module profile_tslot_generic (pitch, slot, lip, web, hole) {
|
module profile_tslot_generic (pitch, slot, lip, web, core, hole) {
|
||||||
// pitch = side width, slot = slot width, lip = thickness of the lip, web = thickness of the web, core = side of the center square, hole = center hole diameter
|
// pitch = side width, slot = slot width, lip = thickness of the lip, web = thickness of the web, core = side of the center square, hole = center hole diameter
|
||||||
difference () {
|
difference () {
|
||||||
union() {
|
union() {
|
||||||
|
@ -72,7 +72,7 @@ module profile_tslot_generic (pitch, slot, lip, web, hole) {
|
||||||
rotate ([0, 0, -45]) square ([pitch*1.15, web], center=true);
|
rotate ([0, 0, -45]) square ([pitch*1.15, web], center=true);
|
||||||
square (core, center=true);
|
square (core, center=true);
|
||||||
}
|
}
|
||||||
circle (hole/2, center = true);
|
circle (hole/2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,9 +23,9 @@ This script generates a teardrop shape at the appropriate angle to prevent overh
|
||||||
module teardrop(radius, length, angle) {
|
module teardrop(radius, length, angle) {
|
||||||
rotate([0, angle, 0]) union() {
|
rotate([0, angle, 0]) union() {
|
||||||
linear_extrude(height = length, center = true, convexity = radius, twist = 0)
|
linear_extrude(height = length, center = true, convexity = radius, twist = 0)
|
||||||
circle(r = radius, $fn = 30);
|
circle(r = radius);
|
||||||
linear_extrude(height = length, center = true, convexity = radius, twist = 0)
|
linear_extrude(height = length, center = true, convexity = radius, twist = 0)
|
||||||
projection(cut = false) rotate([0, -angle, 0]) translate([0, 0, radius * sin(45) * 1.5]) cylinder(h = radius * sin(45), r1 = radius * sin(45), r2 = 0, center = true, $fn = 30);
|
projection(cut = false) rotate([0, -angle, 0]) translate([0, 0, radius * sin(45) * 1.5]) cylinder(h = radius * sin(45), r1 = radius * sin(45), r2 = 0, center = true);
|
||||||
}
|
}
|
||||||
|
|
||||||
//I worked this portion out when a bug was causing the projection above to take FOREVER to calculate. It works as a replacement, and I figured I'd leave it here just in case.
|
//I worked this portion out when a bug was causing the projection above to take FOREVER to calculate. It works as a replacement, and I figured I'd leave it here just in case.
|
||||||
|
|
Loading…
Reference in a new issue