Pythonを使う

    
2020年 10月 12日 掲載

EagleのBRDファイル内の線(wire)を集めて多角形(polygon)を生成するフィルタープログラムをPythonで作りました。

CADで起こしたプリント基板の外形をEagle 7.7に取り込む際は、DXFファイルを経由します。ただ、EagleでインポートしたDXFは複数の線の集合にしかならず、いわゆる「塗りつぶし」が表現できません。そこでいったんEagleのBRD形式(XML)をXMLファイルとして書き出し、これをスキャンして接続できる線の頂点同士を集め、閉じた多角形にまとめて上げて元の線群と入れ替えます。

XMLが手軽に扱える「古くない」スクリプト言語を調べるとPythonに行き当たりました。自分としては初めての言語だったのですが、取り掛かってから4日程度で上記のプログラムが書けました。

Scalaで関数型プログラミングを経験していたので習得が早かったようです。でもインデントがブロックの意味を持つって…。昔、並列プログラミング言語でOccamっていうのがありまして、それを思い出しました。

mapやlambdaが使えるスクリプト言語Pythonで書いたフィルターのごく一部