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

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

▶ オートデスク,インコーポレイテッドの特許一覧

特開2023-84699製造及び構造性能を促進するフィーチャ厚制御を用いるコンピュータ支援ジェネレーティブ設計
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023084699
(43)【公開日】2023-06-19
(54)【発明の名称】製造及び構造性能を促進するフィーチャ厚制御を用いるコンピュータ支援ジェネレーティブ設計
(51)【国際特許分類】
   G06F 30/10 20200101AFI20230612BHJP
   G06F 30/13 20200101ALI20230612BHJP
   G06F 111/04 20200101ALN20230612BHJP
   G06F 113/10 20200101ALN20230612BHJP
【FI】
G06F30/10 100
G06F30/13
G06F111:04
G06F113:10
【審査請求】未請求
【請求項の数】29
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022195271
(22)【出願日】2022-12-07
(31)【優先権主張番号】63/286,990
(32)【優先日】2021-12-07
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/707,886
(32)【優先日】2022-03-29
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】500280087
【氏名又は名称】オートデスク,インコーポレイテッド
(74)【代理人】
【識別番号】100092783
【弁理士】
【氏名又は名称】小林 浩
(74)【代理人】
【識別番号】100120134
【弁理士】
【氏名又は名称】大森 規雄
(74)【代理人】
【識別番号】100141025
【弁理士】
【氏名又は名称】阿久津 勝久
(72)【発明者】
【氏名】ベンジャミン マックキトリック ウェイス
(72)【発明者】
【氏名】ニゲル ジェド ウェズリー モリス
(72)【発明者】
【氏名】エイドリアン アダム トーマス ブシェール
(72)【発明者】
【氏名】ジーザス ロドリゲス
【テーマコード(参考)】
5B146
【Fターム(参考)】
5B146AA04
5B146BA04
5B146DC05
5B146DC06
5B146DE12
5B146EA06
5B146EA15
5B146EA17
5B146EA18
(57)【要約】      (修正有)
【課題】製造及び構造性能を促進するフィーチャ厚制御を用いるコンピュータ支援ジェネレーティブ設計を実現する方法、システム及び記憶媒体提供する。
【解決手段】フィーチャ厚制御を用いる構造のコンピュータ支援設計を促進するために使用可能なシステム100において、コンピュータ110は、3次元モデル内の厚さを測定する、ボクセル化間引きに基づく中心サーフェスへの距離の処理及び/または形状及び/またはトポロジ生成中の傾斜スケーリングに基づく厚さ制約の適用を提供する3次元モデリングプログラムを実行する。3次元モデリングプログラムは、建築、エンジニアリング及び/または建設プログラム(例えば、建物情報管理プログラム)、製品設計及び/または製造プログラム(例えば、CAMプログラム)、ならびにメディア及び/またはエンターテイメント制作プログラム(例えば、アニメーション制作プログラム)であってよい。
【選択図】図1A
【特許請求の範囲】
【請求項1】
コンピュータ支援設計プログラムにより、モデル化されたオブジェクトの設計空間と、前記モデル化されたオブジェクトの1つ以上の設計基準とを取得することであって、前記モデル化されたオブジェクトのために対応する物理構造が製造されることになり、前記1つ以上の設計基準が、前記モデル化されたオブジェクトの厚さ仕様を含む、前記取得することと、
前記コンピュータ支援設計プログラムにより、前記1つ以上の設計基準に従って、前記設計空間内の前記モデル化されたオブジェクトの3次元形状を反復的に変化させることであって、前記反復的に変化させることが、前記反復的に変化させることの間に、前記3次元形状の厚さ値を測定することにより、前記厚さ仕様を使用して、前記3次元形状の厚さを制御することを含み、前記測定することが、
前記3次元形状のための、ボクセル化シート及びラインスケルトンを準備することと、
前記ボクセル化シート及びラインスケルトンを使用して、前記3次元形状の前記厚さ値を定義することと、を含む、前記反復的に変化させることと、
前記コンピュータ支援設計プログラムにより、1つ以上のコンピュータ制御製造システムを使用して、前記物理構造の製造で用いる前記モデル化されたオブジェクトの前記3次元形状を提供することと、
を含む、方法。
【請求項2】
前記準備することは、
前記3次元形状のためのボクセル化シートスケルトンを計算することと、
前記3次元形状のためのボクセル化ラインスケルトンを計算することであって、前記ボクセル化ラインスケルトンは、前記3次元形状の異なる部分を相互に接続する1つ以上のラインセグメントを含む、前記計算することと、
前記ボクセル化ラインスケルトンのボクセルを前記ボクセル化シートスケルトンに加えて、前記3次元形状のための前記ボクセル化シート及びラインスケルトンを形成することと、
を含む、請求項1に記載の方法。
【請求項3】
前記準備することは、前記ボクセル化シートスケルトンから遠隔ボクセルを除去することを含む、請求項2に記載の方法。
【請求項4】
前記ボクセル化シートスケルトンから前記遠隔ボクセルを除去することは、
前記3次元形状のための前記ボクセル化シートスケルトンのシートエッジに関連したボクセルを除去すること、
前記3次元形状のための前記ボクセル化シートスケルトンの1つ以上のボクセル化ラインスケルトン部分を形成するボクセルを除去すること、または
前記シートエッジに関連した前記ボクセルを除去することと、前記1つ以上のボクセル化ラインスケルトン部分を形成する前記ボクセルを除去することとの両方、
を含む、請求項3に記載の方法。
【請求項5】
前記モデル化されたオブジェクトは、前記3次元形状に指定された1つ以上の保存領域を含み、前記3次元形状の前記異なる部分は、前記1つ以上の保存領域を含む、請求項4に記載の方法。
【請求項6】
前記定義することは、
前記ボクセル化シート及びラインスケルトンを、前記3次元形状の中心サーフェスに近づける点に変換することと、
前記点を使用して前記厚さ値を生成することと、
を含む、請求項3に記載の方法。
【請求項7】
中心サーフェスに近づける前記点は、第1の点のセットであり、前記準備することは、前記ボクセル化シートスケルトンから前記遠隔ボクセルを前記除去することの前に、前記ボクセル化シートスケルトンになかった前記ボクセル化ラインスケルトンの前記ボクセルを追跡することを含み、前記生成することは、前記第1の点のセットに加えて第2の点のセットを使用して前記厚さ値を生成することを含み、前記第2の点のセットは、前記除去することの前に、前記ボクセル化シートスケルトンになかった前記ボクセル化ラインスケルトンの前記ボクセルの中心点である、請求項6に記載の方法。
【請求項8】
前記モデル化されたオブジェクトの前記3次元形状は、前記モデル化されたオブジェクトの暗黙的サーフェスのレベルセット表現を含み、前記中心サーフェスに近づける前記第1の点のセットの個々の点ごとに、前記変換することは、
前記ボクセル化シート及びラインスケルトン内にあるが、前記除去することの前に前記ボクセル化シートスケルトンになかった前記ボクセル化ラインスケルトンの前記ボクセルに含まれていない、次のボクセルから、または前記次のボクセルの隣接するボクセルから、光線を投射することと、
前記3次元形状内の前記光線に沿った前記レベルセット表現の値の極値を推定することと、を含む、請求項7に記載の方法。
【請求項9】
前記第1の点のセットは、シート点及びライン点を含み、前記方法は、前記シート点の多方向探索を実行することと、前記ライン点の勾配優先探索を実行することとを含み、
前記多方向探索では、
前記投射することは、前記次のボクセルに関連した初期点から異なる方向に2つ以上の光線を投射することを含み、
前記推定することは、前記2つ以上の投射光線のそれぞれについて、
前記中心サーフェスの近傍の前記レベルセット表現で値の近傍線形近似を制作することと、
前記中心サーフェスの遠方の前記レベルセット表現で値の遠方線形近似を制作することと、
前記近傍線形近似と前記遠方線形近似との交点、及び前記交点の品質値を求めることと、
前記交点の前記品質値に基づいて、前記2つ以上の投射光線について求められた前記交点の少なくとも1つを、前記第1の点のセットに選択することと、を含み、
前記勾配優先探索では、
前記投射することは、前記初期点から、前記次のボクセルの前記隣接するボクセルから計算された風上勾配に対応する方向に光線を投射することを含み、
前記推定することは、
前記中心サーフェスの近傍の前記レベルセット表現で値の近傍線形近似を制作することと、
前記中心サーフェスの遠方の前記レベルセット表現で値の遠方線形近似を制作することと、
前記近傍線形近似と前記遠方線形近似との交点、及び前記交点の品質値を求めることと、
前記交点の前記品質値が十分なとき、前記第1の点のセットのライン点として前記交点を使用し、前記交点の前記品質値が十分でないとき、前記ライン点の前記多方向探索を実行することと、
を含む、請求項8に記載の方法。
【請求項10】
前記変換することは、
前記3次元形状の前記中心サーフェスに近づける第1の点のセットを求めることと、
前記第1の点のセットの位置及び/または半径を変更して、前記第1の点のセットのデータ値を平滑化することと、
を含む、請求項6に記載の方法。
【請求項11】
前記モデル化されたオブジェクトの前記3次元形状は、前記モデル化されたオブジェクトの暗黙的サーフェスのレベルセット表現を含み、前記生成することは、
前記ボクセル化シート及びラインスケルトンから生成された前記点のそれぞれについて、球のブール結合を、前記モデル化されたオブジェクトの前記暗黙的サーフェスの前記レベルセット表現のコピーに実行することにより、厚みを増したレベルセット表現を形成することと、
前記モデル化されたオブジェクトの前記暗黙的サーフェスの前記レベルセット表現と、前記厚みを増したレベルセット表現との間の差に基づいて、前記厚さ値を推定することと、
を含む、請求項10に記載の方法。
【請求項12】
前記反復的に変化させることは、前記設計空間内の前記モデル化されたオブジェクトの3次元形状及びトポロジを反復的に変化させることを含む、請求項11に記載の方法。
【請求項13】
1つ以上のデータ処理装置に、請求項1~12のいずれかに記載の操作を実行させるように動作可能なコンピュータ支援設計プログラムを符号化する、非一時的コンピュータ可読媒体。
【請求項14】
コンピュータ支援設計プログラムにより、モデル化されたオブジェクトの設計空間と、前記モデル化されたオブジェクトの1つ以上の設計基準と、前記モデル化されたオブジェクトの厚さ仕様とを取得することであって、前記モデル化されたオブジェクトのための、対応する物理構造が製造されることになる、取得することと、
前記コンピュータ支援設計プログラムにより、前記1つ以上の設計基準に従って、前記設計空間内の前記モデル化されたオブジェクトの3次元形状を反復的に変化させることであって、前記反復的に変化させることは、第2のゼロ以上の反復のセットに続いて、第1の2つ以上の反復のセットを実行することを含み、前記第1の2つ以上の反復のセットの間、前記反復的に変化させることは、前記第1の2つ以上の反復のセットの各反復において、前記反復における前記3次元形状の現在のバージョンを更新する際に使用するために、数値シミュレーションによって生成される前記モデル化されたオブジェクトの現在の数値的評価によって示される変化の量を修正することを含み、
前記修正することは、前記3次元形状の現在のバージョンにおける複数の位置のそれぞれの位置について、当該位置における、前記厚さ仕様と、測定された厚さが前記厚さ仕様に適合するときに前記位置での前記測定された厚さと、の間の差に基づく量だけ、前記厚さ仕様に向かう方向に形状変化を遅らせることを含む、前記反復的に変化させることと、
前記コンピュータ支援設計プログラムにより、1つ以上のコンピュータ制御製造システムを使用して、前記物理構造の製造で用いる前記モデル化されたオブジェクトの前記3次元形状を提供することと、
を含む、方法。
【請求項15】
前記反復的に変化させることは、前記1つ以上の設計基準に従って、前記設計空間内の前記モデル化されたオブジェクトの前記3次元形状とトポロジとの両方を反復的に変化させることを含み、前記修正することは、前記3次元形状の現在のバージョンにおける複数の位置の各位置について、前記測定された厚さが前記厚さ仕様に適合しないとき、前記位置において、前記厚さ仕様に向かう方向に形状変化を強制することを含む、請求項14に記載の方法。
【請求項16】
前記強制することは、前記厚さ仕様と前記位置での前記測定された厚さとの間の差に基づく量だけ、前記厚さ仕様に向かう方向に形状変化を強制することを含む、請求項15に記載の方法。
【請求項17】
前記修正することは、前記3次元形状の前記現在のバージョンにおける前記複数の位置の各位置について、
前記遅らせた形状変化または前記強制された形状変化のいずれかを使用して、前記位置で予想される厚さの変化を推定することと、
前記位置での厚さの前記推定した変化を使用して、前記遅らせた形状変化または前記強制された形状変化のいずれかを調整することと、
を含む、請求項15に記載の方法。
【請求項18】
前記第2のセットは、第2の1つ以上の反復のセットであり、前記反復的に変化させることは、前記第2の1つ以上の反復のセットと、前記第1の2つ以上の反復のセットとの間で、第3の2つ以上の反復のセットを実行することを含み、前記第3の2つ以上の反復のセットの間に、前記反復的に変化させることは、
前記3次元形状の現在のバージョンにおける複数の位置のそれぞれの位置について、前記位置における測定された厚さが値の範囲内にあるとき、前記位置において、前記厚さ仕様に向かう方向に形状変化を遅らせることであって、前記値の範囲の一方が、調整制御変数によって設定される、前記遅らせることと、
前記厚さ仕様に近づけるために、前記第3の2つ以上の反復のセットにわたって、前記調整制御変数を変更することと、
を含む、請求項14~17のいずれかに記載の方法。
【請求項19】
前記反復的に変化させることが、それ以上の強制的な形状変化が必要ないことを保証するために、前記1つ以上の設計基準が満たされる反復を超えて、前記第1の2つ以上の反復のセットを拡張することを含む、請求項18に記載の方法。
【請求項20】
前記第2のセットは、第2の2つ以上の反復のセットであり、前記第2の2つ以上の反復のセットの間に、前記厚さ仕様に基づいて、前記数値的評価によって示された前記量の変更は実行されない、請求項18に記載の方法。
【請求項21】
前記反復的に変化させることは、前記3次元形状の厚さ値を測定することを含み、前記測定することは、
前記3次元形状のためのボクセル化シート及びラインスケルトンを準備することと、
前記ボクセル化シート及びラインスケルトンを使用して、前記3次元形状の前記厚さ値を定義することと、
を含む、請求項18に記載の方法。
【請求項22】
前記厚さ仕様が、最大厚値である、請求項18に記載の方法。
【請求項23】
前記厚さ仕様は、厚さアスペクト比に対応し、前記厚さ仕様は、前記3次元形状の前記現在のバージョンの一部分の長さに対して、前記位置で評価された厚さの比率に基づいて、前記位置で調整され、前記一部分が前記位置を含む、請求項18に記載の方法。
【請求項24】
前記厚さ仕様が、最小厚値である、請求項18に記載の方法。
【請求項25】
前記測定された厚さは、前記位置の前記厚さが、(i)最大厚値、(ii)厚さアスペクト比、または(iii)最小厚値、を満たすときに、前記厚さ仕様に従い、厚さ測定誤差の推定値に従ってバッファが設定される、請求項18に記載の方法。
【請求項26】
前記遅らせることが第1の関数によって制御され、前記強制することが第2の関数によって制御される、請求項25に記載の方法。
【請求項27】
1つ以上のデータ処理装置に、請求項14~26のいずれかに記載の操作を実行させるように動作可能なコンピュータ支援設計プログラムを符号化する、非一時的コンピュータ可読媒体。
【請求項28】
システムであって、
3次元モデリングプログラムの命令が格納されている非一時的記憶媒体と、
前記3次元モデリングプログラムの前記命令を実行するように構成された1つ以上のデータ処理装置と、を含み、
前記命令は、3次元モデルで厚さを測定するボクセル化間引きに基づく中心サーフェスへの距離の処理のための手段、及び/または
形状及び/またはトポロジを生成中に傾斜スケーリングに基づく厚さ制約を適用するための手段、
を含む、システム。
【請求項29】
前記3次元モデリングプログラムは、(i)建築、エンジニアリング及び/または建設プログラム、(ii)製品設計及び/または製造プログラム、及び/または(iii)メディア及び/またはエンターテイメント制作プログラムである、請求項28に記載のシステム。
【発明の詳細な説明】
【背景技術】
【0001】
本明細書は、付加製造、除去製造及び/またはその他の製造システム及び生産技術を用いて製造することができる物理構造、またはアニメーション用などのデジタルアセットとして提供することができるその他の構造のコンピュータ支援設計に関する。
【0002】
コンピュータ支援設計(CAD)ソフトウェアは、オブジェクトの3次元(3D)表現を生成するために開発され、使用されており、コンピュータ支援製造(CAM)ソフトウェアは、例えば、コンピュータ数値制御(CNC)製造技術を使用する、そうしたオブジェクトの物理構造の製造を評価し、計画し、制御するために開発され、使用されている。通常、CADソフトウェアは、境界表現(B-Rep)形式を使用して、モデル化されるオブジェクトのジオメトリの3D表現を保管する。B-Repモデルは、モデル化された3Dオブジェクトのソリッド部分と非ソリッド部分との間の境界を指定する、接続されたサーフェス要素の集合である。B-Repモデル(B-Repと呼ばれることが多い)では、CADプログラムでの作業が困難な場合があるメッシュモデルの離散的で近似的なサーフェスとは対照的に、滑らかで正確な数学的サーフェスを用いてコンピュータにジオメトリが保管される。
【0003】
CADプログラムは、除去製造のシステム及び技術と組み合わせて使用されている。除去製造とは、ストックマテリアル(一般に3Dオブジェクトよりも大きな「ブランク」または「ワークピース」)の部分を切り取ることにより、ストックマテリアルから3Dオブジェクトを作成する任意の製造プロセスを指す。そのような製造プロセスは、通常、荒削り作業に始まって、任意選択の半仕上げ作業、及び仕上げ作業へと続く一連の作業において、複数のCNC機械切削ツールの使用を含む。CNC加工に加えて、他の除去製造技術には、電極放電加工、化学的加工、ウォータージェット加工などがある。その一方、付加製造は、固体自由造形または3Dプリンティングとも呼ばれ、3Dオブジェクトを原材料(一般に粉末、液体、懸濁液、または溶融固体)から一連の層または断面で構築する任意の製造プロセスを指す。付加製造の例には、溶融フィラメント製造(FFF)及び選択的レーザ焼結(SLS)が含まれる。原材料から3Dオブジェクトを構築するための他の製造技術には、鋳造及び鍛造(高温及び低温の両方)ならびに成形が含まれる。
【0004】
さらに、CADソフトウェアは、設計内の1つ以上のパーツの3Dジオメトリの自動生成(とりわけ、「トポロジ最適化」、「ジェネレーティブ設計」、または「ジェネレーティブモデリング」などと呼ばれる)を実行するように設計されている。この3Dジオメトリの自動生成は、多くの場合、ユーザまたはCADソフトウェアによって指定された「設計ドメイン」内で機能し、通常は、設計目標を最適化し、設計制約を順守することによってジオメトリを生成する。この制約は、ユーザ、CADソフトウェア、またはサードパーティによって定義され得る。設計目標には、廃材の最小化、パーツ重量の最小化、及びパーツのコンプライアンス、応力、最大質量、荷重下での最大たわみ、またはその他の固有特性の最小化が含まれ得るが、設計目標は、これらに限定されず、形状合成プロセスをより良い設計に向けて推進するために使用される。必須ではないが、設計目標は、設計のシミュレーション(線形静的、流体力学的、電磁的なシミュレーションなど)に基づいているのが一般的である。設計制約には、生成される任意の設計で満たされなければならない様々な物理的特性または物理的挙動(個々のパーツまたはアセンブリ全体についての要件も認められる)が含まれ得、例としては、最大質量、荷重下での最大たわみ、最大応力などがある。
【0005】
例えば、生成される形状に微細なフィーチャがないこと、または特定の製造プロセスを使用してより簡単に実現されることを保証するために、幾何学的制約を提供することもできる。さらに、このような3Dジオメトリ生成ツールへの幾何学的入力には、設計に常に存在すべき、ユーザまたはCADシステム提供の「保存ボディ」(最終設計において材料で埋められるべき設計空間の体積領域を示す)または「保存面」(設計空間と、生成される3Dジオメトリによって接触されなければならない隣接構成要素との間の境界面を示す)を1つ以上含めることが可能である。「保存ボディ」または「保存面」は、境界条件(例えば、機械的負荷または機械的制約)が適用されるべきである、システムまたは場所の他のパーツへの境界面を表し得る。ジオメトリが生成されるべきである、または生成されるべきではない、他の領域を、同様にして提供することもできる(例えば、ジオメトリが作成されるべきではない場所を示すために使用される「障害物ボディ」)。場合によっては、形状合成プロセスは、CADシステムで採用されているものとは異なるジオメトリの表現を使用して行われる。例えば、CADシステムでは、境界表現(「B-Rep」)が使用され得、一方、ジオメトリ生成エンジンでは、ボクセルまたは四面体メッシュに埋め込まれたレベルセット関数が使用され得る。
【発明の概要】
【0006】
本明細書は、ジェネレーティブ設計による3D形状におけるフィーチャ厚を制御する設計基準、例えば、最小フィーチャサイズ制御に従って物理構造の3次元(3D)モデルが制作される、フィーチャ厚制御を伴う、構造のコンピュータ支援設計、例えば、ジェネレーティブ設計プロセスを用いる物理構造設計に関してのテクノロジについて説明する。他の用途としては、概念作業またはデジタル専用アセットの生成がある。つまり、最小フィーチャサイズの増加が、審美的理由や、または座屈などのモデル化されていない物理現象に耐えることを望む要望など、製造可能性の考慮事項以外の何かによって引き起こされ得る。
【0007】
一般に、本明細書に記載されている主題の1つ以上の態様は、コンピュータ支援設計プログラムにより、対応する物理構造が製造されることになるモデル化されたオブジェクトの設計空間と、モデル化されたオブジェクトの1つ以上の設計基準とを取得することであって、1つ以上の設計基準が、モデル化されたオブジェクトの厚さ仕様を含む、取得することと、コンピュータ支援設計プログラムにより、1つ以上の設計基準に従って、設計空間内のモデル化されたオブジェクトの3次元形状を反復的に変化させることであって、反復的に変化させることが、反復的に変化させることの間に、3次元形状の厚さ値を測定することにより、厚さ仕様を使用して、3次元形状の厚さを制御することを含み、測定することが、3次元形状のためのボクセル化シート及びラインスケルトンを準備することと、ボクセル化シート及びラインスケルトンを使用して、3次元形状の厚さ値を定義することと、を含む、反復的に変化させることと、コンピュータ支援設計プログラムにより、1つ以上のコンピュータ制御製造システムを使用して、物理構造の製造で用いるモデル化されたオブジェクトの3次元形状を提供することと、を含む、1つ以上の方法(及びデータ処理装置に動作を実行させるように動作可能なコンピュータプログラムを明確に符号化する1つ以上の非一時的コンピュータ可読媒体)で具体化することができる。
【0008】
準備は、3次元形状のためのボクセル化シートスケルトンを計算することと、3次元形状のためのボクセル化ラインスケルトンを計算することであって、ボクセル化ラインスケルトンは、3次元形状の異なる部分を相互に接続する1つ以上のラインセグメントを含む、計算することと、任意選択で、ボクセル化シートスケルトンから遠隔ボクセルを除去することと、ボクセル化ラインスケルトンのボクセルをボクセル化シートスケルトンに加えて、3次元形状のためのボクセル化シート及びラインスケルトンを形成することと、を含み得る。モデル化されたオブジェクトは、3次元形状に指定された1つ以上の保存領域を含み得、3次元形状の異なる部分は、1つ以上の保存領域を含み得る。
【0009】
ボクセル化シートスケルトンから遠隔ボクセルを除去することは、3次元形状のためのボクセル化シートスケルトンのシートエッジに関連したボクセルを除去すること、3次元形状のためのボクセル化シートスケルトンの1つ以上のボクセル化ラインスケルトン部分を形成するボクセルを除去すること、またはシートエッジに関連したボクセルを除去することと、1つ以上のボクセル化ラインスケルトン部分を形成するボクセルを除去することとの両方、を含み得る。定義することは、ボクセル化シート及びラインスケルトンを、3次元形状の中心サーフェスに近づける点に変換することと、点を使用して厚さ値を生成することと、を含み得る。
【0010】
中心サーフェスに近づける点は、第1の点のセットであり得、準備は、ボクセル化シートスケルトンから遠隔ボクセルを除去する前に、ボクセル化シートスケルトンになかったボクセル化ラインスケルトンのボクセルを追跡することを含み得、生成は、第1の点のセットに加えて第2の点のセットを使用して厚さ値を生成することを含み得、第2の点のセットは、除去の前に、ボクセル化シートスケルトンになかったボクセル化ラインスケルトンのボクセルの中心点である。
【0011】
モデル化されたオブジェクトの3次元形状は、モデル化されたオブジェクトの暗黙的サーフェスのレベルセット表現を含み得、中心サーフェスに近づける第1の点のセットの個々の点ごとに、変換は、ボクセル化シート及びラインスケルトン内にあるが、除去の前にボクセル化シートスケルトンになかったボクセル化ラインスケルトンのボクセルに含まれていない、次のボクセルから、または次のボクセルの隣接するボクセルから、光線を投射することと、3次元形状内の光線に沿ったレベルセット表現の値の極値を推定することと、を含み得る。
【0012】
第1の点のセットは、シート点及びライン点を含むことができ、本方法(または、1つ以上の非一時的コンピュータ可読媒体に明確に符号化されたコンピュータプログラムに従ってデータ処理装置によって実行される操作)は、シート点の多方向探索の実行と、ライン点の勾配優先探索の実行とを含み得、多方向探索では、投射は、次のボクセルに関連した初期点から異なる方向に2つ以上の光線を投射することを含み、2つ以上の投射光線は、任意選択で少なくとも3つの直交光線であり、これは任意選択で設計空間のX、Y、Z方向であり、推定は、2つ以上の投射光線のそれぞれについて、中心サーフェスの近傍のレベルセット表現で値の近傍線形近似を制作することと、中心サーフェスの遠方のレベルセット表現で値の遠方線形近似を制作することと、近傍線形近似と遠方線形近似との交点、及び交点の品質値を求めることと、交点の品質値に基づいて、2つ以上の投射光線について求められた交点の少なくとも1つを、第1の点のセットに選択することと、を含む。さらに、勾配優先探索では、投射は、初期点から、次のボクセルの隣接するボクセルから計算された風上勾配に対応する方向に光線を投射することを含み、推定は、中心サーフェスの近傍のレベルセット表現で値の近傍線形近似を制作することと、中心サーフェスの遠方のレベルセット表現で値の遠方線形近似を制作することと、近傍線形近似と遠方線形近似との交点、及び交点の品質値を求めることと、交点の品質値が十分なとき、第1の点のセットのライン点として交点を使用し、交点の品質値が十分でないとき、ライン点の多方向探索を実行することと、を含む。
【0013】
変換は、3次元形状の中心サーフェスに近づける第1の点のセットを求めることと、第1の点のセットの位置及び/または半径を変更して、第1の点のセットのデータ値を平滑化することと、を含み得る。モデル化されたオブジェクトの3次元形状は、モデル化されたオブジェクトの暗黙的サーフェスのレベルセット表現を含み得、生成は、ボクセル化シート及びラインスケルトンから生成された点のそれぞれについて、球のブール結合を、モデル化されたオブジェクトの暗黙的サーフェスのレベルセット表現のコピーに実行することにより、厚みを増したレベルセット表現を形成することと、モデル化されたオブジェクトの暗黙的サーフェスのレベルセット表現と、厚みを増したレベルセット表現との間の差に基づいて、厚さ値を推定することと、を含み得る。さらに、反復的に変化させることは、設計空間内のモデル化されたオブジェクトの3次元形状及びトポロジを反復的に変化させることを含み得る。
【0014】
一般に、本明細書に記載されている主題の1つ以上の態様は、コンピュータ支援設計プログラムにより、対応する物理構造が製造されることになるモデル化されたオブジェクトの設計空間と、モデル化されたオブジェクトの1つ以上の設計基準と、モデル化されたオブジェクトの厚さ仕様とを取得することと、コンピュータ支援設計プログラムにより、1つ以上の設計基準に従って、設計空間内のモデル化されたオブジェクトの3次元形状を反復的に変化させることであって、反復的に変化させることは、第2のゼロ以上の反復のセットに続いて、第1の2つ以上の反復のセットを実行することを含み、第1の2つ以上の反復のセットの間、反復的に変化させることは、第1の2つ以上の反復のセットの各反復において、反復におけるジェネレーティブ設計による3次元形状の現在のバージョンを更新する際に使用するために、数値シミュレーションによって生成されるモデル化されたオブジェクトの現在の数値的評価によって示される変化の量を修正することを含み、修正は、ジェネレーティブ設計による3次元形状の現在のバージョンにおける複数の位置のそれぞれの位置について、位置において、厚さ仕様と、測定された厚さが厚さ仕様に適合するときに測定された厚さとの間の差に基づく量だけ、その位置で、厚さ仕様に向かう方向に形状変化を遅らせることを含む、反復的に変化させることと、コンピュータ支援設計プログラムにより、1つ以上のコンピュータ制御製造システムを使用して、物理構造の製造で用いるモデル化されたオブジェクトの3次元形状を提供することと、を含む、1つ以上の方法(及びデータ処理装置に動作を実行させるように動作可能なコンピュータプログラムを明確に符号化する1つ以上の非一時的コンピュータ可読媒体)で具体化することもできる。
【0015】
反復的に変化させることは、1つ以上の設計基準に従って、設計空間内のモデル化されたオブジェクトの3次元形状とトポロジとの両方を反復的に変化させることを含み得、修正は、ジェネレーティブ設計による3次元形状の現在のバージョンにおける複数の位置の各位置について、測定された厚さが厚さ仕様に適合しないとき、位置で、厚さ仕様に向かう方向に形状変化を強制することを含み、任意選択で、強制は、厚さ仕様と位置での測定された厚さとの間の差に基づく量だけ、厚さ仕様に向かう方向に形状変化を強制することを含む。
【0016】
修正は、ジェネレーティブ設計による3次元形状の現在のバージョンにおける複数の位置の各位置について、遅らせた形状変化または強制された形状変化のいずれかを使用して、位置で予想される厚さの変化を推定することと、位置での厚さの推定した変化を使用して、遅らせた形状変化または強制された形状変化のいずれかを調整することと、を含み得る。
【0017】
第2のセットは、第2の1つ以上の反復のセットであり得、反復的に変化させることは、第2の1つ以上の反復のセットと、第1の2つ以上の反復のセットとの間で、第3の2つ以上の反復のセットを実行することを含み得、第3の2つ以上の反復のセットの間に、反復的に変化させることは、ジェネレーティブ設計による3次元形状の現在のバージョンにおける複数の位置のそれぞれの位置について、位置における測定された厚さが値の範囲内にあるとき、位置において、厚さ仕様に向かう方向に形状変化を遅らせることであって、値の範囲の一方が、調整制御変数によって設定される、遅らせることと、厚さ仕様に近づけるために、第3の2つ以上の反復のセットにわたって、調整制御変数を変更することと、を含む。
【0018】
反復的に変化させることが、それ以上の強制的な形状変化が必要ないことを保証するために、1つ以上の設計基準が満たされる反復を超えて、第1の2つ以上の反復のセットを拡張することを含み得る。第2のセットは、第2の2つ以上の反復のセットであり得、第2の2つ以上の反復のセットの間に、厚さ仕様に基づいて、数値的評価によって示された量の変更は実行されない。
【0019】
反復的に変化させることは、3次元形状の厚さ値を測定することを含み得、測定は、3次元形状のためのボクセル化シート及びラインスケルトンを準備することと、ボクセル化シート及びラインスケルトンを使用して、3次元形状の厚さ値を定義することと、を含む。厚さ仕様が、最大厚値であり得る。厚さ仕様は、厚さアスペクト比に対応し得、厚さ仕様は、ジェネレーティブ設計による3次元形状の現在のバージョンの一部分の長さに対して、位置で評価された厚さの比率に基づいて、位置で調整され得、一部分が位置を含む。厚さ仕様が、最小厚値であり得る。測定された厚さは、位置の厚さが、(i)最大厚値、(ii)厚さアスペクト比、または(iii)最小厚値、を満たすときに、厚さ仕様に従い得、厚さ測定誤差の推定値に従ってバッファが設定される。さらに、遅らせることが第1の関数によって制御され得、強制することが第2の関数によって制御され得る。
【0020】
本明細書に記載される主題の1つ以上の態様は、その上に格納されたコンピュータ支援設計プログラムの命令を有する非一時的記憶媒体、及びコンピュータ支援設計プログラムの命令を実行して本明細書に記載される1つ以上の方法のいずれかを実行するように構成された1つ以上のデータ処理装置を含む1つ以上のシステムにおいても具現化することが可能である。
【0021】
本明細書に記載された主題の特定の実施形態は、以下の利点のうちの1つ以上を実現するために実施することができる。ジェネレーティブ設計プロセスは、設計中の物理構造のジェネレーティブモデリング中に最小フィーチャサイズの制約を課すことなど、製造に適した形状を生成するように適合させることができる。最小フィーチャサイズ要件は、(i)付加製造プロセスで定義された最小解像度がある場合、付加製造、例えばFFF、(ii)製造プロセス中に部品にかかる過渡力に部品のフィーチャが耐える必要がある場合、除去製造、例えば3軸ミリング、及び(iii)製造プロセスの物理要件により部品のフィーチャサイズが制限されている場合、成形ベースの製造、例えば射出成形、を含めて、製造プロセスの範囲に適用可能である。
【0022】
また、厚さ測定アルゴリズムはまた、設計において厚さが重要な要素である場合(例えば、射出成形のための部品を準備する場合)、設計者やアルゴリズムにフィードバックを与えるために、形状に関する分析として適用することができる。さらに、部品の設計及び/または製造を容易にすることに加えて、薄いフィーチャは、落下またはモデル化されていない座屈相互作用などの予期せぬ負荷によって破損しやすいので、説明したジェネレーティブ設計プロセスによって生成された形状は、製造部品の構造性能を高めることもでき、形状は、例えば映画アニメーション制作で使用するデジタル資産を作成するなど、美的理由から生成することが可能である。説明されたフィーチャサイズ制約により、3Dモデルのシート状領域を、サーフェス欠陥を発生させることなく、正しく滑らかに厚くすることができる。
【0023】
説明された厚み制御(例えば、ジェネレーティブモデリングの間)の処理は、最小厚み制御に限らず、最大厚み制御や厚さアスペクト比制御にも適用可能である。ユーザは、ジェネレーティブ設計問題の設定の一部として、このような厚み制御パラメータを指定するための1つ以上のインタフェース要素を提供することができ、これにより、形状生成プロセスに対するユーザの制御を改善し、より有用な設計をもたらすことができる。これらの設計は、美観(出力形状に対する追加の制御をユーザに提供できる)、物理的性能(最終部品の堅牢性の向上)、及び/または製造コスト(例えば、最小フィーチャサイズ制御により、特殊工具に関連する製造コストを削減)の面で、より有用にすることができる.
【0024】
いずれにせよ、ジェネレーティブ設計による進化する形状の厚みを測定するための記載されたアプローチは、処理リソースの使用削減を提供できる一方で、厚み測定が特定の位置の特定の設計に対して未定義または不正確になるリスクを低減(または排除)できる(厚み制御スキームは、広範囲の3Dモデルにわたって堅牢に機能することができる)。このように、厚み測定は、プログラムの堅牢性を高めるジェネレーティブ設計プロセスの制約定式化に適用することができる。厚み測定は、ジェネレーティブ設計時の無制限ソルブに適用することができる。
【0025】
さらに、厚みに対する制御は、(説明したボクセル化間引きに基づく距離測定を用いるかどうかにかかわらず)、厚み制約を適用するための傾斜スケーリングプロセスを用いることによって、部品の形状及び/またはトポロジの最適化の間に部品設計のバリエーションが不当に制限されるリスクを最小化しつつも達成することが可能である。厚み制約の定式化では、一般的に結果にノイズを与える計算である曲率の測定が不要なため、生成された3Dモデルのノイズを低減することができる。最後に、厚み制約をフィルタとして実装し、速度フィールドに暗黙的に作用させることができるため、制約は、明示的な制約を組み込んだ最適化の枠組みを必要とせず、より広範に適用することができる。
【0026】
本明細書に記載された主題の1つ以上の実施形態の詳細が、添付の図面及び以下の説明に記述されている。本発明の他の特徴、態様、及び利点が、この説明、図面、及び特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0027】
図1A】フィーチャ厚制御を用いる構造のコンピュータ支援設計を促進するために使用可能なシステムの例を示す。
図1B】フィーチャ厚制御を用いるジェネレーティブ設計のプロセスの例を示す。
図1C】フィーチャ厚制御を用いるジェネレーティブ設計のプロセスにおける反復ループの例を示す。
図2A】3Dモデルの厚さを測定するためのボクセル化間引きに基づく中心サーフェスへの距離のプロセスの例を示す。
図2B】形状の中心軸の例を示す。
図2C】形状の中心サーフェスの近似の例を示す。
図2D】ボクセル化シート及びラインスケルトンの例を示す。
図2E】ボクセル化シート及びラインスケルトンの例を示す。
図2F】3D形状の中心サーフェスに近い骨格点を精密化するレイキャスティング及び極値推定のプロセスを示す。
図2G】3D形状の中心サーフェスに近い骨格点を精密化するレイキャスティング及び極値推定のプロセスを示す。
図2H】符号付き距離フィールドの谷の底部に可能な限り近いボクセルを探索方向に沿って見つけるために使用されるプロセスを示す。
図2I】符号付き距離フィールドの谷の底部に可能な限り近いボクセルを探索方向に沿って見つけるために使用されるプロセスを示す。
図2J図2Eの3次元形状に対する最終的な点スケルトンを示す。
図2K】3Dモデルの厚みを増したレベルセット表現を用いて、3Dモデルのサーフェスにおける厚さ値を生成する例を示す。
図2L図2Eの3次元形状のサーフェスにおけるレベルセット差測定厚の例を示す。
図3A】3Dモデルのボクセル化シート及びラインスケルトン内のボクセルから得られた点の選択的精密化を実行するプロセスの例を示す。
図3B】3Dモデルのレベルセット表現での風上勾配を定義し計算する方法を示す。
図4A】厚さ制約を適用するための傾斜スケーリングプロセスの例を示す。
図4B】厚さ制約を適用するための傾斜スケーリングプロセスの機能制御の例を示す。
図5】クライアントまたはサーバとしてプログラムすることができ、本文書に記載されている技法を実施するデータ処理装置を含むデータ処理システムの概略図である。
【発明を実施するための形態】
【0028】
様々な図面における同様の参照番号及び記号表示は、同様の要素を示す。
【0029】
図1Aは、フィーチャ厚制御を用いる構造のコンピュータ支援設計を促進するために使用可能なシステムの例を示す。コンピュータ110は、プロセッサ112及びメモリ114を含む。コンピュータ110は、ネットワーク140に接続することができる。ネットワーク140は、プライベートネットワーク、パブリックネットワーク、仮想プライベートネットワークなどであり得る。プロセッサ112は、1つ以上のハードウェアプロセッサであり得、それぞれが複数のプロセッサコアを含むことができる。メモリ114は、ランダムアクセスメモリ(RAM)及びフラッシュRAMなどの揮発性及び不揮発性メモリの両方を含むことができる。コンピュータ110は、プロセッサ112上で実行されるプログラム(3次元(3D)モデリング機能を実装し、フィーチャ厚制御((例えば、記載された少なくとも1つのレベルセット法を用いた)トポロジ最適化のための1つ以上のジェネレーティブ設計プロセスの一部として実装され得る)を含む、コンピュータ支援設計(CAD)プログラム(複数可)116を含む)の命令を格納するために、様々なタイプのコンピュータ記憶媒体及びデバイス(これにはメモリ114が含まれ得る)を含むことができる。
【0030】
場合によっては、本文書に記載されたシステム及び技法によって実行される数値シミュレーションは、1つ以上の物理的特性をシミュレートすることができ、1つ以上のタイプのシミュレーションを使用して、モデル化されたオブジェクトの物理的応答(例えば、構造応答)の数値的評価を生成することができる。例えば、有限要素解析(FEA)(線形静的FEAを含む)、有限差分法(複数可)、及びマテリアルポイント法(複数可)を使用することができる。さらに、物理的特性のシミュレーションには、計算流体力学(CFD)、音響/ノイズ制御、熱伝導、計算注入成形、電束または電磁束、及び/または材料固化(成形プロセスでの相変化に役立つ)のシミュレーションが含まれ得る。そのほかに、CADプログラム(複数可)116は、製造中及び/または製造制御機能中のクランプをサポートするために、潜在的に穴及び/または固定具生成技法を実装することができる。
【0031】
本明細書で使用するとき、CADは、プログラムが製造設備とインタフェースをとること、及び/またはプログラムが製造設備を制御すること、が可能であるか否かに関係なく、設計要件を満たす物理構造を設計するために使用される任意の適切なプログラムを指す。したがって、CADプログラム(複数可)116は、コンピュータ支援工学(CAE)プログラム(複数可)、コンピュータ支援製造(CAM)プログラム(複数可)などを含むことができる。プログラム(複数可)116は、コンピュータ110上でローカルに、1つ以上のリモートコンピュータシステム150(例えば、ネットワーク140を介してコンピュータ110によってアクセス可能な1つ以上のサードパーティプロバイダの1つ以上のサーバシステム)のコンピュータ上でリモートから、またはローカル及びリモートの両方で実行することができる。したがって、コンピュータ110でローカルに動作する1つ以上のプログラム116が、負担を軽減させたい処理動作(例えば、ジェネレーティブ設計及び/または物理的シミュレーションの動作)を、1つ以上のコンピュータ150上の1つ以上のプログラム116に実行させることにより、処理動作を「クラウドに」肩代わりさせることができるという点において、CADプログラム116は、2つ以上の別個のコンピュータプロセッサ上で協同的に動作する2つ以上のプログラムであり得る。いくつかの実施態様では、全てのジェネレーティブ設計動作は、ローカルコンピュータ上で実行する形状表現モデラ(例えば、B-Repモデラ)ではなく、クラウド内の1つ以上のプログラムによって実行される。さらに、いくつかの実施態様では、ジェネレーティブ設計プログラム(複数可)は、グラフィカルユーザインタフェースを介したユーザ入力なしで、プログラムによって呼び出されるアプリケーションプログラムインタフェース(API)からクラウドにて実行することができる。
【0032】
CADプログラム(複数可)116は、コンピュータ110の1つ以上の入力デバイス118(例えば、キーボード及びマウス)を使用して操作することができるユーザインタフェース(UI)122を、コンピュータ110のディスプレイデバイス120上に提示する。図1Aでは別個のデバイスとして示されているが、ディスプレイデバイス120及び/または入力デバイス118はまた、互いに一体化していてもよく、及び/またはタブレット型コンピュータなどのコンピュータ110と一体化していてもよい(例えば、タッチスクリーンが、入力/出力デバイス118、120となり得る)ことに留意されたい。さらに、コンピュータ110は、仮想現実(VR)及び/または拡張現実(AR)システムを含むか、またはその一部であることができる。例えば、入力/出力デバイス118、120は、VR/AR入力グローブ118a及び/またはVR/ARヘッドセット120aを含むことができる。いずれの場合も、ユーザ160は、CADプログラム(複数可)116とインタラクトして3Dモデル(複数可)を作成及び修正し、これは3Dモデルドキュメント(複数可)130に格納され得る。
【0033】
図1Aに示す例では、3Dモデル132は、高度なコンサルティングロッカーのジェネレーティブ設計によるモデルであり、本文書に記載されたシステム及び技法を採用して、モデル132の任意の部分の最小厚を少なくとも5mmの厚さに制限する反復ジェネレーティブモデリングプロセスを使用して生成されている。ジェネレーティブモデリングプロセスは、初期の3Dモデル、つまり開始形状(または「シードジオメトリ」)を入力として受け取り得る。いくつかの実施態様では、シードジオメトリは、保存ボディ134A、134B、134C、134Dなどの1つ以上の保存領域を含む。境界の制約を、そのような保存領域に関して定義することができ、形状最適化(及び任意選択でトポロジ最適化)のための開始形状を、保存領域の凸包として形成するか、またはユーザが指定することができる。入力保存領域は、接続されていないモデル化されたソリッドまたはサーフェス(例えば、モデル化されたソリッドのユーザ特定面)にすることができ、ジェネレーティブ設計プロセスが、図1Aの例などにおいて、入力保存領域を接続する新しい3Dジオメトリを生成するために使用される。一般に、ジェネレーティブ設計の設計空間は、入力モデルの境界ボリュームまたは凸包を決定することによって取得することができ、または、別の技法を使用して、形状及び/またはトポロジの最適化中に、パーツがその内部で設計される空間のボリュームである設計空間を取得することができる。場合によっては、ユーザが設計空間を明示的に指定することもある。
【0034】
いくつかの実施態様では、ユーザ160は、開始3Dモデルから所望の3Dモデルを生成するように、ジェネレーティブ設計プロセスのトポロジ最適化問題を定義することができ、または入力を、特定の開始3Dモデルがない設計空間とすることができる。一般に、入力設計空間は自動的に生成されるか、またはユーザによって指定され得る。ジェネレーティブ設計プロセス自体が、設計空間内に開始ジオメトリを生成できることに留意されたい。例えば、1つ以上のシードモデルをジェネレーティブ設計プロセスへの入力として使用して、ジェネレーティブ設計のトポロジを修正するために、形状進化の開始時に穴を導入することができる。
【0035】
いくつかの実施態様では、モデル化されたオブジェクトの形状(及び任意選択でトポロジ)は、生成されるモデル化されたオブジェクトの厚さを制御するために使用される厚さ値を測定する効率的で堅牢なプロセスを採用したジェネレーティブ設計プロセスまたはジェネレーティブモデリングを使用して生成される。いくつかの実施態様では、厚さを測定するプロセスは、ジェネレーティブ設計中に厚さを制御するコンテキスト以外で使用される。例えば、厚さ測定プロセスは、例えば、付加製造または射出成形製造の準備ソフトウェアで用いるために、ディスプレイ120上のUI122でパーツの厚さの視覚化するのに使用することができる。
【0036】
いくつかの実施態様では、モデル化されたオブジェクトのトポロジ及び形状は、例えば、モデル化されたオブジェクトの数値シミュレーションによって生成される数値的評価から作成した移流速度の局部的なフィルタリングを使用して、パーツの厚さの仕様に近づくと形状変化が緩やかになるスケーリングランプで強制された厚さの制約を採用するジェネレーティブ設計プロセスまたはジェネレーティブモデリングを使用して生成される。いくつかの実施態様では、厚さの仕様に違反すると形状変化も強制される。一般に、形状及び/またはトポロジの最適化中に厚さ制御(例えば、最小厚制約)を使用することで、物理構造の製造を促進する設計の最終形状を生成するようにジェネレーティブ設計プロセスを導くことができ、これは、効率的で堅牢なアルゴリズムであって、ジェネレーティブ設計ソルバが、より少ない材料及び/またはより複雑でない設計を使用して所望の物理的特性を達成する設計結果を見つけるのに役立ち得るアルゴリズムを使用して行うことができる。
【0037】
したがって、CADプログラム(複数可)116は、少なくとも1つのジェネレーティブ設計プロセスを実施することができ、これにより、CADプログラム(複数可)116は、設計目標(複数可)及び設計制約(複数可)、つまり設計基準に基づいて、3Dモデル(複数可)の1つ以上の部分(または3Dモデル全体)を自動的に生成することが可能になり、その場合、幾何学的設計がシミュレーションフィードバックに基づいて(例えば、数値、物理シミュレーションに基づいて)反復的に最適化され得る。場合によっては、複数の3Dモデルを、1つ以上のジェネレーティブ設計プロセスによって共同作成することができ、組み立てて新しい3Dモデルを形成することができる。本明細書で使用する場合、「最適化」(または「最適条件」)とは、全ての可能な設計のうちの最良のものが全ての場合において達成されることを意味するのではなく、利用可能な処理リソースが与えられ、割り当てられた時間内に生成できる可能な設計の有限集合から、最良の(または最良に近い)設計が選択されることを意味することに留意されたい。
【0038】
設計基準は、ユーザ160によって、または別のパーティによって定義され、CADプログラム(複数可)116にインポートされ得る。設計基準には、物理シミュレーション/物理的応答シミュレーションの有無にかかわらず、反復数値シミュレーションプロセスを使用して形状(及び任意選択でトポロジ)の進化を推進する幾何学的目標が含まれてもよい。設計基準には、また、3Dモデルの構造を進化させるための物理的目標が含まれてもよい。例えば、幾何学的目標は、3Dモデルの疑似物理的応答に対応してもよい。いくつかの実施態様では、ジェネレーティブ設計プロセスは、物理構造の使用中の荷重ケース(複数可)を指定できる境界条件に関連付けることが可能な構造ジェネレーティブ設計プロセスにすることができる。場合によっては、境界条件は、圧力及び速度の境界条件であり得る。いくつかの実施態様では、設計基準には、個々のパーツの構造的整合性制約(例えば、パーツの使用中に予想される構造荷重の下でパーツが破損してはならないという要件)と、より大きなシステムによって課せられる物理的制約(例えば、使用中にシステム内の他のパーツ(複数可)と干渉しないように、パーツが指定されたボリューム内に含まれているという要件)とが含まれ得る。
【0039】
様々なジェネレーティブ設計プロセスを使用することができ、これにより、3Dモデルの少なくとも一部分の形状及びトポロジを最適化することができる。CADプログラム(複数可)116による3Dモデル(複数可)の幾何学的設計の最適化には、トポロジ最適化が含まれ得る。これは、設計上の制約(例えば、制約としてのボリュームの構造的コンプライアンス)を受ける目的関数を最小化することにより、材料の最適な分布を決定する軽量化の方法である。トポロジ最適化には、密度ベースのアプローチと境界ベースのアプローチとの2つの主要なカテゴリがある。密度ベースのアプローチでは、ペナルティ付きの固体等方性材料(SIMP)法などで、パーツのボリュームを離散化し、各離散セルに密度を割り当てる。そして、制約を受ける目標(複数可)を最小限に抑えながら、密度をソリッド及びエンプティへと向かわせる。境界ベースのアプローチでは、代わりに、レベルセット法などで、ソリッドパーツの外部インタフェースの形状を追跡し、制約が満たされかつ目標(複数可)が最小化されるように境界を動かす。
【0040】
いくつかの実施態様では、ジェネレーティブ設計によるモデル化されたオブジェクトの3D形状は、オブジェクトのジェネレーティブモデリング中に使用されるレベルセット表現を有する。トポロジ最適化を使用して、ジェネレーティブ設計によるオブジェクトの3D形状を変更して、数値シミュレーション評価に基づいた形状変化速度に従ってレベルセット表現を更新できる。レベルセット表現法を使用して、トポロジ最適化中に、モデル化されたオブジェクトの形状の境界を追跡することができる。この方法は、境界の正確な知識を提供し、再メッシュの必要なくサーフェスが進化する際のトポロジ変化を可能にするという利点を持つ。いずれの場合も、形状合成プロセスは、3Dモデリング用のCADプログラム(複数可)116で採用されているものとは異なるジオメトリの表現を使用して実行できる(多くの場合、実行されることになる)ことに留意されたい。例えば、CADプログラム(複数可)116は、入力ジオメトリ134A、134B、134C、134Dに対してB-Repモデルを使用することができるが、一方(例えば、CADプログラム(複数可)116における)ジェネレーティブ設計プロセスのジオメトリ生成エンジンは、ボクセルまたは四面体メッシュに埋め込まれたレベルセット関数を採用することができる。
【0041】
ユーザ160がジェネレーティブ設計による3Dモデル132に満足すると、3Dモデル132は3Dモデルドキュメント130として保管され、及び/またはモデルの別の表現(例えば、製造プロセスのツールパス仕様)を生成するために使用され得る。これは、ユーザ160による要求に応じて、またはジェネレーティブ設計による3Dモデル132を製造機械、例えば、付加製造(AM)機械(複数可)及び/または除去製造(SM)機械(複数可)170、または他の製造機械類に送るなどの別のアクションに対するユーザの要求に照らして、行うことができる。これらの機械は、図示のように、コンピュータ110に直接接続するか、またはネットワーク140を介して接続することができる。これは、生成された3Dモデルを(例えば、付加製造プロセスに関連する考慮事項に基づいて)さらに処理し、その3Dモデルを製造のための電子ドキュメントにエクスポートするために、ローカルコンピュータ110上で、または外部で、例えばクラウドで実行されているクラウドサービスの呼び出しに基づいて実施される後プロセスを含むことができる。電子ドキュメント(簡潔にするために単にドキュメントと呼ぶ)はファイルにすることができるが、必ずしもファイルに対応しているわけではないことに留意されたい。ドキュメントは、他のドキュメントを保持するファイルの一部、当ドキュメント専用の単一のファイル、または複数の連携されたファイルに保管され得る。さらに、ユーザ160は、後で使用するために3Dモデルをセーブしまたは送信することができる。例えば、CADプログラム(複数可)116は、生成された3Dモデルを含むドキュメント130を保管することができる。
【0042】
CADプログラム(複数可)116は、ドキュメント135(適切な形式のツールパス仕様を有する)をAM及び/またはSM機械170に提供して、3Dモデル132の少なくとも一部分に対応する物理構造を生成することができる。AM機械170は、粒状技術(例えば、粉末床溶融結合(PBF)、選択的レーザ焼結(SLS)及び直接金属レーザ焼結(DMLS))または押出技術(例えば、溶融フィラメント製造(FFF)、金属堆積)などの1つ以上の付加製造技術を使用することができる。場合によっては、AM機械170は、物理構造を直接構築し、場合によっては、AM機械170は、物理構造を鋳造または鍛造するのに使用するための型を構築する。
【0043】
SM機械170は、製造プロセスで使用される多軸、マルチツールミリングマシンなどのコンピュータ数値制御(CNC)ミリングマシンであり得る。例えば、CADプログラム(複数可)116は、様々な加工作業に使用可能な複数のツール(例えば、様々なサイズ及び形状の超硬ソリッド丸ツール、ならびに金属インサートを受けて様々な切断面を作成する様々なサイズのインサートツール)を含む工作機械システム170のCNC命令を生成することができる。したがって、いくつかの実施態様では、CADプログラム(複数可)116は、様々な切削ツールなどを使用する物理構造の製造で用いるために、対応するドキュメント135(適切な形式のツールパス仕様、例えば、CNC数値制御(NC)プログラムを有する)をSM機械170に提供することができる。ミリングプロセスでは、ミリングマシンがパーツをしっかりと保持できなければならず、回転ビットが干渉せずに材料表面にアクセスできなければならないため、製造できる形状の種類が制限される可能性があることに留意されたい。考慮すべきその他の重要な考慮事項は、材料除去中のパーツの振動と、ミリングプロセスによるビット自体への応力である。
【0044】
CADプログラム(複数可)116によって使用される形状及び/またはトポロジ最適化プロセスは、構造の部分の最小厚を確保することにより、及び/または構造の設計の複雑さを低減することにより、最適化されたジオメトリソリューションが直接製造されるのを妨げる障壁、または下流の設計活動において別の方法で利用されるのを妨げる障壁を低減しまたは除去することができる。したがって、制作される構造の性能要件が確実に満たされるようにすることで、AM及び/またはSMプロセスによる製造を促進し、その一方では自動設計プロセスで合成されるジオメトリのコスト及び製造性をも考慮することができる。これは、効率的で堅牢なアルゴリズムであって、ジェネレーティブ設計ソルバが、より少ない材料及び/またはより複雑でない設計を使用して所望の物理的特性を達成する設計結果を見つけるのに役立ち得るアルゴリズムを使用して行うことができる。
【0045】
さらに、いくつかの実施態様では、CADプログラム(複数可)116は、製造の第1の段階において、例えば、直接AMを使用して、及び/または鍛造及び/または鋳造の方法を使用して、ワークピースを構築する命令を提供し、CADプログラム(複数可)116はまた、完成した構造を形成するために、製造の第2の段階において、例えば、3軸CNCミリングシステムでワークピースを加工する命令、すなわち荒削り及び/または仕上げ加工するための命令を提供する。一般に、様々な異なる製造システム及び技法を単独でまたは組み合わせて使用して、最終構造を生成することができ、CADプログラム(複数可)116は、本出願に記載されているシステム及び技法を使用して設計されたパーツを製造するために、これらの様々なシステムの1つ以上のためのツールパス仕様135を生成する適切なアルゴリズムを含むことができる。
【0046】
さらに、一部の実施態様では、物理的な製造を伴わない。本明細書に記載されているシステム及び技法は、任意の適切な3Dモデリングソフトウェアに適用可能である。したがって、いくつかの実施態様では、CADプログラム(複数可)116は、3Dモデル132を、デジタルプロジェクタ174または他の高解像度ディスプレイデバイスなどによる視覚表示に適した形式のドキュメント165(例えば、映画配信用のデジタルシネマパッケージ(DCP)165)にレンダリングするアニメーション制作プログラム(複数可)であってもよい。他の用途も可能である。
【0047】
それにもかかわらず、様々な実施態様において、システム100のCADプログラム(複数可)116は、本文書に記載されているように、1つ以上のジェネレーティブ設計プロセスを実施する。ジェネレーティブ設計プロセスは、最適な幾何学形状、トポロジ、またはその両方を得ようとする。例えば、ジェネレーティブ設計プロセスでは、
【数1】

