複雑なノンシーケンシャル オブジェクトの作成方法


複雑なノンシーケンシャル オブジェクトの作成方法

Author
Message
Zemax_Japan
Zemax_Japan
Forum Member
Forum Member (1K reputation)Forum Member (1K reputation)Forum Member (1K reputation)Forum Member (1K reputation)Forum Member (1K reputation)Forum Member (1K reputation)Forum Member (1K reputation)Forum Member (1K reputation)Forum Member (1K reputation)

Group: Administrators / Zemax Staff
Posts: 257, Visits: 2.8K
概要 : この記事では以下の内容を取り上げています。
複数のオブジェクトを組み合わせて複雑なノンシーケンシャル オブジェクトを作成する方法
オブジェクトの複数のグループどうしをロックするピックアップ ソルブの使用方法
ノンシーケンシャル コンポーネント エディタ上でオブジェクトのグループを複製する方法
この記事には、本文で取り上げているファイルを収めた ZIP アーカイブが添付されています。
このアーカイブは、この記事の最後のページからダウンロードできます。

著者 : 
Nam-Hyong Kim

公開日 : 
2005 年 9 月 9 日

サンプル ファイル : 
記事添付ファイル

対象 : 
オブジェクト



設計を簡素化するパラメトリック オブジェクト

Zemax のノンシーケンシャル オブジェクトのほとんどはパラメトリックであり、基本的な数式に基づいて定義できます。たとえば、標準レンズ オブジェクトは、曲率半径、コーニック定数、中央の厚みなどのパラメータで定義します。パラメトリック オブジェクトは、ノンシーケンシャル コンポーネント エディタ (NSCE) で新しいパラメータ データを入力するだけで容易に変更できます。これらのオブジェクトは、定義した後も手動入力、スライダ、マクロ、拡張プログラム、最適化機能によるデータの変更に伴ってその場で再作成できます。特に最適化機能による再作成がきわめて重要です。

Zemax では、ポリゴン オブジェクトやインポートした CAD オブジェクトなどのパラメトリック オブジェクトではないオブジェクトも使用できます。
これらのオブジェクトは、最終的には一連のデータ列で記述されます。用途の中には、このようなオブジェクトを使用することで現実的な利点が得られるものがあります。たとえば、光学機械的な迷光シミュレーションでは、レンズ マウントなどの機構部品を短時間で容易にインポートできます。一方、設計段階では、目標とする性能を実現するためにオブジェクトを容易に変更できる柔軟性が必要です。この作業に理想的なツールがパラメトリック オブジェクトです。

Zemax には既に多くのパラメトリック オブジェクトが標準装備されており、新しいオブジェクトも絶えず追加されています。
このようなオブジェクトをすべて網羅したリストは、現在のマニュアルに記載されています。さらに、独自のパラメトリック オブジェクトであるユーザー定義オブジェクトを作成できるインターフェイスもあります。これはきわめて汎用的で高機能なインターフェイスです。

既存のオブジェクトを組み合わせて複合オブジェクトを作成することもできます。
これは、プログラミングを必要とせずに複雑なオブジェクトを開発できる迅速で柔軟な方法です。こうしたオブジェクトを適切に作成するための要点を以下に挙げます。
  • Zemax にどのようなオブジェクトが用意されているかを把握します(マニュアルの内容を理解することも含まれます)。
  • 他のオブジェクトを基準としてオブジェクトを配置する方法を理解し、共有する体積や面に正しい特性を設定できるようにします。マニュアルでは、この配置方法を「ネスティング ルール」と呼んでいます。
  • ピックアップ ソルブを使用して、サブオブジェクトを互いにロックします。これにより、これらのオブジェクトを定義しているパラメータのいくつかを変更するだけで、複合オブジェクトに設定されている他のパラメータをすべて自動的に更新できます。
この記事の目標は、LED (発光ダイオード) からの光を計器盤に送るためにプリント回路基板で広く使用されているアクリル製の矩形ライトパイプを作成することです。このパイプには 90°の屈曲部があり、この部分の半径を変更することによってパイプ端での放射照度分布がどのように変化するかを解析します。パイプには取り付け用のハードウェアを挿入する穴を設けるとともに、パイプ端に円形アパチャーを配置して、計器盤から見える光の形状が円形になるようにします。ライトパイプ全体が完成したら、それを複製して元のライトパイプから一定の距離離れた場所に配置します。

