* Eagleでロータリエンコーダ用パターンを描く
#電子工作 #Eagle
光学式ロータリエンコーダ用のパターンを作るために、Eagle用scriptをやっつけで書いたrubyスクリプトで生成し、Eagleにて実行した。
プログラムは最低限のスクリプトしか吐かないので、事前にレイヤや線幅などを設定しておく。
部品は制限範囲外には置けないが、線やポリゴンは自由に描けるようだ。
create : 2007/01/26 (Fri)
update : 2007/01/26 (Fri)
光学式ロータリエンコーダ用のパターンを作るために、Eagle用scriptをやっつけで書いたrubyスクリプトで生成し、Eagleにて実行した。
プログラムは最低限のスクリプトしか吐かないので、事前にレイヤや線幅などを設定しておく。
部品は制限範囲外には置けないが、線やポリゴンは自由に描けるようだ。
include Math n=50 r=30 x_offset = 35 y_offset = 35 x = [] y = [] ptn_width = 5 for phase in 0..1 do r = r-phase*ptn_width for i in 0..(n-1) do theta=2.0*PI*i/n + phase*PI/n/2.0 theta2=theta+PI/n x[0]=cos(theta)*r y[0]=sin(theta)*r x[1]=cos(theta2)*r y[1]=sin(theta2)*r x[2]=cos(theta2)*(r-ptn_width) y[2]=sin(theta2)*(r-ptn_width) x[3]=cos(theta)*(r-ptn_width) y[3]=sin(theta)*(r-ptn_width) for i in 0..3 do x[i] += x_offset y[i] += y_offset end printf "polygon (%2.2f %2.2f) (%2.2f %2.2f) (%2.2f %2.2f) (%2.2f %2.2f) (%2.2f %2.2f)\n",x[0],y[0],x[1],y[1],x[2],y[2],x[3],y[3],x[0],y[0] end end
polygon (65.00 35.00) (64.94 36.88) (59.95 36.57) (60.00 35.00) (65.00 35.00) polygon (64.76 38.76) (64.47 40.62) (59.56 39.68) (59.80 38.13) (64.76 38.76) polygon (64.06 42.46) (63.53 44.27) (58.78 42.73) (59.21 41.22) (64.06 42.46) polygon (62.89 46.04) (62.14 47.77) (57.62 45.64) (58.24 44.20) (62.89 46.04) (略)
create : 2007/01/26 (Fri)
update : 2007/01/26 (Fri)