この記事では、Matlab を使用した新しいインタラクティブ拡張機能で ZOS-API に接続する方法を紹介します。インタラクティブ拡張機能モードは、ユーザ拡張機能とほとんど同じですが、スタンドアロンの実行可能ファイルにする必要がない点が異なります。この拡張機能によって、OpticStudio から起動できるコンパイル済み実行可能ファイルが存在しないスクリプト作成環境からでも OpticStudio に接続できます。このような環境として Matlab や Python などがあります。
著者 Thomas Pickering
Introduction
ZOS-APIは、任意のスクリプト言語を使用してOpticStudioに接続して対話できるツールです。この機能は、長時間の分析を直接管理する場合や、反復プロセスを処理する場合に特に有用です。APIの1つの機能は、システムを編集するために外部プログラムをOpticStudioと組み合わせて呼び出すことができるインタラクティブな拡張モードです。 Interactive Extensionを利用できるプログラムの1つはMATLABです。
この記事では、Interactive Extensionをアクティブにし、それを使用してMATLABを介してOpticStudioをプログラムする方法を紹介します。
インタラクティブ拡張機能スクリプトの作成
インタラクティブ拡張機能に接続するためのボイラープレート テンプレートを作成するには、[プログラミング] (Programming) タブに移動し、[ZOS-API.NET アプリケーション ビルダー] (ZOS-API.NET Application Builders) → [MATLAB] (MATLAB) → [インタラクティブ拡張機能] (Interactive Extension) をクリックします。
以下の ZOS-API のプロジェクト フォルダにスクリプトが置かれます。
..\Documents\Zemax\ZOS-API Projects\MATLABZOSConnection
このスクリプトを複数作成すると、それぞれのファイル名に連番が付加されます。
エディタで開いているスクリプトによって Matlab が自動的に起動します。
インタラクティブ拡張機能への接続
インタラクティブ拡張機能を開始するには、[ZOS-API.NET アプリケーション] (ZOS-API.NET Applications) → [インタラクティブ拡張機能] (Interactive Extension) をクリックします。
ダイアログ ウィンドウが開き、外部アプリケーションとの接続を OpticStudio が待機します。ここでの外部アプリケーションは Matlab です。
このダイアログ ボックスには、実行している OpticStudio のインスタンスのインスタンス ID が表示されます。複数の OpticStudio インスタンスを実行している場合でも、この ID を使用することで、Matlab から特定のインスタンスに接続できます。
OpticStudio 19.4以降、MATLABでは、スクリプトを実行する手順は次の通りです。
- TheSystem宣言の後にブレークポイントを設定します。
- [実行] (Run) ボタンをクリックします。
- インタラクティブ拡張機能のステータスとして、接続済みであることが示されます。
MATLAB Workspace は変数 ans を表示します。
コマンドウィンドウで以下のように記述します。:
TheApplication = ans;
Or in the Command Window, specify the OpticStudio instance by putting in the correct number in the parentheses. The function returns an object of type ZOSAPI_Application. The connection mode is seen as Extension.
もしくは、コマンド ウィンドウでスクリプトを実行します。その場合は、括弧の中にインスタンス番号を入力することで OpticStudio のインスタンスを指定できます。この機能では、ZOSAPI_Application タイプのオブジェクトが返されます。
接続モードとして "Extension" が表示されます。
これで、Matlab のコマンド ウィンドウを使用して API に対する個々のコマンドを実行できます。
接続の終了
接続を終了するには、次のように [インタラクティブ拡張機能] (Interactive Extension) ダイアログ ボックスで [中断] (Terminate) をクリックします。
または、次のように Matlab のコマンド ウィンドウで CloseApplication メソッドを実行します。
KA-01606
コメント
記事コメントは受け付けていません。