JP2019527905A - 副体積オクトリー - Google Patents

副体積オクトリー Download PDF

Info

Publication number
JP2019527905A
JP2019527905A JP2019528016A JP2019528016A JP2019527905A JP 2019527905 A JP2019527905 A JP 2019527905A JP 2019528016 A JP2019528016 A JP 2019528016A JP 2019528016 A JP2019528016 A JP 2019528016A JP 2019527905 A JP2019527905 A JP 2019527905A
Authority
JP
Japan
Prior art keywords
volume
node
octree
data
layer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019528016A
Other languages
English (en)
Other versions
JP6746790B2 (ja
Inventor
カルエスコ・ロレンス,アレクス
ヴィナクア,アルヴァ
ブルネト,ペレ
ゴンザレス,セルジオ
ゴンザレス・ロゲル,ジョルディ
コミノ,マルク
ギラルト・アドロエル,ホセ
アベッロ・ロゼッロ,ルイス
コルテス・イ・ヘルムス,セバスチア
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2019527905A publication Critical patent/JP2019527905A/ja
Application granted granted Critical
Publication of JP6746790B2 publication Critical patent/JP6746790B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4097Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by using design data to control NC machines, e.g. CAD/CAM
    • G05B19/4099Surface or curve machining, making 3D objects, e.g. desktop manufacturing
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B33ADDITIVE MANUFACTURING TECHNOLOGY
    • B33YADDITIVE MANUFACTURING, i.e. MANUFACTURING OF THREE-DIMENSIONAL [3-D] OBJECTS BY ADDITIVE DEPOSITION, ADDITIVE AGGLOMERATION OR ADDITIVE LAYERING, e.g. BY 3-D PRINTING, STEREOLITHOGRAPHY OR SELECTIVE LASER SINTERING
    • B33Y50/00Data acquisition or data processing for additive manufacturing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/08Volume rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format
    • G05B2219/351343-D cad-cam
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/49Nc machine tool, till multiple
    • G05B2219/490233-D printing, layer of powder, add drops of binder in layer, new powder
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P10/00Technologies related to metal processing
    • Y02P10/25Process efficiency

Abstract

一例において、方法は、積層造形において生成されるべき物体の第1のデータモデルを、プロセッサにおいて受け取ることを含む。プロセッサを用いて、第2のデータモデルが決定され得る。第2のデータモデルを決定することは、物体を含む体積の複数の隣接する重ならない副体積のそれぞれに関して、前記副体積を特徴付け且つルートノードを有する副体積オクトリーを生成することを含むことができる。第2のデータモデルを決定することは、物体を含む体積を特徴付ける体積オクトリーを生成することを更に含むことができ、体積オクトリーは、その最も下のノードにおいて副体積オクトリーのルートノードを特徴付ける。【選択図】図1

Description

積層造形技術は、構築材料の選択的な固形化処理を通じて層毎に三次元物体を生成することができる。係る技術の例において、構築材料は、層毎の方法で供給され、固形化処理方法は、選択された領域、例えば融剤を有する領域において溶融を生じさせるために、構築材料の層を加熱することを含むことができる。他の技術において、化学的固形化処理方法または結合剤のような他の固形化処理方法が使用され得る。
生成されるべき三次元物体に関連するデータは、積層造形装置に供給され、三次元物体を生成するために使用され得る。
さて、制限しない例が、添付図面に関連して説明される。
三次元物体を表すデータを生成するための例示的な方法の流れ図である。 オクトリー構造を示す略図である。 オクトリーにおいてノードを画定するための例示的な方法の流れ図である。 積層造形を用いて物体を生成するための例示的な方法の流れ図である。 例示的な処理装置の略図である。 機械可読媒体と連係する例示的なプロセッサの略図である。 マルチレベルのオクトリー構造を示す略図である。
詳細な説明
積層造形技術は、構築材料の固形化処理を通じて三次元物体を生成することができる。幾つかの例において、構築材料は、例えば、プラスチック、セラミック、又は金属粉末であることができる粉末状粒状物質であることができる。生成される物体のプロパティ(特性)は、構築材料のタイプ、及び使用される固形化処理のメカニズムのタイプに依存するかもしれない。構築材料が、例えば製造チャンバ内で、例えば印刷ベッド上に堆積され、層毎に処理され得る。
幾つかの例において、選択的な固形化処理は、例えば方向性エネルギーが印加される構築材料の固化という結果になるレーザ又は電子ビームを用いて、エネルギーの方向性印加を通じて達成される。
他の例において、少なくとも1つの印刷薬剤は、構築材料に選択的に付着されることができ、付着される際に液体であることができる。例えば、融剤(「癒着剤」または「合体剤」とも呼ばれる)は、生成されるべき三次元物体のスライスを表すデータ(例えば、構造設計データから生成され得る)から導出されたパターンで構築材料の層の部分上へ選択的に分配され得る。融剤は、エネルギー(例えば、熱)が層に印加された際に、構築材料が融合(合体)して固化し、当該パターンに従って三次元物体のスライスを形成するように、エネルギーを吸収する組成物を有することができる。他の例において、合体は、幾つかの他の態様で達成され得る。合体変性剤(変性剤またはディーテイリング剤とも呼ばれる)は、例えば合体を低減または増大させることにより、融剤の効果を変更するように働く、又は物体に対する特定の仕上げ又は外観をもたらすことに役立つように働き、それ故に係る薬剤は、ディーテイリング剤とも呼ばれることができ、幾つかの例において印刷薬剤としても使用され得る。幾つかの例において、例えば、染料または顔料を含む着色剤が、融剤または変性剤として、及び/又は物体に特定の色を提供するための印刷薬剤として使用され得る。
積層造形システムは、構造設計データに基づいて物体を生成することができる。これは、例えばコンピュータ支援設計(CAD)アプリケーションを用いて生成されるべき物体の三次元モデルを生成するデザイナーを含むことができる。当該モデルは、物体の固体部分を定義することができる。積層造形システムを用いて当該モデルから三次元物体を生成するために、当該モデルのデータ(モデルデータ)は、当該モデルの平行面のスライスを生成するために処理され得る。各スライスは、積層造形システムにより固化されるべき又は合体されるべき構築材料の個々の層の部分を定義することができる。
大きくて複雑な部品を高い分解能でモデル化する場合、データモデルは、すぐに大きくなる可能性がある。
図1は、コンピュータで実施される方法であることができる方法の流れ図であり、当該方法は、ブロック102において、積層造形において生成されるべき物体であることができる物体の第1のデータモデルを受け取ることを含む。
幾つかの例において、このデータは、複数のノードとして層毎の製造プロセスにおいて製造されるべき物体の少なくとも一部のオクトリー(八分木)表現(例えば、古典的なオクトリー表現)として提供されることができ、この場合、最も大きな体積を表すノード(「ルート」ノード)が最初に記述され、そのオクタントが後続し、それらのオクタントが後続するなどである。幾つかの例において、データは、STLファイル、OBJファイル、DXFファイル、JSONファイル。3mfファイル、vtkファイル、又は同種のもののようなデザインファイルとして、物体の表現を提供することができる。物体は、メッシュ(例えば、多角形メッシュ)として、又は一連のスライスで表されることができる。幾つかの例において、当該表現は、例えば物体および/または周囲の体積(例えば、物体を包囲する直方体)の「ボクセル」毎に、少なくとも1つの属性(例えば、存在または不在、色、テクスチャー、透明度、導電率、強度、有孔性、弾性、又は同類のもの)又は印刷材料(例えば、印刷薬剤または構築材料の選択)の仕様を含むデータの印刷分解能表現を含むことができる。ボクセルは、体積ピクセルとしてみなされることができ、任意の各ボクセルは、アドレス指定可能な印刷領域であることができ、幾つかの例において、ボクセルは、装置の印刷分解能において定義される。幾つかの例において、各ボクセルは、例えば立方体または同じサイズからなる同じ形状および/またはサイズである一方で、他の例において、ボクセルは、サイズ及び/又は形状が異なるかもしれない。
ブロック104及び106は、第2のデータモデルを生成する方法を含む。ブロック104は、物体を含む体積の複数の隣接する重ならない副体積毎に、副体積を特徴付ける副体積オクトリーを生成することを含み、ブロック106は、物体を含む体積を特徴付ける体積オクトリーを生成することを含み、当該体積オクトリーは、その最も低いノードにおいて副体積オクトリーのルートノードを特徴付ける。
体積オクトリー及び副体積オクトリーの文脈における用語「体積」及び「副体積」は、体積オクトリーが関心のある「全体の」体積を記述し、副体積オクトリーがそれぞれ関心のある体積の一部分を記述するので、識別子として単に意図されている。代わりに、用語「第1」及び「第2」のオクトリーが使用され得る。
3レベルのオクトリーの表現が図2に示される。図2において、ルートノードAは単一の体積である。次のレベルは、それぞれが物理的な副体積を表すオクタント(八分空間)B1〜B8へ、この体積を分割する。B1、B2、B3及びB4が体積の下側半分のクワドラント(quadrant)を表す一方で、B5、B6、B7及びB8は体積の上側半分に関係する。また、図2は、次のレベルも示すが、例示の簡略化のために、これはB1だけ示された。次のレベルは、B1をオクタントC1〜C8へ分割し(この場合、この表記法は、B2がC1〜C8と表記されたオクタントへ分割され得るように拡張され、より具体的には、Bnは、C1〜C8と表記されたオクタントへ分割され得る)、それらのそれぞれは物理的な副体積を表す。やはり、この例において、C1〜C4は、n=1〜8の場合の各Bn体積の下側半分を表す。理解されるように、各ノードは、更に後述されるように、物体の少なくとも1つの態様を記述するデータを含む。
図示されていないが、「D」レベルノードが定義されることができ、各Cm(n=1〜8、及びm=1〜8)体積をオクタントへ分割することを含む。一例において、各Dレベルノードは、8個の印刷分解能ボクセルを記述することができる。係る例において、図1のブロック104は、64個の副体積オクトリーを形成することを含むことができ、それらのそれぞれは、その8個の副体積および512個のDレベルノードを記述する単一のCノードを含む。ブロック106は、ルートノード(A、8個の副体積を記述する)、及び8個のBノード(それぞれが8個の副体積を記述し、副体積のそれぞれがCノードに対応する)を有するオクトリーを生成することを含むことができる。
このように、物体を記述するオクトリーの2つの「レベル」又は「順序」が、生成される。物体が特定の分解能で記述されることができる場合に、オクトリーは物体を表す有効な方法を提供するが、データ圧縮技術が使用される場合でさえも、モデルを有効に処理するためのデータ記憶資源および処理資源が多大になるかもしれない。例えば、12個のオクトリーのレベルは、物体を記述するのに適切であることができるが、これは、16Gb未満のRAMを有するプロセッサの速度を落とすかもしれない。オクトリーは深さと共に指数関数的に増大するので、分解能を増加することは、データを処理するための処理資源および記憶資源も劇的に増加することを意味し、そのため、問題は、容易にスケーリングされない。
図1は、分割されたレベルのオクトリー表現を形成するための方法を記述し、この場合、体積空間は、副体積セルの規則的な格子へ有効に細分化され、これらセルのそれぞれの副体積オクトリーが構築される。それらが全て構築された場合、格子は、全体的な体積オクトリーのトップレベルを構築するために横断される。より詳細に後述されるように、オクトリーは、その後にマージされ得る。
幾つかの例において、物体は、属性を参照することにより記述され得る。幾つかの例において、物体内の体積は、(i)全体的な体積にわたる所定の属性を有すること(即ち、あらゆる副体積またはその領域が所定の属性を共有する)、(ii)所定の属性を完全に欠いていること(即ち、あらゆる副体積またはその領域が所定の属性を欠いている)、又は(iii)所定の属性を有する副領域および所定の属性を欠いている副領域を含むことの1つとして分類され得る。
一例において、属性は、体積が物体の一部分を含むか否か、及び各体積が以下の1つとして分類され得るか否かであることができ、即ち、
(i)物体の完全に内部であること(「ブラック」と称する)
(ii)物体の完全に外部であること(「ホワイト」と称する)
(iii)物体の境界にまたがること(「グレー」と称する)、その結果、体積の副領域は物体の内部にあり、別の副領域は外部である。
幾つかの例において、境界にまたがる体積(又はより一般的には、属性を有する副領域および属性を欠いている副領域を含む)に関して、2つの考えられるカテゴリーが存在し、即ち、「末端のグレー」体積、又は「中間のグレー」体積である。末端のグレー体積は、当該体積が印刷分解能体積である場合に符号化されることができ、又は特定のモデルにより符号化される最も小さい体積である。係るグレー体積は、判断が、当該体積をブラック体積またはホワイト体積として処理するか否かに関してなされる場合に、中間グレー体積とは異なって処理されることができ、例えば、実際的な言い方をするなら、体積は、物体の内部または外部にあるように割り当てられる。しかしながら、係る末端グレー体積は、幾つかの例において省略され得る。
Figure 2019527905
この例において、体積の分類化は、2ビットで表され、即ち、ホワイト体積に対して00、ブラック体積に対して01、中間グレー体積に対して10、及び末端グレー体積に対して11である。
各ノードは、その副体積を特徴付ける16ビットストリングとして表され得る。かくして、物体が立方体の底部を埋めるスライスを占有する場合、図2に示された立方体の底部の四分の一を占めて、「A」ノードは、4個の「グレー」体積および4個のホワイト体積を有し、順番にその副体積に関して以下のように表され得る。
B1{10}、B2{10}、B3{10}B4{10}、B5{00}、B6{00}、B7{00}、B8{00}又は、[1010101000000000]。
B1ノードは、上側半分においてホワイト体積および下側半分においてブラック(物体に含まれる)体積を有し、そのため、[0101010100000000]として符号化され得る。
B5体積は、ホワイトであり、更に後述されるように、幾つかの例において、これは、B5体積に関連して獲得されるべき情報がもはや存在しないので、B5ノードがオクトリー内に形成されないことを意味することができる。
より具体的には、係る符号化は、任意のバイナリ属性(例えば、特定の色の有無、導電性、弾性、印刷薬剤、又は同類のもの)を指定するために使用され得る。例えば、各体積は、「赤」又は「赤でない」又は「赤の副領域および赤でない副領域を含む」として分類化される、或いは「導電性」又は「導電性でない」又は「導電性の副領域および導電性でない副領域を含む」として分類化され得る。
幾つかの例において、データは、所定の態様で、例えばノード内に記述される副体積の位置に基づいて、順序付けられ得る。例えば、「最下位ビット」、即ちビットストリングの最後のビットは、より小さいz座標を有する副体積に関する情報を含み、z座標が等しい場合、より小さいx座標を有する子が最下位ビットを占有するなどである。他の所定の順序が使用され得る。
また、2ビット指定は、グレー、ブラック又はホワイトとしてノードタイプを識別するために拡張され得る。これは、4個の係るノードがバイトを含み、それ故に一緒に格納され得るので、有用であることができる。以下で明らかになるように、幾つかの例において、オクトリーはマージされ又はそれらの一部分は抽出される。しかしながら、以下で与えられる様々な例において、直列化表現は、例えば物体生成の層毎の特性を考慮して、採用されることができる。図2が示すように、各分解能において物体の横方向領域に4個のノードが存在し、これらノードは、任意のデータ処理において一緒に処理される。
他の例において、ハフマン符号化のような他の符号化が使用され得る。
体積B5に関連して簡単に上述されたように、及び容易に理解され得るように、Bレベルの体積が全体的に物体の内部にある場合、形成され得るそれらの任意の副ノードも、全体的に物体の内部にある。従って、それは、「グレー」ノードのみ、即ち属性を有する副領域および属性を欠いている副領域を含むこれらが格納される場合であることができる。体積がホワイト又はブラックである場合、体積が先行するノードで特徴付けられるので、ノードとして格納される必要はなく、この特性記述は、全ての子孫に拡張される。例えば、体積の下側半分を占有する物体に関して、これは、より高いzを有する4個のホワイト副体積およびより低いzを有する4個のブラック副体積を有する単一ノードを備える1つのレベルのオクトリーにより、完全に特徴付けられ得る。例えば、16ビットストリングは、0000000001010101としてルートノード(グレー体積を記述する)を特徴付けることができる。これは、物体の全部を完全に表す。しかしながら、ブラック又はホワイトの副体積の1つが代わりにグレーである場合、その副体積を特徴付ける更なるノードが、その副体積のために形成され得る。
従って、幾つかの例において、オクトリーは、グレー体積を特徴付けるノードを含むことができ(ブラック及びホワイトのノードの体積が格納される必要がないので)、ボクセル又は印刷分解能レベルにおいて、副体積はブラック又はホワイトとして分類化され得る。他の例において、グレーノードは、細分化される任意のノードであることができる(たとえ子孫ノードの全てが属性を有する又は欠いているとしても)。ブラックノード又はホワイトノードは、細分化されないそれらのノードであることができる。
幾つかの例において、副体積オクトリーは、ルートノードを有するために画定され得る。副体積が全体的に一貫した(例えば、「ブラック」又は「ホワイト」である)体積である場合、それにも関わらず、それはノードとして維持され得る。かくして、幾つかの例において、オクトリーは、完全に一貫している体積を記述することができる副体積オクトリーのルートノードの場合を除いて、異なるカテゴリーのオクタントから作成されるノードのみを含む。
図3は、物体のオクトリー表現を構築するためのコンピュータで実施される方法であることができ、且つ上記のブロック104及び106の何れかを実行する際に利用され得る方法の一例を示す。方法は、より小さい体積から開始する、オクトリーを構築することに関する「ボトムアップ」方法とみなされ得る。
ブロック302は、データモデルにおける第1のサイズの8個の体積からなるグループを検査することを含む。係る検査は、特定の所定の属性(例えば、内部、導電性、特定の色など)に関連して実行され得る。ブロック304において、グループが、それら全体の体積の全体にわたって所定の属性を共有する体積で完全に構成されるか否かが判断される。そうである場合、ブロック306において、体積はマージされて、所定の属性を有する第2のサイズ(より大きい、8倍の体積を含む)の体積を画定する。そうでなければ、ブロック308において、グループが、それら全体の体積の全体にわたって所定の属性を欠いている体積で完全に構成されるか否かが判断され、その場合、ブロック310は、所定の属性を欠いている第2のサイズの体積を画定するために、当該体積をマージすることを含む。これら条件のどちらも真でない場合、グループは混合され、即ち第1のサイズの幾つかの体積が、少なくとも部分的に属性を有し、第1のサイズの幾つかの体積が、少なくとも部分的に、属性を欠いている。その場合、ブロック312は、副部分に属性を含む第2のサイズの体積を示すノードを画定することを含む。ブロック306及び310のマージ処置のそれぞれにおいて、より小さい体積は、それに特に関係するデータが保持されないように、実際には捨てられることができ、その理由は、係るデータが物体に関する利用可能な情報に寄与しないからである。しかしながら、ブロック312において、ノードを形成する場合、第1のサイズの体積を記述するデータは、属性を含むこれら体積と属性を欠いているこれら体積を区別するために、保持され得る。例えば、このデータは、上述されたような16ビットストリングであることができる、ノードを特徴付けるビットストリングで戻され得る。
副体積オクトリーを生成する場合、図3の方法は、先行する反復において画定されたノード/体積により表される体積を検査し、且つその副体積を示すノード又は体積が形成されるまで新たなノード/体積を形成することにより、反復して実行されることができ、その時点で、データは、例えばコンピュータ可読メモリに格納され得る。上述されたように、幾つかの例において、最も大きい体積は、たとえそれら副体積の全てが属性を共有する又は副体積の全てが属性を欠いているとしても、その副体積を特徴付けるノードとして格納される。副体積のサイズは、メモリ容量および処理能力に基づいて決定され得る。例えば、副体積のサイズは、利用可能な処理装置により並行して構築され得る副体積の数、又は副体積を格納するために利用可能なメモリのタイプに従って決定され得る。
係る副体積オクトリーは、データが手順の全体にわたって繰り返してアクセスされ得るので、比較的高速なアクセスメモリ(係るRAM)に構築され得る。副体積オクトリーの深さレベルの数は、利用可能な資源およびモデルの複雑性に基づいて決定され得る。
体積オクトリーを生成する場合、図3の方法は、先行する反復において画定されたノード/体積により表される体積を検査し且つ当該副体積を表すノード/体積から始まる新たなノードを形成することにより、反復して実行されることができ、幾つかの例において、「ルートノード」が形成されるまで継続される。
幾つかの例において、2つ以上の副体積レベルが存在することができる。例えば、副体積オクトリーにより特徴付けられた各体積は、レベルオクトリーを分割することにより記述され得る。
オクトリーを決定することは、データを直列化することを含むことができ、この場合、より詳細に後述されるように、直列化された表現(直列化表現)は、ノードが特定の方法で順序付けられるように構築される。これは、物体がXY平面に横たわる層において生成される際にZ座標が物体の高さに関係するXYZ空間を考察する場合、「Z優先」順序付けとみなされ得る。明らかになるように、係る順序付けは、層状の三次元物体に関連するデータを処理するのに適することができる。
一例において、直列化表現は、説明のこの部分のために体積オクトリー又は副体積オクトリーの一例であることができる、図2に示された3レベルのオクトリーに関連して説明された3つの規則に従う。B1、B2、B3及びB4が体積の下側半分のクワドラントを表す一方で、B5、B6、B7及びB8は体積の上側半分に関係することを思い出されたい。同様に、C1〜C4は、n=1〜8の場合の各B体積の下側半分を表す。
直列化表現を格納する際に適用されるべき第1の規則は、物体生成の意図された順序において以前に生成されるべき物体の層を含む体積を表すノードが、その後に生成されるべき物体の層(単数または複数)からなる体積を表すノードに先行することである。
図2の例を利用し(オクトリー内に全てのノードが存在すると仮定する)、及び積層造形において、物体が通常その底部から上方へ生成されることに基づくと、一例において、最初に生成されるべき層は、n=1〜4の場合にC1〜C4を含む下側層である。また、ノードB1〜B4は、ノードAを作る際、この層も含む。従って、この規則は、A及びB1〜B4がB5〜B8(第1(最初)の層の表現を含まない)の前にリストアップされることを意味する。また、それは、n=1〜4の場合のC1〜C4が他のCノードの全ての前にリストアップされることを意味する。
第2の規則は、物体の所与の層を含む体積を表すノードが、オクトリー表現内のノードのレベルに基づいて順序付けられることであり、この場合、親ノードは、子孫ノードの前に出現する。かくして、第1の層に関して、Aは、B1〜B4の何れかの前にリストアップされ、B1〜B4はn=1〜4の場合にC1〜C4の前にリストアップされる。
第3の規則は、第1及び第2の規則が適用された後、即ち物体の所与の層を含む体積を表し且つオクトリー内の同じレベルに属するノードに関して、ノードは、場所符号化パターンに従って直列化される。例えば、これは、空間の中を通る特定の経路を画定するモートン(Z順序)コード又は同類のものであることができる。モートンコードは、局所性を維持しながら、多次元データを一次元にマッピングする関数の一例である。従って、この例において、場所符号化パターンは、B1からB4の順序およびn=1〜4の場合にC1〜C4の順序を決定するために適用され得る。
上述されたように、物体の第1の層に関して、これは、A、B1〜B4(場所符号化
パターンに従って順序付けられた)、n=1〜4の場合にC1〜C4(空間符号化パターンに従って順序付けられた)の順序という結果になる。これは、直列化表現の第1の部分を与える。表現の容易さのために、角括弧で示された状態の場所符号化パターン及びこの部分は、以下のように要約され得る。即ち、
Figure 2019527905
まだ含まれていない上の次の層は、n=1〜4の場合にC5〜C8を含む。しかしながら、この層は、B1〜B4及びAによっても表され、それ故にこの層を表すことは、n=5〜8の場合にC1〜C4を上記のコード部分の最後に追加することを単に意味し、これは規則のいずれも破らないので、以下のように直列化表現を拡張する。即ち、
Figure 2019527905
まだ含まれていない上の次の層は、B5〜B8の部分を含み、当該B5〜B8の部分はそれらの子孫ノードの前に含まれるべきである。これは、この例において、以下のように体積Aに含まれる物体の直列化表現を与える。即ち
Figure 2019527905
別のレベル、即ちDレベルが追加される場合、ノードは、Z優先順序付けに従って、それらの対応する「C」レベルの表現の後に挿入される。
説明されたように、幾つかの例において、場合によっては、幾つかのノードは、全てが属性を有する又は全てが属性を欠いている(及び副体積オクトリーのルートノードでない)副体積をそれらが表す場合に画定されず、そのため幾つかのノードは、上述されたように表現から欠落することができる。
係るデータ構造は、物体の特定の層を記述するデータが連結されるので、三次元印刷に良好に適している。これは、レベルの順序で表しているオクトリーと対比されることができ(幅順序付けと呼ばれ得る)、この場合、同じ表記法の下で、物体の記述は、以下のようになることができる。即ち
Figure 2019527905
データの別の考えられる表現は、以下のように表され得る「深さ優先」順序付けであることができる。即ち
Figure 2019527905
係る表現において、製造されるべき第1の層の記述、n=1〜4の場合にC1〜C4は、データの全体にわたって分散され、データを読み出す(検索する)ことが複雑になる。更に、以下の説明から明らかになるように、係る表現により、1つの層に関連して読み出されるデータが、後続の層に関連してデータを読み出す際に役立つことを可能にしない。
上記の例において、ルートノードAを表すノードは、直列化において最初に配列される。
データは、データが所定の順序と関連付けられていることをデータ読み取り装置が理解するという意味で、直列化へ「配列」される。幾つかの例において、データは、記憶媒体(例えば、ランダム・アクセス記憶媒体)に物理的に分散され得る。しかしながら、データは、データの記述された配列が符号化される関係を有するように、格納される。
図4は、物体のオクトリー表現を提供する方法であることができ、且つコンピュータで実施される方法であることができる方法の一例である。
ブロック402は、この例において、上述された「Z優先」直列化表現を用いて、複数の副体積オクトリーを形成することを含み、各副体積オクトリーは、ブロック404において、データオブジェクトとして、機械可読媒体に別個に格納される。ブロック406は、(また、直列化表現を用いて)体積オクトリーを形成することを含み、ブロック408は、体積オクトリーをデータオブジェクトとして機械可読媒体に格納しながら、各副体積オクトリーを体積オクトリーへ挿入することにより、体積オクトリーと副体積オクトリーをマージすることを含む。マージは、副体積オクトリーのルートノード及びそのなんらかの子孫ノードを体積オクトリーの最後のノード間に挿入することにより、簡単に実行され得る。また、係るマージされた直列化表現は、上述された「Z優先」順序にも準拠する。
一例において、マージされたオクトリーにおいて約10〜14の深さレベルが存在することができる。オクトリーの14番目の深さレベルが完成した場合(即ち、オクトリーが、その深さレベルにおいて全ての考えられるノードを含む)、これは、約5×1012個のノードが格納されたことを意味する。係るオクトリーを構築する場合、データ記憶仕様があまり高くない限り、インメモリ表現は実用的である。
オクトリーのノードが16ビット(2バイト)を含む場合、前述した例は、かなりのコンピューティング資源を必要とする、RAMの約(214*2バイト=8796GBを必要とする。
16ビットノードが上述されたが、実際問題としてノードが約34バイトであることができることを意味するノードの構造を画定するために、ポインタが使用され得る。更に、説明された16ビットノードは、ほんの1つのプロパティを符号化する。物体のデータモデルは、多数のプロパティを有することができ、それ故に実際問題として、資源(リソース)仕様は、大幅に高くなる可能性がある。
かくして、比較的単純な物体でさえも、格納および処理するための大幅な量のデータという結果になる可能性があり、これは、現在の従来型の容易にアクセス可能なハードウェアの範囲を越える可能性があり、「既製」の処理資源仕様を越える。係る例において、マルチレベルの手法は、インメモリ処理の処理資源仕様を容易化することができる。
例えば、第1の6個のレベルが体積オクトリーにおいて表され、64×64×64個の副体積オクトリーが画定されるように、オクトリーが分割される場合、各オクトリーは、約20×10個のノードを含み、それは「インコア」、即ちRAMにおいて又は利用可能な高速メモリ資源において効率的に処理され得る。
ブロック410は、積層造形において生成されるべき複数の層のそれぞれのデータ表現を提供するために第2のデータからデータを抽出することを含み、ブロック412は、当該データ表現に基づいて物体を生成することを含む。
Z優先順序は、ブロック412における物体生成のための効率的なデータ抽出を可能にすることができる。幾つかの例において、直列化データは、メモリに格納されることができ、それらの一部分が、物体を生成するための制御命令を決定するように処理を実行するために読み出され得る(例えば、構築材料および/または印刷薬剤が配置され得る場所、使用するための材料/薬剤はどれか、温度などのようなどのパラメータが使用され得るかを指定する命令を決定するために)。
一例を考察すると、物体の下側の層を生成するために、第1の層の少なくとも一部を含む全ノードを表すデータが、直列化表現から抽出され得る。この考察のために、この例において、第1の層は下側のCノードに対応し、第2の層はより高いCノードに対応するが、他の例において、これらノードのそれぞれは、2個以上の層を表す副体積へ分割され得る。
図2の例を考察すると、物体の下側の層の一部を含む全ノードは単一のストリングに配列され、それは以下のように表現され得る。即ち
Figure 2019527905
この表現は、全ての「Cレベル」ノードが、オクトリーに含まれると仮定する。これは、Bノードの1つが、その副体積が考察中の属性の観点から同種であることを示すことができ、それ故にその副体積に対応するCレベルノードが存在しないかもしれないので、当てはまらないかもしれない。
第1の層の表現は、抽出されたデータから決定され得る。例えば、これは、その多数の副体積のそれぞれに関する情報を提供するノード[C1−C4]n=1−4を抽出することを含むことができる。Cノードの何れかが定義されていない場合、第1の層の表現を決定することは、より高いレベル、即ちこの例において、B又はAノードの内容を検討することを含むことができる。幾つかの例において、第1の層の決定された表現は、物体生成分解能にあることができる。末端グレー体積を含む例において、第1の層の表現を決定することは、ブラック体積またはホワイト体積として各体積を割り当てることを含むことができる。幾つかの例において、第1の層の表現は、積層造形装置の制御命令を生成するための入力として使用され得る。例えば、物体の内部にある場合の体積の特性記述は、その体積に対応する物理的な場所に融剤を配置するための命令という結果になることができる。完全に物体の外部にある場合の体積の特性記述は、その体積に対応する物理的な場所に融剤を配置しない又はディーテイリング剤を配置するための命令という結果になることができる。
幾つかの例において、制御命令は、積層造形装置により物体を生成するために、及び第1の層の表現を用いて物体層を生成するために使用され得る。
抽出されたデータ、及び抽出されたデータに含まれないデータの、直列化表現における場所を示すインデックスを含むデータブロックが、メモリに格納される。例えば、このデータブロックは、Cプログラミング言語(数ある中でも)で使用される用語として「struct」を含むことができる。インデックスは、最後に抽出されたノード、又は直列化データにおいて最初に「抽出されなかった」ノードを示すポインタを含むことができる。
物体の直列化表現と比べた場合に、係るデータブロックは比較的小さくなることができるので、それは、実際的な言い方をするなら、より遅いメモリ資源(例えば、「オフコア」又は固体メモリ)とは対照的に、比較的高速なインコア又はプロセッサのメモリに保持され得る。
次いで、層毎の製造プロセスにおいて生成されるべき物体の第2の層のデータ表現が生成され得る。例えば、これは、第1の層の直後に生成されるべき層であることができる(即ち、第2の層が、物理的に生成された物体の第1の層の上に直接的に配置される)、又は後続の層であることができる。Cレベルノードが2つ以上の層を表す例において、係る層を生成するためのデータは、既に抽出されたデータ内に含まれることができ、それ故にこの方法は、適切な後続の層に対して実行され得る。しかしながら、この例において、第2の層は、より高いCノードに対応する。
これは、データブロックに最初にアクセスすることにより生成され得る。上述されたように、このデータブロックは、幾つかの例において、それが比較的小さいので、局所的に、「インコア」又は高速メモリに保持され得る。これは、大きなデータファイルに関して重要である可能性がある、メモリアクセス遅延の低減という結果になることができる。第2の層の何らかの部分を表さないあらゆるノードを表すデータは、廃棄され得る。この例において、これは、データ、即ちA:[B1−B4]を残す。
インデックスは、直列化データにおける開始位置を判断するために使用され得る。この例において、インデックスは、最後に読み出された、直列化データの位置(この例において、場所「Loc」の下流)に対するポインタであることができる。実際問題として、これは、抽出されたデータ部分の末尾に対する、又は抽出されなかった後続のデータの開始点に対するポインタであることができる。
Figure 2019527905
第2の層の少なくとも一部を表す且つ開始場所の後に出現する全ノードを表すデータは、直列化表現から抽出され得る。これは、第2の層の表現を生成するためのデータブロックからの保持されたデータと共に、使用され得る。この例において、それが基づくデータは、A:[B1−B4]:[C5−C8]n=1−4(上述のように、これは、B及びCノードが存在する範囲までである)である。
次いで、物体の層が、第2の層の表現を用いて生成されることができる一方で、新しい場所に対するポインタと共に、第1のデータブロックから保持されたデータ及び第2の層のために抽出されたデータを含む更新されたデータブロックが、メモリに格納される。この例において、ポインタは、Locとして示された場所に対するポインタである。即ち、
Figure 2019527905
このプロセスは、製造の意図された順序で層毎に反復して実行されることができ、この場合、更新されたデータブロックが形成され、最終の層に関連するデータが読み出されるまで、次の層に使用される。この例において、上の次の層は、領域B5−B8内にあり、B1−B4でなく、そのため、廃棄されるべきデータは、先行のデータブロックからノードAだけを残し、抽出されるべき次のデータストリングは、[B5−B8]:[C1−C4]n=5−8を含む。
上述されたように、データブロックは、インコア又は比較的高速なメモリ資源(例えば、ローカルRAM)に保持され、相対的効率と関連付けられ得る。直列化表現は、固体メモリ資源のような「オフコア」大容量メモリ資源に保持され得る。データアクセス時間に関して比較的遅いかもしれない係る大容量メモリに対するデータ抽出タスクは、層を生成するための処理の全体にわたって効果的に分散される。上記の例において、方法は、物体生成中に実行され、その場合、それは、過度に長期にわたらない実質的に一定の層処理時間を提供することに寄与することができる。後続の層に対するデータ処理は、先行の層の生成が進行している間に実行され得る。
層処理時間の影響を考察するために、例示的な積層造形プロセスは、様々なプロセスを含むことができる。構築材料の層は、印刷ベッド又は構築プラットフォーム上に形成され得る。構築材料の層は、例えば、構築材料供給器を用いて形成されることができ、当該構築材料供給器は、意図された厚さで構築材料を印刷ベッド上に堆積して広げることができる。
構築材料の層は、例えば赤外線ランプのような放射線源を用いて、又は幾つかの他の手段により、予熱され得る。印刷薬剤が、薬剤供給器により構築材料の層上へ分配され得る。エネルギー、例えば溶融ランプ(単数または複数)からの熱が、構築材料の層に印加されて、融剤が塗布された構築材料のこれら部分の合体および固化を生じさせることができる。更なる例において、構築材料の層は、落ち着かされて冷えることを可能にされ得る。
例示的な積層造形プロセスに関連して上述されたプロセスは、生成されるべき多層物体の各層に関して繰り返され得る層処理サイクルの一部分を形成することができる。層処理サイクル又は層生成サイクルは、構築されるべき三次元物体のスライスを形成するように構築材料の単一の層に関して実行される一組のプロセスを含むと考えられることができ、構築材料の単一の層に関する一組のプロセスを実行するための時間は、層処理時間または層生成時間であると考えられ得る。これは、層を形成する際に使用されるべき命令(例えば、印刷薬剤の配置、温度または同類のものを指定することであり、それは物体の表現から抽出されたデータに基づくことができる)を生成するための処理時間を含むことができる。
層処理時間は、生成されるべき物体の層の全てに関して同じ又はほぼ同じであることが意図され得る。即ち、積層造形プロセスにおける各層に関する層処理時間は、ほぼ不変または一定であることができる。ここで、表現「同じ」は、厳密に同じ又はほとんど同じを意味することが意図されている。
生成されるべき物体の全ての層に関して一定またはほぼ一定の層処理時間を維持することは、物体が一貫した層でもって生成されることを確実にすることに役立つ。
説明された直列化の態様でデータを格納することにより、その読み出し(検索)は、データ処理の全体にわたって効果的に「ならされる」ことができ、過度に長くない一定の層処理時間が、より容易に達成され得る。場合によっては、先行する層の生成が進行している間に、後続の層の処理が開始するかもしれない。
図5は、プロセッサ502、オフコアメモリ504、及びインコアメモリ506を含むコンピュータシステムの略図を示す。オフコアメモリ504及びインコアメモリ506はそれぞれ、「遠隔」メモリ及び「ローカル」メモリを含み、この場合、これら用語は、プロセッサのデータ検索に関して理解されるべきであり、インコアメモリ506は、オフコアメモリ504より迅速にアクセスされ得る。オフコアメモリ504は、例えばデータの効率的な大容量記憶のために構成されることができる一方で、インコアメモリは、実質的にオンデマンドでデータを提供するように構成され得る。即ち、メモリ504、506は、異なるタイプからなることができる。例えば、オフコアメモリ504は、固体メモリ、例えばハードディスク・ドライブ(HDD)又は半導体ドライブ(SSD)を含むことができる一方で、インコアメモリは、ランダム・アクセス・メモリ(RAM)を含むことができる。他の例において、オフコアメモリ504は、読み出し専用メモリを含むことができる。
幾つかの例において、インコアメモリ506は、プロセッサ502に物理的にさらに近づくことができ(より短い信号経路を可能にするために)、オフコアメモリ504より物理的に小さくすることができる。幾つかの例において、プロセッサ502は、ローカルエリア・ネットワーク、広域ネットワーク又はインターネットのようなコンピュータネットワークを介して、オフコアメモリ504に接続されることができる一方で、インコアメモリは、プロセッサ502を含む装置内に又は当該装置の近くに配置され得る。幾つかの例において、インコアメモリ502は、プロセッサと同じチップ又はダイ上に設けられ得るか、又はプロセッサは「プロセッシング・インメモリ」プロセッサであることができる。幾つかの例において、メモリ504、506は、実質的に同一場所に配置され得る。
幾つかの例において、直列化データは、オフコアメモリ504に格納されることができ、特定の層に関連するデータのこれら部分だけを含むデータブロックは、インコアメモリ506に格納され得る。留意されるべきは、ひとたび第1の層のデータブロックが構築されれば、第2の層に関連する少なくとも幾つかのデータがオフコアメモリ504から既に読み出され(検索され)ている。データの比較的遅い検索は、データ検索および処理の全体にわたって(及び幾つかの例において、物体生成の活動の全体にわたって)分散される。幾つかの例において、副体積オクトリーは、インコアメモリ506に形成され得る。
図6は、機械可読媒体602及びプロセッサ604を示す。機械可読媒体602は、プロセッサにより実行された際に、層毎の製造において生成されるべき物体を表すデータモデルをプロセッサに生成させる命令を含む。
命令は、第1のサイズの8個の体積からなるグループを検査することにより、層毎の製造において生成されるべき物体を表す複数の第1のデータモデルを生成するための命令を含み、当該検査は、各グループに関して以下のことを行なう、即ち、(i)グループが所定の属性を共有する体積からなる場合、当該体積をマージして、所定の属性を有する第2のサイズの体積を画定し;そうでなければ(ii)グループが所定の属性を欠いている体積からなる場合、当該体積をマージして、所定の属性を欠いている第2のサイズの体積を画定し、及びそうでなければ、(iii)第2のサイズの体積を示すノードを画定し、当該ノードはその副部分に属性を含む。幾つかの例において、命令は、図3の方法を実行するための命令を含むことができる。
命令は、ノード/体積の形成が、先行する反復において画定されたノード/体積により表された体積を検査することに基づいて、形成されたノードの表現を含むデータセットが閾値サイズに到達するまで、反復して実行されるようにすることができる。幾つかの例において、ノードが以前に識別されていない場合、どんな場合でも、最も大きい体積がノードとして符号化され得る。
命令は、プロセッサ604に、複数の第1のデータモデルを(例えば、メモリに)格納させ、第2のデータモデルを生成させる命令を更に含むことができ、この場合、第2のデータモデルを生成することは、第1のデータモデルを生成する際に形成された最も大きい体積を表すノード/体積から開始し、第1のサイズの8個の体積からなるグループを検査し、当該検査は、各グループに関して以下のことを行なう、即ち、(i)グループが所定の属性を共有する体積からなる場合、当該体積をマージして、所定の属性を有する第2のサイズの体積を画定し;そうでなければ(ii)グループが所定の属性を欠いている体積からなる場合、当該体積をマージして、所定の属性を欠いている第2のサイズの体積を画定し;そうでなければ、(iii)第2のサイズの体積を示すノードを画定し、当該ノードはその副部分に属性を含む。ノード/体積の形成は、先行する反復において画定されたノード/体積により表された体積を検査することに基づいて、単一のノードが物体を含む体積を示すまで、反復して実行され得る。
機械可読媒体602は更に、プロセッサ604により実行された際に、プロセッサ604に、例えば図4に関連して説明されたように、複数の第1のデータモデルを第2のデータモデルへインタリーブすることにより、第1及び第2のデータモデルをマージさせる命令を含むことができる。
機械可読媒体602は更に、プロセッサ604により実行された際に、プロセッサ604に、第1及び第2のデータモデルを生成させる命令を含むことができ、当該第1及び第2のデータモデルを生成することは、各データモデルにおいて、即ち、
(i)物体生成の意図された順序において以前に生成されるべき物体の層を含む体積を表すノードは、その後に生成されるべき物体の層(単数または複数)からなる体積を表すノードに先行する;
(ii)物体の所与の層を含む体積を表すノードに関して、より粗い体積分解能のノードは、より精細な体積分解能のノードに先行する;及び
(iii)所与の層を含む体積を表し且つ同じ分解能に属するノードは、所定の場所符号化パターンに従って直列化される、ようになっている。
言い換えれば、データモデルはそれぞれ、上述されたような「Z優先」データモデルを含むことができる。
図7は、層毎の製造プロセスにおいて製造されるべき物体の少なくとも一部の表現を示し、この場合、当該表現は、第1の分解能と第2の分解能との間の物体の体積分解能にまたがる第1の複数のノードを有するオクトリー702を表すデータ(この例において、3つの体積分解能)、及び第3の分解能と第4の分解能との間の物体の体積分解能にまたがる第2の複数のノードを有する複数のオクトリー704a−nのそれぞれを表すデータ(この例において、更に2つの体積分解能)を含む。理解されるように、オクトリー702は、最高64個のオクトリー704a−nを有することができ、当該オクトリー704a−nは、それと関連付けられた第2の複数のノードを有する。第1の分解能と第2の分解能との間の物体の体積分解能にまたがるノードを有するオクトリー702は、体積オクトリーを含むことができ、第3の分解能と第4の分解能との間の物体の体積分解能にまたがるノードを有するオクトリー704は、副体積オクトリーを含むことができる。
各オクトリー702、704の直列化表現内において、ノードは、物体の所与の層を含む体積を表すノードに関して、物体生成の意図された順序において以前に生成されるべき物体の層を含む体積を表すノードが、その後に生成されるべき物体の層(単数または複数)からなる体積を表すノードに先行し、より粗い体積分解能のノードがより精細な体積分解能のノードに先行し;及び所与の層を含み且つ同じ分解能に属する体積を表すノードが、所定の場所符号化パターンに従って直列化されるように、順序付けられ得る(即ち、データは、上述されたような「Z優先」順序に従って順序付けられる)。係るデータ構造は、上述されたように、積層造形プロセスにおいて、「ならされた」データ検索に適する。
幾つかの例において、オクトリーの各ノードは、所定の共通の長さからなるビットストリングにより表され、以下の1つとして複数の副体積を分類する、即ち、
(i)副体積の全体にわたって一貫した所定の属性を有する、
(ii)副体積の全体にわたって所定の属性を欠いている、
(iii)副体積の副部分に所定の属性を有する。
本開示の例は、ソフトウェア、ハードウェア、ファームウェア又は同類のものからなる任意の組み合わせのような、方法、システム又は機械可読命令として提供され得る。係る機械可読命令は、内部または表面にコンピュータ可読プログラムコードを有するコンピュータ可読記憶媒体(以下に限定されないが、ディスク記憶装置、CD−ROM、光学記憶装置などを含む)に含まれ得る。
本開示は、本開示の例による、方法、デバイス及びシステムの流れ図および/またはブロック図に関連して説明された。上述された流れ図は、実行の特定順序を示すが、実行の順序は、示されたものと異なることができ、少なくとも幾つかのプロセスは、並行して実行され得る。1つの流れ図に関連して説明されたブロックは、別の流れ図のブロックと組み合わされ得る。理解されるべきは、流れ図の少なくとも幾つかの流れ、並びに流れ図および/またはブロック図の流れ及び/又は図表の組み合わせは、機械可読命令により実現され得る。
例えば、機械可読命令は、汎用コンピュータ、専用コンピュータ、組み込みプロセッサ、又は説明および図において説明された機能を実現するための他のプログラム可能データ処理デバイスのプロセッサにより、実行され得る。特に、プロセッサ又は処理装置は、機械可読命令を実行することができる。かくして、装置およびデバイスの機能モジュールは、メモリに格納された機械可読命令を実行するプロセッサ、又は論理回路に埋め込まれた命令に従って動作するプロセッサにより、実現され得る。用語「プロセッサ」は、CPU、処理ユニット、ASIC、論理ユニット、又はプログラマブル・ゲート・アレイなどを含むと広く解釈されるべきである。方法および機能モジュールは全て、単一のプロセッサによって実行される、又は幾つかのプロセッサ間に分割され得る。
また、係る機械可読命令は、コンピュータ又は他のプラグラム可能データ処理デバイスを特定のモードで動作するように案内することができるコンピュータ可読記憶装置に格納され得る。
また、係る機械可読命令は、コンピュータ又は他のプラグラム可能データ処理デバイスへロードされることができ、その結果、コンピュータ又は他のプラグラム可能データ処理デバイスは、コンピュータで実施される処理をもたらすために一連の動作を実行し、かくしてコンピュータ又は他のプラグラム可能データ処理デバイスで実行された命令は、流れ図の流れ(単数または複数)により指定された機能を実現する。
更に、本明細書の教示は、コンピュータソフトウェア製品の形態で実現されることができ、コンピュータソフトウェア製品は、記憶媒体に格納され、本開示の例に列挙された方法をコンピュータデバイスに実現させるための複数の命令を含む。
方法、装置、及び関連する態様が特定の例に関連して説明されたが、様々な変更、変形、省略および代用が、本開示の思想から逸脱せずに行なわれ得る。従って、方法、装置、及び関連する態様は以下の特許請求の範囲およびそれらの等価物の範囲によってのみ制限されることが意図されている。留意されるべきは、上述した例は、本明細書で説明されたことを制限するのではなく、添付の特許請求の範囲の範囲から逸脱せずに当業者が多くの代替の具現化形態を設計することができることを示す。一例に関連して説明された特徴は、別の例の特徴と組み合わされ得る。
単語「含む」は、特許請求の範囲において列挙された要素以外の要素の存在を排除せず、「a」又は「an」は、複数を排除せず、単一のプロセッサ又は他のユニットは、特許請求の範囲において列挙された幾つかのユニットの機能を果たすことができる。
任意の従属する請求項の特徴は、独立請求項または他の従属する請求項の何れかの特徴と組み合わされ得る。

Claims (15)

  1. プロセッサにおいて、物体の第1のデータモデルを受け取り、
    前記プロセッサを用いて、第2のデータモデルを生成することを含み、前記第2のデータモデルを生成することが、
    前記物体を含む体積の複数の隣接する重ならない副体積のそれぞれに関して、前記副体積を特徴付け且つルートノードを有する副体積オクトリーを生成し、
    前記物体を含む体積を特徴付ける体積オクトリーを生成することを含み、前記体積オクトリーが、その最も下のノードにおいて前記副体積オクトリーの前記ルートノードを特徴付ける、方法。
  2. オクトリーを生成することは、
    前記データモデルにおける第1のサイズの8個の体積からなるグループのそれぞれに対して以下のことを検査することを含み、即ち、
    前記グループが所定の属性を共有する体積からなる場合、当該体積をマージして所定の属性を有する第2のサイズの体積を画定し、
    そうでなければ、前記グループが前記所定の属性を欠いている体積からなる場合、当該体積をマージして前記所定の属性を欠いている前記第2のサイズの体積を画定し、
    そうでなければ、前記第2のサイズの体積を示すノードを画定し、当該ノードはその副部分に前記属性を含む、請求項1に記載の方法。
  3. 前記属性は、前記体積が前記物体の内部に完全にあるか否かに関するしるしを含む、請求項2に記載の方法。
  4. 副体積オクトリーを生成することは、先行する反復において画定されたノード及び/又は体積により表された体積を検査し、ルートノード又は体積が画定されるまで、新たなノード及び/又は体積を画定することを含む、請求項2に記載の方法。
  5. 少なくとも1つの副体積オクトリーを格納することを更に含む、請求項4に記載の方法。
  6. 前記体積オクトリーを生成することは、先行する反復において画定されたノード及び/又は体積により表される体積を反復して検査し、前記副体積オクトリーのルートノード及び/又は体積から開始することを含む、請求項4に記載の方法。
  7. オクトリーを生成することは、前記物体の直列化オクトリー表現を形成することを含み、この場合、前記物体の直列化オクトリー表現において、前記ノードは、
    (i)物体生成の意図された順序において以前に生成されるべき前記物体の層を含む体積を表すノードが、その後に生成されるべき前記物体の層(単数または複数)からなる体積を表すノードに先行する;
    (ii)前記物体の所与の層を含む体積を表すノードが、前記オクトリー内のノードのレベルに基づいて順序付けられ、親ノードが子孫ノードより前に出現し;及び
    (iii)前記物体の所与の層を含む体積を表し且つ前記オクトリー内の同じレベルに属するノードが、場所符号化パターンに従って直列化される、ように順序付けられる、請求項1に記載の方法。
  8. 前記物体の所与の層を含む体積を表し且つ前記オクトリー内の同じレベルに属するノードは、モートンコードパターンに従って、直列化される、請求項7に記載の方法。
  9. 各副体積オクトリーを前記体積オクトリーへ挿入することにより、前記体積オクトリー及び前記副体積オクトリーをマージすることを更に含む、請求項1に記載の方法。
  10. 積層造形において生成されるべき複数の層のそれぞれのデータ表現を提供するために、前記第2のデータモデルからデータを抽出し、
    前記データ表現に基づいて前記物体を生成することを更に含む、請求項1に記載の方法。
  11. プロセッサにより実行された際に、プロセッサに以下のこと、即ち、
    複数の第1のデータモデル、及び第1のサイズの8個の体積からなるグループを検査することにより層毎の製造において生成するための物体を表す第2のデータモデルを、物体モデルデータから生成することをさせる命令を含む、機械可読媒体であって、
    前記検査は、各グループに関して、
    前記グループが所定の属性を共有する体積からなる場合、当該体積をマージして、所定の属性を有する第2のサイズの体積を画定し;
    そうでなければ、前記グループが所定の属性を欠いている体積からなる場合、当該体積をマージして、所定の属性を欠いている第2のサイズの体積を画定し、
    そうでなければ、第2のサイズの体積を示すノードを画定し、当該ノードがその副部分に属性を含むことを行い、
    前記第1のデータモデルを生成する際にノード及び/又は体積を画定するための命令が、先行する反復において画定されたノード及び/又は体積を検査することに基づいて、前記第2のサイズの体積が所定のサイズに到達するまで、反復してノード及び/又は体積を画定するための命令であり、前記所定のサイズの体積を示すノードが画定され、
    前記第2のデータモデルを生成する際にノード及び/又は体積を画定するための命令が、前記第1のデータモデルを生成する際に画定された前記所定のサイズのノードから開始して、単一のノードが前記物体を含む体積を示すまで、先行する反復において画定されたノード及び/又は体積を検査することに基づいて、反復してノード及び/又は体積を画定するための命令を含み、
    前記命令が、前記プロセッサに前記複数の第1のデータモデルを格納させる命令を更に含む、機械可読媒体。
  12. プロセッサにより実行された際に、前記プロセッサに、前記複数の第1のデータモデルを前記第2のデータモデルへインタリーブすることにより、前記第1及び第2のデータモデルをマージさせる命令を更に含む、請求項11に記載の機械可読媒体。
  13. プロセッサにより実行された際に、前記プロセッサに前記第1及び第2のデータモデルを生成させる命令を更に含み、前記生成させることは、各データモデルにおいて、
    (i)物体生成の意図された順序において以前に生成されるべき物体の層を含む体積を表すノードが、その後に生成されるべき物体の層(単数または複数)からなる体積を表すノードに先行し、
    (ii)前記物体の所与の層を含む体積を表すノードに関して、より粗い体積分解能のノードが、より精細な体積分解能のノードに先行し、及び
    (iii)所与の層を含む体積を表し且つ同じ分解能に属するノードが、所定の場所符号化パターンに従って直列化されるようになっている、請求項11に記載の機械可読媒体。
  14. 層毎の製造プロセスにおいて製造されるべき物体の少なくとも一部の表現を含む機械可読媒体であって、前記表現は、
    第1の分解能と第2の分解能との間の前記物体の体積分解能にまたがる第1の複数のノードを有するオクトリーを表すデータと、
    第3の分解能と第4の分解能との間の前記物体の体積分解能にまたがる第2の複数のノードを有する複数のオクトリーのそれぞれを表すデータとを含み、
    各オクトリーにおいて、ノードは、
    (i)物体生成の意図された順序において、以前に生成されるべき前記物体の層を含む体積を表すノードが、その後に生成されるべき前記物体の層(単数または複数)からなる体積を表すノードに先行し;
    (ii)前記物体の所与の層を含む体積を表すノードに関して、より粗い体積分解能のノードが、より精細な体積分解能のノードに先行し;及び
    (iii)所与の層を含む体積を表し且つ同じ分解能に属するノードが、所定の場所符号化パターンに従って順序付けられるように、順序付けられる、機械可読媒体。
  15. 前記オクトリーの各ノードが、所定の共通の長さからなるビットストリングにより表され、以下の1つとしてそれらの副体積の少なくとも1つを分類し、即ち、
    (i)前記副体積の全体にわたって一貫した所定の属性を有する、
    (ii)前記副体積の全体にわたって前記所定の属性を欠いている、
    (iii)前記副体積の副部分に所定の属性を有する、
    請求項14に記載の機械可読媒体。
JP2019528016A 2016-10-12 2016-10-12 副体積オクトリー Active JP6746790B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2016/056568 WO2018071013A1 (en) 2016-10-12 2016-10-12 Sub-volume octrees

Publications (2)

Publication Number Publication Date
JP2019527905A true JP2019527905A (ja) 2019-10-03
JP6746790B2 JP6746790B2 (ja) 2020-08-26

Family

ID=61905873

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019528016A Active JP6746790B2 (ja) 2016-10-12 2016-10-12 副体積オクトリー

Country Status (6)

Country Link
US (1) US11003166B2 (ja)
EP (1) EP3469546B1 (ja)
JP (1) JP6746790B2 (ja)
KR (1) KR102192805B1 (ja)
CN (1) CN109643442B (ja)
WO (1) WO2018071013A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7480547B2 (ja) 2020-03-25 2024-05-10 富士フイルムビジネスイノベーション株式会社 情報処理装置、及び情報処理プログラム

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017200527A1 (en) * 2016-05-16 2017-11-23 Hewlett-Packard Development Company, L.P. Generating a shape profile for a 3d object
DE112016007098T5 (de) * 2016-07-26 2019-04-18 Hewlett-Packard Development Company, L.P. Indexierung von voxeln für das 3d-drucken
WO2019013829A1 (en) 2017-07-10 2019-01-17 Hewlett-Packard Development Company, L.P. DEDUCTION OF OBJECT ATTRIBUTES
CN110832552A (zh) * 2017-07-10 2020-02-21 惠普发展公司,有限责任合伙企业 转换对象数据模型以散布对象属性
US11910026B2 (en) * 2018-09-28 2024-02-20 Sony Corporation Image processing apparatus and method
US10693492B1 (en) * 2019-06-28 2020-06-23 Blackberry Limited Context determination for planar mode in octree-based point cloud coding
CN112258661B (zh) * 2020-10-28 2023-12-26 江苏旗阵信息技术服务有限公司 一种基于八叉树的电网设备模型切片方法
WO2023146545A1 (en) * 2022-01-31 2023-08-03 Hewlett-Packard Development Company, L.P. Transforming object data models
CN114895885B (zh) * 2022-05-20 2023-08-15 杭州宏深科技有限公司 在三维检测软件基于特征的重计算方法
CN117341206B (zh) * 2023-10-08 2024-03-29 南京林业大学 一种基于八叉树的支撑结构生成方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4694404A (en) 1984-01-12 1987-09-15 Key Bank N.A. High-speed image generation of complex solid objects using octree encoding
JP3265879B2 (ja) 1994-11-25 2002-03-18 日産自動車株式会社 3次元直交格子データの生成装置
JP2000182081A (ja) 1998-12-14 2000-06-30 Suzuki Motor Corp 解析モデル作成方法および装置並びに解析モデル作成用プログラム若しくは解析モデルデータを記憶した記憶媒体
US7340678B2 (en) 2004-02-12 2008-03-04 Fuji Xerox Co., Ltd. Systems and methods for creating an interactive 3D visualization of indexed media
KR100519780B1 (ko) * 2004-02-17 2005-10-07 삼성전자주식회사 3차원 체적 데이터 부호화/복호화 방법 및 장치
US7940279B2 (en) * 2007-03-27 2011-05-10 Utah State University System and method for rendering of texel imagery
US8169434B2 (en) 2008-09-29 2012-05-01 Microsoft Corporation Octree construction on graphics processing units
WO2011038427A1 (en) * 2009-10-02 2011-04-07 Vrvis Zentrum Für Virtual Reality Und Visualisierung Forschungs-Gmbh Visual queries in data exploration
US8780112B2 (en) 2011-06-08 2014-07-15 Pacific Data Images Llc Coherent out-of-core point-based global illumination
US20120320073A1 (en) * 2011-06-14 2012-12-20 Obscura Digital, Inc. Multiple Spatial Partitioning Algorithm Rendering Engine
US8542939B2 (en) 2011-08-04 2013-09-24 Arm Limited Methods of and apparatus for using tree representations for representing arrays of data elements for encoding and decoding data in data processing systems
US9396512B2 (en) * 2012-03-09 2016-07-19 Nvidia Corporation Fully parallel construction of k-d trees, octrees, and quadtrees in a graphics processing unit
US9817388B2 (en) * 2013-11-27 2017-11-14 Adobe Systems Incorporated Method and apparatus for preserving structural integrity of 3-dimensional models when printing at varying scales
US10347042B2 (en) * 2014-03-13 2019-07-09 Pixar Importance sampling of sparse voxel octrees
EP2933777A1 (en) * 2014-04-17 2015-10-21 amberMind Three dimensional modeling
US10311381B2 (en) * 2014-12-12 2019-06-04 Autodesk, Inc. Tool and method for conductive trace generation in a 3D model for a hybrid electro-mechanical 3D printer
US20170078593A1 (en) * 2015-09-16 2017-03-16 Indoor Reality 3d spherical image system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7480547B2 (ja) 2020-03-25 2024-05-10 富士フイルムビジネスイノベーション株式会社 情報処理装置、及び情報処理プログラム

Also Published As

Publication number Publication date
JP6746790B2 (ja) 2020-08-26
BR112019003826A2 (pt) 2019-06-18
KR102192805B1 (ko) 2020-12-21
EP3469546A1 (en) 2019-04-17
WO2018071013A1 (en) 2018-04-19
EP3469546B1 (en) 2022-04-27
CN109643442B (zh) 2023-02-17
EP3469546A4 (en) 2019-12-11
US20200050175A1 (en) 2020-02-13
US11003166B2 (en) 2021-05-11
KR20190028789A (ko) 2019-03-19
CN109643442A (zh) 2019-04-16

Similar Documents

Publication Publication Date Title
JP6746790B2 (ja) 副体積オクトリー
CN109643457B (zh) 使三维对象的表示序列化
US20200257268A1 (en) Creating a voxel representation of a three dimensional (3-d) object
EP3251095B1 (en) Generating slice data from a voxel representation
JP6721332B2 (ja) 3dモデル化されたアセンブリ上で境界ボックスを生成すること
US11130292B2 (en) Estimating physical property of 3D printed parts
JP2019531537A (ja) 3dモデルを印刷するシステムおよび方法
Ishida et al. Efficient and robust cartesian mesh generation for building-cube method
US11275354B2 (en) Systems, methods and file format for 3D printing of microstructures
US10706623B1 (en) Systems and methods for preparing a virtual three-dimensional (3D) object for 3D printing
Vassilakos et al. Fabrication of parts with heterogeneous structure using material extrusion additive manufacturing
WO2022197538A2 (en) Methods and systems for generating an instant design for manufacturability of a part at a computing device
BR112019003826B1 (pt) Método e mídia legível por máquina para representar árvores de octantes de subvolumes
US11308690B2 (en) Information processing apparatus and non-transitory computer readable medium for determining attribute value of voxel
WO2022046109A1 (en) Machine learning-based design of beam-based physical structures
KR101373174B1 (ko) 공간가속구조의 다각형 데이터 처리방법 및 장치
Anderson Automated All-Quadrilateral Mesh Adaptation through Refinement and Coarsening

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200414

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200707

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200805

R150 Certificate of patent or registration of utility model

Ref document number: 6746790

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250