平歯車の歯の円周方向の幅の決め方について
PythonSf:http://www.nasuinfo.or.jp/FreeSpace/kenji/sf/pysf/manual/one-liners.htm と名づけた計算ソフトを作っている物理・電気系の人間です。
・NC 向けのデータが欲しい
・センターずれなどでの滑りの発生の検討がしたい
・PythonSf で 歯車を どれぐらいのサイズのプログラムで書けるかを試したい
ため付録のようなコードを書いてみました。
PythonSf を知らなくても、Python を知っていれば
・`i が 純虚数の 1
・mm` が mili meter
・~[....] がベクトル
・klsp(a,b) で [a,b] 領域をデフォルト 50 等分したベクトル
・np.r_ がベクトルをリストのように繋ぐ
ことを前提とすれば、計算内容は理解してもらえると思います。
ここ:http://www.khkgears.co.jp/gear_technology/basic_guide/KHK354.html の説明をもとに
ここ:http://www.khkgears.co.jp/gear_technology/basic_guide/KHK357_2.html の小歯車を描いてみました。
●質問 1
基準円の位置で、穴側と歯側が 50% ずつになるとしたことが正しいでしょうか。添付図の歯車の形を見ていると、この小歯車二つを組み合わせたときは、バックラッシュが大きすぎるように直感的に思えてしまいます。
一方で、歯数が 100 とかに大きくなると 50% ずつにせざるをえないとも思います。
●質問 2
この歯車図形、および添付の計算式で何か拙い点があったら指摘願えますでしょうか。
● ***** 付録コード ******
//@@
d=36mm` # pitch diameter
m = 3mm` # module d/z
αpressure=20degree` # pressure angle
z=12 # number of tooh
db=33.829mm` # diameter of base circle
rb=db/2 # radius of base circle
da,df=42mm`,28.5mm` # outside/root diameter
# require max involute angle determined by outside diameter
αupper=arccos(db/da)
θupper=tan(αupper)
f=λ θ:(λ α=arctan(θ):(rb/cos(α) cos(θ-α)-rb+`i rb/cos(α) sin(θ-α)))()
vInvlt=~[f(x) for x in klsp(0,θupper)]
invα=tan(αpressure)-αpressure
θtoothCenterAngle=2pi/(2z)+2invα
θtoothOpenAngle=2pi/(2z)-2invα
vArc = ~[rb, rb exp(`i θtoothOpenAngle)]
vTooth=np.r_[rb+vInvlt,
(exp(`i θtoothCenterAngle) ( rb + vInvlt.d))[::-1],
exp(`i 0.29160815553359282) vArc
]
plotTrajectory(map(λ x:(x.real,x.imag),
sum([list(exp(2pi `i k/(z)) vTooth) for k in range(z)], [])
)
)
//@@@
上 web ページでの説明では歯車の歯の円周方向の幅についての言及がないので、基準円の位置で中心角が穴側と歯側で一致するものとしました。添付図のような歯車を描けました。(歯元のたけは基礎円の弦で満足するので、穴側は直線で済ませています。)