はじめに
Ansys Zemax OpticStudio (以下、Zemax)を長く使っていると、1台のPCに複数バージョンをインストールしているケースがありますが、最近お客様から、
.zos ファイルを最新のZemaxで開くと正しく再現されない
という相談をいただきました。
この現象の改善を検討する調査の過程で、
ZOS-APIから特定バージョンのZemaxを起動したい
という要件が発生し、調べて色々試してみたため、備忘録としてまとめます。
今回は、ZOS-APIで特定バージョンのZemaxへ接続する方法と、その活用事例を紹介します。
通常のZOS-API初期化
Zemax付属のサンプルコードでは、次のような初期化処理を行うことが多いと思います。
is_initialized = ZOSAPI_NetHelper.ZOSAPI_Initializer.Initialize()
この方法でも動作しますが、複数バージョンのZemaxがインストールされている場合、
「基本的には最新版へ接続される」ことになります。
特定バージョンを指定して起動する
実は Initialize() にはインストールフォルダを指定できます。
例えばZemax 2024R1.03 を使用したい場合は以下のように記述します。
opticstudio_path = (
r"C:\Program Files\Ansys Zemax OpticStudio 2024 R1.03"
)
is_initialized = (
ZOSAPI_NetHelper.ZOSAPI_Initializer.Initialize(
opticstudio_path
)
)
これにより、
- 2024系
- 2025系
- 2026系
など複数バージョンが共存していても、指定したZemaxに接続できます。
DLLも対象バージョンから読み込む
さらに確実に対象バージョンへ接続したい場合は、DLLも対象バージョンのインストール先から直接読み込みます。
nethelper_path = (
r"C:\Program Files\Ansys Zemax OpticStudio 2024 R1.03"
r"\ZOSAPI_NetHelper.dll"
)
clr.AddReference(nethelper_path)
import ZOSAPI_NetHelper
続いて、
is_initialized = (
ZOSAPI_NetHelper.ZOSAPI_Initializer.Initialize(
r"C:\Program Files\Ansys Zemax OpticStudio 2024 R1.03"
)
)
を実行します。
複数バージョン環境では、こちらの方が安定して動作する印象があります。
接続先の確認
接続後は、どのバージョンに接続したか確認しておくと安心です。
zemax_dir = (
ZOSAPI_NetHelper.ZOSAPI_Initializer.GetZemaxDirectory()
)
print(zemax_dir)
実行結果の例です。
C:\Program Files\Ansys Zemax OpticStudio 2024 R1.03
期待したバージョンへ接続できていることを確認できます。
活用事例
今回この仕組みを利用して、
.zos
↓
過去バージョンで開く
↓
.zmx形式で保存
を自動化するツールを作成しました。
主な機能は次の通りです。
- フォルダ単位で一括変換
- GUIで実行可能
- 複数ファイル一括処理
- 複数バージョン対応
- 過去バージョンのZemax指定起動
古い設計資産を最新版へ移行する際の手作業を大幅に削減できます。
.zosファイルで困ったときは
Zemax 2024R2以降では .zos 形式が廃止されています。
そのため、古い設計資産を最新版で開いた際に、レンズデータが正しく再現されないケースがあります。
サイバネットシステムのサポートサイトでは、
ZOSファイルを過去バージョンのZemaxで一括保存し直すツール
を公開しています。
主な特徴は以下の通りです。
- GUIで簡単に実行可能
- フォルダ単位で一括変換
- 対象バージョン選択可能
- 複数ファイルを自動変換
サイバネットよりZemaxを契約いただいているユーザー様はぜひご活用ください。
サイバネットのFAQ記事はこちら
まとめ
ZOS-APIでは、
ZOSAPI_Initializer.Initialize(path)
を使用することで、特定バージョンのZemaxを指定して起動できます。
複数バージョン環境での検証や、古い設計資産の移行作業を行う際には便利なテクニックです。
同じような課題に直面している方の参考になれば幸いです。
本記事は筆者個人の見解であり、
所属組織の公式見解を示すものではありません。
また、コメントへの個別の返信はいたしかねます。
問い合わせ
ZemaxマクロもしくはZOS-APIの利用による業務効率改善をお考えの方、
👇下記予約フォームより無料技術相談会をご予約ください!
- ZOS-APIの使い方、開発委託
- マクロ・DLL開発委託
など、お気軽にご相談ください!
また、本件に関わらず光学シミュレーションソフトの導入や技術相談、
設計解析委託をお考えの方もぜひサイバネットまで。