2021年10月14日

ZPL オペランド:座標ブレーク面を使用した 2 つ面の最小距離の取得

Category: Product News
ZPL オペランド:座標ブレーク面を使用した 2 つ面の最小距離の取得

最適化プロセスでは、通常、2 つのレンズの間に適切な距離を設定して、レンズが干渉しないようにする必要があります。しかし、現在のメリットファンクションのオペランドは、座標ブレーク面を使用したレンズをサポートしていません。解決策としては、ZPLM を使って、座標ブレーク面を持つ 2 つの面の間の最小距離を求めることが考えられます。

以下のリンクから ZPL コードをこちらからダウンロードしてください。

Code Exchange というコミュニティは、Zemax のサポートを受けているユーザ様が、OpticStudio の機能を拡張するためのプログラミング・ソリューションを探したり、共有したりするためです。Zemax のサポートを受けているユーザ様限定です。

目的

最適化プロセスでは、通常、2 つのレンズの間に適切な距離を設定して、レンズが干渉しないようにする必要があります。しかし、現在のメリットファンクションのオペランドは、座標ブレーク面を使用したレンズをサポートしていません。解決策としては、ZPLM を使って、座標ブレーク面を持つ 2 つの面の間の最小距離を求めることが考えられます。

最適化プロセスでは、通常、2 つのレンズの間に適切な距離を設定して、レンズが干渉しないようにする必要があります。

使い方は以下の通りです。

パラメータHx : 面①の面番号

パラメータHy : 面②の面番号

Data=0 : 面①のローカル z 軸に沿った 2 つ面の間の最小距離を取得します。

Data=1 : 面①のローカル z 軸に沿った 2 つ面の間の最大距離を取得します。

解決策としては、ZPLM を使って、座標ブレーク面を持つ 2 つの面の間の最小距離を求めることが考えられます。
本 ZPLM の制限事項
  1. 2 つの間の最小距離とは、面①のローカル Z 軸に沿った距離を意味します。本コードでは、グローバル座標面の基準を一時的に面①とし、計算後に元に戻すようにしています。

  2. 下図の黄色の重なっている部分のみを対象とし、範囲を超えた部分は対象外とします。範囲内では、100 点を取って水平距離を計算し、最大値と最小値を求めます。

    本 ZPLM の制限事項

  3. コードには光線追跡が使用されています。そのため、2 つの面の間に屈折率の変化がないことを確認する必要があります。

    2 つの面の間に屈折率の変化があるシステムの場合は、すべての材質を空気に変更してから光線追跡を行い、計算後に材質を元の設定に戻すというコードを追加することができます。

  4. コードは x=0 の yz 平面で考えられています。つまり、z 軸に沿った回転、y 軸に沿った回転、x 軸に沿ったディセンタは考慮されていません。より複雑な変換が必要な場合は、自分でコードを変更する必要があります。

  5. この例はあくまでも参考です。回転角度が大きいと計算誤差が生じる可能性がありますので、使用前に計算値が正しいかどうか確認してください。

この記事は Zemax のコミュニティ投稿から引用しました。