Skip to main content

例えば、ZPLMで解析ウィンドウで生成した歪曲収差データを取得して最適化を行うことが可能ですか?(ここは単に一例です。歪曲収差関連のオペランドDIMX,DISG,DISTをOPERで使用することができます)。

基本的にはNoですか、Yesになる代替案があります。

①なぜNoなのか

ユーザーインターフェースから得られるデータは、常にプライマリシステム(primary system)のデータです。

この部分の説明につきましては下記のヘルプファイルの通りです。

最適化] (Optimize) タブ (シーケンシャル UI モード) > 最適化の概要 > ユーザー定義オペランド (最適化の概要) > ZPLM マクロからレンズに指定した変更 

評価関数は、必ずレンズの一時コピーを使用して評価されます。評価関数の評価後、レンズのコピーおよびレンズに対する変更はすべて破棄されます。このため、ZPLM オペランドで呼び出したマクロではレンズ データを変更しないようにします。これらの変更は維持されないので、同じ評価関数の評価で ZPLM オペランドに続くオペランドの計算に影響することがあります。OpticStudio では、評価中のレンズが、ZPLM で指定したマクロで評価する前の状態に復元されません。なお、マクロを意図的に使用して以降のオペランドでの評価前にレンズ データを変更する場合は、2 つのマクロを実行する必要があります。そのひとつは必要に応じてデータを変更するマクロで、もうひとつはデータを元の状態に復元するマクロです。どちらのマクロも、変更したレンズ データに対して実行するオペランドを指定してメリット ファンクション エディタに記述できます。

CLOSEWINDOW、WINL()、GETT() など、ユーザー インターフェイスを操作するマクロ コマンドは有効ではありません。この制約の理由は、これらのコマンドはユーザー インターフェイスに反映された光学系のコピーから情報を取得するからです。また、ZPLM マクロで光学系のコピーを更新しても、ユーザー インターフェイスに表示される光学系の主要コピーは更新されません。
 

②Yesになる代替案

ユーザーインターフェイスを操作することはできませんでしたが、GETTEXTFILEを使用して一時コピーの正しいデータを生成することはできます。

歪曲収差を最適化するためのサンプルマクロZPL08(添付ファイル)をご参照ください。


Reply