歯車の形に興味のある人に

Fusion360用歯車作成アドインの比較(2) - SpurGear

SpurGearは、Fusion360に標準で付属する歯車作成スクリプト/アドインです。

python/c++の2つのスクリプトと、同じく2つのアドイン、計4種類があります。
おそらくスクリプト、アドインの作り方サンプルも兼ねており、すべてソースプログラムが公開されています。

特徴

規格 AGMA(アメリカ歯車製造者協会)規格
モジュール1.25以下は歯元のたけがJISと異なる
歯元形状 トロコイドではなく、直線と隅Rで構成
妥当なR値が不明
アンダーカット形状 未対応
転位 未対応
バックラッシ 実バックラッシは設定値の1/2
歯車種類 平歯車のみ
その他 小モジュール大歯数でエラーになる

AGMAは1.25m以下で歯元のたけがJISと異なる

AGMA規格はインチ系でダイヤメトラルピッチのため、これをmmとモジュールに換算したラック寸法を下表に示します。ちなみにJISはモジュールの大小にかかわらず1.25m一定です。

1.25m以上 1.25m以下
歯末のたけ 1m 1m
歯元のたけ 1.25m 1.2m+0.002*25.4

グラフにしたのが下図です。小モジュールになるほど、歯元のたけ(クリアランス)が増えています。その理由は小モジュールは加工工具先端部の摩耗が生じやすく加工時のフィレットが大きくなることと、歯底に滞積する異物に対応しているとのことです。

小モジュールでJISと同じ歯元のたけにするには、いったん1.25モジュール以上のサイズで作って縮小するとよいと思います。

歯元のたけ係数 vs モジュール

少歯数では歯元形状が直線と隅Rで構成

インボリュート歯車は、インボリュート曲線部と、歯元の隅肉曲線部から成り立っています。隅肉曲線はトロコイドの平行曲線です。
SpurGearは正確な隅肉曲線を描かずに、インボリュート起点(基礎円)から半径線を引いて歯底円に接続後、ユーザ指定のフィレットを付けます(基礎円径>歯底円径のとき)。
下図は歯数6の標準歯車の比較ですが、厳密計算ではアンダーカット生じていますが、SpurGearでは簡略図で計算していません。

厳密計算歯形とSpurGearの比較

下図は歯数が50のケースです。この場合基礎円より歯底円が大きいため、インボリュート線は先に歯底に達します。したがってフィレットはインボリュート線と歯底線の間で作られます。標準歯車の場合歯数43付近で基礎円径と歯底円径の大小が入れ替わるので、それに応じて歯元曲線の書き方が変わっています。これは歯元隅肉曲線を厳密に計算しないことによる便宜的な方法であって、厳密計算ではどちらの場合もインボリュート曲線とトロコイド曲線を求めて接続します。

厳密計算歯形とSpurGearの比較

歯元の隅Rの決め方

筆者は、厳密計算歯形の隅肉曲線と歯底円が接続する部分の曲線に近似させたいと考えて、次のようにしています。
諸元入力のRoot Fillet Radius欄に、大きめの数を入力(モジュール相当でもよい)すると、最下段に「The root fileet radius is too large. It must be less than 1.18085mm」のようなメッセージが出ます。そこに書かれた最大値の1/2程度の値を入力します。
もう一つの考え方として「モジュール×0.38」で求めた値を入力します。この数値はラックの歯先隅Rに合わせたものです。どちらの数値も同じような値になります。

下図はモジュール2の歯車で、最大値1.18085と表示されたので、1.18とその半分の0.6、中間として0.9で隅Rを設定したものです。最大値の1.18では歯底円に接しておらず適当ではありません。0.6~0.9あたりが妥当ではないかと思います。

隅Rによる歯元形状の違い

バックラッシが設定値の1/2

このアドインのバックラッシは「円周バックラッシ」です。円周バックラッシΔsを付けるためには歯厚をΔsだけ薄くしなければなりません。SpurGearでm2,Z6歯車をバックラッシ0と0.2で作成したところ、歯厚の差は0.1でした。相手歯車と1/2ずつ分担するつもりなのか、計算ミスなのかはわかりませんが、気を付けないといけません。

バックラッシと歯厚減少量

小モジュール大歯数でエラーになる

このエラーは2022年秋のFusion360バージョンアップ以降発生するようになりました。下図のようにモジュール0.1歯数100を入力すると

入力諸元

次のエラーが発生します。

エラーメッセージ

このエラーは、歯先を3点円弧で作成するときに、3点の配置がフラットに近いと発生します。対策はスクリプトを書き換える必要があります。
以下はpythonスクリプトの660行目をコメントアウトし、その後にコマンドを追加しています。内容はtry except構文を使って、3点円弧による方法が失敗したら、3点スプラインでの作成に変更するものです。
筆者が「Autodesk Fusion 360 API Forum」Solved: gear design - Autodesk Community で回答しています。

        # Draw the arc for the top of the tooth.
        midPoint = adsk.core.Point3D.create((outsideDia / 2), 0, 0)
        #toothSketch.sketchCurves.sketchArcs.addByThreePoints(spline1.endSketchPoint, midPoint, spline2.endSketchPoint)    #660行目
 
        try:
            toothSketch.sketchCurves.sketchArcs.addByThreePoints(
                spline1.endSketchPoint, midPoint, spline2.endSketchPoint)    
        except Exception as error:
            tipArcPnts = adsk.core.ObjectCollection.create()
            tipArcPnts.add(spline1.endSketchPoint)
            tipArcPnts.add(midPoint)
            tipArcPnts.add(spline2.endSketchPoint)

            toothSketch.sketchCurves.sketchFittedSplines.add(tipArcPnts)

まとめ

歯元隅肉Rのつけ方、1.25より小モジュールで歯たけがJISと異なること、バックラッシが設定の1/2であることに気を付ければ、趣味用途には十分使えると思います。ただし適切なフィレットを付けてください。