(57)【要約】      （修正有）【課題】張り出しボリュームが最適となるような、３Ｄモデル化オブジェクトの１つまたは複数の向きを決定する方法を提供する。【解決手段】現実の物体を表す３Ｄモデル化オブジェクトを提供するＳ１０を含む。本方法はまた、張り出しボリュームが最適となるような、３Ｄモデル化オブジェクトの１つまたは複数の向きを決定するＳ４０、Ｓ５６を含む。これにより３Ｄプリンティングが改善される。【選択図】図６
2018129031.tif 000002
【特許請求の範囲】
【請求項１】
現実の物体の３Ｄプリンティングの向き付けを行う、コンピュータにより実施される方法であって、
前記現実の物体を表す３Ｄモデル化オブジェクトを提供すること（Ｓ１０）と、
張り出しボリュームが最適となるような、前記３Ｄモデル化オブジェクトの１つまたは複数の向きを決定すること（Ｓ４０、Ｓ５６）と
を含むことを特徴とする方法。
【請求項２】
前記１つまたは複数の向きを決定することは、
向きの有限離散集合の各向きについて、張り出しボリュームを算出することと、
前記算出した張り出しボリュームが最適となるような、前記３Ｄモデル化オブジェクトの１つまたは複数の向きを特定すること（Ｓ４０）と
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記向きの離散集合は、すべての向きの領域の一定密度サンプリングに対応する
ことを特徴とする請求項２に記載の方法。
【請求項４】
前記１つまたは複数の向きを決定することは、さらに、前記算出した張り出しボリュームが最適であるような前記特定した向きのうちの１つまたは複数について、
前記３Ｄモデル化オブジェクトのスナッピングに対応する、前記３Ｄモデル化オブジェクトの１つまたは複数の他の向きを決定すること（Ｓ５２）と、
前記１つまたは複数の他の向きのそれぞれについて、張り出しボリュームを算出すること（Ｓ５４）と、
前記算出した張り出しボリュームが最適となるような、前記３Ｄモデル化オブジェクトの１つまたは複数の他の向きを特定すること（Ｓ５６）と
を含むことを特徴とする請求項２または３に記載の方法。
【請求項５】
前記離散集合の各向きについて張り出しボリュームを算出することは、
前記３Ｄモデル化オブジェクトを当該向きまたは反対の向きに位置決めすること（Ｓ２１）と、
張り出し区間を決定することと、
前記張り出し区間の長さを合計すること（Ｓ３４）と
を含むことを特徴とする請求項２、３または４に記載の方法。
【請求項６】
前記向きの離散集合は、向きおよびそれと反対の向きを含む少なくとも１つの対を含み、前記３Ｄモデル化オブジェクトの位置決めは、当該対について一度だけ実行することを特徴とする請求項５に記載の方法。
【請求項７】
前記対における両方の向きについて少なくとも１つの同じ張り出し区間を決定し、前記同じ張り出し区間は当該対について一度だけ決定することを特徴とする請求項６に記載の方法。
【請求項８】
前記張り出し区間を決定することは、鉛直線と前記３Ｄモデル化オブジェクトの交点を決定すること（Ｓ２６）と、張り出しに対応する鉛直線の区間を決定すること（Ｓ３２）とを含むことを特徴とする請求項５、６、または７に記載の方法。
【請求項９】
前記３Ｄモデル化オブジェクトは多角形メッシュを含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記鉛直線は前記３Ｄモデル化オブジェクトを覆うことを特徴とする請求項８または９に記載の方法。
【請求項１１】
前記鉛直線と前記３Ｄモデル化オブジェクトの交点を決定することは、
水平面上に前記３Ｄモデル化オブジェクトを投影すること（Ｓ２２）と、
前記水平面上に投影した前記３Ｄモデル化オブジェクトの境界ボックスを決定すること（Ｓ２３）と、
前記境界ボックス内に点からなるグリッドを定義すること（Ｓ２４）と、
前記点からなるグリッドに基づき、前記鉛直線を定義すること（Ｓ２５）と
を含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
現実の物体の３Ｄプリンティングのための処理であって、
請求項１〜１１のいずれかに記載の方法によって前記現実の物体の３Ｄプリンティングの向き付けを行うことと、
前記現実の物体の３Ｄプリンティングを、前記決定した１つまたは複数の向きのうち１つの向きで行うことと
を含むことを特徴とする処理。
【請求項１３】
請求項１〜１１のいずれかに記載の方法、および／または、請求項１２に記載の処理を実行するための命令を含むコンピュータプログラム。
【請求項１４】
請求項１３に記載のコンピュータプログラムを記録したデータ記憶媒体。
【請求項１５】
請求項１３に記載のコンピュータプログラムを記録したメモリに接続されたプロセッサを備えるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラムおよび及びシステムの分野に関し、より具体的には、現実の物体の３Ｄプリンティングの向き付けのための方法、システム、及びプログラムに関する。
【背景技術】
【０００２】
オブジェクトの設計、エンジニアリング、製造のため、多数のシステムおよびプログラムが市場に提供されている。ＣＡＤは、コンピュータ支援設計（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｄｅｓｉｇｎ）の略語であり、例えば、オブジェクトを設計するためのソフトウェア・ソリューションに関する。ＣＡＥは、コンピュータ支援エンジニアリング（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｅｎｇｉｎｅｅｒｉｎｇ）の略語であり、例えば、将来の製品の物理的挙動をシミュレーションするためのソフトウェア・ソリューションに関する。ＣＡＭは、コンピュータ支援製造（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｍａｎｕｆａｃｔｕｒｉｎｇ）の略語であり、例えば、製造工程および動作を定義するためのソフトウェア・ソリューションに関する。このようなコンピュータ支援設計システムにおいて、グラフィカル・ユーザ・インターフェースは、技術の効率に関して、重要な役割を果たす。これらの技術は、製品ライフサイクル管理（Ｐｒｏｄｕｃｔ  Ｌｉｆｅｃｙｃｌｅ  Ｍａｎａｇｅｍｅｎｔ：  ＰＬＭ）システムに組み込むことができる。ＰＬＭとは、企業が、拡張エンタープライズの概念全体にわたって、製品データを共有し、共通の工程を適用し、構想に始まり製品寿命の終わりに至る製品開発のための企業知識を活用するのを支援するビジネス戦略を指す。ダッソー・システムズが提供するＰＬＭソリューション（製品名ＣＡＴＩＡ、ＥＮＯＶＩＡ、ＤＥＬＭＩＡ）は、製品エンジニアリング知識を体系化するエンジニアリング・ハブ、製品エンジニアリング知識を管理する製造ハブ、およびエンジニアリング・ハブと製造ハブの両方に対するエンタープライズ統合と接続を可能にするエンタープライズ・ハブを提供する。全てのシステムは、製品、工程、リソースを結ぶオープンなオブジェクトモデルを提供し、最適化された製品定義、製造準備、生産およびサービスを推進する、動的な知識ベースの製品作成および意思決定支援を可能にする。
【０００３】
３次元（３Ｄ）プリンティングは、これらのシステムやプログラムを利用することができる。付加製造としても知られる３Ｄプリンティングは、現実の物体を合成するために用いられる様々な工程を指す。３Ｄプリンティングでは、コンピュータ制御の下で、連続した材料の層が形成され、当該現実の物体が作成される。結果として得られる物体は、任意の形状とすることができ、例えば、ＣＡＤシステムを用いて予め設計された仮想的な立体の物理的な実体である。
【０００４】
こうした文脈において、３Ｄプリンティングの改善が依然として求められている。
【発明の概要】
【０００５】
したがって、現実の物体の３Ｄプリンティングの向き付けを行うための、コンピュータによって実施される方法が提供される。本方法は、前記現実の物体を表す３Ｄモデル化オブジェクトを提供することを含む。本方法はまた、張り出しボリュームが最適となるような、前記３Ｄモデル化オブジェクトの１つまたは複数の向きを決定することを含む。
【０００６】
さらには、現実の物体の３Ｄプリンティングのための処理が提供される。前記処理は、上記方法によって前記現実の物体の３Ｄプリンティングの向き付けを行うことを含む。本処理は、これにより、張り出しボリュームが最適となるような、前記３Ｄモデル化オブジェクトの１つまたは複数の向きを決定することを含む。本処理は、次いで、前記現実の物体の３Ｄプリンティングを、前記決定した１つまたは複数の向きのうち１つの向きで行うことを含む。
【０００７】
例において、前記現実の物体の３Ｄプリンティングは、前記決定した１つまたは複数の向きのうちの前記１つについて、前記現実の物体の張り出し面の支持体を決定することと、前記現実の物体を、前記支持体と共に、前記決定した１つまたは複数の向きのうちの前記１つで３Ｄプリンティングすることと、次いで、前記支持体を除去することとを含んでいてもよい。
【０００８】
例において、前記３Ｄプリンティングは、任意の付加製造技術、例えば、熱溶解積層法（ｆｕｓｅｄ  ｄｅｐｏｓｉｔｉｏｎ  ｍｏｄｅｌｉｎｇ（ＦＤＭ）、ｆｕｓｅｄ  ｆｉｌａｍｅｎｔ  ｆａｂｒｉｃａｔｉｏｎ（ＦＦＦ））、および／または、ロボキャスティングあるいは直接インク書き込み（ｄｉｒｅｃｔ  ｉｎｋ  ｗｒｉｔｉｎｇ（ＤＩＷ））を含む押出３Ｄプリンティングや、ステレオリソグラフィ（ＳＬＡ）および／またはデジタル光処理（ＤＬＰ）を含む光重合３Ｄプリンティングなどで実行してもよい。
【０００９】
さらには、前記方法、および／または、前記処理を実行するための命令を含むコンピュータプログラムが提供される。
【００１０】
さらには、前記コンピュータプログラムを記録したコンピュータ読み取り可能記憶媒体が提供される。
【００１１】
さらには、前記コンピュータプログラムを記録したメモリに接続されたプロセッサを備えるシステムが提供される。前記システムは、さらに、グラフィカル・ユーザ・インターフェースを備えていてもよい。
【００１２】
例において、前記システムは、３Ｄプリンティングシステムであってもよい。例において、前記システムは、上記３Ｄプリンティングのための処理を実行するよう構成され、あるいはプログラムされていてもよい。
【００１３】
例において、３Ｄプリンティングの向き付けは、以下のいずれか１つまたは任意の組み合わせを含んでいてもよい。
・前記１つまたは複数の向きを決定することは、向きの有限離散集合の各向きについて、張り出しボリュームを算出することと、前記算出した張り出しボリュームが最適となるような、前記３Ｄモデル化オブジェクトの１つまたは複数の向きを特定することとを含む。
・前記向きの離散集合は、すべての向きの領域の一定密度サンプリングに対応する。
・前記１つまたは複数の向きを決定することは、さらに、前記算出した張り出しボリュームが最適であるような前記特定した向きのうちの１つまたは複数について、前記３Ｄモデル化オブジェクトのスナッピングに対応する、前記３Ｄモデル化オブジェクトの１つまたは複数の他の向きを決定することと、前記１つまたは複数の他の向きのそれぞれについて、張り出しボリュームを算出することと、前記算出した張り出しボリュームが最適となるような、前記３Ｄモデル化オブジェクトの１つまたは複数の他の向きを特定することとをさらに含む。
・前記離散集合の各向きについて張り出しボリュームを算出することは、前記３Ｄモデル化オブジェクトを当該向きまたは反対の向きに位置決めすることと、張り出し区間を決定することと、前記張り出し区間の長さを合計することとを含む。
・前記向きの離散集合は、向きおよびそれと反対の向きを含む少なくとも１つの対を含み、前記３Ｄモデル化オブジェクトの位置決めは、当該対について一度だけ実行する。
・前記対における両方の向きについて少なくとも１つの同じ張り出し区間を決定し、前記同じ張り出し区間は当該対について一度だけ決定する。
・前記張り出し区間を決定することは、鉛直線と前記３Ｄモデル化オブジェクトの交点を決定することと、張り出しに対応する鉛直線の区間を決定することとを含む。
・前記３Ｄモデル化オブジェクトは多角形メッシュを含む。
・前記鉛直線は前記３Ｄモデル化オブジェクトを覆う。かつ／あるいは、
・前記鉛直線と前記３Ｄモデル化オブジェクトの交点を決定することは、水平面上に前記３Ｄモデル化オブジェクトを投影することと、前記水平面上に投影した前記３Ｄモデル化オブジェクトの境界ボックスを決定することと、前記境界ボックス内に点からなるグリッドを定義することと、前記点からなるグリッドに基づき、前記鉛直線を定義することとを含む。
【図面の簡単な説明】
【００１４】
【図１】本方法による３Ｄプリンティングの改善を示した図。
【図２】本方法による３Ｄプリンティングの改善を示した図。
【図３】本方法による３Ｄプリンティングの改善を示した図。
【図４】本システムのグラフィカル・ユーザ・インターフェースの一例を示す。
【図５】本システムの一例を示す。
【図６】本方法の一例のフローチャートを示す。
【図７】本方法の例を示した図。
【図８】本方法の例を示した図。
【図９】本方法の例を示した図。
【図１０】本方法の例を示した図。
【図１１】本方法の例を示した図。
【図１２】本方法の例を示した図。
【図１３】本方法の例を示した図。
【図１４】本方法の例を示した図。
【図１５】本方法の例を示した図。
【図１６】本方法の例を示した図。
【図１７】本方法の例を示した図。
【図１８】本方法の例を示した図。
【図１９】本方法の例を示した図。
【図２０】本方法の例を示した図。
【図２１】本方法の例を示した図。
【図２２】本方法の例を示した図。
【図２３】本方法の例を示した図。
【図２４】本方法の例を示した図。
【図２５】本方法の例を示した図。
【図２６】本方法の例を示した図。
【図２７】本方法の例を示した図。
【図２８】本方法の例を示した図。
【発明を実施するための形態】
【００１５】
現実の物体の３Ｄプリンティングの向き付けを行うための、コンピュータによって実施される方法は、当該現実の物体を表す３Ｄモデル化オブジェクトを提供することと、張り出しボリュームが最適となるような、３Ｄモデル化オブジェクトの１つまたは複数の向きを決定することとを含む。これにより、本方法は３Ｄプリンティングを改善する。
【００１６】
現実の物体の３Ｄプリンティングの向き付けでは、１つまたは複数の所定の基準に照らして、現実の物体の３Ｄプリンティングを行う１つまたは複数の向きを表すデータを出力する任意の動作または一連の動作を指定する。１つまたは複数の向きは、地上の基準フレームにおける鉛直下方方向（すなわち、重力方向）に対して定義してもよい。
【００１７】
特に、本方法は、張り出しボリュームが最適となるような、３Ｄモデル化オブジェクトの１つまたは複数の向きを決定する。立体の３Ｄプリンティングにおいて、立体の向き付けは、いわゆる「張り出し面」を生じさせ得る。張り出し面とは、重力の影響により、支持するのに追加の材料を必要とする、現実の物体の外面である。「張り出しボリューム」という表現は、張り出し面の下のボリューム、例えば張り出し面と３Ｄプリンティングの接触面との間のボリュームを表す、任意のデータ値を指定する。
【００１８】
張り出しボリュームは、その値が、当該張り出しボリュームにペナルティを課す（すなわち、当該張り出しボリュームを最小にする傾向がある）最適化プログラムの結果に少なくとも実質的に対応するとき（その近似値である場合を含む）、最適であると言う。したがって、本方法は、当該張り出しボリュームが、可能な限り最小の値となるような、１つまたは複数の向きを出力する。例えば、張り出しボリュームは、そのような最適化プログラムにより生じる。最適化プログラムは、張り出しボリュームのみにペナルティを課すことができるか、あるいは、張り出しボリュームに加えて、１つまたは複数の他のパラメータにペナルティを課すことができる。最適化プログラムは、例えば１つまたは複数の制約の下で、あるいは制約のない状態で、張り出しボリュームが最小となる１つまたは複数の向きを見つけることからなるか、あるいは、そうすることに対応してもよい。一例では、最適化プログラムは、単純に、現実の物体と接触面との間の距離（すなわち、３Ｄプリント工程の、いわゆる「オフセット距離」）が所定の、例えば一定の距離（後述の例ではｄで表す）よりも大きいか、あるいは等しいという制約の下で、張り出しボリュームを最小化することからなっていてもよく、当該所定の距離は、ゼロより大きいか、あるいは等しい可能性がある。
【００１９】
３Ｄプリント工程において、現在の量の溶融材料（例えば、ノズルから出る）が固まるのに短い時間を必要とすることがある。図１〜３を参照すると、現実の物体（図１に示す）が幾つかの張り出し面（図２において太字の曲線２０で表される）を特徴とする場合、当該材料は、凝固時間の間にわずかに下方に曲がり、望ましくない形状を生み出す。広く知られているように、この現象を回避するのに、張り出しボリュームが大きすぎる対象形状に対して支持体を追加することができる（図３の支持体３０）。製造工程の観点から、上記支持体は、対象形状に一体化してもよく、同じ材料からなっていてもよい。支持体は、事後、すなわち、現実の物体が支持体と共に完全にプリントされた後に、除去することができる。現実の物体を３Ｄプリントするための向きが与えられたとき、実際の支持体の形状を設計する技術が、従来技術において知られている。その技術の一例が、論文「Ｊ．Ｖａｎｅｋ，Ｊ．Ａ．Ｇ．Ｇａｌｉｃｉａ  ａｎｄ  Ｂ．Ｂｅｎｅｓ，Ｃｌｅｖｅｒ  Ｓｕｐｐｏｒｔ：Ｅｆｆｉｃｉｅｎｔ  Ｓｕｐｐｏｒｔ  Ｓｔｒｕｃｔｕｒｅ  Ｇｅｎｅｒａｔｉｏｎ  ｆｏｒ  Ｄｉｇｉｔａｌ  Ｆａｂｒｉｃａｔｉｏｎ，Ｅｕｒｏｇｒａｐｈｉｃｓ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｇｅｏｍｅｔｒｙ  Ｐｒｏｃｅｓｓｉｎｇ  ２０１４，Ｖｏｌｕｍｅ  ３３（２０１４），Ｎｕｍｂｅｒ  ５」で提供されている。本方法は、例において、任意のこのような技術を用いることができる。
【００２０】
本方法は、張り出しボリュームが最適となるような、現実の物体を表す３Ｄモデル化オブジェクトの１つまたは複数の向きを決定する。言い換えれば、本方法は、張り出しボリュームを可能な限り小さくするという基準に照らして、現実の物体を３Ｄプリントするための１つまたは複数の最適な向きを決定する。これにより、実際の支持体の設計が容易になる。実際、張り出しボリュームが最適であるとき、支持体を設計する際に考慮する必要のあるスペースは、比較的小さい。これにより、そのような設計の複雑さが軽減される。さらに、支持体によって消費される材料の量は、張り出しボリュームの大きさに相関する。よって、本方法は、材料の消費量と無駄の削減に役立つ。さらに、本方法は張り出しボリュームを最適化するため、相関関係にある張り出し面も最適化する。したがって、本方法は、材料が曲がると望ましくない形状をもたらす可能性のある領域を減少させ、それにより、後の３Ｄプリント工程の結果の品質を向上させる。
【００２１】
本方法は、現実の物体を表す３Ｄモデル化オブジェクトに基づいて３Ｄプリンティングの向き付けを行う。したがって、本方法では、最初にプリントする現実の物体の実体から、張り出しボリュームに関して最適な３Ｄプリンティングが可能である。
【００２２】
本方法は、コンピュータにより実施される。すなわち、本方法のステップ（あるいは略全てのステップ）が少なくとも１つのコンピュータ、または類似の任意のシステムによって実行される。よって本方法のステップは、コンピュータにより、完全に自動的に、あるいは半自動的に実行される可能性がある。例えば、本方法の少なくともいくつかのステップは、ユーザとコンピュータの対話を通じて始動されてもよい。求められるユーザとコンピュータの対話レベルは、想定される自動性のレベルに応じたものであって、ユーザの要望を実装する必要性との間でバランスをとるものとしてもよい。例えば、このレベルは、ユーザが設定し、かつ／あるいは、予め定義されていてもよい。
【００２３】
方法のコンピュータによる実施の典型的な例は、この目的に適したシステムを用いて本方法を実行することである。当該システムは、本方法を実行するための命令を含むコンピュータプログラムを記録したメモリに接続されたプロセッサ、および、グラフィカル・ユーザ・インターフェース（ＧＵＩ）を備えていてもよい。メモリは、データベースを記憶していてもよい。メモリは、そのような記憶に適した任意のハードウェアであり、場合により、物理的に区別可能ないくつかの部分（例えば、プログラム用に１つ、場合によりデータベース用に１つ）を含む。
【００２４】
本方法は、一般に、モデル化オブジェクトを操作する。モデル化オブジェクトは、例えばデータベースに格納されたデータによって定義される任意のオブジェクトである。さらには、「モデル化オブジェクト」という表現は、データそのものも指す。システムの種類に応じて、異なる種類のデータによってモデル化オブジェクトが定義されてもよい。実際、システムは、ＣＡＤシステム、ＣＡＥシステム、ＣＡＭシステム、ＰＤＭシステム、および／またはＰＬＭシステムのうちの任意の組み合わせであってもよい。それら異なるシステムにおいて、モデル化オブジェクトは、対応するデータによって定義される。したがって、ＣＡＤオブジェクト、ＰＬＭオブジェクト、ＰＤＭオブジェクト、ＣＡＥオブジェクト、ＣＡＭオブジェクト、ＣＡＤデータ、ＰＬＭデータ、ＰＤＭデータ、ＣＡＭデータ、ＣＡＥデータについて言及することがある。しかしながら、モデル化オブジェクトは、これらのシステムの任意の組み合わせに対応するデータによって定義されてもよいため、これらのシステムは、互いに排他的なものではない。したがって、以下に示すこのようなシステムの定義から明らかなように、システムは、ＣＡＤ兼ＰＬＭシステムであってもよい。
【００２５】
ＣＡＤシステムは、少なくとも、ＣＡＴＩＡのようなモデル化オブジェクトのグラフィック表現に基づくモデル化オブジェクトの設計に適した任意のシステムをも意味する。この場合、モデル化オブジェクトを定義するデータは、モデル化オブジェクトを表現可能にするデータを含む。ＣＡＤシステムは、例えば、辺や線を用い、また、場合により面（ｆａｃｅｓ  ｏｒ  ｓｕｒｆａｃｅｓ）を用いて、ＣＡＤモデル化オブジェクトの表現を提供してもよい。線、辺、あるいは面は、例えば、非一様有理Ｂスプライン（ＮＵＲＢＳ）など、様々な様式で表現されてもよい。具体的には、ＣＡＤファイルは仕様を含み、その仕様に基づきジオメトリが生成可能であり、よって表現が生成可能となる。モデル化オブジェクトの仕様は１つまたは複数のＣＡＤファイルに格納されていてもよい。ＣＡＤシステムでモデル化オブジェクトを表現するファイルの典型的なサイズは、一部分あたり１メガバイトの範囲である。また、モデル化オブジェクトは、典型的には、数千の部分の集合体であってもよい。
【００２６】
ＣＡＤの文脈において、モデル化オブジェクトは、典型的には、３Ｄモデル化オブジェクト、例えば、一つの部品や部品の集合体などの製品、あるいは製品の集合体を表現するものであってもよい。「３Ｄモデル化オブジェクト」は、３Ｄ表現が可能なデータによってモデル化される任意のオブジェクトを意味する。３Ｄ表現は、その部品をすべての角度から見ることを可能にする。たとえば、３Ｄで表現された３Ｄモデル化オブジェクトは、その軸のうちの任意の軸、あるいは、その表現が表示された画面中の任意の軸を中心に、処理して回転させることが可能である。これは、特に、３Ｄモデル化されていない２Ｄアイコンについては除外される。３Ｄ表現の表示は、設計を容易にする（すなわち、設計者が作業を達成するスピードを統計的に速める）。製品の設計は製造工程の一部であるから、これによって当該産業における製造工程が迅速化する。
【００２７】
３Ｄモデル化オブジェクトは、ＣＡＤソフトウェア・ソリューションやＣＡＤシステム等を用いた仮想的デザインの完了後に実世界において製造される製品、すなわち（例えば機械）部品や、部品の集合体（あるいは同様に部品の集合体。なぜなら部品の集合体は本方法の観点では一つの部品としてみることができ、また、本方法は集合体における各部品に独立して適用することができるからである）など、より一般的には任意の剛体の集合体（例えば移動機構）などの製品のジオメトリを表現してもよい。ＣＡＤソフトウェア・ソリューションは、航空宇宙、建築、建設、消費財、ハイテク機器、産業機器、輸送、海洋、および／または海洋石油／ガス生産、または交通を含む、限定されることのない様々な産業分野において製品の設計を可能にする。本方法により設計された３Ｄモデル化オブジェクトは、このように、地上車両の部品（例えば、自動車および軽トラック機器、レーシングカー、オートバイ、トラックおよびモーター機器、トラック、バス、電車を含む）、航空車両の部品（例えば、航空機体機器、航空宇宙機器、推進機器、防衛製品、航空路線機器、宇宙機器を含む）、海軍車両の部品（例えば、海軍用機器、商業用船舶、オフショア機器、ヨットおよび作業船、船舶用機器を含む）、一般的な機械部品（例えば、工業用製造機械、大型移動機械または機器、設置機器、産業機器製品、加工金属製品、タイヤ製造製品を含む）、または電気機械部品または電子部品（例えば、家電、セキュリティおよび／または制御および／または計装製品、コンピューティングおよび通信機器、半導体、医療装置および設備を含む）、消費者製品（例えば、家具、家庭用および庭用製品、レジャー用品、ファッション用品、耐久消費財小売用品、織物類小売用品を含む）、包装（例えば、食品および飲料およびたばこ、美容およびパーソナルケア、家庭用製品包装を含む）などのように、任意の機械部品であり得る工業製品を表してもよい。
【００２８】
ＰＬＭシステムは、物理的な、製造された製品（または製造される予定の製品）を表すモデル化オブジェクトの管理に適した任意のシステムをも指す。ＰＬＭシステムでは、モデル化オブジェクトは、このように、物理的な物体の製造に適したデータによって定義される。これらは、典型的には、寸法の値および／または公差の値であってもよい。物体を正しく製造するために、実際、このような値を用いるのが望ましい。
【００２９】
ＣＡＭソリューションとは、製品の製造データを管理するのに適した、ハードウェアのソフトウェアである、あらゆるソリューションをも指す。製造データは、一般に、製造する製品、製造工程、および必要なリソースに関するデータを含む。ＣＡＭソリューションは、製品の製造工程全体を計画し最適化するのに用いられる。例えば、実現可能性、製造工程の期間、または製造工程における特定のステップで使用され得るリソース、例えば特定のロボットの数に関する情報をＣＡＭユーザに提供することができる。これにより、管理や必要な投資についての決定を可能にする。ＣＡＭは、ＣＡＤ工程、および、場合によりＣＡＥ工程に続く工程である。このようなＣＡＭソリューションは、ダッソー・システムズにより、ＤＥＬＭＩＡ（登録商標）として提供されている。
【００３０】
ＣＡＥソリューションとは、モデル化オブジェクトの物理的挙動の分析に適した、ハードウェアのソフトウェアである、あらゆるソリューションをも指す。よく知られており広く用いられているＣＡＥ技術は有限要素法（Ｆｉｎｉｔｅ  Ｅｌｅｍｅｎｔ  Ｍｅｔｈｏｄ：ＦＥＭ）であり、これは、典型的には、モデル化オブジェクトを、物理的挙動を方程式によって計算しシミュレーションできる要素に分割することを含む。このようなＣＡＥソリューションは、ダッソー・システムズにより、ＳＩＭＵＬＩＡ（登録商標）として提供されている。成長するＣＡＥ技術のもう１つは、ＣＡＤジオメトリデータを使用せずに異なる物理分野の複数の要素で構成される複雑なシステムのモデリングと解析を行うことを含む。ＣＡＥソリューションはシミュレーションを可能にし、それにより、製造する製品の最適化、改善および検証を可能にする。このようなＣＡＥソリューションは、ダッソー・システムズにより、ＤＹＭＯＬＡ（登録商標）として提供されている。
【００３１】
ＰＤＭはＰｒｏｄｕｃｔ  Ｄａｔａ  Ｍａｎａｇｅｍｅｎｔ（生産データ管理）の略である。ＰＤＭソリューションとは、特定の製品に関するすべての種類のデータを管理するのに適した、ハードウェアのソフトウェアである、あらゆるソリューションを指す。ＰＤＭソリューションは、製品のライフサイクルにかかわるすべての関係者によって使用されてもよい。これには、主として技術者のほか、プロジェクトマネージャー、財務担当者、営業担当者、およびバイヤーも含まれる。ＰＤＭソリューションは、一般に、製品指向のデータベースに基づく。これにより、関係者が製品に関する一貫したデータを共有することが可能になり、これにより、関係者が異なるデータを用いるのを防止する。このようなＰＤＭソリューションは、ダッソー・システムズにより、ＥＮＯＶＩＡ（登録商標）として提供されている。
【００３２】
図４は、本システムのＧＵＩの一例を示す図であって、当該システムはＣＡＤシステムである。ＧＵＩは、後の３Ｄプリンティング用の３Ｄモデル化オブジェクトを設計するのに用いることができる。ユーザは、任意の時点において本方法を開始し、３Ｄプリンティング用の向きを決定することができる。決定した１つまたは複数の向きは、３Ｄモデル化オブジェクトを定義するデータに（例えばデータファイルに）追加することができる。
【００３３】
ＧＵＩ２１００は、標準的なメニューバー２１１０，２１２０、ならびに底部および側面のツールバー２１４０，２１５０を有する典型的なＣＡＤのようなインターフェースであってもよい。このようなメニューバーおよびツールバーは、ユーザが選択可能なアイコンのセットを含み、各アイコンは、当技術分野で知られているように、１つまたは複数の操作または機能に関連付けられている。これらのアイコンのいくつかは、ＧＵＩ２１００に表示された３Ｄモデル化オブジェクト２０００の編集および／または作業に適合したソフトウェアツールに関連付けられている。ソフトウェアツールはワークベンチに分類することができる。各ワークベンチは、ソフトウェアツールのサブセットを含む。特に、ワークベンチの１つは、モデル化製品２０００のジオメトリ的特徴を編集するのに適した編集ワークベンチである。操作中、設計者は、例えば、オブジェクト２０００の一部を予め選択し、次いで、適切なアイコンを選択することによって、操作を開始する（例えば、寸法、色などを変更する）か、ジオメトリ的制約を編集することができる。例えば、典型的なＣＡＤ操作は、スクリーン上に表示された３Ｄモデル化オブジェクトのパンチングまたは折り畳みのモデリングである。ＧＵＩは、例えば、表示された製品２０００に関連するデータ２５００を表示してもよい。図の例では、「特徴ツリー」として表示されたデータ２５００およびそれらの３Ｄ表現２０００は、ブレーキキャリパおよびディスクを含むブレーキ部品に関するものである。ＧＵＩは、編集された製品の動作のシミュレーションを起動するため、または表示された製品２０００の様々な属性を描画するために、例えばオブジェクトの３Ｄ定位を容易にするための様々なタイプのグラフィックツール２１３０，２０７０，２０８０をさらに示してもよい。カーソル２０６０は、ユーザがグラフィックツールを用いて対話操作ができるように、触覚デバイスによって制御されてもよい。
【００３４】
図５は、本システムの一例を示すものであって、当該システムは、クライアントコンピュータシステム、例えばユーザのワークステーションである。
【００３５】
本例のクライアントコンピュータは、内部通信バス１０００に接続された中央演算処理装置（ＣＰＵ）１０１０、および同じくバスに接続されたランダムアクセスメモリ（ＲＡＭ）１０７０とを備える。クライアントコンピュータは、さらに、バスに接続されたビデオランダムアクセスメモリ１１００と関連付けられたグラフィックス処理装置（ＧＰＵ）１１１０を備える。ビデオＲＡＭ１１００は、当該技術分野において、フレームバッファとしても知られる。大容量記憶装置コントローラ１０２０は、ハードドライブ１０３０などの大容量記憶装置へのアクセスを管理する。コンピュータプログラムの命令及びデータを具体的に実現するのに適した大容量メモリ装置は、例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ及びフラッシュメモリ装置のような半導体メモリ装置、内蔵ハードディスクやリムーバブルディスクなどの磁気ディスク、光磁気ディスク、およびＣＤ−ＲＯＭディスク１０４０を含む、全ての形式の不揮発性メモリを含む。前述のいずれも、特別に設計されたＡＳＩＣ（特定用途向け集積回路）によって補完されてもよいし、組み入れられてもよい。ネットワークアダプタ１０５０は、ネットワーク１０６０へのアクセスを管理する。クライアントコンピュータはまた、カーソル制御装置、キーボードなどの触覚装置１０９０を含んでいてもよい。カーソル制御装置は、ユーザがディスプレイ１０８０上の任意の所望の位置にカーソルを選択的に位置させることを可能にするために、クライアントコンピュータ内で使用される。さらに、カーソル制御デバイスは、ユーザが様々なコマンドを選択し、制御信号を入力することを可能にする。カーソル制御装置は、システムに制御信号を入力するための多数の信号生成装置を含む。典型的には、カーソル制御装置はマウスであってもよく、マウスのボタンは信号を生成するために使用される。あるいは、または追加的に、クライアントコンピュータシステムは、感知パッドおよび／または感知スクリーンを備えてもよい。本システムはまた、３Ｄプリンター１０５５を備えてもよい。
【００３６】
コンピュータプログラムは、コンピュータによって実行可能な命令を含んでいてもよく、命令は、上記システムに方法を実行させるための手段を含む。プログラムは、システムのメモリを含む任意のデータ記憶媒体に記録可能であってもよい。プログラムは、例えば、デジタル電子回路、またはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実装されてもよい。プログラムは、例えばプログラマブルプロセッサによる実行のための機械読み取り可能な記憶装置に具体的に実現された製品のような装置として実装されてもよい。方法ステップは、プログラム可能なプロセッサが命令のプログラムを実行し、入力データを操作して出力を生成することによって方法の機能を実行することによって実行されてもよい。したがって、プロセッサは、データ記憶システム、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスからデータおよび命令を受信し、また、それらにデータおよび命令を送信するようにプログラム可能であってもよく、またそのように接続されていてもよい。アプリケーションプログラムは、高水準の手続き型またはオブジェクト指向のプログラミング言語で、または必要に応じてアセンブリ言語または機械語で実装されていてもよい。いずれの場合も、言語はコンパイラ型言語またはインタープリタ型言語であってもよい。プログラムは、フルインストールプログラムまたは更新プログラムであってもよい。いずれの場合も、プログラムをシステムに適用すると、本方法を実行するための指示が得られる。
【００３７】
図６は、演算速度及びリソース消費に関して特に効率的な方法の例を示す。この例では、正確な結果を、迅速かつ効率的に、確実に得ることができるような、独立したさまざまなオプションを実施している。
【００３８】
本方法は、現実の物体を表す３Ｄモデル化オブジェクトを提供すること（Ｓ１０）から始まる。例えば、３Ｄモデル化オブジェクトを設計した（または、離れたコンピュータ／ユーザからそのような３Ｄモデル化オブジェクトを受け取った）ユーザは、３Ｄプリンティング向き付け機能を起動する。
【００３９】
３Ｄモデル化オブジェクトは、現実の物体の局所的な形状をそれぞれ表すジオメトリの離散的かつ有限の集合で構成されていてもよい。これにより、複雑な演算を含むパラメトリックまたは暗黙的なジオメトリと比較して、本方法を高速に実行することが可能になる。特に、３Ｄモデル化オブジェクトは、現実の物体の形状のメッシュ表現からなっていてもよい。メッシュは、四角メッシュや三角メッシュなどの多角形メッシュであってもよい。このような種々の３Ｄモデル化オブジェクトは、本方法によって後に実行されるジオメトリ演算を容易で迅速なものにする。
【００４０】
次いで、本方法は、張り出しボリュームに関して最適な１つまたは複数の向きの候補を出力するため、候補となる向きを探す。そのために、本方法は、まず、離散的で有限な集合についてループするスキームＳ２１〜Ｓ２６を実行する。最初に複雑な問題（アルゴリズム的観点から）を有限領域上の離散最適化に還元することにより、本方法を堅牢なものにすることができる。
【００４１】
離散集合は、本方法を高速に実行するために特別に設計されている（すなわち、集合の各要素についてスキームを一度だけ繰り返す）。離散集合は、向き（本方法による最終的な出力の候補）と、それとは反対の向き（すなわち、同じ線であるが方向が反対のものであり、これもまた候補である）からなる対の、有限集合である。他の例では、本方法は、対を考慮する代わりに向きの候補それぞれについてループを実行してもよいが、対を考慮することによって相乗効果を与えるような演算（例えば、対の第１の要素について実行した演算を、第２の要素についても再利用すること）が可能になる。特に、後述するＳ２６は、２つの反対の向きに同じ交点が含まれる場合（これはよくあることである）に特に時間がかかり、その演算を一度だけ行うようにすることで、効率性が特に増す。さらに他の例では、向きの候補集合は対称ではない（すなわち、全ての向きの候補が、当該集合内に、それとは反対の向きを有するわけではない）。図６の方法をそのような例に適用するのは簡単である。
【００４２】
離散集合は、例において、単位球のサンプリングに対応してもよい。言い換えれば、向きの候補は、それぞれ、単位球の点に対応する（向きは、例えば所定の順序付け規約を用いて、例えば当該点および単位球の中心によって定義される）。単位球の点は、球をサンプリングすることによって得られる。サンプリングは球全体をカバーしてもよく、この場合、サンプリングは局所的ではなく全体的であるため、すべての向き領域が探索される。
【００４３】
サンプリングは、特に、一定密度サンプリングとすることができる。これは、サンプリングが、ランダムなサンプリングでも円ごとの規則的サンプリングでもなく、一定密度サンプリングであることを意味する（すなわち、球上の一定面パッチにおけるサンプル点の数は、パッチが球上のどこに配置されていても実質的に同じである）。これにより、向き領域（離散化されたときに縮小されている）の、より良い探索が可能になる。言い換えれば、このようなサンプリングは情報の損失が少ない。
【００４４】
ここでスキームＳ２１〜Ｓ２６について説明する。
【００４５】
候補の向きおよび反対の向きからなる所与の対について、スキームＳ２１〜Ｓ２６では、最終的に、算出されたボリュームのすべてを比較して１つまたは複数の最適な向きを決定するために、これら２つ向きのそれぞれについて張り出しボリュームを算出する準備をする。スキームＳ２１〜Ｓ２６に含まれる演算は、比較的効率的である。
【００４６】
本スキームは、所定の一定フレームに対して実行される。本スキームは、対をなす２つの向きのいずれか１つに従ってフレーム内に３Ｄモデル化オブジェクトを配置すること（Ｓ２１）から始まる。次いで、本スキームは、水平面上に３Ｄモデル化オブジェクトを投影すること（Ｓ２２）を含む。水平面または３Ｄモデル化オブジェクトは、前述のオフセット距離を基準にフレーム内に配置することができる。もう１つの水平フレームは、対をなす２つの向きのうち他方の向きについて、上述のオフセット距離を基準として、モデル化オブジェクトの反対側に（スキームのこの時点または後の時点において）配置されてもよい（これは後ほど、正確にはＳ３２において用いられる。）次いで、本スキームは、水平面上に投影した３Ｄモデル化オブジェクトの境界ボックスを決定すること（Ｓ２３）を含む。境界ボックスは、投影物を包含する最小サイズの矩形であってもよい。決定すること（Ｓ２３）は、任意の既知の技術により実行することができる。次いで、本スキームは、境界ボックス内に点からなるグリッドを定義すること（Ｓ２４）を含む。グリッドは規則的（例えば、所定の一定幅、例えば両方向に共通の幅を有する、点の配列を形成する）、かつ／あるいは、所定の一定密度の点を有してもよい。次いで、本スキームは、点からなるグリッドに基づき、鉛直線を定義すること（Ｓ２５）を含む。鉛直線はそれぞれグリッドの点を含み、鉛直線の梁が交差して３Ｄモデル化オブジェクトを覆う。次いで、本スキームは、鉛直線と３Ｄモデル化オブジェクトとの交点を決定（Ｓ２６）して終了する。この演算はジオメトリ的なものであり、したがって最も時間を要する。よって、多角形メッシュと相乗的演算の使用が、ここで特に重要な意味を持つ。
【００４７】
この時、本方法は、向きの候補のそれぞれについてループするスキームを実行する。
【００４８】
本スキームは、まず、張り出し区間を決定することを含む。これは、Ｓ２６で決定した交点を用いて、張り出しに対応する鉛直線の区間を決定すること（Ｓ３２）によって行われ、当該区間は当該交点（および、３Ｄモデル化オブジェクトがＳ２１において向きの候補に応じて配置されたか、あるいはそれとは反対の向きに応じて配置されたかによって決まる、端の２つの水平面のうちのいずれか１つ）によって区切られる。
【００４９】
次に、本スキームは、Ｓ３４において、張り出し区間の長さを単純に合計してもよい。このような合計により、張り出しボリュームを表す値が得られる（例えば、特に、グリッドの点の密度がＳ３４のすべての反復について同じである場合、言い換えれば、グリッドの点の密度がＳ２４の各反復において同じである場合）。これにより、本方法はとりわけ高速になる。次いで、本方法は、算出した張り出しボリュームが最適となる（例えば、Ｓ３４の繰り返しで算出した合計の、最小値に対応する）ような、現実の物体を表す３Ｄモデル化オブジェクトの１つまたは複数の向きを単純に特定する（Ｓ４０）。
【００５０】
Ｓ４０の結果が出力され得る。しかし、Ｓ４０の結果を出力するかわりに、図６の方法は、さらに、「スナッピング」と呼ばれるオプションＳ５２〜Ｓ５６を含む。
本方法は、３Ｄモデル化オブジェクトのスナッピングに対応する、３Ｄモデル化オブジェクトの１つまたは複数の他の向きを決定すること（Ｓ５２）を含む。各スナッピングは、Ｓ４０で出力された向きで３Ｄモデル化オブジェクトを配置し、（多角形メッシュの）隣接面が水平になるように、３Ｄモデル化オブジェクトを、その最も低い頂点（そのような一意の頂点がある場合。これは一般的なケースである。）の周りに回転させることからなる。新たに得られた向きは、最適な張り出しボリュームを提供する方法で出力される、新たな候補となる。このオプションがＳ４０の結果を改善させることが実際に確認されている。すなわち、このオプションは、１つまたは複数の他の向きのそれぞれについて張り出しボリュームを算出すること（Ｓ５４）と、次いで、算出した張り出しボリュームが最適となるような、３Ｄモデル化オブジェクトの１つまたは複数の他の向きを特定すること（Ｓ５６）とを含む。オプションＳ５２〜Ｓ５６は、Ｓ４０によって出力された向きのそれぞれ、および最も低い頂点に隣接する面のそれぞれについて実行してもよい。
【００５１】
このように、本方法は、例においては、３Ｄモデル化オブジェクトをフレーム内に配置してもよい。本方法は、次いで、平面に含まれる点からなるグリッドにおける各点について、ｚ線と３Ｄモデル化オブジェクトのスキンとの交点を決定してもよい。本方法は、次いで、当該向きおよびそれと反対の向きについて、張り出しに寄与する区間の長さを合計してもよい。点からなるグリッドは、ｘｙ平面上にすべてのメッシュ頂点を投影することと、投影物の境界ボックスを決定することとを含むスキームにより、当該境界ボックスにわたる（例えば３２×３２の）グリッドを用いて繰り返しごとに決定してもよく、それらの点は、グリッドセルの中心である。ｚ線と３Ｄモデル化オブジェクトのスキンとの交点を算出することは、当該向きと、その反対の向きの両方について、１回だけ実行してもよい。ｚ軸は、当該向きおよびその反対の向きの支持方向（すなわち、２つのうちの一方の重力方向）に対応していてもよい。
【００５２】
ここで、本方法の実施例について、図７〜２８を参照して説明する。
【００５３】
実施例の方法では、とり得る全ての向きについて、それに対応する立体の支持ボリュームを算出することができる。次いて、支持ボリュームが最も小さくなる向き選択することができる。支持ボリュームは、線／立体交差法を用いて算出することができる。
実施例の方法は、以下の長所を特徴とする。支持ボリュームを最小にすることにより、対象形状に用いられる材料の量が削減され、よって製造時間が短縮される。また、支持体の削除だけのための後処理時間も短縮される。要するに、支持ボリュームを最小にすることにより、全体的な製造コストを削減することになる。
【００５４】
入力される立体
入力される立体は、ＣＡＤシステムの立体モデリング対話機能を用いて設計することができる。なお、Ｓとその境界面は∂Ｓで表され、これは三角形からなる面であってもよい。点Ｑ∈∂Ｓにおける外側法線ベクトルはＮ（Ｑ）で表される。立体Ｓは、ＣＡＤシステムの立体モデリング機能を使用して設計できるものできれば、その形状に制約はない。
【００５５】
張り出し点
張り出しの閾値は、
【数１】
2018129031.tif 000003
で表される角度である。これは物理的物体をプリントするのに用いる材料によって変化し、典型的な値は
【数２】
2018129031.tif 000004
である。以下で「方向」と呼ぶ正規化ベクトルを
【数３】
2018129031.tif 000005
とするとき、
【数４】
2018129031.tif 000006
であれば、点Ｑ∈∂Ｓは張り出し点である。このような閾値は、ユーザによって与えられてもいいし、システムで予め定義されていてもよい。
【００５６】
図７は、
【数５】
2018129031.tif 000007
のときの状況を示している。点Ｑ1は
【数６】
2018129031.tif 000008
であるため、張り出し点ではない。点Ｑ2は
【数７】
2018129031.tif 000009
であるため、張り出し点ではない。点Ｑ3は
【数８】
2018129031.tif 000010
であるため、張り出し点である。
【００５７】
張り出し線分
方向Ｖとオフセット距離ｄ≧０が与えられるとき、接触面Ｐは、点ＡとベクトルＶによって、
【数９】
2018129031.tif 000011
と定義される。点Ａは、一意ではなく、立体Ｓが、点Ｐから距離ｄに位置し、Ｐによって定義される非正の半空間に含まれるような点である。正確には、すべてのＱ∈Ｓについて
【数１０】
2018129031.tif 000012
であり、
【数１１】
2018129031.tif 000013
となるようなＢ∈Ｓが存在する。ｄ＝０の場合、立体Ｓは、平面Ｐに接している。
【００５８】
図８〜９は、立体Ｓ、方向Ｖ、距離ｄ＝０（図８）、および距離ｄ＞０（図９）によって定義された接触面Ｐを示している。以下では、多くの図面がｄ＝０を用いて示されている。
【００５９】
点Ｚ∈Ｐが与えられるとき、非正の半空間に含まれる平面Ｐに垂直な半直線をΔ（Ｚ）とする。すなわちΔ（Ｚ）＝｛Ｚ−λＶ，λ≧０｝とする。ｉ＝１，・・・，ｎ（Ｚ）のとき、半直線Δ（Ｚ）と立体Ｓの境界面∂Ｓとのｎ（Ｚ）個の交点であるＸi（Ｚ）を考える。交点は実数λi（Ｚ）によって、Ｘi（Ｚ）＝Ｚ−λi（Ｚ）Ｖとなるようにパラメータ化され、λ1（Ｚ）＜・・・＜λi（Ｚ）＜・・・＜λn(Z)（Ｚ）となるようにソートされる。
【００６０】
図１０は、交点がｎ（Ｚ）＝４個の場合を示している。
【００６１】
定義により、Ｘi+1（Ｚ）が張り出し点の場合、線分［Ｘi（Ｚ），Ｘi+1（Ｚ）］は張り出し線分である。線Δ（Ｚ）の張り出しボリュームに対する寄与度は、そのすべての張り出し線分の和集合である。次式において、規約は、Ｘ0（Ｚ）＝Ｚである。
【数１２】
2018129031.tif 000014
【００６２】
図１１は、線Δ（Ｚ）の一意な張り出し線分［Ｘ2（Ｚ），Ｘ3（Ｚ）］を示している。
【００６３】
張り出しボリューム、支持ボリューム
形式的には、Ｈ（Ｓ，Ｖ，α）で示される、角度αに応じた方向Ｖにおける立体Ｓの張り出しボリュームは、
【数１３】
2018129031.tif 000015
であるようなすべての点Ｚ∈Ｐについてのすべての張り出し線分の和集合である。
【数１４】
2018129031.tif 000016
【００６４】
図１２は、立体（点線１２１）の境界面を張り出しボリューム（灰色の領域１２３）と共に示している。外側法線ベクトル１２５は、張り出し領域を限定する張り出し点を示す。
【００６５】
定義上、支持ボリュームｓ（Ｓ，Ｖ，α）は、張り出しボリュームの尺度である。すなわち、
【数１５】
2018129031.tif 000017
である。
【数１６】
2018129031.tif 000018
を半直線Δ（Ｚ）の寄与度により定義されるマッピングとすると、
【数１７】
2018129031.tif 000019
である。
Ｘi（Ｚ）＝Ｚ−λi（Ｚ）Ｖであり、またλi（Ｚ）の順序づけにより、
【数１８】
2018129031.tif 000020
である。
よって、
【数１９】
2018129031.tif 000021
の場合、
【数２０】
2018129031.tif 000022
である。
また、
【数２１】
2018129031.tif 000023
の場合、ｆ（Ｚ）＝０である。ボリュームの尺度ｓ（Ｓ，Ｖ，α）は、以下の積分によって定義される。
【数２２】
2018129031.tif 000024
【００６６】
最小化問題
入力された立体Ｓと張り出し閾値αが与えられるとき、本方法の目的は、支持ボリュームを可能な限り小さくする方向Ｖ*を見つけることである。
【数２３】
2018129031.tif 000025
【００６７】
残念ながら、マッピング
【数２４】
2018129031.tif 000026
は連続的ではないため、従来の最適化手法（最急勾配法（ｄｅｅｐｅｓｔｇｒａｄｉｅｎｔ）、共役勾配法、ニュートンラフソン法など）とは無関係である。例えば、図１３に示された直方体の立体を考える。
【００６８】
方位角θに対する支持ボリューム反応曲線
【数２５】
2018129031.tif 000027
は、以下の通りである。
【表１】
2018129031.tif 000028
【００６９】
これにより、図１４に示す不連続曲線が得られる。
【００７０】
図１５〜図１７は、様々な方向に応じた張り出しボリューム（灰色の領域）を示している。
【００７１】
離散化
力まかせアルゴリズムは、目的関数
【数２６】
2018129031.tif 000029
が滑らかでないことに反応することがある。とり得るすべての方向Ｖの領域は
【数２７】
2018129031.tif 000030
の単位球である。これは、方向密度が単位球面上でほぼ一定であるようにサンプリングされる。ｎを、方向の数を制御する整数とし、Ｅ（ｘ）を、実数ｘより小さい最大の整数とすると、サンプリングは、以下を定義することによって得られる。
【数２８】
2018129031.tif 000031
ここで、球座標は
【数２９】
2018129031.tif 000032
であり、
【数３０】
2018129031.tif 000033
である。
【００７２】
図１８は、（半）単位球の単純なサンプリングを示す。図１９は、ｎ＝２０で１０４８の方向をもたらす本方法によって実施され得る、より適切なサンプリングを示す。
また、さらに、半直線の開始点Ｚ∈Ｐの領域は、方形グリッド
【数３１】
2018129031.tif 000034
を用いてサンプリングすることができる。まず、立体Ｓの頂点を平面Ｐに投影する。次に、平面Ｐ上で、投影された頂点を含む最小の矩形を算出する。最良の矩形の向きは、所定の向きのリストから選択される。最後に、点Ｚklを、最良の矩形内の規則的なグリッドとして評価する。典型的な密度値は、３２×３２の点からなるグリッドである。
【００７３】
図２０は、立体Ｓ、平面Ｐおよび点Ｚklを示す。
【００７４】
図２１は、投影された立体（灰色の領域）、最良の矩形（点線）、および矩形内のグリッド点Ｚkl（ドット）を示す。
【００７５】
このようにして、ｓ（Ｓ，Ｖ，α）についての積分式により、以下のような離散バージョンが得られる。
【数３２】
2018129031.tif 000035
【００７６】
言い換えれば、支持ボリュームの尺度ｓ（Ｓ，Ｖ，α）は、線分長ｓ1（Ｓ，Ｖ，α）の有限和で近似される。明らかに、この近似は、グリッドの密度が大きいほど、正確な支持ボリュームに収束する。
【００７７】
図２２〜２３は、２つの方向ＶについてのＺkl離散化によって定義される線分を示す。
【００７８】
ここでは、最小化問題は、方向サンプリングにおける有限探索に変更されている。
【数３３】
2018129031.tif 000036
線／立体の交点
【００７９】
ｓ1（Ｓ，Ｖ、α）の算出には、線／立体の交点を大量に使用する。性能を高くするため、線／立体交差アルゴリズムは、鉛直方向
【数３４】
2018129031.tif 000037
に対してハードコードされてもよい。任意の線との交点を算出する前に、軸系のｚ方向が−Ｖに等しく、ｘｙ平面が接触平面Ｐとなるように、剛体運動Ｄ（・）に従って立体を動かしてもよい。Ｐ-を、方向−Ｗに関連付けられた接触平面とし、ｈを平面ＰとＰ-との距離とする。
【００８０】
図２４において、線分番号３は方向Ｗに関連付けられたボリュームを支持することに寄与し、線分番号３および４は方向−Ｗに関連付けられたボリュームを支持することに寄与する。両方の寄与度は、∂Ｓと同じ交点を用いて算出することができる。
【００８１】
次に、移動した立体Ｄ（Ｓ）に対して次のアルゴリズムを実行することができる。交点の結果を再利用することによって、方向Ｗおよび方向−Ｗに関連付けられた演算を同時に実行する。
【００８２】
本方法の署名は、（ｘ，ε）＝ｓ2（（Ｚkl）k,l，Ｓ，α，ｈ）である。入力データは、適切に配置された立体Ｓの位置、閾値角度α、およびオフセット距離ｈに対応する、点からなるグリッド（Ｚkl）k,lである。出力データはｘとεである。実数ｘは、方向Ｗで算出されたものと方向−Ｗで算出されたものから選択された、最小の（近似された）支持ボリュームである。数ε∈｛＋１，−１｝は、方向Ｗ（すなわちε＝＋１）または反対方向−Ｗ（すなわちε＝−１）を用いてｘを得ることができるかどうかを示している。
【００８３】
半直線Δ（Ｚ）と∂Ｓとの交点の情報を記憶するのに、順序付きリストＬ（・）を用いてもよい。正確には、リストＬ（・）は組（λ，−Ｎz（Ｔ））を集め、ここで、Ｚ−λＷは、鉛直線Δ（Ｚ）と三角形Ｔの交点であり、Ｎz（Ｔ）は三角形Ｔの外側法線ベクトルＮ（Ｔ）のｚ座標である。立体Ｓの位置決めにより、−Ｎz（Ｔ）はスカラー積
【数３５】
2018129031.tif 000038
に等しくなっている。リストＬ（・）は、命令０４で（０，０）で初期化され、命令０８で格納され、命令１２から１７で読み込まれる。リストＬ（・）の要素は、λの増加する値に応じて順序付けてもよい。この順序は、命令０８のバイナリ検索を通じて維持される。読み書きの規約は、
【数３６】
2018129031.tif 000039
【数３７】
2018129031.tif 000040
および
【数３８】
2018129031.tif 000041
である。
【００８４】
∂Ｓと平面Ｐ-に関連付けられた鉛直線との交点を記憶するのに別のリストＬ-（・）を用いてもよい。これは、命令１１〜１４においてリストＬ（・）を逆にすることによって得られる。命令０６におけるＰｒｏｊｅｃｔｅｄ（Ｔ）という表現は、三角形Ｔの平面Ｐ上の投影を指す。立体Ｓの位置決めにより、投影された三角形Ｐｒｏｊｅｃｔｅｄ（Ｔ）は、三角形のＴ個の頂点のｚ座標を無視することによって得ることができる。
【００８５】
ここで擬似コードの例を示す。
【数３９】
2018129031.tif 000042
【００８６】
命令０６での表現Ｚ∈Ｐｒｏｊｅｃｔｅｄ（Ｔ）は、「三角形の内側テスト」を表す。これは、以下の公知の式を用いて実行してもよい。点
【数４０】
2018129031.tif 000043
および三角形の頂点
【数４１】
2018129031.tif 000044
【数４２】
2018129031.tif 000045
および
【数４３】
2018129031.tif 000046
を考える。４つの３×３行列式を算出する。
【数４４】
2018129031.tif 000047
【数４５】
2018129031.tif 000048
【数４６】
2018129031.tif 000049
【数４７】
2018129031.tif 000050
【００８７】
このとき点Ｚは、ｄ0、ｄ1、ｄ2、およびｄ3が同じ符号を有する場合に限り、三角形Ｐ1，Ｐ2，Ｐ3の内側にある。命令０６で算出されたパラメータλは、
【数４８】
2018129031.tif 000051
であり、ここでＱは、三角形Ｔの任意の頂点である。
【００８８】
全体処理
全体処理は、方向サンプル（Ｖij）を算出する初期化ステップを含んでいてもよい。最適化ステップは、次のアルゴリズムで説明するように、全方向の有限走査である。
【数４９】
2018129031.tif 000052
【００８９】
このアルゴリズムは、とり得る最良の方向Ｖ*と、対応する近似支持ボリュームｓ*とを返す。
【００９０】
なお、各Ｖijに関連する演算は独立しており、有利に並列化できる。
【００９１】
スナッピングオプション
経験的に、スナッピングステップを用いてＶ*とｓ*を改善可能な場合があることが証明されている。このスナッピングアルゴリズムは以下の通りである。
【数５０】
2018129031.tif 000053
【００９２】
図２５は、スナッピングの原理を示している。
【００９３】
ここで、本方法のテストについて、図２６〜２８を参照して説明する。
【００９４】
機械部品を表す３Ｄモデル化オブジェクト２６２が提供され、その最適な向き２６４が上記の原理に従って決定された。本テストでは、３Ｄモデル化オブジェクト２６２が、９５ｍｍ×６７ｍｍ×５７ｍｍのサイズに対して１０２１４個の三角形（１４０ｍｍ×１１９ｍｍ×５６ｍｍのサイズに対して３６７６８個の三角形、２４４ｍｍ×１８３ｍｍ×１２４ｍｍのサイズに対して３８１２２個の三角形）から構成されていたが、それぞれ１．９秒（３．８秒および３．９秒）で最適な向きに収束した。
【図１】
2018129031.tif 000054
【図２】
2018129031.tif 000055
【図３】
2018129031.tif 000056
【図４】
2018129031.tif 000057
【図５】
2018129031.tif 000058
【図６】
2018129031.tif 000059
【図７】
2018129031.tif 000060
【図８】
2018129031.tif 000061
【図９】
2018129031.tif 000062
【図１０】
2018129031.tif 000063
【図１１】
2018129031.tif 000064
【図１２】
2018129031.tif 000065
【図１３】
2018129031.tif 000066
【図１４】
2018129031.tif 000067
【図１５】
2018129031.tif 000068
【図１６】
2018129031.tif 000069
【図１７】
2018129031.tif 000070
【図１８】
2018129031.tif 000071
【図１９】
2018129031.tif 000072
【図２０】
2018129031.tif 000073
【図２１】
2018129031.tif 000074
【図２２】
2018129031.tif 000075
【図２３】
2018129031.tif 000076
【図２４】
2018129031.tif 000077
【図２５】
2018129031.tif 000078
【図２６】
2018129031.tif 000079
【図２７】
2018129031.tif 000080
【図２８】
2018129031.tif 000081
【外国語明細書】
2018129031.tif 000082
2018129031.tif 000083
2018129031.tif 000084
2018129031.tif 000085
2018129031.tif 000086
2018129031.tif 000087
2018129031.tif 000088
2018129031.tif 000089
2018129031.tif 000090
2018129031.tif 000091
2018129031.tif 000092
2018129031.tif 000093
2018129031.tif 000094
2018129031.tif 000095
2018129031.tif 000096
2018129031.tif 000097
2018129031.tif 000098
2018129031.tif 000099
2018129031.tif 000100
2018129031.tif 000101
2018129031.tif 000102
2018129031.tif 000103
2018129031.tif 000104
2018129031.tif 000105
2018129031.tif 000106
2018129031.tif 000107
2018129031.tif 000108
2018129031.tif 000109
【図１】
2018129031.tif 000110
【図２】
2018129031.tif 000111
【図３】
2018129031.tif 000112
【図４】
2018129031.tif 000113
【図５】
2018129031.tif 000114
【図６】
2018129031.tif 000115
【図７】
2018129031.tif 000116
【図８】
2018129031.tif 000117
【図９】
2018129031.tif 000118
【図１０】
2018129031.tif 000119
【図１１】
2018129031.tif 000120
【図１２】
2018129031.tif 000121
【図１３】
2018129031.tif 000122
【図１４】
2018129031.tif 000123
【図１５】
2018129031.tif 000124
【図１６】
2018129031.tif 000125
【図１７】
2018129031.tif 000126
【図１８】
2018129031.tif 000127
【図１９】
2018129031.tif 000128
【図２０】
2018129031.tif 000129
【図２１】
2018129031.tif 000130
【図２２】
2018129031.tif 000131
【図２３】
2018129031.tif 000132
【図２４】
2018129031.tif 000133
【図２５】
2018129031.tif 000134
【図２６】
2018129031.tif 000135
【図２７】
2018129031.tif 000136
【図２８】
2018129031.tif 000137