CAD オブジェクトのようにパラメトリックではないオブジェクトを使用して屈曲部の変更による効果を解析しようとすると、非連続な屈曲半径を持つライトパイプの CAD ファイルを、事前に複数個作成しておく必要があります。
標準付属のパラメトリック オブジェクトを複数組み合わせることにより、エディタに記述したパラメータ 1 つでオブジェクト全体の形状を制御できるようになります。さらに、パラメータに対するあらゆる変更がただちにすべての解析に反映されるので、非連続なパラメータ値による解析のみに制限されることがなくなります。

下記のアニメーションは、これから作成するライトパイプの図です。屈曲半径の変化に応じてパイプ端の放射照度がどのように変化するかを確認してください。このモデルは全面的にパラメトリックなので、屈曲半径には任意の値を入力でき、その入力に伴ってオブジェクトが動的に再作成されます。



ディテクタに現れる複数の楕円ビームは、次のレイアウトから明らかなように、さまざまな回数の全反射を経て光線が伝搬することに起因して発生しています。



基本的な光学系プロパティの設定

第 12 章に記載された現在の NSC オブジェクトのリストから、このライトパイプで必要とする形状のオブジェクトが 1 種類ではないことがわかります。組み合わせることでライトパイプを作成できるオブジェクトとして、矩形体積オブジェクトと矩形トーラス体積オブジェクトがあります。

ここで、ライトパイプをゼロから作成してみます。

Zemax を起動し、純粋なノンシーケンシャル モードに切り換えます ([ファイル] (File) → [ノンシーケンシャル モード] (Non-Sequential Mode))。

光学系の単位を mm および W/cm2 に設定します ([システム] (System) → [全般] (General) → [単位] (Units))。

波長を 0.55 um に設定します ([システム] (System) → [波長] (Wavelengths))。

[システム] (System) → [全般] (General) → [ノンシーケンシャル (Non-Sequential)] で [最大重複/接触オブジェクト数] (Maximum Nested/Touching Objects) を 5 に設定します。これは、オブジェクトの内部に置くことができるオブジェクトの最大数または互いに接触した状態にすることができるオブジェクトの最大数を定義します。この数値を必要以上に大きく設定しないようにします。過剰に大きくしても利点はなく、メモリの消費量が増大するだけです。

http://forum.zemax.com/Uploads/Images/3dfd9fcf-78f1-421a-9fc3-3c5a.gif


ライトパイプ本体の作成 : A

ノンシーケンシャル コンポーネント エディタで空オブジェクトをオブジェクト 1 として挿入し、そのパラメータはすべてデフォルト設定のままとします。続いて矩形体積オブジェクトをオブジェクト 2 として挿入し、前のオブジェクトを基準とするように設定します (Ref Object パラメータを -1 に設定)。オブジェクトを単純に絶対参照せず、他のオブジェクト (現在のオブジェクト番号 - 1) を基準として相対参照する理由は、後ほどライトパイプ全体を複製するときに明らかになります。矩形体積に次のパラメータを設定します。

[基準オブジェクト] (Ref Object) : -1

[材料] (Material) : アクリル

[X1 半幅] (X1 Half Width) : 5

[Y1 半幅] (Y1 Half Width) : 5

[Z 長さ] (Z Length) : 20

[X2 半幅] (X2 Half Width) : 5

[Y2 半幅] (Y2 Half Width) : 5

他のすべてのパラメータ : デフォルト



オブジェクトのローカル軸の位置と方向をわかりやすくするために、エディタの [オブジェクト タイプ] (Object Type) 列をダブルクリックまたは右クリックしてオブジェクトのプロパティ ウィンドウを開き、[ローカル座標の表示] (Draw Local Axis) ボックスをチェックします。

http://forum.zemax.com/Uploads/Images/e49cd5d1-83e4-45cc-a4bd-f6cb.gif

3D レイアウトを開いてオブジェクトを表示します。

http://forum.zemax.com/Uploads/Images/01d1e16b-f3b4-4752-975d-b8cc.gif

新たにオブジェクト 3 を挿入し、以下のパラメータを設定して矩形トーラス体積タイプのオブジェクトとします。

[基準オブジェクト] (Ref Object) : -1

[材料] (Material) : アクリル

[外側 R] (Outer R) : 40

