(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-22
(45)【発行日】2024-05-01
(54)【発明の名称】B-Repスキンの3D設計
(51)【国際特許分類】
G06F 30/10 20200101AFI20240423BHJP
G06T 17/30 20060101ALI20240423BHJP
【FI】
G06F30/10 100
G06T17/30
【外国語出願】
(21)【出願番号】P 2019193805
(22)【出願日】2019-10-24
【審査請求日】2022-09-26
(32)【優先日】2018-10-26
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】500102435
【氏名又は名称】ダッソー システムズ
【氏名又は名称原語表記】DASSAULT SYSTEMES
(74)【代理人】
【識別番号】110000752
【氏名又は名称】弁理士法人朝日特許事務所
(72)【発明者】
【氏名】ブビエ ビンセント
【審査官】松浦 功
(56)【参考文献】
【文献】特開2001-243269(JP,A)
【文献】特開2017-174409(JP,A)
【文献】特開2004-287701(JP,A)
【文献】米国特許出願公開第2017/0220730(US,A1)
【文献】LEE, S.H. et al. ,Sheet modeling and thickening operations based on non-manifold boundary representations,Proceedings of DETC'01 ASME2001 Design Engineering Technical Conferences [online],ASME,2001年09月,pp. 1-10,[検索日 2023.07.14], インターネット,URL:http://ii.kookmin.ac.kr/EC01.09.pdf
【文献】CHEN, J. et al.,Automatic surface repairing, defeaturing and meshing algorithms based on an extended B-rep,Advances in Engineering Software [online],Elsevier Ltd.,2015年,Vol. 86,pp. 55-69,[検索日 2023.06.22], インターネット,URL:https://www.sciencedirect.com/science/article/abs/pii/S0965997815000630
【文献】LI, Z. et al.,Local Symmetry Based Hint Extraction of B-rep Model for Machining Feature Recognition,Proceedings of the ASME 2018 International Design Engineering Technical Conferences and Computers and Information in Engineering Conference,Vol. 4,ASME,2018年08月,pp. V004T05A009-1 - V004T05A009-7
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/00 -30/398
G06T 15/00 -19/20
(57)【特許請求の範囲】
【請求項1】
機械部品を表す3Dモデル化オブジェクトを設計するための、コンピュータによって実施される方法であって、
CADシステムにおいて、前記機械部品を表すB-Repスキンを提供すること(S10,S30)であって、
前記B-repスキンの1つまたは複数の境界辺で境界が定められた境界面と、
それぞれ前記B-repスキンの内部の各辺で前記境界面に隣接する1つまたは複数の第1の面と、
を含むB-Rep部分を有するB-Repスキンを提供すること(S10,S30)と、
前記CADシステムとのグラフィカルなユーザ対話操作によりサーフェスを定義すること(S20)と、
前記CADシステムによって自動的にB-rep置換を構築すること(S40)であって、
それぞれ前記境界面に隣接し、前記B-repスキンの各境界辺によって境界が定められる1つまたは複数の第2の面を作成すること(S410)と、
B-rep集合体を生成すること(S420)であって、
それぞれが前記サーフェスと一致する1つまたは複数の第3の面であって、それぞれ1つまたは複数の辺を有し、各辺が、前記B-rep集合体の内部にあるような、第3の面と、
それぞれが各第1の面と一致し各第3の面に隣接する、1つまたは複数の第4の面と、
それぞれが各第2の面と一致し各第3の面に隣接する、1つまたは複数の第5の面と、
を含むB-rep集合体を生成すること(S420)と、
前記B-rep集合体から各第5の面を除去すること(S430)と、
を含む、構築すること(S40)と、
前記B-Repスキンにおいて、B-rep置換により、前記B-rep部分を置換すること(S50)と、
を含むことを特徴とする方法。
【請求項2】
前記作成すること(S410)が前記B-rep部分を厚化することを含むことを特徴とする請求項1の方法。
【請求項3】
前記厚化が、
前記B-rep部分のB-repオフセットを決定すること(S4110)と、
前記B-repオフセットを前記B-rep部分に接続する1つまたは複数の側面を構築すること(S4120)と、
前記1つまたは複数の側面から前記1つまたは複数の第2の面を決定すること(S4130)と
を含むことを特徴とする請求項2の方法。
【請求項4】
前記1つまたは複数の側面が1つまたは複数のリボン側面を含み、各リボン側面が、前記B-rep部分の各境界辺と、前記B-repオフセットにおける対応する境界辺とで境界が定められており、各リボン側面が、前記境界面に隣接し、各第2の面を形成する前記B-repスキンの各境界辺によって境界が定められている
ことを特徴とする請求項3の方法。
【請求項5】
各第2の面を形成する各リボン側面が、線織面によって支持されていることを特徴とする請求項4の方法。
【請求項6】
線織面が
【数41】
のタイプであって
【数42】
を満たし、ここで
Sはパラメータuおよびvに対して定義されたFの支持サーフェスであり、Fは各境界辺で境界が定められた前記B-rep部分の面であり、
δはオフセット値であり、
N(u,v)は、前記パラメータuおよびvに対して定義されたSの法線ベクトルであり、
【数43】
は、前記パラメータuおよびvについて
【数44】
で定義される
【数45】
の支持サーフェスであり、
【数46】
は対応する境界辺で境界が定められる前記B-repオフセットの面であり、
wは
【数47】
が各境界辺を支持する3D曲線となるようなパラメータであり、
tは
【数48】
を満たすパラメータである
ことを特徴とする請求項5の方法。
【請求項7】
前記機械部品が、曲げられ、かつ/あるいは、打ち抜かれた、平板シートを含むことを特徴とする請求項6の方法。
【請求項8】
前記境界面の全体が前記サーフェスの各側方に位置し、前記厚化が前記サーフェスの反対方向に実行されることを特徴とする請求項2~7のうちいずれか1つの方法。
【請求項9】
前記B-Repスキンの提供(S30)の前に、前記機械部品を表す最初のB-Repスキンを提供すること(S10)をさらに含み、前記最初のB-Repスキンは最初の境界面を有し、
前記サーフェスは前記最初の境界面をいくつかの境界サブ面に分割し、各境界サブ面は、前記B-Rep部分の前記境界面を形成し、
前記B-Repスキンの前記提供(S30)は、前記最初のB-RepスキンをいくつかのB-Repサブスキンに分割すること(S320)を含み、各B-Repサブスキンは前記B-Repスキンを形成し、
他の各B-Repサブスキンは、前記他のB-Repサブスキンの1つまたは複数の境界辺で境界が定められた各境界サブ面を含む各B-Rep部分を有し、
前記構築(S40)および前記置換(S50)は、他のB-Repサブスキンごとに各B-Rep部分について実行される
ことを特徴とする請求項8の方法。
【請求項10】
前記生成(S420)は、
1つまたは複数の第3の面をそれぞれ前記サーフェスを外挿および/またはトリミングすることにより作成すること、
1つまたは複数の第4の面をそれぞれ各第1の面の支持サーフェスを外挿および/またはトリミングすることにより作成すること、および/または、
1つまたは複数の第5の面をそれぞれ各第2の面の支持サーフェスを外挿および/またはトリミングすることにより作成すること
を含むことを特徴とする請求項1~9のうちいずれか1つの方法。
【請求項11】
サーフェスの外挿は、
前記サーフェスが2Dパラメトリックドメインを有する標準曲面である場合、前記2Dパラメトリックドメインを延長することを含み、
前記サーフェスが平面プロファイルを掃引するための3Dモーションを定義する入力要素を有する手続き型曲面である場合、前記入力要素を外挿することを含み、かつ/あるいは、
前記サーフェスが自由曲面である場合、曲率が連続的となるように前記サーフェスを延長することを含む
ことを特徴とする請求項10の方法。
【請求項12】
前記機械部品は、
自動車部品、航空宇宙部品、消費財部品、防衛部品、建築部品、造船部品、鉱業部品、海洋およびオフショア部品、または産業機器部品、
薄い部品、および/または、
複合部品、プラスチック成型部品、または打ち抜かれた部品である
ことを特徴とする請求項1~11のうちいずれか1つの方法。
【請求項13】
コンピュータに、請求項1~12のうちいずれかの方法を実行
させるためのコンピュータプログラム。
【請求項14】
請求項13のコンピュータプログラムを記録した非一時的データ記憶媒体。
【請求項15】
請求項13
に記載のコンピュータプログラムを記録したメモリに接続され
前記コンピュータプログラムにより動作させられるプロセッサと、グラフィカル・ユーザ・インターフェースとを備えるCADシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はコンピュータプログラムおよびシステムの分野に関連し、より詳細には、機械部品を表す3Dモデル化オブジェクトを設計するための方法、システム、およびプログラムに関連する。
【背景技術】
【0002】
オブジェクトの設計、エンジニアリング、製造のため、多数のシステムおよびプログラムが市場に提供されている。CADは、コンピュータ支援設計(Computer-Aided Design)の略語であり、例えば、オブジェクトを設計するためのソフトウェア・ソリューションに関する。CAEは、コンピュータ支援エンジニアリング(Computer-Aided Engineering)の略語であり、例えば、将来の製品の物理的挙動をシミュレーションするためのソフトウェア・ソリューションに関する。CAMは、コンピュータ支援製造(Computer-Aided Manufacturing)の略語であり、例えば、製造工程および動作を定義するためのソフトウェア・ソリューションに関する。このようなコンピュータ支援設計システムにおいて、グラフィカル・ユーザ・インターフェースは、技術の効率に関して、重要な役割を果たす。これらの技術は、製品ライフサイクル管理(Product Lifecycle Management: PLM)システムに組み込むことができる。PLMとは、企業が、拡張エンタープライズの概念全体にわたって、製品データを共有し、共通の工程を適用し、構想に始まり製品寿命の終わりに至る製品開発のための企業知識を活用するのを支援するビジネス戦略を指す。ダッソー・システムズが提供するPLMソリューション(製品名CATIA、ENOVIA、DELMIA)は、製品エンジニアリング知識をオーガナイズするエンジニアリング・ハブ、製品エンジニアリング知識を管理する製造ハブ、およびエンジニアリング・ハブと製造ハブの両方に対するエンタープライズ統合と接続を可能にするエンタープライズ・ハブを提供する。全てのシステムは、製品、工程、リソースを結ぶオープンなオブジェクトモデルを提供し、最適化された製品定義、製造準備、生産およびサービスを推進する、動的な知識ベースの製品作成および意思決定支援を可能にする。
【0003】
多くの既存のCADシステムにより、設計者は、グラフィカルなユーザ対話操作を介して、境界表現(B-Rep)フォーマットで機械部品をモデリングできる。このフレームワークにおいて、ユーザ対話操作のエルゴノミクスが特に重要である。このため、一部のCADシステムは、ユーザがB-Repボリューム(すなわち、閉じたB-Rep)の特定の面の置換を目的としたサーフェスを定義可能であり、その後、システムが、当該特定の面が、定義したサーフェスに応じて作成された新しい面に置き換えられるように、B-Repボリュームを自動的に更新するような機能を提供する。これは特に、Onshape、SolidEdge、およびProEngineerの商標の下で流通しているソフトウェア・ソリューションの場合に当てはまる。
【0004】
しかしながら、そのような機能をB-Repスキン(すなわち開いたB-Rep)の設計の際に提供するCADシステムが、依然として求められている。
【発明の概要】
【0005】
したがって、機械部品を表す3Dモデル化オブジェクトを設計するための、コンピュータによって実施される方法が提供される。本方法は、CADシステムにおいて、B-Repスキンを提供することを含む。B-Repスキンは、機械部品を表す。B-repスキンはB-rep部分を有する。B-Rep部分は、B-repスキンの1つまたは複数の境界辺によって境界が定められる境界面と、それぞれB-repスキンの内部の各辺で境界面に隣接する1つまたは複数の第1の面とを含む。本方法はまた、CADシステムとのグラフィカルなユーザ対話操作によりサーフェスを定義することを含む。本方法はまた、CADシステムによって自動的にB-rep置換を構築することを含む。構築は、それぞれ境界面に隣接しB-repスキンの各境界辺によって境界が定められる1つまたは複数の第2の面を作成することを含む。構築はまた、B-rep集合体の生成を含む。B-rep集合体は、それぞれがサーフェスと一致する1つまたは複数の第3の面を含む。第3の面はそれぞれ1つまたは複数の辺を有する。各第3の面の各辺は、B-rep集合体の内部にある。B-rep集合体はまた、それぞれが各第1の面と一致し各第3の面に隣接する、1つまたは複数の第4の面を含む。B-rep集合体はまた、それぞれが各第2の面と一致し各第3の面に隣接する、1つまたは複数の第5の面を含む。構築はさらに、B-rep集合体から各第5の面を除去することを含む。本方法はさらに、B-Repスキンにおいて、B-rep置換により、B-rep部分を置換することを含む。
【0006】
このような方法により、CADシステムとのグラフィカルなユーザ対話操作によって機械部品を表すB-Repスキンを設計する際のエルゴノミクスが改善される。
【0007】
特に、本方法では、ユーザがサーフェスをグラフィカルに定義し、CADシステムがB-RepスキンのB-rep部分のB-Rep置換を自動的に構築するようなユーザ対話操作が可能となる。1つまたは複数の第3の面がそれぞれサーフェスと一致するおかげで、最終的に結果の一部となるジオメトリをユーザが直接定義するため、本方法は直感的でありエルゴノミック(人間工学的)である。また、1つまたは複数の第4の面のそれぞれが各第1の面と合致し、各第3の面に隣接しているため、本方法は、B-Repスキンの最初のジオメトリと一致するB-Rep置換を構築する。言い換えれば、最初のジオメトリの変更が最小限に抑えられる。
【0008】
さらに、本方法は、B-Rep部分に境界面、つまり1つまたは複数の境界辺で囲まれた面が含まれている場合でも実行されるため、特にB-Repスキンの場合におけるこのような構築に適合する。そのため、本方法は、それぞれ境界面に隣接しB-repスキンの各境界辺によって境界が定められる1つまたは複数の第2の面を作成する。次いで、1つまたは複数の第2の面は、1つまたは複数の第1の面と同様に生成中に処理される。すなわち、それぞれが各第2の面と一致し各第3の面に隣接する1つまたは複数の第5の面を生成するよう処理される。これにより、本方法が堅牢なものとなる。そして、置換される面が隣接する面(第1の面および第2の面)ですべて囲まれている場合、第3、第4、および第5の面の生成はユーザの意図に沿って堅牢な方法で実行可能である。
【0009】
さらに、このような第1の面と第2の面の同様の処理により、置換される面がB-Repスキンの境界面である場合も、置換される面がB-RepスキンまたはB-Repボリュームの内部の面である場合も、同様に当該機能が働くようにプログラムするのが容易である。実際、プログラムは、1つまたは複数の第2の面の作成と、1つまたは複数の第5の面の生成と削除を実行するかしないかの条件をテストすることを含んでいればよく、条件は、置換される面が1つまたは複数の境界辺で囲まれた境界面である場合にみたされ肯定的となり、そうでない場合に否定的となる。プログラムは、他のモジュールに対して、条件が肯定的であるか否定的であるかにかかわらず、同一の方法で実行されてもよい。このようなプログラムは、本方法のように、B-Repスキンの境界面、またはB-RepスキンまたはB-Repボリュームの内部の面を置換される入力とするため、すべての状況に適用できる。
【0010】
本方法は、以下のうち1つまたは複数を含んでいてもよい。
【0011】
・作成は、B-rep部分を厚化することを含む。
【0012】
・厚化は、B-rep部分のB-repオフセットを決定し、B-repオフセットをB-rep部分に接続する1つまたは複数の側面を構築し、当該1つまたは複数の側面から1つまたは複数の第2の面を決定することを含む。
【0013】
・当該1つまたは複数の側面は1つまたは複数のリボン側面を含み、各リボン側面は、B-rep部分の各境界辺と、B-repオフセットにおける対応する境界辺とで境界が定められており、各リボン側面は、境界面に隣接し、各第2の面を形成するB-repスキンの各境界辺によって境界が定められている。
【0014】
・各第2の面を形成する各リボン側面は、線織面(ruled surface)によって支持されている。
【0015】
・線織面は
【0016】
【0017】
のタイプであって
【0018】
【0019】
を満たし、ここでSはパラメータuおよびvに対して定義されたFの支持サーフェス(supporting surface)であり、Fは各境界辺で境界が定められたB-rep部分の面であり、δはオフセット値である。
【0020】
・N(u,v)は、パラメータuおよびvに対して定義されたSの法線ベクトルであり、
【0021】
【0022】
は、パラメータuおよびvについて
【0023】
【0024】
で定義される
【0025】
【0026】
の支持サーフェスであり、
【0027】
【0028】
は対応する境界線で境界が定められるB-repオフセットの面であり、wは
【0029】
【0030】
が各境界辺を支持する3D曲線となるようなパラメータであり、tは
【0031】
【0032】
を満たすパラメータである。
【0033】
・機械部品は、曲げられ、かつ/あるいは、打ち抜かれた、平板シートを含む。
【0034】
・境界面の全体がサーフェスの各側方に位置し、厚化は当該サーフェスの反対方向に実行される。
【0035】
・本方法は、B-Repスキンの提供の前に、機械部品を表す最初のB-Repスキンを提供することをさらに含み、最初のB-Repスキンは最初の境界面を有し、サーフェスは最初の境界面をいくつかの境界サブ面に分割し、各境界サブ面は、B-Rep部分の境界面を形成し、B-Repスキンの提供は、最初のB-RepスキンをいくつかのB-Repサブスキンに分割することを含み、各B-RepサブスキンはB-Repスキンを形成し、他の各B-Repサブスキンは、他のB-Repサブスキンの1つまたは複数の境界辺で境界が定められた各境界サブ面を含む各B-Rep部分を有し、構築および置換は、他のB-Repサブスキンごとに各B-Rep部分について実行される。
【0036】
・生成は、1つまたは複数の第3の面をそれぞれサーフェスを外挿および/またはトリミングすることにより作成すること、1つまたは複数の第4の面をそれぞれ第1の面の支持サーフェスを外挿および/またはトリミングすることにより作成すること、および/または、1つまたは複数の第5の面をそれぞれ第2の面の支持サーフェスを外挿および/またはトリミングすることにより作成することを含む。
【0037】
・サーフェスの外挿は、サーフェスが2Dパラメトリックドメインを有する標準曲面である場合、2Dパラメトリックドメインを延長することを含み、サーフェスが平面プロファイルを掃引するための3Dモーションを定義する入力要素を有する手続き型曲面である場合、入力要素を外挿することを含み、かつ/あるいは、サーフェスが自由曲面である場合、曲率が連続的となるようにサーフェスを延長することを含む。および/または、
・機械部品は、自動車部品、航空宇宙部品、消費財部品、防衛部品、建築部品、造船部品、鉱業部品、海洋およびオフショア部品、または産業機器部品、薄い部品、および/または、複合部品、プラスチック成型部品、または打ち抜かれた部品である。
【0038】
さらには、本方法を実行するための命令を含むコンピュータプログラムが提供される。
【0039】
さらには、当該コンピュータプログラムを記録したコンピュータ読み取り可能記憶媒体が提供される。
【0040】
さらには、当該コンピュータプログラムを記録したメモリに接続されたプロセッサと、グラフィカル・ユーザ・インターフェースとを備えるCADシステムが提供される。
【0041】
以下、非限定的な例として、本発明の実施の形態を添付の図面を参照しつつ説明する。
【図面の簡単な説明】
【0042】
【
図8】本システムのグラフィカル・ユーザ・インターフェースの一例を示す。
【
図17】B-Repボリュームに対する「面置換」操作を示す。
【
図18】B-Repボリュームに対する「面置換」操作を示す。
【
図19】B-Repボリュームに対する「面置換」操作を示す。
【
図20】本方法によって解決される、B-Repスキンでの「面置換」操作の問題を示す。
【
図21】本方法によって解決される、B-Repスキンでの「面置換」操作の問題を示す。
【
図22】本方法によって解決される、B-Repスキンでの「面置換」操作の問題を示す。
【発明を実施するための形態】
【0043】
本方法は、コンピュータによって実施される。すなわち、本方法のステップ(あるいは略全てのステップ)が、CADシステムを構成する少なくとも1つのコンピュータによって実行される。よって本方法の各ステップは、CADシステムのプロセッサにより、完全に自動的に、あるいはユーザ対話操作を介して実行される可能性がある。一例において、本方法のステップの少なくともいくつかは、ユーザ対話操作を介してトリガされてもよい。
【0044】
当該CADシステムは、本方法を実行するための命令を含むコンピュータプログラムを記録したメモリに接続されたプロセッサ、および、グラフィカル・ユーザ・インターフェイス(GUI)を備えていてもよい。メモリはデータベースを記憶していてもよい。メモリは、そのような記憶に適した任意のハードウェアであり、場合により、物理的に区別可能ないくつかの部分(例えば、プログラム用に1つ、場合によりデータベース用に1つ)を含む。CADシステムは、グラフィカル・ユーザ・インターフェースが(例えば本方法のユーザに対して)任意の情報を表示するためのディスプレイユニットを含んでいてもよい。
【0045】
例えば、B-Repスキンの提供は、ユーザ対話操作を介して行われ得る。ユーザは、CADシステムとのグラフィカルなユーザ対話操作により、最初のB-Repスキンをゼロから設計し、かつ/あるいは、既に設計された最初のB-Repスキンを取得して、オプションとして、CADシステムとのグラフィカルなユーザ対話操作により、取得した最初のB-Repスキンを編集することができる。次いで、ユーザは、CADシステムとのグラフィカルなユーザ対話操作により、サーフェスを定義することができる。これは、ユーザが本システムの、例えば本方法の実行専用の、各機能を起動した後に(例えば「面置換」機能)、例えば、メニュー選択、および/または、グラフィカル、および/または、キーボード入力により、実行可能である。本方法に入力されるB-Repは、このような最初のB-Rep(オプションで編集されたもの)、または、後で説明するように、自動的に実行され得る、最初のB-Repの分割によって得られるB-Repサブスキンである。どちらの場合も、B-rep置換の構築はCADシステムによって自動的に実行されるため、ユーザが介入する必要はない。B-rep置換によるB-rep部分の置換は自動的に行われ得る。前記置換は、例えば、表示結果のプレビューをユーザに自動的に表示し、ユーザが前記結果を検証した後に、自動的に構成に従うか、あるいはユーザによってトリガされてもよい。
【0046】
ジオメトリ的オブジェクトを定義するという文脈において、「グラフィカルなユーザ対話操作」は、単に、CADシステムの一般的なグラフィカル・デザイン機能を指す。これは、設計者が、触覚システム(例えば、マウス、または感知/タッチスクリーンや感知/タッチパッドなどのタッチデバイス)を用いて、ディスプレイユニットに表示されジオメトリ的オブジェクトが配置される、設計シーンの1つまたは複数の場所をアクティブ化するような、あらゆるユーザ対話操作を意味する。シーンの位置をアクティブ化することは、マウスのカーソルをその上に配置させること、またはその上でタッチを実行することを含んでもよい。アクティブ化後、略リアルタイムで、ジオメトリ的オブジェクトの少なくとも一部が表示される。特に、サーフェスの定義には、ユーザが、B-Repスキンが表示されている間に、B-Repスキンが表示されるシーンに対するグラフィカルな対話操作を行って、B-Repスキンに対してサーフェスの位置決めおよび視覚化を行うことが含まれていてもよい。CADシステムは、このように、サーフェスを定義するユーザに対し、視覚的なフィードバックを提供する。
【0047】
本方法は、一般に、モデル化オブジェクトを操作する。モデル化オブジェクトは、例えばデータベースに格納されたデータによって定義される任意のオブジェクトである。さらには、「モデル化オブジェクト」という表現は、データそのものも指す。システムの種類に応じて、異なる種類のデータによってモデル化オブジェクトが定義されてもよい。実際、システムは、CADシステム、CAEシステム、CAMシステム、PDMシステム、および/またはPLMシステムのうちの任意の組み合わせであってもよい。それら異なるシステムにおいて、モデル化オブジェクトは、対応するデータによって定義される。したがって、CADオブジェクト、PLMオブジェクト、PDMオブジェクト、CAEオブジェクト、CAMオブジェクト、CADデータ、PLMデータ、PDMデータ、CAMデータ、CAEデータについて言及することがある。しかしながら、モデル化オブジェクトは、これらのシステムの任意の組み合わせに対応するデータによって定義されてもよいため、これらのシステムは、互いに排他的なものではない。したがって、システムは、CAD兼PLMシステムであってもよい。
【0048】
CADシステムは、少なくとも、CATIAのようなモデル化オブジェクトのグラフィック表現に基づくモデル化オブジェクトの設計に適した任意のシステムをも意味する。この場合、モデル化オブジェクトを定義するデータは、モデル化オブジェクトを表現可能にするデータを含む。CADシステムは、例えば、辺や線を用い、また、場合により面や曲面を用いて、CADモデル化オブジェクトの表現を提供してもよい。線、辺、あるいは面は、例えば、非一様有理Bスプライン(NURBS)など、様々な様式で表現されてもよい。具体的には、CADファイルは仕様を含み、その仕様に基づきジオメトリが生成可能であり、よって表現が生成可能となる。モデル化オブジェクトの仕様は1つまたは複数のCADファイルに格納されていてもよい。CADシステムでモデル化オブジェクトを表現するファイルの典型的なサイズは、一部分あたり1メガバイトの範囲である。また、モデル化オブジェクトは、典型的には、数千の部分の集合体であってもよい。
【0049】
CADの文脈において、モデル化オブジェクトは、典型的には、3Dモデル化オブジェクトである。「3Dモデル化オブジェクト」は、3D表現が可能なデータによってモデル化される任意のオブジェクトを意味する。3D表現は、その部品をすべての角度から見ることを可能にする。たとえば、3Dで表現された3Dモデル化オブジェクトは、その軸のうちの任意の軸、あるいは、その表現が表示された画面中の任意の軸を中心に、処理して回転させることが可能である。これは、特に、3Dモデル化されていない2Dアイコンについては除外される。3D表現の表示は、設計を容易にする(すなわち、設計者が作業を達成するスピードを統計的に速める)。製品の設計は製造工程の一部であるから、これによって当該産業における製造工程が迅速化する。
【0050】
「機械部品」は、例えばCADソフトウェア・ソリューションまたはCADシステムを用いたその仮想設計の完了後、現実世界で製造される、あらゆる製品または製品の一部を意味する。機械部品は、部品の集合(例えば移動機構)、単一の剛体部品、または剛体部品の一部であってもよい。モデル化オブジェクトについて「機械部品を表す」とは、モデル化オブジェクトのジオメトリが機械部品の1つまたは複数のクラスAサーフェスの材料の空間分布を表すことを意味し、これは定義上、エンドユーザにとって可視である仮想製品の外面のことである。特に、B-Repスキンは、機械部品(すなわち、機械部品の外側スキンの少なくとも一部)の材料エンベロープを少なくとも部分的に(例えば、全体を)表してもよい。
【0051】
CADソフトウェア・ソリューションは、航空宇宙、建築、建設、消費財、ハイテク機器、産業機器、輸送、海洋、および/または海洋石油/ガス生産、または交通を含む、限定されることのない様々な産業分野において製品の設計を可能にする。本方法により設計される3Dモデル化オブジェクトは、このように、地上車両の部品(例えば、自動車および軽トラック機器、レーシングカー、オートバイ、トラックおよびモーター機器、トラック、バス、電車を含む)、航空車両の部品(例えば、航空機体機器、航空宇宙機器、推進機器、防衛製品、航空路線機器、宇宙機器を含む)、海軍車両の部品(例えば、海軍用機器、商業用船舶、オフショア機器、ヨットおよび作業船、船舶用機器を含む)、一般的な機械部品(例えば、工業用製造機械、大型移動機械または機器、設置機器、産業機器製品、加工金属製品、タイヤ製造製品を含む)、電気機械部品、または電子部品(例えば、家電、セキュリティおよび/または制御および/または計装製品、コンピューティングおよび通信機器、半導体、医療装置および設備を含む)、消費者製品(例えば、家具、家庭用および庭用製品、レジャー用品、ファッション用品、耐久消費財小売用品、織物類小売用品を含む)、包装(例えば、食品および飲料およびたばこ、美容およびパーソナルケア、家庭用製品包装を含む)などのように、任意の機械部品であり得る工業製品を表してもよい。
【0052】
機械部品は、特に、自動車部品(すなわち、自動車/車の機械部品)、航空宇宙部品(すなわち、衛星などの航空宇宙機の機械部品)、消費財部品(すなわち、棚の上に配置し、かつ/あるいは梱包し、購入することができる製品の部品または製品)、防衛部品(すなわち、防衛に用いられる車両または現実の物体の機械部品)、建築部品(すなわち、建物の壁や建物全体などの建築物の部品)、造船部品、海上およびオフショア部品(例えば、石油オフショアプラットフォームで使用)、鉱業部品(すなわち、鉱業に用いられる機器の機械部分)、あるいは産業機器部品(製造機械部品など)であってもよい。そのような機械部品は、実際、B-Repスキンで適切に表されることが多い。追加として、または代替として、機械部品は薄い部品であってもよい。薄い部品は、最初の板金材料を成形することで得られる機械部品である。板金の厚み寸法は、0.1mmより大きく、かつ/あるいは、10mmより小さく、例えば1mm程度であってもよく、かつ/あるいは、サイズは、0.1m×0.1mより大きく、かつ/あるいは、10m×10mより小さく、例えば1m×1m程度であってもよい。そのような機械部品は、B-Repスキンで適切に表される。これは、表現するという目的においては、その厚みを無視できるためである。追加として、または代替として、機械部品は、複合部品、プラスチック成型部品、または打ち抜き部品であってもよい。そのような機械部品は、実際、B-Repスキンで適切に表されることが多く、またそれらは薄い部品であることが多い。さらには、多くの自動車部品、航空宇宙部品、あるいは消費財が、このように製造されている。
【0053】
図1~
図7は、本方法により設計され得る機械部品を表すB-Repスキンを示す。
図1~
図2は、消費財製品、具体的にはシャンプーボトルの半分を表すB-Repスキンを示す。ユーザは、本方法を含むそのような半分を設計し、次に対称演算子を起動して最終的なボトルを取得できる。
図3~
図4は、自動車部品を表すB-Repスキンを示す。
図5~
図7は、それぞれ、複合部品、プラスチック成型部品、および打ち抜き部品を表すB-Repスキンを示す。
【0054】
図8は、CADシステムのGUIの一例を示す。GUI2100は、標準的なメニューバー2110、2120、ならびに底部および側面のツールバー2140、2150を有する典型的なCADのようなインターフェースであってもよい。このようなメニューバーおよびツールバーは、ユーザが選択可能なアイコンのセットを含み、各アイコンは、当技術分野で知られているように、1つまたは複数の操作または機能に関連付けられている。これらのアイコンのいくつかは、GUI2100に表示された3Dモデル化オブジェクト2000の編集および/または作業に適合したソフトウェアツールに関連付けられている。ソフトウェアツールはワークベンチにすることができる。各ワークベンチは、ソフトウェアツールのサブセットを含む。特に、ワークベンチの1つは、モデル化製品2000のジオメトリ的特徴を編集するのに適した編集ワークベンチである。操作中、設計者は、例えば、オブジェクト2000の一部を予め選択し、次いで、適切なアイコンを選択することによって、操作を開始する(例えば、寸法、色などを変更する)か、ジオメトリ的制約を編集することができる。例えば、典型的なCAD操作は、スクリーン上に表示された3Dモデル化オブジェクトのパンチングまたは折り畳みのモデリングである。GUIは、例えば、表示された製品2000に関連するデータ2500を表示してもよい。図の例では、「特徴ツリー」として表示されたデータ2500およびそれらの3D表現2000は、ブレーキキャリパおよびディスクを含むブレーキ部品に関するものである。GUIは、編集された製品の動作のシミュレーションを起動するため、または表示された製品2000の様々な属性を描画するために、例えばオブジェクトの3D定位を容易にするための様々なタイプのグラフィックツール2130、2070、2080をさらに示してもよい。カーソル2060は、ユーザがグラフィックツールを用いて対話操作ができるように、触覚デバイスによって制御されてもよい。
【0055】
図9は、本システムの一例を示すものであって、当該システムは、クライアントコンピュータシステム、例えばユーザのワークステーションである。本例のクライアントコンピュータは、内部通信バス1000に接続された中央演算処理装置(CPU)1010、および同じくバスに接続されたランダムアクセスメモリ(RAM)1070とを備える。クライアントコンピュータは、さらに、バスに接続されたビデオランダムアクセスメモリ1100と関連付けられたグラフィックス処理装置(GPU)1110を備える。ビデオRAM1100は、当該技術分野において、フレームバッファとしても知られる。大容量記憶装置コントローラ1020は、ハードドライブ1030などの大容量記憶装置へのアクセスを管理する。コンピュータプログラムの命令及びデータを具体的に実現するのに適した大容量メモリ装置は、例として、EPROM、EEPROM及びフラッシュメモリ装置のような半導体メモリ装置、内蔵ハードディスクやリムーバブルディスクなどの磁気ディスク、光磁気ディスク、およびCD-ROMディスク1040を含む、全ての形式の不揮発性メモリを含む。前述のいずれも、特別に設計されたASIC(特定用途向け集積回路)によって補完されてもよいし、組み入れられてもよい。ネットワークアダプタ1050は、ネットワーク1060へのアクセスを管理する。クライアントコンピュータはまた、カーソル制御装置、キーボードなどの触覚装置1090を含んでいてもよい。カーソル制御装置は、ユーザがディスプレイ1080上の任意の所望の位置にカーソルを選択的に位置させることを可能にするために、クライアントコンピュータ内で使用される。さらに、カーソル制御デバイスは、ユーザが様々なコマンドを選択し、制御信号を入力することを可能にする。カーソル制御装置は、システムに制御信号を入力するための多数の信号生成装置を含む。典型的には、カーソル制御装置はマウスであってもよく、マウスのボタンは信号を生成するために使用される。あるいは、または追加的に、クライアントコンピュータシステムは、感知パッドおよび/または感知スクリーンを備えてもよい。
【0056】
コンピュータプログラムは、コンピュータによって実行可能な命令を含んでいてもよく、命令は、上記システムに方法を実行させるための手段を含む。プログラムは、システムのメモリを含む任意のデータ記憶媒体に記録可能であってもよい。プログラムは、例えば、デジタル電子回路、またはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実装されてもよい。プログラムは、例えばプログラマブルプロセッサによる実行のための機械読み取り可能な記憶装置に具体的に実現された製品のような装置として実装されてもよい。方法ステップは、プログラム可能なプロセッサが命令のプログラムを実行し、入力データを操作して出力を生成することによって方法の機能を実行することによって実行されてもよい。したがって、プロセッサは、データ記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、また、それらにデータおよび命令を送信するようにプログラム可能であってもよく、またそのように接続されていてもよい。アプリケーションプログラムは、高水準の手続き型またはオブジェクト指向のプログラミング言語で、または必要に応じてアセンブリ言語または機械語で実装されていてもよい。いずれの場合も、言語はコンパイラ型言語またはインタープリタ型言語であってもよい。プログラムは、フルインストールプログラムまたは更新プログラムであってもよい。いずれの場合も、プログラムをシステムに適用すると、本方法を実行するための指示が得られる。
【0057】
「3Dモデル化オブジェクトの設計」とは、3Dモデル化オブジェクトを作り上げる工程の少なくとも一部である任意の行為あるいは一連の行為を指す。したがって、本方法は、3Dモデル化オブジェクトを一から作ることを含んでもよい。あるいは、本方法は、以前に作成された3Dモデル化オブジェクトを提供し、次いで3Dモデル化オブジェクトを修正することを含んでいてもよい。
【0058】
本方法は、本方法を実行した後に、形状がモデル化オブジェクトに対応する物理的製品を生産することを含み得る、製造工程に含まれていてもよい。いずれの場合も、本方法により設計されたモデル化オブジェクトは、製造物を表し得る。したがって、モデル化オブジェクトは、モデル化された立体(つまり、立体を表すモデル化オブジェクト)であってもよい。製造物は、部品や部品の組立体などの、製品であってもよい。本方法は、モデル化オブジェクトの設計を改善するため、製品の製造も改善し、よって製造工程の生産性が向上する。一例において、本方法により設計された3Dモデル化オブジェクトは、製造物を自動的に3D印刷する3Dプリンタに入力されてもよい。
【0059】
本方法で用いられる境界表現(B-Rep)フォーマットとその概念は広く知られてはいるが、ここではそれらについて説明する。
【0060】
B-Repモデルには、トポロジ的エンティティとジオメトリ的エンティティが含まれる。トポロジ的エンティティとは、面、辺、および頂点である。ジオメトリ的エンティティは3Dオブジェクトである。すなわち、サーフェス、平面、曲線、線、点である。
【0061】
定義上、面は境界が定められたサーフェスの一部であり、支持サーフェスと呼ばれる。辺は境界が定められた曲線の一部であり、支持曲線と呼ばれる。頂点は、3D空間内の点である。それらは次のように互いに関連する。境界が定められた曲線の一部は、曲線上の2つの点(頂点)によって画定される。境界が定められたサーフェスの一部は、その境界によって画定され、この境界は、サーフェス上にある辺の集合である。面の境界の辺は、頂点を共有することにより接続される。面は、辺を共有することで互いに接続される。定義上、2つの面が辺を共有している場合、それらはその辺において隣接している。同様に、2つの辺が頂点を共有している場合、それらは隣接している。
【0062】
図10~
図11は、3つの面、すなわち、上部平面と2つの円筒側面からなる円筒状スロットのB-Repモデルを示している。
図10は、当該スロットの斜視図である。可視の面、辺、および頂点に番号が振られている。
図11はすべての面の分解図である。重複する番号は共有する辺および頂点を示す。面1は境界が定められた平面の一部である。面1の境界には辺4と辺5が含まれ、これらはそれぞれ、頂点10と頂点11で境界が定められている。これらはともに同一の支持円を有する。面2は、すべてが無限の円筒状サーフェス上にある辺6、8、5、および13によって境界が定められている。面1と面2とは、辺5を共有するため隣接する。面2と面3とは、辺8と辺13を共有するため隣接する。面1と面3とは、辺4を共有するため隣接する。
【0063】
図12は、B-Repモデルの「境界画定」のトポロジ的関係を示す。上位層のノードは面、中間層のノードは辺、下位層のノードは頂点である。
【0064】
図13~
図14は、トポロジ的エンティティ(面、辺、頂点)と支持ジオメトリ(無限円筒、無限平面、無限線、点)の関係を示している。
【0065】
CADシステムでは、B-Repモデルは、適切なデータ構造において、「境界画定」の関係、トポロジ的エンティティと支持ジオメトリの関係、および支持ジオメトリの数学的記述を収集する。
【0066】
ここで、ボリュームとスキンのモデリングについて説明する。
【0067】
定義上、B-Repの内部の辺はちょうど2つの面に共有される。定義上、境界辺は共有されず、1つの面のみの境界を定める。定義上、境界面は、少なくとも1つの境界辺に付随する。
【0068】
B-Repは、すべての辺が内部の辺である場合、閉じていると言われる。B-Repは、少なくとも1つの境界辺が含まれている場合、開いていると言われる。
図10~
図14のB-Repの例は、辺6と辺7が境界辺であるため、開いている。逆に、辺4、5、8、および13は内部の辺である。
図15~16に示すように、辺6および辺7によって境界が定められた円盤状の面14を追加することにより、例から、閉じたB-Repが得られる。
【0069】
閉じたB-Repは、材料を囲む空間の内側部分を画定するため、3Dボリュームのモデリングに用いられる。開いたB-Repは、3Dスキンをモデル化するために用いられ、これは、その厚みが無視できるほど小さい3Dオブジェクトである。
【0070】
ここで、B-Repボリュームにおけるプログラムの適用(以下では「面置換」操作とも呼ぶ)について説明する。
【0071】
CADの業界では、仮想3DオブジェクトはB-Repモデルを介して実装される。非常に便利な設計操作として、特定のB-Repの面を別の面で置き換えることがある。これは、3Dオブジェクトの形状を局所的に変更する効率的な方法である。より正確には、設計対象のオブジェクトのB-Rep、置換対象となるこのB-Repの面、および置換面が関与する。置換面は、3DオブジェクトのB-Repに属していない。目標は、
図17に示すように、CADシステムが置換面をB-Repにマージすることである。
【0072】
アルゴリズムの観点から見ると、最初のステップで、システムはB-Repから置換対象の面を除去し、それにより、
図18の左図に示すように空隙を作成し得る。第2のステップにおいて、(除去された)置換対象の面に隣接する面が、必要な限りにおいて、
図18の中央の図に示されるように外挿され得る。必要に応じて、
図18の右図に示すように、置換面も外挿することができ、トリミングが可能になる。最後のステップでは、置換面をトリミングしてB-Repにマージしてもよく、これにより3Dオブジェクトの形状が更新される。
【0073】
この「面置換」操作の重要なステップは、マージするステップである。3Dオブジェクトがボリュームの場合、これは閉じたB-Repによってモデル化される。つまり、境界辺は存在しない。特に、置換対象の面は、あらゆる場所が隣接する面に囲まれている。これらの(外挿された)隣接面をトリミングに用いると、
図18の右図に示すように、あいまいでない結果が得られる。これは、
図19に示すように、外挿面と置換面との交線が閉ループを特徴とし、これが、保持する部分と破棄する部分とを画定するためである。
【0074】
3Dオブジェクトがスキンの場合、境界辺を特徴とするB-Repによってモデル化される。置換対象の面が境界面である場合、その境界辺のいくつかは、
図20の左図に示されるように、どの隣接面にも共有されない。置換対象の面がB-Repから除去され(
図20の中央の図)、隣接面が外挿された後(
図20の右の図)において、置換面のトリミングに用いることができるジオメトリは十分なものではない。
【0075】
これは、
図21~
図22に示すように、外挿面と置換面との交線が開曲線であり、これは、いかなる保持する部分をも画定しないためである。
【0076】
そのため、ボリューム用に設計された「面置換」アルゴリズムは、この特定の状況に適応しない場合、スキンの境界面の形状を変更することができない。本方法は、そのような適応策を提供し、スキンにおいて置換面をマージするためのB-Repが閉じた状況を復元する。これは、それぞれ境界面に隣接し、B-repスキンの各境界辺によって境界が定められる1つまたは複数の第2の面を作成することによって行われる。このような作成は、後で説明する例では、最初のスキンのオフセットを介して中間ボリュームを算出することで実行できる。「面置換」操作は中間ボリュームに対して実行されてもよく、結果として得られるボリュームは予想される形状を含み、そこから、結果として得られるスキンが抽出され得る。
【0077】
本方法は、このようにボリュームとスキンに同様に作用する「面置換」操作を提供することにより、CADシステムの設計能力を拡張する。これにより、面倒な手作業による解決が回避され、設計時間が短縮される。さらに、一例においては、本方法が高レベルのアルゴリズムを用いていること、すなわち、スキンを厚化し、ボリュームの「面置換」を行っていることも、注目に値する。よって、これらの例における本方法には、簡単で信頼性の高いプログラミングが提供される。なぜなら、これらのアルゴリズムは、CADシステムのジオメトリ的モデル化ライブラリから独立して存在し得るためである。
【0078】
工業試験では、本方法によって提供されるジオメトリが、モデル化オブジェクトのさらなる設計、すなわち、トリミングおよび他のスキンモデルとのマージに特に適していることが示されている。
【0079】
ここで、本方法の一例を、
図23を参照して説明する。
【0080】
本方法は、機械部品の一部または全体を表す最初のB-Repスキンを提供すること(S10)から始まる。一例においては、提供すること(S10)は、ユーザ対話操作を介して、例えば、ユーザがB-Repを設計することにより実施される。別の例では、最初のB-Repは、例えば、メモリ内で取得したり、離れた場所にあるコンピュータから受信したりするなど、既に設計された状態で提供されてもよい。
【0081】
本方法は、次いで、例えば、ユーザが「面置換」操作を開始した後、CADシステムとのグラフィカルなユーザ対話操作によってサーフェスを定義すること(S20)を含む。サーフェスの境界が定められてもよい。例えば、サーフェスは、ユーザにより、B-Repフォーマットで接続された1つまたは複数の面として定義され得る。あるいは、サーフェスは境界が定められていなくてもよい。例えば、ユーザは、標準曲面、手続き型曲面、またはNURBSなどのように、境界を指定せずにサーフェスを定義してもよい。あるいは、ユーザは面を定義できるが、システムはアルゴリズムを実行するために支持サーフェスのみを考慮してもよい。
【0082】
例では、ユーザは、例えば、定義(S20)の前または後に、「面置換」操作内において、サーフェスに基づいて、最初のB-Repスキンの置換されるべき少なくとも1つの面をさらに指定してもよい。別の例では、CADシステムは、例えば、定義されたサーフェスからの距離が最小であり、かつ/あるいは、他の任意の基準を満たす、少なくとも1つの面として、B-Repの置換されるべき少なくとも1つの面を自動的に識別してもよい。
【0083】
当該少なくとも1つの面は、単一の面からなるか、あるいはいくつかの隣接する面を含んでいてもよい(例えば、「上面(supra-face)」、すなわち接続面の集合体を形成する)。以下の説明では、当該少なくとも1つの面が最初のB-repスキンの最初の境界面、すなわち、最初のB-repスキンの1つまたは複数の最初の境界辺で境界が定められた面で構成される場合に焦点を当てている。ただし、アルゴリズムは他の入力面や面のグループにも適用できる。
【0084】
最初の境界面は、最初のB-repスキンの各最初の内部辺において、最初の境界面にそれぞれが隣接する、1つまたは複数の第1の面を有する最初のB-Rep部分を形成するものである。「B-Rep部分」とは、単に、B-Repフォーマットを表すB-Repスキンの一部を意味する。第1の面は、例えば必要であれば(すなわち、S310の結果に応じて)、CADシステムによって自動的に識別されてもよい。言い換えれば、本方法はB-Rep部分を自動的に決定してもよい。
【0085】
この例の方法は、次いで、1つまたは複数のB-Rep(サブ)スキンのそれぞれに、アルゴリズムの後続のステップS40およびS50によって独立して処理される各B-Rep部分を提供する、システムによって自動的に実行されるスキームS30を含む。スキームS30では、S40およびS50で処理面を置き換えることができ、これらの面は、常に全体がサーフェスの各側に配置される(すなわち、サーフェスと交差しない)。これにより、本方法が堅牢なものとなる。しかしながら、スキームS30はオプションである。本方法は、実際には、S20の後にS40に直接進むか、あるいは、スキームS30によって想定されS310でテストされる状況が禁止されてもよい。
【0086】
スキームS30は、S20で定義されたサーフェスが上記最初の境界面をいくつかのサブ面(「境界」サブ面と呼ばれる)に分割するかどうかをテストすること(S310)を含む。「分割」とは、サーフェスが最初の境界面と交差し、その交線が、最初の境界面を、それぞれ全体がサーフェスの各側に位置するいくつかの部分に分割することを意味する。
【0087】
テスト(S310)の結果は否定的となる可能性があり、これは、サーフェスが最初の境界面と交差しないことを意味し、その場合アルゴリズムは、単一の入力として最初のB-Repスキンの未処理(すなわち未分割の)の最初のB-Rep部分を用いてS40に進んでもよい。
【0088】
しかしながら、他方、テストS310の結果は肯定的となる可能性があり、その場合、本方法は、サーフェスが最初の境界面を分割する方法に従って(すなわち、S310でテストした分割と同じ分割位置を用いて)、最初のB-RepスキンをいくつかのB-Repサブスキン(すなわち、これらは最初のB-Repスキンの一部を形成するB-Repスキンに過ぎない)に分割する(S320)。本方法は、次いで、そのような各B-Repサブスキンについて、B-Repサブスキンの1つまたは複数の境界辺によって境界が定められた各境界サブ面(すなわち、最初の境界面の一部)を含む、各B-Rep部分を決定する(S330)。境界サブ面は全体がサーフェスの各側に位置する。そのような場合、構築S40および置換S50は、各B-Repサブスキンについて、それぞれのB-Rep部分に対して実行される。言い換えると、各B-Repサブスキン、それらのB-Rep部分、およびB-Rep部分のそれぞれの境界面(最初の境界面のサブ面)はS40およびS50に入力され、独立して(例えば並列に)処理される。S40とS50が独立して実行された後、結果として得られる/更新された/変更されたB-Repサブスキンが、結合または縫合されてもよい(例えば、自動的に)。
【0089】
本方法は、S30の後に、各B-RepサブスキンのB-Rep部分、または最初のB-RepスキンのB-Rep部分(テストS310の結果による)について、構築(S40)(自動的に)、および置換(S50)(自動的に、かつ/あるいは、ユーザ検証後)を実行する。例における本方法の以下の説明では、構築(S40)と置換(S50)の1回の実行について説明しており、B-Repサブスキン、サブ部分、および境界サブ面を指す場合、「サブ」という用語は削除している。
【0090】
入力B-Repスキンの入力B-Rep部分のB-rep置換の構築S40は、それぞれ境界面に隣接し、B-repスキンの各境界辺によって境界が定められる1つまたは複数の第2の面を作成すること(S410)を含む。一例において、B-repスキンの各境界辺(境界面がどの第1の面にも隣接しない)について、境界面が(第1および第2の面で)囲まれるように、すなわち、境界面がそれ以上自由辺を持たないように、1つまたは複数の第2の面が作成される。
【0091】
作成(S410)は、B-rep部分を、例えばサーフェスと反対の方向に厚化することを含んでいてもよい(面は全体がサーフェスの片側に位置しているため、サーフェスから面に向かって定義された方向に厚化し、厚化した結果、状況に関係なくサーフェスと交差しないボリュームが生成される)。これにより、機械的な観点から最終的に一貫した結果が堅牢な方法で得られる。
【0092】
この例では、厚化は、B-rep部分のB-repオフセット(これは、B-Repフォーマットを表すB-rep部分の単なるオフセットである)を決定すること(S4110)と、B-repオフセットをB-rep部分に接続する1つまたは複数の側面を構築すること(S4120)を含む。1つまたは複数の第2の面は、1つまたは複数の側面から、例えば、境界面が自由辺を示さないようにするのに必要な最小限の側面の集合として決定されてもよい(S4130)。例では、それ自体で開いたB-Repスキンを形成したB-Rep部分が、今度はB-Repオフセットと1つまたは複数の側面と共に閉じたB-Repボリュームを形成するように、S4120で1つまたは複数の側面を構築してもよい。別の例では、B-Repスキン、そのオフセット、および1つまたは複数の側面によって閉じたボリュームが形成されるように、厚化によりB-Repスキン全体のオフセットが決定される。
【0093】
厚化の後、本方法は、B-Rep部分を置換するB-rep集合体を生成すること(S420)を含む。B-Rep集合体は、ユーザの意図に従って機械的に一貫した結果が得られるようにB-Repスキンフォーマットを表す単なるパッチであり、サーフェスと部分的に同一のジオメトリを示し、B-Rep部分を置き換えるときにB-Repスキンにスムーズに縫合することができる。
【0094】
B-Rep集合体には、それぞれがサーフェスと一致する1つまたは複数の第3の面(例えば単一の第3の面)が含まれ(すなわち、各第3の面の少なくとも一部がジオメトリ的にサーフェス上にある)、各第3の面には1つまたは複数の辺があり、各第3の面の各辺は最終的にはB-rep集合体の内部に存在する。B-Rep集合体はさらに、それぞれ各第1の面と一致し(すなわち、それぞれの少なくとも一部がジオメトリ的に各第1の面の支持サーフェス上にあり)、各第3の面に隣接する、1つまたは複数の第4の面と、それぞれ各第2の面と一致し(すなわち、それぞれの少なくとも一部がジオメトリ的に各第2の面の支持サーフェス上にあり)、各第3の面に隣接する、1つまたは複数の第5の面とを含む。言い換えれば、B-Rep集合体は、1つまたは複数の第2の面で拡張されたB-Rep部分と同じトポロジまたは概形を示すが、その一部はサーフェスとジオメトリ的に一致し、また一部は置換対象の入力面(もともと境界面であったもの)の周囲に配置された第1の面と第2の面のリングとジオメトリ的に一致する。
【0095】
一例において、生成S420は、1つまたは複数の第3の面をそれぞれサーフェスを外挿および/またはトリミングすることにより作成すること、1つまたは複数の第4の面をそれぞれ各第1の面の支持サーフェスを外挿および/またはトリミングすることにより作成すること、および/または、1つまたは複数の第5の面をそれぞれ各第2の面の支持サーフェスを外挿および/またはトリミングすることにより作成することを含む。サーフェスが境界で画定され、第4の面と第5の面でトリミングするのに十分な大きさでない場合、そのようなトリミングが可能になるようにサーフェスを外挿することができる。同様に、第1の面と第2の面がトリムするのに十分な大きさでない場合、その目的のために、それらを外挿することができる。このように、生成S420は、
図17~
図19を参照して先に説明したように、第1、第2および第3の面の補間を実行する。
【0096】
一例においては、ユーザエクスペリエンスの観点から、サーフェスは、B-Repスキンの既存の面を置き換える新しい面としてユーザによって定義される。一般に、新しい面は大まかな寸法において既存の面と類似しており、新しい面は、既存の面から完全に離して、ほぼ平行に配置されるか、単一の曲線に沿って既存の面と交差する(これにより既存の面を2つだけのサブ面に分割する)。実際、CAD設計の技術分野で知られているように、一般に許容されるトポロジをわずかに調整するのに「面置換」操作を用いてもよい。新しい面は、(置換が実行されると)外挿とトリミングによって、置換対象の面の周囲のB-Repスキンの最初のトポロジと同一のトポロジが生成されるように、寸法および位置が決定されてもよい。これはすべて
図17~
図21を参照して先に説明したとおりである。
【0097】
次いで、本方法は、B-Rep集合体が1つまたは複数の第2の面なしにB-Rep部分と同じトポロジまたは概形を示すように、B-Rep集合体から各第5の面を除去すること(S430)を含む。これにより、最初のトポロジを尊重できる。
【0098】
最終的に、本方法は、例えばユーザ検証時に、B-rep置換によりB-RepスキンにおけるB-rep部分を置き換えること(S50)を含む。
【0099】
一例において、ユーザ対話操作の観点から、「面の置換」操作は、とりわけ簡単となり得る。(1)ソリッドまたはスキンを選択する。(2)選択したソリッドまたはスキン上で、置換対象面を選択する。(3)置換するサーフェスを選択する。(4)OKボタンを押下する。そのような操作をしない代替的な方法は、サーフェスの断片を手動でカットし、組み立てることであるが、これは時間がかかり退屈であるだけでなく、より重要なことには、事後の修正および更新を行う場合に、すぐに不安定になる。単一の機能での「面置換」操作のキャプション(caption)は、後から編集したり、格段に安定した方法で強調表示したりすることができる。
【0100】
ここで、本方法の実施について説明する。
【0101】
スキンの「厚化」操作について説明する。
【0102】
本方法は、スキンに対するいわゆる「厚化」操作を用いる。設計者の観点から見ると、この操作は、スキンでモデル化された厚みゼロの3Dオブジェクトを、ボリュームでモデル化された厚みのある(しかし薄い)オブジェクトに変更する。厚みの値はユーザにより定義される。その本質は、入力スキンのオフセットを算出することである。本方法の文脈では、このオフセットは入力スキンの片側に向けられたものである。厚化アルゴリズムの主要なステップは、
図24に示すようなものであってもよい。
【0103】
言い換えれば、1つまたは複数の側面は、1つまたは複数のリボン側面を含んでもよい。各リボン側面は、B-rep部分の各境界辺と、B-repオフセットにおける対応する境界辺によって境界が定められてもよい。そのような場合、境界面に隣接しB-repスキンの各境界辺によって境界が定められる各リボン側面は、各第2の面を形成してもよい。
【0104】
一例においては、各第2の面を形成する各リボン側面は、線織面によって支持されていてもよい。これにより、機械的な観点から関連する1つまたは複数の第2の面をS410で作成でき、最終的に(S50の置換後)、このように機械的な観点から関連する結果が得られる。これを実行するための例についてここで説明する。
オフセット・サーフェスの定義
数学的観点から、入力スキンの面F、その支持サーフェスS、およびオフセット値δが与えられると、オフセット面の支持サーフェス
【0105】
【0106】
は、
【0107】
【0108】
をサーフェスSの法線ベクトルとするとき、
【0109】
【0110】
で定義される。
外挿値
最初のステップでは、間隙がオフセット・サーフェスを隔てるのを防ぐために、入力サーフェスの外挿値を算出する。問題は、入力隣接面のオフセット・サーフェスが、オフセット値およびそれらの相対位置に応じて、隔てられるか、あるいは交差する可能性があることである。
図25は、鋭い辺を共有する3つの隣接面F
1、F
2、およびF
3からなるスキンを示す。各支持サーフェスS
1、S
2、およびS
3を、サーフェス
【0111】
【0112】
【0113】
および
【0114】
【0115】
にオフセットすることにより、サーフェス
【0116】
【0117】
とサーフェス
【0118】
【0119】
とは交差するが、サーフェス
【0120】
【0121】
とサーフェス
【0122】
【0123】
は離れているという状況が生じ、これにより、対応するオフセット面
【0124】
【0125】
および
【0126】
【0127】
のさらなるトリミングが問題となる。
【0128】
この課題は、各オフセット・サーフェスが交差するようにサーフェスS
1とS
2を外挿することで解決される。外挿値はαδであり、ここでαは、共有される辺に沿って測定した面F
1と面F
2の法線ベクトル間の最大角度である。
図26は、交差するオフセット・サーフェス
【0129】
【0130】
および
【0131】
【0132】
が生じるサーフェスS1およびS2の適切な外挿を示す。
平行スキンの算出
第2のステップは、入力スキンのオフセット(外挿)サーフェスを用いて、また、オフセット面をトリミングして、オフセット・スキンを算出することである。このステップの後、
図27~
図28に示すように、平行スキンのジオメトリとトポロジが分かる。
境界頂点オフセット
スキンの境界頂点は、通常、2つの面のみに共有される。F
1およびF
2を、境界頂点Vに付随する面とする。支持サーフェスS
1およびS
2の各オフセット・サーフェス
【0133】
【0134】
および
【0135】
【0136】
およびそれらの交差曲線Cを考える。本質的に、この曲線は、
図27~
図28に示すように、面F
1および面F
2のオフセット境界曲線と、点V
1および点V
2において交差する。
【0137】
リボン側面は、
図29に示すように、面F
1の境界曲線で構成される面L
1と、面F
2の境界曲線で構成される面L
2と、頂点V、V
1、およびV
2で構成されリボン面L
1およびL
2を接続する三角形の面Tとからなる。
リボン側面のジオメトリ
閉じるリボンは、入力スキンの境界と、その平行スキンの境界とを接続する。
【0138】
【0139】
を支持サーフェスS上に画定された入力スキンの境界辺とすると、対応する境界3D曲線は、
【0140】
【0141】
となる。平行スキンの、対応する境界曲線は、
【0142】
【0143】
となる。
【0144】
よって、これら2つの境界曲線を接続するリボンサーフェスは、線織面
【0145】
【0146】
のとき
【0147】
【0148】
であり、
【0149】
【0150】
となる。
【0151】
このようなリボン側面のジオメトリは平板理論に準拠しており、例えば、「K.D.Hjelmstad,Fundamentals of Structural Mechanics, Springer,2005」に定義されている。実際、本方法を用いてCADシステムで設計される典型的な産業用部品は、通常は薄い平板である最初の平板シートを、曲げたり、あるいは、打ち抜いたりすることによって製造される。平板理論によれば、最初の平板の平均サーフェスに垂直な線は、変形によって、変形した平板の基準サーフェスに垂直な線に変化する。この特性は、
図30に示すように、上述のリボン側面の定義において面法線Nを用いることにより、本方法の一例において、正確に捉えられる。これは、基準サーフェスの法線ベクトルが基準サーフェスに平行な任意のサーフェスの法線ベクトルでもあるからである。実際、任意の実数δに対して、平行サーフェスの接平面は、ベクトル
【0152】
【0153】
および
【0154】
【0155】
により生成される。これらはともに、最初のサーフェスSの法線ベクトルNに垂直である。まず、
【0156】
【0157】
となる。次いで、Nの定義により
【0158】
【0159】
となり、
【0160】
【0161】
となる。なぜなら、すべてのuとvについて
【0162】
【0163】
であり、よって
【0164】
【0165】
だからである。S
vについても同様である。これは、
図30に示すように、リボン側面のジオメトリが、変形した平板のジオメトリであることを意味する。
【0166】
したがって、本方法のこのような例は、機械部品が、曲げられ、かつ/あるいは、打ち抜かれた平板シートを含むときに、特に正確な結果を提供する。実際、B-Rep部分がそのようなシートの一部を表す場合、作成S410は機械部品の真の形状に合致する。しかし、本方法のこれらの例は、プラスチック成型部品や複合部品などの成型部品の場合にも優れた近似性を提供する。
【0167】
ここで、S420および/またはS4110で実施され得るサーフェス外挿の例を説明する。これらの例では、外挿の方法は、入力サーフェスの性質、すなわち、標準曲面であるか、手続き型曲面であるか、あるいは自由曲面であるかに依存する。
【0168】
標準曲面とは、平面、球面、円柱面、円錐面、および円環面である。これらは、法線ベクトルが適切に定義されている限り、[a,b]×[c,d]ドメインを拡張することにより推定される。例えば、円錐面は、頂点を超えて外挿すべきではない。
【0169】
手続き型曲面は、ガイド要素によって定義される3Dモーションに従って平面プロファイルを掃引することによって定義される。手続き型曲面とは、押し出し面、回転面、線織面、および複雑な掃引面である。押し出し面は、線分に沿って掃引したプロファイルである。回転面は、軸を中心に回転させたプロファイルである。線織面
【0170】
【0171】
は、上に定義したリボン側面
【0172】
【0173】
と同様、2つの曲線
【0174】
【0175】
またはサーフェスの法線フィールドによってガイドされる線分の動きである。
【0176】
リボン側面は、
図31に示すように、間隔[0,1]を延長することにより、t方向に容易に外挿できる。
【0177】
複雑な掃引面は、スプライン曲線および他の要素(曲線またはサーフェス)によってガイドされる移動プロファイルである。手続き型曲面は、2つのステップで外挿される。まず、入力要素(定義間隔、プロファイル、押し出し線、回転角、スプライン曲線、およびガイド要素)が外挿され、次に、新しい入力から掃引面が再算出される。特に、線織面の直線方向t(上述の表記による)への外挿は、対応する間隔定義を拡張することである。この工程は、線織面を外挿したものが別の線織面であることを保証する。
【0178】
典型的な自由曲面は、制御点のグリッドで定義されたNURBSサーフェスである。これは、「L.Piegl,W.Tiller,TheNURBSbook,Springer1996」で定義されているように、入力サーフェスが変更されず最初のNURBSサーフェスとのマッチングが曲率連続になるように制御点を追加することによって外挿できる。
面の分類
厚化操作が完了すると、結果として得られるボリュームのB-Repには3種類の面が含まれる。すなわち、入力面と呼ばれる入力スキンの面と、側面と呼ばれる入力面に隣接する新しい面(厚化アルゴリズムのステップ3で作成される)と、内面と呼ばれる他のすべての面(厚化アルゴリズムのステップ2で作成される)である。
図32は、入力スキン、結果として得られる厚いボリューム、およびすべての種類の面を例示している。
【0179】
側面および内面は、厚化操作によって作成されるため、追加面と総称される。
【0180】
ここで、交差しない状況用のアルゴリズムを示す。
【0181】
本方法の本質は、スキンのコンテキストにおいて、ボリュームに適合した「面置換」操作を用いることである。入力データは、
図33~
図34に示すように、スキンと、ユーザが選択した、スキンの置換対象面と、ユーザが選択した置換面である。分かりやすくするため、最初に、置換面が置換対象面と交差しない状況でのアルゴリズムを説明する。交差する状況については、別のセクションで説明する。システムは以下のステップを実行する。
【0182】
ステップ1では、入力スキンの非変更部分を分離する。これは、置換対象面と、ローカル入力スキンと呼ばれる、データ構造内におけるそのすべての隣接面とを保持することによって行われる。その他の面があっても、本操作では変更されない。それらは非変更スキンと呼ばれ、ステップ5で再利用するために保存される。これにより、関連する面のみを含めることで、ステップ2の厚化操作がより安全になる。非変更面の厚化失敗のリスクが回避される。これは
図35に示されている。
【0183】
ステップ2では、ステップ1で得られたローカル入力スキンを厚化してボリュームを作成する。厚みは、置換面の反対側のスキンの側に方向付けられる。操作が成功するように、厚みの値は十分に小さくする。典型的な値は、0.1mmまたは0.2mmより大きく、かつ/あるいは、2mmまたは1mmより小さい値、例えば0.5mmである。分かりやすくするために、図では大きな厚みの値を用いている。厚化により生じる追加面には、さらなる管理のために適切にフラグが立てられる。このステップでは、厚化アルゴリズムを用いる。これは
図36に示されている。
【0184】
ステップ3では、前のステップで算出したボリュームに対して「面置換」操作を実行する。このステップでは、既存の「面置換」アルゴリズムを用いる。これは
図37に示されている。
【0185】
ステップ4では、(ステップ2で)厚化操作によって追加された追加面としてフラグが立てられている面を除去する。結果として得られるスキンは、結果のローカル形状である。これは
図38に示されている。
【0186】
ステップ5では、非変更スキン(ステップ1で抽出)とステップ4で抽出されたローカル結果スキンとを結合し、これにより、結果スキンが得られる。結合操作は、「~は~によって境界が定められている」というトポロジ的関係による論理的な書き換えである。ジオメトリ的演算は含まれない。これは
図39に示されている。
【0187】
アルゴリズムのすべてのステップ(交差しない状況)が、
図40に集約されている。
【0188】
ここで、交差する状況用のアルゴリズムを示す。
【0189】
ここで、複雑な状況について説明する。置換面が置換対象面と交差する場合、置換面は置換対象面の両側に位置するため、ステップ2の厚化方向は定義されていない。この場合、解決策は、置換面を用いて、ステップ1で取得したローカル入力スキンを分割することである。これにより、少なくとも2つの部分的ローカル入力スキンが生成され、これらはそれぞれ部分的な置換対象面を特徴とする。設計上、部分的な置換対象面は、それぞれ、置換面の片側に配置される。次いで、上述のアルゴリズムが部分的ローカル入力スキンのそれぞれに実行され、これにより、できるだけ多くの部分的ローカル結果スキンが生成される。ローカル結果スキンは、すべての部分的ローカル結果スキンを結合することによって得られる。
【0190】
ここで、本アルゴリズムについて、同じローカル入力スキンと、置換対象面と交差する僅かに異なる置換面とを用いて例示する。これは
図41に示されている。
【0191】
ローカル入力スキンを置換面で分割すると、2つの部分的ローカル入力スキンが生成される。これは
図42に示されている。
【0192】
ここで、非交差アルゴリズムは、第1の部分的ローカルスキンに対して実行され、これにより第1の結果部分的ローカルスキンが生成される。これらのステップは
図43に示されている。
【0193】
ここで、非交差アルゴリズムは、第2の部分的ローカルスキンに対して実行され、これにより第2の結果部分的ローカルスキンが生成される。これらのステップは
図44~
図45に示されている。なお、上述のステップと比較して、厚化の方向が反対向きとなっている。
【0194】
ここで、結果部分的ローカルスキンが結合され、結果ローカルスキンが得られる。トリムされた置換面の隣接部分(
図46の中央の図)は、それらが共有する滑らかな辺がトポロジから除去されるようにマージされる(
図46の右図)。
【0195】
図47は、交差しない状況のアルゴリズムを用いて、交差する状況のアルゴリズムを説明している。
【0196】
簡潔にするため、本方法を、単一の面を別の単一の面で置換する操作を行うものとして説明した。しかしながら、本方法は他の状況でも用いることができ、例えば、入力スキンの隣接面の集合を別の隣接面の集合で置換するのに用いることができる。