以下、本発明に係る加工プログラム解析装置およびこれを備えた工作機械、ならびに加工プログラム解析プログラムおよび加工プログラム解析方法の第1実施形態について、図面を用いて説明する。
本第1実施形態の加工プログラム解析装置1は、工作機械10を数値制御するための加工プログラムを解析するためのものであり、コンピュータ数値制御(CNC:Computer Numerical Control)可能な数値制御装置によって構成されている。そして、加工プログラムに基づいて工作機械10を制御し、ワーク(加工対象物)を加工するようになっている。以下、各構成について詳細に説明する。
工作機械10は、旋盤、ボール盤、中ぐり盤、フライス盤、歯切り盤、研削盤等のように、金属、木材、石材、樹脂等のワークに対して、切断、穿孔、研削、研磨、圧延、鍛造、折り曲げ等の各種の加工を施すための機械である。本第1実施形態において、工作機械10は、加工プログラム解析装置1に備えられており、解析された加工プログラムに基づいて数値制御されるようになっている。
加工プログラム解析装置1は、図1に示すように、主として、データの入力や解析結果の表示を行うための表示入力手段2と、本第1実施形態の加工プログラム解析プログラム1aや各種データを記憶するとともに、演算処理手段4が各種処理を行う際のワーキングエリアとして機能する記憶手段3と、記憶手段3にインストールされた加工プログラム解析プログラム1aを実行することにより、各種の演算処理を実行する演算処理手段4とから構成されている。以下、各構成手段について詳細に説明する。
なお、本第1実施形態において、加工プログラム解析装置1は、数値制御装置によって構成されているが、この構成に限定されるものではない。例えば、パーソナルコンピュータ、タブレット端末またはスマートフォン等の一般的なコンピュータや、上述したCAD/CAM装置等の特殊なコンピュータに本発明に係る加工プログラム解析機能を実装し、加工プログラム解析装置1として構成してもよい。
表示入力手段2は、タッチパネル等で構成されており、入力機能と表示機能とを兼ね備えたものである。本第1実施形態において、表示入力手段2は、後述する加工対象物の種類等を受け付ける入力機能と、加工プログラムの解析結果等を表示する表示機能とを有している。なお、本第1実施形態では、表示機能および入力機能を兼ね備えた表示入力手段2を使用しているが、この構成に限定されるものではなく、表示機能のみを備えた液晶ディスプレイ等の表示手段、および入力機能のみを備えたキーボードやマウス等の入力手段をそれぞれ別個に有していてもよい。
記憶手段3は、ハードディスク、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリ等で構成されており、各種データを記憶するとともに、演算処理手段4が各種処理を行う際のワーキングエリアとして機能するものである。本第1実施形態において、記憶手段3は、図1に示すように、解析プログラム記憶部31と、加工プログラム記憶部32と、解析結果記憶部33とを有している。
解析プログラム記憶部31には、本第1実施形態の加工プログラム解析装置1を制御するための加工プログラム解析プログラム1aがインストールされている。そして、演算処理手段4が、当該加工プログラム解析プログラム1aを実行することにより、加工プログラム解析装置1としてのコンピュータを後述する各構成部として機能させるようになっている。
なお、加工プログラム解析プログラム1aの利用形態は、上記構成に限られるものではない。例えば、CD−ROMやUSBメモリ等のように、コンピュータで読み取り可能な非一時的な記録媒体に加工プログラム解析プログラム1aを記憶させておき、当該記録媒体から直接読み出して実行してもよい。また、外部サーバ等からクラウドコンピューティング方式やASP(Application Service Provider)方式等で利用してもよい。
加工プログラム記憶部32は、解析対象となる加工プログラムを記憶するものである。本第1実施形態において、加工プログラムは、各種の工作機械10を数値制御するためのものであり、CAD/CAM装置によって生成される。また、加工プログラムには、行番号に対応付けて、加工経路を微小線分に区分する各指令点の位置座標が指令点列として含まれている。
解析結果記憶部33は、加工プログラムの解析結果を記憶するものである。本第1実施形態において、解析結果記憶部33は、図2に示すように、データテーブル形式で構成されている。そして、加工プログラムの指令点列を構成する各指令点について、加工方向に沿ってシーケンシャルに振られた指令点番号と、X軸、Y軸およびZ軸の各座標値で表された位置座標と、後述する加工経路分割部43によって分割された単位加工経路の番号と、後述する孤立指令点検出部46によって検出された孤立指令点とが記憶されるようになっている。
また、本第1実施形態において、後述する特定立体物以外の立体物を加工するための加工プログラムを解析する場合、図2に示すように、解析結果記憶部33には、後述する物理量算出部44によって算出された物理量と、後述する物理量分類部45によって分類されたグループのグループ番号とが別途記憶される。なお、図2に示す例では、孤立指令点となる指令点にのみ「1」の値が付与されるようになっている。
つぎに、演算処理手段4は、CPU(Central Processing Unit)等によって構成されており、記憶手段3にインストールされた加工プログラム解析プログラム1aを実行することにより、図1に示すように、指令点取得部41と、対象物種類取得部42と、加工経路分割部43と、物理量算出部44と、物理量分類部45と、孤立指令点検出部46として機能するようになっている。以下、演算処理手段4の各構成部についてより詳細に説明する。
指令点取得部41は、加工プログラムから指令点を取得するものである。本第1実施形態において、指令点取得部41は、加工プログラム記憶部32から加工プログラムを読み出し、当該加工プログラムによって指令される加工経路を構成する各指令点の位置座標を取得して、解析結果記憶部33に順次記憶させるようになっている。
対象物種類取得部42は、加工対象物の種類を取得するものである。本第1実施形態において、対象物種類取得部42は、加工プログラムによって加工される加工対象物が、後述する特定立体物であるか、当該特定立体物以外の立体物であるかについての選択を表示入力手段2を介して受け付け、当該選択された種類を加工経路分割部43に提供するようになっている。
加工経路分割部43は、加工プログラムによって指令される加工経路を、複数の隣接する単位加工経路ごとに分割するものである。本第1実施形態において、加工経路分割部43は、加工対象物の種類に応じて、加工経路を所定の単位加工経路に分割する。そして、分割された各単位加工経路を構成する各指令点に対して、加工方向に沿ってシーケンシャルな単位加工経路番号を付し、解析結果記憶部33に記憶するようになっている。以下、具体的に説明する。
加工プログラムによって加工される加工対象物には、多種多様な形状がある。そこで、本第1実施形態では、ある基準点を中心として指令点が周上に分布する形状である特定立体物と、当該特定立体物以外の立体物との2種類に加工対象物を大別した。そして、その種類に応じて、異なる方法によって加工経路を単位加工経路に分割した。
なお、本発明において、「周上」とは、円周上に限定されるものではなく、任意の図形を囲む閉じた曲線または折れ線からなる周の上を含む概念である。このため、特定立体物としては、図3に示すような円柱、三角柱および四角柱の他、楕円柱や多角柱等のように、ある基準点を中心として指令点が周上に分布する形状を備えた全ての立体物が含まれる。一方、特定立体物以外の立体物としては、例えば図4に示すような金型のように、ある基準点を中心として指令点が周上に分布しない任意の形状を備えた全ての立体物が含まれる。
以下、加工プログラムが、特定立体物を加工するための加工プログラムである場合と、特定立体物以外の立体物を加工するための加工プログラムである場合とに分けて、加工経路分割部43による加工経路の分割方法について説明する。
対象物種類取得部42によって取得された種類が、特定立体物であった場合、加工経路分割部43は、図5に示すように、まず、加工経路を構成する全ての指令点の位置座標を平均した平均座標を原点として算出する。つぎに、加工経路分割部43は、算出した原点(平均座標)に関して全ての指令点の位置座標を極座標に変換する。これにより、各指令点の位置座標が、動径座標r(原点から指令点までの距離)と、偏角座標φ(任意の始線に対して、原点と指令点とを結ぶ直線がなす角度)とによって表される。
そして、加工経路分割部43は、一つ目の指令点から偏角φが360度(2π)回転するたびに、すなわち、1周分の指令点列ごとに単位加工経路として分割する。これにより、例えば、特定立体物が円柱の場合、図6に示すように、円柱の外周面に沿って螺旋状に連続する加工経路が、1周分の指令点列ごとに分割され、その指令点列のそれぞれが単位加工経路としてグルーピングされることとなる。
一方、対象物種類取得部42によって取得された種類が、特定立体物以外の立体物であった場合、当該立体物の形状が複雑であるため、単純に加工経路を分割することができない。そこで、本第1実施形態では、本発明者らによって考案された特願2016−248154号における、物理量算出部44および物理量分類部45と同等の機能部を使用し、立体物の加工面のうち、同一の加工面に属する指令点列を抽出した後、加工経路を分割するようになっている。
具体的には、物理量算出部44は、各指令点について物理量を算出するものである。本第1実施形態において、物理量算出部44は、指令点取得部41によって取得された各指令点の位置座標を解析結果記憶部33から読み出すとともに、加工プログラムの解析に使用する1または2以上の物理量に対応する定義式を記憶手段3から読み出す。そして、物理量算出部44は、読み出した定義式に基づき、1または複数の指令点の位置座標を用いて、各指令点についての物理量を算出し、解析結果記憶部33に記憶するようになっている。
なお、本第1実施形態において、物理量とは、物理系の性質を表現し、その測定方法や、大きさの単位が規定された全ての量を含む概念である。また、本第1実施形態に係る定義式としては、加工プログラムの指令点列を構成する各指令点について、1または複数の指令点の位置座標を用いて算出される物理量が定義されている。
具体的には、下記式(1)で定義される移動量、下記式(2)で定義される角度、または下記式(3)で定義される曲率半径が使用可能である。そして、当該物理量を算出するための定義式として、下記式(1)〜(3)等の定義式が記憶手段3に予め登録されている。
Vi=Pi+1−Pi−1 ・・・式(1)
ただし、各符号は以下を表す。
i:指令点番号
Pi:第i番目の指令点の位置座標
Vi:第i番目の指令点の移動量
θi:第i番目の指令点の角度
ρi:第i番目の指令点の曲率半径
c1:Pi、Pi+1間の移動を示す曲線を近似したn次多項式の1次の項の係数
c2:Pi、Pi+1間の移動を示す曲線を近似したn次多項式の2次の項の係数
物理量分類部45は、各指令点の物理量に対してクラスター分析を行うことにより、物理量を複数のグループに分類するものである。本発明において、クラスター分析とは、いわゆる非階層的クラスター分析に相当するものである。具体的には、分類するグループ数を予め定めておき、互いに性質が類似するものを同一のグループに分類し、そうでないものを異なるグループに分類することで、予め定めたグループ数にグルーピングする手法である。
よって、本第1実施形態において、物理量分類部45は、物理量算出部44によって算出された各指令点の物理量を解析結果記憶部33から読み出し、任意のグループ数となるように、各指令点の物理量をクラスター分析し分類する。そして、物理量分類部45は、分類結果として得られたグループ番号を各指令点の物理量に対応付けて解析結果記憶部33に記憶する。これにより、同一の加工面に属する指令点列については、同一のグループ番号が付与される。
なお、クラスター分析に使用するアルゴリズムとしては、計算時間と分析精度の観点から、K−means法(K平均法)が好ましいが、物理量をグルーピング可能な手法であれば、特に限定されるものではなく、他のクラスタリングアルゴリズムを使用してもよい。また、本第1実施形態において、各指令点の物理量をクラスター分析する際のグループ数(クラスタ数)は、解析に使用する物理量や、加工対象物の形状等によって最適値が異なるため、ユーザが所望のグループ数を設定しうるようになっている。
上述した物理量算出部44および物理量分類部45によって、同一の加工面に属する指令点列を抽出した後、加工経路分割部43は、同一の加工面上に分布する加工経路を複数の隣接する単位加工経路ごとに分割する。ただし、同一の加工面を加工する軸の移動方向としては、図7に示すように、一方向のみに移動する場合と、図8に示すように、双方向に移動する場合の2パターンがある。このため、いずれのパターンであっても、加工経路を適切に単位加工経路ごとに分割しうる方法を考案した。
具体的には、加工経路分割部43は、まず、物理量分類部45による分類結果が記憶された解析結果記憶部33を参照し、同一のグループ番号が付与された指令点列を抽出する。そして、加工経路分割部43は、抽出した指令点列の加工順序における前後の指令点間の距離が任意の閾値以上である指令点間で加工経路を分割する。これにより、図7に示すように、一方向のみに移動する加工経路においては、移動距離が急激に変化する箇所で加工経路が分断される。
また、加工経路分割部43は、抽出した指令点列の加工順序における前後の指令点間の方向がピックフィード方向へ任意の閾値以上に変化した指令点間で加工経路を分割する。具体的には、加工経路分割部43は、各指令点の位置座標を用いて各指令点間の加工ベクトルを算出し、当該加工ベクトルが加工経路に垂直なピックフィード方向へ任意の閾値以上に変化する箇所を検出する。これにより、図8に示すように、双方向に移動する加工経路においては、移動方向が急激に変化する箇所で加工経路が分断される。
さらに、加工経路分割部43は、抽出した指令点列の加工順序における前後の指令点間の角度が任意の閾値以上に変化した指令点間で加工経路を分割する。具体的には、加工経路分割部43は、図9に示すように、i−1番目の指令点Pi−1とi番目の指令点Piとを結ぶ加工経路に対して、i番目の指令点Piとi+1番目の指令点Pi+1とを結ぶ加工経路のなす角度を上記式(2)を用いて算出し、当該角度が任意の閾値以上となる箇所を検出する。これにより、移動方向の変化が小さく、次の指令点までの移動距離が長いことによって折り返されるような移動経路についても分断される。
以上のように、加工経路が単位加工経路ごとに分断されると、加工経路分割部43は、加工順序に沿って各単位加工経路にシーケンシャルな単位加工経路番号を付与する。これにより、解析結果記憶部33には、図2に示すように、同一の単位加工経路に属する指令点のそれぞれについて、同一の単位加工経路番号が記憶される。
孤立指令点検出部46は、隣接する単位加工経路のそれぞれを構成する各指令点の位置関係に基づいて、単位加工経路同士で隣り合う指令点が抜けている指令点を孤立指令点として検出するものである。具体的には、孤立指令点検出部46は、まず、解析結果記憶部33に記憶されている単位加工経路番号を参照し、隣接する単位加工経路である第1単位加工経路および第2単位加工経路を抽出する。
つぎに、孤立指令点検出部46は、図10に示すように、互いに隣接する第1単位加工経路および第2単位加工経路において、第1単位加工経路を構成する全ての指令点について、第2単位加工経路を構成する各指令点との指令点間距離を算出する。そして、当該指令点間距離が最短である指令点を隣接指令点として特定する。図10に示す例では、第1単位加工経路の指令点P11については、第2単位加工経路の指令点P21が隣接指令点となり、第1単位加工経路の指令点P12については、第2単位加工経路の指令点P22が隣接指令点となり、第1単位加工経路の指令点P13については、第2単位加工経路の指令点P24が隣接指令点となる。
以上のように、第1単位加工経路を構成する全ての指令点について隣接指令点を特定した後、孤立指令点検出部46は、第2単位加工経路を構成する各指令点のうち、第1単位加工経路を構成するいずれの指令点からも隣接指令点として特定されなかった指令点があれば、当該指令点が単位加工経路同士で隣り合う指令点が抜けている指令点であるため、孤立指令点として検出する。図10に示す例では、第2単位加工経路の指令点P23が、第1単位加工経路を構成するいずれの指令点からも隣接指令点として特定されないため、孤立指令点として検出される。そして、検出された指令点に対しては、孤立指令点である旨が解析結果記憶部33に記憶される。
以上のように、全ての単位加工経路に属する全ての指令点について、隣接指令点を特定することにより、解析対象の加工プログラム内に存在する孤立指令点がほぼ検出される。ただし、本第1実施形態において、孤立指令点検出部46は、単位加工経路のそれぞれについて、加工方向に沿った順方向に孤立指令点を順次検出している。具体的には、最初に単位加工経路番号が1番と2番の単位加工経路のそれぞれを第1単位加工経路および第2単位加工経路として、次に単位加工経路番号が2番と3番の単位加工経路のそれぞれを第1単位加工経路および第2単位加工経路とし、以下、同様である。
しかしながら、上記のように、一方向においてのみ孤立指令点を探索すると、図11(a)に示すように、当該方向の前方側の単位加工経路において指令点が抜けている場合、後方側の単位加工経路において孤立指令点が検出されるものの、後方側の単位加工経路において指令点が抜けている場合、前方側の指令点は孤立指令点として検出されない。
そこで、本第1実施形態において、孤立指令点検出部46は、単位加工経路のそれぞれについて、加工方向に沿った順方向に孤立指令点を順次検出するとともに、当該順方向とは逆方向にも孤立指令点を順次検出するようになっている。例えば、図11(b)に示す例では、最初に単位加工経路番号が5番と4番の単位加工経路のそれぞれを第1単位加工経路および第2単位加工経路とし、次に単位加工経路番号が4番と3番の単位加工経路のそれぞれを第1単位加工経路および第2単位加工経路とし、以下、同様である。これにより、順方向における探索だけでは検出されない孤立指令点が漏れなく検出される。なお、図11において、実線の矢印は、基端部の指令点の隣接指令点を指し示している。
つぎに、本第1実施形態の加工プログラム解析装置1およびこれを備えた工作機械10、ならびに加工プログラム解析プログラム1aおよび加工プログラム解析方法の作用について、図12から図14を参照しつつ説明する。
本第1実施形態の加工プログラム解析装置1によって加工プログラムを解析する場合、まず、指令点取得部41が、加工プログラム記憶部32内の解析対象となる加工プログラムから指令点列を構成する指令点を取得する(ステップS1)。これにより、図2に示すように、各指令点の位置座標が解析結果記憶部33に記憶される。
つぎに、対象物種類取得部42が、表示入力手段2を介したオペレータの選択操作に応じて、加工プログラムによる加工対象物の種類を取得すると(ステップS2)、当該種類に応じて、加工経路分割部43が複数の隣接する単位加工経路ごとに加工経路を分割する(ステップS3:加工経路分割ステップ)。以下、本ステップS3に係る加工経路分割処理について、図13を参照しつつ説明する。
加工経路分割ステップでは、図13に示すように、対象物種類取得部42によって取得された加工対象物の種類が特定立体物であった場合(ステップS11:YES)、加工経路分割部43は、まず、加工経路を構成する全ての指令点の位置座標を平均した平均座標を原点として算出する(ステップS12)。
つぎに、加工経路分割部43は、算出した原点(平均座標)に関して全ての指令点の位置座標を極座標に変換する(ステップS13)。これにより、原点を中心として周上に分布する各指令点について、原点周りの偏角が算出される。そして、加工経路分割部43は、1周分の指令点列ごとに単位加工経路として分割する(ステップS14)。これにより、特定立体物の外周面に沿う加工経路が、1周分の指令点列ごとに分割され、その指令点列のそれぞれが単位加工経路としてグルーピングされる。なお、加工経路が単位加工経路ごとに分割されると、図12の処理に戻る。
一方、対象物種類取得部42によって取得された加工対象物の種類が特定立体物以外の立体物であった場合(ステップS11:NO)、まず、物理量算出部44が、各指令点について任意の物理量を算出する(ステップS15)。これにより、図2に示すように、各指令点について1つの物理量または2以上の物理量群が、解析結果記憶部33に記憶される。
つぎに、物理量分類部45が、ステップS15で算出された物理量(群)に対してクラスター分析を行うことにより、物理量(群)を複数のグループに分類する(ステップS16)。これにより、図2に示すように、物理量(群)が類似する指令点には同一のグループ番号が付与され、物理量が類似しない指令点には異なるグループ番号が付与される。このため、同一のグループ番号に分類された指令点列は、同一の加工面に属する指令点列であることが識別される。
つづいて、加工経路分割部43は、物理量分類部45による分類結果に基づいて、同一の加工面に属する指令点列を抽出する(ステップS17)。これにより、加工経路全体のうち、単位加工経路ごとに簡単に分割しうる加工経路が部分的に抽出される。そして、加工経路分割部43は、抽出した指令点列について、前後の指令点間の距離が、任意の閾値以上である指令点間で加工経路を分割する(ステップS18)。これにより、特定立体物以外の立体物における同一の加工面上で一方向のみに移動する加工経路については、移動距離が急激に変化する箇所で加工経路が分断されるため、適切に単位加工経路ごとに分割される。
また、加工経路分割部43は、ステップS17で抽出した指令点列について、前後の指令点間の方向が、ピックフィード方向へ任意の閾値以上に変化した指令点間で加工経路を分割する(ステップS19)。これにより、特定立体物以外の立体物における同一の加工面上で双方向に移動する加工経路についても、移動方向が急激に変化する箇所で加工経路が分断されるため、適切に単位加工経路ごとに分割される。
さらに、加工経路分割部43は、ステップS17で抽出した指令点列について、前後の指令点間の角度が、任意の閾値以上に変化した指令点間で加工経路を分割する(ステップS20)。これにより、同一の加工面における移動方向の変化が小さく、次の指令点までの移動距離が長いことによって折り返されるような加工経路についても、適切に単位加工経路ごとに分割される。
以上のように、ステップS16で特定された全ての加工面における加工経路が、単位加工経路ごとに分割されると、図12の処理に戻る。つづいて、孤立指令点検出部46が、隣接する単位加工経路のそれぞれを構成する各指令点の位置関係に基づいて、孤立指令点を検出する(ステップS4:孤立指令点検出ステップ)。以下、本ステップS4に係る孤立指令点検出処理について、図14を参照しつつ説明する。
孤立指令点検出ステップでは、図14に示すように、孤立指令点検出部46が、単位加工経路の順番(単位加工経路番号)を示すパラメータiを1に初期化した後(ステップS21)、i番目の単位加工経路を構成する全指令点について、i+1番目の単位加工経路の各指令点との指令点間距離が最短である指令点を隣接指令点として特定する(ステップS22)。これにより、任意の単位加工経路を構成する全ての指令点について、隣接する単位加工経路において隣り合う指令点が特定される。
つぎに、孤立指令点検出部46は、i+1番目の単位加工経路を構成する各指令点のうち、隣接指令点として特定されなかった指令点を孤立指令点として検出する(ステップS23)。これにより、隣接する単位加工経路において、隣り合う指令点が抜けている指令点が孤立指令点として検出される。
その後、孤立指令点検出部46は、上記パラメータiをインクリメントし、加工順序が次の単位加工経路を選択する(ステップS24)。そして、上記パラメータiが単位加工経路の総数(M)に一致しない限り(ステップS25:NO)、ステップS22からステップS24までの処理を繰り返し、全ての単位加工経路における孤立指令点を検出する。これにより、加工方向に沿った順方向に、孤立指令点が簡便かつ正確に順次検出される。
一方、上記パラメータiが単位加工経路の総数(M)に到達すると(ステップS25:YES)、孤立指令点検出部46は、i番目の単位加工経路を構成する全指令点について、i−1番目の単位加工経路の各指令点との指令点間距離が最短である指令点を隣接指令点として特定する(ステップS26)。これにより、加工方向に沿った順方向とは逆方向に検出処理が実行される。
つぎに、孤立指令点検出部46は、i−1番目の単位加工経路を構成する各指令点のうち、隣接指令点として特定されなかった指令点を孤立指令点として検出する(ステップS27)。これにより、逆方向に隣接する単位加工経路において、隣り合う指令点が抜けている指令点が孤立指令点として検出される。
その後、孤立指令点検出部46は、上記パラメータiをデクリメントし、加工順序が一つ前の単位加工経路を選択する(ステップS28)。そして、上記パラメータiが初期値(1)に一致しない限り(ステップS29:NO)、ステップS26からステップS28までの処理を繰り返し、全ての単位加工経路における孤立指令点を検出する。これにより、加工方向に沿った順方向とは逆方向にも、孤立指令点が簡便かつ正確に順次検出される。このため、順方向の探索だけでは検出されない孤立指令点も漏れなく検出され、解析精度が向上する。
一方、上記パラメータiが初期値(1)に到達すると(ステップS29:YES)、図12における孤立指令点検出ステップ(ステップS4)が完了し、加工プログラムの解析処理が終了する。以上の解析処理により、加工面における傷の発生箇所となる孤立指令点が高精度に特定される。
なお、本第1実施形態において、N個の指令点からなる単位加工経路をM本有する加工経路を解析する場合、一つの単位加工経路を構成する全指令点(N)について、隣接する単位加工経路を構成する全指令点(N)との指令点間距離を算出し、当該計算を単位加工経路の総数より1少ない数(M−1)だけ繰り返すため、総演算回数はN×N×(M−1)回であることが簡単に算出される。このため、解析時間も予測可能であり、解析作業を効率的に行うことが可能になる。
以上のような本第1実施形態によれば、以下のような効果を奏する。
1.解析時間が予測可能でありながら、加工面における傷の発生箇所を高精度に特定することができる。
2.加工面における傷の発生箇所となる孤立指令点を簡便かつ正確に検出することができる。
3.特定立体物の外周面に沿う加工経路を適切に単位加工経路ごとに分割することができる。
4.特定立体物以外の立体物における同一の加工面上で一方向のみに移動する加工経路についても、適切に単位加工経路ごとに分割することができる。
5.特定立体物以外の立体物における同一の加工面上で双方向に移動する加工経路についても、適切に単位加工経路ごとに分割することができる。
6.特定立体物以外の立体物における同一の加工面上での移動方向の変化が小さく、次の指令点までの移動距離が長いことによって折り返されるような加工経路についても、適切に単位加工経路ごとに分割することができる。
7.加工方向に沿った順方向および逆方向の双方向で孤立指令点を探索することで、孤立指令点を漏れなく検出して解析の精度をさらに向上することができる。
つぎに、本発明に係る加工プログラム解析装置1およびこれを備えた工作機械10、ならびに加工プログラム解析プログラム1aおよび加工プログラム解析方法の第2実施形態について説明する。なお、本第2実施形態における構成のうち、上述した第1実施形態と同一もしくは相当する構成については同一の符号を付し、再度の説明を省略する。
本第2実施形態の特徴は、孤立指令点検出部46が、上述した第1実施形態とは異なる方法で孤立指令点を検出する点にある。すなわち、孤立指令点検出部46は、隣接する単位加工経路の一方における2つの指令点間の距離と、他方の単位加工経路において対応する2つの指令点間の距離とを比較し、当該距離の差が大きい箇所を見つけて孤立指令点を検出するようになっている。以下、本第2実施形態における孤立指令点検出部46の処理について、具体的に説明する。
本第2実施形態において、孤立指令点検出部46は、まず、図15(a)に示すように、隣接する単位加工経路である第1単位加工経路および第2単位加工経路において、第1単位加工経路を構成するいずれかの指令点である第1始点から当該第1始点よりも後方の指令点である第1終点までの指令点間距離を算出する。
つぎに、孤立指令点検出部46は、図15(a)に示すように、第2単位加工経路を構成するいずれかの指令点であって第1始点と隣り合う第2始点から、当該第2始点よりも後方の指令点である第2終点までの指令点間距離を算出する。そして、孤立指令点検出部46は、第1単位加工経路における指令点間距離と、第2単位加工経路における指令点間距離との差が任意の閾値を超える場合、指令点間距離が短い方の終点となっている指令点を孤立指令点として検出するようになっている。
図15(a)に示す例では、第1単位加工経路上の第1始点P11から第1終点P12までの指令点間距離LA12と、第1始点P11と隣り合う第2単位加工経路上の第2始点P21から第2終点P22までの指令点間距離LB12との差が、任意の閾値Δ以下である(|LA12−LB12|≦Δ)。このため、第1終点P12と第2終点P22とは、隣接する単位加工経路同士で揃っており、隣り合う指令点は抜けていない。
一方、図15(b)に示す例では、第1単位加工経路上の第1始点P12から第1終点P13までの指令点間距離LA23と、第2単位加工経路上の第2始点P22から第2終点P23までの指令点間距離LB23との差が、任意の閾値Δを超えている(|LA23−LB23|>Δ)。この場合、比較対象となっている指令点間距離のうち、短い方の指令点間距離LB23の終点(第2終点P23)では、隣接する単位加工経路上に隣り合う指令点がない。このため、当該終点が孤立指令点として検出される。
なお、図15(b)に示す例において、比較対象となっている指令点間距離のうち、長い方の指令点間距離LA23の終点(第1終点P13)は、別途、孤立指令点であるか否かを判別する必要がある。このため、孤立指令点検出部46は、第2単位加工経路で孤立指令点として検出された第2終点P23をスキップし、その次の指令点P24を新たな第2終点に設定する。そして、第1単位加工経路上の第1始点P12から第1終点P13までの指令点間距離LA23と、第2単位加工経路上の第2始点P22から第2終点P24までの指令点間距離LB24との差が、任意の閾値Δを超えているか否か判別する。
当該判別の結果、図16(a)に示すように、指令点間距離の差が任意の閾値以下の場合(|LA23−LB24|≦Δ)、第1終点P13と第2終点P24とは、隣接する単位加工経路同士で揃っており、隣り合う指令点は抜けていない。このため、孤立指令点検出部46は、孤立指令点を検出しない。
一方、上記の判別の結果、図16(b)に示すように、指令点間距離の差が任意の閾値を超える場合(|LA23−LB24|>Δ)、比較対象となっている指令点間距離のうち、短い方の指令点間距離LA23の終点(第1終点P13)では、隣接する単位加工経路上に隣り合う指令点がない。このため、当該終点が孤立指令点として検出されるようになっている。
つぎに、本第2実施形態の加工プログラム解析装置1およびこれを備えた工作機械10、ならびに加工プログラム解析プログラム1aおよび加工プログラム解析方法の作用のうち、図12における孤立指令点検出ステップ(ステップS4)の詳細について、図17を参照しつつ説明する。
本第2実施形態では、まず、孤立指令点検出部46が、図17に示すように、単位加工経路の順番(単位加工経路番号)を示すパラメータiを1に初期化する(ステップS31)。つぎに、孤立指令点検出部46は、i番目の単位加工経路における始点となる指令点番号を示すパラメータjと、i+1番目の単位加工経路における始点となる指令点番号を示すパラメータkのそれぞれを1に初期化する(ステップS32)。これにより、各単位加工経路を構成する指令点のうち、加工順序における最初の指令点から順次解析される。なお、本処理において、隣接する単位加工経路同士における第1番目の各指令点は隣り合っていることが前提となる。
さらに、孤立指令点検出部46は、i番目の単位加工経路における終点の始点からの指令点数を示すパラメータmと、i+1番目の単位加工経路にける終点の始点からの指令点数を示すパラメータnのそれぞれを1に初期化する(ステップS33)。そして、孤立指令点検出部46は、i番目の単位加工経路における終点の指令点番号(j+m)が、i番目の単位加工経路の指令点の総数Aを超えているか否かを判定するとともに、i+1番目の単位加工経路における終点の指令点番号(k+n)が、i+1番目の単位加工経路の指令点の総数Bを超えているか否かを判定する(ステップS34)。
当該判定の結果、i番目の単位加工経路における終点の指令点番号(j+m)が、i番目の単位加工経路の指令点の総数Aを超えている場合、またはi+1番目の単位加工経路における終点の指令点番号(k+n)が、i+1番目の単位加工経路の指令点の総数Bを超えている場合(ステップS34:YES)、後述するステップS44へ進む。
一方、ステップS34における判定の結果、i番目の単位加工経路における終点の指令点番号(j+m)が、i番目の単位加工経路の指令点の総数A以下であり、かつ、i+1番目の単位加工経路における終点の指令点番号(k+n)が、i+1番目の単位加工経路の指令点の総数B以下である場合(ステップS34:NO)、孤立指令点検出部46は、i番目の単位加工経路における第1始点Pjから第1終点Pj+mまでの指令点間距離LAと、i+1番目の単位加工経路における第2始点Pkから第2終点Pk+nまでの距離LBとを算出する(ステップS35)。そして、孤立指令点検出部46は、各指令点間距離の差(|LA−LB|)が、任意の閾値以下であるか否かを判定する(ステップS36)。
当該判定の結果、上記指令点間距離の差が任意の閾値以内である場合(ステップS36:YES)、i番目の単位加工経路とi+1番目の単位加工経路とにおいて、隣り合う指令点が存在しているといえる。このため、孤立指令点検出部46は、i番目の単位加工経路における第1始点Pj、およびi+1番目の単位加工経路における第2始点Pkのそれぞれを変更する(ステップS37)。
具体的には、孤立指令点検出部46は、i番目の単位加工経路における第1終点Pj+mの指令点番号(j+m)をパラメータjに代入することで、それまでの第1終点Pj+mをi番目の単位加工経路における新たな第1始点Pjとする。同様に、孤立指令点検出部46は、i+1番目の単位加工経路における第2終点Pk+nの指令点番号(k+n)をパラメータkに代入することで、それまでの第2終点Pk+nをi+1番目の単位加工経路における新たな第2始点Pkとする。これにより、隣接する単位加工経路同士で終点となる指令点が揃っている場合、各指令点が新たな始点として設定される。なお、新たな始点が設定された後は、ステップS33からの処理を繰り返す。
一方、ステップS36における判定の結果、上記指令点間距離の差が任意の閾値を超える場合(ステップS36:NO)、孤立指令点検出部46は、i番目の単位加工経路における指令点間距離LAと、i+1番目の単位加工経路における距離LBのうち、どちらが大きいかを判定する(ステップS38)。
当該判定の結果、i番目の単位加工経路における指令点間距離LAの方が小さい場合(ステップS38:YES)、i番目の単位加工経路における第1終点Pj+mに関しては、i+1番目の単位加工経路において、隣り合う指令点が抜けているといえる。このため、孤立指令点検出部46は、当該第1終点Pj+mを孤立指令点として検出する(ステップS39)。そして、パラメータmをインクリメントすることで、i番目の単位加工経路におけ第1終点Pj+mを1つ後方の指令点に変更し(ステップS40)、ステップS43へ進む。
同様に、ステップS38における判定の結果、i+1番目の単位加工経路における距離LBの方が小さい場合(ステップS38:NO)、i+1番目の単位加工経路における第2終点Pk+nに関しては、i番目の単位加工経路において、隣り合う指令点が抜けているといえる。このため、孤立指令点検出部46は、当該第2終点Pk+nを孤立指令点として検出する(ステップS41)。そして、パラメータnをインクリメントすることで、i+1番目の単位加工経路におけ第2終点Pk+nを1つ後方の指令点に変更し(ステップS42)、ステップS43へ進む。
以上のように、孤立指令点が検出された単位加工経路においては、始点を変更することなく孤立指令点をスキップし、後方の指令点が順次新たな終点として設定される。
いずれかの単位加工経路における終点が変更されると(ステップS40またはステップS42)、孤立指令点検出部46は、上記ステップS34と同様に、当該変更後の終点の指令点番号と、各単位加工経路における総数とを比較する(ステップS43)。そして、i番目の単位加工経路における変更後の終点の指令点番号(j+m)が、i番目の単位加工経路の指令点の総数A以下であり、かつ、i+1番目の単位加工経路における変更後の終点の指令点番号(k+n)が、i+1番目の単位加工経路の指令点の総数B以下である限り(ステップS43:NO)、ステップS35へ戻り、それ以降の処理を繰り返す。
一方、ステップS43における判定の結果、i番目の単位加工経路における変更後の終点の指令点番号(j+m)が、i番目の単位加工経路の指令点の総数Aを超えている場合、またはi+1番目の単位加工経路における変更後の終点の指令点番号(k+n)が、i+1番目の単位加工経路の指令点の総数Bを超えている場合(ステップS43:YES)、孤立指令点検出部46は、パラメータiをインクリメントし、次の単位加工経路を選択する(ステップS44)。
最後に、孤立指令点検出部46は、インクリメントしたパラメータiが単位加工経路の総数(M)に到達したか否かを判定する(ステップS45)。そして、上記パラメータiが単位加工経路の総数(M)に到達しない限り(ステップS45:NO)、上述したステップS32に戻り、それ以降の処理を繰り返す。これにより、隣接する単位加工経路のそれぞれを構成する各指令点の位置関係に基づいて、単位加工経路同士で隣り合う指令点が抜けている指令点が順次、孤立指令点として検出される。
以上のような本第2実施形態の加工プログラム解析装置1およびこれを備えた工作機械10、ならびに加工プログラム解析プログラム1aおよび加工プログラム解析方法によれば、上述した第1実施形態と同様の作用効果を奏する。
また、本第2実施形態によれば、N個の指令点からなる単位加工経路をM本有する加工経路を解析する場合、隣接する2本の単位加工経路のそれぞれを構成する全指令点(N)間に存在するN−1個の指令点間距離を算出し、当該計算を単位加工経路の総数より1少ない数(M−1)だけ繰り返すため、総演算回数は2×(N−1)×(M−1)回となる。このため、本第2実施形態による演算回数は、上述した第1実施形態による演算回数N×N×(M−1)よりも低減するため、解析時間を短縮することができるという効果を奏する。
つぎに、本発明に係る加工プログラム解析装置1およびこれを備えた工作機械10、ならびに加工プログラム解析プログラム1aおよび加工プログラム解析方法の具体的な実施例について説明する。
本実施例では、本発明に係る加工プログラム解析装置1を用いて、実際の加工プログラムを解析し、加工面で傷が発生する箇所(孤立指令点)を検出した。また、比較例として、本発明者らによって考案された特願2016−248154号に係る加工プログラム解析装置1を用いて同様の解析を行った。その結果を図19および図20に示す。
なお、本実施例では、解析対象の加工プログラムとして、工具刃先を螺旋状に移動させることにより、図18に示すようなブレード状の加工対象物を削り出すブレード加工プログラムを使用した。また、図19において、孤立指令点はグレーの点で表示されており、図20において、孤立指令点は三角の印で表示されている。
図19に示すように、本実施例によれば、比較例と比較して、指令点間距離が短く、指令点の密集度が高い箇所においても、孤立指令点が高精度に検出されていた。なお、指令点の密集度がどの程度高い箇所で孤立指令点を検出するのかは、パラメータによって調整することができる。
また、図20に示すように、比較例では、孤立指令点が多数検出されたものの、実際には傷にならない箇所が多かった。これに対し、本実施例では、孤立指令点がピンポイントで検出されており、高い確度で加工面における傷の発生箇所を推定できていた。
以上の本実施例によれば、比較例(特願2016−248154号に係る解析処理)と比較して、指令点の密集度が高い箇所でも孤立指令点を高精度に検出できることが示されるとともに、孤立指令点を高確度で推定できることが示された。
なお、本発明に係る加工プログラム解析装置1およびこれを備えた工作機械10、ならびに加工プログラム解析プログラム1aおよび加工プログラム解析方法は、上述した各実施形態や実施例に限定されるものではなく、適宜変更することができる。
例えば、上述した本第1実施形態では、加工対象物が特定立体物以外の立体物である場合にのみ、クラスター分析によって同一の加工面に属する指令点列を抽出していたが、この構成に限定されるものでない。すなわち、時間に余裕がある場合には、特定立体物についても、クラスター分析によって同一の加工面に属する指令点列を抽出し、単位加工経路ごとに分割してもよい。これにより、特定立体物を構成する各加工面に分布する指令点の密集度に応じて、高精細な解析作業を行うことができる。
また、上述した第1実施形態では、加工対象物が特定立体物であった場合、加工経路分割部43が、加工経路を構成する全ての指令点の位置座標を平均した平均座標を原点として算出しているが、この構成に限定されるものではない。すなわち、原点としては、平均座標を使用することが最適と考えられるが、平均座標以外の位置座標を原点としてもよい。
具体的には、図21(a)に示すように、特定立体物が単純な形状である場合には、加工経路によって形成される図形の内側に原点を設定すればよい。これにより、平均座標でない位置に原点を設定しても、加工経路が1周分の指令点列ごとに単位加工経路として分割される。なお、この場合、原点は上記図形の内側であれば、上記図形の中心である必要はない。
一方、図21(b)に示すように、加工経路によって形成される図形の外側に原点を設定してもよい。ただし、この場合、加工経路が周上の2箇所で分割される。また、上記図形の内側に原点を設定しても、特定立体物の形状によっては、図22(a)に示すように、周上の複数箇所で加工経路が分割される場合がある。
以上のように、加工経路が周上のx箇所で切断される場合、切断された加工経路のそれぞれは、(x−1)個おきに隣接した状態となる。そこで、このような場合には、同一形状の加工経路群のそれぞれをグルーピングすることが好ましい。これにより、各グループにおける加工経路が、互いに隣接する単位加工経路として分割されることとなる。
一方、特定立体物の形状が複雑であっても、加工経路を構成する全ての指令点の位置座標を平均した平均座標は、図22(b)に示すように、上記図形のほぼ中心位置近傍となることが多い。このため、平均座標を原点として設定した場合、加工経路が1周分の指令点列ごとに分割される可能性が高くなる。よって、上記のようなグルーピングを行う必要がなく、加工経路を隣接する単位加工経路ごとに簡単に分割することができる。