JP2014510975A - 工具の動きによる物体の機械加工をシミュレートするための方法並びにそのシステム及びコンピュータープログラム製品 - Google Patents

工具の動きによる物体の機械加工をシミュレートするための方法並びにそのシステム及びコンピュータープログラム製品 Download PDF

Info

Publication number
JP2014510975A
JP2014510975A JP2014501950A JP2014501950A JP2014510975A JP 2014510975 A JP2014510975 A JP 2014510975A JP 2014501950 A JP2014501950 A JP 2014501950A JP 2014501950 A JP2014501950 A JP 2014501950A JP 2014510975 A JP2014510975 A JP 2014510975A
Authority
JP
Japan
Prior art keywords
fragment
fragments
machined
coordinate system
determining
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014501950A
Other languages
English (en)
Other versions
JP5726368B2 (ja
Inventor
サリバン、アラン
マヌキャン、リアナ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JP2014510975A publication Critical patent/JP2014510975A/ja
Application granted granted Critical
Publication of JP5726368B2 publication Critical patent/JP5726368B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/406Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
    • G05B19/4069Simulating machining process on screen
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4097Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by using design data to control NC machines, e.g. CAD/CAM
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Processing Or Creating Images (AREA)
  • Numerical Control (AREA)

Abstract

工具の動きによる物体の機械加工のコンピューターシミュレーションが記載されている。物体は、境界表現(BP)物体によって表され、BP物体は、物体の表面の境界表現を含み、動きは、一組の掃引容積によって表され、一組の掃引容積は、当該一組の掃引容積の表面を規定する第1の一組の陰関数を含む。シミュレーションは、第2の一組の陰関数が代理物体の表面を規定する当該代理物体を確定することと、代理物体の機械加工を、一組の掃引容積を用いてシミュレートして、第3の一組の陰関数が機械加工された代理(MP)物体の表面を規定する当該MP物体を生成することと、MP物体とBP物体との間のブール交差の画像をレンダリングすることとを含む。

Description

この発明は、包括的には、機械加工をシミュレートすることに関し、より詳細には、ブール交差(Boolean intersection)を用いて物体を機械加工することをシミュレートするためのシステム及び方法に関する。
数値制御機械加工
数値制御(NC)機械加工、例えば、旋削、穿孔、ドリル加工、ブローチ加工、のこ引き、成形、リーマ仕上げ、フライス加工、タッピング、研削をシミュレートすることは、コンピューター支援設計(CAD)及びコンピューター支援製造(CAM)において重要である。シミュレーション中、物体、例えば工作物のモデルが、工具、例えばNCフライス加工工具のコンピューター表現と、機械加工工程をシミュレートする一組の動きとを用いて編集される。
シミュレーションは、物体のモデル及び工具の表現を表示デバイス上に可視化して、工作物及び工具ホルダー等の部材間の潜在的な衝突を検出し、物体の最終的な形状を検証する。
物体の最終的な形状には、工具及び動きの選択によって影響が及ぼされる。これらの動きを制御するための命令が通常は、コンピューター支援製造システムを用いて、物体の所望の最終的な形状のグラフィック表現から生成される。それらの動きは通常、準備コード(preparatory code)又はGコードとしても知られている、数値制御プログラミング言語を用いて実現される。標準規格RS274D及びDIN 66025/ISO 6983を参照されたい。
コンピューター支援製造システムによって生成されるGコードは、所望の最終的な形状の正確な複製物の製造に失敗する場合がある。さらに、工具及び/又は物体の動きは、NC機械加工システムのモーターによって支配されるが、その速度、動きの範囲、並びに加速及び減速能力は限られている。したがって、実際の動きは、NC機械加工命令に厳密には従わない場合がある。
物体の実際の最終的な形状と、物体の所望の最終的な形状との間の不一致が小さく、観測することが難しい場合がある。状況によっては、これらの不一致の結果として、物体の最終的な形状の表面に、サイズが概ね数マイクロメートルの深さ及び幅、数十マイクロメートルの長さを有する望ましくない溝状の傷(gouge)又は欠け目(nick)が生じる。
通常、所望の部材を機械加工する前に、例えばより軟質で安価な材料から形成される試験物体を機械加工することによって、1組のNC機械加工命令が試験される。その試験工作物の目視検査によって、試験工作物において望ましくない不一致が見つかった場合には、それに応じて、NC機械加工命令を変更することができる。
しかしながら、この手動試験は時間及びコストがかかる。単一の試験工作物を加工するための時間は概ね数時間かかる場合があり、許容できる1組のNC機械加工命令が得られるまでに、何度か繰り返すことが必要な場合がある。したがって、コンピューターに基づくシミュレーション及びレンダリングを用いて、これらの不一致を試験することが望ましい。
工具
図1Aは、NC機械加工において用いられる一組の一般的な工具102、104、106、及び108を示している。工具が工作物110に対して移動されるとき、その工具は、工作物から材料を切り出す。ここで、工具102、104、106、及び108は、表面112、114、116、及び118に対応する「掃引容積」と一般に呼ばれる材料を工作物から除去する。各工具によって除去される材料の形状は、工具の形状及び工作物に対する工具の経路によって決まる。
掃引容積
機械加工中、工具は、この工具及び/又は工作物の規定された動き、すなわち、工具経路又は物体経路に従って、工作物に対して移動する。ここで、この経路は、工作物に対する工具の相対的な位置、向き、及び他の形状データについての情報を含むことができる。
工具が工具経路に沿って移動するとき、工具は掃引容積を切り出す。機械加工中に、工具が工具経路に沿って移動するとき、工具の掃引容積が交差する工作物の容積部分が除去される。この材料除去は、空間領域構成法(constructive solid geometry)(CSG)差分演算としてモデル化することができ、工作物の一部分は、この工作物からの掃引容積のCSG減算演算を用いて、この工作物から除去される。
図1Bは、経路152に沿って移動される形状150の掃引容積160を示している。経路152は、形状150の特定の点の位置を時間の関数として指定する。この経路は、この形状の向き156、157、及び158を時間の関数として指定することができる。この経路は、この形状のスケール又は形状の任意の変換も時間の関数として指定することができる。
図1Bでは、形状150の元の位置、向き、及び幾何学的配列は、この形状が経路157に沿って移動すると、形状154の最終的な位置、向き、及び幾何学的配列に変換される。
図2Aは、線形経路を示している。この線形経路では、工具202が直線204に沿って移動される。
図2Bは、円弧経路を示している。この円弧経路では、工具202の先端210が円弧212に沿って移動され、工具の元の軸方向214がこの経路の終端で最終的な軸方向216に変換される。
図2Cは、曲線経路を示している。この曲線経路では、工具202の先端210が曲線220に沿って移動される
他の可能な経路形態には、数例を挙げると、工具を或る点に位置決めすること、ポリラインとして知られている一連の線に沿って工具を移動させること、渦巻き状又は螺旋状の曲線に沿って工具を移動させること、二次ベジェ曲線若しくは三次ベジェ曲線、又は区分的多項式曲線として知られている一連の多項式曲線等の多項式曲線に沿って工具を移動させることが含まれる。工作物の形状又は材料組成によって影響を受ける経路等の、手順によって規定される経路を含めて、シミュレートすることができる任意の形態の経路を考慮することができる。
距離場
物体の距離場d(p)は、空間内の点pにおける値がpから物体の表面までの距離であるスカラー場である。多くの可能な距離場が従来技術において知られているが、最も一般的なものは、pにおける距離場の値がpから物体の表面までの最小直線距離であるユークリッド距離場である。加えて、距離場は、物体の外側、内側、及び境界を区別するために正負の符号を付けることができ、例えば、d(p)>0は内側であり、d(p)<0、d(p)=0は表面である。
また、pにおける距離場の勾配ベクトルは、最小距離の方向を指し、物体の表面において、正規化された勾配ベクトルは、表面の法線ベクトルに等しい。距離場は、陰関数の形態であり、形状をレンダリング及び編集するための効果的な表現である。
特に関心のある空間内の点pは、距離場の値dがゼロに等しい、すなわちd=0の点である。本明細書において言及するように、距離場がゼロである点の集合、すなわち、距離場のゼロ等位面は、物体の境界、例えば、工作物の境界又は掃引容積の境界である。
適応的にサンプリングされた距離場(ADF)は、ディテール指向サンプリング(detail-directed sampling)を用いて、距離場の空間及び時間的に効率の良い表現を提供する。ADFは、八分木等の、セルからなる空間的階層構造に距離場の値サンプルを格納する。セルの空間的階層構造は、ルートセルと呼ばれる最初のノードがADFの容積全体を取り囲む木データ構造である。この空間的階層構造のセルは、この木データ構造の末端のリーフ、すなわちリーフセルの場合もあるし、より小さな子セルを含む場合もあり、そのようなセルは、中間セルと呼ばれる。空間的階層構造のリーフセルは、内部リーフセル、すなわち境界の完全に内部のリーフセルとしてラベル付けされる場合もあるし、外部リーフセル、すなわち境界の完全に外部のリーフセルとしてラベル付けされる場合もあるし、境界リーフセル、すなわち物体の境界を含むリーフセルとしてラベル付けされる場合もある。各セルは、セルのコーナーにおける頂点を容易に計算することを可能にするサイズ及び位置によって特徴付けられ、したがって、セルのバウンディングボックスが定義される。
空間的階層構造内の各セルには、親セル及びあらゆる子セルの双方のメモリ又はテーブル内のアドレス又はインデックスが関連付けられる。これによって、セルの空間的階層構造の一般的記述が家族木としてもたらされ、セルは、そのセルの親セル及び祖父セルを通ってルートセルに逆戻りして到達する祖先を有し、セルは、リーフセルに達するまで子セル及び孫セル等の子孫セルを有する場合がある。
セルの空間的階層構造内の情報へのアクセスは、通例、情報クエリがルートセルを起点とし、その後、或る条件に応じて、木データ構造の特定の分岐、すなわち子セルを選ぶことによって子孫セルに再帰(recurse)、すなわち分岐する再帰方法を通じて得られる。例えば、空間内の特定の点を含むリーフセルを見つける方法が、ルートセルから開始して、その後、その点を含むリーフセルに達するまで、その点を含む各子孫セルの子セルに再帰する。
セルの空間的階層構造内の各セルは、距離データと、そのセルに関連付けられた距離場の部分を再構成するための再構成方法とを含むことができる。距離データは、距離場の値、並びにセル内の一組の点、例えば、セルのバウンディングボックスの頂点における距離場の勾配及び偏導関数を含むことができる。セル内の任意の点における距離場は、必要に応じてメモリ要件及び計算要件を削減するために距離データから再構成することができる。
ADFは、CSG演算を用いて機械加工をシミュレートするのに用いることができる。機械加工される工作物及び工具は、ADFとして表すことができる。シミュレートされる機械加工工程は、例えば工作物のADFを変更することによって明示的に、シミュレートされる工作物のADFを生成することができる。この場合、セルに関連付けられた距離データは、シミュレートされる機械加工によって変更することができるが、再構成方法は、不変のままとすることができる。
代替的に、シミュレートされる工作物を複合ADFとして暗黙的に表すことができる。上述した従来のADFと異なり、複合ADFは、距離場の値サンプルを各セル内に格納しない。その代わり、複合ADFは、セルの空間的階層構造内に、セル内の任意の点における距離場の正確な値を解析的又は数値的な手段によって計算するのに必要な各セル用の一組のパラメーターを格納する。格納されるパラメーターは、例えば、工具のタイプ、形状、及び関連寸法を配列する機械加工工具のアレイ内への一組のインデックスを含むことができる。加えて、格納されるパラメーターは、例えば、動きのタイプ、動きの開始点及び終了点、並びに他の任意の有用な情報を与える動きのアレイ内への一組のインデックスを含むことができる。加えて、格納されるパラメーターは、例えば、機械加工シミュレーションのためのCSG減算等の、距離場を合成するのに用いられる演算子を含むことができる。これらのパラメーターは、セル内の掃引容積距離場を計算又は再構成するのに合成して用いることができる再構成関数を求めるのに用いることができる。掃引容積距離場は、機械加工工具を経路に沿って移動させることによって生成される掃引容積を表すように定義され、その移動において、掃引容積距離場は、掃引容積再構成方法に従って連続的に定義される。この掃引容積再構成方法は、サンプル点における掃引容積距離場を再構成することができる。
図3は、作業空間の容積の一部を表すセル、例えば、301、302及び303の空間的階層構造と、境界が示されている距離場とを含む2D複合ADF300を示している。この例では、距離場の境界304〜307は、最初の工作物の境界を規定した平面である。距離場308〜310は、ボールエンド工具106の掃引を表す3つの距離場の境界である。複合ADF内の各セルは、元の工作物及び工具の掃引容積を表す一組の距離場のサブセットに関連付けられている。例えば、セル311に関連付けられた一組の距離場のサブセットは、セル311内の複合ADF表面をともに決定する距離場304、308、及び309を含む。また、セルには、一組の距離場のサブセットを合成して工作物の複合距離場を再構成するためのCSG差分等の手続き型再構成方法が関連付けられている。複合表面は、元の工作物距離場及び掃引された工具距離場の境界のパッチを含む工作物のシミュレートされた境界となるように規定される。
各セル用の格納される距離場パラメーターは、シミュレーションにおける全ての距離場の参照子又はセル内の境界の一部分を有する全ての距離場ではなく、機械加工された工作物の複合境界を実際に形成する距離場の参照子のみを含むことが好ましい。これによって、幾何演算、例えばレンダリングを実行するのに必要な計算数を最小にすることができる。
複合ADFのレンダリング
複合ADFのレンダリングは、幾つかの方法と、全ての3Dコンピューターグラフィックスに共通の術語を用いる。3D物体の画像へのレンダリングは、変換行列によって関係付けられる複数の座標系を要する。図4に示すように、その原点及び向きが軸線402によって示される複合ADF401は、その原点及び向きが軸線403によって与えられる同種の絶対空間座標系(以下、絶対空間)内に規定することができる。絶対空間座標は、多くに場合、ミリメートル又はマイル等の実際の寸法を用い、ADF行列と呼ばれる4×4行列を用いて、ADF座標を絶対空間座標にマッピングすることができる。絶対空間座標に対する或る位置及び向きにある仮想カメラ404は、その原点及び向きが軸線405によって与えられる視点空間座標系を規定する。絶対空間内の点の座標は、4×4視野行列(viewing matrix)を用いて視点空間に変換することができる。
このカメラには、カメラが見ることができる絶対空間の部分の範囲を定める視錐台(viewing frustum)406が関連付けられている。カメラモデルが、透視投影を用いて、遠い物体ほど近くの物体よりも小さく見えるという日常的体験を再現する場合、視錐台は、角錐台406の形状となる。この錐台の頂角は、カメラの視野によって決まる。視錐台の形状が長方形である正射投影等の代替的な投影変換がある。
4×4投影行列は、視点空間座標からクリップ空間座標に変換するのに用いることができる。視錐台の最小の深さ407及び最大の深さ408は、従来から、それぞれ近接クリッピング平面及び遠方クリッピング平面として知られている。
視錐台内の3D物体の全ては、レンダリングされる画像409に可視化することができる。クリップ空間から画面空間への変換は、画像の原点、並びにピクセルの単位による画像の幅及び高さを規定するビューポート行列によって求められる。画像409は、各画像ピクセルに関連付けられた様々な値のストレージを有するフレームバッファーとして知られている幾つかのメモリアレイを含むことができる。これらのうちの最も不可欠なものは、各ピクセルの赤色成分、緑色成分、及び青色成分、並びに場合によっては透明度又はアルファを保持するカラーバッファーである。画像のレンダリングに先立って、カラーバッファーは、通例、選ばれた背景色、例えば黒にクリアされて、バッファーの以前の使用に関連したあらゆる色値が除去される。
一般に用いられる別のバッファーは、近接クリッピング平面における物体が0.0の深さを有し、遠方クリッピング平面における物体が1.0の深さを有し、例えば、深さが範囲[0,1]に正規化されているような、画面空間内の各ピクセルに関連付けられた深さを保持するzバッファーである。深さバッファーの機能は、後述するように、レンダリングされる画像において正しい遮蔽を可能にすることである。画像のレンダリングに先立って、zバッファーは、通例、或る大きな深さ値、通常は1.0にクリアされる。
複合ADFの画像としてのレンダリングは、複数の方法、例えば図4に2Dで概略的に示されているような物体順(object-order)レイキャスティング又は画像順(image-order)レイキャスティングによって実行することができる。例えば、画像順レイキャスティング方法の間、光線は、画像の各ピクセルから計算によって放射され、それらの光線が複合ADFの境界を横切るか又は視錐台の遠方クリッピング平面に達するまで、視錐台の中を伝搬される。光線は、3D空間内の光線の位置がR(t)=R+Rtによって規定されるような時間的(time-like)座標tを有するパラメトリック線と等価なものとすることができる。ここで、Rは光線の起点であり、Rは光線の方向ベクトルである。光線は、当該光線が横切る最小のtを有する最も近いセルを最初に見つけることによって複合ADFの中を伝搬される。最も近いセルが中間セルである場合、光線が最も近いリーフセルを横切るまで、その中間セルの子セルに光線が横切るかどうかが再帰的に検査される。リーフセルが境界リーフセルでない場合、そのセルは、複合ADFの境界を含まない。次に、この方法は、光線に沿って次のリーフセルを捜す。
一例として、光線411は、どのセルも横切ることなく視錐台の中を伝搬する。したがって、光線411に対応するピクセルは、背景色に設定されたままである。光線412は、空間的階層構造のルートセルを横切る。この例では、このルートセルは中間セルであり、全てが直接の子である。結局、再帰は、外部リーフセルであるセル425に達する。次に、この方法は、光線412に沿って次のセルを探索する。この例では、他のセルは存在せず、そのため、光線412に対応するピクセルは背景色を有するままである。
次に、画面ピクセル414に関連付けられた光線413を考える。光線413は、幾つかの中間リーフセル及び外部リーフセルを横切った後、境界リーフセルであるとともに図4の挿入図に拡大して示されているセル415を横切る。セル415は、距離場416、417、及び418の境界を含む。416は、元の工作物表面を表す平面の距離場であり、417及び418は、ボールエンド工具106の2回の掃引に対応する距離場の境界である。光線がセル内の複合ADFの境界を横切るか否かを判断する工程は、その光線がそのセルの前側境界面419及びそのセルの後側境界面420をそれぞれ横切る光線座標tfront及びtbackを最初に求めることを伴うことができる。tfront>tbackである場合、その光線はセルを外れており、次の光線が処理される。
セルを横切る光線について、画像順レイキャスティングの第2のステップは、交点421、422、及び423を求めることによって開始することができる。例えば、光線413は、セル415にそれぞれ関連付けられた距離場418、416及び417の境界を横切る。シミュレーションの減算性(subtractive nature)に起因して、点pは、複合ADFの表面上にしか存在しない。点pは、1つの距離場の境界上にあり、それ以外の全ての距離場の内側にある。すなわち、i,j∈[0,N),i≠jについて、d(p)=0である場合に限り、d(p)>0である。ここで、Nは、セル内の距離場境界の数である。したがって、距離場416〜418の値は、交点421〜423について求めることができ、上記条件を満たす光線パラメーターtの最小値を有する点が、その光線の複合ADF表面点である。この例では、点423が条件を満たし、3Dコンピューターグラフィックスの術語ではピクセルフラグメントとして知られている。
ピクセルフラグメント、例えば点423が求められた後、表面の法線ベクトルが距離場の勾配から計算される。光線に関連付けられたピクセルの色及び明度は、通例、表面法線ベクトルと照明ベクトル(lighting vector)とのドット積及び光の色を考慮に入れる照明モデル、例えばフォーン(Phong)又はブリン(Blinn)を用いることによって変更される、表面の材料特性、例えば材料の光沢に周囲の色、拡散色、及び鏡面反射色を加えたものから求められる。通常、フォーン照明はプラスチックに用いられ、ブリン照明は金属に用いられる。最後に、フラグメントの色及びz値は、それぞれカラーバッファー及びzバッファーに書き込まれる。
ADF又は複合ADFのフラグメントの座標は、通例、画面座標系又は画像座標系において処理される。しかしながら、当業者であれば、ビューポート行列、投影行列、及び視野変換行列の数学的逆行列を利用する逆変換によってフラグメントの座標を画面空間から絶対空間に変換して戻すことができることを容易に認識するであろう。絶対座標系におけるフラグメントの座標は、絶対座標系におけるADFの表面に対応する。
境界表現
複合ADFは、立体の物体の唯一の可能な表現ではない。ほとんどのCADソフトウェアにおいて用いられる最も一般的な表現は、境界表現、すなわちB−repである。b−repは、結合したものが物体の境界を表す一組の重なっていない(non-lapping)面による物体の表現である。境界表現は、接続性、並びに頂点、辺、及び面の向きのトポロジー的記述と、これらの表面要素を空間内に組み込むための幾何学的記述との2つの部分を有する。コンピューターグラフィックスにおいて一般に用いられる三角形メッシュが、境界表現の一例である。三角形メッシュでは、各面は、3つの頂点を接続する3つの辺によって境界が定められた三角形である。絶対空間における三角形メッシュの全ての頂点の位置を含むテーブルが、境界表現の幾何学的記述を与え、各エントリーが、三角形メッシュの三角形を形成する3つの頂点のインデックスである第2のテーブルが、境界表現のトポロジー的記述を与える。
境界表現は、閉じている必要がある。すなわち、境界表現は、間隙も孔も有してはならない。加えて、b−repは、トポロジー(形態)的に正しくなければならない。すなわち、b−repは、閉じた表面を形成するために、他の辺にも面にも接合していない宙に浮いた辺も面も有してならない。
図5は、四面体の一例示の従来の境界表現を示している。この四面体は、以下のような4つの頂点、6つの辺、及び4つの三角面によって記述することができる。頂点は、501、502、503、及び504であり、辺511は、端頂点501及び502を有する直線であり、辺512は、端頂点502及び503を有する直線であり、辺512は、端頂点502及び503を有する直線であり、辺513は、端頂点503及び504を有する直線であり、辺514は、端頂点501及び504を有する直線であり、辺515は、端頂点502及び504を有する直線であり、面520は、辺512、513、515によって境界が定められた三角形であり、面521は、辺511、515、514によって境界が定められた三角形であり、面522は、辺511、516、512によって境界が定められた三角形であり、面523は、辺513、516、514によって境界が定められた三角形である。
この境界表現は、物体の境界表面を明示的に格納する。しかしながら、物体の内部に向いている面の側部が、面の頂点の順序付けによって暗黙的に決まる。この例では、一般的な右手順が用いられ、右手の指が頂点の順序付けの方向に向けられ、親指が面の外方向を指し示す。空間内の点が境界表現の内部にあるのか又は外部にあるのかを判断するための方法は、光線をその点から放ち、光線が、境界表現の外側であることが保証されるほど十分に大きな或る長距離に達する前に横切る面の数をカウントすることである。横切る面の数が偶数である場合、その点は境界表現の外側であり、そうでない場合、その点は内側である。
境界表現は、直線の辺及び平坦な面に限定されるものではない。境界表現は、例えば、それぞれ三次Bスプライン及び三次ベジェパッチ等のパラメトリック曲線及びパラメトリック面も含むことができる。これらの高次曲線及び高次面によって、自由な形態の境界を有する立体をコンパクトな方法で表すことが可能になる。
境界表現のレンダリングは、OpenGL等のグラフィックスアプリケーションプログラミングインターフェース(API)を用いて3Dグラフィックスハードウェアによって実行することができ、複合ADFをレンダリングすることに関連して上述したものと同じ座標系及び変換を伴う。境界表現の各面は、物体順の形式で別々にレンダリングされる。
レンダリングの間、境界の各面は、グラフィックスAPIに渡すことができる1つ又は複数の平坦なポリゴンに変換することができる。グラフィックスプロセッサは、ポリゴン頂点の位置を、視野変換行列との乗算によって絶対空間から視点空間に変換することができ、次に、それらの位置を、投影行列を乗算することによってクリップ空間に更に変換する。
加えて、各頂点において規定される、表面に対して垂直なベクトルが、視野行列の上側3x3行列の逆行列の転置行列によって変換される。次に、完全にクリップ容積(x,y,z)∈[−1,1]内にあるとは限らないあらゆる面を廃棄することによって、クリッピングが行われる。部分的にクリップ容積内にあるいずれも面も、容積境界にクリッピングされる。次に、ビューポート行列を用いて、頂点が画面空間に投影される。それらの(x,y,z)座標は、このとき、それぞれ[0,screen_width)及び[0,screen_height)及び[0.0,1.0]の範囲にある。次に、変換された面がラスター化され、変換された面によって境界が定められた画面領域内の各ピクセルについて、境界表現のフラグメントが生成される。このフラグメントの位置及び色は、面の頂点の位置及び色の双一次補間によって求められる。z検定が実行され、各フラグメントのz値が、既にzバッファーにある値と比較され、その値の方が小さい、すなわち、より近い場合、現在のz値及び色は、そのフラグメントの値によって上書きされ、そうでない場合、そのフラグメントは廃棄される。
法線ベクトルは、各フラグメントについて、各頂点において規定されかつフラグメントの画面位置に補間された変換済み法線ベクトルから求めることができる。フラグメントの色及び明度は、通例、補間された変換済み法線ベクトルと照明ベクトルのドット積及び光の色を考慮に入れる照明モデル、例えばフォーン又はブリンを用いることによって変更される材料特性、例えば、材料の光沢に周囲の色、拡散色、及び鏡面反射色を加えたものから求められる。
機械加工において用いられる多くの工作物は、直方体又は円柱等の単純な形状として始まる。しかしながら、別の部類の機械加工動作は、鋳造された工作物の仕上げを伴う。鋳造された工作物、すなわち鋳造物は、溶融金属を型に流し込んでより複雑な初期工作物を形成することによって作製される。一般的な鋳造材料は、弱接着剤と混合された砂であり、それ自体、他の型から砂型に鋳造されたものである。砂は、安価であるとともに耐熱性を有するという利点を有し、仕上げされた鋳造物は、砂を単にばらばらに崩すことによって砂型から容易に抽出することができる。
砂の比較的粗いテクスチャーに起因して、砂型鋳造物は粗野な仕上げを有し、寸法精度が低い。一方、工作物の表面の中には、平滑な仕上げと高精度の寸法とを有することを必要とするものがある。例えば、自動車エンジンブロックは、砂型鋳造によって作製され、ピストンリングがシリンダーを密封することができるとともにピストンが正確に移動することができるように、シリンダー内は非常に正確かつ平滑でなければならない。さらに、取り付け孔に雌ねじを切らなければならず、ガスケットが別々の構成部材を接合する密封面は、平滑かつ平坦な仕上げを有しなければならない。
平滑な表面及び正確な寸法を達成するには、鋳造物の表面の一部又は全部を機械加工しなければならない。したがって、機械加工シミュレーターが鋳造工作物の表現から開始することができることは重要である。しかしながら、鋳造工作物の表面表現は、工具の動きの表現と適合していない可能性がある。例えば、鋳造工作物の表面は、明示的な表現、例えばCAD境界表現によって規定される可能性があり、工具の動きは、暗黙的な表現、例えばADF表現を有する表面によって規定される可能性がある。
従来の方法は、暗黙的な物体表現を明示的な表現に又はその逆に変換する。しかしながら、この変換工程は、多くの時間を要し、大きなメモリ所要量を有する場合がある。また、自由な形態の表面の場合、変換の結果、精度が失われる場合がある。したがって、当該技術分野においては、上述した問題に対処する必要がある。
この発明の目的は、工具によって物体を機械加工することをシミュレートする方法を提供することである。この発明の更なる目的は、物体のモデル自体を変更することなく、そのモデルの機械加工シミュレーションを提供するそのような方法を提供することである。この発明の更なる目的は、1つのタイプの表面表現を有する物体の、別のタイプの表面表現を有する一組の掃引容積を用いた機械加工シミュレーションに好適な方法を提供することである。
この発明の幾つかの実施の形態は、例えば表面の境界表現を有する物体のモデルの機械加工シミュレーションを、例えば距離場表現による掃引容積を用いて行うのではなく、距離場表現による代理物体(proxy object)を作成することができ、機械加工シミュレーションをその代理物体に対して実行して、機械加工された代理物体を受け取ることができるという認識に基づいている。このとき、物体のモデルを機械加工するという問題は、機械加工された代理物体と物体のモデルとの間のブール交差を求めることに還元される。
その上、幾つかの実施の形態は、幾つかの用途については、一方の表現を他方の表現に変換することが不要であるという別の認識に基づいている。その代わり、それらの異なる表現が互いに正しく合成されるようにそれらの表現を同時にレンダリングする(co-render)ことで十分である。これらの2つの表現の同時レンダリングによって、適切な遮蔽を含む機械加工シミュレーションを表す画像が生成される。
したがって、この発明の1つの実施の形態は、工具の動きによる物体の機械加工のコンピューターシミュレーションのための方法であって、前記物体は、境界表現(BP)物体によって表され、該BP物体は、前記物体の表面の境界表現を含み、前記動きは、一組の掃引容積によって表され、該一組の掃引容積は、該一組の掃引容積の表面を規定する第1の一組の陰関数を含む、方法を開示する。該方法のステップは、プロセッサによって実行される。該方法は、
第2の一組の陰関数が代理物体の表面を規定する該代理物体を確定するステップと、
前記代理物体の前記機械加工を、前記一組の掃引容積を用いてシミュレートして、第3の一組の陰関数が機械加工された代理(MP)物体の表面を規定する該MP物体を生成する、シミュレートするステップと、
前記MP物体と前記BP物体との間のブール交差の画像をレンダリングするステップと、
前記画像をメモリに格納するステップと、
を含む。
この実施の形態の変形形態は、次の任意選択の特徴を含んでもよい。例えば、前記レンダリングは、視線方向から実行されてもよく、陰関数は、距離場、サンプリングされた距離場、適応的にサンプリングされた距離場、適応的にサンプリングされた複合距離場、及びそれらの組み合わせからなる群から選択されてもよい。
また、前記BP物体の表面は、絶対座標系におけるBP物体フラグメントを含んでもよく、前記MP物体の表面は、前記絶対座標系におけるMP物体フラグメントを含む。前記レンダリングは、前記MP物体の内部の一組のBP物体フラグメントを求めることと、前記BP物体の内部の一組のMP物体フラグメントを求めることと、前記一組のBP物体フラグメント及び前記一組のMP物体フラグメントを、前記画像の少なくとも一部を形成する画像座標系における一組のピクセルに変換することとを更に含んでもよい。
前記一組のBP物体フラグメントを求めることは、
BP物体フラグメントから前記MP物体の前記表面までの距離を求めることであって、該距離は、前記絶対座標系において求められる、求めることと、
前記距離が、前記BP物体フラグメントが前記MP物体の内部にあることを示している場合、前記BP物体フラグメントを前記一組のBP物体フラグメントに加えることと、
前記距離が、前記BP物体フラグメントが前記MP物体の外部にあることを示している場合、前記BP物体フラグメントを一組の機械加工されたBP物体フラグメントに加えることと、
を含んでもよい。
前記一組のMP物体フラグメントを求めることは、
前記画像座標系においてMP物体フラグメントの深さを求めることと、
前記深さが、前記BP物体の内部の少なくとも1つの深さ範囲内にある場合、前記MP物体フラグメントを前記一組のMP物体フラグメントに加えることであって、前記深さ範囲は、前記画像座標系において求められる、加えることと、
を含んでもよい。
加えて又は代替的に、前記一組のMP物体フラグメントを求めることは、
前記一組の機械加工されたBP物体フラグメント内のBP物体フラグメントに対応するMP物体フラグメントを求めることと、
前記画像座標系における各対応するMP物体フラグメントの深さを求めることと、
前記深さが、前記BP物体の内部の少なくとも1つの深さ範囲内にある場合、前記対応するMP物体フラグメントを前記一組のMP物体フラグメントに加えることであって、前記深さ範囲は、前記画像座標系において求められる、加えることと、
前記画像座標系における、前記MP物体フラグメントと前記一組の機械加工されたBP物体フラグメントのうちの前記BP物体フラグメントとの間の対応関係を求めることと、
を含んでもよい。
幾つかの変形形態では、本方法はまた、前記一組の機械加工されたBP物体フラグメントのうちの前記BP物体フラグメントに対応するピクセルのピクセルフラグであって、前記MP物体フラグメントと前記BP物体フラグメントとの間の前記対応関係を確定するようになっている、ピクセルフラグを設定すること、
を含んでもよい。加えて又は代替的に、本方法は、前記一組の機械加工されたフラグメントのうちの前記BP物体フラグメントに対応する前記BP物体の少なくとも1つの面の面フラグを設定することであって、少なくとも1つの機械加工された面を生成する、設定することと、
前記機械加工された面のみの前記BP物体の内部の前記深さ範囲を求めることと、
を含んでもよい。
この実施の形態の1つの変形形態では、本方法は、絶対座標系において、前記BP物体の表面上のBP物体フラグメントを求めることと、
前記絶対座標系において、前記MP物体の内部の一組のBP物体フラグメントと、前記MP物体の外部の一組の機械加工されたBP物体フラグメントとを求めることと、
前記画像座標系において、前記BP物体の一組の機械加工された面を求めることであって、各機械加工された面は、前記一組の機械加工されたBP物体フラグメント内の少なくとも1つのBP物体フラグメントに対応する、求めることと、
前記画像座標系において、前記BP物体の内部の一組の深さ範囲を求めることであって、少なくとも1つの機械加工された面につき少なくとも1つの深さ範囲が求められる、求めることと、
前記絶対座標系において、前記MP物体の前記表面上のMP物体フラグメントを求めることと、
前記画像座標系において、前記一組の機械加工されたBP物体フラグメント内のBP物体フラグメントに対応するMP物体フラグメントを求めることと、
前記画像座標系における対応するMP物体フラグメントの深さが、前記一組の深さ範囲からの少なくとも1つの深さ範囲内にある場合、前記対応するMP物体フラグメントを前記一組のMP物体フラグメントに加えることと、
前記一組のBP物体フラグメント及び前記一組のMP物体フラグメントを、前記画像の少なくとも一部を形成する画像座標系における一組のピクセルに変換することと、
を更に含む。上述の実施の形態は、プロセッサを用いて実行することができる。
この発明の別の実施の形態は、工具の動きによる物体の機械加工のコンピューターシミュレーションを実行するためのコンピューターシステムであって、前記物体は、該物体のモデルによって表され、前記動きは、一組の掃引容積によって表され、該コンピューターシステムは、
代理物体の形状が前記物体の前記モデルの形状に少なくとも外接するような、該代理物体を確定し、
前記代理物体の前記フライス加工を、前記一組の掃引容積を用いてシミュレートして、機械加工された代理物体を生成し、
前記機械加工された代理物体と前記物体の前記モデとの間のブール交差の画像をレンダリングする、
ように構成されたプロセッサを備える、工具の動きによる物体の機械加工のコンピューターシミュレーションを実行するためのコンピューターシステムを開示する。
前記コンピューターシステムでは、前記物体の前記モデルの表面の表現と前記一組の掃引容積の表面の表現とは、異なるタイプの表現であってもよいし、又は同じタイプの表現であってもよい。
別の実施の形態は、工具の動きによる物体の機械加工のコンピューターシミュレーションを実行するためのコンピュータープログラム製品であって、前記物体は、境界表現(BP)物体によって表され、該BP物体は、前記物体の表面の境界表現を含み、前記フライス加工工具の前記動きは、一組の掃引容積によって表され、該一組の掃引容積は、該一組の掃引容積の表面を規定する第1の一組の陰関数を含み、該コンピュータープログラム製品は、
コンピューター可読記憶媒体であって、該コンピューター可読記憶媒体を用いて具現化されたコンピューター使用可能プログラムコードを含む、コンピューター可読記憶媒体を備え、前記プログラムコードは、
第2の一組の陰関数が代理物体の表面を規定する、該代理物体を確定し、
前記代理物体の前記フライス加工を、前記一組の掃引容積を用いてシミュレートして、第3の一組の陰関数が機械加工された代理(MP)物体の表面を規定する、該MP物体を生成し、
前記MP物体と前記BP物体との間のブール交差の画像をレンダリングし、
前記画像をメモリに格納する、
ように構成されている、工具の動きによる物体の機械加工のコンピューターシミュレーションを実行するためのコンピュータープログラム製品を開示する。
前記コンピュータープログラム製品は、
絶対座標系において、前記BP物体の表面上のBP物体フラグメントを求め、
前記絶対座標系において、前記MP物体の内部の一組のBP物体フラグメントと、前記MP物体の外部の一組の機械加工されたBP物体フラグメントとを求め、
前記画像座標系において、前記BP物体の一組の機械加工された面を求め、なお、各機械加工された面は、前記一組の機械加工されたBP物体フラグメント内の少なくとも1つのBP物体フラグメントに対応し、
前記画像座標系において、前記BP物体の内部の一組の深さ範囲を求め、なお、少なくとも1つの機械加工された面につき少なくとも1つの深さ範囲が求められ、
前記絶対座標系において、前記MP物体の前記表面上のMP物体フラグメントを求め、
前記画像座標系において、前記一組の機械加工されたBP物体フラグメント内のBP物体フラグメントに対応するMP物体フラグメントを求め、
前記画像座標系における対応するMP物体フラグメントの深さが、前記一組の深さ範囲からの少なくとも1つの深さ範囲内にある場合、前記対応するMP物体フラグメントを前記一組のMP物体フラグメントに加え、
前記一組のBP物体フラグメント及び前記一組のMP物体フラグメントを、前記画像の少なくとも一部を形成する画像座標系における一組のピクセルに変換する、
ように構成されてもいる前記プログラムコードを有してもよい。
物体を機械加工するのに用いられる例示の工具及び工作物の一部分の従来の表現の概略図である。 曲線経路に沿って2D形状を掃引することによって求められる掃引容積の概略図である。 工具の従来の種々の経路のうちの1つの概略図である。 工具の従来の種々の経路のうちの1つの概略図である。 工具の従来の種々の経路のうちの1つの概略図である。 機械加工される工作物を表す従来の複合ADFの概略図である。 画像順レイキャスティングによる複合ADFの従来のレンダリングの概略図である。 四面体の従来の境界表現の概略図である。 この発明の或る実施の形態による機械加工をシミュレートする概略図である。 この発明の或る実施の形態による機械加工をシミュレートする概略図である。 この発明の或る実施の形態による機械加工をシミュレートする概略図である。 この発明の幾つかの実施の形態による機械加工をシミュレートするための方法のブロック図である。 この発明の幾つかの実施の形態によるブール交差をレンダリングするための方法のブロック図である。 この発明の幾つかの実施の形態によるブール交差をレンダリングするための方法のブロック図である。 物体の深さの範囲の概略図である。 この発明の1つの実施の形態によるレンダリング工程のフローチャートである。 この発明の1つの実施の形態によるレンダリング工程のフローチャートである。 レンダリング工程の幾つかの要素の概略図である。 この発明の1つの実施の形態によるコンピューターシステムの概略図である。
この発明の実施の形態は、数値制御(NC)機械加工、例えば、旋削、穿孔、ドリル加工、ブローチ加工、のこ引き、成形、リーマ仕上げ、フライス加工、タッピング、研削をシミュレートするための方法を提供する。
通常、物体を固定することができるとともに工具のみが移動するか、若しくは工具を固定することができるとともに物体のみが移動するか、又は旋盤を用いた旋削におけるように双方が移動する。旋削では、物体が回転するとともに工具が直線的に移動する。したがって、「動き」という用語は、物体と工具との間の相対的な動きを指す。
この説明では、一例示の機械加工動作としてフライス加工が用いられる。しかしながら、この発明は、他の機械加工動作に等しく適用可能であることが理解されよう。
図6A〜図6Cは、この発明の幾つかの実施の形態の背後にある認識を示している。図6Aは、物体のモデル610の機械加工620をシミュレートするための方法を示している。具体的には、モデル610は、機械加工された物体630をシミュレートするように工具の動きを表す一組の掃引容積625によって変更される。しかしながら、出願人らは、一般的に、幾つかの用途については、機械加工620を実行することが望ましくないと認識した。例えば、機械加工620は、掃引容積が、陰関数、例えば距離場を用いて暗黙的に表されているとともに、物体のモデルが、例えば境界表現を用いて明示的に表されているときに失敗する場合がある。
出願人らは、図6Bに示すように、代理物体640を用いて機械加工620を回避することができることを更に認識した。例えば、代理物体は、掃引容積の表面と同じ表面表現を有することができる。加えて又は代替的に、代理物体は、機械加工シミュレーションにとって物体の形状よりも有利な形状を有することができる。したがって、この発明の幾つかの実施の形態は、一組の掃引容積625を代理物体に適用して(650)、機械加工された代理物体660を生成する。
次に、図6Cに示すように、物体610のモデルと機械加工された代理物体660との間のブール交差670が、適切な遮蔽を含む機械加工された物体630と同様に見える機械加工された物体680の画像を生成する。その上、ブール交差は、物体のモデルを変更することなく、物体のモデル及び機械加工された代理物体を画像にレンダリングしている間に求めることができる。
したがって、この発明の幾つかの実施の形態は、物体のモデルの機械加工シミュレーションを実行するのではなく、代理物体の機械加工シミュレーションを実行する。それゆえ、物体のモデルを機械加工する問題は、機械加工された代理物体と物体のモデルとの間のブール交差を求めることに還元される。
代理物体は、機械加工される物体のモデルを、機械加工命令、すなわち、一組の掃引容積から分離する。そのような分離によって、種々の形状及び表面表現を有する任意のタイプの物体の機械加工シミュレーションを実行することが可能になる。事実上、代理物体によって、物体のモデルを前もって提供することなく機械加工シミュレーションが可能になる。その上、代理物体によって、機械加工シミュレーションを実行して機械加工された代理物体を生成し、その機械加工された代理物体を、機械加工される種々の物体に再利用することが可能になる。
したがって、代理物体の使用によって、機械加工シミュレーションの適用性及び柔軟性が拡張されるとともに、シミュレーションのコストが削減される。
物体のモデルの表面及び一組の掃引容積の表面の様々な表現が可能である。例えば、表面は、明示的な表現、例えば境界表現を有することもできるし、例えば、一組の陰関数を用いた暗黙的な表現を有することもできる。一組の陰関数は、距離場、サンプリングされた距離場、適応的にサンプリングされた距離場、適応的にサンプリングされた複合距離場、及びそれらの組み合わせからなる群から選択される陰関数を含むことができる。
この発明の幾つかの実施の形態では、物体のモデルの表面の表現及び一組の掃引容積の表面の表現は、異なるタイプの表現である。代替的な実施の形態では、物体のモデルの表面の表現及び一組の掃引容積の表面の表現は、同じタイプの表現である。
また、幾つかの実施の形態では、代理物体は、当該代理物体の形状が少なくとも物体のモデルの形状に外接するように確定される。代理物体の形状は立体形状、例えば、長方形、立方体形、及び球状である。代理物体の他の形状が可能である。
例えば、1つの実施の形態では、代理物体は、掃引容積の表面の表現と同じ表面表現を有する立体の物体を表し、その代理物体の形状は、少なくともBP物体の形状に外接する。この実施の形態の1つの変形形態では、代理物体は長方形状を有する。
図7は、この発明の幾つかの実施の形態による物体の機械加工をシミュレートするための方法700のブロック図を示している。これらの実施の形態では、機械加工は、工具の動きを用いた物体の機械加工を含む。この物体は、境界表現(BP)物体701によって表され、このBP物体は、物体の表面の境界表現714を含む。動きは、一組の掃引容積704によって表され、この一組の掃引容積は、一組の掃引容積の表面を規定する第1の一組の陰関数711を含む。しかしながら、この実施の形態は、専ら例示の目的でのみ提供されるものであり、この発明の範囲を限定することを意図するものではない。
BP物体701の機械加工のシミュレーションの開始時に、代理物体702が確定され(730)、第2の一組の陰関数712が代理物体の表面を規定する。次に、代理物体702の機械加工が、一組の掃引容積704を用いてシミュレートされて(740)、機械加工された代理(MP)物体703を生成する。このMP物体の表面は、第3の一組の陰関数713が規定している。MP物体703とBP物体701との間のブール交差705が、画像710にレンダリングされる(750)。通常、レンダリング750は、光線706によって示される視線方向等の視線方向から実行される。画像710は、視線方向706から見ることができるような機械加工されたBP物体を表す。画像710は、格納又は更なる処理のためにメモリ720に格納することができる。
方法700及び/又はこの発明の他の実施の形態は、プロセッサ799によって実行される。「プロセッサ」又は「中央処理装置(CPU)」は、ソフトウェア命令を読み出して実行するコンピューター又はコンピューターの構成要素を指す。当業者によって理解されるように、この発明の実施の形態は、システム、方法、又はコンピュータープログラム製品として具現化することができる。したがって、実施の形態は、全面的にハードウェアの実施の形態、全面的にソフトウェアの実施の形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、又はソフトウェアの態様及びハードウェアの態様を組み合わせた実施の形態の形式を取ることができる。これらは全て、本明細書では、「回路」、「モジュール」、又は「システム」と呼ばれる場合がある。さらに、この発明は、コンピューター使用可能プログラムコードが具現化された1つ又は複数のコンピューター可読(すなわち、コンピューター使用可能)媒体(複数の場合もある)に具現化されたコンピュータープログラム製品の形式を取ることができる。
「コンピューター」は、構造化された入力を受け付け、この構造化された入力を規定されたルールに従って処理し、処理の結果を出力として生成することが可能な任意の装置を指す。コンピューターの例には、コンピューター、汎用コンピューター、スーパーコンピューター、メインフレーム、スーパーミニコンピューター、ミニコンピューター、ワークステーション、マイクロコンピューター、サーバー、インターラクティブテレビ、コンピューター及びインターラクティブテレビをハイブリッド結合したもの、並びにコンピューター及び/又はソフトウェアをエミュレートする特定用途向けハードウェアが含まれる。コンピューターは、単一のプロセッサ又は複数のプロセッサを有することができ、それらの複数のプロセッサは、並列及び/又は非並列に動作することができる。コンピューターは、コンピューター間で情報を送信又は受信するようにネットワークを介して互いに接続された2つ以上のコンピューターも指す。そのようなコンピューターの一例には、ネットワークによってリンクされたコンピューターを介して情報を処理する分散コンピューターシステムが含まれる。
「メモリ」又は「コンピューター可読媒体」は、コンピューターによってアクセス可能なデータを格納するための任意のストレージを指す。例には、磁気ハードディスク、CD−ROM又はDVDのような光ディスク、磁気テープ、メモリチップ、並びに電子メールの送受信又はネットワーク及びコンピューターメモリ、例えばランダムアクセスメモリ(RAM)へのアクセスにおいて用いられるようなコンピューター可読電子データを搬送するのに用いられる搬送波が含まれる。コンピューター可読媒体に具現化されたプログラムコードは、無線、有線、光ファイバーケーブル、RF等を含むがこれらに限定されない任意の適切な媒体を用いて送信することができる。
この発明の動作を実行するためのコンピュータープログラムコードは、Java(登録商標)、Smalltalk、C++等のオブジェクト指向型プログラミング言語で記述することができる。しかしながら、この発明の動作を実行するためのコンピュータープログラムコードは、「C」プログラミング言語又は同様のプログラミング言語等の従来の手続型プログラミング言語で記述することもできる。プログラムコードは、スタンドアローンソフトウェアパッケージとして、ユーザーのコンピューターにおいて全面的に又はユーザーのコンピューターにおいて部分的に実行することもできるし、ユーザーのコンピューターにおいて部分的にかつリモートコンピューターにおいて部分的に実行することもできるし、リモートコンピューター又はサーバーにおいて全面的に実行することもできる。後者のシナリオでは、リモートコンピューターをローカルエリアネットワーク(LAN)又はワイドネットワーク(WAN)を通じてユーザーのコンピューターに接続することもできるし、外部のコンピューターに(例えば、インターネットサービスプロバイダーを用いてインターネットを通じて)その接続を行うこともできる。
代理物体702は、例えば、その寸法がBP物体601の寸法よりも大きな直方体のADFとすることができ、代理物体の形状は、少なくともBP物体の形状に外接する。一般に、ブール交差は、点が一方の物体の境界上にありかつ他方の物体の内部にある場合にのみ、その点がそれらの2つの物体のブール交差の境界上にのみ存在することを意味する。2つの物体のブール交差の内部は、それらの物体の双方の内側領域に共通の空間の領域である。代理物体はBP物体よりも大きいので、それらの物体の双方の内側にある空間の領域は、b−rep物体のみの内側にある空間の領域に等しい。
BP物体とMP物体との間のブール交差705のレンダリング750は、複数の方法によって実行することができる。特定の方法の選択は、例えば、BP物体及びMP物体の表面の表現のタイプに依存し得る。
図8は、この発明の幾つかの実施の形態によるレンダリングする(750)ための方法のブロック図を示している。BP物体の表面は、絶対座標系805におけるBP物体フラグメント810を含む。同様に、MP物体の表面は、同じく絶対座標系805におけるMP物体フラグメント820を含む。絶対座標系内のそれぞれのBP物体フラグメント及びMP物体フラグメントは、画像座標系815内の画像710のピクセルに対応する。
MP物体の内部の一組のBP物体フラグメント835が求められる(830)。BP物体フラグメントは、MP物体の表面上又はMP物体の内側にある場合に、MP物体の内部にある。そうでない場合、BP物体フラグメントは、MP物体の外部にある。
MP物体の表面は暗黙的に表されるので、BP物体フラグメントからMP物体の表面までの距離870を求めることが可能である。この距離は、絶対座標系805において求められる。距離870が、BP物体フラグメントがMP物体の内部にあることを示している場合、この発明の1つの実施の形態は、そのBP物体フラグメントを一組のBP物体フラグメント835に加える。そうでない場合、BP物体フラグメントは、MP物体の外部にある。通常、距離870の正負符号は、BP物体フラグメントがMP物体の内部であるのか又は外部であるのかを示す。この正負符号は、陰関数の定義に応じて正又は負とすることができる。距離870が0である場合、BP物体フラグメントは、MP物体の表面上、すなわちMP物体の内部にある。
同様に、BP物体の内部の一組のMP物体フラグメント845が求められる(840)。MP物体フラグメントは、BP物体の表面上又はBP物体の内側にある場合、そのBP物体の内部にある。
BP物体の表面は明示的に表されるので、この発明の1つの実施の形態は、画像座標系815において上記求めること(840)を実行する。例えば、MP物体フラグメントの深さ880が画像座標系において求められ、この深さ880がBP物体の内部の少なくとも1つの深さ範囲885内にある場合、そのMP物体フラグメントは、一組のMP物体フラグメント845に加えられる。
図10は、画像座標系におけるBP物体1001の一例を示している。視線方向に応じて、BP物体1001は、異なる数の内部深さ範囲を有する。例えば、視線方向1002の場合、BP物体の内部の2つの深さ範囲、すなわち、範囲1003及び範囲1004がある。視線方向1010の場合、1つの深さ範囲1011しかない。
戻って図8を参照すると、一組のBP物体フラグメント835及び一組のMP物体フラグメント845は、画像710の少なくとも一部を形成する、画像座標系における一組のピクセル860に変換される(850)。
幾つかの実施の形態では、MP物体の外部のBP物体フラグメントは、ブール交差のレンダリングの有無について検査されるべきであるMP物体フラグメントに対応することができる。したがって、この発明の1つの実施の形態は、距離が、BP物体フラグメントがMP物体の外部にあることを示している場合、そのBP物体フラグメントを一組の機械加工されたBP物体フラグメント890に加える。この実施の形態では、一組の機械加工されたBP物体フラグメント内のBP物体フラグメントに対応するMP物体フラグメントのみが、一組のMP物体フラグメント内に選択されるか否かについて検査される。MP物体フラグメントと一組の機械加工されたBP物体フラグメントのうちのBP物体フラグメントとの間の対応関係は、画像座標系において求めることができる。例えば、1つの実施の形態は、一組の機械加工されたBP物体フラグメントのうちの上記BP物体フラグメントに対応するピクセル用の補助フレームバッファー内のピクセルフラグを設定し、そのピクセルフラグが、MP物体フラグメントとBP物体フラグメントとの間の対応関係を確定するようにする。
幾つかの実施の形態では、レンダリング750は、一組の機械加工されたフラグメントのうちの上記BP物体フラグメントに対応するBP物体の少なくとも1つの面が少なくとも1つの機械加工された面を生成するための面フラグを設定することによって更に高速化される。この実施の形態では、BP物体の内部の深さ範囲は、機械加工された面についてしか求められない。
この発明の幾つかの実施の形態は、二重ラベル付け、すなわち、ピクセルフラグ及び面フラグの双方の設定を用いる。この二重ラベル付けは、機械加工された代理物体から得られる画像内のフラグメントが存在しない可能性が確かにある面及びピクセルのスキップを可能にすることによってレンダリングを大幅に高速化する。
図9は、この発明の1つの実施の形態によるレンダリング工程900のフローチャートを示している。ステップ910において、BP物体の表面上のBP物体フラグメントが、絶対座標系において求められる。ステップ920において、MP物体の内部の一組のBP物体フラグメントが求められ、ステップ930において、MP物体の外部の一組の機械加工されたBP物体フラグメントが絶対座標系において求められる。ステップ940において、各機械加工された面が一組の機械加工されたBP物体フラグメント内の少なくとも1つのBP物体フラグメントに対応するように、BP物体の一組の機械加工された面が画像座標系において求められる。そして、ステップ950において、BP物体の内部の一組の深さ範囲が、画像座標系において求められ、少なくとも1つの深さ範囲が、少なくとも1つの機械加工された面について求められる。
また、ステップ960において、MP物体の表面上のMP物体フラグメントが絶対座標系において求められる。ステップ970において、一組の機械加工されたBP物体フラグメント内のBP物体フラグメントに対応するMP物体フラグメントが、画像座標系において求められる。次に、ステップ980において、画像座標系における対応するMP物体フラグメントの深さが、ステップ950において求められた一組の深さ範囲からの少なくとも1つの深さ範囲内にある場合、この対応するMP物体フラグメントを一組のMP物体フラグメントに加えることによって、その一組のMP物体フラグメントが求められる。次に、ステップ990において、一組のBP物体フラグメント及び一組のMP物体フラグメントが、画像の少なくとも一部を形成する画像座標系における一組のピクセルに変換される。
実施態様例
図11及び図12は、この発明の1つの実施の形態による、画像への特定のレンダリング工程のフローチャートを示しているが、レンダリング工程の限定した例を意図するものではない。画像は、画面座標系を有する表示デバイスの画面上に表示される。レンダリングは、2つのフェーズで進行する。第1のフェーズでは、MP物体の外部の絶対空間位置を有するBP物体のいずれのBPフラグメントも画像のフレームバッファーに加えられないようにBP物体がレンダリングされる。第2のフェーズでは、MP物体の外部のBP物体フラグメントに対応するピクセル、すなわち、一組の機械加工されたBPフラグメントからのピクセルについてのみMP物体のレンダリングが実行される。
図11は、レンダリングの第1のフェーズのフローチャートを示している。第1のフェーズの間、この方法は、BP物体の面の全てにわたって反復適用される(1101)。各面は、絶対座標系から画面座標系に投影され(1102)、次に、ラスター化されて(1103)、画像内のピクセルのロケーションに対応するフラグメントが求められる。ラスター化1103の間に生成された各フラグメントは、そのフラグメントの可視性を判断するためにzバッファー検定1104を受ける。次に、画面座標系におけるフラグメントの座標が、絶対座標系におけるBPフラグメントの座標に変換されて戻される(1105)。MP物体の距離場の値が求められ、絶対座標系におけるBPフラグメントの座標について検査される(1106)。距離場の正負符号が、BPフラグメントがMP物体の内部にあることを示している場合、そのフラグメントは、BP物体及びMP物体のブール交差の境界上にある。したがって、BP物体のBPフラグメントの色及びz値は、それぞれカラーバッファー及びzバッファーに書き込まれる(1107)。MP物体の距離場の正負符号が、BPフラグメントがMP物体の外部にあることを示している場合、BPフラグメントの色及びz値は、計算もされないし、カラーバッファー及びzバッファーにも加えられない。
しかしながら、BPフラグメントがMP物体の外部にあるとき、このピクセルについて表示されるべき表面がMP物体に対応することが可能である。したがって、この外部のBPフラグメントに対応するピクセルの2つのフラグが設定される(1108)。具体的には、面フラグが、この外部のBPフラグメントを含むBP物体の各面に関連付けられる。また、ピクセルフラグが、この外部のBPフラグメントに対応する各ピクセル用の補助フレームバッファーに設定される。ピクセルフラグは、このピクセルについて、MP物体がBP物体及び当該MP物体のブール交差の境界上に存在する可能性があることを示している。双方のフラグは、レンダリングの第2のフェーズの間に用いられる。面フラグ及びピクセルフラグは、レンダリングの2つの補空間を占有する。すなわち、面フラグは物体ラベリングであり、ピクセルフラグは画像ラベリングである。この二重空間ラベリングは、MP物体から得られる画像内のフラグメントが存在しない可能性が確かにある面及びピクセルのスキップを可能にすることによってレンダリングを大幅に高速化する。
レンダリングの第1のフェーズの間、実施の形態は、正しい遮蔽を得るために、外部のBPフラグメントのz値も補助zバッファーに少なくとも一時的に格納する。例えば、BP物体の種々の面のラスター化1103は、画像の同じピクセルに対応するBPフラグメントを生成することができる。これらのBPフラグメントの必ずしも全てではない幾つかは、MP物体の外部である場合がある。しかしながら、早期にラスター化された面は、所与のピクセルについては外部のBPフラグメントを含む場合がある。この結果、そのピクセルのピクセルフラグが設定される。後にラスター化された面のBPフラグメントは、それより前にラスター化された面のBPフラグメントを無効にする場合があり、したがって、そのピクセルのピクセルフラグはクリアされなければならない。
例えば、図13を参照すると、面1310は、面1311よりも前にレンダリングされ、矢印1312によって示される方向から見ると、BPフラグメント1313が生成される。しかしながら、BPフラグメント1313は、外側が点描パターンによって示されているMP物体1314の外側にある。したがって、BPフラグメント1313は、BP物体及びMP物体のブール交差の外側にあり、画像に寄与しない。
BPフラグメント1315は、面1311から生成され、MP物体1314の内部にあり、また、BPフラグメント1313よりも小さなzを有し、そのため、このフラグメントは可視であり、フレームバッファーに加えられる。
補助zバッファーは、面1311の場合と面1316の場合とを区別するのに用いられる。面1316のラスター化は、フラグメント1317を生成する。このフラグメントも、BPフラグメント1313と同様にMP物体の内部にあり、したがって、潜在的に可視である。しかしながら、フラグメント1315の場合、MP物体は面1311によって遮蔽されているので、MP物体のフラグメントが可視である可能性はない。しかしながら、MP物体は、面1316を遮蔽するピクセルに寄与することは依然として可能である。
図11及び図13の双方を参照すると、外部のBPフラグメント1313のz値は、補助zバッファーに格納された値に対してz検定される(1109)。BPフラグメントのz値が格納された値よりも小さい場合、BPフラグメント1313のz値は、格納されたz値に取って代わる(1110)。次の内部のBPフラグメント1315が補助zバッファー内の値に対してz検定される(1111)。フラグメント1315のz値が、例えばBPフラグメント1313の格納されたz値よりも小さい場合、フラグメント1315のz値は、標準的なzバッファー及び補助zバッファーの双方に格納され、BPフラグメント1315の色が求められ、カラーバッファーに格納され、ピクセルフラグはクリアされる(1312)。
代替的に、BPフラグメント1317等の次の内部のBPフラグメントが、補助zバッファー内の値に対してz検定される(1111)。この補助zバッファーは、この例では、フラグメント1313のz値を有する。フラグメント1317のz値は、補助zバッファー内のz値よりも大きいので、フラグメント1317のz値は、標準的なzバッファーにのみ格納され、フラグメント1317の色が求められ、カラーバッファーに格納される。フラグメント1317のz値は、補助zバッファーには書き込まれず、ピクセルフラグはクリアされない。1つの実施の形態では、レンダリングの第1のフェーズが完了した後、二次zバッファーの値は廃棄される。
BP物体及びMP物体のレンダリングの第2のフェーズの間、幾つかの実施の形態は、BP物体の内部にあるz値の範囲(以下、BP物体の内部の深さ範囲と呼ぶ)を求める。MP物体のレンダリングは、ピクセルフラグが設定されているピクセルについて実行される。或るピクセルについてのMP物体のMPフラグメントのz値が、BP物体の内部の少なくとも1つの深さ範囲内にある場合、そのMPフラグメントは、そのBP物体及びそのMP物体のブール交差の境界上にあり、そのMPフラグメントの色が求められ、カラーバッファーに格納される。
図10に示すように、BP物体1001の形状及び視線方向に応じて、BP物体1001は、1つ又は複数の深さ範囲を有することができる。例えば、視線方向1002から見ると、BP物体の内部の2つの深さ範囲、すなわち、深さ範囲1003及び深さ範囲1004があり、本明細書では一般的に一組の深さ範囲と呼ばれる。面フラグを有する各面及びピクセルフラグを有するその面上の各ピクセルについて、BP物体の内部の一組の深さ範囲を形成する深さ範囲が求められる。例えば、深さ範囲1003及び1004について、1つの実施の形態は、4つのz値、すなわち、範囲1003の入口(enter)についての第1のz値と、範囲1003の出口についての第2の値と、範囲1004の入口についての第3の値と、範囲1004の出口についての第4の値とを格納する。
ピクセルごとに格納しなければならないz値の数は、深さ範囲の数の2倍に等しい。しかしながら、BP物体は、櫛の歯のような複数の細いセグメントを含む可能性があり、そのため、幾つかの視線方向については、深さ範囲の数が非常に多くなる。そのような状況では、全てのz値を格納するメモリ所要量が、法外に大きくなる可能性があり、予測することができない。
したがって、この発明の1つの実施の形態は、前側から後側への順(front-to-back order)に一時に1回、BP物体の深さ範囲を処理するマルチパス(multi-pass)方法を用いる。この方法は、標準的なzバッファーに加えて4つの追加のzバッファーを必要とする。一対の余分のzバッファーが、現在の深さ範囲のエントリー及び出口のz値を格納し、第2の一対の余分のzバッファーが、以前の深さ範囲のエントリー及び出口のz値を格納する。この方法は、現在のエントリーのz値が以前の出口のz値よりも大きいことを要件とすることによって前側から後側の順に深さ範囲にわたって反復適用される。
加えて、現在の出口のz値は、現在のエントリーのz値よりも大きくなければならない。しかしながら、これは、許容できないトポロジー的な曖昧さを回避するために出口のz値が次のエントリーのz値の前に常に存在するという整形式(well formed)の境界表現の本質的な特徴である。以下では、これらの4つの追加のzバッファーを、前zフロント、前zバック、現zフロント、及び現zバックと呼ぶ。
図12を参照すると、初期化ステップの間、前zフロントバッファー及び現zフロントバッファー内のあらゆるピクセルの値が0.0に設定され(1201)、前zバックバッファー及び現zバックバッファー内のあらゆるピクセルの値が1.0に設定される(1202)。次に、この方法は、BP物体の面にわたって反復適用され(1203)、面フラグが設定されている(1204)BP物体の各面が、画面座標系に投影され(1205)、ラスター化される(1206)。
面のラスター化は、ピクセルフラグが設定されていない(1207)全てのピクセルにわたってスキップされる。ピクセルフラグが設定されているBP物体の面の各BPフラグメントについて、z検定が実行されて(1208)、BPフラグメントがフレームバッファー内のピクセルによって遮蔽されているか否かが判断される。BPフラグメントが標準的なzバッファー内の値よりも大きなz値を有する場合、BPフラグメントは遮蔽されており、追加の処理を必要としない。その面に関連付けられたBPフラグメントの全てが遮蔽されている場合、面フラグはクリアされ、その面は再び処理されることはない。
次に、面の法線ベクトルが、面の2つの辺に沿った一対のベクトルのクロス積から求められる。この法線ベクトルは、視野行列を用いて変換され、視線方向と面の法線ベクトルとの間のベクトルドット積が計算されて、面の向き、すなわち、面が前側を向いているのか又は後側を向いているのかが判断される(1209)。ドット積が正である場合、その面は、視線方向から離れる方に向けられ、後向き面であり、そうでない場合、その面は前向きである。前向き面の各BPフラグメントのz値は、前zフロントバッファー及び現zフロントバッファーの双方の値と比較される(1210)。BPフラグメントのz値が、前zフロントバッファーの値よりも大きくかつ現zフロントバッファーの値よりも小さい場合、そのz値は、現zフロントバッファーに格納される(1211)。前側面の全てのフラグメントが、前zフロントバッファーの値以下のz値を有する場合、面フラグはクリアされ、その面は再び処理されることはない。
各後向きフラグメントのz値は、前zバックバッファー及び現zバックバッファーの双方のz値と比較される。そのフラグメントのz値が前zバックバッファーの値よりも大きくかつ現zバックバッファーの値よりも小さい場合、BPフラグメントのz値は、現zバックバッファーに格納される(1213)。後向き面の全てのフラグメントが、前zバック値の値以下のz値を有する場合、その面の面フラグはクリアされ、その面は再び処理されることはない。
一組の深さ範囲が、ピクセルフラグが設定されている全てのピクセルについて求められた後、MP物体のレンダリングが、それらのピクセルについて実行され、その結果、MP物体からMPフラグメントが得られる。レンダリングは、補助フレームバッファー内のピクセルにわたって反復適用され(1214)、ピクセルフラグが設定されている(1215)各ピクセルについて、光線とMP物体との交差が計算され(1216)、その結果、MP物体の一組のMPフラグメントが得られる。MP物体の各MPフラグメントは、内側間隔に対してz検定される(1217)。MPフラグメントのz値が深さ範囲内にある場合、すなわち、そのフラグメントのz値が現zフロントバッファー内のz値よりも大きくかつ現zバックバッファー内のz値よりも小さい場合、MPフラグメントは、BP物体及びMP物体のブール交差の境界にある。したがって、MPフラグメントの色が計算され、MPフラグメントの色及びz値が、それぞれカラーバッファー及び標準的なzバッファーに格納され(1218)、ピクセルフラグはクリアされる(1219)。補助バッファー内のピクセルフラグの全てがクリアされた場合、画像のレンダリングは完了する。
一方、MP物体がレンダリングされた後、補助バッファー内に依然として設定されているピクセルフラグがある場合、現zフロントバッファー及び現zバックバッファー内のz値が、それぞれ前zフロントバッファー及び前zバックバッファーにコピーされ、現zフロントバッファー及び現zバックバッファーは、BP物体の内部の次の深さ範囲を求める際の使用に備えて1.0に設定される。MP物体のレンダリングとともにその後に連続的に深さ範囲を求めるこの工程は、設定されたピクセルフラグがなくなるまで繰り返される(1220)。
図14は、この発明の幾つかの実施の形態によるコンピューターシステムの概略図を示している。一組の機械加工命令1401が、ネットワークによってファイルとして、CD若しくはDVDから、又は当該技術分野において知られている他の或る手段によってNC機械加工コントローラー1402に与えられる。コントローラー1402は、プロセッサ1403と、メモリ1404と、機械の動作を表示するためのディスプレイ1405とを備える。プロセッサ上では、機械加工シミュレーター1406が動作している。この機械加工シミュレーターは、フライス加工命令1001を受信しており、この発明の方法1450を用いて、シミュレートされる工作物の画像1407をディスプレイ1405上に生成する。
そのようなコンピューターは、ローカルエリアネットワーク又はワイドエリアネットワークとしてエンタープライズネットワーク又はインターネット等を含む1つ又は複数のネットワークによって任意の適した形態で相互接続することができる。そのようなネットワークは、任意の適した技術に基づくことができ、任意の適したプロトコルに従って動作することができ、無線ネットワーク、有線ネットワーク又は光ファイバーネットワークを含むことができる。
また、本明細書において概説される様々な方法又はプロセスは、様々なオペレーティングシステム又はプラットフォームのうちの任意のものを用いる1つ又は複数のプロセッサ上で実行可能なソフトウェアとしてコーディングすることができる。加えて、そのようなソフトウェアは、複数の適切なプログラミング言語及び/又はプログラミングツール若しくはスクリプティングツールのうちの任意のものを用いて書くことができ、フレームワーク又は仮想マシン上で実行される実行可能な機械語コード又は中間コードとしてコンパイルすることもできる。
これに関して、この発明は、単数又は複数のコンピューター可読記憶媒体、例えばコンピューターメモリ、コンパクトディスク(CD)、光ディスク、デジタルビデオディスク(DVD)、磁気テープ、及びフラッシュメモリとして実現することができる。代替的に又は加えて、この発明は、伝搬信号等の、コンピューター可読記憶媒体以外のコンピューター可読媒体として具現化することができる。
「プログラム」又は「ソフトウェア」という用語は、本明細書において、一般的な意味で、上記で論考したようなこの発明の様々な態様を実施するようにコンピューター又は他のプロセッサをプログラムするのに用いることができる任意のタイプのコンピューターコード又はコンピューター実行可能命令のセットを指すように用いられる。
コンピューター実行可能命令は、1つ若しくは複数のコンピューター又は他のデバイスによって実行された、プログラムモジュール等の多くの形式をとることができる。一般に、プログラムモジュールは、特定のタスクを実行するか又は特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造を含む。通常、プログラムモジュールの機能は、様々な実施の形態において所望に応じて組み合わせることも分散させることもできる。
また、この発明の実施の形態は、例が提供された方法として実施することができる。この方法の一部として実行される動作は、任意の適切な方法で順序付けすることができる。したがって、動作が示したものと異なる順序で実行される実施の形態を構築することができ、これには、例示の実施の形態では一連の動作として示されたにもかかわらず、幾つかの動作を同時に実行することを含めることもできる。
この発明の実施の形態は、方法、装置(システム)、及びコンピュータープログラム製品のフローチャート図及び/又はブロック図を参照して説明されている。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図内のブロックの組み合わせは、コンピュータープログラム命令によって実施することができることが理解されよう。これらのコンピュータープログラム命令を汎用コンピューター、専用コンピューター、又は他のプログラマブルデータ処理装置のプロセッサに与えて、コンピューター又は他のプログラマブルデータ処理装置のプロセッサを介して実行されるそれらの命令が、フローチャート及び/又はブロック図の単数又は複数のブロックにおいて指定された機能/動作を実施するための手段を生み出すような機械を作り出すことができる。
上記コンピュータープログラム命令をコンピューター又は他のプログラマブルデータ処理装置にロードして、一連の動作ステップをコンピューター又は他のプログラマブル装置において実行させ、コンピューター又は他のプログラマブル装置において実行される命令が、フローチャート及び/又はブロック図の単数又は複数のブロックにおいて指定された機能/動作を実施するためのステップを与えるようなコンピューター実施される工程を生み出すこともできる。
発明の効果
この発明の実施の形態は、物体を機械加工することをシミュレートするためのシステム、コンピューター製品、及び方法を記載している。実施の形態は、モデルそれ自体を変更するなく、物体のモデルの機械加工シミュレーションを可能にする。さらに、物体のモデルの代わりに、機械加工される代理物体を導入することによって、実施の形態は、1つのタイプの表面表現を有する物体の機械加工シミュレーションを、別のタイプの表面表現を有する一組の掃引容積を用いて可能にする。
産業上の利用可能性
この発明のシステム及び方法並びにコンピュータープログラム製品は、多くの種類の分野に適用可能である。

Claims (20)

  1. 工具の動きによる物体の機械加工をシミュレートするための方法であって、前記物体は、境界表現(BP)物体によって表され、該BP物体は、前記物体の表面の境界表現を含み、前記動きは、一組の掃引容積によって表され、該一組の掃引容積は、該一組の掃引容積の表面を規定する第1の一組の陰関数を含み、該方法は、
    代理物体の表面を規定する第2の一組の陰関数を有する該代理物体を確定するステップと、
    前記代理物体の前記機械加工を、前記一組の掃引容積を用いてシミュレートするステップであって、機械加工された代理(MP)物体の表面を規定する第3の一組の陰関数を有する該機械加工されたMP物体を生成するものと、
    前記MP物体と前記BP物体との間のブール交差の画像をレンダリングするステップと、
    を含み、該方法の前記ステップは、プロセッサによって実行される、工具の動きによる物体の機械加工をシミュレートするための方法。
  2. 陰関数が、距離場、サンプリングされた距離場、適応的にサンプリングされた距離場、適応的にサンプリングされた複合距離場、及びそれらの組み合わせからなる群から選択される、請求項1に記載の方法。
  3. 前記レンダリングは、視線方向から実行される、請求項1に記載の方法。
  4. 前記BP物体の表面は、絶対座標系におけるBP物体フラグメントを含み、前記MP物体の表面は、前記絶対座標系におけるMP物体フラグメントを含み、前記レンダリングは、
    前記MP物体の内部の一組のBP物体フラグメントを求めることと、
    前記BP物体の内部の一組のMP物体フラグメントを求めることと、
    前記一組のBP物体フラグメント及び前記一組のMP物体フラグメントを、前記画像の少なくとも一部を形成する画像座標系における一組のピクセルに変換することと、
    を更に含む、請求項1に記載の方法。
  5. 前記一組のBP物体フラグメントを求めることは、
    BP物体フラグメントから前記MP物体の前記表面までの距離を求めることであって、該距離は、前記絶対座標系において求められるものと、
    前記距離が、前記BP物体フラグメントが前記MP物体の内部にあることを示している場合、前記BP物体フラグメントを前記一組のBP物体フラグメントに加えることと、
    を含む、請求項4に記載の方法。
  6. 前記一組のMP物体フラグメントを求めることは、
    前記画像座標系においてMP物体フラグメントの深さを求めることと、
    前記深さが、前記BP物体の内部の少なくとも1つの深さ範囲内にある場合、前記MP物体フラグメントを前記一組のMP物体フラグメントに加えることであって、前記深さ範囲は、前記画像座標系において求められるものと、
    を含む、請求項4に記載の方法。
  7. 前記距離が、前記BP物体フラグメントが前記MP物体の外部にあることを示している場合、前記BP物体フラグメントを一組の機械加工されたBP物体フラグメントに加えること、
    を更に含む、請求項5に記載の方法。
  8. 前記一組のMP物体フラグメントを求めることは、
    前記一組の機械加工されたBP物体フラグメント内のBP物体フラグメントに対応するMP物体フラグメントを求めることと、
    前記画像座標系における各対応するMP物体フラグメントの深さを求めることと、
    前記深さが、前記BP物体の内部の少なくとも1つの深さ範囲内にある場合、前記対応するMP物体フラグメントを前記一組のMP物体フラグメントに加えることであって、前記深さ範囲は、前記画像座標系において求められるものと、
    を含む、請求項7に記載の方法。
  9. 前記画像座標系における、前記MP物体フラグメントと前記一組の機械加工されたBP物体フラグメントのうちの前記BP物体フラグメントとの間の対応関係を求めること、
    を更に含む、請求項8に記載の方法。
  10. 前記一組の機械加工されたBP物体フラグメントのうちの前記BP物体フラグメントに対応するピクセルのピクセルフラグを設定することであって、前記ピクセルフラグが前記MP物体フラグメントと前記BP物体フラグメントとの間の前記対応関係を確定するようになっているもの、
    を更に含む、請求項9に記載の方法。
  11. 前記一組の機械加工されたフラグメントのうちの前記BP物体フラグメントに対応する前記BP物体の少なくとも1つの面の面フラグを設定することであって、少なくとも1つの機械加工された面を生成するものと、
    前記機械加工された面のみの前記BP物体の内部の前記深さ範囲を求めることと、
    を更に含む、請求項9に記載の方法。
  12. 請求項1に記載の方法であって、
    絶対座標系において、前記BP物体の表面上のBP物体フラグメントを求めることと、
    前記絶対座標系において、前記MP物体の内部の一組のBP物体フラグメントと、前記MP物体の外部の一組の機械加工されたBP物体フラグメントとを求めることと、
    前記画像座標系において、前記BP物体の一組の機械加工された面を求めることであって、各機械加工された面は、前記一組の機械加工されたBP物体フラグメント内の少なくとも1つのBP物体フラグメントに対応するものと、
    前記画像座標系において、前記BP物体の内部の一組の深さ範囲を求めることであって、少なくとも1つの機械加工された面につき少なくとも1つの深さ範囲が求められるものと、
    前記絶対座標系において、前記MP物体の前記表面上のMP物体フラグメントを求めることと、
    前記画像座標系において、前記一組の機械加工されたBP物体フラグメント内のBP物体フラグメントに対応するMP物体フラグメントを求めることと、
    前記画像座標系における対応するMP物体フラグメントの深さが、前記一組の深さ範囲からの少なくとも1つの深さ範囲内にある場合、前記対応するMP物体フラグメントを前記一組のMP物体フラグメントに加えることと、
    前記一組のBP物体フラグメント及び前記一組のMP物体フラグメントを、前記画像の少なくとも一部を形成する画像座標系における一組のピクセルに変換することと、
    を更に含む、方法。
  13. 前記代理物体の形状は、少なくとも前記BP物体の形状に外接する、請求項1に記載の方法。
  14. 前記代理物体は立体である、請求項1に記載の方法。
  15. フライス加工工具の動きによる物体のフライス加工のコンピューターシミュレーションを実行するためのコンピューターシステムであって、前記物体は、該物体のモデルによって表され、前記フライス加工工具の前記動きは、一組の掃引容積によって表され、該コンピューターシステムは、
    代理物体の形状が前記物体の前記モデルの形状に少なくとも外接するような、該代理物体を確定し、
    前記代理物体の前記フライス加工を、前記一組の掃引容積を用いてシミュレートして、機械加工された代理物体を生成し、
    前記機械加工された代理物体と前記物体の前記モデルとの間のブール交差の画像をレンダリングする、
    ように構成されたプロセッサを備える、フライス加工工具の動きによる物体のフライス加工のコンピューターシミュレーションを実行するためのコンピューターシステム。
  16. 前記物体の前記モデルの表面の表現と前記一組の掃引容積の表面の表現とは、異なるタイプの表現である、請求項15に記載のシステム。
  17. 前記物体の前記モデルの表面の表現と前記一組の掃引容積の表面の表現とは、同じタイプの表現である、請求項15に記載のシステム。
  18. フライス加工工具の動きによる物体のフライス加工のコンピューターシミュレーションを実行するためのコンピュータープログラム製品であって、前記物体は、境界表現(BP)物体によって表され、該BP物体は、前記物体の表面の境界表現を含み、前記フライス加工工具の前記動きは、一組の掃引容積によって表され、該一組の掃引容積は、該一組の掃引容積の表面を規定する第1の一組の陰関数を含み、該コンピュータープログラム製品は、
    コンピューター可読記憶媒体であって、該コンピューター可読記憶媒体を用いて具現化されたコンピューター使用可能プログラムコードを含むものを備え、前記プログラムコードは、
    第2の一組の陰関数が代理物体の表面を規定する、該代理物体を確定し、
    前記代理物体の前記フライス加工を、前記一組の掃引容積を用いてシミュレートして、第3の一組の陰関数が機械加工された代理(MP)物体の表面を規定する、該MP物体を生成し、
    前記MP物体と前記BP物体との間のブール交差の画像をレンダリングし、
    前記画像をメモリに格納する、
    ように構成されている、フライス加工工具の動きによる物体のフライス加工のコンピューターシミュレーションを実行するためのコンピュータープログラム製品。
  19. 前記プログラムコードは、
    絶対座標系において、前記BP物体の表面上のBP物体フラグメントを求め、
    前記絶対座標系において、前記MP物体の内部の一組のBP物体フラグメントと、前記MP物体の外部の一組の機械加工されたBP物体フラグメントとを求め、
    前記画像座標系において、前記BP物体の一組の機械加工された面を求め、各機械加工された面は、前記一組の機械加工されたBP物体フラグメント内の少なくとも1つのBP物体フラグメントに対応し、
    前記画像座標系において、前記BP物体の内部の一組の深さ範囲を求め、少なくとも1つの機械加工された面につき少なくとも1つの深さ範囲が求められ、
    前記絶対座標系において、前記MP物体の前記表面上のMP物体フラグメントを求め、
    前記画像座標系において、前記一組の機械加工されたBP物体フラグメント内のBP物体フラグメントに対応するMP物体フラグメントを求め、
    前記画像座標系における対応するMP物体フラグメントの深さが、前記一組の深さ範囲からの少なくとも1つの深さ範囲内にある場合、前記対応するMP物体フラグメントを前記一組のMP物体フラグメントに加え、
    前記一組のBP物体フラグメント及び前記一組のMP物体フラグメントを、前記画像の少なくとも一部を形成する画像座標系における一組のピクセルに変換する、
    ように更に構成されている、請求項18に記載のコンピュータープログラム製品。
  20. 各一組の陰関数は、距離場、サンプリングされた距離場、適応的にサンプリングされた距離場、適応的にサンプリングされた複合距離場、及びそれらの組み合わせからなる群から選択される陰関数を含む、請求項18に記載のコンピュータープログラム製品。
JP2014501950A 2011-06-24 2012-06-11 工具の動きによる物体の機械加工をシミュレートするための方法並びにそのシステム及びコンピュータープログラム製品 Active JP5726368B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/168,582 2011-06-24
US13/168,582 US8838419B2 (en) 2011-06-24 2011-06-24 System and method for simulating machining objects
PCT/JP2012/065439 WO2012176713A1 (en) 2011-06-24 2012-06-11 Method for simulating machining of objects by motion of tool and system and computer program product therefor

Publications (2)

Publication Number Publication Date
JP2014510975A true JP2014510975A (ja) 2014-05-01
JP5726368B2 JP5726368B2 (ja) 2015-05-27

Family

ID=46466802

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014501950A Active JP5726368B2 (ja) 2011-06-24 2012-06-11 工具の動きによる物体の機械加工をシミュレートするための方法並びにそのシステム及びコンピュータープログラム製品

Country Status (5)

Country Link
US (1) US8838419B2 (ja)
JP (1) JP5726368B2 (ja)
CN (1) CN103649856B (ja)
DE (1) DE112012002623T5 (ja)
WO (1) WO2012176713A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106843139A (zh) * 2015-12-10 2017-06-13 捷准科技股份有限公司 应用对话式控制器生成cnc机床切削路径的方法

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2590143B1 (en) * 2011-11-03 2018-10-24 Dassault Systèmes Simulation of the machining of a workpiece
EP2590144B1 (en) 2011-11-03 2018-10-24 Dassault Systèmes Designing a modeled volume represented by dexels
US9208609B2 (en) * 2013-07-01 2015-12-08 Mitsubishi Electric Research Laboratories, Inc. Method for fitting primitive shapes to 3D point clouds using distance fields
US9524356B2 (en) 2013-10-16 2016-12-20 General Electric Company System and methods of generating a computer model of composite component
ES2847589T3 (es) * 2014-03-20 2021-08-03 The Exone Co Impresión en tres dimensiones utilizando una conversión rápida de archivos STL
US10108172B2 (en) * 2014-10-13 2018-10-23 Autodesk, Inc. Spiral toolpaths for high-speed machining of polygonal pockets
US10564626B2 (en) * 2016-01-29 2020-02-18 Sandvik Intellectual Property Ab Planning of computer numerical control (CNC) machining operations with the aid of a digital computer
EP3203394B1 (en) * 2016-02-02 2021-10-20 Dassault Systèmes B-rep design with face trajectories
US10155273B1 (en) 2016-05-19 2018-12-18 X Development Llc Interactive object fabrication
EP3469404B1 (en) * 2016-06-08 2021-07-21 Services Pétroliers Schlumberger Structural volume segmentation
US10353352B2 (en) 2017-02-22 2019-07-16 Mitsubishi Electric Research Laboratories, Inc. System and method for distributed machining simulation
US10553010B2 (en) 2017-04-01 2020-02-04 Intel IP Corporation Temporal data structures in a ray tracing architecture
US10565778B2 (en) * 2017-08-22 2020-02-18 Samsung Electronics Co., Ltd. Electronic devices for and methods of implementing memory transfers for image warping in an electronic device
JP7087316B2 (ja) * 2017-09-27 2022-06-21 オムロン株式会社 情報処理装置、情報処理方法およびプログラム
WO2019226555A1 (en) 2018-05-22 2019-11-28 NanoCore Technologies, Inc. Method and system for automated toolpath generation
US10970911B2 (en) * 2019-02-21 2021-04-06 Facebook Technologies, Llc Graphics processing chip with machine-learning based shader
US11803674B2 (en) * 2019-11-18 2023-10-31 Autodesk, Inc. Dual mode post processing
CN111161416B (zh) * 2019-12-11 2023-08-29 北京互时科技股份有限公司 根据模型形状信息精确调整模型显示优先级的方法和系统
JP7349579B2 (ja) * 2020-02-10 2023-09-22 モレックス エルエルシー カスタムコネクタを備えたリアルタイムケーブルアセンブリコンフィギュレータ
US11436793B1 (en) 2021-02-12 2022-09-06 Facebook Technologies, Llc Systems and methods for graphics rendering based on machine learning

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010272110A (ja) * 2009-05-19 2010-12-02 Mitsubishi Electric Research Laboratories Inc 適応的にサンプリングされる距離場を用いて数値制御フライス加工をシミュレートするための方法
JP2010277585A (ja) * 2009-05-19 2010-12-09 Mitsubishi Electric Research Laboratories Inc サンプル点において掃引容積の距離場を再構成する方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5710709A (en) * 1993-08-19 1998-01-20 Iowa State University Research Foundation, Inc. NC milling simulation and dimensional verification via dexel representation
US6606528B1 (en) * 2000-06-21 2003-08-12 The Boeing Company Method for creating computer-aided design (CAD) solid models from numerically controlled (NC) machine instructions
JP4439812B2 (ja) * 2001-03-26 2010-03-24 エルビー メディカル ゲーエムベーハー 材料切除または材料加工の方法およびデバイス・システム
US20030204286A1 (en) * 2002-04-26 2003-10-30 Thomas Steven M. Method for modeling complex, three dimensional tool paths through a workpiece
US7024272B2 (en) * 2002-04-26 2006-04-04 Delphi Technologies, Inc. Virtual design, inspect and grind optimization process
DE20321699U1 (de) * 2003-11-12 2009-01-15 Siemens Aktiengesellschaft Rechner zum Durchführen eines Simulationsverfahrens für eine Bearbeitung eines Werkstücks durch eine Werkzeugmaschine
US7580816B2 (en) * 2004-02-06 2009-08-25 The Boeing Company Apparatus and methods for creating sketch-based eggcrate substructures for composite parts
CN100480919C (zh) * 2006-09-26 2009-04-22 河北科技大学 一种复杂形体等高分割组合数控铣削制造法
WO2010134198A1 (ja) * 2009-05-22 2010-11-25 三菱電機株式会社 シミュレーション装置およびシミュレーションプログラム
US20120221300A1 (en) * 2009-10-06 2012-08-30 Pécsi Tudományegyetem Method, computer system and computer program product for machining simulation and for visually presenting such simulation
US8483858B2 (en) * 2010-03-31 2013-07-09 Mitsubishi Electric Research Laboratories, Inc. System and method for optimizing machining simulation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010272110A (ja) * 2009-05-19 2010-12-02 Mitsubishi Electric Research Laboratories Inc 適応的にサンプリングされる距離場を用いて数値制御フライス加工をシミュレートするための方法
JP2010277585A (ja) * 2009-05-19 2010-12-09 Mitsubishi Electric Research Laboratories Inc サンプル点において掃引容積の距離場を再構成する方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106843139A (zh) * 2015-12-10 2017-06-13 捷准科技股份有限公司 应用对话式控制器生成cnc机床切削路径的方法

Also Published As

Publication number Publication date
US20120330620A1 (en) 2012-12-27
US8838419B2 (en) 2014-09-16
JP5726368B2 (ja) 2015-05-27
CN103649856B (zh) 2016-07-13
CN103649856A (zh) 2014-03-19
WO2012176713A1 (en) 2012-12-27
DE112012002623T5 (de) 2014-04-17

Similar Documents

Publication Publication Date Title
JP5726368B2 (ja) 工具の動きによる物体の機械加工をシミュレートするための方法並びにそのシステム及びコンピュータープログラム製品
JP5805322B2 (ja) 物体のモデルを生成しシミュレートするコンピュータープログラム製品及び方法
Bala et al. Combining edges and points for interactive high-quality rendering
US9336624B2 (en) Method and system for rendering 3D distance fields
US8725466B2 (en) System and method for hybrid solid and surface modeling for computer-aided design environments
US10032308B2 (en) Culling objects from a 3-D graphics pipeline using hierarchical Z buffers
Greß et al. GPU‐based collision detection for deformable parameterized surfaces
US20220383583A1 (en) Hardware acceleration for ray tracing primitives that share vertices
CA2795269A1 (en) Camera projection meshes
JP2010272110A (ja) 適応的にサンプリングされる距離場を用いて数値制御フライス加工をシミュレートするための方法
US8698799B2 (en) Method and apparatus for rendering graphics using soft occlusion
Plate et al. A flexible multi-volume shader framework for arbitrarily intersecting multi-resolution datasets
Schollmeyer et al. Efficient and anti-aliased trimming for rendering large NURBS models
KR101118597B1 (ko) 모바일용 컴퓨터 그래픽 랜더링 방법 및 시스템
US20240095996A1 (en) Efficiency of ray-box tests
US7088361B2 (en) Raycasting perspective views
CN116993894B (zh) 虚拟画面的生成方法、装置、设备、存储介质及程序产品
Best et al. New rendering approach for composable volumetric lenses
Lau et al. Accurate Image Generation and Interactive Image Editing with the A‐buffer
Li et al. A Feasible Method of Virtual Flow Field Simulation-Part II: Simulation and Visualization in RTT System
Falk et al. GPU-based Glyph Ray Casting
Järvensivu Implementation of Points and Edges Technique
Vyatkin et al. FUNCTION-BASED TECHNOLOGY OF VISUALIZATION
Davies et al. Three-dimensional modelling software

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140715

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150303

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150331

R150 Certificate of patent or registration of utility model

Ref document number: 5726368

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250