* 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)
