(57)【特許請求の範囲】
【請求項１】
３次元物体の物体部と支持部の双方を形成するための固化可能な材料を供給する、ラスターパターンで走査されるインクジェット型のプリントヘッドを備えた高速試作装置を使用して、積層により該３次元物体を造形する方法であって、
前記物体部の各断面における断面形状を示す多角形データと、複数の走査線を重ね合わせることにより、該複数の走査線の前記物体部内にある部分を特定する各層の実行長さエンコードデータ（RLEデータ）を作成する工程と、
所定の層より上方の全ての層の前記実行長さエンコードデータのブール和を計算することにより、該上方の全ての層の組合せにより覆われる全領域を示す実行長さエンコードデータを求める工程と、
該全領域を示す実行長さエンコードデータと前記所定の層の実行長さエンコードデータとのブール差を求める工程と、
前記複数の走査線の該ブール差が指定する部分に沿って存在する一連の画素の、全ての画素または１から２画素おきの画素に、各々１つまたは複数の前記材料の材料滴が供給されるように、前記プリントヘッドを走査することにより、前記所定の層における支持部を形成する工程を含むことを特徴とする方法。
【請求項２】
積層により３次元物体を造形するために、該３次元物体の物体部と支持部の双方を形成するための固化可能な材料を供給する、ラスターパターンで走査されるインクジェット型のプリントヘッドを備えた高速試作装置であって、
前記物体部の各断面における断面形状を示す多角形データと、複数の走査線を重ね合わせることにより、該複数の走査線の前記物体部内にある部分を特定する各層の実行長さエンコードデータ（RLEデータ）を作成する手段と、
所定の層より上方の全ての層の前記実行長さエンコードデータのブール和を計算することにより、該上方の全ての層の組合せにより覆われる全領域を示す実行長さエンコードデータを求める手段と、
該全領域を示す実行長さエンコードデータと前記所定の層の実行長さエンコードデータとのブール差を求める手段と、
前記複数の走査線の該ブール差が指定する部分に沿って存在する一連の画素の、全ての画素または１から２画素おきの画素に、各々１つまたは複数の前記材料の材料滴が供給されるように前記プリントヘッドを走査することにより、前記所定の層における支持部を形成する手段を備えていることを特徴とする装置。
【発明の詳細な説明】
技術分野
本発明は、３次元物体の形成のためのデータ操作および造形制御の技術に関し、特に高速試作製造（Rapid Prototyping ＆ Manufacturing:RP＆Ｍ）システムにおいて使用する技術に関し、さらにはサーマルステレオリソグラフィー（Thermal Stereolithography:TSL）システム、溶融積層造形（Fused  Deposition Modeling:FDM）システム等の選択積層造形（Selective Deposition Modeling:SDM）システムにおいて使用する、データ操作および造形制御の方法および装置に関するものである。
背景技術
近年、３次元物体の製造システムあるいは高速試作製造（RP＆Ｍ）システムを自動化あるいは半自動化するために様々な方向からのアプローチがなされている。それらのアプローチはいずれも、３次元物体を表す３次元コンピュータデータを使用して、複数の層を形成し、積層することによって３次元物体を造形することを特徴としている。これらの層は、物体断面、構造層、物体層あるいは単に層（もし文脈から所定形状の固化した構造物をさしていることが明らかであれば）とも呼ばれる。各層は、３次元物体の一断面をなしている。通常各層はそれまでに形成積層された層の積層体上に形成、積層される。RP＆Ｍ技術において、厳格に一層ずつ造形するのではなく、最初の層の一部のみを形成し、最初の層の残りの部分を形成する前に、少なくとも次の一層の少なくとも一部を形成するようにすることも提案されている。
そのようなアプローチの１つでは、未硬化の流動性のある材料の、連続した複数の層を作業面に供給し、その後その各層を所望のパターンで所定の刺激に選択的に暴露して硬化させ、その硬化した層をそれまでに形成された積層体に付着させることにより３次元物体を造形する。この方法では、材料は物体層の一部とならない領域および物体層の一部となる領域の両方の作業面に供給される。この方法の典型が、Hullに与えられた米国特許第４、575、330に述べられているようにステレオリソグラフィー（SL）である。このステレオリソグラフィーの一実施例によると、所定の刺激はUVレーザーからの放射線であり、材料は光重合性ポリマーである。この方法の別の例は、Deckardに与えられた米国特許第４、863、583号に述べられている選択的レーザー焼結（SLS）であり、所定の刺激はCO2レーザーからのIR放射線であり、材料は焼結可能な粉末である。３番目は、Sachs等に与えられた米国特許第５、340、656号および第５、204、055号に述べられている、３次元印刷（3DP）および直接シェル製造キャスティング（DSPC）であり、所定の刺激は化学的結合剤（例えば接着剤）であり、材料は化学的結合剤を選択的に与えられると互いに結合する粒子からなる粉末である。
第２のアプローチでは、所望の形状および大きさを有する物体断面をシート状材料から切り出し、積層することにより物体が形成される。実際的には、紙シートが使用され、各シートはそれまでに切り出され、積層されたシートの積層体上に積層してから、カットされるのが普通であるが、カットしておいてから積層することも可能である。このアプローチの典型が、Feyginに与えられた米国特許第４、752、352号に述べられている積層物体製造法（LOM）であり、シートを所望の形状および大きさにカットする手段はCO2レーザーである。Kinzieに与えられた米国特許第５、015、312号もまたLOMを扱っている。
第３のアプローチでは、物体層は未硬化の流動性のある材料を物体層の一部となる領域において所望のパターンで作業面上に選択的に供給することにより形成される。その供給中あるいは供給後に、供給された材料を硬化させて、その硬化した層をそれまでに形成された層の積層体上に重ねる。これらのステップを繰り返して物体を一層一層形成する。この物体造形技術は一般的には選択積層造形（SDM）と呼ばれている。このアプローチと第１のアプローチとの主な違いは、材料が物体層の一部になる領域にのみ選択的に供給されることにある。このアプローチの典型は、Crumpに与えられた米国特許第５、121、329号および第５、340、433号で述べられている、溶融積層造形（FDM）であり、材料は、流動状態において、材料の流動可能温度より低い温度にある環境に供給され、その後冷却硬化される。第２の例は、Pennに与えられた米国特許第５、260、009号に記載の技術である。第３の例は、Mastersに与えられた米国特許第４、665、492号、第５、134、569号、第５、216、616号に述べられている、弾道粒子製造法（Ballistic Particle Manufacturing:BPM）であり、粒子が物体断面を形成するように所定の位置に向けて発射される。第４の例は、Almquist等に与えられた米国特許第５、141、680号に記載されている、サーマルステレオリソグラフィー（TSL）である。
SDM（他のRP＆Ｍ技術と同様に）を使用する際、所望の物体を製造するのにどの方法およびどの装置が適切であるかは、多くの要因に依存する。これらの要因は一般には同時に最適化できないので、適切な造形技術、および関連する方法および装置の選択には、個々の要求および状況により、妥協が必要となる。考慮されるべき要因は、１）設備コスト、２）運転コスト、３）製造スピード、４）物体の精度、５）物体の表面仕上げ、６）形成される物体の材料特性、７）物体の予想用途、８）異なる材料特性を得るための二次加工の可能性、９）使用容易性およびオペレーターに関する制約、10）要求されるあるいは所望の操作環境、11）安全性、12）後処理にかかる時間および労力、を含む。
３次元物体をより効果的に造形するために上記要因のできるだけ多くを同時に最適化することが長く望まれていた。例えば、上記選択積層造形（SDM）（例えばサーマルステレオリソグラフィー）、を使用して物体を造形する際には、設備コストを上げずに、造形速度を上げ、装置設定時間およびファイル作成時間を短縮することが長い間の懸案になっている。この点に関して重要な問題は、造形データの作成と操作の満足のいく技術の必要性であった。もう１つの重要な問題は造形中に物体を支えるのに適切な支持構造データを作成する充分な技術が必要であるということである。さらに、膨大な量のデータをリアルタイムで操作でき、ジェットの失火や誤作動を補償することができ、必要な順序でアクセスすることができるようにデータを調整することができ、形状感応型の造形スタイルと滴下法を効果的に提供できる制御ソフトウエアの存在も問題であった。データ作成技術を必要とするSDMに使用する適切な造形スタイルと支持構造については米国特許出願No.08/534,813に記載されている。
従来技術の前述のような問題を解決することのできる、データ作成、制御方法および装置が長い間望まれているが、未だに実現されていない。
本明細書の以上の部分において挙げた特許はその公報の全文をここに引用したものとする。
関連特許出願
以下の出願は全文をここに引用したものとする。
0003545421.tif 000002
本出願の被譲渡人である、3D Systems Inc.は本出願を次の関連出願と同時に提出した。次の出願は全文をここに引用したものとする。
0003545421.tif 000003
サーマルステレオリソグラフィーや溶融積層造形技術によると、３次元物体は流動状態になるまで加熱されて供給される材料によって１層１層形成される。材料はディスペンサーから半連続的な流れとして供給してもよいし、滴として供給してもよい。材料を半連続的な流れとして供給する場合には作業面の基準はそれほど厳しくなくともよいと考えられる。サーマルステレオリソグラフィーの初期の例が米国特許No.5,141,680に記載されている。この出願は全文をここに引用したものとする。サーマルステレオリソグラフィーは反応性や毒性の材料を使用しないために、オフィス内等で使用するのに適している。さらに、その材料を使用して造形する場合に、放射線（例えば、紫外線、赤外線、可視光線等のレーザ光線）を使用することもないし、材料を燃焼温度まで加熱する（例えば、LOM技術では断面の境界に沿って材料を燃やすことがある）こともないし、反応性材料（例えばモノマーや感光性ポリマー）や毒性化学物質（例えば溶媒）を使用することもないし、騒音を発生したり、操作を間違えると危険のあるような切削工具を使用することもなく、単に材料を流動状態になるまで加熱して、選択的に供給し、冷却することによって造形がなされる。
上述の米国特許出願No.08/534,813はTSL原理に基づく望ましい選択積層造形システムに使用することのできる、造形／支持スタイルと構造に主に関するものである。他のSDMシステム、および他のRP＆Ｍシステムに使用することのできる他の造形／支持スタイルと構造も開示されている。
上述の米国特許出願No.08/535,772はSDM/TSLの望ましい実施の形態で使用される望ましい材料に関するものである。使用可能な他の材料および方法も記載されている。
上述の米国特許出願No.08/534,447は本出願の親出願であり、TSL（サーマルステレオリソグラフィー）原理に基づいた選択積層構造（SDM）システムにおいて使用する、３次元物体データを支持部データと物体部データに変換するデータ変換技術に関するものである。さらにこの出願は、後述の望ましいSDM/TSLシステムを制御するための、様々なデータ操作、データ制御、システム制御にも関するものである。SDMシステム、および他のRP＆Ｍシステムに使用することのできる他のデータ操作、データ制御技術も開示されている。
この出願の被譲渡人、3D Systems Inc.はRP＆Ｍの分野、そのうちでも、特に光りベースのステレオリソグラフィー、の多くの米国特許出願や米国特許の所有者である。当社所有の以下の米国特許出願および米国特許は全文をここに引用したものとする。
0003545421.tif 000004
発明の要約
本発明は選択積層造形技術を使用して形成される３次元物体の造形に使用されるデータ生成、データ操作、システム制御に関する多数の問題を取り扱うため、独立してあるいは組み合わせて使用される多くの技術（方法および装置）を含んでいる。主にSDM技術に関するものであるが、以下に記載の技術は、データ操作、生成技術を向上させて装置の処理能力を向上させるために前述のような他のRP＆Ｍ技術に対しても色々な方法で適用することができる。さらに、ここに記載の技術は、１種類または２種類以上の造形材料および／または支持体材料を使用する選択積層造形システムに適用することができるが、そこでは一部を選択的に供給し、他を非選択的に供給してもよいし、材料の全体あるいは一部を加熱して積層するようにしてもよいし、そうでなくともよい。
またここに記載の技術は、造形材料（例えばペンキ、インク）に溶媒（例えば水、アルコール、アセトン、ペンキシンナー等の所定の造形材料に適切な溶媒であり、その溶媒を、例えば供給材料を加熱したり、材料を減圧した造形室内に供給したり、あるいは単に溶媒が気化するのに充分な時間を与えたりして、除去することによって供給後あるいは供給中に材料を硬化させることのできるもの）を加えて供給可能なように流動化するようにしたSDMシステムにも応用することができる。さらに、造形材料（例えばペンキ）は、チキソトロピーを示すものでもよく、この場合材料への剪断力を増加させることによって材料の供給を促進させるようにしてもよいし、あるいはそのチキソトロピー特性を単に供給後の材料の形を保持するのに利用してもよい。さらに、造形材料は、自体が反応性のもの（例えば光重合体、熱重合体、１液性あるいは２液性エポキシ材料、前記材料の１つとワックスあるいは熱可塑樹脂材料とを組み合わせたような結合材料）、あるいは他の材料（例えば焼き石膏と水）と組み合わさった際、少なくとも硬化可能なものでもよく、供給後、前記刺激（例えば、熱、EM放射（可視、IR、UV、Ｘ線等）、反応化学薬品、２液性エポキシの第２液、組み合わせ材料の他の成分）を適切に与えることによりその造形材料を反応させ、硬化させるようにしてもよい。もちろん、サーマルステレオリソグラフィー材料および材料供給技術は単独で、あるいは上記別の例と組み合わせて使用されてもよい。さらに、ホットメルトインクジェット、バブルジェット等の、単一あるいは複数のインクジェット装置、連続あるいは半連続フローの、単一あるいは複数のオリフィス押し出しノズルあるいはヘッドによって材料を供給する等の種々の材料供給技術を使用することができる。
本発明の第一の目的は、３次元物体データを断面データに変換する方法および装置を提供することである。
本発明の第二の目的は、３次元物体データを断面データに変換するための方法および装置を含む物体造形の方法および装置を提供することである。
本発明の第三の目的は、３次元物体データから支持体データを得るための方法および装置を提供することである。
本発明の第四の目的は、支持体データを得、物体形成の際にその支持体データを使用する方法および装置を含む物体造形の方法および装置を提供することである。
上記目的は、本発明の異なる特徴によりそれぞれ達成可能であり、本発明の技術を様々に組み合わせることによりさらに他の目的が達成される。
【図面の簡単な説明】
第１図は好ましいサーマルステレオリソグラフィーシステムの図、
第2a、2b図は第１図のプリントヘッドのオリフィスプレートを異なった角度から見た図、
第３図は第１図のプラナイザの詳細図、
第４図はオリフィスプレート上の隣接したノズルと隣接したラスターラインとの間の相対的距離を示す図、
第５図はシステムのデータ解像度を決定するピクセルグリッドを示す図、
第6a〜6d図はオーバープリントスキームを示す図、
第７図は本発明の第１の実施の形態を示す図、
第8a、8b図はSTLファイルとスライス面の交差を示す図、
第９図はブール抽出演算の結果を示す図、
第10図は本発明の第２の実施の形態を示す図、
第11a図はＺ方向の三角形のソートを説明する図、
第11b、11c図はアクティブな三角形の選択を説明する図、
第12a、12b、12c図は、断面データの種々の表面形式を示す図、
第13a、13b、13c図は、異なる走査線に対応付けられているリストへの移行点データの組み込みを説明する図、
第14、15図はブール抽出操作を詳細に説明する図、
第16、17図はブール加算、ブール減算、ブール乗法を説明する図、
第18〜21図は中間層を使用して支持構造を発生する２段階処理を説明する図、
第22図は支持構造を発生する３段階処理を説明する図、
第23〜26図はスタート／ストップデータを連続するワードに記憶する方法を説明する図、
第27a、27b、28a、28b、29a、29b、30a、30b図はスタート／ストップ移行点を表すリストデータをメモリーに割り当てる方法を説明する図、
第31図は同じ数の移行点で表される連続した走査線の特性を説明する図、
第32図はスタート／ストップデータの画素化によって発生する数量化誤差を説明する図、
第33図はRLEデータの変換を説明する図、
第34a〜34c図は支持構造を形成するのに使用するデータの図、
第35a、35b図は本発明の望ましい実施の形態においてなされる傾斜部分に対する仮定を説明する図、
第36a〜36c図はその実施の形態で使用されるリングバッファを説明する図、
第37図は複合支持構造を示す図、
第38a、38b図はスタイルの例をそれぞれ示す図、
第39a、39b、39c図は物体部と支持部の時として起きる干渉を説明する図、
第40a〜40c図はスタイルファイルの使用法の例を示す図、
第41a〜41f図は他のスタイルを示す図、
第42a〜42e図はデータのスキューを説明する図、
第43図はエンコーダの線を示す図、
第44図はカウンタを１個しか使用しない場合に起きる解像力の問題を説明する図、
第45a、45b図は２個のカウンタを使用して走査方向の解像力を上げるアルゴリズムを説明する図、
第46a図は間隙を有する物体を、異なる支持構造がその上に形成される仮定的な高さおよび領域とともに示す側面図、
第46b図は間隙が異なる形式の支持構造で埋められた第45a図に示す物体の側面図、
第47図はRLEファイルの概念的なフォーマットを示す。
発明の詳細な説明
既に述べたように、本発明は選択積層造形（SDM）システムにおける使用に適した支持技術および造形技術を実行するためのデータ操作技術とシステム制御技術に関するものである。特に、好ましいSDMシステムはサーマルステレオリソグラフィー（TSL）システムである。好適の実施の形態について、先ず望ましいTSLシステムを説明し、実施の形態の詳細については適宜説明する。好ましい造形および支持技術、望ましい材料の配合および特性等のより詳細は、前に引用した米国特許出願番号第08/534,447号、第08/535,772号、第08/534,477号に記載されている。さらに他の代替可能なシステムが前に引用した多数の出願および特許に記載されている。特に、SDM、TSLあるいは溶融積層造形（FDM）に直接関係するか適用可能であるものとして参照したような出願および特許に記載されている。このように、後述のデータ操作技術およびシステム制御技術は、多様なSDM、TSLおよびFDMシステムに適用可能であり、ここで記載された実施の形態に限るものでないと解釈すべきである。
SDM/TSLを実行する装置の好適な例を第１図に示す。その装置は、材料供給台18、供給ヘッド９（例えばマルチオリフィスインクジェットヘッド）を備え、供給ヘッド９は材料供給台18上に位置されている。材料供給台18は、結合部材13を介してＸ−ステージ12に摺動可能に結合されている。Ｘ−ステージ12は、制御コンピュータあるいはマイクロプロセッサ（図示せず）により制御され、材料供給台18をＸ軸方向すなわち主走査方向に前後動させる。さらに、材料供給台18の両側や供給ヘッド９とプラナライザー11の間にファン（図示せず）が配され、所望の造形温度が維持されるよう、供給された材料および造形台を冷却する空気を垂直下方向に吹き付ける。ファンおよび／または他の冷却システム用の他の適切な取付構造としては、気化可能な液体（例えば水、アルコール、溶剤）を物体の表面に向けて噴射するミスト装置等他のものも可能である。冷却システムは、供給された材料を所望の造形温度範囲内に維持するように熱を奪う、温度感知装置とコンピュータによって制御される、能動型あるいは受動型技術を含んでもよい。
供給ヘッド（プリントヘッド）９は、例えば熱可塑樹脂あるいはワックス等の材料のようなホットメルトインクを噴出するように形成された市販のものであり、プリントヘッドの前後動および加速を必要とする３次元造形システムに使用できるように改造されている。プリントヘッドの改造と同時に、付属の材料タンクを、プリントヘッドの加速によってタンク内に残される材料ができるだけ少なくなるように形成する必要がある。好適な例としては、ニューハンプシャー州ナシュアにあるスペクトラ社販売の、96ジェット商用プリントヘッド、モデルHDS96i、の材料タンクを改造したものがある。このプリントヘッドは、前に引用した米国特許出願第08/534,477号記載のマテリアルパッケージング＆ハンドリングサブシステム（図示せず）から流動状態の材料を供給される。望ましい実施の形態では、各オリフィス（すなわちジェット）が材料滴を所望の位置に供給するよう適切に配置され、ヘッド上の96ジェットの全てがコンピュータ制御され、オリフィスプレート10を通じて選択的に材料滴を射出する。実際には、１秒間に約12、000から16、000の命令が、各ジェットの位置と所望の材料供給位置に応じて、各ジェットに対し発射する（材料滴を供給）、しない（材料滴を供給しない）を制御するために送り出される。また、実際には、発射命令は全てのジェットに対して同時に出されるのが望ましい。ヘッドはジェットを選択的に発射させ、溶融材料滴をオリフィスプレート10の１個ないし数個のオリフィスを通って同時に吐出させるようコンピュータ制御される。もちろん、別の好適実施例においては、ジェット数の異なるヘッドを使用してもよいし、別の発射頻度でも差し支えないし、状況が許せばジェットの発射は同時でなくても差し支えない。
オリフィスプレート10は、材料供給台18の下面から材料滴が射出されるように材料供給台18に取り付けられている。そのオリフィスプレートは第2a、2b図に示されている。望ましい例においては、オリフィスプレート10（オリフィス列）は第2a図に示すように、主走査方向（Ｘ方向）にほぼ直角に配され、96個の（Ｎ＝96）の個別に制御できるオリフィス10（１）、10（２）、10（３）・・・10（96）を備えている。各ジェットは圧電素子を備えており、その圧電素子は発射パルス信号を受け取ると、圧力波を材料に向けて発射する。この圧力波によって材料滴がオリフィスから発射される。96個のジェットは個々のジェットに入力される発射パルス信号の入力速度と入力タイミングを制御する制御コンピュータによって制御される。第2a図において、オリフィス間隔ｄは、望ましい例では、約8/300インチ（約26.67ミル、0.677mm）である。したがって96オリフィスでは、オリフィスプレート10の実効長さＤは約（Nx8/300インチ）＝（96x8/300インチ）＝2.56インチ（65.02mm）である。望ましい実施の形態では、プリントヘッド９とオリフィスを目標発射位置に位置させるためにラスタースキャンを使用する。各層のプリント工程は、目標滴下位置に対するプリントヘッド９の一連の動きによってなされる。プリントヘッド９が主走査方向へ動くときにプリントがなされるのが普通である。次にプリントヘッド９を副走査方向にわずかに動かし（この間材料滴は発射されない）、次に材料滴を発射しながらプリントヘッド９を主走査方向反対向きに動かす。この主走査と副走査はその層が形成し終わるまで交互に繰り返される。
他の望ましい実施の形態においては、主操作中にわずかな副走査が行われる。主走査方向の走査速度と副走査方向の走査速度の間に大きな差があるため、この実施の形態においても、主走査方向にほぼ平行で副走査方向にほぼ直角な走査線に沿って材料滴が供給される（すなわち主走査方向と副走査方向はほぼ直角に維持される）。さらに他の望ましい実施の形態では、ベクトルスキャンまたはベクトルスキャンとラスタースキャンの組み合わせが使用される。材料滴の位置を適切に制御できるアルゴリズムを用いれば、主走査方向と副走査方向は直角でなくともよい。
他の望ましい実施の形態では、プリントヘッド９は主走査方向に直角をなさないように取り付けられる。すなわち、第2b図に示すように、プリントヘッド９は主走査方向に角度αをなすように取り付けられる。この場合には、オリフィス間隔はｄからd'（＝ｄ  ｘ  sinα）に短縮され、プリントヘッド９の実効長さはD'（＝Ｄ  ｘ  sinα）に短縮される。この間隔d'が副走査方向（主走査方向にほぼ直角）の所望のプリント解像力に等しいときの角度αを「サーベル角（saber angle）」と見なす。
間隔ｄ（望ましい実施の形態を使用した場合）またはd'（望ましい変更例を使用した場合）が所望のプリント解像力をもたらさないときは（プリントヘッドの角度がサーベル角でないとき）、層のプリント効率を最大にするためには、所望のプリント解像力をｄまたはd'がその所望の解像力の整数倍となるように選択する必要がある。同様に、α≠90゜のときには、副走査方向だけでなく主走査方向にもジェット間隔がある。この間隔d"はd"＝ｄ  ｘ  cosαである。これは、主走査方向の所望の解像力がd"の整数倍であるとき（発射位置が長方形のグリッド内にあるとして）プリント効率が最適になることを示している。言い換えれば、角度αは、d'およびd"の少なくともどちらか一方（望ましくは両方）を適切な整数Ｍ、Ｐで除すると所望の副走査方向および主走査方向の解像力が得られるように選択される。上述の望ましいプリントヘッドの向き（α＝90゜）を使用すると、良好な効率を維持しつつ、主走査方向のプリント解像力を任意のものとすることができる点で有利である。
他の望ましい実施の形態においては、複数のプリントヘッドを使用する。この場合に、複数のプリントヘッドを長手方向に（副走査方向に）並べてもよいし、背中合わせに（主走査方向に）並べてもよい。背中合わせの場合には、それぞれのプリントヘッドのオリフィスは同じラインをたどるように主走査方向に整列していてもよいし、互いに副走査方向に位置がずれて異なる主走査ラインに沿って材料を供給するようにしてもよい。特に、背中合わせのプリントヘッドのオリフィスを副走査方向に所望のラスター走査線間隔だけ位置をずらせて主走査数を減らすようにするのが望ましい。他の望ましい実施の形態では、データによって規定される供給位置は長方形のグリッド内の画素によらずに他のパターン（例えば、ジグザグパターン）で配された画素によって位置決めしてもよい。すなわち、層の一部または全体に対して、供給すべき領域の個々の特性に応じた部分的画素オフセットを得るために、供給位置のパターンが層毎に一部または全体的に変わってもよい。
現時点での望ましいプリント技術では、主走査方向には１インチあたり300、600または1200滴、副走査方向には１インチあたり300滴の材料滴が供給される。
第１、３図において、プラナライザー11は模様付きの（刻み目つき）の表面を有する加熱回転シリンダー18aを備えている。そのシリンダー18aの機能は先行層の材料の一部を溶融し、移送し、除去してその表面を平らにし、直前に形成された層を所定の厚みにするとともに、直前に形成された層の正味の上面高さを所定の高さにする（すなわち、物体の次の層を形成するための所望の作業面ないし作業面高さを設定する）ことである。19はプリントヘッドによって供給直後の材料の層を示す。回転シリンダー18aは材料供給台18にその下面からＺ方向に突出してオリフィスプレートの下方で所望の高さで材料層19と接触するように取り付けられている。望ましい実施の形態ではこの量は0.5mmから1.0mmに設定される。回転シリンダー18aが回転すると、形成直後の層から材料の一部21を押しのけて、その通った後に平らな面20を残す。材料21は回転シリンダー18aの刻み目のある面に付着し、ワイパー22に接触する。図示のように、ワイパー22は回転シリンダー18aの表面から材料21を効果的に掻き落とすように配されている。材料はまだ流動性を有するので、米国特許出願No.08/534,477に記載されている″Material Packaging ＆ Handling subsystem″によって取り出され、廃棄またはリサイクルされる。
第１図に示すように造形台15が使用される。３次元物体もしくは部品14がその造形台15上で形成される。その造形台15はＹステージ16a、16bに摺動自在に取り付けられており、そのＹステージはコンピュータの制御下に造形台15をＹ方向に（割送り方向、副走査方向）前後動させる。その造形台15はＺステージ17にも取り付けられており、そのＺステージはコンピュータの制御下に造形台15をＺ方向に（一般に造形中に徐々に下方に）上下動させる。
物体の断面を形成するため、Ｚステージは物体14の、直前に形成された（供給され、場合によっては平滑化された）断面がプリントヘッド９のオリフィスプレート10の下方所定の距離に位置するように、造形台15をプリントヘッド９に対して移動させる。プリントヘッド９はＹステージ16a、16bと協働してＸ−Ｙ造形領域を１回ないし数回走査する（プリントヘッドはＸ方向に前後動し、Ｙステージ16a、16bは造形中の物体をＹ方向に平行移動させる。）。直前に形成された物体の層とその支持体が次の層とその支持体用の材料を供給するための作業面を形成する。XY方向の平行移動の間に、プリントヘッドのジェットが先行層に対して、所定の位置でそれぞれ発射し、物体の次の断面の層を形成するためのパターンと順序で材料を供給する。この供給過程の途中で材料の一部が上述のようにしてプラナライザー11によって除去される。上述のＸ、Ｙ、Ｚ方向の移動と材料供給と平滑化を繰り返して、選択的に供給積層された複数の層から物体を造形する。平滑化は材料供給とは独立して行ってもよい。また平滑化を全ての層に対しては行わず、選択された層にのみ行ったり、定期的に行ったりしてもよい。
前述したように、ある望ましい実施の形態では、プリントヘッド９はラスターパターンで走査する。この例が第４図に示されている。図示のように、ラスターパターンは、Ｙ方向（割送り方向、副走査方向）に間隔を置いてＸ方向（主走査方向）に走る、一連のラスターラインＲ（１）,R（２），・・・Ｒ（Ｎ）からなっている。ラスターライン間の間隔ｄは、ある望ましい実施の形態では1/300インチ（約3.3ミル、約83.8μｍ）である。プリントヘッド９のオリフィスも距離ｄだけ間隔をおいて並べられており、そのｄの値は前述のように約26.67ミル（0.6774μｍ）であり、また所望の数のラスターラインはオリフィスプレート10の長さ、約2.56インチ（65.02mm）、より長く割り送り方向に延びているため、全てのラスターラインをカバーするためには、プリントヘッド９は、作業面上を複数回走査しなければならない。
これは次の２工程処理で行われる。まず最初の工程では、プリントヘッド９の１走査毎にＹステージ16a、16bを距離ｄだけ副走査方向に割り送りながら、プリントヘッド９に作業面を主走査方向に８回走査させる。次に、第２の工程で、Ｙステージ16a、16bをオリフィスプレート10の長さ（2.5600インチ）＋dr（0.0267インチ）＝2.5867インチ（65.70mm）だけ割り送る。この２工程を繰り返して全てのラスターラインをカバーする。言い換えれば、望ましい２工程処理は、主走査と、所望のラスターライン解像力に等しい量の副走査とを、隣接する２つのジェットによって最初に形成されるラインの間の全てのラスターラインの走査が終わるまで、交互に繰り返す第１の工程と、割送り方向に大きく送る第２の工程を備えている。この第２の工程における大きな割送りは、プリントヘッドの両端のオリフィスの間の間隔に１ラスターライン間隔を加えたものに等しい。この第１、第２の工程は物体の断面（次の断面を形成するのに必要な支持体も含めて）を形成するのに必要な全てのラスターラインに沿って材料を供給し終わるまで繰り返される。
最初の１走査では、例えば、プリントヘッド９はラスターラインＲ（１）、Ｒ（９）、Ｒ（17）・・・をそれぞれオリフィス10（１）、10（２）、10（３）・・・で走査する。次にＹステージが造形台15を距離dr（１ラスターライン間隔）だけ割送り方向に動かす。次の１走査では、プリントヘッド９はラスターラインＲ（２）、Ｒ（10）、Ｒ（18）・・・をそれぞれオリフィス10（１）、10（２）、10（３）・・・で走査する。これをこの後６回繰り返す。すなわちプリントヘッドの１走査毎にＹステージを距離ｄだけ副走査方向に割り送りながら、プリントヘッドに作業面を主走査方向に８回走査させる。
この８回の走査からなる第１の工程の後に、さらに形成すべきラスターラインがあるときには、前記第２の工程を実行する。この第２の工程では、Ｙステージが造形台をオリフィスプレートの全長＋dr、2.5867インチ（65.70mm）だけ動かす。この後必要ならば、第１の工程と第２の工程を繰り返す。上記２工程を繰り返して、所望の全てのラスターラインを走査する。他の送りパターンを使用することもできる。この時Ｙ方向正および負の両方向の動きを含むものでもよい。これは最初に飛ばされたラスターラインを走査するときに行われるが、これについては「飛越し（interlacing）」と称する技術に関連して詳細に説明する。
インクジェットの発射は制御コンピュータもしくは他のメモリーに記憶されている長方形のビットマップによって制御される。そのビットマップはメモリーセルのグリッドからなっており、そのグリッドにおいては、各メモリーセルが作業面上の１画素に対応し、セルの行は主走査方向（Ｘ方向）に延び、列は副走査方向（Ｙ方向）に延びている。行の幅（Ｙ方向の間隔）は列の幅（Ｘ方向の間隔）と異なっていてもよく、その場合はＸ方向とＹ方向でデータ解像力が異なることを示している。また他の望ましい実施の形態では、同一の層内もしくは層間で画素サイズが不均一であってもよい。すなわち画素の位置によって画素の長さと幅のどちらか一方もしくは両方が異なってもよい。また他の画素配置パターンを使用してもよい。例えば、隣り合う画素列を画素間隔の何分の１か主走査方向にずらして、各列の画素の中心が隣の列の画素の中心からずれるようにしてもよい。このずらす量を画素間隔の1/2にして各列の画素の中心が隣の列の画素と画素の境界に整列するようにしてもよい。また、ずらす量を1/3等にして、画素パターンが数枚の層毎に一致するようにしてもよい。さらに、画素の配置を形成すべき物体あるいは支持構造の形状に応じて変えてもよい。例えば、支持柱間の間隙をまたぐ支持パターンの一部を形成するときには画素をずらすのが望ましい場合がある。このようなもしくはこれ以外の画素配置の変更は画素の形状を変えることによっても実行できるし、またＸ方向、Ｙ方向のどちらか一方もしくは両方に画素密度を大きくし、画素発射パターンを全ての画素位置に対して発射するのではなく、選択された画素位置においてのみ発射するパターンとすることによっても実行できる。そのパターンはランダムでもよいし、予め定めたものでもよいし、物体部に偏ったものでもよい。
主走査方向のデータ解像力は主走査方向ピクセル（MDP）で表される。このMDPは単位長さあたりの画素長さあるいは画素数で表される。ある望ましい実施の形態ではMDP＝300ピクセル／インチ（26.67インチ／ピクセル、677.4μ／ピクセル）あるいは1200ピクセル／インチである。もちろん、必要に応じてMDPはいくらでもよい。同様に、副走査方向のデータ解像力は副走査方向ピクセル（SDP）で表される。このSDPは単位長さあたりの画素幅あるいは画素数で表される。ある望ましい実施の形態ではSDP＝MDP＝300ピクセル／インチ（26.67ミル／ピクセル、677.4μ／ピクセル）である。SDPはラスターライン間隔に等しくとも等しくなくともよいし、MDPは各ラスターライン内の材料滴供給位置間の間隔に等しくとも等しくなくともよい。ラスターライン間隔は、副走査方向材料滴供給位置（SDL）で表され、各ラスターライン内の材料滴供給位置間の間隔は主走査方向材料滴供給位置（MDL）で表される。SDP、MDPと同様に、SDL、MDLも単位長さあたりの材料滴数あるいは材料滴間間隔で表される。
SDP＝SDLならば、データと材料滴供給位置の間には副走査方向に１対１の対応があり、画素間隔はラスターライン間隔に等しい。MDP＝MDLならば、データと材料滴供給位置の間には主走査方向に１対１の対応がある。
SDLやMDLがSDPやMDPよりそれぞれ大きい場合には、データ数より多くの材料滴を発射する必要があり、そのためには各画素に対して複数の材料滴を発射するように制御する必要がある。このように余分の材料滴を供給するためには隣接する画素の中心の間の中間点に材料滴を落とすか（中間滴下、ID）、あるいは各画素の中心の上に直接落とすか（直接滴下、DD）になる。どちらの場合もこの技術を「オーバープリント」と称し、これによって、材料の積み上げが速くなり、プリントヘッドや物体をゆっくり動かしても同じＺ方向の材料の積み上げが得られるため、最大走査速度や加速率を含む機械的設計制約が緩和される。IDオーバープリントと非オーバープリントあるいはDDオーバープリントの違いが第6a図から6d図に示されている。第6a図は、プリントヘッドが64の方向に動いているときの、滴下された１個の材料滴60とそれを取り巻く硬化領域62を示している。一方第6b図は、プリントヘッドが64の方向に動いているときの、同じ硬化領域と１個のデータ点に対してIDオーバープリントによって２個滴下された材料滴60、66を示している。２個の材料滴で満たされた供給ゾーンは68で示されている。第6c図は、同様にIDオーバープリントによって４個滴下された材料滴60、70、66、72を示しており、供給ゾーンは76で、走査方向はやはり64で示されている。第6d図は、同様な状態の１列の画素78、80、82、84、86、88を示しており、90はオーバープリント無しの場合の供給ゾーンの長さを示し、92は４滴IDオーバープリントを使用した場合の供給ゾーンの長さを示している。上記のことは、IDオーバープリントによって、それが使用されるどの領域も画素約半個分から１個分にわずかに足りない分の長さだけ長くなるという仮定の上での話である。もちろん、オーバープリントによる材料滴の数を増やせば増やすほど、画素領域の垂直方向の成長が速くなる。
SDLやMDLがそれぞれSDPやMDPより小さい場合には、少なくともプリントヘッドの所定の走査では、材料滴の発射数をデータ数より減らす必要があり、これは上述の画素がずれている場合や、画素サイズが不均一な場合に実行される。
Ｎ行xM列のグリッドが第５図に示されている。このグリッドは行Ｒ（１）、Ｒ（２）、・・・、Ｒ（Ｎ）と列Ｃ（１）、Ｃ（２）、・・・、Ｃ（Ｍ）を備えており、画素Ｐ（1,1）、Ｐ（1,2）、・・・、Ｐ（M,N）がその格子上に配列されている。
ある断面を形成するためにはその断面（支持部も含めて）を表すデータがまずビットマップにロードされる。ここで、いくつかの望ましい実施の形態においてそうであるように、物体部も支持部も同じ材料で形成されると仮定する。ある画素位置に材料を供給すべきときには、その画素位置に対応するメモリーセルにフラグを立てる（例えば２進数字"1"をロードする）。また材料を供給しない画素位置に対応するメモリーセルには反対のフラグを立てる（例えば２進数字"0"をロードする）。複数の材料を使用する場合には、各画素に対応するセルには材料を供給すべきかどうかだけでなく、供給すべき材料の種類をも表すフラグを立てる。データ操作を容易にするために、物体部あるいは支持部を規定する圧縮データ（例えば、各ラスターラインに沿った供給位置と非供給位置）と所定の領域に使用する充填パターンの記述とのブール演算によって、ジェット発射用の最終的なビットマップ表現を得るようにしてもよい。そこで、前述のようにして、グリッドを形成している各ラスターラインにそれぞれのオリフィスが割り当てられる。そして、ビットマップ内の対応するセルのフラグに応じて、ある画素に発射するかどうかが各オリフィスに指示される。
上述のように、プリントヘッドは様々な解像力で材料滴を供給することができる。本発明の望ましい実施の形態ではSDP＝SDL＝300ピクセル（滴）／インチである。しかしながら望ましい実施の形態ではMDPは３つの異なる値をとることができる。１）MDL＝300滴／インチ、MDP＝300ピクセル／インチ  ２）MDL＝600滴／インチ、MDP＝300ピクセル／インチ  ３）MDL＝1200滴／インチ、MDP＝300ピクセル／インチ。MDL/MDP比が１より大きいときには、画素の中心と中心の間の中間位置において余分の材料滴を供給する（IDオーバープリント）。現在のところ望ましいプリントヘッドと材料では、材料滴１滴の体積は約100ピコリットルであり、これはおおよそ径２ミル（50.8μｍ）の材料滴を形成する。現在のところ望ましいプリントヘッドでは、最大発射頻度は約20Khzである。比較のために、13ips、1200dpiの発射率では、反射頻度が16Khzとなり、これは許容範囲内である。
選択積層造形システム（例えば、サーマルステレオリソグラフィーシステム）において造形に必要なデータ（支持構造を表すデータも含む）を生成するための第１の望ましい実施の形態が第７図に示されている。図示のように、この方法では、まずブール層スライス処理（モジュール31）を使用してSTLファイル30をSLIファイル32に変換する。ブール層スライス処理およびSTL、SLIフォーマットは上述の米国特許や米国特許出願（例えば、米国特許出願No.08/475.730（以下'730））に記載されている。
SLIファイルはSLIフォーマットで支持構造データを生成するモジュール33に入力される。支持構造を表すそのSLIデータ34は物体部を表すSLIデータ32とモジュール35でまとめられて、物体部と支持部の境界を表すPFFファイル36にされる。
そのPFFファイルは前述の米国特許出願'730に記載されている”ハッチング”技術を使用して、スタイルファイル38で決定されるスタイルにしたがってモジュール37で”ハッチング”される。そのハッチング線と、物体部と支持部の境界の交線がRLEファイル39を作成するのに使用される。
この実施の形態における問題は速度である。第8a,8b図に示すように、この方法ではSTLファイル46を第8a図に47で示すようなスライス面でカットし、第8b図に48で示すような各断面の線分リストを作成する。次にその線分が整理され、内部の線分が除かれ、適切な端点が結ばれて多角形が形成される。線分48をこのように処理することによって例えば第９図に示す多角形49が形成される。
この方法は線分を整理するために多数の比較を実行しなければならず、また多角形にブール演算を行うのに要する時間とも相まって、長時間を要する。例えば、Ｎ本の線分のリストの場合には、整理工程では、N2の比較が必要である。またＮ本の線分を有する多角形のブール演算を実行するためにもN2の演算が必要である。この両方の理由で、この造形データの形成方法は極めて長い時間、一般には数時間、を要する。しかしながらこの方法には境界の線分がポリリスト（polylists）に整理されるため、この境界に対しては材料滴幅補正が米国特許出願'730に開示されている方法と同じようにして実行できるという利点がある。
このような問題を解決する第２の望ましい実施の形態が第10図に示されている。図示のように、STLファイル40がまずモジュール41でCTLファイル42に圧縮される。STLファイルをCTLファイルに圧縮する処理は前述の米国特許出願No.08/428,951に記載されている。次に、入力されるスタイル情報に基づいてモジュール44でCTLファイルがスライスされる。このスライスは、ハッチングタイプデータあるいはスキンタイプデータのみがRLE（実行長さエンコード）ファイルに出力される以外は米国特許出願'730に記載されているのと同様にして行われる。
まず、第11a図に示すように、STLファイルを構成している三角形を上から下にソートする。すなわち、50で示すように、各三角形の最大Ｚ値が順に小さくなるようにソートする。図示の例の場合、Ａ、Ｂ、Ｃ、Ｄである。
この上から下のソートは、51で示すように、各三角形の最小Ｚ値が順に大きくなるようにソートする下から上のソート（この場合Ｂ、Ｃ、Ａ、Ｄの順になる）の対照となるものである。
各スライス高さに対して、その高さの三角形のリストをレベルインディケータとインデックスポインタを使用して決定する。各高さの三角形のリスト内をインデックスポインタを進め、全体がその高さの上にある三角形を全て考慮の対象から外す。ある三角形がレベルインディケータに横切られた場合はその三角形をリストに加える。インデックスポインタが全体がその高さの下にある三角形を指すまで、この処理を続ける。この時点でその高さにおける三角形のリストが完成する。次にレベルインディケータを一段下げて、同じことを繰り返す。
第11b図はレベルインディケータが高さ52aにある時の上記処理を示すものである。インデックスポインタ53は左から右に進められる。ここで２個の三角形54aと交差し、その２個の三角形がリストに加えられる。この処理はインデックスポインタが三角形55aを指すまで続けられる。その三角形55aは全体が高さ52aの下にあるため、インデックスポインタ53が三角形55aを指した時点で処理を中止する。
第11cはレベルインディケータが高さ52bに移動した時の処理を示すものである。インデックスポインタは０にリセットされ、左から右に進められる。高さ52bの上にある三角形は全て無視され、高さ52bと交差する三角形は全てリストに加えられる。第11c図ではリストに加えられる三角形が54bで示されている。この処理はインデックスポインタ53が、最初に出会う全体が高さ52bの下にある三角形である、三角形55bを指した時点で終了する。
このようにして各スライス高さと交差する三角形によってＸ−Ｙ平面内の線分の組が形成される。各三角形は物体の縁を形成するものであり、物体部から遠ざかる方向を向いているから（米国特許No.5,059,359;5,137,662;5,321,622;5,345,391参照。これらの米国特許は全文をここに引用したものとする）、得られる線分も向きを持っている。これらの線分から、各線分を縁に沿って並べ替えないでも、米国特許出願'730に記載されているのと同じバッチングアルゴリズムを用いて、物体の断面を表すRLEデータを得ることができる。
第12a図はある断面の多角形表示（線分を縁に沿って並べ替えてある）であり、第12b図は同じ断面のRLE（実行長さエンコード）表示である。データを作成するために、多角形表示の上に複数のラスターラインあるいは画素走査線が重ねられ、ラスターラインあるいは画素走査線が多角形表示と交差する点においてスタート／ストップ対のリストが作成される。各点にはオン／オフインディケータが配される。各走査線に対して、その走査線が物体部に入って行くのか物体部から出て行くのかを示すために、その走査線が多角形表示と交差する点のオン／オフインディケータのオンとオフが切り替えられる。例えば、第12図において各走査線の”オン”点が56（１）、56（２）、56（３）、・・・、56（11）で示されている。
このRLEフォーマットは第12c図に示す画素フォーマットと対称的なものである。第12c図に示すように画素フォーマットでは物体内の各点が別々のデータ点によって表される。この形式のデータの問題点はサイズである。例えば、300DPI（ドット／インチ）の場合、10インチの断面で９、000、000ビットの情報が必要になる。
物体の断面のRLEを発生するための処理が第13a〜13c図に示されている。第12a図において、各断面、例えば、57で示される断面に対して、一組のリストが作成される。各リストは各Ｙ方向位置でＸ方向に延びる一走査線に対応している。次にその断面中の各線分を考慮して、各線分と各走査線の交点を記録し、その交点を表すデータをリストに加える。例えば、第13b図は、１本の線分を考慮してリストに加えたデータ（59）を示している。
各Ｙ方向位置におけるリストに加えられるデータは、例えば、２つの情報を含んでいる。１つは量的大きさ（QV）であり、もう１つは交点のＸ方向位置である。線分がＹ方向に増加している交点にはQV2が与えられ、線分がＹ方向に減少している交点にはQV−２が与えられる。その線分がある走査線から始まったり、ある走査線で終わる場合には、交点は”半分当たり”とする。すなわち、その交点で線分がＹ方向に増加しているか減少しているかに応じてその交点にはQV1かQV−１が与えられる。例えば、第13b図において、線分１はＹ方向に増加している。したがってこの線分１と各走査線（連続する）との交点に与えられるQVの値は１、２、２、２、２（走査線が線分１の先端に当たらないとして）である。さらに各交点のＸ方向位置はそれぞれ126、124、122、120、118である。第13b図において加えられているデータはこれらの値である。
第13c図は線分２の考慮によって加えられるデータを示している。線分２はＹ方向に増加しており、２本の隣接する走査線の１本で終わり、他の１本から始まっている。最初の１本の走査線との交点のＸ方向位置は144であり、他の１本の走査線との交点のＸ方向位置は126である。これらのデータが60（１）、60（２）で示されている。
”半分当たり”とする意味について第14図を参照して説明する。図示のように各走査線には現時点でのQV値の合計が付されており、そのQV値の合計は走査線が線分と交差する度にその交点のQV値によって更新される。走査線が物体内部にあるときには現時点でのQV値は２であり、外にあるときには０である。すなわち、物体の外にあった走査線が境界と交差すると走査線は現在物体内部にあることになる。したがって現時点でのQV値の合計は２に更新され、走査線が物体内部にあることを示す。逆に、物体の内部にあった走査線が境界と交差すると走査線は現在物体外部にあるか、または最初の物体と重なった第２の物体の内部にあることになる。したがって、QV値の合計に２または−２を加えて、移行を示すようにする。
第14図に点Ａで示すような頂点を走査線が通過すると、走査線は物体内に入るときに、実際は２本の線分と交差することになる。したがって、各線分は現時点でのQV値の合計に１だけ寄与するべきである。これがこのような頂点に与えられるQV値を１または−１に設定する理由である。
走査線が頂点を通ってもQV値が変化しないこともあり得る。第14図に示す点Ｂにおいて、その頂点Ｂを形成する２本の線分の交点におけるQVはそれぞれ１と−１である。したがって、QV値の合計は変化しない。QVの詳細については、前述の米国特許出願'730に記載がある。
全ての線分に対する走査線との交点がリストに加えられると、各走査線のリストがＸ方向位置の増加する方向に順にソートされる。そこでブール抽出を行って、走査線毎に正しくブールされた線分を抽出する。
望ましい抽出においては、現時点でのQV値を保持し、リスト内の各データ点のQV値を加算し、現時点でのQV値の合計とする。QVの値が２である点、すなわち現時点でのQV値の合計が０であるときには”スタート”点（０から２への移行点）、およびQVの値が−２である点、すなわち現時点でのQV値の合計が２であるときには”ストップ”点（２から０への移行点）、は全て保持される。この処理が第15図に示されている。第15図において、61、62、63、64、65、66、67は一連のステップである。目下の項目を示すポインタ68を使用して元のリスト内の項目を次々に指すようにする。”保持”リスト70をさらに使用して、上述の所定の条件を満足するスタート点およびストップ点を保持する。この処理によって、最初のスタート点（スタート点20）と最後のストップ点（ストップ点89）のみが保持される。その結果、物体の断面の１本の線を表すRLEデータが得られる。これを断面の全ての線について行い断面のRLE表現を得る。
三角形をスライス平面で切ることによって形成される線分を、物体断面の多角形表現を得るためにソートしてポリリスト（米国特許'622参照）を作る必要がない点に注目されたい。上述のように、線分をソートしてポリリストを作成するのには時間がかかる。さらに、STLファイルが適切に結合または分離されていなくとも（すなわちSTLファイルが重複する物体要素を含んでいても）RLEデータはうまく結合することができる点にも注目されたい。
RLE表現が多角形表現より優る点は、ブール演算がはるかに簡単ではるかに速くできることである。ブール抽出のアルゴリズムについては既に述べたが、他にブール加算、ブール減算、および論理積演算がある。
これらの演算を最も効率よく実行するためには、RLEデータを相対項ではなく絶対項で表すのが有利である。例えば、Ｘ方向位置100から始まり30画素分続く線はスタート点、ストップ点の対、この場合にはスタート点100、ストップ点130、で表す。すなわち、第16図において、線ＡのRLEデータ71および線ＢのRLEデータ72はそれぞれ次のように表す。Ａ＝［（スタート20），（ストップ48），（スタート60），（ストップ89）］、Ｂ＝［（スタート37），（ストップ78）］
この２本の線のブール和を計算する際は、この２組のデータを一緒にするとともに、その一緒にしたリストをＸ方向にソートした状態に保つ。結果は［（スタート20），（スタート37），（ストップ48），（スタート60），（ストップ78），（ストップ89）］である。次ぎに、一緒にしたリストに前述のブール抽出アルゴリズムを適用する。すなわち、例えば、スタート点にQV値２が与えられ、ストップ点にQV値−２が与えられ、QV値が０から２に変わる点（スタート点）および２から０に変わる点（ストップ点）のみが保持される。結果はデータ対［（スタート20），（ストップ89）］となり、これがブール和Ａ＋Ｂ（第16図で73）で表す。
また２本の線のブール差の計算は、引かれる方のリストのQV値の符号を逆にして、スタート点とストップ点を入れ替える以外はブール和と同じ方法でなされる。Ａ−Ｂの演算の結果が第16図に74で示されている。
また２本の線の論理積の計算は、最初の−２のQV値から始めて抽出処理をする以外はブール和と同じ方法でなされる。ＡとＢの交点が第16図に75で示されている。
２次元のブール演算も容易に実行することができる。複数のRLE線（望ましくは絶対項で表された）でそれぞれ表される複数の２次元領域に対するブール演算は、それぞれの領域の互いに対応する線に対してブール演算を実行することによって行われる。これが第17図に示されている。第17図において、76で示される線群が領域Ａを表し、77で示される線群が領域Ｂを表す。この２つの領域のブール和Ａ＋Ｂが78で示され、ブール差Ａ−Ｂが79で示されている。
一方、多角形データに関連してRLEデータを使用する欠点は必要とするメモリーの量である。高解像力で全ての層をRLEの形式で記憶するためには一般の物体の場合でも100MBを超える記憶容量が必要となる。このようなファイルはメインメモリーに記憶するのには大きすぎるし、ディスクに記憶するにしても問題である。この問題は、物体部の造形順序（下から上に進行）と支持構造の構成順序（後述するように上から下に進行）の差によってさらに大きくなる。
後述するように、支持構造を形成するためには出力ファイルが必要である。出力ファイルでは、各断面についてRLE表現とその断面の上の各断面のブール和が与えられる。基本的にはその技術では、断面のRLE記述とその断面の”現時点での合計（current total）”のRLE表現（目下の層の上方の全ての層のブール結合）のブール差を計算する。この基本的な方法の疑似コードが第18図に示されている。第18図において、get_part（level）は所定の高さにおける断面のRLE表現を提供する機能を表し、boolean_substract（current_total＝area A,part_for_layer＝area B）は領域Ａから領域Ｂをブール減算した結果を提供する機能であり、boolean_add（area A,area B）は領域Ａと領域Ｂのブール和を提供する機能である。
物体のデータと現時点での合計のデータ全体が同時に記憶されなくとも支持構造の形成ができるメモリー管理のアルゴリズムについて以下説明する。
最初の段階として、物体の上から始めて物体の層を順序考慮する。この時層のブール和の現時点での値を保持しておく。ある層に出会ったときに、その層に対する現時点での合計（更新された現時点での合計）を、前の層からの現時点での合計の領域と目下の層の領域とのブール和の計算によって求める。しかしながら、全ての層に対する現時点での合計のデータを記憶する変わりに、中間層（例えば、Ｎ−１毎の層、Ｎは例えば100）のみの現時点での合計のデータのみを記憶し、あとは廃棄してもよい。
この最初の段階が物体80とそれを支持する支持構造81を例にとって第19図に示されている。それぞれの層に対する現時点での合計の上から下への発生が82で示され、これらの中間層が83で示されている。この最初の段階に対する疑似コードが第20に示されている。第20図において、get_partの機能は第18図において前述したものであり、boolean_additionの機能はブール演算の説明において前述したものである。
第２の段階では、中間層の選択と、その中間層と次の中間層の間の全ての層に対する現時点での合計の上から下への計算とがなされる。各層の物体データと現時点での合計のデータからなるデータが下から上に出力される。これが終わると、目下の中間層と、その中間層とその次ぎに下にある中間層の間のデータは消去してよい。次ぎに、目下の中間層の上の次の中間層に対して同じ処理が繰り返される。
この第２の段階が第21図に示されている。第21図においては第19図と同じ要素については同じ参照番号を付してある。この第２の段階では４つのステップ84〜87が実行される。ステップ84においては、中間層14と中間層15（例えば、物体の底）の間の全ての層に対する現時点での合計（88）が求められ、記憶される。次ぎに、ステップ85において、後述する方法によってこれらの層に対する支持構造を決定し、出力する。ここで層14、15間の物体と現時点での合計のデータを消去する。次ぎにステップ86において、層13、14間の各層の物体と現時点での合計のデータを決定し、記憶する。最後に、ステップ87で、これらの層に対する支持構造を決定し、造形のために出力する。これらの層に対するデータを消去する。このような手順を全ての中間層に対して繰り返す。
このアルゴリズムによって、支持構造発生に必要なメモリーを劇的に減らすことができる。２つの中間層の間の層の数をＮとすると、同時に記憶すべき層の数は中間層の数プラス2N（物体と現時点での合計のデータが必要だから）になる。全層数をＴとすると、記憶するべき層の数はT/N＋2Nになる。ＮがT/2の平方根の時メモリーが最も有効に使用できる。例えば、全層数が5000の場合、中間層の最も望ましい数は50である。この時、常に記憶しなければならない全層数は200となる。
上記アルゴリズムを中間層に２段階に実行することによって必要なメモリーの量をさらに減らすことができる。第22図に示すように、アルゴリズムが90、91、92の３段階に進行する。最初の段階90では、一段目の中間層が決定される。第２の段階91では、１段目の中間層の間の２段目の中間層が決定される。第３の段階92では、２枚の連続する２段目の中間層の間の全ての層に対して現時点での合計が決定され、記憶される。これらの層に対する支持構造を計算した後、データが廃棄され、次の２段目の中間層に対して同じ処理が繰り返される。最初の１段目の中間層対の間の全ての２段目の中間層について処理が終わると、次の１段目の中間層対の間の２段目の中間層について処理する。
１段目の中間層の数をＮとし、２段目の中間層の数をＭとすると、この３段階処理に必要なメモリーの量は（T/N）＋（N/M）＋2Mである。Ｔ＝5000、Ｎ＝288、Ｍ＝14とすると、一時に記憶しなければならない層の数は66となる。この３段階処理は計算時間が長くなるので、層が極めて薄いときや層の数が多いとき以外は２段階処理の方が望ましい。
上述のように、各層のRLEデータは一組のスタートとストップの移行点とその移行点のＸ方向位置からなっている。例えば、第23図に示されているデータは次のスタート、ストップ位置とラスターラインに対応している。ラスターラインＡ＝［（スタート20），（ストップ48），（スタート60），（ストップ89）］（102、104、106、108）、ラスターラインＢ＝［（スタート35），（ストップ72）］（112、114）。このデータを記憶する１つの方法は第24図の疑似コードのようにスタート／ストップ移行点のリンクされたリストの使用である。アレイと比べてリンクされたリストは、走査線毎の移行点の数の変動に対処するのが容易であるという点で望ましい。問題は、動的に割り当てられる多数の小さなメモリーブロックが使用されるということであり、これは少なくとも３つのはっきりした理由で性能を大幅に低下させる。第１に、動的記憶割当はシステムの呼び出しが必要なために時間がかかる。第２に、各動的メモリーブロックはブックキーピングのために隠れた記憶オーバーヘッドを必要とする。第３に論理的に隣接する情報が連続しないメモリーに割り当てられる結果、キャッシュミスが多くなる。
これらの問題を解決するためには他のデータ形式が望ましい。1200DPIの解像力の場合、一般的な部分の移行点は15ビットで表すことができる。したがって32ビットワード（２ビットスペア）で１つのスタート／ストップ対を表すことができる。このデータ構造は第25図の疑似コードで示される。フラグ"last″はそのスタート／ストップ対がある走査線のためのスタート／ストップ対の組で最後のものかどうかを示す。もし最後であるなら、その″last″ビットを"1"に設定し、そうでなければ"0"に設定する。この場合、次のスタート／ストップ対が直接隣接するメモリー位置に記憶される。このスキームによって、各移行点に２バイトを使用して、多数の移行点をメモリーの連続するブロック内に記憶することができる。このスキームの例が第26図に示されている。第26図においては第23図と同じ要素には同じ番号を付した。図示のように、線Ａは連続した32ビットワードで記憶された２組の移行点対（［スタート20），（ストップ48）］、［（スタート60），（ストップ89）］（102、104、106、108）を備えている。最初のワードの″last″ビット122は"0"にリセットされて、その走査線にまだデータがあることを示しており、一方２番目のワードの″last″ビット124は"1"に設定されて、その走査線にはもうデータが無いことを示している。線Ｂは１組だけの移行点対［（スタート37），（ストップ78）］（112、114）からなり、″last″ビット126は"1"に設定されて、走査線Ｂにはもうデータが無いことを示している。132、134、136は各32ビットワードの他のビットを示している。
RLEデータは最初の上述のパック形式では作成されず、第13a〜13c図で説明したように、まずアンパック形式で作成され、後でパック形式に変換される。
要するに、移行点を記憶するのに、メモリーブロックが割り当てられる。各ラスターラインと対応づけられているデータの始点を示すポインタ（”目下のラスターライン”ポインタあるいは”目下のリスト”ポインタ）と割り当てられていないメモリーの始点を示すポインタ（”次の使用可能な位置”ポインタもしくは”次のフリーロケーション”ポインタ）が使用される。このメモリーブロック内の各４バイト（32ビット）ワードは、最初の15ビットが移行点のＸ方向位置を記憶するのに使用され、次の15ビットがその移行点のQV値を記憶するように定義付けられる。31番目のビットはワードが割り当てられ、使用中であるかどうかを示す”使用中”フラグを定義するのに用いられる。32番目のビットはそのワードのエントリーがそのワードが対応づけられている走査線の最後の移行点のエントリーであるかどうかを示すエンドフラグを定義するのに使用される。最初に各ラスターラインにデータを記憶するための１個ないし複数個のワードを割り当ててもよい。各境界線分の移行点がメモリーブロックに入力されると、それらの移行点は、それらが導かれたラスターラインに対応するリストに加えられる。
ラスターラインリストに新しい移行点が加えられる際に、いくつかの状況が起こり得る。第１に与えられたラスターラインに対応づけられたメモリーブロックに移行点データが無いとすると、その移行点データはそのラスターラインの”目下のリスト”ポインタと対応するワードに加えられる。第２に、そのラスターラインの”目下のリスト”ポインタと対応するワードに移行点データが存在する場合には、そのラスターラインの（”目下のリスト”の）最後に記録された移行点の次のワード（すなわち”次ワード”）が使用されているかどうかがチェックされる。使用されていなければ、新たな移行点データはそこに入れられる。第３に、”次ワード”が使用されている場合には、”目下のリスト”ポインタの前のワード（”前ワード”）が使用されているかどうかがチェックされる。使用されていなければ、”目下のリスト”ポインタおよび全ての記録済みの移行点データ（ラスターラインの）が１ワード分だけずらされて、新たな移行点データはずらされたリストの最後に加えられる。第４に、もしその”前ワード”が使用されていれば、そのラスターラインの全ての移行点データ（そのラスターラインの”目下のリスト”ポインタも含めて）は”次の使用可能な位置”ポインタが指すワードに移動され、新たな移行点データが、新たなデータを加えるのに使用できると支持された元のワード位置に加えられ、”次の使用可能な位置”ポインタが移動されたばかりのワードと加えられたワードの後に移動される。
上述の手順は様々に変更することができる。例えば、サイズの異なるワードも使用できるし、ビット割当を変えることもできるし、各ラスターラインに最初に割り当てる量を変えることもできるし、最初に各ラスターラインに割り当てるのを止めて、追加のラスターラインとして割り当てられるメモリー位置が入力された線分を完全に処理するようにしてもよいし、メモリーの使用をより良く制御するためにステップを追加してもよい、等々である。
上述の処理の例を以下図面を参照して説明する。第27a、27b図は第13図で同じデータに基づくものであり、同じ要素には同じ番号を付した。メモリー93の大きな領域がRLE移行点を保持するのに割り当てられ、ポインタ101が次に使用可能なメモリーワード（32ビット）を示すのに用いられる。この例では、ワード形式は次のビット指定を含んでいる。最初の15ビット142は移行点のＸ方向位置を記憶するのに使用された値を記録し、次の15ビット144は移行点のQV値を記録する。31番目のビット146はそのワードが既に割り当てられて使用されているかどうかを示す”使用中”フラグである。32番目のビット148はその移行点データがそのラスターラインの最後に記録される移行点データであるかどうかを示す”エンド”フラグである。
第27a図はメモリー93に移行点データが何も加えられていないときの状況を示している。後に明らかになるように、操作上の理由から領域93の最初のワードには使用中の旨の印が付けられる。”次のフリーロケーション”ポインタ101はその領域内の２番目のワードを指している。次ぎに、ポインタのアレイ58の各ポインタを”使用中”のビットを０に設定して、初期化する。上述のように、各ポインタは１本の走査線と対応付けられ、その走査線と対応する最初のワード（最初の移行点用の）の記憶位置を決めるのに使用される。このポインタは、考慮中の目下の走査線と対応付けられている移行点データリストの最初のワードを指すため、”目下のリスト”ポインタと呼ばれる。ある走査線の移行点データをそのアレイに加えるために、そのアレイ中のポインタが”使用中”ビットが０に設定されたワードを指しているときには、ポインタのその位置は空いていると見なされ、移行点データがメモリーのそのワードに割り当てられる。第27b図は、５本の走査線に対して最初の移行点データがメモリーに入力された状況を示している。
”目下のリスト”ポインタ94の位置に０でない”使用中”フラグを有する走査線に対して移行点データを加える処理が第28a、28b図に示されている。第28a図には”目下のリスト”ポインタ94に対応付けられた走査線に属するものとして入力されている２つのワード150、160を示している。ワード150は第27b図のビット142、144、146、148に対応付けられたのと同じ定義を有するビット割当152、154、156、158を含んでいる。同様に、ワード160はビット割当162、164、166、168を含んでいる。要素156、166は”使用中”フラグの値を与える。要素158、168はそのワード（移行点データ）が目下のリストの内でそれまでに記録された最後の移行点データであるかどうかを示す。図から明らかなように、要素158はワード150が最後のワードでないことを示しており、要素168はワード160が目下のリストの内で最後に使用されたワードであることを示している。最初に、目下の移行点リストの後の次ワード170の”使用中”フラグ96をチェックしてそのワードが使用可能かどうかを調べる。”使用中”フラグ96が０ならば新たな移行点データをそのワードに記憶することができる。もし１ならばそのワードは使用できない。第28a図に示すようにもし使用できれば、そのワードに新たな移行点データを記録する。新たな移行点データを記録した後の目下のリストが第28b図に示されている。第28b図においては、新たな移行点データ87がワード170に加えられており、”エンド”フラグ168の値が１から０に変更されており、今やワード170が目下のリストの最後のワードであるから、ワード170の”エンド”フラグ178が１に設定されている。
目下の移行点リストの後ろの次ワードが使用できない場合には、目下の移行点リストの直前のワードが使用可能かどうかチェックする。このチェックはその直前のワード”使用中”フラグの値に基づいて行われる。もし使用可能であれば（０であれば）、リスト全体を１ワード分だけ戻し、空いたワードに新た移行点データを入れる。この処理が第29a、29b図に示されている。第29a、29b図においては第28a、28b図と同じ要素には同じ番号を付した。第29a図に示すように、”目下のリスト”ポインタはワード150を指しており、そのリストはワード160で終わりであり、そのリストの後ろの次ワード170は使用できず（要素176の値が１）、そのリストの直前のワード180は使用可能である（要素186の値が０）。そのため第29b図に示すように、それまでワード150、160に対応付けられていた移行点データが、それぞれワード180と150に対応付けられる位置にずらされる。”目下のリスト”ポインタもワード180にずらされ、使用可能になったワード160に新たな移行点データが加えられる。この結果、”エンド”フラグはこの時にはもうＸ方向位置60の移行点（前の要素162、新たな要素152）には対応しておらず、Ｘ方向位置12の移行点（前の要素172、新たな要素162）に対応しているが、ワード160に対応したままにされる。言い換えれば、目下のリスト全体が１ワードだけずらされて、空いた位置に新たな移行点データが記憶される。
目下の移行点リストの前にも後ろにも空きが無いときには（すなわち、”目下のリスト”ポインタの直前のワードにも、真のリストの終わりを示すフラグを含むワードの直後のワードも使用できないときには）、目下のリスト全体を、”次の使用可能な位置”ポインタで指示されたワードから始まるスペースにコピーし、新たな移行点データをそのコピーしたリストの終わりに加える。そして、そのリストが記憶されていた元のメモリーワードの”使用中”のフラグをリセットし、これらのメモリーワードがその直前直後の走査線リストに対して使用可能となったことを示す。この処理が第30a、30b図に示されている。第30a、30b図においては第28a、28b図、第29a、29b図と同じ要素には同じ番号を付した。
第30a図には、目下のリストの終端160の後ろのワード170も、”目下のリスト”ポインタを含むワード150の前のワード180も”使用中”フラグ176、186が１であり、使用できないことが示されている。第30a図にはさらに、”次の使用可能な位置”ポインタの位置するワード200も示されている。ワード200は全ての走査線に対して既に入力された移行点データの後ろに位置する。したがって、目下の走査線に対する新たな移行点データは、その走査線に対応付けられた移行点データを既に含んでいるメモリー位置150、160に連続するメモリー位置に入れることができない。第30b図に示すように、目下のリスト全体（ワード150、160に記憶されていた移行点データ）を”次の使用可能な位置”ポインタが指しているワード200で始まる領域にコピーする。第30b図に、100で示される元のメモリー内の”使用中”フラグをリセットしてそのメモリーが使用可能になったことを示す。”目下のリスト”ポインタをワード200を指すように更新し、新たな移行点データ97をそのリスト終端のワード220に加える。次ぎに、”次の使用可能な位置”ポインタ101を最後に入れられた移行点データ97（そのリストの終端）を含むワード220の直後のワード230を指すように更新する。もちろん、必要ならば、ワード220の最後に入力された移行点データ97と”次の使用可能な位置”ポインタによって指示されるワードとの間に１個以上の空きワードを残してもよい。
このスキームはRLEデータの本質からいって特に有効である。そのデータは中実の物体を表すから、ある走査線上の移行点の数は通常隣の走査線上の移行点の数と同じである。この特性が第31図に示されている。第31図には物体の１断面の平面図とラスターラインないし走査線が描かれている。各走査線の右側の数字はその走査線上の移行点の数である。もしある走査線に１つの移行点を加えようとすれば隣の走査線にも１つの移行点を加えることになることが多い。メモリーのある領域が、第30a、30b図で説明したように、フリーになると、隣のリストの移行点データを第28a、28b、29a、29b図で説明したように、そのフリーになった領域に記憶することができる。したがって、大きなメモリーアレイでもランダムデータの際に生じるようなギャップがほとんど無くなる。さらに、キャッシュに記憶されているデータからのミスがほとんど無くなる。
全ての線分の処理が終わると、得られたリストをＸ方向にソートする。正しくブールされた線分が上述のような方法で抽出され、抽出された線分は前述のパック形式で記憶される。
この実施の形態はスライス平面に頂点を丸める必要無しにSTLファイルに直接動作する。したがって少なくともある数量化エラーが防止できる。しかしながらそれでも、RLEデータ発生の際に垂直方向および水平方向の数量化エラーがある程度発生する。それは、スライス平面が垂直方向に不連続であるためと、水平方向の移行が画素と画素の間のみに限られているためである。この問題の例が第32図に示されている。第32図はラスターライン302、304、306、308、310、312、314のオン／オフ移行点322、324、326、328、330、332、334と数量化を示している。各ラスターラインの中心線が破線で、複数の画素を通る境界線分が実線で示されている。同図において、線分の右側を物体内部とし、左側を物体外部とする。各ラスターラインに対しては、そのラスターライン上の画素のいくつが境界線と交差しているかに無関係に、１個の画素のみが物体の縁を表しているものとして選択され得る。どの画素が物体の縁を表しているかを決定するにはいろいろな方法があるが、図示の方法では、上記線分とそのラスターラインの中心線の両方を含む画素を各ラスターラインの境界画素として選択する。各ラスターラインの中心線が２個の画素のちょうど真ん中で線分と交差するときには、物体部（中実）を拡大するか被物体部（中空部）を拡大するかについて決定する。図示の例では、ラスターライン302、306、310、314について中空部を拡大する決定がなされる。
移行点の選択の方法は他にも多数ある。例えば、線分が通る画素を全て物体の一部であるとする選択をすれば物体部が拡大される。逆に、全体が物体側にある画素のみを物体の一部であるとする選択をすれば中空部が拡大される。上記２つの方法の中間をとってもよい。また境界部にある画素の線分の外にある面積と内側にある面積の割合によって決定してもよい。これらの方法のいくつかについては実行するときに、前述の米国特許や米国特許出願、特にスライス技術が記載されているものが参考になる。さらに、１画素をいくつかの部分に分割して、線分がその部分のいくつを通るかによって決定してもよい。どの方法を採るにしても、物体部と支持部に使用する方法の調和が望まれる。
データ補正
互いに隣接する線分からの端点が交差しないように注意して、移行部の端点を内方あるいは外方に動かすことによって簡単に補正が実行できる。例えば、支持部が物体部に接触するの防止するために、物体部のRLEデータを拡大し、それを現時点での合計データからブール減算して支持部を表すRLEデータを得てもよい。また現時点での合計データを拡大して、支持構造データをその拡大された現時点での合計データと物体データのブール差として計算してもよい。また支持構造データを現時点での合計データと物体データのブール差として計算し、その支持構造データを拡大し、実際の支持構造データをその拡大された支持構造データともとの物体データのブール差として計算してもよい。
走査方向に材料滴サイズを調節する補正は、DPIが材料滴径より高い解像力であれば容易に実行できる。Ｙ方向の補正は困難であるが、送り量を300DPIより小さくすることによって実行できる。RLEデータをベクトルデータに変換できるのは有用である。第32図に示すように、その方法では、連続するオン点あるいは連続するオフ点を結合する。この時、２点の間に中間点があってはならず、ある場合には結合できない。例えば、第32図において、点ａと点a'は結合できるが、点ａと点ｃは結合できない。点ａと点ｃの間に点ｂがあるからである。
支持構造データの発生
支持構造のデータの望ましい作成処理について以下説明する。この処理は上述のデータ操作処理によって与えられるデータで始まる。前述のように、データ操作装置は各層の物体データと”トータル”データを提供する。各層の物体データはその層における物体部のXY位置を規定する、ラスターライン上の一連のスタート／ストップ点である。各層のトータルデータはその層における物体部のXY位置と支持構造のXY位置のブール結合を規定する、ラスターライン上の一連のスタート／ストップ点である。
そのようなデータが第34a〜34c図に示されている。第34a図は、Ｚ−Ｘ平面に浮かぶピーナツ型の物体部の各層（断面）１から10の物体データＰ［１］〜Ｐ［10］を示している。第34a図においては、各断面の１本のRLEラインのみが示されている。スタート移行点は┝で示され、ストップ移行点は┥で示されている。図示のように物体データは物体部の縁に沿っている。
第34b図はその物体部の各層１から10のトータルデータＴ［１］〜Ｔ［10］を示している。このトータルデータもスタート／ストップ移行点で表されている。しかしながらトータルデータは、物体データと異なり、必ずしも物体部の縁に沿わない。各層のトータルデータは、上述のように、その層の上方の全ての層の物体データのブール結合である。
第34c図はある層の物体データとトータルデータの両方の断面（Ｘ−Ｙ平面内の）を示す。これらのデータＰ［ｉ］、Ｔ［ｊ］はそれぞれＸ−Ｙ平面内のハッチングラインＨ［ｉ］に沿って並ぶ複数のスタート／ストップ移行点からなっている。望ましい実施の形態ではハッチングラインはＸ軸に平行であるが、必ずしもＸ軸に平行である必要はない。
望ましい実施の形態においては、各層の複数の支持構造に対するスタート／ストップ移行点を一度に決めるのに物体データとトータルデータの組み合わせを使用する。支持を必要とする全ての領域に同じ形式の支持構造を使用するときには、その支持スタイルは与えられた層のトータルデータと物体データの差として、その領域内の各層に対して定義することができる。一方、上述の米国特許出願No.08/534,813に記載されているように、物体部の上向きや下向きの面の間隔によっては、異なる部分には異なる形式の支持構造を用いた方がよい場合もある。またその層の物体部の縁からの距離によって異なる形式の支持構造を使用した方がよいこともある。上述の米国特許出願No.08/428,951には、本発明において支持領域を決定するのに有用な水平比較を実行する方法が記載されている。例えば、２つの異なる支持スタイルの一方を下向きの面の２、３層下の領域に使用し、他方を他の領域に使用するようにするとよい。また”不支持”スタイルと組み合わせて２つの物理的支持スタイルを使用してもよい。この場合に”不支持スタイル”は物体部の縁の領域の１から２画素以内の領域、あるいは、ある臨界角より大きい垂直面に対して直角をなす物体部の上方の面で適用される。複数の支持スタイルを様々な実施の形態が考えられ、それらは本明細書の教示および本明細書で引用した文献（特に米国特許出願No.08/475,730、08/480,670、08/428,951、08/428,950）の教示に照らして容易に実行できる。さらに、本明細書の教示は”物体内部支持”とでも称すべきものにも使用することができ、この場合に、物体部の内側部分を形成する過程において、単一あるいは複数の支持スタイルを使用することができる。この技術のいくつかの例が、ステレオリソグラフィーにおけるテスト用の鋳型パターンの製造に用いられるものであるが、前述の米国特許出願No.08/428,950に記載されている。
次ぎに異なる支持領域に対するデータの決定方法を例を挙げてさらに説明する。以下の例は米国特許No.08/534,813に記載されている複合支持構造の例に対応するものである。この例では、（１）市松模様状に配された複数の繊維状の柱、（２）よりしっかりした３画素x3画素の柱、（３）中間層ないし移行層、の３種類の支持構造が使用される。
層"n"が形成されると仮定すると、層"n"上の各部分が上向きの面や下向きの面にどのどの程度近いかを決定する。この例では、層"n"上のある部分が下向きの面から"r"層（例えば、５〜10層）以内にあり、上向きの面から"u"層（例えば、５〜10層）以内にある場合、この部分に対しては市松模様状の支持構造が形成される。またある部分が下向きの面から"s"（ｓ＝ｒ＋１）層から"t"層の間にある場合（例えば、６〜10層あるいは11〜15層）、中間層あるいは架橋層の支持構造が形成される。またある部分が、上向きの面から"u"層（例えば、５〜10層）より遠く、下向きの面から"t"層（例えば、10〜15層）より遠い場合には、３画素x3画素の柱状支持構造が形成される。
上記の例が第46a、46b図に示されている。第46a、46b図は物体部の同一の側面図で上向きの面と下向きの面の間の間隙を示している。第46a図は、異なる支持構造がその上に形成される仮定的な高さおよび領域を示している。また第46b図は第46a図の仮定的な高さおよび領域の配置に従って形成された種々の支持構造を示している。
すなわち、第46a図には下向きの面402、上向きの面400と、その間の、領域404、410、408、406からなる間隙が示されている。領域404は上向きの面400から"u"層以内にあり、領域406は下向きの面402から"r"層以内にある。領域408は下向きの面402から"r"層と"t"層の間にあり、上向きの面400からは"u"層より遠くにある。領域410は上向きの面400からは"u"層より遠く、下向きの面402からは"t"層より遠い。領域404、406には市松模様状の支持構造が形成され、領域408には移行形の支持構造（例えば、完全に固化された）が形成され、領域410には３画素x3画素の柱状支持構造が形成される。層414、412、424、416は全体がそれぞれ領域404、406、408、410内にある。したがって、これらの層は全体が同一の支持構造とされる。一方、層418、420、422はそれぞれ領域404と410、領域410と408、領域408と406にそれぞれ跨っている。したがって、これらの層にはその層上の各部分のXY位置に応じて異なる形式の支持構造が形成される。
第46b図には、下向きの面402の上の中実領域432と上向きの面400の下の中実領域430が示されている。領域404、406には市松模様状（１画素オン、１画素オフ）の支持構造が形成されている。領域410には３画素x3画素（３画素オン、１画素オフ）の柱状支持構造が形成されている。領域408は支持構造の中実部分になっている。ここで、滴下幅すなわち落下してつぶれた材料滴の径は、一般に画素幅より大きいから、同一断面の上で先に滴下された材料に隣接する画素位置に向けて発射された材料滴は、その断面の下の断面に向かって落下せずに隣の先に滴下された材料に当たってそれに付着する傾向がある。上記の市松模様状の支持構造を形成する実施の形態では支持構造の間隔は一般に１画素分以下であるから、支持されていない下向きの部分を形成する材料滴は当面の層の先に滴下された材料の間に引っかかり、その下の層には行かず、所望の位置に保持される傾向が強い。
また、各層の各支持部（柱）がそれぞれ３画素x3画素で構成され、柱と柱が主走査方向（Ｘ方向）に２画素分間隔を置かれ、副走査方向（Ｙ方向）に１画素分間隔をおかれている支持構造の形態を採用してもよい。この時のデータ配列が第46c図に示されている。第46c図において、″Ｘ″は″滴下″のデータを有する画素を有し、″０″は″不滴下″のデータを有する画素を示す。正方形50は各柱の形状を明確にするためにその柱用の滴下ゾーンをそれぞれ囲むものである。しかしながらＸ方向のIDオーバープリントのために実際に滴下が行われると２画素分の間隔は相当に（ほとんど１画素分）狭められる。したがって実際に得られる滴下パターンは第46d図に示すように、Ｘ、Ｙ両方向に１画素分（3.3ミル、約0.084mm）間隔をおいた、角の丸まった４画素x3画素（12〜14ミルx9〜10ミル、すなわち約0.31〜0.36mmx約0.23〜0.25mm）の長方形に近くなる。
可能性のある支持スタイルとして、中実もしくは一定間隔で切れた線を使用することができる（そのような線を並べて使用することにより、上記の市松模様状等の支持構造を形成することを含む）。そのような線としては、幅が３画素幅（10ミル、約0.25mm）より小さいのが望ましく、１〜２画素幅（3.3〜6.6ミル、約0.084〜0.17mm）以下であるのがさらに望ましく、間隔が１〜２画素幅（3.3〜6.6ミル、約0.084〜0.17mm）以下であるのが望ましい。このような支持部材は主走査方向に延びてもよいし、副走査方向に延びてもよいし、他の方向に延びてもよい。
この実施の形態は以下の数式で示すことができる。以下の数式において、
Cn（Ｄ）：下向きの面から決定される、市松模様状の支持構造を形成すべき、層ｎの領域要素、
Cn（Ｕ）：上向きの面から決定される、市松模様状の支持構造を形成すべき、層ｎの領域要素、
Bn（Ｄ）：下向きの面から決定される、架橋形の支持構造を形成すべき、層ｎの領域要素、
Sn:3画素x3画素の柱状支持構造を形成すべき、層ｎの領域要素、
Pl:断面"1"における物体部の領域要素、
Pn:断面"n"における物体部の領域要素、
Tn:断面"n"におけるトータルデータの領域要素、
Σ：領域要素のブール和（Boolean summation）
＋：領域要素のブール結合（Boolean union）
−：領域要素のブール差（Boolean difference）
∩：領域要素の論理積（Boolean intersection）
r:市松模様状の支持構造を形成すべき、下向きの面の下方の層の数
u:市松模様状の支持構造を形成すべき、上向きの面の上方の層の数
s:r＋１＝移行形の支持構造が終端する層までの下向きの面の下方の層の数
t:移行形の支持構造が始まる層までの下向きの面の下方の層の数
以下の数式は本実施の形態による、層"n"の支持構造を決定する望ましい方法を規定するものである。
0003545421.tif 000005
数式（１）は下向きの面から決定される、市松模様状の支持構造を形成すべき、層"n"の領域が、層"n"の上方の"r"層の物体データのブール結合をとり、この結合された領域を表すデータと層"n"の物体データとのブール差を計算することによって計算されることを示している。
数式（２）は上向きの面から決定される、市松模様状の支持構造を形成すべき、層"n"の領域が、層"n"の下方の"u"層の物体データのブール結合をとり、この結合された領域を表すデータと層"n"の物体データとのブール差を計算し、このデータと層"n"のトータルデータの論理積を計算することによって計算されることを示している。この最後の計算の目的は、実際には層"n"の上に物体部の層が存在しないのに支持体を形成してしまうことを避けることである。
数式（３）は下向きの面から決定される、架橋形の支持構造を形成すべき、層"n"の領域が、（１）：層"n"の上、"s"層から"t"層までの物体データのブール和をとり、（２）：（１）で得られたデータの和から、（下向きの面の下方で上向きの面の上方の）層"n"上の市松模様状の支持構造を形成すべき領域を表すデータと層"n"上の物体部自体を形成すべき領域を表すデータを差し引くことによって計算されることを示している。本質的には、この数式は架橋形の支持構造と市松模様状の支持構造との優先順位を決定するものである。上向きの面から"u"層以内であり、しかも下向きの面から"s"層から"t"層である領域では（連続して湾曲した面の下方の領域のように）、市松模様状の支持構造の形成が優先される。
数式（４）は、３画素x3画素の柱状支持構造を形成すべき、層ｎの領域が、その層"n"に対するトータルデータをとり、このトータルデータと（１）層"n"の物体データ、（２）市松模様状の支持構造を形成すべき、層"n"の領域を表すデータおよび（３）架橋形の支持構造を形成すべき、層"n"の領域を表すデータとのブール差を決定することによって決定されることを示している。
上述の説明から明らかなように、上記数式は異なる支持構造を必要とする様々な領域に対して設定することができる。第37図はアーチ形の支持構造を示しており、この支持構造は下向きの面24に近づくにつれ、異なる造形パターンを必要とする。図示のように、そのアーチ形の支持構造は面23から始まる。この面23は造形台の面でもよいし、物体部の上向きの面でもよいし、前に形成した支持構造と関連する面でもよい。したがって、この支持構造は、多くの（例えば、10以上）異なる支持構造を必要とする複合支持構造である。もちろん、アーチの頂部と支持するべき下向きの面の間に市松模様状の複数層の支持構造を加えてもよい。
このデータが形成された後のステップはそのデータを制御コンピュータに出力するためにフォーマットすることである。上述のように、制御コンピュータはこのデータを物体データとともにビットマップにロードし、プリントヘッドおよびＸ−、Ｙ−、Ｚ−ステージを駆動する。
このためにスタイルファイルを、物体部構造と支持構造の各形式毎に使用する。与えられた物体部構造あるいは支持構造の形式に対するスタイルファイルは、その形式の物体部構造あるいは支持構造を形成するべき領域を通して繰り返されるコアパターンである。スタイルファイルは与えられた領域の造形パターンを調整するのに使用される。このデータ調整技術によって、データ操作およびメモリーに関する要求が緩和される。例えば、本実施の形態における市松模様状の支持構造に関するスタイルファイルは第38a図に示す３画素x2画素のパターンである。他の例として、最も望ましい実施の形態における３画素x3画素の柱状支持構造に関するスタイルファイルは第38b図に示す４画素x5画素のパターンである。もちろんこのほかにも多くのスタイルパターンが可能である。これらのスタイルパターンは一般に（x,y）位置（0,0）から始まり、交互に繰り返されて、XY平面内に繰り返しパターンを形成する。このパターン全体が物体部領域と支持構造領域のスタート／ストップ移行点データに組み込まれる。このスタイルファイル情報と物体部情報の組み合わせは制御コンピュータへのデータ転送の前に行ってもよいし、後に行ってもよい。一般には、両者を制御コンピュータに転送した後に両者を組み合わせて一組のデータとする。現在のところでは、物体部に関するスタイルファイルは単に１画素x1画素の中実の画素パターンであるのが（すなわち、物体内部は常に中実）望ましい。
現在のところでは、最も望ましい繰り返しパターンはXY平面内に固定される。最も望ましい３画素x3画素の支持パターンに関していえば、この結果、物体部の縁において３画素x3画素の柱の何本かが先細りになることがある。これが第39a図に示されている。図示のように、３画素x3画素の柱の一部30、31が物体部の縁32に近いために、形成されない。その結果、２本の柱の表面積が小さくなっている。これらの柱が、物体部の縁から離れていないときにはそれほどの問題は起きない。というのは、物体部を形成する際にその柱の欠けた部分が形成されるからである。しかしながら、支持構造を物体部と接触して形成すると、物体部の表面仕上げに悪影響を与えやすく、これが他の問題を引き起こす。
支持構造が物体部から離れている場合には、繰り返しパターンを、３画素x3画素の支持構造が物体部の縁に沿うように変えることによって、この問題を解決することができる。この方法が第39b図に示されている。支持柱の位置を徐々に変えるのは、米国特許出願No.08/534,813に記載されている画素パターンのオフセットによって行うことができる。前述の他の問題とは、３画素x3画素の支持柱が物体部と直接接触して形成されてしまうことがあることである。この問題が第39c図に示されている。図示のように支持柱35が物体部33と直接接触して形成されている。（破線で示されている支持構造34は物体部の下方にあるものであり、正確を期するためだけに描かれたものである）この問題の解決方法の１つは、これらの柱を１画素分以上後退させて、物体部から離すことである。これは支持部のスタート／ストップ移行点データを調整するだけで行うことができる。この実施の形態ではこの調整は選択の問題である。すなわち、柱を１画素分後退させれば、柱の表面積が小さくなり、材料の堆積速度の問題が生じることもある。
ブール演算を実行する際にはいくつかの注意が必要である。上述のように、この演算に使用されるデータは一連のスタート／ストップ移行点としてフォーマットされている。このフォーマットによって、ブール演算を一連の算術計算として実行できるために計算が容易になることが発見された。例えば、２組の移行点データのブール差の演算を行うのには、対応するスタート／ストップ移行点同士の差の算術計算をするだけでよい。その結果計算速度が大幅に速くなる。その理由は、多角形データに基づくＮ個のデータポイントが使用されるブール演算は本質的にN2の計算であるのに対して、スタート／ストップ移行点データを使用する算術計算はＮに比例するからである。
もう一つの点は、層"n"について計算される中間ブール結合データ（すなわち、層"n"の上下"r"層および"u"層の物体部データおよび層"n"上方"s"層と"t"層の間の層のブール結合）が、後の処理に使用できないことである。この理由は次ぎの数式に示すようにブール結合演算に対応付けられた”メモリー”が無いことである。
0003545421.tif 000006
上記式から明らかなように、算術演算においては加算の９番目の項目は最終的な和に影響があり、その影響は次の層の演算の際に除去することができる。これに対して、ブール演算の場合には、９番目の項目が必ずしも和に影響を及ぼすとは限らない。したがって、この項目の影響が次の層の演算の際に除去されると限らない。
式（１）〜（４）によれば正確な結果が得られるが、計算時間が長くなりすぎる場合がある。したがって、場合によっては得られる結果は近似値であるが、計算量の少ない数式を使う方が望ましいこともある。物体部の表面の傾斜はある層数（例えば、10層、10〜20ミル）以内では符号が変わることはないと仮定するか、あるいは方向の変化は断面の位置に無視可能な程度の変化しかもたらさないと仮定することによって計算量が過剰になるのを避けることができる。言い換えると、その仮定は物体部の表面は急激には変化しないとすることである。この点が第35a、35b図に示されている。第35a図はこの仮定に合った物体部を示している。図示のように、物体部の表面の傾斜Ｓはある層数（例えば、10層）にわたって符号すなわち方向が変化しない。これに対して、第35b図は表面の傾斜方向の符号が変化しないという仮定に反する物体部を示している。しかしながらこの場合にも、その面のXY位置のばらつきの大きさによっては、その方向の変化が断面の位置に無視可能な程度の変化しかもたらさないことがある。図示のように、物体部面の傾斜S'の符号が10層内で変わっている。層の数が一定であれば、層が薄ければ薄いほど上記仮定が成り立ちやすい。
上記仮定をすれば、次の数式を使用することによって必要な計算量を減らすことができる。
（７）  Cn＝（Pn-t＋Pn-u−Pn）∩Tn
（８）  Bn＝Pn-t＋Pn+s−Cn−Pn
（９）  Sn＝Tn−Pn−Cn−Bn
数式（１）〜（４）の場合のように、領域内の全ての断面領域のブール和の基づくのではなく、上記数式（７）〜（９）はその領域の最上および最下の断面のみからの断面情報を使用する。上記仮定が常に正しければ、この数式は正確な結果をもたらす。いずれにしても、実用上は、非常に程度の良い近似値が得られる。上記計算を実行する際には、（ｔ＋ｕ＋１）層からのデータが同時に使用可能である必要がある。例えば、ｔ＝10、ｕ＝５で（ｔ＋ｕ＋１）＝16。これは、層"n"の支持構造データが、（ｎ＋１）層から（ｎ＋ｔ）層までの層の物体データとトータルデータ、（ｎ−１）層から（ｎ−ｕ）層までの層の物体データとトータルデータ、および層"n"の物体データとトータルデータに依存するからである。
このようなデータを直ぐにアクセス可能な形に保つためには、リングバッファを使用するのが有利である。第36図に示すように、リングバッファは（ｔ＋ｕ＋１）層（例えば、16層）の物体データとトータルデータを格納する円形バッファである。第36a図は、層"n"に対する計算が行われる寸前の16層（ｔ＝10、ｕ＝５）用のバッファの状態を示す。ポインタPTRは現在計算中の層を指示する。図示のように、（ｎ＋１）層から（ｎ＋ｔ）層までの層、層"n"、および（ｎ−１）層から（ｎ−ｕ）層までの層のデータがバッファに格納されている。第２のポインタLASTは、最後にバッファに入力されたデータ、この例では、層"n−5"のデータ、を指示する。層"n"に対する計算の終了後、次の層"n＋1"の計算をするためにバッファを更新する必要がある。そのために、まずポインタPTRを層"n＋1"のデータを指示するように更新する。次に第２のポインタLASTに指示されているデータを次にバッファに加えるべき層のデータ、この場合層"n＋11"のデータ、に書き換える。次に第２のポインタLASTを、この時点で最後に入力されたことになるデータ、ここでは層"n−4"のデータ、を指示するように更新する。この操作の結果が第36b図に示されている。第36c図は、層"n＋2"に対する計算が行われる寸前のバッファの状態を示す。以上のような操作を全ての層に対する計算が終了するまで繰り返す。
３次元物体データをSDM装置を駆動できるデータに変換するためには、他にも様々な実施の形態が考えられる。例えば、上記演算を移行点データでなく多角形データに対してブール演算を用いることによって実行してもよい。また、物体の全ての層のデータをリングバッファでなく、メモリーに同時に格納してもよい。さらには、プリントヘッドの複数回の走査によって、細い繊維状の支持構造と物体部の積み上げ速度を等しくすることもできる。
架橋形ないし移行形の支持構造を上向きの面から計算することもできる、すなわち、Bn（Ｕ）。このデータは物体部の上向きの面から始まる繊維状の柱による支持構造とその上の３画素x3画素の柱による支持構造の間の移行形の支持構造を形成する際に使用することができる。またCn（Ｕ）データとCn（Ｄ）は、両者のスタイルファイルが同じであるときには、別々に計算する必要はない。もちろん、両者のスタイルファイルが異なるように意図されている場合は、両方のデータの種類が区別されるべきである。
さらに、前述の３種類に限らず任意の数の種類の支持構造を本発明によって形成することが可能である。これは、スタイルファイルを増やし、追加の種類の支持構造を形成すべき領域を決定するための数式を追加することによって容易に実行できる。
造形スタイルと支持スタイル
理想的なデータ操作のためには、標準的なパターン形成をRLEデータ内に埋め込まない方が有利である。もしそうすると、RLEファイルが膨大になり、実用上データ操作が間に合わなくなる。したがって、物体部および支持構造の断面情報を、層形成が始まるまでは厳密な供給パターンから別個にしておくのが望ましい。上述のように、ある適当な時期に、断面データ（例えば、RLE情報の形の）と適当な造形パターンの論理積がとられて、供給の詳細を決定するのに使用される厳密なパターンが作成される。
例えば、これは、市松模様状パターンを手早く作成するのに使用することができる。この例が第40a〜40c図に示されている。これらの図においては同様な要素には同じ番号を付した。第40a図は形成すべき所望の像を示している。図示のように所望の像は２つの部分からなる。第１の部分29は中実であり、第２の部分30はオンとオフの市松模様に形成されることが望まれている。上述したような理由で、像30を画素ベースでハニーカムパターンに変換するのは膨大な時間と膨大なメモリーを必要とし、ほとんど実現不可能である。また像30を余りに早くハニーカムパターンにしてしまうとデータ操作が複雑になりすぎ、時間がかかりすぎてしまう。データの記憶装置（ハードディスクあるいはテープドライブ）への転送も、データをそのような詳細なフォーマットで保持すると、余りに重くなる。したがって、第40b図に示すように、両方のパターンを中実なままあるいは中実（移行点が最小）に変換して操作し、後で、材料の発射とＸ、Ｙ、Ｚ方向の動きを司るデジタル信号プロセサーに送る。次に、第40c図に示すように、部分30に対応付けられたデータ31（中実形式）とハニーカム／市松模様パターン32との論理積（すなわちブール積）をとり、中実なデータを形成すべき調整された断面パターンを表す所望の形式に変換する。このような最終的な調整された形式に変換した後は、データの記憶はそれ以上行わずに、必要ならさらに操作した後、そのデータをジェットの発射制御に使用するのが望ましい。この例では、部分29と30のデータの論理和をとり、所望のデータ全体を含む単一のビットマップを作成する。この組み合わせたデータを使用してプリントヘッドの発射を駆動する。
造形装置へのRLEファイルを有するデータは上述のように使用される造形／支持パターン情報を含んでいる。上述のように変調データとRLEデータの対応付けは、それぞれ特定の”スタイル”ないし造形パターンを記憶した複数のスタイルファイルを使用して行われる。造形パターンの例が第41a、41b、41c図に示されている。第41a図は米国特許出願No.08/534,813に記載されている支持構造の種類の１種を形成するのに適した市松模様造形パターンを示している。第41b図は、同じく米国特許出願No.08/534,813に記載されている支持構造の種類の他の１種を形成するのに適した造形パターンを示している。第41c図は中実部分を示している。
他の様々な造形スタイルが可能である。例えば複数回の走査を使用する造形スタイルも可能である。例えば、第41d図に示す例では、１行置きの走査線に沿って材料が供給される。この例では、最初の走査でパターン56に材料が供給され、次の走査でパターン57に材料が供給される。第41e図に示す例では、１列置きに材料が供給される。この例では、最初の走査でパターン58に材料が供給され、次の走査でパターン59に材料が供給される。第41f図に示す第３の例では、互いに補完する市松模様状に材料が供給される。すなわち、最初の走査でパターン60に材料が供給され、次の走査でパターン61に材料が供給される。
異なる物体領域と支持領域に異なるスタイルファイルを対応付けるために、RLEフォーマットには、造形装置に送られる各組のラスターライン移行情報に対する造形パターン指定が含ませられる。そのようなRLEファイルの概念的なフォーマットが第47図に示されている。
このファイルフォーマットを使用することによって、与えられた移行点対に対して事実上どの造形パターンも指定することができる。
データスキュー
ジェットの発射を制御する正しい画素情報を含むビットマップを提供するのに加えて、データがそのビットマップから容易に取り出せて発射機構に正しい順序で供給される必要がある。このデータを取り出し可能状態におくという必要性がデータ操作の次のステップをもたらす。このステップはスキューと呼ばれる。例えば、隣接するジェットが隣接するラスターライン上にないときでも、また隣接するジェットが同じＸ座標上の異なるＹラスターライン上に同時に位置しているときでも、ジェットを同時に発射させることができるような情報が得られるように、データを処理することができる。このようなスキューはデータ再編成処理と称され、例えば、プリントヘッドが第2b図に示すように走査方向に対して斜めに置かれているときや、複数のプリントヘッドが使用されて同時もしくは順次に発射せしめられるときや、あるいはジェット間隔がラスターライン間隔と同じでない場合に必要になる。
例えば、オリフィス10（３）と10（４）は第2a図の状態では走査方向の位置が同じであるが、第2b図に示すようにプリントヘッドが走査方向に対して斜めにされると、距離d"だけ走査方向に位置がずれる。しかしながら第2a図の構成に対して使用されるデータはジェット10（３）と10（４）が同時に発射して同じＸ方向位置に材料を供給することを要求するようになっているはずである。このようなデータを第2b図の構成に使用すると、歪みが生ずる。したがって、この例では、データのスキューによって位置のずれを補正してやる必要がある。
問題はこのスキューに関連するデータの量が比較的多く、またそのスキューをリアルタイムで実行しなければならないということである。例えば、一般的な構成のインクジェットでは、１画素に供給するのに要する時間がたった500nSである。したがって、データ消費速度に遅れないようにするためには、各画素に対するスキュー処理はこの時間より長い時間（平均）を要することはできない。
40MHzで作動する一般的なデジタル信号プロセサー（例えば、C31プロセサー）のサイクル時間は50nS台である。したがって、１画素にかけられる時間が500nS台であるとすると、１画素につき10サイクルしか使用できない。これに対して、プロセサーの各命令は最低１サイクルを必要とする。またバス対立、パイプライン対立、メモリー待機状態に対処するために数サイクルを要することもしばしばある。したがって各命令には実際は２〜４サイクルが必要になる。したがって、現実には、各画素には約３つの命令しか使用できない。
問題は、各画素を"1"に設定するといった一般的な操作でも約６つの命令を必要とすることである。すなわち、この操作を画素単位で実行することは不可能である。その替わりに、複数の（例えば、32）の画素を１度に処理する操作が必要になる。ある典型的な操作では、像をクリアしたり、移動させたり、出力したり、２つの像の論理積をとったり、２つの像の排他的論理和をとったりすることになる。これらの形式の命令は少ない数（６でなく２または３）で済み、しかも32個の画素を一度に処理することができ、全体としては画素単位の処理より約100倍速くなる。
上述のように、制御コンピュータはSTLあるいはCTLファイルをスライスし、それぞれの断面に対するRLEデータを演算する。プリントヘッドに結合されているデジタル信号プロセサーはこのRLEデータをとって、圧縮されていたRLEデータを元に戻し、ジェットの配列に応じてデータをスキューし、ジェットにデータを出力しなければならない。上述のように、”スキュー”とはジェット配列あるいは必要に応じて他のファクターを補償するための画像データの操作処理を意味する。圧縮されていたデータは、いったん元に戻されると、充分迅速に操作できないため、圧縮状態のまま（例えば、RLEフォーマットのまま）操作できるようにするのが有利である。さらに、２バイトもしくは４バイトのワードが同時に出力すべき複数の画素を含むようなメモリーにデータを記憶することも時間を節約する上で重要である。
データのスキュー処理においては、同時に出力すべき複数の画素に関連するデータを同じワード内に維持したまま、スタート／ストップ移行点を単純に走査方向にシフトさせる。その後データの圧縮を解き、各ワードを対応するＸ方向位置が来る度にプリントヘッドに出力する。
この方法が第42a、42b、42c、42d、42e図に示されている。各図においては同様な要素には同じ番号を付した。第42a図は断面の画素化した像を示している。第42b図はこの画素化像のRLEフォーマットのデータを示している。図示のように、各走査線に対するデータ、25（１）、25（２）、25（３）、・・・、25（10）、はスタート／ストップ移行点を表すデータに圧縮されている。第42c図はこのデータを、走査線に対して斜めに配されたプリントヘッドに合わせてスキューする過程を示している。この図では、プリントヘッドが５個のジェットを備え、各ジェットが１画素ずつずれるようにプリントヘッドが傾けられていると仮定している。すなわち、走査線25（２）に対するデータが走査線25（１）に対するデータに対して画素ずらされ、走査線25（３）に対するデータが走査線25（２）に対するデータに対して１画素ずらされ、以下同様にずらされる。この過程が走査線25（６）に達するまで続けられる。走査線25（６）は６番目の走査線であり、その走査線は最初の５本と同時には走査されないため、走査線25（６）はずらされない。その替わりに、走査線25（７）に対するデータが走査線25（６）に対するデータに対して１画素ずらされ、走査線25（８）に対するデータが走査線25（７）に対するデータに対して１画素ずらされ、走査線25（９）に対するデータが走査線25（８）に対するデータに対して１画素ずらされ、以下同様にずらされる。
この過程で、スキューされたデータがまとめられ、同時に発射すべきジェットに対するデータが単一のワードに集められる。次にこのデータの圧縮を１ワードずつ解く。この過程が第42d図に示されている。各列27（１）、27（２）、27（３）、・・・、27（12）上の画素に対するデータのそれぞれは同時に発射すべきジェットに対するデータを表している。したがって、これらの列に対するデータは個々にアクセスできるワードに記憶され、したがって同時にアクセスできる。まとめ指標26も１度に１列全体を指定するように維持される。各列に達する度に、データの圧縮が順に解かれる（すなわち、各移行点がオン／オフビット、例えば、一度に32ビット、に変換される）。第42d図において、まとめ指標は列27（８）に位置している。したがって、列27（８）のデータの圧縮が解かれる。残りの列27（９）〜27（12）までのデータは圧縮されたままである。しかしながら上述のように、まとめ指標がその列に達する度に圧縮が解かれる。
次に、１度に１列ずつのデータが順次プリントヘッドに出力される。この過程が第42e図に示されている。図示のようにまとめ指標がリセットされており、列27（１）〜27（12）を再度指定するのに用いられる。図示のようにまとめ指標は列27（５）に位置しており、したがってこの列のデータがプリントヘッドに出力される。次に残りの列27（６）〜27（12）までのデータが順次出力される。
飛行時間とジェット発射
上述のようにして発生されたデータによって、所望の位置に材料滴を滴下する前に、実行すべきもう一つの重要な機能がある。インクジェットヘッドにデータをロードして発射させる際に、システムは材料を滴下する適切な位置にインクジェットヘッドが到達する時期を決定しなければならない。前述の米国特許出願No.08/534,813に記載されているように、適切な発射時期はヘッドが適正な供給位置の上に達するやや前になる。この早期発射補正は飛行時間補正と呼ばれる。しかしながら、その早期発射信号をどの位置で発するのが適当かを決定しなければならない。この決定方法の詳細を以下に示す。
所望の走査線解像力での造形を可能にするには、走査線上のどの位置ででもジェットを発射できることが重要である。これは所望の位置にフェンストリガー（fence trigger）を有するとは限らないエンコーダを使用して実際のＸ位置を示す場合には問題が多い。実際には、プリントに要求される解像力より、低くてよい。解像力が高くなるほどエンコーダが高くなるし、設備コストは低いのが望ましいし、また解像力が単一の解像力やフェンス間隔の倍数の解像力に限定されてしまうのは望ましくない。したがって、正確な発射位置を決定する他の手段が望まれる。以下に説明する正確な発射位置は、計算された平均速度と最後のフェンスを通過した後の既知の経過時間に基づいてフェンス線間の距離補完を実行することによって決定される。発射位置は、既知の所望の発射位置と補完された位置を使用して決定される。
Ｘステージ12（第１図）はプリントヘッドのＸ方向の位置を決めるのに使用されるエンコーダと協働して、プリントヘッドへの発射パルスが適切な時に開始されるようにする。望ましい実施の形態においては、この機能を果たすために、第43図に示すガラスプレート34が使用される。そのガラスプレート34上には10ミクロン間隔で線33がエッチングされている。さらに光とフォトダイオード（図示せず）を使用して、プリントヘッドがその線を通過した時を決定し、プリントヘッドがその線の１本を通過する毎にDSPを停止させる。また１対の検出器（図示せず）を使用してプリントヘッドが右に動いているか左に動いているかを示す。振動等で発生する信号がDSPに影響を与えるのを防止するため、デジタルヒステリシス回路（図示せず）を使用して、振動等によって発生する疑似停止信号からDSPを保護する。このような回路構成によって、DSPはプリントヘッドの位置を10ミクロン以内で決定することができ、プリントヘッドの動いている方向も決定することができる。
10ミクロンより細かい解像力でプリントするために、DSP内にカウンタが設けられ、DSPが前記線の１本を通過する毎にカウントを開始する。カウンタがある値に達すると、DSPは発射信号を出させ、プリントヘッドをトリガーする。
第44図に示すような状況に対処するため第２のカウンタが使用される。信号T0、T1、T2、T3、T4（35で示す）はプリントヘッドが第43図に示す線33を通過するときにエンコーダから発生される信号を示している。線36は所望の発射位置を示している。信号T0'、T1'、T2'、T3'に関しては、これらの信号は全て信号T0、T1、T2、T3のそれぞれ後になっている。したがってこの場合には単一のカウンタを使用して上述のように発生させることができる。問題は信号T4、T4'の場合である。信号T4'は実際には信号T4より先に出さなればならないため、信号T3の発生に応じてこの信号を発生させるために、第２のカウンタが必要となる。
発射信号を発生させるためのアルゴリズムが第45a、45b図に示されている。プリントヘッドがエンコーダの線の１本を通過すると、割り込みが発生する。（第45a図、ステップ37）次にステップ38において、エンコーダのタイマー（図示せず）を読み、プリントヘッドの位置と対応付ける。このステップは数本のエンコーダの線にわたって実行される。結果を記憶する。
ステップ39では、前記数本のエンコーダの線を過ぎる間の経過時間でプリントヘッドの位置の変化を除することによってプリントヘッドの平均速度を計算する。ステップ40では次の発射位置と最後に通過したエンコーダの線の間の距離ΔＤを決定する。ステップ41ではこのΔＤの値を使用して、左右補正と飛行時間補正を考慮して最後のエンコーダ線から次の発射位置までの時間差Δｔ（１）を計算する。
次にステップ42で、この値を第１の発射タイマーにロードして、そのタイマーが満了したとき、発射パルスを出させる。次のステップ43（第45b図）では、次の発射位置に対する時間差Δｔ（２）をΔｔ（１）と同様にして計算する。得られた値をチェックして、次の発射位置が次のエンコーダ線を越えているかどうかを確認する。もしそうならば、発射パルスは次のエンコーダ線で出される。もしそうでなければ、ステップ45で、その値を第２の発射タイマーにロードする。ステップ46では割り込みからのリターンが開始される。
エンコーダ位置を発射命令の出力にリンクするのには他の方法も使用することができる。例えば、プリントヘッドのより正確な平均速度の表現を得るために、各種エンコーダフェンス位置報時信号を使用してもよい。この例では、最後の８個のエンコーダフェンス位置報時信号を平均して、４つ前のエンコーダフェンスに対応付けることのできる報時信号を得る。またその前の８個のエンコーダフェンス位置報時信号を平均して、12個前のエンコーダフェンスに対応付けることのできる報時信号を得る。これらの２個の平均された報時信号を使用して、プリントヘッドの走査の平均速度を導く。４つ前のエンコーダフェンスと次の発射位置の間の距離を決定し、その距離、平均速度、４つ前のエンコーダフェンスをプリントヘッドが通過してからの経過時間に基づいて、正しい発射位置にジェットが到達するまでの時間を予測し、その時間が経過したときジェットを発射する。
これで、基本発射位置の改良アルゴリズムについての説明を終わるが、様々な変更や改良が可能である。例えば、プリントヘッドの加速に基づく補正を加えたり、発射カウンターを追加して２つのカウンターを使用するよりも高い解像力を得たりすることもできる。
本発明の種々の実施の形態とその応用について以上説明したが、本発明の思想から外れることなく多くの変更が可能であることは当業者には明らかであろう。このように、本発明は、請求の範囲以外によっては限定されない。
【図１】
0003545421.tif 000007
【図６ａ】
0003545421.tif 000008
【図６ｂ】
0003545421.tif 000009
【図６ｃ】
0003545421.tif 000010
【図６ｄ】
0003545421.tif 000011
【図３８ａ】
0003545421.tif 000012
【図２ａ】
0003545421.tif 000013
【図２ｂ】
0003545421.tif 000014
【図８ｂ】
0003545421.tif 000015
【図１２ａ】
0003545421.tif 000016
【図３８ｂ】
0003545421.tif 000017
【図４１ｃ】
0003545421.tif 000018
【図３】
0003545421.tif 000019
【図５】
0003545421.tif 000020
【図４】
0003545421.tif 000021
【図９】
0003545421.tif 000022
【図２５】
0003545421.tif 000023
【図４１ａ】
0003545421.tif 000024
【図７】
0003545421.tif 000025
【図８ａ】
0003545421.tif 000026
【図１２ｂ】
0003545421.tif 000027
【図１０】
0003545421.tif 000028
【図１１ａ】
0003545421.tif 000029
【図１２ｃ】
0003545421.tif 000030
【図２４】
0003545421.tif 000031
【図１１ｂ】
0003545421.tif 000032
【図１１ｃ】
0003545421.tif 000033
【図１３ａ】
0003545421.tif 000034
【図１３ｂ】
0003545421.tif 000035
【図１３ｃ】
0003545421.tif 000036
【図１４】
0003545421.tif 000037
【図１６】
0003545421.tif 000038
【図１７】
0003545421.tif 000039
【図１５】
0003545421.tif 000040
【図１８】
0003545421.tif 000041
【図１９】
0003545421.tif 000042
【図２０】
0003545421.tif 000043
【図２３】
0003545421.tif 000044
【図２１】
0003545421.tif 000045
【図２２】
0003545421.tif 000046
【図２６】
0003545421.tif 000047
【図２７ａ】
0003545421.tif 000048
【図２８ａ】
0003545421.tif 000049
【図２７ｂ】
0003545421.tif 000050
【図２８ｂ】
0003545421.tif 000051
【図２９ａ】
0003545421.tif 000052
【図２９ｂ】
0003545421.tif 000053
【図３０ａ】
0003545421.tif 000054
【図３０ｂ】
0003545421.tif 000055
【図３３】
0003545421.tif 000056
【図３１】
0003545421.tif 000057
【図３２】
0003545421.tif 000058
【図３５ａ】
0003545421.tif 000059
【図４０ａ】
0003545421.tif 000060
【図３４ａ】
0003545421.tif 000061
【図３４ｂ】
0003545421.tif 000062
【図３４ｃ】
0003545421.tif 000063
【図３７】
0003545421.tif 000064
【図４１ｂ】
0003545421.tif 000065
【図３５ｂ】
0003545421.tif 000066
【図３６ｃ】
0003545421.tif 000067
【図４３】
0003545421.tif 000068
【図３６ａ】
0003545421.tif 000069
【図３９ａ】
0003545421.tif 000070
【図４２ａ】
0003545421.tif 000071
【図３６ｂ】
0003545421.tif 000072
【図３９ｂ】
0003545421.tif 000073
【図３９ｃ】
0003545421.tif 000074
【図４０ｂ】
0003545421.tif 000075
【図４４】
0003545421.tif 000076
【図４０ｃ】
0003545421.tif 000077
【図４１ｄ】
0003545421.tif 000078
【図４１ｅ】
0003545421.tif 000079
【図４１ｆ】
0003545421.tif 000080
【図４２ｂ】
0003545421.tif 000081
【図４２ｃ】
0003545421.tif 000082
【図４２ｄ】
0003545421.tif 000083
【図４２ｅ】
0003545421.tif 000084
【図４５ｂ】
0003545421.tif 000085
【図４５ａ】
0003545421.tif 000086
【図４６ａ】
0003545421.tif 000087
【図４６ｂ】
0003545421.tif 000088
【図４６ｃ】
0003545421.tif 000089
【図４６ｄ】
0003545421.tif 000090
【図４７】
0003545421.tif 000091