(57)【特許請求の範囲】
【請求項１】
複数の指令ブロックにより構成され、かつ、ピックフィードが切削部分にある加工プログラムに従って対象物を移動制御する数値制御装置において、
連続する指令ブロックが同一方向かどうかを所定のルールに従って判定する判定部と、
前記判定部で同一方向と判定された場合に、連続する指令ブロックを１つのベクトルとするベクトル作成部と、
連続する３つの前記ベクトルをそれぞれ第１ベクトル、第２ベクトル、および第３ベクトルとする３ベクトル特定部と、
前記第１ベクトルと前記第３ベクトルが同一方向かを第１の条件として判定する第１判定部と、
前記第２ベクトルの長さが予め定めた範囲内の長さかを第２の条件として判定する第２判定部と、
前記第１の条件と前記第２の条件がともに成立する場合に、移動経路を、前記第１ベクトルの始点、前記第２ベクトルの始点から一定長さ離れた前記第１ベクトル上にある点、前記第２ベクトルの終点から一定長さ離れた前記第３ベクトル上にある点、および前記第３ベクトルの終点を順次直線で結ぶ経路に修正し、前記第２ベクトルの始点から一定長さ離れた前記第１ベクトル上にある点、前記第２ベクトルの終点から一定長さ離れた前記第３ベクトル上にある点を結ぶ直線が、前記第２ベクトルと交わらない場合には、前記第２ベクトルの始点、または、終点のうち、前記直線に近いほうの点を通過点として、前記第１ベクトルの始点、前記第２ベクトルの始点から一定長さ離れた前記第１ベクトル上にある点、前記通過点、前記第２ベクトルの終点から一定長さ離れた前記第３ベクトル上にある点、前記第３ベクトルの終点を順次直線で結ぶ経路に修正する経路修正部と、
を備えたことを特徴とする数値制御装置。
【請求項２】
複数の指令ブロックにより構成され、かつ、ピックフィードが切削部分にある加工プログラムに従って対象物を移動制御する数値制御装置において、
連続する指令ブロックが同一方向かどうかを所定のルールに従って判定する判定部と、
前記判定部で同一方向と判定された場合に、連続する指令ブロックを１つのベクトルとするベクトル作成部と、
連続する３つの前記ベクトルをそれぞれ第１ベクトル、第２ベクトル、および第３ベクトルとする３ベクトル特定部と、
前記第１ベクトルと前記第３ベクトルが同一方向かを第１の条件として判定する第１判定部と、
前記第２ベクトルの長さが予め定めた範囲内の長さかを第２の条件として判定する第２判定部と、
前記第１の条件と前記第２の条件がともに成立する場合に、移動経路を、前記第１ベクトルの始点、前記第２ベクトルの始点から一定長さ離れた前記第１ベクトル上にある点、前記第２ベクトルの終点から一定長さ離れた前記第３ベクトル上にある点、および前記第３ベクトルの終点を順次直線で結ぶ経路に修正し、前記第２ベクトルの始点から一定長さ離れた前記第１ベクトル上にある点、前記第２ベクトルの終点から一定長さ離れた前記第３ベクトル上にある点を結ぶ直線が、前記第２ベクトルと交わらない場合には、前記第２ベクトルの始点、および、終点から予め定められたトレランスの範囲内にある点のうち、前記直線に一番近い点を通過点として、前記第１ベクトルの始点、前記第２ベクトルの始点から一定長さ離れた前記第１ベクトル上にある点、前記通過点、前記第２ベクトルの終点から一定長さ離れた前記第３ベクトル上にある点、前記第３ベクトルの終点を順次直線で結ぶ経路に修正する経路修正部と、
を備えたことを特徴とする数値制御装置。
【請求項３】
複数の指令ブロックにより構成され、かつ、ピックフィードが切削部分にある加工プログラムに従って対象物を移動制御する数値制御装置において、
連続する指令ブロックが同一方向かどうかを所定のルールに従って判定する判定部と、
前記判定部で同一方向と判定された場合に、連続する指令ブロックを１つのベクトルとするベクトル作成部と、
連続する３つの前記ベクトルをそれぞれ第１ベクトル、第２ベクトル、および第３ベクトルとする３ベクトル特定部と、
前記第１ベクトルと前記第３ベクトルが同一方向かを第１の条件として判定する第１判定部と、
前記第２ベクトルの長さが予め定めた範囲内の長さかを第２の条件として判定する第２判定部と、
前記第２ベクトルに平行で、かつ、前記第２ベクトルの始点から一定長さ離れた前記第１ベクトル上にある点と前記第２ベクトルの終点から一定長さ離れた前記第３ベクトル上にある点を通る平面を算出する算出部と、前記平面と前記第２ベクトルとの最短距離を算出する算出部と、
前記平面と前記第２ベクトルとの最短距離が予め定められた範囲外の距離かを第３の条件として判定する第３判定部と、
前記第２ベクトルの始点から一定長さ離れた前記第１ベクトル上にある点と前記第２ベクトル上の点と前記第２ベクトルの終点から一定長さ離れた前記第３ベクトル上にある点を最短距離で結ぶ第２ベクトル上の点を算出する算出部と、
前記第１の条件、第２の条件および前記第３の条件が成立する場合に、前記第２ベクトルの始点から一定長さ離れた前記第１ベクトル上にある点と前記第２ベクトル上の点と前記第２ベクトルの終点から一定長さ離れた前記第３ベクトル上にある点を最短距離で結ぶ経路に修正する経路修正部と、
を備えたことを特徴とする数値制御装置。
【請求項４】
前記経路修正部は、前記第３の条件が成立しない場合に、前記第２ベクトルの始点から一定長さ離れた前記第１ベクトル上にある点と前記第２ベクトルの終点から一定長さ離れた前記第３ベクトル上にある点を直線で結ぶ経路に修正することを特徴とする請求項３に記載の数値制御装置。
【請求項５】
前記第２ベクトルの始点から一定長さ離れた前記第１ベクトル上にある点は、前記第１ベクトルの始点であり、前記第２ベクトルの終点から一定長さ離れた前記第３ベクトル上にある点は、前記第３ベクトルの終点であることを特徴とする請求項１〜４のいずれか一つに記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械を制御する数値制御装置に関し、特に、加工プログラムの移動経路を修正する機能を備えた数値制御装置に関する。
【背景技術】
【０００２】
ＣＡＭ等で作成された金型加工用の加工プログラムには、隣接する移動経路を繋ぐピックフィードが存在する。一般的に、図１８に示されるように、往復で切削する場合、ピックフィードは非切削部分にあるが、図１９に示されるように等高線に沿って切削する場合、ピックフィードは切削部分にある場合が多い。どちらの場合も、ピックフィードとその前後のブロックは滑らかに繋がっていることが望ましい。なぜなら、ピックフィードとその前後のブロックが滑らかに繋がっていない加工プログラムでは、ピックフィードの部分でコーナ減速、加速度クランプ等により不要な減速が発生する場合があるからである。そして、ピックフィードが非切削部分にある加工プログラムでは、ピックフィードの部分で減速が発生すると、加工効率の低下の要因となる。他方、ピックフィードが切削部分にある加工プログラムでは、ピックフィードの部分で減速が発生すると、ワークにカッターマークが付く等、加工面に悪影響を与える要因となる。
【０００３】
そこで、図２０に示されるように、ピックフィードとその前後のブロックを滑らかに繋げるために、ピックフィードの部分を加工プログラムの中から抽出し、ピックフィードの部分とその前後のエアカットの部分の経路を、曲線上の任意点において曲率が連続する高次ＮＵＲＢＳ曲線に置き換える技術が特許文献１に開示されている。前記技術により、ピックフィードが非切削部分にある加工プログラムでは、ピックフィードの部分での減速が抑えられ、加工効率を向上させることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２０００３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に開示された技術はピックフィードが切削部分にある加工プログラムを想定していない。また、前記技術は、ピックフィードの部分が複数ブロックで構成されている加工プログラムには適用できないという問題がある。  
このため、ピックフィードが切削部分にある加工プログラムでは、加工プログラムの作成段階でピックフィードのない渦巻き状の移動経路を作成できるＣＡＭを使用して加工プログラムを作成し直すか、あるいは、補間後加減速の時定数を大きくするか、切削速度を遅くすることにより、ピックフィードでの減速の影響を最小限に抑えていた。しかし、補間後加減速の時定数を大きくする方法では金型の形状精度が悪くなり、切削速度を遅くする方法では加工時間が長くなるという問題があった。
【０００６】
そこで本発明の目的は、上記従来技術の問題点を解決するために、ピックフィードが切削部分にある加工プログラムの場合に、ピックフィード前後の滑らかでない移動経路を滑らかな経路とするように修正することで不要な減速を防止し、加工時間を極力短縮しながら良好な加工面を得ることができるように加工プログラムの移動経路を修正する機能を備えた数値制御装置を提供することである。
【課題を解決するための手段】
【０００７】
本願の請求項１に係る発明は、複数の指令ブロックにより構成され、かつ、ピックフィードが切削部分にある加工プログラムに従って対象物を移動制御する数値制御装置において、連続する指令ブロックが同一方向かどうかを所定のルールに従って判定する判定部と、前記判定部で同一方向と判定された場合に、連続する指令ブロックを１つのベクトルとするベクトル作成部と、連続する３つの前記ベクトルをそれぞれ第１ベクトル、第２ベクトル、および第３ベクトルとする３ベクトル特定部と、前記第１ベクトルと前記第３ベクトルが同一方向かを第１の条件として判定する第１判定部と、前記第２ベクトルの長さが予め定めた範囲内の長さかを第２の条件として判定する第２判定部と、前記第１の条件と前記第２の条件がともに成立する場合に、移動経路を、前記第１ベクトルの始点、前記第２ベクトルの始点から一定長さ離れた前記第１ベクトル上にある点、前記第２ベクトルの終点から一定長さ離れた前記第３ベクトル上にある点、および前記第３ベクトルの終点を順次直線で結ぶ経路に修正し、前記第２ベクトルの始点から一定長さ離れた前記第１ベクトル上にある点、前記第２ベクトルの終点から一定長さ離れた前記第３ベクトル上にある点を結ぶ直線が、前記第２ベクトルと交わらない場合には、前記第２ベクトルの始点、または、終点のうち、前記直線に近いほうの点を通過点として、前記第１ベクトルの始点、前記第２ベクトルの始点から一定長さ離れた前記第１ベクトル上にある点、前記通過点、前記第２ベクトルの終点から一定長さ離れた前記第３ベクトル上にある点、前記第３ベクトルの終点を順次直線で結ぶ経路に修正する経路修正部と、
を備えたことを特徴とする数値制御装置である。
請求項２に係る発明は、複数の指令ブロックにより構成され、かつ、ピックフィードが切削部分にある加工プログラムに従って対象物を移動制御する数値制御装置において、連続する指令ブロックが同一方向かどうかを所定のルールに従って判定する判定部と、前記判定部で同一方向と判定された場合に、連続する指令ブロックを１つのベクトルとするベクトル作成部と、連続する３つの前記ベクトルをそれぞれ第１ベクトル、第２ベクトル、および第３ベクトルとする３ベクトル特定部と、前記第１ベクトルと前記第３ベクトルが同一方向かを第１の条件として判定する第１判定部と、前記第２ベクトルの長さが予め定めた範囲内の長さかを第２の条件として判定する第２判定部と、前記第１の条件と前記第２の条件がともに成立する場合に、移動経路を、前記第１ベクトルの始点、前記第２ベクトルの始点から一定長さ離れた前記第１ベクトル上にある点、前記第２ベクトルの終点から一定長さ離れた前記第３ベクトル上にある点、および前記第３ベクトルの終点を順次直線で結ぶ経路に修正し、前記第２ベクトルの始点から一定長さ離れた前記第１ベクトル上にある点、前記第２ベクトルの終点から一定長さ離れた前記第３ベクトル上にある点を結ぶ直線が、前記第２ベクトルと交わらない場合には、前記第２ベクトルの始点、および、終点から予め定められたトレランスの範囲内にある点のうち、前記直線に一番近い点を通過点として、前記第１ベクトルの始点、前記第２ベクトルの始点から一定長さ離れた前記第１ベクトル上にある点、前記通過点、前記第２ベクトルの終点から一定長さ離れた前記第３ベクトル上にある点、前記第３ベクトルの終点を順次直線で結ぶ経路に修正する経路修正部と、を備えたことを特徴とする数値制御装置である。
請求項３に係る発明は、複数の指令ブロックにより構成され、かつ、ピックフィードが切削部分にある加工プログラムに従って対象物を移動制御する数値制御装置において、連続する指令ブロックが同一方向かどうかを所定のルールに従って判定する判定部と、前記判定部で同一方向と判定された場合に、連続する指令ブロックを１つのベクトルとするベクトル作成部と、連続する３つの前記ベクトルをそれぞれ第１ベクトル、第２ベクトル、および第３ベクトルとする３ベクトル特定部と、前記第１ベクトルと前記第３ベクトルが同一方向かを第１の条件として判定する第１判定部と、前記第２ベクトルの長さが予め定めた範囲内の長さかを第２の条件として判定する第２判定部と、前記第２ベクトルに平行で、かつ、前記第２ベクトルの始点から一定長さ離れた前記第１ベクトル上にある点と前記第２ベクトルの終点から一定長さ離れた前記第３ベクトル上にある点を通る平面を算出する算出部と、前記平面と前記第２ベクトルとの最短距離を算出する算出部と、前記平面と前記第２ベクトルとの最短距離が予め定められた範囲外の距離かを第３の条件として判定する第３判定部と、前記第２ベクトルの始点から一定長さ離れた前記第１ベクトル上にある点と前記第２ベクトル上の点と前記第２ベクトルの終点から一定長さ離れた前記第３ベクトル上にある点を最短距離で結ぶ第２ベクトル上の点を算出する算出部と、前記第１の条件、第２の条件および前記第３の条件が成立する場合に、前記第２ベクトルの始点から一定長さ離れた前記第１ベクトル上にある点と前記第２ベクトル上の点と前記第２ベクトルの終点から一定長さ離れた前記第３ベクトル上にある点を最短距離で結ぶ経路に修正する経路修正部と、を備えたことを特徴とする数値制御装置である。
【０００８】
請求項４に係る発明は、前記経路修正部は、前記第３の条件が成立しない場合に、前記第２ベクトルの始点から一定長さ離れた前記第１ベクトル上にある点と前記第２ベクトルの終点から一定長さ離れた前記第３ベクトル上にある点を直線で結ぶ経路に修正することを特徴とする請求項３に記載の数値制御装置である。  
請求項５に係る発明は、前記第２ベクトルの始点から一定長さ離れた前記第１ベクトル上にある点は、前記第１ベクトルの始点であり、前記第２ベクトルの終点から一定長さ離れた前記第３ベクトル上にある点は、前記第３ベクトルの終点であることを特徴とする請求項１〜４のいずれか一つに記載の数値制御装置である。
【発明の効果】
【０００９】
本発明により、ピックフィードが切削部分にある加工プログラムの場合に、ピックフィード前後の滑らかでない移動経路を滑らかな経路とするように修正することで不要な減速を防止し、加工時間を極力短縮しながら良好な加工面を得ることができるように加工プログラムの移動経路を修正する機能を備えた数値制御装置を提供できる。
【図面の簡単な説明】
【００１０】
【図１】本発明に係る実施形態の数値制御装置の機能ブロック図である。
【図２】指令経路の一例を説明する図である。
【図３】修正後の指令経路を説明する図である。
【図４】修正後の指令経路を説明する図である。
【図５】修正後の指令経路を説明する図である。
【図６】修正後の指令経路を説明する図である。
【図７】修正後の指令経路を説明する図である。
【図８】修正後の指令経路を説明する図である。
【図９】図１に示される本発明の実施形態の数値制御装置１０において実行される指令経路を修正する処理をおこなうアルゴリズムを説明するフローチャートである。
【図１０】本発明の実施形態においてピックフィード前後の滑らかでない移動経路を滑らかな経路となるように修正することを説明する図である。
【図１１】本発明の他の実施形態においてピックフィード前後の滑らかでない移動経路を滑らかな経路となるように修正することを説明する図である。
【図１２】本発明の他の実施形態の数値制御装置のブロック図である。
【図１３】ピックフィードが加工プログラム形状の山部分にある指令経路が実行される場合について説明する図である。
【図１４】第２ベクトルに平行な平面上の直線ＡＤと第２ベクトルを前記平面に投影した直線Ｂ’Ｃ’との交点Ｅ’を求めることを説明する図である。
【図１５】第２ベクトル上の点を経由する最短経路に修正することを説明する図である。
【図１６】図１２に示される本発明の他の実施形態の数値制御装置１０において実行される指令経路を修正する処理をおこなうアルゴリズムを説明するフローチャートである。
【図１７】本発明に係る加工プログラムの移動経路を修正する機能を備えた数値制御装置の実施形態のブロック図である。
【図１８】往復で切削する場合にピックフィードが非切削部分に存在することを説明する図である。
【図１９】等高線に沿って切削する場合にピックフィードが切削部分に存在することを説明する図である。
【図２０】ピックフィードの部分とその前後のエアカット部分の経路を曲線上の任意の点において曲率が連続する高次ＮＵＲＢＳ曲線に置き換える従来技術を説明する図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態を説明する図である。
図１は、本発明に係る実施形態の数値制御装置１０のブロック図である。プログラム入力部２は、自動運転の実行時に加工プログラム１を読み出し、指令解析部３に入力する。
指令解析部３は、指令ブロック毎の移動量や送り速度の指令から補間用のデータを生成する前処理部である。前処理されたデータは、補間処理部７に入力され、各軸（例えば、Ｘ軸，Ｙ軸，Ｚ軸）の移動指令に分割された後、各軸（Ｘ軸，Ｙ軸，Ｚ軸）のサーボモータに出力される。
【００１２】
指令解析部３の内部において、ベクトル作成部４は、同一方向の連続する指令ブロックを一つにしたベクトルを作成し、ピックフィード判定部５に入力する。ピックフィード判定部５では、入力されたベクトルからピックフィード部分かどうかの判定が行われ、ピックフィード部分であった場合には、経路修正部６で経路の修正が行われる。
【００１３】
ここでは、一例として、図２に示すような指令経路が実行される場合について説明する。説明の都合上、移動は２次元で制御されるものとする。また、Ｎ１〜Ｎ８は指令ブロックの経路を表しており、Ｎ１から順に指令されているものとする。  
プログラム入力部２（図１参照）は、Ｎ１〜Ｎ８の指令ブロックを順次読み出し、指令解析部３（図１参照）に入力する。次に、指令解析部３の内部において、ベクトル作成部４（図１参照）では、同一の方向に連続する指令ブロックを一つにしたベクトルを作成する。例えば、Ｎ１の始点からＮ２の終点へのベクトルを作成し、Ｎ１の終点から前記ベクトルへの垂線の長さが予め定められた長さより短いかどうかを判定する。短い場合はＮ１，Ｎ２を一つのベクトルとし、引き続き、Ｎ１の始点からＮ３の終点へのベクトルを作成し、同様に、評価する。
【００１４】
ここでは、図３に示すように、Ｎ１からＮ３までを一つのベクトルとし、これを第１ベクトルとする。以降、同様に、Ｎ４からＮ５までを第２ベクトルとし、Ｎ６からＮ８までを第３ベクトルとする。  
もちろん判定条件としては、上記条件のみに限定されるものではなく、Ｎ１とＮ２の間、Ｎ２とＮ３の間等、指令ブロック間のなす角度が予め定めた角度より大きいかどうかを判定する方法でもよく、必要に応じて変更することができる。
【００１５】
ピックフィード判定部５（図１参照）では、ピックフィード部分かどうかを判定するために、第１ベクトルと第３ベクトルが同一方向かを第１の条件として判定する。例えば、第１ベクトルと第３ベクトルのなす角度が予め定めた角度より小さい場合に、同一方向とする。さらに、第２ベクトルの長さが予め定めた範囲内の長さかを第２の条件として判定する。第１の条件と第２の条件がともに成立する場合に、第１、第２、および第３ベクトルをピックフィード部分とする。もちろん判定条件としては、上記条件のみに限定されるものではなく、必要に応じて変更することができる。
【００１６】
経路修正部６（図１参照）では、第１、第２、および第３ベクトルがピックフィード部分であった場合、図３に示すように、移動経路を、第１ベクトルの始点、第２ベクトルの始点から一定の長さ（Ｄ１）離れた第１ベクトル上にある点、第２ベクトルの終点から一定の長さ（Ｄ２）離れた第３ベクトル上にある点、第３ベクトルの終点を順次直線で結ぶ滑らかな経路に修正する。ここで、長さＤ１、Ｄ２については同じ長さでもよく、異なる長さでもよい。
【００１７】
なお、演算処理を簡単にするため、図４に示すように、第２ベクトルの始点から一定長さ離れた第１ベクトル上にある点を第１ベクトルの始点と同一とし、第２ベクトルの終点から一定長さ離れた第３ベクトル上にある点を第３ベクトルの終点と同一として、始点、終点間を直線で結ぶ経路に修正することもできる。ただし、図５に示すように、隣接する移動経路の第１ベクトル同士または第３ベクトル同士の長さが異なる場合、隣接する移動経路の平行性が失われ、加工面に悪影響を与える恐れがあるため、この方法は使用できない。この場合は、図６に示すように、移動経路を、第１ベクトルの始点、第２ベクトルの始点から一定長さ離れた第１ベクトル上にある点、第２ベクトルの終点から一定長さ離れた第３ベクトル上にある点、第３ベクトルの終点を順次直線で結ぶ滑らかな経路に修正する必要がある。
【００１８】
また、第２ベクトルの始点から一定長さ離れた第１のベクトル上にある点と第２ベクトルの終点から一定長さ離れた第３ベクトル上にある点を結ぶ直線が、第２ベクトルと交わらない場合には、第２ベクトルの始点、または、終点のうち、前記直線に近いほうの点を通過点として、第１ベクトルの始点、第２ベクトルの始点から一定長さ離れた第１ベクトル上にある点、前記通過点、第２ベクトルの終点から一定長さ離れた第３ベクトル上にある点、第３ベクトルの終点を順次直線で結ぶ経路に修正することもできる。  
図７は、第２ベクトルの始点から一定長さ離れた第１ベクトル上にある点を第１ベクトルの始点と同一とし、第２ベクトルの終点から一定長さ離れた第３ベクトル上にある点を第３ベクトルの終点と同一とした場合について説明したものである。そして、図７（ａ）は修正後の経路の通過点を第２ベクトルの始点とし、図７（ｂ）は修正後の経路の通過点を第２ベクトルの終点としている。
【００１９】
また、第２ベクトルの始点から一定長さ離れた第１ベクトル上にある点と第２ベクトルの終点から一定長さ離れた第３ベクトル上にある点を結ぶ直線が、第２ベクトルと交わらない場合には、第２ベクトルの始点、および、終点から予め定めたトレランスの範囲内にある点のうち、前記直線に一番近い点を通過点として、第１ベクトルの始点、第２ベクトルの始点から一定長さ離れた第１ベクトル上にある点、前記通過点、第２ベクトルの終点から一定長さ離れた第３ベクトル上にある点、第３ベクトルの終点を順次直線で結ぶ経路に修正することもできる。  
図８は、第２ベクトルの始点から一定長さ離れた第１ベクトル上にある点を第１ベクトルの始点と同一とし、第２ベクトルの終点から一定長さ離れた第３ベクトル上にある点を第３ベクトルの終点と同一とした場合について示したものである。
【００２０】
図９は、図１に示される本発明の実施形態の数値制御装置１０において実行される指令経路を修正する処理をおこなうアルゴリズムを説明するフローチャートである。以下、各ステップに従って説明する。    
●［ステップＳＡ０１］加工プログラムを読み出す。  
●［ステップＳＡ０２］同一方向の連続する指令ブロックを一つにしたベクトルを作成する。なお、作成されたベクトルは、作成された順番に数値制御装置１０内の記憶装置に一次的に記憶される。  
●［ステップＳＡ０３］第１ベクトル，第２ベクトル，第３ベクトルの３つの連続する３ベクトルを作成済みか否か判断し、作成済みでない場合ステップＳＡ０１に戻り処理を継続し、作成済みの場合ステップＳＡ０４へ移行する。  
●［ステップＳＡ０４］第１ベクトルと第３ベクトルが同一方向か否か判断し、同一方向でない場合にはステップＳＡ０７へ移行し、同一方向の場合にはステップＳＡ０５へ移行する。なお、このステップＳＡ０４は請求項１の第１判定部に対応する。  
●［ステップＳＡ０５］第２ベクトルの長さが予め定めた範囲内の長さか否か判断し、定めた範囲内の長さではない場合にはステップＳＡ０７へ移行し、定めた範囲内の長さの場合にはステップＳＡ０６へ移行する。なお、このステップＳＡ０５は請求項１の第２判定部に対応する。  
●［ステップＳＡ０６］移動経路を、第１ベクトルの始点、第１ベクトル上にある点、通過点、第３ベクトル上にある点、第３ベクトルの終点を順次直線で結ぶ経路に修正する。
●［ステップＳＡ０７］補間用のデータを生成する。  
●［ステップＳＡ０８］各軸の移動指令に分割（補間）する。  
●［ステップＳＡ０９］各軸のサーボモータに出力し、処理を終了する。
【００２１】
上述した本発明の実施形態では、修正された移動経路とピックフィードブロックが交わらない場合、修正された経路とピックフィードブロックの始点または終点のどちらか近い方の点、もしくは、ピックフィードブロックの始点または終点のどちらか近い方の点からあるトレランス範囲内に存在する点を経由する経路を最終的な修正経路としている（図３〜図８、図１０参照）。
【００２２】
しかし、本発明の上記実施形態では、修正経路ベクトルとピックフィードベクトルが同一平面に存在しない場合、例えば、加工形状の山部分あるいは谷部分にピックフィードが存在するような加工プログラムは想定されておらず、経由点が前記ピックフィードブロックの始点または終点、もしくは、ピックフィードブロックの始点または終点のどちらか近い方の点からトレランス範囲内に存在する点を経由する経路、すなわち大きく折れ曲がった経路が生成されてしまい、滑らかな経路を生成できない可能性がある。このため、加工形状の山部分または谷部分にピックフィードが存在するような加工プログラムでは、最良の加工時間を実現できない可能性がある。
【００２３】
そこで本発明の他の実施形態として、上述した本発明の実施形態における第２ベクトルに平行で、かつ、第２ベクトルの始点から一定長さ離れた第１ベクトル上にある点と第２ベクトルの終点から一定長さ離れた第３ベクトル上にある点を通る平面と第２ベクトルとの距離が予め定められた値より大きい場合、第２ベクトルの始点から一定長さ離れた第１ベクトル上にある点と第２ベクトル上の点と第２ベクトルの終点から一定長さ離れた第３ベクトル上にある点を最短距離で繋ぐように修正する（図１１参照）。前記平面と前記第２ベクトルとの距離が予め定められた値より小さい場合、第２ベクトルの始点から一定長さ離れた第１ベクトル上にある点と第２ベクトルの終点から一定長さ離れた第３ベクトル上にある点を直線で結ぶ滑らかな経路に修正する。  
その結果、加工プログラム形状の山部分または谷部分にピックフィードが存在するような場合でも、山形状または谷形状を潰すことなく、滑らかな経路を作成することができる。
【００２４】
図１２は本発明の他の実施形態の数値制御装置１０のブロック図である。プログラム入力部２２は、自動運転の実行時に加工プログラム２１を読み出し、指令解析部２３に入力する。指令解析部２３は、指令ブロックごとの移動量や送り速度の指令から補間用のデータを生成する前処理部である。前処理されたデータは補間処理部２８に入力される。補間処理部２８において前記処理されたデータは各軸（例えば、X軸，Ｙ軸，Ｚ軸）の移動指令に分割された後、各軸のサーボモータ（Ｘ軸サーボモータ２９Ｘ，Ｙ軸サーボモータ２９Ｙ，Ｚ軸サーボモータ２９Ｚ）に出力される。  
指令解析部２３の内部において、ベクトル作成部２４は同一方向の連続する指令ブロックを一つにしたベクトルを作成し、ピックフィード判定部２５に入力する。ピックフィード判定部２５では、入力されたベクトルからピックフィード部分か否かの判定が行われ、ピックフィード部分であると判定された場合、山／谷形状判定部２６においてピックフィードが加工プログラム形状の山部分または谷部分であるかどうかの判定が行われる。
【００２５】
例として、図１３に示すようなピックフィードが加工プログラム形状の山部分にある指令経路が実行される場合について説明する。なお、Ｎ１〜Ｎ８は加工プログラムに記述される指令ブロックの経路を表しており、Ｎ１から順に指令されているものとする。  
プログラム入力部２２は、Ｎ１〜Ｎ８の指令ブロックを順次読み出し、指令解析部２３に入力する。次に、指令解析部２３の内部において、ベクトル作成部２４では同一方向の連続する指令ブロックを一つにしたベクトルを作成する。  
ピックフィード判定部２５では、ピックフィード部分かどうかを判定するため、第１ベクトルと第３ベクトルが同一方向かを第１の条件として判定する。さらに、第２ベクトルの長さが予め定めた範囲内の長さかを第２の条件として判定する。第１の条件と第２の条件がともに成立する場合に、第１、第２および第３ベクトルをピックフィード部分とする。
【００２６】
山／谷形状判定部２６では、第１、第２および第３ベクトルがピックフィード部分であった場合、ピックフィード部分が山形状または谷形状であるかどうかを判定するため、第２ベクトルの始点から一定長さ離れた第１ベクトル上にある点Ａと、第２ベクトルの終点から一定長さ離れた第３ベクトル上にある点Ｄを通り、第２ベクトルに平行な平面を算出し、第２ベクトルから前記平面への垂線の長さが予め定められた長さより長いかどうかを判定する（図１３参照）。
【００２７】
経路修正部２７では、前記垂線が予め定められた長さより長い場合は、前記点Ａと第２ベクトル上の点と前記点Ｄを最短距離で結ぶ滑らかな経路に修正する。例えば、図１４に示すように前記平面上の直線ＡＤと第２ベクトルを前記平面へ投影した直線Ｂ’Ｃ’との交点Ｅ’を求める。さらに、図１５に示すように、前記点Ｅ’を第２ベクトル上へ投影した点Ｅを求め、前記点Ａと前記点Ｅと前記点Ｄを順次直線で結ぶ滑らかな経路、すなわち第２ベクトル上の点を経由する最短経路に修正する。  
前記垂線が予め定められた長さより短い場合は、前記点Ａと前記点Ｄを直線で結ぶ滑らかな経路に修正する。なお、前記平面上の直線ＡＤと前記直線Ｂ’Ｃ’とが交わらない場合は、本発明の上記実施形態により前記点Ａと第２ベクトルの始点Ｂまたは終点Ｃと前記点Ｄを順次直線で結ぶ経路とすることができる。なお、図１５には、前記垂線が予め定められた長さより短い場合に前記点Ａと前記点Ｄを結ぶ直線は図示されていない。
【００２８】
指令解析部２３では、経路修正部２７で修正された移動経路に基づいて補間用のデータが生成され、補間処理部２８に入力される。補間処理部２８では、各軸（Ｘ軸，Ｙ軸，Ｚ軸）の移動指令に分割された後、各軸のサーボモータ（Ｘ軸サーボモータ２９Ｘ，Ｙ軸サーボモータ２９Ｙ，Ｚ軸サーボモータ２９Ｚ）に出力される。
【００２９】
図１６は、図１２に示される本発明の他の実施形態の数値制御装置１０において実行される指令経路を修正する処理をおこなうアルゴリズムを説明するフローチャートである。以下、各ステップに従って説明する。  
●［ステップＳＢ０１］加工プログラムを読み出す。  
●［ステップＳＢ０２］同一方向の連続する指令ブロックを一つにしたベクトルを作成する。なお、作成されたベクトルは、作成された順番に数値制御装置１０内の記憶装置に一次的に記憶される。  
●［ステップＳＢ０３］第１ベクトル，第２ベクトル，第３ベクトルの３つの連続する３ベクトルを作成済みか否か判断し、作成済みでない場合ステップＳＢ０１に戻り処理を継続し、作成済みの場合ステップＳＢ０４へ移行する。  
●［ステップＳＢ０４］第１ベクトルと第３ベクトルが同一方向か否か判断し、同一方向でない場合にはステップＳＢ１１へ移行し、同一方向の場合にはステップＳＢ０５へ移行する。  
●［ステップＳＢ０５］第２ベクトルの長さが予め定めた範囲内の長さか否か判断し、定めた範囲内の長さではない場合にはステップＳＢ１１へ移行し、定めた範囲内の長さの場合にはステップＳＢ０６へ移行する。  
●［ステップＳＢ０６］第２ベクトルに平行な平面を算出する。  
●［ステップＳＢ０７］第２ベクトルからステップＳＢ０６で算出した平面への垂線が一定長さ以上であるか否か判断し、一定長さ以上の場合にはステップＳＢ０９へ移行し、一定長さ以上ではない場合にはステップＳＢ０８へ移行する。  
●［ステップＳＢ０８］移動経路を第１ベクトル、第３ベクトル上の点を直線で結ぶ経路に修正し、ステップＳＢ１１へ移行する。  
●［ステップＳＢ０９］最短経路となる第２ベクトル上の点を算出する。  
●［ステップＳＢ１０］移動経路を第１ベクトル上の点、第２ベクトル上の点、第３ベクトル上の点を順次直線で結ぶ最短経路に修正する。  
●［ステップＳＢ１１］補間用のデータを生成する。  
●［ステップＳＢ１２］各軸の移動指令に分割（補間）する。  
●［ステップＳＢ１３］各軸のサーボモータに出力し、処理を終了する。
【００３０】
図１７は、本発明を適用した一実施形態の加工プログラムの移動経路を修正する機能を備えた数値制御装置１０の構成を概略で示すブロック図である。プロセッサであるＣＰＵ１１１は、ＲＯＭ１１２に格納されたシステムプログラムに従って数値制御装置１０の全体を制御する。ＲＡＭ１１３は、各種のデータあるいは入出力信号が格納される。不揮発性メモリ１１４に格納された各種のデータは電源切断後もそのまま保存される。ＲＡＭ１１３内に、第１ベクトル、第２ベクトル、および第３ベクトルが一次的に格納される。図９のフローチャートのステップＳＡ０３で３ベクトル作成済みかの判断は、例えば、ＲＡＭ１１３内に、第１ベクトル、第２ベクトル、第３ベクトルが格納されたか否かで行うことができる。また、第１ベクトル、第２ベクトル、第３ベクトルは作成された順番に記憶することによりそれぞれのベクトルを特定することができる。グラフィック制御回路１１５は、デジタル信号を表示用の信号に変換し、表示装置１１６に与える。キーボード１１７は、数値キー、文字キーなどを有する各種設定データを入力する手段である。
【００３１】
軸制御回路１１８は、ＣＰＵ１１１から各軸の移動指令を受けて軸の指令をサーボアンプ１１９に出力する。このサーボアンプ１１９は、この移動指令を受けて工作機械２００のサーボモータ（図示せず）を駆動する。これらの構成要素はバス１２１で互いに結合されている。ＰＭＣ（プログラマブル・マシン・コントローラ）１２２は、加工プログラムの実行時に、バス１２１経由でＴ機能信号（工具選択指令）などを受け取る。そして、この信号を、シーケンス・プログラムで処理して、動作指令として信号を出力し、工作機械２００を制御する。また、工作機械２００から状態信号を受けて、ＣＰＵ１１１に必要な入力信号を転送する。更に、バス１２１には、システムプログラム等によって機能が変化するソフトウェアキー１２３、ＮＣデータを記憶装置などの外部機器に送るインタフェース１２４が接続されている。このソフトウェアキー１２３は、表示装置１１６、キーボード１１７と共に、表示装置／ＭＤＩパネル１２５に設けられている。
【符号の説明】
【００３２】
１  加工プログラム
２  プログラム入力部
３  指令解析部
４  ベクトル作成部
５  ピックフィード判定部
６  経路修正部
７  補間処理部
８Ｘ  Ｘ軸サーボモータ
８Ｙ  Ｙ軸サーボモータ
８Ｚ  Ｚ軸サーボモータ
１０  数値制御装置
２１  加工プログラム
２２  プログラム入力部
２３  指令解析部
２４  ベクトル作成部
２５  ピックフィード判定部
２７  経路修正部
２８  補間処理部
２９Ｘ  Ｘ軸サーボモータ
２９Ｙ  Ｙ軸サーボモータ
２９Ｚ  Ｚ軸サーボモータ
２００  工作機械
【図１】
0005192578.tif 000002
【図２】
0005192578.tif 000003
【図３】
0005192578.tif 000004
【図４】
0005192578.tif 000005
【図５】
0005192578.tif 000006
【図６】
0005192578.tif 000007
【図７】
0005192578.tif 000008
【図８】
0005192578.tif 000009
【図９】
0005192578.tif 000010
【図１０】
0005192578.tif 000011
【図１１】
0005192578.tif 000012
【図１２】
0005192578.tif 000013
【図１３】
0005192578.tif 000014
【図１４】
0005192578.tif 000015
【図１５】
0005192578.tif 000016
【図１６】
0005192578.tif 000017
【図１７】
0005192578.tif 000018
【図１８】
0005192578.tif 000019
【図１９】
0005192578.tif 000020
【図２０】
0005192578.tif 000021