連番を使用した名前のレンズ ファイルを ZPL マクロで開く方法

保存済みのモンテカルロ ファイルのように、ファイル名に連続性がある複数のファイルをマクロで開く必要があることが考えられます。この記事では、Zemax プログラミング言語 (ZPL) マクロのループ処理によって、1 つのフォルダにある複数のファイルを開く方法を 2 種類紹介します。この記事では、Zemax プログラミング言語 (ZPL) マクロのループ処理によって、1 つのフォルダにある複数のファイルを開く方法を 2 種類紹介します。最初に説明する方法は、信頼性が高く、お勧めの方法ですが、従来の形式に対応できるように第 2 の方法も取り上げています。

著者 Nam-Hyong Kim, Michael Humphreys(改訂)

ダウンロード

記事の添付ファイル

序論

OpticStudio の解析では、連番によるファイル名で複数のファイルが生成されることが普通です。その一例として、モンテカルロ法による公差解析があります。この解析では、"MC_T####" 形式の名前でファイルが生成され、"####" には 0001 ~ 9999 の数字が順番に使用されます。このようなファイルが生成された場合、それらを 1 つずつ開いて必要な情報を取り出すのは面倒で、特にファイルが大量になると、その傾向が強くなります。幸いなことに、OpticStudio には、連番を使用した名前を持つ複数のファイルを ZPL マクロで開き、必要な値を取得する手段が用意されています。この記事では、そのようなマクロのコードを 2 つ紹介します。第 1 の方法では、FINDFILE キーワードを使用して目的のファイルを探し出し、解析します。一方、第 2 の方法では FOR ループを使用します。2 つのマクロは、いずれも「ダウンロード」で入手できます。

方法 1: FINDFILE

下記のコードの 9 行目にある変数 "filter$" では、ファイル名の先頭がMC_T、末尾が .zmx であるファイルのみを、ワイルドカードのアスタリスク (*) を使用して検索します。今回の例では '0001' ~ '9999' までの数字を、このワイルドカードで検索することにしていますが、アスタリスクそのものは数字に限ったワイルドカードではありません。
下図のマクロは、BROWSE キーワードでダイアログ ボックスを表示し、MC_T ファイルの保存場所である目的のフォルダから、有効な .zmx ファイルを選択することをユーザーに求めます。次に、各ファイルが開かれ、キーワード OPEV と OCOD を使用して EFFL が抽出されます。この 2 つのキーワードでは OpticStudio のコンパイル済み評価関数オペランドを使用してデータが計算されるので、その動作速度はネイティブ コードとほぼ同等です。48 行以降には、ユーザーがそれぞれの目的に応じたカスタム コードを入力する必要があります。

code

方法 2: FOR ループ

下図のコードでは、FOR ループを実行するごとに、文字列変数 "myfiles_name$" の値が、保存済みモンテカルロ ファイルの適切なパスとファイル名になるようにマクロで変更されます。このマクロは、記事の添付資料に含まれています。ダウンロードしたマクロは、"{Zemax}\Macros" ディレクトリに保存する必要があります。保存したマクロは、任意のテキスト エディタ、または OpticStudio の [プログラミング] (Programming) タブ→[編集/実行] (Edit/Run) から開くことができます。

code

このマクロでは、ファイル名が "myfile_name$" であるファイルを開くのではなく、"myfile_name$" の値を出力するだけです。このコードを実際のプログラムに組み込み、レンズ ファイルを開くには、キーワード PRINT を LOADLENS に置き換えます。このマクロを実行すると、次のような出力ウィンドウが開き、文字列変数 "myfile_name$" の値が表示されます。 

text viewer

 

KA-01485

この記事は役に立ちましたか?
5人中4人がこの記事が役に立ったと言っています

コメント

0件のコメント

サインインしてコメントを残してください。