自分自身のための ものづくり / 自分自身のためのものづくりメモ

* Eagleでロータリエンコーダ用パターンを描く

#電子工作 #Eagle
 光学式ロータリエンコーダ用のパターンを作るために、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)