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

この記事ではCADモデルを用いずにOpticStudioで複雑な物体の作成を説明します。複数のオブジェクトを組み合わせて複雑なノンシーケンシャル オブジェクトを作成する方法、オブジェクトの複数のグループどうしをロックするピックアップ ソルブの使用方法、ノンシーケンシャル コンポーネント エディタ上でオブジェクトのグループを複製する方法を学べます。
 

著者 Nam-Hyong Kim

Downloads

Article Attachments

Introduction

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

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

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

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

既存のオブジェクトを組み合わせて複合オブジェクトを作成することもできます。これは、プログラミングを必要とせずに複雑なオブジェクトを開発できる迅速で柔軟な方法です。こうしたオブジェクトを適切に作成するための要点を以下に挙げます。

  • OpticStudioにどのようなオブジェクトが用意されているかを把握します(マニュアルの内容を理解することも含まれます)。
  • 他のオブジェクトを基準としてオブジェクトを配置する方法を理解し、共有する体積や面に正しい特性を設定できるようにします。マニュアルでは、この配置方法を「ネスティング ルール」と呼んでいます。
  • ピックアップ ソルブを使用して、サブオブジェクトを互いにロックします。これにより、これらのオブジェクトを定義しているパラメータのいくつかを変更するだけで、複合オブジェクトに設定されている他のパラメータをすべて自動的に更新できます。

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

 

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

この記事の目標は、LED (発光ダイオード) からの光を計器盤に送るためにプリント回路基板で広く使用されているアクリル製の矩形ライトパイプを作成することです。このパイプには 90°の屈曲部があり、この部分の半径を変更することによってパイプ端での放射照度分布がどのように変化するかを解析します。パイプには取り付け用のハードウェアを挿入する穴を設けるとともに、パイプ端に円形アパチャーを配置して、計器盤から見える光の形状が円形になるようにします。ライトパイプ全体が完成したら、それを複製して元のライトパイプから一定の距離離れた場所に配置します。

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


ComplexNSCObjectLightpipe1

 

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

 

3D layout

 

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

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

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

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

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

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

 

Maximum Nested Touching Objects

 

ライトパイプ本体の作成

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

 

[基準オブジェクト] (Ref Object) -1
[材料] (Material) アクリル(Acrylic)
[X1 半幅] (X1 Half Width) 5
[Y1 半幅] (Y1 Half Width) 5
[Z 長さ] (Z Length) 20
[X2 半幅] (X2 Half Width) 5
[Y2 半幅] (Y2 Half Width) 5

 

Parameters for the Rectangular Volume

 

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

 

Draw Local Axis

 

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

 

3D layout_2

 

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

 

[基準オブジェクト] (Ref Object) -1
[材料] (Material) アクリル (Acrylic)
[外側 R] (Outer R) 40
[内側 R] (Inner R) 30
[開始角] (Start Angle) 0
[終了角] (Stop Angle) 90
[厚み] (Thickness) 10

 

Rectangular Torus Volume

 

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

 

3D layout_3

 

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

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

 

Parameter 2 solve on object 3

 

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

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

 

Z position solve on object 3

 

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

 

3D layout_4

 

最後に、トーラスを X 方向に -1* (外側 R - 5 mm) だけ移動する必要があります (上図を参照)。トーラスの [X 位置] (X Position) パラメータに、次のソルブを設定します。

 

X position solve on object 3

 

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

 

3D layout_5

 

次のパラメータ設定で、矩形体積オブジェクトをもう 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

 

Rectangular Volume object_2

 

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

 

3D layout_6

 

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

 

3D layout_7

 

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

 

Z position solve on object 4

 

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

 

3D layout_8

 

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

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

[基準オブジェクト] (Ref Object) -1
[Y 位置] (Y Position) 5
[Z 位置] (Z Position) 40
[X 軸のティルト] (Tilt About X) 90
[前面 R] (Front R) 2
[Z 長さ] (Z Length) 10
[後面 R] (Back R) 2

 

Cylinder Volume object

 

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

 

3D layout_9

 

オブジェクト 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

 

Source Rectangle object

 

3D layout_10

 

3D layout_11

 

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

 

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

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

 

基準オブジェクト (Ref Object) -3 (オブジェクト 4 が基準)
[Z 位置] (Z Position) 50
[材料] (Material) [吸収性] (Absorb)
[X 半幅] (X Half Width) 5
[X 半幅] (X Half Width) 5

 

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

[基準オブジェクト] (Ref Object) -1
[最大アパチャー] (Max Aper) 2.5

 

Objects 7 and 8

 

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

 

Geometry error

 

同様に、光線追跡を実施すると、次のメッセージが表示されます

 

Geometry error message

 

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

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

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

 

3D layout_12

 

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

 

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

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

 

[基準オブジェクト] (Ref Object) -1
[Z 位置] (Z Position) 20
[材料] (Material) [吸収性] (Absorb)
[X 半幅] (X Half Width) 25
[Y 半幅] (Y Half Width) 6
[X ピクセル数] (# X Pixels) 400
[Y ピクセル数] (# Y Pixels) 100

 

Detector object parameters

 

ディテクタ ビューアを開きます。[偏光を使用] (Use Polarization) のオプションをチェックした状態でディテクタまで解析光線を追跡します。偏光のオプションを使用するのは、部分反射およびバルク吸収によるエネルギー損失を考慮するためです。この記事の冒頭で述べたとおり、ディテクタに複数の楕円ビームが表示されるのは、複数の光線が異なる回数で全反射しているからです。

 

Detector viewer

 

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

 

Slider Tool

 

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

 

ComplexNSCObjectLightpipe2

 

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

 

ComplexNSCObjectLightpipe3

 

ライトパイプの複製

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

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

 

Inserting a null object after the detector

 

右クリックで [オブジェクトをコピー] (Copy Object) を選択します。

 

Copy Objects

 

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

 

Paste Objects

 

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

 

Parameter 1 solve on object 12

 

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

 

3D layout_13

 

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

References

OpticStudio Help System

KA-01364

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

コメント

0件のコメント

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