Source code for gearbox.enums

"""Enumerations for the discrete choices that gear standards define as tables or categories.

Every enum accepts the *legacy* value (integer or string code used by earlier releases and by the
standards' tables), so ``Crowning(1)`` and ``MaterialType("St")`` keep working.
"""

from __future__ import annotations

from enum import Enum, IntEnum


[docs] class MaterialType(str, Enum): """Material groups of ISO 6336-5 (value = code used in the standard).""" NORMALIZED_STEEL = "St" """Structural / normalized steel.""" THROUGH_HARDENED_STEEL = "V" """Through-hardened (quenched and tempered) wrought steel.""" GREY_CAST_IRON = "GG" NODULAR_CAST_IRON_FERRITIC = "GGG(ferr)" NODULAR_CAST_IRON_PEARLITIC = "GGG(perl)" BLACK_MALLEABLE_CAST_IRON = "GTS" CASE_HARDENED_STEEL = "Eh" FLAME_OR_INDUCTION_HARDENED_STEEL = "IF" NITRIDED_STEEL = "NT" """Nitriding steel, gas nitrided.""" THROUGH_HARDENED_NITRIDED_STEEL = "NV(nitr)" """Through-hardening steel, nitrided.""" NITROCARBURIZED_STEEL = "NV(nitrocar)" """Through-hardening steel, nitrocarburized."""
[docs] class Crowning(IntEnum): """Lengthwise crowning of the teeth (AGMA 2001 factor ``C_mc``).""" UNCROWNED = 1 CROWNED = 2
[docs] class AssemblyCondition(IntEnum): """Mesh alignment condition (AGMA 2001 factor ``C_e``).""" IMPROVED = 1 """Alignment improved at assembly (shimming, lapping, ...) or compatible with running-in (``C_e = 0.8``).""" NOT_IMPROVED = 2 """All other conditions (``C_e = 1.0``)."""
[docs] class GearingType(IntEnum): """Quality of the gear unit / casing (AGMA 2001 mesh alignment factor ``C_ma``).""" OPEN = 1 COMMERCIAL_ENCLOSED = 2 PRECISION_ENCLOSED = 3 EXTRA_PRECISION_ENCLOSED = 4
[docs] class ShaftArrangement(IntEnum): """Position of the pinion on its shaft: selects the constant ``K'`` (ISO 6336-1, figure 13). The numeric values are those of earlier releases. ``s`` is the pinion offset from the mid-span and ``l`` the bearing span; the figure applies for ``s/l < 0.3``. """ BETWEEN_BEARINGS_TOWARDS_TORQUED_END = 1 """Figure 13 a): ``K' = 0.48`` with stiffening, ``0.8`` without.""" BETWEEN_BEARINGS_AWAY_FROM_TORQUED_END = 2 """Figure 13 b): ``K' = -0.48`` with stiffening, ``-0.8`` without.""" OVERHUNG = 3 """Figure 13 c): pinion outside the bearing span, ``K' = 1.33``.""" TWO_GEAR_SHAFT_TORQUE_ON_SAME_SIDE = 4 """Figure 13 d): two gears on the shaft, torque paths on the same side, ``K' = -0.36`` with stiffening, ``-0.6`` without.""" TWO_GEAR_SHAFT_TORQUE_ON_OPPOSITE_SIDES = 5 """Figure 13 e): two gears on the shaft, torque paths on opposite sides, ``K' = -0.6`` with stiffening, ``-1.0`` without."""
[docs] class LeadModification(IntEnum): """Helix (lead) modification of the mesh: selects ``B1`` and ``B2`` (ISO 6336-1, table 12). The numbering is that of the 2019 edition, which added case 3; the 0.1.x values 3, 4 and 5 are now 4, 5 and 6. """ NONE = 1 """``B1 = 1.0``, ``B2 = 1.0``.""" CENTRAL_CROWNING = 2 """Central crowning only, ``C_beta = 0.5 f_ma``: ``B1 = 1.0``, ``B2 = 0.5``.""" CENTRAL_CROWNING_WITH_SHAFT_DEFLECTION = 3 """Central crowning only, ``C_beta = 0.5 (f_ma + f_sh)``: ``B1 = 0.5``, ``B2 = 0.5``.""" HELIX_CORRECTION = 4 """Helix correction only: ``B1 = 0.1``, ``B2 = 1.0``.""" HELIX_CORRECTION_AND_CENTRAL_CROWNING = 5 """``B1 = 0.1``, ``B2 = 0.5``.""" END_RELIEF = 6 """``B1 = 0.7``, ``B2 = 0.7``."""
[docs] class FlankModification(float, Enum): """Profile and lead modification of helical gear sets: ``f_ZCa`` of ISO 6336-2, table 3. The member value is ``f_ZCa``; ``Z_B = Z_D = sqrt(f_ZCa)`` for ``eps_beta >= 1``. """ OPTIMIZED_BY_3D_ANALYSIS = 1.0 """Modifications designed with a 3D load distribution program; maximum stress near mid-height of the flank and an essentially uniform stress distribution.""" SUITABLE_MODIFICATIONS = 1.07 """Suitable flank modifications according to the manufacturer's experience.""" NONE = 1.2 """Helical gear sets without flank modifications."""
[docs] class DynamicFactorMethod(str, Enum): """Method used to obtain the dynamic factor ``K_v`` of ISO 6336-1 (clause 6).""" METHOD_B = "B" """Resonance analysis with the stiffness of the mesh (6.5).""" METHOD_C = "C" """Simplified formula by tolerance class (6.6); spur gears and helical gears alike."""
[docs] class CutterType(str, Enum): """Generating tool of a gear (selects the root fillet model of ISO 6336-3 clause 6.2).""" HOB = "hob" """Hob or rack-type cutter (clause 6.2.3); also the default of the AGMA geometry factors.""" SHAPER = "shaper" """Pinion-type shaper cutter with ``Tool.cutter_teeth`` teeth (clause 6.2.4)."""
[docs] class Standard(str, Enum): """Calculation standard used by the optimisation helpers.""" ISO = "ISO" AGMA = "AGMA"