Fusion360歯車スクリプト/平歯車 の変更点

更新


#author("2025-04-07T00:45:56+00:00;2025-03-19T07:13:17+00:00","default:administrator","administrator")
#author("2025-05-31T01:36:22+00:00","default:administrator","administrator")
* 概容 [#kc04d055]
&katex();
フリーソフトとして公開している自作の [[Fusion360歯車スクリプト>工作/Fusion360歯車スクリプト]] を使って平歯車を作り、組み合わせて動かしてみます。

スクリプトのダウンロード、インストール、基本的な使い方は上のリンクをたどって下さい。

&ref(spur-gears2.gif,,50%);

** 目次 [#sa42b5d3]


#contents

* 1つ目の歯車を生成し、一旦隠しておく [#l1830b2d]

1つ目の歯車はデフォルトのまま作成します。

Shift+S を押して study_gears を実行し、そのまま OK します。

作成されるのはモジュール $m = 4 \mathrm{mm}$、歯数 $z=12$ なので、基準円の直径は $mz=48 \mathrm{mm}$ になります。

#ref(spur-gear2.jpg,,50%)

基準円の直径は、歯車と一緒に作成される破線の円をクリックすると右下に値が表示されますので後からでも簡単に確認できます。

作ったコンポーネントの名前をダブルクリックして gear1 と名前を変更し、
隣の目玉アイコンをクリックして一旦隠しておきます。

&ref(spur-gear3.jpg,,50%);
&ref(spur-gear4.jpg,,50%);

最初に作るコンポーネントはアイコンに錨マーク(⚓)が付いているので、そのままでは「移動」できないことを覚えておきましょう。
* 2つ目の歯車を生成する [#vaa42c1c]

もう一度 Shift+S をして、今度は

Num. Teeth を 6 に変更

してから OK します。

&ref(spur-gear5.jpg,,50%);

さっきの半分の直径を持つ歯車が生成されました。

名前を gear2 にしておきます。

* 2つの歯車をかみ合わせる [#l5dd575d]

gear1 は直径 48 mm~
gear2 は直径 24 mm~

なので、gear2 を (48 mm + 24 mm) / 2 = 36 mm 移動するとかみ合うはず。

+ gear2 コンポーネントを選択した状態で M キーを押す
+ 移動タイプ「移動」を選択
+ X距離に 36 mm を入力
+ gear1 を表示して、合っていそうか確認 (回転角は後で調整します)
+ OK を押す

&ref(spur-gear6.jpg,,50%);

これだと回転角が悪いせいで歯が当たってしまっているため gear2 をピッチの半分だけ回します。

+ gear2 コンポーネントを選択した状態で M キーを押す
+ 移動タイプ「回転」を選択
+ gear2 の中心軸を選択
+ 回転角に 360 deg / 6 / 2 を入力 (歯数が6でその半分)
+ OK を押す

&ref(spur-gear7.jpg,,50%);

これで噛み合いました。

x 方向を基準に歯車を作っているため、歯数がいくつの場合でも x 方向へ移動して組み合わせる場合にはそのまま噛み合うか、ピッチの半分回すかのどちらかで丁度噛み合うはずです。

* 連動して動かす [#i7a78aef]

モーションリンク機能を使って片方の歯車を回したらもう一方も回るようにします。

[アセンブリ] の中の [モーションリンク] を選択し、続いて現れるダイアログで [キャプチャ位置] を選択する。

&ref(motion-link.png,,50%);
&ref(captured-position.jpg,,50%);

その後、

+ gear1 の中心点にあるジョイントを選択
+ gear2 の中心点にあるジョイントを選択 (これで2つの歯車が回転し始めるが合ってない)
+ 回転1 の 角度 に 360 deg/12 を入力(12 倍遅くなる)
+ 回転2 の 角度 に -360 deg/6 を入力(6 倍遅くなって逆回転)

&ref(motion-link2.jpg,,50%);

とすると、2つの歯車が連動するようになります。

&ref(spur-gears.gif,,50%);

* 好きな位置に回す [#ca12f2e7]

+ gear2 の中心にある「旗の付いた青印」をダブルクリック
+ 付近に現れる青い丸印をマウスでドラッグすると歯車を回せます~
このとき自動的に gear1 も回ります
+ あるいは数値で正確な角度を入力することもできます
+ あるいはどちらかの歯車の歯をドラッグするだけでも回せますね

&ref(joint-rotation.jpg,,50%);

* さらに組み合わせる [#vd584e8d]

さらに進めてこんな風にしてみましょう。

&ref(spur-gears2.gif,,50%);

新しく歯数6のギアを生成

&ref(spur-gear8.jpg,,50%);

新しくできたコンポーネントを選んで M を押し、z方向に5mm動かす

&ref(spur-gear9.jpg,,50%);

「修正」の「結合」を使い、ターゲットを gear1 に、ツールを新しく作った歯車にして、結合する。

&ref(spur-gear10.jpg,,50%);

新しく作った歯車は非表示にしておく。

さらに新しく歯数30のギアを生成

&ref(spur-gear11.jpg,,50%);

gear3 と名前を付けて、x 方向に - (120 mm + 24 mm)/2 、 z 方向に 6 mm 移動。

&ref(spur-gear12.jpg,,50%);

中心軸を指定して 360 deg / 30 / 2 だけ回転

&ref(spur-gear13.jpg,,50%);

新たにモーションリンクを作成して、gear3 と gear1 とを正しくリンクする

&ref(spur-gear14.jpg,,50%);

これで、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();
 }

* その他の設定項目 [#j03edd96]

** 中心に穴をあける [#v8d2d0e8]

study-gears のダイアログで、例えば

Hole/Outer Diameter を 6 mm

とすると中心に穴の開いた歯車を生成できます。

&ref(center-hole.jpg,, 66%);

** 厚さを変える [#zf442fe1]

study-gears のダイアログで、例えば

Thickness を 15 mm

とすると歯車の厚さを変えられます。

&ref(thickness.jpg,, 66%);

** バックラッシュ [#y74cb12c]

バックラッシュを 0.0 mm とした歯車と~
バックラッシュを 0.1 mm とした歯車とを重ねてみた

&ref(backlash1.png,around,right,50%);  
&ref(backlash2.png,around,right,50%);

バックラッシュ分だけ歯が薄くなるため、その分だけ差が生じている。

&ref(backlash3.png,around,right,50%);
&ref(backlash4.gif,around,right,40%);

距離を測ると約 0.05 mm になっており、両側合わせて指定通りの 0.1 mm バックラッシュが実現されていることが分かる。

相手の歯車のバックラッシュも 0.1 mm であれば、遊びは 0.1 mm + 0.1 mm = 0.2 mm になるので注意が必要だ。

右上図はバックラッシュ 0.1 mm に設定したモジュール 4 の2つの歯車に接触セットを設定して手動で回してみたもの。歯と歯の間に遊びが生じており、一方に回したのち、逆方向に回し始める際に不感時間が生じるのをシミュレーションできている。

* 転位歯車 [#k2fb7ce8]

#ref(shift1.png,around,right,50%);

転位歯車とは同じモジュール、同じ歯数の歯車を、基準円が標準と異なる値を取るように作った歯車のことで、正転位だと通常よりも大きな歯車が、負転位だと通常よりも小さな歯車が生成されます。
転位歯車とは同じモジュール、同じ歯数の歯車を、異なる中心間距離で組み合うように作った歯車のことで、正転位だと通常よりも大きな歯車が、負転位だと通常よりも小さな歯車が生成されます。

- 軸間距離を調整するため
- 歯元のえぐれを小さくするため

などの目的で使われるそうです。特に歯直角モジュールを基本としたはすば歯車では標準のモジュールで作られた歯車は軸間距離が切りのいい値になりませんので、これを切りのいい値に持ってくるために片方を転位させることがよく行われるみたいです。

転位の設定は Details の Shift で行います。

#ref(shift2.png,,60%);

- 青で示された破線が本来の基準円
- 転位なしで作られたのが青い歯車
- 1/4 モジュールだけ正転位したのがピンクの歯車
- 1/8 モジュールだけ負転位したのが黄色の歯車

図から、

- 正転位により歯元のえぐれが小さくなること
- 正転位により歯先が細くなること
- 負転位により歯元のえぐれが大きくなること
- 負転位により歯先が太くなること
- 正負どちらの場合にも軸間距離を微調整できること

を確認できます。

注意点として、相手がラックの場合には転位量がそのまま軸までの距離の変化量になりますが、相手が有限の歯数を持つ通常のあるいは内歯車である場合には、転位量と軸間距離の変化量はそのままの形では一致せず、両者の変換には比較的複雑な計算が必要になります。

[[工作/歯車について勉強する3#m951ac17]] や [[工作/歯車について勉強する3#u6ca7892]] の計算機は転位量と軸間距離の相互変換を行うために利用できます。

転位歯車の噛み合いの様子はこんな感じです(TODO:このとき軸間距離の計算を正しく行っていませんでしたので後で差し替えます):

 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 に設定した歯車

どちらもちょうど下側の歯車とかみ合う位置に置かれています。

両者の回転の角速度は等しいのですが、半径が異なるため歯の進む速度が異なるように見えます。
(転位の大きいものが小さいものを追い越す)

それでも相手の歯車ときちんとかみ合っている様子が見て取れると思います。

* 面取り [#m37e44b3]

3Dプリンタでは印刷し始めの部分が本来よりも大きめに印刷されてしまうようなことがよくあるので、
少しでいいので面取りをしておくと不具合を防げるのだと思います。

上面や下面を選択して面取りを行うことで、いい感じに面取りができます。

&ref(chamfer.gif,,50%);

・・・それだと「計算できない」というようなエラーが出てしまう場合には、上面や下面を選択した上で押し出し(負のテーパー角つき)を行うと、エラーにならず面取りと似た効果が得られるようです。

&ref(chamfer2.gif,,50%);

* 2つの歯車に干渉がないことを確認する [#rdde6a38]

2つの歯車がぶつかっていないことを確認します

まず「検査」から「干渉」を選択

&ref(check-interference.png,,50%);

+ gear1 のボディを選択
+ gear2 のボディを選択
+ 計算アイコンをクリック

&ref(spur-gears-no-interferences.jpg,,50%);

問題ないことが分かりました。

* 歯当たりを確認する [#cabeb7bb]

上記の手順を Backlash = 0.0mm として行ってから干渉を確認すると、

&ref(spur-gears-interferences.jpg,,50%);

2つの歯車の接触部分に小さな重なりを確認できました。

バックラッシュは負の値にもできるので、バックラッシュゼロでうまく接触が得られない場合には負の値を入れて確認することができます。

Counter: 253 (from 2010/06/03), today: 4, yesterday: 11