(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-22
(45)【発行日】2024-07-30
(54)【発明の名称】隆起を特徴とする部品の設計
(51)【国際特許分類】
G06F 30/10 20200101AFI20240723BHJP
G06T 17/30 20060101ALI20240723BHJP
【FI】
G06F30/10 100
G06T17/30
【外国語出願】
(21)【出願番号】P 2020099605
(22)【出願日】2020-06-08
【審査請求日】2023-05-11
(32)【優先日】2019-07-04
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】500102435
【氏名又は名称】ダッソー システムズ
【氏名又は名称原語表記】DASSAULT SYSTEMES
(74)【代理人】
【識別番号】110000752
【氏名又は名称】弁理士法人朝日特許事務所
(72)【発明者】
【氏名】マリーニ ローラン
【審査官】合田 幸裕
(56)【参考文献】
【文献】特開平03-050679(JP,A)
【文献】特開2017-142779(JP,A)
【文献】米国特許出願公開第2013/0151551(US,A1)
【文献】米国特許出願公開第2009/0256842(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/00 - 30/398
G06T 17/30
IEEE Xplore
JSTPlus(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
CADシステムにより、機械部品を表す3Dモデル化オブジェクトを設計するための、
コンピュータによって実施される方法であって、
面と辺を有し機械部品の少なくとも一部を表すB-repを表示することと、
グラフィカルなユーザ対話操作によって、前記B-repの少なくとも1つの面を選択することと、
前記CADシステムによって、自動的に、前記選択した少なくとも1つの面を含み隆起を表す面の集合を認識すること
を含み、
前記面の集合を認識することは、
それぞれ前記少なくとも1つの面を含む面の集合であって、凹部を表す第1の面の集合と、凸部を表す第2の面の集合とを決定することと、
前記第1の面の集合および前記第2の面の集合のうち、境界曲線の周長が最短であって、前記選択された少なくとも1つの面および前記B-repのいずれとも異なる面の集合を選択すること
を含むことを特徴とする方法。
【請求項2】
前記第1の面の集合は、凸状の内側辺および丸い面を含まない1つまたは複数の面からなる第1の連結集合を含み、
前記第2の面の集合は、凹状の内側辺およびフィレット面を含まない1つまたは複数の面からなる第2の連結集合を含む
ことを特徴とする請求項1に記載の方法。
【請求項3】
1つまたは複数の面からなる前記第1の連結集合は、凸状の辺および/または丸い面のみによって境界が定められており、
1つまたは複数の面からなる前記第2の連結集合は、凹状の辺および/またはフィレット面のみによって境界が定められている
ことを特徴とする請求項2に記載の方法。
【請求項4】
前記第1の面の集合は、1つまたは複数の面からなる前記第1の連結集合から構成され、
前記第2の面の集合は、1つまたは複数の面からなる前記第2の連結集合から構成される
ことを特徴とする請求項3に記載の方法。
【請求項5】
前記少なくとも1つの面は、前記B-repの1つの面から構成される
ことを特徴とする請求項1~4のいずれか1つに記載の方法。
【請求項6】
面の集合は、
前記面の集合の境界曲線の周長が、別の面の集合の境界曲線の周長よりも厳密に小さい場合、または、
前記面の集合の境界曲線の周長が、別の面の集合の境界曲線の周長に等しく、また、前記面の集合の境界ボックスの長さが、前記別の面の集合の境界ボックスの長さよりも小さ
い場合に、
前記別の面の集合と比べて最短の境界曲線を有する
ことを特徴とする請求項1~5のいずれか1つに記載の方法。
【請求項7】
前記第1の面の集合および前記第2の面の集合のうち、境界曲線の周長が最短であって、前記選択された少なくとも1つの面および前記B-repのいずれとも異なる面の集合を選択することは、
判断することであって、
前記第1の面の集合または前記第2の面の集合が、前記少なくとも1つの面であるかどうか、および
前記第1の面の集合または前記第2の面の集合が、前記B-repであるかどうかを判断し、
前記第1の面の集合も前記第2の面の集合も前記B-repではない場合、および前記第1の面の集合も前記第2の面の集合も前記少なくとも1つの面ではない場合、
前記第1の面の集合の境界曲線の周長が、前記第2の面の集合の境界曲線の周長と等しいかどうか判断することと、
前記第1の面の集合の境界曲線の周長が、前記第2の面の集合の境界曲線の周長と等しい場合、前記第1の面の集合の境界ボックスの長さと、前記第2の面の集合の境界ボックスの長さとを比較することと
を含むことを特徴とする請求項6に記載の方法。
【請求項8】
前記B-repが開いたB-repであることを特徴とする請求項1~7のいずれか1つに記載の方法。
【請求項9】
前記B-repは前記機械部品の物理的サーフェスに対応することを特徴とする請求項8に記載の方法。
【請求項10】
前記機械部品は、
成形部品、
機械加工部品、
穴あけ部品、
旋削部品、
鍛造部品、
プレス部品、および/または、
折り曲げ部品である
ことを特徴とする請求項1~9のいずれか1つに記載の方法。
【請求項11】
前記隆起は、
質量を削減する特徴、
スペースを確保する特徴、
固定する特徴、
締める特徴、
調節する特徴、
位置決めを行う特徴、
機械的接続を行う特徴、
冷却を行う特徴、
回転または円筒状機械的接続を行う特徴、
組み立てを行う特徴、
硬化を行う特徴、および/または、
すべての機械加工および穴あけ凸部の特徴をサポートするものである
ことを特徴とする請求項1~10のいずれか1つに記載の方法。
【請求項12】
請求項1~11のいずれか1つに記載の方法を実行するための命令を含むコンピュータプログラム。
【請求項13】
請求項12に記載のコンピュータプログラムを記録したコンピュータ読み取り可能記憶媒体。
【請求項14】
請求項12に記載のコンピュータプログラムを記録したメモリ
と、前記コンピュータプログラムを実行するプロセッサと、グラフィカル・ユーザ・インターフェースとを備えるコンピュータ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータプログラムおよびシステムの分野に関し、より具体的には、CADシステムにより、機械部品を表す3Dモデル化オブジェクトを設計するための方法、システム、およびプログラムに関する。
【背景技術】
【0002】
オブジェクトの設計、エンジニアリング、製造のため、多数のシステムおよびプログラムが市場に提供されている。CADは、コンピュータ支援設計(Computer-Aided Design)の略語であり、例えば、オブジェクトを設計するためのソフトウェア・ソリューションに関する。CAEは、コンピュータ支援エンジニアリング(Computer-Aided Engineering)の略語であり、例えば、将来の製品の物理的挙動をシミュレーションするためのソフトウェア・ソリューションに関する。CAMは、コンピュータ支援製造(Computer-Aided Manufacturing)の略語であり、例えば、製造工程および動作を定義するためのソフトウェア・ソリューションに関する。このようなコンピュータ支援設計システムにおいて、グラフィカル・ユーザ・インターフェースは、技術の効率に関して、重要な役割を果たす。これらの技術は、製品ライフサイクル管理(Product Lifecycle Management: PLM)システムに組み込むことができる。PLMとは、企業が、拡張エンタープライズの概念全体にわたって、製品データを共有し、共通の工程を適用し、構想に始まり製品寿命の終わりに至る製品開発のための企業知識を活用するのを支援するビジネス戦略を指す。ダッソー・システムズが提供するPLMソリューション(製品名CATIA、ENOVIA、DELMIA)は、製品エンジニアリング知識をオーガナイズするエンジニアリング・ハブ、製品エンジニアリング知識を管理する製造ハブ、およびエンジニアリング・ハブと製造ハブの両方に対するエンタープライズ統合と接続を可能にするエンタープライズ・ハブを提供する。全てのシステムは、製品、工程、リソースを結ぶオープンなオブジェクトモデルを提供し、最適化された製品定義、製造準備、生産およびサービスを推進する、動的な知識ベースの製品作成および意思決定支援を可能にする。
【0003】
機械設計の文脈において、隆起は、機械部品の少なくとも一部を表すB-repの面によって表される機能的特徴である。隆起を表すすべての面を認識、および/または、選択するのは、難しい場合がある。
【0004】
隆起の認識および/または選択のための既存の方法には、効率および/または人間工学性の欠如という欠点がある。
【発明の概要】
【発明が解決しようとする課題】
【0005】
こうした状況において、機械部品を設計するための改善された方法が今なお求められている。
【課題を解決するための手段】
【0006】
よって、CADシステムにより、機械部品を表す3Dモデル化オブジェクトを設計するための、コンピュータによって実施される方法が提供される。本方法は、機械部品の少なくとも一部を表すB-repを表示することを含む。B-repは、面と辺を有する。本方法は、グラフィカルなユーザ対話操作によって、B-repの少なくとも1つの面を選択することをさらに含む。本方法は、CADシステムによって、自動的に、面の集合を認識することをさらに含む。前記面の集合は、前記選択された少なくとも1つの面を含む。前記面の集合は、隆起を表す。前記面の集合の認識は、第1の面の集合および第2の面の集合を決定することを含む。前記第1の面の集合および前記第2の面の集合は、ともに、前記少なくとも1つの面を含む。前記第1の面の集合は凹部を表し、前記第2の面の集合は凸部を表す。前記面の集合の認識は、前記第1の面の集合および前記第2の面の集合のうち、境界曲線の周長が最短であって、前記選択された少なくとも1つの面および前記B-repのいずれとも異なる面の集合を選択することをさらに含む。
【0007】
これにより、機械部品を設計するための改善された方法が構成される。
【0008】
特に、本方法では、B-repにおける隆起を表す面の集合を認識できる。言い換えれば、本方法では、機械設計に関連する情報を決定できる。特に、隆起を表す面の集合は、認識されると、ユーザに出力されてもよく、それにより、面の集合に対して設計操作を実行できるようになる。本方法は、隆起のすべての面および/または辺に対して、単一の設計操作を、自動的かつ統一された手法で実行することをさらに含んでいてもよい。
【0009】
さらに、本方法は、面の集合を自動的に認識する。言い換えれば、本方法は、当該認識においてユーザ・アクションが関与しない。よって、本方法は人間工学的である。
【0010】
さらに、本方法は、最初に少なくとも1つの面を選択し、次いで当該選択された少なくとも1つの面を含み、かつ隆起を表す面の集合を認識する、という2段階で行われる。この2段階のアプローチは、隆起を自動的に認識させるために、ユーザが隆起の一部(すなわち、少なくとも1つの面)を選択するだけで十分であるため、効率と人間工学性を改善する。
【0011】
当該少なくとも1つの面が、それぞれが隆起を表すすべての面で構成されている必要はないため、この2段階のアプローチにより、実際にユーザは簡単な方法で当該少なくとも1つの面を選択できる。例えば、当該少なくとも1つの面は、1つだけの面(すなわち、単一の面)で構成されていてもよい。そして、面の集合の自動認識では、面の集合を、当該選択された少なくとも1つの面から、(例えば、反復的に)推定してもよい。言い換えれば、自動認識では、隆起を表す面の集合が見つかるまで、少なくとも1つの面を、隣接する面により、繰り返し拡張してもよい。言い換えれば、ユーザが単に1つの面を選択すれば、それに次いで当該1つの面が一部のみを表す隆起を、自動的に認識するのに十分であってもよい。これにより、本方法は特に人間工学的かつ効率的になる。
【0012】
さらに、面の集合自体の認識も、第1の面の集合と第2の面の集合を決定し、次いで、それらの中から1つの面の集合を選択する、という2段階のアプローチで行われる。これにより、本方法が効率的かつ堅牢になる。実際、当該少なくとも1つの面を含む隆起は、凸部または凹部であり得るが、本方法では、それが凸部であるか凹部であるかを知ることなく隆起を認識する。特に、第1の面の集合と第2の面の集合のうち少なくとも1つ(例えば、1つだけ)は、隆起を真に表す面の集合であるため、本方法では、凸部を表す集合と凹部を表す集合の両方(両方の集合に当該少なくとも1つの面が含まれる)を探すことによって、いかなる場合も両方の面の集合を決定する。これにより、隆起を表す少なくとも当該1つの集合が決定される。次いで、第1の面の集合と第2の面の集合のうち、隆起を表す集合を選択することにより、2つの集合のうち、隆起を表す1つの集合を、ユーザに出力することができる。したがって、ユーザは、隆起のうちの小さな一部(すなわち、少なくとも1つの面)のみを選択したときに、取得したい隆起を取得する。
【0013】
当該選択では、第1の面の集合および第2の面の集合のうち、境界曲線の周長が最短であって、選択された少なくとも1つの面およびB-repのいずれとも異なる面の集合を選択する。ここで、少なくとも1つの面を選択すると、ユーザは、当該少なくとも1つの面を含む面の集合が認識されることを期待する。当該面の集合は、隆起を表すことになる。したがって、面の集合に含まれている面は多過ぎず、隆起を表す面のみが含まれている必要がある。第1の面の集合と第2の面の集合のうち、境界曲線の周長が最短のほうを選択すれば、含まれる面の数が多過ぎず隆起を真に表すほうを認識できる。これにより、2つの決定された面の集合のうち、隆起を真に表すほうを効率的に選択する。実際、「当該少なくとも1つの面を含む最小の隆起の認識」、あるいは「当該少なくとも1つの面を、それを含む最小の隆起まで拡張すること」と言うことができる。言い換えれば、選択したい隆起の一部のみを選択すれば、ユーザに、自動的な「最小隆起認識」が提供される。
【0014】
さらに、隆起が凸部であるか凹部であるかは知ることなく隆起を認識できる能力は、特に有利である。実際、ユーザは、完全に選択したい隆起の小さな一部(すなわち、少なくとも1つの面)選択するだけで隆起が自動的に認識され、凸部であるか凹部であるかは関係なく、実際、ユーザは知らなくてもよい。これは、B-repが開いているときにさらに有利であり、この場合、以下でさらに説明するように、凸部と凹部の概念がユーザにとって視覚的にあいまいであってもよい。
【0015】
本方法は、以下のうち1つまたは複数を含んでいてもよい。
【0016】
・前記第1の面の集合は、凸状の内部の辺および丸い面を含まない1つまたは複数の面からなる第1の連結集合を含み、前記第2の面の集合は、凹状の内部の辺およびフィレット面(filet face)を含まない1つまたは複数の面からなる第2の連結集合を含む。
【0017】
・1つまたは複数の面からなる前記第1の連結集合は、凸状の辺および/または丸い面のみによって境界が定められ、1つまたは複数の面からなる前記第2の連結集合は、凹状の辺および/またはフィレット面のみによって境界が定められる。
【0018】
・前記第1の面の集合は、1つまたは複数の面からなる前記第1の接続集合からなり、前記第2の面の集合は、1つまたは複数の面からなる前記第2の接続集合からなる。
【0019】
・前記少なくとも1つの面は前記B-repの1つの面からなる。
【0020】
・面の集合は、次の場合に、別の面の集合と比べて最短の境界曲線を有する。
・前記面の集合の境界曲線の周長が、別の面の集合の境界曲線の周長よりも厳密に小さい。または、
・前記面の集合の境界曲線の周長が、別の面の集合の境界曲線の周長に等しく、また、前記面の集合の境界ボックスの長さが、別の面の集合の境界ボックスの長さよりも小さい。
【0021】
・面の集合の前記選択は、以下を含む。
・判断することであって、
・前記第1の面の集合または前記第2の面の集合が、前記少なくとも1つの面であるかどうか、および
・前記第1の面の集合または前記第2の面の集合が、前記B-repであるかどうかを判断し、
・前記第1の面の集合も前記第2の面の集合も前記B-repではない場合、および前記第1の面の集合も前記第2の面の集合も前記少なくとも1つの面ではない場合、
・前記第1の面の集合の境界曲線の周長が、前記第2の面の集合の境界曲線の周長と等しいかどうか判断し、
・前記第1の面の集合の境界曲線の周長が、前記第2の面の集合の境界曲線の周長と等しい場合、前記第1の面の集合の境界ボックスの長さと、前記第2の面の集合の境界ボックスの長さとを比較する。
【0022】
・前記B-repは開いたB-repである。
【0023】
・前記B-repは前記機械部品の物理的サーフェスに対応する。
【0024】
・前記機械部品は、
・成形部品、
・機械加工部品、
・穴あけ部品、
・旋削部品、
・鍛造部品、
・プレス部品、および/または、
・折り曲げ部品であり、かつ/あるいは、
・前記隆起は、
・質量を削減する特徴、
・スペースを確保する特徴、
・固定する特徴、
・締める特徴、
・調節する特徴、
・位置決めを行う特徴、
・機械的接続を行う特徴、
・冷却を行う特徴、
・回転または円筒状機械的接続を行う特徴、
・組み立てを行う特徴、
・硬化を行う特徴、および/または、
・すべての機械加工および穴あけ凸部の特徴をサポートするものである。
【0025】
さらには、本方法を実行するための命令を含むコンピュータプログラムが提供される。
【0026】
さらには、当該コンピュータプログラムを記録したコンピュータ読み取り可能記憶媒体が提供される。
【0027】
さらには、当該コンピュータプログラムを記録したメモリに接続されたプロセッサと、グラフィカル・ユーザ・インターフェースとを備えるシステムが提供される。
以下、非限定的な例として、本発明の実施の形態を添付の図面を参照しつつ説明する。
【図面の簡単な説明】
【0028】
【
図1】本システムのグラフィカル・ユーザ・インターフェースの一例を示す。
【発明を実施するための形態】
【0029】
本方法は、コンピュータによって実施される。すなわち、本方法のステップ(あるいは略全てのステップ)が、少なくとも1つのコンピュータ、または任意の類似のシステムによって実行される。よって本方法のステップは、コンピュータにより、完全に自動的に、あるいは半自動的に実行される可能性がある。一例において、本方法のステップの少なくともいくつかは、ユーザ対話操作を介してトリガされてもよい。求められるユーザとコンピュータの対話操作のレベルは、想定される自動性のレベルに応じたものであって、ユーザの要望を実装する必要性との間でバランスをとるものとしてもよい。一例において、このレベルは、ユーザが設定し、かつ/あるいは、予め定義されていてもよい。
【0030】
コンピュータによる方法の実施の典型的な例は、この目的に適したシステムを用いて本方法を実行することである。当該システムは、本方法を実行するための命令を含むコンピュータプログラムを記録したメモリに接続されたプロセッサ、および、グラフィカル・ユーザ・インターフェイス(GUI)を備えていてもよい。メモリはデータベースを記憶していてもよい。メモリは、そのような記憶に適した任意のハードウェアであり、場合により、物理的に区別可能ないくつかの部分(例えば、プログラム用に1つ、場合によりデータベース用に1つ)を含む。
【0031】
本方法は、一般に、モデル化オブジェクトを操作する。モデル化オブジェクトは、例えばデータベースに格納されたデータによって定義される任意のオブジェクトである。さらには、「モデル化オブジェクト」という表現は、データそのものも指す。本システムは、CADシステムであってもよく、モデル化オブジェクトは、対応するデータによって定義される。したがって、CADオブジェクトについて言及することがある。
【0032】
CADシステムは、少なくとも、CATIAのようなモデル化オブジェクトのグラフィック表現に基づくモデル化オブジェクトの設計に適した任意のシステムをも意味する。この場合、モデル化オブジェクトを定義するデータは、モデル化オブジェクトを表現可能にするデータを含む。CADシステムは、例えば、辺や線を用い、また、場合により面や曲面を用いて、CADモデル化オブジェクトの表現を提供してもよい。線、辺、あるいは面は、例えば、非一様有理Bスプライン(NURBS)など、様々な様式で表現されてもよい。具体的には、CADファイルは仕様を含み、その仕様に基づきジオメトリが生成可能であり、よって表現が生成可能となる。モデル化オブジェクトの仕様は1つまたは複数のCADファイルに格納されていてもよい。CADシステムでモデル化オブジェクトを表現するファイルの典型的なサイズは、一部分あたり1メガバイトの範囲である。また、モデル化オブジェクトは、典型的には、数千の部分の集合体であってもよい。
【0033】
CADの文脈において、モデル化オブジェクトは、典型的には、3Dモデル化オブジェクト、例えば、一つの部品や部品の集合体などの製品、あるいは製品の集合体を表すものであってもよい。「3Dモデル化オブジェクト」は、3D表現が可能なデータによってモデル化される任意のオブジェクトを意味する。3D表現は、その部品をすべての角度から見ることを可能にする。例えば、3Dで表現された3Dモデル化オブジェクトは、その軸のうちの任意の軸、あるいは、その表現が表示された画面中の任意の軸を中心に、処理して回転させることが可能である。これは、特に、3Dモデル化されていない2Dアイコンについては除外される。3D表現の表示は、設計を容易にする(すなわち、設計者が作業を達成するスピードを統計的に速める)。製品の設計は製造工程の一部であるから、これによって当該産業における製造工程が迅速化する。
【0034】
3Dモデル化オブジェクトは、CADソフトウェア・ソリューションやCADシステム等を用いた仮想的デザインの完了後に実世界において製造される製品、すなわち(例えば機械)部品や、部品の集合体(あるいは同様に部品の集合体。なぜなら部品の集合体は本方法の観点では一つの部品としてみることができ、また、本方法は集合体における各部品に独立して適用することができるからである)など、より一般的には任意の剛体の集合体(例えば移動機構)などの製品のジオメトリを表現してもよい。CADソフトウェア・ソリューションは、航空宇宙、建築、建設、消費財、ハイテク機器、産業機器、輸送、海洋、および/または海洋石油/ガス生産、または交通を含む、限定されることのない様々な産業分野において製品の設計を可能にする。本方法により設計される3Dモデル化オブジェクトは、このように、地上車両の部品(例えば、自動車および軽トラック機器、レーシングカー、オートバイ、トラックおよびモーター機器、トラック、バス、電車を含む)、航空車両の部品(例えば、航空機体機器、航空宇宙機器、推進機器、防衛製品、航空路線機器、宇宙機器を含む)、海軍車両の部品(例えば、海軍用機器、商業用船舶、オフショア機器、ヨットおよび作業船、船舶用機器を含む)、一般的な機械部品(例えば、工業用製造機械、大型移動機械または機器、設置機器、産業機器製品、加工金属製品、タイヤ製造製品を含む)、電気機械部品、または電子部品(例えば、家電、セキュリティおよび/または制御および/または計装製品、コンピューティングおよび通信機器、半導体、医療装置および設備を含む)、消費者製品(例えば、家具、家庭用および庭用製品、レジャー用品、ファッション用品、耐久消費財小売用品、織物類小売用品を含む)、包装(例えば、食品および飲料およびたばこ、美容およびパーソナルケア、家庭用製品包装を含む)などのように、任意の機械部品であり得る工業製品を表してもよい。
【0035】
一例において、本方法で設計される機械部品は、成形部品(すなわち、成形製造工程によって製造された部品)、機械加工部品(すなわち、機械加工製造工程によって製造された部品)、穴あけ部品(すなわち、穴あけ製造工程によって製造された部品)、旋削部品(すなわち、旋削製造工程で製造された部品)、鍛造部品(すなわち、鍛造製造工程で製造された部品)、プレス部品(すなわち、プレス製造工程で製造された部品)、および/または、折り曲げ部品(すなわち、折り曲げ製造工程で製造された部品)のうちのいずれか1つ、またはこれらの任意の組み合わせである。本方法は、隆起を含むことが多いそのような機械部品の例を設計するのに特に効率的である。これらの例のうちの特定の一例において、本方法によって設計される機械部品は、成形部品、旋削部品、プレス部品、および/または、折り曲げ部品のうちのいずれか1つ、またはこれらの任意の組み合わせである。本方法は、隆起を含むことが特に多いそのような機械部品の例を設計するのに特に効率的である。
【0036】
図1は、本システムのGUIの一例を示し、当該システムは、CADシステムである。
【0037】
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は、ユーザがグラフィックツールを用いて対話操作ができるように、触覚デバイスによって制御されてもよい。
【0038】
図2は、本システムの一例を示すものであって、当該システムは、クライアントコンピュータシステム、例えばユーザのワークステーションである。
【0039】
本例のクライアントコンピュータは、内部通信バス1000に接続された中央演算処理装置(CPU)1010、および同じくバスに接続されたランダムアクセスメモリ(RAM)1070とを備える。クライアントコンピュータは、さらに、バスに接続されたビデオランダムアクセスメモリ1100と関連付けられたグラフィックス処理装置(GPU)1110を備える。ビデオRAM1100は、当該技術分野において、フレームバッファとしても知られる。大容量記憶装置コントローラ1020は、ハードドライブ1030などの大容量記憶装置へのアクセスを管理する。コンピュータプログラムの命令及びデータを具体的に実現するのに適した大容量メモリ装置は、例として、EPROM、EEPROM及びフラッシュメモリ装置のような半導体メモリ装置、内蔵ハードディスクやリムーバブルディスクなどの磁気ディスク、光磁気ディスク、およびCD-ROMディスク1040を含む、全ての形式の不揮発性メモリを含む。前述のいずれも、特別に設計されたASIC(特定用途向け集積回路)によって補完されてもよいし、組み入れられてもよい。ネットワークアダプタ1050は、ネットワーク1060へのアクセスを管理する。クライアントコンピュータはまた、カーソル制御装置、キーボードなどの触覚装置1090を含んでいてもよい。カーソル制御装置は、ユーザがディスプレイ1080上の任意の所望の位置にカーソルを選択的に位置させることを可能にするために、クライアントコンピュータ内で使用される。さらに、カーソル制御デバイスは、ユーザが様々なコマンドを選択し、制御信号を入力することを可能にする。カーソル制御装置は、システムに制御信号を入力するための多数の信号生成装置を含む。典型的には、カーソル制御装置はマウスであってもよく、マウスのボタンは信号を生成するために使用される。あるいは、または追加的に、クライアントコンピュータシステムは、感知パッドおよび/または感知スクリーンを備えてもよい。
【0040】
コンピュータプログラムは、コンピュータによって実行可能な命令を含んでいてもよく、命令は、上記システムに方法を実行させるための手段を含む。プログラムは、システムのメモリを含む任意のデータ記憶媒体に記録可能であってもよい。プログラムは、例えば、デジタル電子回路、またはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実装されてもよい。プログラムは、例えばプログラマブルプロセッサによる実行のための機械読み取り可能な記憶装置に具体的に実現された製品のような装置として実装されてもよい。方法ステップは、プログラム可能なプロセッサが命令のプログラムを実行し、入力データを操作して出力を生成することによって方法の機能を実行することによって実行されてもよい。したがって、プロセッサは、データ記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、また、それらにデータおよび命令を送信するようにプログラム可能であってもよく、またそのように接続されていてもよい。アプリケーションプログラムは、高水準の手続き型またはオブジェクト指向のプログラミング言語で、または必要に応じてアセンブリ言語または機械語で実装されていてもよい。いずれの場合も、言語はコンパイラ型言語またはインタープリタ型言語であってもよい。プログラムは、フルインストールプログラムまたは更新プログラムであってもよい。いずれの場合も、プログラムをシステムに適用すると、本方法を実行するための指示が得られる。
【0041】
「3Dモデル化オブジェクトの設計」とは、3Dモデル化オブジェクトを作り上げる工程の少なくとも一部である任意の行為あるいは一連の行為を指す。したがって、本方法は、3Dモデル化オブジェクトを一から作ることを含んでもよい。あるいは、本方法は、以前に作成された3Dモデル化オブジェクトを提供し、次いで3Dモデル化オブジェクトを修正することを含んでいてもよい。
【0042】
本方法は、本方法を実行した後に、モデル化オブジェクトに対応する物理的製品を生産することを含み得る、製造工程に含まれていてもよい。いずれの場合も、本方法により設計されたモデル化オブジェクトは、製造物を表し得る。したがって、モデル化オブジェクトは、モデル化された立体(つまり、立体を表すモデル化オブジェクト)であってもよい。製造物は、部品や部品の組立体などの、製品であってもよい。本方法は、モデル化オブジェクトの設計を改善するため、製品の製造も改善し、よって製造工程の生産性が向上する。
【0043】
ここで、機械部品の少なくとも一部を表すB-repを表示することについて説明する。この説明の前に、
図3~25を参照して、本方法に関与するG-repの概念について説明する。
【0044】
B-Repには、トポロジ的エンティティとジオメトリ的エンティティが含まれる。トポロジ的エンティティとは、面、辺、および頂点である。ジオメトリ的エンティティは3Dオブジェクトである。すなわち、サーフェス、平面、曲線、線、点である。定義上、面は境界が定められたサーフェスの一部であり、支持サーフェスと呼ばれる。辺は境界が定められた曲線の一部であり、支持曲線と呼ばれる。頂点は、3D空間内の点である。それらは次のように互いに関連する。境界が定められた曲線の一部は、曲線上の2つの点(頂点)によって画定される。境界が定められたサーフェスの一部は、その境界によって画定され、この境界は、サーフェス上にある辺の集合である。面の境界の辺は、頂点を共有することにより接続される。面は、辺を共有することで接続される。2つの面が辺を共有している場合、それらは隣接している。同様に、2つの辺が頂点を共有している場合、それらは隣接している。
図3は、3つの面、すなわち、上部平面と2つの円筒側面からなる円筒状スロットのB-Repを示している。
図3は、当該スロットの斜視図である。可視の面、辺、および頂点に番号が振られている。
図4はすべての面の分解図である。重複する番号は共有する辺および頂点を示す。面1は境界が定められた平面の一部である。面1の境界には辺4と辺5が含まれ、これらはそれぞれ、頂点10と頂点11で境界が定められている。これらはともに同一の支持円を有する。面2は、すべてが無限の円筒状サーフェス上にある辺6、8、5、および13によって境界が定められている。面1と面2とは、辺5を共有するため隣接する。面2と面3とは、辺8と辺13を共有するため隣接する。面1と面3とは、辺4を共有するため隣接する。
図5は、
図3および
図4のB-Repの「境界画定」のトポロジ的関係を例示したグラフを示す。上位層のノードは面、中間層のノードは辺、下位層のノードは頂点である。
図6は、
図4のB-repのトポロジ的エンティティ(面、辺、頂点)間の関係を例示したグラフを示している。
図7は、支持ジオメトリを示す。CADシステムでは、B-Repは、適切なデータ構造において、「境界画定」の関係、トポロジ的エンティティと支持ジオメトリの関係、および支持ジオメトリの数学的記述を収集する。
【0045】
定義上、B-Repの内部の辺はちょうど2つの面に共有される。定義上、境界辺は共有されず、1つの面のみの境界を定める。定義上、境界面は、少なくとも1つの境界辺によって境界が定められる。B-Repは、すべての辺が内部の辺である場合、閉じていると言われる。B-Repは、少なくとも1つの境界辺が含まれている場合、開いていると言われる。
図3および
図4の例のB-Repは、辺6と辺7が境界辺であるため、開いている。逆に、辺4、5、8、および13は内部の辺である。
図8に示すように、辺6および辺7によって境界が定められた円盤状の面14を追加することにより、
図3および
図4の例から閉じたB-Repが得られる。
図8は閉じたB-repを示し、
図9は、閉じたB-repの「境界画定」のトポロジ的関係を例示したグラフを示す。閉じたB-Repは、マテリアルを(仮想的に)囲んでいる空間の内側部分を定義するので、厚い3Dボリュームをモデル化するのに使用される。開いたB-Repは、厚みが無視できるほど小さい3Dオブジェクトを表す3Dスキンをモデル化するのに用いられる。本方法の場合、開いたB-repは特に、機械部品の物理的サーフェスを表す3Dスキンをモデル化してもよい。
【0046】
B-Repの各面は、支持サーフェスを用いて定義した法線ベクトルを備える。まず、法線ベクトルは、支持サーフェスの法線ベクトルと共線の関係にある。さらに、機械部品を表す閉じたB-Repの法線ベクトルは、マテリアルの外側を向いている。FをB-Repの面、Nをその外向き法線ベクトルとする。Eを面Fの辺、Xを辺E上の点、Tを点Xにおける辺Eの正規化した接ベクトルとする。定義上、
図10において、ベクトルM=N×Tが面の内側の領域に向けられている場合、辺Eは反時計回りの向きになる。なお、ベクトルNとTは正規化され、垂直であるため、ベクトルMは正規化されている。慣例により、B-Repのすべての面のすべての辺は、
図11に示されているように、反時計回りの向きになっている。
【0047】
「開いたスキン」とも呼ばれる開いたB-repの方向付けは、内側と外側を定義できないため、あいまいである。その結果、
図12および
図13に示されるように、開いたスキンは2つの向きを有しうる。
図12は、第1の向きで方向付けられた開いたスキンを示し、
図13は、第2の向きで方向付けられた同じ開いたスキンを示す。
【0048】
開いたB-repの場合、向きは任意であり、CADシステムによって選択される。これはユーザにとって意味がない可能性がある。なぜなら、特に、ユーザは、その向きがマテリアルの内側に向かう向きか外側に向かう向きかを知らない可能性があるからである。言い換えれば、開いたB-repはマテリアルの内側または外側の位置とは無関係にCADシステムによって任意に方向付けられる一方、閉じたB-repはマテリアルの外側に向けられた法線ベクトルを有する。例えば、ユーザは、B-repの隆起がマテリアルの内側に向けられていているか(この場合、隆起は凹部)、マテリアルの外側に向けられているか(この場合、隆起は凸部)は知らない可能性がある。具体的に、CADシステムは、このような向きのあいまいさを引き起こさない。CADシステムは、B-rep上に定義された法線ベクトルに基づいて向きを算出する。編集時に、法線ベクトルが適切に方向付けられない場合がある(例えば、現実の世界のように、マテリアルの外側/内側に関して)。これは、開いたB-repを編集するときに特に頻繁に発生する。なぜなら、法線ベクトルは、設計の最初にすぐに役立つとは限らないためである。言い換えると、CADシステムは誤ったデータに基づいて向きを算出する場合があり、これにより向きのあいまいさが生じる。
【0049】
ここで、
図14から
図21を参照して、3Dモデル化オブジェクトのB-repの辺が凸であることの概念について説明する。この説明では、B-repは閉じていても開いてもよい。いずれの場合も、B-repは向きを有する(上記のように、法線ベクトルによって定義される)。
【0050】
3Dモデル化オブジェクトのB-Repが与えられた場合、Eを面F
1およびF
2が共有する辺とし、Xを辺E上の点とする。面F
1およびF
2のそれぞれの外向き法線ベクトルを、N
1およびN
2で表す。P
1とP
2を、それぞれ法線ベクトルN
1およびN
2を有する、点Xを通る平面とする。平面P
1およびP
2は、点Xの近傍の外側3D領域および内側3D領域を局所的に定義する。ベクトルN
1+N
2は、その本質から、外側3D領域を指し示す。M
1およびM
2を、それぞれ面F
1およびF
2に対する点Xのマテリアルベクトルとする。ベクトルM
1+M
2は、その本質から、凸状3D領域を指し示す。定義上、N
1+N
2とM
1+M
2が逆の方向を有する場合、すなわち、
図14および15に示すように(M
1+M
2,N
1+N
2)<0である場合、辺Eは点Xにおいて凸状である。辺Eは、すべての点において凸状である場合、凸状である。逆に、N
1+N
2とM
1+M
2が同じ方向を有する場合、すなわち、
図16および
図17に示すように(M
1+M
2,N
1+N
2)>0である場合、辺Eは点Xにおいて凹状であると言う。辺Eは、すべての点において凹状である場合、凹状である。あるいは、(M
1+M
2,N
1+N
2)=0であり、これは当該辺が滑らかな辺または鋭い(knife)辺のいずれかであることを意味する。滑らかな辺の場合、
図18および
図19に示すようにM
1+M
2=0かつN
1=N
2となる。これは通常、典型的な機械部品のB-repにおいて起こる。鋭い(knife)辺の場合、場合、
図20および
図21に示すようにN
1+N
2=0かつM
1=M
2となる。鋭い(knife)辺は完全性のために記載され、これは機械部品をモデル化する際には通常使用されない。
【0051】
明らかに、鋭い辺の凸性(凸対凹)は、法線ベクトルの向きと密接に関連している。開いたスキンを処理する場合、このような向きは任意であり、よって、閉じたB-repの場合と比較して、凸状であることがユーザにとって視覚的にあまり意味を持たない。例えば、開いたB-repの場合、ユーザは鋭い辺が凸状(すなわち、凹状または凸状)であることを確認できるが、ユーザは、鋭い辺の凸状態が、現実の世界で製造された機械部品の鋭い辺に対応する部分の凸状態と同じであるかどうかは分からない可能性がある。
【0052】
ジオメトリ的観点からは、丸い面が、凸状の鋭い辺を、滑らかな遷移によって置き換える。遷移面は、最初の鋭い辺の隣接面どうしを接続する回転球の包絡面である。同様に、フィレット面は、凸状の鋭い辺を、同じ回転球のジオメトリに基づく滑らかな遷移によって置き換える。
図22および
図23は、丸い面およびフィレット面のジオメトリを例示している。
図22は、凸状の辺220および凹状の辺222を示す。
図23は、対応する丸い面230およびフィレット面232を示す。正準面(円筒、平面、球、円錐など)と同様に、丸い面およびフィレット面は、一般に、B-Repデータ構造において論理型を備えている。この論理型が欠落している場合、これらの面は以下のように認識され得る。パラメータ化
【数1】
は、
【数2】
としたとき、すべての
【数3】
について、曲線
【数4】
が、uに依存しない半径を有する円の一部となるように実行される。あるいは、すべての
【数5】
について、曲線
【数6】
が、vに依存しない半径を有する円の一部となるように実行される。B-repの外向き法線ベクトルが円の凹側に向いている場合、サーフェスSによって支持される面は丸いサーフェスである。B-repの外向き法線ベクトルが円の凸側に向いている場合、サーフェスSによって支持される面はフィレットサーフェスである。
図24は、丸い面240およびフィレット面242のパラメータ化を例示している。丸い面とフィレット面は、それぞれ凸状の辺および凹状の辺のように振る舞う。これは、機械的観点から、丸い面は凸状の鋭い辺を置き換える滑らかな遷移であり、フィレット面は凹状の鋭い辺を置き換える滑らかな遷移であるからである。これは、成形および機械加工法により製造される機械部品を設計する際に必ず生じる。
【0053】
以下、B-repの双対グラフの概念について説明する。B-Repの双対グラフは、面の隣接関係のみを捉える論理グラフである。これは以下のように定義される。双対グラフのノードはB-repの面と紐づけられており、双対グラフの円弧はB-repの辺と関連付けられている。円弧と関連付けられたB-repの辺が、それぞれノードと関連付けられたB-repの面によって共有される場合、双対グラフの円弧は当該双対グラフの2つのノードを接続する。例えば、
図8の円筒形B-Repの双対グラフは、
図25に表されている。円弧には辺の番号が付される。面の連結集合は、B-repの、弧状に連結された部分を形成し、以下のように定義してもよい:集合における面を表す双対グラフのノードが当該双対グラフの連結されたサブグラフのノードである場合、面の集合は結合されている。
【0054】
ここで、隆起、凸部、および凹部について説明する。
【0055】
機械部品は、1つまたは複数の隆起によって実行される機械的機能を満たすように設計してもよい。隆起は、機械的機能を実行するマテリアルのレイアウト(例えば、配置)である。隆起は、凹部の形状を有するマテリアルのレイアウトである、凹部であってもよい。あるいは、隆起は、凸部の形状を有するマテリアルのレイアウトである、凸部であってもよい。
【0056】
隆起は、隆起であるマテリアルのレイアウトに対応、かつ/あるいは、表現、かつ/あるいは、形成しうるジオメトリを有する。ジオメトリは、いくつかの基本的なジオメトリを含んでいてもよい(例えば、それらに関与してもよく、例えば、それらの組み合わせであってもよい)。基本的なジオメトリは線形押し出しであってもよい。線形押し出しは、パッド(マテリアルを追加する)であってもよい。線形押し出しは、ポケット(マテリアルを取り除く)であってもよい。基本的なジオメトリは回転であってもよい。回転は軸(マテリアルを追加する)であってもよい。回転は溝(マテリアルを取り除く)であってもよい。基本的なジオメトリは掃引プロファイルであってもよい。掃引プロファイルは、リブ(マテリアルを追加する)および/または補強材(マテリアルを追加する)であってもよい。回転はスロット(マテリアルを取り除く)であってもよい。
【0057】
隆起は、面の連結集合によって表されてもよい。言い換えれば、面の連結集合に対応するB-repの部分は、隆起のジオメトリをモデル化し、かつ/あるいは、表してもよい。面の連結集合が概ね凹状であり、面の集合の境界が完全に凸状である場合、隆起は凹部と呼ばれてもよい。面の連結集合が概ね凸状であり、面の集合の境界が完全に凹状である場合、隆起は凸部と呼ばれてもよい。したがって、B-repの法線ベクトルがユーザにとって意味のある場合、つまり、上述のように閉じたB-repの場合、凸部と凹部の概念は明確に定義し得る。開いたスキンを扱う場合、隆起は、法線ベクトルの向きにより、凸部あるいは凹部になり得る。与えられた法線ベクトルの向きにより凹部である隆起は、反対の法線ベクトルの向きにより凸部となり、また逆も同様である。
【0058】
図26および
図27は、開いたB-repの場合の凸部と凹部との視覚的なあいまいさを示す。「視覚的なあいまいさ」とは、開いたスキンを表示するとき、同じジオメトリが、視点によって、凹部または凸部としてユーザにより解釈できることを意味する。ソリッド(閉じたB-repで表される)の場合には、視点は常にマテリアルの外側にあるため、このような誤解は起こりえない。
図26および
図27は、この現象を例示している。
図26は、凸部のように見えるものを特徴とする開いたスキンを示す。
図27は、凹部のように見えるものを特徴とする開いたスキンを示す。両図は同じ開いたスキンであるが、異なる視点から見ている。
【0059】
B-repは、ユーザのアクション、例えば、ユーザと本方法のCADシステムとの対話操作の結果として表示されてもよい。一例において、B-repによって(例えば部分的に)表された3Dモデル化オブジェクトは、別のユーザによって別のCADシステム上で設計され、オプションとしてメモリに記憶され、かつ/または(例えばネットワークを通じて)本方法のCADシステムに送信されたものであってもよい。B-repの表示は、次いで、メモリからB-repを取得することを含んでいてもよい。代替的に、または追加的に、ユーザは、3Dモデル化オブジェクトを一から、または少なくとも部分的に設計してもよい。B-repは、
図1を参照して説明したもののように、グラフィカル・ユーザ・インターフェースなど、CADシステムの任意の表示上に表してもよい。
【0060】
B-repは開いたB-repであっても閉じたB-repであってもよい。一例において、B-repは開いたB-repである。B-repは、機械部品の少なくとも一部を表す。これは、B-repが機械部品全体または機械部品の厳密な一部のみを表すことを意味する。
一例において、開いたB-repは、特に、機械部品の物理的サーフェスに対応していてもよい。これは、B-repが物理的サーフェスのジオメトリ、または、それに基づいて物理的サーフェスのジオメトリの推定が可能なジオメトリを表してもよいことを意味する。例えば、B-repは、中間サーフェスのジオメトリを表してもよい。中間サーフェスとは、上部サーフェスと底部サーフェスが、それぞれ2つのオフセット、すなわち、中間サーフェスの法線ベクトルの方向のオフセットと、法線ベクトルの反対方向のオフセットにより推定されるサーフェスである。
【0061】
物理的サーフェスは、上部サーフェスまたは底部サーフェスなど、機械部品の外側部分であってもよい。そのような場合、B-repは、外側部分のジオメトリ、またはそれに基づいて外側部分のジオメトリの推定が可能な中間サーフェスのジオメトリを表してもよい。
【0062】
追加的に、または代替的に、物理的サーフェスは、製造ツールの外側部分によって形成された機械部品の外側部分と、機械部品の外側部分を形成する製造ツールの外側部分との間の境界面であってもよい。このような場合、B-repは機械部品の外側部分のジオメトリを表してもよい。あるいは、B-repは製造ツールの外側部分のジオメトリを表してもよい。あるいは、B-repは、それに基づいて機械部品の外側部分のジオメトリ、および/または、製造ツールの外側部分のジオメトリの推定が可能な中間サーフェスのジオメトリを表してもよい。
【0063】
追加的に、または代替的に、機械部品が成形部品(例えば、プラスチックの薄い部品)である場合、物理サーフェスは、成形部品を製造するための金型と、金型によって成形された成形部品の外側部分との境界面を表してもよい。
【0064】
追加的にまたは代替的に、機械部品が旋削部品(例えば、薄い部品)である場合、物理的サーフェスはその部品または少なくともその一部を表してもよい。
【0065】
追加的にまたは代替的に、機械部品がプレス部品(例えば、アルミのプレス部品、自動車のドア、自動車のボディの一部)である場合、物理的サーフェスはその部品または少なくともその一部を表してもよい。
【0066】
表示されたB-repは1つまたは複数の隆起を含み、そのうちの1つは本方法によって認識された隆起である。ここで、これらの隆起について説明する。
【0067】
本方法の文脈において、隆起は、以下のいずれか1つまたは任意の組み合わせであってもよい:質量を削減する特徴(すなわち、質量削減機能を実行する)、スペースを確保する特徴(すなわち、スペース確保機能を実行する)、固定する特徴(すなわち、固定機能を実行する)、締める特徴(すなわち、締結機能を実行する)、調節する特徴(すなわち、調節機能を実行する)、位置決めを行う特徴(すなわち、位置決め機能を実行する)、機械的接続を行う特徴(すなわち、機械的接続機能を実行する)、冷却を行う特徴(すなわち、冷却機能を実行する)、回転または円筒状機械的接続を行う特徴(すなわち、回転または円筒状機械的接続機能を実行する)、組み立てを行う特徴(すなわち組み立て機能を実行する)、硬化を行う特徴(すなわち、硬化機能を実行する)、および/または、すべての機械加工および穴あけ凸部の特徴をサポートするもの(すなわち、すべての機械加工および穴あけ凸部の特徴の支持を実行する)。
【0068】
ここで、凹部である隆起の例によって実行される機能の例について説明する。
【0069】
一例において、機械部品は、成形製造工程によって製造される。これらの一例において、凹部であるB-repの任意の隆起は、質量を削減する特徴(すなわち、質量削減機能を実行する)、および/または、スペースを確保する特徴(すなわち、スペース確保機能を実行する)であってもよい。
【0070】
追加的に、または代替的に、機械部品は、機械加工工程によって製造されてもよい。これらの一例において、凹部であるB-repの任意の隆起は、質量を削減する特徴(すなわち、質量削減機能を実行する)、固定する特徴(すなわち、固定機能を実行する)、締める特徴(すなわち、締結機能を実行する)、調節する特徴(すなわち、調節機能を実行する)、位置決めを行う特徴(すなわち、位置決め機能を実行する)、機械的接続を行う特徴(すなわち、機械的接続機能を実行する)、冷却を行う特徴(すなわち、冷却機能を実行する)、および/または、スペースを確保する特徴(すなわち、スペース確保機能を実行する)であってもよい。
【0071】
追加的に、または代替的に、機械部品は、穴あけ工程によって製造されてもよい。これらの一例において、凹部であるB-repの任意の隆起は、固定する特徴(すなわち、固定機能を実行する)、位置決めを行う特徴(すなわち、位置決め機能を実行する)、回転または円筒状機械的接続を行う特徴(すなわち、回転または円筒状機械的接続機能を実行する)、冷却を行う特徴(すなわち、冷却機能を実行する)、および/または、スペースを確保する特徴(すなわち、スペース確保機能を実行する)であってもよい。
【0072】
追加的に、または代替的に、機械部品は、旋削製造工程によって製造されてもよい。これらの一例において、凹部であるB-repの任意の隆起は、回転または円筒状機械的接続を行う特徴(すなわち、回転または円筒状機械的接続機能を実行する)であってもよい。
【0073】
追加的に、または代替的に、機械部品は、鍛造製造工程によって製造されてもよい。これらの一例において、凹部であるB-repの任意の隆起は、質量を削減する特徴(すなわち、質量削減機能を実行する)であってもよい。
【0074】
追加的に、または代替的に、機械部品は、プレス製造工程によって製造されてもよい。これらの一例において、凹部であるB-repの任意の隆起は、組み立てを行う特徴(すなわち組み立て機能を実行する)、硬化を行う特徴(すなわち、硬化機能を実行する)、硬化を行う特徴(すなわち、硬化機能を実行する)、および/または、スペースを確保する特徴(つまり、スペース確保機能を実行する)であってもよい。
【0075】
追加的に、または代替的に、機械部品は、折り曲げ製造工程によって製造されてもよい。これらの一例において、凹部であるB-repの任意の隆起は、組み立てを行う特徴(すなわち組み立て機能を実行する)、硬化を行う特徴(すなわち、硬化機能を実行する)、硬化を行う特徴(すなわち、硬化機能を実行する)、および/または、スペースを確保する特徴(つまり、スペース確保機能を実行する)であってもよい。
【0076】
ここで、凸部である隆起の例によって実行される機能の例について説明する。
【0077】
一例において、機械部品は、成形製造工程によって製造される。これらの一例において、凸部であるB-repの任意の隆起は、硬化を行う特徴(すなわち、硬化機能を実行する)であってもよい。
【0078】
追加的に、または代替的に、機械部品は、機械加工工程によって製造されてもよい。これらの一例において、凸部であるB-repの任意の隆起は、固定する特徴(すなわち、固定機能を実行する)、および/または、位置決めピンの特徴(すなわち、位置決めピン機能を実行する)であってもよい。
【0079】
追加的に、または代替的に、機械部品は、旋削製造工程によって製造されてもよい。これらの一例において、凸部であるB-repの任意の隆起は、回転または円筒状機械的接続を行う特徴(すなわち、回転または円筒状機械的接続機能を実行する)、および/または、位置決めピンの特徴(すなわち、位置決めピン機能を実行する)であってもよい。
【0080】
追加的に、または代替的に、機械部品は、鍛造製造工程によって製造されてもよい。これらの一例において、凸部であるB-repの任意の隆起は、硬化を行う特徴(すなわち、硬化機能を実行する)、および/または、すべての機械加工および穴あけ凸部の特徴をサポートするもの(すなわち、すべての機械加工および穴あけ凸部の特徴の支持を実行する)であってもよい。
【0081】
追加的に、または代替的に、機械部品は、プレス製造工程によって製造されてもよい。これらの一例において、凸部であるB-repの任意の隆起は、組み立てを行う特徴(すなわち組み立て機能を実行する)、硬化を行う特徴(すなわち、硬化機能を実行する)、硬化を行う特徴(すなわち、硬化機能を実行する)、および/または、スペースを確保する特徴(つまり、スペース確保機能を実行する)であってもよい。
【0082】
追加的に、または代替的に、機械部品は、折り曲げ製造工程によって製造されてもよい。これらの一例において、凸部であるB-repの任意の隆起は、組み立てを行う特徴(すなわち組み立て機能を実行する)、硬化を行う特徴(すなわち、硬化機能を実行する)、硬化を行う特徴(すなわち、硬化機能を実行する)、および/または、スペースを確保する特徴(つまり、スペース確保機能を実行する)であってもよい。
【0083】
ここで、
図28および
図29を参照して、機械部品の例における隆起のジオメトリの例について説明する。
図28は、自動車のドアであるプレス部品を示し、
図29は、薄いプラスチック部品である成形部品を示している。
図28および
図29の部品の例は、特に、開いたB-repによって表すことができる。
【0084】
部品のその他の例には、設計のある時点で、サーフェスとして構成されるサブパーツを有していてもよい。ただし、これらの例では、設計工程のその他のある時点(たとえば、終了時)において、部品が閉じたB-repによってボリュームとして表されてもよい。本方法は、ボリューム、すなわち、閉じたB-repも扱う。
【0085】
ここで、B-repの少なくとも1つの面の選択について説明する。
選択は、グラフィカルなユーザ対話操作によって行われる。言い換えれば、ユーザは、少なくとも1つの面を選択するために、ディスプレイ(例えば、
図1に示すようなグラフィカル・ユーザ・インターフェース)に対しグラフィカルな対話操作を行う。例えば、ユーザは、少なくとも1つの面をクリックすることにより、例えば、少なくとも1つの面の視認できる部分をクリックすることにより、当該少なくとも1つの面を選択してもよい。あるいは、ユーザは、少なくとも1つの面をタッチすることにより、例えば、少なくとも1つの視認できる部分をタッチすることにより、当該少なくとも1つの面を選択してもよい。少なくとも1つの面を選択するこれらの方法は、特に単純で人間工学的である。特に、当該少なくとも1つの面が1つの面のみで構成されている一例において、ユーザは1つの面をタッチするかクリックするだけで選択できる。
【0086】
当該少なくとも1つの面は、隆起を表す面の集合のうちの面であり、本方法によって認識される。一例において、当該少なくとも1つの面がB-repの1つの面、すなわち、B-repの単一の面で構成されている。当該1つの面は、例えば、ユーザに少なくとも部分的に視認できる隆起の面、例えば、B-repの別の面によって完全に隠されていない面であってもよい。当該1つの面は、例えば、隆起の最もよく視認できる面のうちの1つであってもよい。代替的に、または追加的に、当該1つの面は、隆起の上面または隆起の側面であってもよい。一例において、本方法によって表示される隆起が凸形状を有する場合、当該1つの面は、隆起の上面または隆起の側面であってもよい。これは、例えば、表示されている隆起が直方体の形状を有する場合などである。他の一例において、本方法によって表示される隆起が凹形状を有する場合、当該1つの面は、穴の内面など、隆起の側面であってもよい。これは、例えば、表示される隆起が、貫通孔あるいは非貫通孔など、穴の形状を有する場合などである。
【0087】
隆起に属するB-repの1つの面のみを選択することは、次いでそれに基づいてCADシステムが隆起を自動的に認識する、隆起の一部を選択する特に単純で人間工学的な方法である。これにより、本方法は、ユーザフレンドリーで人間工学的なものとなる。これは、特に、当該1つの面がユーザにとって(例えば、最もよく)視認できる面である場合に当てはまる。これにより、当該少なくとも1つの面を選択するときの簡便さと人間工学性が向上する。
【0088】
一例において、例えば、当該少なくとも1つの面が各隆起に属しているなど、当該選択した少なくとも1つの面が複数の面で構成されていてもよい。そのような場合、認識は、当該少なくとも1つの面における各面について繰り返されてもよい。言い換えれば、当該少なくとも1つの面における各面について、当該面を含み、当該面が属するそれぞれの隆起を表す面の集合が、認識の繰り返しの各回で認識される。
【0089】
ここで、隆起を表す面の集合の認識について説明する。
【0090】
隆起を表す面の集合は、当該少なくとも1つの面を含み、CADシステムによって自動的に認識される。言い換えれば、ユーザが隆起の(例えば小さな視認できる)一部(すなわち、当該少なくとも1つの面)をグラフィカルに選択すると、コンピュータは自動的に、隆起を表すすべての面を認識し、例えば、ユーザからは隠されている面があればそれも含む。これにより、本方法は特に効率的かつ人間工学的になる。
【0091】
面の集合の認識は、第1の面の集合および第2の面の集合を決定することを含む。これについてここで説明する。
【0092】
第1の面の集合は、当該少なくとも1つの面を含み、凹部を表す。言い換えれば、決定は、当該少なくとも1つの面を入力とする。決定では、次いで、第1の面の集合が決定される。これは、当該少なくとも1つの面を入力とし、当該少なくとも1つの面を含み、凹部を表す、面の集合を出力するように構成された、任意の工程またはアルゴリズムによって実行してもよい。そのようなアルゴリズムは、特に、当該少なくとも1つの面の隣接面を繰り返しアクセスすることと、それらが凸状であること、および/または、それらによって共有される辺が凸状であることに基づいてこれらの隣接面を収集するか、またはしないこととを含んでいてもよい。収集された面は、当該少なくとも1つの面とともに、凹部の凸性を有する面の集合を形成するような面である。決定では、また、第2の面の集合が決定される。これは、当該少なくとも1つの面を入力とし、当該少なくとも1つの面を含み、凸部を表す、面の集合を出力するように構成された、任意の工程またはアルゴリズムによって実行してもよい。そのようなアルゴリズムは、特に、当該少なくとも1つの面の隣接面を繰り返しアクセスすることと、それらが凸状であること、および/または、それらによって共有される辺が凸状であることに基づいてこれらの隣接面を収集するか、またはしないこととを含んでいてもよい。収集された面は、当該少なくとも1つの面とともに、凸部の凸性を有する面の集合を形成するような面である。いずれの場合も、決定では、第1の面の集合と第2の面の集合が出力される。
【0093】
なお、B-repが閉じているか開いているかにかかわらず、B-repには向きがあることを理解されたい。上述のように任意でありユーザにとって視覚的に意味がない可能性がある、この向きに関して、決定は、当該少なくとも1つの面を含む2つの面の集合を決定し、そのうち一方は凸部を表し、もう一方は凹部を表す。これらの面の集合の1つは、隆起を表す面の集合であり、これは凹部または凸部である。したがって、隆起が凸部であるか凹部であるかにかかわらず、決定された面の集合の少なくとも1つが隆起を表す。この集合は、次いで、以下で説明するように、2つの決定された集合から選択される。言い換えれば、第1の集合と第2の集合の両方を決定することで、隆起が凹部であるか凸部であるかを知らなくても、隆起が認識される。これにより、本方法が効率的になる。
【0094】
本方法は、B-repが開いている一例において特に効率的であり、そのようなB-repの任意の向きは、上述のように、凸部と凹部の概念をあいまいにする。実際、本方法は、凸部と凹部の両方を検索することによってこのあいまいさを回避し、その一方は、以下で説明するように、上記選択によって選択される。言い換えれば、本方法による隆起を認識のために、隆起が凸部であるか凹部であるかをユーザが知る必要はない。
【0095】
一例において、第1の面の集合は、凸状の内側辺および丸い面を含まない1つまたは複数の面からなる第1の連結集合を含む。一例において、第2の面の集合は、凹状の内側辺およびフィレット面を含まない1つまたは複数の面からなる第2の連結集合を含む。
【0096】
よって、第1の面の集合は、1つまたは複数の面からなる第1の連結集合を含み、これは、凸状の内側辺および丸い面を含まないことにより、凹部の凸性を有する。同様に、第2の面の集合は、1つまたは複数の面からなる第2の連結集合を含み、これは、凹状の内側辺およびフィレット面を含まないことにより、凸部の凸性を有する。
【0097】
したがって、少なくとも1つの面を選択すると、本方法は、それを含む2つの面の集合を自動的に決定し、その一方は、実質的に凸部(すなわち第1の面の集合)の形状を有し、もう一方は実質的に凹部の形状を有する。
【0098】
一例において、1つまたは複数の面からなる第1の連結集合は、凸状の辺および/または丸い面のみによって境界が定められている。これらの一例において、1つまたは複数の面からなる第2の連結集合は、凹状の辺および/またはフィレット面のみによって境界が定められている。
【0099】
第1の(または第2の)面の集合の決定では、特に、当該少なくとも1つの面に隣接する面を繰り返しアクセスし、丸い(またはフィレット)面ではなく、また他の収集された隣接面と凸状(または凹状)の辺を共有しない隣接面を収集してもよい。これらの収集された面は、特に、当該少なくとも1つの面とともに、1つまたは複数の面からなる第1の(または第2の)連結集合を形成してもよい。1つまたは複数の面からなる第1(または第2)の連結集合が凸状(または凹状)の辺および/または丸い(またはフィレット)面によってのみ境界付けられるという要件は、繰り返されるアクセスと収集の停止基準となってもよい。このように、凹部(または凸部)の凸性を表すのに必要のない面は収集されず、アクセスもされない。これにより、本方法の効率と堅牢性が向上する。
【0100】
一例において、第1の面の集合は、1つまたは複数の面からなる第1の連結集合から構成される。これらの一例において、第2の面の集合は、1つまたは複数の面からなる第2の連結集合から構成される。
【0101】
したがって、これらの一例において、本方法は、B-repの向きに関して、凸状の内側辺と丸い面を含まず、凸状の辺、および/または、丸い面のみによって境界付けられた、面の連結集合に対応する凹部と、凹状の内側辺とフィレット面を含まず、凹状の辺、および/または、フィレット面のみによって境界付けられた接続された、面の連結集合に対応する凸部とを決定する。凸状の内側辺と丸い面を含まず、凸状の辺、および/または、丸い面のみによって境界付けられた、面の連結集合に対応する凹部と、凹状の内側辺とフィレット面を含まず、凹状の辺、および/または、フィレット面のみによって境界付けられた接続された、面の連結集合に対応する凸部との検索は、当該少なくとも1つの面を、それを表す最小の凹部(例えば、境界が最小の凹部)または最小の凸部(例えば、境界が最小の凸部)に拡張する、効率的で簡単な方法である。言い換えれば、決定された凸部と決定された凹部のうち一方が認識される隆起であるため、そのような凹部とそのような凸部を検索することは、当該少なくとも1つの面を、それを含む最小の隆起(例えば最小の境界を有する隆起)に拡張する、効率的で簡単な方法である。したがって、これらの一例において、本方法は、当該少なくとも1つの面を単純に選択すると、その面を、それを含む最小の隆起に自動的に拡張するというユーザ要件を効率的に満たす。
【0102】
いずれの場合も、決定は、第1の面の集合と第2の面の集合という、2つの出力を有する。第1の面の集合は凹部を表し、第2の面の集合は凸部を表す。第1の面の集合と第2の面の集合のうち一方の集合は隆起を表す。本方法は、第1の面の集合および第2の面の集合のうち、境界曲線の周長が最短であって、選択された少なくとも1つの面およびB-repのいずれとも異なる面の集合を選択することにより、自動的にいずれかを決定する。
【0103】
これについてここで説明する。
【0104】
「第1の面の集合および第2の面の集合のうち、1つの面の集合を選択する」とは、選択においては、第1の面の集合と第2の面の集合を入力とし、境界曲線の周長が最短である1つの面の集合を出力することを意味する。出力される面の集合は、隆起を表す面の集合である。言い換えると、上述のように、凸部を表す第1の面の集合と凹部を表す第2の面の集合とを決定すると、隆起が凸部であるか凹部であるかを知っているかどうかに関係なく、決定された2つの集合のうち少なくとも1つが隆起を表すことが保証される。次いで、選択により、隆起を表す1つの集合が、自動的に選択される。2段階で行われる認識は、堅牢で効率的である。
【0105】
当該選択では、第1の面の集合および第2の面の集合のうち、境界曲線の周長が最短であって、選択された少なくとも1つの面およびB-repのいずれとも異なる面の集合を選択する。ここで、少なくとも1つの面を選択すると、ユーザは、当該少なくとも1つの面を含む面の集合が認識されることを期待する。当該面の集合は、隆起を表すことになる。したがって、面の集合に含まれている面は多過ぎず、隆起を表す面のみが含まれている必要がある。第1の面の集合と第2の面の集合のうち、境界曲線の周長が最短のほうを選択すれば、含まれる面の数が多過ぎず隆起を真に表すほうを認識できる。これにより、2つの決定された面の集合のうち、隆起を真に表すほうを効率的に選択する。実際、「当該少なくとも1つの面を含む最小の隆起の認識」、あるいは「当該少なくとも1つの面を、それを含む最小の隆起まで拡張すること」と言うことができる。
【0106】
一例において、選択は、第1の面の集合と第2の面の集合のうち、境界曲線の周長が最短の1つの集合を評価することを含んでいてもよい。評価は、第1の面の集合の境界曲線の周長を算出することと、第2の面の集合の境界曲線の周長を算出することと、算出した第1の面の集合の境界曲線の周長と算出した第2の面の集合の境界曲線の周長とを比較することとを含んでいてもよい。算出に次いで、境界曲線の周長が最短である一方の面の集合を出力してもよい。
【0107】
評価に先立ち、第1の面の集合および第2の面の集合が、B-repとは異なり、選択された少なくとも1つの面と異なる面を含むことを確認してもよい。集合の1つがB-repに等しいか、当該少なくとも1つの面に等しい場合、この集合は隆起を表さず、他方の集合が選択される。このような場合、隆起を真に表す集合はすでに認識されているため、2つの面の集合の境界曲線の周長は算出されない。
【0108】
実際、隆起を表す面の集合には、選択した少なくとも1つの面に加えて、少なくとも別の面が含まれている必要がある。なぜなら、ほとんどの一例において、特に当該少なくとも1つの面が1つの面で構成されている場合、当該少なくとも1つの面だけで隆起全体を表すことはないためである。当該少なくとも1つの面は、隆起全体が認識されるようにユーザが容易に選択できる、隆起の一部にすぎない。言い換えれば、ユーザは隆起を見て、その一部のみを選択し、隆起全体が認識されることを期待する。したがって、認識された面の集合は、選択された少なくとも1つの面に加えて少なくとも別の面を含む必要がある。なぜなら、それは、少なくとも1つの面を選択したときにユーザが必要とする機能だからである。
【0109】
さらに、隆起を表す面の集合は、B-rep全体とは異なる必要がある。なぜなら、隆起は特定の機械的機能を実行するB-repの一部にすぎないためである。さらに、ユーザが望む機能は、隆起の一部のみを選択すると、B-repの一部に過ぎない隆起を自動的に認識することである。
【0110】
したがって、検証により、選択の効率と堅牢性が向上する。なぜなら、それにより、非常に簡単な方法で、境界曲線の周長を算出することなしに、B-repを表さず、かつ、ユーザが当該少なくとも1つの面を選択したときに認識されることを期待していない面の集合を破棄できるからである。
【0111】
面の集合の境界曲線の周長は、面の集合の境界曲線のサイズを表す任意の量であってもよい。境界曲線は、面の集合の境界辺の集合、すなわち、それぞれが面の集合のうちの単一の境界面を有する、辺の集合として定義してもよい。例えば、それは境界曲線の任意の長さであってもよい。例では、境界曲線の長さは、境界の各辺の曲線の長さの合計である。面の集合の境界曲線の周長は、面の集合の境界曲線の周長を算出するための任意の公知の方法で算出すればよい。
【0112】
一例において、面の集合は、次の場合に、別の面の集合と比べて最短の境界曲線を有する。
【0113】
・前記面の集合の境界曲線の周長が、別の面の集合の境界曲線の周長よりも厳密に小さい。または、
・前記面の集合の境界曲線の周長が、別の面の集合の境界曲線の周長に等しく、また、前記面の集合の境界ボックスの長さが、別の面の集合の境界ボックスの長さよりも小さい。
【0114】
境界ボックスは、任意の境界ボックス、すなわち任意の形状のものであってもよい。境界ボックスは、立方体、長方形、平行六面体、球体、楕円体など、任意のボリュームであってもよい。境界ボックスの長さは、ボリュームに含まれる最長の線分の長さ(例えば、球の直径や長方形の対角線)など、任意の長さであってよい。
【0115】
面の集合の選択が、どのように、第1の面の集合と第2の面の集合のうち、境界曲線の周長が最短の1つの集合を評価することを含んでいてもよいかを説明した。評価は、さらに、前記第1の面の集合の境界曲線の周長が、前記第2の面の集合の境界曲線の周長と等しい場合、前記第1の面の集合の境界ボックスの長さと、前記第2の面の集合の境界ボックスの長さのうち、どちらが最小であるかを評価することを含んでもよい。これには、第1の面の集合の境界ボックスの長さと第2の面の集合の境界ボックスの長さを算出して比較し、境界ボックスの長さが最小の1つの面の集合を出力することを含んでもよい。
【0116】
したがって、本方法は、第1の面の集合と第2の面の集合の境界曲線の周長の値が同じである状況を扱える。よって、本方法は効率的である。
【0117】
ここで、面の集合の選択の例について説明する。
【0118】
これらの一例において、選択は、第1の面の集合と第2の面の集合のいずれかが当該少なくとも1つの面であるかどうかを決定することと、第1の面の集合と第2の面の集合のいずれかがB-repであるかどうかを決定することとを含む。第1の面の集合と第2の面の集合のいずれかが当該少なくとも1つの面である場合、または、第1の面の集合と第2の面の集合のいずれかがB-repである場合、選択は、次いで当該少なくとも1つの面でもB-repでもない面の集合を出力することを含んでもよい。次いで、選択は出力後に終了してもよく、その場合、出力された面の集合は、ユーザによって期待され、隆起を表す面の集合である。これにより、隆起を表しユーザが(上述の理由により)認識を期待する面の集合を効率的に選択できる。このような場合、境界曲線の周長を算出する必要がないためである。
【0119】
次いで、これらの一例において、第1の面の集合も第2の面の集合もB-repではない場合、および第1の面の集合も第2の面の集合も当該少なくとも1つの面ではない場合、選択は以下を含む。
・第1の面の集合の境界曲線の周長が、第2の面の集合の境界曲線の周長と等しいかどうか判断することと、
・第1の面の集合の境界曲線の周長が、第2の面の集合の境界曲線の周長と等しい場合、第1の面の集合の境界ボックスの長さと、第2の面の集合の境界ボックスの長さとを比較すること。
【0120】
これにより、第1の面の集合と第2の面の集合とがともにB-repでも当該少なくとも1つの面でもない場合、選択により、境界曲線の周長が最短の1つの面の集合であって、隆起を表し、ユーザの期待に応える面の集合を出力することができる。
【0121】
言い換えれば、上記の例は、本方法の効率と堅牢性を向上させる。なぜなら、適切な場合、隆起を表さずユーザが(上述の理由により)認識されることを期待しない面の集合を、無駄な境界曲線の周長の算出を行うことなく破棄する、順序付けられた一連のテストを実行するためである。
【0122】
ここで、面の集合の選択の別の例について説明する。
【0123】
これらの一例において、面の集合の選択は、第1の面の集合と第2の面の集合のいずれかが当該少なくとも1つの面であるかどうかを決定することを含む。第1の面の集合と第2の面の集合のいずれかが当該少なくとも1つの面である場合、選択は、次いで2つの面の集合のうち当該少なくとも1つの面でない面の集合を出力することを含んでもよい。次いで、選択は出力後に終了してもよく、その場合、出力された面の集合は、隆起を表す面の集合である。
【0124】
次いで、これらの一例において、第1の面の集合も第2の面の集合も当該少なくとも1つの面ではない場合、選択は、第1の面の集合と第2の面の集合のいずれかがB-repであるかどうかを判定することを含む。第1の面の集合と第2の面の集合のいずれかがB-repである場合、選択は、次いで2つの面の集合のうちB-repと等しくない面の集合を出力することを含んでもよい。次いで、選択は出力後に終了してもよく、その場合、出力された面の集合は、隆起を表す面の集合である。
【0125】
次いで、これらの一例において、第1の面の集合も第2の面の集合もB-repではない場合、面の集合の選択は、第1の面の集合の境界曲線の周長が第2の面の集合の境界曲線の周長に等しいかどうかを判定することを含む。次いで、第1の面の集合の境界曲線の周長が、第2の面の集合の境界曲線の周長と等しい場合、選択は、第1の面の集合の境界ボックスの長さと、第2の面の集合の境界ボックスの長さとを比較することを含む。次いで、選択により、境界ボックスの長さが最小である面の集合が出力される。あるいは、第1の面の集合の境界曲線の周長が第2の面の集合の境界曲線の周長に等しくない場合、選択により、厳密に、境界曲線の周長が最小の面の集合が出力されてもよい。
【0126】
これらの例では、上述の順序付けられた一連のテストをさらに階層化することで、本方法の効率をさらに向上させている。特に、決定された面の集合のうちの一方が当該少なくとも1つの面であると本方法によって判断されると直ぐに、または決定された面の集合のうちの一方がB-repであると本方法によって判断されると直ぐに、ユーザが真に期待し隆起を表す面の集合が自動的に認識される。このような状況において、順序付けされた一連のテストがそのように短縮される。
【0127】
一例において、認識された面の集合を処理してもよい。認識された面の集合の処理は、以下のアクションのうち1つまたは複数を含んでいてもよい。
【0128】
・認識された面の集合をB-repから抽出し、かつ/あるいは、それを、例えば、CADシステムのディスプレイの分離されたウィンドウで表示し、かつ/あるいは、B-repのディスプレイ内でそれを強調表示する。
【0129】
・認識された面の集合のすべての面に、1つまたは複数の設計、および/または、編集操作(例えば、寸法の変更、サイズの変更、移動、厚みの変更、回転、切り取り、コピー、コピー、および/または、ペースト)を、自動的かつ統一された方法で(例えば、ユーザがCADシステムに対しグラフィカルに対話操作を行うことにより)適用する。
【0130】
・認識された面の集合の面を境界付ける1つのタイプ(例えば、鋭い(sharp)タイプ、なめらかなタイプ、鋭い(knife)タイプ、凸タイプ、凹タイプなど)のすべての辺に、1つまたは複数の設計、および/または、編集操作(例えば、移動、サイズの変更、寸法の変更、丸み、フィレット、ドラフト角度、および/または、厚みの変更)を、自動的かつ統一された方法で(例えば、ユーザがCADシステムに対しグラフィカルに対話操作を行うことにより)適用する。
【0131】
面の集合および/または辺に対し自動的かつ統一された方法で操作を適用することは、集合および操作を特定し(例えば、ユーザ・アクションにより、例えば選択し)、操作を起動し(例えばCADシステムとの対話操作により、例えばユーザ・アクションにより)、自動的に(例えばCADシステムにより)、集合のすべてのオブジェクトに操作を(例えば、実質的に)同様に、および/または、(例えば、実質的に)同時に適用することからなる。
【0132】
ここで、本方法の実施について、
図30~
図32を参照して説明する。
【0133】
本実施においては、4つのステップで実行する。第1のステップでは、少なくとも1つの面の選択を実行し、第2、第3、および第4のステップでは、隆起を表す面の集合の認識を実行する。
【0134】
本実施は、少なくとも1つの面をユーザが選択する第1のステップを含む。当該少なくとも1つの面はL0で表され、本実施においては、識別/認識される隆起に属する単一の面で構成される。
【0135】
本実施の第2のステップでは、B-repの現在の向きに応じて凹部を識別するために関数Depression(・)を実行することにより、第1の面の集合を決定する。関数Depression(・)は、単一の面L0を入力とし、第1の面の集合LDを、例えば面のリストとして出力する。
【0136】
メソッドDepression(f)は、凸状の辺または丸い面に達するまで、最初の面fの隣接面に繰り返しアクセスする。この伝播アルゴリズムは、Hで表される後入れ先出し(LIFO)リストとEで表される出力リストを利用する。LIFOリストは、伝播のための内部データ構造である。これは、標準の命令Push(・)、Pop(・)、およびSizeで用いられる。命令Push(x)は、リストの一番上にオブジェクトxを追加し、そのサイズをインクリメントする。命令Pop(x)は、xで表される、リストの最後のオブジェクトを生成し、それをリストから削除し、そのサイズをデクリメントする。出力リストEは、入力面fで始まる面の集合を含む。関数Depressionは、以下の疑似コードで記載される。
【数7】
【0137】
本実施の第3のステップでは、B-repの現在の向きに応じて凹部を識別するために関数Protrusion(・)を実行することにより、第2の面の集合を決定する。関数Protrusion(・)は、単一の面L0を入力とし、第2の面の集合LPを、例えば面のリストとして出力する。
【0138】
関数Protrusion(f)は、凹状の辺またはフィレット面に達するまで、最初の面fの隣接面に繰り返しアクセスする。この伝播アルゴリズムは、Hで表される後入れ先出し(LIFO)リストとEで表される出力リストを利用する。LIFOリストは、伝播のための内部データ構造である。これは、標準の命令Push(・)、Pop(・)、およびSizeで用いられる。命令Push(x)は、リストの一番上にオブジェクトxを追加し、そのサイズをインクリメントする。命令Pop(x)は、xで表される、リストの最後のオブジェクトを生成し、それをリストから削除し、そのサイズをデクリメントする。出力リストEは、入力面fで始まる面の集合を含む。関数Protrusionは、以下の疑似コードで記載される。
【数8】
なお、第2のステップは、第3のステップの前に実行しても後に実行してもよい。あるいは、第3および第2のステップを合わせて実行してもよい。
【0139】
本実施の最後の第4のステップであって最後のステップでは、決定された集合L
DまたはL
Pの中から隆起を表す面の集合を選択する。最後のステップでは、適切な、すなわち隆起を表す出力リストL
DまたはL
Pを選択するために、一連の論理テストを実行する。面の出力リストをL
1とする。
【数9】
を、面のリストLの境界曲線とし、l(C)を曲線Cの長さとし、Size(L)を面のリストLの境界ボックスの長さとすると、テストは以下のようになる。行には01から09まで番号が振られている。
【数10】
【数11】
という記載は、(x)が最小となるように
【数12】
を探索し、xを変数yにセットすることを表すショートカットである。行01~08は特定の状況を扱う。一般的なケースは命令09によって扱われる。最短の境界曲線の選択は、最も関連性の高い隆起がスキンの残りの部分との小さな境界面を特徴としているという事実に基づきなされる。
【0140】
図30は、行01および行02を例示する。設計者は、
図1に例示されるように、当該形状の上面を選択する。形状は凸形状として表示されており、上面はユーザにとって特に視認しやすく選択しやすい面である。
図2および
図3は入力スキンがとりうる2つの向きを例示している。
図4および
図5は、入力スキンの向きに応じて、伝播アルゴリズムによって計算されるリストL
PとL
Dを例示している。
図6は、本実施による算出の結果得られた面のリストL
1を例示している。本実施では、次の原則により、適切な結果が得られる。明らかに、
図4および
図5に例示するように、2つの結果が考えられる。
図4は、正確に、設計者が選択した面であり、
図5は、ユーザが選択した面を側面とともに含む、面のより大きなリストである。原則とは、ユーザが隆起検出機能を使用する場合、それは認識のためであって、選択された単一の面を取得するためではないということである。したがって、本実施では、結果として得られた
図4のリストは、ユーザの選択に等しいため破棄し、
図5のリストを提供する。
【0141】
図31は、本アルゴリズムの行09を例示している。設計者は、
図1に例示されるように、入力スキンの側面を選択する。入力スキンは凸形状として表示されており、側面はユーザにとって特に視認しやすく選択しやすい面である。
図2および
図3は入力スキンがとりうる2つの向きを例示している。
図4および
図5は、入力スキンの向きに応じて、伝播アルゴリズムによって算出されるリストL
PとL
Dを例示している。
図6および
図7は、それぞれ、
図4および
図5の面のリストの境界曲線を例示している。本実施では、
図8のリストが得られる。なぜなら、それは最短の境界曲線を特徴とするからである。
【0142】
図32は、本アルゴリズムの行07を例示している。ここでは、入力B-repはソリッドであるため、法線ベクトルはマテリアルの外側を向いている。設計者は、
図1に例示されるように、円筒面を選択する。入力されたB-repは凹形状として表示されており、B-repの穴状の部分の円筒面はユーザにとって特に視認しやすく選択しやすい面である。
図2および
図3は、伝播アルゴリズムによって算出されるリストL
PとL
Dを例示している。
図4および
図5は、それぞれ、
図2および
図3の面のリストの境界曲線を例示している。明らかに、これらの特徴の長さは等しい。本実施では、
図4のリストが得られる。なぜなら、それは最短の境界ボックスを特徴とするからである。