1
0
mirror of https://github.com/nophead/NopSCADlib.git synced 2025-09-06 05:12:54 +02:00

Compare commits

...

2 Commits

Author SHA1 Message Date
Chris Palmer
3cf275579c Fixed ball bearing chamfers. 2020-07-31 01:33:33 +01:00
Chris Palmer
fb41f218fe Added involute_gear_od() function. 2020-07-28 21:24:01 +01:00
5 changed files with 12 additions and 8 deletions

View File

@@ -5254,6 +5254,7 @@ The origin of the rack is the left end of the pitch line and its width is below
|:--- |:--- |
| ```centre_distance(m, z1, z2, pa = 20)``` | Calculate distance between centres taking profile shift into account |
| ```involute(r, u)``` | Involute of circle radius r at angle u in radians |
| ```involute_gear_od(m, z, pa = 20)``` | involute gear outside diameter given modulus, tooth count and pressure angle |
| ```involute_rack_tooth_profile(m, pa = 20, clearance = undef)``` | Calculate rack tooth profile given module and pressure angle |
| ```involute_worm_profile(m, pa = 20, clearance = undef)``` | Calculate worm profile suitable for passing to thread() |
| ```profile_shift(z, pa)``` | Calculate profile shift for small gears |

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 85 KiB

View File

@@ -46,6 +46,9 @@ function profile_shift(z, pa) = z ? max(1 - z * sqr(sin(pa)) / 2, 0) : 0; //! Ca
function centre_distance(m, z1, z2, pa = 20) = //! Calculate distance between centres taking profile shift into account
let(x1 = profile_shift(z1, pa), x2 = profile_shift(z2, pa)) m * (z1/2 + z2/2 + x1 + x2);
function involute_gear_od(m, z, pa = 20) = //! involute gear outside diameter given modulus, tooth count and pressure angle
m * (z + 2 * profile_shift(z, pa) + 2);
module involute_gear_profile(m, z, pa = 20, clearance = undef, steps = 20) { //! Calculate gear profile given module, number of teeth and pressure angle
assert(z >= 7, "Gears must have at least 7 teeth.");
d = m * z; // Reference pitch circle diameter

View File

@@ -52,21 +52,21 @@ module ball_bearing(type) { //! Draw a ball bearing
rim_chamfer = rim / 6;
rotate_extrude()
hull() {
translate([or - rim / 2, 0])
square([rim, h - 2 * rim_chamfer], center = true);
translate([or - rim, -h / 2 + rim_chamfer])
square([rim, h - 2 * rim_chamfer]);
translate([or - rim / 2 - rim_chamfer, 0])
square([rim - rim_chamfer, h], center = true);
translate([or - rim, -h / 2])
square([rim - rim_chamfer, h]);
}
hub_chamfer = hub / 6;
rotate_extrude()
hull() {
translate([ir + hub / 2, 0])
square([hub, h - 2 * hub_chamfer], center = true);
translate([ir, -h / 2 + hub_chamfer])
square([hub, h - 2 * hub_chamfer]);
translate([ir + hub / 2 + hub_chamfer, 0])
square([hub - hub_chamfer, h], center = true);
translate([ir + hub_chamfer, -h / 2])
square([hub - hub_chamfer, h]);
}
}