があらんどう

伽藍洞です。

インボリュート曲線の作図@手書き、jw cad、そしてigor pro

前回のストランドビーストつながりで歯車を自作する必要がでてきた。
↑ストランドビーストについては自作歯車を使わずに完成して完成して動くようになったので別の機会に記事にしたい。
ストランドビーストについては使わなかったが歯車はいろいろ使えそうなので
勉強したいことには変わりない。

歯車を自作しようと調べると結構知らなきゃいけないことがたくさんあるのだと思い知った。
歯車作製ツールみたいなものが検索すればたくさんでてくるので最終的にはそれを使えばいいかという感じなのだが、
せっかくなので少し興味のおもむくままに調べてみた。
そもそも歯車の歯の部分の曲線はインボリュート曲線とよばれる形らしい。
力の伝達が効率的になるという理由で。
このインボリュート曲線ってなんだということで作図して理解してみようという試み。

手書きで作図

まずは手書きで書いてみる。
インボリュート曲線について調べてみると円筒に巻き付けた糸をたるまないようにほどいていったときに糸の端点が描く曲線とある。
なるほど書くのは簡単そうだということで画像のようにダスターの缶に紐を巻き付けて紐の端にペンを括り付けて書いてみた。


こんな感じで作図していくと・・・。

最終的にこんな感じになりました。
右側が始点、左側が書き終わった点。
紐のすべりとかガタツキでなめらかと言い難いがなんとなく雰囲気はつかめた。

JW CADで作図

手書きで書く要領がわかったのでJW CADで作図していくことにする。
少し丁寧目に以下に作図方法を示していく。
まず適当な大きさで円を書く。
これを基礎円と呼ぶらしい。(手書きでいうところの缶に相当)
今回は半径10として作図した。
次にインボリュート曲線の始点を決める。手書きの際に書き始めの点に相当する。
基礎円上ならばどこでもいいのだろうが、今回はわかりやすく角度0の点とした。
(なお、円の中心を通る水平線を書き加えた、円周との交点が始点)

次に基礎円中心から適当な角度を決めて線を引く。
このときこの角度が細かいほど線を正確に(なめらかに)描くことができる。
今回は10°にした。
(書き方は色々あるのだろうが、筆者は最初に書いた水平線を10°傾けて複製した。)
手書きでいうところのここまで紐をほどいたことに対応するのでほどいた紐の長さはは弧の長さになる。
この弧長を知りたいので測定する。

JW CADでの弧長の測定は
測定>距離測定>始点右クリック>弧 指定をクリック>基礎円を左クリック>測定したい弧の終点を右クリック
で可能。
測定すると1.74533mmとなった。
測定せずとも今回は半径長さ(10mm)と角度(10°)がわかっているので
 2\times10\times\pi\times10/360\approx1.74533
でも良い。
この計算した長さの紐をたるまないように引っ張っているということは
10°の点を通る基礎円の接線上で弧長分だけ接点から離れた点が紐の端点ということになる。
つまり、インボリュート曲線が通る点になる。
この作図を行うためにまず接線を適当な長さで引き、
次にさきほど測定した弧長を半径とする円を接点を中心として書いた。

ここまでで一区切り。
次も最初の水平軸に対して適当な角度を決め、始点からの弧長を測定。
接線を引き、弧長を半径とする円を接点中心に描く。
以下は角度を20°としたときの作図(10°のときの作図線は消している)

あとはこれをひたすら繰り返していけばいい。

Igor proでプロット

最後にigorでプロットしてみる。
媒介変数表示で表したインボリュート曲線は以下の形。
{
\!\begin{cases}
x=r\left(\cos\theta+\theta\sin\theta\right),\\
y=r\left(\sin\theta-\theta\cos\theta\right)
\end{cases}
}
ここでrは基礎円半径、\theta角度を表す。

これをigorで描画するマクロにしてみた。

macro invol()

variable rb = 1

make/D/N=360/O tt2
make/D/N=360/O xx2
make/D/N=360/O yy2

tt2 = p/360*2*pi

xx2 = rb*sqrt(tt2^2+1)*cos(tt2 - atan(tt2) )
yy2 = rb*sqrt(tt2^2+1)*sin(tt2 - atan(tt2) )

end

rbが基礎円、tt2が角度を表している。
yy2 vs xx2をプロットしてみると以下のようになる。

今回はここまで。