いけるかな?テストでプログラム例を貼ってみます。全部閲覧できないかも知れません。
ご了承ください。
import numpy as np
myGear1 = list()
myGear2 = list()
myGear3 = list()
myGear4 = list()
myGear5 = list()
myGear6 = list()
myGear7 = list()
myGear8 = list()
myGear9 = list()
# - * - * - * - * - * - *- * - * - * - * - * - * - * - *- * - * - *
def GearCal(Num1, Num2, Num3):
CogNumber = Num1 # 歯数 int(18)
ModuleSize = Num2 # モジュール float(1.5)
PressureAngle = Num3 # 圧力角 [degree] float(30.0)
TipDiameter = (CogNumber + 2) * ModuleSize # 歯先円直径 [mm]
ReferencePitchCircleDiameter = CogNumber * ModuleSize # 基準ピッチ円直径 [mm]
BottomClearance = 0.25 * ModuleSize # 頂げき(TopClearanceとも言う)
WholeDepth = (2 * ModuleSize) + BottomClearance # 全歯丈(切り込み深さ) [mm]
DevaluationLimitNumberOfCog = 2 / (np.sin(np.deg2rad(PressureAngle)) * \
np.sin(np.deg2rad(PressureAngle)))
Term1 = (CogNumber + 2)**2 - (CogNumber * np.cos(np.deg2rad(PressureAngle)))**2
Term2 = CogNumber * np.sin(np.deg2rad(PressureAngle))
Term3 = 2 * np.pi * np.cos(np.deg2rad(PressureAngle))
GearMishingRate = (Term1**0.5 - Term2 ) / Term3 # 噛み合い率
print('# - * - * - * - * - * - *- * - * - * - * - * - * - * - *- * - * - *')
print('歯数 : ', CogNumber)
print('モジュール : ', ModuleSize)
print('圧力角 : ', PressureAngle, ' [degree]')
print('歯先円直径 : ', '%.3f' % TipDiameter + ' [mm]')
print('基準ピッチ円直径 : ', '%.3f' % ReferencePitchCircleDiameter + ' [mm]')
print('頂げき : ', BottomClearance)
print('全歯丈 : ', '%.3f' % WholeDepth + ' [mm]')
print('切り下げ限界歯数 : ', '%.3f' % DevaluationLimitNumberOfCog)
print('噛み合い率 : ', '%.3f' % GearMishingRate)
print('# - * - * - * - * - * - *- * - * - * - * - * - * - * - *- * - * - *')
# 各ギア諸元を【myGear】に保存
myGear1.append(CogNumber)
myGear2.append(ModuleSize)
myGear3.append(PressureAngle)
myGear4.append(TipDiameter)
myGear5.append(ReferencePitchCircleDiameter)
myGear6.append(BottomClearance)
myGear7.append(WholeDepth)
myGear8.append(DevaluationLimitNumberOfCog)
myGear9.append(GearMishingRate)
# 各ギア同士の噛み合い率を出す為、Main関数に噛み合い率を返す
return GearMishingRate


