2018年11月30日金曜日

インボリュート歯車

 自作ドローソフトは、基準となる歯車からの角度を指定すれば、その場所に配置し、上位の歯車の角度に応じて回転する、という動作も組み込んだ。
 一番最初の駆動ギアの角度を秒/60で指定すれば、1分で1回転し、下位のギアは減速比に応じた角度に回転する。
 ギアの位置と角度で矢印を表示する機能を作れば、機械式時計のアニメーションを表示できる。


 と、回転させていて気がついたのだが


 ギアのかみ合わせが良くない。大きい歯数のギアが小さい方の根本に食い込んでしまっている。
 基礎円の下の処理が良くないのかと思いつつも、基礎円より先端側にも食い込んでいるような気がする。

 この画像はz8:80だが、z8:20程度(z42未満)の組み合わせでも発生する。

 そもそもギアの形が良くないようだ。
 小さい方の歯数が12以下になると良くない感じ。13以上だとあまり気にならない。


 あと、ドローソフトを10fpsくらいで書き換えるモードにすると、メモリが足りなくなって落ちるんだよなぁ。どっかでリークしてるんだが、どこでリークしてるのか見当もつかない。
 たぶん最近作った機能じゃなくて、前に作った機能のリークがここに来て表面化してきた、ということだと思うんだが。


追記
 干渉する現象は切り下げ(アンダーカット)というモノらしい。z = 2 / sin(α)^2から切り下げが発生し、α20度なら歯数17.1以下で発生するようだ。
 12と13の部分は関係なく、大きく拡大して細かく見れば16でも干渉していた。
 切り下げから逃げるにはどうすればいいんだろうか?
 圧力角を30度にすればz8でも切り下げは発生しなくなる。あんまり歯車っぽい形じゃなくなるけど。
 アンダーカットの形が計算できればいいんだが、どうやるんだろうか。

0 件のコメント:

コメントを投稿