|
|
|
マクロ言語
OpTaliXには、解析や計算のカスタマイズを可能にするためのマクロ言語が用意されています。マクロ言語は以下の
範囲を網羅しています。
- 数値入力箇所での、数式表現の使用。
- 広範囲なレンズパラメータおよび性能データへのアクセス。
- 一般関数の使用 (sin, tan, cos, sinh, cosh, tanh, asin, acos, atan, sqrt, exp, log, log10, logn,
besj0, besj1, besjn, abs, min, max, aint, anint)。
- ユーザ定義変数およびユーザ定義関数の使用。
- マクロへのパラメータ引渡し。
- マクロの組み合わせによる、複雑なマクロ作成。
マクロはOpTaliXコマンド、数式およびデータベースアイテムのシーケンス実行機能です。マクロ機能はプログラム全体、
例えばコマンドラインや最適化メリット関数の定義およびユーザ定義グラフィックスで使用可能です。マクロはコマンドモード
でもGUIモードでも実行可能です。
下記の例では、マクロ機能の一例(簡単なマクロから複雑なマクロ)を示します。例えば"mymacro.mac"マクロは、コマンドライン
から下記のコマンドを入力して実行します。
run mymacro.mac 3 0.546
このサンプルコマンドでは、2つのパラメータがマクロに引き渡されます。 マクロはメニューからも実行可能です。
下記に、マクロファイルの入力例を説明付で示します。
! Example macro |
記号 ! は、注釈を示します。 |
#define pi 3.14159 |
この後で使用される定数を定義します。 |
res c:\temp\demo.otx |
光学系ファイルを呼出します。 |
lis ; vie; fan |
セミコロンで区切ると、複数のコマンドと式を1行で入力できます。 |
sca sa 2*pi |
あらかじめ定義された定数を式で使用します。このコマンドで、全ての面(sa)を2p
でスケーリングします。 |
wl w%1 %2 |
コマンドラインからマクロに渡されたパラメータ(%1, %2)を使用します。上記で与えられたパラメータから、コマンドは
wl w3 0.546と変換します。 |
#include macro2.mac |
他のマクロファイルを取り込みます。10個までのファイル階層が可能です。 |
print 'Radius of surface 2 is:' [rdy s2] |
レンズパラメータや性能パラメータを読出し、他の式で使用します。ここで、 rdy s2 は第2面の
半径を表します。 |
thi s3 sqrt(2)*[thi s2] |
さらに複雑な式でレンズデータベースアイテムを使用し、その値を他のレンズパラメータに割り当てます。 |
print 'Square root of 2: ' 2*sqrt( & 2) |
式が数行に渡るときは、&記号により定義します。 |
|
|