を最小化して
(s,u(s))=0i=1,...,n (2)
となるようにする、という制約を受ける性能関連の目的関数を最小化することにより、代替設計の中から最適な幾何学形状を探す。ただし、sはドメインの幾何学形状に関連する設計変数のベクトルであり、uはsによって決まる状態変数(例えば、変位)のベクトルである。追加の制約(例えば、平衡)は、集合gによって表される。簡単にするために、ここでは等式制約が想定されている。式(1)を最小化するために使用される数理計画法は、勾配ベースまたは非勾配ベースにすることができる。勾配ベースの方法は(非勾配ベースの方法とは異なり)、通常、設計感度に関連するより多くの情報、例えば、

【数2】

を使用する。これは、設計変数に関する性能に関連した目的関数の導関数である。レベルセットベースのトポロジ最適化手法では、sはソリッド領域の境界を表す。
【0048】
図1Bは、フィーチャ厚制御を用いるジェネレーティブ設計のプロセスの例を示す。モデル化されたオブジェクトの設計空間と1つ以上の設計基準とが、ジェネレーティブ3Dモデルの作成で用いるために、例えば、CADプログラム(複数可)116によって取得される(180)。モデル化されたオブジェクトの設計空間は、パーツがその内部で設計されることになるボリュームである。設計空間には、オブジェクトの3Dトポロジの1つ以上の外形の初期仕様を含む境界ボリュームが含まれ得る。上記のように、設計空間は、記載されたジェネレーティブ設計プロセスの最適化ドメインのサブスペースとして機能する、CADプログラム(複数可)116で設計された3Dモデル(複数可)、またはCADプログラム(複数可)116にロードされた3Dモデル(複数可)、及び/またはジェネレーティブ設計ジオメトリ制作の境界条件を指定するために使用される入力領域(例えば、保存ボディ及び/または保存サーフェス)のセット、例えば、UI122などのユーザインタフェースを介してユーザによって選択されて、より大きな3Dモデルまたは別個の3Dモデル(複数可)で他の構成要素(複数可)との接続点(複数可)として使用するために保存されるサブ領域(複数可)を指定するB-Rep(またはその面)、を含むことができる。
【0049】
設計基準には、オブジェクトの設計目標(複数可)及び設計制約(複数可)が含まれ得る。設計目標には、廃材の最小化、パーツ重量の最小化、及びパーツのコンプライアンス、応力、またはその他の固有特性の最小化が含まれ得るが、設計目標は、これらに限定されず、形状合成プロセスをより良い設計に向けて推進するために使用される。必須ではないが、設計目標は、設計のシミュレーション(線形静的、流体力学的、電磁的なシミュレーションなど)に基づいているのが一般的である。設計制約には、生成される任意の設計で満たされるべき様々な幾何学的特性及び物理的特性または物理的挙動(個々のパーツまたはアセンブリ全体についての要件も認められる)が含まれ得、例としては、最大質量、荷重下での最大たわみ、最大応力などがある。
【0050】
設計基準には、また、形状の幾何学的目標と幾何学的制約とが含まれ得る。幾何学的制約は、例えば、製造しやすい形状を提供するために、形状の特定の特性が確実に実現されるように、ユーザによって、またはCADプログラム(複数可)116から、提供することができる。例えば、幾何学的制約は、生成される形状に微細なフィーチャがないことを確実にするように定義することができる。入力ジオメトリは、システムの他のパーツへのインタフェースを構成するものとして設計に存在すべきである保存領域の詳細を含むことができ、または、境界条件(例えば、機械的負荷及び機械的制約)が適用されるべきである場所を特定することができる。
【0051】
さらに、設計パラメータと設計変数との様々な組み合わせを使用することにより、様々なジェネレーティブ設計プロセスを定式化することができる。いくつかの実施態様では、設計パラメータは、例えば、システム100内のCADプログラム(複数可)によって利用可能にされる異なるジェネレーティブ設計合成法の中から選ばれたものなど、UI122を介して受け取られる様々なタイプの入力を含むことができる。いくつかの実施態様では、利用可能なジェネレーティブ設計合成法は、トポロジ最適化のための基本的なレベルセット法を提供するレベルセットベースのトポロジ最適化を含むことができる。他のジェネレーティブ設計合成法も可能であり、システム100内のCADプログラム(複数可)によって提供することができる。設計パラメータと設計変数との異なる組み合わせが、例えば、ユーザ160からの入力に応答して、CADプログラム(複数可)116によって使用され得る。例えば、ユーザ160は、異なるジェネレーティブ設計合成法を選択して、単一の3Dモデル内のそれぞれ異なる設計空間内で使用することができる。
【0052】
得られた(180)1つ以上の設計基準には、ジェネレーティブ設計によるパーツから製造されることになる物理構造のための1つ以上の使用中の荷重ケース(例えば、1つ以上の使用中の荷重ケースを指定する1つ以上の境界条件)が含まれ得る。1つ以上の使用中の荷重ケースは、数値シミュレーションのための設定、例えば、ジェネレーティブ設計されているパーツの最適化された3Dトポロジで使用されるFEAモデル中の要素の密度に関連付けることができる。ただし、本明細書で使用する「使用中の荷重ケース」とは、一般に、パーツの性能が評価される荷重及び制約の別個のグループを指し、流体流動シミュレーション、電磁(EM)挙動シミュレーション、マルチフィジックスシミュレーションなど、様々なタイプの物理シミュレーションの境界条件のセットに対応する。したがって、様々なタイプの境界条件、例えば、圧力及び/または速度の境界条件を使用できる。
【0053】
一般に、数値シミュレーションの設定には、シミュレートすべき1つ以上の物理的特性、及び実行すべき1つ以上のシミュレーションのタイプ、ならびに潜在的に代理モデリングまたはその他の近似方法が含まれ得る。いくつかの実施態様では、数値シミュレーションのタイプは、プログラムの全ての使用に対して事前定義されているか、またはジェネレーティブ設計プロセスが開始されたプログラムの特定のコンテキストに与えられている。さらに、数値シミュレーションの設定は、実行すべき数値シミュレーションのタイプに関連する荷重条件及び/または他の物理的環境情報の少なくとも1つのセットを含むことができる。
【0054】
最後に、得られた(180)1つ以上の設計基準は、モデル化されたオブジェクトの厚さ仕様を含むことができる。場合によっては、厚さ仕様は、最小厚値であり、生成されることになる3Dモデルの最小許容厚を示す。場合によっては、厚さ仕様は、最大厚値であり、生成されることになる3Dモデルの最大許容厚を示す。場合によっては、厚さ仕様は、厚さアスペクト比に対応し、これは、局所的な厚さと、その局所的な厚さの領域における3Dモデル部分の長さとの最小許容比率を示す。
【0055】
ジェネレーティブ設計空間及び設計基準が指定されたので、1つ以上のジェネレーティブ設計プロセスを使用して、例えばCADプログラム(複数可)116により、1つ以上の3Dモデル(複数可)が制作される(185)。いくつかの実施態様では、制作された3Dモデル(複数可)は、上記のように、付加製造、除去製造(例えば、2.5軸除去製造プロセスを使用して製造される)、及び/または他の製造システム及び技法で用いるために設計することができる。例えば、CADプログラム(複数可)116によって実行される1つ以上のジェネレーティブ設計プロセスは、トポロジ最適化の境界ベースのジェネレーティブ設計プロセス(例えば、レベルセット法を使用する)、密度ベースのジェネレーティブ設計プロセス(例えば、SIMP法を使用する)、またはその両方を含み得る。
【0056】
いくつかの実施態様では、1つ以上のジェネレーティブ設計プロセスでは、記載されたレベルセット法を使用することができる。ただし、式(1)、(2)、及び(3)からのsは、背景グリッドまたはメッシュ上のサンプル値として保管することができる1つ以上のレベルセットを使用して暗黙的に表されるソリッド領域の境界を表す。符号付き距離フィールドは、このようなレベルセット関数の例であり、ここで、ゼロ輪郭は形状境界を表し、関数の正の値は、材料ドメインの外部にある点に対応し、その点と最も近いドメインサーフェスとの間の距離を定量化するものであり、負の値は、材料ドメインの内部にある点に対応し、その点と最も近いドメインサーフェスとの間の距離を定量化するものである。レベルセットベースのトポロジ最適化法では、構造の外形はレベルセット関数の輪郭で表され、形状及び構成の変化がレベルセット関数値の変化で表される。
【0057】
いずれにせよ、3Dモデル(複数可)の制作185は、例えば、CADプログラム(複数可)116により、モデル化されたオブジェクトのジェネレーティブ設計による3D形状を、厚さ仕様に基づいて、フィーチャ厚制御を用いて反復的に修正することを含む。これには、3D形状のジオメトリと3D形状のトポロジとの両方を修正することが含まれる(例えば、穴または空隙を追加して、引き裂かずに、連続変形に影響されないサーフェスの空間的性質を修正し、それによって3Dモデル内の形状要素の境界と接続の仕方とを変更する)。いくつかの実施態様では、3Dモデル(複数可)の制作185は、ボクセル化シート及びラインスケルトンを使用して3Dモデルの厚さを測定することを含む。いくつかの実施態様では、3Dモデル(複数可)の制作185は、傾斜スケーリング(ramped scaling)ベースの厚さ制約の使用、厚さ測定へのボクセル化シート及びラインスケルトンのアプローチの使用、または厚さ測定への別のアプローチの使用を含む。いずれの場合も、結果は、例えば、製造プロセスに関連して使用するための、少なくとも1つのジェネレーティブ3Dモデルになる。
【0058】
ジェネレーティブ設計処理の結果は、例えば、ディスプレイデバイス120上のUI122において、設計を受け入れるかまたは拒否する選択肢190とともに、ユーザに提示され得る。例えば、ジェネレーティブ設計処理185によって制作された3Dモデルは、UI122にてユーザ160に提示することができる。いくつかの実施態様では、ユーザは、各設計検討について、最終設計、または様々な以前の反復のいずれかから選択することができる。いくつかの実施態様では、ジェネレーティブ設計プロセスからの結果として生じる2つ以上の3Dモデルを、例えば、必要となる外部支持構造の量、または他の様々な関心のある量のいずれかに基づいて、設計の複雑さ対製造コストのトレードオフ分析とともに、ユーザに提示することができる。トレードオフ分析は、ユーザ160が、提示された3Dモデルのうちの1つ以上の3Dモデルを受け入れるかまたは拒否するのを支援することができる。
【0059】
設計が拒否された場合、図1Bのプロセスは、例えばCADプログラム(複数可)116により、新しいジェネレーティブ3Dモデルを制作する際に用いるための新しい設計空間及び/または新しい設計基準を取得する(180)ために戻ることができる。設計が拒否されない(190)となれば、図1Bのプロセスは、例えば、CADプログラム(複数可)116により、物理構造の製造用にジェネレーティブ設計による形状及び/またはトポロジをオブジェクトの3Dモデルに提供する(195)ことができる。提供195は、製造システムを使用してオブジェクトに対応する物理構造を製造する際に使用するために、3Dモデルをパーマネントストレージデバイスへ送出すること、またはセーブすることを含み得る。いくつかの実施態様では、提供195は、例えば、CADプログラム(複数可)116により、3Dモデルを使用して、コンピュータ制御製造システム(複数可)のためのツールパス仕様を生成する(195A)ことを含み、例えば、CADプログラム(複数可)116により、ツールパス仕様を使用して、コンピュータ制御製造システム(複数可)で、オブジェクトに対応する物理構造の少なくとも一部分を製造する(195B)ことを含む。いくつかの実施態様では、提供195は、生成された(195A)ツールパス仕様を使用して、製造機械で、物理構造用の金型を製造する(195B)ことを含むことができ、この場合、3Dモデルは、除去製造プロセスを使用して製造されるようになる金型のモデルであり得る。
【0060】
提供される(195)3Dモデルは、ジェネレーティブ設計合成法によって制作された(185)3Dモデルまたはジェネレーティブ設計出力の後処理されたバージョンであり得る。いくつかの実施態様では、境界ベースのジェネレーティブ設計プロセスからの出力から抽出され得るポリゴンメッシュ、または境界ベースのジェネレーティブ設計プロセスから直接取得されるジェネレーティブ設計データを、例えば、CADプログラム(複数可)116により、境界表現(B-Rep)モデル及び/またはパラメトリックフィーチャモデルに変換することが可能である。例えば、ジェネレーティブ設計データは、境界ベースのジェネレーティブ設計プロセスから直接取得されたレベルセット距離フィールドデータであり得る。境界表現モデルまたはパラメトリックフィーチャモデルは、スケッチジオメトリ及びパラメトリックフィーチャとして編集可能であり得る。例えば、いくつかの実施態様では、提供される(195)前に、ジェネレーティブ設計合成法によって制作された3Dメッシュモデルを、防水型のB-Rep3Dモデルに変換することができる。
【0061】
図1Cは、フィーチャ厚制御を用いるジェネレーティブ設計のプロセスにおける反復ループの例を示す。この例は、図1Bの定義されたプロセス185で実行されるトポロジ最適化に相当する。モデル化されたオブジェクトの現在の数値的評価を生成するために、1つ以上の設計基準に従って、オブジェクトの現在の3Dモデル(例えば、3D形状の暗黙的サーフェスのレベルセット表現)に対して、数値シミュレーションが実行される(185A)。上記のように、設計基準には、使用中の荷重ケースまたはその他の要件(例えば、圧力と速度の境界条件、トポロジ進化の幾何学的目標など)を定義できる境界条件を含めることができ、現在の数値的評価を、モデル化されたオブジェクトの物理的応答(例えば、構造応答)に対するものとすることができる。さらに、上記のように、様々なタイプの数値シミュレーションを実行することができる。例えば、FEAシミュレーションでは、現在のバージョンの3Dモデルのボリューム内のあらゆる場所でひずみエネルギーを計算することができる。いずれの場合も、現在の3Dモデルの数値シミュレーションにより、現在の数値的評価が生成され、次いでこの評価を使用して、設計基準を考慮して、現在の3Dモデルの形状及びトポロジを変更することができる。
【0062】
さらに、現在の3Dモデルの厚さが測定される(185B)。厚さ測定185Bは、現在の3Dモデル上またはそのモデル中の多くの異なる位置で厚さ値を作成することができ、必ずしも数値シミュレーション185Aの後に(または数値シミュレーション185Aとは別に)行う必要がないことに留意されたい。いくつかの実施態様では、厚さ測定185Bは、数値シミュレーション185Aと統合されている。さらに、厚さ測定185Bでは、数値シミュレーション185Aに応答して変更可能である、現在の3Dモデルの各サーフェス位置で厚さ値を生成することができ、例えば、サーフェス上の各点について、形状の局所的な厚さを推定することができる。いくつかの実施態様では、以下の厚さ測定法の1つ以上が使用される。すなわち、(1)レイキャスティング法、(2)最大適合球探索、(3)ローリングボール法、及び(4)ラプラシアンに基づく中心軸への距離の計算である。
【0063】
いくつかの実施態様では、ボクセル化間引きに基づく中心サーフェスへの距離のプロセスが使用される。このようなプロセスでは、現在の3Dモデルの3次元形状に対して、ボクセル化シート及びラインスケルトンが準備される(185B-1)。場合によっては、これには、保存領域を接続するループまたはラインスケルトン部分を削除しない適切な浸食アルゴリズムを使用して、シートスケルトン及びクリティカルラインスケルトンを単一パスで準備する(185B-1)ことが含まれる。場合によっては、これには、図2Aに関連して以下に記載されるような、2ステップのプロセスでシートスケルトン及びクリティカルラインスケルトンを準備する(185B-1)ことが含まれる。また、厚さ値を生成するために使用されるボクセルの寸法/解像度は、数値シミュレーション185A中に使用される任意のボクセルの寸法/解像度と同じであってもよく、または異なっていてもよいことに留意されたい。
【0064】
さらに、ボクセル化シート及びラインスケルトンを使用して、3次元形状の厚さ値を定義することができる(185B-2)。これには、ボクセル化シート及びラインスケルトンを、3次元形状の中心サーフェスに近い点に変換し、これらの点を用いて厚さ値を生成することが含まれ得る。例えば、骨格シートの各ボクセルについて、その骨格シートのボクセルの中心よりも3次元形状の真の中心サーフェスに近い点を、以下にさらに詳しく記載するように、符号付き距離フィールドのようなレベルセット表現を用いた近似を行うことによって見つけることができる。いくつかの実施態様では、これらの精密化された骨格点を使用して厚さ値を生成することは、図2A図2Lに関連して以下でさらに詳細に記載するように、厚さが必要とされるサーフェス点に最も近い骨格点を探索することと、次に、その最も近い骨格点の半径(または半径の2倍)をサーフェス点での厚さとして使用するか、またはサーフェス点とその最も近い骨格点との間の距離(または距離の2倍)を計算するかのいずれかと、を含む。
【0065】
3Dモデルの3D形状は、厚さ制約を考慮して更新される(185C)。一般に、数値シミュレーション185Aからの数値的評価は、設計基準に関して3Dモデルを改善するために、3Dモデルの様々な位置(例えば、3Dモデルの3D形状のサーフェス上の位置)でいくらかの変化量を示し、この表示が形状更新185Cのための基準として使用される。例えば、いくつかの実施態様では、モデル化されたオブジェクトのジェネレーティブ設計による3D形状は、モデル化されたオブジェクトの暗黙的サーフェスのレベルセット表現を含み、更新185Cは、現在の物理的評価に基づいて暗黙的サーフェスに対して計算された形状変化速度に従って、レベルセット表現を更新することを含む。例えば、(数値シミュレーションによって求められた)ボリューム内部のひずみエネルギー場を、そのボリュームのサーフェスの速度フィールドに変換し、そして各点の速度によってジオメトリをより最適な形状に移動し、境界の各ピースをその速度に従って移動させることにより、3D形状を移流させて更新することができる。さらに、モデル化されたオブジェクトの3D形状は、シミュレーションのため立方ボクセルのグリッドを使用して3D形状を表現すること、形状更新のために暗黙的形状を使用すること、及び多角形メッシュを使用してジェネレーティブ設計をエクスポートすることなど、様々な処理段階時に異なる形式で表現することができる。
【0066】
いずれの場合も、形状更新185Cでは厚さ制約を考慮に入れる。様々なアプローチを、様々な実施態様で使用することができる。これには、(1)シミュレーション185Aからの数値的評価を3Dモデルの形状/ボリュームのサーフェスの速度フィールドに変換するときに、厚さ仕様を考慮した形状導関数を使用すること、(2)速度フィールドをフィルタリングするための経験則(例えば、サーフェスメッシュに基づく経験則)を用いること、及び(3)感度またはジオメトリのフィルタリングが含まれる。一般に、厚さ制約を適用するには、測定された厚さ値を最適化プロセスにおける何らかの変更、例えば、ジェネレーティブ設計の薄すぎる領域にペナルティを課すこと、及び/または削除することに対応させる必要がある。
【0067】
いくつかの実施態様では、速度フィールド(モデル化されたオブジェクトの現在の数値的評価によって示される変化の量を指定する)が修正され(185C-1)、次に、3Dモデルの形状が、修正された速度フィールドを使用して移流される(185C-2)。一般に、このプロセスは、形状の境界上の各点で測定された厚さを、形状最適化の各反復での速度フィールドの変化に対応させる。少なくとも、修正185C-1は、厚さ仕様に向かう方向への形状変化を(ジェネレーティブ設計による3次元形状の現在のバージョンでの複数の場所のそれぞれで)、測定された厚さが厚さ仕様に従うときに、その場所での厚さ仕様と測定された厚さとの間の差に基づく量だけ、緩やかにすることを含む。例えば、最小厚さ制約の場合、プロセスは、すでに最小フィーチャサイズに近いフィーチャの収縮を緩やかにし、最小フィーチャサイズに達したときに、そのようなフィーチャの収縮を停止することができる。さらに、このプロセスでは、最小フィーチャサイズカットオフよりも小さいフィーチャを大きくすることができる。厚さ制約を適用するための傾斜スケーリングプロセスに関するさらなる詳細は、図4A及び図4Bに関連して以下に提供される。
【0068】
形状修正ループの各反復が完了した後に、プロセスは最終形状への収束をチェックする(185D)。これは、反復回数が、完了すべき形状修正の予め定められた反復回数に相当するとき、及び/または、修正が3D形状をもはや変化させない(または、もはや大幅に変化させない)ため、さらなる反復が3Dモデルを改善しないときのように、暗黙的収束である場合がある。追加的または代替的に、チェック185Dは、現在の3Dモデルが形状及び/またはトポロジ最適化の設計基準を満たしているかどうかを評価することにより、明示的な収束に関して行うことができる。(暗黙的または明示的な)収束185Dが達成されていない場合、最適化ループの別の反復が開始される。(暗黙的または明示的な)収束185Dが達成されると、例えば製造で使用するために、ジェネレーティブ設計によるオブジェクトの3Dモデルが提供される(185E)。
【0069】
図2Aは、3Dモデルの厚さを測定するためのボクセル化間引きに基づく中心サーフェスへの距離のプロセスの例を示す。3次元形状のボクセル化シートスケルトンが計算される(200)。これは、ボクセル化された中心サーフェスを計算するように設計された間引きアルゴリズム(Building Skeleton Models via 3-D Medial Surface/Axis Thinning Algorithms;Lee,Ta-Chih and Kashyap,Rangasami;6,s.l.:Academic Press,Inc.,1994;CVGIP:Graphical Models and Image Processing,Vol.56,pp.462-478などに記載されており、以降で「リーアンドカシャプアルゴリズム」とする)を使用して行うことができる。ボクセル化された中心サーフェスは、3D形状の中心サーフェスの大まかな近似である。概念的には、中心サーフェス(「シートスケルトン」とも呼ばれる)は、形状境界上の2つ以上の最も近い点から等距離にある点の集合である。
【0070】
図2Bは、形状200Aの中心軸の例を示す。この例は、提示を容易にするために2次元であるが、2Dの形状の中心軸は、3Dの形状の中心サーフェスに対応し、2Dの円が3Dの球に置き換えられることが理解されよう。2箇所以上で形状の境界に接し、完全に形状の内側に含まれる円200Bの集合を作成することによって、中心軸を視覚的に見つけることができる。このような円の中心は、形状の境界上の2点から等距離にある点であるため、内接円の中心200Cの集合は、形状の中心軸に相当する。同様に、(2箇所以上で3D形状の境界に接している)球の集合は、3D形状の中心サーフェスに相当する。
【0071】
中心サーフェスが確立されると、形状境界の厚さを、境界上のその点に接触する球の直径を調べることによって計算できる。ただし、特に3D形状が、反復最適化プロセスで進化しているとき、及び場合によっては非常に複雑なトポロジを有するとき、計算効率が高く堅牢な方法で3D形状のおおよその中心サーフェスを見つけることは簡単ではない。計算効率の高い方法で高品質の結果を提供する堅牢なアルゴリズムを提供するには、いくつかの要因を考慮しなければならない。
【0072】
第一に、中心サーフェスの近似は、実際の中心サーフェスを適切にカバーするために必要な数の点で構成されるべきである。図2Cは、形状の中心サーフェスの近似の例を示す(提示を容易にするために2Dで表されている)。図2Cでは、形状は実線で表され、実際の中心サーフェスは破線で表され、中心サーフェスの近似は小さな円で表されている。例202Aと202Bとを比較すると、例202Aには、例202Bよりも多くの近似のデータ点(小さな円)があることに留意されたい。したがって、例202Bは、例202Bが依然として十分に中心サーフェスをカバーする中心サーフェスの比較的薄い近似を有するという点において、第1の考察に関して例202Aよりも好ましい。
【0073】
第2の考慮事項は、近似のデータ点は、形状の対応する境界から等距離に配置されるべきであるということである。この結果として、近似のデータ点が実際の中心サーフェスをより正確に追跡するので、例202Cは例202Bよりも好ましい。ただし、第3の考慮事項は、ギャップ/穴または欠落領域がないという意味で、近似は「連続的」であるべきであるというものである。したがって、例202Dは、形状の中心サーフェスに近づけるためのデータ点が欠落している領域を含んでいるため、受け入れられない。これらの考慮事項は、非常に正確で薄い中心サーフェス近似を生成するためにかけられた手間がまた、中心サーフェス近似にギャップ及び穴が残る可能性、またはそれどころか領域が完全に欠落する可能性を高める場合があるという点において、トレードオフを生み出す。
【0074】
このことは、形状及び/またはトポロジ最適化との関連で重要になり得る。ギャップ及び穴を含む中心サーフェス近似を使用すると、表面ノイズを引き起こし、それが制作される3D形状の品質を低下させ、検出されない厚さ制約違反をもたらす可能性がある。欠落領域を含んで中心サーフェス近似を使用すると、ビームが中断し、したがってジェネレーティブ設計プロセスで最適なトポロジを見つけることが妨げられる。さらに、トポロジ最適化中に中心サーフェス近似をベースにした厚さ測定を使用するとき、2つの追加の考慮事項が関係する。
【0075】
いくつかの実施態様では、厚さ測定は、形状の「重要でない」フィーチャを拒否するように設計されており、これにより、アーチファクトが、トポロジ最適化が進むにつれて、時間とともに消えてなくなるのではなく、フリーズされて保持され得る。例えば、機械的コンプライアンスの最小化との関連では、3Dモデルに1つ以上の「指部」が含まれるとき、これは、他の何にも接続せず、そのため荷重経路として機能し得ない形状から突出したものであり、トポロジ最適化プロセスでは、3D形状のこれらの部分を削除すべきであり、厚さ測定プロセスでは、これが発生するのを防ぐ必要はない。さらに、厚さ測定は、現在の3D形状の薄い材料シートの2つの面と、その薄い材料シートのエッジとを区別するように設計することができる。例えば、最小厚さ制約を使用するとき、薄い材料シートの2つの面が互いに近づくのを防ぐ必要があるが、シートのエッジは形状変化の各反復で自由に動ける必要がある。ただし、形状の「重要でない」フィーチャは、厚さ測定プロセスの適用状況によって変わり得ることに留意されたい。いくつかの実施態様では、「重要でない」フィーチャを拒否することは適切ではない場合があるため、熱伝達トポロジ最適化問題(例えば、ヒートシンクの設計)との関連で、または厚さの視覚化もしくはトポロジ最適化以外の他の用途との関連で、厚さ測定のこの態様を排除することが可能である。
【0076】
いずれにせよ、現在の3Dモデルのボクセル化された中心サーフェスを計算するために間引きアルゴリズムを使用することで、ギャップ/穴または欠落領域のない、中心サーフェスの比較的薄い近似を迅速に計算できるという点で、第1及び第3の考慮事項に対処する。間引きアルゴリズムは、滑らかな3D形状を取得し、それを固定サイズのボクセルの離散集合として表すことによって機能する。ボクセルは、薄くされた形状のトポロジが入力形状のトポロジと一致することを保証する一連のルールに従って、形状のサーフェスから連続的に削除される。リーアンドカシャプアルゴリズムの使用により、単一ボクセル幅の「中心軸」のみが残るまで、ボクセルをさらに選り抜く変形形態が提供されることに留意されたい。中心サーフェスは3D空間に埋め込まれた2Dマニホールド(湾曲したサーフェスの集合)であるのに対し、中心軸は曲線(1Dマニホールド)のみで構成されるまでトリミングされる。中心サーフェスと同様に、中心軸は入力形状のトポロジを保持し(穴、ループ、及びビームが全て表現される)、リーアンドカシャプアルゴリズムのこの機能を、いくつかの実施態様で使用することができる。
【0077】
図2Aに戻り、3次元形状に対するボクセル化ラインスケルトンが計算される(205)。これは、リーアンドカシャプアルゴリズムまたは別の間引きアルゴリズムを使用して実行できる。いくつかの実施態様では、ボクセル化ラインスケルトンは、3次元形状の異なる部分を互いに接続する1つ以上のラインセグメントを含む。例えば、1つ以上の保存領域があるとき、1つ以上の保存領域が結果に含まれることが要求されるボクセル化ラインスケルトンを計算する(205)ことができ、したがって生成されたラインスケルトンは1つ以上の保存領域のそれぞれと接続されることになる。保存領域がないとき、計算された(205)ボクセル化ラインスケルトンは、トポロジの他の部分を互いに接続する任意の部分を維持するように、端を持つ任意の枝上の全てのボクセルを浸食した後に残るラインスケルトンであり、すなわち、ループがトポロジの異なる部分を接続するため、ループは形状をまとまりのある全体として維持するために必要とされ、一方で、設計のうちの指部または他の「重要でない」フィーチャを形成するラインスケルトンの領域は削除される。
【0078】
図2Dは、3次元形状206のボクセル化シートスケルトン206Aの例、及び3次元形状206のボクセル化ラインスケルトン206Bの例を示す。保存領域が1つ以上あるとき、3次元形状のボクセル化シートスケルトンを計算する(200)ときに、これらの保存領域が結果に存在する必要はないことに留意されたい。実際に、そうすると、シートスケルトンが実際の3次元形状の中心サーフェスから外れる可能性がある。したがって、リーアンドカシャプアルゴリズムを使用して、まずボクセルをボクセル化シートスケルトンにまで浸食し、次にこのボクセル化シートスケルトンをボクセル化ラインスケルトンにまで浸食するなど、演算200と演算205とを1つの演算にまとめず、明示的に別々の演算として行うことにより、プロセスの結果の精度を向上させることが可能である。
【0079】
また、いくつかの実施態様では、シートスケルトンにないボクセルがラインスケルトンにあるとき(210)、これらのボクセルは後で使用するために追跡される(215)。いずれにせよ、離れた所にあるボクセルがボクセル化シートスケルトンから除去され(220)、次にボクセル化ラインスケルトンのボクセルがボクセル化シートスケルトンに加えられて(225)、3Dモデルの局所厚さの測定に使用される、3次元形状用のボクセル化シート及びラインスケルトンが形成される。除去220は、3次元形状のボクセル化シートスケルトンのシートエッジに関連するボクセルの除去を伴う場合がある。いくつかの実施態様では、シートスケルトンから浸食されるボクセルの数が調整パラメータであり、その場合、浸食が増えるとエッジの厚さの測定値が増加するため、薄いシートのエッジでの形状変化に対する望ましくない制限が回避される。除去220は、3次元形状のボクセル化シートスケルトンのうちの1つ以上のボクセル化ラインスケルトン部分を形成するボクセルを除去することを含み得る。したがって、現在の形状の「指部」のボクセルを削除することができ、これにより、トポロジ最適化プロセス中に3D形状から不要な突出部を排除することが促進される。
【0080】
図2Eは、ボクセル化シート及びラインスケルトンの別の例を示す。初期のボクセル化シートスケルトン227Aが、3次元形状227に対して(例えば、リーアンドカシャプアルゴリズムを使用して)計算される(200)。シートのエッジ227B及び縮退したラインセグメント227Cに関連する、このシートスケルトン227A内のボクセルが識別され、除去される(220)。骨格シートのエッジを削除すると、シートエッジの測定された厚さが暗黙的に増加する。このことは、シートの内部が収縮してもシートのエッジが収縮するのを防ぐことができないため、最小厚要件を使用したトポロジ最適化との関係においては望ましい(ただし、視覚化アプリケーションに厚さ測定を使用する場合など、一部のコンテキストでは、3Dモデル全体に対して正確な厚さ測定が望まれるため、削除220は行われないことに留意されたい)。骨格シートエッジの除去220はまた、骨格シートのエッジの周りに存在することがあるノイズを低減させる。ベースシートスケルトンに存在するラインスケルトン(複数可)の一部のセグメントは、アルゴリズムのノイズ、または人工突出部227Cなどの、形状の構造にとって重要ではないパーツからの突出部によっても引き起こされる。
【0081】
重要なラインスケルトンセグメントを識別するために、ボクセル化ラインスケルトン227Dが、結果に存在する必要のある各保存ボディ227Eを備えた3次元形状227について(例えば、リーアンドカシャプアルゴリズムを使用して)計算される(205)。したがって、3次元形状227について識別された全てのシートエッジ227B及びラインスケルトンセグメント227Cを取り去ること(220)、ボクセル化ラインスケルトン227Dを加え戻すこと(225)、ならびに最後に保存ボディ227Eを全て除去して最終的なボクセル化シート及びラインスケルトン227Fを生成すること、により、最終的なボクセル化シート及びラインスケルトン227Fを生成することが可能である。
【0082】
いくつかの実施態様では、ボクセル化シート及び/またはラインスケルトンの計算200、205は、計算の数を減らし、したがってプロセスの速度を上げるために、3D形状全体ではなく、測定が必要となる3D形状の領域に対してのみ行われることに留意されたい。例えば、最小厚さ制約を適用するという状況の中では、厚さは、最大値(最小厚値に従って設定)からゼロに至るまでの厚さ値の範囲内で測定されれば十分である。したがって、プロセスを高速化するために、符号付き距離フィールド(SDF)を使用して、測定すべき最大値よりも境界から遠い内部ボクセルの1つ以上の領域を分離し、次に、これらの領域(複数可)を、スケルトン計算、精密化、及びその後の全ての演算のために無視することが可能である。すなわち、中心サーフェス、中心軸などの計算を、任意選択のバッファ量に加えて最小厚仕様の半分よりも3D形状の境界から離れていないという理由から着目した3Dモデルの部分に限定することができる。いくつかの実施態様では、「遠いボクセル」(最小厚の半分に1ボクセルほどを加えたものの負より小さいSDF値に関連付けられるボクセル)のセットが識別され、この遠いボクセルのセットは、間引きアルゴリズムがそれらを取り除くことに反復を費やさないように(保存領域がクリティカルラインスケルトン計算に含まれるのと同様に)ライン及びシートスケルトン計算に含まれるよう要求される。そして、次の手順に進む前に、結果のシート及びクリティカルラインスケルトンから、遠いボクセルが取り去られる。
【0083】
いずれにせよ、間引きアルゴリズムを使用することで、最終的なボクセル化シート及びラインスケルトンが、任意の保存領域の外にある3Dモデルの全ての部分(または全ての関連部分)に、ボクセルの1つ以上の連結集合を確実に提供するが、これらのボクセルの中心は、多くの場合、3Dモデルの中心サーフェスに正確に配置されない。これにより、実際には真の中心サーフェスから同じ距離にある、異なるサーフェスで、異なる厚さの測定値が得られる可能性があるため、実際の中心サーフェスに、より接近して追従する最終的な点のセットを生成するために、精密化プロセスを使用してもよい。
【0084】
図2Aに戻ると、ボクセル化シート及びラインスケルトンは、3Dモデルの中心サーフェスをよりよく近似する点に変換される(230)。いくつかの実施態様では、3D形状の中心サーフェスに近づける点の第1のセットが見つけられ(232)、次に、点の位置値及び/または「半径」値を、その近隣(すぐ隣の点または点の事前定義された距離内の全ての点)またはその近隣及びそれ自体からのデータ値の平均または中央値に変更することによって、第1の点のセットのデータ値が平滑化される(234)。加重平均結果に対して各近隣が与える影響を選択するための重み付けなど、他の平滑化234の操作も可能である。骨格点のこの平滑化234は、最終的な3D形状のサーフェス品質を向上させることができるが、この平滑化は任意選択であり、用途によっては必要ない場合があることに留意されたい。例えば、ノイズの多いデータ値は、アニメーション制作用に生成される3Dサーフェス(複数可)では望ましくないものではない場合があり、増幅されることがある。点の位置は設計空間の座標系にあり、点の「半径」はその位置での厚さの半分に相当し、例えばレベルセット実施態様の場合では、その点での符号付き距離フィールドの負の値に相当することに留意されたい。
【0085】
さらに、いくつかの実施態様では、除去220の前にはボクセル化シートスケルトンになかったボクセル化ラインスケルトンのボクセルが追跡され(215)、これらのボクセルは、精密化が必要ない、または可能ではない(例えば、以下に詳細に記載するように、検出されるべき符号付き距離フィールドのピークがない)点の第2のセット(例えば、これらのボクセルの中心点)を提供する。これらのボクセルは、(例えば、保存領域を接続するため)形状をまとまりのある全体として維持するために必要であり、これらの追加されたラインスケルトンピースが実際には3Dモデルの中心サーフェスの近くにない、いくつかの状況がある。したがって、これらのボクセルを使用して、オプティマイザが保存領域の近くで望ましくない間引きを行うのを防ぐことができる厚さの尺度を提供することができる。
【0086】
上記の(近似のデータ点は、形状上の対応する境界から等距離に配置されるべきであるという)第2の考慮事項に対処するために、骨格シートのボクセルを骨格点位置に変換する(230)ことは、ボクセルによって示される点(例えば、ボクセル中心点)を3D形状の中心サーフェスに近づけるように精密化することを含むことができる。レベルセットベースの実施態様では、レベルセットからの情報を使用して骨格点位置を精密化することができる。いくつかの実施態様では、このプロセスは、線形近似を使用して骨格ボクセルの近傍の符号付き距離フィールドを近似することと、次いで2つのラインセグメントの間の交点を見つけることとを含む。これにより、中心サーフェスに非常に近い近傍点での、位置の推定値と、符号付き距離フィールド値との両方が提供される(実験的には、これは通常、約0.1ボクセル幅まで正確である)。
【0087】
図2Fは、3D形状の中心サーフェスに近い骨格点を精密化するレイキャスティング及び極値推定のための幾何学的コンテキストを示す。入力形状231のボクセル化スケルトン232Aについて考える。アルゴリズムは、骨格ボクセルごとに1回実行される。この例では、強調表示された骨格ボクセル1が対処される。入力形状231の真の中心軸2に非常に近い(かつ開始ボクセルに可能な限り近い)点が求められる。これを行うには、ボクセルの中心(またはボクセル内もしくはボクセルに近い別の点、例えばボクセルの1ボクセル距離内の点)から出発して中心サーフェスに向かって進む方向3に、例えば風上勾配方向に沿って光線を投射することができる。この光線と真の中心軸との交点4は、アルゴリズムの意図した出力である。
【0088】
図2Gは、勾配方向に沿った距離に対する符号付き距離値フィールドのプロットを示す。このプロットでは、x軸は光線に沿った移動距離を表し、Y軸は符号付き距離フィールド値φである。光線の出発点はボクセル(図2Fのボクセル1)の中心点とすることができ、図2Gの点Aに対応する。負の勾配方向に沿って2点(B及びB)をサンプリングすることが可能であり、正の方向に沿って2点(C及びC)をサンプリングすることが可能である。それぞれの点のペアに直線をフィットさせ、それぞれ直線B’及びC’を形成することができる。符号付き距離フィールドがあまり速く変化しない限り、これらの2つのラインセグメントの間の交点234Aは、光線と中心サーフェスとの交点(図2Fの点4)に近い。点Aは、2本のラインB’及びC’のいずれの上にもないことに留意されたい。これは投射光線がボクセルグリッドに対して斜めに発射され(実際のボクセルをサンプリングしていない)、データは全て補間されているためであり、つまり、Aは純粋なデータではなく、その隣接するいくつかの線形結合になることを意味する(符号付き距離フィールドの曲率が高いため、中心サーフェス付近ではトリリニア補間の精度が低下することに留意されたい。つまり、中心サーフェス付近の補間値は、サンプリング点が中心サーフェスの反対側にあることの結果として、通常、過大評価されることを意味する)。したがって、補間を使用しているため、Aが2本のラインのどちらかに収まることはほとんどない。重要な点は、線形補間により、Aよりも中心サーフェスに近い点に到達できることと、同様に線形補間により、符号付き距離フィールドの値をより正確に推定できることとである。
【0089】
いくつかの実施態様では、極値を推定することは、風上勾配の方向または大きさの変化を探すことを含み得る。最大値と最小値とのどちらが求められるかは、線形近似のY軸が半径値(SDF値の負の値)を表すか、それともSDF値を表すかによって決まることに留意されたい。いずれにせよ、推定された符号付き距離フィールド値φは、この点での3Dモデルの厚さの推定値を提供する。出力点はボクセル座標ではなく3D空間にあるため、3Dモデルのサーフェスにマッピングし直すときに、サブボクセルの位置が使用されることに留意されたい。
【0090】
いくつかの実施形態では、この精密化手順は、1D精密化手順を使用して実施される。この1D精密化手順は、探索手順を開始するボクセル(最終的なボクセル化スケルトン上またはその近傍ボクセルである)の中心、及び探索する方向を入力として取り入れる関数であり、以下のように定義されている。

