reverse backlash for internal gears

This commit is contained in:
Adrian Mariano 2023-08-06 20:14:25 -04:00
parent a24593041c
commit 9684ca112f
2 changed files with 10 additions and 1 deletions

View file

@ -2278,6 +2278,14 @@ module corner_profile(corners=CORNERS_ALL, except=[], r, d, convexity=10) {
// * Rotates this part so it's anchor direction vector exactly opposes the parent's anchor direction vector.
// * Rotates this part so it's anchor spin matches the parent's anchor spin.
// .
// This module is also responsible for handing coloring of objects with {{recolor()}} and {{color_this()}}, and
// it is responsible for processing tags and determining whether the object should
// display or not in the current context. The determination to display the attachable object
// occurs in this module, which means that an object which does not display (e.g. a "remove" tagged object
// inside {{diff()}} cannot have internal {{tag()}} calls that change its tags and cause submodel
// portions to display: the entire child simply does not run.
// For a step-by-step explanation of attachments, see the [Attachments Tutorial](Tutorial-Attachments).
//
// Arguments:

View file

@ -72,6 +72,7 @@ function _inherit_gear_thickness(thickness) =
// this section provides the minimal information needed for gear making. If you want more information about the
// details of gears, consult the references below, which are the ones that we consulted when writing the library code.
// - Tec Science
// * [Involute Gears](https://www.tec-science.com/mechanical-power-transmission/involute-gear/geometry-of-involute-gears/)
// * [Gear engagement](https://www.tec-science.com/mechanical-power-transmission/involute-gear/meshing-line-action-contact-pitch-circle-law/)
// * [Gears meshing with racks](https://www.tec-science.com/mechanical-power-transmission/involute-gear/rack-meshing/)
// * [Gear undercutting](https://www.tec-science.com/mechanical-power-transmission/involute-gear/undercut/)
@ -2567,7 +2568,7 @@ function _gear_tooth_profile(
rrad = _root_radius(circ_pitch, teeth, clearance, helical=helical, profile_shift=profile_shift, internal=internal),
srad = max(rrad,brad),
tthick = circ_pitch/PI / cos(helical) * (PI/2 + 2*profile_shift * tan(pressure_angle)) - backlash,
tthick = circ_pitch/PI / cos(helical) * (PI/2 + 2*profile_shift * tan(pressure_angle)) + (internal?backlash:-backlash),
tang = tthick / prad / 2 * 180 / PI,
// Generate a lookup table for the involute curve angles, by radius