(57)【特許請求の範囲】
【請求項１】
複数のブロックで構成される工作機械の移動経路を該複数のブロックの内連続する３つのブロックを移動開始側の開始ブロック、移動終了側の終了ブロック、該開始ブロックと該終了ブロックを繋ぐ中間ブロックとして選択し、前記３つのブロックに基づいて前記移動経路を順次修正する数値制御装置において、
前記中間ブロックが第１所定長以下か否かを判断する第１判断手段と、
前記中間ブロックが前記第１所定長より長いと前記第１判断手段が判断した場合、前記開始ブロックを前記工作機械の移動経路として確定する第１ブロック確定手段と、
前記中間ブロックが前記第１所定長以下であると前記第１判断手段が判断した場合、前記開始ブロックの始点と前記中間ブロックの中点を接続するブロックを新たな開始ブロックとし、前記中間ブロックの中点と前記終了ブロックの終点を接続するブロックを新たな中間ブロックとして修正する修正手段と、
前記修正手段によって修正した前記新たな開始ブロックが第２所定長より長いか否かを判断する第２判断手段と、
前記新たな開始ブロックが前記第２所定長より長いと前記第２判断手段が判断した場合、該新たな開始ブロックを前記工作機械の移動経路として確定する第２ブロック確定手段と、
前記第１ブロック確定手段が前記工作機械の移動経路を確定した場合、前記中間ブロックを前記開始ブロックとし、前記終了ブロックを前記中間ブロックとし、前記終了ブロックの次のブロックを前記終了ブロックとし、
前記第２ブロック確定手段が前記工作機械の移動経路を確定した場合、前記新たな中間ブロックを前記開始ブロックとし、前記終了ブロックに連続する２つのブロックを順に前記中間ブロック、前記終了ブロックとし、
前記新たな開始ブロックが前記第２所定長以下であると前記第２判断手段が判断した場合、該新たな開始ブロックを前記開始ブロックとし、前記新たな中間ブロックを前記中間ブロックとし、前記終了ブロックの次のブロックを前記終了ブロックとして前記３つのブロックを再設定するブロック再設定手段と
を備えたことを特徴とする数値制御装置。
【請求項２】
複数のブロックで構成される工作機械の移動経路を該複数のブロックの内連続する３つのブロックを移動開始側の開始ブロック、移動終了側の終了ブロック、該開始ブロックと該終了ブロックを繋ぐ中間ブロックとして選択し、前記３つのブロックに基づいて前記移動経路を順次修正する数値制御装置によって行われる移動経路修正方法において、
前記中間ブロックが第１所定長以下か否かを判断する第１判断ステップと、
前記中間ブロックが前記第１所定長より長いと前記第１判断ステップにおいて判断した場合、前記開始ブロックを前記工作機械の移動経路として確定する第１ブロック確定ステップと、
前記中間ブロックが前記第１所定長以下であると前記第１判断ステップにおいて判断した場合、前記開始ブロックの始点と前記中間ブロックの中点を接続するブロックを新たな開始ブロックとし、前記中間ブロックの中点と前記終了ブロックの終点を接続するブロックを新たな中間ブロックとして修正する修正ステップと、
前記修正ステップにおいて修正した前記新たな開始ブロックが第２所定長より長いか否かを判断する第２判断ステップと、
前記新たな開始ブロックが前記第２所定長より長いと前記第２判断ステップにおいて判断した場合、該新たな開始ブロックを前記工作機械の移動経路として確定する第２ブロック確定ステップと、
前記第１ブロック確定ステップにおいて前記工作機械の移動経路を確定した場合、前記中間ブロックを前記開始ブロックとし、前記終了ブロックを前記中間ブロックとし、前記終了ブロックの次のブロックを前記終了ブロックとし、
前記第２ブロック確定ステップにおいて前記工作機械の移動経路を確定した場合、前記新たな中間ブロックを前記開始ブロックとし、前記終了ブロックに連続する２つのブロックを順に前記中間ブロック、前記終了ブロックとし、
前記新たな開始ブロックが前記第２所定長以下であると前記第２判断ステップにおいて判断した場合、該新たな開始ブロックを前記開始ブロックとし、前記新たな中間ブロックを前記中間ブロックとし、前記終了ブロックの次のブロックを前記終了ブロックとして前記３つのブロックを再設定するブロック再設定ステップと
を備えたことを特徴とする移動経路修正方法。
【請求項３】
複数のブロックで構成される工作機械の移動経路を該複数のブロックの内連続する３つのブロックを移動開始側の開始ブロック、移動終了側の終了ブロック、該開始ブロックと該終了ブロックを繋ぐ中間ブロックとして選択し、前記３つのブロックに基づいて前記移動経路を順次修正する数値制御装置の動作を制御する移動経路修正プログラムにおいて、
コンピュータに、
前記中間ブロックが第１所定長以下か否かを判断する第１判断ステップと、
前記中間ブロックが前記第１所定長より長いと前記第１判断ステップにおいて判断した場合、前記開始ブロックを前記工作機械の移動経路として確定する第１ブロック確定ステップと、
前記中間ブロックが前記第１所定長以下であると前記第１判断ステップにおいて判断した場合、前記開始ブロックの始点と前記中間ブロックの中点を接続するブロックを新たな開始ブロックとし、前記中間ブロックの中点と前記終了ブロックの終点を接続するブロックを新たな中間ブロックとして修正する修正ステップと、
前記修正ステップにおいて修正した前記新たな開始ブロックが第２所定長より長いか否かを判断する第２判断ステップと、
前記新たな開始ブロックが前記第２所定長より長いと前記第２判断ステップにおいて判断した場合、該新たな開始ブロックを前記工作機械の移動経路として確定する第２ブロック確定ステップと、
前記第１ブロック確定ステップにおいて前記工作機械の移動経路を確定した場合、前記中間ブロックを前記開始ブロックとし、前記終了ブロックを前記中間ブロックとし、前記終了ブロックの次のブロックを前記終了ブロックとし、
前記第２ブロック確定ステップにおいて前記工作機械の移動経路を確定した場合、前記新たな中間ブロックを前記開始ブロックとし、前記終了ブロックに連続する２つのブロックを順に前記中間ブロック、前記終了ブロックとし、
前記新たな開始ブロックが前記第２所定長以下であると前記第２判断ステップにおいて判断した場合、該新たな開始ブロックを前記開始ブロックとし、前記新たな中間ブロックを前記中間ブロックとし、前記終了ブロックの次のブロックを前記終了ブロックとして前記３つのブロックを再設定するブロック再設定ステップと
を実行させることを特徴とする移動経路修正プログラム。
【請求項４】
請求項３に記載の移動経路修正プログラムを記憶したことを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置、移動経路修正方法、移動経路修正プログラム、及び記憶媒体に関する。
【背景技術】
【０００２】
数値制御装置は、曲線を描く加工プログラムを生成する場合、ＣＡＭ（computer aided manufacturing）を用いている。ＣＡＭは、曲線を複数のブロックに分割する。ＣＡＭは、演算誤差等により、前後のブロックと比較的大きな角度をなす微小のブロックを生成することがある。数値制御装置は、短い周期で指令速度に対応する分の移動量をサーボアンプに送出してモータを駆動する。微小ブロックが指令速度分の移動量に満たない場合、工具は急激に減速する。故に、加工面に工具跡が残ることがある。
【０００３】
特許文献１が開示する移動経路修正方法は、複数のセグメントで構成される移動経路において、連続する三つのセグメントデータに対して第１、第２、第３のセグメントＳ１、Ｓ２、Ｓ３がジグザグ状に接続しているかを第１の条件とし、第２のセグメントＳ２が設定された長さより短いかを第２の条件とし、前記第１の条件と前記第２の条件がともに成立する場合には、前記第２のセグメントＳ２の移動量を前記第１、前記第３のセグメントＳ１、Ｓ３の移動量に分配するように移動経路を修正する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３３８５２４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１が開示する移動経路修正方法は、３つのセグメントがジグザグの経路を構成しなければ、移動経路を修正しない不具合を有する。故に、移動経路中に微小ブロックが残ってしまうので、良好な加工面を得ることができなかった。特許文献１の移動経路修正条件からジグザグの経路であることを除外すると、所定の長さより短いブロックが次々と削除されることになるため、工具の移動経路がプログラムで指令した経路から逸脱する場合がある。
【０００６】
本発明は、上記課題を解決するためになされたものであり、工具の減速による影響のない良好な加工面を得ることができ、かつ工具の移動経路がプログラムで指令した経路から大きく逸脱しない数値制御装置、移動経路修正方法、移動経路修正プログラム、及び記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１態様に係る数値制御装置は、複数のブロックで構成される工作機械の移動経路を該複数のブロックの内連続する３つのブロックを移動開始側の開始ブロック、移動終了側の終了ブロック、該開始ブロックと該終了ブロックを繋ぐ中間ブロックとして選択し、前記３つのブロックに基づいて前記移動経路を順次修正する数値制御装置において、前記中間ブロックが第１所定長以下か否かを判断する第１判断手段と、前記中間ブロックが前記第１所定長より長いと前記第１判断手段が判断した場合、前記開始ブロックを前記工作機械の移動経路として確定する第１ブロック確定手段と、前記中間ブロックが前記第１所定長以下であると前記第１判断手段が判断した場合、前記開始ブロックの始点と前記中間ブロックの中点を接続するブロックを新たな開始ブロックとし、前記中間ブロックの中点と前記終了ブロックの終点を接続するブロックを新たな中間ブロックとして修正する修正手段と、前記修正手段によって修正した前記新たな開始ブロックが第２所定長より長いか否かを判断する第２判断手段と、前記新たな開始ブロックが前記第２所定長より長いと前記第２判断手段が判断した場合、該新たな開始ブロックを前記工作機械の移動経路として確定する第２ブロック確定手段と、前記第１ブロック確定手段が前記工作機械の移動経路を確定した場合、前記中間ブロックを前記開始ブロックとし、前記終了ブロックを前記中間ブロックとし、前記終了ブロックの次のブロックを前記終了ブロックとし、前記第２ブロック確定手段が前記工作機械の移動経路を確定した場合、前記新たな中間ブロックを前記開始ブロックとし、前記終了ブロックに連続する２つのブロックを順に前記中間ブロック、前記終了ブロックとし、前記新たな開始ブロックが前記第２所定長以下であると前記第２判断手段が判断した場合、該新たな開始ブロックを前記開始ブロックとし、前記新たな中間ブロックを前記中間ブロックとし、前記終了ブロックの次のブロックを前記終了ブロックとして前記３つのブロックを再設定するブロック再設定手段とを備えている。
【０００８】
第１態様では、第１ブロック確定手段は、中間ブロックが第１所定長より長い場合、開始ブロックを経路として確定する。修正手段は、中間ブロックが第１所定長以下の場合、開始ブロックの始点と中間ブロックの中点を接続するブロックを新たな開始ブロックとし、中間ブロックの中点と終了ブロックの終点を接続するブロックを新たな中間ブロックとして修正する。第２ブロック確定手段は、新たな開始ブロックが第２所定長より長い場合、新たな開始ブロックを経路として確定する。ブロック再設定手段は、新たな開始ブロックが第２所定長以下である場合、新たな開始ブロックを開始ブロックとし、新たな中間ブロックを中間ブロックとし、終了ブロックの次のブロックを終了ブロックとして、３つのブロックを再設定する。第１態様は、中間ブロックが第１所定長より長ければ、開始ブロックを経路として確定する。故に、工作機械の移動経路は、途中に移動量の小さいブロックを含まない。また、新たな開始ブロックが第２所定長より長ければ、新たな開始ブロックを経路として確定する。故に、新たな開始ブロックは所定の長さよりも大きくなった時点で経路が確定するため、微小ブロックが連続するプログラムで、ブロックが次々と削除され、工具がプログラムで指令した経路から大きく逸脱することがない。よって、第１態様は、工具がプログラムで指令した経路から逸脱せず、工具の減速による影響のない良好な加工面を得ることができる。
【０００９】
本発明の第２態様に係る移動経路修正方法は、複数のブロックで構成される工作機械の移動経路を該複数のブロックの内連続する３つのブロックを移動開始側の開始ブロック、移動終了側の終了ブロック、該開始ブロックと該終了ブロックを繋ぐ中間ブロックとして選択し、前記３つのブロックに基づいて前記移動経路を順次修正する数値制御装置によって行われる移動経路修正方法において、前記中間ブロックが第１所定長以下か否かを判断する第１判断ステップと、前記中間ブロックが前記第１所定長より長いと前記第１判断ステップにおいて判断した場合、前記開始ブロックを前記工作機械の移動経路として確定する第１ブロック確定ステップと、前記中間ブロックが前記第１所定長以下であると前記第１判断ステップにおいて判断した場合、前記開始ブロックの始点と前記中間ブロックの中点を接続するブロックを新たな開始ブロックとし、前記中間ブロックの中点と前記終了ブロックの終点を接続するブロックを新たな中間ブロックとして修正する修正ステップと、前記修正ステップにおいて修正した前記新たな開始ブロックが第２所定長より長いか否かを判断する第２判断ステップと、前記新たな開始ブロックが前記第２所定長より長いと前記第２判断ステップにおいて判断した場合、該新たな開始ブロックを前記工作機械の移動経路として確定する第２ブロック確定ステップと、前記第１ブロック確定ステップにおいて前記工作機械の移動経路を確定した場合、前記中間ブロックを前記開始ブロックとし、前記終了ブロックを前記中間ブロックとし、前記終了ブロックの次のブロックを前記終了ブロックとし、前記第２ブロック確定ステップにおいて前記工作機械の移動経路を確定した場合、前記新たな中間ブロックを前記開始ブロックとし、前記終了ブロックに連続する２つのブロックを順に前記中間ブロック、前記終了ブロックとし、前記新たな開始ブロックが前記第２所定長以下であると前記第２判断ステップにおいて判断した場合、該新たな開始ブロックを前記開始ブロックとし、前記新たな中間ブロックを前記中間ブロックとし、前記終了ブロックの次のブロックを前記終了ブロックとして前記３つのブロックを再設定するブロック再設定ステップとを備えている。
【００１０】
第２態様では、第１ブロック確定ステップは、中間ブロックが第１所定長より長い場合、開始ブロックを経路として確定する。修正ステップは、中間ブロックが第１所定長以下の場合、開始ブロックの始点と中間ブロックの中点を接続するブロックを新たな開始ブロックとし、中間ブロックの中点と終了ブロックの終点を接続するブロックを新たな中間ブロックとして修正する。第２ブロック確定ステップは、新たな開始ブロックが第２所定長より長い場合、新たな開始ブロックを経路として確定する。ブロック再設定ステップは、新たな開始ブロックが第２所定長以下である場合、新たな開始ブロックを開始ブロックとし、新たな中間ブロックを中間ブロックとし、終了ブロックの次のブロックを終了ブロックとして、３つのブロックを再設定する。よって、第２態様は、中間ブロックが第１所定長より長ければ、開始ブロックを経路として確定する。故に、工作機械の移動経路は、途中に移動量の小さいブロックを含まない。また、新たな開始ブロックが第２所定長より長ければ、新たな開始ブロックを経路として確定する。故に、微小ブロックが連続するプログラムで、ブロックが次々と削除され、工具がプログラムで指令した経路から逸脱することがない。第２態様は、工具がプログラムで指令した経路から逸脱せず、工具の減速による影響のない良好な加工面を得ることができる。
【００１１】
本発明の第３態様に係る移動経路修正プログラムは、複数のブロックで構成される工作機械の移動経路を該複数のブロックの内連続する３つのブロックを移動開始側の開始ブロック、移動終了側の終了ブロック、該開始ブロックと該終了ブロックを繋ぐ中間ブロックとして選択し、前記３つのブロックに基づいて前記移動経路を順次修正する数値制御装置の動作を制御する移動経路修正プログラムにおいて、コンピュータに、前記中間ブロックが第１所定長以下か否かを判断する第１判断ステップと、前記中間ブロックが前記第１所定長より長いと前記第１判断ステップにおいて判断した場合、前記開始ブロックを前記工作機械の移動経路として確定する第１ブロック確定ステップと、前記中間ブロックが前記第１所定長以下であると前記第１判断ステップにおいて判断した場合、前記開始ブロックの始点と前記中間ブロックの中点を接続するブロックを新たな開始ブロックとし、前記中間ブロックの中点と前記終了ブロックの終点を接続するブロックを新たな中間ブロックとして修正する修正ステップと、前記修正ステップにおいて修正した前記新たな開始ブロックが第２所定長より長いか否かを判断する第２判断ステップと、前記新たな開始ブロックが前記第２所定長より長いと前記第２判断ステップにおいて判断した場合、該新たな開始ブロックを前記工作機械の移動経路として確定する第２ブロック確定ステップと、前記第１ブロック確定ステップにおいて前記工作機械の移動経路を確定した場合、前記中間ブロックを前記開始ブロックとし、前記終了ブロックを前記中間ブロックとし、前記終了ブロックの次のブロックを前記終了ブロックとし、前記第２ブロック確定ステップにおいて前記工作機械の移動経路を確定した場合、前記新たな中間ブロックを前記開始ブロックとし、前記終了ブロックに連続する２つのブロックを順に前記中間ブロック、前記終了ブロックとし、前記新たな開始ブロックが前記第２所定長以下であると前記第２判断ステップにおいて判断した場合、該新たな開始ブロックを前記開始ブロックとし、前記新たな中間ブロックを前記中間ブロックとし、前記終了ブロックの次のブロックを前記終了ブロックとして前記３つのブロックを再設定するブロック再設定ステップとを実行させることを特徴とする。
【００１２】
第３態様では、コンピュータは各種ステップを実行する。第１ブロック確定ステップは、中間ブロックが第１所定長より長い場合、開始ブロックを経路として確定する。修正ステップは、中間ブロックが第１所定長以下の場合、開始ブロックの始点と中間ブロックの中点を接続するブロックを新たな開始ブロックとし、中間ブロックの中点と終了ブロックの終点を接続するブロックを新たな中間ブロックとして修正する。第２ブロック確定ステップは、新たな開始ブロックが第２所定長より長い場合、新たな開始ブロックを経路として確定する。ブロック再設定ステップは、新たな開始ブロックが第２所定長以下である場合、新たな開始ブロックを開始ブロックとし、新たな中間ブロックを中間ブロックとし、終了ブロックの次のブロックを終了ブロックとして、３つのブロックを再設定する。第２態様は、中間ブロックが第１所定長より長ければ、開始ブロックを経路として確定する。故に、工作機械の移動経路は、途中に移動量の小さいブロックを含まない。また、新たな開始ブロックが第２所定長より長ければ、新たな開始ブロックを経路として確定する。故に、微小ブロックが連続するプログラムで、ブロックが次々と削除され、工具がプログラムで指令した経路から逸脱することがない。よって、第３態様は、工具がプログラムで指令した経路から逸脱せず、工具の減速による影響のない良好な加工面を得ることができる。
【００１３】
本発明の第４態様に係る記憶媒体は、請求項３に記載の移動経路修正プログラムを記憶したことを特徴とする。
【００１４】
第４態様では、請求項３に記載の移動経路修正プログラムを記憶している。故に、コンピュータが実行することで、第３態様に記載の効果を得ることができる。
【図面の簡単な説明】
【００１５】
【図１】数値制御装置１の電気的構成を示すブロック図である。
【図２】セグメントバッファ２３１の内容を示す概念図である。
【図３】ＣＰＵ２１が実行する移動経路修正処理のフローチャートである。
【図４】修正前の移動経路の第１段階の図である。
【図５】移動経路を修正した第２段階の図である。
【図６】移動経路を修正した第３段階の図である。
【図７】移動経路を修正した第４段階の図である。
【図８】セグメントバッファ２３１の修正対象のセグメントＳｉを示す図である。
【図９】図８の続きを示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の一実施形態である数値制御装置１、移動経路修正方法、移動経路修正プログラム及び記憶媒体について、図面を参照して説明する。図１に示す数値制御装置１は、加工プログラムが指令する経路にしたがい、工作機械２の軸移動を制御する。工作機械２は、加工物と工具の相対移動により、加工物を切削する。
【００１７】
数値制御装置１の電気的構成について、図１を参照して説明する。数値制御装置１は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、フラッシュメモリ２４を有するマイクロコンピュータと、入力インタフェイス２５と、入出力インタフェイス２６とを備えている。入力インタフェイス２５は、操作部１２に接続している。
【００１８】
ＲＯＭ２２は、数値制御装置１のメインプログラムに加え、加工プログラムを１ブロックずつ読込んでセグメントデータを生成する「セグメント生成プログラム」、複数のセグメントで構成した移動経路を修正する本発明の「移動経路修正プログラム」等を記憶する。「移動経路修正プログラム」は、コンピュータで読み取り可能な記憶媒体としてのフラッシュメモリ２４等に記憶してもよい。ＲＡＭ２３は、セグメントバッファ２３１を少なくとも備えている。セグメントバッファ２３１は、加工プログラムから生成したセグメントデータを記憶する。フラッシュメモリ２４は、加工プログラムを記憶する加工プログラム記憶領域２４１を少なくとも備えている。
【００１９】
入出力インタフェイス２６は、工作機械２のＸ軸モータ５１を駆動する駆動回路４１と、工作機械２のＹ軸モータ５２を駆動する駆動回路４２と、工作機械２のＺ軸モータ５３を駆動する駆動回路４３と、工作機械２の主軸モータ５４を駆動する駆動回路４４等に接続している。Ｘ軸モータ５１及びＹ軸モータ５２の駆動は、工作機械２のテーブル（図示省略）をＸ軸方向及びＹ軸方向に移動する。Ｚ軸モータ５３の駆動は、工作機械の主軸ヘッド（図示省略）をＺ軸方向に移動する。
【００２０】
Ｘ軸モータ５１、Ｙ軸モータ５２、Ｚ軸モータ５３、主軸モータ５４は、各モータの位置を検出するエンコーダ（図示省略）を備えている。各エンコーダは、各駆動回路４１、４２、４３、４４に接続している。
【００２１】
セグメントデータについて説明する。加工プログラムが指令する経路は、例えば、図４に示すように、Ａ１、Ａ２、…、Ａ８からなる座標列である。作業者が操作部１２を操作すると、ＣＰＵ２１は、Ａ１〜Ａ８の座標列を読み取って、各セグメントの各軸移動量Ｘｉ、Ｙｉ、Ｚｉ、セグメント長Ｌｉ、指令速度ＦからなるセグメントデータＳｉ（以下、単に「セグメントＳｉ」と呼ぶ）を生成する。添え字ｉは、経路開始からのブロック番号を示している。図２に示すように、ＲＡＭ２３のセグメントバッファ２３１は、生成したセグメントＳ１、Ｓ２、Ｓ３を指令順に記憶する。
【００２２】
ＣＰＵ２１は、セグメントバッファ２３１に順次蓄積したセグメントＳｉに基づき、主軸ヘッドの速度パターンを作成する。ＣＰＵ２１は、作成した速度パターンから各軸毎の補間指令（単位時間あたりの移動量）を算出する。ＣＰＵ２１は、算出した各軸の補間指令を、工作機械２のＸ軸モータ５１、Ｙ軸モータ５２、Ｚ軸モータ５３の駆動回路４１、４２、４３にそれぞれ出力する。
【００２３】
図２に示すように、セグメントバッファ２３１は、加工プログラムを読み取ったブロック順に、セグメントＳｉを順次記憶する。ＣＰＵ２１は、セグメントバッファ２３１に蓄積するセグメントＳｉについて、連続する３つのブロックに基づいて移動経路を順次修正する。ＣＰＵ２１は、連続する３つのブロックを処理対象のセグメントとする。本実施形態は、３つのセグメントについて、移動開始側から移動終了側に向かって、第１のセグメント（本発明の「開始ブロック」に相当）、第２のセグメント（本発明の「中間ブロック」に相当）、第３のセグメント（本発明の「終了ブロック」に相当）と称する。
【００２４】
ポインタＡは、加工プログラムの次のブロックから読み取った新しいセグメントＳｉを記憶する位置を示している。ポインタＢは、経路がまだ確定していない最初のセグメントＳｉの位置を示している。故に、ＣＰＵ２１は、セグメントバッファ２３１に、３セグメント分のセグメントＳｉを蓄積するまでは、ポインタＡをインクリメントし、かつポインタＡに次のセグメントＳｉを記憶する。図２に示す例は、セグメントバッファ２３１に、３セグメント分のセグメントＳ１、Ｓ２、Ｓ３を蓄積していることを示している。
【００２５】
ＣＰＵ２１が実行する移動経路修正処理について、図３のフローチャート、図４〜図９を参照して説明する。本実施形態は、図４に示す移動経路を修正する場合について、第１段階から第４段階に分けて説明する。図４の移動経路は、Ａ１〜Ａ８の各点を直線で繋いだ移動経路である。Ａ１〜Ａ８の間は、各セグメントＳｉで繋いでいる。作業者が操作部１２を操作すると、ＣＰＵ２１は、ＲＯＭ２２１のプログラム記憶領域２２１（図１参照）に記憶した「移動経路修正プログラム」を読み込んで実行する。
【００２６】
ＣＰＵ２１は、フラッシュメモリ２４の加工プログラム記憶領域２４１（図１参照）に記憶した加工プログラムに基づき、次に修正すべきセグメントＳｉが有るか否かを判断する（Ｓ１１）。ＣＰＵ２１は、今から修正を開始する為、次に修正すべきセグメントＳｉがあると判断し（Ｓ１１：ＹＥＳ）、ポインタＡの位置に次のセグメントＳｉをセットする（Ｓ１３）。
【００２７】
ＣＰＵ２１は、ポインタＢから３セグメント生成したか否かを判断する（Ｓ１４）。故に、ＣＰＵ２１は、セグメントバッファ２３１上に、３セグメント分のセグメントＳｉを蓄積するまでは（Ｓ１４：ＮＯ）、ポインタＡをインクリメントし（Ｓ２２）、次のセグメントがあれば（Ｓ１１：ＹＥＳ）、ポインタＡに次のセグメントを記憶する（Ｓ１３）。図８の第１段階に示すように、セグメントバッファ２３１は、ポインタＢから３セグメント分のセグメントＳ１、Ｓ２、Ｓ３を蓄積している。
【００２８】
ＣＰＵ２１は、ポインタＢから３セグメント生成したと判断した場合（Ｓ１４：ＹＥＳ）、現時点で「第２のセグメント」であるセグメントＳ２のセグメント長は、第１設定値以下か否かを判断する（Ｓ１５）。ＣＰＵ２１は、セグメントＳ２のセグメント長が第１設定値以下と判断した場合（Ｓ１５：ＹＥＳ）、現時点で「第１のセグメント」であるセグメントＳ１と、第２のセグメントであるＳ２とを修正し、現時点で「第３のセグメント」であるセグメントＳ３を消去して、新たな経路を作成する（Ｓ１６）。
【００２９】
Ｓ１６のセグメントＳｉの経路接続の修正方法について具体的に説明する。図５に示すように、ＣＰＵ２１は、「第２のセグメント」であるセグメントＳ２の中点Ｔ１の座標を、セグメントＳ２の始点の座標と終点の座標とから算出する。ＣＰＵ２１は、セグメントＳ１の始点（Ａ１）とセグメントＳ２の中点Ｔ１とを、新たなセグメントＳ１Ｒで接続する。ＣＰＵ２１は、セグメントＳ２の中点Ｔ１とセグメントＳ３の終点（Ａ４）とを、新たなセグメントＳ２Ｒで接続する。本実施形態では、「Ｒ」は修正回数１回、「ＲＲ」は修正回数２回、「ＲＲＲ」は修正回数３回を意味する。ＣＰＵ２１は、残ったセグメントＳ３を消去する。故に、図５に示すように、Ａ１と中点Ｔ１とＡ４とを、新たなセグメントＳ１ＲとＳ２Ｒで繋いだ新たな経路が生成する（第２段階）。
【００３０】
ＣＰＵ２１は、図５に示す新たな経路において、現時点で「第１のセグメント」であるセグメントＳ１Ｒのセグメント長が第２設定値より長いか否かを判断する（Ｓ１７）。
【００３１】
ＣＰＵ２１は、セグメントＳ１Ｒのセグメント長が第２設定値以下と判断した場合（Ｓ１７：ＮＯ）、Ｓ１１に戻り、次のセグメントが有るか否かを判断する。図８の第２段階に示すように、ポインタＡの位置は空の状態である。ＣＰＵ２１は、加工プログラムに基づき、次のセグメントＳｉが有ると判断した場合（Ｓ１１：ＹＥＳ）、図８の「セグメント再設定」に示すように、空のポインタＡの位置に、次のセグメントＳ４をセットする（Ｓ１３）。
【００３２】
セグメントバッファ２３１は、ポインタＢの位置からポインタＡの位置までに、セグメントＳ１Ｒ、Ｓ２Ｒ、Ｓ４の３つのセグメントを蓄積している（図８の「セグメント再設定」参照）。故に、ＣＰＵ２１は、ポインタＢから３セグメント生成したと判断し（Ｓ１４：ＹＥＳ）、現時点で「第２のセグメント」であるセグメントＳ２Ｒのセグメント長が第１設定値以下か否かを判断する（Ｓ１５）。ＣＰＵ２１は、図５に示すセグメントＳ２Ｒのセグメント長が第１設定値以下と判断した場合（Ｓ１５：ＹＥＳ）、再度、経路を修正する（Ｓ１６）。
【００３３】
図６に示すように、ＣＰＵ２１は、「第２のセグメント」であるセグメントＳ２Ｒの中点Ｔ２の座標を、セグメントＳ２Ｒの始点の座標と終点の座標とから算出する。ＣＰＵ２１は、セグメントＳ１Ｒの始点（Ａ１）とセグメントＳ２Ｒの中点Ｔ２とを、新たなセグメントＳ１ＲＲで接続する。ＣＰＵ２１は、セグメントＳ２Ｒの中点Ｔ２とセグメントＳ４の終点（Ａ５）とを、新たなセグメントＳ２ＲＲで接続する。ＣＰＵ２１は、残ったセグメントＳ４を消去する。故に、図６に示すように、Ａ１と中点Ｔ２とＡ５とを、新たなセグメントＳ１ＲＲとＳ２ＲＲで繋いだ新たな経路が生成する（第３段階）。
【００３４】
ＣＰＵ２１は、図６に示す新たな経路において、現時点で「第１のセグメント」であるセグメントＳ１ＲＲのセグメント長が第２設定値より長いか否かを判断する（Ｓ１７）。
【００３５】
ＣＰＵ２１は、セグメントＳ１ＲＲのセグメント長が第２設定値以下と判断した場合（Ｓ１７：ＮＯ）、Ｓ１１に戻り、加工プログラムに基づき、次のセグメントＳｉが有るか否かを判断する。図８の第３段階に示すように、ポインタＡの位置は空の状態である。ＣＰＵ２１は、次のセグメントＳｉが有ると判断した場合（Ｓ１１：ＹＥＳ）、空のポインタＡの位置に、図９の上段の「セグメント再設定」に示すように、次のセグメントＳ５をセットする（Ｓ１３）。
【００３６】
セグメントバッファ２３１は、ポインタＢの位置からポインタＡの位置まで、セグメントＳ１ＲＲ、Ｓ２ＲＲ、Ｓ５の３つのセグメントＳｉを蓄積している（図９の上段の「セグメント再設定」参照）。故に、ＣＰＵ２１は、ポインタＢから３セグメント生成したと判断し（Ｓ１４：ＹＥＳ）、現時点の第２のセグメントであるセグメントＳ２ＲＲのセグメント長が第１設定値以下か否かを判断する（Ｓ１５）。ＣＰＵ２１は、図６に示すセグメントＳ２ＲＲのセグメント長が第１設定値以下と判断した場合（Ｓ１５：ＹＥＳ）、再度、経路を修正する（Ｓ１６）。
【００３７】
図７に示すように、ＣＰＵ２１は、セグメントＳ２ＲＲの中点Ｔ３の座標を、セグメントＳ２ＲＲの始点と終点とから算出する。ＣＰＵ２１は、セグメントＳ１ＲＲの始点とセグメントＳ２ＲＲの中点Ｔ３とを、新たなセグメントＳ１ＲＲＲで接続する。ＣＰＵ２１は、セグメントＳ２ＲＲの中点Ｔ３とセグメントＳ５の終点（Ａ６）とを、新たなセグメントＳ２ＲＲＲで接続する。ＣＰＵ２１は、残ったセグメントＳ５を消去する。故に、図７に示すように、Ａ１と中点Ｔ３とＡ６とを、新たなセグメントＳ１ＲＲＲとＳ２ＲＲＲで繋いだ新たな経路が生成する（第４段階）。
【００３８】
ＣＰＵ２１は、図７に示す新たな経路において、現時点で「第１のセグメント」であるセグメントＳ１ＲＲのセグメント長が第２設定値より長いか否かを判断する（Ｓ１７）。セグメントＳ１ＲＲは、図４の第１段階に比べて長い。ＣＰＵ２１は、セグメントＳ１ＲＲＲのセグメント長が第２設定値より長いと判断した場合（Ｓ１７：ＹＥＳ）、セグメントＳ１ＲＲＲについて経路を確定する（Ｓ１８）。セグメントＳ１ＲＲＲは、Ａ１〜Ｔ３を繋ぐ経路である。
【００３９】
ＣＰＵ２１は、「第１のセグメント」について経路が確定すると、図９の「経路確定」に示すように、ポインタＢをインクリメントし（Ｓ１９）、Ｓ１１に戻る。経路が確定した状態では、ポインタＡの位置は空の状態である。ＣＰＵ２１は、加工プログラムに基づき、次のセグメントが有ると判断した場合（Ｓ１１：ＹＥＳ）、空のポインタＡの位置に、次のセグメントＳ６をセットする（Ｓ１３）。
【００４０】
ＣＰＵ２１は、ポインタＢから３セグメント生成したか否かを判断する（Ｓ１４）。ＣＰＵ２１は、Ｓ１１において、ポインタＢをインクリメントしている。ポインタＢとポインタＡの間は、２つのセグメントＳｉのみである。故に、ＣＰＵ２１は、ポインタＢから３セグメント生成していないと判断し（Ｓ１４：ＮＯ）、ポインタＡをインクリメントする（Ｓ２２）。ＣＰＵ２１は、次のセグメントＳｉが有ると判断した場合（Ｓ１１：ＹＥＳ）、空のポインタＡの位置に、図９の下段の「セグメント再設定」に示すように、次のセグメントＳ７をセットする（Ｓ１３）。ＣＰＵ２１は、ポインタＢから３セグメント生成したと判断し（Ｓ１４：ＹＥＳ）、上記同様に経路の最後まで、処理を繰り返す。
【００４１】
ＣＰＵ２１は、次のセグメントＳｉがないと判断した場合（Ｓ１１：ＮＯ）、セグメントバッファ２３１において、ポインタＡはポインタＢと同位置であるか否かを判断する（Ｓ２３）。ＣＰＵ２１は、ポインタＡがポインタＢと同位置でないと判断した場合（Ｓ２３：ＮＯ）、ポインタＢの位置のセグメントを確定し（Ｓ２４）、ポインタＢをインクリメントする（Ｓ２５）。ＣＰＵ２１は、Ｓ２３に戻り、ポインタＡはポインタＢと同位置であるか否かを再度判断する。ＣＰＵ２１は、ポインタＡがポインタＢと同位置であると判断した場合（Ｓ２３：ＹＥＳ）、移動経路修正処理を終了する。
【００４２】
ＣＰＵ２１は、経路修正の途中で、第２のセグメントのセグメント長が第１設定値より長いと判断した場合（Ｓ１５：ＮＯ）、第１のセグメントＳｉを確定する（Ｓ２０）。ＣＰＵ２１は、ポインタＢをインクリメントし（Ｓ２１）、ポインタＡをインクリメントし（Ｓ２２）、Ｓ１１に戻って処理を繰り返す。
【００４３】
即ち、ＣＰＵ２１は、第２のセグメントのセグメント長が第１設定値より長いと判断した場合（Ｓ１５：ＮＯ）、第１のセグメントについて経路を確定する（Ｓ２０）。故に、修正後の移動経路は、微小ブロックを含まないので、工具が急激に減速することがなく、良好な加工面を得ることができる。また、経路修正後の第１のセグメントのセグメント長が第２設定値より長いと判断した場合（Ｓ１７：ＹＥＳ）、第１のセグメントについて経路を確定する（Ｓ１８）。故に、第１セグメントが所定の長さより大きくなった時点で、第１セグメントの経路が確定するため、微小ブロックが連続するプログラムで、移動経路が次々と修正されて、工具の移動経路がプログラムで指令した経路から大きく逸脱することがない。
【００４４】
以上説明したように、本実施形態の数値制御装置１では、ＣＰＵ２１は、加工プログラムを読み取ったブロック順に、軸の移動経路を構成するセグメントＳｉを生成し、セグメントバッファ２３１に順次記憶する。ＣＰＵ２１は、セグメントバッファ２３１に蓄積するセグメントＳｉについて、連続する３つのブロックを処理対象のセグメントとして、移動経路を順次修正する。ＣＰＵ２１は、最初に、セグメントＳ１、Ｓ２、Ｓ３を処理対象セグメントとする。ＣＰＵ２１は、セグメントＳ２が第１設定値より長いと判断した場合、セグメント１の経路を確定する。ＣＰＵ２１は、第２のセグメント長が第１設定値以下であると判断した場合、セグメントＳ１と、セグメントＳ２とを修正し、セグメントＳ３を消去して、新たな経路を作成する。
【００４５】
具体的には、ＣＰＵ２１は、セグメントＳ１の始点とセグメントＳ２の中点Ｔ１とを、新たなセグメントＳ１Ｒで接続し、セグメントＳ２の中点Ｔ１とセグメントＳ３の終点とを、新たなセグメントＳ２Ｒで接続する。ＣＰＵ２１は、セグメントＳ１Ｒが第２設定値より長いと判断した場合、セグメントＳ１Ｒを確定する。ＣＰＵ２１は、セグメントＳ１Ｒが第２設定値以下と判断した場合、処理対象セグメントに次のセグメントを追加する。ＣＰＵ２１は、処理対象セグメントを追加した連続する３つのセグメントＳｉについて、再度、経路を修正しつつ第１のセグメントを順次確定する。故に、修正後の移動経路は、微小のセグメントを含まないので、工具が急激に減速することがなく、良好な加工面を得ることができ、且つ工具の移動経路がプログラムで指令した経路から大きく逸脱することがない。
【００４６】
以上説明において、Ｓ１５の処理を実行するＣＰＵ２１が本発明の「第１判断手段」に相当し、Ｓ２０の処理を実行するＣＰＵ２１が本発明の「第１ブロック確定手段」に相当し、Ｓ１６の処理を実行するＣＰＵ２１が本発明の「修正手段」に相当し、Ｓ１７の処理を実行するＣＰＵ２１が本発明の「第２判断手段」に相当し、Ｓ１８の処理を実行するＣＰＵ２１が本発明の「第２ブロック確定手段」に相当し、Ｓ１９、Ｓ２１、Ｓ２２の処理を実行するＣＰＵ２１が本発明の「ブロック再設定手段」に相当する。
【００４７】
なお、本発明の数値制御装置、移動経路修正方法、移動経路修正プログラム及び記憶媒体は、上記実施形態に限らず、各種の変形が可能なことはいうまでもない。
【符号の説明】
【００４８】
１  数値制御装置
２  工作機械
２１  ＣＰＵ
２２  ＲＯＭ
２３  ＲＡＭ
２４  フラッシュメモリ
２３１  セグメントバッファ
【図１】
0005477247.tif 000002
【図２】
0005477247.tif 000003
【図３】
0005477247.tif 000004
【図４】
0005477247.tif 000005
【図５】
0005477247.tif 000006
【図６】
0005477247.tif 000007
【図７】
0005477247.tif 000008
【図８】
0005477247.tif 000009
【図９】
0005477247.tif 000010