【表1】

このルーチンの3つの主要な関数は、探索方向に沿って符号付き距離フィールドの谷底部にできるだけ近いボクセルを見つけようとするLocalize、線形近似を用いて中心サーフェスの交差の境界からの座標及び距離を推定するRefine、ならびにこの中心サーフェスの交点に対して、後述されるその後のステップで役に立つ品質尺度を作成するMeasureQualityである。
【0091】
Localize関数を使用して、点BとB及びCとCが中心サーフェスの交差の反対側に位置するために、図2Gの点Aが、中心サーフェスに十分に近接していない場合があるという事実に対処することができる。例えば、点Cが点B及びBの両方と同じ側に位置する場合、線形近似C’は中心サーフェスと交差せず、2つの線形近似B’とC’との交差は3D形状の実際の中心サーフェスに十分近くならない(例えば、中心サーフェスから半ボクセル以上離れている)。これは、場合によっては、2値形状を作成する際の離散化誤差と、間引きアルゴリズムでの材料除去率のわずかな不規則性との結果として発生する場合がある。
【0092】
この問題に対処するために、第1の局所化操作を使用して、入力位置から探索方向(前方または後方)に沿って移動し、中心軸の交差にできるだけ近いボクセルを識別しようとすることができる。中心軸の交差に隣接するボクセルの1つを識別するだけでよいことに留意されたい。つまり、点AまたはCのいずれかを識別する。中心サーフェスに最も近いボクセルは必要ない。したがって、いくつかの実施態様では、以下の局所化手順が使用される。