[内側 R] (Inner R) : 30

[開始角] (Start Angle) : 0

[終了角] (Stop Angle) : 90

[厚み] (Thickness) : 10

[角度フェーセット数] (#Angle Facets) : 20

他のすべてのパラメータ : デフォルト



記事の冒頭でも述べたとおり、矩形トーラス体積のフェーセット表記は、あくまでもレイアウト表示を目的としたものです。光線追跡の計算では、Zemax の数値精度の最大限界まで、オブジェクトを厳密に数式で記述できます。

http://forum.zemax.com/Uploads/Images/7f72bbe1-2883-4f02-b0ee-94d5.gif

次に、トーラスの [外側 R] (Outer R) の値が変化しても、矩形トーラス体積と矩形体積が接合した状態を維持できるように適切な X、Y、Z 位置を指定する必要があります。光の透過の効果を調べるために、後ほど [外側 R] (Outer R) パラメータは変更することになっています。ピックアップ ソルブを使用して 2 つの体積を接続するとともに、[外側 R] (Outer R) が [内側 R] (Inner R) よりも必ず大きく、その差が常に 10 mm になるようにします。

[内側 R] (Inner R) パラメータに、次のピックアップ ソルブを設定します。

http://forum.zemax.com/Uploads/Images/8e70309c-9688-4eb8-bde6-3ecd.gif

エディタでは [材料] (Material) の直後の列がパラメータ 1 で、トーラス オブジェクトの [外側 R] (Outer R) に相当します。このソルブは、[内側 R] (Inner R) の値を必ず [外側 R] (Outer R) パラメータより 10 mm 小さく設定します。

トーラスの一方の端は矩形体積の +Z 側の端に接する必要があります。そのためには、トーラスの [Z 位置] (Z Position) パラメータを矩形体積の [厚み] (Thickness) パラメータ (パラメータ 3) と等しくします。
矩形トーラス体積の [Z 位置] (Z Position) パラメータに、次のソルブを設定します。

http://forum.zemax.com/Uploads/Images/62034d5d-6ef7-4c11-9bd6-9947.gif

ライトパイプ本体の作成 : B

3D レイアウトを更新します。

http://forum.zemax.com/Uploads/Images/e069be81-6053-4178-854a-7483.gif

最後に、トーラスを X 方向に -1* (外側 R - 5 mm) だけ移動する必要があります (上図を参照)。

トーラスの [X 位置] (X Position) パラメータに、次のソルブを設定します。

http://forum.zemax.com/Uploads/Images/fd695978-f19d-4412-a569-1667.gif

3D レイアウトを更新すると、2 つのオブジェクトが接続された様子が表示されます。

http://forum.zemax.com/Uploads/Images/e57fc549-ad88-4fdb-8894-e55b.gif

次のパラメータ設定で、矩形体積オブジェクトをもう 1 つ、オブジェクト 4 として挿入します。

[基準オブジェクト] (Ref Object) : -1

[材料] (Material) : ACRYLIC

[X1 半幅] (X1 Half Width) : 5

[Y1 半幅] (Y1 Half Width) : 5

[Z 長さ] (Z Length) : 50

[X2 半幅] (X2 Half Width) : 5

[Y2 半幅] (Y2 Half Width) : 5

他のすべてのパラメータ : デフォルト



レイアウトにオブジェクト 4 のローカル座標を表示します。

http://forum.zemax.com/Uploads/Images/fbbe6064-a5ed-44fb-bbf1-37b6.gif


ライトパイプ本体の作成 : C

矩形体積 (オブジェクト 4) を Y 軸を中心に -90 度回転する必要があります。[Y 軸のティルト] (Tilt About Y) パラメータに -90 を入力します。Zemax で一貫して使用している右手系の座標系に従うと、Y 軸を中心とした負の回転は + Y 軸方向から見ると時計方向の回転になります。

http://forum.zemax.com/Uploads/Images/592870ce-dd7e-497d-a43b-b826.gif

このオブジェクトの [Z 位置] (Z Position) パラメータも (外側 R - 5 mm) とする必要があるので、次のソルブを設定します。

http://forum.zemax.com/Uploads/Images/5b0eb3fb-ae3a-4d63-8d80-9d29.gif

3D レイアウトを更新すると、次のような図が表示されます。

http://forum.zemax.com/Uploads/Images/c0a3bbeb-72aa-48fc-be47-e09f.gif


ライトパイプへの穴の配置

次の手順では、オブジェクト 4 に穴 (空気) を配置します。以下のパラメータを指定して、シリンダ体積タイプのオブジェクト 5 を挿入します。

[基準オブジェクト] (Ref Object) : -1

[Y 位置] (Y Position) : 5

[Z 位置] (Z Position) : 40

[X 軸のティルト] (Tilt About X) : 90

[材料] (Material) : 空白 (空のままにします)

[前面 R] (Front R) : 2

[Z 長さ] (Z Length) : 10

[後面 R] (Back R) : 2




矩形体積 (#4) とシリンダ体積 (#5) の空気との間で重なり合った体積が発生するように、シリンダ体積は矩形体積よりも後に記述する必要があります。体積のネスティング ルールの詳細はマニュアルを参照してください。

http://forum.zemax.com/Uploads/Images/3d4dbc7b-029b-4aa9-ac94-a96c.gif

オブジェクト 1 の左に、パイプに光線を送り込む光源 (矩形) を挿入します。以下のパラメータを指定して、光源 (矩形) タイプのオブジェクト 6 を挿入します。

基準オブジェクト (Ref Object) : -5 (空オブジェクトが基準)

[Z 位置] (Z Position) : -10

[描画光線数] (# Layout Rays) : 20

[解析光線数] (# Analysis Rays) : 400000

[X 半幅] (X Half Width) : 4.8

[Y 半幅] (Y Half Width) : 4.8

他のすべてのパラメータ : デフォルト



http://forum.zemax.com/Uploads/Images/af8dc891-18b3-485c-b709-6fe5.gif

http://forum.zemax.com/Uploads/Images/b64d3b0c-f3e3-458a-b235-10f3.gif

拡大したレイアウトでは、穴のエッジで一部の光線が全反射 (TIR) していることがわかります。穴の部分の屈折率が矩形体積の屈折率よりも小さいからです。


ライトパイプの端へのアパチャーの配置


パイプの端に円形アパチャーを作成するには、矩形遮蔽および材質を空気とした円形の平坦面の 2 つの面オブジェクトをネストします。
円形の面よりも前に矩形遮蔽を記述します。以下のパラメータを指定して、矩形タイプのオブジェクト 7 (面オブジェクト) を挿入します。

基準オブジェクト (Ref Object) : -3 (オブジェクト 4 が基準)

[Z 位置] (Z Position) : 50

[材料] (Material) : 吸収性

[X 半幅] (X Half Width) : 5

[Y 半幅] (Y Half Width) : 5

他のすべてのパラメータ : デフォルト

次に、標準タイプのオブジェクト 8 (オブジェクト 7 に重ねる平坦な円形の穴) を以下のパラメータで挿入します。

[基準オブジェクト] (Ref Object) : -1

[材料] (Material) : 空白 (空のままにします)

[最大アパチャー] (Max Aper) : 2.5

他のすべてのパラメータ : デフォルト



レイアウトを更新すると、次のメッセージが表示されます。

http://forum.zemax.com/Uploads/Images/b2ca0a4f-5aaa-433f-a910-93e0.gif

今回の特定の条件で形状エラーが発生する理由は、面のネスティング ルールの 1 つに違反しているからです。第 12 章のルールの 1 つに次のようなものがあります。

「面オブジェクトは体積オブジェクトと境界を共有できません。ただし、面オブジェクトが反射性 (ミラー) または吸収性である場合、および体積オブジェクトを面オブジェクトよりも後に記述している場合 (共有する境界のプロパティは体積で決まります) は除きます。」

今回の場合、材料が空気 (吸収性でもミラーでもない) のオブジェクト 8 がオブジェクト 4 と境界を共有しています。オブジェクト 7 の Z 位置パラメータを 50 mm ではなく 50.001 mm に設定して、アパチャー (オブジェクト 7 と 8) をパイプから 1 um 離します。

http://forum.zemax.com/Uploads/Images/63e4c0d6-9619-42db-9172-ac5e.gif

上記のレイアウトでは、円形アパチャーの外側に到達した光線が想定どおりにブロックされています。


ディテクタまでの解析光線の追跡

次に、光学解析のためのディテクタを配置します。以下のパラメータを指定して、ディテクタ オブジェクトをオブジェクト 9 として挿入します。

[基準オブジェクト] (Ref Object) : -1

[Z 位置] (Z Position) : 20

[材料] (Material) : 吸収性

[X 半幅] (X Half Width) : 25

[Y 半幅] (Y Half Width) : 6

[X ピクセル数] (# X Pixels) : 400

[Y ピクセル数] (# Y Pixels) : 100

[データ タイプ] (Data Type) : 0 (インコヒーレント放射照度)

[色] (Color) : 0 (ディテクタ ビューアをグレースケールで表示)



ディテクタ ビューアを開きます。

[偏光を使用] (Use Polarization) のオプションをチェックした状態でディテクタまで解析光線を追跡します。偏光のオプションを使用するのは、部分反射およびバルク吸収によるエネルギー損失を考慮するためです。

この記事の冒頭で述べたとおり、ディテクタに複数の楕円ビームが表示されるのは、複数の光線が異なる回数で全反射しているからです。

http://forum.zemax.com/Uploads/Images/495766cb-f791-415a-97e5-fff9.gif

[外側 R] (Outer R) のパラメータを変更することでレイアウトが変化する様子を調べるには、[ツール] (Tools) → [その他] (Miscellaneous) → [スライダ] (Slider) にあるスライダ ツールを使用します。このスライダのパラメータを次のように設定して、[実行] (Animate) をクリックします。

http://forum.zemax.com/Uploads/Images/456526fd-a007-4828-8111-9a62.gif

レイアウトに屈曲部の半径が変化する様子が表示されます。

http://forum.zemax.com/Uploads/Images/589eb683-71bb-4404-80b2-5211.gif

[外側 R] (Outer R) のパラメータを変更して、ディテクタまでの光線を再度追跡することで、放射照度分布への影響を確認できます。
ディテクタを追跡し、変化するパラメータ値ごとに結果を保存する簡単な ZPL マクロを作成できます。次の放射照度分布が変化する動画は、そのようなマクロで作成しています。




ライトパイプの複製

まったく同一のライトパイプをもう 1 つ作成し、最初のライトパイプから Y 方向にある程度の距離離れた位置に配置します。ディテクタの後に空オブジェクトを挿入します。

第 1 のオブジェクトをクリックし、Shift キーを押したまま下矢印キーを押してオブジェクト 1 ~ 9 を選択します。



[編集] (Edit) の [オブジェクトをコピー] (Copy Object) を選択します。



オブジェクト 10 を選択して、[編集] (Edit) メニューの [貼り付け] (Paste) を選択します。



オブジェクト 10 (空オブジェクト) の [Y 位置] (Y Position) パラメータに 20 を入力して、2 番目のライトパイプを 1 番目の ライトパイプから +Y 方向に 20 mm 離れた場所に配置します。さらに、トーラス体積 12 の [外側 R] (Outer R) のパラメータにピックアップ ソルブを設定して、1 番目のトーラスから値をピックアップします。

http://forum.zemax.com/Uploads/Images/a29c4b73-5fd2-4597-a3bd-a07d.gif

レイアウトには 2 つのライトパイプが表示されるようになります。

http://forum.zemax.com/Uploads/Images/82ebf5fc-0db2-4d04-9302-bd7c.gif

この例では、あらゆる場所に相対オブジェクト参照を使用しているので ([基準オブジェクト] (Ref Object) 列の負の数値)、オブジェクトのグループを容易に複製できます。オブジェクトの絶対参照を使用していると、2 番目のライトパイプに相当するすべてのオブジェクトの基準オブジェクト番号を変更する必要があります。


まとめと参考文献

この記事では、ノンシーケンシャル Zemax で体積オブジェクトと面オブジェクトをネストして複雑なオブジェクトを作成する方法を紹介しました。これらをまとめると以下のようになります。
可能な限りパラメトリック オブジェクトを使用します。
  • ユーザー マニュアルに記載された体積と面のネスティング ルールに慎重に従います。
  • オブジェクトの結合は、複雑なパラメトリック オブジェクトを作成するための高機能な方法です。
  • オブジェクトの位置基準を適切に選択することにより、オブジェクトのグループをエディタ上で簡単に複製できます。


参考文献

ユーザー マニュアル

GO


Similar Topics


Login
Existing Account
Email Address:


Password:


Select a Forum....



































Zemax Users Forum


Search