(57)【要約】【課題】３次元シーンにおいて第１のポイントと第２のポイントとを結ぶパスを設計する方法を提供すること。【解決手段】一態様に従って、本発明は、３次元シーンにおいて第１のポイントと第２のポイントとを結ぶパスを設計するためのコンピュータ実装方法であって、第１のベクトルに結合された第１のポイントを提供するステップと、第２のベクトルに結合された第２のポイントを提供するステップと、平行６面体の多くても３つの部分をたどることによってパスのセットを提供するステップであって、平行６面体は、第１の頂点に提供された第１のポイントと、第２の頂点に提供された第２のポイントとを備え、平行６面体の部分は、エッジ、面対角線、空間対角線であることを特徴とする。【選択図】図３
2015026377.tif 000002
【特許請求の範囲】
【請求項１】
３次元シーンにおいて第１のポイントと第２のポイントを結ぶパスを設計するためのコンピュータ実装方法であって、
第１のベクトルに結合された前記第１のポイントを提供するステップと、
第２のベクトルに結合された前記第２のポイントを提供するステップと、
平行６面体の多くても３つの部分をたどることによってパスのセットを提供することであって、前記平行６面体は、第１の頂点に提供された前記第１のポイントと、第２の頂点に提供された前記第２のポイントとを備え、前記平行６面体の部分は、エッジ、面対角線、空間対角線であること
を特徴とするコンピュータ実装方法。
【請求項２】
前記第１の頂点および前記第２の頂点は、前記平行６面体の対向面上にあり、前記パスのセットは、
前記第１のポイントと前記第２のポイントとを結ぶ前記空間対角線から作成された１つの部分を備える１つのパスと、
前記平行６面体の共有頂点を有する２つの部分を備える６つのパスであって、１つの部分は前記平行６面体の面対角線であり、前記対角線は、前記第１のポイントまたは前記第２のポイントを備え、かつ１つの部分はエッジであることと、
３つの連続部分を備える６つのパスであって、各部分は、エッジであることを備えること
を特徴とする請求項１に記載のコンピュータ実装方法。
【請求項３】
前記第１の頂点および前記第２の頂点は、前記平行６面体の同じ面に属することであって、前記パスのセットは、
前記第１の頂点および前記第２の頂点が属する前記面対角線である１つの部分を備える１つのパスと、
２つの連続部分を備える２つのパスであって、各部分はエッジであることを備えること
を特徴とする請求項１に記載のコンピュータ実装方法。
【請求項４】
前記３次元シーン内の前記平行６面体を以下の定位：
前記３次元シーンのグローバル定位の方向のうちの１つ
前記第１のベクトルによって与えられる方向
前記第２のベクトルによって与えられる方向
のうちの１つの周囲で定位することをさらに備えること
を特徴とする請求項１乃至３のいずれかに記載のコンピュータ実装方法。
【請求項５】
前記第１のポイントおよび前記第２のポイントを結ぶ前記パスの少なくとも２つの部分を結ぶための曲げ半径を提供するステップをさらに備えること
を特徴とする請求項１乃至４のいずれかに記載のコンピュータ実装方法。
【請求項６】
曲げ半径を提供した後、
前記セットの各パスに対し、前記曲げ半径に従って前記第１のポイントと前記第２のポイントとの前記パスを結ぶ平行６面体を計算するステップをさらに備えること
を特徴とする請求項５に記載のコンピュータ実装方法。
【請求項７】
前記セットの各パスに対し、平行６面体を計算することは、
前記第１のポイントと前記第１の頂点との間の距離Ｄ１が、Ｄ１＝Ｂｅｎｄ  Ｒａｄｉｕｓ×（ｓｉｎα１）となるように計算することであって、Ｂｅｎｄ  Ｒａｄｉｕｓは、前記与えられた曲げ半径の値であり、α１は、前記第１のベクトルの前記方向と前記第１の頂点に結ばれた前記パスの前記部分との間の角度であることと、
前記第２のポイントと前記第２の頂点との間の距離Ｄ２が、Ｄ２＝Ｂｅｎｄ  Ｒａｄｉｕｓ×（ｓｉｎα２）となるように計算することであって、Ｂｅｎｄ  Ｒａｄｉｕｓは、前記与えられた曲げ半径の値であり、α２は、前記第２のベクトルと前記第２の頂点に結ばれた前記パスの前記部分との間の角度であることと、によって第１の頂点の新しい位置および第２の頂点の新しい位置を計算することを備えること
を特徴とする請求項６に記載のコンピュータ実装方法。
【請求項８】
前記パスの各エッジの長さ（Ｌ）を計算することと、
前記長さ（Ｌ）がＬ≧Ｂｅｎｄ  Ｒａｄｉｕｓ×（ｓｉｎαｘ＋ｓｉｎαｙ）であると判定することであって、Ｂｅｎｄ  Ｒａｄｉｕｓは、前記与えられた曲げ半径の値であり、αｘは前記のパスの前記前記各エッジと前記パスの前記前記各エッジの第１の共有頂点を共有する前記パスの別の部分との間の角度の値であるか、または前記パスの前記前記各エッジと前記第１のベクトルの前記方向との間の角度の値であり、αｙは、前記パスの前記前記各エッジと前記パスの前記前記各エッジの第２の共有頂点を共有する前記パスの別の部分との間の角度の値であるか、または前記のパスの前記前記各エッジと前記第２のベクトルの前記方向との間の角度の値であることをさらに備えること
を特徴とする請求項６または７のいずれかに記載のコンピュータ実装方法。
【請求項９】
前記平行６面体のうちの前記１または複数の部分が、前記第１のポイントと前記第２のポイントとを結ぶポリラインを形成すること
を特徴とする請求項１乃至８のいずれかに記載のコンピュータ実装方法。
【請求項１０】
工業製品の断面の面積を提供することと、
前記ポリラインに沿った形状を形成することであって、前記ポリラインは前記断面の中心であることをさらに備えること
を特徴とする請求項９に記載のコンピュータ実装方法。
【請求項１１】
前記第１のベクトルに結合された前記第１のポイントを提供することは、前記３次元シーンに第１の３次元オブジェクトを配置することを備えることであって、前記第１のベクトルは、前記３次元シーンの前記３次元オブジェクトを定位することと、
前記第２のベクトルに結合された前記第２のポイントを提供することは、前記３次元シーンに第２の３次元オブジェクトを配置することを備えることであって、前記第２のベクトルは、前記３次元シーンの前記３次元オブジェクトを定位することと、
を特徴とする請求項１乃至１０のいずれかに記載のコンピュータ実装方法。
【請求項１２】
前記与えられたパスのセットの各パスのプレビューを表示することと、
前記第１のポイントと前記第２のポイントとを結ぶ前記パスを示すために、前記プレビューのうちの１つを強調すること
を特徴とする請求項１乃至１１のいずれかに記載のコンピュータ実装方法。
【請求項１３】
コンピュータによって実行するための命令を備えるコンピュータプログラムであって、前記命令は、請求項１乃至１２のいずれかにおける方法を実行するための手段を備えること
を特徴とするコンピュータプログラム。
【請求項１４】
グラフィカルユーザインタフェースおよびメモリに結合されたプロセッサを備えるコンピュータ支援設計システムであって、前記メモリは、請求項１３の前記コンピュータプログラムを記録していることを特徴とするコンピュータ支援設計システム。
【請求項１５】
請求項１乃至１２のいずれかの方法によって取得可能なパスに沿ってルートされることを特徴とする３次元オブジェクト。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラムおよびシステムの分野に関し、より詳細には、３次元シーンにおいて第１のポイントと第２のポイントとを結ぶパスを設計する方法、コンピュータ支援システムおよびコンピュータプログラムに関する。
【背景技術】
【０００２】
オブジェクトの設計、エンジニアリングおよび製造に関するいくつかのシステムならびにプログラムが市場に提供されている。ＣＡＤは、コンピュータ支援設計(Computer-Aided Design)の頭字語であり、例えば、オブジェクトを設計するためのソフトウェアソリューションに関連する。ＣＡＥは、コンピュータ支援エンジニアリング(Computer-Aided Engineering)の頭字語であり、例えば、将来の製品の物理的挙動をシミュレートするためのソフトウェアソリューションに関連する。ＣＡＭは、コンピュータ支援製造(Computer-Aided Manufacturing)の頭字語であり、例えば、製造工程および製造作業を定義するためのソフトウェアソリューションに関連する。このようなコンピュータ支援設計システムにおいて、技術の効率に関してはグラフィカルユーザインタフェースが重要な役割を果たす。これらの技術をプロダクトライフサイクルマネジメント（ＰＬＭ）システムに組み込むことができる。ＰＬＭは、企業が拡張された事業概念に沿って製品データを共有し、共通のプロセスを適用し、製品の構想から寿命までの製品開発に関する企業知識を活用する助けとなるビジネス戦略を指す。
【０００３】
Ｄａｓｓａｕｌｔ  Ｓｙｓｔｅｍｅｓにより提供されるＰＬＭソリューション（ＣＡＴＩＡ、ＥＮＯＶＩＡおよびＤＥＬＭＩＡの商標に基づく）は、製品エンジニアリング知識を体系化するエンジニアリングハブと、製造エンジニアリング知識を管理する製造ハブと、事業を統合してエンジニアリングハブと製造ハブの両方に接続することを可能にする事業ハブとを提供する。このシステムが一体となって、製品、プロセス、リソースをリンクして、動的で、知識ベースの製品創造および意思決定支援を可能にすることによって最適化された製品定義、製造準備、生産およびサービスを推進するオープンオブジェクトモデルを遂行する。
【０００４】
ＣＡＤ／ＣＡＥ／ＣＡＭのコンテキストにおいて、製品の設計は、２点間のルートの設計を含むことである。ルートの設計は、典型的には、管を通すチュービング、パイプを通すパイピング、空気ダクトを通すＨＶＡＣ（暖房、換気および空調）、ケーブルを通す電気ケーブル、トレイを通す配線路などの、作業のために行われる。ルートの設計は、典型的には、自動車、建物、船舶、飛行機などの、工業製品に対して行われ、これらの工業製品によって、設計されたルートが現実的なものとなる。ルートは、工業製品が通常の形状であるため、典型的には、通常の角度および標準の曲げ半径で結ばれた直線部分の連続である。例えば、建物は、典型的には、互いに垂直に結合した壁を備える。壁は、従って、空気ダクトのルートを設計する場合に考慮するという制約を受ける。例えば、そのルートは、壁に沿ったパスに従う。
【０００５】
いくつかのＣＡＤシステムは、パイピングおよびチュービング設計能力を含むか、またはこれらの能力を提供するプラグインをＣＡＤソフトウェアにインストールできる。しかしながら、既存のソリューションは、いくつかの欠点を被る。まず、そのソリューションは、設計者が正しい入力によって正しいパスを素早く選択する助けとならない。特に、ソリューションが線のみの場合、設計者は、正しい精度でコンテキストとの衝突を確認することができない。さらに、既存のソリューションは、ソリューションが一つずつ示されるため、設計者がすべてのソリューションを見直すのに時間がかかる。さらに、不可能なソリューションが示される。不可能なソリューションは、実現できないソリューションである。例えば、同じ壁の３つの部分をたどる空気ダクトのルートは、不可能なソリューションであると見なされる。なぜならば、そのようなソリューションは、現実世界では実現できないからである。
【０００６】
このコンテキストにおいて、３次元シーンにおいて第１のポイントと第２のポイントを結ぶルートを設計するための改良された方法がさらに必要である。
【発明の概要】
【課題を解決するための手段】
【０００７】
一態様に従って、本発明は、３次元シーンにおいて第１のポイントと第２のポイントとを結ぶパスを設計するためのコンピュータ実装方法を与えることであって、
−第１のベクトルに結合された前記第１のポイントを提供するステップと、
−第２のベクトルに結合された前記第２のポイントを提供するステップと、
−平行６面体の多くても３つの部分をたどることによってパスのセットを提供するステップであって、前記平行６面体は、第１の頂点に提供された前記第１のポイントと、第２の頂点に提供された前記第２のポイントとを備え、前記平行６面体の部分は、エッジ、面対角線、空間対角線であることを特徴とするコンピュータ実装方法。
【０００８】
本方法は、以下のうちの１または複数を備えることができる。
−前記第１の頂点および前記第２の頂点は、前記平行６面体の対向面上にあり、前記パスのセットは、前記第１のポイントと前記第２のポイントとを結ぶ前記空間対角線から作成された１つの部分を備える１つのパスと、前記平行６面体の共有頂点を有する２つの部分を備える６つのパスであって、１つの部分は前記平行６面体の面対角線であり、前記対角線は、前記第１のポイントまたは前記第２のポイントを備え、かつ１つの部分はエッジであることと、３つの連続部分を備える６つのパスであって、各部分は、エッジであることを備えることと、
−前記第１の頂点および前記第２の頂点は、前記平行６面体の同じ面に属することであって、前記パスのセットは、前記第１の頂点および前記第２の頂点が属する前記面対角線である１つの部分を備える１つのパスと、２つの連続部分を備える２つのパスであって、各部分はエッジであることを備えることと、
−以下の定位：前記３次元シーンのグローバル定位の方向のうちの１つ、前記第１のベクトルによって与えられる方向、前記第２のベクトルによって与えられる方向、のうちの１つの周囲で定位することをさらに備えることと、
−前記第１のポイントおよび前記第２のポイントを結ぶ前記パスの少なくとも２つの部分を結ぶための曲げ半径を提供するステップをさらに備えることと、
−曲げ半径を提供した後、前記セットの各パスに対し、前記曲げ半径に従って前記第１のポイントと前記第２のポイントとの前記パスを結ぶ平行６面体を計算するステップをさらに備えることと、
−前記セットの各パスに対し、平行６面体を計算するステップは、
−前記第１のポイントと前記第１の頂点との間の距離Ｄ１が、
Ｄ１＝Ｂｅｎｄ  Ｒａｄｉｕｓ×（ｓｉｎα１）
となるように計算するステップであって、Ｂｅｎｄ  Ｒａｄｉｕｓは、前記与えられた曲げ半径の値であり、α１は、前記第１のベクトルの前記方向と前記第１の頂点に結ばれた前記パスの前記部分との間の角度であることと、
−前記第２のポイントと前記第２の頂点との間の距離Ｄ２が、
Ｄ２＝Ｂｅｎｄ  Ｒａｄｉｕｓ×（ｓｉｎα２）
となるように計算するステップであって、Ｂｅｎｄ  Ｒａｄｉｕｓは、前記与えられた曲げ半径の値であり、α２は、前記第２のベクトルと前記第２の頂点に結ばれた前記パスの前記部分との間の角度であることと、によって第１の頂点の新しい位置および第２の頂点の新しい位置を計算するステップを備えることと、
−前記パスの各エッジの長さ（Ｌ）を計算するステップと、前記長さ（Ｌ）が、
Ｌ≧Ｂｅｎｄ  Ｒａｄｉｕｓ×（ｓｉｎαｘ＋ｓｉｎαｙ）
であると判定することであって、Ｂｅｎｄ  Ｒａｄｉｕｓは、前記与えられた曲げ半径の値であり、αｘは前記のパスの前記前記各エッジと前記パスの前記前記各エッジの第１の共有頂点を共有する前記パスの別の部分との間の角度の値であるか、または前記パスの前記前記各エッジと前記第１のベクトルの前記方向との間の角度の値であり、αｙは、前記パスの前記前記各エッジと前記パスの前記前記各エッジの第２の共有頂点を共有する前記パスの別の部分との間の角度の値であるか、または前記のパスの前記前記各エッジと前記第２のベクトルの前記方向との間の角度の値であることと、
−前記平行６面体のうちの前記１または複数の部分が、前記第１のポイントと前記第２のポイントとを結ぶポリラインを形成することと、
−工業製品の断面の面積を提供するステップと、前記ポリラインに沿った形状を形成するステップであって、前記ポリラインは前記断面の中心であることをさらに備えることと、
−前記第１のベクトルに結合された前記第１のポイントを提供するステップは、前記３次元シーンに第１の３次元オブジェクトを配置するステップを備えることであって、前記第１のベクトルは、前記３次元シーンの前記３次元オブジェクトを定位するステップと、前記第２のベクトルに結合された前記第２のポイントを提供するステップは、前記３次元シーンに第２の３次元オブジェクトを配置するステップを備えることであって、前記第２のベクトルは、前記３次元シーンの前記３次元オブジェクトを定位するステップと、
−前記与えられたパスのセットの各パスのプレビューを表示するステップと、前記第１のポイントと前記第２のポイントとを結ぶ前記パスを示すために、前記プレビューのうちの１つを強調するステップとを備えること。
【０００９】
本発明は、コンピュータによって実行される命令を備えるコンピュータプログラムをさらに提案し、命令は、上記の方法を実行するための手段を備える。
【００１０】
本発明は、グラフィカルユーザインタフェースおよびメモリに結合されたプロセッサを備えるコンピュータ支援設計システムをさらに提案し、メモリ上に上記のコンピュータプログラムが記録されている。
【００１１】
本発明は、上記の方法によって取得可能なパスに沿ってルートされた３次元オブジェクトをさらに提案する。
【００１２】
本発明は、上記のコンピュータプログラムが記録されているコンピュータ可読記憶媒体をさらに提案する。
【００１３】
発明の実施形態は、限定されない例として、および添付図を参照してこれより説明される。
【図面の簡単な説明】
【００１４】
【図１】ルートをたどるポリラインの例を示す図である。
【図２】平行６面体の例を示す図である。
【図３】パスの例を示す図である。
【図４】パスの例を示す図である。
【図５】パスの例を示す図である。
【図６】パスの例を示す図である。
【図７】パスの例を示す図である。
【図８】パスの例を示す図である。
【図９】パスの例を示す図である。
【図１０】パスの例を示す図である。
【図１１】パスの例を示す図である。
【図１２】パスの例を示す図である。
【図１３】パスの例を示す図である。
【図１４】パスの例を示す図である。
【図１５】パスの例を示す図である。
【図１６】パスの例を示す図である。
【図１７】衝突検出の例を示す図である。
【図１８】パスのセットが同じ面側にある例を示す図である。
【図１９】パスの対角線部分のいくつかの角度の例を示す図である。
【図２０】パスのセットのうちの１または複数のパスが移動した例を示す図である。
【図２１】ソリューションの表示の例を示す図である。
【図２２】ソリューションの表示の例を示す図である。
【図２３】ソリューションの表示の例を示す図である。
【図２４】ソリューションの表示の例を示す図である。
【図２５】ソリューションの表示の例を示す図である。
【図２６】本発明の方法の例を示すフローチャートである。
【図２７】本発明の方法の例を示すフローチャートである。
【図２８】本発明の方法の例を示すフローチャートである。
【図２９】ＣＡＤシステムのグラフィカルユーザインタフェースの例を示す図である。
【図３０】ＣＡＤシステムの構造の例を示す図である。
【図３１】各パスに対する新しい平行６面体の計算の例を示す図である。
【発明を実施するための形態】
【００１５】
図２６から図２８までのフローチャートに関して、３次元シーンにおける第１のポイントと第２のポイントとを結ぶパスを設計するためのコンピュータ実装方法が提案される。パスは、直線、弧、曲線で結ばれるポイントの集合であるが、これらに限定されない。パスは、一連の線分が結ばれたポリライン（多角形連鎖とも呼ばれる）で表すことができる。ポイントのセットは、少なくとも２つのポイント、即ち、第１のポイントと第２のポイントを備える。第１のポイントを始点と呼び、第２のポイントを終点と呼ぶこともある。方法は、第１のベクトルに結合された第１のポイントを与えること、および第２のベクトルに結合された第２のポイントを与えることを備える。ベクトルは、大きさ（または長さ）、方向および定位を有する幾何学的オブジェクトである。例えば、ベクトルは、明確な定位の線分で表されるか、または始点Ａと終点Ｂを結ぶ矢印として図形的に表されることが多い。従って、第１および第２のベクトルは、３Ｄシーンにおいてそれぞれ第１のポイントと第２のポイントの定位を与える。方法は、平行６面体の多くても３つの部分をたどることによってパスのセットを提供することをさらに備える。言い換えれば、第１および第２のポイントを連結するルートのセットが与えられる。平行６面体は、その頂点のうちの１つに置かれた各パスの第１のポイント、即ち第１の頂点と、その頂点のうちの１つ置かれた各パスの第２のポイント、即ち第１の頂点とを備える。第１の頂点と第２の頂点は異なり、即ち、第１ポイントと第２のポイントは平行６面体の同じ頂点に置かれないことを理解されたい。平行６面体の部分は、エッジ、面対角線、空間対角線を指す。
【００１６】
このような方法は、パイピング、チュービング、ＨＶＡＣ、ケーブリングなどの、作業のために２つのポイントを結ぶルートの設計を大いに改善する。ここでモデル化される工業製品（例えば、パイプ、管、空気ダクト、ケーブル）に従うルートは、物理的法則および３Ｄシーンでシミュレートされる現実世界の基準を守らなければならない。まず、方法は、人間工学を改善する。実際、パスを再現するために平行６面体の部分を使用することによって、２つのポイントを結ぶ可能なすべてのパスを容易に取得できるようにする。即ち、可能なすべてのソリューションを設計者に一度に提案することができる。設計者は、取り得るすべてのソリューションの中で、保持されているソリューションを容易に選択することができることが理解される。さらに、平行６面体をパスのサポートとして使用することは、現実世界の条件をシミュレートする効率的なやり方を提供する。実際に、パスは、工学的コンテキスト（例えば、自動車工学、航空機工学、船舶工学、電気工学など）で再現され、工業製品がルートされる環境は、主に標準角度（例えば、４５°，６０°，９０°）で互いに結ばれた平面（例えば、壁）で構成される。例えば、建物内の電気ケーブルは、各フロアに電力を供給するのに垂直パスをたどり、電力を各フロアの各住宅に分配するのに水平パスをたどる。さらに、パスが平行６面体の部分から取得されるので、現実世界で受け入れ可能なソリューションを設計者に提供し易い。例えば、４つ以上のエッジをたどるパスは、パスに沿ってルートされる無駄な工業製品（例えば、パイプ、管、空気ダクト、ケーブル）を伴う恐れがあるため受け入れられないと決定されるかもしれない。さらに、提案されるソリューションが現実世界で受け入れ可能なソリューションであるため、不用なソリューションを計算する必要がなく、コンピュータ資源の使用がより少なくなる。さらに、平行６面体の部分を使用してパスを計算することは、平行６面体の部分がいくつかのソリューション間で共有されるので、すべてのソリューションを取得する全体時間が減り、従って１つの部分に行う１計算を再利用することができる。
【００１７】
方法は、コンピュータ実装される。これは、方法のステップ（または実質的にはすべてのステップ）が少なくとも１つのコンピュータによって実行されることを意味する。例において、少なくとも一部の方法のステップをトリガすることは、ユーザとコンピュータ間の対話を通じて実行され得る。ユーザとコンピュータとの間の対話に必要なレベルは、ユーザの望みを実現する必要性を予測してバランスを取る、自動性のレベルに依存する。例において、このレベルは、ユーザ定義および／または事前定義とすることができる。
【００１８】
例えば、第１のベクトルおよび第２のベクトルにそれぞれ結合された第１のポイントおよび第２のポイントを与えるステップは、ユーザアクションの後に実行でき、例えば、設計者がマウスなどの触覚デバイスを使用して２つのポイントを３Ｄシーンに入力し、そしてベクトルが位置付けされている座標系のグラフィック表現を定める（例えば、座標系の原点は、ベクトルの原点である）ことによって、各ベクトルの値を出すことができる。ポイントの方向は、３Ｄシーンに表示されるベクトルで表すこともでき、ユーザは、ポイントの方向を修正するために、ベクトルのグラフィック表現を動かすことができる。
【００１９】
方法をコンピュータ実装する典型的な例では、この目的に適したＧＵＩ（グラフィカルユーザインタフェース）を備えるシステムによって方法が実行される。ＧＵＩは、メモリおよびプロセッサに結合される。データベースを格納するメモリは、単にその格納に適している任意のハードウェアである。そのようなシステムは、３次元シーンにおける第１のポイントと第２のポイントを結ぶパスの設計を改善する。
【００２０】
「データベース」とは、探索および読み出しを行うために体系化されたデータの任意の集合体（即ち、情報）を意味する。メモリに格納された場合、データベースは、コンピュータによる高速な探索および読み出しが可能となる。データベースは、実際には、さまざまなデータ処理動作と共にデータを格納し、読み出し、修正し、および削除するのを容易にするために構造化されている。データベースは、レコードに細分化されるファイルまたはファイルのセットから成り、各レコードは１または複数のフィールドからなる。フィールドは、データ保存の基本単位である。ユーザは、主にクエリを通じてデータを読み出すことができる。キーワードおよびソーティングコマンドを使用して、ユーザは、用いられるデータベース管理システムのルールに従って、多数のレコード内のフィールドを素早く探索し、再配列し、グループ化し、そして選択して、データの特定の集約に対するレポートを読み出し、または作成することができる。
【００２１】
本方法の場合、データベースは、３次元モデル化オブジェクトを格納できる。第１の３次元モデル化オブジェクトは、第１のベクトルに結合された第１のポイントを与えることができ、第２の３次元モデル化オブジェクトは、第２のベクトルに結合された第２のポイントを与えることができる。データベースは、第１のベクトルに結合された第１のポイントおよび第２のベクトルに結合された第２のポイントを格納することもできる。
【００２２】
方法は、概してモデル化オブジェクトを操作する。モデル化オブジェクトは、データベースに格納されたデータによって定義される任意のオブジェクトである。拡大解釈すれば、「モデル化オブジェクト」という表現は、データ自体を指す。システムのタイプに従って、モデル化オブジェクトを異なる種類のデータによって定義できる。このシステムは、実際には、ＣＡＤシステム、ＣＡＥシステム、ＣＡＭシステム、および／またはＰＬＭシステムの任意の組み合わせとすることができる。そのような異なるシステムにおいて、モデル化オブジェクトは、対応するデータによって定義される。あるデータは、それに応じて、ＣＡＤオブジェクト、ＰＬＭオブジェクト、ＣＡＥオブジェクト、ＣＡＭオブジェクト、ＣＡＤデータ、ＰＬＭデータ、ＣＡＭデータに伝達できる。しかしながら、これらのシステムは、モデル化オブジェクトがこれらのシステムの任意の組み合わせに対応するデータによって定義されるので、互いに排他的でない。システムは、従って、以下で提供されるシステムの定義によって明らかになるように、ＣＡＤシステムとＰＬＭシステムの両方になる可能性がある。
【００２３】
ＣＡＤシステムの場合、ＣＡＴＩＡなどの、モデル化オブジェクトのグラフィック表現に基づいて少なくともモデル化オブジェクトを設計するのに適した任意のシステムを意味する。この場合、モデル化オブジェクトを定義するデータは、モデル化オブジェクトの表現を可能にさせるデータを備える。ＣＡＤシステムは例えば、エッジまたはライン、ある場合においてはフェイスまたはサーフェスを用いてＣＡＤモデル化オブジェクトの表現を提供できる。ライン、エッジ、またはサーフェスをさまざまな方法、例えば、ＮＵＲＢＳ（非均一有理Ｂスプライン）によって表現できる。具体的には、ＣＡＤファイルは、ジオメトリが生成される仕様を包含し、その仕様によって表現の生成が可能となる。モデル化オブジェクトの仕様を単一のＣＡＤファイルまたは複数のＣＡＤファイルに格納できる。モデル化オブジェクトをＣＡＤシステムで表現するファイルの典型的なサイズは、一部品当たり１メガバイトの範囲内である。そしてモデル化オブジェクトを、典型的には、数千の部品からなるアセンブリにすることができる。
【００２４】
ＣＡＤのコンテキストにおいて、モデル化オブジェクトを、典型的には、例えば、部品または部品のアセンブリ、あるいは製品のアセンブリなどの、製品を表現する３Ｄモデル化オブジェクトにすることができる。「３Ｄモデル化オブジェクト」は、その３Ｄ表現を可能とするデータによってモデル化された任意のオブジェクトを意味する。３Ｄ表現は、全角度から部品をビューすることが可能である。例えば、３Ｄモデル化オブジェクトが３Ｄ表現される場合、その軸を操作して任意に回転させたり、またはその表現が表示されている画面の軸を任意に回転させることができる。これは特に、３Ｄモデル化されていない２Ｄアイコンを排除する。３Ｄ表現の表示は、設計を容易にする（即ち、統計的に、設計者が自分の仕事を完成させる速度が上がる）。製品の設計が製造工程の一部であるため、この３Ｄ表現により産業における製造工程が高速化する。
【００２５】
ＣＡＤシステムを履歴ベースにすることができる。この場合、モデル化オブジェクトは、幾何学的特徴の履歴を備えるデータによってさらに定義される。モデル化オブジェクトは、実際には、生身の人間（即ち、設計者／ユーザ）が標準のモデリング機能（例えば、押し出し、回転、カット、および／またはラウンドなど）および／または標準のサーフェシング機能（例えば、スイープ、ブレンド、ロフト、フィル、変形、スムージングおよび／またはその他）を用いることによって設計される。そのようなモデリング機能をサポートする多くのＣＡＤシステムは、履歴ベースのシステムである。これは、設計特徴の履歴の作成が、典型的には、入力リンクおよび出力リンクを通じて前述の幾何学的特徴を結び付ける、非巡回データフローを介して保存されることを意味する。この履歴ベースのモデリングパラダイムは、８０年代当初からよく知られている。モデル化オブジェクトは、２つの永続的データ表現、即ち、履歴とＢ−ｒｅｐ（即ち、境界表現）によって記述される。Ｂ−ｒｅｐは、履歴で定義された計算結果である。モデル化オブジェクトが表現される時にコンピュータ画面に表示される部品の形状は、Ｂ−ｒｅｐ（のテッセレーション）である。部品の履歴は、設計意図である。基本的に、履歴は、モデル化オブジェクトに行なわれた動作についての情報を集める。Ｂ−ｒｅｐを履歴と共に保存して、複雑な部品を表示し易くすることができる。設計意図に従って部品の設計変更ができるようにするために、履歴をＢ−ｒｅｐと共に保存できる。
【００２６】
ＣＡＭは、コンピュータ支援製造(Computer-Aided Manufacturing)を表す。ＣＡＭソリューションの場合、製品の製造データを管理するのに適した任意のソリューション、ハードウェアのソフトウェアを意味する。製造データは、概して、製造する製品、製造工程および必要なリソースに関連するデータを含む。ＣＡＭソリューションを使用して、製品の全製造工程を計画して最適化する。例えば、ＣＡＭユーザに、固有のロボットなどの、製造工程の固有のステップにおいて使用される実現可能性、製造工程の期間またはリソースの数についての情報を提供することができ、従って、管理または必要な投資に関する決定を可能にする。ＣＡＭは、ＣＡＤプロセスおよび潜在的なＣＡＥプロセスの後に行われる後続プロセスである。このようなＣＡＭソリューションは、Ｄａｓｓａｕｌｔ  ＳｙｓｔｅｍｅｓによってＤＥＬＭＩＡ（登録商標）に基づいて提供される。
【００２７】
ＣＡＥは、コンピュータ支援エンジニアリング(Computer-Aided Engineering)を表す。ＣＡＥソリューションの場合、モデル化オブジェクトの物理的挙動を解析するのに適した任意のソリューション、ハードウェアのソフトウェアを意味する。よく知られて広く用いられているＣＡＥ技術は、有限要素法（ＦＥＭ）であり、典型的には、モデル化オブジェクトを要素に分割することに関与し、物理的挙動を数式によって計算してシミュレートすることができる。このようなＣＡＥソリューションは、Ｄａｓｓａｕｌｔ  ＳｙｓｔｅｍｅｓによってＳＩＭＵＬＩＡ（登録商標）に基づいて提供される。需要のある別のＣＡＥ技術は、ＣＡＤジオメトリデータを用いない異なる物理学の分野による、複数のコンポーネントで構成された複雑なシステムのモデリングおよび解析に関与する。ＣＡＥソリューションは、シミュレーションを可能にさせ、従って、製造する製品の最適化、改良および検証が可能となる。このようなＣＡＥソリューションは、Ｄａｓｓａｕｌｔ  ＳｙｓｔｅｍｅｓによってＤＹＭＯＬＡ（登録商標）に基づいて提供される。
【００２８】
ＰＤＭは、製品データ管理(Product Data Management)を表す。ＰＤＭソリューションの場合、特定の製品に関連するすべてのタイプのデータを管理するのに適した任意のソリューション、ハードウェアのソフトウェアを意味する。ＰＤＭは、製品のライフサイクルに関与するすべての行為者、即ち、主に技術者の他にプロジェクトマネージャ、財務担当者、販売担当者および購入者を含む人達によって使用され得る。ＰＤＭソリューションは、概して、製品指向データベースに基づく。このデータベースは、行為者が自分達の製品に関する一貫性のあるデータを共有できるようにさせ、従って、行為者が相違するデータを使用するのを防止する。このようなＰＤＭソリューションは、Ｄａｓｓａｕｌｔ  ＳｙｓｔｅｍｅｓによってＥＮＯＶＩＡ（登録商標）に基づいて提供される。
【００２９】
図２９は、システムのＧＵＩ（グラフィカルユーザインタフェース）の例を示しており、このシステムは、ＣＡＤシステムとすることができるが、これに限定されない。
【００３０】
ＧＵＩ２１００は、典型的なＣＡＤに似たインタフェースであり、標準のメニューバー２１１０、２１２０、ならびにボトムツールバー２１４０とサイドツールバー２１５０とを有する。このようなメニュー・ツールバーは、ユーザが選択可能なアイコンのセットを包含し、各アイコンは、当業者には周知であるように、１または複数の動作または機能と関連付けられている。これらのアイコンのいくつかは、ＧＵＩ２１００に示されている３Ｄモデル化オブジェクト２０００の編集および／または作業に適応されるソフトウェアツールと関連付けられている。ソフトウェアツールをワークベンチにグループ化することができる。各ワークベンチは、ソフトウェアツールのサブセットを備える。特に、ワークベンチのうちの１つは、モデル化製品２０００の幾何学的特徴を編集するのに適した、編集ワークベンチである。操作において、設計者は、例えば、オブジェクト２０００の部品を事前選択し、その後、適切なアイコンを選択して操作（例えば、面積、色の変更など）を開始するか、または幾何学的制約を編集できる。例えば、典型的なＣＡＤ操作は、画面に表示された３Ｄモデル化オブジェクトのパンチングまたはフォールディングのモデリングである。
【００３１】
ＧＵＩは、例えば、表示された製品２０００に関連するデータ２５００を表示できる。図２９の例において、「特徴ツリー」として表示されているデータ２５００およびその３Ｄ表現２０００は、ブレーキキャリバーとディスクとを含むブレーキアセンブリに関する。ＧＵＩは、例えば、編集された製品の操作のシミュレーションをトリガするか、または表示された製品２０００のさまざまな属性をレンダリングして、オブジェクトの３Ｄ定位を容易にするさまざまなタイプのグラフィックツール２１３０、２０７０、２０８０をさらに示すことができる。カーソル２０６０は、ユーザにグラフィックツールと対話させるハプティックデバイスによって制御される。
【００３２】
図３０は、コンピュータシステム、例えば、ＣＡＤシステムを示している。
【００３３】
コンピュータシステムは、内部通信バス１０００に接続されたＣＰＵ（中央処理装置）１０１０を備え、ＲＡＭ（ランダムアクセスメモリ）１０７０もバス１０００に接続されている。コンピュータシステムは、バス１０００に接続されたビデオランダムアクセスメモリ１１００と関連付けられたＧＰＵ（画像処理装置）１１１０をさらに備える。ビデオＲＡＭ１１００もフレームバッファとして当業者には周知である。大容量記憶デバイスコントローラ１０２０は、ハードドライブ１０３０などの大容量メモリデバイスへのアクセスを管理する。コンピュータプログラム命令およびデータを明示的に具体化するのに適した大容量メモリデバイスは、あらゆる形態の不揮発性メモリを含み、例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリなどの半導体メモリデバイスと、内部ハードディスクおよびリムーバブルディスクなどの磁気ディスクと、光磁気ディスクと、ＣＤ−ＲＯＭ１０４０とを含む。上述のいずれのメモリも、特別に設計されたＡＳＩＣ（特定用途向け集積回路）によって補完または組み込むことができる。ネットワークアダプタ１０５０は、ネットワーク１０６０へのアクセスを管理する。クライアントコンピュータは、カーソル制御デバイス、キーボードなどのハプティックデバイス１０９０を含むこともできる。カーソル制御デバイスをクライアントコンピュータで用いることによって、図２９を参照して述べたように、ユーザがカーソルをディスプレイ１０８０の希望の場所に選択的に位置付けするのが可能になる。さらに、カーソル制御デバイスは、ユーザがさまざまなコマンドを選択して、制御信号を入力できるようにする。カーソル制御デバイスは、制御信号をシステムに入力するいくつかの信号生成デバイスを含む。典型的には、カーソル制御デバイスをマウスにして、信号を生成するのにマウスのボタンを用いることができる。
【００３４】
信号を、画面に触れることによって生成することもでき、例えば、ディスプレイ１０８０は、タッチセンサー式ディスプレイである。
【００３５】
図２６から図２８に関して、本発明の例が論じられている。
【００３６】
ステップＳ１０において、第１のベクトルに結合された第１のポイントが設けられる。ポイントという用語は、３Ｄシーン内に場所を有するエンティティを意味する。３Ｄシーンは、オブジェクト間の空間関係が記述された３Ｄ空間である。一般に、３Ｄモデル化オブジェクトは、３Ｄシーンにおいて表現される。３Ｄシーンは、限定空間でも無限空間でも可能である。実際には、３Ｄシーンは、コンピュータの解像度により限定される。ポイントは、第１のベクトルに結合される。第１のベクトルは、３Ｄシーンのポイントの方向を与える。実際には、第１のベクトルは、座標系の原点がベクトルの原点であり、且つ座標系の原点が第１のポイントである、座標系に位置付けられる。言い換えれば、第１のベクトルは、座標系（ｘ，ｙ，ｚ）内に次元のセット（ｘ１，ｙ１，ｚ１）を備える。座標系の原点、ベクトルの原点、および第１のポイントは、３Ｄシーンの同じ座標（ｘ０，ｙ０，ｚ０）を有することができ、３Ｄシーンが定位されていることが理解される。実際には、座標系は、表示されるグラフィック表現を有することができる。ユーザは、当業者には周知であるように、座標系を動かして第１のベクトルの１または複数の値を変更することができる。第１のベクトルは、３Ｄシーンのグラフィック表現を有することができ、ユーザは、ポイントの方向を修正するためにこの表現を動かすことができる。第１のベクトルに結合された第１のポイントを与えることは、発明に従った方法を実行するシステムがポイントとベクトルに相対的なデータにアクセスすることができることを意味し、例えば、第１のポイントとベクトルに相対的なデータは、システムのメモリに格納され、メモリに結合されたＣＰＵ（コンピュータ処理装置）によってアクセス可能である。
【００３７】
ステップＳ１２において、第２のベクトルに結合された第２のポイントが設けられる。このステップは、ステップＳ１０と同様である。
【００３８】
実際には、ステップＳ１０とＳ１２はそれぞれ、３次元シーンに３Ｄモデル化オブジェクトを配置することによって実行され、そこで３Ｄオブジェクトは、ベクトルによって３次元シーンにおいて定位され、ベクトルに結合されたポイントは、３Ｄオブジェクトに含まれることが理解される。ポイントは、３Ｄオブジェクトの幾何学的中心に置かれるが、これに限定されない。３Ｄオブジェクトを３Ｄモデル化オブジェクトにしてよいことが理解される。
【００３９】
次に、ステップＳ２０において、平行６面体が与えられる。平行６面体は、３組の平行四辺形で形成された３次元図形であり、３組の平行面のいずれも角柱の基平面と見なすことができる。平行６面体は、４つの平行エッジを３セット有し、各セット内のエッジの長さは、等しい。平行６面体は、８つの頂点を有する。平行６面体は、６面を有する多面体と見なされ、各面は、平行四辺形である。
【００４０】
実際には、平行６面体は、平行四辺形が長方形である、直平行６面体である。直平行６面体は、有利には、平行６面体のエッジ間に普通角を有し、そのような普通角は、現実世界の工業製品の通常の形状に適している。
【００４１】
平行６面体は、第１の頂点に与えられた第１のポイントと第２の頂点に与えられた第２のポイントとを備える。第１の頂点と第２の頂点は同じではない、即ち、３Ｄシーン内の同じ場所ではないことを理解されたい。
【００４２】
平行６面体は、部分のセットを備え、エッジ、面対角線、空間対角線が部分になり得る。面対角線は、平行６面体の面、例えば、平行四辺形の２つの連続していない頂点を結ぶ（または連結する）線である。空間対角線は、平行６面体の隅と対向する隅を連結する線である。空間対角線は、当業者には周知であるように、略三角形または体積対角線とも呼ばれる。
【００４３】
平行６面体は、３次元シーンにおいて定位される。これは要するに、平行６面体を３Ｄシーンにおいて第１および第２の頂点の周囲で位置付けできるということである。実際には、第１および第２の頂点を通過する軸は、回転軸と考えられ、従って平行６面体は、３Ｄシーン内に複数の位置を有することができる。平行６面体の定位によって、平行６面体を３Ｄシーン内で固定させることができる。
【００４４】
平行６面体の定位は、平行６面体が組み込まれている３次元シーンのグローバル定位に相対的である。３Ｄシーンのグローバル定位は、概して３Ｄシーンの主基準座標系の周囲で行われる。実際には、３次元シーンのグローバル定位の３方向（ｘscene, ｙscene, ｚscene）のうちの１つは、重力に従って定位されると決定されている。標準的技法は、シミュレートされた世界の仮想接地に垂直になる方向ｚsceneを選択することである。言い換えれば、方向ｚsceneは、シミュレートされた世界の重力に従って定位される。例えば、平行６面体は、３次元シーンにおいてグローバル定位の定位された方向のうちの１つの方向で定位され得る。例えば、平行６面体の１つのエッジは、グローバル定位のｚscene軸と同じ方向を有する。
【００４５】
平行６面体の定位は、当業者には周知であるように、第１のベクトルの方向に相対的である。例えば、第１のポイントに結合された第１のベクトルは、平行６面体のエッジを方向として有するベクトルと共線となる。別の例として、第１のベクトルは、平行６面体と結び付いたベクトル、例えば、平行６面体の頂点のうちの１つから開始したベクトルと共線となる。
【００４６】
第２のベクトルの方向に相対的な定位を第１のベクトルの定位と同様に実行できる。
【００４７】
平行６面体の定位は、有利には、パスが第１のポイントと第２のポイントを連結しようとするコンテキストを考慮に入れるようにできる。実際には、平行６面体が第１のベクトル、第２のベクトルの周囲で定位されか、または３Ｄシーンの定位に応じて異なるが、パスのいくつかのソリューションが拒否される場合もある。例えば、パスと３Ｄシーンの他のオブジェクトとの衝突は、平行６面体の定位に応じて現れる可能性がある。
【００４８】
これより図２を参照すると、ステップＳ１０からＳ２０の例が示されている。２つの３Ｄモデル化オブジェクト３００、３０２が３Ｄシーン内に配置されている。第１および第２の３Ｄモデル化オブジェクトは、Ｔ字パイプ継ぎ手である。Ｔ字パイプ継ぎ手は、主配管をつなぐ９０°の２つの出口を有する。ここで、第１のポイント３１０と第２のポイント３１２は、３Ｄモデル化オブジェクト上に置かれていないが、それらのポイントは、どのようにも３Ｄモデル化される部分である。それらのポイントは、Ｔ字パイプ継ぎ手のパイプのうちの１つの軸上に配置される。２つのポイント３１０、３１２のそれぞれは、ベクトルがそれぞれのポイントに結合されたベクトル３２０、３２２によって３Ｄシーン内で定位される。図２の例において、ベクトル３２０、３２２はそれぞれ、エッジ３３０、３３２と共線であり、各Ｔ字パイプ継ぎ手は、従って平行６面体のエッジと一直線になる出口の軸を有する。直平行６面体は、垂直エッジ（例えば、３４４）が方向ｚsceneと共線になるように方向ｚsceneに従って定位されている。エッジ３３０、３４０、３４２を備える平行６面体の面は、従ってシミュレートされた世界の仮想グラウンドと平行である。従って、この例において、ベクトル３２０は、エッジ３３０と共線であるだけでなく方向ｙsceneとも共線であり、方向ｘsceneは、エッジ３４０と共線である。この例における３Ｄシーンの主基準座標系（ｘscene, ｙscene, ｚscene）は正規直交座標系であることが理解される。
【００４９】
図２６のフローチャートに戻り、ステップＳ３０において、第１の頂点と第２の頂点にそれぞれ置かれた第１のポイントと第２のポイントが、平行６面体の対向面上にあるかどうかが判定される。対向面は、共有頂点を有しない平行６面体の一組の面を意味する。これは要するに、第１および第２のポイントが平行６面体の対向頂点上にあるかどうかが判定されるということであり、対向頂点は、第１のベクトルと結ばれた３つのエッジが第２のベクトルと結ばれた３つのエッジとつながっていないことを意味する。ステップＳ３０の結果により、第１のポイントと第２のポイントを結ぶ２つの異なるパスのセットをユーザに提供することができる。
【００５０】
図１８は、第１のポイントと第２のポイントが平行６面体の対向面上に置かれていない、つまり、第１および第２の頂点が平行６面体の同じ面に属する事象における本発明の例を示している。この事例において、各パスが第１のポイントから開始して、第２のポイントで終了する（またはその逆）３つのパスのセットが与えられ、パスのセットは、以下の３つのパスを備える。
【００５１】
（ｉ）１つのパスは、平行６面体の１つの部分を備え、その１つの部分は、第１および第２の頂点が属する面対角線である。
【００５２】
（ｉｉ）２つのパスは、平行６面体の２つの連続部分を備え、平行６面体の各部分は、エッジである。
【００５３】
図１８は、Ｔ字パイプ継ぎ手を表す２つの３Ｄモデル化オブジェクトが３Ｄシーン内の同じ平面上に置かれている例を示している。３Ｄモデル化オブジェクト３００、３０２は、平行６面体の同じ面に属する第１のポイント３１０と第２のポイント３１２を除いては、図２のモデル化オブジェクトと同じである。この図面において、２つのポイントに共通の面のみが表されている。第１のポイント３１０と第２のポイント３１２を結ぶパス１９００は、第１および第２のポイントが属する面対角線から作られている。一方のパスは、２つの連続エッジ１９０２、１９０４を備え、他方のパスは、２つの連続エッジ１９０６、１９０８を備える。
【００５４】
これより図２８を参照すると、ステップＳ４００において、曲げ半径が与えられている。内曲率を出すのに測定される曲げ半径は、当業者には周知であるように、パイプ、管、シート、ケーブルまたはホースをねじらず、損傷せず、または寿命を縮めずに曲げることができる最小半径である。最小曲げ半径は、それ未満ではオブジェクトを曲げてはならない半径である。曲げ半径の提供は、ユーザアクション、例えば、ユーザが曲げ半径の値を入力した後に実行することができる。あるいはまた、曲げ半径は、方法を実行するシステムによって自動的に提供されることができ、例えば、デフォルト値が与えられて、このデフォルト値は、パスをたどることを目的とするオブジェクト（例えば、パイプ、電気ケーブル）によって異なることもある。曲げ半径の提供は、曲げ半径の値がシステムに利用可能であること、例えば、システムのメモリに格納されて、メモリに結合されたＣＰＵによってアクセス可能であることを意味する。
【００５５】
次に、ステップＳ４０２において、パスのセットの各パスに対し、曲げ半径に従って第１および第２のポイントを結ぶ平行６面体が計算される。曲げ半径は、第１および第２のポイントを結ぶパスの少なくとも２つの部分を結ぶための幾何学的制約を導入する。特に、第１および第２の頂点上に配置された第１および第２のポイントを定位せず、第１または第２のポイントを結ぶパスに与えられた曲げ半径を順守できるようにする場合もある。実際には、第１のポイントから開始するパスは、第１のポイントに結合されたベクトルのうちの１つと同じ方向になるはずであり、第２のポイントに到着するパスは、第２のポイントに結合されたベクトルのうちの１つと同じ方向になるはずである。従って、第１および／または第２のポイントの定位および平行６面体の定位に応じて、曲げ半径が順守される場合も順守されない場合もある。
【００５６】
提供された曲げ半径が、第１のポイントから開始する部分または所与のパスの第２のポイントに対して順守されない事象において、新しい平行６面体を計算して、曲げ半径が適用されるようにできる。
【００５７】
実際には、これは、第１の頂点および第１のポイントがもはや３Ｄシーン内の同じ場所に置かれないこと、および第２の頂点および第２のポイントがもはや３Ｄシーン内の同じ場所に置かれないことを伴う場合もある。
【００５８】
新しい平行６面体の各パスの計算は、第１の頂点の新しい位置および第２の頂点の新しい位置の計算を含むことができる。
【００５９】
第１の頂点の新しい位置は、第１のポイントと第１の頂点との間の距離Ｄ１を計算することによって取得され、その計算は（ｉ）第１のポイントに結合された第１のベクトルの方向および（ｉｉ）第１のベクトルと結ばれたたパスの部分、例えば、パスがたどる第１のエッジの方向を考慮に入れる。距離Ｄ１は、第１のポイントと第１の頂点との間の距離であり、第１のポイントと第１の頂点の両方が第１のポイントに結合された第１のベクトルによって与えられた方向に置かれることが理解される。
【００６０】
任意には、角度α１を決定し易くするために第３のベクトルを第１の頂点と結ばれたパスの部分に与えることができる。この第３のベクトルの方向は、第１の頂点と結ばれたパスの部分であり、第３のベクトルをパスの方向（例えば、第１のポイントから第２のポイント）に従って定位できる。
【００６１】
距離Ｄ１は、関係式
Ｄ１＝Ｂｅｎｄ  Ｒａｄｉｕｓ×（ｓｉｎα１）
によって定義され、ここでＢｅｎｄ  Ｒａｄｉｕｓは、ステップＳ４００において与えられた曲げ半径の値であり、α１は、第１のベクトルと第１の頂点と結ばれたパスの部分の距離との間の角度の値である。従って、Ｄ１はＢｅｎｄ  Ｒａｄｉｕｓとｓｉｎα１との積である。
【００６２】
同様に、第２の頂点の新しい位置は、第２のポイントと第２の頂点との間の距離Ｄ２を計算することによって取得され、その計算は（ｉ）第２のポイントに結合された第２のベクトルの方向および（ｉｉ）第２のベクトルと結ばれたたパスの部分、例えば、パスがたどる最後のエッジの方向を考慮に入れる。距離Ｄ２は、第２のポイントと第２の頂点との間の距離であり、第２のポイントと第２の頂点の両方が第２のポイントに結合された第２のベクトルによって与えられた方向に置かれることが理解される。
【００６３】
距離Ｄ２は同様に、関係式
Ｄ２＝Ｂｅｎｄ  Ｒａｄｉｕｓ×（ｓｉｎα２）
によって定義され、ここでＢｅｎｄ  Ｒａｄｉｕｓは、ステップＳ４００において与えられた曲げ半径の値であり、α２は、第２のベクトルと第１の頂点と結ばれたパスの部分の距離との間の角度の値である。従って、Ｄ２はＢｅｎｄ  Ｒａｄｉｕｓとｓｉｎα２との積である。実際には、Ｂｅｎｄ  Ｒａｄｉｕｓとｓｉｎα２との値は、度数(degree)となる。
【００６４】
角度α１に関して、任意にはベクトル（例えば、第４のベクトル）を、角度α２を決定し易くするために第２の頂点と結ばれたパスの部分に与えることができる。この第４のベクトルの方向は、第２の頂点と結ばれたパスの部分であり、このベクトルをパスがたどる方向（例えば、第２のポイントから第１のポイント）に従って定位できる。
【００６５】
平行６面体の定位は、距離Ｄ１を計算するための定位と同じであり、つまり、平行６面体の定位は、距離Ｄ１およびＤ２を計算する間変化しないままである。
【００６６】
実際には、（第１または第２の頂点と結ばれたパスの部分を提供できる）第３および第４のベクトルは、平行６面体の３つの主方向、即ち、ＤｉｒＡ、ＤｉｒＢ、ＤｉｒＣを用いて取得される。
【００６７】
ＤｉｒＡは、上記で論じたように、３Ｄシーン内の平行６面体の定位に応じて異なる。これは、ＤｉｒＡが以下のうちの１つになり得ることを意味する。
【００６８】
（ｉ）平行６面体が第１のベクトルの周囲に定位されている事象において第１のポイントに結合された第１のベクトルの方向。
【００６９】
（ｉｉ）平行６面体が第２のベクトルの周囲に定位されている事象において第２のポイントに結合された第２のベクトルの方向。
【００７０】
（ｉｉｉ）任意に選択されたシーンのグローバル定位の方向（ｘscene, ｙscene, ｚscene）のうちの１つ。
【００７１】
ＤｉｒＢは、シミュレートされた世界の仮想グラウンドに垂直になるように選択される方向である。標準的技法は、シミュレートされた世界の重力に従って定位される方向ｚsceneを選択することである。主方向ＤｉｒＡが方向ｚsceneである事象であれば（事例（ｉｉｉ））、グローバル定位の別の方向を主方向ＤｉｒＢとして選択することができることを理解されたい。
【００７２】
ＤｉｒＣは、ＤｉｒＡおよびＤｉｒＢを表すベクトルのベクトル積（または外積）を計算することによって取得される。
【００７３】
従って、（以前に定位された）直平行６面体の各エッジが３つの主方向ＤｉｒＡ、ＤｉｒＢ、ＤｉｒＣのうちの１つと共線となる結果が生じる。
【００７４】
第１および第２の頂点の新しい位置が分かると、平行６面体の残りの６つの頂点の位置を推定することが可能である。
【００７５】
図３１を参照すると、ポイントとポイントが置かれた頂点との間の距離Ｄが示されている。この距離は、ポイントに結合されたベクトルの方向に沿って測定され、この方向は、ポイントと頂点の両方を含む。距離は、典型的にはユークリッド距離である。ポイントが最初に置かれた頂点は、新しい平行６面体を計算するためのパスに属する平行６面体の部分の方向を表すベクトルに結合される。角度αは、ベクトルとベクトルで表される部分の方向（図３１の点線で表されている）との間の角度である。
【００７６】
次に、ステップＳ４０４において、図１、図２および図３を参照して以下で説明されるように、第１のポイントと第２のポイントを結ぶポリラインが計算される。
【００７７】
図５から図１７までは、第１のポイント（左側）と第２のポイント（右側）が平行６面体の対向面上に置かれている、つまり、第１の頂点と第２の頂点が平行６面体の同じ面に属していない事象において可能なソリューションとして保持されているパスのセットのパスの例が示されている。この事例において、各パスが第１のポイントから開始して、第２のポイントで終了する（またはその逆）パスのセットが与えられ、パスのセットは、以下の１３つのパスを備える。
【００７８】
（ｉ）図４に示されているように、第１と第２のポイントを結ぶ中心対角線から作られた１つの部分を備える１つのパス。
【００７９】
（ｉｉ）各パスが３つの連続部分を備え、各部分がエッジである６つのパス。これら６つのパスは、図５から図１０に示されている。
【００８０】
（ｉｉｉ）各パスが平行６面体の共有頂点を有する２つの部分から成る３つのパスであって
−１つの部分は、平行６面体の面対角線であり、その対角線は、第１のポイントを備えることと、
−１つの部分は、第２のポイントを備えるエッジであること。これらの３つのパスは、図１２、図１４および図１６に示されている。
【００８１】
（ｉｖ）各パスが平行６面体の共有頂点を有する２つの部分から成る３つのパスであって
−平行６面体の１つの部分は、平行６面体の面対角線であり、その対角線は、第２のポイントを備えることと、
−平行６面体の１つの部分は、第１のポイントを備えるエッジであること。これらの３つのパスは、図１１、図１３および図１５に示されている。
【００８２】
これより図２７を参照すると、ステップＳ５００において、曲げ半径が与えられている。このステップは、ステップＳ４００と同様である。
【００８３】
次に、ステップＳ５０２において、それぞれのパスに対し、曲げ半径に従って第１および第２のポイントを結ぶ平行６面体が計算される。このステップは、ステップＳ４０２と同様である。
【００８４】
次に、ステップＳ５０４において、ステップＳ５０２の計算された各平行６面体に対し、パスの各エッジの長さＬが
Ｌ≧Ｂｅｎｄ  Ｒａｄｉｕｓ×（ｓｉｎαｘ＋ｓｉｎαｙ）
となるかどうかが判定される。ここで
−Ｂｅｎｄ  Ｒａｄｉｕｓは、ステップＳ５００において与えられた曲げ半径の値である。
−αｘは、パスの（Ｌを測定するための）エッジとエッジの第１の共有頂点を共有するパスの別の部分との間の角度の値である。あるいはまた、αｘは、エッジと第１のベクトルの方向との間の角度の値になり、この場合、角度αｘは、第１のポイントから第２のポイントまでのパスをたどる場合に合致するパスの第１の曲げ角度である。
−αｙは、（Ｌを測定するための）エッジとエッジの第２の共有頂点を共有するパスの別の部分との間の角度の値である。あるいはまた、αｙは、エッジと第２のベクトルの方向との間の角度の値になり、この場合、角度αｙは、第１のポイントから第２のポイントまでのパスをたどる場合に合致するパスの最後の曲げ角度である。またはその逆に、角度αｙは、第２のポイントから第１のポイントまでのパスをたどる場合に合致するパスの第１の曲げ角度である。実際には、Ｂｅｎｄ  Ｒａｄｉｕｓ、αｘおよびαｙは、度数で表される。
【００８５】
角度αｘ（またはαｙ）が、エッジの２つの頂点を１つに連結した平行６面体の２つの部分の間の角度である場合、角度αｘ（またはαｙ）は、典型的には、直平行６面体で９０°である。
【００８６】
角度αｘ（またはαｙ）が、エッジと第１（または第２の）ポイントの方向との間の角度である場合、角度αｘ（またはαｙ）は、任意の値を有することができる。この場合、角度αｘ（またはαｙ）は、第１（または第２の）ポイントに結合された第１（または第２の）ベクトルと、以前に示したように、任意に与えられた第３のベクトルとの間の角度であると考えられる。
【００８７】
パスのエッジの長さが、計算された長さの値Ｌよりも短い事象において、そのパスは保有されない。つまり、そのパスは、提案されたソリューションではない。実際には、長さＬは、有利には、パスのエッジが、パスの２つの部分の間または第１のポイントと部分の間または第２のポイントと部分の間の正しい曲げ半径を可能にするのに十分な長さであることを検証できるようにさせる。
【００８８】
これより図２０を参照すると、エッジの長さＬが短すぎて、オブジェクト３００の第１のポイント３１０と一方の側のエッジ３４０のパスの部分との間のパスの正しい曲げが不可能であり、そしてエッジ３４０と別の側のもう１つのエッジ３５０のパスの部分との間のパスの部分の正しい曲げが不可能である平行６面体の例が示されている。結果的に、エッジ３４０をたどるパスの部分を備えるすべてのパスは、可能なソリューションとして保有されない。
【００８９】
次に、ステップＳ５０８において、第１のポイントと第２のポイントを結ぶポリラインが計算される。ポリラインの計算は、当業者には周知のやり方で行われる。
【００９０】
これより図１を参照すると、図５で表されたソリューションによるパスの計算されたポリラインの例が示されており、図５のパスは、平行６面体の３つの連続エッジから成る。図１は、本発明によって提供された図２の例のパスを示している。
【００９１】
図１で示されたポリラインは、平行６面体のエッジ３４０の頂点３１０および１０２を連結する第１の部分１１０と、エッジ３４２の頂点１０２および１０４を連結する第２の部分１１４と、エッジ３４４の頂点１０４および３１２を連結する第３の部分１１８とを備える。平行６面体の連続する部分１１０、１１４、１１８は、与えられた曲げ半径によって値が固定された曲線と互いに結ばれている。平行６面体の連続部分１１０、１１４、１１８が互いに結ばれているという表現は、部分１１０が共有頂点１０２経由で部分１１４に連結されていること、および部分１１４が共有頂点１０４経由で部分１１８に連結されていることを意味する。従って、ポリラインは、直線部１１０、１１４、および１１８と、連続直線部を結ぶ曲線部１１２および１１４とを備える。
【００９２】
これより図３を参照すると、平行６面体が曲げ半径に従って再計算された例が論じられている。与えられたポイントＡ１およびＢ１は、ベクトルに結合されて、もはや平行６面体の頂点上に配置されない。なぜならば、曲げ１および曲げ４に対して与えられた曲げ半径が順守されるように平行６面体が再計算されているからである。表示されているパスは、平行６面体のエッジＤ７、Ｄ２、およびＤ１０を備える。これら３つの連続する部分セグメント１、セグメント２、セグメント３は、互いに曲線曲げ２、曲げ３と結ばれ、ポイントＡ１は、曲線曲げ１を用いてセグメント１に連結され、ポイントＡ２は、曲線曲げ４を用いてセグメント３に連結される。
【００９３】
興味深いことに、開始ポイントＡ１に結合されたベクトルＡ１は、エッジＤ１２の１つのベクトル（図示せず）と共線であり、エッジＤ７とベクトルＡ１との間の角度αｘは、９０°であることから、この平行６面体が直平行６面体であることが理解される。反対に、終了ポイントＡ２に結合されたベクトルＡ２は、エッジＤ１０を有する９０°とは異なる角度αｙを形成する。なぜならば、ベクトルＡ２は、エッジＤ４、Ｄ６、Ｄ１０のどのベクトル（図示せず）とも共線でないからである。特に、ベクトルＢ１の方向と新しい平行６面体を計算するためのパスによって占められるエッジＤ１０との間の角度αｙは、９０°とは異なる。興味深いことに、ベクトルＡ１の方向は、ポイントＡ１と頂点Ｃ１を備え、ベクトルＢ１の方向は、ポイントＢ１と頂点Ｃ４を備える。
【００９４】
ステップＳ４０４は、ステップＳ５０８と同様である。
【００９５】
実際には、パスのセットの各パスに対するポリラインが計算されると、計算されたポリラインに沿った形状が形成される。ポリラインは、形状の断面の中心である。工業製品の断面の面積は、典型的には、ユーザアクションの後に設けられることから、本発明を実行するシステムによって断面のデフォルト面積を与えることができることが理解される。工業製品は、産業で使用される、または少なくとも工業工程に関与することを目的とした製品である。例えば、パイプ、電気ケーブル、空気ダクト、トレイは、工業製品である。工業製品は、典型的には、線（計算されたポリライン）に沿って拡張される通常の形状でモデル化される。形状の断面は、円形、正方形、長方形、楕円、半楕円とすることができるが、これらに限定されない。
【００９６】
これより図１７を参照すると、衝突解析が発生したことにより、パスのセットのパスがソリューションとして設計者に提示されていない例を示している。図１７において、平行６面体のいくつかの部分である曲面が示されている。平行６面体の１または複数の交差部分を備えた、設計者に提示されたパスのセットの各パスが廃棄される。衝突解析は、計算が平行６面体の部分に対して実行され、そのパスに対して計算されないので容易であることを理解されたい。
【００９７】
あるいはまた、衝突解析は、ソリューションとして提案された１または複数のパス間の衝突を理解することができる設計者によって直接実行される。実際には、本発明に従ってすべてのソリューションの表現が現実的であるので、設計者は、シーンの他のオブジェクトとの衝突を理解することができ、従ってバスソリューションを選択しない。
【００９８】
これより図１９を参照すると、面の対角線部分を修正して、対角線から開始するエッジと対角線との間から成る角度が既定の値を有するようにできる本発明の例を示している。対角線から開始するエッジは、第１のポイントから第２のポイントをたどる時に査走される面の第１の頂点を備える面のエッジであると定義される。従って、対角線は、もはや面の２つの対向ポイントを結ばないが、第１の頂点を備える面のエッジを連結するエッジ上に置かれた新しいポイントと面の第１の頂点とを結ぶ。実際には、この既定された角度の値は、パスをたどる工業製品に関して標準値になるように選択される。例えば、パスがパイプをルートする意図であれば、パイプの技術分野の標準角度は、４５°，６０°，９０°である。より一般的には、既定の値を４５°，６０°，９０°とすることができる。
【００９９】
例えば、図１９について、表された面の対角線部分の間の最初の角度は、５５．１２°であり、標準値ではない。面の対角線部分が修正されると、新しい角度は、４５°の標準値を有する。
【０１００】
修正された対角線を有するパスは、対角線で連結された以前の頂点と新しく置かれたポイントとを連結する新しい部分を備えることが理解される。
【０１０１】
これより図２１から図２５を参照すると、ソリューションの表示のいくつかの例が表されている。このソリューションは、本発明の結果として取得されたパスのセットである。
【０１０２】
図２１において、（パスのセットのすべてのパスである）すべてのソリューションが示されている。
【０１０３】
図２２において、エッジ上のパスのみが示されている。さらに、デフォルトソリューションも示されており、ここではパスが平行６面体の空間対角線の部分として与えられている。
【０１０４】
図２３において、面（対角線）上のパスが、ここではパスが平行６面体の空間対角線の部分として与えられているデフォルトソリューションと共に示されている。
【０１０５】
図２４において、表示されたソリューションのセットは、ビューの軸に従って定位されている。平行６面体を定位する軸システムは、第１および第２のベクトルに結合された与えられた第１および第２のポイントにリンクされていない。
【０１０６】
図２５において、平行６面体は、ビューの軸、つまり、３Ｄシーンのグローバル定位のうちの１つ、および第１のポイントの方向をたどる。第３の軸は、軸システムの直交性を保つために以前の２つの軸から計算される。あるいはまた、平行６面体は、ビューの軸のうちの１つおよび第２のポイントの方向をたどる。第３の軸は、軸システムの直交性を保つために以前の２つの軸から計算される。
【０１０７】
本設計方法は、３次元シーンにおいて第１のポイントと第２のポイントを結ぶパスを設計することを目的としている。「パスの設計」は、パスの作り上げるプロセスの少なくとも一部である任意のアクションまたは一連のアクションを指す。
【０１０８】
コンピュータプログラムは、コンピュータによる命令を備えることができ、その命令は、上記のシステムに上記の方法を実行させるための手段を備える。本発明を、例えば、デジタル電子回路に実装するか、またはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせに実装できる。発明の装置は、プログラム可能なプロセッサによって実行されるマシン可読記憶デバイスに有形に具体化されるコンピュータプログラム製品に実装されてもよいし、発明の方法ステップは、入力データで動作して出力を生成することによって本発明の機能を実行する命令のプログラムを実行するプログラム可能なプロセッサによって実行されてもよい。
【０１０９】
本方法は、有利には、プログラム可能なシステム上で実行可能である１または複数のコンピュータプログラムに実装されることができ、プログラム可能なシステムは、データおよび命令をデータ記憶システムから受信してデータ記憶システムに送信するために接続された少なくとも１つのプログラマブルプロセッサと、少なくとも１つの入力デバイスと、少なくとも１つの出力デバイスとを含む。アプリケーションプログラムは、ハイレベルの手続き型もしくはオブジェクト指向のプログラミング言語か、または必要に応じてアセンブリ言語もしくは機械語に実装されてもよい。いずれの場合も、それらの言語は、コンパイラ型またはインタープリタ型言語とすることができる。
【図１】
2015026377.tif 000003
【図２】
2015026377.tif 000004
【図３】
2015026377.tif 000005
【図４】
2015026377.tif 000006
【図５】
2015026377.tif 000007
【図６】
2015026377.tif 000008
【図７】
2015026377.tif 000009
【図８】
2015026377.tif 000010
【図９】
2015026377.tif 000011
【図１０】
2015026377.tif 000012
【図１１】
2015026377.tif 000013
【図１２】
2015026377.tif 000014
【図１３】
2015026377.tif 000015
【図１４】
2015026377.tif 000016
【図１５】
2015026377.tif 000017
【図１６】
2015026377.tif 000018
【図１７】
2015026377.tif 000019
【図１８】
2015026377.tif 000020
【図１９】
2015026377.tif 000021
【図２０】
2015026377.tif 000022
【図２１】
2015026377.tif 000023
【図２２】
2015026377.tif 000024
【図２３】
2015026377.tif 000025
【図２４】
2015026377.tif 000026
【図２５】
2015026377.tif 000027
【図２６】
2015026377.tif 000028
【図２７】
2015026377.tif 000029
【図２８】
2015026377.tif 000030
【図２９】
2015026377.tif 000031
【図３０】
2015026377.tif 000032
【図３１】
2015026377.tif 000033
【外国語明細書】
2015026377000001.pdf