【表2】

表2の局所化手順は、3つの部分で構成されている。最初に、符号付き距離フィールドが出発点のいずれかの側でサンプリングされて、より負の符号付き距離フィールドに対応する形状境界から、どちらの方向が、より遠くに至るかを判別する。次に、符号付き距離フィールド(SDF)の一連のサンプルが、移動方向に沿って1ボクセル単位で収集され、反対方向へ1ボクセルの後方ステップから開始され、結果が{s値、SDF値}のペアのリストに保管される。最後に、例えば1次の中央有限差分を用いて2次微分が計算され、最大の2次微分値とそれに対応するサンプル点とが返される(SDF値は負の傾きから正の傾きに移行しているので、2次微分は交差付近で大きく正でなければならないことを想起されたい)。
【0093】
図2H及び図2Iは、符号付き距離フィールドの谷の底部に可能な限り近いボクセルを探索方向に沿って見つけるこのプロセスを示す。図2Hは、sによってパラメータ化された、探索方向に沿った符号付き距離フィールド上のサンプルSを示す。最初のステップでは、出発点(s=0)が与えられると、プロセスはいずれかの側をサンプリングして、φ及びφ(コードでは、それぞれ、minusVal及びplusVal)を計算する。φが形状境界から離れていることが判明した場合、正の移動方向が選択される。次に、符号付き距離フィールドの一連のサンプルが、方向dirに沿って、偶数ボクセル単位でsを変化させることによって収集される(これらは図ではSであり、コードにサンプルとして保管される)。最初のサンプルは、負の移動方向(つまり、s=-1)で1ボクセル取得されることに留意されたい。
【0094】
図2Iは、サンプルインデックスjによってパラメータ化された近似の2次微分の値を示す。図示するように、ベクトルサンプルの各点で計算された2次微分がプロットされる。中央有限差分を計算するには、両側に隣接点が必要なため、ベクトルの終点が省略されていることに留意されたい。最大の2次微分は、j=3のサンプルに対応し、この2次微分の値は、対応する点の座標とともに関数から返される。場合によっては、局所化後に2次微分の値が固定のカットオフ値(例えば、0.25)よりも小さい場合、探索を中止できることに留意されたい。このことは通常、探索方向が勾配と大幅に異なることによってもたらされる。
【0095】
局所化手順の後、精密化手順では、実際の中心サーフェス交点に非常に近いボクセル上に位置する出発点が設けられ得る。表1から、Refine関数の出発点引数はLocalize関数(x1)の出力であり、開始ボクセル(x0)の中心ではないことに留意されたい。探索は引き続き方向dir(d)に沿って行われるが、出発点は異なる。座標の変更を想起するために、以下では、独立変数をsからtに切り替える(両方の変数は方向ベクトルに沿った距離の動きを表すが、出発点は異なる。2つはt=s-(x1-x0)・dによって関連付けられている)。x1とdに加えて、Refine関数はまた「ステップバック距離」というタイトルの引数を取り、bとして示される。
【0096】
ラインB’は、表1のボクセルxに対応する開始ボクセル(A)の左側にある2つのサンプリングされた点B1及びB2から構成され、ラインC’は2つのサンプリングされた点C1及びC2から構成される。各点のペアはボクセルサイズの距離で分離され、各セットの最初の点は中心点Aからステップバック距離bで分離される。結果として、tの各点の位置は、
B1=-b
B2=-b-1
C1=b
C2=b+1. (4)
になる。bパラメータは、dがボクセルグリッドと位置合わせされていない場合に動機付けられる。この場合、符号付き距離フィールドへの全てのサンプルは、フィールド値のぼやけを導入するトリリニア補間を使用する。中心サーフェスの近くでは、このぼやけにより、距離関数でトラフが1ボクセルで丸められる。b>ボクセルを選択することにより、このぼやけ効果による誤差を確認することなく、基礎となる符号付き距離フィールドの振る舞いを、より正確に推定することができる。例えば、dが軸に位置合わせされていないとき、bを1.5ボクセルに設定できる。
【0097】
及びmが、それぞれラインB’及びC’の傾きを表すとする。最初に、mとmとの絶対差が、しきい値(例えば、0.01)より大きいことを確認することにより、2つの線形近似が平行でないことを確認する。ラインが(ほぼ)平行であると判定された場合、探索は失敗する。これら2本のラインの交点を計算する。交点のt座標は次の式で与えられる。

