(57)【特許請求の範囲】
【請求項１】
ポジショニングタスク（３１０）を使用して、拘束ネットワークにおいて選択された設計要素（２５０）のポジションを編集する方法であって、該方法は、
・幾何モデル（１５２）における設計要素（２５０）の選択をユーザから受け取るステップと、
・前記選択された設計要素（２５０）に関連するポジショニンググループ（２１０）を見つけるために、データベース（１５０）をサーチするステップと、
・前記選択された設計要素（２５０）と、該選択された設計要素（２５０）に関連する前記ポジショニンググループ（２１０）とを、前記ポジショニングタスク（３１０）のワークコレクション（３３０）に追加するステップと、ただし、該ワークコレクション（３３０）内に存在する前記ポジショニンググループと前記設計要素（３５０）は変更可能であり、
・前記ワークコレクション（３３０）内の前記ポジショニンググループ（２１０）と前記設計要素（２４０，２５０）の拘束（３２０）によって参照される参照ポジショニンググループ（２２０）と参照設計要素（２６０，２７０）を見つけるために、前記データベース（１５０）を２回目にサーチするステップと、
・前記２回目のサーチにより見つけられた前記参照ポジショニンググループ（２２０）と前記参照設計要素（２６０，２７０）とを、前記ポジショニングタスク（３１０）のコンテキストコレクション（３４０）に追加するステップと、ただし、該コンテキストコレクション（３４０）内に存在する前記ポジショニンググループと前記設計要素（３６０）は変更不可能であり、
・前記ワークコレクション（３３０）に追加された前記ポジショニンググループと前記設計要素（３５０）とに対する拘束（３２０）をすべて、前記ポジショニングタスク（３１０）にロードするステップと
を含む、
選択された設計要素（２５０）のポジションを編集する方法。
【請求項２】
さらに以下のステップを含む、すなわち、
・前記ワークコレクション（３３０）に追加すべき付加的なポジショニンググループ（２２０）または付加的な設計要素（２６０，２７０）をユーザから受け取るステップと、
・前記ポジショニングタスク（３１０）の前記ワークコレクション（３３０）に追加された前記付加的なポジショニンググループ（２２０）と前記付加的な設計要素（２６０，２７０）の拘束（３２０）により参照される他の参照ポジショニンググループ（２３０）と他の参照設計要素（２８０，２９０）を見つけるために、前記データベース（１５０）を付加的にサーチするステップと、
前記付加的なサーチにより見つけられた前記他の参照ポジショニンググループ（２３０）と前記他の参照設計要素（２８０，２９０）とを、前記ポジショニングタスク（３１０）の前記コンテキストコレクション（３４０）に追加するステップと、
前記ワークコレクション（３３０）に追加された前記付加的なポジショニンググループ（２２０）および前記付加的な設計要素（２６０，２７０）に対する拘束（３２０）をすべて、前記ポジショニングタスク（３１０）にロードするステップと
を含む、
請求項１記載の選択された設計要素（２５０）のポジションを編集する方法。
【請求項３】
前記ポジショニンググループ（２１０）は、フォアグラウンド設計要素（３５０）とバックグラウンド設計要素（３６０）とを含む、
請求項１記載の選択された設計要素（２５０）のポジションを編集する方法。
【請求項４】
前記フォアグラウンド設計要素（３５０）と前記バックグラウンド設計要素（３６０）の指標は、ユーザには不可視である、
請求項３記載の選択された設計要素（２５０）のポジションを編集する方法。
【請求項５】
前記設計要素（２４０，２５０，２６０，２７０，２８０，２９０）はユーザアクセス権を有する、
請求項１記載の選択された設計要素（２５０）のポジションを編集する方法。
【請求項６】
前記選択された設計要素（２５０）を編集するアクセス権がユーザにあるか否かを判定するため、前記選択された設計要素（２５０）を見つけるために前記データベース（１５０）をサーチするステップをさらに含む、
請求項５記載の選択された設計要素（２５０）のポジションを編集する方法。
【請求項７】
前記選択された設計要素（２５０）に対するアクセス権がユーザになければ、前記システムは、不適切なアクセスであることをユーザに通知し、当該方法を終了させる、
請求項６記載の選択された設計要素（２５０）のポジションを編集する方法。
【請求項８】
データ処理システム（１００）において、
プロセッサ（１０２）と、アクセス可能なメモリ（１０８）とが設けられており、該データ処理システム（１００）は特に、以下のように構成されている、すなわち、
・幾何モデル（１５２）における設計要素（２５０）の選択をユーザから受け取り、
・前記選択された設計要素（２５０）に関連するポジショニンググループ（２１０）を見つけるために、データベース（１５０）をサーチし、
・前記選択された設計要素（２５０）と、該選択された設計要素（２５０）に関連する前記ポジショニンググループ（２１０）とを、ポジショニングタスク（３１０）のワークコレクション（３３０）に追加し、ただし、該ワークコレクション（３３０）内に存在する前記ポジショニンググループと前記設計要素（３５０）は変更可能であり、
・前記ワークコレクション（３３０）内の前記ポジショニンググループ（２１０）と前記設計要素（２４０，２５０）の拘束（３２０）によって参照される参照ポジショニンググループ（２２０）と参照設計要素（２６０，２７０）を見つけるために、前記データベース（１５０）を２回目にサーチし、
・前記２回目のサーチにより見つけられた前記参照ポジショニンググループ（２２０）と前記参照設計要素（２６０，２７０）とを、ポジショニングタスク（３１０）のコンテキストコレクション（３４０）に追加し、ただし、該コンテキストコレクション（３４０）内に存在する前記ポジショニンググループと前記設計要素（３６０）は変更不可能であり、
・前記ワークコレクション（３３０）に追加された前記ポジショニンググループと前記設計要素（３５０）とに対する拘束（３２０）をすべて、前記ポジショニングタスク（３１０）にロードする、
ように構成されている、
データ処理システム（１００）。
【請求項９】
前記データ処理システムは、さらに以下のように構成されている、すなわち、
・前記ワークコレクション（３３０）に追加すべき付加的なポジショニンググループ（２２０）または付加的な設計要素（２６０，２７０）をユーザから受け取り、
・前記ポジショニングタスク（３１０）の前記ワークコレクション（３３０）に追加された前記付加的なポジショニンググループ（２２０）と前記付加的な設計要素（２６０，２７０）の拘束（３２０）により参照される他の参照ポジショニンググループ（２３０）と他の参照設計要素（２８０，２９０）を見つけるために、前記データベース（１５０）を付加的にサーチし、
前記付加的なサーチにより見つけられた前記他の参照ポジショニンググループ（２３０）と前記他の参照設計要素（２８０，２９０）とを、前記ポジショニングタスク（３１０）の前記コンテキストコレクション（３４０）に追加し、
前記ワークコレクション（３３０）に追加された前記付加的なポジショニンググループ（２２０）および前記付加的な設計要素（２６０，２７０）に対する拘束（３２０）をすべて、前記ポジショニングタスク（３１０）にロードする、
ように構成されている、
請求項８記載のデータ処理システム。
【請求項１０】
前記ポジショニンググループ（２１０）は、フォアグラウンド設計要素（３５０）とバックグラウンド設計要素（３６０）とを含む、
請求項８記載のデータ処理システム。
【請求項１１】
前記フォアグラウンド設計要素（３５０）と前記バックグラウンド設計要素（３６０）の指標は、ユーザには不可視である、
請求項１０記載のデータ処理システム。
【請求項１２】
前記設計要素（２４０，２５０，２６０，２７０，２８０，２９０）はユーザアクセス権を有する、
請求項８記載のデータ処理システム。
【請求項１３】
前記選択された設計要素（２５０）を編集するアクセス権がユーザにあるか否かを判定するため、前記選択された設計要素（２５０）を見つけるために前記データベース（１５０）をサーチする、
請求項１２記載のデータ処理システム。
【請求項１４】
前記選択された設計要素（２５０）に対するアクセス権がユーザになければ、前記システムは、不適切なアクセスであることをユーザに通知し、当該方法を終了させる、
請求項１３記載のデータ処理システム。
【請求項１５】
実行可能な命令によってコーディングされた非一時的なコンピュータ読み取り可能媒体であって、前記命令が実行されると、１つまたは複数のデータ処理システムは以下を実行する、すなわち、
・幾何モデル（１５２）における設計要素（２５０）の選択をユーザから受け取り、
・前記選択された設計要素（２５０）に関連するポジショニンググループ（２１０）を見つけるために、データベース（１５０）をサーチし、
・前記選択された設計要素（２５０）と、該選択された設計要素（２５０）に関連する前記ポジショニンググループ（２１０）とを、ポジショニングタスク（３１０）のワークコレクション（３３０）に追加し、ただし、該ワークコレクション（３３０）内に存在する前記ポジショニンググループと前記設計要素（３５０）は変更可能であり、
・前記ワークコレクション（３３０）内の前記ポジショニンググループ（１５４）と前記設計要素の拘束（３２０）によって参照される参照ポジショニンググループ（１５４）と参照設計要素（２６０）を見つけるために、前記データベース（１５０）を２回目にサーチし、
・前記２回目のサーチにより見つけられた前記参照ポジショニンググループ（１５４）と前記参照設計要素（２６０）とを、コンテキストコレクション（３４０）に追加し、ただし、該コンテキストコレクション（３４０）内に存在する前記ポジショニンググループと前記設計要素（３６０）は変更不可能であり、
・前記ワークコレクション（３３０）に追加された前記ポジショニンググループと前記設計要素（３５０）とに対する拘束（３２０）をすべてロードする、
非一時的なコンピュータ読み取り可能媒体。
【請求項１６】
さらに以下を実行する、すなわち、
・前記ワークコレクション（３３０）に追加すべき付加的なポジショニンググループ（２２０）または付加的な設計要素（２６０，２７０）をユーザから受け取り、
・前記ポジショニングタスク（３１０）の前記ワークコレクション（３３０）に追加された前記付加的なポジショニンググループ（２２０）と前記付加的な設計要素（２６０，２７０）の拘束（３２０）により参照される他の参照ポジショニンググループ（２３０）と他の参照設計要素（２８０，２９０）を見つけるために、前記データベース（１５０）を付加的にサーチし、
前記付加的なサーチにより見つけられた前記他の参照ポジショニンググループ（２３０）と前記他の参照設計要素（２８０，２９０）とを、前記ポジショニングタスク（３１０）の前記コンテキストコレクション（３４０）に追加し、
前記ワークコレクション（３３０）に追加された前記付加的なポジショニンググループ（２２０）および前記付加的な設計要素（２６０，２７０）に対する拘束（３２０）をすべて、前記ポジショニングタスク（３１０）にロードする、
請求項１５記載の非一時的なコンピュータ読み取り可能媒体。
【請求項１７】
前記ポジショニンググループ（２１０）は、フォアグラウンド設計要素（３５０）とバックグラウンド設計要素（３６０）とを含む、
請求項１５記載の非一時的なコンピュータ読み取り可能媒体。
【請求項１８】
前記フォアグラウンド設計要素（３５０）と前記バックグラウンド設計要素（３６０）の指標は、ユーザには不可視である、
請求項１７記載の非一時的なコンピュータ読み取り可能媒体。
【請求項１９】
前記選択された設計要素（２５０）を編集するアクセス権がユーザにあるか否かを判定するため、前記選択された設計要素（２５０）を見つけるために前記データベース（１５０）をサーチする、
請求項１５記載の非一時的なコンピュータ読み取り可能媒体。
【請求項２０】
前記選択された設計要素（２５０）に対するアクセス権がユーザになければ、前記システムは、不適切なアクセスであることをユーザに通知し、当該方法を終了させる、
請求項１９記載の非一時的なコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
他の出願の参照
本出願は、同一出願人により同時に出願された米国特許出願第１４／２８９，３８０号（U.S. Patent Application 14/289,380）、発明の名称："Method for Creation and Editing of a Massive Constraint Network"（代理人整理番号2014P09179US）と、何らかの発明内容をいくらか共有するものであり、この文献をここで参照したことにより、その開示内容が本願に組み込まれたものとする。
【０００２】
技術分野
本発明は、全般的に言えば、コンピュータ支援設計（ＣＡＤ）、視覚化および製造システム、製品ライフサイクルマネージメント（"PLM"）システム、ならびに製品および他の項目のデータを管理する同等のシステム（これらを総称して「製品データ管理」システムまたはＰＤＭシステムとする）に関する。
【０００３】
発明の背景
ＰＤＭシステムは、ＰＬＭおよび他のデータを管理する。この場合、改善されたシステムが望まれている。
【０００４】
発明の概要
本発明による実施形態は、拘束ネットワークにおいて選択された設計要素のポジションを編集する方法を含む。本発明による方法は、幾何モデルにおいて選択された設計要素をユーザから受け取るステップと、選択された設計要素に関連するポジショニンググループを見つけるためにデータベースをサーチするステップと、選択された設計要素と選択された設計要素に関連するポジショニンググループとをワークコレクションに追加するステップとを含む。ついで本発明による方法は、ワークコレクション内のポジショニンググループと設計要素の拘束によって参照される参照ポジショニンググループと参照設計要素を見つけるために、データベースを２回目にサーチするステップと、２回目のサーチにより見つけられた参照ポジショニンググループと参照設計要素とを、コンテキストコレクションに追加するステップとを含む。本発明による方法はさらに、ワークコレクションに追加されたポジショニンググループおよび設計要素に対する拘束をすべてロードするステップを含む。
【０００５】
これまでの記載は、以下の詳細な説明を当業者がよりよく理解できるよう、本発明の特徴および技術的な利点をどちらかと言えば大雑把に略述したものである。各請求項の要旨を成す本発明のその他の特徴および利点については、以下で述べることにする。当業者であれば理解できるように、当業者は開示された着想や特定の実施形態を、本発明と同じ目的を成し遂げるための変更または異なる構造設計のベースとして、ただちに使用することができる。さらに当業者であれば、かかる等価の構造が最も広い形態で開示した本発明の着想および範囲を逸脱しないことを理解するであろう。
【０００６】
以下の発明の詳細な説明に入る前に、本明細書全体を通して用いられるいくつかの用語や表現について、ここで定義しておくのがよいと思われる。「を含む」および「を有する」なる表現ならびにそれらの派生語は、制限のない包含を表す。「または」なる表現は、「および／または」の意味も含む。「と関連する」および「それと関連する」ならびにそれらの派生語は、「含む」、「の中に含まれる」、「と相互接続する」、「を含有する」、「の中に含有される」、「に接続する」または「と接続する」、「に結合する」または「と結合する」、「と連携可能である」、「と共働する」、「をはさむ」、「に並置する」、「のすぐ近くにある」、「に結び付けられる」または「と結び付けられる」、「を有する」、「の所有物である」等を意味する場合もある。さらに「コントローラ」なる用語は、ハードウェアで実装されていようと、ファームウェア、ソフトウェア、またはそれらのうち少なくとも２つの組み合わせで実装されていようと、少なくとも１つのオペレーションを制御する何らかのデバイス、システムまたはそれらの一部分を表す。さらにここで留意しておきたいのは、いずれかの特定のコントローラと結び付けられた機能を、ローカルであろうとリモートであろうと、集中させてもよいし分散させてもよい、ということである。いくつかの用語および表現に対する定義は、本明細書全体にわたって規定されるものであり、当業者であれば理解できるように、かかる定義は、大部分の事例ではないにしても数多くの事例において、ここで定義した用語および表現の以前の使用にも将来の使用にも適用される。いくつかの用語は、幅広い種類の実施形態を含むことができるけれども、添付の特許請求の範囲では、それらの用語が特定の実施形態に明確に制限されてもよい。
【０００７】
本発明およびその利点について、いっそう完全に理解できるようにする目的で、添付の図面を参照しながら本発明について以下で説明する。なお、図中、対象が同じであれば同じ参照符号が付されている。
【図面の簡単な説明】
【０００８】
【図１】１つの実施形態を実現可能なデータ処理システムを示すブロック図
【図２】本発明による拘束ネットワークにおけるポジショニンググループを示す図
【図３】本発明によるナビゲータウィンドウ内に実装されたポジショニングタスクを示す図
【図４】本発明によるポジショニングタスク方法を用いた幾何モデルの編集について示す図
【０００９】
詳細な説明
本明細書では本発明の基本原理を説明するために、以下で説明する図１〜図３および種々の実施形態が用いられているが、これらは例示の目的で用いたにすぎず、いかなる点においても本発明の範囲の限定を意図したものではない。当業者であれば理解できるように、本発明の基本原理を、適切に構成された任意の装置において実現することができる。本発明の数多くの革新的な着想について、具体例として挙げた非限定的な実施形態を参照しながら説明する。
【００１０】
１つの製品において単一の拘束ネットワークには、数千もの部品が拘束されている可能性があり、これによりモデルをロードするための所要記憶容量が増大し、適切なハードウェアが制限される。生産性および効率性を高めるため、本発明の実施形態によれば、ユーザとの対話を行うことなく自動的に、拘束ネットワークをいっそう小さい部分に分解する。いっそう小さい部分にすることで、ユーザは自身が目下編集する１つまたは複数の設計要素をダウンロードするだけでよくなり、それによって所要記憶容量が小さくなる。さらにユーザは、特定の設計要素に必要とされるポジショニングタスクをダウンロードするだけであることから、互いに排除し合ったり、または互いの作業を上書きし合ったりすることなく、単一のアセンブリまたはサブアセンブリを複数のユーザが編集できるようにもなる。
【００１１】
図１には、１つの実施形態を実現可能なデータ処理システムのブロック図が示されている。これはたとえば、特に本明細書で述べるプロセスを実行するためのソフトウェアまたは他の手段によって構築されたＰＤＭシステムとして実現可能であり、特に、本明細書で説明するように、相互接続され通信を行う複数のシステムのうちの１つとして実現可能である。図示されているデータ処理システムには、レベル２キャッシュ／ブリッジ１０４と接続されたプロセッサ１０２が含まれており、キャッシュ／ブリッジ１０４自体はローカルシステムバス１０６と接続されている。たとえばローカルシステムバス１０６を、ＰＣＩ（peripheral component interconnect）アーキテクチャのバスとすることができる。図示の実施例ではローカルシステムバスにさらに、メインメモリ１０８とグラフィックアダプタ１１０も接続されている。グラフィックアダプタ１１０を、ディスプレイ１１１と接続することができる。
【００１２】
ローカルエリアネットワーク（ＬＡＮ）／ワイドエリアネットワーク／ワイヤレス（たとえばWiFi）アダプタ１１２などといった他の周辺機器を、ローカルシステムバス１０６と接続することもできる。拡張バスインタフェース１１４によって、ローカルシステムバス１０６が入出力（Ｉ／Ｏ）バス１１６と接続されている。Ｉ／Ｏバス１１６は、キーボード／マウスアダプタ１１８、ディスクコントローラ１２０、およびＩ／Ｏアダプタ１２２と接続されている。ディスクコントローラ１２０を記憶装置１２６と接続することができ、この記憶装置１２６を、機械で使用可能または機械で読み取り可能な任意の適切な記憶媒体とすることができ、このような記憶媒体には、以下に限定されるわけではないが、リードオンリーメモリ（ＲＯＭ）など不揮発性で変更不可能な媒体、または消去可能であり電気的にプログラミング可能なリードオンリーメモリ（ＥＥＰＲＯＭ）、磁気テープ媒体、ユーザが記録可能なタイプの媒体たとえばフロッピーディスク、ハードディスクドライブ、およびコンパクトディスク型リードオンリーメモリ（ＣＤ−ＲＯＭ）、またはディジタル多用途ディスク（ＤＶＤ）、さらに他の周知の光学的、電気的または磁気的な記憶デバイスが含まれる。記憶装置１２６は、データベース１５０と幾何モデル１５２などを記憶しており、これらについてはあとで説明する。
【００１３】
図示されているこの実施例では、Ｉ／Ｏバス１１６にオーディオアダプタ１２４も接続されており、サウンド再生のためにこのアダプタにスピーカ（図示せず）を接続することができる。キーボード／マウスアダプタ１１８によって、マウス、トラックボール、トラックポインタ、タッチスクリーンなどポインティングデバイス（図示せず）のための接続が提供される。
【００１４】
当業者であれば理解できるように、図１に描かれているハードウェアを個々の実現形態に合わせて変更できる。たとえば、図示されているハードウェアに加えて、またはその代替として、光ディスクドライブなどのような他の周辺機器を使用してもよい。図示されている実施例は、例示目的で示されているにすぎず、本発明に関して構造上の制限を意図したものではない。
【００１５】
本発明の１つの実施形態によるデータ処理システムには、グラフィックユーザインタフェースを用いるオペレーティングシステムが含まれている。このオペレーティングシステムによれば、同時に複数のディスプレイウィンドウをグラフィックユーザインタフェースとして表示させることができ、各ディスプレイウィンドウによって、それぞれ異なるアプリケーションに対するインタフェースが提供され、または同じアプリケーションの異なるインスタンスに対するインタフェースが提供される。ユーザはポインティングデバイスによって、グラフィックユーザインタフェースのカーソルを操作することができる。その際、カーソルのポジションを変更することができ、および／または、望ましいレスポンスを生じさせるために、マウスボタンのクリックなどのイベントを発生させることができる。
【００１６】
適切に変更を加えれば、様々な市販のオペレーティングシステムのうちの１つを採用することができ、たとえば, Washington州RedmondのMicrosoft社の製品であるMicrosoft Windows（登録商標）の１つのバージョンを採用することができる。オペレーティングシステムは、ここで説明するように本発明に従って変更または作成される。オペレーティングシステムは、ここで説明する本発明に従って変更または作成される。
【００１７】
ＬＡＮ／ＷＡＮ／ワイヤレスアダプタ１１２を（データ処理システム１００の一部ではない）ネットワーク１３０に接続することができ、このネットワークを、当業者に周知のように、公用または専用のデータ処理システムネットワークあるいは複数のネットワークの組み合わせとすることができ、これにはインターネットが含まれる。データ処理システム１００は、ネットワーク１３０を介してサーバシステム１４０と通信することができ、このサーバシステムもデータ処理システム１００の一部ではないが、たとえば別個の異なるデータ処理システム１００として実装してもよい。
【００１８】
本発明による実施形態によれば、ＰＤＭシステムにおける各設計要素間の拘束を管理するシステムおよび方法が提供される。
【００１９】
図２には、本発明の実施形態による拘束ネットワークにおけるポジショニンググループ２００が示されている。ポジショニンググループ２１０は、幾何拘束コレクションとしても知られているが、このようなポジショニンググループ２１０は、フォアグラウンド設計要素としても知られる設計要素（２４０，２５０）のグループと、ポジショニンググループ２１０における各設計要素（２４０，２５０）のポジションを定義するポジショニング拘束セットとによって構成されている。さらにポジショニンググループ２１０には、バックグラウンド設計要素としても知られる設計要素（２６０，２７０）、またはポジショニンググループ２２０への参照も含まれている。バックグラウンド設計要素またはポジショニンググループ２２０は、ポジショニンググループ２１０の外部にあるが、ポジショニンググループ２１０内部に含まれているポジショニング拘束セットのために必要とされる。いくつかの実施形態によれば、設計要素のポジショニングのために、付加的な設計要素（２８０，２９０）または付加的なポジショニンググループ２３０が必要とされる。
【００２０】
１つの実施形態によれば、１つの設計要素または１つの拘束が、ただ１つのポジショニンググループ２１０のフォアグラウンドにある。別の実施形態によれば、複数の設計要素および複数のポジショニング拘束が、複数のポジショニンググループ２１０に含まれるようにしてもよい。いくつかの実施形態によれば、一部の設計要素はどのようなポジショニンググループ２１０にも含めることができない。
【００２１】
図３には、ここで開示した技術を用いてデータ処理システム１００により生成可能なナビゲータウィンドウ３００内に実装されたポジショニングタスク３１０が示されている。ポジショニングタスク３１０は、タスク実行のためにユーザが必要とするデータを組織構造化して保護する。ポジショニングタスク３１０は、作業の実行に必要とされるオブジェクトを、ＣＡＤセッションにおいてロードされる可能性のある他のオブジェクトから分離する。ポジショニングタスク３１０は、設計要素のポジションおよびポジショニンググループ２１０を定義するために用いられる。設計要素を、部品、サブアセンブリ、アセンブリおよびスケッチを含む任意のタイプのオブジェクトとすることができる。
【００２２】
アセンブリの制約を生成するときに、いくつかの設計要素の移動は許可されている一方、他の設計要素については参照は可能であるが、変更はできない。ポジショニングタスク３１０は、ロードされた複数の可視のオブジェクトから成る１つの大きいコレクションを、それよりも小さい複数のコレクションに分割し、それらのコレクションは、ワークコレクション３３０とコンテキストコレクション３４０とになるように構成されている。ワークコレクション３３０に追加されたオブジェクトについては、タスク中の変更が許可されているのに対し、コンテキストコレクション３４０に追加されたオブジェクトは変更不可能であり、タスク中はワークコレクション３３０によって参照されるだけである。コンテキストコレクション内に存在するオブジェクトをユーザが変更したい場合には、最初にそのオブジェクトをワークコレクションに移動または追加する必要がある。あるオブジェクトをワークコレクションに移動するプロセスは、システムが自動的に実行可能であり、またはユーザによって手動で実行することができる。残りのオブジェクトがロードされて環境の一部分として表示されるけれども、タスク中、それらは編集または参照されない。
【００２３】
タスク定義により、ポジショニングタスク３１０のワークコレクション内およびコンテキストコレクション内に、いずれのポジショニンググループ２１０または設計要素があるのかが定義される。タスク定義を記憶しておき、レビューまたはチェックのためにあとで再利用することができる。タスクを他のユーザと共有することもできる。あるユーザは、他のユーザのタスクを定義することができる。
【００２４】
ワークコレクション３３０とコンテキストコレクション３４０とを、ユーザによって定義および変更することができる。ナビゲータウィンドウ３００は、ワークコレクション３３０とコンテキストコレクション３４０とを表示するために用いられる。
【００２５】
これらのコレクションは、ユーザが手動で、またはシステムが自動的に定義可能である。設計要素の所有権、設計要素に対するアクセス権、設計要素の属性、各設計要素間のアクション、各設計要素間の関係、ユーザ固有のアクション、または他の適切な設計要素追加方法に基づき、設計要素をワークコレクション３３０またはコンテキストコレクション３４０に追加することができる。
【００２６】
オブジェクトがコレクションに追加または移動されたならば、予め定義されたルールまたはアクションを実行することができる。それらのルールによって、ユーザに情報を提供することができる。選択された設計要素２５０がワークコレクション３３０に追加されたことに応じて実行可能なアクションを挙げるとすれば、選択された設計要素２５０を拘束する参照設計要素（２４０，２６０，２７０）をロードすること、およびそれらの参照設計要素（２４０，２６０，２７０）をコンテキストコレクション３４０に追加することである。
【００２７】
いくつかの実施形態によれば、ユーザが作業する設計要素にアクセス権をもたせることができる。この場合、すべてのユーザに対し、すべての設計要素の変更が許可されるのではない。ポジショニングタスク３１０によって、ある課題の解決中にいずれの設計要素の変更が許可されるのか、および変更が見込まれるのかを、ユーザが事前に指定することができる。所定の機能における選択を制限するために、コレクションが使用される。これによって、ユーザがあとで記憶させることが不可能になるソリューションを、ユーザが見い出してしまうことが回避される。また、環境またはコンテキストコレクション３４０内の設計要素が、偶然に変更されてしまう可能性もない。
【００２８】
いくつかの実施形態によれば、多くの場合、ユーザが作業する複数の設計要素が相互に関連づけられている。ポジショニングタスク３１０を、関連する設計要素３６０をコンテキストコレクション３４０に追加するために用いることができ、このようにすることによって、作業設計要素と他の設計要素との関係が確実に維持されるようになる。ポジショニングタスク３１０には、ワークコレクション３３０に追加された設計要素に関連する設計要素をデータベース１５０内で同定するメカニズムが含まれている。関連する設計要素は、データベース１５０において自動的にサーチされて探し出される。設計要素３６０は、それらが必要とされるときに、ポジショニングタスク３１０におけるコンテキストコレクション３４０に追加される。
【００２９】
ポジショニングタスク３１０は、サブポジショニングタスクを含むことができる。サブポジショニングタスクには、１つのワークコレクションだけしか含まれていない。サブポジショニングのためのコンテキストコレクションは、より高いタスクレベルのワークコレクション３３０およびコンテキストコレクション３４０である。
【００３０】
アプリケーション内に存在するファンクションを、タスクアウェアで形成することができる。「タスクアウェア」"task-aware"の意味として挙げることができるのは、コレクションメンバシップに基づき選択をフィルタリングすることができる、ということである。さらに「タスクアウェア」は、新たに生成されたオブジェクトがワークコレクション３３０に追加されること、またはファンクション実行時、関連する付加的なデータがロードされる、ということを意味する場合もある。このようなタスクアウェアのファンクションを挙げるとすれば、アセンブリの拘束３２０、コンポーネントの移動、または新たな設計要素の生成、である。
【００３１】
ポジショニングタスク３１０は、手動と自動の双方のワークフローで実装される。手動のワークフローの場合、コレクションはスタティックであり、ユーザによって明示的に定義される。自動のワークフローの場合、設計要素が幾何要素を変更することになるという理由で、いくつかのタスクアウェアファンクションが、それらの設計要素を１つのコレクションのメンバにすることができ、これによってユーザは、事前にグループを定義しておかなくてもよくなる。ポジショニングタスク３１０が自動的に定義される場合には、アクセス権に対するチェックおよび関連する設計要素のロードが、さらに行われることになる。
【００３２】
図４には、本発明の実施形態によるポジショニングタスク方法４００を用いた幾何モデル１５２の編集について示されており、この方法はたとえば、１つまたは複数の既述のデータ処理システムによって実行することができる。
【００３３】
ステップ４１０において、システムは１つのモデルをロードし、設計要素のポジションを変更する目的で、１つの設計要素の選択をユーザから受け取る。ついでシステムは、幾何モデル１５２における設計要素２５０の選択をユーザから受け取る。
【００３４】
いくつかの実施形態によればシステムは、選択された設計要素２５０に対するアクセス権をチェックする。選択された設計要素２５０に対するアクセス権がユーザになければ、システムはポジショニングタスク方法を停止して、アクセス権が不十分なことをユーザに通知し、幾何モデル１５２において選択された設計要素２５０をロードしない。他の実施形態によれば、システムはユーザに対し、編集したい別の設計要素の選択を許可する。
【００３５】
ステップ４２０においてシステムは、選択された設計要素２５０に関連するポジショニンググループ２１０を見つけるために、データベース１５０をサーチする。ポジショニンググループ２１０が探し出された時点で、システムはポジショニンググループ２１０をロードし、データをセッションに加える。ポジショニンググループ２１０を、拘束、設計要素、または他の任意のポジショニングデータから成るようにすることができる。１つのポジショニンググループ２１０は、フォアグラウンドメンバとバックグラウンドメンバとから成る。フォアグラウンドメンバは、ポジショニングデータに含まれるアクティブな設計要素であり、バックグラウンドメンバは、フォアグラウンドメンバの拘束によって参照される設計要素である。フォアグラウンドメンバとバックグラウンドメンバの設計要素の指標は、ユーザには不可視とされる。
【００３６】
いくつかの実施形態によればシステムは、選択された設計要素のポジショニンググループ２１０に対するアクセス権がユーザにあるかをチェックする。ユーザにアクセス権があれば、システムはポジショニンググループ２１０をシステムにロードする。ポジショニンググループ２１０に対するアクセス権がユーザになければ、システムはポジショニンググループ２１０をロードしないようにする。さらにシステムは、ユーザにはポジショニンググループ２１０に対する適正なユーザアクセス権がない、ということを表示してもよい。
【００３７】
ステップ４３０においてシステムは、選択された設計要素２５０と、選択された設計要素２５０に関連するポジショニンググループ２１０とを、ワークコレクション３３０に追加する。
【００３８】
ステップ４４０においてシステムは、ワークコレクション３３０における選択された設計要素２５０のポジショニンググループ２１０の拘束によって参照される参照ポジショニンググループ２１０および参照設計要素（２６０，２７０）を見つけるために、データベース１５０の２回目のサーチを実行する。サーチの結果、さらに多くの拘束、設計要素およびポジショニンググループが、セッションに加わる可能性がある。選択された設計要素２５０を参照する何らかのポジショニンググループ２２０が、セッションに追加される。
【００３９】
ステップ４５０においてシステムは、２回目のサーチにより見つけられた参照ポジショニンググループ２２０と参照設計要素（２６０，２７０）をすべて、コンテキストコレクション３４０に追加する。コンテキストコレクション３４０には、変更すべく選択された設計要素２５０に必要とされる設計要素がすべて含まれている。コンテキストコレクション３４０内の設計要素３６０は、変更不可能である。コンテキストコレクション３４０内の設計要素３６０は変更不可能であることから、システムはユーザのアクセス権をチェックする必要がない。ただしいくつかの実施形態によれば、コンテキストコレクション３４０内の設計要素３６０も、ユーザアクセス権についてチェックされる。
【００４０】
タスクに必要とされる要素がすべて、コンテキストコレクション３４０に確実に追加されるように、ユーザ定義グループを定義することができる。ユーザ定義グループを使用して、サブアセンブリまたは他の何らかの機能グループの設計要素をグループ分けすることができる。
【００４１】
ステップ４６０においてシステムは、ワークコレクションに追加されたポジショニンググループ２１０および設計要素３５０に対する拘束を、セッションにロードする。拘束を、２つの設計要素間の何らかの機能的関係とすることができ、そのような機能的関係には、幾何要素の合致、幾何要素の整列、平行な幾何要素、垂直な幾何要素、幾何要素の一致、同心円の幾何要素、幾何要素の正接、各幾何要素間の距離、各幾何要素間の角度、または他の任意のポジショニング拘束が含まれる。
【００４２】
ユーザが、選択された設計要素２５０の移動を望み、参照設計要素（２６０，２７０）のために再ポジショニングが必要であることが判明したならば、必要とされるポジショニング拘束のために、ユーザはポジショニンググループ２２０または設計要素（２６０，２７０）をワークコレクション３３０に移動することができる。
【００４３】
さらに多くのポジショニンググループ２２０または設計要素（２６０，２７０）がワークコレクション３３０に追加された時点で、システムは、ワークコレクション３３０に追加された付加的なポジショニンググループ２２０と付加的な設計要素（２６０，２７０）の拘束により参照されるさらに別の参照グループ２３０と参照設計要素（２８０，２９０）を見つけるために、データベース１５０の付加的なサーチを実行する。ついでシステムは、付加的なサーチにより見つけられたさらに別の参照ポジショニンググループ２３０と、さらに別の参照設計要素（２８０，２９０）とを、コンテキストコレクション３４０に追加する。その後、システムは、ワークコレクションに追加された付加的なポジショニンググループ２２０と付加的な設計要素に対する拘束をすべてロードする。設計要素またはポジショニンググループがワークコレクション３３０に追加または移動されるたびに、新たなサーチが実行される。
【００４４】
いくつかの実施形態によれば、ワークコレクション３３０に追加すべきポジショニンググループ２２０および設計要素（２６０，２７０）が、ユーザアクセス権についてチェックされる。システムは、ユーザにアクセス権がない設計要素（２６０，２７０）またはポジショニンググループ２２０を追加しないようにし、設計要素（２６０，２７０）またはポジショニンググループ２２０に対するアクセス権がないことをユーザに通知する。
【００４５】
当業者に自明のとおり、オペレーションシーケンスにより特に指示または要求がなされないかぎり、上述のプロセスにおけるいくつかのステップを省略してもよいし、同時に実施しても逐次実施してもよく、あるいは異なる順序で実施してもよい。
【００４６】
さらに当業者に理解できるとおり、簡単かつ明瞭にするため、本発明による使用に適したあらゆるデータ処理システムの構造およびオペレーションを、本明細書においてすべて描いたまたは説明したわけではない。そうではなく、データ処理システムのうち、本発明に特有のところだけを、または本発明の理解に必要なところだけを描いて説明したにすぎない。データ処理システム１００の構造およびオペレーションのその他の部分は、この分野で周知の現在行われている様々な実装形態および実施手法の任意のものに適合させることができる。
【００４７】
ここで特に述べておきたいのは、本発明には、完全に機能的なシステムに関連した説明が含まれているけれども、当業者に自明であるとおり、本発明におけるメカニズムは少なくとも部分的には、機械で使用可能な媒体、コンピュータで使用可能な媒体、またはコンピュータで読み取り可能な媒体に記憶された命令として、任意の種類の形態で配布可能なものであること、さらに本発明は、特定のタイプの命令、信号担体または記憶媒体が使用されようとも、そのような配布物を実際に実行するために等しく適用されることである。機械で使用可能／読み取り可能な媒体、またはコンピュータで使用可能／読み取り可能な媒体の例として、以下のものが含まれる：リードオンリーメモリ（ＲＯＭ）など不揮発性で変更不可能にコーディングされたタイプの媒体、または消去可能であり電気的にプログラミング可能なリードオンリーメモリ（ＥＥＰＲＯＭ）、ならびにユーザが記録可能なタイプの媒体たとえばフロッピーディスク、ハードディスクドライブ、およびコンパクトディスク型リードオンリーメモリ（ＣＤ−ＲＯＭ）、またはディジタル多用途ディスク（ＤＶＤ）。
【００４８】
これまで本発明の実施例について詳しく説明してきたが、当業者であれば理解できるように、最も広い形態で開示した本発明の着想および範囲を逸脱することなく、様々な変更、置き換え、変形ならびに本明細書で開示した改善を行うことができる。
【００４９】
本願の記載内容のいずれも、何らかの特定の部材、ステップまたは機能が特許請求の範囲に含まれなければならない必須の要素である、という趣旨で読まれるべきではない。本発明の範囲は、特許付与された請求項によってのみ定められるものである。しかも、厳密な語「〜のための手段」の次に分詞が続かないのであれば、これらの請求項のいずれも、米国特許法第１１２条第６項が適用されることを意図したものではない。
【図１】
0006494665.tif 000002
【図２】
0006494665.tif 000003
【図３】
0006494665.tif 000004
【図４】
0006494665.tif 000005