Fusion360歯車スクリプト/はすば歯車 の履歴(No.4)
更新概容†
Fusion360歯車スクリプト を使ってはすば車・やまば歯車を作り、組み合わせて動かしてみます。
スクリプトのダウンロード、インストール、基本的な使い方は上のリンクをたどって下さい。
目次†
2つの歯車を生成する†
1つ目:
- Thickness = 20 mm
- Helix Angle = 45 deg
- Backlash = -0.01 mm
2つ目:
- Num. Teeth = 6
- Thickness = 20 mm
- Helix Angle = -45 deg
- Backlash = -0.01 mm
とした。他はデフォルトのまま。
このとき基準円の直径は、
- 1つ目 67.882 mm
- 2つ目 33.941 mm
となるので、2つ目を
- (67.882 mm + 33.941 mm)/2 = 50.9115 mm だけX方向に移動
- 中心軸に対して 30 deg 回転
して噛み合い位置に置く。
はすば歯車のメリット†
はすば歯車は歯車の厚さ方向に、異なる回転方向を持つ平歯車が重なっているとみなせるため、厚さ方向に見て一部の噛み合いが取れていない時点でも他の部分で噛み合いが取れることが多く、また、歯が当たったり、離れたりするタイミングも厚さ方向で分散するため、安定した噛み合いと低騒音を実現できるそうだ。
上ではバックラッシュにマイナスを設定したため、かみ合わせた状態で歯車間の干渉を見ると歯当たり位置を確認できる。
LANG: p5js_live // =============== ここが設定 const gif_url = 'https://dora.bk.tsukuba.ac.jp/~takeuchi/?plugin=attach&refer=%E5%B7%A5%E4%BD%9C%2FFusion360%E6%AD%AF%E8%BB%8A%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%2F%E3%81%AF%E3%81%99%E3%81%B0%E6%AD%AF%E8%BB%8A&openfile=helical3.gif'; const multi = 10; // スライダーは multi 回ループで最大値になる const fps = 5; // 描画頻度 (frame per second) const maxWidth = 600; // 横幅最大値 // ================ ここから下は汎用コード let gif = null; let frameSlider = null; let w, h; p.preload = () => gif = p.loadImage(gif_url); const draw = () => { let index = frameSlider.value(); gif.setFrame(index % gif.numFrames()); // フレームを選択して p.image(gif, 0, 0, w, h); // 描画 } p.setup = () => { p.frameRate(fps); w = Math.min(maxWidth, gif.width); h = gif.height * w / gif.width; p.createCanvas(w, h + 20); frameSlider = p.createSlider(0, gif.numFrames() * multi - 1); frameSlider.value(0); frameSlider.position(0, h); frameSlider.size(w); frameSlider.input(draw); draw(); } p.draw = () => { if(p.mouseIsPressed) return; frameSlider.value((frameSlider.value() + 1) % (gif.numFrames() * multi)); draw(); }
ここでは手前側の歯車が小さくて噛み合い率が低いのであるが、それでも歯車の回転に伴い歯当たり位置が歯の厚さ方向に移動しながら、どこかしらが噛み合う状況が続いていることを確認できる。また、歯当たりは一気に増えたり減ったりせず徐々に面積が増えたり減ったりしていて、低騒音になりそうな感じも見て取れる。 (この動画は「干渉」検査の結果を1枚1枚繋ぎ合わせて作ったもので、残念ながら自動的に動画にする機能はないのだと思います???)
同じことを すぐば歯車で試すと、
LANG: p5js_live // =============== ここが設定 const gif_url = 'https://dora.bk.tsukuba.ac.jp/~takeuchi/?plugin=attach&refer=%E5%B7%A5%E4%BD%9C%2FFusion360%E6%AD%AF%E8%BB%8A%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%2F%E3%81%AF%E3%81%99%E3%81%B0%E6%AD%AF%E8%BB%8A&openfile=spur-gear3.gif'; const multi = 10; // スライダーは multi 回ループで最大値になる const fps = 5; // 描画頻度 (frame per second) const maxWidth = 600; // 横幅最大値 // ================ ここから下は汎用コード let gif = null; let frameSlider = null; let w, h; p.preload = () => gif = p.loadImage(gif_url); const draw = () => { let index = frameSlider.value(); gif.setFrame(index % gif.numFrames()); // フレームを選択して p.image(gif, 0, 0, w, h); // 描画 } p.setup = () => { p.frameRate(fps); w = Math.min(maxWidth, gif.width); h = gif.height * w / gif.width; p.createCanvas(w, h + 20); frameSlider = p.createSlider(0, gif.numFrames() * multi - 1); frameSlider.value(0); frameSlider.position(0, h); frameSlider.size(w); frameSlider.input(draw); draw(); } p.draw = () => { if(p.mouseIsPressed) return; frameSlider.value((frameSlider.value() + 1) % (gif.numFrames() * multi)); draw(); }
このように途中で歯当たりの得られない時刻が生じてしまい、また、歯の接触も瞬間的に増えたり減ったりしてしまう。
正面モジュールを基準にした方が使いやすいのでは???†
2つの歯車を組み合わせるような場合、歯垂直モジュールではなく正面モジュールで記述した方がずっと分かりやすい気がしてきた。
そうしまえば上述の歯当たりの不具合も解消しそう。
はすば歯車のデメリット → やまば歯車†
はすば歯車はメリットが多いのですが、回転軸平行方向の荷重(アキシャル荷重・スラスト荷重)を生んでしまうというデメリットがあります。
そこで反対方向にねじれたはすば歯車を2枚重ねることでスラスト荷重をなくしたのがやまば歯車です。
これははすば歯車を鏡面対称に複製してやれば良いだけなので、 「作成」「ミラー」でオブジェクトとして歯車ボディを選び、対称面として歯車の上面を選び、操作を「結合」にすれば簡単に作れます。
はすば歯車の中心間距離を切りのいい数値にしたい†
はすば歯車では基準円の直径がモジュールの整数倍にならないため、 整数モジュールを指定した場合に歯車中心間の距離が微妙な値になってしまいます。
転位を使って切りのいい数字に合わせる†
これを切りのいい値に持ってくるには通常、転位が用いられます。
工作/歯車について勉強する3#m951ac17 に置いた計算機を使うと、
- モジュール 4
- 歯の数 6 & 12
- ねじれ角 45 deg
のとき中心間距離 50.9117 mm が得られますが、
これを 50 mm ぴったりにしたいと考えたとします。、
そのためには、すぐその下にある 工作/歯車について勉強する3#u6ca7892 を使って、
とすることで、2つの歯車のシフト係数を合わせて -0.219884 にすればよいことが分かります。
実際に6枚歯の方は転位ゼロのまま、12枚歯の方を -0.219884 だけ転位させて試したところ、
計算通りぴったり噛み合いました。
変則的なモジュール値を使って切りのいい数字に合わせる†
3Dプリンターを使って歯車を1個ずつ出力する場合には必ずしも規格通りのモジュールを使う必要はありませんので、変則的なモジュール値を使って中心距離を合わせるのも手軽だと思います。
その目的で 工作/歯車について勉強する3#m951ac17 の計算機の下の方に、 目的とする中心間距離から調整後のモジュール値を算出する機能を付けました。
モジュールを 3.92837 とすればよいようです。
こちらも試してみたところ、
計算通りぴったり噛み合いました。