(57)【要約】一例において、方法は、積層造形において生成されるべき物体の第１のデータモデルを、プロセッサにおいて受け取ることを含む。プロセッサを用いて、第２のデータモデルが決定され得る。第２のデータモデルを決定することは、物体を含む体積の複数の隣接する重ならない副体積のそれぞれに関して、前記副体積を特徴付け且つルートノードを有する副体積オクトリーを生成することを含むことができる。第２のデータモデルを決定することは、物体を含む体積を特徴付ける体積オクトリーを生成することを更に含むことができ、体積オクトリーは、その最も下のノードにおいて副体積オクトリーのルートノードを特徴付ける。【選択図】図１
2019527905.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサにおいて、物体の第１のデータモデルを受け取り、
前記プロセッサを用いて、第２のデータモデルを生成することを含み、前記第２のデータモデルを生成することが、
前記物体を含む体積の複数の隣接する重ならない副体積のそれぞれに関して、前記副体積を特徴付け且つルートノードを有する副体積オクトリーを生成し、
前記物体を含む体積を特徴付ける体積オクトリーを生成することを含み、前記体積オクトリーが、その最も下のノードにおいて前記副体積オクトリーの前記ルートノードを特徴付ける、方法。
【請求項２】
オクトリーを生成することは、
前記データモデルにおける第１のサイズの８個の体積からなるグループのそれぞれに対して以下のことを検査することを含み、即ち、
前記グループが所定の属性を共有する体積からなる場合、当該体積をマージして所定の属性を有する第２のサイズの体積を画定し、
そうでなければ、前記グループが前記所定の属性を欠いている体積からなる場合、当該体積をマージして前記所定の属性を欠いている前記第２のサイズの体積を画定し、
そうでなければ、前記第２のサイズの体積を示すノードを画定し、当該ノードはその副部分に前記属性を含む、請求項１に記載の方法。
【請求項３】
前記属性は、前記体積が前記物体の内部に完全にあるか否かに関するしるしを含む、請求項２に記載の方法。
【請求項４】
副体積オクトリーを生成することは、先行する反復において画定されたノード及び／又は体積により表された体積を検査し、ルートノード又は体積が画定されるまで、新たなノード及び／又は体積を画定することを含む、請求項２に記載の方法。
【請求項５】
少なくとも１つの副体積オクトリーを格納することを更に含む、請求項４に記載の方法。
【請求項６】
前記体積オクトリーを生成することは、先行する反復において画定されたノード及び／又は体積により表される体積を反復して検査し、前記副体積オクトリーのルートノード及び／又は体積から開始することを含む、請求項４に記載の方法。
【請求項７】
オクトリーを生成することは、前記物体の直列化オクトリー表現を形成することを含み、この場合、前記物体の直列化オクトリー表現において、前記ノードは、
（i）物体生成の意図された順序において以前に生成されるべき前記物体の層を含む体積を表すノードが、その後に生成されるべき前記物体の層（単数または複数）からなる体積を表すノードに先行する；
（ii）前記物体の所与の層を含む体積を表すノードが、前記オクトリー内のノードのレベルに基づいて順序付けられ、親ノードが子孫ノードより前に出現し；及び
（iii）前記物体の所与の層を含む体積を表し且つ前記オクトリー内の同じレベルに属するノードが、場所符号化パターンに従って直列化される、ように順序付けられる、請求項１に記載の方法。
【請求項８】
前記物体の所与の層を含む体積を表し且つ前記オクトリー内の同じレベルに属するノードは、モートンコードパターンに従って、直列化される、請求項７に記載の方法。
【請求項９】
各副体積オクトリーを前記体積オクトリーへ挿入することにより、前記体積オクトリー及び前記副体積オクトリーをマージすることを更に含む、請求項１に記載の方法。
【請求項１０】
積層造形において生成されるべき複数の層のそれぞれのデータ表現を提供するために、前記第２のデータモデルからデータを抽出し、
前記データ表現に基づいて前記物体を生成することを更に含む、請求項１に記載の方法。
【請求項１１】
プロセッサにより実行された際に、プロセッサに以下のこと、即ち、
複数の第１のデータモデル、及び第１のサイズの８個の体積からなるグループを検査することにより層毎の製造において生成するための物体を表す第２のデータモデルを、物体モデルデータから生成することをさせる命令を含む、機械可読媒体であって、
前記検査は、各グループに関して、
前記グループが所定の属性を共有する体積からなる場合、当該体積をマージして、所定の属性を有する第２のサイズの体積を画定し；
そうでなければ、前記グループが所定の属性を欠いている体積からなる場合、当該体積をマージして、所定の属性を欠いている第２のサイズの体積を画定し、
そうでなければ、第２のサイズの体積を示すノードを画定し、当該ノードがその副部分に属性を含むことを行い、
前記第１のデータモデルを生成する際にノード及び／又は体積を画定するための命令が、先行する反復において画定されたノード及び／又は体積を検査することに基づいて、前記第２のサイズの体積が所定のサイズに到達するまで、反復してノード及び／又は体積を画定するための命令であり、前記所定のサイズの体積を示すノードが画定され、
前記第２のデータモデルを生成する際にノード及び／又は体積を画定するための命令が、前記第１のデータモデルを生成する際に画定された前記所定のサイズのノードから開始して、単一のノードが前記物体を含む体積を示すまで、先行する反復において画定されたノード及び／又は体積を検査することに基づいて、反復してノード及び／又は体積を画定するための命令を含み、
前記命令が、前記プロセッサに前記複数の第１のデータモデルを格納させる命令を更に含む、機械可読媒体。
【請求項１２】
プロセッサにより実行された際に、前記プロセッサに、前記複数の第１のデータモデルを前記第２のデータモデルへインタリーブすることにより、前記第１及び第２のデータモデルをマージさせる命令を更に含む、請求項１１に記載の機械可読媒体。
【請求項１３】
プロセッサにより実行された際に、前記プロセッサに前記第１及び第２のデータモデルを生成させる命令を更に含み、前記生成させることは、各データモデルにおいて、
（i）物体生成の意図された順序において以前に生成されるべき物体の層を含む体積を表すノードが、その後に生成されるべき物体の層（単数または複数）からなる体積を表すノードに先行し、
（ii）前記物体の所与の層を含む体積を表すノードに関して、より粗い体積分解能のノードが、より精細な体積分解能のノードに先行し、及び
（iii）所与の層を含む体積を表し且つ同じ分解能に属するノードが、所定の場所符号化パターンに従って直列化されるようになっている、請求項１１に記載の機械可読媒体。
【請求項１４】
層毎の製造プロセスにおいて製造されるべき物体の少なくとも一部の表現を含む機械可読媒体であって、前記表現は、
第１の分解能と第２の分解能との間の前記物体の体積分解能にまたがる第１の複数のノードを有するオクトリーを表すデータと、
第３の分解能と第４の分解能との間の前記物体の体積分解能にまたがる第２の複数のノードを有する複数のオクトリーのそれぞれを表すデータとを含み、
各オクトリーにおいて、ノードは、
（i）物体生成の意図された順序において、以前に生成されるべき前記物体の層を含む体積を表すノードが、その後に生成されるべき前記物体の層（単数または複数）からなる体積を表すノードに先行し；
（ii）前記物体の所与の層を含む体積を表すノードに関して、より粗い体積分解能のノードが、より精細な体積分解能のノードに先行し；及び
（iii）所与の層を含む体積を表し且つ同じ分解能に属するノードが、所定の場所符号化パターンに従って順序付けられるように、順序付けられる、機械可読媒体。
【請求項１５】
前記オクトリーの各ノードが、所定の共通の長さからなるビットストリングにより表され、以下の１つとしてそれらの副体積の少なくとも１つを分類し、即ち、
（i）前記副体積の全体にわたって一貫した所定の属性を有する、
（ii）前記副体積の全体にわたって前記所定の属性を欠いている、
（iii）前記副体積の副部分に所定の属性を有する、
請求項１４に記載の機械可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
積層造形技術は、構築材料の選択的な固形化処理を通じて層毎に三次元物体を生成することができる。係る技術の例において、構築材料は、層毎の方法で供給され、固形化処理方法は、選択された領域、例えば融剤を有する領域において溶融を生じさせるために、構築材料の層を加熱することを含むことができる。他の技術において、化学的固形化処理方法または結合剤のような他の固形化処理方法が使用され得る。
【０００２】
生成されるべき三次元物体に関連するデータは、積層造形装置に供給され、三次元物体を生成するために使用され得る。
【０００３】
さて、制限しない例が、添付図面に関連して説明される。
【図面の簡単な説明】
【０００４】
【図１】三次元物体を表すデータを生成するための例示的な方法の流れ図である。
【図２】オクトリー構造を示す略図である。
【図３】オクトリーにおいてノードを画定するための例示的な方法の流れ図である。
【図４】積層造形を用いて物体を生成するための例示的な方法の流れ図である。
【図５】例示的な処理装置の略図である。
【図６】機械可読媒体と連係する例示的なプロセッサの略図である。
【図７】マルチレベルのオクトリー構造を示す略図である。
【発明を実施するための形態】
【０００５】
詳細な説明
積層造形技術は、構築材料の固形化処理を通じて三次元物体を生成することができる。幾つかの例において、構築材料は、例えば、プラスチック、セラミック、又は金属粉末であることができる粉末状粒状物質であることができる。生成される物体のプロパティ（特性）は、構築材料のタイプ、及び使用される固形化処理のメカニズムのタイプに依存するかもしれない。構築材料が、例えば製造チャンバ内で、例えば印刷ベッド上に堆積され、層毎に処理され得る。
【０００６】
幾つかの例において、選択的な固形化処理は、例えば方向性エネルギーが印加される構築材料の固化という結果になるレーザ又は電子ビームを用いて、エネルギーの方向性印加を通じて達成される。
【０００７】
他の例において、少なくとも１つの印刷薬剤は、構築材料に選択的に付着されることができ、付着される際に液体であることができる。例えば、融剤（「癒着剤」または「合体剤」とも呼ばれる）は、生成されるべき三次元物体のスライスを表すデータ（例えば、構造設計データから生成され得る）から導出されたパターンで構築材料の層の部分上へ選択的に分配され得る。融剤は、エネルギー（例えば、熱）が層に印加された際に、構築材料が融合（合体）して固化し、当該パターンに従って三次元物体のスライスを形成するように、エネルギーを吸収する組成物を有することができる。他の例において、合体は、幾つかの他の態様で達成され得る。合体変性剤（変性剤またはディーテイリング剤とも呼ばれる）は、例えば合体を低減または増大させることにより、融剤の効果を変更するように働く、又は物体に対する特定の仕上げ又は外観をもたらすことに役立つように働き、それ故に係る薬剤は、ディーテイリング剤とも呼ばれることができ、幾つかの例において印刷薬剤としても使用され得る。幾つかの例において、例えば、染料または顔料を含む着色剤が、融剤または変性剤として、及び／又は物体に特定の色を提供するための印刷薬剤として使用され得る。
【０００８】
積層造形システムは、構造設計データに基づいて物体を生成することができる。これは、例えばコンピュータ支援設計（ＣＡＤ）アプリケーションを用いて生成されるべき物体の三次元モデルを生成するデザイナーを含むことができる。当該モデルは、物体の固体部分を定義することができる。積層造形システムを用いて当該モデルから三次元物体を生成するために、当該モデルのデータ（モデルデータ）は、当該モデルの平行面のスライスを生成するために処理され得る。各スライスは、積層造形システムにより固化されるべき又は合体されるべき構築材料の個々の層の部分を定義することができる。
【０００９】
大きくて複雑な部品を高い分解能でモデル化する場合、データモデルは、すぐに大きくなる可能性がある。
【００１０】
図１は、コンピュータで実施される方法であることができる方法の流れ図であり、当該方法は、ブロック１０２において、積層造形において生成されるべき物体であることができる物体の第１のデータモデルを受け取ることを含む。
【００１１】
幾つかの例において、このデータは、複数のノードとして層毎の製造プロセスにおいて製造されるべき物体の少なくとも一部のオクトリー（八分木）表現（例えば、古典的なオクトリー表現）として提供されることができ、この場合、最も大きな体積を表すノード（「ルート」ノード）が最初に記述され、そのオクタントが後続し、それらのオクタントが後続するなどである。幾つかの例において、データは、ＳＴＬファイル、ＯＢＪファイル、ＤＸＦファイル、ＪＳＯＮファイル。３mfファイル、vtkファイル、又は同種のもののようなデザインファイルとして、物体の表現を提供することができる。物体は、メッシュ（例えば、多角形メッシュ）として、又は一連のスライスで表されることができる。幾つかの例において、当該表現は、例えば物体および／または周囲の体積（例えば、物体を包囲する直方体）の「ボクセル」毎に、少なくとも１つの属性（例えば、存在または不在、色、テクスチャー、透明度、導電率、強度、有孔性、弾性、又は同類のもの）又は印刷材料（例えば、印刷薬剤または構築材料の選択）の仕様を含むデータの印刷分解能表現を含むことができる。ボクセルは、体積ピクセルとしてみなされることができ、任意の各ボクセルは、アドレス指定可能な印刷領域であることができ、幾つかの例において、ボクセルは、装置の印刷分解能において定義される。幾つかの例において、各ボクセルは、例えば立方体または同じサイズからなる同じ形状および／またはサイズである一方で、他の例において、ボクセルは、サイズ及び／又は形状が異なるかもしれない。
【００１２】
ブロック１０４及び１０６は、第２のデータモデルを生成する方法を含む。ブロック１０４は、物体を含む体積の複数の隣接する重ならない副体積毎に、副体積を特徴付ける副体積オクトリーを生成することを含み、ブロック１０６は、物体を含む体積を特徴付ける体積オクトリーを生成することを含み、当該体積オクトリーは、その最も低いノードにおいて副体積オクトリーのルートノードを特徴付ける。
【００１３】
体積オクトリー及び副体積オクトリーの文脈における用語「体積」及び「副体積」は、体積オクトリーが関心のある「全体の」体積を記述し、副体積オクトリーがそれぞれ関心のある体積の一部分を記述するので、識別子として単に意図されている。代わりに、用語「第１」及び「第２」のオクトリーが使用され得る。
【００１４】
３レベルのオクトリーの表現が図２に示される。図２において、ルートノードＡは単一の体積である。次のレベルは、それぞれが物理的な副体積を表すオクタント（八分空間）Ｂ１〜Ｂ８へ、この体積を分割する。Ｂ１、Ｂ２、Ｂ３及びＢ４が体積の下側半分のクワドラント（quadrant）を表す一方で、Ｂ５、Ｂ６、Ｂ７及びＢ８は体積の上側半分に関係する。また、図２は、次のレベルも示すが、例示の簡略化のために、これはＢ１だけ示された。次のレベルは、Ｂ１をオクタントＣ１１〜Ｃ１８へ分割し（この場合、この表記法は、Ｂ２がＣ２１〜Ｃ２８と表記されたオクタントへ分割され得るように拡張され、より具体的には、Ｂｎは、Ｃｎ１〜Ｃｎ８と表記されたオクタントへ分割され得る）、それらのそれぞれは物理的な副体積を表す。やはり、この例において、Ｃｎ１〜Ｃｎ４は、ｎ＝１〜８の場合の各Ｂｎ体積の下側半分を表す。理解されるように、各ノードは、更に後述されるように、物体の少なくとも１つの態様を記述するデータを含む。
【００１５】
図示されていないが、「Ｄ」レベルノードが定義されることができ、各Ｃｎｍ（ｎ＝１〜８、及びｍ＝１〜８）体積をオクタントへ分割することを含む。一例において、各Ｄレベルノードは、８個の印刷分解能ボクセルを記述することができる。係る例において、図１のブロック１０４は、６４個の副体積オクトリーを形成することを含むことができ、それらのそれぞれは、その８個の副体積および５１２個のＤレベルノードを記述する単一のＣノードを含む。ブロック１０６は、ルートノード（Ａ、８個の副体積を記述する）、及び８個のＢノード（それぞれが８個の副体積を記述し、副体積のそれぞれがＣノードに対応する）を有するオクトリーを生成することを含むことができる。
【００１６】
このように、物体を記述するオクトリーの２つの「レベル」又は「順序」が、生成される。物体が特定の分解能で記述されることができる場合に、オクトリーは物体を表す有効な方法を提供するが、データ圧縮技術が使用される場合でさえも、モデルを有効に処理するためのデータ記憶資源および処理資源が多大になるかもしれない。例えば、１２個のオクトリーのレベルは、物体を記述するのに適切であることができるが、これは、１６Ｇｂ未満のＲＡＭを有するプロセッサの速度を落とすかもしれない。オクトリーは深さと共に指数関数的に増大するので、分解能を増加することは、データを処理するための処理資源および記憶資源も劇的に増加することを意味し、そのため、問題は、容易にスケーリングされない。
【００１７】
図１は、分割されたレベルのオクトリー表現を形成するための方法を記述し、この場合、体積空間は、副体積セルの規則的な格子へ有効に細分化され、これらセルのそれぞれの副体積オクトリーが構築される。それらが全て構築された場合、格子は、全体的な体積オクトリーのトップレベルを構築するために横断される。より詳細に後述されるように、オクトリーは、その後にマージされ得る。
【００１８】
幾つかの例において、物体は、属性を参照することにより記述され得る。幾つかの例において、物体内の体積は、（i）全体的な体積にわたる所定の属性を有すること（即ち、あらゆる副体積またはその領域が所定の属性を共有する）、（ii）所定の属性を完全に欠いていること（即ち、あらゆる副体積またはその領域が所定の属性を欠いている）、又は（iii）所定の属性を有する副領域および所定の属性を欠いている副領域を含むことの１つとして分類され得る。
【００１９】
一例において、属性は、体積が物体の一部分を含むか否か、及び各体積が以下の１つとして分類され得るか否かであることができ、即ち、
（i）物体の完全に内部であること（「ブラック」と称する）
（ii）物体の完全に外部であること（「ホワイト」と称する）
（iii）物体の境界にまたがること（「グレー」と称する）、その結果、体積の副領域は物体の内部にあり、別の副領域は外部である。
【００２０】
幾つかの例において、境界にまたがる体積（又はより一般的には、属性を有する副領域および属性を欠いている副領域を含む）に関して、２つの考えられるカテゴリーが存在し、即ち、「末端のグレー」体積、又は「中間のグレー」体積である。末端のグレー体積は、当該体積が印刷分解能体積である場合に符号化されることができ、又は特定のモデルにより符号化される最も小さい体積である。係るグレー体積は、判断が、当該体積をブラック体積またはホワイト体積として処理するか否かに関してなされる場合に、中間グレー体積とは異なって処理されることができ、例えば、実際的な言い方をするなら、体積は、物体の内部または外部にあるように割り当てられる。しかしながら、係る末端グレー体積は、幾つかの例において省略され得る。
【００２１】
【表１】
2019527905.tif 000003
【００２２】
この例において、体積の分類化は、２ビットで表され、即ち、ホワイト体積に対して００、ブラック体積に対して０１、中間グレー体積に対して１０、及び末端グレー体積に対して１１である。
【００２３】
各ノードは、その副体積を特徴付ける１６ビットストリングとして表され得る。かくして、物体が立方体の底部を埋めるスライスを占有する場合、図２に示された立方体の底部の四分の一を占めて、「Ａ」ノードは、４個の「グレー」体積および４個のホワイト体積を有し、順番にその副体積に関して以下のように表され得る。
【００２４】
Ｂ１｛１０｝、Ｂ２｛１０｝、Ｂ３｛１０｝Ｂ４｛１０｝、Ｂ５｛００｝、Ｂ６｛００｝、Ｂ７｛００｝、Ｂ８｛００｝又は、[1010101000000000]。
【００２５】
Ｂ１ノードは、上側半分においてホワイト体積および下側半分においてブラック（物体に含まれる）体積を有し、そのため、[0101010100000000]として符号化され得る。
【００２６】
Ｂ５体積は、ホワイトであり、更に後述されるように、幾つかの例において、これは、Ｂ５体積に関連して獲得されるべき情報がもはや存在しないので、Ｂ５ノードがオクトリー内に形成されないことを意味することができる。
【００２７】
より具体的には、係る符号化は、任意のバイナリ属性（例えば、特定の色の有無、導電性、弾性、印刷薬剤、又は同類のもの）を指定するために使用され得る。例えば、各体積は、「赤」又は「赤でない」又は「赤の副領域および赤でない副領域を含む」として分類化される、或いは「導電性」又は「導電性でない」又は「導電性の副領域および導電性でない副領域を含む」として分類化され得る。
【００２８】
幾つかの例において、データは、所定の態様で、例えばノード内に記述される副体積の位置に基づいて、順序付けられ得る。例えば、「最下位ビット」、即ちビットストリングの最後のビットは、より小さいｚ座標を有する副体積に関する情報を含み、ｚ座標が等しい場合、より小さいｘ座標を有する子が最下位ビットを占有するなどである。他の所定の順序が使用され得る。
【００２９】
また、２ビット指定は、グレー、ブラック又はホワイトとしてノードタイプを識別するために拡張され得る。これは、４個の係るノードがバイトを含み、それ故に一緒に格納され得るので、有用であることができる。以下で明らかになるように、幾つかの例において、オクトリーはマージされ又はそれらの一部分は抽出される。しかしながら、以下で与えられる様々な例において、直列化表現は、例えば物体生成の層毎の特性を考慮して、採用されることができる。図２が示すように、各分解能において物体の横方向領域に４個のノードが存在し、これらノードは、任意のデータ処理において一緒に処理される。
【００３０】
他の例において、ハフマン符号化のような他の符号化が使用され得る。
【００３１】
体積Ｂ５に関連して簡単に上述されたように、及び容易に理解され得るように、Ｂレベルの体積が全体的に物体の内部にある場合、形成され得るそれらの任意の副ノードも、全体的に物体の内部にある。従って、それは、「グレー」ノードのみ、即ち属性を有する副領域および属性を欠いている副領域を含むこれらが格納される場合であることができる。体積がホワイト又はブラックである場合、体積が先行するノードで特徴付けられるので、ノードとして格納される必要はなく、この特性記述は、全ての子孫に拡張される。例えば、体積の下側半分を占有する物体に関して、これは、より高いｚを有する４個のホワイト副体積およびより低いｚを有する４個のブラック副体積を有する単一ノードを備える１つのレベルのオクトリーにより、完全に特徴付けられ得る。例えば、１６ビットストリングは、0000000001010101としてルートノード（グレー体積を記述する）を特徴付けることができる。これは、物体の全部を完全に表す。しかしながら、ブラック又はホワイトの副体積の１つが代わりにグレーである場合、その副体積を特徴付ける更なるノードが、その副体積のために形成され得る。
【００３２】
従って、幾つかの例において、オクトリーは、グレー体積を特徴付けるノードを含むことができ（ブラック及びホワイトのノードの体積が格納される必要がないので）、ボクセル又は印刷分解能レベルにおいて、副体積はブラック又はホワイトとして分類化され得る。他の例において、グレーノードは、細分化される任意のノードであることができる（たとえ子孫ノードの全てが属性を有する又は欠いているとしても）。ブラックノード又はホワイトノードは、細分化されないそれらのノードであることができる。
【００３３】
幾つかの例において、副体積オクトリーは、ルートノードを有するために画定され得る。副体積が全体的に一貫した（例えば、「ブラック」又は「ホワイト」である）体積である場合、それにも関わらず、それはノードとして維持され得る。かくして、幾つかの例において、オクトリーは、完全に一貫している体積を記述することができる副体積オクトリーのルートノードの場合を除いて、異なるカテゴリーのオクタントから作成されるノードのみを含む。
【００３４】
図３は、物体のオクトリー表現を構築するためのコンピュータで実施される方法であることができ、且つ上記のブロック１０４及び１０６の何れかを実行する際に利用され得る方法の一例を示す。方法は、より小さい体積から開始する、オクトリーを構築することに関する「ボトムアップ」方法とみなされ得る。
【００３５】
ブロック３０２は、データモデルにおける第１のサイズの８個の体積からなるグループを検査することを含む。係る検査は、特定の所定の属性（例えば、内部、導電性、特定の色など）に関連して実行され得る。ブロック３０４において、グループが、それら全体の体積の全体にわたって所定の属性を共有する体積で完全に構成されるか否かが判断される。そうである場合、ブロック３０６において、体積はマージされて、所定の属性を有する第２のサイズ（より大きい、８倍の体積を含む）の体積を画定する。そうでなければ、ブロック３０８において、グループが、それら全体の体積の全体にわたって所定の属性を欠いている体積で完全に構成されるか否かが判断され、その場合、ブロック３１０は、所定の属性を欠いている第２のサイズの体積を画定するために、当該体積をマージすることを含む。これら条件のどちらも真でない場合、グループは混合され、即ち第１のサイズの幾つかの体積が、少なくとも部分的に属性を有し、第１のサイズの幾つかの体積が、少なくとも部分的に、属性を欠いている。その場合、ブロック３１２は、副部分に属性を含む第２のサイズの体積を示すノードを画定することを含む。ブロック３０６及び３１０のマージ処置のそれぞれにおいて、より小さい体積は、それに特に関係するデータが保持されないように、実際には捨てられることができ、その理由は、係るデータが物体に関する利用可能な情報に寄与しないからである。しかしながら、ブロック３１２において、ノードを形成する場合、第１のサイズの体積を記述するデータは、属性を含むこれら体積と属性を欠いているこれら体積を区別するために、保持され得る。例えば、このデータは、上述されたような１６ビットストリングであることができる、ノードを特徴付けるビットストリングで戻され得る。
【００３６】
副体積オクトリーを生成する場合、図３の方法は、先行する反復において画定されたノード／体積により表される体積を検査し、且つその副体積を示すノード又は体積が形成されるまで新たなノード／体積を形成することにより、反復して実行されることができ、その時点で、データは、例えばコンピュータ可読メモリに格納され得る。上述されたように、幾つかの例において、最も大きい体積は、たとえそれら副体積の全てが属性を共有する又は副体積の全てが属性を欠いているとしても、その副体積を特徴付けるノードとして格納される。副体積のサイズは、メモリ容量および処理能力に基づいて決定され得る。例えば、副体積のサイズは、利用可能な処理装置により並行して構築され得る副体積の数、又は副体積を格納するために利用可能なメモリのタイプに従って決定され得る。
【００３７】
係る副体積オクトリーは、データが手順の全体にわたって繰り返してアクセスされ得るので、比較的高速なアクセスメモリ（係るＲＡＭ）に構築され得る。副体積オクトリーの深さレベルの数は、利用可能な資源およびモデルの複雑性に基づいて決定され得る。
【００３８】
体積オクトリーを生成する場合、図３の方法は、先行する反復において画定されたノード／体積により表される体積を検査し且つ当該副体積を表すノード／体積から始まる新たなノードを形成することにより、反復して実行されることができ、幾つかの例において、「ルートノード」が形成されるまで継続される。
【００３９】
幾つかの例において、２つ以上の副体積レベルが存在することができる。例えば、副体積オクトリーにより特徴付けられた各体積は、レベルオクトリーを分割することにより記述され得る。
【００４０】
オクトリーを決定することは、データを直列化することを含むことができ、この場合、より詳細に後述されるように、直列化された表現（直列化表現）は、ノードが特定の方法で順序付けられるように構築される。これは、物体がＸＹ平面に横たわる層において生成される際にＺ座標が物体の高さに関係するＸＹＺ空間を考察する場合、「Ｚ優先」順序付けとみなされ得る。明らかになるように、係る順序付けは、層状の三次元物体に関連するデータを処理するのに適することができる。
【００４１】
一例において、直列化表現は、説明のこの部分のために体積オクトリー又は副体積オクトリーの一例であることができる、図２に示された３レベルのオクトリーに関連して説明された３つの規則に従う。Ｂ１、Ｂ２、Ｂ３及びＢ４が体積の下側半分のクワドラントを表す一方で、Ｂ５、Ｂ６、Ｂ７及びＢ８は体積の上側半分に関係することを思い出されたい。同様に、Ｃｎ１〜Ｃｎ４は、ｎ＝１〜８の場合の各Ｂ体積の下側半分を表す。
【００４２】
直列化表現を格納する際に適用されるべき第１の規則は、物体生成の意図された順序において以前に生成されるべき物体の層を含む体積を表すノードが、その後に生成されるべき物体の層（単数または複数）からなる体積を表すノードに先行することである。
【００４３】
図２の例を利用し（オクトリー内に全てのノードが存在すると仮定する）、及び積層造形において、物体が通常その底部から上方へ生成されることに基づくと、一例において、最初に生成されるべき層は、ｎ＝１〜４の場合にＣｎ１〜Ｃｎ４を含む下側層である。また、ノードＢ１〜Ｂ４は、ノードＡを作る際、この層も含む。従って、この規則は、Ａ及びＢ１〜Ｂ４がＢ５〜Ｂ８（第１（最初）の層の表現を含まない）の前にリストアップされることを意味する。また、それは、ｎ＝１〜４の場合のＣｎ１〜Ｃｎ４が他のＣノードの全ての前にリストアップされることを意味する。
【００４４】
第２の規則は、物体の所与の層を含む体積を表すノードが、オクトリー表現内のノードのレベルに基づいて順序付けられることであり、この場合、親ノードは、子孫ノードの前に出現する。かくして、第１の層に関して、Ａは、Ｂ１〜Ｂ４の何れかの前にリストアップされ、Ｂ１〜Ｂ４はｎ＝１〜４の場合にＣｎ１〜Ｃｎ４の前にリストアップされる。
【００４５】
第３の規則は、第１及び第２の規則が適用された後、即ち物体の所与の層を含む体積を表し且つオクトリー内の同じレベルに属するノードに関して、ノードは、場所符号化パターンに従って直列化される。例えば、これは、空間の中を通る特定の経路を画定するモートン（Ｚ順序）コード又は同類のものであることができる。モートンコードは、局所性を維持しながら、多次元データを一次元にマッピングする関数の一例である。従って、この例において、場所符号化パターンは、Ｂ１からＢ４の順序およびｎ＝１〜４の場合にＣｎ１〜Ｃｎ４の順序を決定するために適用され得る。
【００４６】
上述されたように、物体の第１の層に関して、これは、Ａ、Ｂ１〜Ｂ４（場所符号化
パターンに従って順序付けられた）、ｎ＝１〜４の場合にＣｎ１〜Ｃｎ４（空間符号化パターンに従って順序付けられた）の順序という結果になる。これは、直列化表現の第１の部分を与える。表現の容易さのために、角括弧で示された状態の場所符号化パターン及びこの部分は、以下のように要約され得る。即ち、
2019527905.tif 000004
【００４７】
まだ含まれていない上の次の層は、ｎ＝１〜４の場合にＣｎ５〜Ｃｎ８を含む。しかしながら、この層は、Ｂ１〜Ｂ４及びＡによっても表され、それ故にこの層を表すことは、ｎ＝５〜８の場合にＣｎ１〜Ｃｎ４を上記のコード部分の最後に追加することを単に意味し、これは規則のいずれも破らないので、以下のように直列化表現を拡張する。即ち、
2019527905.tif 000005
【００４８】
まだ含まれていない上の次の層は、Ｂ５〜Ｂ８の部分を含み、当該Ｂ５〜Ｂ８の部分はそれらの子孫ノードの前に含まれるべきである。これは、この例において、以下のように体積Ａに含まれる物体の直列化表現を与える。即ち
2019527905.tif 000006
【００４９】
別のレベル、即ちＤレベルが追加される場合、ノードは、Ｚ優先順序付けに従って、それらの対応する「Ｃ」レベルの表現の後に挿入される。
【００５０】
説明されたように、幾つかの例において、場合によっては、幾つかのノードは、全てが属性を有する又は全てが属性を欠いている（及び副体積オクトリーのルートノードでない）副体積をそれらが表す場合に画定されず、そのため幾つかのノードは、上述されたように表現から欠落することができる。
【００５１】
係るデータ構造は、物体の特定の層を記述するデータが連結されるので、三次元印刷に良好に適している。これは、レベルの順序で表しているオクトリーと対比されることができ（幅順序付けと呼ばれ得る）、この場合、同じ表記法の下で、物体の記述は、以下のようになることができる。即ち
2019527905.tif 000007
【００５２】
データの別の考えられる表現は、以下のように表され得る「深さ優先」順序付けであることができる。即ち
2019527905.tif 000008
【００５３】
係る表現において、製造されるべき第１の層の記述、ｎ＝１〜４の場合にＣｎ１〜Ｃｎ４は、データの全体にわたって分散され、データを読み出す（検索する）ことが複雑になる。更に、以下の説明から明らかになるように、係る表現により、１つの層に関連して読み出されるデータが、後続の層に関連してデータを読み出す際に役立つことを可能にしない。
【００５４】
上記の例において、ルートノードＡを表すノードは、直列化において最初に配列される。
【００５５】
データは、データが所定の順序と関連付けられていることをデータ読み取り装置が理解するという意味で、直列化へ「配列」される。幾つかの例において、データは、記憶媒体（例えば、ランダム・アクセス記憶媒体）に物理的に分散され得る。しかしながら、データは、データの記述された配列が符号化される関係を有するように、格納される。
【００５６】
図４は、物体のオクトリー表現を提供する方法であることができ、且つコンピュータで実施される方法であることができる方法の一例である。
【００５７】
ブロック４０２は、この例において、上述された「Ｚ優先」直列化表現を用いて、複数の副体積オクトリーを形成することを含み、各副体積オクトリーは、ブロック４０４において、データオブジェクトとして、機械可読媒体に別個に格納される。ブロック４０６は、（また、直列化表現を用いて）体積オクトリーを形成することを含み、ブロック４０８は、体積オクトリーをデータオブジェクトとして機械可読媒体に格納しながら、各副体積オクトリーを体積オクトリーへ挿入することにより、体積オクトリーと副体積オクトリーをマージすることを含む。マージは、副体積オクトリーのルートノード及びそのなんらかの子孫ノードを体積オクトリーの最後のノード間に挿入することにより、簡単に実行され得る。また、係るマージされた直列化表現は、上述された「Ｚ優先」順序にも準拠する。
【００５８】
一例において、マージされたオクトリーにおいて約１０〜１４の深さレベルが存在することができる。オクトリーの１４番目の深さレベルが完成した場合（即ち、オクトリーが、その深さレベルにおいて全ての考えられるノードを含む）、これは、約５×１０１２個のノードが格納されたことを意味する。係るオクトリーを構築する場合、データ記憶仕様があまり高くない限り、インメモリ表現は実用的である。
【００５９】
オクトリーのノードが１６ビット（２バイト）を含む場合、前述した例は、かなりのコンピューティング資源を必要とする、ＲＡＭの約（２１４）３＊２バイト＝８７９６ＧＢを必要とする。
【００６０】
１６ビットノードが上述されたが、実際問題としてノードが約３４バイトであることができることを意味するノードの構造を画定するために、ポインタが使用され得る。更に、説明された１６ビットノードは、ほんの１つのプロパティを符号化する。物体のデータモデルは、多数のプロパティを有することができ、それ故に実際問題として、資源（リソース）仕様は、大幅に高くなる可能性がある。
【００６１】
かくして、比較的単純な物体でさえも、格納および処理するための大幅な量のデータという結果になる可能性があり、これは、現在の従来型の容易にアクセス可能なハードウェアの範囲を越える可能性があり、「既製」の処理資源仕様を越える。係る例において、マルチレベルの手法は、インメモリ処理の処理資源仕様を容易化することができる。
【００６２】
例えば、第１の６個のレベルが体積オクトリーにおいて表され、６４×６４×６４個の副体積オクトリーが画定されるように、オクトリーが分割される場合、各オクトリーは、約２０×１０６個のノードを含み、それは「インコア」、即ちＲＡＭにおいて又は利用可能な高速メモリ資源において効率的に処理され得る。
【００６３】
ブロック４１０は、積層造形において生成されるべき複数の層のそれぞれのデータ表現を提供するために第２のデータからデータを抽出することを含み、ブロック４１２は、当該データ表現に基づいて物体を生成することを含む。
【００６４】
Ｚ優先順序は、ブロック４１２における物体生成のための効率的なデータ抽出を可能にすることができる。幾つかの例において、直列化データは、メモリに格納されることができ、それらの一部分が、物体を生成するための制御命令を決定するように処理を実行するために読み出され得る（例えば、構築材料および／または印刷薬剤が配置され得る場所、使用するための材料／薬剤はどれか、温度などのようなどのパラメータが使用され得るかを指定する命令を決定するために）。
【００６５】
一例を考察すると、物体の下側の層を生成するために、第１の層の少なくとも一部を含む全ノードを表すデータが、直列化表現から抽出され得る。この考察のために、この例において、第１の層は下側のＣノードに対応し、第２の層はより高いＣノードに対応するが、他の例において、これらノードのそれぞれは、２個以上の層を表す副体積へ分割され得る。
【００６６】
図２の例を考察すると、物体の下側の層の一部を含む全ノードは単一のストリングに配列され、それは以下のように表現され得る。即ち
2019527905.tif 000009
【００６７】
この表現は、全ての「Ｃレベル」ノードが、オクトリーに含まれると仮定する。これは、Ｂノードの１つが、その副体積が考察中の属性の観点から同種であることを示すことができ、それ故にその副体積に対応するＣレベルノードが存在しないかもしれないので、当てはまらないかもしれない。
【００６８】
第１の層の表現は、抽出されたデータから決定され得る。例えば、これは、その多数の副体積のそれぞれに関する情報を提供するノード[Ｃｎ１−Ｃｎ４]ｎ＝１−４を抽出することを含むことができる。Ｃノードの何れかが定義されていない場合、第１の層の表現を決定することは、より高いレベル、即ちこの例において、Ｂ又はＡノードの内容を検討することを含むことができる。幾つかの例において、第１の層の決定された表現は、物体生成分解能にあることができる。末端グレー体積を含む例において、第１の層の表現を決定することは、ブラック体積またはホワイト体積として各体積を割り当てることを含むことができる。幾つかの例において、第１の層の表現は、積層造形装置の制御命令を生成するための入力として使用され得る。例えば、物体の内部にある場合の体積の特性記述は、その体積に対応する物理的な場所に融剤を配置するための命令という結果になることができる。完全に物体の外部にある場合の体積の特性記述は、その体積に対応する物理的な場所に融剤を配置しない又はディーテイリング剤を配置するための命令という結果になることができる。
【００６９】
幾つかの例において、制御命令は、積層造形装置により物体を生成するために、及び第１の層の表現を用いて物体層を生成するために使用され得る。
【００７０】
抽出されたデータ、及び抽出されたデータに含まれないデータの、直列化表現における場所を示すインデックスを含むデータブロックが、メモリに格納される。例えば、このデータブロックは、Ｃプログラミング言語（数ある中でも）で使用される用語として「struct」を含むことができる。インデックスは、最後に抽出されたノード、又は直列化データにおいて最初に「抽出されなかった」ノードを示すポインタを含むことができる。
【００７１】
物体の直列化表現と比べた場合に、係るデータブロックは比較的小さくなることができるので、それは、実際的な言い方をするなら、より遅いメモリ資源（例えば、「オフコア」又は固体メモリ）とは対照的に、比較的高速なインコア又はプロセッサのメモリに保持され得る。
【００７２】
次いで、層毎の製造プロセスにおいて生成されるべき物体の第２の層のデータ表現が生成され得る。例えば、これは、第１の層の直後に生成されるべき層であることができる（即ち、第２の層が、物理的に生成された物体の第１の層の上に直接的に配置される）、又は後続の層であることができる。Ｃレベルノードが２つ以上の層を表す例において、係る層を生成するためのデータは、既に抽出されたデータ内に含まれることができ、それ故にこの方法は、適切な後続の層に対して実行され得る。しかしながら、この例において、第２の層は、より高いＣノードに対応する。
【００７３】
これは、データブロックに最初にアクセスすることにより生成され得る。上述されたように、このデータブロックは、幾つかの例において、それが比較的小さいので、局所的に、「インコア」又は高速メモリに保持され得る。これは、大きなデータファイルに関して重要である可能性がある、メモリアクセス遅延の低減という結果になることができる。第２の層の何らかの部分を表さないあらゆるノードを表すデータは、廃棄され得る。この例において、これは、データ、即ちＡ:[Ｂ１−Ｂ４]を残す。
【００７４】
インデックスは、直列化データにおける開始位置を判断するために使用され得る。この例において、インデックスは、最後に読み出された、直列化データの位置（この例において、場所「Loc」の下流）に対するポインタであることができる。実際問題として、これは、抽出されたデータ部分の末尾に対する、又は抽出されなかった後続のデータの開始点に対するポインタであることができる。
2019527905.tif 000010
【００７５】
第２の層の少なくとも一部を表す且つ開始場所の後に出現する全ノードを表すデータは、直列化表現から抽出され得る。これは、第２の層の表現を生成するためのデータブロックからの保持されたデータと共に、使用され得る。この例において、それが基づくデータは、Ａ:[Ｂ１−Ｂ４]:[Ｃｎ５−Ｃｎ８]ｎ＝１−４（上述のように、これは、Ｂ及びＣノードが存在する範囲までである）である。
【００７６】
次いで、物体の層が、第２の層の表現を用いて生成されることができる一方で、新しい場所に対するポインタと共に、第１のデータブロックから保持されたデータ及び第２の層のために抽出されたデータを含む更新されたデータブロックが、メモリに格納される。この例において、ポインタは、＊Loc＊として示された場所に対するポインタである。即ち、
2019527905.tif 000011
【００７７】
このプロセスは、製造の意図された順序で層毎に反復して実行されることができ、この場合、更新されたデータブロックが形成され、最終の層に関連するデータが読み出されるまで、次の層に使用される。この例において、上の次の層は、領域Ｂ５−Ｂ８内にあり、Ｂ１−Ｂ４でなく、そのため、廃棄されるべきデータは、先行のデータブロックからノードＡだけを残し、抽出されるべき次のデータストリングは、[Ｂ５−Ｂ８]:[Ｃｎ１−Ｃｎ４]ｎ＝５−８を含む。
【００７８】
上述されたように、データブロックは、インコア又は比較的高速なメモリ資源（例えば、ローカルＲＡＭ）に保持され、相対的効率と関連付けられ得る。直列化表現は、固体メモリ資源のような「オフコア」大容量メモリ資源に保持され得る。データアクセス時間に関して比較的遅いかもしれない係る大容量メモリに対するデータ抽出タスクは、層を生成するための処理の全体にわたって効果的に分散される。上記の例において、方法は、物体生成中に実行され、その場合、それは、過度に長期にわたらない実質的に一定の層処理時間を提供することに寄与することができる。後続の層に対するデータ処理は、先行の層の生成が進行している間に実行され得る。
【００７９】
層処理時間の影響を考察するために、例示的な積層造形プロセスは、様々なプロセスを含むことができる。構築材料の層は、印刷ベッド又は構築プラットフォーム上に形成され得る。構築材料の層は、例えば、構築材料供給器を用いて形成されることができ、当該構築材料供給器は、意図された厚さで構築材料を印刷ベッド上に堆積して広げることができる。
【００８０】
構築材料の層は、例えば赤外線ランプのような放射線源を用いて、又は幾つかの他の手段により、予熱され得る。印刷薬剤が、薬剤供給器により構築材料の層上へ分配され得る。エネルギー、例えば溶融ランプ（単数または複数）からの熱が、構築材料の層に印加されて、融剤が塗布された構築材料のこれら部分の合体および固化を生じさせることができる。更なる例において、構築材料の層は、落ち着かされて冷えることを可能にされ得る。
【００８１】
例示的な積層造形プロセスに関連して上述されたプロセスは、生成されるべき多層物体の各層に関して繰り返され得る層処理サイクルの一部分を形成することができる。層処理サイクル又は層生成サイクルは、構築されるべき三次元物体のスライスを形成するように構築材料の単一の層に関して実行される一組のプロセスを含むと考えられることができ、構築材料の単一の層に関する一組のプロセスを実行するための時間は、層処理時間または層生成時間であると考えられ得る。これは、層を形成する際に使用されるべき命令（例えば、印刷薬剤の配置、温度または同類のものを指定することであり、それは物体の表現から抽出されたデータに基づくことができる）を生成するための処理時間を含むことができる。
【００８２】
層処理時間は、生成されるべき物体の層の全てに関して同じ又はほぼ同じであることが意図され得る。即ち、積層造形プロセスにおける各層に関する層処理時間は、ほぼ不変または一定であることができる。ここで、表現「同じ」は、厳密に同じ又はほとんど同じを意味することが意図されている。
【００８３】
生成されるべき物体の全ての層に関して一定またはほぼ一定の層処理時間を維持することは、物体が一貫した層でもって生成されることを確実にすることに役立つ。
【００８４】
説明された直列化の態様でデータを格納することにより、その読み出し（検索）は、データ処理の全体にわたって効果的に「ならされる」ことができ、過度に長くない一定の層処理時間が、より容易に達成され得る。場合によっては、先行する層の生成が進行している間に、後続の層の処理が開始するかもしれない。
【００８５】
図５は、プロセッサ５０２、オフコアメモリ５０４、及びインコアメモリ５０６を含むコンピュータシステムの略図を示す。オフコアメモリ５０４及びインコアメモリ５０６はそれぞれ、「遠隔」メモリ及び「ローカル」メモリを含み、この場合、これら用語は、プロセッサのデータ検索に関して理解されるべきであり、インコアメモリ５０６は、オフコアメモリ５０４より迅速にアクセスされ得る。オフコアメモリ５０４は、例えばデータの効率的な大容量記憶のために構成されることができる一方で、インコアメモリは、実質的にオンデマンドでデータを提供するように構成され得る。即ち、メモリ５０４、５０６は、異なるタイプからなることができる。例えば、オフコアメモリ５０４は、固体メモリ、例えばハードディスク・ドライブ（ＨＤＤ）又は半導体ドライブ（ＳＳＤ）を含むことができる一方で、インコアメモリは、ランダム・アクセス・メモリ（ＲＡＭ）を含むことができる。他の例において、オフコアメモリ５０４は、読み出し専用メモリを含むことができる。
【００８６】
幾つかの例において、インコアメモリ５０６は、プロセッサ５０２に物理的にさらに近づくことができ（より短い信号経路を可能にするために）、オフコアメモリ５０４より物理的に小さくすることができる。幾つかの例において、プロセッサ５０２は、ローカルエリア・ネットワーク、広域ネットワーク又はインターネットのようなコンピュータネットワークを介して、オフコアメモリ５０４に接続されることができる一方で、インコアメモリは、プロセッサ５０２を含む装置内に又は当該装置の近くに配置され得る。幾つかの例において、インコアメモリ５０２は、プロセッサと同じチップ又はダイ上に設けられ得るか、又はプロセッサは「プロセッシング・インメモリ」プロセッサであることができる。幾つかの例において、メモリ５０４、５０６は、実質的に同一場所に配置され得る。
【００８７】
幾つかの例において、直列化データは、オフコアメモリ５０４に格納されることができ、特定の層に関連するデータのこれら部分だけを含むデータブロックは、インコアメモリ５０６に格納され得る。留意されるべきは、ひとたび第１の層のデータブロックが構築されれば、第２の層に関連する少なくとも幾つかのデータがオフコアメモリ５０４から既に読み出され（検索され）ている。データの比較的遅い検索は、データ検索および処理の全体にわたって（及び幾つかの例において、物体生成の活動の全体にわたって）分散される。幾つかの例において、副体積オクトリーは、インコアメモリ５０６に形成され得る。
【００８８】
図６は、機械可読媒体６０２及びプロセッサ６０４を示す。機械可読媒体６０２は、プロセッサにより実行された際に、層毎の製造において生成されるべき物体を表すデータモデルをプロセッサに生成させる命令を含む。
【００８９】
命令は、第１のサイズの８個の体積からなるグループを検査することにより、層毎の製造において生成されるべき物体を表す複数の第１のデータモデルを生成するための命令を含み、当該検査は、各グループに関して以下のことを行なう、即ち、（i）グループが所定の属性を共有する体積からなる場合、当該体積をマージして、所定の属性を有する第２のサイズの体積を画定し；そうでなければ（ii）グループが所定の属性を欠いている体積からなる場合、当該体積をマージして、所定の属性を欠いている第２のサイズの体積を画定し、及びそうでなければ、（iii）第２のサイズの体積を示すノードを画定し、当該ノードはその副部分に属性を含む。幾つかの例において、命令は、図３の方法を実行するための命令を含むことができる。
【００９０】
命令は、ノード／体積の形成が、先行する反復において画定されたノード／体積により表された体積を検査することに基づいて、形成されたノードの表現を含むデータセットが閾値サイズに到達するまで、反復して実行されるようにすることができる。幾つかの例において、ノードが以前に識別されていない場合、どんな場合でも、最も大きい体積がノードとして符号化され得る。
【００９１】
命令は、プロセッサ６０４に、複数の第１のデータモデルを（例えば、メモリに）格納させ、第２のデータモデルを生成させる命令を更に含むことができ、この場合、第２のデータモデルを生成することは、第１のデータモデルを生成する際に形成された最も大きい体積を表すノード／体積から開始し、第１のサイズの８個の体積からなるグループを検査し、当該検査は、各グループに関して以下のことを行なう、即ち、（i）グループが所定の属性を共有する体積からなる場合、当該体積をマージして、所定の属性を有する第２のサイズの体積を画定し；そうでなければ（ii）グループが所定の属性を欠いている体積からなる場合、当該体積をマージして、所定の属性を欠いている第２のサイズの体積を画定し；そうでなければ、（iii）第２のサイズの体積を示すノードを画定し、当該ノードはその副部分に属性を含む。ノード／体積の形成は、先行する反復において画定されたノード／体積により表された体積を検査することに基づいて、単一のノードが物体を含む体積を示すまで、反復して実行され得る。
【００９２】
機械可読媒体６０２は更に、プロセッサ６０４により実行された際に、プロセッサ６０４に、例えば図４に関連して説明されたように、複数の第１のデータモデルを第２のデータモデルへインタリーブすることにより、第１及び第２のデータモデルをマージさせる命令を含むことができる。
【００９３】
機械可読媒体６０２は更に、プロセッサ６０４により実行された際に、プロセッサ６０４に、第１及び第２のデータモデルを生成させる命令を含むことができ、当該第１及び第２のデータモデルを生成することは、各データモデルにおいて、即ち、
（i）物体生成の意図された順序において以前に生成されるべき物体の層を含む体積を表すノードは、その後に生成されるべき物体の層（単数または複数）からなる体積を表すノードに先行する；
（ii）物体の所与の層を含む体積を表すノードに関して、より粗い体積分解能のノードは、より精細な体積分解能のノードに先行する；及び
（iii）所与の層を含む体積を表し且つ同じ分解能に属するノードは、所定の場所符号化パターンに従って直列化される、ようになっている。
【００９４】
言い換えれば、データモデルはそれぞれ、上述されたような「Ｚ優先」データモデルを含むことができる。
【００９５】
図７は、層毎の製造プロセスにおいて製造されるべき物体の少なくとも一部の表現を示し、この場合、当該表現は、第１の分解能と第２の分解能との間の物体の体積分解能にまたがる第１の複数のノードを有するオクトリー７０２を表すデータ（この例において、３つの体積分解能）、及び第３の分解能と第４の分解能との間の物体の体積分解能にまたがる第２の複数のノードを有する複数のオクトリー７０４ａ−ｎのそれぞれを表すデータ（この例において、更に２つの体積分解能）を含む。理解されるように、オクトリー７０２は、最高６４個のオクトリー７０４ａ−ｎを有することができ、当該オクトリー７０４ａ−ｎは、それと関連付けられた第２の複数のノードを有する。第１の分解能と第２の分解能との間の物体の体積分解能にまたがるノードを有するオクトリー７０２は、体積オクトリーを含むことができ、第３の分解能と第４の分解能との間の物体の体積分解能にまたがるノードを有するオクトリー７０４は、副体積オクトリーを含むことができる。
【００９６】
各オクトリー７０２、７０４の直列化表現内において、ノードは、物体の所与の層を含む体積を表すノードに関して、物体生成の意図された順序において以前に生成されるべき物体の層を含む体積を表すノードが、その後に生成されるべき物体の層（単数または複数）からなる体積を表すノードに先行し、より粗い体積分解能のノードがより精細な体積分解能のノードに先行し；及び所与の層を含み且つ同じ分解能に属する体積を表すノードが、所定の場所符号化パターンに従って直列化されるように、順序付けられ得る（即ち、データは、上述されたような「Ｚ優先」順序に従って順序付けられる）。係るデータ構造は、上述されたように、積層造形プロセスにおいて、「ならされた」データ検索に適する。
【００９７】
幾つかの例において、オクトリーの各ノードは、所定の共通の長さからなるビットストリングにより表され、以下の１つとして複数の副体積を分類する、即ち、
（i）副体積の全体にわたって一貫した所定の属性を有する、
（ii）副体積の全体にわたって所定の属性を欠いている、
（iii）副体積の副部分に所定の属性を有する。
【００９８】
本開示の例は、ソフトウェア、ハードウェア、ファームウェア又は同類のものからなる任意の組み合わせのような、方法、システム又は機械可読命令として提供され得る。係る機械可読命令は、内部または表面にコンピュータ可読プログラムコードを有するコンピュータ可読記憶媒体（以下に限定されないが、ディスク記憶装置、ＣＤ−ＲＯＭ、光学記憶装置などを含む）に含まれ得る。
【００９９】
本開示は、本開示の例による、方法、デバイス及びシステムの流れ図および／またはブロック図に関連して説明された。上述された流れ図は、実行の特定順序を示すが、実行の順序は、示されたものと異なることができ、少なくとも幾つかのプロセスは、並行して実行され得る。１つの流れ図に関連して説明されたブロックは、別の流れ図のブロックと組み合わされ得る。理解されるべきは、流れ図の少なくとも幾つかの流れ、並びに流れ図および／またはブロック図の流れ及び／又は図表の組み合わせは、機械可読命令により実現され得る。
【０１００】
例えば、機械可読命令は、汎用コンピュータ、専用コンピュータ、組み込みプロセッサ、又は説明および図において説明された機能を実現するための他のプログラム可能データ処理デバイスのプロセッサにより、実行され得る。特に、プロセッサ又は処理装置は、機械可読命令を実行することができる。かくして、装置およびデバイスの機能モジュールは、メモリに格納された機械可読命令を実行するプロセッサ、又は論理回路に埋め込まれた命令に従って動作するプロセッサにより、実現され得る。用語「プロセッサ」は、ＣＰＵ、処理ユニット、ＡＳＩＣ、論理ユニット、又はプログラマブル・ゲート・アレイなどを含むと広く解釈されるべきである。方法および機能モジュールは全て、単一のプロセッサによって実行される、又は幾つかのプロセッサ間に分割され得る。
【０１０１】
また、係る機械可読命令は、コンピュータ又は他のプラグラム可能データ処理デバイスを特定のモードで動作するように案内することができるコンピュータ可読記憶装置に格納され得る。
【０１０２】
また、係る機械可読命令は、コンピュータ又は他のプラグラム可能データ処理デバイスへロードされることができ、その結果、コンピュータ又は他のプラグラム可能データ処理デバイスは、コンピュータで実施される処理をもたらすために一連の動作を実行し、かくしてコンピュータ又は他のプラグラム可能データ処理デバイスで実行された命令は、流れ図の流れ（単数または複数）により指定された機能を実現する。
【０１０３】
更に、本明細書の教示は、コンピュータソフトウェア製品の形態で実現されることができ、コンピュータソフトウェア製品は、記憶媒体に格納され、本開示の例に列挙された方法をコンピュータデバイスに実現させるための複数の命令を含む。
【０１０４】
方法、装置、及び関連する態様が特定の例に関連して説明されたが、様々な変更、変形、省略および代用が、本開示の思想から逸脱せずに行なわれ得る。従って、方法、装置、及び関連する態様は以下の特許請求の範囲およびそれらの等価物の範囲によってのみ制限されることが意図されている。留意されるべきは、上述した例は、本明細書で説明されたことを制限するのではなく、添付の特許請求の範囲の範囲から逸脱せずに当業者が多くの代替の具現化形態を設計することができることを示す。一例に関連して説明された特徴は、別の例の特徴と組み合わされ得る。
【０１０５】
単語「含む」は、特許請求の範囲において列挙された要素以外の要素の存在を排除せず、「a」又は「an」は、複数を排除せず、単一のプロセッサ又は他のユニットは、特許請求の範囲において列挙された幾つかのユニットの機能を果たすことができる。
【０１０６】
任意の従属する請求項の特徴は、独立請求項または他の従属する請求項の何れかの特徴と組み合わされ得る。
【図１】
2019527905.tif 000012
【図２】
2019527905.tif 000013
【図３】
2019527905.tif 000014
【図４】
2019527905.tif 000015
【図５】
2019527905.tif 000016
【図６】
2019527905.tif 000017
【図７】
2019527905.tif 000018
【国際調査報告】
2019527905.tif 000019