(57)【特許請求の範囲】
【請求項１】
工具の動きによる物体の機械加工をシミュレートするための方法であって、前記物体は、境界表現(ＢＰ)物体によって表され、該ＢＰ物体は、前記物体の表面の境界表現を含み、前記動きは、一組の掃引容積によって表され、該一組の掃引容積は、該一組の掃引容積の表面を規定する第１の一組の陰関数を含み、該方法は、
代理物体の表面を規定する第２の一組の陰関数を有する該代理物体を確定するステップと、
前記代理物体の前記機械加工を、前記一組の掃引容積を用いてシミュレートするステップであって、機械加工された代理(ＭＰ)物体の表面を規定する第３の一組の陰関数を有する該機械加工されたＭＰ物体を生成するものと、
前記ＭＰ物体と前記ＢＰ物体との間のブール交差の画像をレンダリングするステップと、
を含み、該方法の前記ステップは、プロセッサによって実行される、工具の動きによる物体の機械加工をシミュレートするための方法。
【請求項２】
陰関数が、距離場、サンプリングされた距離場、適応的にサンプリングされた距離場、適応的にサンプリングされた複合距離場、及びそれらの組み合わせからなる群から選択される、請求項１に記載の方法。
【請求項３】
前記レンダリングは、視線方向から実行される、請求項１に記載の方法。
【請求項４】
前記ＢＰ物体の表面は、絶対座標系におけるＢＰ物体フラグメントを含み、前記ＭＰ物体の表面は、前記絶対座標系におけるＭＰ物体フラグメントを含み、前記レンダリングは、
前記ＭＰ物体の内部の一組のＢＰ物体フラグメントを求めることと、
前記ＢＰ物体の内部の一組のＭＰ物体フラグメントを求めることと、
前記一組のＢＰ物体フラグメント及び前記一組のＭＰ物体フラグメントを、前記画像の少なくとも一部を形成する画像座標系における一組のピクセルに変換することと、
を更に含む、請求項１に記載の方法。
【請求項５】
前記一組のＢＰ物体フラグメントを求めることは、
ＢＰ物体フラグメントから前記ＭＰ物体の前記表面までの距離を求めることであって、該距離は、前記絶対座標系において求められるものと、
前記距離が、前記ＢＰ物体フラグメントが前記ＭＰ物体の内部にあることを示している場合、前記ＢＰ物体フラグメントを前記一組のＢＰ物体フラグメントに加えることと、
を含む、請求項４に記載の方法。
【請求項６】
前記一組のＭＰ物体フラグメントを求めることは、
前記画像座標系においてＭＰ物体フラグメントの深さを求めることと、
前記深さが、前記ＢＰ物体の内部の少なくとも１つの深さ範囲内にある場合、前記ＭＰ物体フラグメントを前記一組のＭＰ物体フラグメントに加えることであって、前記深さ範囲は、前記画像座標系において求められるものと、
を含む、請求項４に記載の方法。
【請求項７】
前記距離が、前記ＢＰ物体フラグメントが前記ＭＰ物体の外部にあることを示している場合、前記ＢＰ物体フラグメントを一組の機械加工されたＢＰ物体フラグメントに加えること、
を更に含む、請求項５に記載の方法。
【請求項８】
前記一組のＭＰ物体フラグメントを求めることは、
前記一組の機械加工されたＢＰ物体フラグメント内のＢＰ物体フラグメントに対応するＭＰ物体フラグメントを求めることと、
前記画像座標系における各対応するＭＰ物体フラグメントの深さを求めることと、
前記深さが、前記ＢＰ物体の内部の少なくとも１つの深さ範囲内にある場合、前記対応するＭＰ物体フラグメントを前記一組のＭＰ物体フラグメントに加えることであって、前記深さ範囲は、前記画像座標系において求められるものと、
を含む、請求項７に記載の方法。
【請求項９】
前記画像座標系における、前記ＭＰ物体フラグメントと前記一組の機械加工されたＢＰ物体フラグメントのうちの前記ＢＰ物体フラグメントとの間の対応関係を求めること、
を更に含む、請求項８に記載の方法。
【請求項１０】
前記一組の機械加工されたＢＰ物体フラグメントのうちの前記ＢＰ物体フラグメントに対応するピクセルのピクセルフラグを設定することであって、前記ピクセルフラグが前記ＭＰ物体フラグメントと前記ＢＰ物体フラグメントとの間の前記対応関係を確定するようになっているもの、
を更に含む、請求項９に記載の方法。
【請求項１１】
前記一組の機械加工されたフラグメントのうちの前記ＢＰ物体フラグメントに対応する前記ＢＰ物体の少なくとも１つの面の面フラグを設定することであって、少なくとも１つの機械加工された面を生成するものと、
前記機械加工された面のみの前記ＢＰ物体の内部の前記深さ範囲を求めることと、
を更に含む、請求項９に記載の方法。
【請求項１２】
請求項１に記載の方法であって、
絶対座標系において、前記ＢＰ物体の表面上のＢＰ物体フラグメントを求めることと、
前記絶対座標系において、前記ＭＰ物体の内部の一組のＢＰ物体フラグメントと、前記ＭＰ物体の外部の一組の機械加工されたＢＰ物体フラグメントとを求めることと、
前記画像座標系において、前記ＢＰ物体の一組の機械加工された面を求めることであって、各機械加工された面は、前記一組の機械加工されたＢＰ物体フラグメント内の少なくとも１つのＢＰ物体フラグメントに対応するものと、
前記画像座標系において、前記ＢＰ物体の内部の一組の深さ範囲を求めることであって、少なくとも１つの機械加工された面につき少なくとも１つの深さ範囲が求められるものと、
前記絶対座標系において、前記ＭＰ物体の前記表面上のＭＰ物体フラグメントを求めることと、
前記画像座標系において、前記一組の機械加工されたＢＰ物体フラグメント内のＢＰ物体フラグメントに対応するＭＰ物体フラグメントを求めることと、
前記画像座標系における対応するＭＰ物体フラグメントの深さが、前記一組の深さ範囲からの少なくとも１つの深さ範囲内にある場合、前記対応するＭＰ物体フラグメントを前記一組のＭＰ物体フラグメントに加えることと、
前記一組のＢＰ物体フラグメント及び前記一組のＭＰ物体フラグメントを、前記画像の少なくとも一部を形成する画像座標系における一組のピクセルに変換することと、
を更に含む、方法。
【請求項１３】
前記代理物体の形状は、少なくとも前記ＢＰ物体の形状に外接する、請求項１に記載の方法。
【請求項１４】
前記代理物体は立体である、請求項１に記載の方法。
【請求項１５】
フライス加工工具の動きによる物体のフライス加工のコンピューターシミュレーションを実行するためのコンピューターシステムであって、前記物体は、該物体のモデルによって表され、前記フライス加工工具の前記動きは、一組の掃引容積によって表され、該コンピューターシステムは、
代理物体の形状が前記物体の前記モデルの形状に少なくとも外接するような、該代理物体を確定し、
前記代理物体の前記フライス加工を、前記一組の掃引容積を用いてシミュレートして、機械加工された代理物体を生成し、
前記機械加工された代理物体と前記物体の前記モデルとの間のブール交差の画像をレンダリングする、
ように構成されたプロセッサを備える、フライス加工工具の動きによる物体のフライス加工のコンピューターシミュレーションを実行するためのコンピューターシステム。
【請求項１６】
前記物体の前記モデルの表面の表現と前記一組の掃引容積の表面の表現とは、異なるタイプの表現である、請求項１５に記載のシステム。
【請求項１７】
前記物体の前記モデルの表面の表現と前記一組の掃引容積の表面の表現とは、同じタイプの表現である、請求項１５に記載のシステム。
【請求項１８】
フライス加工工具の動きによる物体のフライス加工のコンピューターシミュレーションを実行するためのコンピュータープログラム製品であって、前記物体は、境界表現(ＢＰ)物体によって表され、該ＢＰ物体は、前記物体の表面の境界表現を含み、前記フライス加工工具の前記動きは、一組の掃引容積によって表され、該一組の掃引容積は、該一組の掃引容積の表面を規定する第１の一組の陰関数を含み、該コンピュータープログラム製品は、
コンピューター可読記憶媒体であって、該コンピューター可読記憶媒体を用いて具現化されたコンピューター使用可能プログラムコードを含むものを備え、前記プログラムコードは、
第２の一組の陰関数が代理物体の表面を規定する、該代理物体を確定し、
前記代理物体の前記フライス加工を、前記一組の掃引容積を用いてシミュレートして、第３の一組の陰関数が機械加工された代理(ＭＰ)物体の表面を規定する、該ＭＰ物体を生成し、
前記ＭＰ物体と前記ＢＰ物体との間のブール交差の画像をレンダリングし、
前記画像をメモリに格納する、
ように構成されている、フライス加工工具の動きによる物体のフライス加工のコンピューターシミュレーションを実行するためのコンピュータープログラム製品。
【請求項１９】
前記プログラムコードは、
絶対座標系において、前記ＢＰ物体の表面上のＢＰ物体フラグメントを求め、
前記絶対座標系において、前記ＭＰ物体の内部の一組のＢＰ物体フラグメントと、前記ＭＰ物体の外部の一組の機械加工されたＢＰ物体フラグメントとを求め、
前記画像座標系において、前記ＢＰ物体の一組の機械加工された面を求め、各機械加工された面は、前記一組の機械加工されたＢＰ物体フラグメント内の少なくとも１つのＢＰ物体フラグメントに対応し、
前記画像座標系において、前記ＢＰ物体の内部の一組の深さ範囲を求め、少なくとも１つの機械加工された面につき少なくとも１つの深さ範囲が求められ、
前記絶対座標系において、前記ＭＰ物体の前記表面上のＭＰ物体フラグメントを求め、
前記画像座標系において、前記一組の機械加工されたＢＰ物体フラグメント内のＢＰ物体フラグメントに対応するＭＰ物体フラグメントを求め、
前記画像座標系における対応するＭＰ物体フラグメントの深さが、前記一組の深さ範囲からの少なくとも１つの深さ範囲内にある場合、前記対応するＭＰ物体フラグメントを前記一組のＭＰ物体フラグメントに加え、
前記一組のＢＰ物体フラグメント及び前記一組のＭＰ物体フラグメントを、前記画像の少なくとも一部を形成する画像座標系における一組のピクセルに変換する、
ように更に構成されている、請求項１８に記載のコンピュータープログラム製品。
【請求項２０】
各一組の陰関数は、距離場、サンプリングされた距離場、適応的にサンプリングされた距離場、適応的にサンプリングされた複合距離場、及びそれらの組み合わせからなる群から選択される陰関数を含む、請求項１８に記載のコンピュータープログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、包括的には、機械加工をシミュレートすることに関し、より詳細には、ブール交差(Boolean intersection)を用いて物体を機械加工することをシミュレートするためのシステム及び方法に関する。
【背景技術】
【０００２】
数値制御機械加工
数値制御(ＮＣ)機械加工、例えば、旋削、穿孔、ドリル加工、ブローチ加工、のこ引き、成形、リーマ仕上げ、フライス加工、タッピング、研削をシミュレートすることは、コンピューター支援設計(ＣＡＤ)及びコンピューター支援製造(ＣＡＭ)において重要である。シミュレーション中、物体、例えば工作物のモデルが、工具、例えばＮＣフライス加工工具のコンピューター表現と、機械加工工程をシミュレートする一組の動きとを用いて編集される。
【０００３】
シミュレーションは、物体のモデル及び工具の表現を表示デバイス上に可視化して、工作物及び工具ホルダー等の部材間の潜在的な衝突を検出し、物体の最終的な形状を検証する。
【０００４】
物体の最終的な形状には、工具及び動きの選択によって影響が及ぼされる。これらの動きを制御するための命令が通常は、コンピューター支援製造システムを用いて、物体の所望の最終的な形状のグラフィック表現から生成される。それらの動きは通常、準備コード(preparatory code)又はＧコードとしても知られている、数値制御プログラミング言語を用いて実現される。標準規格ＲＳ２７４Ｄ及びＤＩＮ ６６０２５／ＩＳＯ ６９８３を参照されたい。
【０００５】
コンピューター支援製造システムによって生成されるＧコードは、所望の最終的な形状の正確な複製物の製造に失敗する場合がある。さらに、工具及び／又は物体の動きは、ＮＣ機械加工システムのモーターによって支配されるが、その速度、動きの範囲、並びに加速及び減速能力は限られている。したがって、実際の動きは、ＮＣ機械加工命令に厳密には従わない場合がある。
【０００６】
物体の実際の最終的な形状と、物体の所望の最終的な形状との間の不一致が小さく、観測することが難しい場合がある。状況によっては、これらの不一致の結果として、物体の最終的な形状の表面に、サイズが概ね数マイクロメートルの深さ及び幅、数十マイクロメートルの長さを有する望ましくない溝状の傷(gouge)又は欠け目(nick)が生じる。
【０００７】
通常、所望の部材を機械加工する前に、例えばより軟質で安価な材料から形成される試験物体を機械加工することによって、１組のＮＣ機械加工命令が試験される。その試験工作物の目視検査によって、試験工作物において望ましくない不一致が見つかった場合には、それに応じて、ＮＣ機械加工命令を変更することができる。
【０００８】
しかしながら、この手動試験は時間及びコストがかかる。単一の試験工作物を加工するための時間は概ね数時間かかる場合があり、許容できる１組のＮＣ機械加工命令が得られるまでに、何度か繰り返すことが必要な場合がある。したがって、コンピューターに基づくシミュレーション及びレンダリングを用いて、これらの不一致を試験することが望ましい。
【０００９】
工具
図１Ａは、ＮＣ機械加工において用いられる一組の一般的な工具１０２、１０４、１０６、及び１０８を示している。工具が工作物１１０に対して移動されるとき、その工具は、工作物から材料を切り出す。ここで、工具１０２、１０４、１０６、及び１０８は、表面１１２、１１４、１１６、及び１１８に対応する「掃引容積」と一般に呼ばれる材料を工作物から除去する。各工具によって除去される材料の形状は、工具の形状及び工作物に対する工具の経路によって決まる。
【００１０】
掃引容積
機械加工中、工具は、この工具及び／又は工作物の規定された動き、すなわち、工具経路又は物体経路に従って、工作物に対して移動する。ここで、この経路は、工作物に対する工具の相対的な位置、向き、及び他の形状データについての情報を含むことができる。
【００１１】
工具が工具経路に沿って移動するとき、工具は掃引容積を切り出す。機械加工中に、工具が工具経路に沿って移動するとき、工具の掃引容積が交差する工作物の容積部分が除去される。この材料除去は、空間領域構成法(constructive solid geometry)(ＣＳＧ)差分演算としてモデル化することができ、工作物の一部分は、この工作物からの掃引容積のＣＳＧ減算演算を用いて、この工作物から除去される。
【００１２】
図１Ｂは、経路１５２に沿って移動される形状１５０の掃引容積１６０を示している。経路１５２は、形状１５０の特定の点の位置を時間の関数として指定する。この経路は、この形状の向き１５６、１５７、及び１５８を時間の関数として指定することができる。この経路は、この形状のスケール又は形状の任意の変換も時間の関数として指定することができる。
【００１３】
図１Ｂでは、形状１５０の元の位置、向き、及び幾何学的配列は、この形状が経路１５７に沿って移動すると、形状１５４の最終的な位置、向き、及び幾何学的配列に変換される。
【００１４】
図２Ａは、線形経路を示している。この線形経路では、工具２０２が直線２０４に沿って移動される。
【００１５】
図２Ｂは、円弧経路を示している。この円弧経路では、工具２０２の先端２１０が円弧２１２に沿って移動され、工具の元の軸方向２１４がこの経路の終端で最終的な軸方向２１６に変換される。
【００１６】
図２Ｃは、曲線経路を示している。この曲線経路では、工具２０２の先端２１０が曲線２２０に沿って移動される
【００１７】
他の可能な経路形態には、数例を挙げると、工具を或る点に位置決めすること、ポリラインとして知られている一連の線に沿って工具を移動させること、渦巻き状又は螺旋状の曲線に沿って工具を移動させること、二次ベジェ曲線若しくは三次ベジェ曲線、又は区分的多項式曲線として知られている一連の多項式曲線等の多項式曲線に沿って工具を移動させることが含まれる。工作物の形状又は材料組成によって影響を受ける経路等の、手順によって規定される経路を含めて、シミュレートすることができる任意の形態の経路を考慮することができる。
【００１８】
距離場
物体の距離場ｄ(ｐ)は、空間内の点ｐにおける値がｐから物体の表面までの距離であるスカラー場である。多くの可能な距離場が従来技術において知られているが、最も一般的なものは、ｐにおける距離場の値がｐから物体の表面までの最小直線距離であるユークリッド距離場である。加えて、距離場は、物体の外側、内側、及び境界を区別するために正負の符号を付けることができ、例えば、ｄ(ｐ)＞０は内側であり、ｄ(ｐ)＜０、ｄ(ｐ)＝０は表面である。
【００１９】
また、ｐにおける距離場の勾配ベクトルは、最小距離の方向を指し、物体の表面において、正規化された勾配ベクトルは、表面の法線ベクトルに等しい。距離場は、陰関数の形態であり、形状をレンダリング及び編集するための効果的な表現である。
【００２０】
特に関心のある空間内の点ｐは、距離場の値ｄがゼロに等しい、すなわちｄ＝０の点である。本明細書において言及するように、距離場がゼロである点の集合、すなわち、距離場のゼロ等位面は、物体の境界、例えば、工作物の境界又は掃引容積の境界である。
【００２１】
適応的にサンプリングされた距離場(ＡＤＦ)は、ディテール指向サンプリング(detail-directed sampling)を用いて、距離場の空間及び時間的に効率の良い表現を提供する。ＡＤＦは、八分木等の、セルからなる空間的階層構造に距離場の値サンプルを格納する。セルの空間的階層構造は、ルートセルと呼ばれる最初のノードがＡＤＦの容積全体を取り囲む木データ構造である。この空間的階層構造のセルは、この木データ構造の末端のリーフ、すなわちリーフセルの場合もあるし、より小さな子セルを含む場合もあり、そのようなセルは、中間セルと呼ばれる。空間的階層構造のリーフセルは、内部リーフセル、すなわち境界の完全に内部のリーフセルとしてラベル付けされる場合もあるし、外部リーフセル、すなわち境界の完全に外部のリーフセルとしてラベル付けされる場合もあるし、境界リーフセル、すなわち物体の境界を含むリーフセルとしてラベル付けされる場合もある。各セルは、セルのコーナーにおける頂点を容易に計算することを可能にするサイズ及び位置によって特徴付けられ、したがって、セルのバウンディングボックスが定義される。
【００２２】
空間的階層構造内の各セルには、親セル及びあらゆる子セルの双方のメモリ又はテーブル内のアドレス又はインデックスが関連付けられる。これによって、セルの空間的階層構造の一般的記述が家族木としてもたらされ、セルは、そのセルの親セル及び祖父セルを通ってルートセルに逆戻りして到達する祖先を有し、セルは、リーフセルに達するまで子セル及び孫セル等の子孫セルを有する場合がある。
【００２３】
セルの空間的階層構造内の情報へのアクセスは、通例、情報クエリがルートセルを起点とし、その後、或る条件に応じて、木データ構造の特定の分岐、すなわち子セルを選ぶことによって子孫セルに再帰(recurse)、すなわち分岐する再帰方法を通じて得られる。例えば、空間内の特定の点を含むリーフセルを見つける方法が、ルートセルから開始して、その後、その点を含むリーフセルに達するまで、その点を含む各子孫セルの子セルに再帰する。
【００２４】
セルの空間的階層構造内の各セルは、距離データと、そのセルに関連付けられた距離場の部分を再構成するための再構成方法とを含むことができる。距離データは、距離場の値、並びにセル内の一組の点、例えば、セルのバウンディングボックスの頂点における距離場の勾配及び偏導関数を含むことができる。セル内の任意の点における距離場は、必要に応じてメモリ要件及び計算要件を削減するために距離データから再構成することができる。
【００２５】
ＡＤＦは、ＣＳＧ演算を用いて機械加工をシミュレートするのに用いることができる。機械加工される工作物及び工具は、ＡＤＦとして表すことができる。シミュレートされる機械加工工程は、例えば工作物のＡＤＦを変更することによって明示的に、シミュレートされる工作物のＡＤＦを生成することができる。この場合、セルに関連付けられた距離データは、シミュレートされる機械加工によって変更することができるが、再構成方法は、不変のままとすることができる。
【００２６】
代替的に、シミュレートされる工作物を複合ＡＤＦとして暗黙的に表すことができる。上述した従来のＡＤＦと異なり、複合ＡＤＦは、距離場の値サンプルを各セル内に格納しない。その代わり、複合ＡＤＦは、セルの空間的階層構造内に、セル内の任意の点における距離場の正確な値を解析的又は数値的な手段によって計算するのに必要な各セル用の一組のパラメーターを格納する。格納されるパラメーターは、例えば、工具のタイプ、形状、及び関連寸法を配列する機械加工工具のアレイ内への一組のインデックスを含むことができる。加えて、格納されるパラメーターは、例えば、動きのタイプ、動きの開始点及び終了点、並びに他の任意の有用な情報を与える動きのアレイ内への一組のインデックスを含むことができる。加えて、格納されるパラメーターは、例えば、機械加工シミュレーションのためのＣＳＧ減算等の、距離場を合成するのに用いられる演算子を含むことができる。これらのパラメーターは、セル内の掃引容積距離場を計算又は再構成するのに合成して用いることができる再構成関数を求めるのに用いることができる。掃引容積距離場は、機械加工工具を経路に沿って移動させることによって生成される掃引容積を表すように定義され、その移動において、掃引容積距離場は、掃引容積再構成方法に従って連続的に定義される。この掃引容積再構成方法は、サンプル点における掃引容積距離場を再構成することができる。
【００２７】
図３は、作業空間の容積の一部を表すセル、例えば、３０１、３０２及び３０３の空間的階層構造と、境界が示されている距離場とを含む２Ｄ複合ＡＤＦ３００を示している。この例では、距離場の境界３０４〜３０７は、最初の工作物の境界を規定した平面である。距離場３０８〜３１０は、ボールエンド工具１０６の掃引を表す３つの距離場の境界である。複合ＡＤＦ内の各セルは、元の工作物及び工具の掃引容積を表す一組の距離場のサブセットに関連付けられている。例えば、セル３１１に関連付けられた一組の距離場のサブセットは、セル３１１内の複合ＡＤＦ表面をともに決定する距離場３０４、３０８、及び３０９を含む。また、セルには、一組の距離場のサブセットを合成して工作物の複合距離場を再構成するためのＣＳＧ差分等の手続き型再構成方法が関連付けられている。複合表面は、元の工作物距離場及び掃引された工具距離場の境界のパッチを含む工作物のシミュレートされた境界となるように規定される。
【００２８】
各セル用の格納される距離場パラメーターは、シミュレーションにおける全ての距離場の参照子又はセル内の境界の一部分を有する全ての距離場ではなく、機械加工された工作物の複合境界を実際に形成する距離場の参照子のみを含むことが好ましい。これによって、幾何演算、例えばレンダリングを実行するのに必要な計算数を最小にすることができる。
【００２９】
複合ＡＤＦのレンダリング
複合ＡＤＦのレンダリングは、幾つかの方法と、全ての３Ｄコンピューターグラフィックスに共通の術語を用いる。３Ｄ物体の画像へのレンダリングは、変換行列によって関係付けられる複数の座標系を要する。図４に示すように、その原点及び向きが軸線４０２によって示される複合ＡＤＦ４０１は、その原点及び向きが軸線４０３によって与えられる同種の絶対空間座標系(以下、絶対空間)内に規定することができる。絶対空間座標は、多くに場合、ミリメートル又はマイル等の実際の寸法を用い、ＡＤＦ行列と呼ばれる４×４行列を用いて、ＡＤＦ座標を絶対空間座標にマッピングすることができる。絶対空間座標に対する或る位置及び向きにある仮想カメラ４０４は、その原点及び向きが軸線４０５によって与えられる視点空間座標系を規定する。絶対空間内の点の座標は、４×４視野行列(viewing matrix)を用いて視点空間に変換することができる。
【００３０】
このカメラには、カメラが見ることができる絶対空間の部分の範囲を定める視錐台(viewing frustum)４０６が関連付けられている。カメラモデルが、透視投影を用いて、遠い物体ほど近くの物体よりも小さく見えるという日常的体験を再現する場合、視錐台は、角錐台４０６の形状となる。この錐台の頂角は、カメラの視野によって決まる。視錐台の形状が長方形である正射投影等の代替的な投影変換がある。
【００３１】
４×４投影行列は、視点空間座標からクリップ空間座標に変換するのに用いることができる。視錐台の最小の深さ４０７及び最大の深さ４０８は、従来から、それぞれ近接クリッピング平面及び遠方クリッピング平面として知られている。
【００３２】
視錐台内の３Ｄ物体の全ては、レンダリングされる画像４０９に可視化することができる。クリップ空間から画面空間への変換は、画像の原点、並びにピクセルの単位による画像の幅及び高さを規定するビューポート行列によって求められる。画像４０９は、各画像ピクセルに関連付けられた様々な値のストレージを有するフレームバッファーとして知られている幾つかのメモリアレイを含むことができる。これらのうちの最も不可欠なものは、各ピクセルの赤色成分、緑色成分、及び青色成分、並びに場合によっては透明度又はアルファを保持するカラーバッファーである。画像のレンダリングに先立って、カラーバッファーは、通例、選ばれた背景色、例えば黒にクリアされて、バッファーの以前の使用に関連したあらゆる色値が除去される。
【００３３】
一般に用いられる別のバッファーは、近接クリッピング平面における物体が０．０の深さを有し、遠方クリッピング平面における物体が１．０の深さを有し、例えば、深さが範囲［０，１］に正規化されているような、画面空間内の各ピクセルに関連付けられた深さを保持するｚバッファーである。深さバッファーの機能は、後述するように、レンダリングされる画像において正しい遮蔽を可能にすることである。画像のレンダリングに先立って、ｚバッファーは、通例、或る大きな深さ値、通常は１．０にクリアされる。
【００３４】
複合ＡＤＦの画像としてのレンダリングは、複数の方法、例えば図４に２Ｄで概略的に示されているような物体順(object-order)レイキャスティング又は画像順(image-order)レイキャスティングによって実行することができる。例えば、画像順レイキャスティング方法の間、光線は、画像の各ピクセルから計算によって放射され、それらの光線が複合ＡＤＦの境界を横切るか又は視錐台の遠方クリッピング平面に達するまで、視錐台の中を伝搬される。光線は、３Ｄ空間内の光線の位置がＲ(ｔ)＝Ｒ０＋Ｒｄｔによって規定されるような時間的(time-like)座標ｔを有するパラメトリック線と等価なものとすることができる。ここで、Ｒ０は光線の起点であり、Ｒｄは光線の方向ベクトルである。光線は、当該光線が横切る最小のｔを有する最も近いセルを最初に見つけることによって複合ＡＤＦの中を伝搬される。最も近いセルが中間セルである場合、光線が最も近いリーフセルを横切るまで、その中間セルの子セルに光線が横切るかどうかが再帰的に検査される。リーフセルが境界リーフセルでない場合、そのセルは、複合ＡＤＦの境界を含まない。次に、この方法は、光線に沿って次のリーフセルを捜す。
【００３５】
一例として、光線４１１は、どのセルも横切ることなく視錐台の中を伝搬する。したがって、光線４１１に対応するピクセルは、背景色に設定されたままである。光線４１２は、空間的階層構造のルートセルを横切る。この例では、このルートセルは中間セルであり、全てが直接の子である。結局、再帰は、外部リーフセルであるセル４２５に達する。次に、この方法は、光線４１２に沿って次のセルを探索する。この例では、他のセルは存在せず、そのため、光線４１２に対応するピクセルは背景色を有するままである。
【００３６】
次に、画面ピクセル４１４に関連付けられた光線４１３を考える。光線４１３は、幾つかの中間リーフセル及び外部リーフセルを横切った後、境界リーフセルであるとともに図４の挿入図に拡大して示されているセル４１５を横切る。セル４１５は、距離場４１６、４１７、及び４１８の境界を含む。４１６は、元の工作物表面を表す平面の距離場であり、４１７及び４１８は、ボールエンド工具１０６の２回の掃引に対応する距離場の境界である。光線がセル内の複合ＡＤＦの境界を横切るか否かを判断する工程は、その光線がそのセルの前側境界面４１９及びそのセルの後側境界面４２０をそれぞれ横切る光線座標ｔｆｒｏｎｔ及びｔｂａｃｋを最初に求めることを伴うことができる。ｔｆｒｏｎｔ＞ｔｂａｃｋである場合、その光線はセルを外れており、次の光線が処理される。
【００３７】
セルを横切る光線について、画像順レイキャスティングの第２のステップは、交点４２１、４２２、及び４２３を求めることによって開始することができる。例えば、光線４１３は、セル４１５にそれぞれ関連付けられた距離場４１８、４１６及び４１７の境界を横切る。シミュレーションの減算性(subtractive nature)に起因して、点ｐは、複合ＡＤＦの表面上にしか存在しない。点ｐは、１つの距離場の境界上にあり、それ以外の全ての距離場の内側にある。すなわち、ｉ，ｊ∈［０，Ｎ)，ｉ≠ｊについて、ｄｉ(ｐ)＝０である場合に限り、ｄｊ(ｐ)＞０である。ここで、Ｎは、セル内の距離場境界の数である。したがって、距離場４１６〜４１８の値は、交点４２１〜４２３について求めることができ、上記条件を満たす光線パラメーターｔの最小値を有する点が、その光線の複合ＡＤＦ表面点である。この例では、点４２３が条件を満たし、３Ｄコンピューターグラフィックスの術語ではピクセルフラグメントとして知られている。
【００３８】
ピクセルフラグメント、例えば点４２３が求められた後、表面の法線ベクトルが距離場の勾配から計算される。光線に関連付けられたピクセルの色及び明度は、通例、表面法線ベクトルと照明ベクトル(lighting vector)とのドット積及び光の色を考慮に入れる照明モデル、例えばフォーン(Phong)又はブリン(Blinn)を用いることによって変更される、表面の材料特性、例えば材料の光沢に周囲の色、拡散色、及び鏡面反射色を加えたものから求められる。通常、フォーン照明はプラスチックに用いられ、ブリン照明は金属に用いられる。最後に、フラグメントの色及びｚ値は、それぞれカラーバッファー及びｚバッファーに書き込まれる。
【００３９】
ＡＤＦ又は複合ＡＤＦのフラグメントの座標は、通例、画面座標系又は画像座標系において処理される。しかしながら、当業者であれば、ビューポート行列、投影行列、及び視野変換行列の数学的逆行列を利用する逆変換によってフラグメントの座標を画面空間から絶対空間に変換して戻すことができることを容易に認識するであろう。絶対座標系におけるフラグメントの座標は、絶対座標系におけるＡＤＦの表面に対応する。
【００４０】
境界表現
複合ＡＤＦは、立体の物体の唯一の可能な表現ではない。ほとんどのＣＡＤソフトウェアにおいて用いられる最も一般的な表現は、境界表現、すなわちＢ−ｒｅｐである。ｂ−ｒｅｐは、結合したものが物体の境界を表す一組の重なっていない(non-lapping)面による物体の表現である。境界表現は、接続性、並びに頂点、辺、及び面の向きのトポロジー的記述と、これらの表面要素を空間内に組み込むための幾何学的記述との２つの部分を有する。コンピューターグラフィックスにおいて一般に用いられる三角形メッシュが、境界表現の一例である。三角形メッシュでは、各面は、３つの頂点を接続する３つの辺によって境界が定められた三角形である。絶対空間における三角形メッシュの全ての頂点の位置を含むテーブルが、境界表現の幾何学的記述を与え、各エントリーが、三角形メッシュの三角形を形成する３つの頂点のインデックスである第２のテーブルが、境界表現のトポロジー的記述を与える。
【００４１】
境界表現は、閉じている必要がある。すなわち、境界表現は、間隙も孔も有してはならない。加えて、ｂ−ｒｅｐは、トポロジー(形態)的に正しくなければならない。すなわち、ｂ−ｒｅｐは、閉じた表面を形成するために、他の辺にも面にも接合していない宙に浮いた辺も面も有してならない。
【００４２】
図５は、四面体の一例示の従来の境界表現を示している。この四面体は、以下のような４つの頂点、６つの辺、及び４つの三角面によって記述することができる。頂点は、５０１、５０２、５０３、及び５０４であり、辺５１１は、端頂点５０１及び５０２を有する直線であり、辺５１２は、端頂点５０２及び５０３を有する直線であり、辺５１２は、端頂点５０２及び５０３を有する直線であり、辺５１３は、端頂点５０３及び５０４を有する直線であり、辺５１４は、端頂点５０１及び５０４を有する直線であり、辺５１５は、端頂点５０２及び５０４を有する直線であり、面５２０は、辺５１２、５１３、５１５によって境界が定められた三角形であり、面５２１は、辺５１１、５１５、５１４によって境界が定められた三角形であり、面５２２は、辺５１１、５１６、５１２によって境界が定められた三角形であり、面５２３は、辺５１３、５１６、５１４によって境界が定められた三角形である。
【００４３】
この境界表現は、物体の境界表面を明示的に格納する。しかしながら、物体の内部に向いている面の側部が、面の頂点の順序付けによって暗黙的に決まる。この例では、一般的な右手順が用いられ、右手の指が頂点の順序付けの方向に向けられ、親指が面の外方向を指し示す。空間内の点が境界表現の内部にあるのか又は外部にあるのかを判断するための方法は、光線をその点から放ち、光線が、境界表現の外側であることが保証されるほど十分に大きな或る長距離に達する前に横切る面の数をカウントすることである。横切る面の数が偶数である場合、その点は境界表現の外側であり、そうでない場合、その点は内側である。
【００４４】
境界表現は、直線の辺及び平坦な面に限定されるものではない。境界表現は、例えば、それぞれ三次Ｂスプライン及び三次ベジェパッチ等のパラメトリック曲線及びパラメトリック面も含むことができる。これらの高次曲線及び高次面によって、自由な形態の境界を有する立体をコンパクトな方法で表すことが可能になる。
【００４５】
境界表現のレンダリングは、ＯｐｅｎＧＬ等のグラフィックスアプリケーションプログラミングインターフェース(ＡＰＩ)を用いて３Ｄグラフィックスハードウェアによって実行することができ、複合ＡＤＦをレンダリングすることに関連して上述したものと同じ座標系及び変換を伴う。境界表現の各面は、物体順の形式で別々にレンダリングされる。
【００４６】
レンダリングの間、境界の各面は、グラフィックスＡＰＩに渡すことができる１つ又は複数の平坦なポリゴンに変換することができる。グラフィックスプロセッサは、ポリゴン頂点の位置を、視野変換行列との乗算によって絶対空間から視点空間に変換することができ、次に、それらの位置を、投影行列を乗算することによってクリップ空間に更に変換する。
【００４７】
加えて、各頂点において規定される、表面に対して垂直なベクトルが、視野行列の上側３x３行列の逆行列の転置行列によって変換される。次に、完全にクリップ容積(ｘ，ｙ，ｚ)∈［−１，１］内にあるとは限らないあらゆる面を廃棄することによって、クリッピングが行われる。部分的にクリップ容積内にあるいずれも面も、容積境界にクリッピングされる。次に、ビューポート行列を用いて、頂点が画面空間に投影される。それらの(ｘ，ｙ，ｚ)座標は、このとき、それぞれ［０，ｓｃｒｅｅｎ＿ｗｉｄｔｈ)及び［０，ｓｃｒｅｅｎ＿ｈｅｉｇｈｔ)及び［０．０，１．０］の範囲にある。次に、変換された面がラスター化され、変換された面によって境界が定められた画面領域内の各ピクセルについて、境界表現のフラグメントが生成される。このフラグメントの位置及び色は、面の頂点の位置及び色の双一次補間によって求められる。ｚ検定が実行され、各フラグメントのｚ値が、既にｚバッファーにある値と比較され、その値の方が小さい、すなわち、より近い場合、現在のｚ値及び色は、そのフラグメントの値によって上書きされ、そうでない場合、そのフラグメントは廃棄される。
【００４８】
法線ベクトルは、各フラグメントについて、各頂点において規定されかつフラグメントの画面位置に補間された変換済み法線ベクトルから求めることができる。フラグメントの色及び明度は、通例、補間された変換済み法線ベクトルと照明ベクトルのドット積及び光の色を考慮に入れる照明モデル、例えばフォーン又はブリンを用いることによって変更される材料特性、例えば、材料の光沢に周囲の色、拡散色、及び鏡面反射色を加えたものから求められる。
【００４９】
機械加工において用いられる多くの工作物は、直方体又は円柱等の単純な形状として始まる。しかしながら、別の部類の機械加工動作は、鋳造された工作物の仕上げを伴う。鋳造された工作物、すなわち鋳造物は、溶融金属を型に流し込んでより複雑な初期工作物を形成することによって作製される。一般的な鋳造材料は、弱接着剤と混合された砂であり、それ自体、他の型から砂型に鋳造されたものである。砂は、安価であるとともに耐熱性を有するという利点を有し、仕上げされた鋳造物は、砂を単にばらばらに崩すことによって砂型から容易に抽出することができる。
【００５０】
砂の比較的粗いテクスチャーに起因して、砂型鋳造物は粗野な仕上げを有し、寸法精度が低い。一方、工作物の表面の中には、平滑な仕上げと高精度の寸法とを有することを必要とするものがある。例えば、自動車エンジンブロックは、砂型鋳造によって作製され、ピストンリングがシリンダーを密封することができるとともにピストンが正確に移動することができるように、シリンダー内は非常に正確かつ平滑でなければならない。さらに、取り付け孔に雌ねじを切らなければならず、ガスケットが別々の構成部材を接合する密封面は、平滑かつ平坦な仕上げを有しなければならない。
【００５１】
平滑な表面及び正確な寸法を達成するには、鋳造物の表面の一部又は全部を機械加工しなければならない。したがって、機械加工シミュレーターが鋳造工作物の表現から開始することができることは重要である。しかしながら、鋳造工作物の表面表現は、工具の動きの表現と適合していない可能性がある。例えば、鋳造工作物の表面は、明示的な表現、例えばＣＡＤ境界表現によって規定される可能性があり、工具の動きは、暗黙的な表現、例えばＡＤＦ表現を有する表面によって規定される可能性がある。
【００５２】
従来の方法は、暗黙的な物体表現を明示的な表現に又はその逆に変換する。しかしながら、この変換工程は、多くの時間を要し、大きなメモリ所要量を有する場合がある。また、自由な形態の表面の場合、変換の結果、精度が失われる場合がある。したがって、当該技術分野においては、上述した問題に対処する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【００５３】
この発明の目的は、工具によって物体を機械加工することをシミュレートする方法を提供することである。この発明の更なる目的は、物体のモデル自体を変更することなく、そのモデルの機械加工シミュレーションを提供するそのような方法を提供することである。この発明の更なる目的は、１つのタイプの表面表現を有する物体の、別のタイプの表面表現を有する一組の掃引容積を用いた機械加工シミュレーションに好適な方法を提供することである。
【課題を解決するための手段】
【００５４】
この発明の幾つかの実施の形態は、例えば表面の境界表現を有する物体のモデルの機械加工シミュレーションを、例えば距離場表現による掃引容積を用いて行うのではなく、距離場表現による代理物体(proxy object)を作成することができ、機械加工シミュレーションをその代理物体に対して実行して、機械加工された代理物体を受け取ることができるという認識に基づいている。このとき、物体のモデルを機械加工するという問題は、機械加工された代理物体と物体のモデルとの間のブール交差を求めることに還元される。
【００５５】
その上、幾つかの実施の形態は、幾つかの用途については、一方の表現を他方の表現に変換することが不要であるという別の認識に基づいている。その代わり、それらの異なる表現が互いに正しく合成されるようにそれらの表現を同時にレンダリングする(co-render)ことで十分である。これらの２つの表現の同時レンダリングによって、適切な遮蔽を含む機械加工シミュレーションを表す画像が生成される。
【００５６】
したがって、この発明の１つの実施の形態は、工具の動きによる物体の機械加工のコンピューターシミュレーションのための方法であって、前記物体は、境界表現(ＢＰ)物体によって表され、該ＢＰ物体は、前記物体の表面の境界表現を含み、前記動きは、一組の掃引容積によって表され、該一組の掃引容積は、該一組の掃引容積の表面を規定する第１の一組の陰関数を含む、方法を開示する。該方法のステップは、プロセッサによって実行される。該方法は、
第２の一組の陰関数が代理物体の表面を規定する該代理物体を確定するステップと、
前記代理物体の前記機械加工を、前記一組の掃引容積を用いてシミュレートして、第３の一組の陰関数が機械加工された代理(ＭＰ)物体の表面を規定する該ＭＰ物体を生成する、シミュレートするステップと、
前記ＭＰ物体と前記ＢＰ物体との間のブール交差の画像をレンダリングするステップと、
前記画像をメモリに格納するステップと、
を含む。
【００５７】
この実施の形態の変形形態は、次の任意選択の特徴を含んでもよい。例えば、前記レンダリングは、視線方向から実行されてもよく、陰関数は、距離場、サンプリングされた距離場、適応的にサンプリングされた距離場、適応的にサンプリングされた複合距離場、及びそれらの組み合わせからなる群から選択されてもよい。
【００５８】
また、前記ＢＰ物体の表面は、絶対座標系におけるＢＰ物体フラグメントを含んでもよく、前記ＭＰ物体の表面は、前記絶対座標系におけるＭＰ物体フラグメントを含む。前記レンダリングは、前記ＭＰ物体の内部の一組のＢＰ物体フラグメントを求めることと、前記ＢＰ物体の内部の一組のＭＰ物体フラグメントを求めることと、前記一組のＢＰ物体フラグメント及び前記一組のＭＰ物体フラグメントを、前記画像の少なくとも一部を形成する画像座標系における一組のピクセルに変換することとを更に含んでもよい。
【００５９】
前記一組のＢＰ物体フラグメントを求めることは、
ＢＰ物体フラグメントから前記ＭＰ物体の前記表面までの距離を求めることであって、該距離は、前記絶対座標系において求められる、求めることと、
前記距離が、前記ＢＰ物体フラグメントが前記ＭＰ物体の内部にあることを示している場合、前記ＢＰ物体フラグメントを前記一組のＢＰ物体フラグメントに加えることと、
前記距離が、前記ＢＰ物体フラグメントが前記ＭＰ物体の外部にあることを示している場合、前記ＢＰ物体フラグメントを一組の機械加工されたＢＰ物体フラグメントに加えることと、
を含んでもよい。
【００６０】
前記一組のＭＰ物体フラグメントを求めることは、
前記画像座標系においてＭＰ物体フラグメントの深さを求めることと、
前記深さが、前記ＢＰ物体の内部の少なくとも１つの深さ範囲内にある場合、前記ＭＰ物体フラグメントを前記一組のＭＰ物体フラグメントに加えることであって、前記深さ範囲は、前記画像座標系において求められる、加えることと、
を含んでもよい。
【００６１】
加えて又は代替的に、前記一組のＭＰ物体フラグメントを求めることは、
前記一組の機械加工されたＢＰ物体フラグメント内のＢＰ物体フラグメントに対応するＭＰ物体フラグメントを求めることと、
前記画像座標系における各対応するＭＰ物体フラグメントの深さを求めることと、
前記深さが、前記ＢＰ物体の内部の少なくとも１つの深さ範囲内にある場合、前記対応するＭＰ物体フラグメントを前記一組のＭＰ物体フラグメントに加えることであって、前記深さ範囲は、前記画像座標系において求められる、加えることと、
前記画像座標系における、前記ＭＰ物体フラグメントと前記一組の機械加工されたＢＰ物体フラグメントのうちの前記ＢＰ物体フラグメントとの間の対応関係を求めることと、
を含んでもよい。
【００６２】
幾つかの変形形態では、本方法はまた、前記一組の機械加工されたＢＰ物体フラグメントのうちの前記ＢＰ物体フラグメントに対応するピクセルのピクセルフラグであって、前記ＭＰ物体フラグメントと前記ＢＰ物体フラグメントとの間の前記対応関係を確定するようになっている、ピクセルフラグを設定すること、
を含んでもよい。加えて又は代替的に、本方法は、前記一組の機械加工されたフラグメントのうちの前記ＢＰ物体フラグメントに対応する前記ＢＰ物体の少なくとも１つの面の面フラグを設定することであって、少なくとも１つの機械加工された面を生成する、設定することと、
前記機械加工された面のみの前記ＢＰ物体の内部の前記深さ範囲を求めることと、
を含んでもよい。
【００６３】
この実施の形態の１つの変形形態では、本方法は、絶対座標系において、前記ＢＰ物体の表面上のＢＰ物体フラグメントを求めることと、
前記絶対座標系において、前記ＭＰ物体の内部の一組のＢＰ物体フラグメントと、前記ＭＰ物体の外部の一組の機械加工されたＢＰ物体フラグメントとを求めることと、
前記画像座標系において、前記ＢＰ物体の一組の機械加工された面を求めることであって、各機械加工された面は、前記一組の機械加工されたＢＰ物体フラグメント内の少なくとも１つのＢＰ物体フラグメントに対応する、求めることと、
前記画像座標系において、前記ＢＰ物体の内部の一組の深さ範囲を求めることであって、少なくとも１つの機械加工された面につき少なくとも１つの深さ範囲が求められる、求めることと、
前記絶対座標系において、前記ＭＰ物体の前記表面上のＭＰ物体フラグメントを求めることと、
前記画像座標系において、前記一組の機械加工されたＢＰ物体フラグメント内のＢＰ物体フラグメントに対応するＭＰ物体フラグメントを求めることと、
前記画像座標系における対応するＭＰ物体フラグメントの深さが、前記一組の深さ範囲からの少なくとも１つの深さ範囲内にある場合、前記対応するＭＰ物体フラグメントを前記一組のＭＰ物体フラグメントに加えることと、
前記一組のＢＰ物体フラグメント及び前記一組のＭＰ物体フラグメントを、前記画像の少なくとも一部を形成する画像座標系における一組のピクセルに変換することと、
を更に含む。上述の実施の形態は、プロセッサを用いて実行することができる。
【００６４】
この発明の別の実施の形態は、工具の動きによる物体の機械加工のコンピューターシミュレーションを実行するためのコンピューターシステムであって、前記物体は、該物体のモデルによって表され、前記動きは、一組の掃引容積によって表され、該コンピューターシステムは、
代理物体の形状が前記物体の前記モデルの形状に少なくとも外接するような、該代理物体を確定し、
前記代理物体の前記フライス加工を、前記一組の掃引容積を用いてシミュレートして、機械加工された代理物体を生成し、
前記機械加工された代理物体と前記物体の前記モデとの間のブール交差の画像をレンダリングする、
ように構成されたプロセッサを備える、工具の動きによる物体の機械加工のコンピューターシミュレーションを実行するためのコンピューターシステムを開示する。
【００６５】
前記コンピューターシステムでは、前記物体の前記モデルの表面の表現と前記一組の掃引容積の表面の表現とは、異なるタイプの表現であってもよいし、又は同じタイプの表現であってもよい。
【００６６】
別の実施の形態は、工具の動きによる物体の機械加工のコンピューターシミュレーションを実行するためのコンピュータープログラム製品であって、前記物体は、境界表現(ＢＰ)物体によって表され、該ＢＰ物体は、前記物体の表面の境界表現を含み、前記フライス加工工具の前記動きは、一組の掃引容積によって表され、該一組の掃引容積は、該一組の掃引容積の表面を規定する第１の一組の陰関数を含み、該コンピュータープログラム製品は、
コンピューター可読記憶媒体であって、該コンピューター可読記憶媒体を用いて具現化されたコンピューター使用可能プログラムコードを含む、コンピューター可読記憶媒体を備え、前記プログラムコードは、
第２の一組の陰関数が代理物体の表面を規定する、該代理物体を確定し、
前記代理物体の前記フライス加工を、前記一組の掃引容積を用いてシミュレートして、第３の一組の陰関数が機械加工された代理(ＭＰ)物体の表面を規定する、該ＭＰ物体を生成し、
前記ＭＰ物体と前記ＢＰ物体との間のブール交差の画像をレンダリングし、
前記画像をメモリに格納する、
ように構成されている、工具の動きによる物体の機械加工のコンピューターシミュレーションを実行するためのコンピュータープログラム製品を開示する。
【００６７】
前記コンピュータープログラム製品は、
絶対座標系において、前記ＢＰ物体の表面上のＢＰ物体フラグメントを求め、
前記絶対座標系において、前記ＭＰ物体の内部の一組のＢＰ物体フラグメントと、前記ＭＰ物体の外部の一組の機械加工されたＢＰ物体フラグメントとを求め、
前記画像座標系において、前記ＢＰ物体の一組の機械加工された面を求め、なお、各機械加工された面は、前記一組の機械加工されたＢＰ物体フラグメント内の少なくとも１つのＢＰ物体フラグメントに対応し、
前記画像座標系において、前記ＢＰ物体の内部の一組の深さ範囲を求め、なお、少なくとも１つの機械加工された面につき少なくとも１つの深さ範囲が求められ、
前記絶対座標系において、前記ＭＰ物体の前記表面上のＭＰ物体フラグメントを求め、
前記画像座標系において、前記一組の機械加工されたＢＰ物体フラグメント内のＢＰ物体フラグメントに対応するＭＰ物体フラグメントを求め、
前記画像座標系における対応するＭＰ物体フラグメントの深さが、前記一組の深さ範囲からの少なくとも１つの深さ範囲内にある場合、前記対応するＭＰ物体フラグメントを前記一組のＭＰ物体フラグメントに加え、
前記一組のＢＰ物体フラグメント及び前記一組のＭＰ物体フラグメントを、前記画像の少なくとも一部を形成する画像座標系における一組のピクセルに変換する、
ように構成されてもいる前記プログラムコードを有してもよい。
【図面の簡単な説明】
【００６８】
【図１Ａ】物体を機械加工するのに用いられる例示の工具及び工作物の一部分の従来の表現の概略図である。
【図１Ｂ】曲線経路に沿って２Ｄ形状を掃引することによって求められる掃引容積の概略図である。
【図２Ａ】工具の従来の種々の経路のうちの１つの概略図である。
【図２Ｂ】工具の従来の種々の経路のうちの１つの概略図である。
【図２Ｃ】工具の従来の種々の経路のうちの１つの概略図である。
【図３】機械加工される工作物を表す従来の複合ＡＤＦの概略図である。
【図４】画像順レイキャスティングによる複合ＡＤＦの従来のレンダリングの概略図である。
【図５】四面体の従来の境界表現の概略図である。
【図６Ａ】この発明の或る実施の形態による機械加工をシミュレートする概略図である。
【図６Ｂ】この発明の或る実施の形態による機械加工をシミュレートする概略図である。
【図６Ｃ】この発明の或る実施の形態による機械加工をシミュレートする概略図である。
【図７】この発明の幾つかの実施の形態による機械加工をシミュレートするための方法のブロック図である。
【図８】この発明の幾つかの実施の形態によるブール交差をレンダリングするための方法のブロック図である。
【図９】この発明の幾つかの実施の形態によるブール交差をレンダリングするための方法のブロック図である。
【図１０】物体の深さの範囲の概略図である。
【図１１】この発明の１つの実施の形態によるレンダリング工程のフローチャートである。
【図１２】この発明の１つの実施の形態によるレンダリング工程のフローチャートである。
【図１３】レンダリング工程の幾つかの要素の概略図である。
【図１４】この発明の１つの実施の形態によるコンピューターシステムの概略図である。
【発明を実施するための形態】
【００６９】
この発明の実施の形態は、数値制御(ＮＣ)機械加工、例えば、旋削、穿孔、ドリル加工、ブローチ加工、のこ引き、成形、リーマ仕上げ、フライス加工、タッピング、研削をシミュレートするための方法を提供する。
【００７０】
通常、物体を固定することができるとともに工具のみが移動するか、若しくは工具を固定することができるとともに物体のみが移動するか、又は旋盤を用いた旋削におけるように双方が移動する。旋削では、物体が回転するとともに工具が直線的に移動する。したがって、「動き」という用語は、物体と工具との間の相対的な動きを指す。
【００７１】
この説明では、一例示の機械加工動作としてフライス加工が用いられる。しかしながら、この発明は、他の機械加工動作に等しく適用可能であることが理解されよう。
【００７２】
図６Ａ〜図６Ｃは、この発明の幾つかの実施の形態の背後にある認識を示している。図６Ａは、物体のモデル６１０の機械加工６２０をシミュレートするための方法を示している。具体的には、モデル６１０は、機械加工された物体６３０をシミュレートするように工具の動きを表す一組の掃引容積６２５によって変更される。しかしながら、出願人らは、一般的に、幾つかの用途については、機械加工６２０を実行することが望ましくないと認識した。例えば、機械加工６２０は、掃引容積が、陰関数、例えば距離場を用いて暗黙的に表されているとともに、物体のモデルが、例えば境界表現を用いて明示的に表されているときに失敗する場合がある。
【００７３】
出願人らは、図６Ｂに示すように、代理物体６４０を用いて機械加工６２０を回避することができることを更に認識した。例えば、代理物体は、掃引容積の表面と同じ表面表現を有することができる。加えて又は代替的に、代理物体は、機械加工シミュレーションにとって物体の形状よりも有利な形状を有することができる。したがって、この発明の幾つかの実施の形態は、一組の掃引容積６２５を代理物体に適用して(６５０)、機械加工された代理物体６６０を生成する。
【００７４】
次に、図６Ｃに示すように、物体６１０のモデルと機械加工された代理物体６６０との間のブール交差６７０が、適切な遮蔽を含む機械加工された物体６３０と同様に見える機械加工された物体６８０の画像を生成する。その上、ブール交差は、物体のモデルを変更することなく、物体のモデル及び機械加工された代理物体を画像にレンダリングしている間に求めることができる。
【００７５】
したがって、この発明の幾つかの実施の形態は、物体のモデルの機械加工シミュレーションを実行するのではなく、代理物体の機械加工シミュレーションを実行する。それゆえ、物体のモデルを機械加工する問題は、機械加工された代理物体と物体のモデルとの間のブール交差を求めることに還元される。
【００７６】
代理物体は、機械加工される物体のモデルを、機械加工命令、すなわち、一組の掃引容積から分離する。そのような分離によって、種々の形状及び表面表現を有する任意のタイプの物体の機械加工シミュレーションを実行することが可能になる。事実上、代理物体によって、物体のモデルを前もって提供することなく機械加工シミュレーションが可能になる。その上、代理物体によって、機械加工シミュレーションを実行して機械加工された代理物体を生成し、その機械加工された代理物体を、機械加工される種々の物体に再利用することが可能になる。
【００７７】
したがって、代理物体の使用によって、機械加工シミュレーションの適用性及び柔軟性が拡張されるとともに、シミュレーションのコストが削減される。
【００７８】
物体のモデルの表面及び一組の掃引容積の表面の様々な表現が可能である。例えば、表面は、明示的な表現、例えば境界表現を有することもできるし、例えば、一組の陰関数を用いた暗黙的な表現を有することもできる。一組の陰関数は、距離場、サンプリングされた距離場、適応的にサンプリングされた距離場、適応的にサンプリングされた複合距離場、及びそれらの組み合わせからなる群から選択される陰関数を含むことができる。
【００７９】
この発明の幾つかの実施の形態では、物体のモデルの表面の表現及び一組の掃引容積の表面の表現は、異なるタイプの表現である。代替的な実施の形態では、物体のモデルの表面の表現及び一組の掃引容積の表面の表現は、同じタイプの表現である。
【００８０】
また、幾つかの実施の形態では、代理物体は、当該代理物体の形状が少なくとも物体のモデルの形状に外接するように確定される。代理物体の形状は立体形状、例えば、長方形、立方体形、及び球状である。代理物体の他の形状が可能である。
【００８１】
例えば、１つの実施の形態では、代理物体は、掃引容積の表面の表現と同じ表面表現を有する立体の物体を表し、その代理物体の形状は、少なくともＢＰ物体の形状に外接する。この実施の形態の１つの変形形態では、代理物体は長方形状を有する。
【００８２】
図７は、この発明の幾つかの実施の形態による物体の機械加工をシミュレートするための方法７００のブロック図を示している。これらの実施の形態では、機械加工は、工具の動きを用いた物体の機械加工を含む。この物体は、境界表現(ＢＰ)物体７０１によって表され、このＢＰ物体は、物体の表面の境界表現７１４を含む。動きは、一組の掃引容積７０４によって表され、この一組の掃引容積は、一組の掃引容積の表面を規定する第１の一組の陰関数７１１を含む。しかしながら、この実施の形態は、専ら例示の目的でのみ提供されるものであり、この発明の範囲を限定することを意図するものではない。
【００８３】
ＢＰ物体７０１の機械加工のシミュレーションの開始時に、代理物体７０２が確定され(７３０)、第２の一組の陰関数７１２が代理物体の表面を規定する。次に、代理物体７０２の機械加工が、一組の掃引容積７０４を用いてシミュレートされて(７４０)、機械加工された代理(ＭＰ)物体７０３を生成する。このＭＰ物体の表面は、第３の一組の陰関数７１３が規定している。ＭＰ物体７０３とＢＰ物体７０１との間のブール交差７０５が、画像７１０にレンダリングされる(７５０)。通常、レンダリング７５０は、光線７０６によって示される視線方向等の視線方向から実行される。画像７１０は、視線方向７０６から見ることができるような機械加工されたＢＰ物体を表す。画像７１０は、格納又は更なる処理のためにメモリ７２０に格納することができる。
【００８４】
方法７００及び／又はこの発明の他の実施の形態は、プロセッサ７９９によって実行される。「プロセッサ」又は「中央処理装置(ＣＰＵ)」は、ソフトウェア命令を読み出して実行するコンピューター又はコンピューターの構成要素を指す。当業者によって理解されるように、この発明の実施の形態は、システム、方法、又はコンピュータープログラム製品として具現化することができる。したがって、実施の形態は、全面的にハードウェアの実施の形態、全面的にソフトウェアの実施の形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、又はソフトウェアの態様及びハードウェアの態様を組み合わせた実施の形態の形式を取ることができる。これらは全て、本明細書では、「回路」、「モジュール」、又は「システム」と呼ばれる場合がある。さらに、この発明は、コンピューター使用可能プログラムコードが具現化された１つ又は複数のコンピューター可読(すなわち、コンピューター使用可能)媒体(複数の場合もある)に具現化されたコンピュータープログラム製品の形式を取ることができる。
【００８５】
「コンピューター」は、構造化された入力を受け付け、この構造化された入力を規定されたルールに従って処理し、処理の結果を出力として生成することが可能な任意の装置を指す。コンピューターの例には、コンピューター、汎用コンピューター、スーパーコンピューター、メインフレーム、スーパーミニコンピューター、ミニコンピューター、ワークステーション、マイクロコンピューター、サーバー、インターラクティブテレビ、コンピューター及びインターラクティブテレビをハイブリッド結合したもの、並びにコンピューター及び／又はソフトウェアをエミュレートする特定用途向けハードウェアが含まれる。コンピューターは、単一のプロセッサ又は複数のプロセッサを有することができ、それらの複数のプロセッサは、並列及び／又は非並列に動作することができる。コンピューターは、コンピューター間で情報を送信又は受信するようにネットワークを介して互いに接続された２つ以上のコンピューターも指す。そのようなコンピューターの一例には、ネットワークによってリンクされたコンピューターを介して情報を処理する分散コンピューターシステムが含まれる。
【００８６】
「メモリ」又は「コンピューター可読媒体」は、コンピューターによってアクセス可能なデータを格納するための任意のストレージを指す。例には、磁気ハードディスク、ＣＤ−ＲＯＭ又はＤＶＤのような光ディスク、磁気テープ、メモリチップ、並びに電子メールの送受信又はネットワーク及びコンピューターメモリ、例えばランダムアクセスメモリ(ＲＡＭ)へのアクセスにおいて用いられるようなコンピューター可読電子データを搬送するのに用いられる搬送波が含まれる。コンピューター可読媒体に具現化されたプログラムコードは、無線、有線、光ファイバーケーブル、ＲＦ等を含むがこれらに限定されない任意の適切な媒体を用いて送信することができる。
【００８７】
この発明の動作を実行するためのコンピュータープログラムコードは、Ｊａｖａ（登録商標）、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋等のオブジェクト指向型プログラミング言語で記述することができる。しかしながら、この発明の動作を実行するためのコンピュータープログラムコードは、「Ｃ」プログラミング言語又は同様のプログラミング言語等の従来の手続型プログラミング言語で記述することもできる。プログラムコードは、スタンドアローンソフトウェアパッケージとして、ユーザーのコンピューターにおいて全面的に又はユーザーのコンピューターにおいて部分的に実行することもできるし、ユーザーのコンピューターにおいて部分的にかつリモートコンピューターにおいて部分的に実行することもできるし、リモートコンピューター又はサーバーにおいて全面的に実行することもできる。後者のシナリオでは、リモートコンピューターをローカルエリアネットワーク(ＬＡＮ)又はワイドネットワーク(ＷＡＮ)を通じてユーザーのコンピューターに接続することもできるし、外部のコンピューターに(例えば、インターネットサービスプロバイダーを用いてインターネットを通じて)その接続を行うこともできる。
【００８８】
代理物体７０２は、例えば、その寸法がＢＰ物体６０１の寸法よりも大きな直方体のＡＤＦとすることができ、代理物体の形状は、少なくともＢＰ物体の形状に外接する。一般に、ブール交差は、点が一方の物体の境界上にありかつ他方の物体の内部にある場合にのみ、その点がそれらの２つの物体のブール交差の境界上にのみ存在することを意味する。２つの物体のブール交差の内部は、それらの物体の双方の内側領域に共通の空間の領域である。代理物体はＢＰ物体よりも大きいので、それらの物体の双方の内側にある空間の領域は、ｂ−ｒｅｐ物体のみの内側にある空間の領域に等しい。
【００８９】
ＢＰ物体とＭＰ物体との間のブール交差７０５のレンダリング７５０は、複数の方法によって実行することができる。特定の方法の選択は、例えば、ＢＰ物体及びＭＰ物体の表面の表現のタイプに依存し得る。
【００９０】
図８は、この発明の幾つかの実施の形態によるレンダリングする(７５０)ための方法のブロック図を示している。ＢＰ物体の表面は、絶対座標系８０５におけるＢＰ物体フラグメント８１０を含む。同様に、ＭＰ物体の表面は、同じく絶対座標系８０５におけるＭＰ物体フラグメント８２０を含む。絶対座標系内のそれぞれのＢＰ物体フラグメント及びＭＰ物体フラグメントは、画像座標系８１５内の画像７１０のピクセルに対応する。
【００９１】
ＭＰ物体の内部の一組のＢＰ物体フラグメント８３５が求められる(８３０)。ＢＰ物体フラグメントは、ＭＰ物体の表面上又はＭＰ物体の内側にある場合に、ＭＰ物体の内部にある。そうでない場合、ＢＰ物体フラグメントは、ＭＰ物体の外部にある。
【００９２】
ＭＰ物体の表面は暗黙的に表されるので、ＢＰ物体フラグメントからＭＰ物体の表面までの距離８７０を求めることが可能である。この距離は、絶対座標系８０５において求められる。距離８７０が、ＢＰ物体フラグメントがＭＰ物体の内部にあることを示している場合、この発明の１つの実施の形態は、そのＢＰ物体フラグメントを一組のＢＰ物体フラグメント８３５に加える。そうでない場合、ＢＰ物体フラグメントは、ＭＰ物体の外部にある。通常、距離８７０の正負符号は、ＢＰ物体フラグメントがＭＰ物体の内部であるのか又は外部であるのかを示す。この正負符号は、陰関数の定義に応じて正又は負とすることができる。距離８７０が０である場合、ＢＰ物体フラグメントは、ＭＰ物体の表面上、すなわちＭＰ物体の内部にある。
【００９３】
同様に、ＢＰ物体の内部の一組のＭＰ物体フラグメント８４５が求められる(８４０)。ＭＰ物体フラグメントは、ＢＰ物体の表面上又はＢＰ物体の内側にある場合、そのＢＰ物体の内部にある。
【００９４】
ＢＰ物体の表面は明示的に表されるので、この発明の１つの実施の形態は、画像座標系８１５において上記求めること(８４０)を実行する。例えば、ＭＰ物体フラグメントの深さ８８０が画像座標系において求められ、この深さ８８０がＢＰ物体の内部の少なくとも１つの深さ範囲８８５内にある場合、そのＭＰ物体フラグメントは、一組のＭＰ物体フラグメント８４５に加えられる。
【００９５】
図１０は、画像座標系におけるＢＰ物体１００１の一例を示している。視線方向に応じて、ＢＰ物体１００１は、異なる数の内部深さ範囲を有する。例えば、視線方向１００２の場合、ＢＰ物体の内部の２つの深さ範囲、すなわち、範囲１００３及び範囲１００４がある。視線方向１０１０の場合、１つの深さ範囲１０１１しかない。
【００９６】
戻って図８を参照すると、一組のＢＰ物体フラグメント８３５及び一組のＭＰ物体フラグメント８４５は、画像７１０の少なくとも一部を形成する、画像座標系における一組のピクセル８６０に変換される(８５０)。
【００９７】
幾つかの実施の形態では、ＭＰ物体の外部のＢＰ物体フラグメントは、ブール交差のレンダリングの有無について検査されるべきであるＭＰ物体フラグメントに対応することができる。したがって、この発明の１つの実施の形態は、距離が、ＢＰ物体フラグメントがＭＰ物体の外部にあることを示している場合、そのＢＰ物体フラグメントを一組の機械加工されたＢＰ物体フラグメント８９０に加える。この実施の形態では、一組の機械加工されたＢＰ物体フラグメント内のＢＰ物体フラグメントに対応するＭＰ物体フラグメントのみが、一組のＭＰ物体フラグメント内に選択されるか否かについて検査される。ＭＰ物体フラグメントと一組の機械加工されたＢＰ物体フラグメントのうちのＢＰ物体フラグメントとの間の対応関係は、画像座標系において求めることができる。例えば、１つの実施の形態は、一組の機械加工されたＢＰ物体フラグメントのうちの上記ＢＰ物体フラグメントに対応するピクセル用の補助フレームバッファー内のピクセルフラグを設定し、そのピクセルフラグが、ＭＰ物体フラグメントとＢＰ物体フラグメントとの間の対応関係を確定するようにする。
【００９８】
幾つかの実施の形態では、レンダリング７５０は、一組の機械加工されたフラグメントのうちの上記ＢＰ物体フラグメントに対応するＢＰ物体の少なくとも１つの面が少なくとも１つの機械加工された面を生成するための面フラグを設定することによって更に高速化される。この実施の形態では、ＢＰ物体の内部の深さ範囲は、機械加工された面についてしか求められない。
【００９９】
この発明の幾つかの実施の形態は、二重ラベル付け、すなわち、ピクセルフラグ及び面フラグの双方の設定を用いる。この二重ラベル付けは、機械加工された代理物体から得られる画像内のフラグメントが存在しない可能性が確かにある面及びピクセルのスキップを可能にすることによってレンダリングを大幅に高速化する。
【０１００】
図９は、この発明の１つの実施の形態によるレンダリング工程９００のフローチャートを示している。ステップ９１０において、ＢＰ物体の表面上のＢＰ物体フラグメントが、絶対座標系において求められる。ステップ９２０において、ＭＰ物体の内部の一組のＢＰ物体フラグメントが求められ、ステップ９３０において、ＭＰ物体の外部の一組の機械加工されたＢＰ物体フラグメントが絶対座標系において求められる。ステップ９４０において、各機械加工された面が一組の機械加工されたＢＰ物体フラグメント内の少なくとも１つのＢＰ物体フラグメントに対応するように、ＢＰ物体の一組の機械加工された面が画像座標系において求められる。そして、ステップ９５０において、ＢＰ物体の内部の一組の深さ範囲が、画像座標系において求められ、少なくとも１つの深さ範囲が、少なくとも１つの機械加工された面について求められる。
【０１０１】
また、ステップ９６０において、ＭＰ物体の表面上のＭＰ物体フラグメントが絶対座標系において求められる。ステップ９７０において、一組の機械加工されたＢＰ物体フラグメント内のＢＰ物体フラグメントに対応するＭＰ物体フラグメントが、画像座標系において求められる。次に、ステップ９８０において、画像座標系における対応するＭＰ物体フラグメントの深さが、ステップ９５０において求められた一組の深さ範囲からの少なくとも１つの深さ範囲内にある場合、この対応するＭＰ物体フラグメントを一組のＭＰ物体フラグメントに加えることによって、その一組のＭＰ物体フラグメントが求められる。次に、ステップ９９０において、一組のＢＰ物体フラグメント及び一組のＭＰ物体フラグメントが、画像の少なくとも一部を形成する画像座標系における一組のピクセルに変換される。
【０１０２】
実施態様例
図１１及び図１２は、この発明の１つの実施の形態による、画像への特定のレンダリング工程のフローチャートを示しているが、レンダリング工程の限定した例を意図するものではない。画像は、画面座標系を有する表示デバイスの画面上に表示される。レンダリングは、２つのフェーズで進行する。第１のフェーズでは、ＭＰ物体の外部の絶対空間位置を有するＢＰ物体のいずれのＢＰフラグメントも画像のフレームバッファーに加えられないようにＢＰ物体がレンダリングされる。第２のフェーズでは、ＭＰ物体の外部のＢＰ物体フラグメントに対応するピクセル、すなわち、一組の機械加工されたＢＰフラグメントからのピクセルについてのみＭＰ物体のレンダリングが実行される。
【０１０３】
図１１は、レンダリングの第１のフェーズのフローチャートを示している。第１のフェーズの間、この方法は、ＢＰ物体の面の全てにわたって反復適用される(１１０１)。各面は、絶対座標系から画面座標系に投影され(１１０２)、次に、ラスター化されて(１１０３)、画像内のピクセルのロケーションに対応するフラグメントが求められる。ラスター化１１０３の間に生成された各フラグメントは、そのフラグメントの可視性を判断するためにｚバッファー検定１１０４を受ける。次に、画面座標系におけるフラグメントの座標が、絶対座標系におけるＢＰフラグメントの座標に変換されて戻される(１１０５)。ＭＰ物体の距離場の値が求められ、絶対座標系におけるＢＰフラグメントの座標について検査される(１１０６)。距離場の正負符号が、ＢＰフラグメントがＭＰ物体の内部にあることを示している場合、そのフラグメントは、ＢＰ物体及びＭＰ物体のブール交差の境界上にある。したがって、ＢＰ物体のＢＰフラグメントの色及びｚ値は、それぞれカラーバッファー及びｚバッファーに書き込まれる(１１０７)。ＭＰ物体の距離場の正負符号が、ＢＰフラグメントがＭＰ物体の外部にあることを示している場合、ＢＰフラグメントの色及びｚ値は、計算もされないし、カラーバッファー及びｚバッファーにも加えられない。
【０１０４】
しかしながら、ＢＰフラグメントがＭＰ物体の外部にあるとき、このピクセルについて表示されるべき表面がＭＰ物体に対応することが可能である。したがって、この外部のＢＰフラグメントに対応するピクセルの２つのフラグが設定される(１１０８)。具体的には、面フラグが、この外部のＢＰフラグメントを含むＢＰ物体の各面に関連付けられる。また、ピクセルフラグが、この外部のＢＰフラグメントに対応する各ピクセル用の補助フレームバッファーに設定される。ピクセルフラグは、このピクセルについて、ＭＰ物体がＢＰ物体及び当該ＭＰ物体のブール交差の境界上に存在する可能性があることを示している。双方のフラグは、レンダリングの第２のフェーズの間に用いられる。面フラグ及びピクセルフラグは、レンダリングの２つの補空間を占有する。すなわち、面フラグは物体ラベリングであり、ピクセルフラグは画像ラベリングである。この二重空間ラベリングは、ＭＰ物体から得られる画像内のフラグメントが存在しない可能性が確かにある面及びピクセルのスキップを可能にすることによってレンダリングを大幅に高速化する。
【０１０５】
レンダリングの第１のフェーズの間、実施の形態は、正しい遮蔽を得るために、外部のＢＰフラグメントのｚ値も補助ｚバッファーに少なくとも一時的に格納する。例えば、ＢＰ物体の種々の面のラスター化１１０３は、画像の同じピクセルに対応するＢＰフラグメントを生成することができる。これらのＢＰフラグメントの必ずしも全てではない幾つかは、ＭＰ物体の外部である場合がある。しかしながら、早期にラスター化された面は、所与のピクセルについては外部のＢＰフラグメントを含む場合がある。この結果、そのピクセルのピクセルフラグが設定される。後にラスター化された面のＢＰフラグメントは、それより前にラスター化された面のＢＰフラグメントを無効にする場合があり、したがって、そのピクセルのピクセルフラグはクリアされなければならない。
【０１０６】
例えば、図１３を参照すると、面１３１０は、面１３１１よりも前にレンダリングされ、矢印１３１２によって示される方向から見ると、ＢＰフラグメント１３１３が生成される。しかしながら、ＢＰフラグメント１３１３は、外側が点描パターンによって示されているＭＰ物体１３１４の外側にある。したがって、ＢＰフラグメント１３１３は、ＢＰ物体及びＭＰ物体のブール交差の外側にあり、画像に寄与しない。
【０１０７】
ＢＰフラグメント１３１５は、面１３１１から生成され、ＭＰ物体１３１４の内部にあり、また、ＢＰフラグメント１３１３よりも小さなｚを有し、そのため、このフラグメントは可視であり、フレームバッファーに加えられる。
【０１０８】
補助ｚバッファーは、面１３１１の場合と面１３１６の場合とを区別するのに用いられる。面１３１６のラスター化は、フラグメント１３１７を生成する。このフラグメントも、ＢＰフラグメント１３１３と同様にＭＰ物体の内部にあり、したがって、潜在的に可視である。しかしながら、フラグメント１３１５の場合、ＭＰ物体は面１３１１によって遮蔽されているので、ＭＰ物体のフラグメントが可視である可能性はない。しかしながら、ＭＰ物体は、面１３１６を遮蔽するピクセルに寄与することは依然として可能である。
【０１０９】
図１１及び図１３の双方を参照すると、外部のＢＰフラグメント１３１３のｚ値は、補助ｚバッファーに格納された値に対してｚ検定される(１１０９)。ＢＰフラグメントのｚ値が格納された値よりも小さい場合、ＢＰフラグメント１３１３のｚ値は、格納されたｚ値に取って代わる(１１１０)。次の内部のＢＰフラグメント１３１５が補助ｚバッファー内の値に対してｚ検定される(１１１１)。フラグメント１３１５のｚ値が、例えばＢＰフラグメント１３１３の格納されたｚ値よりも小さい場合、フラグメント１３１５のｚ値は、標準的なｚバッファー及び補助ｚバッファーの双方に格納され、ＢＰフラグメント１３１５の色が求められ、カラーバッファーに格納され、ピクセルフラグはクリアされる(１３１２)。
【０１１０】
代替的に、ＢＰフラグメント１３１７等の次の内部のＢＰフラグメントが、補助ｚバッファー内の値に対してｚ検定される(１１１１)。この補助ｚバッファーは、この例では、フラグメント１３１３のｚ値を有する。フラグメント１３１７のｚ値は、補助ｚバッファー内のｚ値よりも大きいので、フラグメント１３１７のｚ値は、標準的なｚバッファーにのみ格納され、フラグメント１３１７の色が求められ、カラーバッファーに格納される。フラグメント１３１７のｚ値は、補助ｚバッファーには書き込まれず、ピクセルフラグはクリアされない。１つの実施の形態では、レンダリングの第１のフェーズが完了した後、二次ｚバッファーの値は廃棄される。
【０１１１】
ＢＰ物体及びＭＰ物体のレンダリングの第２のフェーズの間、幾つかの実施の形態は、ＢＰ物体の内部にあるｚ値の範囲(以下、ＢＰ物体の内部の深さ範囲と呼ぶ)を求める。ＭＰ物体のレンダリングは、ピクセルフラグが設定されているピクセルについて実行される。或るピクセルについてのＭＰ物体のＭＰフラグメントのｚ値が、ＢＰ物体の内部の少なくとも１つの深さ範囲内にある場合、そのＭＰフラグメントは、そのＢＰ物体及びそのＭＰ物体のブール交差の境界上にあり、そのＭＰフラグメントの色が求められ、カラーバッファーに格納される。
【０１１２】
図１０に示すように、ＢＰ物体１００１の形状及び視線方向に応じて、ＢＰ物体１００１は、１つ又は複数の深さ範囲を有することができる。例えば、視線方向１００２から見ると、ＢＰ物体の内部の２つの深さ範囲、すなわち、深さ範囲１００３及び深さ範囲１００４があり、本明細書では一般的に一組の深さ範囲と呼ばれる。面フラグを有する各面及びピクセルフラグを有するその面上の各ピクセルについて、ＢＰ物体の内部の一組の深さ範囲を形成する深さ範囲が求められる。例えば、深さ範囲１００３及び１００４について、１つの実施の形態は、４つのｚ値、すなわち、範囲１００３の入口(enter)についての第１のｚ値と、範囲１００３の出口についての第２の値と、範囲１００４の入口についての第３の値と、範囲１００４の出口についての第４の値とを格納する。
【０１１３】
ピクセルごとに格納しなければならないｚ値の数は、深さ範囲の数の２倍に等しい。しかしながら、ＢＰ物体は、櫛の歯のような複数の細いセグメントを含む可能性があり、そのため、幾つかの視線方向については、深さ範囲の数が非常に多くなる。そのような状況では、全てのｚ値を格納するメモリ所要量が、法外に大きくなる可能性があり、予測することができない。
【０１１４】
したがって、この発明の１つの実施の形態は、前側から後側への順(front-to-back order)に一時に１回、ＢＰ物体の深さ範囲を処理するマルチパス(multi-pass)方法を用いる。この方法は、標準的なｚバッファーに加えて４つの追加のｚバッファーを必要とする。一対の余分のｚバッファーが、現在の深さ範囲のエントリー及び出口のｚ値を格納し、第２の一対の余分のｚバッファーが、以前の深さ範囲のエントリー及び出口のｚ値を格納する。この方法は、現在のエントリーのｚ値が以前の出口のｚ値よりも大きいことを要件とすることによって前側から後側の順に深さ範囲にわたって反復適用される。
【０１１５】
加えて、現在の出口のｚ値は、現在のエントリーのｚ値よりも大きくなければならない。しかしながら、これは、許容できないトポロジー的な曖昧さを回避するために出口のｚ値が次のエントリーのｚ値の前に常に存在するという整形式(well formed)の境界表現の本質的な特徴である。以下では、これらの４つの追加のｚバッファーを、前ｚフロント、前ｚバック、現ｚフロント、及び現ｚバックと呼ぶ。
【０１１６】
図１２を参照すると、初期化ステップの間、前ｚフロントバッファー及び現ｚフロントバッファー内のあらゆるピクセルの値が０．０に設定され(１２０１)、前ｚバックバッファー及び現ｚバックバッファー内のあらゆるピクセルの値が１．０に設定される(１２０２)。次に、この方法は、ＢＰ物体の面にわたって反復適用され(１２０３)、面フラグが設定されている(１２０４)ＢＰ物体の各面が、画面座標系に投影され(１２０５)、ラスター化される(１２０６)。
【０１１７】
面のラスター化は、ピクセルフラグが設定されていない(１２０７)全てのピクセルにわたってスキップされる。ピクセルフラグが設定されているＢＰ物体の面の各ＢＰフラグメントについて、ｚ検定が実行されて(１２０８)、ＢＰフラグメントがフレームバッファー内のピクセルによって遮蔽されているか否かが判断される。ＢＰフラグメントが標準的なｚバッファー内の値よりも大きなｚ値を有する場合、ＢＰフラグメントは遮蔽されており、追加の処理を必要としない。その面に関連付けられたＢＰフラグメントの全てが遮蔽されている場合、面フラグはクリアされ、その面は再び処理されることはない。
【０１１８】
次に、面の法線ベクトルが、面の２つの辺に沿った一対のベクトルのクロス積から求められる。この法線ベクトルは、視野行列を用いて変換され、視線方向と面の法線ベクトルとの間のベクトルドット積が計算されて、面の向き、すなわち、面が前側を向いているのか又は後側を向いているのかが判断される(１２０９)。ドット積が正である場合、その面は、視線方向から離れる方に向けられ、後向き面であり、そうでない場合、その面は前向きである。前向き面の各ＢＰフラグメントのｚ値は、前ｚフロントバッファー及び現ｚフロントバッファーの双方の値と比較される(１２１０)。ＢＰフラグメントのｚ値が、前ｚフロントバッファーの値よりも大きくかつ現ｚフロントバッファーの値よりも小さい場合、そのｚ値は、現ｚフロントバッファーに格納される(１２１１)。前側面の全てのフラグメントが、前ｚフロントバッファーの値以下のｚ値を有する場合、面フラグはクリアされ、その面は再び処理されることはない。
【０１１９】
各後向きフラグメントのｚ値は、前ｚバックバッファー及び現ｚバックバッファーの双方のｚ値と比較される。そのフラグメントのｚ値が前ｚバックバッファーの値よりも大きくかつ現ｚバックバッファーの値よりも小さい場合、ＢＰフラグメントのｚ値は、現ｚバックバッファーに格納される(１２１３)。後向き面の全てのフラグメントが、前ｚバック値の値以下のｚ値を有する場合、その面の面フラグはクリアされ、その面は再び処理されることはない。
【０１２０】
一組の深さ範囲が、ピクセルフラグが設定されている全てのピクセルについて求められた後、ＭＰ物体のレンダリングが、それらのピクセルについて実行され、その結果、ＭＰ物体からＭＰフラグメントが得られる。レンダリングは、補助フレームバッファー内のピクセルにわたって反復適用され(１２１４)、ピクセルフラグが設定されている(１２１５)各ピクセルについて、光線とＭＰ物体との交差が計算され(１２１６)、その結果、ＭＰ物体の一組のＭＰフラグメントが得られる。ＭＰ物体の各ＭＰフラグメントは、内側間隔に対してｚ検定される(１２１７)。ＭＰフラグメントのｚ値が深さ範囲内にある場合、すなわち、そのフラグメントのｚ値が現ｚフロントバッファー内のｚ値よりも大きくかつ現ｚバックバッファー内のｚ値よりも小さい場合、ＭＰフラグメントは、ＢＰ物体及びＭＰ物体のブール交差の境界にある。したがって、ＭＰフラグメントの色が計算され、ＭＰフラグメントの色及びｚ値が、それぞれカラーバッファー及び標準的なｚバッファーに格納され(１２１８)、ピクセルフラグはクリアされる(１２１９)。補助バッファー内のピクセルフラグの全てがクリアされた場合、画像のレンダリングは完了する。
【０１２１】
一方、ＭＰ物体がレンダリングされた後、補助バッファー内に依然として設定されているピクセルフラグがある場合、現ｚフロントバッファー及び現ｚバックバッファー内のｚ値が、それぞれ前ｚフロントバッファー及び前ｚバックバッファーにコピーされ、現ｚフロントバッファー及び現ｚバックバッファーは、ＢＰ物体の内部の次の深さ範囲を求める際の使用に備えて１．０に設定される。ＭＰ物体のレンダリングとともにその後に連続的に深さ範囲を求めるこの工程は、設定されたピクセルフラグがなくなるまで繰り返される(１２２０)。
【０１２２】
図１４は、この発明の幾つかの実施の形態によるコンピューターシステムの概略図を示している。一組の機械加工命令１４０１が、ネットワークによってファイルとして、ＣＤ若しくはＤＶＤから、又は当該技術分野において知られている他の或る手段によってＮＣ機械加工コントローラー１４０２に与えられる。コントローラー１４０２は、プロセッサ１４０３と、メモリ１４０４と、機械の動作を表示するためのディスプレイ１４０５とを備える。プロセッサ上では、機械加工シミュレーター１４０６が動作している。この機械加工シミュレーターは、フライス加工命令１００１を受信しており、この発明の方法１４５０を用いて、シミュレートされる工作物の画像１４０７をディスプレイ１４０５上に生成する。
【０１２３】
そのようなコンピューターは、ローカルエリアネットワーク又はワイドエリアネットワークとしてエンタープライズネットワーク又はインターネット等を含む１つ又は複数のネットワークによって任意の適した形態で相互接続することができる。そのようなネットワークは、任意の適した技術に基づくことができ、任意の適したプロトコルに従って動作することができ、無線ネットワーク、有線ネットワーク又は光ファイバーネットワークを含むことができる。
【０１２４】
また、本明細書において概説される様々な方法又はプロセスは、様々なオペレーティングシステム又はプラットフォームのうちの任意のものを用いる１つ又は複数のプロセッサ上で実行可能なソフトウェアとしてコーディングすることができる。加えて、そのようなソフトウェアは、複数の適切なプログラミング言語及び／又はプログラミングツール若しくはスクリプティングツールのうちの任意のものを用いて書くことができ、フレームワーク又は仮想マシン上で実行される実行可能な機械語コード又は中間コードとしてコンパイルすることもできる。
【０１２５】
これに関して、この発明は、単数又は複数のコンピューター可読記憶媒体、例えばコンピューターメモリ、コンパクトディスク(ＣＤ)、光ディスク、デジタルビデオディスク(ＤＶＤ)、磁気テープ、及びフラッシュメモリとして実現することができる。代替的に又は加えて、この発明は、伝搬信号等の、コンピューター可読記憶媒体以外のコンピューター可読媒体として具現化することができる。
【０１２６】
「プログラム」又は「ソフトウェア」という用語は、本明細書において、一般的な意味で、上記で論考したようなこの発明の様々な態様を実施するようにコンピューター又は他のプロセッサをプログラムするのに用いることができる任意のタイプのコンピューターコード又はコンピューター実行可能命令のセットを指すように用いられる。
【０１２７】
コンピューター実行可能命令は、１つ若しくは複数のコンピューター又は他のデバイスによって実行された、プログラムモジュール等の多くの形式をとることができる。一般に、プログラムモジュールは、特定のタスクを実行するか又は特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造を含む。通常、プログラムモジュールの機能は、様々な実施の形態において所望に応じて組み合わせることも分散させることもできる。
【０１２８】
また、この発明の実施の形態は、例が提供された方法として実施することができる。この方法の一部として実行される動作は、任意の適切な方法で順序付けすることができる。したがって、動作が示したものと異なる順序で実行される実施の形態を構築することができ、これには、例示の実施の形態では一連の動作として示されたにもかかわらず、幾つかの動作を同時に実行することを含めることもできる。
【０１２９】
この発明の実施の形態は、方法、装置(システム)、及びコンピュータープログラム製品のフローチャート図及び／又はブロック図を参照して説明されている。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図内のブロックの組み合わせは、コンピュータープログラム命令によって実施することができることが理解されよう。これらのコンピュータープログラム命令を汎用コンピューター、専用コンピューター、又は他のプログラマブルデータ処理装置のプロセッサに与えて、コンピューター又は他のプログラマブルデータ処理装置のプロセッサを介して実行されるそれらの命令が、フローチャート及び／又はブロック図の単数又は複数のブロックにおいて指定された機能／動作を実施するための手段を生み出すような機械を作り出すことができる。
【０１３０】
上記コンピュータープログラム命令をコンピューター又は他のプログラマブルデータ処理装置にロードして、一連の動作ステップをコンピューター又は他のプログラマブル装置において実行させ、コンピューター又は他のプログラマブル装置において実行される命令が、フローチャート及び／又はブロック図の単数又は複数のブロックにおいて指定された機能／動作を実施するためのステップを与えるようなコンピューター実施される工程を生み出すこともできる。
【０１３１】
発明の効果
この発明の実施の形態は、物体を機械加工することをシミュレートするためのシステム、コンピューター製品、及び方法を記載している。実施の形態は、モデルそれ自体を変更するなく、物体のモデルの機械加工シミュレーションを可能にする。さらに、物体のモデルの代わりに、機械加工される代理物体を導入することによって、実施の形態は、１つのタイプの表面表現を有する物体の機械加工シミュレーションを、別のタイプの表面表現を有する一組の掃引容積を用いて可能にする。
【０１３２】
産業上の利用可能性
この発明のシステム及び方法並びにコンピュータープログラム製品は、多くの種類の分野に適用可能である。
【図１Ａ】
0005726368.tif 000002
【図１Ｂ】
0005726368.tif 000003
【図２Ａ】
0005726368.tif 000004
【図２Ｂ】
0005726368.tif 000005
【図２Ｃ】
0005726368.tif 000006
【図３】
0005726368.tif 000007
【図４】
0005726368.tif 000008
【図５】
0005726368.tif 000009
【図６Ａ】
0005726368.tif 000010
【図６Ｂ】
0005726368.tif 000011
【図６Ｃ】
0005726368.tif 000012
【図７】
0005726368.tif 000013
【図８】
0005726368.tif 000014
【図９】
0005726368.tif 000015
【図１０】
0005726368.tif 000016
【図１１】
0005726368.tif 000017
【図１２】
0005726368.tif 000018
【図１３】
0005726368.tif 000019
【図１４】
0005726368.tif 000020