【数3】

ここで、tB1及びφB1は、点Bでのt座標と符号付き距離フィールドの値とを表す。探索が成功した場合、この交点は、t=0の1ボクセル長内に生じるはずである。ただし、線形近似が、この領域の符号付き距離フィールドの適切な形状を反映していない場合、これを検出して探索を中止できる。交点での符号付き距離フィールドの値は、次の式で簡単に見つけることができる。
φ=φB1+m(t-tB1) (6)
同様に、交点の3D座標は次のように求められる。
X=X+td (7)
探索出発点xと探索方向dとを使用する。
【0098】
Refineルーチンの最終出力は、2つのライン間の傾き変化の測定値である。これは次のように計算される。
【数4】

さらに、いくつかの実施態様では、このアルゴリズムのさらなる精密化のために、曲率の高い領域でより良い結果を得られるように、2つのフィットラインを作成するのに使用される点の位置を調整することが必要とされる。曲率の高い領域では、隣接するサンプル(例えば、B及びB)を使用して各ラインB’及びC’を近似すると、区分的線形定式化では符号付き距離フィールドが十分に近似されないため、誤差が発生する可能性がある。そのような場合、例えば、点Bの代わりに点Aを使用してラインB’を形成することにより、中心サーフェス交差から遠く離れたより少ないデータを使用して、ラインのより良い近似を得ることができる。これは、中心サーフェスの両側に複数のライン近似を生成し、より急な傾きのライン近似を使用することで実行できる。
【0099】
Localize及びRefineルーチンが完了すると、探索で見つかった中心軸の点に品質を割り当てることができる。品質とは、探索方向が中心サーフェスに対してどの程度垂直であったか(より垂直な探索は、傾斜の変化がより大きいために、中心サーフェスの位置をより正確に推定する結果となる)と、出発点xと精密化された中心サーフェス近似xとの間の移動距離とのバランスをとろうとするヒューリスティックなものである。この品質尺度は、次のように計算できる。
q=φ’’+tan-1(Δm)-2q|X-X| (9)
上式で、φ’’はLocalize関数からの2次微分測度であり、qは定数(例えば、0.2をボクセルサイズで割ったもの)である。
【0100】
Localize及びRefineルーチンの結果は、指定された探索点から開始して指定された探索方向に沿って探索するときの、中心軸に近い位置の推定値である。このルーチンはまた、この中心点が下流の計算で使用するのにどれだけ「良い」かを説明する品質尺度も返す。次の要件のいずれかが満たされない場合、探索ルーチンは途中で失敗する可能性がある。(1)最大の2次微分が、指定された最小値(例えば、0.25)より大きくなければなければならない。(2)2つのフィットライン(m及びm)の傾きの絶対差が、しきい値(例えば0.01)より大きくなければならない。(3)Refineステップで見つかった中心軸点(t)の位置が、中心点(t=0)から指定距離以内(1ボクセル)でなければならない。探索ルーティングの失敗が発生すると、関数は無効な結果を返し、この骨格ボクセルに対して別の探索方向を使用することができる。これは、有効な結果が返されるまで繰り返すことができる。
【0101】
3D精密化手順では、所与の開始骨格ボクセルに対して、1つ以上の1D精密化手順を実行し、最も近くて最良の中心サーフェス点として返すものを1つ選択することができる。3D精密化手順は、表3の擬似コードで説明されている。
【表3】

