Fusion360歯車切削スクリプト の履歴(No.2)

更新


工作/歯車について勉強する

2つのボディーを回したり押したりしながら切削を行うスクリプト

2つともに回しながら、

face_gear1.gif

face_gear2.jpg face_gear3.jpg

あるいは1つを回してもう1つを直動、

rack12.gif rack13.png

いろいろできます。

フェースギアを切り出してみる

まずは歯末の丈を標準の 1.00 から 1.25 に変更し、バックラッシュに負の値 -0.05 mm を持たせた平歯車を作成します。歯末の丈を長くしているのは、これがフェースギアの歯底を作ることで、通常のギアと組み合わせた際に頂隙が生じるようにする為です。また、切削具側に負のバックラッシュを持たせることで、切られた歯車に正のバックラッシュが付くことを期待しています。

face_gear4.png   face_gear5.jpg

yz面にスケッチを作成して、フェースギアの形を書きます。 ここでは歯数30としてモジュール4mmと合わせて直径120mmを基準円として、 その内外に7.5mmずつ肉を付け合わせて15mmの歯幅とします。

実際に歯を切るのは4ピッチ分程度にして、残りはこれを円周上に並べて全体の形状を作るので、 平歯車の下の 360 deg / 30 x 4 = 48 deg を切り出せるようにしておきます。

face_gear6.png face_gear7.jpg

その部分を選んで押し出します。フェースギアの歯先は平歯車の基準円半径 4 mm x 12 / 2 = 24 mm から歯末の丈1モジュールを引いて20 mmの位置に来るので、オフセットをこの値にして、歯丈が 2.25 モジュールになるため厚さを 3 モジュール分にしておきました。

平歯車にはスクリプトが作成した回転軸が付いていますが、作りかけのフェースギアにはありませんので、構築メニューから「円柱、円弧、トーラスを通過する線」を選び、フェースギアの円柱状の側面を選んで生成します。

face_gear8.jpg face_gear9.jpg

フェースギア断片が平歯車の真下にあると切削時に送りにくいので回転軸を中心にして1ピッチ分 = 12deg だけ回しました。

そうしたらいよいよ切削を行います。

face_gear10.jpg face_gear11.gif face_gear12.gif face_gear13.jpg face_gear14.jpg face_gear15.jpg face_gear16.jpg face_gear17.jpg face_gear18.jpg face_gear19.jpg face_gear20.gif face_gear22.jpg face_gear23.gif

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%E5%88%87%E5%89%8A%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88&openfile=face_gear21.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();
}

これを見ていると

フェースギアは対応する歯数と転位を持った歯形を直線状に伸ばして、さらに円柱に張り付けると作れるような気がしてくる?


Counter: 150 (from 2010/06/03), today: 1, yesterday: 3