(57)【特許請求の範囲】
【請求項１】
回転可能な主軸の先端に工具を装着し、工具の刃先が前記主軸の回転中心からオフセットされた状態で、工具の刃先で被加工物を加工する際、加工プログラムのブロック継ぎ目の補間動作に対して、加工進行に対して前記工具の刃先を常に直角に保ち、かつ前記工具の刃先全体が常に加工進行と逆方向へ移動しないよう少なくとも前記主軸の回転角度を制御することを特徴とする数値制御工作機械の主軸法線方向制御方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は、数値制御工作機械において、主軸の先端に装着された工具で被加工物を加工する際に、工具の刃先を加工プログラム軌跡の加工進行に対して常に直角方向に保つように制御する数値制御工作機械の主軸法線方向制御方法に関する。
【０００２】
【従来の技術】
従来、数値制御工作機械において、主軸の先端に装着された工具で被加工物を加工する際に、工具の刃先を加工プログラムの軌跡の加工進行方向に対して常に直角方向に保つように制御する主軸法線方向制御方法は一般に知られている。
【０００３】
この場合における主軸法線方向制御方法においては、主軸の中心と工具刃先の中心とが一致しており、直線補間、円弧補間に対してのみ、工具の刃先を加工プログラムの軌跡の加工進行方向に対して常に直角となるように制御しているものである。
【０００４】
【発明が解決しようとする課題】
ところで、上述した従来の主軸法線方向制御方法においては、主軸の中心と工具の中心とが一致した状態の制御機能しか備えていないため、直線補間、円弧補間に対してしか主軸法線方向制御が出来ず、主軸中心と工具刃先とがオフセットしている場合には、正しく主軸法線方向制御ができないという問題があった。
【０００５】
また、加工プログラムの軌跡におけるコーナー内側での主軸法線制御が正しく行うことができないという問題もあった。
【０００６】
そのため、工具の刃先が主軸中心に対してオフセットしているような場合には、オペレータがいちいち種々の補正計算を行って主軸法線方向制御するようにしなければならず、非常に手間がかかると共に大変面倒であった。
【０００７】
この発明の目的は、工具の刃先が主軸回転中心に対してオフセットしていても、オペレータはそれを意識することなく、工具の刃先で被加工物を加工する際に、加工プログラムの軌跡の進行方向に対して工具の刃先を直角に保つように制御して、容易に加工できるようにすると共に、一定の面粗度を得るようにした数値制御工作機械の主軸法線方向制御方法を提供することにある。
【０００８】
【課題を解決するための手段】
上記目的を達成するために請求項１によるこの発明の数値制御工作機械の主軸法線方向制御方法は、回転可能な主軸の先端に工具を装着し、工具の刃先が前記主軸の回転中心からオフセットされた状態で、工具の刃先で被加工物を加工する際、加工プログラムのブロック継ぎ目の補間動作に対して、加工進行に対して前記工具の刃先を常に直角に保ち、かつ前記工具の刃先全体が常に加工進行と逆方向へ移動しないよう少なくとも前記主軸の回転角度を制御することを特徴とする
ものである。
【０００９】
【作用】
以上のような請求項１による発明の数値制御工作機械の主軸法線方向制御方法とすることにより、工具の刃先で被加工物を加工する際に、工具の刃先が主軸の回転中心からオフセットされた状態で工具が主軸に装着されていても、加工プログラムのブロック継ぎ目の補間動作に対して、加工進行に対して工具の刃先が直角に保ち、かつ前記工具の刃先全体が常に加工進行と逆方向へ移動しないよう少なくとも主軸の回転角度を制御する制御機能を備えているから、工具の刃先が加工プログラム軌跡の加工進行に対して常に直角に保たれて加工されるので、容易に加工ができると共に一定の面粗度が得られる。しかもオペレータは工具の刃先が主軸回転中心に対してオフセットされていることを意識することなく加工される。
【００１０】
【実施例】
以下、この発明の実施例を図面に基いて詳細に説明する。
【００１１】
この発明の具体的な実施例の説明を行う前に、まず、主軸法線方向を使用した加工形態の一例としてヘール（溝）加工を例にとって説明する。
【００１２】
図４（Ａ），（Ｂ）に示されているように、主軸Ｓの先端には工具としてのヘールバイトＴが主軸Ｓの回転中心線ＳC に対してオフセットされている。すなわち、図４（Ａ），（Ｂ）において、Ｉ，Ｊ，Ｋは主軸Ｓの回転中心線ＳC からヘールバイトＴの刃先ＴA までのオフセット量を示している。なお、便宜的に主軸Ｓの回転中心線ＳC に対してプログラム軌跡に沿う側へのオフセット量をＩ，反対側へのオフセット量をＪとする。
【００１３】
次に、図４（Ａ），（Ｂ）で説明したように、主軸Ｓの回転中心線に対してＩ，Ｊ，ＫだけオフセットしているヘールバイトＴを使ってプログラム軌跡から主軸Ｓの中心点Ｓ0 （軸制御対象点）へのオフセットベクトルは、図５に示されているように定義する。図５において、ベクトルＩ，Ｊ，ｋをオフセットベクトルと呼ぶと、ベクトルの大きさは、｜ベクトルＩ｜＝Ｉ，｜ベクトルＪ｜＝Ｊ，｜ベクトルＫ｜＝Ｋとなる。
【００１４】
そして、直線補間、円弧補間におけるブロック始点、終点でのオフセットベクトルの求め方は、丁度工具径補正での補正ベクトルの計算方法と同じであるので、詳細な説明を省略するが、図５においての｜Ｉ＋Ｊ｜に相当するのが工具径補正の工具半径である。
【００１５】
図６に示されているようなヘールバイトＴでは刃先ＴA と主軸中心Ｓ0 との加工方向でのオフセット量Ｋがゼロ（Ｋ＝０）の場合には、図７に示されているように、被加工物Ｗにおけるプログラム軌跡に沿ってヘールバイトＴが加工方向へ移動して被加工物Ｗにヘール加工が施されることになる。
【００１６】
このように図７に示したように被加工物Ｗにヘール加工を行うには、プログラム軌跡に対して主軸中心Ｓ0 をＩだけ左側へオフセットする必要がある。そうなるように主軸Ｓ0 を制御するのは、既存技術の工具径補正のアルゴリズムを利用して行えばよい。
【００１７】
図７に示したような直線を加工するときには、主軸Ｓの刃先角度を変える必要はないが、例えば直線ブロックでもブロック継ぎ目において進行方向の角度が変わる場合には、主軸Ｓの刃先角を変える必要がある。
【００１８】
ブロック継ぎ目の外側をヘールバイトＴの刃先ＴA が通る場合には、継ぎ目の前後のブロックが直線、円弧、その他の補間によらず、次のアルゴリズムで計算できる。一例として、直線ブロックから直線ブロックへ継ぐ場合について説明する。
【００１９】
すなわち、図８に示されているように、点０はブロックＡの指令終了点のプログラム座標原点からのベクトル，Ｉ1 ，Ｊ1 はブロックＡでのオフセットベクトル、Ｉ2 ，Ｊ2 はブロックＢでのオフセットベクトルとする。
【００２０】
ＯＰ1 はブロックＡの終点におけるオフセットベクトル、ＯＰ2 はブロックＢの始点におけるオフセットベクトルであり、直線補間であるからそれぞれＩ1 ＋Ｊ1 とＩ2 ＋Ｊ2 とは等しい。点Ｓ1 ，点Ｓ2 は次式により求められる。      ＯＳ1 ＝Ｏ＋ＯＰ1 −Ｊ1
ＯＳ2 ＝Ｏ＋ＯＰ2 −Ｊ2       ……式１
【００２１】
主軸中心Ｓ0 は点Ｓ1 へ直線補間で移動した後、点Ｓ1 から点Ｓ2 まで点Ｏを中心とした半径Ｉの円弧補間で移動する。そのときＯＰ1 とＯＰ2 の間の角度をθとすると、円弧補間に同期して主軸Ｓもθだけ回転する。また、そのときの主軸中心Ｓ0 の速度は、プログラム指令速度Ｆでなく、プログラム経路と反対側の工具刃先がプログラム指令速度Ｆになるように次式により求められる。
主軸中心速度＝Ｉ×Ｆ／（Ｉ＋Ｊ）    ……式２
【００２２】
ここでは直線補間の場合について説明したが、円弧補間など他の補間でもブロック始点、終点におけるオフセットベクトルが算出できれば、点Ｓ1 ，点Ｓ2 を求める事が可能であり、したがって、ブロック継ぎ目での法線方向制御を行うことができる。
【００２３】
ブロック継ぎ目の内側をヘールバイトＴの刃先ＴA が通る場合には、継ぎ目の前後のブロックが直線、円弧、その他の補間によらず、次のアルゴリズムで計算できる。一例として、直線ブロックから直線ブロックへ継ぐ場合について説明する。
【００２４】
すなわち、図９に示されているように、点ＯはブロックＡの指令終点のプログラム座標原点からのベクトル，Ｉ1 ，Ｊ1 はブロックＡでのオフセットベクトル、Ｉ2 ，Ｊ2 はブロックＢでのオフセットベクトルとする。
【００２５】
ＯＰを半径（Ｉ＋Ｊ）のヘールバイトＴでの工具径補正におけるブロック継ぎ目での工具径補正用交点ベクトルとすると、点Ｓ1 ，点Ｓ2 は次式により求められる。
ＯＳ1 ＝Ｏ＋ＯＰ−Ｊ1
ＯＳ2 ＝Ｏ＋ＯＰ−Ｊ2       ……式３
【００２６】
主軸中心Ｓ0 は点Ｓ1 まで達したら、そこから点Ｓ2 まで点Ｐを中心とする半径Ｊの円弧補間を行い、同時に主軸Ｓが同期してθだけ回転する。また、主軸中心Ｓ0 の速度は、プログラム指令速度Ｆでなく、次式により求められる。
主軸中心速度＝Ｊ×Ｆ／（Ｉ＋Ｊ）    ……式４
また、Ｊ＝０の場合には主軸Ｓだけθ回転する。
【００２７】
ここでは直線補間の場合について説明したが、円弧補間など他の補間でもブロック始点、終点におけるオフセットベクトルが算出できれば、点Ｓ1 ，点Ｓ2 を求めることが可能であり、したがって、ブロック継ぎ目での法線方向制御を行うことができる。
【００２８】
次に、直線ブロックから円弧ブロック、円弧ブロックから直線ブロックあるいは円弧ブロックから円弧ブロックへ継いでヘールバイトＴが通る場合があるが、一例として円弧ブロックから円弧ブロックへ継ぐ場合について説明する。
【００２９】
図１０に示されているように、点ＯはブロックＡの指令終点のプログラム座標原点からのベクトル，Ｉ1 ，Ｊ1 はブロックＡでのＰ点でのオフセットベクトル、Ｉ2 ，Ｊ2 はブロックＢでのＰ点でのオフセットベクトルとし、ＯＰを半径（Ｉ＋Ｊ）の工具径補正におけるブロック継ぎ目での工具径補正用交点ベクトルとすると、点Ｓ1 でのオフセットベクトルＩ1 ，Ｊ1 は、
Ｉ1 ＝ＯA Ｐ×Ｉ／｜ＯA Ｐ｜
Ｊ1 ＝ＯA Ｐ×Ｊ／｜ＯA Ｐ｜      ……式５
点Ｓ2 でのオフセットベクトルＩ2 ，Ｊ2 は、
Ｉ2 ＝ＰＯB ×Ｉ／｜ＯB Ｐ｜
Ｊ2 ＝ＰＯB ×Ｊ／｜ＯB Ｐ｜      ……式６
よって、点Ｓ1 ，点Ｓ2 は次式に求められる。
ＯＳ1 ＝Ｏ＋ＯＰ−Ｊ1
ＯＳ2 ＝Ｏ＋ＯＰ−Ｊ2       ……式７
【００３０】
主軸中心Ｓ0 は点Ｓ1 まで達したら、そこから点Ｓ2 まで点Ｐを中心とする半径Ｊの円弧補間を行い、同時に主軸Ｓが同期してθだけ回転する。また、主軸Ｓの中心速度は、次式により求められる。
主軸中心速度＝Ｊ×Ｆ／（Ｉ＋Ｊ）    ……式８
また、Ｊ＝０の場合には主軸Ｓだけθ回転する。
【００３１】
ここでは、例として円弧ブロックから円弧ブロックへ継ぐ例をとり上げたが、他の場合でも同様に点Ｓ1 ，点Ｓ2 を求めることができれば、ブロック継ぎ目での法線方向制御を行うことができる。
【００３２】
図１１に示されているようなヘールバイトＴでは刃先ＴA と主軸中心Ｓ0 とのオフセットをＫとしたような場合には、図１２に示されているように、被加工物Ｗにおけるプログラム軌跡に対して主軸中心Ｓ0 をＩだけオフセットするのは、すでに図７で説明したとおり、既存技術である工具径補正のアルゴリズムを利用すれば可能であるが、かつＫだけ進行方向へオフセットするには別の考え方をプラスする必要がある。この場合には主軸中心Ｓ0 における位置と主軸刃先角度θの制御を行う必要があり、その求め方を、次のごとく説明する。
【００３３】
ブロック継ぎ目の外側をヘールバイトＴの刃先が通る場合には、継ぎ目の前後のブロックが直線、円弧、その他の補間によらず、次のアルゴリズムで計算できる。一例として、直線ブロックから直線ブロックへ継ぐ場合について説明する。
【００３４】
すなわち、図１３に示されているように、点ＯはブロックＡの指令終点のプログラム座標原点からのベクトル，Ｉ1 ，Ｊ1 ，Ｋ1 はブロックＡでのオフセットベクトル、Ｉ2 ，Ｊ2 ，Ｋ2 はブロックＢでのオフセットベクトルとする。
ＯＳ1 ＝Ｏ＋Ｉ1 ＋Ｋ1
ＯＳ2 ＝Ｏ＋Ｉ2 ＋Ｋ2       ……式９
ＯＳ1 ，ＯＳ2 によって求められた点Ｓ1 から点Ｓ2 まで主軸中心Ｓ0 が点０を中心とした半径｜ＯＳ1 ｜の円弧補間で移動し、同時に主軸Ｓが同期して角度θ回転すれば、ヘールバイトＴの工具刃先ＴA は点Ｏを中心にコーナーを回ることになる。
【００３５】
また、そのときの主軸中心Ｓ0 の速度はプログラム指令速度Ｆでなく、プログラム経路と反対側の工具刃先がプログラム指令速度Ｆとなるように次式により求められる。
【数１】
0003599800.tif 000002
ここでは直線補間の場合について説明したが、円弧補間など他の補間でもブロック始点、終点におけるオフセットベクトルが算出できれば、点Ｓ1 ，点Ｓ2 を求めることが可能であり、したがって、ブロック継ぎ目での法線方向制御を行うことができる。
【００３６】
ブロック継ぎ目の内側をヘールバイトＴの刃先が通る場合には、継ぎ目の前後のブロックが直線、円弧、その他の補間によらず、次のアルゴリズムで計算できる。一例として、直線ブロックから直線ブロックへ継ぐ場合について説明する。
【００３７】
すなわち、図１４に示されているように、点ＯはブロックＡの指令終点のプログラム座標原点からのベクトル，Ｉ1 ，Ｊ1 ，Ｋ1 はブロックＡでのオフセットベクトル、Ｉ2 ，Ｊ2 ，Ｋ2 はブロックＢでのオフセットベクトルとする。
【００３８】
ＯＰを半径（Ｉ＋Ｊ）のヘールバイトＴでの工具径補正におけるブロック継ぎ目での工具径補正用交点ベクトルとすると、点Ｓ1 ，点Ｓ2 は次式により求められる。
ＯＳ1 ＝Ｏ＋ＯＰ−Ｊ1 ＋Ｋ1
ＯＳ2 ＝Ｏ＋ＯＰ−Ｊ2 ＋Ｋ2     ……式１１
主軸中心Ｓ0 は点Ｓ1 まで達したら、そこから点Ｓ2 まで点Ｐを中心とする半径√（Ｊ2 ＋Ｋ2 ）の円弧補間を行い、同時に主軸Ｓが同期してθだけ回転する。また、主軸中心Ｓ0 の速度は、プログラム指令速度Ｆでなく、次式により求められる。
【数２】
0003599800.tif 000003
また、Ｊ＝０の場合には主軸Ｓだけθ回転する。
【００３９】
ここでは直線補間の場合について説明したが、円弧補間など他の補間でもブロック始点、終点におけるオフセットベクトルが算出できれば、点Ｓ1 ，点Ｓ2 を求めることが可能であり、したがって、ブロック継ぎ目での法線方向制御を行うことができる。
【００４０】
次に、直線ブロックから円弧ブロック、円弧ブロックから直線ブロックあるいは円弧ブロックから円弧ブロックへ継いでヘールバイトＴが通る場合があるが、一例として円弧ブロックから円弧ブロックへ継ぐ場合について説明する。
【００４１】
図１５に示されているように、点ＯはブロックＡの指令終点のプログラム座標原点からのベクトル，Ｉ1 ，Ｊ1 ，Ｋ1 はブロックＡでのＰ点でのオフセットベクトル、Ｉ2 ，Ｊ2 ，Ｋ2 はブロックＢでのＰ点でのオフセットベクトルとし、ＯＰを半径（Ｉ＋Ｊ）の工具径補正におけるブロック継ぎ目での工具径補正用交点ベクトルとすると、点Ｓ1 でのオフセットベクトルＩ1 ，Ｊ1 ，Ｋ1 は、    Ｉ1   ＝ＯA Ｐ×Ｉ／｜ＯA Ｐ｜
Ｊ1   ＝ＯA Ｐ×Ｊ／｜ＯA Ｐ｜    ……式１３
Ｋ1 ’＝ＯA Ｐ×Ｋ／｜ＯA Ｐ｜
但し、Ｋ1 はＫ1 ’を９０度回転したもの
点Ｓ2 でのオフセットベクトルＩ2 ，Ｊ2 ，Ｋ2 は、
Ｉ2   ＝ＰＯB ×Ｉ／｜ＯB Ｐ｜
Ｊ2   ＝ＰＯB ×Ｊ／｜ＯB Ｐ｜    ……式１４
Ｋ2 ’＝ＰＯB ×Ｋ／｜ＯB Ｐ｜
但し、Ｋ2 はＫ2 ’を９０度回転したもの  よって、点Ｓ1 ，点Ｓ2 は次式で求められる。
ＯＳ1 ＝Ｏ＋ＯＰ−Ｊ1 ＋Ｋ1
ＯＳ2 ＝Ｏ＋ＯＰ−Ｊ2 ＋Ｋ2       ……式１５
【００４２】
主軸中心Ｓ0 は点Ｓ1 まで達したら、そこから点Ｓ2 まで点Ｐを中心とする半径√（Ｊ2 ＋Ｋ2 ）の円弧補間を行い、同時に主軸Ｓが同期してθだけ回転する。また、主軸Ｓの中心速度は、次式により求められる。
【数３】
0003599800.tif 000004
また、Ｊ＝０の場合には主軸Ｓだけ回転する。
【００４３】
ここでは、例として円弧ブロックから円弧ブロックへ継げる例を取り上げたが、他の場合でも同様に点Ｓ1 ，点Ｓ2 を求めることができれば、ブロック継ぎ目での法線方向制御を行うことができる。
【００４４】
次に、この発明の主軸法線方向制御方法を実施する数値制御工作機械の一例が図２に示されている。すなわち、図２において、数値制御工作機械は、ベッド１と、ベッド１上にＹ軸方向に移動可能に設けられてＹ軸テーブル３と、Ｙ軸テーブル３上にＸ軸方向に移動可能に設けられてＸ軸テーブル５とを有し、Ｘ軸テーブル５上に被加工物Ｗを固定載置される。Ｙ軸テーブル３はＹ軸サーボモータ７によってＹ軸方向に駆動され、Ｘ軸テーブル５はＸ軸サーボモータ９によってＸ軸方向に駆動され、Ｘ軸テーブル５上の被加工物Ｗは、Ｙ軸サーボモータ７によるＹ軸テーブル３のＹ軸方向の移動とＸ軸サーボモータ９によるＸ軸テーブル５のＸ軸方向の移動により、Ｘ軸とＹ軸による水平面に沿ってＸ座標とＹ座標による任意に座標位置に軸制御される。
【００４５】
数値制御工作機械のコラム１１にはＺ軸スライダ１３が上下方向、即ちＺ軸方向に移動可能に装着されており、Ｚ軸スライダ１３はＺ軸サーボモータ１５によってＺ軸方向に駆動される。
【００４６】
Ｚ軸スライダ１３には主軸頭１７が取り付けられており、主軸頭１７には主軸ＳがＺ軸と同一方向の軸線周り、即ちＣ軸周りの回転可能に装着されている。
【００４７】
主軸Ｓは主軸モータであるＣ軸サーボモータ１９により回転駆動されると共にＣ軸回転角を定量的に制御され、主軸Ｓには工具としての例えばヘールバイトＴが装着される。
【００４８】
ここで、Ｘ軸とＹ軸による被加工物Ｗの移動平面は主軸Ｓの回転軸線、即ちＣ軸（Ｚ軸）に直交する平面である。
【００４９】
Ｘ軸サーボモータ９、Ｙ軸サーボモータ７、Ｚ軸サーボモータ１５、Ｃ軸サーボモータ１９の各々にはロータリエンコーダ２１，２３，２５，２７が装着されており、このロータリエンコーダ２１，２３，２５，２７は各軸のサーボモータ９，７，１５，１９の回転角を検出し、回転角情報をＮＣ装置２９へ出力する。
【００５０】
前記ＮＣ装置２９は、図３に示されているように、バス３１により相互に接続されたメインプロセッサ（ＣＰＵ１）３３とＲＯＭ３５とＲＡＭ３７，３９と加工プログラム入力部４１と表示器４３とサーボコントローラ４５とを有している。また高速処理化のためにメインプロセッサ３３にはコプロセッサ（ＣＰＵ２）４７が直接接続されている。ＲＯＭ３５はシステムプログラムを格納し、ＲＡＭ３７は一時的なデータ格納メモリとして作用し、ＲＡＭ３９は加工プログラム入力部４１より入力した加工プログラムや工具データなどを格納する。サーボコントローラ４５には各軸のサーボアンプ４９が接続され、サーボアンプ４９には各軸サーボモータ７，９，１５が接続されている。さらに、前記バス３１にはＣ軸サーボモータ１９を制御するための主軸コントローラ５１が接続されている。
【００５１】
前記表示器４３は実行中の加工プログラムや機械位置座標など加工に必要なデータを表示するものである。また、主軸コントローラ５１は主軸Ｓにおける法線方向制御で主軸Ｓの角度（θ）を加工プログラム進行方向と常に一定に保つように制御すべくメインプロセッサ３３より速度出力を行い、主軸位置フィードバックを読取るものである。
【００５２】
上記構成により、主軸法線方向制御モード中のブロック継ぎ目での解析動作を、図１に示されているフローチャートを基にして説明すると、まず加工プログラムを１ブロックずつＲＡＭ３９から読み出し解析していくが、主軸Ｓの法線方向制御中は前後２ブロックからその継ぎ目での様子によって、主軸中心Ｓ0 が内側を通る場合と外側を通る場合とでオフセットベクトルの計算の仕方が異なるから、ステップＳ１で主軸中心Ｓ0 が内側を通るかどうかの判断が行われる。
【００５３】
主軸中心Ｓ0 が内側を通ると判断された場合には、ステップＳ２に進み、工具径補正での補正用交点ベクトルＯＰを計算する。次にステップＳ３で継ぎ目での前後ブロックのオフセットベクトルＩ1 ，Ｊ1 ，Ｋ1 ；Ｉ2 ，Ｊ2 ，Ｋ2 を計算する。ステップＳ４で前ブロック補正軌跡終点の座標を、例えば式１１のＯＳ1 ＝Ｏ＋ＯＰ−Ｊ1 ＋Ｋ1 で計算する。ここで得られた座標が前ブロックＡの補正した結果の主軸中心Ｓ0 の終点となる。
【００５４】
ステップＳ５で次ブロック補正軌跡終点の座標を、例えば式１１のＯＳ2 ＝Ｏ＋ＯＰ−Ｊ2 ＋Ｋ2 で計算する。ここで得られた座標が次ブロックＢの補正した結果の主軸中心Ｓ0 の終点となる。ステップＳ６で前ブロック補正軌跡終点から次ブロック補正軌跡終点まで円弧補間させ、それに同期して主軸Ｓをθだけ回転させるための計算が行われる。
【００５５】
前記ステップＳ１で主軸中心Ｓ0 が内側を通らずに外側を通ると判断された場合には、ステップＳ７に進み、継ぎ目での前後ブロックのオフセットベクトルＩ1 ，Ｊ1 ，Ｋ1 ；Ｉ2 ，Ｊ2 ，Ｋ2 を計算する。ステップＳ８で前ブロック補正軌跡終点の座標を、例えば式９のＯＳ1 ＝Ｏ＋Ｉ1 ＋Ｋ1 で計算する。
【００５６】
ステップＳ９で次ブロック始点の補正軌跡座標を、式９のＯＳ2 ＝Ｏ＋Ｉ2 ＋Ｋ2 で計算する。ここで得られた座標が次ブロックＢの補正した結果の主軸中心Ｓ0 の終点となる。ステップＳ１０で前ブロック補正軌跡終点から次ブロック補正軌跡始点まで円弧補間させ、それに同期して主軸Ｓを回転させるための計算が行われる。
【００５７】
このようにして得られた工具中心の軌跡を工具中心が移動し、同時に主軸Ｓを同期させることによって、工具刃先ＴA が主軸中心Ｓ0 に対してオフセットしていても、オペレータはそれを意識せずに容易にヘール加工を行うことができる。
また、ブロック継ぎで主軸Ｓだけが回転する場合なども、工具刃先の片方が進行方向と逆方向へ動くことがなく、工具刃先の先端速度がプログラム指令された速度になるので、一定の面精度を得ることができる。
【００５８】
なお、この発明は、前述した実施例に限定されることなく、適宜な変更を行うことによって、その他の態様で実施し得るものである。本実施例では工具としてヘールバイトを用いた例で説明したが、通常のバイトで主軸中心Ｓ0 とオフセットされたものでも適用できるものである。また、実施例の説明では、直線補間、円弧補間しか取り上げなかったが、各ブロック間のオフセットベクトルを求めることができれば、主軸法線方向制御を正しく行うことが可能である。
【００５９】
【発明の効果】
以上のごとき実施例の説明より理解されるように、請求項１による発明によれば、工具の刃先で被加工物を加工する際に、工具の刃先が主軸の回転中心からオフセットされた状態で工具が主軸に装着されていても、加工プログラムのブロック継ぎ目の補間動作に対して、加工進行に対して工具の刃先が直角に保ち、かつ前記工具の刃先全体が常に加工進行と逆方向へ移動しないよう少なくとも主軸の回転角度を制御する制御機能を備えているから、工具の刃先が加工プログラム軌跡の加工進行方向に対して常に直角に保たれて加工されるので、容易に加工ができると共にオペレータは工具の刃先が主軸回転中心に対してオフセットされていることを意識することなく加工を行うことができる。
【００６０】
また、ブロック継ぎ目で主軸だけが回転する場合なども工具刃先の進行方向と逆方向へ動くことがなく、工具の刃先の先端速度がプログラム指令された速度になるので一定の面精度を得ることができる。
【図面の簡単な説明】
【図１】この発明の主軸法線方向制御モード中のブロック継ぎ目での解析動作を説明するフローチャートである。
【図２】この発明の主軸法線方向制御方法を実施するのに使用される数値制御工作機械の一例を示す概略斜視図である。
【図３】この発明の主軸法線方向制御方法を実施するのに使用される数値制御工作機械の制御系を示すブロック線図である。
【図４】（Ａ）はヘールバイトを装着した主軸の側面図、（Ｂ）は（Ａ）の正面図である。
【図５】主軸中心よりオフセットされた工具の刃先、プログラム軌跡および加工進行方向との関係を示した説明図である。
【図６】工具の刃先の中心が主軸中心上にある場合の工具オフセットの説明図である。
【図７】図６に示した工具の刃先とプログラム軌跡との関係を示した説明図である。
【図８】図６に示した工具の刃先がブロック継ぎ目の外側を通る場合の説明図である。
【図９】図６に示した工具の刃先がブロック継ぎ目の内側を通る場合の説明図である。
【図１０】図６に示した工具の刃先が円弧ブロックから円弧ブロックへ内側を継いで通る場合の説明図である。
【図１１】工具の刃先の中心が主軸中心上にない場合の工具オフセットの説明図である。
【図１２】図１１に示した工具の刃先とプログラム軌跡との関係を示した説明図である。
【図１３】図１１に示した工具の刃先がブロック継ぎ目の外側を通る場合の説明図である。
【図１４】図１１に示した工具の刃先がブロック継ぎ目の内側を通る場合の説明図である。
【図１５】図１１に示した工具の刃先が円弧ブロックから円弧ブロックへ内側を継いで通る場合の説明図である。
【符号の説明】
Ｓ  主軸
Ｓ0   主軸中心
Ｔ  ヘールバイト（工具）
ＴA   工具の刃先
１７  主軸頭
１９  Ｃ軸サーボモータ
２９  ＮＣ装置
３３  メインプロセッサ
３５  ＲＯＭ
３７，３９  ＲＡＭ
４３  表示器
５１  主軸コントローラ
【図１】
0003599800.tif 000005
【図２】
0003599800.tif 000006
【図３】
0003599800.tif 000007
【図４】
0003599800.tif 000008
【図５】
0003599800.tif 000009
【図６】
0003599800.tif 000010
【図７】
0003599800.tif 000011
【図８】
0003599800.tif 000012
【図９】
0003599800.tif 000013
【図１０】
0003599800.tif 000014
【図１１】
0003599800.tif 000015
【図１２】
0003599800.tif 000016
【図１３】
0003599800.tif 000017
【図１４】
0003599800.tif 000018
【図１５】
0003599800.tif 000019