(57)【要約】      （修正有）【課題】機械部品を表す３Ｄモデル化オブジェクトを設計するための、コンピュータによって実施される方法を提供する。【解決手段】Ｂ−Ｒｅｐの面のグループを選択することと、前記面のグループの各面について、軌道を定義することと、前記面のグループの各面について、前記軌道に関して各面によって掃引したボリュームに対応する掃引ボリュームを算出することと、前記３Ｄモデル化オブジェクトの内部に関して前記各面における掃引ボリュームの位置に応じて各掃引ボリュームに対してマテリアル除去ラベルまたはマテリアル追加ラベルを割り当てることと、マテリアル除去ボリューム、次いでマテリアル追加ボリュームを用いて、Ｂ−Ｒｅｐを更新することとを含む。【選択図】図４
2017174409.tif 000002
【特許請求の範囲】
【請求項１】
機械部品を表す３Ｄモデル化オブジェクトを設計するための、コンピュータによって実施される方法であって、前記３Ｄモデル化オブジェクトはＢ−Ｒｅｐ（Ｓ）で定義され、前記方法は、
前記Ｂ−Ｒｅｐの面のグループ（ｆ1，ｆ2，ｆ3，ｆ4）を選択することと、
前記面のグループの各面（ｆi）について、軌道
【数２３】
2017174409.tif 000027
を定義することと、
前記面のグループの各面について、前記軌道に関して各面（ｆi）によって掃引したボリューム
【数２４】
2017174409.tif 000028
に対応する掃引ボリューム（Ａ1，Ｒ2，Ｒ3，Ａ4）を算出することと、
前記３Ｄモデル化オブジェクトの内部に関して前記各面における掃引ボリュームの位置
【数２５】
2017174409.tif 000029
に応じて、各掃引ボリュームに対してマテリアル除去ラベル（Ｒ）またはマテリアル追加ラベル（Ａ）を割り当てることと、
マテリアル除去ボリューム、次いでマテリアル追加ボリュームを用いて、Ｂ−Ｒｅｐ（Ｓ’＝（Ｓ−Ｍ-）∪Ｍ+）を更新することとを含み、
前記マテリアル追加ボリューム（Ｍ+）は、前記マテリアル追加ラベルを有する全ての掃引ボリュームの和集合（（Ａ1−Ｒ3）∪（Ａ4−Ｒ2））に対応し、マテリアル追加ラベルを有する各掃引ボリュームは、マテリアル除去ラベルを有する全ての掃引ボリューム（Ｒ3，Ｒ2）と、マテリアル追加ラベルを有する各掃引ボリュームと衝突する終了面
【数２６】
2017174409.tif 000030
とを差し引いた和集合に含まれ、
前記マテリアル除去ボリューム（Ｍ-）は、前記マテリアル除去ラベルを有する全ての掃引ボリュームの和集合（（Ｒ2−Ａ4）∪（Ｒ3−Ａ1））に対応し、マテリアル削除ラベルを有する各掃引ボリュームは、マテリアル追加ラベルを有する全ての掃引ボリューム（Ａ1，Ａ4）と、マテリアル削除ラベルを有する各掃引ボリュームと衝突する開始面
【数２７】
2017174409.tif 000031
とを差し引いた和集合に含まれることを特徴とする方法。
【請求項２】
請求項１の方法であって、前記機械部品が、軸を有する軸状機械部品であり、前記面のグループが、前記軸状機械部品の少なくとも１つの機能的特徴を定義する面を含むことを特徴とする方法。
【請求項３】
請求項２の方法であって、前記軌道が、前記機能的特徴を、前記機械部品の前記軸に沿って、および／または前記軸の周りに、スライド編集することによって定義されることを特徴とする方法。
【請求項４】
請求項３の方法であって、前記軌道が、少なくとも１つの、スライド操作によるグラフィカルなユーザ対話によってユーザによって定義されることを特徴とする方法。
【請求項５】
請求項３または４の方法であって、前記スライド編集中に、前記機能的特徴が、少なくとも１つの他の機能的特徴と交差することを特徴とする方法。
【請求項６】
機械部品を製造するための方法であって、前記方法は、
請求項１〜５のいずれかの方法に従って前記機械部品を表す３Ｄモデル化オブジェクトを設計することと、
前記３Ｄモデル化オブジェクトにジオメトリ的に対応する機械部品を生産することとを含むことを特徴とする方法。
【請求項７】
請求項６の方法によって製造される機械部品。
【請求項８】
請求項１〜５のいずれかに記載の方法を実行するための命令を含むコンピュータプログラム。
【請求項９】
請求項８に記載のコンピュータプログラムを記録したコンピュータ読み取り可能記憶媒体。
【請求項１０】
請求項８に記載のコンピュータプログラムを記録したメモリに接続されたプロセッサと、グラフィカル・ユーザ・インターフェースとを備えるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータプログラムおよびシステムの分野に関連し、より詳細には、機械部品を表す３Ｄモデル化オブジェクトを設計するための方法、システム、およびプログラムに関連する。
【背景技術】
【０００２】
オブジェクトの設計、エンジニアリング、製造のため、多数のシステムおよびプログラムが市場に提供されている。ＣＡＤは、コンピュータ支援設計（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｄｅｓｉｇｎ）の略語であり、例えば、オブジェクトを設計するためのソフトウェア・ソリューションに関する。ＣＡＥは、コンピュータ支援エンジニアリング（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｅｎｇｉｎｅｅｒｉｎｇ）の略語であり、例えば、将来の製品の物理的挙動をシミュレーションするためのソフトウェア・ソリューションに関する。ＣＡＭは、コンピュータ支援製造（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｍａｎｕｆａｃｔｕｒｉｎｇ）の略語であり、例えば、製造工程および動作を定義するためのソフトウェア・ソリューションに関する。このようなコンピュータ支援設計システムにおいて、グラフィカル・ユーザ・インターフェースは、技術の効率に関して、重要な役割を果たす。これらの技術は、製品ライフサイクル管理（Ｐｒｏｄｕｃｔ  Ｌｉｆｅｃｙｃｌｅ  Ｍａｎａｇｅｍｅｎｔ：  ＰＬＭ）システムに組み込むことができる。ＰＬＭとは、企業が、拡張エンタープライズの概念全体にわたって、製品データを共有し、共通の工程を適用し、構想に始まり製品寿命の終わりに至る製品開発のための企業知識を活用するのを支援するビジネス戦略を指す。ダッソー・システムズが提供するＰＬＭソリューション（製品名ＣＡＴＩＡ、ＥＮＯＶＩＡ、ＤＥＬＭＩＡ）は、製品エンジニアリング知識をオーガナイズするエンジニアリング・ハブ、製品エンジニアリング知識を管理する製造ハブ、およびエンジニアリング・ハブと製造ハブの両方に対するエンタープライズ統合と接続を可能にするエンタープライズ・ハブを提供する。全てのシステムは、製品、工程、リソースを結ぶオープンなオブジェクトモデルを提供し、最適化された製品定義、製造準備、生産およびサービスを推進する、動的な知識ベースの製品作成および意思決定支援を可能にする。
【０００３】
既存の技術は、Ｂ−ＲｅｐモデリングＣＡＤシステム（ヒストリーベースのＣＡＤシステムと対照をなす）を用いて立体モデリングを可能にする。したがって、たいていの商業的ＣＡＤシステムは、何らかのＢ−Ｒｅｐモデリング機能を有する。代表的な例としては、ダッソー・システムズのＣＡＴＩＡ  Ｎａｔｕｒａｌ  Ｓｈａｐｅ、シーメンスのＳｏｌｉｄ  Ｅｄｇｅ  Ｓｙｎｃｈｒｏｎｏｕｓ  Ｔｅｃｈｎｏｌｏｇｙ、パラメトリック・テクノロジー・コーポレーションのＰＴＣ  Ｃｒｅｏ（すべて登録商標）などがある。このようなシステムにおいて、またこのようなモデリング機能において、入力するオブジェクトは立体の境界表現である。関連付けられたヒストリーは存在しない（あるいは簡単には用いることができない）。したがって、典型的なＢ−Ｒｅｐモデリングの操作は、ユーザが面を選択し、それを、マウスカーソルを用いて動かすことである。動かし終わったら、ユーザはマウスボタンを離し、システムは、その面の新たな位置に従って立体の形状を更新する。この更新は、隣接する面を外挿し、トリミングして、結果が、閉じた、方向づけられた面になるように実行される。立体の面を、その外側法線ベクトルの方向に移動させると、図１に示すように、立体にマテリアルが追加される。面を反対方向に移動させると、図２に示すように、立体からマテリアルが取り除かれる。
【０００４】
ユーザが、単一の面を選択して、それを短い距離だけ移動させたい場合には、更新の実行、およびユーザとマシンの対話において、特に困難はない。しかし、ユーザが、複数の面および／または比較的長い距離を含む複雑な設計を実行したいときには、問題が生じる。これは、Ｂ−Ｒｅｐモデリングのよく知られた動作、すなわち、消しゴムの副作用（ｅｒａｓｅｒ  ｓｉｄｅ  ｅｆｆｅｃｔ）によるものである。面を引っ張ることによって削除された立体の詳細は、図３に示すように、逆に押す操作を実行しても復元されない。図３に示す例では、第１のステップにおいて、ユーザは、厚い壁が円筒形のスロットに重なるように垂直面を引っ張る。そして、第２のステップにおいて、ユーザは垂直面を最初の位置に押し戻す。見て分かるように、円筒形のスロットは、間違いなく失われる。この動作は、ユーザが、細部には関係のない複雑な設計操作、例えば調整設計操作などを実行したい場合に、問題となる。そのような操作のためには、Ｉａｎ  ＳｔｒｏｕｄとＨｉｌｄｅｇａｒｄｅ  Ｎａｇｙの著書Ｓｏｌｉｄ  Ｍｏｄｅｌｉｎｇ  ａｎｄ  ＣＡＤ  Ｓｙｓｔｅｍｓ（Ｓｐｒｉｎｇｅｒ  ２０１１）で説明されているように、既存のシステムでは、工業デザイナーが使用する前に、多くの面倒なテストと実験を必要とする。実際、第１の欠点は、ユーザは一度に１つの面を選択することによって修正を行う必要があり、これには長い設計時間が必要とされるということである。さらに、消しゴムの副作用のために、ユーザは、意図せずに立体の重要な細部を削除してしまうことがある。そのような細部は、もう一度設計しなければならず、これは時間の無駄である。
【０００５】
このような文脈において、ＣＡＤシステムのＢ―Ｒｅｐモデリング機能のエルゴノミクスを改善する必要がある。
【発明の概要】
【０００６】
したがって、機械部品を表す３Ｄモデル化オブジェクトを設計するための、コンピュータによって実施される方法が提供される。３Ｄモデル化オブジェクトは、Ｂ−Ｒｅｐによって定義される。本方法は、Ｂ−Ｒｅｐの面のグループを選択することと、前記面のグループの各面について、軌道を定義することと、前記面のグループの各面について、前記軌道に関して各面によって掃引したボリュームに対応する掃引ボリュームを算出することとを含む。本方法はまた、前記３Ｄモデル化オブジェクトの内部に関して前記各面における掃引ボリュームの位置に応じて各掃引ボリュームに対してマテリアル除去ラベルまたはマテリアル追加ラベルを割り当てることを含む。本方法はまた、マテリアル除去ボリューム、次いでマテリアル追加ボリュームを用いて、Ｂ−Ｒｅｐを更新することを含む。前記マテリアル追加ボリュームは、前記マテリアル追加ラベルを有する全ての掃引ボリュームの和集合に対応し、マテリアル追加ラベルを有する各掃引ボリュームは、マテリアル除去ラベルを有する全ての掃引ボリュームと、マテリアル追加ラベルを有する各掃引ボリュームと衝突する終了面とを差し引いた和集合に含まれる。前記マテリアル除去ボリュームは、前記マテリアル除去ラベルを有する全ての掃引ボリュームの和集合に対応し、マテリアル除去ラベルを有する各掃引ボリュームは、マテリアル追加ラベルを有する全ての掃引ボリュームと、マテリアル削除ラベルを有する各掃引ボリュームと衝突する開始面とを差し引いた和集合に含まれる。
【０００７】
本方法は、以下のうちの１つまたは複数を含んでいてもよい。
・前記機械部品が、軸を有する軸状機械部品であり、前記面のグループが、前記軸状機械部品の少なくとも１つの機能的特徴を定義する面を含む。
・前記軌道が、前記機能的特徴を前記機械部品の前記軸に沿って、および／または前記軸の周りに、スライド編集することによって定義される。
・前記軌道が、少なくとも１つの、スライド操作によるグラフィカルなユーザ対話によってユーザによって定義される。および／または、
・前記スライド編集中に、前記機能的特徴が、少なくとも１つの他の機能的特徴と交差することを特徴とする。
【０００８】
さらには、当該方法を実行するための命令を含むコンピュータプログラムが提供される。
【０００９】
さらには、当該コンピュータプログラムを記録したコンピュータ読み取り可能記憶媒体が提供される。
【００１０】
さらには、当該コンピュータプログラムを記録したメモリに接続されたプロセッサと、グラフィカル・ユーザ・インターフェースとを備えるシステムが提供される。
【００１１】
さらには、機械部品を製造するための方法が提供される。当該製造方法は、上記設計方法に従って前記機械部品を表す３Ｄモデル化オブジェクトを設計することを含む。当該製造方法は、次いで、前記３Ｄモデル化オブジェクトにジオメトリ的に対応する機械部品を生産することを含む。
【００１２】
さらには、そのような製造方法によって製造された機械部品が提供される。
【図面の簡単な説明】
【００１３】
【図１】先行技術のＢ−Ｒｅｐモデリング機能を示す。
【図２】先行技術のＢ−Ｒｅｐモデリング機能を示す。
【図３】先行技術のＢ−Ｒｅｐモデリング機能を示す。
【図４】本方法の一例のフローチャートを示す。
【図５】本システムのグラフィカル・ユーザ・インターフェースの一例を示す。
【図６】本システムの一例を示す。
【図７】図４の例に沿った、本方法の一例の主なステップを示す図である。
【図８】Ｂ−Ｒｅｐフォーマットを示す。
【図９】Ｂ−Ｒｅｐフォーマットを示す。
【図１０】Ｂ−Ｒｅｐフォーマットを示す。
【図１１】Ｂ−Ｒｅｐフォーマットを示す。
【図１２】Ｂ−Ｒｅｐフォーマットを示す。
【図１３】本方法によって効率的に設計することが可能な軸状の機械部品を示す。
【図１４】本方法によって効率的に設計することが可能な軸状の機械部品を示す。
【図１５】本方法によって効率的に設計することが可能な軸状の機械部品を示す。
【図１６】機能的特徴を軸状の機械部品の軸に沿って、および／または軸の周りにスライド編集することによって軌道が定義される、典型的な編集シナリオを示す。
【図１７】機能的特徴を軸状の機械部品の軸に沿って、および／または軸の周りにスライド編集することによって軌道が定義される、典型的な編集シナリオを示す。
【図１８】機能的特徴を軸状の機械部品の軸に沿って、および／または軸の周りにスライド編集することによって軌道が定義される、典型的な編集シナリオを示す。
【図１９】本方法を例示した図である。
【図２０】本方法を例示した図である。
【図２１】本方法を例示した図である。
【図２２】本方法を例示した図である。
【図２３】本方法を例示した図である。
【図２４】本方法を例示した図である。
【図２５】本方法を例示した図である。
【図２６】本方法を例示した図である。
【図２７】本方法を例示した図である。
【発明を実施するための形態】
【００１４】
以下、非限定的な例として、本発明の実施の形態を添付の図面を参照しつつ説明する。
【００１５】
図４のフローチャートを参照して、機械部品を表す３Ｄモデル化オブジェクトを設計するための、コンピュータによって実施される方法を提案する。ここで（少なくとも）Ｂ−Ｒｅｐによって、３Ｄモデル化オブジェクトが定義される（すなわち、機械部品を表すＢ−Ｒｅｐデータ構造が、処理される入力データ中に存在する）。この設計には、エルゴノミクス的なユーザとマシンの対話が含まれ、ユーザがＢ−Ｒｅｐに作用する。図４において、「ユーザ」と記された方法のステップは、ユーザとマシンの対話を介して実行される（少なくともユーザとマシンの対話を含む）が、「システム」と記されたステップは完全に自動的に実行されてもよい。他の例では、図４の「ユーザ」と記されたステップは、代わりに、ソルバーによって実行されてもよい（例えば、Ｂ−Ｒｅｐを自動的に更新するプロセスにおいて、本方法が、ソルバーを高速に、かつ不必要に細部を消去することなく、実行させることができる場合）。後で詳細に説明するように、図４の方法は、ユーザがＳ１０で複数の面を一度に選択し、（Ｓ２０で定義された軌道に応じて）比較的複雑な編集を実行することによってＢ−Ｒｅｐモデリングを実行するために、ユーザがＣＡＤシステムと対話することを可能にする。実行されるユーザとマシンの対話設計のタイプに関連するＳ１００で実行される演算のおかげで、本システムは、消しゴムの副作用による障害が比較的少なく（あるいは障害がなく）、設計の意図が尊重されることを保証する。これは特に機械設計の分野で重要である。
【００１６】
本方法は、３Ｄモデル化オブジェクトのグラフィカル表現をシステムによって（ユーザに）表示することを含んでいてもよい。Ｂ−Ｒｅｐの面がディスプレイ上で選択可能であってもよい。そのような例では、対話はグラフィカルであってもよく、ユーザは３Ｄモデル化オブジェクトのグラフィカル表現と直接対話してもよい。本方法の他の例には、システムが３Ｄモデル化オブジェクトのグラフィカル表現を表示せず、あるいはユーザがグラフィカル表現と対話せず、別の方法で、例えばダイアログボックスを介して、コマンドを入力することが含まれる。グラフィカルなユーザ対話は高度なエルゴノミクスを提供する。
【００１７】
ユーザは、システムの特定の機能、例えば「Ｂ−Ｒｅｐモデリング」機能を起動してもよい。次に、ユーザは、Ｂ−Ｒｅｐの（少なくとも２つの）面の（例えば、順序付けられていない）グループ（すなわち集合）を選択する（Ｓ１０）。そのような選択は、例えば、グループ内における選択されるべき面のそれぞれについて、順次、および／または同時に、対話操作を行うことによって実行してもよく、例えば、各面に対応するディスプレイ位置上で触覚装置を作動させること、例えば、マウスカーソルが面上に位置する状態でマウスボタンを押すこと、および／または、１つ以上の面に、１つずつ、および／または同時にタッチすることによって実行してもよい。ユーザはまた、グループの各面について、軌道を定義する（Ｓ２０）。そのような軌道は、面、およびシーン（すなわち、３Ｄモデル化オブジェクトが定義されている参照空間）内における面の位置の集合の表現に関連付けられた（すなわち、データ構造内でリンクされた）任意の情報である。このような位置の集合はＳ２０で定義することができ、面の現在の位置から始まる順序を有するが、そのような順序情報も自動的に決定することができ、したがって、必ずしもユーザによって定義される必要はない（例えば、軌道の先端は、それぞれの面の現在の位置であり、それによって開始位置を決定する）。軌道は離散的であっても連続的であってもよい。
【００１８】
これにより、軌道は、現在の位置から終了位置までの、それぞれの面の動きを表す。動きは、Ｓ１０で選択されたすべての面について同じであってもよいし、または動きが差異を含んでいてもよい。すべての動きが同じである場合、設計意図は、例えば、機能面の集合の剛体運動を含んでいてもよい。Ｓ２０で定義された軌道は、システムが演算を開始するために、制約を受けていてもよい。例えば、軌道が次の制約に従う必要がある場合がある。すなわち、軌道中において面がねじれないこと、および／または、軌道中において、面が、隣接する面上をスライドしなければならないことである（例えば、軸状の機械部品において、隣接する面とは、回転面、または軸に垂直な面である）。このような制約については、後で詳述する。システムは、Ｓ２０で定義された軌道がそのような制約のいずれかまたはその組合せに従っていない場合、方法の残りの実行を拒否してもよく、システムは軌道を自動的に修正してもよく（例えば、ユーザの要求に類似しているが制約に従っている軌道を定義する）、かつ／または、単に方法を実行し、場合により、比較的関連性の低い結果を導いてもよい（そして、例えば、ユーザに警告を表示する）。これは実施上の事項である。
【００１９】
各軌道は、マウスカーソルの移動または連続的なタッチの移動など、スライド動作によるグラフィカルなユーザ対話（例えば、システムの触覚デバイスによって定義された表示のグラフィカルな軌道の連続的な動き）を介して、ユーザが、Ｓ２０で定義することができる。並進運動および／または回転（またはそれらのシーケンス）をどのように定義するかは、ＧＵＩの分野で非常によく知られている。定義（Ｓ２０）は、（例えば、各面上での）ドラッグ・アンド・ドロップ操作における選択（Ｓ１０）と組み合わせてもよい。ドラッグ・アンド・ドロップ動作は、マウスボタンを押した後、ボタンを押したままマウスカーソルを移動させ、次にボタンを離すことを含んでいてもよい。かつ／あるいは、ドラッグ・アンド・ドロップ動作は、タッチスクリーンまたはパッド上のタッチプレス、タッチのスライド、および圧力の解放を含んでいてもよい。これらは、非常によく知られているユーザとマシンの対話操作である。
【００２０】
図４では、選択（Ｓ１０）と定義（Ｓ２０）が順に示されているが、これは必ずしも本方法によって実行される実際のシーケンスを表すものではない。実際、選択（Ｓ１０）および定義（Ｓ２０）は、交互に行われてもよい。本方法は、例えば、ユーザが、面を選択（Ｓ１０）し、次いで面の各軌道を定義（Ｓ２０）し（例えば、各面に合わせたドラッグ・アンド・ドロップ・アクションで結合される）、次いで所望の数の面に対してシーケンスを繰り返すことを含んでいてもよく、これにより選択された各面がそれぞれの軌道を有することになり、動きは、Ｓ２０の反復の異なる回で定義されるため、それぞれ異なる場合がある。あるいは、または追加的に、ユーザは、Ｓ１０において、いくつかの面を一度に（順番に、および／または、同時に）選択し、次いで、Ｓ２０において、現在選択されているすべての面に適用される単一の（共通の）動きを定義し、それにより、各軌道を決定してもよい。そのような単一の動きは、スライド操作を介して、またドラッグ・アンド・ドロップを介して（例えば、選択したもの全体について、例えば、最後に選択された面のドラッグ・アンド・ドロップを介して）、Ｓ２０で定義されてもよい。ユーザは、例えば、いくつかの面をクリックし、次いで、最後の面をドラッグ・アンド・ドロップすることにより、定義（Ｓ２０）を最後の選択（Ｓ１０）に繋げてもよい。システムは、これらのうちの任意の、または両方のタイプの対話を提供してもよく、したがって異なる面および／または面のグループについて、組み合わせてもよい。また、システムは、後の演算（Ｓ１００）を実行するか、またはＳ２０の終了を（任意の方法で）自動的に認識した後にそれらの演算を実行するための、特定のコマンドを必要としてもよい。
【００２１】
図１の方法における選択（Ｓ１０）および定義（Ｓ２０）は、従来技術の任意の方法（ユーザが一度に１つの面を引っ張ったり押したりすることによってＢ−Ｒｅｐを更新することができる方法）をそのまま適合させたものであってもよいが、図１の方法は、ユーザは、Ｓ１０においていくつかの面のグループを選択し、次いで、演算Ｓ１００を介してＢ−Ｒｅｐの更新が生じる前に、Ｓ２０においてそれぞれの面について任意の軌道を定義することを特徴とする。これについて説明する。以下で説明する演算（Ｓ１００）は、システムによって完全に自動的に行われてもよい。しかしながら、例えば演算を改良するため、および／またはユーザが希望を入力できるように、システムがユーザ対話を提供してもよい。図４の例の演算（Ｓ１００）は異なるループを含むが、これはアルゴリズム表現に過ぎず、実際にはループが並列化されてもよい。また、当該ループは実施における選択肢の１つであるが、本方法は、他の手段を実施して同じ代数的結果に到達してもよい。
【００２２】
図４の方法は、まず、Ｓ１０で選択した各面についてループを実行して、それぞれの掃引ボリューム（ｓｗｅｐｔ  ｖｏｌｕｍｅ）を算出する（Ｓ３０）。ここでも、算出（Ｓ３０）は、定義（Ｓ２０）に関して順次表されているが、必ずしもそうである必要はない。本方法は、実際には、演算（Ｓ３０）を開始する前に、すべての軌道の定義（Ｓ２０）が終了するのを待つか、またはＳ１０で選択された面に関して、その面の軌道がＳ２０で定義されるたびに演算（Ｓ３０）を開始し、あるいは、単一の面であっても、計算（Ｓ３０）は定義（Ｓ２０）と交互に行われてもよい（例えば、軌道が定義（Ｓ２０）されている間に演算（Ｓ３０）が継続的に実行される）。そのような掃引ボリュームは、当然、ループ対象の面についてＳ２０で定義された軌道に関して、それぞれの面が掃引したボリュームに対応する。演算（Ｓ３０）は、任意の古典的な方法で実行できる。そして、Ｓ３０で算出された掃引ボリュームは、例えばＢ−Ｒｅｐ（Ｂ−Ｒｅｐブール演算子のみを実装する更新（Ｓ５０）を可能にし、したがって高速化できる）など、任意の方法で表すことができる。
【００２３】
この第１のループでは、本方法はまた、それぞれの面（すなわち、ループ対象となっている面）における３Ｄモデル化オブジェクトの内部に対する掃引ボリュームの位置を、Ｓ３２で評価する（ここでも、演算Ｓ３０で、順次、または交互に行うことができる）。言い換えれば、本方法は、所与の掃引ボリュームについて、その所与の掃引ボリュームが、局所的に（すなわち、軌道に沿った運動の開始時に）立体内に入るか、または立体から出るかを、Ｓ３２で評価する。これは、任意の方法、例えば、軌道の開始時に面の方向を評価し、この方向が３Ｄモデル化オブジェクトの内部に向かうか、または外部に向かっているか（例えば、接線方向の場合は何らかの方法で、例えばシステムエラーによって処理される）を決定することにより、実行することができる。これが、このような方向を表すベクトルのスカラ積の符号を、その面におけるＢ−Ｒｅｐの外側法線を用いて評価することによって実行される例について、後述する。掃引ボリュームがＢ−Ｒｅｐの内部に向かって配置されている場合、システムは、マテリアル除去ラベル（すなわちタグまたはフラグ）を掃引ボリュームに割り当てる（Ｓ３４）。言い換えると、システムは、掃引ボリュームがマテリアル除去を意図しているという事実を示すデータを（任意の方法で、例えば、所定の専用データフィールド内のブール値を介して）作成し、このデータを、Ｓ３０で算出され掃引ボリュームを表すデータにリンクさせる。これにより、このようなデータは充実化する。他方の場合（Ｂ−Ｒｅｐの外側に向かって配置された掃引ボリューム）、システムは、マテリアル追加ラベルを掃引ボリュームに割り当てる（Ｓ３６）。このような処理Ｓ３２〜Ｓ３６は、任意の古典的な方法、例えば従来技術に従って実行することができる。
【００２４】
この時点で、システムはラベル付き掃引ボリューム（「マテリアル追加」または「マテリアル除去」）を処理している。本方法は、これらの掃引ボリュームを用いて（大まかには、マテリアル追加掃引ボリュームを追加し、マテリアル除去掃引ボリュームを除去することによって）Ｂ−Ｒｅｐを直接更新する代わりに、特定の精緻化された更新を実行する。すなわち、更新は、ユーザの意図が維持されるように（特に、消しゴムの副作用が望ましくない摂動をもたらさないように）、掃引ボリュームの精緻化されたバージョンを考慮する（図４の例ではＳ４６およびＳ４８）。さらに、そのような精緻化を実行するために、本方法は、実行が速いテスト（図４の例ではＳ４２およびＳ４４）を含んでいてもよい。なぜなら、ボリュームの、（別のボリュームとの衝突ではなく）面との衝突がテストされてもよいからである。実際、２つのボリューム間の衝突はテストするのに時間がかかる。本例においては、前の処理（Ｓ３２〜Ｓ３６）に引き続いて緻密化が提示されるが、ここでも、本方法は、必要な入力が利用可能になるとすぐに、演算を交互に実行してもよい。
【００２５】
本方法においては、Ｓ１０およびＳ２０で提供されたユーザ対話コマンドに従って、特定のマテリアル除去ボリューム（すなわち、例えば全体的または部分的に、Ｂ−Ｒｅｐから除去されるボリューム）を用いて、（図４の例ではＳ５０において）最初のＢ−Ｒｅｐを更新し、次いで、マテリアル追加ボリューム（すなわち、例えば全体的または部分的に、Ｂ−Ｒｅｐに追加されるボリューム）を更新する（すなわち、後続の第２の更新は、Ｂ−Ｒｅｐに適用され、すなわち数学的に言えば、マテリアル除去ボリュームに基づく第１の更新の結果に適用され、これは、事実上、Ｂ−Ｒｅｐからマテリアル除去ボリュームを順次除去し、次いでマテリアル追加ボリュームを追加するか、または同じ代数結果を導く任意の他の方法で実施することができる）。マテリアル除去ボリュームおよび／またはマテリアル追加ボリュームは、更新（Ｓ５０）がどのような方法でも実行され得るように、任意のフォーマットで（例えばＢ−Ｒｅｐのまま）提供されてもよい（例えば、Ｂ−Ｒｅｐブール演算子を介して、例えば、まず、所定のＢ−Ｒｅｐ減算演算子を１回適用して、Ｂ−Ｒｅｐからマテリアル除去ボリュームが減算され、例えば、次に、Ｂ−Ｒｅｐ加算／結合演算子を１回適用して、前回の演算結果にマテリアル追加ボリュームを加算する）。このような順序づけにより、ユーザの意図に従うことができる。
【００２６】
マテリアル追加ボリュームは、任意の方法で算出できる。いずれの場合も、マテリアル追加ボリュームは、マテリアル追加ラベルを有する（例えばすべての）掃引ボリュームの、精緻化された可能性のあるバージョンの和集合に（その値に関して）対応する（例えば値が一致する）（そして、マテリアル追加ボリューム要素と呼ばれる）。和集合に関与する、マテリアル追加ラベルを有するそれぞれの掃引ボリュームは、必ずしもそのように追加されるわけではない。実際、本方法は、（減算すべき掃引ボリュームの）端面が、追加されるべきボリュームと衝突する（例えば、ゼロでない交点、すなわち厳密に正の面積を有する前記面の部分を有する）という条件で、そのようなそれぞれの（和集合に追加されるべき）掃引ボリュームから、マテリアル除去ラベルを有するすべての掃引ボリュームを減算する（減算は、正しい代数的結果が導かれる限り、任意の方法で実行される）。そして、そのような減算のすべての結果が実際に足し合わされ、マテリアル追加ボリュームとなる（上記結果は、衝突面が見つからなかった場合には、最初の掃引ボリュームそのものとなる可能性があり、よって「減算」の語は代数的結果を指し、所与のボリュームそれ自体に対応するヌルボリュームを用いた、所与のボリュームの減算を指し、例えば、実際には具体的な減算処理は何も実施されない）。本方法は、マテリアル除去ボリュームを算出するために、対称的に動作してもよい（すなわち、マテリアル除去ラベルを有する全ての掃引ボリュームの和集合に対応するボリュームを決定することによって動作してもよく、マテリアル除去ラベルを有するそれぞれの掃引ボリュームは、マテリアル追加ラベルを有する全ての掃引ボリュームと、マテリアル除去ラベルを有する前記それぞれの掃引ボリュームと衝突する開始面とを差し引いた和集合に関与する）。このように、マテリアル追加ボリュームおよび／またはマテリアル除去ボリュームは、高速で算出することができる。実際、減算は、（すべての除去掃引ボリュームから、それぞれの追加掃引ボリュームがシステマティックに減算される、および／またはその逆とすると、組み合わせ的爆発につながるおそれがあるが、そうする代わりに）集中的に行われる。上記集中は、計算上容易な状態評価に由来してもよい。しかし、本方法がＢ−Ｒｅｐモデリングの文脈、特に機械設計の分野によく適合していることから、本方法によって操作される特定の集中は、良好な結果をもたらす（すなわち、掃引ボリュームの更新は、必要に応じて実行され、ユーザの意図が尊重され、意図しない部分には消しゴム効果が現れず、意図しないマテリアルが加えられることがない）。例えば、本方法は、Ｂ−Ｒｅｐの面が、それぞれ隣接するＢ−Ｒｅｐサーフェス上で（Ｓ１０〜Ｓ２０において）スライドされ、例えばＳ２０で、少なくとも１つのスライド操作によるグラフィカルなユーザ対話操作を介してユーザによって軌道が定義される場合に、特に良好に適用される。このようなユーザ対話操作は、実際にはマテリアルの伸張または収縮または変位に対応し、このような設計操作は、機械部品設計者にとって、例えば、効率的に機械部品特性を定義するのに、特に有用である。この方法は、このような特定の状況において、演算を最適化する。
【００２７】
図４の例では、Ｓ３０で算出された掃引ボリュームごとに実行される第２のループＳ４２〜４８を介して精緻化が実行され、この第２のループは２つの分岐（一方はＳ３４で生じる掃引ボリューム用、他方はＳ３６で生じる掃引ボリューム用）に分割されて表される。これは単に表現上の問題である。ここで、この第２のループの間において、Ｓ３０で算出された掃引ボリュームが、（それらが更新（Ｓ５０）のための和集合に関与する前に）精緻化される可能性がある。これは、Ｓ３０で算出された掃引ボリュームが、（テストＳ４２とＳ４４の結果に応じて）修正される可能性があることを意味し、例えば削減される可能性がある。このような削減は、意図された場所のマテリアルを除去しつつ、ユーザの意図により、消しゴムの副作用が適用されるべきでないＢ−Ｒｅｐの領域を十分に考慮したものである。
【００２８】
図４の例では、Ｓ３０で算出され、Ｓ３４またはＳ３６でラベル付けされた掃引ボリュームがｘで表されている。これらの掃引ボリュームｘは、第２のループＳ４２〜Ｓ４８によって出力され、場合により精緻化（それぞれテストＳ４２またはＳ４４に応じて減算Ｓ４６またはＳ４８）が行われた後、更新（Ｓ５０）に入力される。テストＳ４２とＳ４４、および実行される可能性のある減算Ｓ４６とＳ４８は、それぞれ入力された掃引ボリュームｘ（Ｓ３０で算出され、Ｓ３４またはＳ３６でラベル付けされる）に対して実行され出力されるが、演算は、出力されない他の入力掃引ボリューム（これもまたＳ３０で算出され、Ｓ３４またはＳ３６でラベル付けされる）を含む。本例では、これらの別の掃引ボリュームは、ｙで表される。実際には、第２のループは、掃引ボリュームｘに対するループを含み、掃引ボリュームｘに対するループの各反復内で、掃引ボリュームｙに対する別のループを含む。このダブルループの結果ｘは、更新（Ｓ５０）に入力される。理解されるように、Ｓ３０〜Ｓ３６によって出力された掃引ボリュームの値は、ループ中に、掃引ボリュームｙとして関与することができる。これは、中間変数の使用など、任意の方法で処理できる。さらに、掃引ボリュームを再分割して、どの掃引ボリュームがｘおよび／またはｙであり、どの掃引ボリュームがｙであるかの決定は、任意の方法で行うことができる。言い換えれば、二重ループの編成は任意の方法で行うことができる。
【００２９】
一例では、本方法は、Ｓ３０で算出された掃引ボリュームｘを複製し、それにより複製ｙが生じる。図４の方法は、掃引ボリュームｘを２つのカテゴリ（マテリアル追加ラベルとマテリアル除去ラベル）に分け、最初の掃引ボリュームｘの複製である掃引ボリュームｙについても同様に分ける（マテリアル追加ラベルとマテリアル除去ラベル）。本方法では、次いで、各マテリアル追加（除去）掃引ボリュームｘについてループを実行し、反復したｘごとに、さらに、マテリアル除去（追加）ラベルを有するすべての掃引ボリュームの複製ｙについてループを実行する。各反復において、本方法は、ｙの最後（最初）の面がｘと衝突する場合には、Ｓ４４（Ｓ４２）においてテストを行い、その場合には、本方法は、次いで、Ｓ４８（Ｓ４６）において、ｙを減算することによりｘを更新する。次いで、本方法は、上述したように、また後に例示するように、ボリュームｘ（例えば、ボリュームｙは破棄してもよい）を有するＢ−Ｒｅｐの更新（Ｓ５０）を実行する。このような構成では、Ｓ４２とＳ４４におけるテストが高速で実行され、Ｓ４６とＳ４８における減算が、妥当である場合にのみ実行される。これにより、本方法は、演算上、非常に効率的になる。
【００３０】
本方法は、コンピュータによって実施される。すなわち、本方法のステップ（あるいは略全てのステップ）が少なくとも１つのコンピュータ、または類似の任意のシステムによって実行される。よって本方法のステップは、コンピュータにより、完全に自動的に、あるいは半自動的に実行される可能性がある。本方法のコンピュータによる実施の典型的な例は、この目的に適したシステムを用いて本方法を実行することである。当該システムは、本方法を実行するための命令を含むコンピュータプログラムを記録したメモリに接続されたプロセッサ、および、グラフィカル・ユーザ・インターフェイス（ＧＵＩ）を備えていてもよい。また、メモリはデータベースを記憶していてもよい。メモリは、そのような記憶に適した任意のハードウェアであり、場合により、物理的に区別可能ないくつかの部分（例えば、プログラム用に１つ、場合によりデータベース用に１つ）を含む。
【００３１】
本方法は、一般に、モデル化オブジェクトを操作する。モデル化オブジェクトは、例えばデータベースに格納されたデータによって定義される任意のオブジェクトである。さらには、「モデル化オブジェクト」という表現は、データそのものも指す。システムの種類に応じて、異なる種類のデータによってモデル化オブジェクトが定義されてもよい。実際、システムは、ＣＡＤシステム、ＣＡＥシステム、ＣＡＭシステム、ＰＤＭシステム、および／またはＰＬＭシステムのうちの任意の組み合わせであってもよい。それら異なるシステムにおいて、モデル化オブジェクトは、対応するデータによって定義される。したがって、ＣＡＤオブジェクト、ＰＬＭオブジェクト、ＰＤＭオブジェクト、ＣＡＥオブジェクト、ＣＡＭオブジェクト、ＣＡＤデータ、ＰＬＭデータ、ＰＤＭデータ、ＣＡＭデータ、ＣＡＥデータについて言及することがある。しかしながら、モデル化オブジェクトは、これらのシステムの任意の組み合わせに対応するデータによって定義されてもよいため、これらのシステムは、互いに排他的なものではない。したがって、以下に示すこのようなシステムの定義から明らかなように、システムは、ＣＡＤ兼ＰＬＭシステムであってもよい。
【００３２】
ＣＡＤシステムは、少なくとも、ＣＡＴＩＡのようなモデル化オブジェクトのグラフィック表現に基づくモデル化オブジェクトの設計に適した任意のシステムをも意味する。この場合、モデル化オブジェクトを定義するデータは、モデル化オブジェクトを表現可能にするデータを含む。ＣＡＤシステムは、例えば、辺や線を用い、また、場合により面や曲面を用いて、ＣＡＤモデル化オブジェクトの表現を提供してもよい。線、辺、あるいは面は、例えば、非一様有理Ｂスプライン（ＮＵＲＢＳ）など、様々な様式で表現されてもよい。具体的には、ＣＡＤファイルは仕様を含み、その仕様に基づきジオメトリが生成可能であり、よって表現が生成可能となる。モデル化オブジェクトの仕様は１つまたは複数のＣＡＤファイルに格納されていてもよい。ＣＡＤシステムでモデル化オブジェクトを表現するファイルの典型的なサイズは、一部分あたり１メガバイトの範囲である。また、モデル化オブジェクトは、典型的には、数千の部分の集合体であってもよい。
【００３３】
ＣＡＤの文脈において、モデル化オブジェクトは、典型的には、３Ｄモデル化オブジェクト、例えば、一つの部品や部品の集合体などの製品、あるいは製品の集合体を表現するものであってもよい。「３Ｄモデル化オブジェクト」は、３Ｄ表現が可能なデータによってモデル化される任意のオブジェクトを意味する。３Ｄ表現は、その部品をすべての角度から見ることを可能にする。たとえば、３Ｄで表現された３Ｄモデル化オブジェクトは、その軸のうちの任意の軸、あるいは、その表現が表示された画面中の任意の軸を中心に、処理して回転させることが可能である。これは、特に、３Ｄモデル化されていない２Ｄアイコンについては除外される。３Ｄ表現の表示は、設計を容易にする（すなわち、設計者が作業を達成するスピードを統計的に速める）。製品の設計は製造工程の一部であるから、これによって当該産業における製造工程が迅速化する。
【００３４】
３Ｄモデル化オブジェクトは、ＣＡＤソフトウェア・ソリューションやＣＡＤシステム等を用いた仮想的デザインの完了後に実世界において製造される製品、特に、機械部品や、部品の集合（あるいは同様に部品の集合。なぜなら部品の集合は本方法の観点では一つの部品としてみることができ、また、本方法は集合体における各部品に独立して適用することができるからである）、より一般的には任意の剛体の集合体（例えば移動機構）などの製品のジオメトリを表現してもよい。ＣＡＤソフトウェア・ソリューションは、航空宇宙、建築、建設、消費財、ハイテク機器、産業機器、輸送、海洋、および／または海洋石油／ガス生産、または交通を含む、限定されることのない様々な産業分野において製品の設計を可能にする。本方法により設計される３Ｄモデル化オブジェクトは、このように、地上車両の部品（例えば、自動車および軽トラック機器、レーシングカー、オートバイ、トラックおよびモーター機器、トラック、バス、電車を含む）、航空車両の部品（例えば、航空機体機器、航空宇宙機器、推進機器、防衛製品、航空路線機器、宇宙機器を含む）、海軍車両の部品（例えば、海軍用機器、商業用船舶、オフショア機器、ヨットおよび作業船、船舶用機器を含む）、一般的な機械部品（例えば、工業用製造機械、大型移動機械または機器、設置機器、産業機器製品、加工金属製品、タイヤ製造製品を含む）、電気機械部品または電子部品（例えば、家電、セキュリティおよび／または制御および／または計装製品、コンピューティングおよび通信機器、半導体、医療装置および設備を含む）、消費者製品（例えば、家具、家庭用および庭用製品、レジャー用品、ファッション用品、耐久消費財小売用品、織物類小売用品を含む）、包装（例えば、食品および飲料およびたばこ、美容およびパーソナルケア、家庭用製品包装を含む）などのように、任意の機械的部品であり得る工業製品を表してもよい。
【００３５】
ＰＬＭシステムは、物理的な、製造された製品（または製造される予定の製品）を表すモデル化オブジェクトの管理に適した任意のシステムをも指す。ＰＬＭシステムでは、モデル化オブジェクトは、このように、物理的な物体の製造に適したデータによって定義される。これらは、典型的には、寸法の値および／または公差の値であってもよい。物体を正しく製造するために、実際、このような値を用いるのが望ましい。
【００３６】
ＣＡＭソリューションとは、製品の製造データを管理するのに適した、ハードウェアのソフトウェアである、あらゆるソリューションをも指す。製造データは、一般に、製造する製品、製造工程、および必要なリソースに関するデータを含む。ＣＡＭソリューションは、製品の製造工程全体を計画し最適化するのに用いられる。例えば、実現可能性、製造工程の期間、または製造工程における特定のステップで使用され得るリソース、例えば特定のロボットの数に関する情報をＣＡＭユーザに提供することができる。これにより、管理や必要な投資についての決定を可能にする。ＣＡＭは、ＣＡＤ工程、および、場合によりＣＡＥ工程に続く工程である。このようなＣＡＭソリューションは、ダッソー・システムズにより、ＤＥＬＭＩＡ（登録商標）として提供されている。
【００３７】
ＣＡＥソリューションとは、モデル化オブジェクトの物理的挙動の分析に適した、ハードウェアのソフトウェアである、あらゆるソリューションをも指す。よく知られており広く用いられているＣＡＥ技術は有限要素法（Ｆｉｎｉｔｅ  Ｅｌｅｍｅｎｔ  Ｍｅｔｈｏｄ：ＦＥＭ）であり、これは、典型的には、モデル化オブジェクトを、物理的挙動を方程式によって計算しシミュレーションできる要素に分割することを含む。このようなＣＡＥソリューションは、ダッソー・システムズにより、ＳＩＭＵＬＩＡ（登録商標）として提供されている。成長するＣＡＥ技術のもう１つは、ＣＡＤジオメトリデータを使用せずに異なる物理分野の複数の要素で構成される複雑なシステムのモデリングと解析を行うことを含む。ＣＡＥソリューションはシミュレーションを可能にし、それにより、製造する製品の最適化、改善および検証を可能にする。このようなＣＡＥソリューションは、ダッソー・システムズにより、ＤＹＭＯＬＡ（登録商標）として提供されている。
【００３８】
ＰＤＭはＰｒｏｄｕｃｔ  Ｄａｔａ  Ｍａｎａｇｅｍｅｎｔ（生産データ管理）の略である。ＰＤＭソリューションとは、特定の製品に関するすべての種類のデータを管理するのに適した、ハードウェアのソフトウェアである、あらゆるソリューションを指す。ＰＤＭソリューションは、製品のライフサイクルにかかわるすべての関係者によって使用されてもよい。これには、主として技術者のほか、プロジェクトマネージャー、財務担当者、営業担当者、およびバイヤーも含まれる。ＰＤＭソリューションは、一般に、製品指向のデータベースに基づく。これにより、関係者が製品に関する一貫したデータを共有することが可能になり、これにより、関係者が異なるデータを用いるのを防止する。このようなＰＤＭソリューションは、ダッソー・システムズにより、ＥＮＯＶＩＡ（登録商標）として提供されている。
【００３９】
図５は、本システムのＧＵＩの一例を示し、本システムは、ＣＡＤシステムである。本方法は、例えば図に表されたＢ−Ｒｅｐ面上でグラフィカルに作用することによって、ディスプレイ上で適用されてもよい。
【００４０】
ＧＵＩ２１００は、標準的なメニューバー２１１０，２１２０、ならびに底部および側面のツールバー２１４０，２１５０を有する典型的なＣＡＤのようなインターフェースであってもよい。このようなメニューバーおよびツールバーは、ユーザが選択可能なアイコンのセットを含み、各アイコンは、当技術分野で知られているように、１つまたは複数の操作または機能に関連付けられている。これらのアイコンのいくつかは、ＧＵＩ２１００に表示された３Ｄモデル化オブジェクト２０００の編集および／または作業に適合したソフトウェアツールに関連付けられている。ソフトウェアツールはワークベンチに分類することができる。各ワークベンチは、ソフトウェアツールのサブセットを含む。特に、ワークベンチの１つは、モデル化製品２０００のジオメトリ的特徴を編集するのに適した編集ワークベンチである。操作中、設計者は、例えば、オブジェクト２０００の一部を予め選択し、次いで、適切なアイコンを選択することによって、操作を開始する（例えば、寸法、色などを変更する）か、ジオメトリ的制約を編集することができる。例えば、典型的なＣＡＤ操作は、スクリーン上に表示された３Ｄモデル化オブジェクトのパンチングまたは折り畳みのモデリングである。ＧＵＩは、例えば、表示された製品２０００に関連するデータ２５００を表示してもよい。図５の例では、「特徴ツリー」として表示されたデータ２５００およびそれらの３Ｄ表現２０００は、ブレーキキャリパおよびディスクを含むブレーキ部品に関するものである。ＧＵＩは、編集された製品の動作のシミュレーションを起動するため、または表示された製品２０００の様々な属性を描画するために、例えばオブジェクトの３Ｄ定位を容易にするための様々なタイプのグラフィックツール２１３０，２０７０，２０８０をさらに示してもよい。カーソル２０６０は、ユーザがグラフィックツールを用いて対話操作ができるように、触覚デバイスによって制御されてもよい。
【００４１】
図６は、本システムの一例を示すものであって、当該システムは、クライアントコンピュータシステム、例えばユーザのワークステーションである。
【００４２】
本例のクライアントコンピュータは、内部通信バス１０００に接続された中央演算処理装置（ＣＰＵ）１０１０、および同じくバスに接続されたランダムアクセスメモリ（ＲＡＭ）１０７０とを備える。クライアントコンピュータは、さらに、バスに接続されたビデオランダムアクセスメモリ１１００と関連付けられたグラフィックス処理装置（ＧＰＵ）１１１０を備える。ビデオＲＡＭ１１００は、当該技術分野において、フレームバッファとしても知られる。大容量記憶装置コントローラ１０２０は、ハードドライブ１０３０などの大容量記憶装置へのアクセスを管理する。コンピュータプログラムの命令及びデータを具体的に実現するのに適した大容量メモリ装置は、例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ及びフラッシュメモリ装置のような半導体メモリ装置、内蔵ハードディスクやリムーバブルディスクなどの磁気ディスク、光磁気ディスク、およびＣＤ−ＲＯＭディスク１０４０を含む、全ての形式の不揮発性メモリを含む。前述のいずれも、特別に設計されたＡＳＩＣ（特定用途向け集積回路）によって補完されてもよいし、組み入れられてもよい。ネットワークアダプタ１０５０は、ネットワーク１０６０へのアクセスを管理する。クライアントコンピュータはまた、カーソル制御装置、キーボードなどの触覚装置１０９０を含んでいてもよい。カーソル制御装置は、ユーザがディスプレイ１０８０上の任意の所望の位置にカーソルを選択的に位置させることを可能にするために、クライアントコンピュータ内で使用される。さらに、カーソル制御デバイスは、ユーザが様々なコマンドを選択し、制御信号を入力することを可能にする。カーソル制御装置は、システムに制御信号を入力するための多数の信号生成装置を含む。典型的には、カーソル制御装置はマウスであってもよく、マウスのボタンは信号を生成するために使用される。あるいは、または追加的に、クライアントコンピュータシステムは、感知パッドおよび／または感知スクリーンを備えてもよい。
【００４３】
コンピュータプログラムは、コンピュータによって実行可能な命令を含んでいてもよく、命令は、上記システムに方法を実行させるための手段を含む。プログラムは、システムのメモリを含む任意のデータ記憶媒体に記録可能であってもよい。プログラムは、例えば、デジタル電子回路、またはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実装されてもよい。プログラムは、例えばプログラマブルプロセッサによる実行のための機械読み取り可能な記憶装置に具体的に実現された製品のような装置として実装されてもよい。方法ステップは、プログラム可能なプロセッサが命令のプログラムを実行し、入力データを操作して出力を生成することによって方法の機能を実行することによって実行されてもよい。したがって、プロセッサは、データ記憶システム、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスからデータおよび命令を受信し、また、それらにデータおよび命令を送信するようにプログラム可能であってもよく、またそのように接続されていてもよい。アプリケーションプログラムは、高水準の手続き型またはオブジェクト指向のプログラミング言語で、または必要に応じてアセンブリ言語または機械語で実装されていてもよい。いずれの場合も、言語はコンパイラ型言語またはインタープリタ型言語であってもよい。プログラムは、フルインストールプログラムまたは更新プログラムであってもよい。いずれの場合も、プログラムをシステムに適用すると、本方法を実行するための指示が得られる。
【００４４】
「３Ｄモデル化オブジェクトの設計」とは、３Ｄモデル化オブジェクトを作り上げる工程の少なくとも一部である任意の行為あるいは一連の行為を指す。したがって、本方法は、３Ｄモデル化オブジェクトを一から作ることを含んでもよい。あるいは、本方法は、以前に作成された３Ｄモデル化オブジェクトを提供し、次いで３Ｄモデル化オブジェクトを修正することを含んでいてもよい。本方法は、本方法を実行した後に、モデル化オブジェクトにジオメトリ的に対応する物理的製品を生産する工程を含み得る製造工程に含まれていてもよい。
【００４５】
図７は、図４の例に沿った、本方法の高水準の例を示す図である。
【００４６】
図７の方法により、設計者は、３Ｄモデル化オブジェクトによって表される立体の境界表現（Ｂ−Ｒｅｐ）を、面の軌道を（本例では動きを介して）選択し定義することによって（例えば、それらを引っ張る／押すことによって）、修正することが可能になる。目的は、立体で表される機械部品の形状を定義することである。本方法では、複数の面それぞれの影響ゾーンが互いに分離されている場合、それらの面を同時に移動させることができる。さらに、結果として生じる形状は、設計者が予期することができ、システムを予測可能かつ使い易くする。図７の方法の入力オブジェクトは、立体の境界表現Ｓ、この立体上の選択された面のグループ（すなわち集合）、および選択されたすべての面に適用される動きの軌道である。出力オブジェクトは、面の変位に応じた、更新された立体境界表現Ｓ’である。
【００４７】
図７の方法は、最初に選択された面および動きの軌道を用いて、対応する掃引ボリュームを算出する。軌道の相対的な向きと選択された面の外側法線ベクトルに応じて、各ボリュームは、立体にマテリアルを追加すると考えられる場合には「Ａブロック」、立体からマテリアルを除去すると考えられる場合には「Ｒブロック」とラベル付けされる。次いで、以下のジオメトリ間における干渉を調査することにより、ＡブロックとＲブロックの重なりの優先順位を定義する：Ａブロック、Ｒブロック、選択された面の最初の位置、選択された面の最終的な位置。この優先順位のおかげで、ＡブロックとＲブロックが組み合わされ、入力された立体に追加すべき適切な量のマテリアルＭ+と、立体から除去すべき適切な量のマテリアルＭ-がよく定義される。最後のステップは、式Ｓ’＝（Ｓ−Ｍ-）∪Ｍ+に従って、入力
した立体からＭ-を除去し、Ｍ+を加えることである。図７に示す図が、このメインステップを例示している。
【００４８】
同時に複数の面を選択して変更を行うことができれば、明らかに生産性が向上し、消しゴムの副作用を避ければ、入力された立体の整合性が保たれ、部品のチェックやローカルの再設計を避けることで、設計変更をより安全にする。
【００４９】
この方法の入力は、立体をモデル化する公知のＢ−Ｒｅｐ形式である。広く知られているように、Ｂ−ｒｅｐモデルは、トポロジー的エンティティおよびジオメトリ的エンティティを含む。トポロジー的エンティティとは、面、辺、そして頂点である。ジオメトリ的エンティティとは、３Ｄオブジェクト、すなわち、サーフェス、平面、曲線、線、点である。定義上、面は、支持サーフェスと呼ばれる、サーフェスの有界部分である。辺は、支持曲線と呼ばれる、曲線の有界部分である。頂点は３Ｄ空間中の点である。これらは、以下のように互いに関連する。曲線の有界部分は、曲線上の２つの点（頂点）によって定義される。サーフェスの有界部分は、その境界によって定義され、境界は、サーフェス上の辺の組である。面の境界における辺同士は、共通の頂点によって接続されている。面同士は共通の辺によって接続されている。定義上、２つの面は、それらが共通の辺を有するとき隣接する。同様に、２つの辺は、それらが共通の頂点を有するとき隣接する。このような情報は、本方法の入力データとして十分である。
【００５０】
図８および図９は、円筒形スロット８０（例えば、本方法の例に関与する機能的特徴を表し得る）のＢ−ｒｅｐモデルを示し、これは図面上で１、２および３と番号が付けられた３つの面、すなわち平面状上面１、および２つの円筒状側面２および３からなる。図８は、スロット８０の斜視図である。図９は、全ての面の分解図である。重複する番号は、共通の辺および頂点を示す。面１は平面の有界部分である。面１の境界は、辺４および５を含み、それらは、それぞれ頂点１０および１１によって境界が定められている。これらはどちらも同じ支持円を有する。面２は、それぞれ無限の円筒状サーフェス（すなわち面２の支持サーフェス）上にある辺６、８、５、および１３によって境界が定められている。面１と面２は、辺５を共有しているため、隣接している。面２と面３は、辺８および１３を共有しているため、隣接している。面１と面３は、辺４を共有しているため、隣接している。
【００５１】
図１０は、スロット８０のＢ−ｒｅｐモデルの「境界が定められる」トポロジー的関係を示す。上位レイヤー１０１のノードは面であり、中間レイヤー１０３のノードは辺であり、下位レイヤー１０５のノードは頂点である。図１１および図１２は、トポロジー的エンティティ（面、辺、頂点）と支持ジオメトリ（無限円筒、無限平面、無限線、点）との関係を示す。ＣＡＤシステムでは、Ｂ−ｒｅｐモデルは、適切なデータ構造において、「境界が定められる」関係と、トポロジー的エンティティと支持ジオメトリとの関係、および支持ジオメトリの数学的記述を収集する。言い換えれば、図１０および図１１に示すデータ構造は、この例のトポロジーデータの一部であり、ジオメトリデータのジオメトリ的エンティティへのリンク（図１１）、およびトポロジー的エンティティ同士の間のリンク（図１０）を含む。
【００５２】
本方法によって設計された機械部品は、軸状の機械部品（すなわち、例えば主軸を有し、例えば、そのような軸に関して軸の機能を有する機械部品）であってもよい。例えば、機械部品は、嵌合部品（軸状機械部品自体であり、本方法の別の例を介して設計することができる）への接合軸（例えば円筒形または回転体状）を有する。そのような場合、設計操作のためにユーザによって選択された面のグループは、軸状機械部品の少なくとも１つの機能的特徴を定義する面を含んでいてもよい。言い換えれば、本方法は、１つまたは複数の機能的特徴を区切る面のグループ（必ずしもすべてのそのような区切り面である必要はない）に対して実行される。機能的特徴とは、嵌合部品に対する機械部品の動きを制限し、および／または当該部品に対してそのような動きの影響を与えるような機械部品の少なくとも１つの部分および／または少なくとも１つの穴の組である。ユーザは、部分および／または穴の周りの１つまたは複数の面を選択し、残りの部分の面をスライドさせることによって、機能的な特徴を編集することを望む場合がある。このような設計操作は、例えば、面を押すこと／引っ張ること／変位させることを介した調整、例えば、物理的なマテリアルの伸張、収縮、または変位に対応する。
【００５３】
ここで、そのような機械部品の例について説明する。本方法は、軸状機械部品のそのような例の設計を容易にすることを意図していてもよい。
【００５４】
軸状機械部品は、嵌合部分を有し、回転接合部または円筒形接合部によってその嵌合部分に連結されてもよい。これは、その相対運動が、多くて２つの自由度、すなわち軸に沿った並進（円筒形接合部）、および当該軸を中心とする回転（円筒形接合部および回転接合部）によって支配されることを意味する。軸状部分のジオメトリは、主に、機能的特徴が付加された回転立体形状である。そのような部品は、任意の回転機械（例えば、タービンエンジン、ステアリングコラム、クラッチ、ギアボックス、ブレンダー、および／またはボルトアクション）の軸状部品、または流れ工程に関与する任意の組立体（例えば、サイレンサー、マズルブレーキ、および／またはサウンドサプレッサー）の軸状部品であってもよい。
【００５５】
機能的特徴は、嵌合部品に対する部品の動きの自由度を定義する機械部品の一部を表していてもよい。したがって、機能的特徴は、ノッチ、ピン、スロットまたはラグを表していてもよい。したがって、機能的特徴は、並進および／または回転である、案内、および／または停止の自由度を定義してもよい。機能的特徴は、マテリアルを除去／追加することによって部品の重量を低減および／またはバランスをとるのに寄与する機械部品の一部を代替的または追加的に表していてもよい。この場合、回転を安定させるために、機能的特徴を回転軸の周りに適切に配置されなければならない。同様に、平衡をとるために、回転の安定を保つために何らかのマテリアルを加えることができる。
【００５６】
回転機械は、例えば、航空宇宙、防衛、工学、建設、消費財、エネルギー、産業機器、海洋およびオフショア、輸送およびモビリティなど、あらゆる機械産業に見いだせる。製造上の観点から、旋盤を用いて回転形状を取得し、その詳細は、フライス盤を用いて取得する。ＣＡＤシステムを用いる場合、部品の軸方向の隆起に応じて、部品の軸を中心にジオメトリを回転させることによって、機能の詳細が非常に頻繁に作成され、変更される。選択（Ｓ１０）および定義（Ｓ２０）は、このように実行されてもよい。
【００５７】
図１３〜１５は、本方法によって効率的に設計することが可能な軸状の機械部品の例を示す。図１３は、代表的なクラッチ部品を示す。図１４は、代表的なステアリングコラム部品を示す。図１５は、代表的なマズルブレーキを示す。
【００５８】
ここで、Ｓ２０で定義された軌道は、軸状機械部品の機能的特徴を、機械部品の軸に沿って、および／または軸周りに、スライド編集することによって定義されてもよい（すなわち、これは、ユーザが、機械部品の残りの部分上で、または、機械部品の残りの部分に対してスライドさせるべき機能的特徴を定義する機械部品の部分または穴を意図していることを意味する）。言い換えれば、機械部品の一定の軸形成体（例えば、円筒形状）上で、機能的特徴の面（すなわち、機能的特徴を定義し、スライドされたときに非ヌル掃引ボリュームを生成する面。なぜなら、それらのそれぞれに定義された軌道が、それらが最初に定義されたサーフェス上をスライドさせることがないからである）をスライドさせることを含む、ユーザの編集を介して、軌道がＳ２０で定義される。スライドは、例えば、同じ軌道が機能的特徴の全ての相補的な面に対して使用されない場合、または機能的特徴が厳密にスライドされ得る場合などには、機能的特徴の寸法変更を含んでいてもよい。スライドは、軸状機械部品の軸に対する機能的特徴の調整操作に対応していてもよい。
【００５９】
例えば、機能的部品は、軸状機械部品の軸線に対して径方向に延びる少なくとも１つの隆起および／または少なくとも１つの穴を形成する。一例では、隆起または穴は、径面（すなわち、支持面が軸を含むかまたは軸に平行である面）、軸に垂直な面、および／または極面（すなわち、支持面が軸に基づく円筒である面）によって定義される。他の例では、そのようなジオメトリは実質的であるだけである。機能部品のスライド編集は、径面のみを選択し、それらを回転させ（すなわち、回転軸が部品の軸である）、他のすべての面は動かさないことを本質としてもよい。あるいは、スライド編集は、軸に垂直な面のみを選択し、それらを軸に沿って並進させ（すなわち並進方向が軸である）、他のすべての面は動かさないことを本質としてもよい。あるいは、これらのタイプの面の両方を選択し、そのような回転および／またはそのような並進の任意の組み合わせを定義してもよい。これら全ての例において、スライド操作は、上述のドラッグ・アンド・ドロップのような操作で、選択した全ての面に一括して適用してもよい。
【００６０】
例えば、この方法は、機械部品の同じ高さ（すなわち、軸の横座標）に位置する隆起および／または穴を転換するために実行されてもよい（例えば、ユーザが最初に機能的特徴の方向付けに誤った場合など）。これは、所定の転換目的、例えば目標角度リストによって、制約される可能性がある。転換は、隆起および／または穴の径面のみを一度に選択し、次に選択したもの全体を、（本例では、各隆起および／または穴が所定の目標角度リストのうちの正しい角度に存在するように）スライド回転させることによって容易に実行することができる。このプロセスで交差する機能的特徴はそのまま残される。
【００６１】
別の例では、この方法は、軸状機械部品上の複数の隆起および／または穴の高さを編集するために実行されてもよい（例えば、ユーザが最初に高さの選択を誤った場合など）。これは、所定の編集目的、例えば目標高さによって、制約される可能性がある。編集は、隆起および／または穴の垂直面のみを一度に選択し、次に選択したもの全体を、（本例では、所定の目標高さへと）スライド並進させることによって容易に実行することができる。このプロセスで交差する機能的特徴はそのまま残される。
【００６２】
このような設計操作を機械設計者に提供することは、軸状機械部品の文脈において特に有用である。なぜなら、機能的特徴の位置および／または寸法、または軸状機械部品の軸に沿ったおよび／または軸の周りの機能的特徴の面の位置に対応する機能的特徴のパラメータは、再調整や再定義を最も頻繁に必要とするパラメータであり、（半径値と比較して）長距離になる可能性があるからである。さらに、軸状機械部品には、比較的多くの機能的特徴が存在している可能性がある。そのような場合、本方法は、ユーザが、遭遇した他の機能的特徴をわざわざ回避することなく、機能的特徴の面をスライド移動させることによって機能的特徴の位置を（軸に沿っておよび／または軸の周りに）容易に再定義することを可能にする（このように、交差および消しゴムの副作用によって編集されることなく交差させることができ、軸状機械部品の設計の分野において実用的である）。本方法は、そのような状況において、特にエルゴノミクス的である。一例では、軸状機械部品は、少なくとも２つ、または少なくとも５つの機能的特徴を含む。
【００６３】
ここで、このような軌道が定義されている典型的な編集のシナリオについて、図１６〜１８を参照して説明する。典型的な機構はボルトである。これは、二つのラグを特徴とする円筒形部品Ａからなる。図１６は、本方法で設計された機械部品を示す。部品Ａは、ラグを開口部に合わせて、軸Ｂに沿って部品Ｃ内に並進される。次に、部品Ａを、ラグが開口部の内壁に接触するまで、軸Ｂを中心に回転させる。格納式のピンＤは、部品Ｃの内部で部品Ａが逆回転するのを防止するためのものである。図１７は、この組立体を例示した図である。第１の編集シナリオは、軸Ｂを中心に面を動かすことによって、ラグの寸法と軸方向の位置を調整することである。第２の編集シナリオは、部品Ｃの開口を調整して、部品Ａに正しく嵌合させることである。これもまた、開口部の面を、軸Ｂを中心に動かすことによって行う。当然ながら、隣接する面の調整時に、格納式のピンＤをなくしてはいけない。第３の編集シナリオは、図１８に示すように、３つのラグボルトＡ’を用いて同種の調整を行うことであ
る。本方法により、これらの設計シナリオを効率的に実行できるようになる。
【００６４】
ここで、本方法の実施の一例について説明する。
【００６５】
ここで、実施のための、（例えば、Ｓ１０で）選択された面および目標の面（例えば、計算Ｓ１００に関与する開始面および終了面）の例について説明する。
【００６６】
入力オブジェクトは入力立体Ｓであり、この立体上のユーザによる選択面はｆi、ｉ＝１，・・・，ｎで表され、ＳＯ（３）を３次元空間における剛体運動の集合とすると、動きの軌道は
【数１】
2017174409.tif 000003
で表される。各ｔ∈［０，１］について、Ｗ（ｔ）は剛体運動であり、Ｒ（ｔ）を回転行列、Ｔ（ｔ）を並進ベクトルとすると、任意の
【数２】
2017174409.tif 000004
についてＷ（ｔ）（Ｘ）＝Ｒ（ｔ）Ｘ＋Ｔ（ｔ）であることを意味する。定義により、Ｗ（０）は開始位置であり、Ｗ（１）は終了位置である。開始位置は恒等であり、すなわちＷ（０）＝Ｉｄである。選択された面の初期位置は、ｉ＝１，・・・，ｎについて、
【数３】
2017174409.tif 000005
で表される。選択された面の最終位置は、ｉ＝１，・・・，ｎについて、
【数４】
2017174409.tif 000006
で表される。
【００６７】
本実施例の方法は、線形または回転運動を扱う。線形運動は
Ｗ（ｔ）（Ｘ）＝Ｘ＋ｔＴ
で定義され、ここで、ベクトルＴはｔから独立している。回転運動は
Ｗ（ｔ）（Ｘ）＝Ｒ（ｔ）（Ｘ−Ｐ）
で定義され、ここでＲ（ｔ）は、ともにｔから独立している点ＰとベクトルＵによって定義される軸の周りの回転である。
【００６８】
本実施例は、スライド編集中に、（面のグループの選択を介して）選択され、（軌道の定義を介して）設計／編集されることを意図された機能的特徴が、少なくとも１つの他の機能的特徴を横切る（すなわち、交差する）場合を、非常にうまく扱う。本方法は、この例において特に効率的であることが分かる。なぜなら、上記他の機能的特徴が本方法によって編集されることはなく、それによって消しゴムの副作用を回避するからである。さらに、高速演算によって確実に回避される。ここで、その一例について詳述する。これにより、システムは応答性を保ち、Ｂ−Ｒｅｐの更新を高速に実行する。
【００６９】
まず、追加ブロック（すなわち、マテリアル追加ラベルを有する掃引ボリューム）および除去ブロック（マテリアル除去ラベルを有する掃引ボリューム）のデータ構造について詳述する。
【００７０】
各ｉ∈｛１，・・・，ｎ｝および任意の点Ｘ∈ｆiについて、ｎi（Ｘ）を点Ｘにおける面ｆiの外側法線ベクトルとする。点Ｘの軌道は、ＣX（ｔ）＝Ｒ（ｔ）Ｘ＋Ｔ（ｔ）によって定義される３Ｄパラメータ化曲線
【数５】
2017174409.tif 000007
である。掃引ボリュームを適切に識別するために、本方法では、動きの軌道と面とが規則性条件を満たす必要がある。すなわち、外側法線ベクトルは、常に、符号が一定の、軌道の接ベクトルとのスカラ積を特徴とする。言い換えれば、動きの軌道によって定義されるベクトル場は、常に、外側法線ベクトルの方向に流れる。正確には、パラメータｔ∈［０，１］において、点Ｘ∈ｆiは、位置ＣX（ｔ）にあり、その軌道の接ベクトルは、「’」が変数ｔについての微分を表すとすると、Ｃ’X（ｔ）＝Ｒ’（ｔ）Ｘ＋Ｔ’（ｔ）である。さらに、最
初の位置ｎi（Ｘ）における外側法線ベクトルをＲ（ｔ）ｎi（Ｘ）に変更する。規則性条件は、すべてのｔ∈［０，１］およびすべてのＸ∈ｆiについて、次のように定義される。
【数６】
2017174409.tif 000008
この条件が満たされない場合、本実施例における方法は、システムエラーを出力したり、任意の方法でこの場合を扱ったりしてもよい。この条件は以下のように満たされると考えられる。
【００７１】
この一定の符号が正の場合、動きの軌道は外側法線ベクトルの方向に向けられ、面ｆiの掃引ボリュームはＡブロックとしてマークされる（すなわち、ラベル割り当て）。本方法では、これが立体にマテリアルを追加することを示すと理解されており、以下のようにＡiで表される。
【数７】
2017174409.tif 000009
この一定の符号が負の場合、動きの軌道は外側法線ベクトルと反対の方向に向けられ、面ｆjの掃引ボリュームはＲブロックである。これは立体からマテリアルを除去することを示し、以下のようにＲjで表される。
【数８】
2017174409.tif 000010
ここでインデックスの集合｛１，・・・，ｎ｝は、ＡブロックがＡi，ｉ∈Ｉ、ＲブロックがＲj，ｊ∈Ｊとなるように、互いに素な部分集合｛１，・・・，ｎ｝＝Ｉ∪Ｊに分割することができる。
【００７２】
図１９は、正の符号を特徴とする面の規則的な動きを例示している。面ｆ0は、その最終位置ｆ1まで、点Ｐを中心に回転される。図２０は、対応するＡブロックを例示している。図２１は、スカラ積の符号が一定でない単一の状況を例示している。得られた掃引ボリュームはねじれており、領域Ａを通してマテリアルを加え、それと同時に、領域Ｒを通してマテリアルを除去する。
【００７３】
ここで、本方法の例による、コアアルゴリズムを提示する。
【００７４】
本アルゴリズムは３つのステップを実行する。第１のステップでは、入力立体Ｓに追加されるマテリアルＭ+の適切な量が算出される。ブロックの重なりは、ＡブロックＡiと、Ｒブロックの終了面
【数９】
2017174409.tif 000011
との衝突をテストすることによって識別され、これは以下に詳述するように
【数１０】
2017174409.tif 000012
と記載される。
【数１１】
2017174409.tif 000013
第２のステップでは、入力立体Ｓから除去されるマテリアルＭ-の適切な量が算出される。ブロックの重なりは、ＲブロックＲjと、Ａブロックの開始面
【数１２】
2017174409.tif 000014
との衝突をテストすることによって識別され、これは以下に詳述するように
【数１３】
2017174409.tif 000015
と記載される。
【数１４】
2017174409.tif 000016
最後のステップである第３のステップでは、実際に入力立体Ｓに対してマテリアルの追加と除去を行い、結果としての立体Ｓ’を得る。
Ｓ’＝（Ｓ−Ｍ-）∪Ｍ+
ここで、本アルゴリズムの実行例について説明する。
【００７５】
本アルゴリズムは、ブロックの重なりと、明示的に選択されてはいないが含まれている小さな細部とを特徴とする例を用いて例示されている。面ｆ1、ｆ2、ｆ3、およびｆ4が、図２２における立体上で選択される。動きＷは、垂直軸を中心とした１８０度の回転である。詳細は、面ｆ3と面ｆ4の間の円筒形のスロットである。終了面は、外側法線ベクトルと共に図２３に示すように、それぞれ
【数１５】
2017174409.tif 000017
【数１６】
2017174409.tif 000018
【数１７】
2017174409.tif 000019
【数１８】
2017174409.tif 000020
である。スカラ積分析では、Ｉ＝｛１，４｝およびＪ＝｛２，３｝で表される「加算」対「除去」の結果が得られる。それぞれの掃引ボリュームＡ1、Ｒ2、Ｒ3、およびＡ4が、入力立体とともに図２４に示されている。分かりやすくするために、掃引ボリュームは回転軸に沿って並進移動される。ＡブロックＡ1およびＡ4と、ＲブロックＲ2およびＲ3の終了面
【数１９】
2017174409.tif 000021
および
【数２０】
2017174409.tif 000022
の衝突は、以下のように表される。
【表１】
2017174409.tif 000023
コアアルゴリズムの第１のステップでは、以下が得られる。
Ｍ+＝（Ａ1−Ｒ3）∪（Ａ4−Ｒ2）
図２５は、入力立体ＳとともにＭ+を例示している。なお、Ｍ+は、２つの接続された要素で構成されている。分かりやすくするために、Ｍ+は上方向にわずかに並進移動されている。なお、どのようにＭ+が円柱形スロットの近傍を保存するか注目すべきである。ＲブロックＲ2およびＲ3と、ＡブロックＡ1およびＡ4の開始面
【数２１】
2017174409.tif 000024
および
【数２２】
2017174409.tif 000025
の衝突は、以下のように表される。
【表２】
2017174409.tif 000026
コアアルゴリズムの第２のステップでは、以下が得られる。
【００７６】
Ｍ-＝（Ｒ2−Ａ4）∪（Ｒ3−Ａ1）
図２６は、入力立体とともにＭ-を例示している。なお、Ｍ-は、２つの接続された要素で構成されている。分かりやすくするために、Ｍ-は上方向にわずかに並進移動されている。ここでも、どのようにＭ-が円柱形スロットの近傍を保存するか注目すべきである。コアアルゴリズムの第３のステップによると、結果として得られる立体は、中間結果Ｓ−Ｍ-とともに図２７に例示するように、Ｓ’＝（Ｓ−Ｍ-）∪Ｍ+である。
【図１】
2017174409.tif 000032
【図２】
2017174409.tif 000033
【図３】
2017174409.tif 000034
【図４】
2017174409.tif 000035
【図５】
2017174409.tif 000036
【図６】
2017174409.tif 000037
【図７】
2017174409.tif 000038
【図８】
2017174409.tif 000039
【図９】
2017174409.tif 000040
【図１０】
2017174409.tif 000041
【図１１】
2017174409.tif 000042
【図１２】
2017174409.tif 000043
【図１３】
2017174409.tif 000044
【図１４】
2017174409.tif 000045
【図１５】
2017174409.tif 000046
【図１６】
2017174409.tif 000047
【図１７】
2017174409.tif 000048
【図１８】
2017174409.tif 000049
【図１９】
2017174409.tif 000050
【図２０】
2017174409.tif 000051
【図２１】
2017174409.tif 000052
【図２２】
2017174409.tif 000053
【図２３】
2017174409.tif 000054
【図２４】
2017174409.tif 000055
【図２５】
2017174409.tif 000056
【図２６】
2017174409.tif 000057
【図２７】
2017174409.tif 000058
【外国語明細書】
2017174409.tif 000059
2017174409.tif 000060
2017174409.tif 000061
2017174409.tif 000062
2017174409.tif 000063
2017174409.tif 000064
2017174409.tif 000065
2017174409.tif 000066
2017174409.tif 000067
2017174409.tif 000068
2017174409.tif 000069
2017174409.tif 000070
2017174409.tif 000071
2017174409.tif 000072
2017174409.tif 000073
2017174409.tif 000074
2017174409.tif 000075
2017174409.tif 000076
2017174409.tif 000077
2017174409.tif 000078
2017174409.tif 000079
2017174409.tif 000080
2017174409.tif 000081
2017174409.tif 000082
2017174409.tif 000083
2017174409.tif 000084
2017174409.tif 000085
2017174409.tif 000086
2017174409.tif 000087
2017174409.tif 000088
2017174409.tif 000089
2017174409.tif 000090
【図１】
2017174409.tif 000091
【図２】
2017174409.tif 000092
【図３】
2017174409.tif 000093
【図４】
2017174409.tif 000094
【図５】
2017174409.tif 000095
【図６】
2017174409.tif 000096
【図７】
2017174409.tif 000097
【図８】
2017174409.tif 000098
【図９】
2017174409.tif 000099
【図１０】
2017174409.tif 000100
【図１１】
2017174409.tif 000101
【図１２】
2017174409.tif 000102
【図１３】
2017174409.tif 000103
【図１４】
2017174409.tif 000104
【図１５】
2017174409.tif 000105
【図１６】
2017174409.tif 000106
【図１７】
2017174409.tif 000107
【図１８】
2017174409.tif 000108
【図１９】
2017174409.tif 000109
【図２０】
2017174409.tif 000110
【図２１】
2017174409.tif 000111
【図２２】
2017174409.tif 000112
【図２３】
2017174409.tif 000113
【図２４】
2017174409.tif 000114
【図２５】
2017174409.tif 000115
【図２６】
2017174409.tif 000116
【図２７】
2017174409.tif 000117