Solved

レンズファイル内のすべてのソルブを一括して変更する方法

  • 28 August 2023
  • 1 reply
  • 42 views

Userlevel 3
Badge +1

このポストでは、レンズファイル内のソルブデータを一括で変更する方法を紹介します。

今回はソルブの削除(空欄)とする方法を紹介しますが、応用すればその他のソルブに変更することもできます。

なお、このポストは以下のポストの和訳となります。

delete solves in Zemax using ZPL | Zemax Community

icon

Best answer by Takashi Matsumoto 28 August 2023, 02:47

View original

1 reply

Userlevel 3
Badge +1

ZPLを使ってソルブを削除/変更する方法


ZPLでソルブを削除/変更するには、キーワードSOLVETYPEを使用してソルブタイプを実際に適用していきます。ソルブタイプコードは、ソルブタイプを識別する2文字のコードです。Fixedタイプの場合は、Fで終わります。Thicknessのソルブを削除したい場合は、SOLVETYPEキーワードでTFというコードを次のように使用します。以下がコードの例です。

SOLVETYPE surface, TF

ここでsurfaceは0から始まる整数で、ソルブがあるサーフェス番号を指します。その他のタイプコードは、以下のヘルプファイルを参照してください。

 

固定以外の場合は、arg1~4に対してパラメータを入力します。

ただし、残念ながら、ZPLを用いてファイル全体からすべてのソルブを削除する単一のキーワードはありませんが、Forループを作成し、レンズデータエディタの各行で可能なソルブをすべて削除/変更することはできます。

ZOS-APIを使ってソルブを削除する方法

 

ソルブを削除する方法として、Standard以外のライセンスでは公差解析タブの中のデザイン固定ツールを活用するのがより良い解決策になりますが、これはZPLにはこれに対応するキーワードがありあません。

このツールを使用するためにはZOS-APIを使用する必要があります。

またこのツールと操作での注意点は、アパチャータイプが「絞り半径による定義」に変更されます。例えばPythonによるコードは以下のような例になります。

design_lkd = TheSystem.Tools.OpenDesignLockdown()

design_lkd.ExcludePickups = False
design_lkd.UsePrecisionRounding = False
design_lkd.FixModelGlass = False
design_lkd.ConvertSDToMaxApertures = False

design_lkd.RunAndWaitForCompletion()

この操作の前後におけるレンズデータエディタは以下の様になります。

このように、このツールは第0面と第1面(絞り面)のアパチャーを固定しますが、それ以外のソルブは削除されます。もちろん、最初にアパチャータイプを取得しておき、デザイン固定ツールを適用した後に、アパチャータイプを復元するコードを書くこともできます。

Reply