Skip to main content

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

  • September 13, 2021
  • 0 replies
  • 196 views

Yihua Hsiao
Zemax Staff
Forum|alt.badge.img+1

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

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

https://community.zemax.com/code-exchange-10/zpl-operand-get-the-minimum-distance-between-two-surfaces-with-coordinate-break-1575

 

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

目的

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

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

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

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

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

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

本ZPLMの制限事項

1. 2つの間の最小距離とは、面①のローカルZ軸に沿った距離を意味します。本コードでは、グローバル座標面の基準を一時的に面①とし、計算後に元に戻すようにしています。

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

 

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

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

 

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

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

 

このコードの一部は、以下の文章を参考にしています。

ZPL Operand: Edge Thickness Doublet

https://community.zemax.com/code-exchange-10/zpl-operand-edge-thickness-doublet-1570

 

 

Did this topic help you find an answer to your question?

0 replies

Be the first to reply!

Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings