gearbox.models#
Input models: cutting tool, material, lubricant and gear.
All models are immutable dataclasses. Derived geometry is exposed as read-only properties, so a
modified copy (e.g. a different profile shift) is obtained with dataclasses.replace():
shifted_pinion = dataclasses.replace(pinion, profile_shift_coefficient=0.3)
Units follow the usual gear-calculation conventions: lengths in mm, angles in degrees, stresses in MPa, density in kg/mm^3, kinematic viscosity in mm^2/s (cSt).
- class Tool[source]#
Bases:
objectBasic rack / generating tool profile.
All “coefficient” lengths are dimensionless and multiplied by the normal module.
- tool_edge_radius_coefficient#
Tool tip radius
rho_a0of the AGMA geometry factor; defaults to the root fillet radius coefficient of the tool.- Type:
float | None
- cutter_type#
Hob or shaper cutter; a shaper changes the tooth root model of ISO 6336-3.
- Type:
- cutter_teeth#
Number of teeth of the generating cutter (
n_c), AGMA 908-B89 clause 5.5; 10 000 represents a hob or rack cutter (the default), a smaller number a shaper cutter.- Type:
- residual_fillet_undercut_coefficient#
Residual fillet undercut
s_prleft by a protuberance tool, in modules (ISO 6336-3 formula 26); 0 when the gear is not undercut.- Type:
- __init__(*, addendum_coefficient, dedendum_coefficient, root_fillet_radius_coefficient, bottom_clearance_coefficient=0.25, profile_shift_coefficient=0.0, tool_edge_radius_coefficient=None, tool_tip_displacement=0.0, cutter_type=CutterType.HOB, cutter_teeth=10000.0, residual_fillet_undercut_coefficient=0.0)#
- class Material[source]#
Bases:
objectGear material and its strength data (see ISO 6336-5).
- material_type#
Material group; selects the life, roughness and size factors.
- Type:
- allowable_contact_stress_number#
AGMA
s_ac[MPa] (AGMA 2001-D04 tables 3 to 6). Optional; when given for both gears the AGMA pitting result includes the safety factor.- Type:
float | None
- yield_strength#
Yield point
sigma_S(normalized steelSt) or 0.2 % proof stresssigma_0.2(through-hardened steel and pearlitic ductile iron) [MPa]. Only needed for the static bending strength of those materials (ISO 6336-3 formulae 78 and 79).- Type:
float | None
- __init__(*, contact_stress_limit, bending_stress_limit, brinell_hardness, material_type, name='', yield_strength=None, allowable_contact_stress_number=None, allowable_bending_stress_number=None, elastic_modulus=206000.0, poissons_ratio=0.3, density=7.83e-06)#
- class GearTolerances[source]#
Bases:
objectFlank tolerances of ISO 1328-1:2013 for the gear’s tolerance class (micrometres).
- helix_slope_deviation_grade5: float#
f_HbetaTof tolerance class 5 (f_Hbeta5of ISO 6336-1 formula 55).
- __init__(single_pitch_deviation, total_cumulative_pitch_deviation, profile_total_deviation, helix_total_deviation, profile_form_deviation, profile_slope_deviation, helix_slope_deviation, helix_form_deviation, helix_slope_deviation_grade5)#
- class Gear[source]#
Bases:
objectA cylindrical (spur or helical) involute gear.
- face_width#
Face width
b[mm]. For a double helical gear it is the widthb_Bof each helix (without the gap); the total width is2 b_B.- Type:
- root_surface_roughness#
Roughness
Rzof the tooth root fillet [micrometres] used by the relative surface factorY_R_relT; defaults tosurface_roughness.- Type:
float | None
- shaft_arrangement#
Position of the gear on its shaft (ISO 6336-1).
- Type:
- grinding_notch_depth#
Depth
t_gof a grinding notch in the root fillet near the critical section [mm] (ISO 6336-3 clause 7.3); withgrinding_notch_radiusit replacesY_SbyY_Sg(formula 65).- Type:
float | None
- assembly_condition#
Mesh alignment condition (AGMA).
- Type:
- lead_modification#
Helix modification case (ISO).
- Type:
- internal#
Truefor an internal gear (ring). Only the wheel of a pair can be internal.number_of_teethis then still given as a positive count; the formulae of ISO 6336 usesigned_number_of_teeth, and every diameter property (reference, tip, root, base) is negative, as in the sign convention of ISO 6336-1. The profile shift coefficientxis the one of ISO 6336-3 formula (24): positivexthickens the tooth and moves it towards the axis.- Type:
- double_helical#
Truefor a double helical gear (two helices of opposite hand, each of widthface_width); ISO 6336 only, the two halves are treated as two helical gears in parallel sharing the load equally (ISO 6336-1 clause 4.2.1).- Type:
- property minimum_profile_shift_coefficient: float#
Smallest profile shift without undercut,
x_min = h_aP* - z_n sin^2(alpha_n) / 2.z_nis the virtual number of teeth, so the limit also holds for helical gears. Smaller shifts cut into the tooth root (theoretical limit; a slight undercut is often accepted).- Raises:
ValueError – For internal gears, which have no undercut limit of this kind.
- property signed_number_of_teeth: int#
negative for an internal gear.
- Type:
zwith the sign of ISO 6336-1
- __init__(*, tool, material, number_of_teeth, module, face_width, quality_grade, surface_roughness, shaft_diameter, shaft_arrangement, bearing_span, offset, helix_angle=0.0, pressure_angle=20.0, profile_shift_coefficient=0.0, root_surface_roughness=None, grinding_notch_depth=None, grinding_notch_radius=None, web_thickness=None, rim_thickness=None, backlash=0.0, crowning=Crowning.UNCROWNED, assembly_condition=AssemblyCondition.NOT_IMPROVED, lead_modification=LeadModification.NONE, favorable_contact=False, double_helical=False, internal=False)#
- property virtual_number_of_teeth: float#
z_n, number of teeth of the virtual spur gear in the normal section.Negative for an internal gear.
- property tolerances: GearTolerances#
2013 flank tolerances for this gear’s size and tolerance class.
- Raises:
ValueError – If the gear is outside the range of the standard (5 <= z <= 1000, 5 <= d <= 15000 mm, 0.5 <= m_n <= 70 mm, 4 <= b <= 1200 mm, beta <= 45 deg).
- Type:
ISO 1328-1