(57)【特許請求の範囲】
【請求項１】
コンピュータ支援設計（ＣＡＤ）環境においてコンポーネント（５０２、５０４、５１２、５１４、５２２、５２４、５３２、５３４、５４２、５４４、５５２、５５４）を自動的にアセンブルするコンピュータ実装方法であって、
データ処理システム（１００）を用いて、ＣＡＤ環境内のソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）とターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）を識別し、前記ソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）と前記ターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）は実世界オブジェクトの異なる部分を表し、
前記ソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）と前記ターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）をアセンブルするための１つ以上のアセンブリソリューション（５０６Ａ−Ｂ、５１６Ａ−Ｂ、５２６Ａ−Ｂ、５３６Ａ−Ｂ、５４６Ａ−Ｂ、５５６Ａ−Ｃ）を、ルールのセットに基づいて計算し、
前記ソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）の形状エンティティと前記ターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）の形状エンティティの間の拘束を１つ以上のアセンブリソリューション（５０６Ａ−Ｂ、５１６Ａ−Ｂ、５２６Ａ−Ｂ、５３６Ａ−Ｂ、５４６Ａ−Ｂ、５５６Ａ−Ｃ）に基づいて自動的に生成し、
アセンブルされたソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）とターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）を含む形状モデルを、グラフィカルユーザインターフェース（５００Ａ−Ｆ）上に出力することを含み、前記ソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）と前記ターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）をアセンブルするための１つ以上のアセンブリソリューション（５０６Ａ−Ｂ、５１６Ａ−Ｂ、５２６Ａ−Ｂ、５３６Ａ−Ｂ、５４６Ａ−Ｂ、５５６Ａ−Ｃ）をルールのセットに基づいて計算することは、前記ソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）と前記ターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）が共通のトポロジを有しているかどうかを判断することを含み、
前記ソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）と前記ターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）が共通のトポロジを有していない場合、結果として得られるトポロジを最大化するように前記ソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）と前記ターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）を結果として得られるトポロジを最大化するためにアセンブルするアセンブリソリューションのセットを、ルールのセット内の非共通トポロジルールを用いて計算する、
コンピュータ実装方法。
【請求項２】
さらに、前記１つ以上のアセンブリソリューション（５０６Ａ−Ｂ、５１６Ａ−Ｂ、５２６Ａ−Ｂ、５３６Ａ−Ｂ、５４６Ａ−Ｂ、５５６Ａ−Ｃ）にランクを割り当て、
前記１つ以上のアセンブリソリューション（５０６Ａ−Ｂ、５１６Ａ−Ｂ、５２６Ａ−Ｂ、５３６Ａ−Ｂ、５４６Ａ−Ｂ、５５６Ａ−Ｃ）をそれぞれのランクに従って序列付けし、
前記１つ以上のアセンブリソリューション（５０６Ａ−Ｂ、５１６Ａ−Ｂ、５２６Ａ−Ｂ、５３６Ａ−Ｂ、５４６Ａ−Ｂ、５５６Ａ−Ｃ）をそれぞれのランクの序列でグラフィカルユーザインターフェース（５００Ａ−Ｆ）上に表示する、
ことを含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記１つ以上のアセンブリソリューション（５０６Ａ−Ｂ、５１６Ａ−Ｂ、５２６Ａ−Ｂ、５３６Ａ−Ｂ、５４６Ａ−Ｂ、５５６Ａ−Ｃ）の各アセンブリソリューションは、前記ソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）と前記ターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）の間の拘束関係を規定する、請求項１または２に記載のコンピュータ実装方法。
【請求項４】
前記ソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）の形状エンティティと前記ターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）の形状エンティティとの間の拘束を自動的に生成することは、
最高ランクを割り当てられた１つのアセンブリソリューションを、前記１つ以上のアセンブリソリューション（５０６Ａ−Ｂ、５１６Ａ−Ｂ、５２６Ａ−Ｂ、５３６Ａ−Ｂ、５４６Ａ−Ｂ、５５６Ａ−Ｃ）から決定し、
決定したアセンブリソリューションを用いて、前記ソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）の形状エンティティと前記ターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）の形状エンティティとの間の拘束を自動的に生成する、
ことを含む請求項２、または、請求項２を引用する請求項３に記載のコンピュータ実装方法。
【請求項５】
前記ソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）と前記ターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）をアセンブルするための１つ以上のアセンブリソリューション（５０６Ａ−Ｂ、５１６Ａ−Ｂ、５２６Ａ−Ｂ、５３６Ａ−Ｂ、５４６Ａ−Ｂ、５５６Ａ−Ｃ）をルールのセットに基づいて計算することは、
ＣＡＤ環境内のアセンブル対象のソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）とターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）のサイズを決定し、
前記ソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）のサイズと前記ターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）のサイズを比較し、
ＣＡＤ環境内の、より大きいサイズのコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）の幾何座標を不変に維持し、前記ソースコンポーネントと前記ターゲットコンポーネントのうち、より大きいサイズのコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）に相対してより小さいサイズのコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）の幾何座標を変え、
前記ソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）と前記ターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）が共通のトポロジを有している場合、前記ソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）と前記ターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）をアセンブルするためのアセンブリソリューション（５０６Ａ−Ｂ、５１６Ａ−Ｂ、５２６Ａ−Ｂ、５３６Ａ−Ｂ、５４６Ａ−Ｂ、５５６Ａ−Ｃ）の第１のセットを、ルールのセット内の共通トポロジルールを用いて計算する、
ことを含む請求項１から４のいずれか１項に記載のコンピュータ実装方法。
【請求項６】
さらに、前記アセンブルされたソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）とターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）を含む形状モデルに関連する情報をモデルデータベース（１１８）に記憶することを含む、請求項１から５のいずれか１項に記載のコンピュータ実装方法。
【請求項７】
データ処理システム（１００）であって、
プロセッサ（１０２）と、
表示ユニット（１１０）と、
プロセッサ（１０２）に結合されたアクセス可能なメモリ（１０４）を備え、
前記メモリ（１０４）は、
コンピュータ支援設計（ＣＡＤ）環境内のソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）とターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）を識別し、前記ソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）と前記ターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）は実世界オブジェクトの異なる部分を表し、
前記ソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）と前記ターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）をアセンブルするための１つ以上のアセンブリソリューション（５０６Ａ−Ｂ、５１６Ａ−Ｂ、５２６Ａ−Ｂ、５３６Ａ−Ｂ、５４６Ａ−Ｂ、５５６Ａ−Ｃ）を、ルールのセットに基づいて計算し、
前記ソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）の形状エンティティと前記ターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）の形状エンティティの間の拘束を１つ以上のアセンブリソリューション（５０６Ａ−Ｂ、５１６Ａ−Ｂ、５２６Ａ−Ｂ、５３６Ａ−Ｂ、５４６Ａ−Ｂ、５５６Ａ−Ｃ）に基づいて自動的に生成し、
アセンブルされたソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）とターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）を含む形状モデルを表示ユニット（１１０）に出力し、前記ソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）と前記ターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）をアセンブルするための１つ以上のアセンブリソリューション（５０６Ａ−Ｂ、５１６Ａ−Ｂ、５２６Ａ−Ｂ、５３６Ａ−Ｂ、５４６Ａ−Ｂ、５５６Ａ−Ｃ）をルールのセットに基づいて計算することは、前記ソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）と前記ターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）が共通のトポロジを有しているかどうかを判断することを含み、
前記ソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）と前記ターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）が共通のトポロジを有していない場合、結果として得られるトポロジを最大化するように前記ソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）と前記ターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）をアセンブルするアセンブリソリューションのセットを、ルールのセット内の非共通トポロジルールを用いて計算する、
ように構成されたコンピュータ支援設計モジュール（１１４）を備えている、データ処理システム（１００）。
【請求項８】
前記コンピュータ支援設計モジュール（１１４）が、
前記１つ以上のアセンブリソリューション（５０６Ａ−Ｂ、５１６Ａ−Ｂ、５２６Ａ−Ｂ、５３６Ａ−Ｂ、５４６Ａ−Ｂ、５５６Ａ−Ｃ）にランクを割り当て、
前記１つ以上のアセンブリソリューション（５０６Ａ−Ｂ、５１６Ａ−Ｂ、５２６Ａ−Ｂ、５３６Ａ−Ｂ、５４６Ａ−Ｂ、５５６Ａ−Ｃ）をそれぞれのランクに従って序列付けし、
前記１つ以上のアセンブリソリューション（５０６Ａ−Ｂ、５１６Ａ−Ｂ、５２６Ａ−Ｂ、５３６Ａ−Ｂ、５４６Ａ−Ｂ、５５６Ａ−Ｃ）をそれぞれのランクの序列で表示ユニット（１１０）に表示する、
ように構成されている、請求項７に記載のデータ処理システム（１００）。
【請求項９】
前記ソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）の形状エンティティと前記ターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）の形状エンティティとの間の拘束の自動的生成において、前記コンピュータ支援設計モジュール（１１４）は、
最高ランクを割り当てられた１つのアセンブリソリューションを、前記１つ以上のアセンブリソリューション（５０６Ａ−Ｂ、５１６Ａ−Ｂ、５２６Ａ−Ｂ、５３６Ａ−Ｂ、５４６Ａ−Ｂ、５５６Ａ−Ｃ）から決定し、
決定したアセンブリソリューションを用いて、前記ソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）の形状エンティティと前記ターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）の形状エンティティとの間の拘束を自動的に生成する、
ように構成されている、請求項７または８に記載のデータ処理システム（１００）。
【請求項１０】
前記１つ以上のアセンブリソリューション（５０６Ａ−Ｂ、５１６Ａ−Ｂ、５２６Ａ−Ｂ、５３６Ａ−Ｂ、５４６Ａ−Ｂ、５５６Ａ−Ｃ）の、ルールのセットに基づく計算において、前記コンピュータ支援設計モジュール（１１４）は、
ＣＡＤ環境内のアセンブル対象のソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）とターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）のサイズを決定し、
前記ソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）のサイズと前記ターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）のサイズを比較し、
ＣＡＤ環境内の、より大きいサイズのコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）の幾何座標を不変に維持し、前記ソースコンポーネントと前記ターゲットコンポーネントのうち、より大きいサイズのコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）に相対してより小さいサイズのコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）の幾何座標を変え、
前記ソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）と前記ターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）が共通のトポロジを有している場合、前記ソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）と前記ターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）をアセンブルするためのアセンブリソリューションの第１のセット（５０６Ａ−Ｂ、５１６Ａ−Ｂ、５２６Ａ−Ｂ、５３６Ａ−Ｂ、５４６Ａ−Ｂ）を、ルールのセット内の共通トポロジルールを用いて計算する、
ように構成されている、請求項７または８に記載のデータ処理システム（１００）。
【請求項１１】
前記コンピュータ支援設計モジュール（１１４）は、
アセンブルされたソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）とターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）を含む形状モデルに関連する情報をモデルデータベース（１１８）に記憶するように構成されている、請求項７に記載のデータ処理システム（１００）。
【請求項１２】
前記アセンブリソリューション（５０６Ａ−Ｂ、５１６Ａ−Ｂ、５２６Ａ−Ｂ、５３６Ａ−Ｂ、５４６Ａ−Ｂ、５５６Ａ−Ｃ）それぞれは、前記ソースコンポーネント（５０４、５１４、５２４、５３４、５４４、５５４）と前記ターゲットコンポーネント（５０２、５１２、５２２、５３２、５４２、５５２）の間の拘束関係を規定する、請求項７、８および１０のいずれか１項に記載のデータ処理システム（１００）。
【請求項１３】
データ処理システム（１００）によって実行され、請求項１から６のいずれか１項に記載の方法を実行する命令が、格納された非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態はコンピュータ支援設計（ＣＡＤ）の分野に関し、より詳細には、ＣＡＤ環境内でコンポーネントを自動的にアセンブルする方法および装置に関する。
【背景技術】
【０００２】
コンピュータ支援設計（ＣＡＤ）は、一般に、印刷、機械加工またはその他の製造オペレーションのために電子ファイルとして出力される複雑な３次元（３Ｄ）形状モデルの作成、修正、改変および解析においてユーザを支援するためのコンピュータシステムの使用である。一般に、設計エンジニアは、コンピュータシステムにロードされたＣＡＤソフトウェアを用いて実世界オブジェクトの３Ｄ形状モデルを構築してもよい。例えば、設計エンジニアは、ＣＡＤソフトウェアを用いて実世界オブジェクトの種々のコンポーネントを作成し、そのコンポーネントを１つ以上のサブアセンブリにアセンブルしてもよい。次に、設計エンジニアは、１つ以上のサブアセンブリをアセンブルして、実世界オブジェクトの３Ｄ形状モデルを形成してもよい。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
コンポーネントのアセンブリは、３Ｄ形状モデル内にコンポーネントを配置すること、および／または、３Ｄ形状モデルのコンポーネントの異なる形状エンティティ（例えば、面、エッジ等）間の適切な拘束関係（例えば、合致関係）を作成することを含む。これは、多くの手動での介入を要し、一般に手間がかかるプロセスである。例えば、２つのコンポーネントに関する拘束関係を規定するために、設計エンジニアは、アセンブル対象のソースコンポーネントとターゲットコンポーネントの形状エンティティを入力して、エンティティ間のタイプ拘束関係を手動で規定する。別の既知の技法は、設計エンジニアに、事前にコンポーネントの多数の形状エンティティに関するいくつかの拘束関係を手動で予め規定することを可能にする。したがって、予め規定された拘束関係に基づいて、特定の条件が満たされた場合、コンポーネントはリアルタイムで自動的に拘束される。しかしながら、事前に拘束関係を予め規定することは、煩雑で時間がかかるタスクであり、また、エラーを引き起こしやすいプロセスでもある。
【課題を解決するための手段】
【０００４】
コンピュータ支援設計（ＣＡＤ）環境においてコンポーネントを自動的にアセンブルする方法および装置を開示する。一態様では、方法は、ＣＡＤ環境内のソースコンポーネントとターゲットコンポーネントを識別することを含み、ソースコンポーネントとターゲットコンポーネントは、実世界オブジェクトの異なる部分を表す。方法はさらに、ルールのセットに基づいて、ソースコンポーネントとターゲットコンポーネントをアセンブルするための１つ以上のアセンブリソリューションを計算することを含む。方法はさらに、１つ以上のアセンブリソリューションに基づいて、ソースコンポーネントの形状エンティティとターゲットコンポーネントの形状エンティティの間の拘束を自動的に生成することを含む。
【０００５】
別の態様では、データ処理システムは、プロセッサと、表示ユニットと、プロセッサに結合されたアクセス可能なメモリを含む。メモリは、ＣＡＤ環境内のソースコンポーネントとターゲットコンポーネントを識別するように構成されたコンピュータ支援設計モジュールを含み、ソースコンポーネントとターゲットコンポーネントは、実世界オブジェクトの異なる部分を表す。コンピュータ支援設計モジュールは、１つ以上のソースコンポーネントとターゲットコンポーネントをアセンブルするためのアセンブリソリューションを、ルールのセットに基づいて計算するように構成される。コンピュータ支援設計モジュールは、ソースコンポーネントの形状エンティティとターゲットコンポーネントの形状エンティティの間の拘束を、１つ以上のアセンブリソリューションに基づいて自動的に生成するように構成される。コンピュータ支援設計モジュールはさらに、アセンブルされたソースコンポーネントとターゲットコンポーネントを含む形状モデルを表示ユニットに出力するように構成される。
【０００６】
さらに別の態様では、非一時的コンピュータ可読記憶媒体は、内蔵された命令を含み、命令は、データ処理システムによって実行されると、データ処理システムに、上記の方法を実行させる。
【０００７】
この要約は、以下の説明でさらに説明される概念の精選を簡略化した形式で紹介するために設けられている。本要約は、クレームされる主題の特徴または本質的な特徴を特定することを目的としていない。クレームされた主題は、本開示の任意の部分に記載されるいずれかまたは全ての不都合を解決する実装に限定されない。
【図面の簡単な説明】
【０００８】
【図１】一実施形態が実装され得るデータ処理システムのブロック図である。
【図２】一実施形態による、コンピュータ支援設計（ＣＡＤ） 環境における実世界オブジェクトの異なる部分を表すコンポーネントを自動的にアセンブルするための例示的方法を示すプロセスフローチャートである。
【図３Ａ】一実施形態による、ソースコンポーネントとターゲットコンポーネントをアセンブルするためのアセンブリソリューションを計算する例示的方法を示すプロセスフローチャートである。
【図３Ｂ−Ｃ】一実施形態による、共通トポロジルールを用いてアセンブリソリューションを計算する詳細な方法を示すプロセスフローチャートである。
【図４】一実施形態による、実世界オブジェクトの異なる部分を表すコンポーネントの形状モデリングを提供するクライアントサーバアーキテクチャのブロック図である。
【図５Ａ】ＣＡＤ環境内のコンポーネントをルールのセットに基づいてアセンブルするために生成される例示的アセンブリソリューションを描写するスクリーンショット図である。
【図５Ｂ】ＣＡＤ環境内のコンポーネントをルールのセットに基づいてアセンブルするために生成される例示的アセンブリソリューションを描写するスクリーンショット図である。
【図５Ｃ】ＣＡＤ環境内のコンポーネントをルールのセットに基づいてアセンブルするために生成される例示的アセンブリソリューションを描写するスクリーンショット図である。
【図５Ｄ】ＣＡＤ環境内のコンポーネントをルールのセットに基づいてアセンブルするために生成される例示的アセンブリソリューションを描写するスクリーンショット図である。
【図５Ｅ】ＣＡＤ環境内のコンポーネントをルールのセットに基づいてアセンブルするために生成される例示的アセンブリソリューションを描写するスクリーンショット図である。
【図５Ｆ】ＣＡＤ環境内のコンポーネントをルールのセットに基づいてアセンブルするために生成される例示的アセンブリソリューションを描写するスクリーンショット図である。
【発明を実施するための形態】
【０００９】
コンピュータ支援設計（ＣＡＤ）環境においてコンポーネントを自動的にアセンブルする方法および装置を開示する。種々の実施形態は図面を参照して説明され、図を参照するにあたり同じ参照符号が用いられる。全体を通して、同じ要素を参照して同じ符号が用いられる。以下の説明において、実施形態の万全な理解を提供するために、多くの特定の詳細が記載される。これらの特定の詳細は、実施形態を実施するために用いられなくてもよい。別の例では、実施形態を不要に不明確にすることを避けるために、よく知られる材料または方法については詳述していない。本開示は種々の修正および代替形態が可能であるが、その特定の実施形態が、図面に例として示され、本明細書で詳細に説明される。本開示を、開示された特定の形態に限定する意図はない。代わりに、開示は、本開示の趣旨と範囲内の全ての修正、等価または別形態を網羅するものとする。
【００１０】
図１は、例えばソフトウェアまたはその他によって、本明細書で説明されるプロセスを実行するように構成された、例えばコンピュータ支援設計システム等として実装されてもよい実施形態におけるデータ処理システム１００のブロック図を示す。データ処理システム１００は、パーソナルコンピュータ、ラップトップコンピュータ、タブレット等であってよい。図１において、データ処理システム１００は、プロセッサ１０２、アクセス可能なメモリ１０４、記憶ユニット１０６、入力ユニット１０８、表示ユニット１１０およびバス１１２を含む。
【００１１】
本明細書で用いられるプロセッサ１０２は、任意のタイプの計算回路であり、限定はしないが、マイクロプロセッサ、マイクロコントローラ、複合命令セット計算マイクロプロセッサ、縮小命令セット計算マイクロプロセッサ、極長命令ワードマイクロプロセッサ、明示的並列命令計算マイクロプロセッサ、グラフィックスプロセッサ、デジタル信号プロセッサ、または任意の他のタイプの処理回路等である。プロセッサ１０２はさらに、ジェネリックまたはプログラマブルロジックデバイスまたはアレイ、特定用途向け集積回路、シングルチップコンピュータまたはその他の同等物等の組込みコントローラを含んでもよい。
【００１２】
メモリ１０４は、揮発性メモリであっても、不揮発性メモリであってもよい。メモリ１０４は、プロセッサ１０２との通信のために結合されてもよい。プロセッサ１０２は、メモリ１０４に記憶された命令および／またはコードを実行してもよい。種々のコンピュータ可読記憶媒体がメモリ１０４に記憶されてメモリ１０４からアクセスされてもよい。メモリ１０４は、データと機械可読命令を記憶するための任意の適切な要素を含んでもよく、それらは例えば、リードオンリーメモリ、ランダムアクセスメモリ、消去可能プログラマブルリードオンリーメモリ、電気的に消去可能なプログラマブルリードオンリーメモリ、ハードドライブ、コンパクトディスク、デジタルビデオディスク、ディスケット、磁気テープカートリッジ、メモリカードを処理するためのリムーバブルメディアドライブ等である。本実施形態では、メモリ１０４は、上記の記憶媒体のうちいずれかに、機械可読命令の形式で記憶され、プロセッサ１０２と連通しておりプロセッサ１０２によって実行可能なコンピュータ支援設計モジュール1 １４を含む。コンピュータ支援設計モジュール1 １４は、プロセッサ１０２によって実行されると、プロセッサ１０２に、ＣＡＤ環境における実世界オブジェクトの部分を表すコンポーネントを自動的に拘束させて、拘束されたコンポーネントを含む形状モデルを生成させる。上記の機能を達成するためにプロセッサ１０２によって実行される方法動作は、図２および３にさらに詳しく説明される。
【００１３】
記憶ユニット１０６は、ルールデータベース１１６とモデルデータベース１１８を記憶する非一時的記憶媒体であってよい。ルールデータベース１１６は、実世界オブジェクトの異なる部分を表すコンポーネントを自動的にアセンブルするためのルールのセットを記憶する。モデルデータベース１１８は、拘束されたコンポーネントを含む形状モデルを記憶する。入力ユニット１０８は、拘束対象のコンポーネントの情報を含むファイル等の入力信号を受信することが可能な、キーパッド、タッチセンシティブディスプレイ、カメラ（例えば、ジェスチャーに基づく入力を受信するカメラ）等入力装置を含み得る。表示ユニット１１０は、拘束されたコンポーネントを含む形状モデルを視覚化するグラフィカルユーザインターフェースを表示するデバイスであってよい。バス１１２は、プロセッサ１０２、メモリ１０４、記憶ユニット１０６、入力ユニット１０８および出力１１０の間の相互接続として働く。
【００１４】
図１に描写したハードウェアは、特定の実装に合わせて変動し得る。例えば、描写されたハードウェアに加えて、またはそのハードウェアの代わりに、他の周辺機器、例えば光ディスクドライブ等、ローカルエリアネットワーク（ＬＡＮ）／ワイドエリアネットワーク（ＷＡＮ）／ワイヤレス（例えばＷｉ−Ｆｉ）アダプタ、グラフィックスアダプタ、ディスクコントローラ、入出力（Ｉ／Ｏ）アダプタも用いられてもよい。描写された例は、例示目的のみで提供されており、本開示に関する構造的限定を暗示する意図はない。
【００１５】
一実施形態によるデータ処理システムは、グラフィカルユーザインターフェースを用いたオペレーティングシステムを含む。オペレーティングシステムは、グラフィカルユーザインターフェースに同時に多数のディスプレイウィンドウが提示されることを可能にし、各ディスプレイウィンドウは、異なるアプリケーション、または同じアプリケーションの異なる例へのインターフェースを提供する。グラフィカルユーザインターフェースのカーソルが、ポインティングデバイスを介してユーザによって操作されてもよい。カーソルの位置は変えられてもよい、および／または、マウスボタンのクリック等のイベントが、所望の応答を駆動するために発生され得る。
【００１６】
ワシントン州レドモンドに所在するマイクロソフトコーポレーションの製品であるＭｉｃｒｏｓｏｆｔＷｉｎｄｏｗｓTM（登録商標）の１バージョン等の、種々の市販のオペレーティングシステムのうち１つが、適切に修正された場合に、用いられ得る。オペレーティングシステムは、記載のように本開示に従って修正または作成される。
【００１７】
開示される実施形態は、ＣＡＤ環境内のコンポーネント間の拘束を自動的に生成するシステムおよび方法を提供する。例えば、開示される技法は、ルールのセットを適用して、コンポーネント間の拘束を自動的に生成してもよい。
【００１８】
図２は、一実施形態による、ＣＡＤ環境における実世界オブジェクトの異なる部分を表すコンポーネントを自動的にアセンブルする例示的方法を示すプロセスフローチャート２００である。動作２０２で、拘束対象のコンポーネントの情報を含む電子ファイル（複数の場合あり）が取得される。例えば、電子ファイルはＣＡＤファイルであってよく、以後コンポーネントと呼ぶ実世界オブジェクトの一部分の形状情報を含み得る。電子ファイルは、データ処理システム１００のユーザによって提供されるロケーションから取得されてもよい。電子ファイルで与えられたコンポーネントは、データ処理システム１００のグラフィカルユーザインターフェース（例えば、グラフィカルユーザインターフェース５００Ａ）上に表示されてもよい、
【００１９】
動作２０４で、コンポーネントはソースコンポーネントおよびターゲットコンポーネントとして識別される。例えば、もう１つのコンポーネントと組み合わせられるコンポーネントは、ソースコンポーネントとして識別されるのに対し、もう１つのコンポーネントが組み合わせられることになっているコンポーネントは、ターゲットコンポーネントとして知られる。別の例示的実施では、ソースコンポーネントとターゲットコンポーネントはサイズに基づいて識別されてもよい。大きいサイズのコンポーネントはターゲットコンポーネントとして識別されるのに対し、小さいサイズのコンポーネントはソースコンポーネントとして識別される。さらに別の例示的実施では、ソースコンポーネントとターゲットコンポーネントは、データ処理システム１００のユーザによる入力に基づいて識別される。
【００２０】
動作２０６で、ソースコンポーネントとターゲットコンポーネントをアセンブルするための１つ以上のアセンブリソリューションが、ルールのセットに基づいて計算される。アセンブリソリューションそれぞれは、ソースコンポーネントとターゲットコンポーネントの間の拘束関係（例えば、合致関係）を規定し得る。ルールのセットは、アセンブリソリューションの計算に適用され得る。ルールのセットは、ソースコンポーネントとターゲットコンポーネントが共通のトポロジを有する場合には共通トポロジルールが適用されることを含んでもよく、また、ソースコンポーネントとターゲットコンポーネントが非共通のトポロジを有する場合には非共通トポロジルールが適用されることを含んでもよい。例えば、共通トポロジルールは、快適な雄雌嵌合ルールを含んでもよい。雌雄嵌合ルールにより、ソースコンポーネントとターゲットコンポーネントの間の雌雄嵌合が可能であるかどうかが決定される。例示的ルールのセットが図３Ｂの説明で説明される。決定に基づいて、アセンブリソリューションが計算される。多数のアセンブリソリューションが存在する場合、アセンブリソリューションにはランクが割り当てられる。ランクは、最適な拘束関係、アセンブリソリューションによって満たされるルールの個数等の予め規定された基準に基づいて割り当てられてもよい。アセンブリソリューションは序列付けされ、割り当てられたランクに従ってグラフィカルユーザインターフェース上に表示されてもよい。例えば、最高ランクを有するアセンブリソリューションは、アセンブリソリューションのリストの最上部に配置され得るのに対し、最低ランクを有するアセンブリソリューションは、アセンブリソリューションのリストの最下部に配置され得る。
【００２１】
動作２０８で、ソースコンポーネントとターゲットコンポーネントの間の最適な拘束関係を示唆するアセンブリソリューションが、１つ以上のアセンブリソリューションから決定される。一実施形態では、ユーザは、ソースコンポーネントとターゲットコンポーネントをアセンブルするためのアセンブリソリューションから、可能な限り最高のアセンブリソリューションを選択することを許容されてもよい。例えば、ユーザは、アセンブリソリューションのランクに基づいて可能な限り最高のアセンブリソリューションを選択してもよい。代替的に、ユーザは、アセンブリソリューションのグラフィカルプレビューに基づいて、可能な限り最高のアセンブリソリューションを選択してもよい。別の実施形態では、最適な拘束関係（例えば、最高ランクを割り当てられた）を示唆するアセンブリソリューションが、ユーザの介入なくデータ処理システム１００によって自動的に選択されてもよい。ユーザは、アセンブリソリューションの自動選択を廃棄して、アセンブリソリューションから別のアセンブリソリューションを選択することを許可されてもよい。
【００２２】
動作２１０で、ソースコンポーネントの形状エンティティとターゲットコンポーネントの形状エンティティとの間の拘束が、動作２０８で決定されたアセンブリソリューションに基づいて自動的に生成される。この動作では、アセンブリソリューションはコンポーネントに自動的に適用され、それによってソースコンポーネントとターゲットコンポーネントをアセンブルする。ソースコンポーネントとターゲットコンポーネントに関連する情報と、それに関する拘束がモデルデータベース１１８に記憶される。動作２１２で、アセンブルされたソースコンポーネントとターゲットコンポーネントを含む形状モデルがグラフィカルユーザインターフェース上に出力される。例えば、アセンブルされたソースコンポーネントとターゲットコンポーネントを含む形状モデルがグラフィカルユーザインターフェース上に視覚化される。こうして、実世界オブジェクトの異なる部分を表すコンポーネントが、ルールのセットに基づいて自動的にアセンブルされる。ＣＡＤ環境において複数のソースコンポーネントがターゲットコンポーネントと、シーケンシャルにではなく同時にアセンブルされ得る。
【００２３】
図３Ａは、一実施形態による、ソースコンポーネントとターゲット コンポーネントをアセンブルするためのアセンブリソリューションを計算する例示的方法を示すプロセスフローチャート３００である。動作３０２で、ソースコンポーネントとターゲットコンポーネントのサイズがそれぞれ決定される。動作３０４で、ソースコンポーネントのサイズがターゲットコンポーネントのサイズと比較される。動作３０６で、より大きいサイズを有するコンポーネントと、より小さいサイズを有するコンポーネントが決定される。例証のため、ソースコンポーネントがより小さいサイズであり、ターゲットコンポーネントがより大きいサイズであると想定する。
【００２４】
動作３０８で、アセンブリソリューションの計算中に、より大きいサイズのコンポーネントの幾何座標は不変に維持され、より小さいサイズのコンポーネントの幾何座標が変えられる。言い換えると、ソースコンポーネントとターゲットコンポーネントのアセンブル中に、より大きいサイズのコンポーネント（例えばターゲットコンポーネント）は固定して維持されるのに対し、より小さいサイズのコンポーネント（例えばソースコンポーネント）はより大きいサイズのコンポーネントに対して移動される。動作３１０で、ソースコンポーネントとターゲットコンポーネントが共通のトポロジ（例えば同じ面およびエッジ）を有しているかどうかが決定される。ソースコンポーネントとターゲットコンポーネントが共通のトポロジを有していれば、次に動作３１２で、アセンブリソリューションの第１のセットが、ルールのセット内の共通トポロジルールを用いて計算される。共通トポロジルールは、雌雄嵌合ルール、プロファイルマッチルール、最大体積オーバーラップルール、最大面オーバーラップルール、最大エッジオーバーラップルール等を含み得る。
【００２５】
ソースコンポーネントとターゲットコンポーネントが共通のトポロジを有していない場合、次に動作３１４で、アセンブリソリューションの第２のセットが、ルールのセット内の非共通トポロジルールを用いて計算される。非共通トポロジルールに従って、ソースコンポーネントとターゲットコンポーネントは、結果として得られるトポロジを最大化するためにアセンブルされる。動作３１６で、アセンブリソリューションの第１のセットまたはアセンブリソリューションの第２のセットは、ランクを割り当てられる。いくつかの実施形態では、ルールのセットはアセンブリソリューションに漸進的に割り当てられる。全てのルールを満たしたアセンブリソリューションは最高位にランクされるに対し、最少数のルールを満たしたアセンブリソリューションは最下位にランクされる。別の実施形態では、アセンブリソリューションは任意の他の基準に基づいてランクされてもよい。動作３１８で、アセンブリソリューションの第１のセットまたはアセンブリソリューションの第２のセットはそれぞれのランクに従って序列を決められ、それぞれのランクの序列順にグラフィカルユーザインターフェース上に出力される。
【００２６】
図３Ｂは、一実施形態による、共通トポロジルールを用いてアセンブリソリューションを計算する詳細な方法を示すプロセスフローチャート３５０である。動作３５２で、ソースコンポーネントとターゲットコンポーネントの間で雌雄嵌合が可能かどうかが決定される。雌雄嵌合が可能であると決定されると、次に動作３５４で、アセンブリソリューションの第１のサブセットが雌雄嵌合ルールに基づいて計算される。雌雄嵌合が可能でないと決定されると、次にプロセス３５０は動作３５６を実行する。
【００２７】
動作３５６で、ソースコンポーネントのプロファイルがターゲットコンポーネントのプロファイルとマッチするかが判断される。プロファイルのマッチが存在すれば、動作３５８でアセンブリソリューションの第２のサブセットがプロファイルマッチルールを用いて計算される。アセンブリソリューションの第２のサブセットは、アセンブリソリューションの第１のサブセットおよび／または、プロファイルマッチルールを満たす新たなアセンブリソリューションを含む。プロファイルのマッチがない場合、次にプロセス３５０は動作３６０を実行する。動作３６０で、ソースコンポーネントとターゲットコンポーネントの間に体積オーバーラップがあるかどうかが決定される。ソースコンポーネントとターゲットコンポーネントの間に体積オーバーラップがある場合、次に動作３６２で、アセンブリソリューションの第３のサブセットが最大体積オーバーラップルールに基づいて計算される。アセンブリソリューションの第３のサブセットは、アセンブリソリューションの第１のサブセット、アセンブリソリューションの第２のサブセットおよび／または、最大体積オーバーラップルールを満たす新たなアセンブリソリューションを含む。体積オーバーラップがない場合、次にプロセス３５０は動作３６４を実行する。
【００２８】
動作３６４で、ソースコンポーネントとターゲットコンポーネントの間に面オーバーラップが存在するかどうかが判断される。面オーバーラップが存在する場合、次に動作３６６で、最大面オーバーラップルールに基づいてアセンブリソリューションの第４のサブセットが計算される。アセンブリソリューションの第４のサブセットは、アセンブリソリューションの第１のサブセット、アセンブリソリューションの第２のサブセット、アセンブリソリューションの第３のサブセットおよび／または、最大面オーバーラップルールを満たす新たなアセンブリソリューションを含む。面オーバーラップがない場合、次にプロセス３５０は動作３６８を実行する。
【００２９】
動作３６８で、ソースコンポーネントとターゲットコンポーネントの間にエッジオーバーラップが存在するかどうかが判断される。エッジオーバーラップが存在しない場合、次に動作３７０で、アセンブリソリューションの第５のセットが計算される。アセンブリソリューションの第５のセットは、アセンブリソリューションの第１のサブセット、アセンブリソリューションの第２のサブセット、アセンブリソリューションの第３のサブセット、アセンブリソリューションの第４のサブセットを含む。エッジオーバーラップが存在する場合、次に動作３７２でアセンブリソリューションの第６のサブセットが、最大エッジオーバーラップルールに基づいて計算される。アセンブリソリューションの第６のサブセットは、アセンブリソリューションの第１のサブセット、アセンブリソリューションの第２のサブセット、アセンブリソリューションの第３のサブセットおよびアセンブリソリューションの第４のサブセット並びに／または最大エッジオーバーラップルールを満たす新たなアセンブリソリューションを含む。
【００３０】
動作３７４で、アセンブリソリューションの第５のサブセットと第６のサブセットそれぞれに一意的なランクが割り当てられる。いくつかの実施形態では、ランクは１つのアセンブリソリューションによって満たされるルールの個数に基づいて割り当てられる。例えば、アセンブリソリューションが上記ルールを全て満たした場合には最高位ランクが割り当てられる。動作３７６で、アセンブリソリューションはそれぞれのランクに従って序列を決められる。こうして、全てのルールは漸進的に適用されて、ＣＡＤ環境内でコンポーネントをアセンブルするためのアセンブリソリューションを計算する。アセンブリソリューションのうちいくつかは、ソースおよびターゲットコンポーネントの幾何学的形状に基づいて存在しない可能性があるため、全てのアセンブリソリューションが可能なわけではない。
【００３１】
図４は、一実施形態による、実世界オブジェクトの異なる部分を表すコンポーネントの形状モデリングを提供するクライアントサーバアーキテクチャ４００のブロック図である。例えば、クライアントサーバアーキテクチャ４００は、１つのサーバ４０２と複数のクライアントデバイス４０６Ａ−Ｎを含む。クライアントデバイス４０６Ａ−Ｎそれぞれは、ネットワーク４０４（例えばローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、Ｗｉ−Ｆｉ等）を介してサーバ４０２に接続されている。サーバ４０２は、図１のデータ処理システムの例示的実装である。
【００３２】
サーバ４０２は、コンピュータ支援設計モジュール１１４と、ルールデータベース１１６とモデルデータベース１１８を含む。コンピュータ支援設計モジュール１１４は、サーバ４０２に機械可読命令の形式で記憶されてもよい。サーバ４０２は、機械可読命令が記憶されるアクセス可能なメモリを含んでもよい。サーバ４０２は、機械可読命令を実行するプロセッサを含んでもよい。サーバ４０２は、ルールデータベース１１６とモデルデータベース１１８を記憶する記憶ユニットをも含んでもよい。付加的に、サーバ４０２は、クライアントデバイス４０６Ａ−Ｎとネットワーク４０４を介して通信するネットワークインターフェースを含んでもよい。機械可読命令は、プロセッサに、ルールデータベース１１６内に記憶されたルールのセットに基づいて、コンポーネント間の拘束を自動的に生成させてもよい。
【００３３】
クライアントデバイス４０６Ａ−Ｎにはコンピュータ支援設計ツール４０８Ａ−Ｎが配設されている。クライアントデバイス４０６Ａ−Ｎのユーザは、サーバ４０２に、それぞれのコンピュータ支援設計ツール４０８Ａ−Ｎのグラフィカルユーザインターフェースを介してアクセスしてもよい。一実施形態では、クライアントデバイス４０６Ａのユーザは、コンピュータ支援設計ツール４０８Ａを用いてアセンブル対象のコンポーネントに関連する情報を含むＣＡＤファイルをロードする要求を、サーバ４０２に送信してもよい。サーバ４０２は、ネットワーク４０４を介してＣＡＤファイルをクライアントデバイス４０６Ａに送信してもよい。クライアントデバイス４０６Ａは、サーバ４０２に、２つのコンポーネントをＣＡＤファイルにアセンブルする要求を送信してもよい。それにより、サーバ４０２内のコンピュータ支援設計モジュール１１４は、ルールデータベース１１６内に記憶されたルールのセットを用いてコンポーネント間の拘束を自動的に生成し、拘束されたコンポーネントを含む形状モデルを、クライアントデバイス４０６Ａのコンピュータ支援設計ツール４０８Ａのグラフィカルユーザインターフェース上に出力する。本実施形態のうち１つ以上はクラウド計算環境で実施されてもよく、その場合コンピュータ支援設計モジュール１１４はクラウドサーバ上にホストされる。  
【００３４】
図５Ａから５Ｆは、ＣＡＤ環境内のコンポーネントをルールのセットに基づいてアセンブルするために作成された例示的アセンブリソリューションを描写するスクリーンショット図である。図５Ａから５Ｆは、１つのコンピュータ支援設計ツールのグラフィカルユーザインターフェース５００Ａ−Ｆを示す。図５Ａにおいて、グラフィカルユーザインターフェース５００Ａは、２つのコンポーネント５０２および５０４を含むＣＡＤ環境を表示する。ユーザが、２つのコンポーネントをアセンブルして１つの形状モデルを作成したいと想定する。ユーザによって「アセンブル」ボタン５１１が選択されると、データ処理システム１００はコンポーネント５０２および５０４の中からソースコンポーネントとターゲットコンポーネントを識別する。コンポーネント５０２はより小さく、コンポーネント５０４と組み合わせられることになっているため、コンポーネント５０２はソースコンポーネントとして識別される。同様に、コンポーネント５０４はより大きいサイズであるため、コンポーネント５０４はターゲットコンポーネントとして識別される。
【００３５】
データ処理システム１００は、可能なアセンブリソリューション５０６Ａおよび５０６Ｂを、快適雌雄嵌合ルールに基づいて計算する。快適雌雄嵌合ルールに従って、ソースコンポーネント５０２とターゲットコンポーネント５０４の間に快適な雌雄嵌合が可能かどうかが決定される。アセンブリソリューション５０６Ａでは、ソースコンポーネント５０２はターゲットコンポーネント５０４の中空部分５０８内に挿入される。アセンブリソリューション５０６Ｂでは、ソースコンポーネント５０２はターゲットコンポーネント５０４の拡張部分５１０の上に垂直に配置される。アセンブリソリューション５０６Ａとアセンブリソリューション５０６Ｂの両方で示すように、アセンブリソリューション５０６Ａはアセンブリソリューション５０６Ｂと比べてソースコンポーネント５０２とターゲットコンポーネント５０４間の最適な拘束関係を示唆し、したがって、アセンブリソリューション５０６Ａはアセンブリソリューション５０６Ｂよりも高位にランクされる。したがって、アセンブリソリューション５０６Ａはアセンブリソリューション５０６Ａおよび５０６Ｂのリストの上部に配置され、アセンブリソリューション５０６Ｂはリストの下部に配置される。結果として、データ処理システム１００は、ソースコンポーネント５０２の形状エンティティ（例えば面、エッジ等）と、ターゲットコンポーネント５０４の中空部分５０８の形状エンティティ（例えば面、エッジ等）との間の適切な拘束を、アセンブリソリューション５０６Ａに基づいて自動的に生成してもよい。対照的に、ユーザは、アセンブリソリューション５０６Ａを破棄してアセンブリソリューション５０６Ｂを選択してもよい。そのような場合、データ処理システム１００は、ソースコンポーネント５０２の形状エンティティと、ターゲットコンポーネント５０４の拡張部分５１０の形状エンティティとの間の拘束を、ユーザによるアセンブリソリューション５０６Ｂの選択に基づいて生成してもよい。
【００３６】
図５Ｂにおいて、グラフィカルユーザインターフェース５００Ｂは、コンポーネント５１２および５１４を含むＣＡＤ環境を表示する。コンポーネント５１４は２つの中空部分（例えば、円形中空部分５１８および十字形中空部分５２０）を有する。ユーザがコンポーネント５１２と５１４をアセンブルしたいと想定する。さらに、データ処理システム１００が、コンポーネント５１２および５１４のサイズに基づいて、コンポーネント５１２をソースコンポーネントとして識別し、コンポーネント５１４をターゲットコンポーネントとして識別したと想定する。ユーザが「アセンブル」ボタン５１１をクリックすると、データ処理システム１００はアセンブリソリューション５１６Ａおよび５１６Ｂをプロファイルマッチルールに基づいて計算する。プロファイルマッチルールにより、ソースコンポーネントのプロファイルと、ターゲットコンポーネント５１４の中空部分５１８または５２０のプロファイルとにマッチが存在するかどうかが判断される。アセンブリソリューション５１６Ａでは、十字形のソースコンポーネント５１２が、ターゲットコンポーネント５１４の円形の中空部分５１８に挿入される。アセンブリソリューション５１６Ｂでは、ソースコンポーネント５１２は、ターゲットコンポーネント５１４の十字形の中空部分５２０に挿入される。アセンブリソリューション５１６Ａでは、ソースコンポーネント５１２のプロファイル（例えば十字形）がターゲットコンポーネント５１４の中空部分５１８のプロファイル（例えば円形）にマッチしないことが示されている。しかしながら、アセンブリソリューション５１６Ｂでは、ソースコンポーネント５１２のプロファイル（例えば十字形）がターゲットコンポーネント５１４の中空部分５２０のプロファイル（例えば十字形）にマッチしている。したがって、アセンブリソリューション５１６Ｂは、アセンブリソリューション５１６Ａと比べて、ソースコンポーネント５１２と、ターゲットコンポーネント５１４の十字形の中空部分５２０との間の最適な拘束関係を示唆する。結果として、データ処理システム１００は、アセンブリソリューション５１６Ｂに従ってソースコンポーネント５１２の形状エンティティとターゲットコンポーネント５１４の中空部分５２０の形状エンティティの間の拘束を自動的に生成してもよい。
【００３７】
図５Ｃにおいて、グラフィカルユーザインターフェース５００Ｃは、２つのコンポーネント５２２および５２４を含むＣＡＤ環境を表示している。コンポーネント５２２は十字形であり、コンポーネント５２４は、十字形の中空部分５２８と十字形のキャビティ５３０を有する。ユーザがコンポーネント５２２と５２４をアセンブルしたいと想定する。さらに、データ処理システム１００が、コンポーネント５２２および５２４のサイズに基づいて、コンポーネント５２２をソースコンポーネントとして識別し、コンポーネント５２４をターゲットコンポーネントとして識別したと想定する。ユーザが「アセンブル」ボタン５１１をクリックすると、データ処理システム１００はアセンブリソリューション５２６Ａおよび５２６Ｂを最大体積オーバーラップルールに基づいて計算する。最大体積オーバーラップルールにより、ターゲットコンポーネント５２４の中空部分５２８またはキャビティ５３０が、ソースコンポーネント５２２の１つ以上の面との、最大面およびエッジオーバーラップを有して、最大体積オーバーラップをもたらすかどうかが判断される。アセンブリソリューション５２６Ａにおいて、十字形のソースコンポーネント５２２がターゲットコンポーネント５２４の十字形の中空部分５２８に挿入される。アセンブリソリューション５２６Ｂでは、ソースコンポーネント５２２はターゲット部材５２４の十字形のキャビティ５３０に挿入される。アセンブリソリューション５２６Ａから、アセンブリソリューション５２６Ｂと比べてソースコンポーネント５２２と、ターゲットコンポーネント５２４の十字形の中空部分５２８との間に最大体積オーバーラップが存在することが示されている。したがって、アセンブリソリューション５２６Ａは、アセンブリソリューション５２６Ｂと比べて、ソースコンポーネント５２２と、ターゲットコンポーネント５２４の十字形の中空部分５２８との間の最適な拘束関係を示唆する。結果として、データ処理システム１００は、ソースコンポーネント５２２の形状エンティティと、ターゲットコンポーネント５２４の中空部分５２８の形状エンティティとの間の拘束を、アセンブリソリューション５２６Ａに従って自動的に生成してもよい。
【００３８】
図５Ｄにおいて、グラフィカルユーザインターフェース５００Ｄは、２つのコンポーネント５３２および５３４を含むＣＡＤ環境を表示している。コンポーネント５２４は、拡張部分５３８と、垂直面５４０と、水平面５４２を含む。ユーザがコンポーネント５３２と５３４をアセンブルしたいと想定する。さらに、データ処理システム１００が、コンポーネント５３２および５３４のサイズに基づいて、コンポーネント５３２をソースコンポーネントとして識別し、コンポーネント５３４をターゲットコンポーネントとして識別したと想定する。ユーザが「アセンブル」ボタン５１１をクリックすると、データ処理システム１００はアセンブリソリューション５３６Ａおよび５３６Ｂを最大面オーバーラップルールに基づいて計算する。最大面オーバーラップルールにより、ターゲットコンポーネント５３４の面が、ソースコンポーネント５３２との最大面オーバーラップを有するかどうかが判断される。アセンブリソリューション５３６Ａでは、ソースコンポーネント５３２の３面がターゲットコンポーネント５３４の面（例えば、拡張部分の２面と、水平面５４２）とオーバーラップしている。アセンブリソリューション５３６Ｂでは、ソースコンポーネント５３２の２面がターゲットコンポーネント５３４の面（例えば、垂直面５４０と水平面５４２）とオーバーラップしている。アセンブリソリューション５３６Ｂと比べて、アセンブリソリューション５３６Ａに最大面オーバーラップがあることが示されている。したがってアセンブリソリューション５３６Ａは、ソースコンポーネント５３２と、ターゲットコンポーネント５２４の拡張部分５３８との間の最適な拘束関係を示唆し、したがって、アセンブリソリューション５３６Ｂよりも高位にランクされる。結果として、データ処理システム１００は、ソースコンポーネント５３２の形状エンティティと、ターゲットコンポーネント５２４の拡張部分５３８の形状エンティティの間の拘束を、アセンブリソリューション５３６Ａに従って自動的に生成してもよい。  
【００３９】
図５Ｅにおいて、グラフィカルユーザインターフェース５００Ｅは、２つのコンポーネント５４２および５４４を含むＣＡＤ環境を表示している。ユーザがコンポーネント５４２と５４４をアセンブルしたいと想定する。さらに、データ処理システム１００が、コンポーネント５４２および５４４のサイズに基づいて、コンポーネント５４２をソースコンポーネントとして識別し、コンポーネント５４４をターゲットコンポーネントとして識別したと想定する。ユーザが「アセンブル」ボタン５１１をクリックすると、データ処理システム１００はアセンブリソリューション５４６Ａおよび５４６Ｂを最大エッジオーバーラップルールに基づいて計算する。最大エッジオーバーラップルールにより、ターゲットコンポーネント５４４のエッジが、ソースコンポーネント５４２との最大エッジオーバーラップを有するかどうか（例えば、エッジオーバーラップのパーセンテージに関して）が判断される。アセンブリソリューション５４６Ａでは、ソースコンポーネント５４２のエッジはターゲットコンポーネント５４４の矩形キャビティ５４８のエッジと接している。アセンブリソリューション５４６Ｂでは、ソースコンポーネント５４２のエッジはターゲットコンポーネント５４４の矩形キャビティ５５０のエッジと接している。アセンブリソリューション５４６Ｂと比べて、アセンブリソリューション５４６Ａに最大エッジオーバーラップがあることが示されている。したがってアセンブリソリューション５４６Ａは、ソースコンポーネント５４２と、ターゲットコンポーネント５４４の矩形キャビティ５４８との間の最適な拘束関係を示唆する。結果として、データ処理システム１００は、ソースコンポーネント５４２の形状エンティティと、ターゲットコンポーネント５４４の矩形キャビティ５４８の形状エンティティの間の拘束を、アセンブリソリューション５４６Ａに従って自動的に生成してもよい。
【００４０】
図５Ｆにおいて、グラフィカルユーザインターフェース５００Ｆは、２つのコンポーネント５５２および５５４を含むＣＡＤ環境を表示している。コンポーネント５５２は棒状オブジェクトであり、コンポーネント５５４は円錐状オブジェクトである。両コンポーネント５５２および５５４が非共通のトポロジを有していることが示される。そのような場合、データ処理システム１００は非共通トポロジルールに基づいてアセンブリソリューション５５６Ａ、５５６Ｂおよび５５６Ｃを計算する。非共通トポロジルールに基づいて、コンポーネント５５２と５５４は、結果として得られるトポロジを最大化するようにアセンブルされ得る。アセンブリソリューション５５６Ａは、棒状オブジェクト５５２の面が円錐状オブジェクト５５４の面と接しているため「面」としての結果として得られるトポロジを有しているため、結果として得られるトポロジはアセンブリソリューション５５６Ａによって最大化されることが示されている。アセンブリソリューション５５６Ｂの場合、棒状オブジェクト５５２のエッジが円錐状オブジェクト５５４の面と接しているため、結果として得られるトポロジは「エッジ」である。同様に、アセンブリソリューション５５６Ｃの場合、棒状オブジェクト５５２のエッジが円錐状オブジェクト５５４のエッジと接しているため、結果として得られるトポロジは「エッジ」である。アセンブリソリューション５５６Ａは、結果として得られる面トポロジがより高位の優先度を付与されるため、アセンブリソリューション５５６Ａ−Ｃのうちで最高位にランク付けされる。アセンブリソリューション５５６Ｂおよび５５６Ｃのうちでは、アセンブリソリューション５５６Ｂがより大きな結果として得られるエッジトポロジを有するため、アセンブリソリューション５５６Ｂはアセンブリソリューション５５６Ｃよりも高位にランク付けされる。アセンブリソリューション５５６Ａは結果として得られる面トポロジを有するため、アセンブリソリューション５５６Ａはアセンブリソリューション５５６Ａ−Ｃの中でコンポーネント５５２とコンポーネント５５４の間に最適な拘束関係を示唆する。結果として、データ処理システム１００は、ソースコンポーネント５５２の形状エンティティとターゲットコンポーネント５５４の形状エンティティの間の拘束を、アセンブリソリューション５５６Ａに基づいて自動的に生成してもよい。
【００４１】
種々の実施形態において、上記に図１から５Ｅで説明した方法およびシステムは、予め規定されたルールのセットに基づいてコンポーネントを自動的にアセンブルし、コンポーネントの形状エンティティ間の拘束を生成してＣＡＤ環境における形状モデルを形成することを開示している。したがって、コンポーネントをアセンブリに配置して、コンポーネント間の拘束関係をユーザの入力に基づいて規定する必要が排除される。これは、マニュアルの労力を省くとともに設計時間を大幅に削減することを補助する。
【００４２】
当業者ならば、特別に示唆されない限り、またはオペレーションのシーケンスによって要求されない限り、上記のプロセスの特定のステップは、省略されても、同時または連続して実行されても、または別の順序で実行されてもよいことを理解するであろう。
【００４３】
当業者ならば、簡略化および明瞭化のため、本開示で用いるのに適した全てのデータ処理システムの全構造およびオペレーションが本明細書に描写または説明されているわけではないことを理解するであろう。代わりに、本開示にとって独自である、または本開示の理解に必要な程度のみのデータ処理システムが描写され説明されている。データ処理システム１００の構造とオペレーションの残りの部分は、当技術分野で知られる種々の現行の実装および慣例のうちいずれに準拠してもよい。
【００４４】
本明細書で説明されたシステムおよび方法は、種々の形式のハードウェア、ソフトウェア、ファームウェア、専用プロセッサ、またはそれらの組み合わせで実装されてもよいことを理解すべきである。本実施形態のうち１つ以上は、１つ以上のコンピュータ、プロセッサ、または命令実行システムによって、またはそれらと接続して用いるプログラムコードを記憶するコンピュータで使用可能なまたはコンピュータ可読な媒体からアクセス可能なプログラムモジュールを含むコンピュータプログラム製品の形態をとってもよい。この説明の目的で、コンピュータで使用可能またはコンピュータ可読媒体は、命令実行システム、装置またはデバイスによって、またはそれらと接続して用いるプログラムを収容、記憶、通信、伝播または移送してもよい任意の装置であってよい。媒体は、電子的、磁気的、光学、電磁、赤外線または半導体システム（または装置またはデバイス）またはそれ自体の伝播媒体であってよいが、それは、信号キャリアは、半導体または固体メモリ、磁気テープ、リムーバブルコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、剛性磁気ディスク、コンパクトディスクリードオンリーメモリ（ＣＤ−ＲＯＭ）、コンパクトディスクリード／ライト、およびＤＶＤ等の光ディスクまたはそれらの任意の組み合わせを含む物理的コンピュータ可読媒体の定義に含まれないからである。本技術の各態様を実施するプロセッサおよびプログラムコードは両方とも、当業者には周知のように、中央集約型でも分散型でも（またはそれらの組み合わせでも）よい。
【００４５】
本開示を特定の実施形態を参照して詳細に説明してきたが、本開示はこれらの実施形態に限定されない。本開示に鑑み、本明細書で説明される本開示の種々の実施形態の範囲から逸脱することなく多くの修正および変形が当業者には明らかとなろう。したがって、本開示の範囲は、上記の説明というよりも以下の請求項によって示される。請求項の意味および等価範囲内の全ての変更、修正および変形は範囲内にあると見なされるものとする。
【符号の説明】
【００４６】
１００        データ処理システム
１０２        プロセッサ
１０４        アクセス可能なメモリ
１０６        記憶ユニット
１０８        入力ユニット
１１０        表示ユニット
１１２        バス
１１４        コンピュータ支援設計モジュール
１１６        ルールデータベース
１１８        モデルデータベース
４００        クライアントサーバアーキテクチャ
４０２        サーバ
４０４        ネットワーク
４０６Ａ−Ｎ  クライアントデバイス
４０８Ａ−Ｎ  コンピュータ支援設計ツール
５００Ａ−Ｆ  グラフィカルユーザインターフェース
５０２        ソースコンポーネント
５０４        ターゲットコンポーネント
５０６Ａ      アセンブリソリューション
５０６Ｂ      アセンブリソリューション
５０８        中空部分
５１０        拡張部分
５１２        ソースコンポーネント
５１４        ターゲットコンポーネント
５１６Ａ      アセンブリソリューション
５１６Ｂ      アセンブリソリューション
５１８        中空部分
５２０        中空部分
５２２        コンポーネント
５２４        コンポーネント
５３２        コンポーネント
５３４        コンポーネント
５４２        コンポーネント
５４４        コンポーネント
５５２        コンポーネント
５５４        コンポーネント
【図１】
0006600700.tif 000002
【図２】
0006600700.tif 000003
【図３Ａ】
0006600700.tif 000004
【図３Ｂ】
0006600700.tif 000005
【図３Ｃ】
0006600700.tif 000006
【図４】
0006600700.tif 000007
【図５Ａ】
0006600700.tif 000008
【図５Ｂ】
0006600700.tif 000009
【図５Ｃ】
0006600700.tif 000010
【図５Ｄ】
0006600700.tif 000011
【図５Ｅ】
0006600700.tif 000012
【図５Ｆ】
0006600700.tif 000013