Fusion360歯車切削スクリプト/平歯車 の履歴(No.2)
更新ラック型のホブを使って円柱から平歯車を切り出す†
平歯車は円柱状の部材をラック状の切削具で切削することにより成形されます。
平歯車の形状はそれほど難しくない計算により正しい形を得られるので、わざわざ切削シミュレーションを行う必要はないのですが、ここではデモンストレーションのためにあえて切削シミュレーションにより作成して、計算で求めた正しい形状と比較してみようと思います。
目次†
ラック型の切削具(ホブ)の形状について†
- 歯先をフィレット付きで延長できる
- バックラッシュを負に設定する
という機能を持っているため、通常の歯車だけでなく歯車切削用の工具(ホブと呼ばれます)の形状を作ることができます。
切削具(ホブ)の歯先をフィレット付きで延長、バックラッシュを負に設定、することで、
- ホブの歯先を延長しておくことで歯車の歯元に隙間(頂隙)が生まれて相手の歯車とスムーズに噛み合う
- ホブの歯先を延長する際にフィレットを付けることで加工後の面がスムーズになり、また、歯車の歯元に自然なフィレットが付くことにより歯車の強度が増す
- ホブに負のバックラッシュを付けておく(歯を太くしておく)ことで歯車に正のバックラッシュが付く(歯が細くなる)
という効果が得られます。
ラック型ホブを生成†
- 負のバックラッシュ
- Backlash = -0.05 mm
- 歯先の延長
- Tip Fillet = 0.38
としています。
これでホブ形状が得られました。
実は現状では歯先の延長のユーザインタフェースは使いにくくなっていて、 ここで入れた値は歯先の延長部分に付けるフィレットの最大半径なのですが、 必ずしもこの半径分だけ歯先が延長するわけではなく、これはあくまで目標値にすぎません。
実際に得られる延長量は、歯先の両端で歯面に接する円柱の径で決まります。 それ以上にするとフィレットが歯の厚みを超えてしまうので。
歯の延長量を標準値の 0.25 モジュールにするためには足りない分を歯先の丈を 伸ばすことで補わないといけないのですが、どれだけ延ばせばいいか手計算で求めるのは面倒です。
本来なら歯の延長量を正確に設定できるようにするため、 この部分は歯先の延長量自体を指定して、 その角の部分にフィレットを付けるように変更すべきですね。 その際にフィレットがインボリュート部分を食ってしまってはいけないので、 歯末の丈 addendum でインボリュート領域を指定し、 頂隙 Radial Clearance の値を歯先の延長量として使うのが良さそうです。
今後、そのように変更すると思います。
円柱状の歯車の部材を用意、噛み合い位置に移動†
ここではモジュール4で歯数12としますので、基準円の直径は $4\times12=48$ mm で、 そこにモジュールと等しい歯末の丈を両側に加えますので、円柱の直径は $48 + 4\times 2=56$ mm となります。
ホブの上面を基準に原点中心の円柱を 10 mm の厚さで作成しました。
噛み合い位置への移動は、 ラックの基準高さが原点を通る $y$ 軸上にあるので、
- 円柱を基準円の半径 24 mm だけ $x$ 方向へ移動
- ラックの端を避けるためにピッチ $\pi \times 4\,\text{mm}$ の2倍 $y$ 方向へ移動
- ついでに噛み合いに余裕を持たせるため $z$ 方向にも 2.5 mm 移動
としておきます。
切削加工用の回転軸を作成†
円柱の中心を通る直線を作成します
切削する†
工作/Fusion360歯車切削スクリプト を使って切削をシミュレーションします。
全周やる必要はないので、2ピッチ分だけ切ることにします。
- 切削対象 Target は、
- ボディ Body に円柱を
- 回転軸 Axis に中心軸を
- 回転量 Rotation に2ピッチ分 360 deg / 12 * 2 を
- 直進量 Translation に 0 mm を
指定しました。
図から回転軸は下向きに取られていることが見て取れます。 回転は右ネジ方向になるため、正の向きである時計回りに回しながら切削して問題ないため、 Reverse はチェックしません。
一方、
- 切削具 Tool は、
- ボディ Body にラックを、
- 直進軸 Axis にラックの底辺の1つを、
- 回転量 Rotation に 0 を、
- 直進量 Translation に2ピッチ分 4 mm * PI * 2 を、
指定しました。
軸の移動方向が逆に取られていたため、Reverse をチェックしてあります。
ステップ数としては1ピッチあたり 20 とするため、40 を入力しました。
OK を押すと切削が始まります。
正しい形状と比べる†
正確な計算で求めた歯車形状と比較するため、
- バックラッシュ 0.05 mm
とした歯車を生成します。
Tip Fillet を 0 に戻すことも忘れずに。
正確な形状であるピンクの歯車の表面が滑らかなのに対して、 切り出した方の歯車の表面は切り出し時のピッチあたり20ステップに対応する小さな面の集合でできていることが分かります。
それでも、完全な切り出しが行えている中央の切り欠き部分は正確な形状とほぼ一致しているように見えます。
中心を重ねるよう移動し、円柱の上面を基準として断面解析を行うと、
両者がほぼぴったり重なることが分かります。
歯元部分に差が生じているのは今回のホブ形状が本来よりも少し歯先が短いためです。
正しい歯末の丈を指定できるよう後ほどUIを見直そうと思います。
歯元部分に差はありますが、ここはそもそも相手の歯車とは接触しないところなので、歯末部分が一致していれば機能的には問題ないはず。
拡大してみると、歯面を形成している切り出しステップに対応する短冊状の面はこの部分で幅 0.3 mm 程度であるのに対して、2つの歯車の形状の差は非常に小さく、数ミクロン程度に収まっていることを確認できます。
まあ、この切削シミュレーションと同じ計算を、Python コードで数学的に行って得ているのが「計算で求めた歯車形状」なので、重なるのは当然ではあるのですけどね。
正しい形状を歯車全体に複製する†
切削の行えた歯溝部分を切り出して、円周上に並べることで歯車の全体形状を作れます。
歯車の上面を基準にスケッチを作成し、歯車の中心と歯先の中点とを結ぶ三角形で正しく成形された歯溝部分を切り出します。
中心軸上に12個並べて歯車を作ります。
歯車同士を組み合わせて回す†
ピンク色の歯車を噛み合い位置に移動します。
切り出しで作成した青の歯車をコンポーネント化し、
ルートコンポーネントとの間に Shift + S キーから As-Built 回転ジョイントを作成。
モーションリンクで2つの歯車の回転量をリンクさせます。
工作/Fusion360ジョイント駆動スクリプト を使って動かしたのがこちらです。
ラックを使って切り出したにもかかわらず、任意の歯数の歯車と、基準円上できれいに噛み合うのが、インボリュート歯車の特徴ですね。
曲面を滑らかにする†
切り出した歯車の表面は多数の短冊状の曲面で形成されているので、滑らかな曲面になるよう 工作/Fusion360曲面生成スクリプト で整えます。
まずタイムラインを円周パターンで複製した直前に戻します。
表面が多数の短冊状の曲面で形成されていることがここでも見えますね。
歯溝は中心面に対して対称なので、片側だけで作業します。
そのために歯車の一部を切り出すために作成したスケッチを開きなおして、 一方の直線を歯溝の底の中心(このときはちょっとずれてました💦)を通るように変更します。
スケッチから抜けるとこのように歯溝形状の半分が切り出せています。
この形状は歯末の部分と歯元の部分の2つの曲線から構成されているので、 それぞれについて別々に曲面で近似して、でこぼこな表面部分を 0.01 mm だけ工作/Fusion360曲面生成スクリプト により剥ぎ取ります。
- Target として歯のボディを選び
- Lines で短冊の辺を選択していきます
- 1つおきにジグザクになっているので1つ飛ばしで選んでいます
- 選んだ Lines を繋げた曲面の上下 0.01 mm を切り取ります
- Extention3 と Extention4 で曲面を延長して、端の部分に段差が残らないようにしています
これで歯末部分が滑らかになりました。
次は歯元です。
同様にして薄皮一枚剥がして滑らかにしたら、鏡面対称で複製してからタイムラインを元に戻すと、滑らかな表面を持つ歯車形状が得られました。
ここでは始めにホブを作成する際に -0.05 mm のバックラッシュを付けて、最後に 0.01 mm だけ剥がしているので、最終的に 0.06 mm 弱のバックラッシュの付いた形状が得られているはずです。
始めに付けるバックラッシュの量と、最後に剥がす厚みとを、望みのバックラッシュになるよう調整する必要がありますね。
まとめ†
この例では切り出し後の曲面が同じ長さの辺が並ぶ形で構成されていたため、それを繋げて滑らかな曲面を得るのが非常にやりやすかったです。
出来上がった形状を見ても、計算で求めたものと遜色ないです。
複雑な形状を持つ曲面だとそうならないので大変なのですが・・・まあチュートリアルとしては良い感じでしたね。