Fusion360歯車スクリプト/内歯車 の履歴(No.3)
更新概容†
Fusion360歯車スクリプト を使って内歯車を作り、組み合わせて動かしてみます。
スクリプトのダウンロード、インストール、基本的な使い方は上のリンクをたどって下さい。
目次†
内歯車の生成†
Internal Gear のチェックを付けて、
Hole/Outer Diameter に Reference Diameter より十分大きな値を入れると生成できます。
内歯車にも回転軸やジョイントが生成されるため、他の歯車と連動させることが簡単にできます。
例えば歯数 6 の平歯車を作って X 方向に 12 mm 動かしてかみ合わせたのがこちらです。
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%86%85%E6%AD%AF%E8%BB%8A&openfile=internal3.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(); }
組み合わせによってはぶつかる†
工作/歯車について勉強する3#ud5c339c で試すと分かるように、内歯車は相手の歯車との組み合わせによっては干渉を起こして回らない場合があります。
- 左は歯車のサイズが違いすぎるときに起きる、内歯車の歯先が平歯車の歯元に食い込むトロコイド干渉
- 右は歯車のサイズが近すぎるときに起きる、内歯車の歯先と平歯車の歯先がぶつかるインボリュート干渉
工作/歯車について勉強する3#ud5c339c で転位やバックラッシュを工夫してぶつからないパラメータを見つけられるように、ぶつかり検出機能を持たせると共に、mm との換算をしやすい形に整備しなおすのがいいかもしれない?
バックラッシュ†
0.0 mm と 0.2 mm との比較で、片側当たり 0.1 mm だけ正しく歯が引っ込むことを確認した。
(間違っていたのを直した)
転位†
Counter: 113 (from 2010/06/03),
today: 2,
yesterday: 1