発明の詳細な説明
〔関連出願の相互参照〕
本出願は、2018年7月10日に出願された米国仮特許出願第62/696,237号の利益を主張し、参照により、その内容の全てが本書に含まれる。
〔本願発明の背景〕
(本願発明の分野)
本出願は、付加製造に関する。より詳細には、本出願は、付加製造を使用したオブジェクトの構築をシミュレートするためのシステムおよび方法に関する。
(従来の技術)
付加製造の分野では、3次元ソリッドオブジェクトがデジタルモデルから形成される。付加製造は、製造されるオブジェクトが3次元であるため、一般に3次元(「3D」)プリンティングと呼ばれる。付加製造のためのいくつかの技術は選択的レーザ焼結(LS)製造および金属焼結を含む。これらの技術は所望の3次元(3D)オブジェクトを生成するために使用される構築材料の層を重合または凝固させるために、レーザビームを特定の位置に導く。3Dオブジェクトは、構築材料の層を凝固させることによって、層ごとに構築される。
設計段階では、特定の設計されたオブジェクトがうまく(例えば、エラーなしに、許容範囲内で、など)構築され得るかどうかを知ることは困難になり得る。したがって、オブジェクトの構築は、付加製造のプロセス中に失敗することがある。付加製造のプロセス中にオブジェクトの構築が失敗した場合、部分的に構築されたオブジェクトを廃棄し、オブジェクトを再設計し、次いでオブジェクトの実際の付加製造を再び開始する必要があり得る。時間および材料を費やす実際のオブジェクトの付加製造中に、構築が数回失敗する可能性がある。
例えば、構築材料の原料を加工するためにエネルギー源を使用する付加製造の技術は、製造プロセス中に熱的および機械的応力(stress)、並びに、歪みを生じる傾向がある。これらの応力および歪みは、例えば、構築材料の原料の加熱および冷却によって引き起こされ得る。構築材料の原料の加熱及び冷却は、製造中の構築材料の膨張及び収縮につながる。例えば、レーザまたは他のエネルギー源を使用して金属および金属粉末から一部を製造する場合、高い応力および歪みが生じ得る。製造中または製造後に、オブジェクトにかかる応力および歪みは、オブジェクトを変形させる可能性があり、または製造中においては、構築プロセスが継続するのを止め得る、それによって構築不良を生じさせる。
オブジェクトを構築しようと試みることから生じる時間および/または材料の浪費、および付加製造プロセスが失敗すること、または結果として生じるオブジェクトが設計されたオブジェクトに適合しないことを回避するために、演算装置(computing devices)は、付加製造を使用したオブジェクトの構築をシミュレートするために使用され得る。このようなシミュレートされたオブジェクトの構築は、オブジェクトのデジタルシミュレートモデルをもたらすことができる。オブジェクトのシミュレートモデルがオブジェクトの元の設計に適合しない場合、または他のエラーが検出された場合、オブジェクトの設計および/またはオブジェクトを構築するためのパラメータを変更することができ、構築のシミュレーションを再び実行して、オブジェクトの新しいシミュレートモデルを生成することができる。オブジェクトのこのようなシミュレート構築は、結果として得られるオブジェクトのシミュレートモデルが設計されたオブジェクトにうまく適合するまで、および/またはエラーが検出されなくなるまで、反復的に実行されてもよい。その後、実際のオブジェクトは、付加製造を使用して構築されてもよい。反復してオブジェクトを実際に構築しようとする代わりに、反復してオブジェクトの構築をシミュレートすることによって、構築が失敗するために浪費される時間および材料が低減される。
しかしながら、場合によっては、オブジェクト全体のシミュレートモデルが生成される前に、オブジェクトのシミュレート構築が失敗し、中断となることがある。したがって、シミュレートモデルは、オブジェクトの一部のみを含む可能性がある。そのため、設計者はシミュレーション中断のために、シミュレートされたモデル内のオブジェクトの一部にアクセスすることしかできず、これは、なぜ構築が失敗したかに関して限定された情報のみを設計者に提供することになり得る。そのような限定された情報は、設計者がオブジェクトを適切に再設計すること、または適切に構築のパラメータを調整することをより困難にし得る。
本発明者によって確認されたこれらの問題および他の問題を考慮して、付加製造を使用して構築されるオブジェクトのシミュレーション構築を改善するシステムおよび方法が、本明細書に記載される。
〔発明の概要〕
一実施形態は付加製造のための構築シミュレーション中に有限要素モデルによって経験される剛体運動を低減するために、3Dオブジェクトの有限要素モデルを修正するためのコンピュータにより実施される方法を提供する。この方法は有限要素モデルを取得することを含み、前記有限要素モデルは複数のノードと複数の要素とを含み、前記複数のノードのうちの1つ以上のノードは、前記複数の要素のうちの2つ以上の要素に関連付けられる。この方法は、複数の要素の複数のボトムノードを識別することを含む。この方法は、前記複数のボトムノードのそれぞれに関連するいくつかの要素を決定することを含む。この方法は、1つ以上の浮動ノードとして、1つの要素のみに関連する前記複数のボトムノードのうちの1つ以上のボトムノードを識別することを含む。この方法は、前記1つ以上の浮遊ノードに1つ以上の安定要素を含めるように前記有限要素モデルを修正することを含む。この方法は、前記オブジェクトのシミュレートモデルを生成するために、前記修正された有限要素モデルを使用してオブジェクトの構築をシミュレートすることを含む。
別の実施形態は付加製造のための構築シミュレーション中に有限要素モデルによって経験される剛体運動を低減するために、3Dオブジェクトの有限要素モデルを修正するためのコンピュータにより実施される方法を提供する。この方法は有限要素モデルを取得することを含み、前記有限要素モデルは複数のノードおよび複数の要素を含み、前記複数のノードのうちの1つ以上のノードは前記複数の要素のうちの2つ以上の要素に関連付けられ、前記複数の要素のそれぞれは前記要素の中心に対応する重心を含む。この方法は前記複数の要素の隣りに位置する要素のペアの重心間の重心対距離を計算することをさらに含み、要素のペアは、少なくとも1つのノードを共有する場合、互いに隣りに位置する要素である。この方法はさらに、閾値長以下の1つ以上の重心対距離の経路を介して、対応する隣りに位置する要素に結合しない、前記複数の要素のうちの任意の要素を不安定要素と判定することを含む。この方法は、任意の不安定要素に結合された1つ以上の追加要素を含むように前記有限要素モデルを修正することを含む。この方法はさらに、オブジェクトのシミュレートモデルを生成するために、前記修正された有限要素モデルを使用してオブジェクトの構築をシミュレートすることを含む。
別の実施形態は、付加製造のための構築シミュレーション中にオブジェクトの有限要素モデルを使用するためのコンピュータにより実施される方法を提供する。この方法は前記有限要素モデルを取得することを含み、前記有限要素モデルは、シミュレートされた付加製造装置のシミュレートされた構築プラットフォームに平行でない底面を有する第1の要素を含む複数の要素を含む。この方法はさらに、前記オブジェクトのシミュレートモデルを生成するために、前記修正された有限要素モデルを用いてオブジェクトの構築をシミュレートすることを含む。
特定の実施形態は、コンピュータが実行可能な指示が保存された、非一過性コンピュータ読み取り可能媒体を提供し、それは、コンピューティングデバイスのプロセッサによって実行されるとき、前記コンピューティングデバイスに、前記記載された方法のうちの1つ以上を実行させる。
特定の実施形態は、メモリおよび前記記載された方法の1つ以上を実行するように構成されたプロセッサを備えるコンピューティングデバイスを提供する。
〔図面の簡単な説明〕
図1は、3Dオブジェクトを設計および製造するためのシステムの一例である。
図2は、図1に示すコンピュータの一例の機能ブロック図を示す。
図3は、使用する3Dオブジェクトを製造するための高レベルプロセスを示す。
図4Aは、リコート機構を有する付加製造装置の例である。
図4Bは、リコート機構を有する付加製造装置の別の例である。
図5は、オブジェクトの有限要素モデルの一例を示す。
図5Aは、有限要素モデルのための2つの要素の例を示す。
図5Bは、図5Aの要素に対するノード対要素マップ(node to element map)の例を示す。
図6Aおよび図6Bは、図5の有限要素モデルによって表されるオブジェクトの構築の例示的なシミュレーションの結果として生じる例示的なシミュレートモデルを示す図である。
図7は、付加製造を用いて、構築されるオブジェクトのデジタルシミュレートモデルにおける剛体運動を自動的に減少させるための例示的プロセスのフローチャートである。
図8は、図5の有限要素モデルのノードに配置された例示的なスプリングを示す図である。
図9は、図5の有限要素モデルに配置された追加の要素の一例を示す図である。
図10は、図5の有限要素に配置された1次元要素(one dimensional element)の一例を示す図である。
図11は、図5の有限要素モデルのノードに配置された制約(constraint)の例を示す。
図12Aおよび12Bは、図8~11のうちの1つの修正された有限要素モデルによって表されるオブジェクトの構築の例示的シミュレーションの結果として生じるシミュレートモデルの一例を示す。
図13はオブジェクトの有限要素モデルにスプリングを含めることにより、付加製造を用いて構築されるオブジェクトのデジタルシミュレートモデルにおける剛体運動を自動的に低減するためのプロセスの一例のフローチャートである。
図13Aは、オブジェクトの有限要素モデルの一例を示す。
図13Bは、図13Aの有限要素モデルのノード対要素マップの一例を示す。
図13Cは、図13Aの有限要素モデルの浮動ノード(floating nodes)を識別する表を示す。
図14は、オブジェクトのデジタルシミュレートモデルにおける剛体運動を自動的に減少させるための例示的なプロセスのフローチャートである。当該オブジェクトは、オブジェクトの有限要素モデルに1つ以上の追加の要素を含めることによって、付加製造を使用して構築されることになる。
図14Aは、オブジェクトの有限要素モデルの一例を示す。
図15は、オブジェクトのデジタルシミュレートモデルにおける剛体運動を自動的に減少させるための例示的なプロセスのフローチャートである。当該オブジェクトは、オブジェクトの有限要素モデルに1次元要素を含めことによって、付加製造を用いて構築されることになる。
図15Aは、オブジェクトの有限要素モデルの一例を示す。
図16Aは、要素を含むオブジェクトの有限要素モデルを示し、その要素全てがシミュレートされた構築プラットフォームの平面に平行な底面を有する。
図16Bは、要素を含むオブジェクトの有限要素モデルを示し、当該要素の全てが、シミュレートされた構築プラットフォームの平面に平行である底面を有するとは限らない。
図16Cは、要素を含むオブジェクトの有限要素モデルを示し、その要素の全てが、シミュレートされた構築プラットフォームの平面に平行である底面を有するとは限らない。
図17は、オブジェクトのデジタルシミュレートモデルにおいて、互いに異なる角度であり、且つ/又は、付加製造を使用して構築されるオブジェクトのデジタルシミュレートモデルにおけるシミュレートされた構築プラットフォームに平行でない要素を含む有限要素モデルを使用するためのプロセスの一例のフローチャートである。
〔発明の実施形態の詳細な説明〕
本明細書に開示されるシステム及び方法はオブジェクトのデジタルシミュレートモデルにおける剛体運動を自動的に減少させるための技術を含み、シミュレートモデルは、付加製造を用いたオブジェクトのシミュレート構築を表す。
本明細書に記載されるいくつかの実施形態は特定の構築材料(例えば、金属)を使用する特定の付加製造の技術に関して記載されるが、記載されるシステムおよび方法は、また、当業者によって理解されるように、特定の他の付加製造の技術および/または特定の他の構築材料とともに使用されてもよい。
上述したように、演算装置を使用して、付加製造を使用してオブジェクトの構築をシミュレートすることができる。そのようなオブジェクトのシミュレート構築は、オブジェクトのシミュレートモデルをもたらす。オブジェクトのシミュレートモデルに含まれる情報は、付加製造のためにオブジェクトをより良く設計するための助力に使用することができる。例えば、シミュレートモデルは構築プロセス中のオブジェクトにおける特定の変形、及び/又はオブジェクトにおける応力、歪み等、又はオブジェクトの設計を改善するためにオブジェクトの設計を修正するために使用することができる他の情報を示すことができ、その結果、付加製造を使用して、首尾よく、構築することができる。
しかしながら、上述したように、ある場合には、オブジェクトのシミュレート構築が失敗し、中断することがあり、その結果、オブジェクトの不完全なシミュレートモデルが生じる。例えば、シミュレーションにおける数値的な不安定性(剛体運動とも呼ばれる)は、シミュレーションを中断させる可能性がある。それは、当該数値的な不安定性が、さらなるシミュレーションを不可能にするためである。従って、本明細書に開示されるシステム及び方法は、オブジェクトのデジタルシミュレートモデルにおける剛体運動を自動的に減少させ、それによってオブジェクトの完全なシミュレートモデルを生成することを可能にするための技術を含む。さらに、オブジェクトのモデル(例えば、有限要素モデル(FEM))において、構築領域に対して垂直でない要素(例えば、ボクセル(voxel)または立方体)を利用するための技術、および/または互いに対してすべて同じ角度ではない要素(例えば、傾斜要素、傾斜ボクセル(tilted voxels)、傾斜六角要素(tilted hex elements)、ピラミッド要素(pyramidal elements)など)を利用するための技術、および(例えば、減少された剛体運動を伴う)オブジェクトのデジタルシミュレートモデルを生成するためにそのようなモデルを使用するための技術も本明細書に開示される。これにより、オブジェクトの完全なシミュレートモデルを生成することができる。このような実施形態は、シミュレーションに数値的な不安定性がある場合に、付加製造を使用して構築されるオブジェクトのためのシミュレートモデルをどのように生成するかという付加製造における技術的課題に対する技術的解決策を有益に提供する。また、このような実施形態はオブジェクト設計および構築プロセスを強化し、オブジェクトの構築失敗の可能性を低減するために使用することができ、より強固なシミュレートモデルを提供することによって、付加製造の分野をさらに改善する。さらに、このような技術はシミュレーションにおける数値的な不安定性のために、以前の演算装置が生成できなかったシミュレートモデルを生成することを可能にすることによって、シミュレートモデルを生成するために使用される演算装置の機能を改善し得る。さらに、このような技術は、計算の複雑さが低くなり得る。したがって、このような技術は数値的な不安定性を低減することを首尾よく決定し、オブジェクトのシミュレートモデルを生成するために、演算装置によって実行される必要があるコンピューティングサイクル(たとえば、平衡反復(equilibrium iterations))の数を低減することができる。その結果、演算装置自体の効率および機能性を改善することが可能である。
本発明の実施形態は、3Dオブジェクトを設計、シミュレーション、及び製造するためのシステム内で実行され得る。図1を参照すると、3Dオブジェクトの設計、構築シミュレーション、および製造の実装に適したコンピュータ環境の実施例が示されている。当該環境は、システム100を含む。システム100は、1つ以上のコンピュータ102a-102dを含む。コンピュータ102a-102dは例えば、情報を処理できる任意のワークステーション、サーバ、またはその他の演算装置であってもよい。いくつかの実施形態において、コンピュータ102a-102dのそれぞれは適切な通信技術(例えば、インターネットプロトコール)によって、ネットワーク105(例えば、インターネット)に接続することができる。したがって、コンピュータ102a~102dはネットワーク105を介して互いに情報(例えば、ソフトウェア、3Dオブジェクトのデジタル表示、付加製造装置を動作させるためのコマンドまたは命令など)を送受信することができる。
システム100はさらに、1つ以上の付加製造装置(例えば、3Dプリンタ)106a~106bを含む。図示のように、付加製造装置106aは、(ネットワーク105を介してコンピュータ102a~102cに接続されたコンピュータ102dを介して)コンピュータ102dに直接接続されている。図示のように、付加製造装置106bは、ネットワーク105を介してコンピュータ102a~102dに接続されている。したがって、付加製造装置106をコンピュータ102に直接接続してもよいし、ネットワーク105を介してコンピュータ102に接続してもよいし、および/または別のコンピュータ102およびネットワーク105を介してコンピュータ102に接続されてもよいことを、当業者は理解するであろう。
注意すべきは、システム100はネットワークおよび1つ以上のコンピュータに関して記載されているが、本明細書に記載の技術は付加製造装置106に直接接続することができる単一のコンピュータ102にも適用されてもよい。
図2は図1のコンピュータの一例の機能ブロック図を示したものである。コンピュータ102aは、メモリ220とのデータ通信におけるプロセッサ210、入力装置230、及び出力装置240を含んでいる。いくつかの実施形態では、当該プロセッサは、任意のネットワークインターフェースカード260とさらにデータ通信する。別々に記載されているが、コンピュータ102aに関して記載されている機能ブロックは別々の構造上の部材である必要はないことが理解されるはずである。例えば、プロセッサ210およびメモリ220は、単一チップで実施可能である。
プロセッサ210は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)または他のプログラマブルロジックデバイス、ディスクリート・ゲートまたはトランジスタロジック、ディスクリート・ハードウェアコンポーネント、または本明細書で説明される機能を実行するように設計されたそれらの任意の適切な組合せとすることができる。また、例えば、DSP及びマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、DSPコアと結合した1又はそれ以上のマイクロプロセッサ、又は他のこのような構成といった演算装置の組み合わせとして、プロセッサを実施してもよい。
プロセッサ210は、1つ以上のバスを介して、メモリ220から情報を読み出すか、または情報をメモリに書き込むように結合され得る。プロセッサは、さらにに、または代替的に、プロセッサレジスタなどのメモリを含むことができる。メモリ220は、プロセッサキャッシュを含み得る。当該プロセッサキャッシュは、異なるレベルにおいて異なるキャパシティ及びアクセス速度を有するマルチレベル階層キャッシュを含む。メモリ220はまた、ランダム・アクセス・メモリ(RAM)、他の揮発性記憶装置、または不揮発性記憶装置を含むことができる。当該記憶装置は、ハードドライブ、フラッシュメモリなどを含むことができる。メモリ220は、プロセッサ210によって実行されたときに、プロセッサ210に、本明細書で説明される方法および/または技術のうちの1つ以上を実行させる命令を記憶することができる。
プロセッサ210はまた、それぞれ、コンピュータ102aのユーザから入力を受信し、出力を提供するために、入力装置230及び出力装置240に連結されることができる。適切な入力装置には、キーボード、ボタン、キー、スイッチ、ポインティングデバイス、マウス、ジョイスティック、遠隔制御装置、赤外線検出器、バーコードリーダ、スキャナ、ビデオカメラ(例えば、手のジェスチャまたは顔のジェスチャを検出するためにビデオ処理ソフトウェアと結合される)、モーション検出器、またはマイクロフォン(例えば、音声コマンドを検出するためにオーディオ処理ソフトウェアと結合される)が含まれる。しかしながら、適切な入力装置はこれらに限定されない。適切な出力装置は、ディスプレイおよびプリンタを含む視覚出力装置、スピーカー、ヘッドホン、イヤフォンおよび警報を含む音声出力装置、付加製造装置、および触覚出力装置を含む。しかしながら、適切な出力装置はこれらに限定されない。
プロセッサ210はさらに、ネットワークインターフェースカード260に結合されてもよい。ネットワークインターフェースカード260は、プロセッサ210によって生成されたデータを、1つ以上のデータ伝送プロトコルに従ってネットワークを介して伝送するために準備する。ネットワークインターフェースカード260はまた、1つ以上のデータ伝送プロトコルに従って、ネットワークを介して受信されたデータを復号する。ネットワークインターフェースカード260は、送信機、受信機、またはその両方を含むことができる。他の実施形態では、送信機及び受信機を2つの別々の構成部材とすることができる。ネットワークインターフェースカード260は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)または他のプログラマブルロジックデバイス、ディスクリート・ゲートまたはトランジスタロジック、ディスクリート・ハードウェア・コンポーネント、または本明細書で説明する機能を実行するように設計されたそれらの任意の適切な組合せとして実施することができる。
図3は、3Dオブジェクトまたはデバイスを製造するためのプロセス300を示す。図示のように、ステップ305では、コンピュータ102aなどのコンピュータを使用して、オブジェクトのデジタル表示が設計される。例えば、2-Dまたは3-Dデータは3-Dオブジェクトのデジタル表示を設計することを援助するために、コンピュータ102aに入力されてもよい。引き続きステップ310において、情報がコンピュータ102aから付加製造装置106のような付加製造装置に送信され、装置106は受信した情報に従って製造プロセスを開始する。ステップ315において、付加製造装置106は、ポリマー又は金属粉末のような任意の適切な材料を用いて3次元オブジェクトの製造を続ける。さらに、ステップ320において、3Dオブジェクトが生成される。
図4Aは、3次元(3-D)オブジェクトを生成するための例示的な付加製造装置400を示す。この実施例において、付加製造装置400は、レーザ焼結装置である。レーザ焼結装置400は、1つ以上の3Dオブジェクトを層ごとに生成するために使用されてもよい。例えば、レーザ焼結装置400は、構築プロセスの一環として、同時に層を構築するために、粉体414などの粉体(例えば、金属、ポリマーなど)を利用してもよい。
連続する粉体の層は例えばリコート機構415A(例えば、リコーターブレード)を使用して、互いの層の上に散布される。リコート機構415Aは、例えば、図示された方向に、又は、構築物の別の層などのためにリコート機構415Aが構築領域のもう一方の側から開始する場合、反対の方向に、構築領域に亘って移動しながら、層のための粉体を堆積させる。堆積後に、コンピュータ制御されたCO2レーザビームが表面を走査し、生成物の対応する断面の粉体粒子を選択的に互いに結合する。いくつかの実施形態では、レーザ走査装置412がX-Y可動赤外レーザ源である。従って、レーザ源はそのビームを粉体の最上層の特定の位置に向けるために、X軸に沿って、かつY軸に沿って移動させることができる。あるいは、いくつかの実施形態ではレーザ走査装置412がレーザスキャナを含んでもよい。レーザスキャナは静止したレーザ源からレーザビームを受け取り、移動可能なミラー上で偏向させて、ビームを装置の作業領域内の指定位置に向ける。レーザ露光中、紛体の温度は材料(例えば、ガラス、ポリマー、金属)の転移点を超えて上昇し、その後、隣接した粒子は互いに流動し、3Dオブジェクトを生成する。また、装置400は任意に、放射ヒータ(例えば、赤外線ランプ)および/または空気制御装置(atmosphere control device)416を含んでもよい。放射ヒータは、新しい粉体の層のリコートと、その層のスキャンとのあいだに、粉体を予め温めるために使用されてもよい。いくつかの実施形態では、放射ヒータは省略されてもよい。空気制御装置は例えば紛体の酸化のような望ましくないシナリオを回避するために、プロセス全体にわたって使用されてもよい。
いくつかの他の実施形態では、図4Bに示されるように、リコート機構415Aの代わりに、リコート機構415B(例えば、レベリングドラム/レベリングローラー)を使用してもよい。従って、粉体容器428(a)及び428(b)から、形成されたオブジェクト424を保持するリザーバ426に、粉体を押し出す1つ以上の移動可能なピストン418(a)及び418(b)を使用して、粉体は分散されてもよい。次に、リザーバの深さは可動ピストン420によって制御される。可動ピストン420は追加の紛体が紛体容器428(a)および428(b)からリザーバ426に移動されるときに、下方への動作を介してリザーバ426の深さを増大させる。リコート機構415Bは、紛体容器428(a)および428(b)からリザーバ426内に紛体を押し込むか、または転がし込む。図4Aに示される実施形態と同様に、図4Bの実施形態は層のリコートと、その層のスキャンとのあいだに放射ヒータが粉体を予め温めるために単独で使用されてもよい。
特定の実施形態では、コンピュータ102などの適切な演算装置が付加製造を使用して構築されるオブジェクトの構築をシミュレートする。例えば、特定の実施形態では、演算装置が層ごとにおけるオブジェクトの構築の数値(例えば、有限要素法(FEM)または有限要素解析(FEA))シミュレーション(例えば、四面体またはボクセル/六角メッシュシミュレーションベースのマクロ層)を使用する。その結果、付加製造技術を使用してオブジェクトを実際に製造するときに生じ得るオブジェクトの潜在的な層ベースの変形を決定することが可能となる。例えば、本明細書に示されるようなオブジェクトの構築をシミュレートすることは、上述のような数値シミュレーションを用いて実行され、オブジェクトのシミュレートモデルが生成されてもよい。
例えば、オブジェクトのデジタル有限要素モデル(例えば、FEMモデル)は演算装置上で実行されるシミュレーションプログラム(例えば、Simufact、Abaqus、Amphyon等のFEMを使用する既知のシミュレーションプログラム)に入力される。デジタル有限要素モデルは記憶装置から取得されてもよく、ユーザによって生成されてもよく、またはシミュレーションプログラムから生成されてもよく、例えば、オブジェクトの異なるデジタルモデル/表示(例えば、CADファイル、STLファイルなど)をシミュレーションプログラムに入力することによって生成されてもよく、シミュレーションプログラムは次いで、有限要素モデルを生成する。シミュレーションプログラムは、有限要素モデルを使用して、オブジェクトの構築のFEMシミュレーションを実行する。図5は、オブジェクトの有限要素モデル500の一例を示す。
図示されるように、有限要素モデル500は、立方体として示される複数の要素502を含む。複数の要素502はオブジェクトを表す。要素は当技術分野で知られているように、FEMを実行するための有限要素モデルの基本的な構築ブロックである。要素502は有限要素モデル500のドメインをより小さいサブドメインに分割して、所望のフィールド/パラメータ(例えば、収縮(shrinkage)量、変位(displacement)量、反力(reaction force)、応力、歪み(strains)など)を計算する。特定の実施形態では、要素がキューブの角にノードを有するキューブを含む。ある態様において、要素としてキューブを使用することが本明細書で説明されるが、他の適切な要素が、本明細書で説明される実施形態に従って同様に使用され得ることに留意されたい。特定の実施形態では、各要素502はボクセルに対応する。
図5Aは、有限要素モデルのための2つの要素502aおよび502bを例示する。図示のように、要素502aおよび502bのそれぞれは、要素502を形成する辺によって接続された複数のノードを含む。特に要素502aには、1~8(ノードID1~8に対応)の番号が付された8つのノードが含まれる。また、要素502bは、5~12の番号が付けられた8つのノードを含む(ノードID5~12に対応する)。図示するように、異なる要素がノードを共有することがある(例えば、ノード5~8が要素502aと502bとの間で共有されるとして示される)。ノードは、空間内の座標位置に対応する。したがって、有限要素モデル内のノードは、オブジェクトに対応する空間内の座標位置に対応する。
各要素および各ノードは、それぞれ要素識別子(ID)およびノード識別子(ID)を含む識別子に関連付けることができる。例えば、要素502aは要素ID1に関連付けられて示され、要素502bは要素ID2に関連付けられて示される。さらに、各要素はその要素IDおよびそのノードのノードIDによって定義され得る。例えば、要素502aはノードID1~8に接続された要素ID1として定義され、要素502bはノードID5~12に接続された要素ID2として定義される。
ノード対要素マップが、有限要素モデル内のノードに対してさらに定義されてもよい。例えば、ノード対要素マップは、各ノードIDを、そのノードを含む要素の要素IDに関連付けることができる。図5Aの要素502aおよび502bに関して、ノード対要素マップ504は図5Bに示されるように定義されてもよい。ノードID1-4は要素ID1に関連付けられ、ノードID5-8は要素ID1-2に関連付けられ、ノードID9-12は要素ID2に関連付けられる。
上述のオブジェクトの有限要素モデルに基づいて、シミュレーションプログラムはオブジェクトの構築のFEMシミュレーションを実行し、オブジェクトの各層の異なるノードまたは領域に対するパラメータを含む層のシミュレーションを含むオブジェクトのシミュレートモデルを出力する。上述のパラメータは、例えば、収縮量、変位量、反力、応力、歪み等である。上述の領域は、例えば、層に対応するX-Y平面の異なるX-Y座標である。しかしながら、上述のように、シミュレーションプログラムは構築のシミュレーション中に、層のうちの1つで中断し得る。例えば、剛体運動として知られる、シミュレーションにおける数値的な不安定性は、シミュレーションプログラムの失敗および中断を引き起こし得る。例えば、シミュレーションプログラムは、オブジェクトの構築をシミュレートする一環として、オブジェクトの幾何学のボクセル近似(voxel approximation of the geometry)を実行してもよい。ボクセル近似は構造内の前の層ではサポートできない有限要素モデルにおいて張り出し(overhanging)要素を生成し、シミュレーションプログラムを中断させる数値的な不安定性に導く可能性がある。特に、層間のポイントの間の変形が大きすぎる場合があり、2つのポイントが互いに安定であると仮定される剛体のパラメータを超えてしまう場合がある。
従って、シミュレーションプログラムが中断されると、シミュレーションプログラムが中断される層の後の任意の層は、シミュレーションプログラムによって生成されるオブジェクトのシミュレートモデルに含まれない場合がある。したがって、オブジェクトの一部のみがシミュレートモデルによって表され得る。図6Aおよび図6Bは、有限要素モデル500によって表されるオブジェクトの構築の例示的シミュレーションの結果として生じるシミュレートモデル示す。図示されるように、図6Aおよび6Bに示されるシミュレートモデルは、有限要素モデル500によって表されるオブジェクト全体の表示を含まず、シミュレーションにおける数値的な不安定性のために中断されるシミュレーションプログラムによるオブジェクトの一部のみを含む。
図6Aのシミュレートモデルはシミュレート構築中にオブジェクトの異なる位置(例えば、ノード)で生じるシミュレートされた変位を表す。例えば、シミュレーションプログラムはノードが製造されたとき(例えば、設計位置)にオブジェクト内にあると想定される場所(例えば、付加製造装置の構築プラットフォームに対する)と、製造されたときにノードがシミュレートされる場所(例えば、シミュレーション位置)との間の空間におけるそのノードの変位を示す、ノードごとの変位ベクトルUxyzを示してもよい。変位ベクトルUxyzは、z成分とx成分およびy成分を含んでもよい。z成分は例えば、構築プラットフォームに垂直であり、後続の層の方向と平行な成分である。x成分およびy成分は、例えば、構築プラットフォームに平行な平面、特に層自体の平面内の成分である。変位はオブジェクトの部分がオブジェクトにおいて正しい位置に位置していないことを意味し、変形をもたらし得る。各ノードの変位ベクトルは、異なる色、陰影、または数によって表されてもよい。
同様に、図6Bのシミュレートモデルはシミュレート構築中にオブジェクトの異なる位置(例えば、ノード)で生じるシミュレートされた応力を表す。例えば、シミュレーションプログラムは各ノードにおける応力または力を示し、そのノードにおける応力を示すことができる。応力が高すぎる場合(構築材料の応力許容値より高い場合など)、オブジェクトが変形したり、破損したりすることがある。各ノードに対する応力は、異なる色、陰影、または数によって表されてもよい。
図6Aおよび図6Bから分かるように、シミュレーションプログラムの中断により、シミュレートモデルにおける情報(例えば、変位、応力など)は中断前にシミュレートされたオブジェクトのノードまたは部分に限定され、シミュレートモデルはオブジェクトの他の部分に関する情報を含まない。そのような他の情報がなければ、オブジェクトのシミュレート構築が成功し、最終的にオブジェクトの実際の構築が成功するように、オブジェクトの設計を(例えば、オブジェクトのデジタルモデルにおいて)どのように調整するかを決定することは困難になり得る。
従って、本明細書のある態様は有限要素モデルを使用するシミュレーションプログラムによってオブジェクトの構築のシミュレーションを実行する前に、オブジェクトの有限要素モデルを修正するシステムおよび方法を提供する。その結果、シミュレーションにおける数値的な不安定性を低減することが可能となる。このように、修正された有限要素モデルが、シミュレートプログラムに入力されると、オブジェクト全体を含むシミュレートモデルが生成される。
図7は、付加製造を使用して、構築されるオブジェクトのデジタルシミュレートモデルにおける剛体運動を自動的に低減するための例示的なプロセス700のフローチャートである。プロセス700は、コンピュータ102などの適切な演算装置によって実行することができる。
ブロック702において、演算装置は、オブジェクトの有限要素モデルを取得する。有限要素モデルは要素を含み、そのすべてがシミュレートされた構築プラットフォームの平面に平行な底面を有するものであってもよい。代替的に、有限要素モデルは要素を含み、それらは互いに異なる角度で、かつ/または、付加製造を使用して構築されるオブジェクトのデジタルシミュレートモデルにおけるシミュレートされた構築プラットフォームに平行でない要素を含むものであってもよい。ブロック704で、演算装置は、有限要素モデルの1つ以上の要素に何らかの不安定性があるかどうかを判定する。
オブジェクトの有限要素モデルにおいて不安定性を有する要素が検出されない場合、演算装置はオブジェクトの有限要素モデル全体のシミュレーション構築が実行可能であると判断し、演算装置はシミュレーションを実行し、ブロック706においてオブジェクトのシミュレートモデルを生成する。
不安定性を有する1つ以上の要素が検出された場合、演算装置はオブジェクトの有限要素モデル全体のシミュレート構築を実行することができないと判定し、ブロック708に進む。
ブロック708で、演算装置は、有限要素モデルを修正する。特定の実施形態では、演算装置が1つ以上の安定要素(例えば、1つ以上のスプリング、追加の要素、1次元要素、制約など)を追加して、不安定性を有する1つ以上の要素を支持する。例えば、特定の実施形態では、演算装置が不安定性を有する1つ以上の要素を支持するために、1つ以上のスプリングを示す情報を追加する。当該情報は、オブジェクトの有限要素モデル内において、不安定性を有する1つ以上の要素に対して位置決めされた1つ以上のスプリングのシミュレートを含んでもよい。例えば、そのようなスプリングの一端は不安定性を有する1つ以上の要素に対応するノード(例えば、本明細書でさらに説明されるような浮動ノード)上に配置されてもよい。また、そのようなスプリングの他の一端は有限要素モデルにおける付加製造装置の構築プラットフォームに対応する領域/平面上のポイント、またはオブジェクト上の別のポイントに配置されてもよい。特に、構築プラットフォームに対応する領域上のポイントは構築プラットフォームに対応する領域と、構築プラットフォームに垂直な(例えば、z軸に平行である)ノードを通る線との間の交点に対応してもよい。あるいは、オブジェクト上の点がz軸に沿ったノードの下のオブジェクトの別の表面と、構築プラットフォームに垂直な(例えば、z軸に平行である)ノードを通る線との間の交点に対応してもよい。スプリングは、オブジェクトの実際の構築中に構築プラットフォームに存在する紛体を示すばね定数を有してもよい。例えば、オブジェクトの実際の構築中において、構築されているオブジェクトの領域は、上述のように構築されたオブジェクトの一部ではない構築領域に依然として存在する構築材料の先の層の部分によって支持されてもよい。そのような紛体の一部はスプリングによって表すことができる力を提供し得る、したがって、そのようなスプリングの力を有限要素モデルに加えて、そのような支持をシミュレートすることができる。
1つ以上のスプリングは、スプリングの力によって変形の力に対抗することによって、オブジェクトの有限要素モデルの構築をシミュレートする間の数値的な不安定性を低減するZ方向の力を提供することができる。さらに、そのようなスプリングは、オブジェクトを構築する際に遭遇する実際の現実の状況をシミュレートすることができるので、オブジェクトの正確なシミュレートモデルを提供することができる。従って、スプリングにより、オブジェクトの構築をシミュレートするときにシミュレーションプログラムは、もはや中断されず、完全なシミュレートモデルを生成することができる。図8は、上述したような、有限要素モデル500のノードに配置されたスプリング800を図示する。図示されていないが、他のスプリングが追加的に配置されてもよい。スプリングを含むための有限要素モデルの修正に関するさらなる詳細は、図13に関して説明される。
代替的または追加的に、特定の実施形態では、1つ以上の余分(extra)/追加の要素が不安定性を有する1つ以上の要素を支持するために有限要素モデルに配置される。例えば、不安定性を有する1つ以上の要素に対する支持を提供するために、不安定性を有する1つ以上の要素と、不安定性を有さない他の要素とに結合する1つ以上の要素が追加される。したがって、1つ以上の追加の要素は、支持されていない張り出し等のための変形の力に対抗することによって、オブジェクトの有限要素モデルの構築をシミュレートする間の数値的な不安定性を低減する、1つ以上の空間方向における支持を提供することができる。したがって、追加の要素を用いて、シミュレーションプログラムは、オブジェクトの構築をシミュレートするときにもはや中断されず、完全なシミュレートモデルを生成することができる。図9は、上述したような、有限要素モデル500内に配置された付加的な要素900を図示する。1つ以上の追加要素を含むための、有限要素モデルの修正に関するさらなる詳細は、図14に関して説明される。
代替的または追加的に、特定の実施形態では、1つ以上の1次元要素を有限要素モデルに含めて、不安定な1つ以上の要素を支持することができる。例えば、各1次元要素は不安定性を有する要素に対応するノード(例えば、浮動ノード)に一端で結合し、不安定性を有する要素を安定化するための支持を提供するために、有限要素モデルの別のノードに別の端で結合する。従って、1次元要素は、支持されていない張り出し等のための変形の力に対抗することによって、オブジェクトのデジタルモデルの構築をシミュレートする間の数値的な不安定性を低減する、1つ以上の空間的方向における支持を提供することができる。したがって、1つ以上の1次元要素を用いて、オブジェクトの構築をシミュレートするときにシミュレーションプログラムが中断されなくなり、完全なシミュレートモデルを生成することができる。図10は、上述したような、有限要素モデル500に配置された1次元要素1000を示す。図示されていないが、他の1次元要素を追加的に配置してもよい。1つ以上の1次元要素を含むための、有限要素モデルの修正に関するさらなる詳細は、図15に関して説明される。
代替的にまたは追加的に、特定の実施形態では、有限要素モデルが不安定性を有する1つ以上の要素に関連する1つ以上のノード(例えば、本明細書でさらに説明する1つ以上の浮動ノード)における移動が制約されてもよい。例えば、1つ以上のノードにおける変位(例えば、割り当てられる変位)は、シミュレーションプログラムにおける任意の他の計算にかかわらず、ゼロに設定されてもよい。従って、オブジェクトの有限要素モデルの構築をシミュレートする間の数値的な不安定性は、不安定性を生じさせたシミュレートモデルから誤変位(errant displacement)を除去することによって除去されてもよい。したがって、制約により、シミュレーションプログラムは、オブジェクトの構築をシミュレートするときにもはや中断されず、完全なシミュレートモデルを生成することができる。図示されていないが、他の制約が追加的に配置されてもよい。図11は、上述のような、有限要素モデル500のノードに配置された制約1100を示す。特定の実施形態では、制約を追加することは浮遊ノードにおける変位のブルートフォース割り当て(brute force assignment)によって、シミュレーションの結果に影響を与える。したがって、特定の実施形態では、浮遊ノードにおけるそのような制約の追加が回避される。
その後、プロセス700は、演算装置がシミュレーションを実行し、オブジェクトのシミュレートモデルを生成する706に続く。図12A(シミュレートされた変位)および12B(シミュレートされた応力)は、修正後の有限要素モデル500のオブジェクトの構築の例示的なシミュレーションの結果としてのシミュレートモデルを示す。図示されるように、図6Aおよび6Bとは異なり、シミュレートにおける数値的な不安定性が低減されるため、図12Aおよび12Bに示されるシミュレートモデルは、オブジェクト全体の表示を含む。
図13は、オブジェクトの有限要素モデルにスプリングを含めることによって、付加製造を使用して構築されるオブジェクトのデジタルシミュレートモデルにおける剛体運動を自動的に低減するための例示的プロセス1300のフローチャートである。プロセス1300は、コンピュータ102などの適切な演算装置によって実行されてもよい。プロセス1300は後述するように、プロセス700の一部として実行されてもよい。
例示目的のために、プロセス1300の特定の態様が図13Aに示されるように、オブジェクトの有限要素モデル1350に関して説明される。図示のように、有限要素モデル1350は、図示のように対応するノード1~30を有する要素1~6を含む。図13Bは、上述した、有限要素モデル1350のための、ノード対要素マップ1355を示す。
ブロック1302において、演算装置はオブジェクトの要素およびノードに関する情報を含む、オブジェクトの有限要素モデル(例えば、有限要素モデル1350)を取得する。例えば、演算装置は要素のノードのノードIDに対応付けられた要素毎に、要素IDを含むオブジェクトの要素の定義を取得する。ブロック1302は、ブロック702に対応してもよい。ブロック1304で、演算装置は有限要素モデルのノード対要素マップ(例えば、ノード対要素マップ1355)を取得する(例えば、オブジェクトの要素およびノードに関する情報に基づいてノード対要素マップを生成する)。
ブロック1306で、演算装置は有限要素モデルの各要素(例えば、構築プラットフォームと接触している要素以外の)のボトムノードを識別する。例えば、構築プラットフォームに接触するノードは有限要素モデルにおいて既に制約されている可能性がある。したがって、評価される必要はない。ボトムノードは有限要素モデル内の構築プラットフォームに最も近い要素のノード(すなわち、構築プラットフォームからz軸に沿った最下位ノード)に対応する。したがって、要素のボトムノードは、当該要素と相交わる(intersecting)構築プラットフォームに最も近い平行平面である要素の平面内の要素のノードを含む。例えば、要素が立方体である場合、要素は、各要素の底面が構築プラットフォームの平面に平行になるように配向されてもよい。例えば、図5Aでは、構築プラットフォームがノード1~4に対応する平面内にあってもよい。したがって、要素502aのボトムノードは、ノード1~4に対応し、それらノードは構築プラットフォームの平面に対する要素502aの立方体の底面のノードである。同様に、要素502bのボトムノードは、ノード6~8に対応する。例示的な有限要素モデル1350では、各要素のボトムノードが図13Cに示すテーブル1360で識別される。
ブロック1308で、演算装置はブロック1304で得られたノード対要素マップを使用することなどによって、ボトムノードが関連付けられるいくつかの要素(例えば、構築プラットフォームと接触している要素以外のすべての要素)を識別する。例えば、各ボトムノードに対して、演算装置は、ボトムノードに対応するノードIDに関連する要素IDの数を決定する。ノードIDに関連付けられている要素IDの数は、ボトムノードが関連付けられている要素の数を示す。例えば、テーブル1360は、有限要素モデル1350の各ボトムノードが関連付けられる要素を示す。
ブロック1310で、演算装置は単一の要素のみに関連付けられた2つ以上のボトムノードを有する任意の要素(例えば、構築プラットフォームと接触している要素以外の)を不安定な要素として識別する。ブロック1310において、演算装置は、単一要素のみに関連するこのようなボトムノードを浮動ノードとして識別する。例えば、ブロック1304~1310は、1つ以上の要素の不安定性を決定するために実行されてもよく、ブロック704に対応してもよい。
表1360は、単一の要素のみによって共有される各要素に対する有限要素モデル1350のボトムノードの数を示す。示されるように、有限要素モデル1350の要素1、2、5、および6は単一の要素によって共有される2つのボトムノードを含む。したがって、それら要素は、潜在的に不安定な要素である。しかしながら、上述したように、要素1および2は構築プラットフォームに接触する、したがって不安定な要素とはみなされず、さらに、対応する潜在的な浮遊ノード1、2、5、および6は浮遊ノードとみなされない。したがって、要素5および6は、不安定な要素と見なすことができる。さらに、ボトムノード15、16、25および26は、単一要素のみに関連するボトムノードに対応するものとして浮動ノードと見なされる。
ブロック1312において、演算装置は、浮動ノードが識別されたか否かを判定する。浮動ノードが識別されていない場合、有限要素モデルは不安定要素を含まず、有限要素モデルは、ブロック706に関して説明したように、オブジェクトのシミュレートモデルを生成するために使用されてもよい。これにより、プロセス1300は終了する。
浮遊ノードが識別されている場合、プロセス1300はブロック1314に進む。ブロック1314では、ブロック708に関して説明したように、有限要素モデルを修正するために、スプリングの端部が1つ以上の浮動ノードのそれぞれに配置される。修正された有限要素モデルは、ブロック706に関して説明したように、オブジェクトのシミュレートモデルを生成するために使用されてもよい。これにより、プロセス1300は終了する。
図14は、オブジェクトのデジタルシミュレートモデルにおける剛体運動を自動的に低減するための例示的プロセス1400のフローチャートである。オブジェクトは、オブジェクトの有限要素モデルに1つ以上の追加の要素を含めることによって、付加製造を使用して構築されることになる。プロセス1400は、コンピュータ102などの適切な演算装置によって実行することができる。プロセス1400は後述するように、プロセス700の一部として実行してもよい。
ブロック1402で、演算装置は、オブジェクトの要素およびノードに関する情報を含む、オブジェクトの有限要素モデルを取得する。ブロック1402は、ブロック702に対応してもよい。ブロック1404において、演算装置は有限要素モデルのすべての要素(例えば、構築プラットフォームと接触している要素以外の要素)のすべての隣りに位置する要素に対する重心対距離(centroid pair distances)を計算する。
例えば、図14Aは、要素1452を含むオブジェクトの有限要素モデル1450を示す。図示のように、各要素1452の重心1454が定義される。要素1452の重心1454は要素1452の中心(例えば、x、y、z座標)に対応する。要素の重心対距離は、要素の重心と隣りに位置する要素の重心との間の距離に対応する。指定された要素に対する隣りに位置する要素は、指定された要素と少なくとも1つのノードを共有する任意の要素として定義される。
ブロック1406で、演算装置は、任意の要素が閾値長以下である1つ以上の重心対距離の経路を介して、隣りに位置する要素との結合を有していないかどうかを判定する。当該閾値長は、要素の辺長であってもよい。例えば、上述したように、有限要素モデルの各要素は、立方体のノード間に等しい長さの辺を有する立方体である。要素の辺長は、要素を定義する立方体の辺の長さである。要素は、それらが一つ以上のノードを共有する場合、「結合」される得る。さらに、要素は要素の経路を介して結合されてもよく、経路に沿った各要素は経路に沿った前(previous)の要素と少なくとも1つのノードを共有する。
例えば、図14Aでは、要素1452aは隣りに位置する要素1452b~1452eを有する。図示のように、要素1452aは、隣りに位置する要素1452bおよび1452cのそれぞれと要素の辺長に等しい重心対距離を有する。さらに、隣りに位置する要素1452dおよび1452eのそれぞれと要素1452との重心対距離は要素の辺長よりも長いが、隣りに位置する要素1452dおよび1452eはそれぞれ、要素1452bおよび1452cと結合している。要素1452dと1452bとの間の重心対距離および要素1452eと1452cとの間の重心対距離は、いずれも要素の辺長に等しい。したがって、要素1452cを介して要素1452aと1452eとの間に経路があり、経路に沿った要素間の重心対距離は、要素の辺長以下である。さらに、要素1452aと1452dとの間には要素1452bを介する経路があり、経路に沿った要素間の重心対距離は要素の辺長以下である。したがって、要素1452aは、閾値長以下の1つ以上の重心対距離の経路を介して、その隣りに位置する要素のそれぞれに結合する。
対照的に、要素1452fは隣りに位置する要素1452gを有する。要素1452fと1452gとの間の重心対距離は、要素の辺長よりも長い。さらに、要素1452fと1452gとの間には、閾値長以下の1つ以上の重心対距離の経路がない。
特定の実施形態では、閾値長以下の1つ以上の重心対距離の経路を介して隣りに位置する要素に結合しない任意の要素が不安定要素であると判定される。例えば、要素1452fおよび1452gは、不安定な要素と考えることができる。例えば、ブロック1404~1406は、1つ以上の要素の不安定性を決定するために実行されてもよく、ブロック704に対応してもよい。
閾値長以下の1つ以上の重心対距離の経路(重心対距離の要件を満たす経路とも呼ばれる)を介して隣りに位置する要素との結合を有していない要素がない場合、有限要素モデルは不安定要素を含んでおらず、ブロック706に関して説明したように、有限要素モデルを使用して、オブジェクトのシミュレートモデルを生成することができる。これにより、プロセス1400は終了する。
少なくとも1つの要素が、閾値長以下である1つ以上の重心対距離の経路を介した隣りに位置する要素との結合を有さない場合、プロセス1400は1408に進む。
ブロック1408では、ブロック708に関して説明したように、1つ以上の追加の要素が、有限要素モデルを修正するために、少なくとも1つの要素に結合されるように配置される。例えば、1つ以上の追加の要素はそれが重心対距離の要件を満たす経路を有さない少なくとも1つの要素および隣りに位置する要素のそれぞれに結合されるように追加され、その結果、1つ以上の追加の要素で、少なくとも1つの要素および隣りに位置する要素が重心対距離要件を満たす経路を有する。図14Aは、不安定な要素1452fおよび1452gを支持するためにそのような要素が追加され得る位置を示す。ブロック706に関して説明したように、修正された有限要素モデルは、オブジェクトのシミュレートモデルを生成するために使用されてもよい。これにより、プロセス1400は終了する。
図15は、オブジェクトのデジタルシミュレートモデルにおける剛体運動を自動的に低減するための例示的プロセス1500のフローチャートである。当該オブジェクトは、オブジェクトの有限要素モデルにおいて1次元要素を含めることによる付加製造を用いて構築される。プロセス1500は、コンピュータ102などの適切な演算装置によって実行されてもよい。プロセス1500は後述するように、プロセス700の一部として実行されてもよい。
ブロック1502で、演算装置は、オブジェクトの要素およびノードに関する情報を含む、オブジェクトの有限要素モデルを取得する。例えば、演算装置は、要素のノードのノードIDに対応付けられた各要素に対する要素IDを含むオブジェクトの要素の定義を取得する。ブロック1502は、ブロック702に対応し得る。ブロック1504で、演算装置は有限要素モデルのノード対要素マップを取得する(例えば、オブジェクトの要素およびノードに関する情報に基づいてノード対要素マップを生成する)。
ブロック1506で、演算装置は有限要素モデルの各要素(例えば、構築プラットフォームと接触している要素以外の)のボトムノードを識別する。
ブロック1508で、演算装置はブロック1504で得られたノード対要素マップを使用することなどによって、ボトムノードが関連付けられるいくつかの要素(例えば、構築プラットフォームと接触している要素以外のすべての要素)を識別する。例えば、各ボトムノードに対して、演算装置は、ボトムノードに対応するノードIDに関連する要素IDの数を決定する。ノードIDに関連付けられている要素IDの数は、ボトムノードが関連付けられている要素の数を示す。
ブロック1510において、演算装置は単一要素のみに関連する2つ以上のボトムノードを持つ任意の要素(例えば、構築プラットフォームと接触している要素以外)を、不安定な要素として識別し、単一要素のみに関連するそのようなボトムノードを浮動ノードとして識別する。例えば、ブロック1504~1510は、1つ以上の要素の不安定性を決定するために実行されてもよく、ブロック704に対応させてもよい。
ブロック1512で、演算装置は、浮遊ノードが識別されたかどうかを判定する。浮動ノードが識別されていない場合、有限要素モデルは不安定要素を含まず、有限要素モデルは、ブロック706に関して上述したように、オブジェクトのシミュレートモデルを生成するために使用され得る。これにより、プロセス1500は終了する。
浮遊ノードが識別されている場合、プロセス1500はブロック1514に進む。ブロック1514で、浮遊ノードに結合し、ブロック708に関して説明したように、有限要素モデルを修正するために有限要素モデル内に1つ以上の1次元要素として含まれる1つ以上の対角ノード対(diagonal nodal pairs)が識別される。特に、1つ以上の対角ノード対のそれぞれは浮動ノードと、浮動ノードを有する要素よりも構築プラットフォームに(例えば、Z方向に)近い要素のノードとに結合し得る。例えば、対角ノード対は、同じ要素に属していない2つのノード間の面内(例えば、XZ平面内)対角接続(diagonal connection)である。対角ノード対は特徴的な長さ(例えば、要素の辺長*sqrt(2))を有する。図15Aは、いくつかの対角ノード対1554を含む、有限要素モデル1550を図示する。図示のように、対角ノード対1554aは、浮動ノード1556を含む要素1558よりも構築プラットフォームに近い要素1552上のノードに浮動ノード1556を結合する。
修正された有限要素モデルは、ブロック706に関して説明したように、オブジェクトのシミュレートモデルを生成するために使用されてもよい。これにより、プロセス1500は終了する。
したがって、本明細書の特定の実施形態はオブジェクトのデジタルシミュレートモデルにおける剛体運動を低減するための自動化されたプロセスを提供し、当該シミュレートモデルは、付加製造を使用してオブジェクトのシミュレート構築を表す。
ある場合には、オブジェクトのシミュレート構築における数値的な不安定性が有限要素モデルにおける要素の位置と配向によって生じることがある。例えば、5~15Aに関して説明した例に示されているように、有限要素モデル内の全ての要素は、シミュレートされた構築プラットフォームの平面に平行な底面を有する。したがって、立方体または他の特定の形状によって表される場合など、有限要素モデル内の要素は、シミュレートされた構築プラットフォームに平行または垂直でない角度に沿って互いに良好な接触を有さない場合がある。したがって、すべてが同じ角度であり(例えば、シミュレートされた構築プラットフォームの平面に対して平行のような同じ角度で底面を有する)、そのためそれらの間に十分な接触を有していない要素を含む有限要素モデルのために、数値的な不安定性が生じる可能性がある。
したがって、本明細書の特定の実施形態は互いに異なる角度で(例えば、互いに異なる角度で底面を有する)、および/またはシミュレートされた構築プラットフォームに平行でない(例えば、シミュレートされた構築プラットフォームに平行でない底面を有する)要素を有する有限要素モデル(例えば、有限要素モデルを生成すること)を提供する。このような有限要素モデルは(例えば、隣りに位置する)要素間の接触を増加させ、それによって、オブジェクトのシミュレート構築を実行するために使用される場合に数値的な不安定性を低減させ得る。
例えば、図16Aは要素を含むオブジェクトの有限要素モデル1600を示し、その要素の全てがシミュレートされた構築プラットフォームの平面に平行な底面を有する。図示のように、要素1602と1604との間には良好な接触は存在せず、それは、有限要素モデル1600がオブジェクトのシミュレート構築を実行するために使用される場合に、数値的な不安定性をもたらし得る。
対照的に、図16Bは要素を含む有限要素モデル1600Bを示し、その要素の全てが、シミュレートされた構築プラットフォームの平面に平行である底面を有するとは限らない。図示されるように、要素1602および1604は要素1602Bに置き換えられ、有限要素モデル1600B内の要素間の良好な接触を保証し、有限要素モデル1600Bがオブジェクトのシミュレート構築を実行するために使用される場合、有限要素モデル1600Aと比較して、数値的な不安定性を低減し得る。
図16Cは、要素を含むオブジェクトの別の実施例の有限要素モデル1600Cを示し、その要素の全てが、シミュレートされた構築プラットフォームの平面に平行である底面を有するとは限らない。
図17は、互いに異なる角度で、および/または付加製造を使用して構築されるオブジェクトのデジタルシミュレートモデルビルドプラットフォームに平行でない要素を有する有限要素モデルを使用するための、例示的プロセス1700のフローチャートである。プロセス1700は、コンピュータ102などの適切な演算装置によって実行されてもよい。
ブロック1702で、演算装置は、オブジェクトの有限要素モデルを取得する。有限要素モデルは、互いに異なる角度を有する要素および/または付加製造を用いて構築されるオブジェクトのデジタルシミュレートモデルにおけるシミュレートされた構築プラットフォームに平行でない要素を含む。
ブロック1706では、演算装置がシミュレーションを実行し、有限要素モデルを使用して、オブジェクトのシミュレートモデルを生成する。
特定の態様において、有限要素モデルは、シミュレートされた付加製造装置のシミュレートされた構築プラットフォームに平行でない底面を有する第1の要素を含む複数の要素を含む。特定の態様において、複数の要素は、シミュレートされた構築プラットフォームに平行な底面を有する別の要素を含む。特定の態様において、複数の要素は、シミュレートされた構築プラットフォームに対して、第1の要素の底面とは異なる角度で底面を有する別の要素を含む。特定の態様では、複数の要素のそれぞれがキューブの角にノードを有するキューブを含む。
本明細書に開示される様々な実施形態は、コンピュータ機制御システムの使用を提供する。当業者は、汎用コンピューティングシステム環境若しくは構成、及び/又は、専用コンピューティングシステム環境若しくは構成、の両方を含む非常に多くの種々のタイプのコンピューティングデバイスを使用して、これらの実施形態を実行してもよいことを容易に理解するであろう。上述の実施形態に関連した使用に適している可能性のある、既知のコンピューティングシステム、コンピューティング環境及び/又はコンピューティング構成の例は、パーソナルコンピュータ、サーバコンピュータ、携帯用デバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサに基づいたシステム、プログラマブルコンシューマエレクトロニクス、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記のシステム又はデバイスの何れかを含む分散コンピューティング環境などを含んでもよいが、これらに限定されない。これらのデバイスは、保存された指示を含んでもよく、当該指示は、コンピューティングデバイスにおけるマイクロプロセッサによって実行された場合、当該指示を実行するために、コンピュータデバイスに特定の動作を行わせる。本願明細書で用いられるように、指示は、システムにおいて情報を処理するための、コンピュータによって実行されるステップを示す。指示は、ソフトウェア、ファームウェア又はハードウェアにおいて実行され、システムの構成要素によって引き受けられた任意のタイプのプログラム化されたステップを含み得る。
マイクロプロセッサは、Pentium(登録商標)プロセッサ、Pentium(登録商標)Proプロセッサ、8051プロセッサ、MIPS(登録商標)プロセッサ、PowerPC(登録商標)プロセッサ、又はAlpha(登録商標)プロセッサなどの、任意の従来の汎用シングルチップマイクロプロセッサ又は汎用マルチチップマイクロプロセッサであってもよい。さらに、マイクロプロセッサは、デジタルシグナルプロセッサまたはグラフィックプロセッサなどの任意の従来の専用マイクロプロセッサであってもよい。マイクロプロセッサは、通常、従来のアドレスライン、従来のデータライン、および1つ以上の従来の制御ラインを有する。
本願明細書に開示された発明の態様及び実施形態は、ソフトウェア、ファームウェア、ハードウェア又はこれらの任意の組み合わせを生成する標準プログラミング又は標準エンジニアリング技術を用いた方法、装置又は製品として実施されてもよい。本明細書で使用される「製品」は、光学記憶装置などのハードウェア又は非一過性コンピュータ読み取り可能媒体、及び揮発性メモリ装置又は不揮発性メモリ装置、信号、搬送波などの一過性コンピュータ読み取り可能媒体において実装されるコード又はロジックを示す。そのようなハードウェアはフィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、複合プログラマブルロジックデバイス(CPLD)、プログラマブルロジックアレイ(PLA)、マイクロプロセッサ、または他の同様の処理装置を含むことができるが、これらに限定されない。
図1は、3Dオブジェクトを設計および製造するためのシステムの一例を示す図である。
図2は、図1に示すコンピュータの一例の機能ブロック図を示す図である。
図3は、使用する3Dオブジェクトを製造するための高レベルプロセスを示す図である。
図4Aは、リコート機構を有する付加製造装置の例を示す図である。
図4Bは、リコート機構を有する付加製造装置の別の例を示す図である。
図5は、オブジェクトの有限要素モデルの一例を示す図である。
図5Aは、有限要素モデルのための2つの要素の例を示す図である。
図5Bは、図5Aの要素に対するノード対要素マップ(node to element map)の例を示す図である。
図6Aは、図5の有限要素モデルによって表されるオブジェクトの構築の例示的なシミュレーションの結果として生じる例示的なシミュレートモデルを示す図である。
図6Bは、図5の有限要素モデルによって表されるオブジェクトの構築の例示的なシミュレーションの結果として生じる例示的なシミュレートモデルを示す図である。
図7は、付加製造を用いて、構築されるオブジェクトのデジタルシミュレートモデルにおける剛体運動を自動的に減少させるための例示的プロセスのフローチャートである。
図8は、図5の有限要素モデルのノードに配置された例示的なスプリングを示す図である。
図9は、図5の有限要素モデルに配置された追加の要素の一例を示す図である。
図10は、図5の有限要素に配置された1次元要素の一例を示す図である。
図11は、図5の有限要素モデルのノードに配置された制約の例を示す図である。
図12Aは、図8~11のうちの1つの修正された有限要素モデルによって表されるオブジェクトの構築の例示的シミュレーションの結果として生じるシミュレートモデルの一例を示す図である。
図12Bは、図8~11のうちの1つの修正された有限要素モデルによって表されるオブジェクトの構築の例示的シミュレーションの結果として生じるシミュレートモデルの一例を示す図である。
図13はオブジェクトの有限要素モデルにスプリングを含めることにより、付加製造を用いて構築されるオブジェクトのデジタルシミュレートモデルにおける剛体運動を自動的に低減するためのプロセスの一例のフローチャートである。
図13Aは、オブジェクトの有限要素モデルの一例を示す図である。
図13Bは、図13Aの有限要素モデルのノード対要素マップの一例を示す図である。
図13Cは、図13Aの有限要素モデルの浮動ノードを識別する表を示す図である。
図14は、オブジェクトのデジタルシミュレートモデルにおける剛体運動を自動的に減少させるための例示的なプロセスのフローチャートである。当該オブジェクトは、オブジェクトの有限要素モデルに1つ以上の追加の要素を含めることによって、付加製造を使用して構築されることになる。
図14Aは、オブジェクトの有限要素モデルの一例を示す図である。
図15は、オブジェクトのデジタルシミュレートモデルにおける剛体運動を自動的に減少させるための例示的なプロセスのフローチャートである。当該オブジェクトは、オブジェクトの有限要素モデルに1次元要素を含めことによって、付加製造を用いて構築されることになる。
図15Aは、オブジェクトの有限要素モデルの一例を示す図である。
図16Aは、要素を含むオブジェクトの有限要素モデルを示す図であり、その要素全てがシミュレートされた構築プラットフォームの平面に平行な底面を有する。
図16Bは、要素を含むオブジェクトの有限要素モデルを示す図であり、当該要素の全てが、シミュレートされた構築プラットフォームの平面に平行である底面を有するとは限らない。
図16Cは、要素を含むオブジェクトの有限要素モデルを示す図であり、その要素の全てが、シミュレートされた構築プラットフォームの平面に平行である底面を有するとは限らない。
図17は、オブジェクトのデジタルシミュレートモデルにおいて、互いに異なる角度であり、且つ/又は、付加製造を使用して構築されるオブジェクトのデジタルシミュレートモデルにおけるシミュレートされた構築プラットフォームに平行でない要素を含む有限要素モデルを使用するためのプロセスの一例のフローチャートである。