複数の3D曲線からの表面の生成
【課題】複数の3D曲線から表面を生成するための、コンピュータによって実施される方
法が提供される。
【解決手段】方法は、複数の3D曲線を与えるステップ(S10)と、曲線の対の間のクロッシングを決定するステップ(S20)と、クロッシングを表すノード、および隣り合うクロッシングを表すノードの対を接続する弧を含む基底グラフを定義するステップ(S30)と、グラフから、3Dの位置によって定義される頂点、および頂点の対を接続するエッジを含むメッシュを決定するステップ(S40)と、メッシュに表面を当てはめるステップ(S50)とを含む。
そのような方法は、複数の3D曲線からの表面の生成をより容易にする。
法が提供される。
【解決手段】方法は、複数の3D曲線を与えるステップ(S10)と、曲線の対の間のクロッシングを決定するステップ(S20)と、クロッシングを表すノード、および隣り合うクロッシングを表すノードの対を接続する弧を含む基底グラフを定義するステップ(S30)と、グラフから、3Dの位置によって定義される頂点、および頂点の対を接続するエッジを含むメッシュを決定するステップ(S40)と、メッシュに表面を当てはめるステップ(S50)とを含む。
そのような方法は、複数の3D曲線からの表面の生成をより容易にする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータプログラムおよびシステムの分野に関し、より詳細には、複数の3D曲線から表面を生成するための方法、システム、およびプログラムに関する。
【背景技術】
【0002】
オブジェクトの設計、エンジニアリング、および製造のためのいくつかのシステムおよびプログラムが、市場で提示されている。CADはコンピュータ支援設計の頭字語であり、例えば、CADはオブジェクトを設計するためのソフトウェアソリューションに関する。CAEはコンピュータ支援エンジニアリングの頭字語であり、例えば、CAEは将来の製品の物理的な挙動をシミュレーションするためのソフトウェアソリューションに関する。CAMはコンピュータ支援製造の頭字語であり、例えば、CAMは製造プロセスおよびオペレーションを定義するためのソフトウェアソリューションに関する。そのようなシステムにおいては、グラフィカルユーザインターフェース(GUI)が、技法の効率に関する重要な役割を担う。これらの技法は、製品ライフサイクル管理(PLM)システムに組み込まれる可能性がある。PLMは、企業が、拡張エンタープライズ(extended enterprise)の概念全体にわたって構想から製品寿命の終わりまで、製品データを共有し、共通のプロセスを適用し、製品の開発に関する企業知識を利用することを支援するビジネス戦略を指す。
【0003】
(CATIA、ENOVIA、およびDELMIAの商標で)Dassault Systemesによって提供されるPLMソリューションは、製品エンジンニアリングの知識を体系化するエンジニアリングハブ(Engineering Hub)と、製造エンジニアリングの知識を管理する製造ハブ(Manufacturing Hub)と、エンジニアリングハブおよび製造ハブへの企業のインテグレーションおよび接続を可能にするエンタープライズハブ(Enterprise Hub)とを提供する。システムは、製品、プロセス、リソースを結びつけるオープンなオブジェクトモデルを一緒になって提供して、最適化された製品定義、製造準備、生産、およびサービスを推進する動的で知識に基づいた製品作りおよび意志決定支援を可能にする。
【0004】
これらのシステムの一部は、大きなくくりでは形状モデリング、より正確には表面設計に入る、複数の3D曲線からの表面の生成を可能にする。入門的な出版物がある(例えば、非特許文献1)。特に興味深いのは、任意の種類の複合的な表面(1つまたは複数の表面のキルト(quilt))、特に、曲面、(平らなファセットからなる)三角形メッシュ表面、または細分割曲面(subdivision surface)のキルトである。
【0005】
B−Rep(境界表現)は、すべての上述の表面を単一の概念にグループ化するので、ここで言及すべき数学的モデルである。B−Repは、R2の定義域およびR3の値域を有する1つまたは複数の関数fi(s,t)→(x,y,z)と、これらの個々の部分がどのように一緒に「縫い合わされる」かについての論理的な情報とをまとめる。縫い合わせは、表面が「切り取られる」ようなものである可能性があり、表面が「切り取られる」とは、各関数のR2の定義域は、その全体が使用されないことを意味する。いかにして曲線の組からそのような表面のパッチワーク(patchwork)を最も上手く生成するかは、形状モデリングの古くからの課題である。三角形メッシュの特別な場合、それぞれの個々の表面要素は、平らなファセット、言い換えると、平面である。B−Repの広く知られている定義は、STEP AP203である。これは、CATIA V5およびCATIA V6がCATPartを.stpファイルとしてエクスポートするときに適用する規格である。B−Repは開いている可能性があり、その場合、それらのB−Repはその体積(volume)を取り囲まず、またはB−Repは閉じている可能性があり、その場合、それらのB−Repはその体積の境界を示し、したがって、ソリッドオブジェクトを表す可能性がある。STEP AP203において、それらのB−Repは、それぞれ、キーワードOPEN_SHELLおよびCLOSED_SHELLによって言及される。しかし、用語B−Repが、AP203標準よりも広い意味で使用される可能性がある。AP203においては、開いているB−Repの場合は単に開いているシェル(open shell)と呼ばれ、(キーワード「ADVANCED_BREP_SHAPE_REPRESENTATION」の)用語B−Repは、閉じているシェル(closed shell)の場合のために残されている。体積を取り囲まないB−Repは、多くのサブ関数で構成されるときであっても、(単数形で)表面と呼ばれることが多い。これは、下位部分の間の結合部が滑らかであり、オブジェクトの複合的な性質をユーザに隠すときに特に当てはまる。エンジニアまたはデザイナーは、生成された複合的な形状を単一の表面と言うことが多い。
【0006】
3Dモデル、特に、自由な形式の形状の構築を容易にするために、一部のCADシステムは、より低次元の入力の組からB−Rep(またはその一部)を生成するためのさまざまな方法を提供する。これらの入力は、規則的な間隔の点の組、点および接平面の組、プロファイルおよび突出の方向、スイーププロファイル(sweep profile)とスイープレール(sweep rail)との組み合わせ、補間すべき曲線の組である可能性がある。曲線の組の場合、これらは、概して、完全に交わるか、または順番に並べられることが求められる。例えば、CATIA V5/6のネットサーフェス(NET surface)は、交わる曲線の格子から表面を生成する。
【0007】
R2からR3へと写像するさまざまな関数が、B−Repを形成するために使用され得る。これらは、(三角形メッシュにおけるような)単純な平面から非常に高次の多項式にまで及ぶことが可能であり、円柱などの正準表面も含まれる。例えば、CATIAに統合されたCatmull−Clark細分割曲面を利用することもできる(例えば、特許文献1および特許文献2参照)。これらのシステムにおいて、細分割曲面は、最初に、リアルタイムの視覚化のために三角形メッシュに変換され、次に、最終的な高品質の結果のためのB−スプライン曲面に変換される。
【0008】
やはり言及しておくべきなのは、コンピュータ支援曲線スケッチング(Curve Sketching)である。曲線からの表面の生成は、曲線が素早く容易に作成され得る状況で最も上手く使用される。曲線スケッチングは、コンピュータグラフィックスの研究の豊富な分野である。曲線スケッチングを示す出版物がある(例えば、非特許文献2および非特許文献3参照)。これらの2つの出版物は、形状を定義する曲線のネットワークを扱うが、形状に表面を被せることは、このオペレーションが難しいために提案しない。
【0009】
複数の3D曲線から表面を生成するための既存のソリューションの1つの問題は、形状を定義する際にアーティストまたはエンジニアにほとんど柔軟性が与えられないことである。既存のソリューションでは、制約のない設計のアクションが可能でない。通常、それらのソリューションは、製図版に新しいアイデアを書き留めるときにコンピュータシステムのどんな柔軟性のなさも(当然ながら)我慢することができない非常にクリエイティブなアーティストのユーザを満足させない。それらのソリューションは、試行錯誤、および形状の非常にインタラクティブな修正を許さない。それらのソリューションは、製品設計に携わる者なら誰によっても使用可能なのではなく、製品設計のアーティストによってのみ使用可能である。すべての人がアイデアを交換する可能性があり、したがって、アーティストと同じ、即座に作成することの制約を受けるので、製品設計に携わるあらゆる人によって使用可能なシステムが有益である。
【0010】
曲線から表面を構築する従来技術の方法は、2つのカテゴリー、すなわち、スイープ/ロフト型の方法とネットサーフェス(ネットワークにおけるようなネット)とに分かれる。
【0011】
スイープ/ロフトの方法は、2つの異なるカテゴリーに曲線を分けることを必要とし、通常、1つの曲線はガイドであり、その他の曲線は断面形状であるか、またはおそらくは、断面形状が与えられ、ガイドは与えられない。これらの場合のすべてにおいて、入力は慎重に編成されなければならず、結果として得られる表面は、真に自由な形式ではなく、むしろ、(1つの断面から次の断面までの、またはガイド曲線に沿った)所与の方向に向きを決められる、流れるような形状である。スイープおよびロフトは非常に有用であり、CADシステムにおいてきわめて頻繁に使用されるが、得られるべき形状の詳細な図を必要とし、したがって、制約のない試行錯誤型のアプローチをサポートしないので、3D形状の真に自由な形式のスケッチングに適用可能ではない。
【0012】
ネットワークサーフェス(network surface)(略してネット)は、最もよく知られているのがCoons曲面である一群の技術である。Coons曲面の優れた論考を見つけることができる(例えば、非特許文献4参照)。上述のCATIAのネットサーフェス、または曲線に収束する特定の細分割スキームを定義することに基づく、細分割曲面を曲線に当てはめる方法を扱う出版物(例えば、非特許文献5参照)に記載の方法を含む多くのその他の種類のネットサーフェスが存在する。すべてのネットサーフェスは、それらが曲線のネットワークを補間するという点が共通している。表面が曲線を通過するので、曲線は互いに交わり、閉ループを有する格子を形成しなければならない。これは、曲線の組をそれらが互いに接触するように3Dで自由にスケッチすることは実際には不可能であるので、ほとんどの芸術的な作業にとって致命的な条件である。
【0013】
やはり言及しておくべきなのは、当てはめに関する参考文献である(例えば、非特許文献6参照)。この参考文献に記載の方法は、全体的な目標(general target)に対して働く(すべての点がそれらが到達すべき目標の位置を有する)。
【0014】
このような状況の中で、複数の3D曲線から表面を生成するための改善されたソリューションに対するニーズが依然として存在する。
【先行技術文献】
【特許文献】
【0015】
【特許文献1】米国特許第7,595,799号明細書
【特許文献2】米国特許第7,400,323号明細書
【非特許文献】
【0016】
【非特許文献1】"Geometric Modeling", 3rd Edition, by Michael E. Mortenson, Industrial Press, May, 2006
【非特許文献2】"ILoveSketch: As-natural-as-possible sketching system for creating 3D curve models," ACM Symposium on User Interface Software and Technology 2008, Monterey, CA, USA, October 19-22, 2008
【非特許文献3】"EvcrybodyLovesSketch: 3D Sketching for a Broader Audience," Seok-Hyung Bae, Ravin Balakrishnan, and Karan Singh, Proceedings of ACM Symposium on User Interface Software and Technology 2009 (Victoria, BC, Canada, October 4-7, 2009, pp. 59-68
【非特許文献4】"Discrete Coons Patches" Farin & Hansford, Computer Aided Geometric Design 16 (1999) 691-700
【非特許文献5】"Interpolating Nets of Curves by Smooth Subdivision Surfaces", Levin, Siggraph 99
【非特許文献6】"fitting subdivision surfaces", by Litke, Levin and Schroder, Siggraph 2001
【発明の概要】
【発明が解決しようとする課題】
【0017】
このような状況の中で、複数の3D曲線から表面を生成するための改善されたソリューションに対するニーズが依然として存在する。
【課題を解決するための手段】
【0018】
1つの態様によれば、したがって、複数の3D曲線から表面を生成するための、コンピュータによって実施される方法が提供される。方法は、複数の3D曲線を与えるステップと、曲線の対の間のクロッシング(crossing)を決定するステップと、クロッシングを表すノード、および隣り合うクロッシングを表すノードの対を接続する弧を含む基底グラフ(base graph)を定義するステップと、グラフから、3Dの位置によって定義される頂点、および頂点の対を接続するエッジを含むメッシュを決定するステップと、メッシュに表面を当てはめるステップとを含む。
【0019】
方法は、以下のうちの1つまたは複数を含み得る。
【0020】
クロッシングを決定するステップは、曲線のそれぞれの対の間の少なくとも1つのクロッシングを、曲線のそれぞれの対のうちの異なる曲線にそれぞれが属する点の対として決定するステップを含む。
【0021】
方法は、複数の3D曲線を土台(support)に射影し、それによって、複数の対応する射影された曲線を得るステップと、射影された曲線の対の間のクロッシングを決定するステップと、射影された曲線の対の間のクロッシングに対応する曲線の点の対を取得するステップとを含む。
【0022】
複数の3D曲線を土台に射影するステップは、複数の3D曲線を、線分(segment)の組に存するポリライン(poly−line)に離散化するステップと、線分を土台に射影し、それによって、複数の対応する射影された線分を得るステップとを含み、射影された曲線の対の間のクロッシングを決定するステップは、同じボクセルに属する異なる曲線に対応する射影された線分の対を決定するステップと、決定された射影された線分の対の間の両垂線(bi−perpendicular)を決定するステップと、両垂線の末端を決定するステップとを含む。
【0023】
メッシュを決定するステップは、グラフのすべてのタイル(tile)が3つまたは4つの弧を有する面に分割されるまでグラフに弧および/またはノードを追加するステップを含む。
【0024】
メッシュを決定するステップは、T字型の接続がなくなるまでグラフに弧および/またはノードを追加するステップを含む。
【0025】
メッシュを決定するステップは、メッシュの細分割スキームにしたがってグラフに弧および/またはノードを追加するステップを含む。
【0026】
クロッシングは、曲線のそれぞれの対のうちの異なる曲線にそれぞれが属する点の対として決定された、曲線のそれぞれの対の間の少なくとも1つのクロッシングを含み、メッシュを決定するステップは、少なくとも1つのクロッシングを表すノードに点の対の中間の3Dの位置を関連付けるステップを含む。
【0027】
メッシュを決定するステップは、グラフにノードを追加するステップと、所与の追加されたノードに、ノードを追加する前のグラフに対する所与のノードのトポロジー上の位置(topological position)に依存する3Dの位置を関連付けるステップとを含む。
【0028】
所与の追加されたノードに関連付けられる3Dの位置は、その所与の追加されたノードのトポロジー上の位置が、ノードを追加する前のグラフの弧の上である場合、その弧の末端のノードに関連付けられる3Dの位置に応じてその弧によって表される曲線をずらすことによって計算された位置であり、または、当該ノードのトポロジー上の位置が、4つの辺を持つグラフにノードを追加する前のグラフのタイルの中にある場合、Coons法(Coons method)によって計算された位置であり、または、任意のその他の場合、隣接するノードの3Dの位置を平均することによって計算された位置である。
【0029】
複数の3D曲線は、フリーハンドでスケッチされる曲線を含む。
【0030】
上述の方法を実行するための命令をその上に記録する少なくとも1つのメモリと、メモリに結合された少なくとも1つのプロセッサと、プロセッサに結合され、命令の実行に好適な少なくとも1つのグラフィカルユーザインターフェースとを含むCADシステムがさらに提案される。
【0031】
上述の方法を実行するための命令を含むコンピュータプログラムが、さらに提案される。
【0032】
上述のコンピュータプログラムをその上に記録するコンピュータ可読ストレージ媒体が、さらに提案される。
【0033】
本発明の実施形態が、次に、非限定的な例として、添付の図面を参照して説明される。
【図面の簡単な説明】
【0034】
【図1】方法の例の流れ図である。
【図2】グラフィカルユーザインターフェースの例を示す図である。
【図3】クライアントコンピュータシステムの例を示す図である。
【図4】方法の例の流れ図である。
【図5】方法の例を概略的に示す図である。
【図6】方法の例を概略的に示す図である。
【図7】方法の例を概略的に示す図である。
【図8】方法の例を概略的に示す図である。
【図9】方法の例を概略的に示す図である。
【図10】方法の例を概略的に示す図である。
【図11】方法の例を概略的に示す図である。
【図12】方法の例を概略的に示す図である。
【図13】方法の例を概略的に示す図である。
【図14】方法の例を概略的に示す図である。
【発明を実施するための形態】
【0035】
図1は、複数の3D曲線から表面を生成するための、コンピュータによって実施される方法の例の流れ図を示す。方法は、複数の3D曲線を与えるステップ(S10)と、曲線の対の間のクロッシングを決定するステップ(S20)と、基底グラフを定義するステップ(S30)とを含む。基底グラフは、クロッシングを表すノードと、隣り合うクロッシングを表すノードの対を接続する弧とを含む。方法は、グラフから、3Dの位置によって定義される頂点、および頂点の対を接続するエッジを含むメッシュを決定するステップ(S40)も含む。方法は、次に、メッシュに表面を当てはめるステップ(S50)を含む。そのような方法は、複数の3D曲線からの表面の生成を改善する。
【0036】
方法は、CADでモデリングされるオブジェクトを設計するプロセスに含まれ得る。「CADでモデリングされるオブジェクトを設計する」とは、CADでモデリングされるオブジェクトを作り込むプロセスの少なくとも一部である任意のアクションまたは一連のアクションを指す。したがって、方法は、CADでモデリングされるオブジェクトを一から作成することを含み得る。あるいは、方法は、既に作成されたCADでモデリングされるオブジェクトを与え、次いで、そのCADでモデリングされるオブジェクトを修正することを含み得る。いずれの場合も、方法によって生成される表面は、CADでモデリングされるオブジェクト、または少なくともその一部、例えば、CADでモデリングされるオブジェクトの境界を表すことができる。方法が複数の3D曲線からの表面の生成をより容易にするので、方法は、CADでモデリングされるオブジェクトの設計もより容易にする。
【0037】
モデリングされるオブジェクトは、CADシステムのメモリに記憶されたデータによって定義される任意のオブジェクトである。その意味を拡張して、表現「モデリングされるオブジェクト」は、データ自体を表す。システムの種類に応じて、モデリングされるオブジェクトは、異なる種類のデータによって定義される可能性がある。CADシステムは、少なくとも、CATIAなどの、モデリングされるオブジェクトのグラフィカルな表現に基づいてモデリングされるオブジェクトを設計するのに好適な任意のシステムである。したがって、CADでモデリングされるオブジェクトを定義するデータは、モデリングされるオブジェクトの表現を可能にするデータ(例えば、例えば空間内の相対的な位置を含む形状データ)を含む。CADシステムは、例えば、エッジまたは線を、特定の場合には面または表面とともに用いて、CADでモデリングされるオブジェクトを表すことができる。線、エッジ、または表面は、さまざまな方法、例えば、NURBS(non−uniform rational B−spline)で表され得る。特に、CADファイルは、ジオメトリが生成され得る仕様を含むことができ、ひいては、そのジオメトリが、表現が生成されることを可能にする。モデリングされるオブジェクトの仕様は、単一のCADファイルまたは複数のCADファイルに記憶される可能性がある。CADシステムにおいてモデリングされるオブジェクトを表すファイルの典型的なサイズは、部分ごとに1メガバイトの範囲内である。また、モデリングされるオブジェクトは、通常、数千個の部分を組み立てたものである可能性がある。
【0038】
方法は、製造プロセスに含まれる可能性があり、製造プロセスは、方法を実行した後、CADでモデリングされるオブジェクトに対応する物理的な製品を生産することを含み得る。どの場合でも、方法によって複数の3D曲線から生成される表面は、製造オブジェクト(manufacturing object)、例えば、そのようなオブジェクトの境界を表すことができる。製造オブジェクトは、部品、または部品の組立体などの製品である可能性がある。方法は、設計をより容易にするので、製品の製造をより速くすることもでき、製造プロセスの生産性を高める。
【0039】
方法は、コンピュータによって実施される。このことは、方法が少なくとも1つのコンピュータまたは同様の任意のシステムで実行されることを意味する。別途述べられない限り、方法のすべてのステップは、コンピュータによって、すなわち、ユーザの介入なしに実行される。例えば、決定するステップ(S20)と、定義するステップ(S30)と、決定するステップ(S40)と、次いで、当てはめるステップ(S50)とは、コンピュータ単独で実行される可能性がある一方、複数の3D曲線を与えるステップ(S10)は、ユーザインタラクションによって実行される可能性がある。したがって、ユーザは、複数の3D曲線を与える(S10)ために介入することができ、次いで、方法が、自動的に作動することができる。それによって、方法は、後で検討される決定するステップ(S20)と、定義するステップ(S30)と、決定するステップ(S40)と、次いで、当てはめるステップ(S50)とによって複数の3D曲線からの表面の自動生成を可能にする。方法のこれらのステップの一部がユーザの介入を認める可能性があることにも言及しておくべきである。例えば、決定するステップ(S20)と、定義するステップ(S30)と、決定するステップ(S40)と、次いで、当てはめるステップ(S50)とは、後で検討されるようにコンピュータ単独で自動的に実行され得るが、ユーザは(例えば、コンピュータによって実行されるアルゴリズムの結果を修正するため、例えば、(S30)で定義された基底グラフを修正するために)介入する可能性がある。
【0040】
方法のコンピュータによる実施の典型的な例は、この目的に好適なグラフィカルユーザインターフェース(GUI)を含むCADシステムで方法を実行することである。CADシステムは、ハードウェアを含み、GUIは、いかなるソフトウェアもインストールせずに方法を実行するのに好適である。換言すれば、ソフトウェアは、直ちに使用するためにGUI上で既に利用可能である(またはGUIに結合されている)。言い換えると、システムは、プロセッサに結合されたメモリに符号化された命令を含み、命令が、方法を実行するための手段を提供する。そのようなシステムは、複数の3D曲線からの表面の生成が容易なツールである。したがって、そのようなシステムは、概してクリエイティブなアーティストのユーザであり、複雑なCADシステムに馴染みのない専門家のデザイナーを含む多様なユーザによって使用され得る。
【0041】
システムは、CAEおよび/またはCAMシステムである可能性もあり、CADでモデリングされるオブジェクトは、CAEでモデリングされるオブジェクトおよび/またはCAMでモデリングされるオブジェクトである可能性もある。実際、モデリングされるオブジェクトはCAD、CAE、およびCAMシステムの任意の組み合わせに対応するデータによって定義され得るので、これらのシステムは互いに排他的ではない。
【0042】
曲線は3D(すなわち、3次元)であるので、方法によって生成される表面も3Dである可能性がある。これは、表面が、その表面の3D表現を可能にするデータによって定義されることを意味する。3D表現は、表現された表面をすべての角度から見ることを可能にする。例えば、3Dで表されるとき、3Dの表面は、その表面の軸のうちのいずれかのまわり、または表現が表示されるスクリーン内の任意の軸のまわりで処理され、回転されることができる。これは、3Dでモデリングされていない2Dアイコンをはっきりと除外する。3D表現の表示は、設計を容易にする(すなわち、デザイナーがそれらのデザイナーのタスクを統計的に完成する速さを上げる)。これは、製品の設計が製造プロセスの一部であるので、産業の製造プロセスの速度を上げる。
【0043】
3D曲線および生成される表面は、パラメトリックである可能性がある。このことは、表面が、多様なCADのオペレーションで入力として使用できる状態にあることを保証する。パラメトリックな形状(曲線または表面)は、少なくとも1つのパラメータの少なくとも1つの関数によってモデリングされる形状である(すなわち、そのような関数がシステムのメモリに記憶される)。関数は、形状の点の位置を与えることができる。例えば、3Dパラメトリック曲線は、関数C(u)=(x(u),y(u),z(u))によってモデリングされることができ、3Dパラメトリック表面は、関数S(u,v)=(x(u,v),y(u,v),z(u,v))、例えば、NURBSによってモデリングされることができる。CADの分野において、パラメトリック関数による曲線または表面などのCADでモデリングされるオブジェクトのモデリングの要素は、形状に対してCADのオペレーションを実行することを可能にする。実際、ほとんどのCADシステムのCADのオペレーションは、オブジェクトの表現である単純なピクセルマップに対しては実行可能でない。換言すれば、CADシステムのほとんどのCADのオペレーションは、実行されるべき入力としてパラメトリック関数を必要とする。
【0044】
図2は、典型的なCADシステムのGUIの例を示す。
【0045】
GUI2100は、標準メニューバー2110、2120、ならびに下ツールバーおよび横ツールバー2140、2150を有する典型的なCADのようなインターフェースである可能性がある。そのようなメニューバーおよびツールバーは、当技術分野で知られているように、それぞれのアイコンが1つまたは複数のオペレーションまたは機能に関連付けられるユーザが選択可能なアイコンの組を含む。これらのアイコンの一部は、GUI2100に表示された3Dモデリングされるオブジェクト2000を編集し、および/またはその3Dモデリングされるオブジェクトに作用するように適合されたソフトウェアツールに関連付けられる。ソフトウェアツールは、ワークベンチにグループ化される可能性がある。各ワークベンチは、ソフトウェアツールのサブセットを含む。特に、ワークベンチのうちの1つは、モデリングされる製品2000の形状的特徴を編集するのに好適な編集ワークベンチである。オペレーションにおいて、デザイナーは、例えば、オブジェクト2000の一部を事前に選択し、それから、適切なアイコンを選択することによってオペレーションを開始する(例えば、寸法、色などを変更する)か、または形状の制約を編集することができる。例えば、典型的なCADのオペレーションは、スクリーン上に表示された3Dモデリングされるオブジェクトの穴開けまたは折り曲げのモデリングである。
【0046】
GUIは、例えば、表示された製品2000に関連するデータ2500を表示することができる。図2の例においては、「フィーチャーツリー(feature tree)」として表示されるデータ2500およびそれらの3D表現2000は、ブレーキキャリパーおよびディスクを含むブレーキ組立体に関する。GUIは、例えば、オブジェクトの3Dの向きを決めることを容易にするため、編集された製品のオペレーションのシミュレーションを引き起こすため、または表示された製品2000のさまざまな属性をレンダリングするためのさまざまな種類のグラフィックツール2130、2070、2080をさらに示すことができる。カーソル2060は、ユーザがグラフィックツールとインタラクションすることを可能にするための触覚装置によって制御される可能性がある。
【0047】
図3は、クライアントコンピュータシステム、例えば、ユーザのワークステーションとしてのシステムのアーキテクチャの例を示す。
【0048】
クライアントコンピュータは、内部通信バス1000に接続された中央演算処理装置(CPU)1010と、やはりバスに接続されたランダムアクセスメモリ(RAM)1070とを含む。クライアントコンピュータは、バスに接続されたビデオランダムアクセスメモリ1100に関連付けられるグラフィックス処理ユニット(GPU)1110をさらに備える。ビデオRAM1100は、当技術分野においてはフレームバッファとしても知られる。大容量ストレージデバイスコントローラ1020が、ハードドライブ1030などの大容量メモリデバイスへのアクセスを管理する。コンピュータプログラム命令およびデータを有形で具現化するのに好適な大容量メモリデバイスは、例として、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクおよび取り外し可能なディスクなどの磁気ディスク、光磁気ディスク、ならびにCD−ROMディスク1040を含むすべての形態の不揮発性メモリを含む。上記のいずれも、特別に設計されたASIC(特定用途向け集積回路)によって補完されるか、または特別に設計されたASIC(特定用途向け集積回路)に組み込まれることができる。ネットワークアダプタ1050が、ネットワーク1060へのアクセスを管理する。クライアントコンピュータは、カーソル制御デバイス、キーボードなどの触覚装置1090も含み得る。カーソル制御デバイスは、ユーザが、図2を参照して言及されたようなスクリーン1080上の任意の所望の位置にカーソルを選択的に位置付けることを可能にするためにクライアントコンピュータで使用される。スクリーンとは、コンピュータモニタなどの、表示が行われ得る任意の補助装置を意味する。加えて、カーソル制御デバイスは、ユーザがさまざまなコマンドを選択し、制御信号を入力することを可能にする。カーソル制御デバイスは、システムへの入力制御信号に関するいくつかの信号生成デバイスを含む。概して、カーソル制御デバイスは、マウスである可能性があり、マウスのボタンが信号を生成するために使用される。
【0049】
システムに方法を実行させるために、コンピュータによって実行するための命令を含むコンピュータプログラムが提供され、命令は、この目的のための手段を含む。プログラムは、例えば、デジタル電子回路で、またはコンピュータハードウェア、ファームウェア、ソフトウェアで、またはそれらの組み合わせで実装されることができる。本発明の装置は、プログラム可能なプロセッサによって実行するための機械可読ストレージデバイスに有形で具現化されたコンピュータプログラム製品で実装される可能性があり、本発明の方法のステップは、入力データに対してオペレーションを行い、出力を生成することによって本発明の機能を実行するための命令のプログラムを実行するプログラム可能なプロセッサによって実行され得る。有利なことに、命令は、データストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、それらにデータおよび命令を送信するために結合された少なくとも1つのプログラム可能なプロセッサを含むプログラム可能なシステム上で実行可能である1つまたは複数のコンピュータプログラムで実施され得る。アプリケーションプログラムは、必要に応じて、高水準手続型もしくはオブジェクト指向プログラミング言語で、またはアセンブリもしくは機械語で実施される可能性があり、いずれの場合も、言語は、コンパイル型またはインタープリタ型言語である可能性がある。プログラムは、完全インストールプログラムであるか、または更新プログラムである可能性がある。後者の場合、プログラムは、既存のCADシステムを、システムが方法を実行するのに好適である状態に更新する。
【0050】
方法は、複数の3D曲線を与えるステップ(S10)を含む。例えば、複数の3D曲線が、ユーザによって与えられることができる。例えば、複数の3D曲線は、フリーハンドでスケッチされる曲線を含む。フリーハンドで曲線をスケッチするとは、ユーザが、パラメトリックである可能性がある曲線に変換されるストロークを描くことを意味する。ストロークは、例えばスクリーンが感知式スクリーンである場合にはスクリーン上に直接描かれることができ、または感知式のタブ上に描かれることができる。これは、表面の生成を、専門家のデザイナーなどの、紙に設計をスケッチすることに慣れているデザイナーにとって容易で直観的にする。
【0051】
方法は、曲線の対の間のクロッシングを決定するステップ(S20)も含む。曲線の所与の対の間のクロッシングは、曲線の所与の対が互いに特に近い区間の指示である。「互いに近い」とは、所与の対の2つの曲線の間の距離が所定の閾値未満であることを意味する。互いに「特に」近いとは、クロッシングにおける2つの曲線の間の距離がそれらの曲線のその他の区間に対してよりも短いことを意味する。2つの曲線の間のクロッシングは、2つの曲線の間の交差である可能性がある。しかし、曲線はユーザによって与えられる可能性があるので、ユーザがそれらの曲線を交わらせることを意図したが、それらの曲線は、通常、厳密には互いに交わらない可能性が高い。したがって、クロッシングは、典型的な交差の拡張であり、曲線を交わらせようとするユーザの意図をくみ取る。一例において、クロッシングを決定するステップ(S20)は、曲線のそれぞれの対の間の少なくとも1つのクロッシングを、曲線のそれぞれの対のうちの異なる曲線にそれぞれが属する点の対として決定するステップを含む。言い換えると、少なくとも1つのクロッシングは、厳密な交差ではない。したがって、方法は、曲線が完全には交わらないが、曲線の間の意図される交差をとらえる。これは、曲線を与える(S10)前に曲線を定義するときに高い柔軟性を与える。
【0052】
次いで、方法は、基底グラフ(すなわち、初期グラフ)を定義するステップ(S30)を含む。基底グラフは、クロッシングを表すノードと、隣り合うクロッシングを表すノードの対を接続する弧とを含む。2つのクロッシングは、それらのクロッシングが同じ曲線に関連付けられ、それらのクロッシングの間にその他のクロッシングが存在しない場合に隣り合うとみなされる。
【0053】
次に、方法は、グラフから、3Dの位置によって定義される頂点、および頂点の対を接続するエッジを含むメッシュを決定するステップ(S40)を含む。メッシュは、CADで広く使用される特定の種類のグラフである。メッシュは、各ノード(メッシュの場合には「頂点」と呼ばれ、一方、弧は「エッジ」と呼ばれる)に関連する3Dの位置を有するグラフである。最後に、方法は、メッシュに表面を当てはめるステップ(S50)を含む。
【0054】
実際、CADにおいては、メッシュが、メッシュに表面を当てはめることによって表面を生成するために広く使用される。方法は、メッシュに表面を当てはめるためのCADシステムの任意の既存のモジュールを適用することができる。当てはめる表面は、細分割曲面またはNURBSである可能性がある。そのような表面は、パラメトリックであり、それらの表面を単に表現するだけでなく表面の将来的な使用を可能にする。特に、生成されるべき表面が部品または部品の組立体などの製品を表すときは、細分割曲面が、そのようなモデリングされるオブジェクトに必要とされる高レベルの形状の精度を提供する。
【0055】
したがって、方法は、クロッシングの概念の使用のおかげで、3Dで交わらない曲線の組への表面の当てはめを可能にする。曲線が互いに接触することを必要とする従来技術の方法とは対照的に、アーティストが曲線が厳密に交わることを気に掛けることなしに3Dで曲線を描くことを可能にすることには計り知れない利点がある。
【0056】
さらに、方法は、曲線が与えられると、完全に自動であることができる。したがって、ユーザは、いかなるガイド曲線またはそれに類するものを示すことも必要としない。方法は、クロッシングを評価し、クロッシングからグラフを定義し、次いで、グラフからメッシュを生成することによってグラフに表面を当てはめる。メッシュがグラフから生成されるので、ユーザの意図が尊重される(すなわち、生成される表面が、与えられた曲線を表現する)ことが保証される。
【0057】
次に、方法の例が、図4〜図14を参照して説明される。図4は、方法の例の流れ図を示す。図5〜図14は、図4の方法のステップの例を示す。
【0058】
この例において、方法は、複数の3D曲線を土台に射影するステップ(S22)を含む。土台は、ユーザが生成したい表面の形を(例えば、大まかに)表す3D形状(表面または体積)である。それによって、複数の対応する射影された曲線が得られる。次いで、この例の方法は、射影された曲線の対の間のクロッシングを決定するステップ(S23)を含む。最後に、方法は、射影された曲線の対の間のクロッシングに対応する曲線の点の対を取得するステップ(S24)を含む。換言すれば、3D曲線の間のクロッシングは、3D曲線の射影の間のクロッシングに対応するように決定される(S20)。したがって、この例において、クロッシングを決定するステップ(S20)は、土台を介して実行され、このことは、クロッシングが検出されるべき場所についてより優れた制御を可能にする。
【0059】
実際、土台は、インジケータ形状(indicator shape)として働く。図5〜図7を参照すると、ユーザは、そのような初期のインジケータ形状50(すなわち、土台)を作成するか、またはカタログから選択することができる。実際、任意的な前処理ステップとして、インジケータ形状が使用され得る。3D曲線を描く前に、ユーザは、最初に、3D形状を構築するための任意の迅速な方法を用いて大まかな初期の形状を作成するか、またはカタログから形状を取得することも可能である。ボリューメトリックなクレイモデリング(volumetric clay−modeling)ソフトウェアが、インジケータ形状を作成する目的で使用され得る。次に、ユーザは、形状を実質的に黒板として使用して、インジケータ形状のまわりに、またはまさにインジケータ形状自体の上に曲線を3Dで描く。このように、ユーザは、曲線62を作成することができ、曲線62がインジケータ形状50に射影される。特に、(図6においてインジケータ形状50上の破線として示される)曲線の射影62を介して曲線の間のクロッシングを決定した後に、最終的に、表面70が、方法によって自動的に生成および更新されることができる。その後の表面70の構築は、曲線62にのみ依存する可能性がある。使用される場合、インジケータ形状50は、曲線のクロッシングを検出するのを支援するように働くことができる。インジケータ形状が、クロッシングのより安定した検出を可能にし、したがって有益であることが分かっている。このようにして、ユーザは、曲線が互いにどのように交わるかをより思い通りに制御する。
【0060】
複数の3D曲線を土台に射影するステップ(S22)は、複数の3D曲線をポリラインに離散化するステップ(S221)(すなわち、サンプリングするステップ)を含み得る。ポリラインは、広く知られているように、線分の組である。次いで、射影するステップ(S22)は、線分を土台に射影するステップ(S222)を含み得る。それによって、複数の対応する射影された線分(すなわち、線分の射影)が得られる。この時点で、3D曲線は、3D曲線の離散化から生じるポリラインの射影として表現される。土台は、ファセット(平面)を含むことができ、したがって、ポリラインの射影は、ポリライン自体である可能性がある。言い換えると、ポリラインの線分の射影、すなわち、「射影された線分」は、やはり線分である可能性がある。また、射影された曲線の対の間のクロッシングを決定するステップ(S23)は、同じボクセルに属する異なる曲線に対応する射影された線分の対を決定するステップ(S231)と、次いで、決定された射影された線分の対の間の両垂線を決定するステップ(S232)と、最後に、両垂線の末端を決定するステップ(S233)とを含み得る。このような進行の方法は、高速なクロッシングの決定(S20)を可能にする。
【0061】
ユーザが3D曲線をスケッチするとき、通常、それらの3D曲線は、厳密には互いに交わらず、アルゴリズムが、(クロッシングの概念を介して)これらの交差を評価し、デザイナーが何を表したいと望むのかを見つけ出さなければならない。この例の方法は、各曲線をポリラインの形態(多くの小さな線分)に変換して近さの計算のコストを削減し、線分の間のクロッシングの探索のためにそれらの線分を土台に射影する。次いで、方法は、2つの射影された線分DaおよびDbに関して図8に示されるように、両方の線分に交わり、それらの線分の両方に垂直である一意的な線(両垂線)を計算することによって線分の間のクロッシングを探索する。2つの交点(図8のxおよびy)が線分DaおよびDb上にあり、これらの交点の間の距離が閾値よりも小さい場合、方法は、そのことを2つの線分が互いに交わるかのように解釈する可能性がある(言い換えると、クロッシングが決定される)。方法は、2つの曲線上の点xおよびyによって説明されるクロッシングを保存することができる。このテストの時間的コストを削減するために、図9に示されるように、方法はボクセルを使用する可能性がある。そのような場合、方法は、空間を立方体90の格子に分割することができ、同じキューブ92の中にある線分94だけが(それらの線分94の間にクロッシングがあるかどうかについて)テストされる。
【0062】
この例において、メッシュを決定するステップ(S40)は、グラフのすべてのタイルが3つまたは4つの弧を有する面に分割されるまでグラフに弧および/またはノードを追加するステップ(S401)を含む。決定されるべきメッシュ(S40)は、(面ごとに3つまたは4つのエッジをそれぞれ有する)三角形メッシュまたは四角形メッシュである可能性がある。四角形メッシュは、高品質な最終的な表面をもたらす。追加するステップ(S401)は、グラフが「不規則」であり、直接メッシュになれる状態にない場合に、面ごとのエッジの数を減らすことを可能にする。グラフが3つまたは4つの弧だけを有するタイル(すなわち、ループ)を持つと、グラフは、三角形または四角形メッシュになることに近づく。
【0063】
クロッシングが決定される(S20)と、方法は、各クロッシングに関して隣接するクロッシングを示すグラフを生成する。2つのクロッシングは、同じ曲線上にあり、間にその他の交差がない場合、隣接している。このグラフから、第1の中間段階のメッシュが生成される。再帰的なアルゴリズムを用いて、方法は、グラフ内のタイルと解釈されるグラフ内のサイクルを検出する。タイルは、3から6個の辺を有するグラフの面である。したがって、この時点で、メッシュがタイルで構成されるが、それらのメッシュは、方法がこの暫定的なメッシュ(intern mesh)を細分割メッシュ(subdivision mesh)などの基本的なモデルに変換することができるように分割される。以下で、分割されていないタイルは、「基底タイル(base tile)」と呼ばれる。それぞれの分割されたタイルに関して、方法は、その分割されたタイルを作成するためにどの基底タイルが分割されたのかについての情報を保持する。
【0064】
潜在的に、タイルは、3から6個以外の辺を有する可能性があるが、任意の数の辺に関して分割スキームが考案され得ることは以下の内容から明らかであろう。実際、その他の場合が滅多になく、デザイナーにとってそれほど役に立たないので、3から6個の辺の範囲をカバーするための最良のあり得る方策の1つが重要であることが分かった。したがって、この例の方法は、最初に、六角形および五角形を三角形または四角形に切り分ける。図10に示されるように、五角形100は、1つのエッジ104を追加することによって1つの四角形102と1つの三角形103とに分割されるか、または1つの頂点107および5つのエッジ108を追加することによって5つの四角形106に分割される可能性がある。図11に示されるように、六角形110は、1つのエッジ113を追加することによって2つの四角形112に分割され得る。
【0065】
この例の方法において、メッシュを決定するステップ(S40)は、T字型の接続がなくなるまでグラフに弧および/またはノードを追加するステップ(S402)をさらに含む。T字型の接続は、曲線が別の曲線とぶつかり(すなわち、別の曲線とのクロッシングを有し)、次いで、終わるときに発生する。曲線が終わる場所が表面の外縁でない場合、T字型の接続がメッシュ内に作られる。T字型の接続は、基本的なサーフェスモデルでいつも許されるとは限らない。この例の方法の目的の1つは、完全に普遍的なままであり、すべての種類のサーフェスモデルをサポートすることである。そのために、方法は、方法がネットワーク全体にすべての切り分けを伝播させ、実質的にT字型の接続をなくすモードを提供する。これは、最終的により高い品質の表面をもたらす。
【0066】
これは、メッシュが四角形および三角形のみを含むときに、トポロジー(topology)の生成の最後のステップとして行われ得る。そのためのアルゴリズムは、反対側のエッジ上のT字型の接続を、アルゴリズムがその上でループすることができるまで、またはアルゴリズムが表面の限界に到達するときに、T字型の接続がもはや問題にならないときまで伝播させることである。アルゴリズムの無限ループを防ぐために、方法は、アルゴリズムが最初の基底タイルに再び到達する場合は伝播を停止することができる。
【0067】
しかし、別の例においては、方法は、T−スプラインなどのT字に接続されたサーフェスモデルを実施する可能性がある。そのような場合、ステップ(S402)は不要であるが、方法の残りは完全に適用可能である。伝播が単純に無効にされ、T字型の接続が残される。
【0068】
図12および図13は、追加するステップ(S402)の例を示す。どちらの図においても、メッシュ120が、T字型の接続122を有する。図12の場合、T字型の接続122は、エッジ124を追加することによって解消され、一方、図13の場合、T字型の接続122は、エッジ126および頂点128を追加することによって解消される。
【0069】
この例の方法において、メッシュを決定するステップ(S40)は、メッシュの細分割スキームにしたがってグラフに弧および/またはノードを追加するステップ(S403)も含む。メッシュの細分割スキームは、任意の知られているメッシュの細分割スキーム、例えば、Catmull−Clark細分割スキームである可能性がある。これは、メッシュの改善と、面ごとに決まった数のエッジを得ることとを可能にする。これは、表面を当てはめるステップ(S50)を見越してメッシュを平滑化し、それによってより滑らかな表面をもたらす。
【0070】
クロッシングが、曲線のそれぞれの対のうちの異なる曲線にそれぞれが属する点の対として決定された、曲線のそれぞれの対の間の少なくとも1つのクロッシングを含む場合が、次に検討される。言い換えると、これは、曲線が互いに完全には交わらないが、互いに交わるように意図されている場合である。そのような場合、メッシュを決定するステップ(S40)は、図4の例にあるように、少なくとも1つのクロッシングを表すノードに点の対の中間の3Dの位置を関連付けるステップ(S406)を含み得る。実際、メッシュに表面を当てはめる(S50)ために、方法は、前もってメッシュの頂点に3Dの位置を関連付ける可能性がある(S406、S407)。クロッシング表す頂点に関して、クロッシングを形成する2つの点の中間が、方法によって使用され得る。もちろん、(一例においては起こり得ない)完全な交差であるクロッシングに関しては、交差の位置が使用されることができる。
【0071】
(メッシュを決定するステップ(S40)がグラフにノードを追加するステップ(S401、S402、S403)を含む場合の)メッシュのその他の頂点に関して、方法は、所与の追加されたノードに、ノードを追加する前のグラフに対する所与のノードのトポロジー上の位置に依存する3Dの位置を関連付けるステップ(S407)を含み得る。例えば、所与の追加されたノードに関連付けられる3Dの位置は、その所与の追加されたノードのトポロジー上の位置が、ノードを追加する前のグラフの弧の上である場合、その弧の末端のノードに関連付けられる3Dの位置に応じてその弧によって表される曲線をずらすことによって計算された位置である可能性がある。
【0072】
この場合が、図14に示される。図14を参照すると、3つの曲線140、142、および144が示されている。曲線140と曲線142の間のクロッシング(x1,y1)、および曲線140と曲線144の間のクロッシング(x2,y2)が、決定されている。これらのクロッシングは、AおよびBと表記され、それぞれ、x1とy1との中間の位置、次いで、x2とy2との中間の位置が関連付けられる、メッシュのそれぞれの最終的な頂点に対応する。この例において、方法は、頂点Xをメッシュに追加している。頂点Xは、トポロジー上、曲線140に属する。頂点Xに関連付けられる3Dの位置は、この場合、AおよびBの3Dの位置のそばを通るように曲線140をずらし、曲線上のXのトポロジー上の位置に対応するずらされた曲線上の位置を求めることによって計算される(後者は、Xがメッシュに追加された方法によって与えられる)。
【0073】
所与の追加されたノードのトポロジー上の位置が、4つの辺を持つグラフにノードを追加する前のグラフのタイルの中にある場合、所与の追加されたノードに関連付けられる3Dの位置は、よく知られているCoons法によって計算された位置である可能性がある。任意のその他の場合、所与の追加されたノードに関連付けられる3Dの位置は、隣接するノードの3Dの位置を平均することによって計算される可能性がある。後者の場合、意図される結果に収束させるより滑らかな結果を得るために、平均が繰り返される可能性があり、計算された3Dの位置は毎回線を引き直される。
【0074】
当業者が理解するであろうように、方法は、このように、各頂点がどの基底タイルに属するかを追跡することができる。さらに、4つの辺を持つタイルの場合、(タイルが分割されるときに必ず更新される)(u,v)座標もメモリに保持される可能性がある。
【技術分野】
【0001】
本発明は、コンピュータプログラムおよびシステムの分野に関し、より詳細には、複数の3D曲線から表面を生成するための方法、システム、およびプログラムに関する。
【背景技術】
【0002】
オブジェクトの設計、エンジニアリング、および製造のためのいくつかのシステムおよびプログラムが、市場で提示されている。CADはコンピュータ支援設計の頭字語であり、例えば、CADはオブジェクトを設計するためのソフトウェアソリューションに関する。CAEはコンピュータ支援エンジニアリングの頭字語であり、例えば、CAEは将来の製品の物理的な挙動をシミュレーションするためのソフトウェアソリューションに関する。CAMはコンピュータ支援製造の頭字語であり、例えば、CAMは製造プロセスおよびオペレーションを定義するためのソフトウェアソリューションに関する。そのようなシステムにおいては、グラフィカルユーザインターフェース(GUI)が、技法の効率に関する重要な役割を担う。これらの技法は、製品ライフサイクル管理(PLM)システムに組み込まれる可能性がある。PLMは、企業が、拡張エンタープライズ(extended enterprise)の概念全体にわたって構想から製品寿命の終わりまで、製品データを共有し、共通のプロセスを適用し、製品の開発に関する企業知識を利用することを支援するビジネス戦略を指す。
【0003】
(CATIA、ENOVIA、およびDELMIAの商標で)Dassault Systemesによって提供されるPLMソリューションは、製品エンジンニアリングの知識を体系化するエンジニアリングハブ(Engineering Hub)と、製造エンジニアリングの知識を管理する製造ハブ(Manufacturing Hub)と、エンジニアリングハブおよび製造ハブへの企業のインテグレーションおよび接続を可能にするエンタープライズハブ(Enterprise Hub)とを提供する。システムは、製品、プロセス、リソースを結びつけるオープンなオブジェクトモデルを一緒になって提供して、最適化された製品定義、製造準備、生産、およびサービスを推進する動的で知識に基づいた製品作りおよび意志決定支援を可能にする。
【0004】
これらのシステムの一部は、大きなくくりでは形状モデリング、より正確には表面設計に入る、複数の3D曲線からの表面の生成を可能にする。入門的な出版物がある(例えば、非特許文献1)。特に興味深いのは、任意の種類の複合的な表面(1つまたは複数の表面のキルト(quilt))、特に、曲面、(平らなファセットからなる)三角形メッシュ表面、または細分割曲面(subdivision surface)のキルトである。
【0005】
B−Rep(境界表現)は、すべての上述の表面を単一の概念にグループ化するので、ここで言及すべき数学的モデルである。B−Repは、R2の定義域およびR3の値域を有する1つまたは複数の関数fi(s,t)→(x,y,z)と、これらの個々の部分がどのように一緒に「縫い合わされる」かについての論理的な情報とをまとめる。縫い合わせは、表面が「切り取られる」ようなものである可能性があり、表面が「切り取られる」とは、各関数のR2の定義域は、その全体が使用されないことを意味する。いかにして曲線の組からそのような表面のパッチワーク(patchwork)を最も上手く生成するかは、形状モデリングの古くからの課題である。三角形メッシュの特別な場合、それぞれの個々の表面要素は、平らなファセット、言い換えると、平面である。B−Repの広く知られている定義は、STEP AP203である。これは、CATIA V5およびCATIA V6がCATPartを.stpファイルとしてエクスポートするときに適用する規格である。B−Repは開いている可能性があり、その場合、それらのB−Repはその体積(volume)を取り囲まず、またはB−Repは閉じている可能性があり、その場合、それらのB−Repはその体積の境界を示し、したがって、ソリッドオブジェクトを表す可能性がある。STEP AP203において、それらのB−Repは、それぞれ、キーワードOPEN_SHELLおよびCLOSED_SHELLによって言及される。しかし、用語B−Repが、AP203標準よりも広い意味で使用される可能性がある。AP203においては、開いているB−Repの場合は単に開いているシェル(open shell)と呼ばれ、(キーワード「ADVANCED_BREP_SHAPE_REPRESENTATION」の)用語B−Repは、閉じているシェル(closed shell)の場合のために残されている。体積を取り囲まないB−Repは、多くのサブ関数で構成されるときであっても、(単数形で)表面と呼ばれることが多い。これは、下位部分の間の結合部が滑らかであり、オブジェクトの複合的な性質をユーザに隠すときに特に当てはまる。エンジニアまたはデザイナーは、生成された複合的な形状を単一の表面と言うことが多い。
【0006】
3Dモデル、特に、自由な形式の形状の構築を容易にするために、一部のCADシステムは、より低次元の入力の組からB−Rep(またはその一部)を生成するためのさまざまな方法を提供する。これらの入力は、規則的な間隔の点の組、点および接平面の組、プロファイルおよび突出の方向、スイーププロファイル(sweep profile)とスイープレール(sweep rail)との組み合わせ、補間すべき曲線の組である可能性がある。曲線の組の場合、これらは、概して、完全に交わるか、または順番に並べられることが求められる。例えば、CATIA V5/6のネットサーフェス(NET surface)は、交わる曲線の格子から表面を生成する。
【0007】
R2からR3へと写像するさまざまな関数が、B−Repを形成するために使用され得る。これらは、(三角形メッシュにおけるような)単純な平面から非常に高次の多項式にまで及ぶことが可能であり、円柱などの正準表面も含まれる。例えば、CATIAに統合されたCatmull−Clark細分割曲面を利用することもできる(例えば、特許文献1および特許文献2参照)。これらのシステムにおいて、細分割曲面は、最初に、リアルタイムの視覚化のために三角形メッシュに変換され、次に、最終的な高品質の結果のためのB−スプライン曲面に変換される。
【0008】
やはり言及しておくべきなのは、コンピュータ支援曲線スケッチング(Curve Sketching)である。曲線からの表面の生成は、曲線が素早く容易に作成され得る状況で最も上手く使用される。曲線スケッチングは、コンピュータグラフィックスの研究の豊富な分野である。曲線スケッチングを示す出版物がある(例えば、非特許文献2および非特許文献3参照)。これらの2つの出版物は、形状を定義する曲線のネットワークを扱うが、形状に表面を被せることは、このオペレーションが難しいために提案しない。
【0009】
複数の3D曲線から表面を生成するための既存のソリューションの1つの問題は、形状を定義する際にアーティストまたはエンジニアにほとんど柔軟性が与えられないことである。既存のソリューションでは、制約のない設計のアクションが可能でない。通常、それらのソリューションは、製図版に新しいアイデアを書き留めるときにコンピュータシステムのどんな柔軟性のなさも(当然ながら)我慢することができない非常にクリエイティブなアーティストのユーザを満足させない。それらのソリューションは、試行錯誤、および形状の非常にインタラクティブな修正を許さない。それらのソリューションは、製品設計に携わる者なら誰によっても使用可能なのではなく、製品設計のアーティストによってのみ使用可能である。すべての人がアイデアを交換する可能性があり、したがって、アーティストと同じ、即座に作成することの制約を受けるので、製品設計に携わるあらゆる人によって使用可能なシステムが有益である。
【0010】
曲線から表面を構築する従来技術の方法は、2つのカテゴリー、すなわち、スイープ/ロフト型の方法とネットサーフェス(ネットワークにおけるようなネット)とに分かれる。
【0011】
スイープ/ロフトの方法は、2つの異なるカテゴリーに曲線を分けることを必要とし、通常、1つの曲線はガイドであり、その他の曲線は断面形状であるか、またはおそらくは、断面形状が与えられ、ガイドは与えられない。これらの場合のすべてにおいて、入力は慎重に編成されなければならず、結果として得られる表面は、真に自由な形式ではなく、むしろ、(1つの断面から次の断面までの、またはガイド曲線に沿った)所与の方向に向きを決められる、流れるような形状である。スイープおよびロフトは非常に有用であり、CADシステムにおいてきわめて頻繁に使用されるが、得られるべき形状の詳細な図を必要とし、したがって、制約のない試行錯誤型のアプローチをサポートしないので、3D形状の真に自由な形式のスケッチングに適用可能ではない。
【0012】
ネットワークサーフェス(network surface)(略してネット)は、最もよく知られているのがCoons曲面である一群の技術である。Coons曲面の優れた論考を見つけることができる(例えば、非特許文献4参照)。上述のCATIAのネットサーフェス、または曲線に収束する特定の細分割スキームを定義することに基づく、細分割曲面を曲線に当てはめる方法を扱う出版物(例えば、非特許文献5参照)に記載の方法を含む多くのその他の種類のネットサーフェスが存在する。すべてのネットサーフェスは、それらが曲線のネットワークを補間するという点が共通している。表面が曲線を通過するので、曲線は互いに交わり、閉ループを有する格子を形成しなければならない。これは、曲線の組をそれらが互いに接触するように3Dで自由にスケッチすることは実際には不可能であるので、ほとんどの芸術的な作業にとって致命的な条件である。
【0013】
やはり言及しておくべきなのは、当てはめに関する参考文献である(例えば、非特許文献6参照)。この参考文献に記載の方法は、全体的な目標(general target)に対して働く(すべての点がそれらが到達すべき目標の位置を有する)。
【0014】
このような状況の中で、複数の3D曲線から表面を生成するための改善されたソリューションに対するニーズが依然として存在する。
【先行技術文献】
【特許文献】
【0015】
【特許文献1】米国特許第7,595,799号明細書
【特許文献2】米国特許第7,400,323号明細書
【非特許文献】
【0016】
【非特許文献1】"Geometric Modeling", 3rd Edition, by Michael E. Mortenson, Industrial Press, May, 2006
【非特許文献2】"ILoveSketch: As-natural-as-possible sketching system for creating 3D curve models," ACM Symposium on User Interface Software and Technology 2008, Monterey, CA, USA, October 19-22, 2008
【非特許文献3】"EvcrybodyLovesSketch: 3D Sketching for a Broader Audience," Seok-Hyung Bae, Ravin Balakrishnan, and Karan Singh, Proceedings of ACM Symposium on User Interface Software and Technology 2009 (Victoria, BC, Canada, October 4-7, 2009, pp. 59-68
【非特許文献4】"Discrete Coons Patches" Farin & Hansford, Computer Aided Geometric Design 16 (1999) 691-700
【非特許文献5】"Interpolating Nets of Curves by Smooth Subdivision Surfaces", Levin, Siggraph 99
【非特許文献6】"fitting subdivision surfaces", by Litke, Levin and Schroder, Siggraph 2001
【発明の概要】
【発明が解決しようとする課題】
【0017】
このような状況の中で、複数の3D曲線から表面を生成するための改善されたソリューションに対するニーズが依然として存在する。
【課題を解決するための手段】
【0018】
1つの態様によれば、したがって、複数の3D曲線から表面を生成するための、コンピュータによって実施される方法が提供される。方法は、複数の3D曲線を与えるステップと、曲線の対の間のクロッシング(crossing)を決定するステップと、クロッシングを表すノード、および隣り合うクロッシングを表すノードの対を接続する弧を含む基底グラフ(base graph)を定義するステップと、グラフから、3Dの位置によって定義される頂点、および頂点の対を接続するエッジを含むメッシュを決定するステップと、メッシュに表面を当てはめるステップとを含む。
【0019】
方法は、以下のうちの1つまたは複数を含み得る。
【0020】
クロッシングを決定するステップは、曲線のそれぞれの対の間の少なくとも1つのクロッシングを、曲線のそれぞれの対のうちの異なる曲線にそれぞれが属する点の対として決定するステップを含む。
【0021】
方法は、複数の3D曲線を土台(support)に射影し、それによって、複数の対応する射影された曲線を得るステップと、射影された曲線の対の間のクロッシングを決定するステップと、射影された曲線の対の間のクロッシングに対応する曲線の点の対を取得するステップとを含む。
【0022】
複数の3D曲線を土台に射影するステップは、複数の3D曲線を、線分(segment)の組に存するポリライン(poly−line)に離散化するステップと、線分を土台に射影し、それによって、複数の対応する射影された線分を得るステップとを含み、射影された曲線の対の間のクロッシングを決定するステップは、同じボクセルに属する異なる曲線に対応する射影された線分の対を決定するステップと、決定された射影された線分の対の間の両垂線(bi−perpendicular)を決定するステップと、両垂線の末端を決定するステップとを含む。
【0023】
メッシュを決定するステップは、グラフのすべてのタイル(tile)が3つまたは4つの弧を有する面に分割されるまでグラフに弧および/またはノードを追加するステップを含む。
【0024】
メッシュを決定するステップは、T字型の接続がなくなるまでグラフに弧および/またはノードを追加するステップを含む。
【0025】
メッシュを決定するステップは、メッシュの細分割スキームにしたがってグラフに弧および/またはノードを追加するステップを含む。
【0026】
クロッシングは、曲線のそれぞれの対のうちの異なる曲線にそれぞれが属する点の対として決定された、曲線のそれぞれの対の間の少なくとも1つのクロッシングを含み、メッシュを決定するステップは、少なくとも1つのクロッシングを表すノードに点の対の中間の3Dの位置を関連付けるステップを含む。
【0027】
メッシュを決定するステップは、グラフにノードを追加するステップと、所与の追加されたノードに、ノードを追加する前のグラフに対する所与のノードのトポロジー上の位置(topological position)に依存する3Dの位置を関連付けるステップとを含む。
【0028】
所与の追加されたノードに関連付けられる3Dの位置は、その所与の追加されたノードのトポロジー上の位置が、ノードを追加する前のグラフの弧の上である場合、その弧の末端のノードに関連付けられる3Dの位置に応じてその弧によって表される曲線をずらすことによって計算された位置であり、または、当該ノードのトポロジー上の位置が、4つの辺を持つグラフにノードを追加する前のグラフのタイルの中にある場合、Coons法(Coons method)によって計算された位置であり、または、任意のその他の場合、隣接するノードの3Dの位置を平均することによって計算された位置である。
【0029】
複数の3D曲線は、フリーハンドでスケッチされる曲線を含む。
【0030】
上述の方法を実行するための命令をその上に記録する少なくとも1つのメモリと、メモリに結合された少なくとも1つのプロセッサと、プロセッサに結合され、命令の実行に好適な少なくとも1つのグラフィカルユーザインターフェースとを含むCADシステムがさらに提案される。
【0031】
上述の方法を実行するための命令を含むコンピュータプログラムが、さらに提案される。
【0032】
上述のコンピュータプログラムをその上に記録するコンピュータ可読ストレージ媒体が、さらに提案される。
【0033】
本発明の実施形態が、次に、非限定的な例として、添付の図面を参照して説明される。
【図面の簡単な説明】
【0034】
【図1】方法の例の流れ図である。
【図2】グラフィカルユーザインターフェースの例を示す図である。
【図3】クライアントコンピュータシステムの例を示す図である。
【図4】方法の例の流れ図である。
【図5】方法の例を概略的に示す図である。
【図6】方法の例を概略的に示す図である。
【図7】方法の例を概略的に示す図である。
【図8】方法の例を概略的に示す図である。
【図9】方法の例を概略的に示す図である。
【図10】方法の例を概略的に示す図である。
【図11】方法の例を概略的に示す図である。
【図12】方法の例を概略的に示す図である。
【図13】方法の例を概略的に示す図である。
【図14】方法の例を概略的に示す図である。
【発明を実施するための形態】
【0035】
図1は、複数の3D曲線から表面を生成するための、コンピュータによって実施される方法の例の流れ図を示す。方法は、複数の3D曲線を与えるステップ(S10)と、曲線の対の間のクロッシングを決定するステップ(S20)と、基底グラフを定義するステップ(S30)とを含む。基底グラフは、クロッシングを表すノードと、隣り合うクロッシングを表すノードの対を接続する弧とを含む。方法は、グラフから、3Dの位置によって定義される頂点、および頂点の対を接続するエッジを含むメッシュを決定するステップ(S40)も含む。方法は、次に、メッシュに表面を当てはめるステップ(S50)を含む。そのような方法は、複数の3D曲線からの表面の生成を改善する。
【0036】
方法は、CADでモデリングされるオブジェクトを設計するプロセスに含まれ得る。「CADでモデリングされるオブジェクトを設計する」とは、CADでモデリングされるオブジェクトを作り込むプロセスの少なくとも一部である任意のアクションまたは一連のアクションを指す。したがって、方法は、CADでモデリングされるオブジェクトを一から作成することを含み得る。あるいは、方法は、既に作成されたCADでモデリングされるオブジェクトを与え、次いで、そのCADでモデリングされるオブジェクトを修正することを含み得る。いずれの場合も、方法によって生成される表面は、CADでモデリングされるオブジェクト、または少なくともその一部、例えば、CADでモデリングされるオブジェクトの境界を表すことができる。方法が複数の3D曲線からの表面の生成をより容易にするので、方法は、CADでモデリングされるオブジェクトの設計もより容易にする。
【0037】
モデリングされるオブジェクトは、CADシステムのメモリに記憶されたデータによって定義される任意のオブジェクトである。その意味を拡張して、表現「モデリングされるオブジェクト」は、データ自体を表す。システムの種類に応じて、モデリングされるオブジェクトは、異なる種類のデータによって定義される可能性がある。CADシステムは、少なくとも、CATIAなどの、モデリングされるオブジェクトのグラフィカルな表現に基づいてモデリングされるオブジェクトを設計するのに好適な任意のシステムである。したがって、CADでモデリングされるオブジェクトを定義するデータは、モデリングされるオブジェクトの表現を可能にするデータ(例えば、例えば空間内の相対的な位置を含む形状データ)を含む。CADシステムは、例えば、エッジまたは線を、特定の場合には面または表面とともに用いて、CADでモデリングされるオブジェクトを表すことができる。線、エッジ、または表面は、さまざまな方法、例えば、NURBS(non−uniform rational B−spline)で表され得る。特に、CADファイルは、ジオメトリが生成され得る仕様を含むことができ、ひいては、そのジオメトリが、表現が生成されることを可能にする。モデリングされるオブジェクトの仕様は、単一のCADファイルまたは複数のCADファイルに記憶される可能性がある。CADシステムにおいてモデリングされるオブジェクトを表すファイルの典型的なサイズは、部分ごとに1メガバイトの範囲内である。また、モデリングされるオブジェクトは、通常、数千個の部分を組み立てたものである可能性がある。
【0038】
方法は、製造プロセスに含まれる可能性があり、製造プロセスは、方法を実行した後、CADでモデリングされるオブジェクトに対応する物理的な製品を生産することを含み得る。どの場合でも、方法によって複数の3D曲線から生成される表面は、製造オブジェクト(manufacturing object)、例えば、そのようなオブジェクトの境界を表すことができる。製造オブジェクトは、部品、または部品の組立体などの製品である可能性がある。方法は、設計をより容易にするので、製品の製造をより速くすることもでき、製造プロセスの生産性を高める。
【0039】
方法は、コンピュータによって実施される。このことは、方法が少なくとも1つのコンピュータまたは同様の任意のシステムで実行されることを意味する。別途述べられない限り、方法のすべてのステップは、コンピュータによって、すなわち、ユーザの介入なしに実行される。例えば、決定するステップ(S20)と、定義するステップ(S30)と、決定するステップ(S40)と、次いで、当てはめるステップ(S50)とは、コンピュータ単独で実行される可能性がある一方、複数の3D曲線を与えるステップ(S10)は、ユーザインタラクションによって実行される可能性がある。したがって、ユーザは、複数の3D曲線を与える(S10)ために介入することができ、次いで、方法が、自動的に作動することができる。それによって、方法は、後で検討される決定するステップ(S20)と、定義するステップ(S30)と、決定するステップ(S40)と、次いで、当てはめるステップ(S50)とによって複数の3D曲線からの表面の自動生成を可能にする。方法のこれらのステップの一部がユーザの介入を認める可能性があることにも言及しておくべきである。例えば、決定するステップ(S20)と、定義するステップ(S30)と、決定するステップ(S40)と、次いで、当てはめるステップ(S50)とは、後で検討されるようにコンピュータ単独で自動的に実行され得るが、ユーザは(例えば、コンピュータによって実行されるアルゴリズムの結果を修正するため、例えば、(S30)で定義された基底グラフを修正するために)介入する可能性がある。
【0040】
方法のコンピュータによる実施の典型的な例は、この目的に好適なグラフィカルユーザインターフェース(GUI)を含むCADシステムで方法を実行することである。CADシステムは、ハードウェアを含み、GUIは、いかなるソフトウェアもインストールせずに方法を実行するのに好適である。換言すれば、ソフトウェアは、直ちに使用するためにGUI上で既に利用可能である(またはGUIに結合されている)。言い換えると、システムは、プロセッサに結合されたメモリに符号化された命令を含み、命令が、方法を実行するための手段を提供する。そのようなシステムは、複数の3D曲線からの表面の生成が容易なツールである。したがって、そのようなシステムは、概してクリエイティブなアーティストのユーザであり、複雑なCADシステムに馴染みのない専門家のデザイナーを含む多様なユーザによって使用され得る。
【0041】
システムは、CAEおよび/またはCAMシステムである可能性もあり、CADでモデリングされるオブジェクトは、CAEでモデリングされるオブジェクトおよび/またはCAMでモデリングされるオブジェクトである可能性もある。実際、モデリングされるオブジェクトはCAD、CAE、およびCAMシステムの任意の組み合わせに対応するデータによって定義され得るので、これらのシステムは互いに排他的ではない。
【0042】
曲線は3D(すなわち、3次元)であるので、方法によって生成される表面も3Dである可能性がある。これは、表面が、その表面の3D表現を可能にするデータによって定義されることを意味する。3D表現は、表現された表面をすべての角度から見ることを可能にする。例えば、3Dで表されるとき、3Dの表面は、その表面の軸のうちのいずれかのまわり、または表現が表示されるスクリーン内の任意の軸のまわりで処理され、回転されることができる。これは、3Dでモデリングされていない2Dアイコンをはっきりと除外する。3D表現の表示は、設計を容易にする(すなわち、デザイナーがそれらのデザイナーのタスクを統計的に完成する速さを上げる)。これは、製品の設計が製造プロセスの一部であるので、産業の製造プロセスの速度を上げる。
【0043】
3D曲線および生成される表面は、パラメトリックである可能性がある。このことは、表面が、多様なCADのオペレーションで入力として使用できる状態にあることを保証する。パラメトリックな形状(曲線または表面)は、少なくとも1つのパラメータの少なくとも1つの関数によってモデリングされる形状である(すなわち、そのような関数がシステムのメモリに記憶される)。関数は、形状の点の位置を与えることができる。例えば、3Dパラメトリック曲線は、関数C(u)=(x(u),y(u),z(u))によってモデリングされることができ、3Dパラメトリック表面は、関数S(u,v)=(x(u,v),y(u,v),z(u,v))、例えば、NURBSによってモデリングされることができる。CADの分野において、パラメトリック関数による曲線または表面などのCADでモデリングされるオブジェクトのモデリングの要素は、形状に対してCADのオペレーションを実行することを可能にする。実際、ほとんどのCADシステムのCADのオペレーションは、オブジェクトの表現である単純なピクセルマップに対しては実行可能でない。換言すれば、CADシステムのほとんどのCADのオペレーションは、実行されるべき入力としてパラメトリック関数を必要とする。
【0044】
図2は、典型的なCADシステムのGUIの例を示す。
【0045】
GUI2100は、標準メニューバー2110、2120、ならびに下ツールバーおよび横ツールバー2140、2150を有する典型的なCADのようなインターフェースである可能性がある。そのようなメニューバーおよびツールバーは、当技術分野で知られているように、それぞれのアイコンが1つまたは複数のオペレーションまたは機能に関連付けられるユーザが選択可能なアイコンの組を含む。これらのアイコンの一部は、GUI2100に表示された3Dモデリングされるオブジェクト2000を編集し、および/またはその3Dモデリングされるオブジェクトに作用するように適合されたソフトウェアツールに関連付けられる。ソフトウェアツールは、ワークベンチにグループ化される可能性がある。各ワークベンチは、ソフトウェアツールのサブセットを含む。特に、ワークベンチのうちの1つは、モデリングされる製品2000の形状的特徴を編集するのに好適な編集ワークベンチである。オペレーションにおいて、デザイナーは、例えば、オブジェクト2000の一部を事前に選択し、それから、適切なアイコンを選択することによってオペレーションを開始する(例えば、寸法、色などを変更する)か、または形状の制約を編集することができる。例えば、典型的なCADのオペレーションは、スクリーン上に表示された3Dモデリングされるオブジェクトの穴開けまたは折り曲げのモデリングである。
【0046】
GUIは、例えば、表示された製品2000に関連するデータ2500を表示することができる。図2の例においては、「フィーチャーツリー(feature tree)」として表示されるデータ2500およびそれらの3D表現2000は、ブレーキキャリパーおよびディスクを含むブレーキ組立体に関する。GUIは、例えば、オブジェクトの3Dの向きを決めることを容易にするため、編集された製品のオペレーションのシミュレーションを引き起こすため、または表示された製品2000のさまざまな属性をレンダリングするためのさまざまな種類のグラフィックツール2130、2070、2080をさらに示すことができる。カーソル2060は、ユーザがグラフィックツールとインタラクションすることを可能にするための触覚装置によって制御される可能性がある。
【0047】
図3は、クライアントコンピュータシステム、例えば、ユーザのワークステーションとしてのシステムのアーキテクチャの例を示す。
【0048】
クライアントコンピュータは、内部通信バス1000に接続された中央演算処理装置(CPU)1010と、やはりバスに接続されたランダムアクセスメモリ(RAM)1070とを含む。クライアントコンピュータは、バスに接続されたビデオランダムアクセスメモリ1100に関連付けられるグラフィックス処理ユニット(GPU)1110をさらに備える。ビデオRAM1100は、当技術分野においてはフレームバッファとしても知られる。大容量ストレージデバイスコントローラ1020が、ハードドライブ1030などの大容量メモリデバイスへのアクセスを管理する。コンピュータプログラム命令およびデータを有形で具現化するのに好適な大容量メモリデバイスは、例として、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクおよび取り外し可能なディスクなどの磁気ディスク、光磁気ディスク、ならびにCD−ROMディスク1040を含むすべての形態の不揮発性メモリを含む。上記のいずれも、特別に設計されたASIC(特定用途向け集積回路)によって補完されるか、または特別に設計されたASIC(特定用途向け集積回路)に組み込まれることができる。ネットワークアダプタ1050が、ネットワーク1060へのアクセスを管理する。クライアントコンピュータは、カーソル制御デバイス、キーボードなどの触覚装置1090も含み得る。カーソル制御デバイスは、ユーザが、図2を参照して言及されたようなスクリーン1080上の任意の所望の位置にカーソルを選択的に位置付けることを可能にするためにクライアントコンピュータで使用される。スクリーンとは、コンピュータモニタなどの、表示が行われ得る任意の補助装置を意味する。加えて、カーソル制御デバイスは、ユーザがさまざまなコマンドを選択し、制御信号を入力することを可能にする。カーソル制御デバイスは、システムへの入力制御信号に関するいくつかの信号生成デバイスを含む。概して、カーソル制御デバイスは、マウスである可能性があり、マウスのボタンが信号を生成するために使用される。
【0049】
システムに方法を実行させるために、コンピュータによって実行するための命令を含むコンピュータプログラムが提供され、命令は、この目的のための手段を含む。プログラムは、例えば、デジタル電子回路で、またはコンピュータハードウェア、ファームウェア、ソフトウェアで、またはそれらの組み合わせで実装されることができる。本発明の装置は、プログラム可能なプロセッサによって実行するための機械可読ストレージデバイスに有形で具現化されたコンピュータプログラム製品で実装される可能性があり、本発明の方法のステップは、入力データに対してオペレーションを行い、出力を生成することによって本発明の機能を実行するための命令のプログラムを実行するプログラム可能なプロセッサによって実行され得る。有利なことに、命令は、データストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、それらにデータおよび命令を送信するために結合された少なくとも1つのプログラム可能なプロセッサを含むプログラム可能なシステム上で実行可能である1つまたは複数のコンピュータプログラムで実施され得る。アプリケーションプログラムは、必要に応じて、高水準手続型もしくはオブジェクト指向プログラミング言語で、またはアセンブリもしくは機械語で実施される可能性があり、いずれの場合も、言語は、コンパイル型またはインタープリタ型言語である可能性がある。プログラムは、完全インストールプログラムであるか、または更新プログラムである可能性がある。後者の場合、プログラムは、既存のCADシステムを、システムが方法を実行するのに好適である状態に更新する。
【0050】
方法は、複数の3D曲線を与えるステップ(S10)を含む。例えば、複数の3D曲線が、ユーザによって与えられることができる。例えば、複数の3D曲線は、フリーハンドでスケッチされる曲線を含む。フリーハンドで曲線をスケッチするとは、ユーザが、パラメトリックである可能性がある曲線に変換されるストロークを描くことを意味する。ストロークは、例えばスクリーンが感知式スクリーンである場合にはスクリーン上に直接描かれることができ、または感知式のタブ上に描かれることができる。これは、表面の生成を、専門家のデザイナーなどの、紙に設計をスケッチすることに慣れているデザイナーにとって容易で直観的にする。
【0051】
方法は、曲線の対の間のクロッシングを決定するステップ(S20)も含む。曲線の所与の対の間のクロッシングは、曲線の所与の対が互いに特に近い区間の指示である。「互いに近い」とは、所与の対の2つの曲線の間の距離が所定の閾値未満であることを意味する。互いに「特に」近いとは、クロッシングにおける2つの曲線の間の距離がそれらの曲線のその他の区間に対してよりも短いことを意味する。2つの曲線の間のクロッシングは、2つの曲線の間の交差である可能性がある。しかし、曲線はユーザによって与えられる可能性があるので、ユーザがそれらの曲線を交わらせることを意図したが、それらの曲線は、通常、厳密には互いに交わらない可能性が高い。したがって、クロッシングは、典型的な交差の拡張であり、曲線を交わらせようとするユーザの意図をくみ取る。一例において、クロッシングを決定するステップ(S20)は、曲線のそれぞれの対の間の少なくとも1つのクロッシングを、曲線のそれぞれの対のうちの異なる曲線にそれぞれが属する点の対として決定するステップを含む。言い換えると、少なくとも1つのクロッシングは、厳密な交差ではない。したがって、方法は、曲線が完全には交わらないが、曲線の間の意図される交差をとらえる。これは、曲線を与える(S10)前に曲線を定義するときに高い柔軟性を与える。
【0052】
次いで、方法は、基底グラフ(すなわち、初期グラフ)を定義するステップ(S30)を含む。基底グラフは、クロッシングを表すノードと、隣り合うクロッシングを表すノードの対を接続する弧とを含む。2つのクロッシングは、それらのクロッシングが同じ曲線に関連付けられ、それらのクロッシングの間にその他のクロッシングが存在しない場合に隣り合うとみなされる。
【0053】
次に、方法は、グラフから、3Dの位置によって定義される頂点、および頂点の対を接続するエッジを含むメッシュを決定するステップ(S40)を含む。メッシュは、CADで広く使用される特定の種類のグラフである。メッシュは、各ノード(メッシュの場合には「頂点」と呼ばれ、一方、弧は「エッジ」と呼ばれる)に関連する3Dの位置を有するグラフである。最後に、方法は、メッシュに表面を当てはめるステップ(S50)を含む。
【0054】
実際、CADにおいては、メッシュが、メッシュに表面を当てはめることによって表面を生成するために広く使用される。方法は、メッシュに表面を当てはめるためのCADシステムの任意の既存のモジュールを適用することができる。当てはめる表面は、細分割曲面またはNURBSである可能性がある。そのような表面は、パラメトリックであり、それらの表面を単に表現するだけでなく表面の将来的な使用を可能にする。特に、生成されるべき表面が部品または部品の組立体などの製品を表すときは、細分割曲面が、そのようなモデリングされるオブジェクトに必要とされる高レベルの形状の精度を提供する。
【0055】
したがって、方法は、クロッシングの概念の使用のおかげで、3Dで交わらない曲線の組への表面の当てはめを可能にする。曲線が互いに接触することを必要とする従来技術の方法とは対照的に、アーティストが曲線が厳密に交わることを気に掛けることなしに3Dで曲線を描くことを可能にすることには計り知れない利点がある。
【0056】
さらに、方法は、曲線が与えられると、完全に自動であることができる。したがって、ユーザは、いかなるガイド曲線またはそれに類するものを示すことも必要としない。方法は、クロッシングを評価し、クロッシングからグラフを定義し、次いで、グラフからメッシュを生成することによってグラフに表面を当てはめる。メッシュがグラフから生成されるので、ユーザの意図が尊重される(すなわち、生成される表面が、与えられた曲線を表現する)ことが保証される。
【0057】
次に、方法の例が、図4〜図14を参照して説明される。図4は、方法の例の流れ図を示す。図5〜図14は、図4の方法のステップの例を示す。
【0058】
この例において、方法は、複数の3D曲線を土台に射影するステップ(S22)を含む。土台は、ユーザが生成したい表面の形を(例えば、大まかに)表す3D形状(表面または体積)である。それによって、複数の対応する射影された曲線が得られる。次いで、この例の方法は、射影された曲線の対の間のクロッシングを決定するステップ(S23)を含む。最後に、方法は、射影された曲線の対の間のクロッシングに対応する曲線の点の対を取得するステップ(S24)を含む。換言すれば、3D曲線の間のクロッシングは、3D曲線の射影の間のクロッシングに対応するように決定される(S20)。したがって、この例において、クロッシングを決定するステップ(S20)は、土台を介して実行され、このことは、クロッシングが検出されるべき場所についてより優れた制御を可能にする。
【0059】
実際、土台は、インジケータ形状(indicator shape)として働く。図5〜図7を参照すると、ユーザは、そのような初期のインジケータ形状50(すなわち、土台)を作成するか、またはカタログから選択することができる。実際、任意的な前処理ステップとして、インジケータ形状が使用され得る。3D曲線を描く前に、ユーザは、最初に、3D形状を構築するための任意の迅速な方法を用いて大まかな初期の形状を作成するか、またはカタログから形状を取得することも可能である。ボリューメトリックなクレイモデリング(volumetric clay−modeling)ソフトウェアが、インジケータ形状を作成する目的で使用され得る。次に、ユーザは、形状を実質的に黒板として使用して、インジケータ形状のまわりに、またはまさにインジケータ形状自体の上に曲線を3Dで描く。このように、ユーザは、曲線62を作成することができ、曲線62がインジケータ形状50に射影される。特に、(図6においてインジケータ形状50上の破線として示される)曲線の射影62を介して曲線の間のクロッシングを決定した後に、最終的に、表面70が、方法によって自動的に生成および更新されることができる。その後の表面70の構築は、曲線62にのみ依存する可能性がある。使用される場合、インジケータ形状50は、曲線のクロッシングを検出するのを支援するように働くことができる。インジケータ形状が、クロッシングのより安定した検出を可能にし、したがって有益であることが分かっている。このようにして、ユーザは、曲線が互いにどのように交わるかをより思い通りに制御する。
【0060】
複数の3D曲線を土台に射影するステップ(S22)は、複数の3D曲線をポリラインに離散化するステップ(S221)(すなわち、サンプリングするステップ)を含み得る。ポリラインは、広く知られているように、線分の組である。次いで、射影するステップ(S22)は、線分を土台に射影するステップ(S222)を含み得る。それによって、複数の対応する射影された線分(すなわち、線分の射影)が得られる。この時点で、3D曲線は、3D曲線の離散化から生じるポリラインの射影として表現される。土台は、ファセット(平面)を含むことができ、したがって、ポリラインの射影は、ポリライン自体である可能性がある。言い換えると、ポリラインの線分の射影、すなわち、「射影された線分」は、やはり線分である可能性がある。また、射影された曲線の対の間のクロッシングを決定するステップ(S23)は、同じボクセルに属する異なる曲線に対応する射影された線分の対を決定するステップ(S231)と、次いで、決定された射影された線分の対の間の両垂線を決定するステップ(S232)と、最後に、両垂線の末端を決定するステップ(S233)とを含み得る。このような進行の方法は、高速なクロッシングの決定(S20)を可能にする。
【0061】
ユーザが3D曲線をスケッチするとき、通常、それらの3D曲線は、厳密には互いに交わらず、アルゴリズムが、(クロッシングの概念を介して)これらの交差を評価し、デザイナーが何を表したいと望むのかを見つけ出さなければならない。この例の方法は、各曲線をポリラインの形態(多くの小さな線分)に変換して近さの計算のコストを削減し、線分の間のクロッシングの探索のためにそれらの線分を土台に射影する。次いで、方法は、2つの射影された線分DaおよびDbに関して図8に示されるように、両方の線分に交わり、それらの線分の両方に垂直である一意的な線(両垂線)を計算することによって線分の間のクロッシングを探索する。2つの交点(図8のxおよびy)が線分DaおよびDb上にあり、これらの交点の間の距離が閾値よりも小さい場合、方法は、そのことを2つの線分が互いに交わるかのように解釈する可能性がある(言い換えると、クロッシングが決定される)。方法は、2つの曲線上の点xおよびyによって説明されるクロッシングを保存することができる。このテストの時間的コストを削減するために、図9に示されるように、方法はボクセルを使用する可能性がある。そのような場合、方法は、空間を立方体90の格子に分割することができ、同じキューブ92の中にある線分94だけが(それらの線分94の間にクロッシングがあるかどうかについて)テストされる。
【0062】
この例において、メッシュを決定するステップ(S40)は、グラフのすべてのタイルが3つまたは4つの弧を有する面に分割されるまでグラフに弧および/またはノードを追加するステップ(S401)を含む。決定されるべきメッシュ(S40)は、(面ごとに3つまたは4つのエッジをそれぞれ有する)三角形メッシュまたは四角形メッシュである可能性がある。四角形メッシュは、高品質な最終的な表面をもたらす。追加するステップ(S401)は、グラフが「不規則」であり、直接メッシュになれる状態にない場合に、面ごとのエッジの数を減らすことを可能にする。グラフが3つまたは4つの弧だけを有するタイル(すなわち、ループ)を持つと、グラフは、三角形または四角形メッシュになることに近づく。
【0063】
クロッシングが決定される(S20)と、方法は、各クロッシングに関して隣接するクロッシングを示すグラフを生成する。2つのクロッシングは、同じ曲線上にあり、間にその他の交差がない場合、隣接している。このグラフから、第1の中間段階のメッシュが生成される。再帰的なアルゴリズムを用いて、方法は、グラフ内のタイルと解釈されるグラフ内のサイクルを検出する。タイルは、3から6個の辺を有するグラフの面である。したがって、この時点で、メッシュがタイルで構成されるが、それらのメッシュは、方法がこの暫定的なメッシュ(intern mesh)を細分割メッシュ(subdivision mesh)などの基本的なモデルに変換することができるように分割される。以下で、分割されていないタイルは、「基底タイル(base tile)」と呼ばれる。それぞれの分割されたタイルに関して、方法は、その分割されたタイルを作成するためにどの基底タイルが分割されたのかについての情報を保持する。
【0064】
潜在的に、タイルは、3から6個以外の辺を有する可能性があるが、任意の数の辺に関して分割スキームが考案され得ることは以下の内容から明らかであろう。実際、その他の場合が滅多になく、デザイナーにとってそれほど役に立たないので、3から6個の辺の範囲をカバーするための最良のあり得る方策の1つが重要であることが分かった。したがって、この例の方法は、最初に、六角形および五角形を三角形または四角形に切り分ける。図10に示されるように、五角形100は、1つのエッジ104を追加することによって1つの四角形102と1つの三角形103とに分割されるか、または1つの頂点107および5つのエッジ108を追加することによって5つの四角形106に分割される可能性がある。図11に示されるように、六角形110は、1つのエッジ113を追加することによって2つの四角形112に分割され得る。
【0065】
この例の方法において、メッシュを決定するステップ(S40)は、T字型の接続がなくなるまでグラフに弧および/またはノードを追加するステップ(S402)をさらに含む。T字型の接続は、曲線が別の曲線とぶつかり(すなわち、別の曲線とのクロッシングを有し)、次いで、終わるときに発生する。曲線が終わる場所が表面の外縁でない場合、T字型の接続がメッシュ内に作られる。T字型の接続は、基本的なサーフェスモデルでいつも許されるとは限らない。この例の方法の目的の1つは、完全に普遍的なままであり、すべての種類のサーフェスモデルをサポートすることである。そのために、方法は、方法がネットワーク全体にすべての切り分けを伝播させ、実質的にT字型の接続をなくすモードを提供する。これは、最終的により高い品質の表面をもたらす。
【0066】
これは、メッシュが四角形および三角形のみを含むときに、トポロジー(topology)の生成の最後のステップとして行われ得る。そのためのアルゴリズムは、反対側のエッジ上のT字型の接続を、アルゴリズムがその上でループすることができるまで、またはアルゴリズムが表面の限界に到達するときに、T字型の接続がもはや問題にならないときまで伝播させることである。アルゴリズムの無限ループを防ぐために、方法は、アルゴリズムが最初の基底タイルに再び到達する場合は伝播を停止することができる。
【0067】
しかし、別の例においては、方法は、T−スプラインなどのT字に接続されたサーフェスモデルを実施する可能性がある。そのような場合、ステップ(S402)は不要であるが、方法の残りは完全に適用可能である。伝播が単純に無効にされ、T字型の接続が残される。
【0068】
図12および図13は、追加するステップ(S402)の例を示す。どちらの図においても、メッシュ120が、T字型の接続122を有する。図12の場合、T字型の接続122は、エッジ124を追加することによって解消され、一方、図13の場合、T字型の接続122は、エッジ126および頂点128を追加することによって解消される。
【0069】
この例の方法において、メッシュを決定するステップ(S40)は、メッシュの細分割スキームにしたがってグラフに弧および/またはノードを追加するステップ(S403)も含む。メッシュの細分割スキームは、任意の知られているメッシュの細分割スキーム、例えば、Catmull−Clark細分割スキームである可能性がある。これは、メッシュの改善と、面ごとに決まった数のエッジを得ることとを可能にする。これは、表面を当てはめるステップ(S50)を見越してメッシュを平滑化し、それによってより滑らかな表面をもたらす。
【0070】
クロッシングが、曲線のそれぞれの対のうちの異なる曲線にそれぞれが属する点の対として決定された、曲線のそれぞれの対の間の少なくとも1つのクロッシングを含む場合が、次に検討される。言い換えると、これは、曲線が互いに完全には交わらないが、互いに交わるように意図されている場合である。そのような場合、メッシュを決定するステップ(S40)は、図4の例にあるように、少なくとも1つのクロッシングを表すノードに点の対の中間の3Dの位置を関連付けるステップ(S406)を含み得る。実際、メッシュに表面を当てはめる(S50)ために、方法は、前もってメッシュの頂点に3Dの位置を関連付ける可能性がある(S406、S407)。クロッシング表す頂点に関して、クロッシングを形成する2つの点の中間が、方法によって使用され得る。もちろん、(一例においては起こり得ない)完全な交差であるクロッシングに関しては、交差の位置が使用されることができる。
【0071】
(メッシュを決定するステップ(S40)がグラフにノードを追加するステップ(S401、S402、S403)を含む場合の)メッシュのその他の頂点に関して、方法は、所与の追加されたノードに、ノードを追加する前のグラフに対する所与のノードのトポロジー上の位置に依存する3Dの位置を関連付けるステップ(S407)を含み得る。例えば、所与の追加されたノードに関連付けられる3Dの位置は、その所与の追加されたノードのトポロジー上の位置が、ノードを追加する前のグラフの弧の上である場合、その弧の末端のノードに関連付けられる3Dの位置に応じてその弧によって表される曲線をずらすことによって計算された位置である可能性がある。
【0072】
この場合が、図14に示される。図14を参照すると、3つの曲線140、142、および144が示されている。曲線140と曲線142の間のクロッシング(x1,y1)、および曲線140と曲線144の間のクロッシング(x2,y2)が、決定されている。これらのクロッシングは、AおよびBと表記され、それぞれ、x1とy1との中間の位置、次いで、x2とy2との中間の位置が関連付けられる、メッシュのそれぞれの最終的な頂点に対応する。この例において、方法は、頂点Xをメッシュに追加している。頂点Xは、トポロジー上、曲線140に属する。頂点Xに関連付けられる3Dの位置は、この場合、AおよびBの3Dの位置のそばを通るように曲線140をずらし、曲線上のXのトポロジー上の位置に対応するずらされた曲線上の位置を求めることによって計算される(後者は、Xがメッシュに追加された方法によって与えられる)。
【0073】
所与の追加されたノードのトポロジー上の位置が、4つの辺を持つグラフにノードを追加する前のグラフのタイルの中にある場合、所与の追加されたノードに関連付けられる3Dの位置は、よく知られているCoons法によって計算された位置である可能性がある。任意のその他の場合、所与の追加されたノードに関連付けられる3Dの位置は、隣接するノードの3Dの位置を平均することによって計算される可能性がある。後者の場合、意図される結果に収束させるより滑らかな結果を得るために、平均が繰り返される可能性があり、計算された3Dの位置は毎回線を引き直される。
【0074】
当業者が理解するであろうように、方法は、このように、各頂点がどの基底タイルに属するかを追跡することができる。さらに、4つの辺を持つタイルの場合、(タイルが分割されるときに必ず更新される)(u,v)座標もメモリに保持される可能性がある。
【特許請求の範囲】
【請求項1】
複数の3D曲線から表面を生成するための、コンピュータによって実施される方法であって、
複数の3D曲線を与えるステップ(S10)と、
前記複数の3D曲線を土台に射影し、それによって、複数の対応する射影された曲線を得るステップ(S22)、
射影された曲線の対の間のクロッシングを決定するステップ(S23)、および
前記射影された曲線の対の間の前記クロッシングに対応する前記曲線の点の対を取得するステップ(S24)
によって、前記曲線のそれぞれの対の間の少なくとも1つのクロッシングを、前記曲線の前記それぞれの対のうちの異なる曲線にそれぞれが属する点の対として決定するステップを含む、前記曲線の対の間のクロッシングを決定するステップ(S20)と、
前記クロッシングを表すノード、および隣り合うクロッシングを表すノードの対を接続する弧を含む基底グラフを定義するステップ(S30)と、
前記グラフから、3Dの位置によって定義される頂点、および前記頂点の対を接続するエッジを含むメッシュを決定するステップ(S40)と、
前記メッシュに表面を当てはめるステップ(S50)と
を含むことを特徴とする方法。
【請求項2】
前記複数の3D曲線を土台に射影するステップ(S22)は、前記複数の3D曲線を、線分の組に存するポリラインに離散化するステップ(S221)と、前記線分を前記土台に射影し、それによって、複数の対応する射影された線分を得るステップ(S222)とを含み、
射影された曲線の対の間のクロッシングを決定するステップ(S23)は、同じボクセルに属する異なる曲線に対応する前記射影された線分の対を決定するステップ(S231)と、決定された射影された線分の対の間の両垂線を決定するステップ(S232)と、前記両垂線の末端を決定するステップ(S233)とを含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記メッシュを決定するステップ(S40)は、前記グラフのすべてのタイルが3つまたは4つの弧を有する面に分割されるまで前記グラフに弧および/またはノードを追加するステップ(S401)を含むことを特徴とする請求項1または2に記載の方法。
【請求項4】
前記メッシュを決定するステップ(S40)は、T字型の接続がなくなるまで前記グラフに弧および/またはノードを追加するステップ(S402)を含むことを特徴とする請求項1から3のいずれかに記載の方法。
【請求項5】
前記メッシュを決定するステップ(S40)は、メッシュの細分割スキームにしたがって前記グラフに弧および/またはノードを追加するステップ(S403)を含むことを特徴とする請求項1から4のいずれかに記載の方法。
【請求項6】
前記クロッシングは、前記曲線のそれぞれの対のうちの異なる曲線にそれぞれが属する点の対として決定された、前記曲線の前記それぞれの対の間の少なくとも1つのクロッシングを含み、前記メッシュを決定するステップ(S40)は、前記少なくとも1つのクロッシングを表すノードに前記点の対の中間の3Dの位置を関連付けるステップ(S406)を含むことを特徴とする請求項1から5のいずれかに記載の方法。
【請求項7】
前記メッシュを決定するステップ(S40)は、前記グラフにノードを追加するステップ(S401、S402、S403)と、所与の追加されたノードに、ノードを追加する前の前記グラフに対する前記所与のノードのトポロジー上の位置に依存する3Dの位置を関連付けるステップ(S407)とを含むことを特徴とする請求項6に記載の方法。
【請求項8】
所与の追加されたノードに関連付けられる前記3Dの位置は、
前記所与の追加されたノードのトポロジー上の位置が、ノードを追加する前の前記グラフの弧の上である場合、前記弧の末端のノードに関連付けられる3Dの位置に応じて前記弧によって表される曲線をずらすことによって計算された位置であり、または
前記ノードのトポロジー上の位置が、4つの辺を持つ前記グラフにノードを追加する前の前記グラフのタイルの中にある場合、Coons法によって計算された位置であり、または
任意のその他の場合、隣接するノードの3Dの位置を平均することによって計算された位置であることを特徴とする請求項7に記載の方法。
【請求項9】
前記複数の3D曲線は、フリーハンドでスケッチされる曲線を含むことを特徴とする請求項1から8のいずれかに記載の方法。
【請求項10】
請求項1から9のいずれかに記載の方法を実行するための命令をその上に記録する少なくとも1つのメモリと、
前記メモリに結合された少なくとも1つのプロセッサと、
前記プロセッサに結合され、前記命令の実行に好適な少なくとも1つのグラフィカルユーザインターフェースと
を含むことを特徴とするCADシステム。
【請求項11】
請求項1から9のいずれかに記載の方法を実行するための命令を含むことを特徴とするコンピュータプログラム。
【請求項12】
請求項11に記載のコンピュータプログラムをその上に記録することを特徴とするコンピュータ可読ストレージ媒体。
【請求項1】
複数の3D曲線から表面を生成するための、コンピュータによって実施される方法であって、
複数の3D曲線を与えるステップ(S10)と、
前記複数の3D曲線を土台に射影し、それによって、複数の対応する射影された曲線を得るステップ(S22)、
射影された曲線の対の間のクロッシングを決定するステップ(S23)、および
前記射影された曲線の対の間の前記クロッシングに対応する前記曲線の点の対を取得するステップ(S24)
によって、前記曲線のそれぞれの対の間の少なくとも1つのクロッシングを、前記曲線の前記それぞれの対のうちの異なる曲線にそれぞれが属する点の対として決定するステップを含む、前記曲線の対の間のクロッシングを決定するステップ(S20)と、
前記クロッシングを表すノード、および隣り合うクロッシングを表すノードの対を接続する弧を含む基底グラフを定義するステップ(S30)と、
前記グラフから、3Dの位置によって定義される頂点、および前記頂点の対を接続するエッジを含むメッシュを決定するステップ(S40)と、
前記メッシュに表面を当てはめるステップ(S50)と
を含むことを特徴とする方法。
【請求項2】
前記複数の3D曲線を土台に射影するステップ(S22)は、前記複数の3D曲線を、線分の組に存するポリラインに離散化するステップ(S221)と、前記線分を前記土台に射影し、それによって、複数の対応する射影された線分を得るステップ(S222)とを含み、
射影された曲線の対の間のクロッシングを決定するステップ(S23)は、同じボクセルに属する異なる曲線に対応する前記射影された線分の対を決定するステップ(S231)と、決定された射影された線分の対の間の両垂線を決定するステップ(S232)と、前記両垂線の末端を決定するステップ(S233)とを含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記メッシュを決定するステップ(S40)は、前記グラフのすべてのタイルが3つまたは4つの弧を有する面に分割されるまで前記グラフに弧および/またはノードを追加するステップ(S401)を含むことを特徴とする請求項1または2に記載の方法。
【請求項4】
前記メッシュを決定するステップ(S40)は、T字型の接続がなくなるまで前記グラフに弧および/またはノードを追加するステップ(S402)を含むことを特徴とする請求項1から3のいずれかに記載の方法。
【請求項5】
前記メッシュを決定するステップ(S40)は、メッシュの細分割スキームにしたがって前記グラフに弧および/またはノードを追加するステップ(S403)を含むことを特徴とする請求項1から4のいずれかに記載の方法。
【請求項6】
前記クロッシングは、前記曲線のそれぞれの対のうちの異なる曲線にそれぞれが属する点の対として決定された、前記曲線の前記それぞれの対の間の少なくとも1つのクロッシングを含み、前記メッシュを決定するステップ(S40)は、前記少なくとも1つのクロッシングを表すノードに前記点の対の中間の3Dの位置を関連付けるステップ(S406)を含むことを特徴とする請求項1から5のいずれかに記載の方法。
【請求項7】
前記メッシュを決定するステップ(S40)は、前記グラフにノードを追加するステップ(S401、S402、S403)と、所与の追加されたノードに、ノードを追加する前の前記グラフに対する前記所与のノードのトポロジー上の位置に依存する3Dの位置を関連付けるステップ(S407)とを含むことを特徴とする請求項6に記載の方法。
【請求項8】
所与の追加されたノードに関連付けられる前記3Dの位置は、
前記所与の追加されたノードのトポロジー上の位置が、ノードを追加する前の前記グラフの弧の上である場合、前記弧の末端のノードに関連付けられる3Dの位置に応じて前記弧によって表される曲線をずらすことによって計算された位置であり、または
前記ノードのトポロジー上の位置が、4つの辺を持つ前記グラフにノードを追加する前の前記グラフのタイルの中にある場合、Coons法によって計算された位置であり、または
任意のその他の場合、隣接するノードの3Dの位置を平均することによって計算された位置であることを特徴とする請求項7に記載の方法。
【請求項9】
前記複数の3D曲線は、フリーハンドでスケッチされる曲線を含むことを特徴とする請求項1から8のいずれかに記載の方法。
【請求項10】
請求項1から9のいずれかに記載の方法を実行するための命令をその上に記録する少なくとも1つのメモリと、
前記メモリに結合された少なくとも1つのプロセッサと、
前記プロセッサに結合され、前記命令の実行に好適な少なくとも1つのグラフィカルユーザインターフェースと
を含むことを特徴とするCADシステム。
【請求項11】
請求項1から9のいずれかに記載の方法を実行するための命令を含むことを特徴とするコンピュータプログラム。
【請求項12】
請求項11に記載のコンピュータプログラムをその上に記録することを特徴とするコンピュータ可読ストレージ媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図11】
【図10】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図11】
【図10】
【図12】
【図13】
【図14】
【公開番号】特開2013−114694(P2013−114694A)
【公開日】平成25年6月10日(2013.6.10)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−260195(P2012−260195)
【出願日】平成24年11月28日(2012.11.28)
【出願人】(500102435)ダッソー システムズ (52)
【氏名又は名称原語表記】DASSAULT SYSTEMES
【Fターム(参考)】
【公開日】平成25年6月10日(2013.6.10)
【国際特許分類】
【出願番号】特願2012−260195(P2012−260195)
【出願日】平成24年11月28日(2012.11.28)
【出願人】(500102435)ダッソー システムズ (52)
【氏名又は名称原語表記】DASSAULT SYSTEMES
【Fターム(参考)】
[ Back to top ]