IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ダッソー システムズの特許一覧

特許71642953Dプリンティングのための現実の物体の向き付け
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-24
(45)【発行日】2022-11-01
(54)【発明の名称】3Dプリンティングのための現実の物体の向き付け
(51)【国際特許分類】
   G06F 30/10 20200101AFI20221025BHJP
   B29C 64/386 20170101ALI20221025BHJP
   B29C 64/40 20170101ALI20221025BHJP
   B33Y 10/00 20150101ALI20221025BHJP
   B33Y 30/00 20150101ALI20221025BHJP
   B33Y 50/00 20150101ALI20221025BHJP
   G06F 113/10 20200101ALN20221025BHJP
【FI】
G06F30/10
B29C64/386
B29C64/40
B33Y10/00
B33Y30/00
B33Y50/00
G06F113:10
【請求項の数】 15
【外国語出願】
(21)【出願番号】P 2017225823
(22)【出願日】2017-11-24
(65)【公開番号】P2018129031
(43)【公開日】2018-08-16
【審査請求日】2020-10-27
(31)【優先権主張番号】16306560.0
(32)【優先日】2016-11-25
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】500102435
【氏名又は名称】ダッソー システムズ
【氏名又は名称原語表記】DASSAULT SYSTEMES
(74)【代理人】
【識別番号】110000752
【氏名又は名称】弁理士法人朝日特許事務所
(72)【発明者】
【氏名】アルノー デロンズ
(72)【発明者】
【氏名】ジャン・フランソワ ラムー
【審査官】合田 幸裕
(56)【参考文献】
【文献】特開2012-096427(JP,A)
【文献】米国特許出願公開第2016/0085882(US,A1)
【文献】米国特許出願公開第2016/0274572(US,A1)
【文献】Seth Allen et al.,On the Computation Of Part Orientation Using Support Structures in Layered Manufacturing,1994 International Solid Freeform Fabrication Symposium [online],1994年,pages 259-269,インターネット: <http://hdl.handle.net/2152/68653>
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/10
B29C 64/386
B29C 64/40
B33Y 10/00
B33Y 30/00
B33Y 50/00
G06F 113/10
IEEE Xplore
JSTPlus(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
現実の物体の3Dプリンティングの向き付けを行う、コンピュータにより実施される方法であって、
前記現実の物体を表す3Dモデル化オブジェクトを提供するステップ(S10)と、
張り出しボリュームが最適となるような、前記3Dモデル化オブジェクトの1つまたは複数の向きを決定するステップ(S40、S56)と
を含み、
前記張り出しボリュームが、当該張り出しボリュームにペナルティを課す最適化プログラムの結果と少なくとも実質的に対応する値を有する
ことを特徴とする方法。
【請求項2】
前記1つまたは複数の向きを決定するステップは、
有限な、向きの離散集合の各向きについて、張り出しボリュームを算出するステップと、
前記算出した張り出しボリュームが最適となるような、前記3Dモデル化オブジェクトの1つまたは複数の向きを特定するステップ(S40)と
を含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記向きの離散集合は、すべての向きの領域の一定密度サンプリングに対応する
ことを特徴とする請求項2に記載の方法。
【請求項4】
前記1つまたは複数の向きを決定するステップは、さらに、前記算出した張り出しボリュームが最適であるような前記特定した向きのうちの1つまたは複数について、
前記3Dモデル化オブジェクトのスナッピングに対応する、前記3Dモデル化オブジェクトの1つまたは複数の他の向きを決定するステップ(S52)と、
前記1つまたは複数の他の向きのそれぞれについて、張り出しボリュームを算出するステップ(S54)と、
前記算出した張り出しボリュームが最適となるような、前記3Dモデル化オブジェクトの1つまたは複数の他の向きを特定するステップ(S56)と
を含むことを特徴とする請求項2または3に記載の方法。
【請求項5】
前記向きの離散集合の各向きについて張り出しボリュームを算出するステップは、
前記3Dモデル化オブジェクトを、所定のフレーム内において当該向きまたは反対の向きに位置決めするステップ(S21)と、
張り出し区間を決定するステップと、
前記張り出し区間の長さを合計するステップ(S34)と
を含むことを特徴とする請求項2、3または4に記載の方法。
【請求項6】
前記向きの離散集合は、向きおよびそれと反対の向きを含む少なくとも1つの対を含み、
前記所定のフレームは、前記対をなす2つの向きに対応する2つの水平フレームを含み、
前記3Dモデル化オブジェクトの位置決めは、当該対について一度だけ実行される
ことを特徴とする請求項5に記載の方法。
【請求項7】
前記対における両方の向きについて少なくとも1つの同じ張り出し区間を決定し、前記同じ張り出し区間は当該対について一度だけ決定する
ことを特徴とする請求項6に記載の方法。
【請求項8】
前記張り出し区間を決定するステップは、
定義された鉛直線と前記3Dモデル化オブジェクトの交点を決定するステップ(S26)と、
張り出しに対応する鉛直線の区間を決定すること(S32)と
を含むことを特徴とする請求項5、6、または7に記載の方法。
【請求項9】
前記3Dモデル化オブジェクトは多角形メッシュを含む
ことを特徴とする請求項8に記載の方法。
【請求項10】
前記鉛直線は前記3Dモデル化オブジェクトを覆う
ことを特徴とする請求項8または9に記載の方法。
【請求項11】
前記鉛直線と前記3Dモデル化オブジェクトの交点を決定するステップは、
水平面上に前記3Dモデル化オブジェクトを投影すること(S22)と、
前記水平面上に投影した前記3Dモデル化オブジェクトの境界ボックスを決定するステップ(S23)と、
前記境界ボックス内に点からなるグリッドを定義するステップ(S24)と、
前記点からなるグリッドに基づき、前記鉛直線を定義するステップ(S25)と
を含むことを特徴とする請求項10に記載の方法。
【請求項12】
現実の物体の3Dプリンティングのためにコンピュータが行う処理であって、
請求項1~11のいずれかに記載の方法によって前記現実の物体の3Dプリンティングの向き付けを行うステップと、
前記現実の物体の3Dプリンティングを、前記決定した1つまたは複数の向きのうち1つの向きで行うステップ
を含むことを特徴とする処理。
【請求項13】
請求項1~11のいずれかに記載の方法、および/または、請求項12に記載の処理をコンピュータに実行させるための命令を含むコンピュータプログラム。
【請求項14】
請求項13に記載のコンピュータプログラムを記録したデータ記憶媒体。
【請求項15】
請求項13に記載のコンピュータプログラムを記録したメモリに接続されたプロセッサを備えるシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータプログラムおよび及びシステムの分野に関し、より具体的には、現実の物体の3Dプリンティングの向き付けのための方法、システム、及びプログラムに関する。
【背景技術】
【0002】
オブジェクトの設計、エンジニアリング、製造のため、多数のシステムおよびプログラムが市場に提供されている。CADは、コンピュータ支援設計(Computer-Aided Design)の略語であり、例えば、オブジェクトを設計するためのソフトウェア・ソリューションに関する。CAEは、コンピュータ支援エンジニアリング(Computer-Aided Engineering)の略語であり、例えば、将来の製品の物理的挙動をシミュレーションするためのソフトウェア・ソリューションに関する。CAMは、コンピュータ支援製造(Computer-Aided Manufacturing)の略語であり、例えば、製造工程および動作を定義するためのソフトウェア・ソリューションに関する。このようなコンピュータ支援設計システムにおいて、グラフィカル・ユーザ・インターフェースは、技術の効率に関して、重要な役割を果たす。これらの技術は、製品ライフサイクル管理(Product Lifecycle Management: PLM)システムに組み込むことができる。PLMとは、企業が、拡張エンタープライズの概念全体にわたって、製品データを共有し、共通の工程を適用し、構想に始まり製品寿命の終わりに至る製品開発のための企業知識を活用するのを支援するビジネス戦略を指す。ダッソー・システムズが提供するPLMソリューション(製品名CATIA、ENOVIA、DELMIA)は、製品エンジニアリング知識を体系化するエンジニアリング・ハブ、製品エンジニアリング知識を管理する製造ハブ、およびエンジニアリング・ハブと製造ハブの両方に対するエンタープライズ統合と接続を可能にするエンタープライズ・ハブを提供する。全てのシステムは、製品、工程、リソースを結ぶオープンなオブジェクトモデルを提供し、最適化された製品定義、製造準備、生産およびサービスを推進する、動的な知識ベースの製品作成および意思決定支援を可能にする。
【0003】
3次元(3D)プリンティングは、これらのシステムやプログラムを利用することができる。付加製造としても知られる3Dプリンティングは、現実の物体を合成するために用いられる様々な工程を指す。3Dプリンティングでは、コンピュータ制御の下で、連続した材料の層が形成され、当該現実の物体が作成される。結果として得られる物体は、任意の形状とすることができ、例えば、CADシステムを用いて予め設計された仮想的な立体の物理的な実体である。
【0004】
こうした文脈において、3Dプリンティングの改善が依然として求められている。
【発明の概要】
【0005】
したがって、現実の物体の3Dプリンティングの向き付けを行うための、コンピュータによって実施される方法が提供される。本方法は、前記現実の物体を表す3Dモデル化オブジェクトを提供することを含む。本方法はまた、張り出しボリュームが最適となるような、前記3Dモデル化オブジェクトの1つまたは複数の向きを決定することを含む。
【0006】
さらには、現実の物体の3Dプリンティングのための処理が提供される。前記処理は、上記方法によって前記現実の物体の3Dプリンティングの向き付けを行うことを含む。本処理は、これにより、張り出しボリュームが最適となるような、前記3Dモデル化オブジェクトの1つまたは複数の向きを決定することを含む。本処理は、次いで、前記現実の物体の3Dプリンティングを、前記決定した1つまたは複数の向きのうち1つの向きで行うことを含む。
【0007】
例において、前記現実の物体の3Dプリンティングは、前記決定した1つまたは複数の向きのうちの前記1つについて、前記現実の物体の張り出し面の支持体を決定することと、前記現実の物体を、前記支持体と共に、前記決定した1つまたは複数の向きのうちの前記1つで3Dプリンティングすることと、次いで、前記支持体を除去することとを含んでいてもよい。
【0008】
例において、前記3Dプリンティングは、任意の付加製造技術、例えば、熱溶解積層法(fused deposition modeling(FDM)、fused filament fabrication(FFF))、および/または、ロボキャスティングあるいは直接インク書き込み(direct ink writing(DIW))を含む押出3Dプリンティングや、ステレオリソグラフィ(SLA)および/またはデジタル光処理(DLP)を含む光重合3Dプリンティングなどで実行してもよい。
【0009】
さらには、前記方法、および/または、前記処理を実行するための命令を含むコンピュータプログラムが提供される。
【0010】
さらには、前記コンピュータプログラムを記録したコンピュータ読み取り可能記憶媒体が提供される。
【0011】
さらには、前記コンピュータプログラムを記録したメモリに接続されたプロセッサを備えるシステムが提供される。前記システムは、さらに、グラフィカル・ユーザ・インターフェースを備えていてもよい。
【0012】
例において、前記システムは、3Dプリンティングシステムであってもよい。例において、前記システムは、上記3Dプリンティングのための処理を実行するよう構成され、あるいはプログラムされていてもよい。
【0013】
例において、3Dプリンティングの向き付けは、以下のいずれか1つまたは任意の組み合わせを含んでいてもよい。
・前記1つまたは複数の向きを決定することは、向きの有限離散集合の各向きについて、張り出しボリュームを算出することと、前記算出した張り出しボリュームが最適となるような、前記3Dモデル化オブジェクトの1つまたは複数の向きを特定することとを含む。
・前記向きの離散集合は、すべての向きの領域の一定密度サンプリングに対応する。
・前記1つまたは複数の向きを決定することは、さらに、前記算出した張り出しボリュームが最適であるような前記特定した向きのうちの1つまたは複数について、前記3Dモデル化オブジェクトのスナッピングに対応する、前記3Dモデル化オブジェクトの1つまたは複数の他の向きを決定することと、前記1つまたは複数の他の向きのそれぞれについて、張り出しボリュームを算出することと、前記算出した張り出しボリュームが最適となるような、前記3Dモデル化オブジェクトの1つまたは複数の他の向きを特定することとをさらに含む。
・前記離散集合の各向きについて張り出しボリュームを算出することは、前記3Dモデル化オブジェクトを当該向きまたは反対の向きに位置決めすることと、張り出し区間を決定することと、前記張り出し区間の長さを合計することとを含む。
・前記向きの離散集合は、向きおよびそれと反対の向きを含む少なくとも1つの対を含み、前記3Dモデル化オブジェクトの位置決めは、当該対について一度だけ実行する。
・前記対における両方の向きについて少なくとも1つの同じ張り出し区間を決定し、前記同じ張り出し区間は当該対について一度だけ決定する。
・前記張り出し区間を決定することは、鉛直線と前記3Dモデル化オブジェクトの交点を決定することと、張り出しに対応する鉛直線の区間を決定することとを含む。
・前記3Dモデル化オブジェクトは多角形メッシュを含む。
・前記鉛直線は前記3Dモデル化オブジェクトを覆う。かつ/あるいは、
・前記鉛直線と前記3Dモデル化オブジェクトの交点を決定することは、水平面上に前記3Dモデル化オブジェクトを投影することと、前記水平面上に投影した前記3Dモデル化オブジェクトの境界ボックスを決定することと、前記境界ボックス内に点からなるグリッドを定義することと、前記点からなるグリッドに基づき、前記鉛直線を定義することとを含む。
【図面の簡単な説明】
【0014】
図1】本方法による3Dプリンティングの改善を示した図。
図2】本方法による3Dプリンティングの改善を示した図。
図3】本方法による3Dプリンティングの改善を示した図。
図4】本システムのグラフィカル・ユーザ・インターフェースの一例を示す。
図5】本システムの一例を示す。
図6】本方法の一例のフローチャートを示す。
図7】本方法の例を示した図。
図8】本方法の例を示した図。
図9】本方法の例を示した図。
図10】本方法の例を示した図。
図11】本方法の例を示した図。
図12】本方法の例を示した図。
図13】本方法の例を示した図。
図14】本方法の例を示した図。
図15】本方法の例を示した図。
図16】本方法の例を示した図。
図17】本方法の例を示した図。
図18】本方法の例を示した図。
図19】本方法の例を示した図。
図20】本方法の例を示した図。
図21】本方法の例を示した図。
図22】本方法の例を示した図。
図23】本方法の例を示した図。
図24】本方法の例を示した図。
図25】本方法の例を示した図。
図26】本方法の例を示した図。
図27】本方法の例を示した図。
図28】本方法の例を示した図。
【発明を実施するための形態】
【0015】
現実の物体の3Dプリンティングの向き付けを行うための、コンピュータによって実施される方法は、当該現実の物体を表す3Dモデル化オブジェクトを提供することと、張り出しボリュームが最適となるような、3Dモデル化オブジェクトの1つまたは複数の向きを決定することとを含む。これにより、本方法は3Dプリンティングを改善する。
【0016】
現実の物体の3Dプリンティングの向き付けでは、1つまたは複数の所定の基準に照らして、現実の物体の3Dプリンティングを行う1つまたは複数の向きを表すデータを出力する任意の動作または一連の動作を指定する。1つまたは複数の向きは、地上の基準フレームにおける鉛直下方方向(すなわち、重力方向)に対して定義してもよい。
【0017】
特に、本方法は、張り出しボリュームが最適となるような、3Dモデル化オブジェクトの1つまたは複数の向きを決定する。立体の3Dプリンティングにおいて、立体の向き付けは、いわゆる「張り出し面」を生じさせ得る。張り出し面とは、重力の影響により、支持するのに追加の材料を必要とする、現実の物体の外面である。「張り出しボリューム」という表現は、張り出し面の下のボリューム、例えば張り出し面と3Dプリンティングの接触面との間のボリュームを表す、任意のデータ値を指定する。
【0018】
張り出しボリュームは、その値が、当該張り出しボリュームにペナルティを課す(すなわち、当該張り出しボリュームを最小にする傾向がある)最適化プログラムの結果に少なくとも実質的に対応するとき(その近似値である場合を含む)、最適であると言う。したがって、本方法は、当該張り出しボリュームが、可能な限り最小の値となるような、1つまたは複数の向きを出力する。例えば、張り出しボリュームは、そのような最適化プログラムにより生じる。最適化プログラムは、張り出しボリュームのみにペナルティを課すことができるか、あるいは、張り出しボリュームに加えて、1つまたは複数の他のパラメータにペナルティを課すことができる。最適化プログラムは、例えば1つまたは複数の制約の下で、あるいは制約のない状態で、張り出しボリュームが最小となる1つまたは複数の向きを見つけることからなるか、あるいは、そうすることに対応してもよい。一例では、最適化プログラムは、単純に、現実の物体と接触面との間の距離(すなわち、3Dプリント工程の、いわゆる「オフセット距離」)が所定の、例えば一定の距離(後述の例ではdで表す)よりも大きいか、あるいは等しいという制約の下で、張り出しボリュームを最小化することからなっていてもよく、当該所定の距離は、ゼロより大きいか、あるいは等しい可能性がある。
【0019】
3Dプリント工程において、現在の量の溶融材料(例えば、ノズルから出る)が固まるのに短い時間を必要とすることがある。図1~3を参照すると、現実の物体(図1に示す)が幾つかの張り出し面(図2において太字の曲線20で表される)を特徴とする場合、当該材料は、凝固時間の間にわずかに下方に曲がり、望ましくない形状を生み出す。広く知られているように、この現象を回避するのに、張り出しボリュームが大きすぎる対象形状に対して支持体を追加することができる(図3の支持体30)。製造工程の観点から、上記支持体は、対象形状に一体化してもよく、同じ材料からなっていてもよい。支持体は、事後、すなわち、現実の物体が支持体と共に完全にプリントされた後に、除去することができる。現実の物体を3Dプリントするための向きが与えられたとき、実際の支持体の形状を設計する技術が、従来技術において知られている。その技術の一例が、論文「J.Vanek,J.A.G.Galicia and B.Benes,Clever Support:Efficient Support Structure Generation for Digital Fabrication,Eurographics Symposium on Geometry Processing 2014,Volume 33(2014),Number 5」で提供されている。本方法は、例において、任意のこのような技術を用いることができる。
【0020】
本方法は、張り出しボリュームが最適となるような、現実の物体を表す3Dモデル化オブジェクトの1つまたは複数の向きを決定する。言い換えれば、本方法は、張り出しボリュームを可能な限り小さくするという基準に照らして、現実の物体を3Dプリントするための1つまたは複数の最適な向きを決定する。これにより、実際の支持体の設計が容易になる。実際、張り出しボリュームが最適であるとき、支持体を設計する際に考慮する必要のあるスペースは、比較的小さい。これにより、そのような設計の複雑さが軽減される。さらに、支持体によって消費される材料の量は、張り出しボリュームの大きさに相関する。よって、本方法は、材料の消費量と無駄の削減に役立つ。さらに、本方法は張り出しボリュームを最適化するため、相関関係にある張り出し面も最適化する。したがって、本方法は、材料が曲がると望ましくない形状をもたらす可能性のある領域を減少させ、それにより、後の3Dプリント工程の結果の品質を向上させる。
【0021】
本方法は、現実の物体を表す3Dモデル化オブジェクトに基づいて3Dプリンティングの向き付けを行う。したがって、本方法では、最初にプリントする現実の物体の実体から、張り出しボリュームに関して最適な3Dプリンティングが可能である。
【0022】
本方法は、コンピュータにより実施される。すなわち、本方法のステップ(あるいは略全てのステップ)が少なくとも1つのコンピュータ、または類似の任意のシステムによって実行される。よって本方法のステップは、コンピュータにより、完全に自動的に、あるいは半自動的に実行される可能性がある。例えば、本方法の少なくともいくつかのステップは、ユーザとコンピュータの対話を通じて始動されてもよい。求められるユーザとコンピュータの対話レベルは、想定される自動性のレベルに応じたものであって、ユーザの要望を実装する必要性との間でバランスをとるものとしてもよい。例えば、このレベルは、ユーザが設定し、かつ/あるいは、予め定義されていてもよい。
【0023】
方法のコンピュータによる実施の典型的な例は、この目的に適したシステムを用いて本方法を実行することである。当該システムは、本方法を実行するための命令を含むコンピュータプログラムを記録したメモリに接続されたプロセッサ、および、グラフィカル・ユーザ・インターフェース(GUI)を備えていてもよい。メモリは、データベースを記憶していてもよい。メモリは、そのような記憶に適した任意のハードウェアであり、場合により、物理的に区別可能ないくつかの部分(例えば、プログラム用に1つ、場合によりデータベース用に1つ)を含む。
【0024】
本方法は、一般に、モデル化オブジェクトを操作する。モデル化オブジェクトは、例えばデータベースに格納されたデータによって定義される任意のオブジェクトである。さらには、「モデル化オブジェクト」という表現は、データそのものも指す。システムの種類に応じて、異なる種類のデータによってモデル化オブジェクトが定義されてもよい。実際、システムは、CADシステム、CAEシステム、CAMシステム、PDMシステム、および/またはPLMシステムのうちの任意の組み合わせであってもよい。それら異なるシステムにおいて、モデル化オブジェクトは、対応するデータによって定義される。したがって、CADオブジェクト、PLMオブジェクト、PDMオブジェクト、CAEオブジェクト、CAMオブジェクト、CADデータ、PLMデータ、PDMデータ、CAMデータ、CAEデータについて言及することがある。しかしながら、モデル化オブジェクトは、これらのシステムの任意の組み合わせに対応するデータによって定義されてもよいため、これらのシステムは、互いに排他的なものではない。したがって、以下に示すこのようなシステムの定義から明らかなように、システムは、CAD兼PLMシステムであってもよい。
【0025】
CADシステムは、少なくとも、CATIAのようなモデル化オブジェクトのグラフィック表現に基づくモデル化オブジェクトの設計に適した任意のシステムをも意味する。この場合、モデル化オブジェクトを定義するデータは、モデル化オブジェクトを表現可能にするデータを含む。CADシステムは、例えば、辺や線を用い、また、場合により面(faces or surfaces)を用いて、CADモデル化オブジェクトの表現を提供してもよい。線、辺、あるいは面は、例えば、非一様有理Bスプライン(NURBS)など、様々な様式で表現されてもよい。具体的には、CADファイルは仕様を含み、その仕様に基づきジオメトリが生成可能であり、よって表現が生成可能となる。モデル化オブジェクトの仕様は1つまたは複数のCADファイルに格納されていてもよい。CADシステムでモデル化オブジェクトを表現するファイルの典型的なサイズは、一部分あたり1メガバイトの範囲である。また、モデル化オブジェクトは、典型的には、数千の部分の集合体であってもよい。
【0026】
CADの文脈において、モデル化オブジェクトは、典型的には、3Dモデル化オブジェクト、例えば、一つの部品や部品の集合体などの製品、あるいは製品の集合体を表現するものであってもよい。「3Dモデル化オブジェクト」は、3D表現が可能なデータによってモデル化される任意のオブジェクトを意味する。3D表現は、その部品をすべての角度から見ることを可能にする。たとえば、3Dで表現された3Dモデル化オブジェクトは、その軸のうちの任意の軸、あるいは、その表現が表示された画面中の任意の軸を中心に、処理して回転させることが可能である。これは、特に、3Dモデル化されていない2Dアイコンについては除外される。3D表現の表示は、設計を容易にする(すなわち、設計者が作業を達成するスピードを統計的に速める)。製品の設計は製造工程の一部であるから、これによって当該産業における製造工程が迅速化する。
【0027】
3Dモデル化オブジェクトは、CADソフトウェア・ソリューションやCADシステム等を用いた仮想的デザインの完了後に実世界において製造される製品、すなわち(例えば機械)部品や、部品の集合体(あるいは同様に部品の集合体。なぜなら部品の集合体は本方法の観点では一つの部品としてみることができ、また、本方法は集合体における各部品に独立して適用することができるからである)など、より一般的には任意の剛体の集合体(例えば移動機構)などの製品のジオメトリを表現してもよい。CADソフトウェア・ソリューションは、航空宇宙、建築、建設、消費財、ハイテク機器、産業機器、輸送、海洋、および/または海洋石油/ガス生産、または交通を含む、限定されることのない様々な産業分野において製品の設計を可能にする。本方法により設計された3Dモデル化オブジェクトは、このように、地上車両の部品(例えば、自動車および軽トラック機器、レーシングカー、オートバイ、トラックおよびモーター機器、トラック、バス、電車を含む)、航空車両の部品(例えば、航空機体機器、航空宇宙機器、推進機器、防衛製品、航空路線機器、宇宙機器を含む)、海軍車両の部品(例えば、海軍用機器、商業用船舶、オフショア機器、ヨットおよび作業船、船舶用機器を含む)、一般的な機械部品(例えば、工業用製造機械、大型移動機械または機器、設置機器、産業機器製品、加工金属製品、タイヤ製造製品を含む)、または電気機械部品または電子部品(例えば、家電、セキュリティおよび/または制御および/または計装製品、コンピューティングおよび通信機器、半導体、医療装置および設備を含む)、消費者製品(例えば、家具、家庭用および庭用製品、レジャー用品、ファッション用品、耐久消費財小売用品、織物類小売用品を含む)、包装(例えば、食品および飲料およびたばこ、美容およびパーソナルケア、家庭用製品包装を含む)などのように、任意の機械部品であり得る工業製品を表してもよい。
【0028】
PLMシステムは、物理的な、製造された製品(または製造される予定の製品)を表すモデル化オブジェクトの管理に適した任意のシステムをも指す。PLMシステムでは、モデル化オブジェクトは、このように、物理的な物体の製造に適したデータによって定義される。これらは、典型的には、寸法の値および/または公差の値であってもよい。物体を正しく製造するために、実際、このような値を用いるのが望ましい。
【0029】
CAMソリューションとは、製品の製造データを管理するのに適した、ハードウェアのソフトウェアである、あらゆるソリューションをも指す。製造データは、一般に、製造する製品、製造工程、および必要なリソースに関するデータを含む。CAMソリューションは、製品の製造工程全体を計画し最適化するのに用いられる。例えば、実現可能性、製造工程の期間、または製造工程における特定のステップで使用され得るリソース、例えば特定のロボットの数に関する情報をCAMユーザに提供することができる。これにより、管理や必要な投資についての決定を可能にする。CAMは、CAD工程、および、場合によりCAE工程に続く工程である。このようなCAMソリューションは、ダッソー・システムズにより、DELMIA(登録商標)として提供されている。
【0030】
CAEソリューションとは、モデル化オブジェクトの物理的挙動の分析に適した、ハードウェアのソフトウェアである、あらゆるソリューションをも指す。よく知られており広く用いられているCAE技術は有限要素法(Finite Element Method:FEM)であり、これは、典型的には、モデル化オブジェクトを、物理的挙動を方程式によって計算しシミュレーションできる要素に分割することを含む。このようなCAEソリューションは、ダッソー・システムズにより、SIMULIA(登録商標)として提供されている。成長するCAE技術のもう1つは、CADジオメトリデータを使用せずに異なる物理分野の複数の要素で構成される複雑なシステムのモデリングと解析を行うことを含む。CAEソリューションはシミュレーションを可能にし、それにより、製造する製品の最適化、改善および検証を可能にする。このようなCAEソリューションは、ダッソー・システムズにより、DYMOLA(登録商標)として提供されている。
【0031】
PDMはProduct Data Management(生産データ管理)の略である。PDMソリューションとは、特定の製品に関するすべての種類のデータを管理するのに適した、ハードウェアのソフトウェアである、あらゆるソリューションを指す。PDMソリューションは、製品のライフサイクルにかかわるすべての関係者によって使用されてもよい。これには、主として技術者のほか、プロジェクトマネージャー、財務担当者、営業担当者、およびバイヤーも含まれる。PDMソリューションは、一般に、製品指向のデータベースに基づく。これにより、関係者が製品に関する一貫したデータを共有することが可能になり、これにより、関係者が異なるデータを用いるのを防止する。このようなPDMソリューションは、ダッソー・システムズにより、ENOVIA(登録商標)として提供されている。
【0032】
図4は、本システムのGUIの一例を示す図であって、当該システムはCADシステムである。GUIは、後の3Dプリンティング用の3Dモデル化オブジェクトを設計するのに用いることができる。ユーザは、任意の時点において本方法を開始し、3Dプリンティング用の向きを決定することができる。決定した1つまたは複数の向きは、3Dモデル化オブジェクトを定義するデータに(例えばデータファイルに)追加することができる。
【0033】
GUI2100は、標準的なメニューバー2110,2120、ならびに底部および側面のツールバー2140,2150を有する典型的なCADのようなインターフェースであってもよい。このようなメニューバーおよびツールバーは、ユーザが選択可能なアイコンのセットを含み、各アイコンは、当技術分野で知られているように、1つまたは複数の操作または機能に関連付けられている。これらのアイコンのいくつかは、GUI2100に表示された3Dモデル化オブジェクト2000の編集および/または作業に適合したソフトウェアツールに関連付けられている。ソフトウェアツールはワークベンチに分類することができる。各ワークベンチは、ソフトウェアツールのサブセットを含む。特に、ワークベンチの1つは、モデル化製品2000のジオメトリ的特徴を編集するのに適した編集ワークベンチである。操作中、設計者は、例えば、オブジェクト2000の一部を予め選択し、次いで、適切なアイコンを選択することによって、操作を開始する(例えば、寸法、色などを変更する)か、ジオメトリ的制約を編集することができる。例えば、典型的なCAD操作は、スクリーン上に表示された3Dモデル化オブジェクトのパンチングまたは折り畳みのモデリングである。GUIは、例えば、表示された製品2000に関連するデータ2500を表示してもよい。図の例では、「特徴ツリー」として表示されたデータ2500およびそれらの3D表現2000は、ブレーキキャリパおよびディスクを含むブレーキ部品に関するものである。GUIは、編集された製品の動作のシミュレーションを起動するため、または表示された製品2000の様々な属性を描画するために、例えばオブジェクトの3D定位を容易にするための様々なタイプのグラフィックツール2130,2070,2080をさらに示してもよい。カーソル2060は、ユーザがグラフィックツールを用いて対話操作ができるように、触覚デバイスによって制御されてもよい。
【0034】
図5は、本システムの一例を示すものであって、当該システムは、クライアントコンピュータシステム、例えばユーザのワークステーションである。
【0035】
本例のクライアントコンピュータは、内部通信バス1000に接続された中央演算処理装置(CPU)1010、および同じくバスに接続されたランダムアクセスメモリ(RAM)1070とを備える。クライアントコンピュータは、さらに、バスに接続されたビデオランダムアクセスメモリ1100と関連付けられたグラフィックス処理装置(GPU)1110を備える。ビデオRAM1100は、当該技術分野において、フレームバッファとしても知られる。大容量記憶装置コントローラ1020は、ハードドライブ1030などの大容量記憶装置へのアクセスを管理する。コンピュータプログラムの命令及びデータを具体的に実現するのに適した大容量メモリ装置は、例として、EPROM、EEPROM及びフラッシュメモリ装置のような半導体メモリ装置、内蔵ハードディスクやリムーバブルディスクなどの磁気ディスク、光磁気ディスク、およびCD-ROMディスク1040を含む、全ての形式の不揮発性メモリを含む。前述のいずれも、特別に設計されたASIC(特定用途向け集積回路)によって補完されてもよいし、組み入れられてもよい。ネットワークアダプタ1050は、ネットワーク1060へのアクセスを管理する。クライアントコンピュータはまた、カーソル制御装置、キーボードなどの触覚装置1090を含んでいてもよい。カーソル制御装置は、ユーザがディスプレイ1080上の任意の所望の位置にカーソルを選択的に位置させることを可能にするために、クライアントコンピュータ内で使用される。さらに、カーソル制御デバイスは、ユーザが様々なコマンドを選択し、制御信号を入力することを可能にする。カーソル制御装置は、システムに制御信号を入力するための多数の信号生成装置を含む。典型的には、カーソル制御装置はマウスであってもよく、マウスのボタンは信号を生成するために使用される。あるいは、または追加的に、クライアントコンピュータシステムは、感知パッドおよび/または感知スクリーンを備えてもよい。本システムはまた、3Dプリンター1055を備えてもよい。
【0036】
コンピュータプログラムは、コンピュータによって実行可能な命令を含んでいてもよく、命令は、上記システムに方法を実行させるための手段を含む。プログラムは、システムのメモリを含む任意のデータ記憶媒体に記録可能であってもよい。プログラムは、例えば、デジタル電子回路、またはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実装されてもよい。プログラムは、例えばプログラマブルプロセッサによる実行のための機械読み取り可能な記憶装置に具体的に実現された製品のような装置として実装されてもよい。方法ステップは、プログラム可能なプロセッサが命令のプログラムを実行し、入力データを操作して出力を生成することによって方法の機能を実行することによって実行されてもよい。したがって、プロセッサは、データ記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、また、それらにデータおよび命令を送信するようにプログラム可能であってもよく、またそのように接続されていてもよい。アプリケーションプログラムは、高水準の手続き型またはオブジェクト指向のプログラミング言語で、または必要に応じてアセンブリ言語または機械語で実装されていてもよい。いずれの場合も、言語はコンパイラ型言語またはインタープリタ型言語であってもよい。プログラムは、フルインストールプログラムまたは更新プログラムであってもよい。いずれの場合も、プログラムをシステムに適用すると、本方法を実行するための指示が得られる。
【0037】
図6は、演算速度及びリソース消費に関して特に効率的な方法の例を示す。この例では、正確な結果を、迅速かつ効率的に、確実に得ることができるような、独立したさまざまなオプションを実施している。
【0038】
本方法は、現実の物体を表す3Dモデル化オブジェクトを提供すること(S10)から始まる。例えば、3Dモデル化オブジェクトを設計した(または、離れたコンピュータ/ユーザからそのような3Dモデル化オブジェクトを受け取った)ユーザは、3Dプリンティング向き付け機能を起動する。
【0039】
3Dモデル化オブジェクトは、現実の物体の局所的な形状をそれぞれ表すジオメトリの離散的かつ有限の集合で構成されていてもよい。これにより、複雑な演算を含むパラメトリックまたは暗黙的なジオメトリと比較して、本方法を高速に実行することが可能になる。特に、3Dモデル化オブジェクトは、現実の物体の形状のメッシュ表現からなっていてもよい。メッシュは、四角メッシュや三角メッシュなどの多角形メッシュであってもよい。このような種々の3Dモデル化オブジェクトは、本方法によって後に実行されるジオメトリ演算を容易で迅速なものにする。
【0040】
次いで、本方法は、張り出しボリュームに関して最適な1つまたは複数の向きの候補を出力するため、候補となる向きを探す。そのために、本方法は、まず、離散的で有限な集合についてループするスキームS21~S26を実行する。最初に複雑な問題(アルゴリズム的観点から)を有限領域上の離散最適化に還元することにより、本方法を堅牢なものにすることができる。
【0041】
離散集合は、本方法を高速に実行するために特別に設計されている(すなわち、集合の各要素についてスキームを一度だけ繰り返す)。離散集合は、向き(本方法による最終的な出力の候補)と、それとは反対の向き(すなわち、同じ線であるが方向が反対のものであり、これもまた候補である)からなる対の、有限集合である。他の例では、本方法は、対を考慮する代わりに向きの候補それぞれについてループを実行してもよいが、対を考慮することによって相乗効果を与えるような演算(例えば、対の第1の要素について実行した演算を、第2の要素についても再利用すること)が可能になる。特に、後述するS26は、2つの反対の向きに同じ交点が含まれる場合(これはよくあることである)に特に時間がかかり、その演算を一度だけ行うようにすることで、効率性が特に増す。さらに他の例では、向きの候補集合は対称ではない(すなわち、全ての向きの候補が、当該集合内に、それとは反対の向きを有するわけではない)。図6の方法をそのような例に適用するのは簡単である。
【0042】
離散集合は、例において、単位球のサンプリングに対応してもよい。言い換えれば、向きの候補は、それぞれ、単位球の点に対応する(向きは、例えば所定の順序付け規約を用いて、例えば当該点および単位球の中心によって定義される)。単位球の点は、球をサンプリングすることによって得られる。サンプリングは球全体をカバーしてもよく、この場合、サンプリングは局所的ではなく全体的であるため、すべての向き領域が探索される。
【0043】
サンプリングは、特に、一定密度サンプリングとすることができる。これは、サンプリングが、ランダムなサンプリングでも円ごとの規則的サンプリングでもなく、一定密度サンプリングであることを意味する(すなわち、球上の一定面パッチにおけるサンプル点の数は、パッチが球上のどこに配置されていても実質的に同じである)。これにより、向き領域(離散化されたときに縮小されている)の、より良い探索が可能になる。言い換えれば、このようなサンプリングは情報の損失が少ない。
【0044】
ここでスキームS21~S26について説明する。
【0045】
候補の向きおよび反対の向きからなる所与の対について、スキームS21~S26では、最終的に、算出されたボリュームのすべてを比較して1つまたは複数の最適な向きを決定するために、これら2つ向きのそれぞれについて張り出しボリュームを算出する準備をする。スキームS21~S26に含まれる演算は、比較的効率的である。
【0046】
本スキームは、所定の一定フレームに対して実行される。本スキームは、対をなす2つの向きのいずれか1つに従ってフレーム内に3Dモデル化オブジェクトを配置すること(S21)から始まる。次いで、本スキームは、水平面上に3Dモデル化オブジェクトを投影すること(S22)を含む。水平面または3Dモデル化オブジェクトは、前述のオフセット距離を基準にフレーム内に配置することができる。もう1つの水平フレームは、対をなす2つの向きのうち他方の向きについて、上述のオフセット距離を基準として、モデル化オブジェクトの反対側に(スキームのこの時点または後の時点において)配置されてもよい(これは後ほど、正確にはS32において用いられる。)次いで、本スキームは、水平面上に投影した3Dモデル化オブジェクトの境界ボックスを決定すること(S23)を含む。境界ボックスは、投影物を包含する最小サイズの矩形であってもよい。決定すること(S23)は、任意の既知の技術により実行することができる。次いで、本スキームは、境界ボックス内に点からなるグリッドを定義すること(S24)を含む。グリッドは規則的(例えば、所定の一定幅、例えば両方向に共通の幅を有する、点の配列を形成する)、かつ/あるいは、所定の一定密度の点を有してもよい。次いで、本スキームは、点からなるグリッドに基づき、鉛直線を定義すること(S25)を含む。鉛直線はそれぞれグリッドの点を含み、鉛直線の梁が交差して3Dモデル化オブジェクトを覆う。次いで、本スキームは、鉛直線と3Dモデル化オブジェクトとの交点を決定(S26)して終了する。この演算はジオメトリ的なものであり、したがって最も時間を要する。よって、多角形メッシュと相乗的演算の使用が、ここで特に重要な意味を持つ。
【0047】
この時、本方法は、向きの候補のそれぞれについてループするスキームを実行する。
【0048】
本スキームは、まず、張り出し区間を決定することを含む。これは、S26で決定した交点を用いて、張り出しに対応する鉛直線の区間を決定すること(S32)によって行われ、当該区間は当該交点(および、3Dモデル化オブジェクトがS21において向きの候補に応じて配置されたか、あるいはそれとは反対の向きに応じて配置されたかによって決まる、端の2つの水平面のうちのいずれか1つ)によって区切られる。
【0049】
次に、本スキームは、S34において、張り出し区間の長さを単純に合計してもよい。このような合計により、張り出しボリュームを表す値が得られる(例えば、特に、グリッドの点の密度がS34のすべての反復について同じである場合、言い換えれば、グリッドの点の密度がS24の各反復において同じである場合)。これにより、本方法はとりわけ高速になる。次いで、本方法は、算出した張り出しボリュームが最適となる(例えば、S34の繰り返しで算出した合計の、最小値に対応する)ような、現実の物体を表す3Dモデル化オブジェクトの1つまたは複数の向きを単純に特定する(S40)。
【0050】
S40の結果が出力され得る。しかし、S40の結果を出力するかわりに、図6の方法は、さらに、「スナッピング」と呼ばれるオプションS52~S56を含む。
本方法は、3Dモデル化オブジェクトのスナッピングに対応する、3Dモデル化オブジェクトの1つまたは複数の他の向きを決定すること(S52)を含む。各スナッピングは、S40で出力された向きで3Dモデル化オブジェクトを配置し、(多角形メッシュの)隣接面が水平になるように、3Dモデル化オブジェクトを、その最も低い頂点(そのような一意の頂点がある場合。これは一般的なケースである。)の周りに回転させることからなる。新たに得られた向きは、最適な張り出しボリュームを提供する方法で出力される、新たな候補となる。このオプションがS40の結果を改善させることが実際に確認されている。すなわち、このオプションは、1つまたは複数の他の向きのそれぞれについて張り出しボリュームを算出すること(S54)と、次いで、算出した張り出しボリュームが最適となるような、3Dモデル化オブジェクトの1つまたは複数の他の向きを特定すること(S56)とを含む。オプションS52~S56は、S40によって出力された向きのそれぞれ、および最も低い頂点に隣接する面のそれぞれについて実行してもよい。
【0051】
このように、本方法は、例においては、3Dモデル化オブジェクトをフレーム内に配置してもよい。本方法は、次いで、平面に含まれる点からなるグリッドにおける各点について、z線と3Dモデル化オブジェクトのスキンとの交点を決定してもよい。本方法は、次いで、当該向きおよびそれと反対の向きについて、張り出しに寄与する区間の長さを合計してもよい。点からなるグリッドは、xy平面上にすべてのメッシュ頂点を投影することと、投影物の境界ボックスを決定することとを含むスキームにより、当該境界ボックスにわたる(例えば32×32の)グリッドを用いて繰り返しごとに決定してもよく、それらの点は、グリッドセルの中心である。z線と3Dモデル化オブジェクトのスキンとの交点を算出することは、当該向きと、その反対の向きの両方について、1回だけ実行してもよい。z軸は、当該向きおよびその反対の向きの支持方向(すなわち、2つのうちの一方の重力方向)に対応していてもよい。
【0052】
ここで、本方法の実施例について、図7~28を参照して説明する。
【0053】
実施例の方法では、とり得る全ての向きについて、それに対応する立体の支持ボリュームを算出することができる。次いて、支持ボリュームが最も小さくなる向き選択することができる。支持ボリュームは、線/立体交差法を用いて算出することができる。
実施例の方法は、以下の長所を特徴とする。支持ボリュームを最小にすることにより、対象形状に用いられる材料の量が削減され、よって製造時間が短縮される。また、支持体の削除だけのための後処理時間も短縮される。要するに、支持ボリュームを最小にすることにより、全体的な製造コストを削減することになる。
【0054】
入力される立体
入力される立体は、CADシステムの立体モデリング対話機能を用いて設計することができる。なお、Sとその境界面は∂Sで表され、これは三角形からなる面であってもよい。点Q∈∂Sにおける外側法線ベクトルはN(Q)で表される。立体Sは、CADシステムの立体モデリング機能を使用して設計できるものできれば、その形状に制約はない。
【0055】
張り出し点
張り出しの閾値は、
【数1】
で表される角度である。これは物理的物体をプリントするのに用いる材料によって変化し、典型的な値は
【数2】
である。以下で「方向」と呼ぶ正規化ベクトルを
【数3】
とするとき、
【数4】
であれば、点Q∈∂Sは張り出し点である。このような閾値は、ユーザによって与えられてもいいし、システムで予め定義されていてもよい。
【0056】
図7は、
【数5】
のときの状況を示している。点Q1
【数6】
であるため、張り出し点ではない。点Q2
【数7】
であるため、張り出し点ではない。点Q3
【数8】
であるため、張り出し点である。
【0057】
張り出し線分
方向Vとオフセット距離d≧0が与えられるとき、接触面Pは、点AとベクトルVによって、
【数9】
と定義される。点Aは、一意ではなく、立体Sが、点Pから距離dに位置し、Pによって定義される非正の半空間に含まれるような点である。正確には、すべてのQ∈Sについて
【数10】
であり、
【数11】
となるようなB∈Sが存在する。d=0の場合、立体Sは、平面Pに接している。
【0058】
図8~9は、立体S、方向V、距離d=0(図8)、および距離d>0(図9)によって定義された接触面Pを示している。以下では、多くの図面がd=0を用いて示されている。
【0059】
点Z∈Pが与えられるとき、非正の半空間に含まれる平面Pに垂直な半直線をΔ(Z)とする。すなわちΔ(Z)={Z-λV,λ≧0}とする。i=1,・・・,n(Z)のとき、半直線Δ(Z)と立体Sの境界面∂Sとのn(Z)個の交点であるXi(Z)を考える。交点は実数λi(Z)によって、Xi(Z)=Z-λi(Z)Vとなるようにパラメータ化され、λ1(Z)<・・・<λi(Z)<・・・<λn(Z)(Z)となるようにソートされる。
【0060】
図10は、交点がn(Z)=4個の場合を示している。
【0061】
定義により、Xi+1(Z)が張り出し点の場合、線分[Xi(Z),Xi+1(Z)]は張り出し線分である。線Δ(Z)の張り出しボリュームに対する寄与度は、そのすべての張り出し線分の和集合である。次式において、規約は、X0(Z)=Zである。
【数12】
【0062】
図11は、線Δ(Z)の一意な張り出し線分[X2(Z),X3(Z)]を示している。
【0063】
張り出しボリューム、支持ボリューム
形式的には、H(S,V,α)で示される、角度αに応じた方向Vにおける立体Sの張り出しボリュームは、
【数13】
であるようなすべての点Z∈Pについてのすべての張り出し線分の和集合である。
【数14】
【0064】
図12は、立体(点線121)の境界面を張り出しボリューム(灰色の領域123)と共に示している。外側法線ベクトル125は、張り出し領域を限定する張り出し点を示す。
【0065】
定義上、支持ボリュームs(S,V,α)は、張り出しボリュームの尺度である。すなわち、
【数15】
である。
【数16】
を半直線Δ(Z)の寄与度により定義されるマッピングとすると、
【数17】
である。
i(Z)=Z-λi(Z)Vであり、またλi(Z)の順序づけにより、
【数18】
である。
よって、
【数19】
の場合、
【数20】
である。
また、
【数21】
の場合、f(Z)=0である。ボリュームの尺度s(S,V,α)は、以下の積分によって定義される。
【数22】
【0066】
最小化問題
入力された立体Sと張り出し閾値αが与えられるとき、本方法の目的は、支持ボリュームを可能な限り小さくする方向V*を見つけることである。
【数23】
【0067】
残念ながら、マッピング
【数24】
は連続的ではないため、従来の最適化手法(最急勾配法(deepestgradient)、共役勾配法、ニュートンラフソン法など)とは無関係である。例えば、図13に示された直方体の立体を考える。
【0068】
方位角θに対する支持ボリューム反応曲線
【数25】
は、以下の通りである。
【表1】
【0069】
これにより、図14に示す不連続曲線が得られる。
【0070】
図15図17は、様々な方向に応じた張り出しボリューム(灰色の領域)を示している。
【0071】
離散化
力まかせアルゴリズムは、目的関数
【数26】
が滑らかでないことに反応することがある。とり得るすべての方向Vの領域は
【数27】
の単位球である。これは、方向密度が単位球面上でほぼ一定であるようにサンプリングされる。nを、方向の数を制御する整数とし、E(x)を、実数xより小さい最大の整数とすると、サンプリングは、以下を定義することによって得られる。
【数28】
ここで、球座標は
【数29】
であり、
【数30】
である。
【0072】
図18は、(半)単位球の単純なサンプリングを示す。図19は、n=20で1048の方向をもたらす本方法によって実施され得る、より適切なサンプリングを示す。
また、さらに、半直線の開始点Z∈Pの領域は、方形グリッド
【数31】
を用いてサンプリングすることができる。まず、立体Sの頂点を平面Pに投影する。次に、平面P上で、投影された頂点を含む最小の矩形を算出する。最良の矩形の向きは、所定の向きのリストから選択される。最後に、点Zklを、最良の矩形内の規則的なグリッドとして評価する。典型的な密度値は、32×32の点からなるグリッドである。
【0073】
図20は、立体S、平面Pおよび点Zklを示す。
【0074】
図21は、投影された立体(灰色の領域)、最良の矩形(点線)、および矩形内のグリッド点Zkl(ドット)を示す。
【0075】
このようにして、s(S,V,α)についての積分式により、以下のような離散バージョンが得られる。
【数32】
【0076】
言い換えれば、支持ボリュームの尺度s(S,V,α)は、線分長s1(S,V,α)の有限和で近似される。明らかに、この近似は、グリッドの密度が大きいほど、正確な支持ボリュームに収束する。
【0077】
図22~23は、2つの方向VについてのZkl離散化によって定義される線分を示す。
【0078】
ここでは、最小化問題は、方向サンプリングにおける有限探索に変更されている。
【数33】
線/立体の交点
【0079】
1(S,V、α)の算出には、線/立体の交点を大量に使用する。性能を高くするため、線/立体交差アルゴリズムは、鉛直方向
【数34】
に対してハードコードされてもよい。任意の線との交点を算出する前に、軸系のz方向が-Vに等しく、xy平面が接触平面Pとなるように、剛体運動D(・)に従って立体を動かしてもよい。P-を、方向-Wに関連付けられた接触平面とし、hを平面PとP-との距離とする。
【0080】
図24において、線分番号3は方向Wに関連付けられたボリュームを支持することに寄与し、線分番号3および4は方向-Wに関連付けられたボリュームを支持することに寄与する。両方の寄与度は、∂Sと同じ交点を用いて算出することができる。
【0081】
次に、移動した立体D(S)に対して次のアルゴリズムを実行することができる。交点の結果を再利用することによって、方向Wおよび方向-Wに関連付けられた演算を同時に実行する。
【0082】
本方法の署名は、(x,ε)=s2((Zklk,l,S,α,h)である。入力データは、適切に配置された立体Sの位置、閾値角度α、およびオフセット距離hに対応する、点からなるグリッド(Zklk,lである。出力データはxとεである。実数xは、方向Wで算出されたものと方向-Wで算出されたものから選択された、最小の(近似された)支持ボリュームである。数ε∈{+1,-1}は、方向W(すなわちε=+1)または反対方向-W(すなわちε=-1)を用いてxを得ることができるかどうかを示している。
【0083】
半直線Δ(Z)と∂Sとの交点の情報を記憶するのに、順序付きリストL(・)を用いてもよい。正確には、リストL(・)は組(λ,-Nz(T))を集め、ここで、Z-λWは、鉛直線Δ(Z)と三角形Tの交点であり、Nz(T)は三角形Tの外側法線ベクトルN(T)のz座標である。立体Sの位置決めにより、-Nz(T)はスカラー積
【数35】
に等しくなっている。リストL(・)は、命令04で(0,0)で初期化され、命令08で格納され、命令12から17で読み込まれる。リストL(・)の要素は、λの増加する値に応じて順序付けてもよい。この順序は、命令08のバイナリ検索を通じて維持される。読み書きの規約は、
【数36】
【数37】
および
【数38】
である。
【0084】
∂Sと平面P-に関連付けられた鉛直線との交点を記憶するのに別のリストL-(・)を用いてもよい。これは、命令11~14においてリストL(・)を逆にすることによって得られる。命令06におけるProjected(T)という表現は、三角形Tの平面P上の投影を指す。立体Sの位置決めにより、投影された三角形Projected(T)は、三角形のT個の頂点のz座標を無視することによって得ることができる。
【0085】
ここで擬似コードの例を示す。
【数39】
【0086】
命令06での表現Z∈Projected(T)は、「三角形の内側テスト」を表す。これは、以下の公知の式を用いて実行してもよい。点
【数40】
および三角形の頂点
【数41】
【数42】
および
【数43】
を考える。4つの3×3行列式を算出する。
【数44】
【数45】
【数46】
【数47】
【0087】
このとき点Zは、d0、d1、d2、およびd3が同じ符号を有する場合に限り、三角形P1,P2,P3の内側にある。命令06で算出されたパラメータλは、
【数48】
であり、ここでQは、三角形Tの任意の頂点である。
【0088】
全体処理
全体処理は、方向サンプル(Vij)を算出する初期化ステップを含んでいてもよい。最適化ステップは、次のアルゴリズムで説明するように、全方向の有限走査である。
【数49】
【0089】
このアルゴリズムは、とり得る最良の方向V*と、対応する近似支持ボリュームs*とを返す。
【0090】
なお、各Vijに関連する演算は独立しており、有利に並列化できる。
【0091】
スナッピングオプション
経験的に、スナッピングステップを用いてV*とs*を改善可能な場合があることが証明されている。このスナッピングアルゴリズムは以下の通りである。
【数50】
【0092】
図25は、スナッピングの原理を示している。
【0093】
ここで、本方法のテストについて、図26~28を参照して説明する。
【0094】
機械部品を表す3Dモデル化オブジェクト262が提供され、その最適な向き264が上記の原理に従って決定された。本テストでは、3Dモデル化オブジェクト262が、95mm×67mm×57mmのサイズに対して10214個の三角形(140mm×119mm×56mmのサイズに対して36768個の三角形、244mm×183mm×124mmのサイズに対して38122個の三角形)から構成されていたが、それぞれ1.9秒(3.8秒および3.9秒)で最適な向きに収束した。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28