Fusion360歯車スクリプト/平歯車 の履歴(No.2)
更新概容†
自作のFusion360歯車スクリプト を使って平歯車を作り、組み合わせて動かしてみます。
目次†
1つ目の歯車を生成し、一旦隠しておく†
1つ目の歯車はデフォルトのまま作成します。
Shift+S を押して study_gears を実行し、そのまま OK
作成されるのはモジュール $m = 4 \mathrm{mm}$、歯数 $z=12$ なので、基準円の直径は $mz=48 \mathrm{mm}$ になります。
基準円の直径は、歯車と一緒に作成される破線の円をクリックすると右下に値が表示されますので後からでも簡単に確認できます。
作ったコンポーネントの名前をダブルクリックして gear1 と名前を変更し、 隣の目玉アイコンをクリックして一旦隠しておきます。
最初に作るコンポーネントはアイコンに錨マーク(⚓)が付いているので、そのままでは「移動」できないことを覚えておきましょう。
2つ目の歯車を生成する†
もう一度 Shift+S をして、今度は
Num. Teeth を 6 に変更
してから OK します。
さっきの半分の直径を持つ歯車が生成されました。
名前を gear2 にしておきます。
2つの歯車をかみ合わせる†
gear1 は直径 48 mm
gear2 は直径 24 mm
なので、gear2 を (48 mm + 24 mm) / 2 = 36 mm 移動するとかみ合うはず。
- gear2 コンポーネントを選択した状態で M キーを押す
- 移動タイプ「移動」を選択
- X距離に 36 mm を入力
- gear1 を表示して、合っていそうか確認 (回転角は後で調整します)
- OK を押す
これだと回転角が悪いせいで歯が当たってしまっているため gear2 をピッチの半分だけ回します。
- gear2 コンポーネントを選択した状態で M キーを押す
- 移動タイプ「回転」を選択
- gear2 の中心軸を選択
- 回転角に 360 deg / 6 / 2 を入力 (歯数が6でその半分)
- OK を押す
これで噛み合いました。
x 方向を基準に歯車を作っているため、歯数がいくつの場合でも x 方向へ移動して組み合わせる場合にはそのまま噛み合うか、ピッチの半分回すかのどちらかで丁度噛み合うはずです。
連動して動かす†
モーションリンク機能を使って片方の歯車を回したらもう一方も回るようにします。
[アセンブリ] の中の [モーションリンク] を選択し、続いて現れるダイアログで [キャプチャ位置] を選択する。
その後、
- gear1 の中心点にあるジョイントを選択
- gear2 の中心点にあるジョイントを選択 (これで2つの歯車が回転し始めるが合ってない)
- 回転1 の 角度 に 360 deg/12 を入力(12 倍遅くなる)
- 回転2 の 角度 に -360 deg/6 を入力(6 倍遅くなって逆回転)
とすると、2つの歯車が連動するようになります。
好きな位置に回す†
- gear2 の中心にある「旗の付いた青印」をダブルクリック
- 付近に現れる青い丸印をマウスでドラッグすると歯車を回せます
このとき自動的に gear1 も回ります - あるいは数値で正確な角度を入力することもできます
さらに組み合わせる†
さらに進めてこんな風にしてみましょう。
新しく歯数6のギアを生成
新しくできたコンポーネントを選んで M を押し、z方向に5mm動かす
「修正」の「結合」を使い、ターゲットを gear1 に、ツールを新しく作った歯車にして、結合する。
新しく作った歯車は非表示にしておく。
さらに新しく歯数30のギアを生成
gear3 と名前を付けて、x 方向に - (120 mm + 24 mm)/2 、 z 方向に 6 mm 移動。
中心軸を指定して 360 deg / 30 / 2 だけ回転
新たにモーションリンクを作成して、gear3 と gear1 とを正しくリンクする
これで、gear2 を動かすと、gear1, gear3 も連動して動くようになりました。
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%E5%B9%B3%E6%AD%AF%E8%BB%8A&openfile=spur-gears2.gif'; const multi = 3; // スライダーは multi 回ループで最大値になる const fps = 10; // 描画頻度 (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(); }
その他の設定項目†
中心に穴をあける†
study-gears のダイアログで、例えば
Hole/Outer Diameter を 6 mm
とすると中心に穴の開いた歯車を生成できます。
厚さを変える†
study-gears のダイアログで、例えば
Thickness を 15 mm
とすると歯車の厚さを変えられます。
バックラッシュ†
バックラッシュを 0.0 mm とした gear1 から
バックラッシュを 0.1 mm とした gear2 を
「修正」「結合」を使って切り取ってみる
するとバックラッシュ分だけ歯が薄くなるため、その差分で「薄皮」のような部分が残る。
「薄皮」の厚さを確認するため xy 平面にスケッチを作成し薄皮と基準円が交わるあたりをズームする。
&ref(): File not found: "backlash4.png" at page "工作/Fusion360歯車スクリプト/平歯車";
L キーを押し、直線を引くふりをして基準円がバックラッシュ部分を通過する距離を測ると 0.05 mm となった。
つまり1つの歯の両サイドを合わせてちょうど指定の 0.1 mm だけ歯が薄くなっている。
相手の歯車のバックラッシュがゼロの時、右回りに回した歯車を止め、左回りに戻す際にはこのバックラッシュ分の遊びが生じることになる。
相手の歯車のバックラッシュも 0.1 mm であれば、遊びは 0.1 mm + 0.1 mm = 0.2 mm になるので注意が必要だ。
転位歯車†
転位歯車とは同じモジュール、同じ歯数の歯車を、基準円が標準と異なる値を取るように作った歯車のことで、正転位だと通常よりも大きな歯車が、負転位だと通常よりも小さな歯車が生成されます。
- 軸間距離を調整するため
- 歯元のえぐれを小さくするため
などの目的で使われるそうです。
転位の設定は Details の Shift で行います。
- 青で示された破線が本来の基準円
- 転位なしで作られたのが青い歯車
- 1/4 モジュールだけ正転位したのがピンクの歯車
- 1/8 モジュールだけ負転位したのが黄色の歯車
図から、
- 正転位により歯元のえぐれが小さくなること
- 正転位により歯先が細くなること
- 負転位により歯元のえぐれが大きくなること
- 負転位により歯先が太くなること
- 正負どちらの場合にも軸間距離を微調整できること
を確認できます。
メリットの他にデメリットもあるため様子を見ながら転位を使うと良いのだと思います。
転位歯車の噛み合いの様子はこんな感じです:
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%E5%B9%B3%E6%AD%AF%E8%BB%8A&openfile=shifted-gears.gif'; const multi = 10; // スライダーは multi 回ループで最大値になる const fps = 10; // 描画頻度 (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/4 に設定した歯車
どちらもちょうど下側の歯車とかみ合う位置に置かれています。
両者の回転の角速度は等しいのですが、半径が異なるため歯の進む速度が異なるように見えます。 (転位の大きいものが小さいものを追い越す)
それでも相手の歯車ときちんとかみ合っている様子が見て取れると思います。
2つの歯車に干渉がないことを確認する†
2つの歯車がぶつかっていないことを確認します
まず「検査」から「干渉」を選択
- gear1 のボディを選択
- gear2 のボディを選択
- 計算アイコンをクリック
問題ないことが分かりました。
歯当たりを確認する†
上記の手順を Backlash = 0.0mm として行ってから干渉を確認すると、
2つの歯車の接触部分に小さな重なりを確認できました。