コプトン光学設計(ロゴ)

レンズ設計・製作、技術・ノウハウ移転サポート

コプトン光学設計コプトン光学設計




設計者コラム

#048 マクロ言語仕様比較(z2o)

最近、仕事関係の方にお会いしたり電話すると、『OpTaliX、良いですか?』と聞かれることが多くなりました。
OpTaliXに興味をお持ちの方が結構いらっしゃるようです。

さて今回はOpTaliXとZemaxのマクロ言語仕様の比較です。

OpTaliXにしろ、Zemaxにしろ標準で用意されていない機能を実現する場合にはマクロの作成などによってある程度対応が可能です。
Zemaxのマクロ言語はCやC++と言った専用のプログラム言語と比較してしまうと見劣りするのは仕方がないのですが、割と強力な言語仕様を持っています。
プログラミングを行っていると、『あの機能が欲しいのに…』ということもしばしばですが、なにより殆どのZemaxの機能を呼び出すことが出来るので重宝しています。

前回までの説明はほんの一部ではありますが、OpTaliXは十分すぎるほどの設計・評価機能を持ち合わせていると考えています。
しかしマクロ言語仕様はかなり脆弱です。
下記はそのダメな部分の一例です。

・配列変数がない
・exitやgoto、continueに相当する命令がない
・関数と呼ばれている構造はあるが、マクロ表現であって本当の関数ではない
・数値変数と文字列変数が切り分けられていない
・変数に文字列を格納する場合、256文字制限がある
・文字列操作関数がない
・エラーを起こした際に表示される行番号があやしい
・グローバル変数しか存在しない(これはZemaxも同様)

特に配列変数がないことは著しくプログラミングの幅を狭めますね。結構困っています。
何も構造体やポインタのような特殊な変数型が欲しいわけではないので改善して頂けると助かるな、といつも考えています。

今日の運勢を占うプログラムを以前Zemaxで作ったのですが、OpTaliXではムリですね~。

今回は何だか光学設計とはかけ離れた話になってしまいました。