技術のアレコレ cast by 猪突猛進
技術のアレコレ cast by 猪突猛進
猪突猛進
時計の心臓部1
16 minutes Posted Oct 24, 2021 at 10:34 am.
0:00
16:25
Download MP3
Show notes

いけるかな?テストでプログラム例を貼ってみます。全部閲覧できないかも知れません。

ご了承ください。

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