(57)【要約】【課題】  解析時間が予測可能でありながら、加工面における傷の発生箇所を高精度に特定することができる加工プログラム解析装置およびこれを備えた工作機械、ならびに加工プログラム解析プログラムおよび加工プログラム解析方法を提供する。【解決手段】  加工プログラムによって指令される加工経路を、複数の隣接する単位加工経路ごとに分割する加工経路分割部４３と、前記隣接する単位加工経路のそれぞれを構成する各指令点の位置関係に基づいて、前記単位加工経路同士で隣り合う指令点が抜けている指令点を孤立指令点として検出する孤立指令点検出部４６と、を有する。【選択図】  図１
2019101799.tif 000002
【特許請求の範囲】
【請求項１】
加工プログラムによって指令される加工経路を、複数の隣接する単位加工経路ごとに分割する加工経路分割部と、
前記隣接する単位加工経路のそれぞれを構成する各指令点の位置関係に基づいて、前記単位加工経路同士で隣り合う指令点が抜けている指令点を孤立指令点として検出する孤立指令点検出部と、
を有する、加工プログラム解析装置。
【請求項２】
前記孤立指令点検出部は、前記隣接する単位加工経路である第１単位加工経路および第２単位加工経路において、前記第１単位加工経路を構成する全ての指令点について、前記第２単位加工経路を構成する各指令点との距離である指令点間距離を算出し、前記指令点間距離が最短である指令点を隣接指令点として特定するとともに、前記第２単位加工経路を構成する各指令点のうち、前記第１単位加工経路を構成するいずれの指令点からも前記隣接指令点として特定されなかった指令点を前記孤立指令点として検出する、請求項１に記載の加工プログラム解析装置。
【請求項３】
前記孤立指令点検出部は、前記隣接する単位加工経路である第１単位加工経路および第２単位加工経路において、前記第１単位加工経路を構成するいずれかの指令点である第１始点から当該第１始点よりも後方の指令点である第１終点までの指令点間距離と、前記第２単位加工経路を構成するいずれかの指令点であって前記第１始点と隣り合う第２始点から、当該第２始点よりも後方の指令点である第２終点までの指令点間距離とを算出し、各指令点間距離の差が任意の閾値を超える場合、前記指令点間距離が短い方の終点となっている指令点を前記孤立指令点として検出する、請求項１に記載の加工プログラム解析装置。
【請求項４】
前記加工プログラムが、ある基準点を中心として前記指令点が周上に分布する形状である特定立体物を加工するための加工プログラムである場合、
前記加工経路分割部は、前記加工経路を構成する全ての指令点の位置座標を平均した平均座標を原点として算出するとともに、前記原点に関して前記全ての指令点の位置座標を極座標に変換し、１周分の指令点列ごとに前記単位加工経路として分割する、請求項１から請求項３のいずれかに記載の加工プログラム解析装置。
【請求項５】
前記加工プログラムが、ある基準点を中心として前記指令点が周上に分布する形状である特定立体物以外の立体物を加工するための加工プログラムである場合、
前記加工プログラムの指令点列を構成する各指令点について、１または複数の指令点の位置座標を用いて所定の物理量を算出する物理量算出部と、
各指令点の前記物理量に対してクラスター分析を行うことにより、前記物理量を複数のグループに分類する物理量分類部と、をさらに有し、
前記加工経路分割部は、前記物理量分類部による分類結果に基づいて、同一の加工面に属する指令点列を抽出するとともに、当該指令点列の加工順序における前後の指令点間の距離が任意の閾値以上である指令点間で前記加工経路を分割する、請求項１から請求項４のいずれかに記載の加工プログラム解析装置。
【請求項６】
前記加工プログラムが、ある基準点を中心として前記指令点が周上に分布する形状である特定立体物以外の立体物を加工するための加工プログラムである場合、
前記加工プログラムの指令点列を構成する各指令点について、１または複数の指令点の位置座標を用いて所定の物理量を算出する物理量算出部と、
各指令点の前記物理量に対してクラスター分析を行うことにより、前記物理量を複数のグループに分類する物理量分類部と、をさらに有し、
前記加工経路分割部は、前記物理量分類部による分類結果に基づいて、同一の加工面に属する指令点列を抽出するとともに、当該指令点列の加工順序における前後の指令点間の方向がピックフィード方向へ任意の閾値以上に変化した指令点間または前後の指令点間の角度が任意の閾値以上に変化した指令点間で前記加工経路を分割する、請求項１から請求項５のいずれかに記載の加工プログラム解析装置。
【請求項７】
前記孤立指令点検出部は、前記単位加工経路のそれぞれについて、加工方向に沿った順方向に前記孤立指令点を順次検出するとともに、前記順方向とは逆方向にも前記孤立指令点を順次検出する、請求項１から請求項６のいずれかに記載の加工プログラム解析装置。
【請求項８】
請求項１から請求項７のいずれかに記載の加工プログラム解析装置を備えてなる工作機械。
【請求項９】
加工プログラムによって指令される加工経路を、複数の隣接する単位加工経路ごとに分割する加工経路分割部と、
前記隣接する単位加工経路のそれぞれを構成する各指令点の位置関係に基づいて、前記単位加工経路同士で隣り合う指令点が抜けている指令点を孤立指令点として検出する孤立指令点検出部と
してコンピュータを機能させる、加工プログラム解析プログラム。
【請求項１０】
加工プログラムによって指令される加工経路を、複数の隣接する単位加工経路ごとに分割する加工経路分割ステップと、
前記隣接する単位加工経路のそれぞれを構成する各指令点の位置関係に基づいて、前記単位加工経路同士で隣り合う指令点が抜けている指令点を孤立指令点として検出する孤立指令点検出ステップと、
を有する、加工プログラム解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械を数値制御するための加工プログラムを解析する加工プログラム解析装置およびこれを備えた工作機械、ならびに加工プログラム解析プログラムおよび加工プログラム解析方法に関するものである。
【背景技術】
【０００２】
従来、工作機械を数値制御して自由曲面等を加工する場合、図２３に示すように、加工経路を微小線分に区分する指令点の点列データ（指令点列）を含む加工プログラムが使用されている。この加工プログラムは、近年の加工内容の複雑化に伴い、ＣＡＤ（Computer-Aided Design：コンピュータ支援設計）機能およびＣＡＭ（Computer Aided Manufacturing：コンピュータ支援製造）機能を兼ね備えたＣＡＤ／ＣＡＭ装置によって生成されることが多い。
【０００３】
しかしながら、当該ＣＡＤ／ＣＡＭ装置の性能によっては、図２４に示すように、生成された加工プログラムに含まれる指令点列が不揃いになってしまうことが知られている。そして、このような不揃いの指令点列を含む加工プログラムによってワークを加工した場合、加工経路に誤差が生じるため、加工面に傷や筋目等の痕跡が残ってしまうという問題がある。
【０００４】
なお、加工プログラムの良否や問題点等を解析するものとして、例えば、特開２００４−２１９５４号公報には、加工プログラムの工具軌跡の各微小線分について、特定軸に対する傾きの正、負、または０を判定し、各傾きに対して異なる表示属性により微小線分あるいは微小線分の端点を表示する工具軌跡表示方法が開示されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２１９５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、加工プログラムに含まれる指令点列は、各指令点についての単なる位置座標にしか過ぎない。このため、上記特許文献１では、いずれか一つの特定軸に対する加工経路上の凹凸程度は識別できるものの、それ以外の有用な情報を加工プログラムから直接取得することができないという問題がある。
【０００７】
例えば、加工プログラムによって加工されるワークがどのような加工面を有するかの情報や、各指令点が隣接する加工経路を含む周囲の指令点との位置関係において不揃いか否かの情報を解析できれば、加工面の品位の向上に資するものと考えられる。しかしながら、従来、位置座標以外の情報を含まない加工プログラムからは、上述したような情報を直接取得することができず、限られた解析しか行うことができないという問題がある。
【０００８】
そこで、本発明者らは、特願２０１６−２４８１５４号において、各指令点の位置座標を用いて所定の物理量を算出し、当該物理量に対してクラスター分析を行うことにより、加工プログラムから有用な情報を直接取得し、様々な解析を行うことが可能な加工プログラムの解析方法を提案している。この解析方法によれば、加工プログラムの指令点列を構成する各指令点のうち、周囲の指令点との位置関係において不揃いの指令点、すなわち、加工面において傷が発生する箇所を特定することができる。
【０００９】
ただし、上述したクラスター分析は、いわゆる教師なし学習の一種であるため、収束するまで演算処理を反復する必要がある。このため、演算回数が予測困難であり、適切な解析結果が得られるまでに要する解析時間が長期化する可能性がある。また、不適切な局所解に収束すると、期待した解析結果が得られない可能性もある。そこで、本発明者らは、クラスター分析を用いることなく、加工面における傷の発生箇所を特定可能な別のアプローチを模索していた。
【００１０】
本発明は、このような背景技術のもとになされたものであって、解析時間が予測可能でありながら、加工面における傷の発生箇所を高精度に特定することができる加工プログラム解析装置およびこれを備えた工作機械、ならびに加工プログラム解析プログラムおよび加工プログラム解析方法を提供することを目的としている。
【課題を解決するための手段】
【００１１】
本発明に係る加工プログラム解析装置は、解析時間が予測可能でありながら、加工面における傷の発生箇所を高精度に特定するという課題を解決するために、加工プログラムによって指令される加工経路を、複数の隣接する単位加工経路ごとに分割する加工経路分割部と、前記隣接する単位加工経路のそれぞれを構成する各指令点の位置関係に基づいて、前記単位加工経路同士で隣り合う指令点が抜けている指令点を孤立指令点として検出する孤立指令点検出部と、を有する。
【００１２】
また、本発明の一態様として、孤立指令点を簡便かつ正確に検出するという課題を解決するために、前記孤立指令点検出部は、前記隣接する単位加工経路である第１単位加工経路および第２単位加工経路において、前記第１単位加工経路を構成する全ての指令点について、前記第２単位加工経路を構成する各指令点との距離である指令点間距離を算出し、前記指令点間距離が最短である指令点を隣接指令点として特定するとともに、前記第２単位加工経路を構成する各指令点のうち、前記第１単位加工経路を構成するいずれの指令点からも前記隣接指令点として特定されなかった指令点を前記孤立指令点として検出してもよい。
【００１３】
また、本発明の一態様として、孤立指令点を簡便かつ正確に検出するとともに解析時間を短縮するという課題を解決するために、前記孤立指令点検出部は、前記隣接する単位加工経路である第１単位加工経路および第２単位加工経路において、前記第１単位加工経路を構成するいずれかの指令点である第１始点から当該第１始点よりも後方の指令点である第１終点までの指令点間距離と、前記第２単位加工経路を構成するいずれかの指令点であって前記第１始点と隣り合う第２始点から、当該第２始点よりも後方の指令点である第２終点までの指令点間距離とを算出し、各指令点間距離の差が任意の閾値を超える場合、前記指令点間距離が短い方の終点となっている指令点を前記孤立指令点として検出してもよい。
【００１４】
さらに、本発明の一態様として、特定立体物の外周面に沿う加工経路を適切に単位加工経路ごとに分割するという課題を解決するために、前記加工プログラムが、ある基準点を中心として前記指令点が周上に分布する形状である特定立体物を加工するための加工プログラムである場合、前記加工経路分割部は、前記加工経路を構成する全ての指令点の位置座標を平均した平均座標を原点として算出するとともに、前記原点に関して前記全ての指令点の位置座標を極座標に変換し、１周分の指令点列ごとに前記単位加工経路として分割してもよい。
【００１５】
また、本発明の一態様として、特定立体物以外の立体物における同一の加工面上で一方向のみに移動する加工経路についても、適切に単位加工経路ごとに分割するという課題を解決するために、前記加工プログラムが、ある基準点を中心として前記指令点が周上に分布する形状である特定立体物以外の立体物を加工するための加工プログラムである場合、前記加工プログラムの指令点列を構成する各指令点について、１または複数の指令点の位置座標を用いて所定の物理量を算出する物理量算出部と、各指令点の前記物理量に対してクラスター分析を行うことにより、前記物理量を複数のグループに分類する物理量分類部と、をさらに有し、前記加工経路分割部は、前記物理量分類部による分類結果に基づいて、同一の加工面に属する指令点列を抽出するとともに、当該指令点列の加工順序における前後の指令点間の距離が任意の閾値以上である指令点間で前記加工経路を分割してもよい。
【００１６】
さらに、本発明の一態様として、特定立体物以外の立体物における同一の加工面上で双方向に移動する加工経路や、同一の加工面における移動方向の変化が小さく、次の指令点までの移動距離が長いことによって折り返されるような加工経路についても、適切に単位加工経路ごとに分割するという課題を解決するために、前記加工プログラムが、ある基準点を中心として前記指令点が周上に分布する形状である特定立体物以外の立体物を加工するための加工プログラムである場合、前記加工プログラムの指令点列を構成する各指令点について、１または複数の指令点の位置座標を用いて所定の物理量を算出する物理量算出部と、各指令点の前記物理量に対してクラスター分析を行うことにより、前記物理量を複数のグループに分類する物理量分類部と、をさらに有し、前記加工経路分割部は、前記物理量分類部による分類結果に基づいて、同一の加工面に属する指令点列を抽出するとともに、当該指令点列の加工順序における前後の指令点間の方向がピックフィード方向へ任意の閾値以上に変化した指令点間または前後の指令点間の角度が閾値以上に変化した指令点間で前記加工経路を分割してもよい。
【００１７】
また、本発明の一態様として、孤立指令点を漏れなく検出して解析の精度をさらに向上するという課題を解決するために、前記孤立指令点検出部は、前記単位加工経路のそれぞれについて、加工方向に沿った順方向に前記孤立指令点を順次検出するとともに、前記順方向とは逆方向にも前記孤立指令点を順次検出してもよい。
【００１８】
また、本発明に係る工作機械は、上述したいずれかの態様の加工プログラム解析装置を備えてなる。
【００１９】
さらに、本発明に係る加工プログラム解析プログラムは、解析時間が予測可能でありながら、加工面における傷の発生箇所を高精度に特定するという課題を解決するために、加工プログラムによって指令される加工経路を、複数の隣接する単位加工経路ごとに分割する加工経路分割部と、前記隣接する単位加工経路のそれぞれを構成する各指令点の位置関係に基づいて、前記単位加工経路同士で隣り合う指令点が抜けている指令点を孤立指令点として検出する孤立指令点検出部としてコンピュータを機能させる。
【００２０】
本発明に係る加工プログラム解析方法は、解析時間が予測可能でありながら、加工面における傷の発生箇所を高精度に特定するという課題を解決するために、加工プログラムによって指令される加工経路を、複数の隣接する単位加工経路ごとに分割する加工経路分割ステップと、前記隣接する単位加工経路のそれぞれを構成する各指令点の位置関係に基づいて、前記単位加工経路同士で隣り合う指令点が抜けている指令点を孤立指令点として検出する孤立指令点検出ステップと、を有する。
【発明の効果】
【００２１】
本発明によれば、解析時間が予測可能でありながら、加工面における傷の発生箇所を高精度に特定することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明に係る加工プログラム解析装置およびこれを備えた工作機械の第１実施形態を示すブロック図である。
【図２】本第１実施形態において、解析結果記憶部に記憶される解析結果の一例を示す図である。
【図３】本第１実施形態における、特定立体物の一例を示す図である。
【図４】本第１実施形態における、特定立体物以外の立体物の一例を示す図である。
【図５】本第１実施形態において、特定立体物の加工経路を単位加工経路に分割する方法を示す図である。
【図６】本第１実施形態において、円柱の加工経路を単位加工経路に分割した状態を示す図である。
【図７】本第１実施形態において、同一の加工面を加工する軸が一方向のみに移動する加工経路を単位加工経路に分割する方法を示す図である。
【図８】本第１実施形態において、同一の加工面を加工する軸が双方向に移動する加工経路を単位加工経路に分割する方法を示す図である。
【図９】本第１実施形態において、指令点列の加工順序における前後の指令点間の角度を示す図である。
【図１０】本第１実施形態において、孤立指令点を検出する方法を示す図である。
【図１１】本第１実施形態において、（ａ）加工経路に沿った順方向に孤立指令点を検出した場合、および（ｂ）当該順方向とは逆方向に孤立指令点を検出した場合を示す図である。
【図１２】本第１実施形態の加工プログラム解析装置および加工プログラム解析プログラムによって実行される加工プログラム方法を示すフローチャートである。
【図１３】本第１実施形態における、加工経路分割処理の詳細を示すフローチャートである。
【図１４】本第１実施形態における、孤立指令点検出処理の詳細を示すフローチャートである。
【図１５】本第２実施形態において、（ａ）孤立指令点が検出されない場合、および（ｂ）孤立指令点が検出される場合を示す図である。
【図１６】本第２実施形態において、（ａ）指令点Ｐ１３が孤立指令点として検出されない場合、および（ｂ）指令点Ｐ１３が孤立指令点として検出される場合を示す図である。
【図１７】本第２実施形態における、孤立指令点検出処理の詳細を示すフローチャートである。
【図１８】本実施例で解析対象としたブレード加工プログラムの加工経路を示す（ａ）平面図、（ｂ）正面図および（ｃ）側面図である。
【図１９】（ａ）実施例の解析結果および（ｂ）比較例の解析結果を示す斜視図である。
【図２０】（ａ）実施例の解析結果および（ｂ）比較例の解析結果を示す正面図である。
【図２１】単純な形状の特定立体物において、（ａ）加工経路によって形成される図形の内側に原点を設定して加工経路を分割した場合、および（ｂ）前記図形の外側に原点を設定して加工経路を分割した場合の図である。
【図２２】複雑な形状の特定立体物において、（ａ）加工経路によって形成される図形の内側に原点を設定しても、加工経路が複数箇所で切断される場合、および（ｂ）平均座標を原点として設定した場合の図である。
【図２３】加工プログラムの指令点列を構成する指令点およびその加工経路を示す図である。
【図２４】不揃いの指令点が生じた加工プログラムの加工経路を示す図である。
【発明を実施するための形態】
【００２３】
以下、本発明に係る加工プログラム解析装置およびこれを備えた工作機械、ならびに加工プログラム解析プログラムおよび加工プログラム解析方法の第１実施形態について、図面を用いて説明する。
【００２４】
本第１実施形態の加工プログラム解析装置１は、工作機械１０を数値制御するための加工プログラムを解析するためのものであり、コンピュータ数値制御（ＣＮＣ：Computer Numerical Control）可能な数値制御装置によって構成されている。そして、加工プログラムに基づいて工作機械１０を制御し、ワーク（加工対象物）を加工するようになっている。以下、各構成について詳細に説明する。
【００２５】
工作機械１０は、旋盤、ボール盤、中ぐり盤、フライス盤、歯切り盤、研削盤等のように、金属、木材、石材、樹脂等のワークに対して、切断、穿孔、研削、研磨、圧延、鍛造、折り曲げ等の各種の加工を施すための機械である。本第１実施形態において、工作機械１０は、加工プログラム解析装置１に備えられており、解析された加工プログラムに基づいて数値制御されるようになっている。
【００２６】
加工プログラム解析装置１は、図１に示すように、主として、データの入力や解析結果の表示を行うための表示入力手段２と、本第１実施形態の加工プログラム解析プログラム１ａや各種データを記憶するとともに、演算処理手段４が各種処理を行う際のワーキングエリアとして機能する記憶手段３と、記憶手段３にインストールされた加工プログラム解析プログラム１ａを実行することにより、各種の演算処理を実行する演算処理手段４とから構成されている。以下、各構成手段について詳細に説明する。
【００２７】
なお、本第１実施形態において、加工プログラム解析装置１は、数値制御装置によって構成されているが、この構成に限定されるものではない。例えば、パーソナルコンピュータ、タブレット端末またはスマートフォン等の一般的なコンピュータや、上述したＣＡＤ／ＣＡＭ装置等の特殊なコンピュータに本発明に係る加工プログラム解析機能を実装し、加工プログラム解析装置１として構成してもよい。
【００２８】
表示入力手段２は、タッチパネル等で構成されており、入力機能と表示機能とを兼ね備えたものである。本第１実施形態において、表示入力手段２は、後述する加工対象物の種類等を受け付ける入力機能と、加工プログラムの解析結果等を表示する表示機能とを有している。なお、本第１実施形態では、表示機能および入力機能を兼ね備えた表示入力手段２を使用しているが、この構成に限定されるものではなく、表示機能のみを備えた液晶ディスプレイ等の表示手段、および入力機能のみを備えたキーボードやマウス等の入力手段をそれぞれ別個に有していてもよい。
【００２９】
記憶手段３は、ハードディスク、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、フラッシュメモリ等で構成されており、各種データを記憶するとともに、演算処理手段４が各種処理を行う際のワーキングエリアとして機能するものである。本第１実施形態において、記憶手段３は、図１に示すように、解析プログラム記憶部３１と、加工プログラム記憶部３２と、解析結果記憶部３３とを有している。
【００３０】
解析プログラム記憶部３１には、本第１実施形態の加工プログラム解析装置１を制御するための加工プログラム解析プログラム１ａがインストールされている。そして、演算処理手段４が、当該加工プログラム解析プログラム１ａを実行することにより、加工プログラム解析装置１としてのコンピュータを後述する各構成部として機能させるようになっている。
【００３１】
なお、加工プログラム解析プログラム１ａの利用形態は、上記構成に限られるものではない。例えば、ＣＤ−ＲＯＭやＵＳＢメモリ等のように、コンピュータで読み取り可能な非一時的な記録媒体に加工プログラム解析プログラム１ａを記憶させておき、当該記録媒体から直接読み出して実行してもよい。また、外部サーバ等からクラウドコンピューティング方式やＡＳＰ（Application Service Provider）方式等で利用してもよい。
【００３２】
加工プログラム記憶部３２は、解析対象となる加工プログラムを記憶するものである。本第１実施形態において、加工プログラムは、各種の工作機械１０を数値制御するためのものであり、ＣＡＤ／ＣＡＭ装置によって生成される。また、加工プログラムには、行番号に対応付けて、加工経路を微小線分に区分する各指令点の位置座標が指令点列として含まれている。
【００３３】
解析結果記憶部３３は、加工プログラムの解析結果を記憶するものである。本第１実施形態において、解析結果記憶部３３は、図２に示すように、データテーブル形式で構成されている。そして、加工プログラムの指令点列を構成する各指令点について、加工方向に沿ってシーケンシャルに振られた指令点番号と、Ｘ軸、Ｙ軸およびＺ軸の各座標値で表された位置座標と、後述する加工経路分割部４３によって分割された単位加工経路の番号と、後述する孤立指令点検出部４６によって検出された孤立指令点とが記憶されるようになっている。
【００３４】
また、本第１実施形態において、後述する特定立体物以外の立体物を加工するための加工プログラムを解析する場合、図２に示すように、解析結果記憶部３３には、後述する物理量算出部４４によって算出された物理量と、後述する物理量分類部４５によって分類されたグループのグループ番号とが別途記憶される。なお、図２に示す例では、孤立指令点となる指令点にのみ「１」の値が付与されるようになっている。
【００３５】
つぎに、演算処理手段４は、ＣＰＵ（Central Processing Unit）等によって構成されており、記憶手段３にインストールされた加工プログラム解析プログラム１ａを実行することにより、図１に示すように、指令点取得部４１と、対象物種類取得部４２と、加工経路分割部４３と、物理量算出部４４と、物理量分類部４５と、孤立指令点検出部４６として機能するようになっている。以下、演算処理手段４の各構成部についてより詳細に説明する。
【００３６】
指令点取得部４１は、加工プログラムから指令点を取得するものである。本第１実施形態において、指令点取得部４１は、加工プログラム記憶部３２から加工プログラムを読み出し、当該加工プログラムによって指令される加工経路を構成する各指令点の位置座標を取得して、解析結果記憶部３３に順次記憶させるようになっている。
【００３７】
対象物種類取得部４２は、加工対象物の種類を取得するものである。本第１実施形態において、対象物種類取得部４２は、加工プログラムによって加工される加工対象物が、後述する特定立体物であるか、当該特定立体物以外の立体物であるかについての選択を表示入力手段２を介して受け付け、当該選択された種類を加工経路分割部４３に提供するようになっている。
【００３８】
加工経路分割部４３は、加工プログラムによって指令される加工経路を、複数の隣接する単位加工経路ごとに分割するものである。本第１実施形態において、加工経路分割部４３は、加工対象物の種類に応じて、加工経路を所定の単位加工経路に分割する。そして、分割された各単位加工経路を構成する各指令点に対して、加工方向に沿ってシーケンシャルな単位加工経路番号を付し、解析結果記憶部３３に記憶するようになっている。以下、具体的に説明する。
【００３９】
加工プログラムによって加工される加工対象物には、多種多様な形状がある。そこで、本第１実施形態では、ある基準点を中心として指令点が周上に分布する形状である特定立体物と、当該特定立体物以外の立体物との２種類に加工対象物を大別した。そして、その種類に応じて、異なる方法によって加工経路を単位加工経路に分割した。
【００４０】
なお、本発明において、「周上」とは、円周上に限定されるものではなく、任意の図形を囲む閉じた曲線または折れ線からなる周の上を含む概念である。このため、特定立体物としては、図３に示すような円柱、三角柱および四角柱の他、楕円柱や多角柱等のように、ある基準点を中心として指令点が周上に分布する形状を備えた全ての立体物が含まれる。一方、特定立体物以外の立体物としては、例えば図４に示すような金型のように、ある基準点を中心として指令点が周上に分布しない任意の形状を備えた全ての立体物が含まれる。
【００４１】
以下、加工プログラムが、特定立体物を加工するための加工プログラムである場合と、特定立体物以外の立体物を加工するための加工プログラムである場合とに分けて、加工経路分割部４３による加工経路の分割方法について説明する。
【００４２】
対象物種類取得部４２によって取得された種類が、特定立体物であった場合、加工経路分割部４３は、図５に示すように、まず、加工経路を構成する全ての指令点の位置座標を平均した平均座標を原点として算出する。つぎに、加工経路分割部４３は、算出した原点（平均座標）に関して全ての指令点の位置座標を極座標に変換する。これにより、各指令点の位置座標が、動径座標ｒ（原点から指令点までの距離）と、偏角座標φ（任意の始線に対して、原点と指令点とを結ぶ直線がなす角度）とによって表される。
【００４３】
そして、加工経路分割部４３は、一つ目の指令点から偏角φが３６０度（２π）回転するたびに、すなわち、１周分の指令点列ごとに単位加工経路として分割する。これにより、例えば、特定立体物が円柱の場合、図６に示すように、円柱の外周面に沿って螺旋状に連続する加工経路が、１周分の指令点列ごとに分割され、その指令点列のそれぞれが単位加工経路としてグルーピングされることとなる。
【００４４】
一方、対象物種類取得部４２によって取得された種類が、特定立体物以外の立体物であった場合、当該立体物の形状が複雑であるため、単純に加工経路を分割することができない。そこで、本第１実施形態では、本発明者らによって考案された特願２０１６−２４８１５４号における、物理量算出部４４および物理量分類部４５と同等の機能部を使用し、立体物の加工面のうち、同一の加工面に属する指令点列を抽出した後、加工経路を分割するようになっている。
【００４５】
具体的には、物理量算出部４４は、各指令点について物理量を算出するものである。本第１実施形態において、物理量算出部４４は、指令点取得部４１によって取得された各指令点の位置座標を解析結果記憶部３３から読み出すとともに、加工プログラムの解析に使用する１または２以上の物理量に対応する定義式を記憶手段３から読み出す。そして、物理量算出部４４は、読み出した定義式に基づき、１または複数の指令点の位置座標を用いて、各指令点についての物理量を算出し、解析結果記憶部３３に記憶するようになっている。
【００４６】
なお、本第１実施形態において、物理量とは、物理系の性質を表現し、その測定方法や、大きさの単位が規定された全ての量を含む概念である。また、本第１実施形態に係る定義式としては、加工プログラムの指令点列を構成する各指令点について、１または複数の指令点の位置座標を用いて算出される物理量が定義されている。
【００４７】
具体的には、下記式（１）で定義される移動量、下記式（２）で定義される角度、または下記式（３）で定義される曲率半径が使用可能である。そして、当該物理量を算出するための定義式として、下記式（１）〜（３）等の定義式が記憶手段３に予め登録されている。
Ｖｉ＝Ｐｉ＋１−Ｐｉ−１  ・・・式（１）
2019101799.tif 000003
ただし、各符号は以下を表す。
ｉ：指令点番号
Ｐｉ：第ｉ番目の指令点の位置座標
Ｖｉ：第ｉ番目の指令点の移動量
θｉ：第ｉ番目の指令点の角度
ρｉ：第ｉ番目の指令点の曲率半径
ｃ１：Ｐｉ、Ｐｉ＋１間の移動を示す曲線を近似したｎ次多項式の１次の項の係数
ｃ２：Ｐｉ、Ｐｉ＋１間の移動を示す曲線を近似したｎ次多項式の２次の項の係数
【００４８】
物理量分類部４５は、各指令点の物理量に対してクラスター分析を行うことにより、物理量を複数のグループに分類するものである。本発明において、クラスター分析とは、いわゆる非階層的クラスター分析に相当するものである。具体的には、分類するグループ数を予め定めておき、互いに性質が類似するものを同一のグループに分類し、そうでないものを異なるグループに分類することで、予め定めたグループ数にグルーピングする手法である。
【００４９】
よって、本第１実施形態において、物理量分類部４５は、物理量算出部４４によって算出された各指令点の物理量を解析結果記憶部３３から読み出し、任意のグループ数となるように、各指令点の物理量をクラスター分析し分類する。そして、物理量分類部４５は、分類結果として得られたグループ番号を各指令点の物理量に対応付けて解析結果記憶部３３に記憶する。これにより、同一の加工面に属する指令点列については、同一のグループ番号が付与される。
【００５０】
なお、クラスター分析に使用するアルゴリズムとしては、計算時間と分析精度の観点から、Ｋ−ｍｅａｎｓ法（Ｋ平均法）が好ましいが、物理量をグルーピング可能な手法であれば、特に限定されるものではなく、他のクラスタリングアルゴリズムを使用してもよい。また、本第１実施形態において、各指令点の物理量をクラスター分析する際のグループ数（クラスタ数）は、解析に使用する物理量や、加工対象物の形状等によって最適値が異なるため、ユーザが所望のグループ数を設定しうるようになっている。
【００５１】
上述した物理量算出部４４および物理量分類部４５によって、同一の加工面に属する指令点列を抽出した後、加工経路分割部４３は、同一の加工面上に分布する加工経路を複数の隣接する単位加工経路ごとに分割する。ただし、同一の加工面を加工する軸の移動方向としては、図７に示すように、一方向のみに移動する場合と、図８に示すように、双方向に移動する場合の２パターンがある。このため、いずれのパターンであっても、加工経路を適切に単位加工経路ごとに分割しうる方法を考案した。
【００５２】
具体的には、加工経路分割部４３は、まず、物理量分類部４５による分類結果が記憶された解析結果記憶部３３を参照し、同一のグループ番号が付与された指令点列を抽出する。そして、加工経路分割部４３は、抽出した指令点列の加工順序における前後の指令点間の距離が任意の閾値以上である指令点間で加工経路を分割する。これにより、図７に示すように、一方向のみに移動する加工経路においては、移動距離が急激に変化する箇所で加工経路が分断される。
【００５３】
また、加工経路分割部４３は、抽出した指令点列の加工順序における前後の指令点間の方向がピックフィード方向へ任意の閾値以上に変化した指令点間で加工経路を分割する。具体的には、加工経路分割部４３は、各指令点の位置座標を用いて各指令点間の加工ベクトルを算出し、当該加工ベクトルが加工経路に垂直なピックフィード方向へ任意の閾値以上に変化する箇所を検出する。これにより、図８に示すように、双方向に移動する加工経路においては、移動方向が急激に変化する箇所で加工経路が分断される。
【００５４】
さらに、加工経路分割部４３は、抽出した指令点列の加工順序における前後の指令点間の角度が任意の閾値以上に変化した指令点間で加工経路を分割する。具体的には、加工経路分割部４３は、図９に示すように、ｉ−１番目の指令点Ｐｉ−１とｉ番目の指令点Ｐｉとを結ぶ加工経路に対して、ｉ番目の指令点Ｐｉとｉ＋１番目の指令点Ｐｉ＋１とを結ぶ加工経路のなす角度を上記式（２）を用いて算出し、当該角度が任意の閾値以上となる箇所を検出する。これにより、移動方向の変化が小さく、次の指令点までの移動距離が長いことによって折り返されるような移動経路についても分断される。
【００５５】
以上のように、加工経路が単位加工経路ごとに分断されると、加工経路分割部４３は、加工順序に沿って各単位加工経路にシーケンシャルな単位加工経路番号を付与する。これにより、解析結果記憶部３３には、図２に示すように、同一の単位加工経路に属する指令点のそれぞれについて、同一の単位加工経路番号が記憶される。
【００５６】
孤立指令点検出部４６は、隣接する単位加工経路のそれぞれを構成する各指令点の位置関係に基づいて、単位加工経路同士で隣り合う指令点が抜けている指令点を孤立指令点として検出するものである。具体的には、孤立指令点検出部４６は、まず、解析結果記憶部３３に記憶されている単位加工経路番号を参照し、隣接する単位加工経路である第１単位加工経路および第２単位加工経路を抽出する。
【００５７】
つぎに、孤立指令点検出部４６は、図１０に示すように、互いに隣接する第１単位加工経路および第２単位加工経路において、第１単位加工経路を構成する全ての指令点について、第２単位加工経路を構成する各指令点との指令点間距離を算出する。そして、当該指令点間距離が最短である指令点を隣接指令点として特定する。図１０に示す例では、第１単位加工経路の指令点Ｐ１１については、第２単位加工経路の指令点Ｐ２１が隣接指令点となり、第１単位加工経路の指令点Ｐ１２については、第２単位加工経路の指令点Ｐ２２が隣接指令点となり、第１単位加工経路の指令点Ｐ１３については、第２単位加工経路の指令点Ｐ２４が隣接指令点となる。
【００５８】
以上のように、第１単位加工経路を構成する全ての指令点について隣接指令点を特定した後、孤立指令点検出部４６は、第２単位加工経路を構成する各指令点のうち、第１単位加工経路を構成するいずれの指令点からも隣接指令点として特定されなかった指令点があれば、当該指令点が単位加工経路同士で隣り合う指令点が抜けている指令点であるため、孤立指令点として検出する。図１０に示す例では、第２単位加工経路の指令点Ｐ２３が、第１単位加工経路を構成するいずれの指令点からも隣接指令点として特定されないため、孤立指令点として検出される。そして、検出された指令点に対しては、孤立指令点である旨が解析結果記憶部３３に記憶される。
【００５９】
以上のように、全ての単位加工経路に属する全ての指令点について、隣接指令点を特定することにより、解析対象の加工プログラム内に存在する孤立指令点がほぼ検出される。ただし、本第１実施形態において、孤立指令点検出部４６は、単位加工経路のそれぞれについて、加工方向に沿った順方向に孤立指令点を順次検出している。具体的には、最初に単位加工経路番号が１番と２番の単位加工経路のそれぞれを第１単位加工経路および第２単位加工経路として、次に単位加工経路番号が２番と３番の単位加工経路のそれぞれを第１単位加工経路および第２単位加工経路とし、以下、同様である。
【００６０】
しかしながら、上記のように、一方向においてのみ孤立指令点を探索すると、図１１（ａ）に示すように、当該方向の前方側の単位加工経路において指令点が抜けている場合、後方側の単位加工経路において孤立指令点が検出されるものの、後方側の単位加工経路において指令点が抜けている場合、前方側の指令点は孤立指令点として検出されない。
【００６１】
そこで、本第１実施形態において、孤立指令点検出部４６は、単位加工経路のそれぞれについて、加工方向に沿った順方向に孤立指令点を順次検出するとともに、当該順方向とは逆方向にも孤立指令点を順次検出するようになっている。例えば、図１１（ｂ）に示す例では、最初に単位加工経路番号が５番と４番の単位加工経路のそれぞれを第１単位加工経路および第２単位加工経路とし、次に単位加工経路番号が４番と３番の単位加工経路のそれぞれを第１単位加工経路および第２単位加工経路とし、以下、同様である。これにより、順方向における探索だけでは検出されない孤立指令点が漏れなく検出される。なお、図１１において、実線の矢印は、基端部の指令点の隣接指令点を指し示している。
【００６２】
つぎに、本第１実施形態の加工プログラム解析装置１およびこれを備えた工作機械１０、ならびに加工プログラム解析プログラム１ａおよび加工プログラム解析方法の作用について、図１２から図１４を参照しつつ説明する。
【００６３】
本第１実施形態の加工プログラム解析装置１によって加工プログラムを解析する場合、まず、指令点取得部４１が、加工プログラム記憶部３２内の解析対象となる加工プログラムから指令点列を構成する指令点を取得する（ステップＳ１）。これにより、図２に示すように、各指令点の位置座標が解析結果記憶部３３に記憶される。
【００６４】
つぎに、対象物種類取得部４２が、表示入力手段２を介したオペレータの選択操作に応じて、加工プログラムによる加工対象物の種類を取得すると（ステップＳ２）、当該種類に応じて、加工経路分割部４３が複数の隣接する単位加工経路ごとに加工経路を分割する（ステップＳ３：加工経路分割ステップ）。以下、本ステップＳ３に係る加工経路分割処理について、図１３を参照しつつ説明する。
【００６５】
加工経路分割ステップでは、図１３に示すように、対象物種類取得部４２によって取得された加工対象物の種類が特定立体物であった場合（ステップＳ１１：ＹＥＳ）、加工経路分割部４３は、まず、加工経路を構成する全ての指令点の位置座標を平均した平均座標を原点として算出する（ステップＳ１２）。
【００６６】
つぎに、加工経路分割部４３は、算出した原点（平均座標）に関して全ての指令点の位置座標を極座標に変換する（ステップＳ１３）。これにより、原点を中心として周上に分布する各指令点について、原点周りの偏角が算出される。そして、加工経路分割部４３は、１周分の指令点列ごとに単位加工経路として分割する（ステップＳ１４）。これにより、特定立体物の外周面に沿う加工経路が、１周分の指令点列ごとに分割され、その指令点列のそれぞれが単位加工経路としてグルーピングされる。なお、加工経路が単位加工経路ごとに分割されると、図１２の処理に戻る。
【００６７】
一方、対象物種類取得部４２によって取得された加工対象物の種類が特定立体物以外の立体物であった場合（ステップＳ１１：ＮＯ）、まず、物理量算出部４４が、各指令点について任意の物理量を算出する（ステップＳ１５）。これにより、図２に示すように、各指令点について１つの物理量または２以上の物理量群が、解析結果記憶部３３に記憶される。
【００６８】
つぎに、物理量分類部４５が、ステップＳ１５で算出された物理量（群）に対してクラスター分析を行うことにより、物理量（群）を複数のグループに分類する（ステップＳ１６）。これにより、図２に示すように、物理量（群）が類似する指令点には同一のグループ番号が付与され、物理量が類似しない指令点には異なるグループ番号が付与される。このため、同一のグループ番号に分類された指令点列は、同一の加工面に属する指令点列であることが識別される。
【００６９】
つづいて、加工経路分割部４３は、物理量分類部４５による分類結果に基づいて、同一の加工面に属する指令点列を抽出する（ステップＳ１７）。これにより、加工経路全体のうち、単位加工経路ごとに簡単に分割しうる加工経路が部分的に抽出される。そして、加工経路分割部４３は、抽出した指令点列について、前後の指令点間の距離が、任意の閾値以上である指令点間で加工経路を分割する（ステップＳ１８）。これにより、特定立体物以外の立体物における同一の加工面上で一方向のみに移動する加工経路については、移動距離が急激に変化する箇所で加工経路が分断されるため、適切に単位加工経路ごとに分割される。
【００７０】
また、加工経路分割部４３は、ステップＳ１７で抽出した指令点列について、前後の指令点間の方向が、ピックフィード方向へ任意の閾値以上に変化した指令点間で加工経路を分割する（ステップＳ１９）。これにより、特定立体物以外の立体物における同一の加工面上で双方向に移動する加工経路についても、移動方向が急激に変化する箇所で加工経路が分断されるため、適切に単位加工経路ごとに分割される。
【００７１】
さらに、加工経路分割部４３は、ステップＳ１７で抽出した指令点列について、前後の指令点間の角度が、任意の閾値以上に変化した指令点間で加工経路を分割する（ステップＳ２０）。これにより、同一の加工面における移動方向の変化が小さく、次の指令点までの移動距離が長いことによって折り返されるような加工経路についても、適切に単位加工経路ごとに分割される。
【００７２】
以上のように、ステップＳ１６で特定された全ての加工面における加工経路が、単位加工経路ごとに分割されると、図１２の処理に戻る。つづいて、孤立指令点検出部４６が、隣接する単位加工経路のそれぞれを構成する各指令点の位置関係に基づいて、孤立指令点を検出する（ステップＳ４：孤立指令点検出ステップ）。以下、本ステップＳ４に係る孤立指令点検出処理について、図１４を参照しつつ説明する。
【００７３】
孤立指令点検出ステップでは、図１４に示すように、孤立指令点検出部４６が、単位加工経路の順番（単位加工経路番号）を示すパラメータｉを１に初期化した後（ステップＳ２１）、ｉ番目の単位加工経路を構成する全指令点について、ｉ＋１番目の単位加工経路の各指令点との指令点間距離が最短である指令点を隣接指令点として特定する（ステップＳ２２）。これにより、任意の単位加工経路を構成する全ての指令点について、隣接する単位加工経路において隣り合う指令点が特定される。
【００７４】
つぎに、孤立指令点検出部４６は、ｉ＋１番目の単位加工経路を構成する各指令点のうち、隣接指令点として特定されなかった指令点を孤立指令点として検出する（ステップＳ２３）。これにより、隣接する単位加工経路において、隣り合う指令点が抜けている指令点が孤立指令点として検出される。
【００７５】
その後、孤立指令点検出部４６は、上記パラメータｉをインクリメントし、加工順序が次の単位加工経路を選択する（ステップＳ２４）。そして、上記パラメータｉが単位加工経路の総数（Ｍ）に一致しない限り（ステップＳ２５：ＮＯ）、ステップＳ２２からステップＳ２４までの処理を繰り返し、全ての単位加工経路における孤立指令点を検出する。これにより、加工方向に沿った順方向に、孤立指令点が簡便かつ正確に順次検出される。
【００７６】
一方、上記パラメータｉが単位加工経路の総数（Ｍ）に到達すると（ステップＳ２５：ＹＥＳ）、孤立指令点検出部４６は、ｉ番目の単位加工経路を構成する全指令点について、ｉ−１番目の単位加工経路の各指令点との指令点間距離が最短である指令点を隣接指令点として特定する（ステップＳ２６）。これにより、加工方向に沿った順方向とは逆方向に検出処理が実行される。
【００７７】
つぎに、孤立指令点検出部４６は、ｉ−１番目の単位加工経路を構成する各指令点のうち、隣接指令点として特定されなかった指令点を孤立指令点として検出する（ステップＳ２７）。これにより、逆方向に隣接する単位加工経路において、隣り合う指令点が抜けている指令点が孤立指令点として検出される。
【００７８】
その後、孤立指令点検出部４６は、上記パラメータｉをデクリメントし、加工順序が一つ前の単位加工経路を選択する（ステップＳ２８）。そして、上記パラメータｉが初期値（１）に一致しない限り（ステップＳ２９：ＮＯ）、ステップＳ２６からステップＳ２８までの処理を繰り返し、全ての単位加工経路における孤立指令点を検出する。これにより、加工方向に沿った順方向とは逆方向にも、孤立指令点が簡便かつ正確に順次検出される。このため、順方向の探索だけでは検出されない孤立指令点も漏れなく検出され、解析精度が向上する。
【００７９】
一方、上記パラメータｉが初期値（１）に到達すると（ステップＳ２９：ＹＥＳ）、図１２における孤立指令点検出ステップ（ステップＳ４）が完了し、加工プログラムの解析処理が終了する。以上の解析処理により、加工面における傷の発生箇所となる孤立指令点が高精度に特定される。
【００８０】
なお、本第１実施形態において、Ｎ個の指令点からなる単位加工経路をＭ本有する加工経路を解析する場合、一つの単位加工経路を構成する全指令点（Ｎ）について、隣接する単位加工経路を構成する全指令点（Ｎ）との指令点間距離を算出し、当該計算を単位加工経路の総数より１少ない数（Ｍ−１）だけ繰り返すため、総演算回数はＮ×Ｎ×（Ｍ−１）回であることが簡単に算出される。このため、解析時間も予測可能であり、解析作業を効率的に行うことが可能になる。
【００８１】
以上のような本第１実施形態によれば、以下のような効果を奏する。
１．解析時間が予測可能でありながら、加工面における傷の発生箇所を高精度に特定することができる。
２．加工面における傷の発生箇所となる孤立指令点を簡便かつ正確に検出することができる。
３．特定立体物の外周面に沿う加工経路を適切に単位加工経路ごとに分割することができる。
４．特定立体物以外の立体物における同一の加工面上で一方向のみに移動する加工経路についても、適切に単位加工経路ごとに分割することができる。
５．特定立体物以外の立体物における同一の加工面上で双方向に移動する加工経路についても、適切に単位加工経路ごとに分割することができる。
６．特定立体物以外の立体物における同一の加工面上での移動方向の変化が小さく、次の指令点までの移動距離が長いことによって折り返されるような加工経路についても、適切に単位加工経路ごとに分割することができる。
７．加工方向に沿った順方向および逆方向の双方向で孤立指令点を探索することで、孤立指令点を漏れなく検出して解析の精度をさらに向上することができる。
【００８２】
つぎに、本発明に係る加工プログラム解析装置１およびこれを備えた工作機械１０、ならびに加工プログラム解析プログラム１ａおよび加工プログラム解析方法の第２実施形態について説明する。なお、本第２実施形態における構成のうち、上述した第１実施形態と同一もしくは相当する構成については同一の符号を付し、再度の説明を省略する。
【００８３】
本第２実施形態の特徴は、孤立指令点検出部４６が、上述した第１実施形態とは異なる方法で孤立指令点を検出する点にある。すなわち、孤立指令点検出部４６は、隣接する単位加工経路の一方における２つの指令点間の距離と、他方の単位加工経路において対応する２つの指令点間の距離とを比較し、当該距離の差が大きい箇所を見つけて孤立指令点を検出するようになっている。以下、本第２実施形態における孤立指令点検出部４６の処理について、具体的に説明する。
【００８４】
本第２実施形態において、孤立指令点検出部４６は、まず、図１５（ａ）に示すように、隣接する単位加工経路である第１単位加工経路および第２単位加工経路において、第１単位加工経路を構成するいずれかの指令点である第１始点から当該第１始点よりも後方の指令点である第１終点までの指令点間距離を算出する。
【００８５】
つぎに、孤立指令点検出部４６は、図１５（ａ）に示すように、第２単位加工経路を構成するいずれかの指令点であって第１始点と隣り合う第２始点から、当該第２始点よりも後方の指令点である第２終点までの指令点間距離を算出する。そして、孤立指令点検出部４６は、第１単位加工経路における指令点間距離と、第２単位加工経路における指令点間距離との差が任意の閾値を超える場合、指令点間距離が短い方の終点となっている指令点を孤立指令点として検出するようになっている。
【００８６】
図１５（ａ）に示す例では、第１単位加工経路上の第１始点Ｐ１１から第１終点Ｐ１２までの指令点間距離ＬＡ１２と、第１始点Ｐ１１と隣り合う第２単位加工経路上の第２始点Ｐ２１から第２終点Ｐ２２までの指令点間距離ＬＢ１２との差が、任意の閾値Δ以下である（｜ＬＡ１２−ＬＢ１２｜≦Δ）。このため、第１終点Ｐ１２と第２終点Ｐ２２とは、隣接する単位加工経路同士で揃っており、隣り合う指令点は抜けていない。
【００８７】
一方、図１５（ｂ）に示す例では、第１単位加工経路上の第１始点Ｐ１２から第１終点Ｐ１３までの指令点間距離ＬＡ２３と、第２単位加工経路上の第２始点Ｐ２２から第２終点Ｐ２３までの指令点間距離ＬＢ２３との差が、任意の閾値Δを超えている（｜ＬＡ２３−ＬＢ２３｜＞Δ）。この場合、比較対象となっている指令点間距離のうち、短い方の指令点間距離ＬＢ２３の終点（第２終点Ｐ２３）では、隣接する単位加工経路上に隣り合う指令点がない。このため、当該終点が孤立指令点として検出される。
【００８８】
なお、図１５（ｂ）に示す例において、比較対象となっている指令点間距離のうち、長い方の指令点間距離ＬＡ２３の終点（第１終点Ｐ１３）は、別途、孤立指令点であるか否かを判別する必要がある。このため、孤立指令点検出部４６は、第２単位加工経路で孤立指令点として検出された第２終点Ｐ２３をスキップし、その次の指令点Ｐ２４を新たな第２終点に設定する。そして、第１単位加工経路上の第１始点Ｐ１２から第１終点Ｐ１３までの指令点間距離ＬＡ２３と、第２単位加工経路上の第２始点Ｐ２２から第２終点Ｐ２４までの指令点間距離ＬＢ２４との差が、任意の閾値Δを超えているか否か判別する。
【００８９】
当該判別の結果、図１６（ａ）に示すように、指令点間距離の差が任意の閾値以下の場合（｜ＬＡ２３−ＬＢ２４｜≦Δ）、第１終点Ｐ１３と第２終点Ｐ２４とは、隣接する単位加工経路同士で揃っており、隣り合う指令点は抜けていない。このため、孤立指令点検出部４６は、孤立指令点を検出しない。
【００９０】
一方、上記の判別の結果、図１６（ｂ）に示すように、指令点間距離の差が任意の閾値を超える場合（｜ＬＡ２３−ＬＢ２４｜＞Δ）、比較対象となっている指令点間距離のうち、短い方の指令点間距離ＬＡ２３の終点（第１終点Ｐ１３）では、隣接する単位加工経路上に隣り合う指令点がない。このため、当該終点が孤立指令点として検出されるようになっている。
【００９１】
つぎに、本第２実施形態の加工プログラム解析装置１およびこれを備えた工作機械１０、ならびに加工プログラム解析プログラム１ａおよび加工プログラム解析方法の作用のうち、図１２における孤立指令点検出ステップ（ステップＳ４）の詳細について、図１７を参照しつつ説明する。
【００９２】
本第２実施形態では、まず、孤立指令点検出部４６が、図１７に示すように、単位加工経路の順番（単位加工経路番号）を示すパラメータｉを１に初期化する（ステップＳ３１）。つぎに、孤立指令点検出部４６は、ｉ番目の単位加工経路における始点となる指令点番号を示すパラメータｊと、ｉ＋１番目の単位加工経路における始点となる指令点番号を示すパラメータｋのそれぞれを１に初期化する（ステップＳ３２）。これにより、各単位加工経路を構成する指令点のうち、加工順序における最初の指令点から順次解析される。なお、本処理において、隣接する単位加工経路同士における第１番目の各指令点は隣り合っていることが前提となる。
【００９３】
さらに、孤立指令点検出部４６は、ｉ番目の単位加工経路における終点の始点からの指令点数を示すパラメータｍと、ｉ＋１番目の単位加工経路にける終点の始点からの指令点数を示すパラメータｎのそれぞれを１に初期化する（ステップＳ３３）。そして、孤立指令点検出部４６は、ｉ番目の単位加工経路における終点の指令点番号（ｊ＋ｍ）が、ｉ番目の単位加工経路の指令点の総数Ａを超えているか否かを判定するとともに、ｉ＋１番目の単位加工経路における終点の指令点番号（ｋ＋ｎ）が、ｉ＋１番目の単位加工経路の指令点の総数Ｂを超えているか否かを判定する（ステップＳ３４）。
【００９４】
当該判定の結果、ｉ番目の単位加工経路における終点の指令点番号（ｊ＋ｍ）が、ｉ番目の単位加工経路の指令点の総数Ａを超えている場合、またはｉ＋１番目の単位加工経路における終点の指令点番号（ｋ＋ｎ）が、ｉ＋１番目の単位加工経路の指令点の総数Ｂを超えている場合（ステップＳ３４：ＹＥＳ）、後述するステップＳ４４へ進む。
【００９５】
一方、ステップＳ３４における判定の結果、ｉ番目の単位加工経路における終点の指令点番号（ｊ＋ｍ）が、ｉ番目の単位加工経路の指令点の総数Ａ以下であり、かつ、ｉ＋１番目の単位加工経路における終点の指令点番号（ｋ＋ｎ）が、ｉ＋１番目の単位加工経路の指令点の総数Ｂ以下である場合（ステップＳ３４：ＮＯ）、孤立指令点検出部４６は、ｉ番目の単位加工経路における第１始点Ｐｊから第１終点Ｐｊ＋ｍまでの指令点間距離ＬＡと、ｉ＋１番目の単位加工経路における第２始点Ｐｋから第２終点Ｐｋ＋ｎまでの距離ＬＢとを算出する（ステップＳ３５）。そして、孤立指令点検出部４６は、各指令点間距離の差（｜ＬＡ−ＬＢ｜）が、任意の閾値以下であるか否かを判定する（ステップＳ３６）。
【００９６】
当該判定の結果、上記指令点間距離の差が任意の閾値以内である場合（ステップＳ３６：ＹＥＳ）、ｉ番目の単位加工経路とｉ＋１番目の単位加工経路とにおいて、隣り合う指令点が存在しているといえる。このため、孤立指令点検出部４６は、ｉ番目の単位加工経路における第１始点Ｐｊ、およびｉ＋１番目の単位加工経路における第２始点Ｐｋのそれぞれを変更する（ステップＳ３７）。
【００９７】
具体的には、孤立指令点検出部４６は、ｉ番目の単位加工経路における第１終点Ｐｊ＋ｍの指令点番号（ｊ＋ｍ）をパラメータｊに代入することで、それまでの第１終点Ｐｊ＋ｍをｉ番目の単位加工経路における新たな第１始点Ｐｊとする。同様に、孤立指令点検出部４６は、ｉ＋１番目の単位加工経路における第２終点Ｐｋ＋ｎの指令点番号（ｋ＋ｎ）をパラメータｋに代入することで、それまでの第２終点Ｐｋ＋ｎをｉ＋１番目の単位加工経路における新たな第２始点Ｐｋとする。これにより、隣接する単位加工経路同士で終点となる指令点が揃っている場合、各指令点が新たな始点として設定される。なお、新たな始点が設定された後は、ステップＳ３３からの処理を繰り返す。
【００９８】
一方、ステップＳ３６における判定の結果、上記指令点間距離の差が任意の閾値を超える場合（ステップＳ３６：ＮＯ）、孤立指令点検出部４６は、ｉ番目の単位加工経路における指令点間距離ＬＡと、ｉ＋１番目の単位加工経路における距離ＬＢのうち、どちらが大きいかを判定する（ステップＳ３８）。
【００９９】
当該判定の結果、ｉ番目の単位加工経路における指令点間距離ＬＡの方が小さい場合（ステップＳ３８：ＹＥＳ）、ｉ番目の単位加工経路における第１終点Ｐｊ＋ｍに関しては、ｉ＋１番目の単位加工経路において、隣り合う指令点が抜けているといえる。このため、孤立指令点検出部４６は、当該第１終点Ｐｊ＋ｍを孤立指令点として検出する（ステップＳ３９）。そして、パラメータｍをインクリメントすることで、ｉ番目の単位加工経路におけ第１終点Ｐｊ＋ｍを１つ後方の指令点に変更し（ステップＳ４０）、ステップＳ４３へ進む。
【０１００】
同様に、ステップＳ３８における判定の結果、ｉ＋１番目の単位加工経路における距離ＬＢの方が小さい場合（ステップＳ３８：ＮＯ）、ｉ＋１番目の単位加工経路における第２終点Ｐｋ＋ｎに関しては、ｉ番目の単位加工経路において、隣り合う指令点が抜けているといえる。このため、孤立指令点検出部４６は、当該第２終点Ｐｋ＋ｎを孤立指令点として検出する（ステップＳ４１）。そして、パラメータｎをインクリメントすることで、ｉ＋１番目の単位加工経路におけ第２終点Ｐｋ＋ｎを１つ後方の指令点に変更し（ステップＳ４２）、ステップＳ４３へ進む。
【０１０１】
以上のように、孤立指令点が検出された単位加工経路においては、始点を変更することなく孤立指令点をスキップし、後方の指令点が順次新たな終点として設定される。
【０１０２】
いずれかの単位加工経路における終点が変更されると（ステップＳ４０またはステップＳ４２）、孤立指令点検出部４６は、上記ステップＳ３４と同様に、当該変更後の終点の指令点番号と、各単位加工経路における総数とを比較する（ステップＳ４３）。そして、ｉ番目の単位加工経路における変更後の終点の指令点番号（ｊ＋ｍ）が、ｉ番目の単位加工経路の指令点の総数Ａ以下であり、かつ、ｉ＋１番目の単位加工経路における変更後の終点の指令点番号（ｋ＋ｎ）が、ｉ＋１番目の単位加工経路の指令点の総数Ｂ以下である限り（ステップＳ４３：ＮＯ）、ステップＳ３５へ戻り、それ以降の処理を繰り返す。
【０１０３】
一方、ステップＳ４３における判定の結果、ｉ番目の単位加工経路における変更後の終点の指令点番号（ｊ＋ｍ）が、ｉ番目の単位加工経路の指令点の総数Ａを超えている場合、またはｉ＋１番目の単位加工経路における変更後の終点の指令点番号（ｋ＋ｎ）が、ｉ＋１番目の単位加工経路の指令点の総数Ｂを超えている場合（ステップＳ４３：ＹＥＳ）、孤立指令点検出部４６は、パラメータｉをインクリメントし、次の単位加工経路を選択する（ステップＳ４４）。
【０１０４】
最後に、孤立指令点検出部４６は、インクリメントしたパラメータｉが単位加工経路の総数（Ｍ）に到達したか否かを判定する（ステップＳ４５）。そして、上記パラメータｉが単位加工経路の総数（Ｍ）に到達しない限り（ステップＳ４５：ＮＯ）、上述したステップＳ３２に戻り、それ以降の処理を繰り返す。これにより、隣接する単位加工経路のそれぞれを構成する各指令点の位置関係に基づいて、単位加工経路同士で隣り合う指令点が抜けている指令点が順次、孤立指令点として検出される。
【０１０５】
以上のような本第２実施形態の加工プログラム解析装置１およびこれを備えた工作機械１０、ならびに加工プログラム解析プログラム１ａおよび加工プログラム解析方法によれば、上述した第１実施形態と同様の作用効果を奏する。
【０１０６】
また、本第２実施形態によれば、Ｎ個の指令点からなる単位加工経路をＭ本有する加工経路を解析する場合、隣接する２本の単位加工経路のそれぞれを構成する全指令点（Ｎ）間に存在するＮ−１個の指令点間距離を算出し、当該計算を単位加工経路の総数より１少ない数（Ｍ−１）だけ繰り返すため、総演算回数は２×（Ｎ−１）×（Ｍ−１）回となる。このため、本第２実施形態による演算回数は、上述した第１実施形態による演算回数Ｎ×Ｎ×（Ｍ−１）よりも低減するため、解析時間を短縮することができるという効果を奏する。
【０１０７】
つぎに、本発明に係る加工プログラム解析装置１およびこれを備えた工作機械１０、ならびに加工プログラム解析プログラム１ａおよび加工プログラム解析方法の具体的な実施例について説明する。
【実施例】
【０１０８】
本実施例では、本発明に係る加工プログラム解析装置１を用いて、実際の加工プログラムを解析し、加工面で傷が発生する箇所（孤立指令点）を検出した。また、比較例として、本発明者らによって考案された特願２０１６−２４８１５４号に係る加工プログラム解析装置１を用いて同様の解析を行った。その結果を図１９および図２０に示す。
【０１０９】
なお、本実施例では、解析対象の加工プログラムとして、工具刃先を螺旋状に移動させることにより、図１８に示すようなブレード状の加工対象物を削り出すブレード加工プログラムを使用した。また、図１９において、孤立指令点はグレーの点で表示されており、図２０において、孤立指令点は三角の印で表示されている。
【０１１０】
図１９に示すように、本実施例によれば、比較例と比較して、指令点間距離が短く、指令点の密集度が高い箇所においても、孤立指令点が高精度に検出されていた。なお、指令点の密集度がどの程度高い箇所で孤立指令点を検出するのかは、パラメータによって調整することができる。
【０１１１】
また、図２０に示すように、比較例では、孤立指令点が多数検出されたものの、実際には傷にならない箇所が多かった。これに対し、本実施例では、孤立指令点がピンポイントで検出されており、高い確度で加工面における傷の発生箇所を推定できていた。
【０１１２】
以上の本実施例によれば、比較例（特願２０１６−２４８１５４号に係る解析処理）と比較して、指令点の密集度が高い箇所でも孤立指令点を高精度に検出できることが示されるとともに、孤立指令点を高確度で推定できることが示された。
【０１１３】
なお、本発明に係る加工プログラム解析装置１およびこれを備えた工作機械１０、ならびに加工プログラム解析プログラム１ａおよび加工プログラム解析方法は、上述した各実施形態や実施例に限定されるものではなく、適宜変更することができる。
【０１１４】
例えば、上述した本第１実施形態では、加工対象物が特定立体物以外の立体物である場合にのみ、クラスター分析によって同一の加工面に属する指令点列を抽出していたが、この構成に限定されるものでない。すなわち、時間に余裕がある場合には、特定立体物についても、クラスター分析によって同一の加工面に属する指令点列を抽出し、単位加工経路ごとに分割してもよい。これにより、特定立体物を構成する各加工面に分布する指令点の密集度に応じて、高精細な解析作業を行うことができる。
【０１１５】
また、上述した第１実施形態では、加工対象物が特定立体物であった場合、加工経路分割部４３が、加工経路を構成する全ての指令点の位置座標を平均した平均座標を原点として算出しているが、この構成に限定されるものではない。すなわち、原点としては、平均座標を使用することが最適と考えられるが、平均座標以外の位置座標を原点としてもよい。
【０１１６】
具体的には、図２１（ａ）に示すように、特定立体物が単純な形状である場合には、加工経路によって形成される図形の内側に原点を設定すればよい。これにより、平均座標でない位置に原点を設定しても、加工経路が１周分の指令点列ごとに単位加工経路として分割される。なお、この場合、原点は上記図形の内側であれば、上記図形の中心である必要はない。
【０１１７】
一方、図２１（ｂ）に示すように、加工経路によって形成される図形の外側に原点を設定してもよい。ただし、この場合、加工経路が周上の２箇所で分割される。また、上記図形の内側に原点を設定しても、特定立体物の形状によっては、図２２（ａ）に示すように、周上の複数箇所で加工経路が分割される場合がある。
【０１１８】
以上のように、加工経路が周上のｘ箇所で切断される場合、切断された加工経路のそれぞれは、（ｘ−１）個おきに隣接した状態となる。そこで、このような場合には、同一形状の加工経路群のそれぞれをグルーピングすることが好ましい。これにより、各グループにおける加工経路が、互いに隣接する単位加工経路として分割されることとなる。
【０１１９】
一方、特定立体物の形状が複雑であっても、加工経路を構成する全ての指令点の位置座標を平均した平均座標は、図２２（ｂ）に示すように、上記図形のほぼ中心位置近傍となることが多い。このため、平均座標を原点として設定した場合、加工経路が１周分の指令点列ごとに分割される可能性が高くなる。よって、上記のようなグルーピングを行う必要がなく、加工経路を隣接する単位加工経路ごとに簡単に分割することができる。
【符号の説明】
【０１２０】
１  加工プログラム解析装置
１ａ  加工プログラム解析プログラム
２  表示入力手段
３  記憶手段
４  演算処理手段
１０  工作機械
３１  解析プログラム記憶部
３２  加工プログラム記憶部
３３  解析結果記憶部
４１  指令点取得部
４２  対象物種類取得部
４３  加工経路分割部
４４  物理量算出部
４５  物理量分類部
４６  孤立指令点検出部
【図１】
2019101799.tif 000004
【図２】
2019101799.tif 000005
【図３】
2019101799.tif 000006
【図４】
2019101799.tif 000007
【図５】
2019101799.tif 000008
【図６】
2019101799.tif 000009
【図７】
2019101799.tif 000010
【図８】
2019101799.tif 000011
【図９】
2019101799.tif 000012
【図１０】
2019101799.tif 000013
【図１１】
2019101799.tif 000014
【図１２】
2019101799.tif 000015
【図１３】
2019101799.tif 000016
【図１４】
2019101799.tif 000017
【図１５】
2019101799.tif 000018
【図１６】
2019101799.tif 000019
【図１７】
2019101799.tif 000020
【図１８】
2019101799.tif 000021
【図１９】
2019101799.tif 000022
【図２０】
2019101799.tif 000023
【図２１】
2019101799.tif 000024
【図２２】
2019101799.tif 000025
【図２３】
2019101799.tif 000026
【図２４】
2019101799.tif 000027