(58)【調査した分野】(Int.Cl.,DB名)
前記プリント制御装置は、前記印刷対象点設定処理において、前記印刷画像を前記ズレ量に応じて補正した補正画像を生成し、前記補正画像を印刷するように前記プリンタヘッドからのインクの吐出の制御を行うことを特徴とする請求項1に記載の印刷装置。
前記印刷対象点設定処理において、前記プリント制御装置は、前記印刷対象物に対して前記プリンタヘッドを相対移動させる制御に対する補正量を前記ズレ量に応じて算出し、
前記相対移動制御装置は、前記印刷対象点設定処理により算出された前記補正量に応じた動作の補正を行いつつ、前記相対移動の制御を行うことを特徴とする請求項1又は2に記載の印刷装置。
前記印刷対象点設定処理において、前記理想着弾点と前記実着弾点との間で位置がずれている場合に補正に用いる前記ズレ量は、前記印刷対象物の表面に沿った前記理想着弾点と前記実着弾点との間の距離であることを特徴とする請求項1から3のいずれかに記載の
印刷装置。
前記相対移動制御装置は、前記プリンタヘッドの前記ノズル面が前記印刷対象点に対して所定の間隔を維持するとともに、前記ノズル面が前記印刷対象点の接平面に対して平行となるよう、前記相対移動の制御を行うことを特徴とする請求項1から6のいずれかに記載の印刷装置。
【発明を実施するための形態】
【0014】
以下、本発明に係る実施形態を、図面を参照しながら説明する。
図1は、本発明の一実施形態に係る印刷装置である3次元プリンタ10の構成の一例を示す。
図1(a)は、3次元プリンタ10の正面図である。
図1(b)は、3次元プリンタ10の側面図である。以下においては、
図1(a)、(b)中に矢印で示すように、3次元プリンタ10を正面から見た場合の左右方向、上下方向をそれぞれ単に左右方向、上下方向という。また、3次元プリンタ10の奥行方向を後方向、その反対側を前方向という。この場合、3次元プリンタ10を正面とは、
図1(a)の紙面に図示した面のことである。また、3次元プリンタ10を奥行方向とは、
図1(b)における右側の方向のことである。
【0015】
3次元プリンタ10は、印刷すべき画像である印刷画像に基づいて3次元形状の印刷対象物50の表面に印刷を行う印刷装置(プリンタ装置)であり、筐体部12、プリンタヘッド14、ヘッド移動支持機構16、対象物保持装置18、3次元移動支持装置20、メンテナンスステーション22、及び制御装置24を備える。この場合、印刷対象物50とは、印刷の対象となる物体(ワーク)のことである。また、本例において、印刷対象物50としては、様々な形状の立体的なオブジェクト(3Dオブジェクト)を用いる。3次元プリンタ10は、円柱、円錐、球等様々な形状の3次元物体である印刷対象物50に印刷を施すことが可能な印刷装置であってよい。
【0016】
また、以下に説明をする点を除き、3次元プリンタ10は、公知の3次元プリンタと同一又は同様の特徴を有してよい。例えば、3次元プリンタ10は、図示した構成以外に、電源や、電源制御装置等を更に備えてよい。また、より具体的に、上記及び以下に説明をする点を除き、本例における3次元プリンタ10は、特開2011−177931号公報に開示されている3次元プリンタと同一又は同様の特徴を有してよい。
【0017】
筐体部12は、3次元プリンタ10の筐体を構成する部分である。本例において、筐体部12は、ベース部及び門型支持フレーム等により構成される。ベース部は、3次元プリンタ10の底面部分を構成する支持部である。また、門型支持フレームは、ベース部上に固設される門型のフレーム部である。より具体的に、図示した構成において、門型支持フレームは、左支持脚及び右支持脚と、これらの上端を繋いで左右に延伸する支持桁とからなる。
【0018】
プリンタヘッド14は、インクジェット方式でインク(インク滴)を吐出するインクジェットヘッドである。また、本例においてプリンタヘッド14は、ノズル列が形成された面であるノズル面を有する。この場合、ノズル列とは、インクをそれぞれ吐出する複数のノズル(不図示)が所定のノズル列方向に並ぶ列のことである。より具体的に、本例において、プリンタヘッド14のノズル面は、プリンタヘッド14の下面である。また、プリンタヘッド14のノズル面には、多数のノズルがプリンタヘッド14の移動方向と直交する方向に延びる列をなして形成され、それぞれのノズルから互いに同一もしくは異なる色のインクが吐出される。また、この場合、プリンタヘッド14は、例えば、インク供給装置(不図示)から供給されるインクを制御装置24の制御に基づいて各ノズル毎に吐出させて、印刷対象物50の表面に所定の印刷を施す。
【0019】
尚、3次元プリンタ10は、複数のプリンタヘッド14を有してもよい。この場合、それぞれのプリンタヘッド14は、例えば、互いに異なる色のインクを吐出する。また、この場合、複数のプリンタヘッド14は、例えば、所定の方向(例えば図中に左右方向)へ並べて配設される。
【0020】
ヘッド移動支持機構16は、ヘッド移動支持装置の一例であり、プリンタヘッド14を移動可能に保持する。本例において、ヘッド移動支持機構16は、対象物保持装置18に保持された印刷対象物50の表面に対向する位置をノズル面が通るように、プリンタヘッド14を移動可能に支持する。また、より具体的に、図示した構成において、ヘッド移動支持機構16は、キャリッジ102、ガイドレール104、及びヘッド駆動装置106を有する。
【0021】
キャリッジ102は、印刷対象物50と対向させてプリンタヘッド14を保持する保持部材である。キャリッジ102は、ガイドレール104に沿って移動可能に配設されており、制御装置24の指示に応じて、矢印D(y)により示す図中の左右方向へ移動する。また、本例において、キャリッジ102は、
図1(b)に示すように、ガイドレール104に支持される部分から前方に延び下方に折れ曲がり更に前方に延びた側面視クランク形状の部材である。この場合、プリンタヘッド14は、例えば図中に示すように、キャリッジ102の前端部に取り付けられる。また、キャリッジ102の前端部は、プリンタヘッド14の下面と対向する部分が上下に開口されている。このように構成すれば、例えば、キャリッジ102に保持されたプリンタヘッド14により、キャリッジ102の前端部の下方に位置する印刷対象物50の表面に向けて、適切にインクを吐出することができる。また、これにより、例えば、プリンタヘッド14に所望の印刷を適切に行わせることができる。
【0022】
ガイドレール104は、筐体部12における支持桁の上面における左支持脚及び右支持脚の間の位置で左右方向へ延伸するように配設された一対のレール(左右ガイドレール)である。また、この構成により、ガイドレール104は、左右方向へ移動自在にキャリッジ102を保持する。ヘッド駆動装置106は、プリンタヘッド14を上下方向に移動させる駆動装置である。本例において、ヘッド駆動装置106は、例えば、プリンタヘッド14の上方に配設され、制御装置24の指示に応じて、プリンタヘッド14を上下方向へ移動させる。
【0023】
対象物保持装置18は、印刷対象物50を保持する装置である。また、本例において、対象物保持装置18は、3次元空間内に設定される回転軸を中心として、印刷対象物50を回転可能に保持する。
【0024】
より具体的に、図示した構成において、対象物保持装置18は、保持シャフト112及び保持チャック114を有する。保持シャフト112は、3次元プリンタ10における前後方向へ延伸する軸状部材であり、所定点p1を通る回転軸X0を中心に回転自在に、3次元プリンタ10の前方側へ突出するように配設される。所定点p1は、印刷対象物50が位置し得る位置として予め設定された所定の位置の点である。また、説明の便宜上、以下においては、回転軸X0を、第2回転軸X0という。また、保持シャフト112は、後に説明をする3次元移動支持装置20における第3支持部材214の内部に配設された駆動モータ(不図示)により回転駆動されるようになっている。
【0025】
また、本例において、保持シャフト112の前端には、保持チャック114が取り付けられる。保持チャック114は、印刷対象物50を保持可能なチャック部材であり、印刷時において、印刷対象物50を保持する。このように構成した場合、例えば、保持チャック114に印刷対象物50を保持させた状態で保持シャフト112を回転駆動させることにより、印刷対象物50を第2回転軸X0を中心に矢印Aの方向に(以下、A軸方向と称する)回転させることができる。
【0026】
3次元移動支持装置20は、対象物保持装置18を3次元空間内に移動可能に支持する装置である。本例において、3次元移動支持装置20は、ガイドレール202、第1支持部材204、垂直支持部材206、ガイドレール208、第2支持部材210、第3支持部材214、及び駆動モータ212を有する。
【0027】
ガイドレール202は、筐体部12におけるベース部の上面に配設された一対のレールであり、矢印D(x)により示す図中の前後方向へ延伸して配設され、前後方向への第1支持部材204の移動をガイドする。第1支持部材204は、ガイドレール202により前後方向へ移動自在に配設される支持部材である。
【0028】
垂直支持部材206は、第1支持部材204の上部において垂直に起立した状態で配設される支持部材である。この構成により、垂直支持部材206は、第1支持部材204と共に、前後方向へ移動する。
【0029】
ガイドレール208は、垂直支持部材206の前方において上下方向へ延伸する左右一対のレール(上下ガイドレール)であり、矢印D(z)により示す上下方向において、第2支持部材210の移動をガイドする。第2支持部材210は、ガイドレール208により上下方向に移動自在に支持される支持部材である。また、本例において、第2支持部材210の前面は、上記において説明をした所定点p1を通り、左右方向に延びる回転軸Y0を中心とする円筒面形状に形成されている。説明の便宜上、以下においては、回転軸Y0を、第1回転軸Y0という。また、この場合、所定点p1について、第2支持部材210に対して定まる所定点と考えることもできる。
【0030】
また、本例においては、第2支持部材210の前面側に、第3支持部材214が配設される。第3支持部材214は、円筒面形状の後面を有する支持部材である。また、この後面は、第2支持部材210における円筒面形状の前面に接合する面であり、第3支持部材214の後面と第2支持部材210の全面とを接合させることにより、第3支持部材214は、第2支持部材210の前面aに沿って摺動自在に配設される。すなわち、第3支持部材214の後面は、第2支持部材210の前面と摺動移動可能である。これにより、第3支持部材214は第2支持部材210に対して第1回転軸Y0を中心として回転自在となって支持される。また、本例において、第1回転軸Y0を中心として回転自在であるとは、図中に矢印Bで示す方向に回転自在であることである。
【0031】
駆動モータ212は、第3支持部材214を回転させる駆動手段である。本例において、駆動モータ212は、上記のように支持された第3支持部材214を第2支持部材210に対して第1回転軸Y0を中心として回転させるため、
図1(a)に示すように、第3支持部材214の左側部の前面に配設される。また、この場合、例えば、駆動モータ212の駆動シャフト(不図示)に取り付けられた駆動ピニオンと第3支持部材214側の内歯車と噛合させ、駆動モータ212により駆動ピニオンを回転駆動させる。このように構成すれば、例えば、駆動ピニオンを回転に応じて内歯車を回転させることにより、第3支持部材214を第1回転軸Y0を中心に矢印Bで示す方向(以下、B軸方向と称する)に適切に回転させることができる。
【0032】
また、これにより、第3支持部材214は、上記のように、第1回転軸Y0を中心にB軸方向に回転自在になる。そのため、例えば
図1(b)に示す状態にように、第3支持部材214が所定回転位置に位置した状態において、第2回転軸X0は前後方向に延びる。また、この状態において、第2回転軸X0に対して印刷対象物50を回転させる保持シャフト112は、第3支持部材214の前面側において、前後方向に延びている。また、第3支持部材214をB軸方向へ回転させた場合、第3支持部材214のB軸方向への回転に応じて、第2回転軸X0は上下に振られるようになる。
【0033】
メンテナンスステーション22は、プリンタヘッド14の下面のノズルのメンテナンスを行うための構成である。図中に示した構成において、メンテナンスステーション22は、プリンタヘッド14が搭載されたキャリッジ102の移動範囲の左端側に配設される。また、メンテナンスステーション22は、例えば、キャリッジ102が左端部に位置した状態において、プリンタヘッド14の下面のノズルの清掃及び乾燥防止処置等を行う。
【0034】
制御装置24は、3次元プリンタ10の動作の制御を行う装置であり、3次元プリンタ10の各部の動作を制御する。制御装置24は、例えば3次元プリンタ10のCPUを含む部分であってよい。また、本例において、制御装置24は、例えば操作盤を介してユーザの指示を受け付け、指示に応じて3次元プリンタ10の動作を制御する。
【0035】
また、より具体的に、本例において、制御装置24は、少なくとも、相対移動制御装置及びプリント制御装置として機能する。この場合、相対移動制御装置とは、例えば、ヘッド移動支持機構16及び3次元移動支持装置20等の動作を制御することにより、対象物保持装置18に保持された印刷対象物50に対してプリンタヘッド14を相対移動させる制御を行う装置のことである。相対移動制御装置については、例えば、3次元プリンタ10における平行移動及び回転移動の制御を行う移動制御装置と考えることもできる。
【0036】
また、プリント制御装置とは、例えば、プリンタヘッド14からのインクの吐出の制御を行う装置である。より具体的に、本例において、プリント制御装置とは、例えば、ノズル列における少なくとも一部の各ノズルからインクを吐出すべき位置である印刷対象点を印刷対象物50の表面に設定し、相対移動制御装置による相対移動の制御に合わせて、印刷画像に基づき、ノズル列における各ノズルから印刷対象点へインクを吐出させる装置である。
【0037】
尚、相対移動制御装置及びプリント制御装置として行う具体的な制御については、後に更に詳しく説明をする。また、図示した構成において、制御装置24は、相対移動制御装置及びプリント制御装置を兼ねる装置であり、3次元プリンタ10の右側と左側とに分けて配設されている。3次元プリンタ10の構成の他の例においては、
図1と異なる構成で制御装置24を配設してもよい。また、例えば、相対移動制御装置とプリント制御装置とを分けて配設してもよい。
【0038】
続いて、3次元プリンタ10により行う印刷の動作について、更に詳しく説明をする。
図2は、3次元プリンタ10により行う印刷の動作について説明をする図であり、
図1を用いて説明をした3次元プリンタ10によって印刷対象物50に印刷を施すための作動原理、及び印刷対象物50とプリンタヘッド14との相対移動制御の概要の一例を示す。
【0039】
尚、
図2において、保持シャフト112の回転中心となる第2回転軸X0はX軸に、第3支持部材214の回転中心となる第1回転軸Y0はY軸に、それぞれ相当する。また、
図2に示す印刷対象物50は切頭円錐形状の部材である。以下においては、この印刷対象物50を用いて説明する。また、3次元プリンタ10で印刷可能な印刷対象物50の形状は、切頭円錐形状に限定されることはなく、円筒形、楕円筒形、円錐形等、様々な形状であってよい。
【0040】
上記においても説明をしたように、本例において、3次元プリンタ10は、
図1に示した第1支持部材204、第2支持部材210、第3支持部材214、保持チャック114等により、印刷対象物50を支持する。また、これらの構成により、X軸を中心としてA軸方向に回転自在に印刷対象物50を支持する。また、この状態でX軸上の所定点p1を通り、X軸と直交して左右に延びるY軸を中心として、印刷対象物50がB軸方向に回転自在となるように支持する。更に、印刷対象物50をX軸方向に沿って矢印D(x)で示す前後に移動可能、かつX軸及びY軸に直交して垂直に延びるZ軸に沿って矢印D(z)で示す上下に移動可能に支持するように構成されている。
【0041】
また、このように支持された印刷対象物50の上方において、プリンタヘッド14は、矢印D(y)で示すY軸方向に移動可能な状態で配設される。また、ヘッド駆動装置106(
図1参照)により、プリンタヘッド14を矢印D(z)で示すZ軸方向に移動させることが可能である。
【0042】
ここで、印刷対象物50に対して印刷を行う場合、プリンタヘッド14におけるノズルについて、印刷対象物50の表面の印刷対象位置から所定印刷間隔を有する接近した位置に位置させる必要がある。この位置は、例えば、ノズルから吐出させるインクを印刷対象物50の表面に付着させて印刷を行うのに最適な間隔を有する位置である。また、この場合、印刷対象物50の表面における印刷対象位置に対して、ノズルからのインクの吐出方向を直交する方向に向けなければならない。具体的には、例えば図中に示すように、印刷対象点からなる印刷線13aの中点を接点とする接平面に対してプリンタヘッド14の下面(ノズル面)が平行になるようにし、かつ、ノズル面が上記中点から所定印刷間隔だけ離れて位置するように、移動させる必要がある。
【0043】
そこで、本例の3次元プリンタ10においては、上記のような移動を行うため、先ず、印刷対象物50を矢印D(x)に示すX軸方向に移動させる。そして、印刷対象物50をA軸方向に回転させて印刷対象の印刷線13aが真上を向くように位置させる。また、更に、印刷対象物50をB軸方向に回転させて、プリンタヘッド14のノズル列と印刷線13aを通る稜線L0とが互いに平行になるように位置させる。そして、プリンタヘッド14のノズル面が印刷線13aの中点から所定印刷間隔だけ離れた位置に位置するように、矢印D(z)で示す方向に移動させる。また、上記移動及び回転等は、印刷対象物50とプリンタヘッド14とが干渉しない限り、どのような順序で行ってもよい。
【0044】
以上のような移動及び回転を行うことにより、本例の3次元プリンタ10においては、上記のように、プリンタヘッド14のノズル面が印刷線13aの中点の接平面と平行、かつ、プリンタヘッド14のノズル面が印刷線13aの中点から所定印刷間隔だけ離れた状態で、ノズルから印刷線13aへのインクの吐出を行う。また、例えば、印刷線13aから印刷対象物50の表面における周方向に沿った位置に形成され、X軸(回転軸)方向に延びる印刷線13b、印刷線13cに対してインクの吐出を行う場合は、上記印刷線13aに対する印刷時と同様に、それぞれの中点からプリンタヘッド14のノズル面を所定印刷間隔だけ離し、プリンタヘッド14のノズル面が印刷線13b、印刷線13cそれぞれの中点の接平面と平行になるように、プリンタヘッド14及び印刷対象物50の平行移動、回転移動を行いながらインクを吐出する。このように、印刷線13b、印刷線13cからプリンタヘッド14のノズル面を所定印刷距離だけ離しつつ、プリンタヘッド14のノズル面が印刷線13b、印刷線13cそれぞれの中点の接平面と平行になるように位置させた状態で、印刷線13b、印刷線13cにインクを吐出させる。すなわち、本例においては、印刷対象物50の表面において、印刷線13a、印刷線13b、印刷線13c・・・に順次一定間隔でインクを吐出させていくことにより所望の印刷を行うことができる。
【0045】
以上のように、本例における3次元プリンタ10は、印刷対象物50をプリンタヘッド14のノズル列方向に移動させるためのX軸と、X軸に直交する方向に設けられプリンタヘッド14を移動させるためのY軸と、プリンタヘッド14及び印刷対象物50を上下方向に移動させるためのZ軸と、印刷対象物50をX軸を中心に回転させるA軸と、印刷対象物50をY軸を中心に回転させるB軸とを備えた5軸の移動機構を有している。また、これにより、例えば、様々な形状の印刷対象物50に対し、高い精度での印刷を可能にしている。
【0046】
図3は、様々な形状の印刷対象物50に対する印刷の動作の一例を示す。
図3(a)、(b)は、楕円柱形状の印刷対象物50に印刷を行う動作の一例を示す。
図3(a)は、印刷対象物50の表面の一部である所定の印刷基準点B0に位置する印刷線へインクを吐出するタイミングでの動作の一例を示す。
図3(b)は、印刷対象物50の表面の一部であり、印刷基準点B0から離れた印刷対象点B1に位置する印刷線へインクを吐出するタイミングでの動作の一例を示す。
【0047】
様々な形状の印刷対象物50に対して印刷を行う場合、インクを精度よく着弾させるために、印刷対象物50の表面に対して、プリンタヘッド14の垂直Y0軸と印刷線における法線方向とを常に一致させることが好ましい。そのため、本例において、例えば印刷基準点B0から離れた印刷対象点B1に位置する印刷線に印刷を行う場合には、
図3(b)に示すように、印刷対象物50を回転角度b1だけA軸方向に回転させつつ、プリンタヘッド14をy1の位置に移動させて印刷を行う。このように構成すれば、例えば、インクの着弾精度を適切に高めることができる。
【0048】
図3(c)、(d)は、切頭円錐形状の印刷対象物50に印刷を行う動作の一例を示す。
図3(c)は、印刷対象物50を傾斜させる前の状態の一例を示す。
図3(d)は、印刷対象物50を傾斜させて印刷対象物50の向きを調整した状態の一例を示す。
【0049】
切頭円錐形状の印刷対象物50に印刷を行う場合、印刷対象物50の表面とプリンタヘッド14のノズル面とを平行にすることが好ましい。また、より具体的に、切頭円錐形状の印刷対象物50のように、印刷対象物50が曲率を有する物体である場合、例えば
図3(d)に示すように、印刷対象点の接平面が上記ノズル面と平行になるように、A軸を傾斜角a1だけB軸方向に傾斜させる。また、プリンタヘッド14のノズル面と印刷対象物50の印刷領域との距離gを一定に保つため、Z座標をz1にし、X座標をx1にして、印刷領域の基準点とノズルの基準点とを一致させる。このように構成すれば、例えば、インクの着弾精度を適切に高めることができる。
【0050】
ここで、上記のような印刷の動作の制御をより一般化して考えた場合、相対移動制御装置としての制御装置24(
図1参照)の動作について、プリンタヘッド14のノズル面が印刷対象点に対して所定の間隔を維持するとともに、ノズル面が印刷対象点の接平面に対して平行となるよう、相対移動の制御を行うことが好ましいといえる。また、この場合、制御装置24は、例えば、対象物保持装置18に保持された印刷対象物50の表面形状から、印刷対象物50に印刷を開始する基準となり回転軸と直交する基準面と直交して回転軸を通る直交面における印刷対象物50の外周曲線上に設けられるノズル列と同一の長さの線分と、印刷対象点の接平面に対して直交する法線ベクトルとを求める工程を行う。そして、ノズル列がこの線分に対向してノズル面がこの法線ベクトルに対して直交するように、プリンタヘッド14を印刷対象物50に対して相対移動させる制御を行う。
【0051】
また、この線分及び法線ベクトルを求める工程においては、例えば、基準面における印刷対象物50の外周曲線を求める第1の工程と、直交面における印刷対象物50の外周曲線を求める動作を、第1の工程によって求められた外周曲線上において所定の印刷解像度に基づいて規定する間隔毎に離れた直交面毎に実行する第2の工程と、第2の工程によって求められた複数の外周曲線上に、これらの外周曲線上の基準点からノズル列と同一の長さの距離だけ離れた点を定め、定めた点のそれぞれの間を補間して曲線を求める動作を、第1の工程によって求められた外周曲線から上記距離毎に離れた基準点毎に実行する第3の工程と、第2の工程によって求められた外周曲線を、第1の工程によって求められた外周曲線及び第3の工程によって求められた複数の曲線によって区分して線分を求める第4の工程と、第4の工程によって求められた線分のそれぞれの中点から該中点に対して垂直な法線ベクトルを求める第5の工程とを行うことが考えられる。
【0052】
続いて、本例の3次元プリンタ10において行う印刷の動作について、更に詳しく説明をする。本例において、3次元プリンタ10での印刷を行う場合、印刷対象物50の形状に基づき、外形データの取得、印刷パス座標の計算、機械座標の生成、及び画像補正の処理を行う。また、これらの結果に基づき、印刷座標生成及び画像補正等を行い、制御装置24(
図1参照)に相対移動制御装置及びプリント制御装置としての動作を行わせ、印刷対象物50への印刷を行う。そこで、以下、相対移動制御装置及びプリント制御装置として制御装置24が行う具体的な制御の一例に関連して、これらの各処理について、詳しく説明をする。
【0053】
尚、上記においては、
図1〜3を用いて、主に、3次元プリンタ10がX軸、Y軸、Z軸、A軸、及びB軸の5軸の移動機構を有する場合の構成及び動作について説明をした。これに対し、以下においては、説明の便宜上、上記の5軸に加えて他の回転軸であるC軸を含む6軸の移動機構を有する場合の構成及び動作の一例を説明する。6軸の移動機構を有する場合の構成及び動作とは、例えば、特開2011−177931号公報において
図9を用いて説明されている構成及び動作と同一又は同様の構成である。また、回転軸の数が異なること等の影響や、説明の便宜等により、以下において説明をするXYZABCの各軸の定義は、
図1〜3を用いて説明をした3次元プリンタ10の各軸の定義と一部異なっている。以下に説明をする構成でのXYZABCの各軸の特徴については、必要に応じて、以下において改めて説明をする。
【0054】
立体的な3D形状の印刷対象物50の表面に印刷を施すためには、印刷対象物50の形状を示す3D形状のデータから、印刷対象物50の表面に対してプリンタヘッド14を走査させるための座標データである印刷座標の生成を行うことが必要である。また、本例においては、単に印刷座標の生成を行うのみではなく、画像補正の処理を更に行い、印刷時にプリンタヘッド14の動作を制御する走査データを生成する。
【0055】
以下、各処理について、具体的に説明をする。先ず、外形データを取得する処理について説明する。
【0056】
3Dオブジェクトである印刷対象物50をワークとして用いて印刷対象物50上に印刷を施すためには、印刷対象物50の表面をなぞるように主走査動作(スキャン)及び副走査動作を行う必要がある。この場合、主走査動作とは、例えば、予め設定された主走査方向へ印刷対象物50に対して相対的にプリンタヘッド14を移動させつつプリンタヘッド14のノズルからインクを吐出する動作のことである。また、副走査動作とは、例えば、主走査方向と直交する副走査方向へ印刷対象物50に対して相対的にプリンタヘッド14を移動させる動作のことである。また、この場合、主走査動作の合間に副走査動作を行うことにより、印刷対象物50において各回の主走査動作でインクの吐出対象となる領域を変更する。また、より具体的に、本例の3次元プリンタ10においては、
図1に示した左右方向を主走査方向とし、前後方向を副走査方向として、主走査動作及び副走査動作を行う。また、この場合、相対移動制御装置及びプリント制御装置として制御装置24を機能させることにより、主走査動作及び副走査動作を実行する。
【0057】
また、3次元プリンタ10において、主走査動作及び副走査動作を適切に行うためには、印刷対象物50の形状に応じて主走査動作及び副走査動作の制御を行う必要がある。そのため、本例においては、印刷対象物50の表面の形状を示す形状データを取得し、取得した形状データに基づき、印刷対象物50の表面の形状を所定の形式で示す外形データ(outline)を取得(生成)する。
【0058】
また、本例においては、以下に説明をするように、印刷対象物50の形状データとして、印刷対象物50の立体形状を示す3Dデータを取得する。そして、形状データに基づき、外形データを算出する。また、外形データとして、印刷の動作制御に必要な走査用の座標データを生成するためのデータを算出する。また、より具体的に、本例においては、外形データとして、例えば、3Dデータを軸方向に一定距離で取得した断面点群データを算出する。
【0059】
ここで、3Dオブジェクトである印刷対象物50の表面に対してプリンタヘッド(プリントヘッド)を走査し、印刷対象物50の表面に画像を形成させるためには、印刷対象物50の表面形状を予め定義する必要がある。そして、この場合、印刷対象物50の形状を示すデータを、例えば以下に説明をするように取り扱い、所定のアルゴリズムに従って、印刷パス生成に用いる外形データを生成することが考えられる。また、この場合、外形データとして、例えば、outlinei,jで示され、0≦i<N
S(N
S:等間隔で生成した最大断面数)、0≦j<Nd(Nd:各断面データの点数)となるデータを用いることが考えられる。
【0060】
図4〜6は、外形データの取得に関連する処理について説明をする図である。尚、以下においては、説明の便宜上、印刷対象物50のことを、ワークという。また、以下において説明する処理の一例について、本例の処理という。
【0061】
図4(a)は、印刷対象物であるワークの形状(ワーク形状)のモデルを示す図であり、STL形式のデータ(STLデータ)で示したワークの形状の一例を示す。外形データを生成する処理においては、先ず、ワークの形状を示すデータを準備する。ワークの形状を示すデータとしては、広く用いられているSTL形式のデータを用いることが考えられる。この場合、例えば図中に示す(x、y、z)をワークの座標系として扱う。また、ワークの形状を示すデータとしては、STL形式のデータに限らず、CAD等から出力される3D形状を示すデータであれば、他の形式のデータを用いてもよい。
【0062】
尚、この場合、STLデータの制約事項として、例えば、ワークにおいて最も奥に位置する面であるワークの底面においてz=0であること、及び、x=y=0の基準点を囲むようにワークの外形が定まっていることとすることが考えられる。このようにすれば、例えば、簡易かつ適切にワークの形状を示すことができる。また、この制約事項は、例えば計算方法を変更(改良)すれば、なくすこともできる。
【0063】
また、STLデータの三角要素数については、要素数を多くすればより詳細な形状を表現することができる。しかし、この場合、計算に処理が重くなることや、形状表面の滑らかさが失われること等が考えられる。そのため、要素数については、求められる精度等に応じて適宜設定することが好ましい。
【0064】
図4(b)は、STLデータから断面データを形成する処理の一例を示す。ワークの形状を示すデータ(STLデータ等)の準備の次には、ワークの形状を示すデータに基づき、ワークの断面形状のデータ(断面データ)を求める処理を行う。断面データを求めるのは、例えば、データ量を減らすと共に、後の計算を容易にするためである。また、より具体的に、断面データを求める処理では、ワークの形状を示すSTLデータをz方向に等間隔でスライスして、xy平面の断面点群座標を求める。
【0065】
ここで、本例の処理において、z=0の断面には、底面(z=0のxy平面)のデータが含まれている。この場合、この部分を除去せずに計算をするためには、例えば、z=Δzの面を基準面i=0(S0)とし、以降(S1、・・・、Sn)と等間隔に断面点群座標値を求めることが考えられる。また、この場合、断面点群座標としては、例えば、STLデータの三角要素の3辺ベクトルが各断面のz位置と断交差する点を全て求める。また、1断面分の断面座標のデータについて、x、y成分を有する要素cs
iを用いて、(cs
i.x、cs
i.y)と示す。
【0066】
尚、この場合、断面データの要素数は、断面位置によって異なる。そのため、各断面における点の数(断面点数)をN
stlとすれば、iは、0≦i<N
stlの範囲の数になる。
【0067】
図5(a)は、STLデータから求められた断面点群データの一例を示す図であり、一の断面における点群の座標(cs
i.x、cs
i.y)をプロットして示す。
図5(a)において、左側の図は、断面における全ての点を示す。また、右側の図は、断面の一部を拡大して示す図であり、左側の図中で長方形で囲んだ部分を拡大して示す。図示したように、点群座標は、N
stl個のデータからなる。また、N
stl個のデータについて、任意の点を(cs
0.x、cs
0.y)とし、最終点が(cs
Nstl−1.x、cs
Nstl−1.y)となるように原点を中心に時計回りにソートされた状態にする。
【0068】
ここで、図の右側の拡大図に示すように、STLデータから求められた断面点群の間隔は、三角要素の配置により、必ずしも等間隔にはならない。しかし、このままでは、曲線近似等を行う場合に、点間距離に応じた重みが変化することになる。また、その結果、近似曲線に予測外の雑音が発生するおそれがある。そのため、本例の処理においては、続いて、滑らかな曲線近似を行うため、各断面における点群を等間隔に置き換える処理を更に行う。
【0069】
図5(b)は、点群の等間隔処理の一例を示す図であり、STLデータから求められた点群を等間隔に変換するアルゴリズムの例を示す。この処理においては、先ず、初期位置(x
0、y
0)を計算開始の起点とし、これを(xx
0、yy
0)とする。そして、この起点からΔLだけ離れた点を、直線近似で求める。また、求められた点を(xx
1、yy
1)とし、次の計算の起点とする。
【0070】
また、より具体的に、この計算においては、以下の手順により、先ず、(x
0、y
0)を起点とし、ΔL離れた点を求めるため、(xx
0、yy
0)から(x
1、y
1)、(x
2、y
2)、・・・(x
n、y
n)までの距離を求め、ΔLを含む区間番号n、n+1(この場合は、区間1、2)を求める。そして、区間1を示す2点(x
n、y
n)、(x
n+1、y
n+1)の2点間距離を媒介変数tで表示し、起点(x
0、y
0)からの距離がΔLとなるよう、以下の式1でtを定めれば、(xx
1、yy
1)の座標を求めることができる。また、起点を(xx
1、yy
1)に更新し、逐次この計算を繰り返せば、ほぼ等間隔で並ぶ点群列csn
iを求めることができる。
【0071】
(式1)
x=(x
n+1−x
n)t+x
n
y=(y
n+1−y
n)t+y
n
ΔL=√((x−xx
0)
2+(y−yy
0)
2)
【0072】
また、以下においては、この点群列のxy要素を(csn
i・x、csn
i.y)と示す。また、この場合、点群列の要素数は、断面の周長によって異なる。要素数をN
csnとすれば、iは0≦i<N
csnの範囲を持つ。
【0073】
図5(c)は、断面における点群(ドット列)を等間隔に再配置した結果の一例を示す図であり、STLデータから求められた点群を等間隔に変換した結果の例を1断面分示す。
図5(c)において、左側の図は、断面における全ての点を示す。また、右側の図は、断面の一部を拡大して示す図であり、左側の図中で長方形で囲んだ部分を拡大して示す。
【0074】
尚、図示した場合において、点群データの間隔ΔLは、0.5mmである。ΔLの値の選択は、形状により、最終計算結果に影響を与える場合もある。そのため、ΔLの値については、例えば、形状の最大曲率を考慮して設定することが好ましい。また、この場合、例えば、最終的な印刷パス座標の変化(加減速状態)を参照して設定することが好ましい。
【0075】
また、本例の処理においては、等間隔化の処理に続いて、更に、等間隔に配置した点群データを補間する処理を行う。より具体的に、この処理においては、補間関数等を用いて等間隔に配置した点群データcsn
iを補間し、指定された印刷の解像度である指定解像度(dpi)の間隔で並ぶ点群を得る。
【0076】
また、更に具体的に、この処理においては、S
0面における点群から求めた周長L
S0を基準長さとして、ドット数N
dotnumを求める。このドット数N
dotnumは、上記において説明をした断面データの点数Ndと等しい数である。そして、全ての断面について、このドット数で分割して点群データを求める。これは、周長が異なると解像度が変化することを意味する。そのため、この場合、解像度の変化に対し、着弾させるインク量を制御して補正を行う。
【0077】
また、補間の例として、求めるべき区間k→k+1において、k−1、k、k+1、k+2の4点を用いて、3次式で補間する場合を示す。このとき、区間k→k+1における(x、y)座標は、媒介変数t(0〜1)表示を用いると、以下の式2で示される。また、この式において、xx
n及びyy
nは、それぞれcsn
n.x、csn
n.yを示す。
【0078】
(式2)
x=((1−t)
3xx
k−1+(3.0t
3−6.0t
2+4.0)xx
k+
(−3.0t
3+3.0t
2+3.0t+1.0)xx
k+1+t
3xx
k+2)/6.0
y=((1−t)
3yy
k−1+(3.0t
3−6.0t
2+4.0)yy
k+
(−3.0t
3+3.0t
2+3.0t+1.0)yy
k+1+t
3yy
k+2)/6:0
【0079】
また、tで指定される座標点(x、y)における法線方向について、上式を1階微分したdx、dyから以下の式3ように求める。この場合、法線方向の角度Θbは、y軸を基準とし、時計方向に正の値をとるものとする。また、その範囲は、0≦Θb<360とする。
【0080】
(式3)
dx=(−(1−t)
2xx
k−1+(t*(3.0t−4.0))xx
k+
((1+3.0t)(1.0−t))xx
k+1+t
2xx
k+2)/2.0
dy=(−(1−t)
2yy
k−1+(t(3.0t−4.0))yy
k+
((1+3.0t)(1.0−t))yy
k+1+t
2yy
k+2)/2.0
Θb=arccos(dx/√(dx
2+dy
2))
【0081】
尚、この計算においては、xx、yyが巡回する閉曲線であることを考慮する必要がある。より具体的には、例えば、k<0の場合、及びk>N
csn−1の場合には、kの取り扱いに注意が必要である。
【0082】
続いて、Bスプライン関数にてcsn点群から外形データの座標を求める手順について、説明をする。また、以下の説明において、外形データは、outline
i、jで表す。この場合、iは、断面番号(0≦i<N
s)、jは、点番号(0≦j<N
dotnum)の範囲を持つ。また、outline
i、jの各要素は、(outline
i、j.x、outline
i、j.y、outline
i、j.Θb)である。また、outline
i、jの計算手順は、以下に(1)〜(5)として示すとおりである。
(1)断面番号をnとしたとき、外形データの基準位置を(x=0、y≧0)とする。この位置は、等間隔に配置した点群座標の順番とは無関係である。そこで、(csn
i)の点群から外形データの基準位置となる座標outline
n、0を求める。この場合、先ず(csn
0.x、csn
0.y)を起点とし、点間位置Bをスプライン関数で補間しつつ、座標(x、y)が(x=0、y≧0)となる点を検出する。また、このとき、xには±1μm程度の誤差範囲を設け、この範囲内に入れば基準位置になったと判断する。そして、t区間内でtを例えば0.001ずつ増加させながら、逐次計算を行い、位置を算出する。
(2)基準位置の座標outline
n、0が求められたら、この点におけるdx、dyを求め、Θbを算出する。更に、この基準位置座標を次の計算の起点とする。
(3)基準位置の座標を起点とし、点群データで示される閉曲線をN
dotnumで分割して、各点における座標及びΘbを求める。
(4)全ての点におけるoutline
n、j座標が計算されれば、終了とする。
(5)これを全ての断面について行う。
【0083】
図6(a)、(b)は、本例の処理により得られる外形データの一例を示す図であり、上記の計算を経て得られる外形データの一例を示す。
図6(a)は、1断面分の外径データの一例を示す。
図6(a)において、左側の図は、断面における全ての点を示す。また、右側の図は、断面の一部を拡大して示す図であり、左側の図中で長方形で囲んだ部分を拡大して示す。
図6(b)は、全ての断面について計算された結果の一例を示す。
【0084】
尚、図中に示すように、本例の処理においては、外形データの基準位置における座標がoutline
n、0になり、その左側の座標がoutline
n、Ndotnum−1になる。また、基準位置の右側が、outline
n、1になる。また、
図6(b)においては、模式的に点群を示している。また、この点群を平面的に見れば、外周長の変化に伴い歪んだメッシュ状となる。
【0085】
以上のようにして、本例の処理においては、外径データを求める。得られた外径データは、ワークの表面における印刷可能な範囲について、主走査方向には指定解像度で、副走査方向には等間隔でマッピングしたものになる。また、外径データが求められた後には、外径データに基づいて実際の画像を印刷するためのパス生成等の処理を更に行う。また、より具体的に、本例の処理においては、外径データを求める処理(外形データの取得)に続いて、印刷パス座標の計算を行う。
【0086】
図7は、印刷パス座標の計算に関連する処理について説明をする図である。本例の処理においては、ワークに印刷する印刷画像は、x、y平面の2次元画像(size
x、size
y)で定義されているとする。また、この場合、画像の左上の画素座標を(0、0)とする。そして、以下においては、このような画像を外形データで表現されるワーク上に印刷する場合の印刷パス座標の計算(印刷パスデータの生成)の仕方の例について説明をする。
【0087】
また、本例の処理においては、(size
x、size
y)の2次元画像に対し、インタレース処理を行うものとする。この場合、プリンタヘッドのノズル列におけるノズル間隔(ノズルピッチ)をnozzle_dpi(dpi)とし、印刷解像度をdpi(dpi)として印刷をすると、これらに対応して、印刷のパス数N
pass_numberが定義される。また、印刷画像を印刷するために必要な主走査動作の回数(全スキャンに必要なスキャン数)N
scanは、印刷画像におけるsize
yと、パス数から求められる。また、各スキャン番号n
scanについて、使用ノズルの先頭番号を示すstart_nozzle[n
scan]、使用ノズルの最終番号end_nozzle[n
scan]、使用ノズル数used_nozzle[n
scan]、印刷画像の先頭y方向ドット番号start_dot[n
scan]、最終y方向ドット番号end_dot[n
scan]が予め求められているとする。
【0088】
図7(a)は、主走査動作の回数(スキャン回数)と画像のドット位置との関係の一例を示す図であり、各スキャン毎の画像のドット位置について、始点及び最終点の関係の一例を示す。また、図中において、y+方向は、画像のyドット数を示す。
【0089】
図示した場合において、最初の主走査動作(スキャン0)では、start_dot[0]からend_dot[0]の範囲のノズルを駆動し、インクの吐出(印刷、印字)を行う。また、次の回の主走査動作(スキャン1)ではstart_dot[1]からend_dot[1]の範囲のノズルを駆動して、インクの吐出を行う。また、各パス毎に、画像のsize_xドット分だけ始点及び終点座標位置dots
n、j、dote
n、jを求め、これを印刷パス座標(印刷座標データ)とする。この場合、nはスキャン番号、jは印刷画像のxドット番号に対応する。また、dots及びdote座標の要素は、(x、y、z、Θb)である。
【0090】
図7(b)、(c)は、始点座標dots
n、j及び終点座標dote
n、jを求める方法(始点及び終点座標計算)の一例を示す。本例の処理においては、先ず、スキャン0における各点座標を求める。例えば、
図7(b)に示すように、距離計算の起点starting_pointについて、印刷画像のy=0をoutline
0、jに対応させる場合、スキャン番号がN
passnumber未満であれば、起点座標は、outline
0、jになる。また、この場合、ワーク表面に対して画像を貼り付ける位置の定義によっては、必ずしもj=dot
xである必要はない。
【0091】
また、本例の処理においては、更に、起点starting_pointからend_dot間の距離L
doteを求める。この距離は、L
dote=end_dot
0/dpi*25.4で求められる。そして、次に、起点starting_pointからstart_dot間の距離L
dotsを求める。この距離は、L
dots=start_dot
0/dpi*25.4で求められる。
【0092】
また、起点starting_pointから外形データoutlineに基づき、dote及びdotsの座標を求める。また、座標の求め方について、doteを例にとれば、先ず、起点starting_pointからL
doteを含むoutlineの区間n、n+1を求める。この際、starting_pointとoutline座標間を直線近似しながら、L
doteを含む区間を求める。次に、この区間に対し、媒介変数tを用いて、起点からの距離がL
doteとなる位置の座標値について、以下の式4を満たすようなtを求めればよい。また、この場合、Θbも線形で変化するものとすれば、2点のΘbの差分及びtの値からΘbを求める。
【0093】
(式4)
x=(outline.x
n+1−outline.x
n)t+outline.x
n
y=(outline.y
n+1−outline.y
n)t+outline.y
n
z=(outline.z
n+1−outline.z
n)t+outline.z
n
L=√((x−starting_point.x)
2+
(y−starting_point.y)
2+
(z−starting_point.z)
2)
【0094】
また、この場合、起点をoutline
0とする計算について、走査番号がpass_number−1になるまで繰り返す。これは最初のパス番号(pass番号)までの起点は、outline
0を起点とするためである。
【0095】
また、主走査動作の回数(主走査回数)がpass_number以上の場合、起点をoutline
0としたままでは、ワークの沿面を平面とみなすことになる。そのため、主走査回数がpass_numberを超えた場合、ワーク表面に対して沿面距離を考慮する必要がある。そして、本例の処理においては、この場合、計算方法を若干改変する。より具体的には、この場合、起点座標starting_pointをdote
n−Npass_numberとする。この座標は、これまでの主走査動作(スキャン)で所定のパス数分だけ印刷がされ、画像が完成している座標である。そして、ここを起点とすれば、最終点までの距離L
doteは、次の式5で求められる。また、起点starting_pointからstart_dot間の距離Ldotsは、次の式6で求められる。また、これらの計算を1スキャン毎にsize_x分計算すれば、1スキャンに必要な印刷座標をワークに設定した座標系であるワーク座標系にて求めることができる。
【0096】
(式5)
L
dote=(end_dot
n−start_dot[n−pass_number])/dpi*25.4
(式6)
L
dots=(start_dot
n−start_dot[n−pass_number])/dpi*25.4
【0097】
以上のように、本例の処理によれば、外形データに基づき、印刷に必要な印刷パス座標(印刷座標データ)を取得することができる。また、この場合、印刷パス座標は、使用するノズルの先頭及び最終位置における3D空間上の座標点と、各点における法線方向を持つデータになる。
【0098】
尚、印刷パス座標を計算する処理について、より一般化して考えた場合、例えば、ワーク表面に印刷画像を貼り付けるように対応付ける処理と考えることもできる。また、この処理において、理想的には、例えば、先ず、2次元の印刷画像を平面上に所定解像度(dpi)で印刷する動作を想定して、実行する各回の主走査動作(スキャン)について、使用ノズルの範囲と、副走査方向におけるノズル列の位置を予め算出する。また、立体的なワークに対する実際の印刷動作に先立ち、ワークの被印刷領域の形状に合わせて、各回の主走査動作の対象となるワーク表面上の領域を決定する。この場合、ワークの被印刷領域の形状に合わせるとは、被印刷領域の表面形状に合わせて画像を変形させた状態を想定することである。また、画像の変形は、主走査方向及び副走査方向の画素をワーク断面の周長や曲率に応じて最適な画像が構成されるよう変化させることで行う。
【0099】
また、この場合、ワーク形状に合わせて設定した各回の主走査動作について、使用するノズル範囲の両端のノズルに着目して、画素を形成する位置である印刷パス座標(インク滴を着弾させたい位置、始点及び終点座標位置dots
n、j、dote
n、j)を算出する。この場合、各回の主走査動作(パス)において両端のノズルで形成する全ての画素(主走査方向へ並ぶ画素)について、位置を算出する。そのため、各スキャン毎(パス毎)に、画像の主走査方向サイズ分(画素数分、size_xドット分)の位置を算出することになる。
【0100】
また、本例の処理においては、印刷パス座標の計算に続いて、更に、機械座標の生成の処理を行う。この処理は、印刷パス座標(印刷座標データ)を機械座標に変換して、主走査動作及び副走査動作からなる印刷パスのデータを生成し、更に加減速情報を付加し、3次元プリンタ10(
図1参照)における機械座標系での走査座標データとする処理である。
【0101】
図8〜12は、機械座標の生成に関連する処理について説明をする図である。上記においては、ワーク座標系における印刷座標の算出法について、説明をした。しかし、3次元プリンタにより印刷の動作の制御においては、装置での動作を定義するために、3次元プリンタに対して設定された座標系である機械座標系を用いる必要がある。そのため、3次元プリンタで実際に印刷を行うためには、ワーク座標系で求められた印刷座標を機械座標系に変換する必要がある。
【0102】
そこで、以下、ワーク座標系から機械座標系への変換の仕方の例について、説明をする。以下において説明をする変換は、上記において説明をしたdots
n、j、dote
n、jにおける法線角度の平均値等に基づいて3次元プリンタ10の各軸を制御するための変換の一例である。
【0103】
上記においても説明をしたように、本例の処理を行って印刷を行う3次元プリンタの機械座標系は、X、Y、Zの直動3軸と、A、B、Cの回転3軸の6軸から構成される。また、以下においては、この座標系を単に機械座標系と呼ぶ。また、機械座標系における各軸の位置は、ワーク表面に印刷する際のノズル列位置から決定される。
【0104】
尚、各軸の座標を求める際に、ワーク座標の取り扱いはx、y、zで示す。そして、この座標は、機械座標系のX、Y、Z、と一致していない。これらの関係については、後に説明する。また、ワーク座標を回転させるΘa、Θb、Θc軸は、機械座標系のA、B、C軸に対応する。また、x、y、zの方向は、A、B、C軸の回転とは独立してそのまま維持される。
【0105】
図8(a)は、ワーク形状と印刷ノズル列との関係の一例を示す図であり、ワーク表面に印刷すべきノズル列の状態を模式的に示す。この場合、印刷ノズル列とは、例えば、ワーク表面に印刷を行うべきノズル列のことである。また、印刷ノズル列は、例えば、プリンタヘッドのノズル列によりインクを着弾すべき位置として設定される着弾点(印刷対象点)の並びのことと考えることもできる。
【0106】
ここで、図において、ワーク形状は、z方向に等間隔で描いた断面線で表示している。また、このワーク形状の基準線(Ref.Line)を、ワーク上の印刷開始位置とする。また、この基準線から距離L離れた点から直線状に配置されたノズル列で印刷を行う場合、スキャン番号をn、印刷ドット番号をjとすれば、ノズルの始点位置dots
n、j及び終点位置dote
n、jがすでに求められている。
【0107】
また、この場合、このノズル列の始点座標及び終点座標に基づき、A、B、C各軸の座標回転を行う。また、本例の処理において、算出の手順は、B軸回転、C軸回転、A軸回転の順番で行う。そして、その後、定まったx、y、z座標位置から機械座標系のX、Y、Zを定義する。また、このワーク表面とノズル列位置との関係を主走査方向に繰り返し求めて、一連の主走査動作を実現する。また、これらの具体的な算出は、以下のように行う。
【0108】
図8(b)は、B軸回転角度の算出法について説明をする図であり、ワークをxy平面に投影した状態の一例を示す。上記のように、座標回転は、先ずB軸より行う。また、本例の処理において、B軸回転は、ノズル列の鉛直方向とワーク表面の法線方向を一致させるための操作である。より具体的に、B軸回転においては、ノズルの始点位置dots
n、j及び終点位置dote
n、jの2点で結ばれる直線において、先ず、始点位置及び終点位置における法線成分とy軸とのなす角Θ
Bを求める。この場合、すでに始点及び終点における法線角度dots
n、j.Θ
B、dote
n、jΘ
Bは求められている。そこで、これらの平均値Θ
B=(dots
n、jΘ
B+dote
n、jΘ
B)/2をこのノズル列に対する法線角度として採用する。
【0109】
尚、始点及び終点における法線角度のうちの特定のどちらかを採用せずに、2点の平均とするのは、始点及び終点位置における法線方向が異なる可能性があるためである。また、B軸角度の指定範囲は、0≦Θ
B<360(2π)の範囲とする。また、その方向は、y+軸を0(deg)として、反時計回りを正とする。
【0110】
図8(c)は、B軸回転後の状態の一例を示す図であり、B軸回転後のXY平面に投影したワーク形状とノズル列との位置関係を示す。B軸を回転させた結果として、ノズル列の平均的な法線方向がy軸と一致する。また、以下においては、B軸回りに回転させた結果として得られた始点及び終点座標(B軸回転後のノズル列の始点及び終点座標)を(x
B0、y
B0、z
B0)、(x
B1、y
B1、z
B1)とする。また、上記のように、本例の処理では、B軸回転に続いて、C軸回転についての算出を行う。
【0111】
図9(a)は、C軸回転前の状態の一例を示す図であり、B軸回転後のxz平面に投影したワーク及びノズル列の状態を示す。本例の処理において、C軸は、xz平面においてy軸を中心として回転する軸(xz平面に対してy軸を回転中心とする軸)である。
【0112】
また、より具体的に、C軸回転においては、xz平面上におけるノズル列の始点及び終点座標(x
B0、y
B0、z
B0)、(x
B1、y
B1、z
B1)から、C軸回転角Θ
Cについて、Θ
C=arccos(Δz/√(Δx
2+Δz
2))=arccos(z
b1−z
b0)/√((x
b1−x
b0)
2+(z
b1−z
b0)
2))で求める。また、その回転方向は、図中に示すように、反時計回りを正とする。また、Θ
Cの方向は、Δxの符号にて判定する。
【0113】
図9(b)は、C軸回転後の状態の一例を示す図である。C軸回転後において、印刷ノズル列は、z軸と平行になる。また、その結果として、機構的なX軸(形状上ではz軸)と平行に設置されているプリンタヘッドのノズル列と一致させることができる。また、以下においては、C軸回転後のノズル列の始点及び終点座標を(x
C0、y
C0、z
C0)、(x
C1、y
C1、z
C1)とする。また、上記のように、本例の処理では、C軸回転に続いて、A軸回転についての算出を行う。
【0114】
図10(a)は、A軸回転前の状態の一例を示す図であり、C軸回転後のxz平面に投影したワーク及びノズル列の状態を示す。本例の処理において、A軸は、yz平面においてx軸を中心として回転する軸である。
【0115】
また、より具体的に、A軸回転においては、A軸回転角Θ
Aについて、Θ
A=arccos(Δz/√(Δy
2+Δz
2))=arccos((z
C1−z
C0)/√((y
C1−y
C0)
2+(z
C1−z
C0)
2)))で求める。また、その回転方向は、図中に示すように、反時計回りを正とする。また、Θ
Aの方向は、Δyの符号にて判定する。
【0116】
図10(b)は、A軸回転後の状態の一例を示す図である。A軸回転後において、印刷ノズル列は、z軸と平行になる。また、以下においては、A軸回転後のノズル列(印刷ノズル列)の始点及び終点座標を(x
A0、y
A0、z
A0)、(x
A1、y
A1、z
A1)とする。
【0117】
ここで、実際の3次元プリンタの構成においては、ABC軸の位置関係について、所定のオフセットが生じる場合がある。この場合、例えば、ABC軸におけるオフセットを更に考慮して、これまでに算出されたワーク座標系を機械座標に変換することが考えられる。
図11(a)は、ABC軸におけるオフセットの一例を示す図である。
【0118】
図11(b)は、機械座標系とワーク座標系との関係の一例を示す。
図11(b)において、左側の図は、機械座標系におけるYZ平面を示す。また、右側の図は、機械座標系におけるXZ平面を示す。また、本例の処理においては、印刷ノズル列の終点座標x
A1、y
A1、z
A1をx
P、y
P、z
Pとし、この座標に対し、プリンタヘッドのノズル中心について、YZ平面においてワーク座標のyz平面と一致したところを基準点(Yref=0)として定義する。そのため、ノズル中心を印刷ノズル列と一致させるためには、Y=Yref+x
Pの位置に移動させればよい。
【0119】
また、X軸について考えると、プリンタヘッドにおけるノズルの基準位置をワーク座標系のz
Pと一致させればよい。そして、この場合、すでにz
PはABC軸の回転機構におけるオフセット分及びワーク取り付け治具のオフセットを考慮した上で計算されているため、X=z
Pとすればよい。また、Z軸については、Z基準面からy
Pとプリンタヘッドとワーク表面のギャップ距離を考慮して決めればよい。また、この場合、Zref点がある値で定められていれば、Z=Zref−(GAP+y
P)で求めることができる。また、以上のように、算出されたワーク座標系のX、Y、Z及びA、B、C座標の各位置に、それぞれの駆動軸を制御して移動すれば、目標とするワーク上の印刷ノズル列直上にヘッドが移動して印刷を施すことができる。
【0120】
図12は、機械座標の生成に関連する処理についての計算結果の一例を示す図であり、以上のように計算された結果の一例に関し、上記の計算により算出されるX、Y、Z、A、B、C座標の変化について、1回の主走査動作分(1スキャン分)を示す。図において、横軸は、印刷画像のx方向におけるドット番号を示す。また、XYZ軸について、縦軸は、距離(mm)を示す。また、ABC軸について、縦軸は、角度(deg)を示す。ワーク表面に対して印刷を施す場合、この軸位置に移動しつつ、印刷画像を示す印刷データに基づき、ノズルから必要なインクを吐出すればよい。
【0121】
上記のようにすれば、機械座標の生成の処理を適切に行うことができる。また、機械座標の生成の処理について、より一般化して考えた場合、例えば、印刷パス座標に合わせてワークの位置を調整するための機械座標を算出する工程であると考えることもできる。この場合、ワークの位置の調整としては、例えば、スキャン番号n、印刷ドット番号j毎に、ワーク表面の法線方向をできるだけ鉛直方向(インク滴の吐出方向)に合わせるように、ワークの位置(向き)を調整する。また、この場合、より具体的には、使用ノズルの両端(始点位置、終点位置)に対する法線角度の平均値を使って、回転角度の調整を行う。
【0122】
続いて、画像補正の処理について、説明をする。上記においても説明をしたように、3次元プリンタで立体的なワークに対して印刷を行う場合、ノズル列の構成上の制約により、印刷される画像の品質の低下が問題になる場合がある。
【0123】
より具体的に、上記においては、3Dオブジェクトであるワーク上に印刷を施すための座標生成法について説明をした。また、この座標生成においては、直線で構成されるプリンタヘッドのノズル列について、ワーク上の2点を結ぶ形で算出した。一方で、ワークの周長は、ワーク座標系のz方向に対して変化し得る。この点について、例えばこの変化が一様である場合、上記において説明をした機械座標データを用いて印刷を行えば、実効dpiの変化による濃度補正を行うのみで、適切な印刷結果を得ることができる。しかし、z方向に対する周長の変化が一様ではない場合、実効dpiの変化に対応する濃度補正のみでは対応できない着弾ズレが発生する場合がある。
【0124】
これに対し、本願の発明者は、ノズル列の構成上の制約の影響に応じた補正を行うことで、画質への影響を抑え得ることを見出した。より具体的には、ノズル列における各ノズルからインクを吐出すべき位置である印刷対象点を印刷対象物の表面に設定する処理において、ノズル列においてノズルが直線状に並んでいるという条件を限定しないで算出した着弾点である理想着弾点と、ノズル列において複数のノズルが直線状に並んでいるという条件の下で算出した着弾点である実着弾点とをそれぞれ算出し、両者の位置のズレ量に応じた補正を行って、印刷対象点を設定することを考えた。また、これにより、より高い品質の印刷を行い得ることを見出した。
【0125】
そこで、以下においては、着弾ズレが発生するメカニズムと、これを補正するための画像補正について、説明をする。
図13〜15は、画像補正の処理について説明をする図である。
【0126】
図13(a)は、周長によるドット間距離の変化の一例を示す図であり、ドット間隔の変化を印刷画像のy成分に関して示す。図において、縦軸はドット間隔を示す。また、縦軸は、画像のy方向におけるドット番号に対応する値を示す。また、図示したデータは、印刷の解像度を600dpiとして、上記において説明をしたワーク形状表面に印刷する場合を示している。また、この場合、図中に示すように、印刷画像のy方向に対して、ドット間隔が非線形に変化している。そして、この非線形差は、ワークの周長が一様に変化していないことを示している。また、このことは、外形データoutlineで求められたメッシュがドット間隔の一様性という面から見ると歪むことを示している。
【0127】
図13(b)は、実着弾点(actual dot line)及び理想着弾点(target dot line)の変化の一例を示す。この場合、実着弾点及び理想着弾点、とは、いずれも、使用するノズル範囲の両端以外のノズルにより形成すべき画素の位置について、外形データを用いた補間により算出した座標である。また、実着弾点とは、直線状のノズル列におけるノズルから吐出可能なインクの着弾点(ワーク上の着弾点)のことである。また、より具体的に、本例の処理において、実着弾点は、印刷座標におけるdots、dote間を直線補間し、使用ノズル位置より算出した点群座標である。また、理想着弾点とは、ノズル列におけるノズルから吐出するインクの理想的な着弾点のことである。また、より具体的に、本例の処理において、理想着弾点は、ワークの各断面に対応する外周曲線に沿って着弾点が等間隔に並ぶように算出した点群座標である。理想着弾点は、yドット毎のインクの着弾点がx方向に対して外形データに沿って等間隔になるように算出された点群座標であってよい。
【0128】
上記のように、周長の変化によりドット間距離がz方向に対して変化し、その変化の仕方が一様でない場合、ワーク表面で理想着弾点は湾曲する。そのため、これをdots、dote間を直線で補間したノズル列で印刷すれば、着弾誤差が発生することになる。この場合、直線で補間を行うとは、より具体的に、副走査動作での送り量に対応して使用するノズル範囲が定められるという条件の下で、副走査動作に対応して求められるdots、doteから算出される直線状のノズル列の位置を補間し、中間のノズルの実着弾点を求めることである。
【0129】
図13(c)は、着弾誤差発生のメカニズムを模式的に示す。
図13(c)において、左側の図は、ワーク座標系におけるxz平面を示す。右側の図は、ワーク座標系におけるxy平面を示す。また、図中示す点群は、印刷座標のdots、dote間を外形データ(outlineデータ)に沿って補間して描かれる理想着弾点(target dot line)である。
【0130】
ここで、例えば図中にscan1として示した主走査動作において、dots(1)、dote(1)間を直線に結び、この直線状にインクを吐出するものとすれば、理想着弾点と実着弾点(actual dot line)はほぼ一致する。一方、図中にscan2として示した主走査動作は、dots(2)、dote(2)間でより多くのノズルを使用して印刷する場合である。この場合、より長い直線でdots(2)、dote(2)間を近似するため、実着弾点と理想着弾点の距離Δxは、scan1の場合と比較して増加する。
【0131】
これに対し、このような影響を低減させるためには、例えば、各回の主走査動作での使用ノズルを少なくし、繰り返し印刷を行えば改善できる。しかし、このような方法は、印刷時間が長くなるため、実用的ではない。そのため、他の方法で影響を低減することが望ましい。
【0132】
また、着弾誤差は、dots、dote近傍では小さく、それ以外の領域では大きくなる。
図14(a)は、印刷位置における着弾誤差(ドット着弾誤差)の変化の一例を示す。図において、横軸は、画像のy方向のドット番号(ワーク座標系のz方向)を示す。縦軸は、誤差量を示す。図示したように、印刷座標におけるdots、doteの近傍では着弾誤差が小さくなることがわかる。また、それ以外の場所では、走査毎(主走査動作毎)に周期的に着弾誤差の増加と減少を繰り返している。
【0133】
図14(b)は、このような着弾誤差が生じている状態で印刷を行った結果の一例を示す図であり、以下において説明を行う画像補正を行わずに印刷を行った場合についてシミュレーションにより得られた印刷結果を示す。この印刷結果において、画像中央部、すなわち理想着弾点の湾曲が少ない部分については、良好な印刷結果を得られた。しかし、両端に行くほど湾曲の影響が大きくなる。また、副走査動作を行う毎に周期的に現れる主走査方向への着弾ズレも生じている。尚、画面の上部及び下部においては、使用ノズル数が減少するため、中央部付近と比較して、着弾誤差が小さくなっている。
【0134】
これに対し、本例の処理においては、上記においても説明をしたように、画像補正の処理を行う。以下、本例の処理において行う画像補正について、更に詳しく説明をする。
【0135】
上記においても説明をしたように、着弾誤差(距離)は、理想着弾点と実着弾点間との間の距離である。また、より具体的に、例えば、
図13(c)の左側に示した図面において、xz平面上で算出される着弾誤差(距離)は、Δxである。一方で、
図13(c)の右側に示したxy平面の図面で見ると、実着弾点は、必ずしもワーク表面で計算されていない。そのため、この場合、ワーク表面に着弾する位置を実着弾点とし、その場合の理想着弾点との距離ΔLが実際の着弾誤差になるといえる。また、この計算は、直線で補間して求められた実着弾点(actual dot)から垂直方向に外形データとの交点を求め、これを実際の実着弾点(corrected actual dot)としてΔLを算出する。また、このような計算を行うことにより、各ドットの着弾誤差(距離)をより適切に算出できる。
【0136】
尚、図中の外形データ(outline)は、必ずしも実着弾点の断面に存在しない。そのため、このoutlineは、実着弾点のz座標を断面とするように補間して求めた点群である。また、上記の計算方法は、実用上、例えば、B軸の回転のみを行った結果から求めることができる。また、より厳密に考える場合、例えば、AC軸の回転も含めて求めることが好ましい。
【0137】
また、このようにして着弾誤差を算出することにより、着弾誤差の影響を打ち消すように画像補正を行うことが可能になる。着弾誤差の影響を打ち消すように画像補正を行うとは、例えば、印刷画像について、実着弾点に対応する画素情報を、実着弾点に対応する元画像の画素近傍の情報から算出することである。
【0138】
図15(a)は、上記のように計算された着弾誤差に基づいて画像を補正した結果の一例を示す。
図15(a)において、左側の図は、補正前の画像を示す。また、右側の図は、補正後の画像を示す。図示した場合において、画像補正は、注目画素を着弾誤差距離だけ離れた補正画素の色情報に変換する方法で行った。
【0139】
尚、より具体的な画像補正の処理において、補正前の元画像が等間隔のドット間隔(dpi)で定義されているのに対し、実際に印刷対象となるワーク状では、周長によりドット間隔(dpi)が変化している。そのため、補正画素の位置については、着弾誤差と実際のドット間隔(dpi)の値に基づいて求める必要がある。また、補正画素は、必ずしも実画素と一致した場所に位置しない。そのため、図示した場合においては、画像のx方向で補正画素をはさむ2つの画素位置を求め、線形計算で補正画像の色情報を補間して求めた。より厳密に補正を行う場合には、例えば、ワーク座標系のz方向や画像のy方向について、すなわち、印刷動作における主走査方向だけでなく副走査方向等にも補正を行うことが好ましい。
【0140】
また、画像補正の結果を見ると、
図14(b)に示した着弾誤差の傾向と一致するように、y方向の画像中央部で補正量が増加し、上下両端で補正量が少なくなっていることがわかる。また、本図においては全ての印刷情報を表示していないが、着弾誤差が大きくなる理想着弾点付近のような、湾曲している箇所でも補正が強くなる結果が確認できる。
【0141】
図15(b)は、補正された画像を用いて印刷を行った結果を示す図であり、上記の画像補正を行って印刷を行った場合についてシミュレーションにより得られた印刷結果を示す。図からわかるように、全体に着弾誤差は補正され、良好な印刷結果を得ることができる。
【0142】
以上のような画像補正を行うことで、立体的なワークに対し、高品質な印刷をより適切に行うことができる。続いて、以下、本例の処理において行う画像補正について、補足説明等を行う。
【0143】
本例の処理で行う画像補正は、例えば、印刷パス座標(印刷座標データ)から実着弾点と理想着弾点とを求め、その着弾距離の差分に応じて元画像を補正する処理であると考えることができる。また、この画像補正については、例えば、ワークの周長長さの変化が一様でないことで生じる着弾点のズレを補正する処理であると考えることもできる。
【0144】
より具体的に、上記においても説明をしたように、z方向に対するワークの周長の長さの変化が一様でない場合、ドット間隔の一様性という観点から見ると、外径データで求められたメッシュ(画素の並び方)は、平面的に見ると湾曲する。そして、この湾曲した点群に対し、複数のノズルが直線状に配置されたノズル列を有するインクジェットヘッドを用いて印刷を行うと、着弾ズレが発生することになる。また、このような着弾ズレが発生する理由については、例えば、直線状のノズル列を用いる場合に、両端以外の中間のノズルでインク滴を着弾させるべき位置について、例えば実着弾点を算出する場合のように、直線による補間で算出するためであると考えることができる。この場合、ワークの周長の変化が一様でないと、ノズル列の各ノズル(両端以外のノズルも含めた全ての使用ノズル)に対応する理想着弾点の並び方が湾曲することになる。また、その結果、両者の間に生じる差により、着弾ズレ(着弾誤差)が発生することになる。
【0145】
これに対し、本例の処理においては、上記のように、理想着弾点と実着弾点との間に生じるズレに合わせて印刷画像を補正することで、着弾ズレの影響を抑えることが可能になる。また、これにより、ワークの周長の変化が一様でない場合にも、高い精度の高品質な印刷をより適切に行うことができる。
【0146】
また、本例の処理における画像処理は、例えば、3次元プリンタ10(
図1参照)において、制御装置24(
図1参照)により行うことが考えられる。この場合、制御装置24は、例えば、プリント制御装置として動作して、各ノズルからインクを吐出すべき位置である印刷対象点を印刷対象物50の表面に設定する処理を行う。また、この処理として、少なくとも、理想着弾点算出処理、実着弾点算出処理、及び印刷対象点設定処理を行う。
【0147】
この場合、理想着弾点算出処理は、理想着弾点を算出する処理である。また、理想着弾点算出処理において、制御装置24は、例えば、ノズル列において複数のノズルが直線状に並んでいるという条件を限定せずに、印刷対象物であるワークの表面の形状に基づいて理想着弾点を算出する。また、より具体的に、
図1等に関連して説明をしたように、本例の3次元プリンタ10において、ワークである印刷対象物50(
図1参照)は、対象物保持装置18(
図1参照)により、回転可能に保持されている。そして、この構成において、例えば、この回転の回転軸と垂直な平面とワークの表面とが交わる位置に沿ってワークの表面を一周する線(曲線等)を断面外周線と定義した場合、理想着弾点算出処理において、制御装置24は、断面外周線に沿って並ぶ複数の理想着弾点について、断面外周線に沿って等間隔に並ぶように算出する。
【0148】
また、実着弾点算出処理は、実着弾点を算出する処理である。実着弾点算出処理において、制御装置24は、例えば、ノズル列において複数のノズルが直線状に並んでいるという条件の下で、ワークの表面の形状に基づいて実着弾点を算出する。また、印刷対象点設定処理は、ワークの表面に印刷対象点を設定する処理である。印刷対象点設定処理において、制御装置24は、ワークの表面における各位置に対応する理想着弾点及び実着弾点に基づいて、各位置に対する印刷対象点を設定する。また、より具体的に、この処理において、制御装置24は、ワークの表面における同じ位置に対応する理想着弾点と実着弾点との間で位置がずれている場合に、位置のズレ量に応じた補正を行って、印刷対象点を設定する。
【0149】
このように構成すれば、例えば、理想着弾点と実着弾点との間に位置のズレが生じる場合にも、位置のズレ量の応じた補正を適切に行うことができる。また、これにより、例えばノズル列の構成の影響で印刷される画像の品質に影響が生じることを適切に防ぎ、高い品質の印刷を行うことができる。
【0150】
尚、理想着弾点と実着弾点との間で位置がずれている場合とは、例えば、求められる印刷の精度等に応じて予め設定される許容量を超えて両者の位置がずれている場合のことであってよい。また、理想着弾点と実着弾点との間で位置がずれていない場合、実着弾点又は理想着弾点のいずれかを印刷対象点に設定してよい。
【0151】
また、本例の処理においては、この補正について、より具体的に、元画像である印刷画像を補正することで行う。この場合、印刷対象点設定処理において、制御装置24は、例えば、理想着弾点と実着弾点との間の位置のズレ量に応じて印刷画像を補正した補正画像を生成する。この補正については、例えば、印刷対象点を示すメッシュ状のデータについて、ズレ量に合わせてメッシュを歪ませる処理と考えることもできる。また、印刷の実行時において、制御装置24は、この補正画像を印刷するようにプリンタヘッド14(
図1参照)からのインクの吐出の制御を行う。
【0152】
また、印刷対象点設定処理において、理想着弾点と実着弾点との間で位置がずれている場合に補正に用いるズレ量としては、ワークの表面に沿った理想着弾点と実着弾点との間の距離を用いることが好ましい。このように構成すれば、例えば、着弾ズレの影響をより確実に低減することができる。また、補正に用いるズレ量としては、例えば、ワークの表面に沿わずに理想着弾点と実着弾点とを直線で結んだ距離を用いること等も考えられる。このように構成すれば、例えば、より簡易な計算で補正を行うことができる。
【0153】
また、印刷対象点設定処理において、制御装置24は、例えば、ノズル列における両端のノズルを結ぶ直線に対してプリンタヘッド14側から見た場合に重なるように印刷対象物の表面上を延伸する線であるノズル列対応線を設定する。そして、ノズル列における両端以外のノズルから吐出するインクの着弾点がノズル列対応線上になるように補正を行って、印刷対象点を設定する。
【0154】
また、3次元プリンタ10による印刷の動作時には、例えば、印刷画像やワークの形状等に応じて、プリンタヘッド14のノズル列における一部のノズルのみを使用することも考えられる。この場合、例えば、使用するノズルの並びを実質的なノズル列と考え、上記の各処理を行ってよい。
【0155】
また、上記においては、主に、印刷画像を補正することで着弾ズレの影響を抑える方法について、説明をした。しかし、着弾ズレの影響を抑えるための補正としては、印刷画像の補正に限らず、例えば、印刷時にワークに対して相対的にプリンタヘッド14を移動させる移動量について補正を行うこと等も考えられる。この場合、印刷対象点設定処理において、制御装置24は、例えば、ワークに対してプリンタヘッド14を相対移動させる制御に対する補正量をズレ量に応じて算出する。また、この場合、制御装置24による相対移動制御装置としての制御において、印刷対象点設定処理により算出された補正量に応じた動作の補正を行いつつ、プリンタヘッド14の相対移動の制御を行う。このように構成した場合も、着弾ズレの影響を適切に抑えることができる。