ブール CAD

ブール CAD オブジェクトは、他のオブジェクトに一連のブール演算を実行することで定義します。ブール CAD オブジェクトを使用すると、他の CAD オブジェクトとの加算、減算、交差により、きわめて一般的な形状を形成できます。たとえば、レンズ マウントの STEP ファイルをインポートし、そこからシリンダ体積を減算することで、穴を設けたレンズ マウントを作成できます。他のオブジェクトに対して一連のブール演算を実行することにより、多種多様で複雑なオブジェクトを作成できます。
OpticStudio でネイティブ オブジェクトに対して実行できるブール演算については、ブール ネイティブオブジェクトに関する説明を参照してください。インポートした CAD 部品を親オブジェクトとしないかぎり、ブール ネイティブ オブジェクトでの光線追跡は、ブール CAD オブジェクトの場合よりも最大で 10 倍効率的です。
ブール演算は、各コンポーネント オブジェクトを NURBS ベースの表現に変換することで実行されます。その後、一連のブール演算による切り出しや結合の操作により、目的のオブジェクトが生成されます。このため、ブール CAD オブジェクトには、インポート CAD オブジェクトと同じ注意点があります。詳細は、CAD パート:STEP/IGES/SAT で、インポートしたオブジェクトに関するより詳細なコメントを参照してください。高精度表現の OpticStudio ネイティブ オブジェクトから NURBS 表現に変換すると、ある程度の精度が失われる可能性があります。これは、OpticStudio の制約ではなく、任意の面を NURBS 表現するときに生じる本質的な誤差です。通常、後述する [スプライン] (Spline) および [公差] (Tolerance) のパラメータを使用することで、必要なレベルまで精度を向上できます。きわめて高い光学的精度を必要とする場合は、適切な精度がブール CAD オブジェクトの形状に保持されていることを検証する必要があります。
ブール CAD オブジェクトは、次の 22 個のパラメータおよび必要なブール演算を指定する文字列で定義します。
パラメータ番号 | 説明 | フェイス名 | フェイス番号 |
1 | スプラインは、OpticStudio 形式から NURBS 形式への変換時に、非球面にスプラインをフィッティングするために使用する点の数を制御します。スプラインに対する値は整数コードで、0 = 4 点、1 = 8 点、2 = 16 点、3 = 32 点、4 = 64 点、5 = 128 点、6 = 256 点です。スプラインの設定値を大きくすると、一部のオブジェクトの精度が向上しますが、オブジェクトの作成、レンダリング、光線追跡のスピードは低下します。 | 該当なし | 該当なし |
3 | モード。モードは、設定時間と光線追跡スピード間のトレードオフを制御します。設定時間を短縮して光線追跡のスピードを遅くする場合はモード 1、設定時間と光線追跡のスピードを中程度にする場合はモード 2、設定時間を長くして光線追跡のスピードを速くする場合はモード 3 を使用します。一般に、解析の設定時にはモード 1、多数の光線の解析追跡時にはモード 3 を使用します。 | 該当なし | 該当なし |
4 ~ 6 | # X、Y、Z ボクセル。ボクセルとは、「Volume Pixels (体積ピクセル)」に由来する名称です。ボクセルは、インポートされたソリッドによって占められる合計体積の一部を定義する 3D 矩形です。ボクセル テクノロジを利用すると、特定のボクセル内にどのオブジェクトまたはオブジェクトの一部が存在するかが事前に計算されるため、光線追跡が高速化されます。ボクセル化された領域に入射した光線は、ボクセル総数の一部とのみ交差するので、光線とオブジェクトとの交差は、これらのボクセルでのみ確認すれば十分です。ボクセルの数が多いほど、設定時間は長くなりますが、光線追跡は高速化します。一般に、最適なボクセル数を決定するには、多少の試行錯誤が必要です。他の値が明らかに優れている場合以外は、3 つの値すべてで 5 を使用します。 | 該当なし | 該当なし |
7 ~ 12 | 使用されません。 | 該当なし | 該当なし |
13 ~ 22 | どのオブジェクトが A、B、C であるかを定義するオブジェクト番号。以下の説明を参照してください。 | 該当なし | 該当なし |
親オブジェクトの定義
パラメータ 13 ~ 22 は、結合する「親」オブジェクトを定義するために使用されます。パラメータ 13 はオブジェクト A、パラメータ 14 はオブジェクト B、という要領で各オブジェクトを定義するために使用されます。目的とするブール演算に必要なオブジェクト数よりも多くのオブジェクトを定義する必要はありません。2 つのオブジェクトのみを結合する場合は、オブジェクト A とオブジェクト B のみを定義する必要があります。使用しないオブジェクトは、オブジェクト番号ゼロのまま残されることがあります。定義するすべてのオブジェクトは、NSC エディタでブール CAD オブジェクトよりも前に記述する必要があります。定義されたオブジェクトのリストは、必ずオブジェクト A で始まり、オブジェクト B と続きます。たとえば、オブジェクト A に対してオブジェクト番号をゼロに設定してから、リスト内で後にゼロ以外のオブジェクト番号を定義することは無効です。親オブジェクトは、光源やディテクタではないことがあります。
ブール演算
すべての親オブジェクトを定義した後、ブール演算は、「コメント」列で指定される、以下のような「制御文字列」で定義されます。
object oper object [oper object ]...
「object」引数は必要なオブジェクトに対応する、A、B、C などの 1 文字です。「oper」は、1 文字の演算子です。(論理的な例では、オブジェクト A とオブジェクト B の間で) 次の演算子がサポートされます。
+ は、2 つのオブジェクトを結合します (論理演算 A OR B)。
- は、最初のオブジェクトから 2 番目のオブジェクトを差し引きます (論理演算 A AND NOT B)。
& は、2 つのオブジェクトの交差を計算します (論理演算 A AND B)。
^ は、両方ではなくいずれかのオブジェクトの一部であるオブジェクトの部分を得ます (論理演算 A XOR B)。
$ は、2 番目のオブジェクトから最初のオブジェクトを差し引きます (論理演算 NOT A AND B)。次に、制御文字列の例をいくつか示します。
A+B
E+A-B-C
F+B&E-A
すべての演算は、左から右の順番で実行されます。カッコなどで順番の優先順位を示すことはできません。各ブール演算は、演算子の左側にある前の演算結果に対して実行されます。その際に、その演算子のすぐ右側にあるオブジェクトは、2 番目の引数になります。$ 演算子は、2 番目のオブジェクトから最初のオブジェクトを差し引くために使用できることに注意してください。これは、複数のオブジェクトを結合した後、3 番目のオブジェクトから結合したオブジェクトを差し引くのに役立ちます。たとえば、オブジェクト (A - B) を作成し、オブジェクト C からこの結合オブジェクトを差し引くには、文字列「A - B $ C」を使用します。
オブジェクトの配置
生成されるオブジェクトのローカル座標系は、制御文字列に列挙されている最初のオブジェクトのローカル座標系と同じになります。グローバル オブジェクトの位置と方向は、すべての NSC オブジェクトと同様、オブジェクトの位置パラメータとティルト パラメータで設定されます。
親オブジェクトが必要ない場合は、親オブジェクトで [光線はこのオブジェクトを無視] (Rays Ignore This Object) と [オブジェクトの非表示] (Do Not Draw Object) の設定を使用します (「[タイプ] (Type)」と「[描画] (Draw)」を参照)。親オブジェクトを描画せず、その光線追跡も実行していない場合でも、ブール CAD オブジェクトは作成されます。
ブール CAD オブジェクトのフェイス番号とプロパティは、親オブジェクトのフェイス番号とプロパティで定義します。親オブジェクトのすべてのフェイスのプロパティは、ブール CAD オブジェクトの対応するフェイスにコピーされます。オブジェクトの各フェイスを表示するには、NSC オブジェクト ビューアを使用します (「NSC オブジェクト ビューア」を参照)。単一のオブジェクトで設定できる固有なフェイスの合計数には制限があります。詳細は、「オブジェクト フェイス」を参照してください。
ブール CAD オブジェクトの大きな利点の 1 つは、生成される体積が、引き続き親オブジェクトのパラメータで定義されることです。親オブジェクトのいずれかのパラメータを変更すると、ブール CAD オブジェクトのパラメータも変更されます。この機能が必要な場合、ブール CAD オブジェクトは、IGES または STEP ファイルとしてエクスポートされます (CAD エクスポートについては次を参照してください: 「[CAD ファイル] (CAD Files)」) そしてCAD 部品を使用してインポートされます: (参照: 「CAD パート: STEP/IGES/SAT」)、そして、親オブジェクトが削除される可能性があります。
次へ :