このルーチンでは、関数UpwindGradientが風上勾配の推定値を返し、場合によっては探索の出発点を更新する(これについては以下でさらに説明する)。前のセクションで特定された理由のいずれかで探索ルーチンが失敗した場合、候補は無効である。最後から2番目の行では、探索ルーチンは候補結果のリストを調べ、全ての検索が失敗した場合(この場合、結果は元の点である)を除いて、品質の尺度が最も高いものを見つける。
【0102】
ボクセルによって中心サーフェスに近いことが示される点の精密化230は、上記のように、初期点から精密化された点への1対1のマッピングに限定される必要はないことに留意されたい。したがって、各初期点の精密化230は、中心サーフェス上にある(または非常に近い)2つ以上の点を生成することができ、これらの追加の点は、その後、厚さの計算に使用することができる。例えば、表3の擬似コードの最後から2行目の探索ルーチンは、実行可能な全ての精密化された点座標を返すことができる。さらに、3D精密化ルーチンを全ての骨格ボクセルに対して呼び出す必要はなく、gradSearchパラメータは分析される骨格ボクセルの種類に依存する可能性がある。
【0103】
いくつかの実施態様では、骨格ボクセルは分類され、精密化は、骨格ボクセルの異なるクラスに対して、異なるように処理することができる。上記のように、最終的なボクセル化シート及びラインスケルトンには、計算された(205)ラインスケルトンと組み合わせた(225)、トリミングされた(220)シートスケルトンが含まれる。ボクセルの起源を調べることにより、各骨格ボクセルは次の3つのカテゴリのいずれかに分類され得る。すなわち、(1)シートスケルトンボクセルは、トリミングされたシートスケルトンに属するボクセルである。(2)ラインボクセルは、トリミング前はラインスケルトン及びシートスケルトンに属していたが、トリミング後はシートスケルトンに含まれていないボクセルである。(3)非中心サーフェスボクセルは、ラインスケルトンに属するが、トリミング前はシートスケルトンに属さないボクセルである。
【0104】
非中心サーフェスボクセルは、実際に保存領域に接する中心サーフェスがほとんど、または全くない場合でも、形状の接続性、例えば、保存領域間の接続が保持されることを保証するために、スケルトンに含まれるボクセルを表すので、それらを識別することは重要である。これらの領域では、スケルトンを精密化(230)しようとする試みは意味をなさない。中心サーフェスの近くに位置しないボクセルは、精密化されるべきではない。このような場合に精密化アルゴリズムを実行すると、失敗するか、または中心サーフェスの他の近傍領域を拾い上げてしまい、アルゴリズムの意図を歪めてしまう。
【0105】
シートスケルトンボクセルは、gradSearchパラメータが偽(false)に設定された状態で、3D精密化アルゴリズムを使用することができる。このような領域では、勾配方向で探索すると、中心サーフェスとの交点の品質がわずかに高くなる可能性があるが、一方で、設定された数の異なる事前定義された方向(例えば、基本(x、y、z)方向など、少なくとも3つの直交する方向)に沿って探索し、品質に基づいて交点を選択することで、十分に良好な近似が得られる。また、3Dモデルのシート領域内の骨格ボクセルの(全てではないにしても)ほとんどが、精密化された点(交点)を生成するために、隣接する骨格ボクセルと同じ探索方向を用いることになるという利点がある。この探索方向の均一性は、精密化された骨格点の位置でのポイント対ポイントノイズを低減させ、精密化された骨格点が中心シートにわたってより均一に分布したままにするのに有用である。gradSearchを真(true)に設定して実行すると、例えばラインボクセルの場合、3D精密化手順は勾配探索方向を使用することになり、勾配探索が失敗した場合にのみ、設定された数の異なる事前定義された方向での探索にフォールバックする。これにより、事前定義された方向の1つ(例えば、基本方向)での探索がより高品質の結果を返し、(推奨される)勾配探索結果に取って代わる可能性がある場合を回避することができる。
【0106】
図3Aは、3Dモデルのボクセル化シート及びラインスケルトン内のボクセルから得られた点の選択的精密化を実行するプロセスの例を示す。図3Aのプロセスは、ボクセル化シート及びラインスケルトンを、3Dモデルの中心サーフェスに近づける点に変換する(230)例である。図3Aのプロセスは、ボクセル化シート及びラインスケルトンの各ボクセルに対して行われる(300)が、ボクセルが、シートスケルトンボクセル(トリミング後のシートスケルトンに属する)であるか、ラインボクセル(トリミング前のシートスケルトン(加えてラインスケルトン)に属するがトリミング後のシートスケルトンに含まれない)であるか、または非中心サーフェス(NMS)ボクセル(ラインスケルトンに属するがトリミング前のシートスケルトンに属さない)であるかによってプロセスが変化する。
【0107】
各NMSボクセルについて、そのボクセル内の点(例えば、ボクセルの中心点)が(例えば、そのようなボクセルから生成された点に対する位置精密化が不可能である場合があるため)局所厚さを測定する点として使用される(302)。シート点の場合、多方向探索が実行される。各シートボクセルについて、事前定義された各方向(例えば、基本(x、y、z)方向などの少なくとも3つの直交する方向)がチェックされて(310)、どれが最適であるかが(もしあれば)確認される。光線は、ボクセルに関連付けられた初期点から次の方向に投射される(312)。いくつかの実施態様では、初期点は上記の局所化手順を使用して決定される。次に、この投射光線を使用して生成された第1の線形近似と第2の線形近似との交点を見つけることにより、レベルセット表現における値の極値が推定される(380)。いくつかの実施態様では、推定380は、上記のRefine手順を使用して実行される。
【0108】
推定380のプロセスは、レベルセット表現における値の近傍線形近似を(すなわち、中心サーフェスの初期点により近い中心サーフェスの側で)生成する(382)ことと、レベルセット表現における値の遠方線形近似を(すなわち、中心サーフェスの初期点の側とは反対側で)生成する(384)ことと、近傍線形近似と遠方線形近似との交点を求め、さらに交点に対する品質値を求める(386)ことと、を含むことが可能である。例えば、生成すること382、384及び求めること386を、上記のように実行することができ、品質値は、中心サーフェスに対する投射光線の垂直性、及び初期点と交点との間の距離に基づく。例えば、表3の擬似コードと対応する説明、及び式9を参照されたい。中心サーフェスと投射光線との間の直交性の代用として、方向性のある2次微分と、2つのフィットライン間の傾きの変化とを使用することは、品質の1つの可能な尺度にすぎないことに留意されたい。
【0109】
一般に、品質尺度は、候補点が位置決めすべき中心サーフェスに非常に近い(つまり、誤差が小さい)可能性から始める。実際の中心サーフェスの位置は不明であるため、アルゴリズムは、結果の信頼性が低くなる1つ以上の条件を考慮に入れることができる。品質の第1の態様は、符号付き距離フィールドの線形近似に固有の仮定、つまり、符号付き距離フィールドが線形に振る舞うという仮定によって決定され得る。中心サーフェスが湾曲していて、光線が勾配以外の方向に沿って投射される場合、この仮定は無効であるが、光線が符号付き距離フィールドの勾配に沿って(またはほぼ沿って)投射される場合、線形近似は妥当である。しかし、出発点での勾配に沿った投射は完全ではなく、なぜなら、中心サーフェスの交差の反対側の勾配は(一般に)異なる方向を持つため、局所的な勾配の方向に沿って投射した光線は、中心サーフェスの交差の反対側の勾配と位置合わせがずれる可能性があるためである。したがって、最良のシナリオは、光線を中心サーフェスに垂直に投射することである。これにより、中心サーフェスの交差の両側の勾配に対してわずかな方向の違いが生じる。
【0110】
品質の第2の態様は、2つのライン間の傾きの変化が増加するにつれて、ライン対ライン交点の数学的精度が向上するために発生する。式5は、分母が比較的大きいままである場合、データ点φ(直接的、及び傾き項を介して間接的の両方に使用される)の精度の所与の不確実性に対するtの値の誤差が小さくなる。分母が縮小するにつれて、tの値は符号付き距離フィールドの小さな誤差に対してより敏感になる。
【0111】
これらの品質に関する考慮事項は両方とも、中心サーフェスに垂直に投射された光線が最小の誤差推定値を与えることを示唆している。中心サーフェスの実際の方向は不明であるため、1つ以上の代用尺度を使用して、光線と中心サーフェスとの直交性を推定してもよい。このようなものには、(1)光線が中心サーフェスを斜めに横切るときは傾きの変化が小さく、中心サーフェスに垂直に横切るときはそれに応じて傾きの変化が大きくなることが知られているので、2本のラインの間の傾きを比較することによって測定される、傾きの変化の程度と、(2)Localize関数で測定される、中心サーフェスの交差にわたる符号付き距離フィールドの推定された2次微分とが含まれ得る。この場合も、2次微分が大きいほど、投射光線が中心サーフェスに「正面から」遭遇している可能性が高くなる。他の尺度も可能である。例えば、フィットラインの傾きの対称性を調べることができる。つまり、2つのフィットラインがほぼ対称であり、一方が他方の傾きをほぼ負にするかを調べる。別の例として、風上勾配を両側でサンプリングし、探索方向と比較して、中心サーフェスの交差の直交性に関しての尺度を考え出すことができる。
【0112】
品質の第3の態様は、予測の精度ではなく、中心サーフェスに近い点の広がりの均一性に由来する。精密化された点が均一に分布していることが望ましいが、特定の探索方向に沿って探索を進めすぎると、傾斜の変化が大きい中心サーフェスの別の枝が拾い上げられてしまう場合がある。この問題に対処するために、出発点とラインの交点との間の移動距離の尺度を品質尺度の構成要素として含めることができる。したがって、中心サーフェスの精密化された近似における大きなギャップを回避するために、出発点に近いより弱い傾きが好まれる。
【0113】
このような1つ以上の品質尺度、すなわち、2次微分、傾き変化、及び出発点からの距離、を用いて、様々な品質値を構築することができる。これらの様々な品質値の違いは、各品質尺度をどの程度重要視するかによって異なり得る。いくつかの実施態様では、2次微分、2つのライン間の角度(Δmのアークタンジェントとして求めることができる)、及び移動距離の加重和が、例えば、式9に詳述するように、使用される。他の多くの品質関数を、様々な実施態様で交点の品質を推定するために使用することができる。
【0114】
多方向探索は、全ての方向が処理されるまで行われ(310)、その後、異なる光線投射方向で見つかった交点のいずれかが十分な品質を有しているかどうかを判定するためのチェック314が行われる。有する場合、交点の少なくとも1つが、シートスケルトンの1つ以上の精密化された点として使用するために選択される(316)。有しない場合、ボクセル自体の点(例えば、ボクセルの中心点)またはボクセルに関連する初期点が、局所厚さを測定するために使用する点として使用される(302)。十分な品質チェックは、局所化及び精密化関数に埋め込まれたチェックを使用するなどにより、上記の各品質尺度に対する暗黙的チェックとして実施できることに留意されたい。これらのチェックのいずれかが失敗した場合、探索は失敗として終了する。例えば、Localize関数の最大ボクセル走査(例えば4ボクセル)によって探索距離を制限し、Localize関数の後に2次微分値をチェックし、十分に大きくない場合(例えば最小0.25)探索を終了し、2つの傾きが近すぎる場合(例えばΔm<0.01)Refine関数が終了することが可能である。個々の構成要素の計算品質に対する様々な下限値を、入力ボクセルごとに複数の中心サーフェス近似を保持する場合など、異なる実施態様で使用できることに留意されたい。特定の実施態様でしきい値を設定することは、いくつかの実験を実行し、結果を調整して、中心サーフェスの精度とカバレッジとの望ましいバランスを実現するという問題である。
【0115】
このプロセスは、あらかじめ定義された方向(例えば、基本(x、y、z)方向)を用いることで、隣接する骨格シートボクセルがほとんど同じ探索方向を用いるので、同じ方向に(中心サーフェスに向かって)点が精密化され、したがって厚さ測定に用いるこの精密化された点においてはノイズが少なくなるという利点がある。対照的に、ラインスケルトンの近くでは、x、y、及びz方向に沿って探索すると、骨格点位置がより良い品質を与えるかどうかに応じて精密化方向が切り替わるため、変動の激しい厚さ測定結果、またはエイリアスを生じる厚さ測定結果が生成される場合がある。3Dモデル内のラインスケルトン領域では、中心サーフェスは実際には線状の中心軸であり、これはヒットしにくいため、基本(X、Y、Z)方向の探索では、ラインスケルトンの領域にノイズが入る可能性に加え、中心軸を全て見落としてしまう可能性がある。
【0116】
したがって、ライン点に対しては、勾配優先探索を行い、これは風上方向に光線を投射することから始まり、風上方向で有用な結果が得られない場合は、多方向探索にフォールバックする。各ラインボクセルについて、光線は、ボクセルまたはその隣接するボクセルから計算された風上勾配に対応する方向に、初期点から投射される(320)。次に、この風上勾配に基づく投射光線を使用して(上記のように)生成された第1の線形近似と第2の線形近似との交点を見つけることにより、レベルセット表現における値の極値が推定される(380)。次に、チェック322が行われて、見つけられた交点が十分な品質であるかどうかを(例えば、上記と同じ基準を使用して)判定する。十分である場合、交点はシートスケルトンの精密化された点の1つとして使用される(324)。十分でない場合、プロセスは、このラインボクセル対する多方向探索にフォールバックする。
【0117】
図3Bは、表3のUpwindGradient関数で使用できるように、3Dモデルのレベルセット表現での風上勾配を定義し計算する方法を示す。(ここで使用される)風上勾配とは、中心サーフェスから離れる方向(つまり、形状の外側に向かう方向)の勾配を求めるものである。最大のレベルセット値の増加の方向を表す勾配の尺度が必要である。中心サーフェスから離れると、中央有限差分が適切に機能するが、中心サーフェスの近くで、有限差分のステンシルが中心サーフェスにまたがる場合、計算された勾配の方向と大きさが正しくなくなる可能性がある。したがって、中心軸から離れる勾配の中心有限差分推定値340は、実際の勾配フィールドに一致する結果を提供するが、中心軸に近い勾配の中心有限差分推定値342は、中心軸の両側の実際の勾配フィールドのいずれにも対応しない結果を提供する。
【0118】
図3Bでは、ボクセルはボックスで表され、符号付き距離フィールドの値はボックス内の数値であり、点線のボックスは影付きボクセルの勾配計算のステンシルに使用されるものであり、各太い矢印は計算された勾配の方向を表している。太線は形状の境界線であり、中心軸と実際の勾配フィールドとは図3Bに注釈したとおりである。
【0119】
1Dでは、古典的な風上有限差分計算344は、どちらの近傍がより大きな符号付き距離フィールドの値を有するか(中心サーフェスからより遠いか)に応じて、前方346または後方348のいずれかの有限差分定式化を使用するため、風上有限差分350を提供する。2Dでは、このロジックはステンシルの各軸に適用される。例えば、x方向で隣の符号付き距離値が大きい方、y方向で隣の符号付き距離値が最大のものを使用し、zの場合も同様である。しかし、この古典的な有限差分は、勾配が中心サーフェスをまたぐ古典的な風上差分近似352で示されるように、有効ステンシル(有限差分を計算するために使われる近傍の集合)が中心サーフェスにまたがる場合はまだ不得手である(大きな符号付き距離フィールドの値を持つ近傍を選択することによってもたらされるステンシルの減少に注目)。このことは(通常であればシンプルでエレガントな)風上勾配計算の根本的な弱点である。誤った勾配方向が使用された場合、探索は中心サーフェスに接するラインに沿って行われ、探索手順と結果のスケルトン内の点の分布とに問題が発生する可能性がある。
【0120】
このリスクを回避するために、探索の出発点を中心軸から離れた隣接するボクセルに移動させることができる。この新しい出発点で、風上勾配を通常の方法で計算でき、正確な結果が得られる。1D精密化アルゴリズムの局所化ステップでは、ボクセルが1つ離れている場合でも、中心サーフェスの交差を簡単に見つけることができる。したがって、いくつかの実施態様では、離散ラプラシアン(2次微分の大きさを測定する、または勾配の正味の変化を測定する)の最低値を有する隣接ボクセルが求められ(354)、次に探索手順の改訂された出発点として使用される(356)。
【0121】
複数の骨格ボクセルが、ラプラシアン値が最も低い同じ最も近い隣接ボクセルを持つ可能性があるため、このアプローチは中心シートにはうまく機能しない可能性があることに留意されたい。これが発生すると、結果として生じる中心サーフェス点の「凝集」が発生し、均一性が低下するか、または中心サーフェス測定に大きなギャップが生じることさえある。したがって、いくつかの実施態様では、風上勾配探索方向は、ラインスケルトンの領域にあるときにのみ使用される。それにもかかわらず、中心軸の周りの符号付き距離フィールドは、通常、少なくとも1つの主曲率が凸であり、これにより、各骨格ボクセルが固有の最小ラプラシアン近傍を見つける可能性が大幅に増加する。
【0122】
さらに、上記のように、ノイズを低減するために、骨格の精密化が完了した後、例えば、各骨格点の位置(及び任意選択で半径)を、(a)その隣接点(すぐ隣の点またはその点の事前定義された距離内の全ての点)または(b)その隣接点及びその骨格点自体の位置と繰り返し平均することによって、点スケルトンを平滑化することができる。つまり、これにより、中心サーフェスの推定値に残る誤差を低減しまたは除去することができる。図2Jは、図2Eの3次元形状227に対する(トリミング、拡張、精密化、及び平滑化操作が行われた後の)最終的な点スケルトン227Jを示す。図2Aに戻り、点スケルトンを用いて(すなわち、少なくとも3Dモデルの中心サーフェスに近づける点を用いて)厚さ値を生成する(240)。いくつかの実施態様では、生成240は、厚さが必要とされるサーフェス点に最も近い骨格点を探索することと、次に、その骨格点の半径(または半径の2倍)をサーフェス点での厚さとして使用することと、またはサーフェス点とその最も近い骨格点との間の距離(または距離の2倍)を計算することとを含む。
【0123】
したがって、生成240は、3Dモデル上のサーフェス位置と第1のセットの精密化された中心サーフェス点との間の距離を計算する(242)ことと、追跡された(215)ボクセルのサーフェス位置と第2のセットの点(例えば、除去220の前にボクセル化シートスケルトンになかったボクセル化ラインスケルトンのボクセルの中心点)との間の距離を計算する(244)ことと、を含むことが可能である。計算242、244は別々の操作である必要はなく、NMS、ライン及びシートスケルトン点の結合を使用して単一の操作にまとめることができることに留意されたい。いくつかの実施態様では、点の半径値が使用され、その場合、生成240は、各サーフェス位置に最も近い骨格点を、例えば、KDツリーまたはオクトリーを使用して探索を加速し、その点の半径値(または半径値の2倍)をサーフェス位置での測定された厚さとして使用して見つけることを含む。厚さが骨格点とサーフェスとの間の距離で定義されているか、または骨格点の負の符号付き距離フィールド値で定義されているかに関わらず、(例えば、KDツリーまたはオクトリーを使用する)探索加速を使用することが可能であることに留意されたい。
【0124】
レベルセット実施態様では、生成240は、「補正された」レベルセット表現を使用して、3Dモデルのサーフェスにおける厚さ値を計算することを含むことができる。点スケルトン(例えば、点スケルトン227J)は、3Dモデルの中心サーフェスの重要なパーツ、及び任意選択で、1つ以上の保存領域と接続する部分など、3Dモデルの他の重要なパーツの高品質な近似である。これらの点のそれぞれは、レベルセット表現のSDF(例えば、点の「半径」の値)に基づく関連する厚さを有する。これらの厚さ値は、例えば3Dモデルの統計計算などにそのまま使用できるが、3Dモデルのサーフェスにおける厚さの尺度は、形状(及び任意選択でトポロジ)最適化の際に厚さ制約を強制するために使用される。
【0125】
図2Kは、3Dモデル246Aの厚みを増したレベルセット表現を用いて、3Dモデル246A(表現を明確にするために単純な2D台形として表現されている)のサーフェスにおける厚さ値を生成する例を示す。サーフェス点sの厚さ値は、2|p-s|と定義することができる。ただし、pは、最終的な点スケルトンに最も近い点である。しかし、点pを見つけるための探索を行うのではなく、補正されたレベルセット表現を用いることで、堅牢性の向上と厚さ計算の処理時間の短縮とを図ることができる。入力3Dモデル246Aのコピーが作成され、最終スケルトンの各点について、(点を中心とする)球のブール結合がコピー上で実行されて、厚みを増したレベルセット表現246Bを形成し、これらの球の直径は、測定されることになる最大の厚さ、例えばtmin+ε+Δに等しく設定することが可能である。そして、入力レベルセットフィールドφと補正レベルセットフィールドCとの差分を用いて厚さを計算する(246C)。点Aにおいて、t=2(rmax-(φ(A)-C(A)))として厚さを推定できることに留意されたい。ただし、rmaxは、測定される最大の厚さの半分である。B点では、2つのレベルセットが同じなので、この点での厚さは2rmax以上でなければならない。
【0126】
この厚さ尺度の様々な定式化が可能であり、例えば、rmaxではなく、測定される最大厚さを使用してもよいことに留意されたい。いずれにせよ、レベルセット表現間の差分が計算されて、入力レベルセット表現が、厚みを増したレベルセット表現よりも局所的にどの程度薄いかを判定する。図2Lは、3次元形状227のサーフェスにおけるレベルセット差測定厚の例を示す。トリミングで削除された、位置Aの突出部に割り当てられた人工的に厚い値と、位置Bなどの中央シートのエッジ及びコーナーに割り当てられた比較的厚い厚さとに留意されたい。
【0127】
それにもかかわらず、上述のボクセル化間引きに基づく中心サーフェスへの距離のプロセスの1つ以上の態様が様々な実施態様で使用され得る一方で、図1Cに関連して述べたように、3Dモデルの形状最適化のため、または3Dモデルの形状及びトポロジ最適化のいずれかのために、他の厚さ測定技法が代わりに使用されてもよい。一般に、以下に説明する厚さ制約技法(3Dモデル更新185Cで実施可能な、厚さ制約を適用するための傾斜スケーリングプロセスと呼ばれる)は、過去に異なる制約定式化で使用されてきた先行技術の厚さ測定技法を含む、3D形状のサーフェスにおける厚さを測定するための様々な技法のいずれかを使用することができる。したがって、厚さ制約を適用するために、ボクセル化間引きに基づく中心サーフェスへの距離のプロセスを傾斜スケーリングプロセスと組み合わせて使用する利点があり、一方、傾斜スケーリングプロセスとともに多くの異なる種類の厚さ測定を使用することができる。また、本文書中の他の箇所で述べたように、逆もまた当てはまり、ボクセル化された間引きに基づく厚さ測定は、他の制約の定式化と共に使用することが可能である。
【0128】
例えば、中心サーフェスに近づけるプロセスの変形形態を採用することができる。ラプラス演算子を用いて、レベルセットフィールドの曲率の高い領域(骨格に近い点に対応する)を見つけることができる。これらは、間引きアルゴリズムによって選択された点の代わりに使用することができる。ボロノイ図を使用して、3Dソリッドから中心シートを抽出することができる。スケルトンの点を見つけるために、球を内部に適合させるヒューリスティックスキームを使用することができる。さらに、このようなアプローチは、上記の1つ以上の精密化、拡張、及びマッピングアルゴリズムと組み合わせること、または単独で使用してサーフェス測定方法を作成することが可能である。
【0129】
上記に示したトリミング及び拡張アルゴリズムは、代替のアプローチに置き換えることができる。例えば、経路検索アルゴリズムを使用して、ボクセル化ラインスケルトンに浸食するのではなく、保存領域を接続してもよい。削除するシートスケルトンのエッジは、ボクセル近傍の調査、風上勾配方向に沿った光線の投射、または中心サーフェス近くの点の2つの最も近い風上勾配方向の間の差の測定など、別のアプローチを使用して選択することができる。点スケルトンを精密化する別のアプローチとして、光線投射のアプローチ(例えば、風上勾配の方向または大きさの変化を探す)を使用してもよく、または少なくとも2箇所で形状の境界に正確に接する球の中心を見つけるという最適化サブ問題を解くことによってスケルトン点を精密化してもよい。
【0130】
点スケルトンからサーフェスの厚さを計算するには、サーフェスから光線を投射して、法線方向に沿って最も近い骨格点を見つけるか、または、符号付き距離フィールドもしくは間引きアルゴリズムを使用して、内部の各ボクセルとその最も近いサーフェスのボクセルとを接続するマッピングを構築することが可能である。このようなマッピングは、後で再計算するのではなく、スケルトンが形成されるときに自動的に構築できることに留意されたい。さらに、光線投射、球体フィッティング、または上記で参照したローリングボール技法など、他の厚さ測定アプローチを使用することができる。
【0131】
このような厚さ測定技法のそれぞれは、厚さ制約を適用するための傾斜スケーリングプロセスとともに使用できる。これについては、次に説明する。図4Aは、図1Cの3Dモデル更新185Cで実施可能な、厚さ制約を適用するための傾斜スケーリングプロセスの例を示す。現在の数値的評価(例えば、現在の3次元モデルに対して行われた数値シミュレーションから生成された速度フィールド)が示す変化量は、厚さ値(例えば、現在の3Dモデルの3次元形状のサーフェスにおけるレベルセット差測定厚)とともに受領される(400)。
【0132】
いくつかの実施態様では、チェック402は、最適化ループの1つ以上の反復の初期セットが完了したかどうかを判定する。このチェックは明示的に行うことができ、その結果、図のようにプロセスが分岐し、または、このチェックは、反復ループの早い段階で変化量(例えば、移流速度)に修正が加えられないことを保証するために制御変数を使用する関数ベースのアプローチの結果として、暗黙的に行うことができることに留意されたい。変化量を適用して(404)次の反復処理のために現在の3Dモデルを更新する前に、現在の3Dモデルの変化量の修正を最適化ループの後半まで制限することで、達成可能な最終形状の品質面での利点を提供することができる。
【0133】
これは、トポロジ最適化の場合に特に当てはまる場合がある。トポロジ最適化では、最小厚さ制約を適用する前に、現在の3D形状の一部を何も収縮させないようにすることが、現在の最適化問題に異なる幾何学的解を見つけるために重要である。ジェネレーティブ設計で行われるトポロジを変更する主な方法の1つは、ビームを無に縮めて取り除くことによるので、ソルブ全体に対して最小厚さ制約を有効にしないことが望ましく、これにより、オプティマイザは設計から冗長なビームを取り除く時間を確保できる。また、厚さ制約により、2つの面が交差したために、新しい穴が作成される点までシートが薄くなるのを防ぐ。これらの問題に対処するために、最適化の進行に従って、速度フィルタを段階的にオン(またはランプアップ)にすることができる。それにもかかわらず、形状のみの最適化ループなどのいくつかの実施態様では、形状変化410の減速(以下で対処される)は、最適化ループの最初の反復で開始することができる。
【0134】
変化量の修正が開始されると、修正の可能性が、現在の3Dモデルで変更すべき各位置に適用され得る(406)。所与の位置が厚さ仕様に準拠している場合(408)、その位置の変化量が(例えば、厚さ仕様が最小厚さのときは、その位置で薄くなるのを緩やかにし、厚さ仕様が最大厚さのときは、その位置で厚くなるのを緩やかにするように)修正されて(410)、厚さ仕様に向かう方向への任意の形状変化を緩やかにする。さらに、形状変化の減速410は、厚さ仕様とその位置で測定された厚さとの間の差に基づく量だけであってもよい。したがって、厚さが、指定された厚さ制限に近づくと、その指定された厚さに向かう形状変化はより緩やかになり、潜在的に、指定された厚さ制限にすでに達した位置でのいずれかの形状変化を停止させることを含む。
【0135】
このように形状変化を緩やかにしても、所与の位置が厚さ仕様に準拠していない厚さ、つまり、その位置の厚さが、指定された厚さ制限を超えている厚さを達成する可能性がある。これが発生したとき、その位置での変化量を修正して(412)、厚さ仕様に向かう方向に形状を強制的に変化させることができる。いくつかの実施態様では、厚さ仕様に向かう方向のこの形状変化の強制は、厚さ仕様とその位置で測定された厚さとの間の差に基づく量による。したがって、その位置の厚さが、指定された厚さ制限を超えてずれるほど、指定された厚さ制限まで押し戻されることになる。
【0136】
場合によっては、現在の3Dモデルの特定の部分を、ジェネレーティブ設計による現在の3Dモデルから排除されてしまうまで、どんどん薄くしていく必要がある場合など、この形状変化の強制が好ましくないケースもある。したがって、いくつかの実施態様では、ランプアップ期間が使用され、形状変化の強制412(及び任意選択で形状変化の減速410)は、ループの最終セットの反復まで完全には機能しなくなる。これらの実施態様では、その場所の厚さが調整変数によって制御される値の範囲内にあるときに、修正410及び/または修正412を実行することができる。したがって、反復の最終セット414の前に(例えば、移流速度の修正を行わない反復の初期セットと、移流速度の完全修正を行う反復の最終セットとの間の反復の中間セット中に)1つ以上の値範囲を制御する1つ以上の調整変数が、最適化ループの各反復で変更され得る(418)。変更418は、反復数が、図4Bに関連して以下に説明されるように、関数ベースのアプローチへの入力であり得るという点で暗黙的であり得ることに留意されたい。
【0137】
さらに、場合によっては、3Dモデルの特定の部分の厚さが、厚さ仕様を中心に変動することがある。例えば、最小厚さ制約がある場合、特定の領域における部材の厚さは、最小フィーチャサイズを中心に変動し得る。1回の反復では、フィーチャは、十分に大きく減速410されないか、または減速410が十分ではなく、オプティマイザは、その厚さを内向きの速度で最小厚を過ぎて減少させる。次の反復では、部材が小さすぎることが判明し、形状変化が強制されて(412)、部材の厚さを目標の厚さまで押し戻す。この問題に対処するために、いくつかの実施態様では、その場所での厚さの変化が、例えば、移流時間及び任意選択で遅くされた(410)形状変化または強制された(412)形状変化を用いて推定され(406)、次に遅くされた(410)形状変化または強制された(412)形状変化のいずれかが、その場所の厚さの推定変化を使用して調整される。
【0138】
ランプアップ期間が使用される場合、強制的な形状変化により、1回の反復で薄い部材を完全に厚さ仕様に戻すことができず、適合させるために2回以上の反復を要する場合があるため、ランプアップ終了後に厚さ仕様違反がある状況になる可能性がある。この問題に対処するため、いくつかの実施態様では、厚さ仕様を満たすためにそれ以上の強制的な形状変化が必要ないことを確実にするために、反復の最終セットを明示的な収束を過ぎて、すなわち1つ以上の設計基準が満たされる反復を超えて拡張させる(416)。
【0139】
上記のように、関数ベースの実施態様を使用できる。このような実施態様では、低速化410と強制412とに別々の関数を使用できる。このような各関数は、連続関数または区分的線形関数、あるいは潜在的に不連続関数である場合がある。図4Bは、厚さ制約を適用するための傾斜スケーリングプロセスの機能制御の例を示す。図4Bに関連して、「t」は、ここで、上記のスケルトン精密化アルゴリズムにおける光線に沿った移動ではなく、3Dモデルのサーフェスにおける局所的な厚さを示すために使用されている。また、図4Bに関連して説明した例は、最小厚さ制約の場合であるが、ここで説明した一般的なアプローチは、最大厚さ制約及び厚さ比制約にも同様に適用可能である。
【0140】
測定された厚さ値は、移流速度を操作して、パーツの領域が最小フィーチャサイズの目標厚を下回って縮小しないようにする制約を駆動するために使用される。「定常状態」制約を使用する実施態様の場合、制約は速度フィルタの形式をとることができ、式10に従って各点での速度を操作し、新しい速度v’は入力速度vから係数α及びβでそれぞれスケーリングされオフセットされる。max(・)演算子は、フィルタが外向きの速度を決してスケーリングしないことを保証する(したがって、スケーリング成分は内向きの速度の領域にのみ適用される)。
v’=max(αv,v)+β (10)
【0141】
スケーリングファクタと加算ファクタの定式化は、ヒューリスティックなものであり、無数にある可能なアプローチのうちの1つに過ぎない。直感的には、設計の領域が最小フィーチャサイズよりはるかに厚い場合、速度を修正しない(α=1;β=0)。設計が最小フィーチャサイズに近づいている場合は、αをゆっくりと0に減らすことで、速度が形状をさらに縮小しないようにする。設計の領域が目標とする最小フィーチャサイズよりも小さい場合は、小さな正の外向き速度を加えて、形状を成長させる。したがって、第1の区分的線形関数450はα(速度フィルタのスケーリング成分)の値を制御し、第2の区分的線形関数452はβ(速度フィルタの加算成分)の値を制御する。
【0142】
図4Bにおいて、tminは要求された最小フィーチャサイズ、εは厚さ測定誤差の推定値(例えば、1ボクセル)、Δはα=0とα=1との間の移行帯のサイズ(例えば、1.5*最大外向き速度、ボクセル)、vは小さすぎる領域で適用する外向き速度の最大量(例えば、0.5ボクセル/移流タイムステップ)である。図示のように、スケーリング成分αは、制約のない収縮からそれ以上ない収縮までランプダウンするが、ランプ部分(さらにαの関数の残りの部分)は線形である必要はない。
【0143】
ただし、最適化の最初から定常状態速度フィルタがアクティブである場合、オプティマイザは、バーを存在しなくなるまで縮小させるか、またはシートに穴を追加することによって、トポロジに変化を起こすことができない。この機能は、オプティマイザが冗長な荷重経路を削除し、可能な限り最良の設計にすばやく到達するために重要である。したがって、いくつかの実施態様では、制約は最適化ループの複数の反復にわたって増加する。速度フィルタは、最初は非アクティブであり、一定の反復回数の後、制約が上昇し始め、さらに予め決められた回数の反復にわたって、完全に無効な状態から上記の定常状態の速度制約にスムーズに移行することができる。
【0144】
ランプアップ中に、スケーリング係数と加算係数とは再び区分的線形関数として表現することができる。したがって、第1の区分的線形関数454はα(ランプアップ中のスケーリング成分)の値を制御し、第2の区分的線形関数456はβ(ランプアップ中の加算成分)の値を制御する。図4Bにおいて、tminは要求された最小フィーチャサイズ、tは内向き速度が下げられるかまたはゼロに設定される厚さ(ランプアップによって変化する)、tは正でも負でもない加法速度補正を適用する「平衡」厚さ(ランプアップによって変化する)、gはtとtとの間の現在の距離、εは厚さ測定誤差の推定値(例えば、1ボクセル)、Δはα=0とα=1との間の遷移領域のサイズ(例えば、1.5*最大外向き速度、ボクセル)、vは小さすぎる領域で適用する外向き速度の最大量(例えば、0.5ボクセル/移流タイムステップ)、vは非常に小さい領域のための任意選択の最大内向き速度(無効にするためにゼロに設定することができる)、及びslは加算成分ランプ遷移の傾き(0.25)である。vを完全に削除する選択肢に加えて、いくつかの実施態様では、tも使用されない。
【0145】
ランプ効果は、「フリーズ厚」tを操作することで実現され、ランプアップ開始時のt=tmin+ε+Δから、ランプアップ期間終了時のt=-Δまで、スイープする(例えば、tは反復数の関数として変更される)。このように、ランプアップの開始時には、(αは全て1、βは全て0なので)フィルタの効果はない。フリーズの厚さが減少し始めると、構造の最も厚い部材が最初に制約を受けるため、それ以上収縮することはできず、薄い部材は自由に変更できる。これにより、オプティマイザは、制約から圧力を感じて、より厚い部材を最小フィーチャサイズの目標に合わせるために、不要なより薄い部材は削除することを決定できる。
【0146】
このランプアプローチ(厚み制約の段階的導入)は、オプティマイザが特定の順序で最大から最小への決定(材料の小さな指部を保存する価値があるかどうか)を強制されるため、より優れたジェネレーティブ設計の制作を容易にする。tが大きな値から小さな値へと下がるにつれ、大きな指部(つまり、tより大きく、かつtmin+ε+Δより小さいもの)の縮小を抑制し始めるが、小さな指部(つまり、tより小さいもの)については、まだ抑制されることはない。加算成分βの場合、tは、局所的な厚さに対して許容される最大量のプッシュの導入を止め、ランプダウンするポイントである。tの左側にあるランプを使用することは、これらの薄い指部がボリュームを解放する良い場所ではないことをオプティマイザに伝えており、オプティマイザは、ボリューム解放の他の場所を見つけるか、(それが本当に必要ない場合)指部を完全に排除して望ましいボリューム減少を得られるよう奨励される。さらに、いくつかの実施態様では、vはゼロでない負の数に設定されており、これは、非常に小さな指部に対しては、優先的に速く縮めて消そうとすることを意味している。
【0147】
さらに、上記のように、ランプアップを有効にすると、ランプアップの完了後に最小フィーチャサイズの制約の違反が存在する状況が発生する可能性がある。最小のフィーチャは最後にフリーズされるため、最小のフィーチャを最小フィーチャサイズ目標厚さまで成長させるためには、フィルタが何度も繰り返されることがある。このいわゆる「セトリングタイム」は、設計が最小フィーチャサイズ要件を完全に満たすまでに経過しなければならず、設計が各反復で1.0時間移流させると仮定すると、v/tminとして計算することができる。したがって、指定されたセトリング反復が経過するまで、設計の収束を抑制することができる。
【0148】
さらに、場合によっては、特定の領域の部材の厚さが、最小フィーチャサイズの周りで変動することがある。1回の反復では、フィーチャは、制約されないほど十分に大きく、オプティマイザは内向きの速度でその厚さを減らす。次の反復では、部材が小さすぎることが判明し、部材の厚みを目標の厚みまで押し戻すために、ゼロでないβ速度が追加される。この変動に対処するため、「移流修正」によって、まだ適用されていない内向きの移流を補償するために、フィルタに追加の加法項γが加えられる。フィルタ関数は、式11に示すように書き換えることができる。
v’=v’+γ=max(αv,v)+β+γ (11)
各点での移流速度のフィルタリングによる厚みの変化の可能性は、tnew=t+v’ΔTとして推定することができる。ただし、ΔTは移流時間である。これは、法線方向がこの時点でスケルトンへのベクトルに平行でない場合、実際の厚さの変化を過大評価する可能性があるが、構造の反対側も負の速度を持っている場合、厚さの変化を過小評価する可能性もある。実際には、これらの未知数をより正確に処理するために、うまく機能し、追加の計算を回避することがわかっている。加法項γは、式12のように、実際に推定された新しい厚みが目標最小フィーチャサイズよりも小さくならないように選択される。
【数5】
【0149】
この厚さ制約アプリケーションは、多くの変形形態が可能であることに留意されたい。ランプアップフェーズは省略でき、または反復0から開始することもできる(したがって、所定の反復回数を待つのではなく、最初から直線的にランプアップする)。ランプアップは、制約のない速度値と制約のある速度値との間の線形補間で実現でき、混合比は、反復回数にわたって0から1.0に近い値まで徐々に増加する。ランプアップフェーズは、ハイブリッドジオメトリ/速度フィルタに置き換えることができる。制約を適用すべき最初の反復で、ジオメトリフィルタは補正されたレベルセットを使って、設計の薄い領域を全て膨らませることができ、速度フィルタをすぐに完全に有効にすることができる。これによって、セトリングタイムステップは不要になる。
【0150】
セトリングタイムステップは省略可能であり、またはランプアップ終了時にジオメトリフィルタに置き換えることができ、残りの全ての薄型部材をフィーチャサイズ要件に合うように拡大することもできる。ジオメトリフィルタリングに関する詳細については、「COMPUTER AIDED GENERATIVE DESIGN WITH FILTERING TO FACILITATE 2.5-AXIS SUBTRACTIVE MANUFACTURING PROCESSES」と題された、2020年5月18日出願、2021年11月18日発行の米国公開第2021-0356939号を参照されたい。この刊行物は、参照により本明細書に組み込まれる。さらに、移流修正は、レベルセットフィールドの推定変化に対して異なる近似値のセットを使用して再定式化することができ、または、移流が実行され、結果として厚さが再び測定され、この反復のための各ボクセルの所望の厚さが得られるまでフィルタが速度値を反復して更新するループで動作させることができる。
【0151】
速度フィルタアプローチの代わりに、「ステップアンドプロジェクト」ジオメトリフィルタを使用することが可能であり、このフィルタでは、各反復後に、制約を満たす最も近い形状にジオメトリが調整される。補正レベルセット関数は、このような形状の厚さ測定に用いることができ、ステップアンドプロジェクト方式では、移流が発生した後に厚みを測定し、出力レベルセットを補正レベルセット関数に置き換えることになる。この新しい形状は、ユーザへの出力と次のトポロジ最適化反復の入力との両方を形成する。
【0152】
最大フィーチャサイズの制御は、上記と同様の方法を使用して実現できる。厚さは同じ方法を使用して測定できるが、補正されたレベルセットを最も近い骨格点アプローチに置き換えることができる(保存領域の明示的なフィルタリングが必要になる場合がある)。制約の定式化は、最小フィーチャサイズの制御で示されているものと似ているが、速度フィルタの符号は、オプティマイザがジオメトリを(拡大するのではなく)縮小することだけが許可されるように切り替えることができ、違反領域には内向きのβ補正項を適用できる点が異なる。
【0153】
場合によっては、制約は、製造プロセスで許可される絶対最小厚にあるのではなく、結果として得られるアセンブリの全体的な機械的安定性にある。このような場合、最小フィーチャサイズ制約を最小アスペクト比制約で置き換え、または補完することが望ましい場合があり、それにより、指定された最小フィーチャサイズよりも大きい場合でも、細長いバーが太くなる。
【0154】
アスペクト比制御は、上記の枠組みを利用して、若干の変更を加えて適用することができる。ラインスケルトンを、連結された領域(接合点、または半径がrminより大きい領域との間の遷移で分割)に分割し、各セグメントの長さを用いて、目標のアスペクト比を維持するために必要な最小の厚さを選択することができる。さらに、各点が設計のどのパーティションに属するかに基づいて、tminを空間的に変化するパラメータとするように、制約の定式化を修正することができる。
【0155】
図5は、クライアントまたはサーバとしてプログラムすることができるデータ処理装置500を含むデータ処理システムの概略図である。データ処理装置500は、ネットワーク680を介して1つ以上のコンピュータ590に接続されている。データ処理装置500として図5には1台のコンピュータのみが示されているが、複数のコンピュータを使用することができる。データ処理装置500は、アプリケーション層とオペレーティングシステムとの間で分散することができる様々なソフトウェアモジュールを含む。これらは、上記のように、3Dモデルにおいて厚さを測定するためのボクセル化間引きに基づく中心サーフェスへの距離のプロセス及び/または厚さ制約を適用するための傾斜スケーリングプロセスを実施する1つ以上の3Dモデリングプログラム504のツール及びサービスを含む、実行可能及び/または解釈可能なソフトウェアプログラムまたはライブラリを含むことができる。したがって、3Dモデリングプログラム(複数可)504は、CADプログラム(複数可)504(CADプログラム(複数可)116など)であり、トポロジ最適化のための1つ以上のジェネレーティブ設計プロセス(例えば、ジェネレーティブ設計用のレベルセットベースの方法(複数可)を使用する)、及びジオメトリフィルタリング及び/またはシミュレーション結果フィルタリングを組み込む物理シミュレーション操作(有限要素解析(FEA)またはその他)を実施することができる。さらに、プログラム(複数可)504は、製造制御操作(例えば、設計されたオブジェクトの製造を効果的に行うためのツールパス仕様の生成及び/または適用)を潜在的に実施することができる。使用されるソフトウェアモジュールの数は、実施態様によって異なる場合がある。さらに、ソフトウェアモジュールは、1つ以上のコンピュータネットワークまたは他の適切な通信ネットワークによって接続された1つ以上のデータ処理装置上に分散させることができる。
【0156】
データ処理装置500はまた、1つ以上のプロセッサ512、1つ以上の追加デバイス514、コンピュータ可読媒体516、通信インタフェース518、及び1つ以上のユーザインタフェースデバイス520を含むハードウェアまたはファームウェアデバイスを含む。各プロセッサ512は、データ処理装置500内で実行するための命令を処理することが可能である。いくつかの実施態様では、プロセッサ512は、シングルまたはマルチスレッドプロセッサである。各プロセッサ512は、コンピュータ可読媒体516または追加デバイス514のうちの1つなどの記憶デバイスに記憶された命令を処理することができる。データ処理装置500は、通信インタフェース518を用いて、例えば、ネットワーク580を介して、1以上のコンピュータ590と通信を行う。ユーザインタフェースデバイス520の例としては、ディスプレイ、カメラ、スピーカ、マイク、触覚フィードバックデバイス、キーボード、マウス、及びVR及び/またはAR装置などが挙げられる。データ処理装置500は、例えば、上記のプログラム(複数可)に関連する動作を実行する命令を、コンピュータ可読媒体516または1つ以上の追加デバイス514、例えば、ハードディスクデバイス、光ディスクデバイス、テープデバイス、及び固体メモリデバイスのうちの1つ以上に格納することが可能である。
【0157】
本明細書に記載されている主題及び機能操作の実施形態は、デジタル電子回路、または本明細書に開示されている構造体、及びそれらの構造体の均等物を含むコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらのうちの1つ以上の組み合わせに実装されることができる。本明細書に記載された主題の実施形態は、データ処理装置による実行、またはデータ処理装置の動作を制御するために非一時的コンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1つ以上のモジュールを用いて実施することができる。コンピュータ可読媒体は、コンピュータシステムのハードドライブ、小売チャネルを通じて販売される光ディスク、または組み込みシステムなどの製造製品であってもよい。コンピュータ可読媒体は、例えば、有線または無線ネットワークを介してコンピュータプログラム命令の1つまたは複数のモジュールを配信した後、別々に取得し、後にコンピュータプログラム命令の1つまたは複数のモジュールで符号化することができる。コンピュータ可読媒体は、機械可読記憶装置、機械可読記憶基板、メモリデバイス、またはそれらの1つ以上の組合せとすることができる。
【0158】
「データ処理装置」という用語は、データを処理するための全ての装置、デバイス、機械を包含し、例としてプログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータが含まれる。また、装置は、ハードウェアに加えて、関心のあるコンピュータプログラムの実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、実行時環境、またはそれらのうちの1つ以上の組み合わせを構成するコードを含むことができる。また、本装置は、ウェブサービス、分散コンピューティング、グリッドコンピューティングなど、様々な異なるコンピューティングモデルのインフラストラクチャを採用することができる。
【0159】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイル型言語もしくはインタプリタ型言語、宣言型言語もしくは手続き型言語を含む、任意の好適な形態のプログラム言語で書くことができ、またそれは、独立型プログラムとしての形態、またはモジュール、構成要素、サブルーチン、もしくはコンピューティング環境での使用に好適な他のユニットとしての形態を含む、任意の好適な形態で展開することができる。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応するものではない。プログラムは、他のプログラムまたはデータ(例えば、マークアップ言語の文書に記憶される1つ以上のスクリプト)を保持するファイルの一部分に、目的のプログラム専用の単一のファイルに、または複数の連携ファイル(例えば、1つ以上のモジュール、サブプログラム、またはコードの一部分を記憶するファイル)に記憶することができる。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に位置するかもしくは複数の場所にわたって分散され、通信ネットワークによって相互接続される複数のコンピュータ上で、実行されるように展開することができる。
【0160】
1つ以上のプログラム可能なプロセッサは、本明細書に記載のプロセス及び論理フローを実行して、1つ以上のコンピュータプログラムを実行し、入力データ上で動作して出力を生成することによって機能を実行することができる。また、プロセッサ及び論理フローは、専用論理回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行されることができることに加えて、装置もまた、この専用論理回路として実装されることができる。
【0161】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用マイクロプロセッサ及び専用マイクロプロセッサの両方、ならびにいずれかの種類のデジタルコンピュータの1つ以上のプロセッサを含む。概して、プロセッサは、読み出し専用メモリ、またはランダムアクセスメモリ、または両方から命令及びデータを受信する。コンピュータの基本的な要素は、命令を実行するためのプロセッサ、ならびに命令及びデータを格納するための1つ以上のメモリデバイスである。概して、コンピュータは、データを格納するための1つ以上のマスストレージデバイス、例えば、磁気、光磁気ディスク、もしくは光ディスクも含む、またはこれらのマスストレージデバイスからデータを受信するように、もしくはこれらのマスストレージデバイスにデータを転送するように、もしくはその両方を行うように操作可能に結合される。ただし、コンピュータは、そのようなデバイスを有する必要がない。さらに、コンピュータは、別のデバイス、例えば、ほんの数例を挙げると携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤー、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス(例えば、ユニバーサルシリアルバス(USB)フラッシュドライブ)に埋め込まれることができる。コンピュータプログラム命令及びデータを格納するのに適したデバイスは、例えば、EPROM(消去可能プログラマブル読み出し専用メモリ)、EEPROM(電気的消去可能プログラマブル読み出し専用メモリ)、及びフラッシュメモリデバイスなどの半導体メモリデバイスと、内部ハードディスクまたはリムーバブルディスクなどの磁気ディスクと、光磁気ディスクと、CD-ROM及びDVD-ROMディスクとを例として含む、全ての形式の不揮発性メモリ、媒体、及びメモリデバイスを含む。プロセッサ及びメモリは、専用論理回路によって補完されることができる、またはこの専用論理回路に組み込まれることができる。
【0162】
ユーザとの相互作用を提供するために、本明細書に記載の主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、例えばLCD(液晶ディスプレイ)ディスプレイデバイス、OLED(有機発光ダイオード)ディスプレイデバイス、または他のモニタ、及びユーザがコンピュータに入力を提供できるキーボード及びポインティングデバイス、例えばマウスまたはトラックボールを有するコンピュータ上で実施することが可能である。他の種類のデバイスを使用して、ユーザとの対話を提供することもできる。例えば、ユーザに提供されるフィードバックは、視覚フィードバック、聴覚フィードバック、触覚フィードバックなど、任意の適切な形態の感覚フィードバックとすることができ、ユーザからの入力は、音響、音声、触覚入力など、任意の適切な形態で受領することができる。
【0163】
コンピューティングシステムは、クライアントとサーバを含むことができる。クライアントとサーバは、概して互いに遠く離れており、典型的に通信ネットワークを通じてやりとりする。クライアントとサーバの関係は、それぞれのコンピュータ上で動作するコンピュータプログラムにより、またクライアントとサーバの関係を互いに有することにより生じる。本出願に記載されている発明の主題の実施形態は、コンピューティングシステムに実装されることができ、このコンピューティングシステムは、バックエンドコンポーネント(例えば、データサーバとして)を含む、またはミドルウェアコンポーネント(例えば、アプリケーションサーバ)を含む、またはフロントエンドコンポーネント(例えば、ユーザが本明細書に記載されている発明の主題の実施態様と相互作用することができるグラフィカルユーザインタフェースまたはブラウザユーザインタフェースを有するクライアントコンピュータ)を含む、または1つ以上のそのようなバックエンド、ミドルウェア、もしくはフロントエンドコンポーネントのいずれかの組み合わせを含む。システムのコンポーネントは、任意の好適な形式または媒体のデジタルデータ通信(例えば、通信ネットワーク)によって相互接続されることができる。通信ネットワークの実施例は、ローカルエリアネットワーク(「LAN」)及びワイドエリアネットワーク(「WAN」)、インターネットワーク(インターネットなど)、ならびにピアツーピアネットワーク(アドホックピアツーピアネットワークなど)を含む。
【0164】
本明細書には多くの実施態様の詳細が含まれているが、これらは、請求されているものまたは請求され得るものの範囲に対する制限として解釈されるべきではなく、むしろ開示された主題の特定の実施形態に特有の特徴の説明として解釈されるべきである。本明細書で別々の実施形態との関連で説明されている特定の特徴は、単一の実施形態で組み合わせて実施することもできる。逆に、単一の実施形態との関連で説明されている様々な特徴を、複数の実施形態で別々に、または任意の好適なサブコンビネーションで実施することもできる。さらに、特徴は特定の組み合わせで機能するものとして上記で説明され、当初はそのように特許請求されることさえあり得るが、特許請求された組み合わせからの1つ以上の特徴は、場合によっては、その組み合わせから分離することができ、その特許請求された組み合わせは、サブコンビネーションまたはサブコンビネーションの変形を対象としてもよい。
【0165】
同様に、操作が特定の順序で図面に描かれるが、これは、望ましい結果を達成するために、そのような操作が、図示された特定の順序で、もしくは順次的な順序で実行されること、または図示される全ての操作が実行されることを要求するものと理解されるべきではない。特定の状況では、マルチタスク処理及び並列処理が有利な場合もある。更に、上記の実施形態における様々なシステム構成要素の分離は、全ての実施形態においてそのような分離を必要とするものと理解されるべきではなく、説明されるプログラム構成要素及びシステムは、一般に、単一のソフトウェア製品に一緒に統合され得るか、または複数のソフトウェア製品にパッケージ化され得ることが理解されるべきである。
【0166】
このように、本発明の特定の実施形態について説明した。他の実施形態は、以下の特許請求の範囲の範囲内にある。例えば、中心サーフェスでの厚みの推定値は、形状の特定の領域で厚み要求を全く発動しないかどうかなどのロジックを行うために使用することができる。さらに、いくつかの実施態様では、フィーチャ厚制御を必要とせず、例えば、記載されたシステム及び技術は、フィーチャ厚の視覚化に使用することができる。また、特許請求の範囲に記載された動作は、異なる順序で実行しても望ましい結果を得ることができる。
図1A
図1B
図1C
図2A
図2B
図2C
図2D
図2E
図2F
図2G
図2H
図2I
図2J
図2K
図2L
図3A
図3B
図4A
図4B
図5
【外国語明細書】