近年、電子機器の小型化や高密度実装化の要求に伴い、複数のプリント配線基板を重ね合わせた多層プリント配線基板が提供されるようになってきている。このような多層プリント配線基板では、上下に積層されたプリント配線基板のそれぞれに形成された導電層間を電気的に接続するため、これらの基板に、スルーホールあるいはビアホールと呼ばれる穴が形成される。そして、これらの穴の内部に導電膜を形成することにより、各プリント配線基板の導電層間の接続が行われる。
プリント配線基板に形成される穴は、最近のプリント配線基板の小型化や高機能化に伴って小型化し、直径0.1mm以下になってきている。このような小径の穴を精度よく形成するために、パルス発振型のレーザビームが用いられている。
従来のパルス発振型レーザを用いたレーザ穴開け機の一例の構成を図1(全体構成)及び図2(詳細構成)に示す。このレーザ穴開け機10は、パルス状レーザビームを発生するレーザ発振器12と、該レーザ発振器12により発生されたレーザビーム13の出力を、加工対象であるプリント配線基板(ワークとも称する)6の二つの走査エリア(加工エリア)8L、8Rに導いて、左右同時加工を可能とするために2等分するビームスプリッタ14と、該ビームスプリッタ14により反射された左側のレーザビーム13Lを、走査エリア8L内でX軸方向(図の左右方向)及びY軸方向(図の前後方向)に走査するための左ガルバノユニット(ガルバノシステム又は単にユニットとも称する)22L(図2参照)と、前記ビームスプリッタ14を通過した後、ミラー16で反射された右側のレーザビーム13Rを、右側の走査エリア8R内で同じくX軸方向及びY軸方向に走査するための右ガルバノユニット22R(図2参照)と、前記プリント配線基板8をX軸方向に平行移動するためのXステージ40X、及び、該Xステージ40X上で前記プリント配線基板8をY軸方向に移動するためのYステージ40Yを含むXYステージ40(図2参照)とを主に備えている。
前記左ガルバノユニット22L及び右ガルバノユニット22Rには、図2に詳細に示す如く、レーザビーム13L、13Rをそれぞれ反射するためのミラー24L、24Rと、該ミラー24L、24Rで反射されたレーザビームを、例えばY軸方向に走査するための第1ガルバノミラー26L、26Rと、該第1ガルバノミラー26L、26Rを駆動するための第1ガルバノスキャナ(単に第1スキャナとも称する)28L、28Rと、前記第1ガルバノミラー26L、26RによってY軸方向に走査されたレーザビームを、更にこれに垂直なX軸方向に走査するための第2ガルバノミラー30L、30Rと、該第2ガルバノミラー30L、30Rを駆動するための第2ガルバノスキャナ(単に第2スキャナとも称する)32L、32Rと、前記第1及び第2ガルバノミラー26L、26R、30L、30RによりX軸方向及びY軸方向に走査されたレーザビームを、プリント配線基板8の表面に対して垂直に偏向し、照射口(図示省略)を介して落とすためのfθレンズ34Lが、それぞれ収容されている。
ここで、例えば前記左ガルバノユニット22Lは固定され、右ガルバノユニット22Rは、例えば、そのX軸方向位置が可変とされ、加工開始前に、ユニット間距離(L軸値と称する)Aが変更可能とされている。
基板6上のビーム照射可能範囲は、fθレンズ34L、34Rの大きさがコストや品質等の点で制限されているため、加工中は完全に位置が固定されるビーム照射口の真下位置を中心とする、例えば40mm×40mmのX軸、Y軸に両辺が平行な矩形範囲(走査エリアと称する)8L、8Rに限定されている。
一方、基板6の大きさは、例えば最大約500mm×600mm程度の大きさであり、一般に走査エリアよりも広い。従って、基板全体の穴開け加工を行うために、基板を支えるXYステージ40をXY平面内で自由な方向に駆動させ、基板6を移動するようにしている。
このようなレーザ穴開け機は、図3に全体の動作を示す如く、
(1)XYステージ40によって基板6を移動する、
(2)左右の走査エリア8L、8R内のレーザ穴開け加工を行う、
という2ステップの繰り返し(ステップアンドリピートと称する)により、基板全体の穴開けを行っている。被加工面では、レーザビームが照射された部分が蒸発し、プリント配線基板6に穴が形成される。ここで、レーザビームは2分されているため、同時に加工される走査エリアは左右に2つあり、同時加工エリア間距離は加工ヘッド間距離に等しい。
又、各走査エリア8L、8R内の加工については、図4に示す如く、左右ユニット22L、22Rの第1、第2スキャナ28L、28R、32L、32Rによる、基板上の穴開け終了点から次の穴開け予定点への移動走査(ビーム走査と称する)が全て完了した段階でレーザビームを照射するという工程を繰り返している。
以下、レーザ穴開け機の各機器が、システムとして如何に作用して穴開け加工を行うかを、図5を参照して説明する。
レーザ穴開け機10を作動するときの装置への入力は、CADデータ50とパソコン上のウィンドウ52から入力されるGUI入力の二つである。
即ち、穴開け位置、基板位置合せ用のアライメントマーク位置、レーザ照射回数(ショット数と称する)等の穴開け条件は、図示しないCAD装置により作成され、ファイルに保存されている。基板の種類は、携帯電話基板、マザーボードのパッケージ基板などが主であり、穴座標の配置が、多くの場合、ある程度の点の集まり(パターン)をいくつか並べた形式になっていることが多い。従って、CADデータ50自体も、穴位置データを全て並べるという方法ではなく、図6に示す如く、パターンの始まりと終わりの信号の間に穴座標を配置し、その後にそのパターンについてのシフト量をパターン数だけ書き並べるという方法を採っているものが多い。
加工担当者は、パソコン上の入力用のウィンドウ52で、加工データファイル名の入力箇所に、フレキシブルディスク又はネットワーク上にあるCADデータ50のデータファイルを選択する。その他、点データのXY交換(点データのX座標とY座標を入れ替えてガルバノユニットの処理領域分割線を、例えば、X軸垂直からY軸垂直に変更するための交換)をするかどうか、右ユニット22Rの位置(L軸値)、CADデータ52のフォーマット(Excellon、SHI、HZフォーマット等)等といった、いくつかの項目に関し、選択式の入力を行う。
全ての入力項目への入力を完了し、加工担当者が入力完了ボタン(入力を中心とした変換ボタン)を押下すると、計画装置60が入力内容を基に計画処理を行い、計画完了信号を返す。するとパソコン画面上に、選択した基板に対する計画結果が目視で確かめられるよう、穴開け位置、左右ユニット処理の区別、走査エリアの配置位置等を視覚的に表現した平面図が現れる。加工者は、平面図を確認し、問題なければ、ウィンドウ上の加工開始ボタンを押下する。この操作により、レーザ穴開け加工機10は作動する。
計画装置60が計画し、作成するデータは、L軸値データA、ステージ停止位置(走査エリア位置)データB、ステージ停止位置の訪問順序データC、各走査エリア内の穴開け位置データD、各走査エリア内の穴開け位置訪問順序データEの5つである。
従来、前記計画装置60は、図7に示すような方法で、CADデータ50とウィンドウ入力値に従って設定を行っていた。
以下、計画装置60が計画し、作成するデータについて、詳細に説明する。
(1)ユニット間距離データA
左右ガルバノユニット22L、22R間の距離(L軸値)Aは、例えば約150〜300mmの範囲で設定可能とされている。パソコンの入力用ウィンドウ52に従って、距離を設定する。このデータは、右ユニット20Rを駆動するときの指令値として使用する。
(2)走査エリア位置データB
各ユニットの作業領域を、例えば格子点間距離が40mmの正方格子状に小分割する。4つの格子点に囲まれた40mm×40mmの正方形すべてを走査エリアとする。
(3)走査エリア位置訪問順序データC
始点は、各ユニットの左下隅の走査エリアとする。ステージが走査エリア間を訪問する軌跡(ステージパスと称する)として、例えば図8に示す如く、X軸方向を蛇の進行方向とする蛇行経路を採ることができる。
(4)各走査エリア内の穴開け位置データD
すべての穴開け位置に対し、例えばラベルを用いて、自分の属する走査エリアを一つ特定する。
(5)各走査エリア内の穴開け位置訪問順序データE
各走査エリアは、例えば、40mm×40mmの正方形であるが、図9に示す如く、その正方形領域を例えばまずX軸について、例えば10等分し、Y軸に平行な直線を、エリアの左端から4mm毎に書き加える。その結果、Y軸方向40mm、X軸方向4mmの短冊状領域が10個できる。各短冊状領域の穴開け位置に対し、Y座標値によるソートをする。但し、隣り合う短冊状領域は、常に、一方が昇順、もう一方が降順並びとする。ある短冊状領域の最後の点の次に訪問する点が、その右隣の短冊状領域の最初の点になるようにする。以上の操作により決定される、走査エリア内の穴開け位置間をビーム照射位置が訪問する軌跡(ガルバノパスと称する)は、全体的には、X軸方向を蛇の進行方向とする蛇行経路を採ることができる。
レーザ穴開け機の各機器は、制御装置62からの指令に従い動作する。
具体的には、前記右ユニット22Rの駆動は、加工開始指令を、制御装置62が受けたタイミングで指令される。移動が完了した時点で移動完了信号を制御装置62に伝える。
又、前記レーザ発振器12によるレーザの発振は、両ユニット22L、22Rの二つの第2スキャナ32L、32Rから出される移動完了信号の両方を、制御装置62が受けたタイミングで指令される。必要なショット数を発振完了した時点で、発振完了信号を制御装置62に返す。その走査エリアの最後に訪問する点であれば、その走査エリア内にある全ての穴開け位置のレーザ穴開け加工処理が終了したという信号を、制御装置62に返す。又、その走査エリアの最後に訪問する点であって、且つ、現在の走査エリアが最後に訪問するエリアであれば、加工終了信号を、パソコン上のウィンドウ52に伝える。
又、前記スキャナ28L、28R、32L、32Rの駆動は、レーザ発振器12から出力されるレーザ発振完了信号、又は、XYステージ40から出力される移動完了信号を、制御装置62が送るタイミングで指令される。次の穴開け位置点への移動を完了する時点で、移動完了信号を制御装置62に返す。
前記XYステージ40の駆動は、スキャナ28L、28R、32L、32Rから出力される、ある走査エリア内のすべての穴開け位置のデータ穴開け加工処理が終了したという信号を、制御装置62が受けたタイミングで指令される。次の走査エリアへの移動が完了した時点で、移動完了信号を制御装置62に返す。
以下図面を参照して、レーザ穴開け機に適用した本発明の実施形態を詳細に説明する。
本発明に係るレーザ穴開け機の加工計画装置70の実施形態は、図10に示す如く、複数ユニット(本実施形態では2ユニット)のエリア配置計画装置72と、ステージ・ガルバノパス計画装置76とから構成される。
前記2ユニットのエリア配置計画装置72は、穴開け点の座標値を元に、走査エリア(加工エリア)の数が最小となるような左右ガルバノユニット22L、22Rの作業領域を決定し、XY座標値の変換が必要ならば実行し、前記ユニット間距離Aを決定して、走査エリア位置データB、及び各走査エリア内の穴開け位置データDを作成する。
この2ユニットのエリア配置計画装置72の中には、2次元領域内のすべての点を最小数の同寸の矩形により包囲して矩形の配置を決定するエリア配置計画装置74が組み込まれており、最適なユニット間距離を決定できるまでループ処理を繰り返すという処理を行う。
前記エリア配置計画装置74は、ある領域とその領域内の穴開け位置に対し最小枚数の走査エリア数となるエリア配置を計画する。
前記ステージ・ガルバノパス計画装置76の入力は、走査エリア位置データBと穴開け位置データDであり、走査エリアを訪問する順序(ステージパス)及び各エリアの穴開け位置を訪問する順序(ガルバノパス)を計画して、走査エリア位置訪問順序データC及び穴開け位置訪問順序データEを作成する。
以下、図11を参照して各装置が行う処理について具体的に説明する。
前記2ユニットのエリア配置計画装置72は、図12に示す如く、いわゆる「一変数関数の最小化」処理を行う。本実施形態では、一変数関数の極小化アルゴリズムとして一般的に知られる黄金分割法を用いた。即ち、エリア配置計画装置74にユニット間距離Aを入力すると、ステージ移動回数及び「ビーム走査回数」、又は、それらにそれぞれ重みを付けて加えたパラメータ(後で詳述する)を計算することができ、それらの計算結果を関数の出力値と見なすことができるという作用を利用し、その出力値を最小化するユニット間距離を決定する、という方法である。
具体的な計画の手順を説明する前に、前記「ビーム走査回数」という用語の意味と、ステージ移動回数及び「ビーム走査回数」を最少化する根拠、及び、2ユニットのエリア配置計画装置72の内部に組み込まれたエリア配置計画装置74の利用方法について説明する。左右ユニットの同時加工エリアの穴開け数の内、大きい方を取り、1を引いたものは、ある同時加工エリアにおけるビーム走査回数であるが、その値を全ての同時加工エリアについて総和を取ったものを「ビーム走査回数」と定義する。このビーム走査回数が少ないほど、左右の同時加工エリアの穴数均衡性が取れており、一方のユニットのみで照射加工を行っている、いわゆる無駄打ちの状況が減り、総加工時間は減少する可能性が高い。又、ステージ移動回数が少ないほど、総加工時間が減少する可能性が高いことは容易に想像できる。
なぜなら、総ビーム走査時間と総ステージ移動時間の2つは総加工時間の大部分を占めており、それらは大略、
総ビーム走査時間の総和=(ビーム走査時間の平均)×(ビーム走査回数)、
総ステージ移動時間の総和=(ステージ移動時間の平均)×(ステージ移動回数)
で求めることができる。ビーム走査時間とステージ移動時間の平均値の短縮は、ステージ・ガルバノパス計画装置76の役割であり、実現可能であり、もし、2ユニットのエリア配置計画装置72によってビーム走査回数及びステージ移動回数を最少ならしめることができれば、総加工時間は減少するはずだからである。
エリア配置が決定した時点における、左右ビーム照射領域のエリア配置は、ユニット間距離が加工時には一定であることから、他方は一方をユニット間距離だけ平行シフトすると完全に一致する関係にある。そこで、ユニット間距離Aをある値に設定すると、図13に示す如く、左右領域の例えば左端を一致させる重ね合わせを行って、テンポラリーな領域を作成し、できた領域に対して、エリア配置計画装置74を用いて、最少数の走査エリア配置を決定し、その時のビーム走査回数及びステージ移動回数を計算することができる。
エリア配置計画装置74を上述のように用いることにより、任意のユニット間距離に対するステージ移動回数及びビーム走査回数を図14に示すように求めることが可能である。即ち、これらの値が最小となるユニット間距離を、例えば黄金分割法などの一変数関数の極小化手法により数ステップの反復処理で求めれば、目的は達成される、という原理である。
黄金分割法は、厳密には一変数関数の「最小化」アルゴリズム(全域的最適解発見アルゴリズム)ではなく、「極小化」アルゴリズム(局所的最適解発見アルゴリズム)であるが、実際的には、多峰的形状の関数の最小値を求めることは、非常に困難であるため、本実施形態では、数ステップで極小値を発見することが可能である黄金分割法を用いた。より最小値に近い極小値を求める場合には、例えばシミュレーティッドアニーリング法(simulated-annealing method)などのヒューリスティック(heuristic)解法(発見的解法ともいう)を用いてもよい。
実際には、上記二つの関数の形状は複雑であり、両方を最適にする位置を決定するのは困難である(一般に「多目的(ここでは2目的)最適化問題」と呼ばれる)。
そこで、ビーム走査平均時間は約1〜3msec程度、ステージ移動平均時間は約0.2〜0.4秒程度であるので、ビーム走査とステージ移動に約100〜400(=β)程度の重みをつけ、
G(ビーム走査回数)+β×S(ステージ移動回数)
を最小とするように設定することができる(「重みパラメータ法」と呼ばれることもある)。ここで、βは、実験により決めておく。
この操作により、2目的最適化問題を1目的最適化問題に還元することもできる。
なお、ビーム走査回数Gにも係数γを付加して、
γ×G+β×S
としてもよい。
この一般式は、実験で求めたβの値が小数値である場合、一般に計算機は小数値の演算より整数値の演算の方が高速であるので、G+β×S全体を適当な整数倍(γ倍)して、
γ×G+γ×β×S
として、γ×βを新たにβで置き換えたもの、と考えることができる。
又、β=0、γ=1ならば、G、即ちビーム走査回数を表す。又、β=1、γ=0ならばS、即ちステージ移動回数を表す。本問題では、GとSの最少となるユニット間距離の値は近いと予想されるので、どちらか一方のみの最適化により、計算時間を短縮することも可能である。
具体的には、図12に示した如く、まずステップ101で、穴開け点位置の座標を入力する。
ついで、ステップ102〜104及びステップ105及び107により、ユニット間距離が最小の位置(約100mm)と、最大の位置(約300mm)における走査エリア数及びビーム走査回数、又は、それらにそれぞれ重みを付けて加えたパラメータを、エリア配置計画装置74により算出する。
ここでは、ユニット間距離Aを、従来と同様に、最小値100mm、最大値300mmとしている。シミュレーションにより、最適なユニット間距離は、横幅を1/2に分割した位置に近い位置にあることは確かであるが、基板によっては、100mmより小さい場合や、300mmより大きい場合もある。100mmという下限は、ユニット自体の物理的な幅があるため変えられない場合もあるが、300mmという上限は変えられるようにすることもできる。又、100mm、300mmという最小値、最大値は、上記手順の初期位置(ステップ102、105)に設定されているが、基板の大きさによっては、この範囲にエリア最小の位置が入らないことや、明らかに100mm近辺は距離が短すぎて調べる必要がないこともある。従って、基板のサイズにより、初期位置も臨機応変に設定する。
ついで、ステップ108で、ユニット間距離Aを直前位置2回の間の適切な位置(例えば黄金分割比)に再設定し、ステップ109及び110で、その位置における走査エリア数をエリア配置計画装置74により算出する。
図12のステップ110でγ×G+β×Sを計算した結果、最小であると判断できれば、ステップ111でループを終了し、最小にはなっていないと判断されれば、ステップ108に戻る。
ステップ111でループを脱出した場合、その時のエリア数及びユニット間距離を記憶して、ステップ112で、点データのXY座標を交換して、破線で囲まれたステップ102乃至111のループ処理を再度実行する。
このようにして、データのXY座標交換を行うことにより、元のデータのXY両方の軸の垂直分割を実現し、その両方についてユニット間距離Aの最適化を行い、良い方を採用することにより、ビーム走査回数、ステージ移動回数が、一層少なくなるようなユニット間距離の設定ができる。例えば図15に示すような基板の場合、図16に示す如く、X軸方向の分割とY軸方向の分割の両方について計算して、最適な方を選択することができる。
なお、基板の置き方を90度変えた場合には、そのことを加工者に知らせる必要がある。あるいは、基板をレーザ加工機に載置するローダに回転機構を設けて、自動的に回転してもよい。
上記のような比較により、図12のステップ114で、ステージ移動回数及びビーム走査回数が最少なユニット間距離を確定する。元のCADデータにおけるX軸を分割しているのであれば、もう一度XY座標交換を行って、元に戻す。
この段階で、ユニット間距離及びおおよそのエリア配置が求まる。エリア枚数は最小になったが、走査エリアが重複している場合がある。そこで、ステップ115に進み、重複箇所の穴開け位置がどの走査エリア内に含まれるものであるかを確定、即ち、全ての穴開け点位置の所属する走査エリアのラベル(番号)を確定する。
即ち、図17に示す如く、エリアFとGが重複していて、エリアF(1)、F(2)とエリアG(1)、G(2)(括弧内の数字1は左ユニット、数字2は右ユニットを表わす)の両方のエリアに重複する領域W(1)、W(2)がある場合には、次式に示す如く、左右のエリアFの穴数の多い方と、左右のエリアGの穴数の多い方の和が最小となるよう、左右の同時加工エリアの穴数を均等に配分することによって、時間短縮につなげることができる。
Min(Max(F(1)の穴数、F(2)の穴数)+Max(G(1)の穴数、G(2)の穴数)...(1)
今、図18の上段に示す如く、左ユニットのエリアF(1)のみに属する穴開け位置が30穴、同じくエリアG(1)のみに属する穴開け位置が20穴、重複エリアW(1)が60穴とし、右ユニットのエリアF(2)にのみ属するものが10穴、エリアG(2)のみが40穴、重複エリアW(2)が50穴であったとすると、特に工夫することなく、機械的に、例えば、先に決定したエリアに全て配分した場合には、図18の中段に示す如く、左ユニットのF(1)が90穴、G(1)が20穴、右ユニットのF(2)が60穴、G(2)が40穴となり、エリアFのガルバノショット数が90回、エリアGのガルバノショット数が40回で合計130回となる。
これに対して、同時加工エリアの穴数を均等化した場合には、図18の下段に示す如く、左ユニットのF(1)に55穴、G(1)に55穴、右ユニットのF(2)に55穴、G(2)に45穴で、エリアFのガルバノショット数が55回、エリアGのガルバノショット数が55回となり、合計110回で、計20回減少させることができる。
今、重複箇所配分処理を実行する順序は、例えばランダムな順番、重複穴数の多い順番等のように適切な方法を取るよう、決定しているものとして、重複箇所配分処理の手順を述べる。ここで、穴数を小文字でf(1)、g(1)等と示す。ここで、f(1)、f(2)を、それぞれ、左又は右ユニットのエリアFのGと重複しない位置に属する穴、g(1)、g(2)を、それぞれ左又は右ユニットのエリアgのfと重複しない位置に属する穴とし、fg(1)、fg(2)を、それぞれ、左又は右ユニットのエリアF、Gの2エリアの重複領域W1、W2にある穴とし、|f(1)|、|g(1)|、|f(2)|、|g(2)|を、それぞれ、左ユニットのエリアF(1)又はG(1)、右ユニットのエリアF(2)又はG(2)へ属している穴数とする。
すると、具体的な処理手順は、例えば図19に示す如くとなり、まずステップ201で、f(1)−f(2)、g(1)−g(2)及びその絶対値を計算する。次いで、ステップ202で、数値例を示した図20に矢印Aで示す如く、絶対値の大きい方のエリアの穴数の少ない方に、重複箇所から穴数を補充する。次いでステップ203で、図20に矢印Bで示す如く、絶対値の小さい方のエリアの穴数の少ない方に、重複箇所から穴数を補充する。次いでステップ204で、図20に矢印Cで示す如く、重複箇所に残った穴をFとGに均等に配分して、処理を終了する。
以上のステップにより、重複箇所の穴開け位置をエリアFとGに配分する個数が決定されるが、どの穴開け位置がFへ、どの穴開け位置がGへ配分されるかは、決定しない。その配分方法は、例えば、Fの中心からの距離を重複箇所の穴開け位置すべてに関して求め、Fの中心から近いもの順にFへ配分される穴数分だけFに配分する、というヒューリスティックな方法を取る。
なお、エリアが重複した穴の配分方法は、これに限定されず、例えば、図21に示すごとく、各エリアの中心からの距離が近いほうに配分しても良い。
図12のステップ115終了後、ステップ116で、走査エリアの中心を、元のエリア8内の点データの存在位置を使って微調整し、修正後のエリア8´の中央に点が集まるようにして、加工精度を向上する。具体的には、図22に示す如く、穴開け位置の広がりの中心(各軸最小、最大の平均値)で微調整したり、あるいは、図23に示す如く、穴開け位置の重心が修正後のエリア8´の中心となるように微調整することができる。後者の場合、一部の点Pが外れる場合には、すべての点が収まる限界まで修正する。図23の例では、Y軸は重心位置までシフトしても問題ないが、X軸は重心位置に移動すると、外れてしまう点Pがあるので、穴開け位置がすべて収まる限界まで中心位置をシフトする。
この操作は時間短縮には結びつかないが、fθレンズ34L、34Rの収差等の関係で、中心の方が高精度であるため、加工精度向上に有効である。
実用上の問題として、パソコン上のウィンドウ52により入力して代替処理として可能な、上記ステップをより簡略化した、次の方法を採用することもできる。
この代替処理法は、点データのパターンを利用する方法であり、図24に本方法による処理の概略を示す。又、図25に、本方法におけるユニット間距離の候補を表す例を示す。
本方法は、X軸に垂直にユニット作業領域を分割した場合と、Y軸に垂直に分割した場合の両方について、「点のある場所の左端から、点のある場所の横幅を半分割した位置から点のある場所までユニットの分割線をシフトした場所までの距離」をユニット間距離と決めた時のエリア数と、CADデータにパターン情報がある場合には、「パターンのシフト量のうちユニット間距離の最小値(約100mm)と最大値(約300mm)の間にあるもの」全てについて、パターンのシフト量をユニット間距離と定めたときのエリア数をエリア配置計画装置74により求め、全ての中で最もエリア数の小さいものを選択する、という方法である。
図25の例では、最適なユニット間距離は、最大パターンAのシフト量260mm、若しくは半分割(基板横幅560mm÷2=)280mmとなる。
本方法では、ユニット間距離を黄金分割法により、適切な位置に定めていくのではなく、ステップ302乃至305において、パターンのシフト量のうちで、ユニット間距離の最小値と最大値の間にあるものについて、すべて行うようにした点が、図12の例と異なる。他の点に関しては同様であるので、同じ符号を付して、説明は省略する。
一方、2ユニットのエリア配置計画装置72に組み込まれている前記エリア配置計画装置74は、2次元領域の全ての点を最少数の同寸矩形(例えば正方形)で包囲するときの矩形エリアの配置を決定するものである。この装置により、最少走査エリア数(従って、最少のステージ移動回数)を実現することが可能となる。
以下、図26を参照して、本装置によるエリア配置決定手順を詳細に説明する。
ここで、各処理において、現在注目している位置(X、Y)が、エリア(正方形)の左下隅の頂点であるものとする。各処理において、エリアの位置を更新する。
まずステップ401で穴開け位置の座標を入力する。
ついで、ステップ402で、穴開け位置をX座標の値によってソートする。又ステップ406、409、411において、エリア位置をX軸負の向き、もしくはX軸正の向きに更新している。これは、全体的にはX軸の値の小さい穴開け位置から、一つのエリア決定ループにおいては、エリアの重複をなるべく避けられるよう、エリアのX軸値、Y軸値を更新しつつ、Y軸の値の小さい穴開け位置から点を包囲しようという狙いによる。
本装置には、Y軸負の向き(下方)の2つのエリア位置更新処理(ステップ406、411)と、X軸正の向き(右方)のエリア位置更新処理(ステップ409)がある。
以下、図27乃至図32を参照して、具体的な処理手順を説明する。
今、図27において、4つのエリアE1〜E4が確定し、5番目のエリアE5の位置を探す場合を考えると、まず、ステップ403で、ソートされた順に、まだ被覆エリアが確定していない点を探す。ステップ404で、図28に示す如く、囲まれていない一番左の点P1を発見し、ステップ405で、該点P1を包囲するエリアE5を仮に作成した後、ステップ406で、エリア位置を下方に更新すべく、エリア幅分の帯領域B1について、囲まれていない一番下の点、即ち、現在のエリア位置E5の下の部分で、まだエリアの決定していないY座標値が最小のものを探す(エリア位置の更新1)。無ければ、先ほどの位置で確定する。
一方、図29に示す如く、一番下の点P2が見つかった場合には、この点が下辺の位置になるように、エリアE5の位置を下方に動かす。見つかったとすると、Y座標の値をY′で更新するが、(X、Y')におけるエリアと、これまでに確定しているエリアとの重なりが、図30に示す如く、ある値より大きい場合には、重なりが大きいエリアの上部の重なっていない領域eの中でY座標が最小のものを再度探す。領域e内に点が発見されれば(Y″)、領域eのY座標値最小のものY″でY座標の値を更新して重なりを回避する。領域e内に点が発見されない場合には、次に処理するエリア位置の右方更新により、全く重なりがないように右方へ位置を更新されるはずなので、Y座標の値を、そのままY′で更新する。
ステップ407でY座標の値が更新されたときには、ステップ409に進み、エリア位置を右方に更新すべく、図31に示す如く、エリアE5の位置を右方に移動し、現在のエリアの中で、X座標値が最小の点P3の値でX座標の値を更新する(エリア位置の更新2)。
ステップ409でX座標の値が更新された場合には、ステップ411に進み、エリア位置を再び下方に更新するための処理を行う(エリア位置の更新3)。具体的には、図32に示す如く、現在のエリアの位置(X、Y)から、Y軸負の向きに、これまでに決定しているエリアの4つの辺の内、上部の辺のY座標の中で最大のものを探し出す。但し、下側に移動しても、一定以上は辺が重複しないエリアは無視することにする。発見された辺のY座標をY′とする。現在のエリアの下部、且つY座標値がY′以上の矩形領域B2内について、未だエリアの決定していないY座標値最小のものを探す。発見されれば、その値でY座標値を更新する。
本装置には、一つのエリアを決定するための第一ループと、エリアの位置を右方、下方に微調整するための第二ループが存在する。エリア位置が決定すると、第一ループから脱出し、エリア位置更新ステップ409、411において、エリア位置が更新されないと、第二ループから脱出する。
上記の処理を、エリアの位置が確定する迄、繰返して、図33に示す如く、最終的なエリアE5の位置を確定し、次のエリアを探すループに移る。なお、走査方向やエリア位置の更新方向等は、前記説明に限定されず、例えば逆であっても良い。
前記エリア配置計画装置74における処理の変形例として、図34に示す如く、組合せ最適化問題における局所探索法(local search)(反復改善法(iterative improvement method)ともいう)を応用して、従来のエリアの配置から、まず全く点の無いエリアを除去したエリア配置を作成し、エリア位置を上下左右にシフトさせて、不要になるエリアを次々に除去していくことも可能である。
具体的には、図35に示す如く、まずステップ501で、図34(A)に示したような従来のエリアから、点の無いエリアを除くことにより、図34(B)に示したようなエリア配置を初期解として発生する。ただし、ここで「解」とは、「全ての点を包囲するエリア配置(及びエリア数)」の可能な組合せ(解集合)の内の一つを指す。又、「良い解」とは、ここではエリア数の少ない解を指す。
初期解の発生方法は、上記に限らず様々な方法が考えられる。例えば、「まだ包囲されていない点を最も多く包囲する位置を発見し、エリアを配置する」という処理を、全ての点が包囲されるまで繰り返す、という組合せ最適化問題において知られる、いわゆるグリーディー算法(貪欲算法)的な方法などでもよい。
又、図26に見られるような手順により決定されるエリア配置を初期解としても良い。
次いで、ステップ502で、yに初期解xを代入して、ステップ503で、解yの近傍N(y)内を探索する。具体的には、図36に示す如く、ある注目エリアEiについて、そのエリア内に単独に所属している点が、そのエリアから漏れないという制限下で、エリア位置を動かせる領域内のある位置に動かしたときに、動かした位置のエリア内に、注目エリアEiの隣接エリアの1つEj内に単独に所属している点が全て入る場合には、その隣接エリアEjは不要なので、削除することによって、yより良い解zを発見し、ステップ505で、発見された解zの値をyに代入して、再びステップ503を繰り返す。
ステップ503の処理において、N(y)内にyより良い解が発見できなくなった段階で、ステップ506に進み、現在のyの値をもって解とし、処理を終了する。
あるいは、図37に示す如く、重複箇所により連結しているある2つの隣接するエリアEi、Ei+1について、その2エリア内に単独に所属している点、即ち重複部以外の領域に存在する点が、その2つのエリアから漏れないという制限の下で、エリア位置を動かせる領域内のある位置に2つのエリアを動かしたときに、隣接エリアの一つEj内に単独に所属している点が全て入る場合には、その隣接エリアEjは不要なので、削除することもできる。
なお、重複箇所により連結しているエリアの数は2より大きくても構わない。即ち、2以上の任意のnに対し、重複箇所により連結しているあるn個のエリアEi、・・・Ei+n-1について、そのnエリア内に単独に所属している点、即ち重複部以外の領域に存在する点が、そのn個のエリアから漏れないという制限の下で、エリアを動かせる領域内のある位置にn個のエリアを動かしたときに、隣接エリアの一つEj内に単独に所属している点が全て入る場合には、その隣接エリアEjは不要なので、削除することもできる。
前記ステージ・ガルバノパス計画装置76は、走査エリアの訪問順序(ステージパス)及び各走査エリア内の加工位置(穴開け位置)点の訪問順序(ガルバノパス)の最適化を計画する。この装置の基本的な処理手順を図38に示す。この装置は、一般に広く知られている巡回セールスマン問題(全ての都市を訪問して最初の都市に戻ってくる一巡経路の中で、一巡経路長が最小のものを求める問題:TSPとも略する)、もしくは、状況に応じて一般的なTSPを改良した方法(改良TSPと称する)を適用することを大きな特徴とする。又、場合によっては、一巡してもとの位置に戻る必要がない場合は、走査あるいは移動の始点と終点を決定する処理も必要となる。
状況に応じた巡回セールスマン問題の適用法及び始点と終点の決定に際しては、次の項目に特に注目する。
ステップ601のステージパスの計画の場合、XYステージ40は、図1に示したように、X軸方向のみへの移動を生み出すXステージ40Xと、Y軸方向のみへの移動を生み出すYステージ40Yの2台のステージにより構成されているため、XYステージ40の1回の移動完了は、2台のステージ40X、40Yの両方の移動が完了した時点とする。一般に、Xステージ40Xは、Yステージ40Yの下に位置するため、重くできており、図39に例示するように、応答性が劣る。
従って、加工位置(x1,y1)から(x2,y2)への移動距離Lは、移動距離が等しいときは、常に、X軸方向の移動時間がY軸方向の移動時間の一定(α)倍になると仮定して、定数αを実験などで求めた後、次式で求める。
L=max{|x1−x2|,α|y1−y2|} ...(2)
ここで、max{p、q}は、pとqの大きい方を表す記号である。
あるいは、移動距離lに対するX軸方向、Y軸方向の移動時間Tx(l)、Ty(l)を実験などで求めて、次式で求めることもできる。
L=max{Tx(|x1−x2|),Ty(|y1−y2|)}...(3)
又、ステージパスの始点と終点であるが、図40の上段に示す如く、始点はローダからステージへ搭載する位置、終点は、アンローダに移す前のステージの位置とし、端点を固定した巡回セールスマン問題を解くことによって、ステージ動作時間を効果的に短縮することができる。
始点・終点を合わせたステージの最適経路を図40の中段に、その時の基板上の訪問順序(基板上のエリア訪問方向とステージ移動方向は180°逆になる)を図40の下段に示す。
ステップ602〜604のガルバノバス計画の場合、距離に関しては、第一、第二ガルバノスキャナ28L、28R、32L、32Rは、一方が他方の軸(X軸又はY軸)の位置を独立に変更するような仕組みであるため、一つの走査エリアの1回のガルバノスキャナの走査完了は、第一、第二両方のガルバノスキャナの走査が完了した時点とする必要がある。しかしながら、一般に、第二ミラー30L、30Rへの照射可能範囲は、第一ミラー26R、26Lへの照射可能範囲より広く、従って第二ミラーは第一ミラーよりも重くできており、図41に例示する如く、応答性が劣る。
以上の理由から、穴開け位置(x1、y1)から(x2、y2)への移動距離Mは、(移動距離が等しいときは、常に第二ミラーの移動時間が、第1ミラーの移動時間の一定倍になると仮定して)定数αを実験などで求めた後、次式で求めることができる。
M=max{|x1−x2|、α|y1−y2|} ...(4)
あるいは、移動距離Mを基板上の座標で求めるのではなく、ガルバノミラーの走査角θ、δにより、次式で求めることもできる。
M=max{|θ1−θ2|,α|δ1−δ2|} ...(5)
更に、別の距離設定方法として、実験などで移動距離mに対するX軸方向、Y軸方向の移動時間Tx(m)、Ty(m)を実験で求め、次式で求めることもできる。
M=max{Tx(|x1−x2|)、Ty(|y1−y2|)}...(6)
なお、例えば図42の上段に示す如く、左右のユニットの同時加工エリアのビーム走査時間に偏りがあって、一方に待ち時間が生じる場合には、ステップ603で、始点を互いにずらしてマッチングをとることによってビーム走査時間の偏りを無くし、総加工時間を短縮することができる。
即ち、例えば、図43の上段に示すような左エリアで点P1(1)〜P5(1)、右エリアで点P1(2)〜P4(2)を加工する場合には、図43の中段よりも、下段のように、右領域の始点をP1からP2に変更することによって、総移動時間を大幅に短縮することができる。
又、ガルバノパスの始点と終点であるが、具体的には、図44に示す如く、巡回セールスマン問題を適用して一巡訪問順序を決定し、最も距離の長い(時間のかかる)移動Lmaxを除けるよう、始点と終点を決定することができる。
あるいは、実用上、特に訪問位置が少ない時等は、代替処理として、図45及び図46に示す如く、「(一巡経路長)−(最長の移動長)」を最短にするように一巡経路を決定して、最長の移動を除くようにすることもできる。巡回セールスマン問題の手法の内、kオプト法やLK法は、いずれも「解(ある一巡経路)の近傍を探索し、近傍解で更新する」というループの繰返しにより解を逐次改善していく。従って、各ループの「解」として、「一巡経路長」ではなく、「(一巡経路長)−(最長の移動長)」で評価すれば、最終的な解としても、「(一巡経路長)−(最長の移動長)」が最小になる。図46の場合、右側の方が一巡経路長は少ないが、「(一巡経路長)−(最長の移動長)」で較べると、左側の方が最適解となっている。
又、ステップ601及び602で用いる巡回セールスマン問題の手法としては、例えば、ニアレストネイバー法、マルチプルフラグメント法、2オプト法、3オプト法、リンアンドカーニハン法(LK法)、ITERATAD−LK法、CHAIND−LK法、ITERATED−3オプト法、CHAIND−3オプト法等を、計算時間と効果(経路長)の両方を考慮して、使い分けることができる。
(1)2ユニットのエリア配置計画装置
(a)エリア配置計画装置の効果
いくつかの実基板データに対し、エリア数演算装置74を基板全体に適用した時の結果を図47及び図48に示す。ここでは、エリア数の変化のみに着目するため、2ユニットによる領域2分割処理は行わず、基板全体をエリア化している。又、数値的な結果を図49にまとめて示す。穴開け位置数や点の密集度等、様々な条件により結果は異なるが、平均10〜30%程度エリア数が減少することが確認されている。
(b)ユニット間距離最適化の効果
ある実基板データ(穴開け位置数48490)に対し、X軸を2分割した時の、ユニット間距離Aを横軸に、ビーム走査回数を縦第1軸、ステージ移動回数を縦第2軸にとったグラフを図50に示す。ここではエリア配置計画装置74は使用しておらず、従来の方法で走査エリアを決定している。又、数値的な結果を図50にまとめて示す。ここで、「半分割」、「パターンの先頭」が従来法である。
ビーム走査回数は、24627回となり、従来法(半分割で26111回、パターンの先頭で約27000回)と比較して5%程度改善している。なお、ステージ移動回数(71回)は、従来の方法と最適な位置とで差がなかったが、これは、縦、横の幅のみに依存する従来のエリア配置決定法に従ってエリア配置を決定したためである。本発明に係るエリア配置計画装置を使ってエリア配置を決定すれば、ステージの移動回数についても差が出ると思われる。
(2)ステージ・ガルバノパス計画装置
(c)巡回セールスマン問題適用の効果
40mm×40mmの正方領域に、穴開け位置を乱数を使って発生させて、シミュレーションを試みた。横軸に穴開け位置の数、縦軸にガルバノスキャナの1回の移動の平均値をとって作成した線図が図52及び図53である。実験に用いた距離測度として、前出(2)式、(4)式でα=1として、ステージ、ガルバノスキャナ共に、X方向の移動速度とY軸方向の移動速度を同じと仮定した距離を用いている。ここでは、従来の方法と、巡回セールスマン問題の1手法としてよく知られている、3オプト法を適用した場合とを比較している。図54に結果の一部を抜粋してまとめる。穴開け位置数の違いによらず、ガルバノスキャナの1回の移動距離の平均値は、約30〜40%改善されている。
以上より、エリア配置計画装置によるエリア数の減少の効果を合わせて、ステージ総移動時間は確実に減少し、凡そ20〜30%程度改善する。
以上のように、本発明に係るステージ・ガルバノパス計画装置の適用により、ガルバノスキャナの総移動時間は確実に減少し、約30〜40%改善する。
なお、前記のような加工計画のプログラムは、通常、レーザ加工機のソフトウェアに組み込まれているが、計算負荷が大きく、計算専用の高速処理マシンを持たせられない加工機側の動作に悪影響を与えたり、最新のプログラムを使用するためには、毎回バージョンアップする必要がある等の負担がかかる。これは、加工計画のプログラムを抽出して、単品のソフトウェアとして提供する場合でも同じである。なお、フレキシブルディスク等の記録媒体を利用して、ユーザから加工位置データを郵送してもらい、メーカ側のサポートスセンタ等で加工計画を作成して、郵送で送り返すことも考えられるが、郵送はやり取りに時間がかかってしまう。
そこで、このような問題点を解決した実施形態を詳細に説明する。
本実施形態は、図55に示す如く、レーザ加工機80側に設けられたユーザのパソコン(ユーザPCと称する)82と、例えばレーザ加工機メーカ側のサポートセンタに設けられた加工計画計算専用の高速処理が可能なパソコン(サポートセンタPCと称する)90とを、インターネット100を介して接続し、該インターネット100を介してユーザPC82より受信した加工位置データに基づいて、サポートセンタPC90が加工計画を決定し、決定した加工計画を、前記ユーザPC82に返信するようにしたものである。
図において、84は、ユーザPC82をインターネット100に接続させるためのブラウザ、92は、インターネット100にホームページを提供するためのウェブサーバ、86、94はJAVA(登録商標)アプレット、88は加工位置のCADデータ、96は、ユーザPC82から送られてきたCADデータ88に対して加工計画を決定するための加工順序最適化アプリケーションである。
以下、図56を参照して作用を説明する。
ユーザは、ステップ3001で、ユーザPC82のブラウザ84を使って、サポートセンタのホームページにアクセスし、ステップ3002でサポートセンタから返信されたHTMLデータにより、ステップ3003で変換サービスページにアクセスする。次いで、ステップ3004で送付されるJAVA(登録商標)アプレットの指示に従って、ステップ3005で変換に必要な条件を入力し、加工順序を最適化したいファイルを選択し、それらをサポートセンタPC90に、インターネット100を利用して転送する。
サポートセンタ側では、ステップ3006で、受信データに従って、加工順序最適化アプリケーション96により、データの加工順序の最適化変換を実施し、加工機用のデータファイルを作成する。そして、そのファイルを同じくインターネット100で返信する。
ユーザは、ステップ3007で、受信した変換済みデータファイルをレーザ加工機に転送して、加工を実施する。
このようにして、サポートセンタ側で変換を実施することで、ユーザは、常に加工計画の最新バージョンを利用し、且つ、サポートセンタの高速処理マシンを利用することができる。
一方、サポートセンタ側では、ユーザに納入された加工機の加工計画プログラムを一々更新する必要がなく、加工計画プログラムの更新が容易である。又、ユーザ情報を容易に収集・蓄積することができる。
本実施形態においては、通信回線を介して加工装置側より受信した加工位置データに基づいて加工計画を決定し、前記加工装置側に返信するようにしたので、計算専用の高速処理マシンを用いて、常に最新バージョンで加工データを迅速に作成することが可能となる。
なお、前記実施形態では、ユーザPCが1台とされ、レーザ加工機80とは別置とされていたが、ユーザPCの数や配設位置は、これに限定されず、図57に示す第1の変形例のように、CAD用のユーザPC83を別に設けたり、図58に示す第2の変形例のように、ユーザPC82をレーザ加工機80に内蔵しても良い。
又、前記説明においては、ガルバノユニットの数が2とされていたが、ガルバノユニットの数はこれに限定されず、1あるいは3以上の複数であってもよい。
又、前記説明においては、いずれも、エリアの形状が40×40mmの正方形とされていたが、エリアの形状はこれに限定されず、他のサイズの正方形や、長方形を含む矩形、あるいは、円形でもよい。又、走査方向も、図59の上段に示すような、エリアの1辺と平行な通常の走査方向に限定されず、図59の下段に示す如く、点座標を同心回転変換した斜め方向の走査であってもよい。
又、走査エリアに対してレーザビームを走査する手段もガルバノスキャナによるものに限定されず、出願人が特開2000−71089や特開2000−334637で提案したような、リニアモータXYステージと高速加工ヘッドを組み合わせたハイブリット加工システム(いわゆるスクリーンカットシステムあるいはフラッシュカットシステム)であってもよい。
又、適用対象も、レーザ穴開け機に限定されず、レーザビーム以外の加工手段を用いた一般の加工機(例えば機械式ドリルによる穴開け装置)にも同様に適用できることは明らかである。
又、通信回線もインターネットに限定されず、専用回線や電話回線であってもよい。