LoginSignup
3
5

More than 3 years have passed since last update.

PythonでGDSII formatを扱う

Last updated at Posted at 2020-02-16

2020/11/25注

gdspyの作者@heitzmannが現在新プロジェクトgdstkに注力しているため、筆者もgdstkに乗り換えた。gdspyに比べgdstkは爆速なので、よろしければ次の記事gdstkでPython最速のGDSII layout制作環境を作るを参照されたい。

はじめに

 GDSII(以下GDS)はICやMEMSのレイアウト用CADフォーマットとして知られている。筆者はMEMSやメタサーフェス製作のためにGDSを利用している。GDSはLayoutEditorKLayoutなどのマスク用CADソフトで直接作成することもできるし(お金持ちはCadenceを使うw)、AutoCADやSolidworks等で扱えるdxfファイルから変換することもできるが、数式を用いて記述できるパターンに対してはプログラミング言語の適用が便利である。
 筆者も永らくJAXA三田先生のページを参考にPerlでGDSを描いてきたのだが、近年はCADのファイルサイズが肥大化し、Perlでは限界を感じることが多くなった1。そのため、2019年以降はPythonでGDSを作成している。ここではPythonでGDSファイルを作成するためのノウハウを記述していこうと思う。

PythonでGDSIIを扱うためのライブラリの選定

PythonでGDSIIフォーマットを取り扱うためのライブラリはいくつか提案されているが、筆者のおススメはgdspyである。知られているライブラリを列挙すると、
- gdspy
- gdsCAD
- python-gdsii
等がある。このうち、執筆時点(2020年2月16日)でアップデートが頻繁に行われているのはgdspyであり、機能的にも充分に感じているので、本稿では主にこちらを取り挙げる。

Windows 10 上のAnaconda環境へのgdspyのインストール

ここではWindowsマシン上でとりあえずgdspyでgdsファイルを作成するまでの環境設定について述べる。
1. Anaconda 3 のインストール
https://www.python.jp/install/centos/anaconda/install.html
を見ながらインストールする。

  1. Anaconda 3 のアップデート(適宜実行する)
    Windows -> cmd.exe (コマンドプロンプト)から
    > conda update --all

  2. gds用環境の設定
    conda環境とpip環境が混在しているとなんだかうまくいかないらしいので、念のためAnaconda 3 に、新しいenvironmentを作る。gdsiiなどの名前にしておく。
    3-1. gdspyに必要なモジュールをインストールしておく。
    numpy
    cython
    pip
    spyder

  3. gdspyの導入
    下記URLにある
    https://qiita.com/mckeeeen/items/d4cbe4a16a102157f40c
    "Anaconda環境にpipでパッケージをインストールする"を実行し、gdspyをインストールする。

Windows -> cmd.exe (コマンドプロンプト)から、下記を実行する。
(> の行がコマンド入力を示す)

>conda info -e
# conda environments:
#
base * C:\Users\k_iwa\Anaconda3

> source activate base <-ここの名前(base)は3.で導入したgdspy用environmentにする。

5. gdspyのインストール

> pip install gdspy

C++コンパイラ環境(例えばBuild Tools for Visual Studio 2019)や、cythonなどのライブラリのインストールができていないと、gdspyのインストールができてもきちんと正常動作しない。ダメならpip uninstall gdspyでアンインストールしてからライブラリを整えてインストールしなおす。

6. Anaconda 3からSpyderなどのPython IDE環境を利用してgdspyを利用する。ドキュメントはここ
gdspy 1.5 (20, Dec, 2019)からだいぶ記法が変わった。今後詳述する。


  1. どうも600MBを超えるとPerlではエラーが出てGDSを出力できなかった。なぜかは結局よくわからなかった。 

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5