(57)【特許請求の範囲】
【請求項１】
直線軸および回転軸を有する工作機械に用いられるＮＣプログラムを生成する情報処理装置であって、
工具先端点の指令位置および工具姿勢の指令角度を含むＣＬデータを取得するＣＬデータ取得部と、
取得されたＣＬデータに基づき、前記指令位置に対応する前記直線軸の移動位置と、前記指令角度に対応する前記回転軸の回転位置を算出して前記ＮＣプログラムを生成するＮＣプログラム生成部と、
を備え、
前記ＣＬデータが、加工経路に沿って前記指令位置および前記指令角度の組み合わせを複数ブロック含むものであり、
前記ＮＣプログラム生成部は、
前記ＣＬデータに対応する指令点データとして、前記回転位置の初期値を第１値として算出する第１指令点データと、前記回転位置の初期値を前記第１値と異なる第２値として算出する第２指令点データを生成し、
各指令点データが前記ＣＬデータの各ブロックに対応する複数のブロックを含み、各ブロックにおける前記回転位置が予め定める演算式により２つ算出できる場合があり、
前記第１指令点データおよび前記第２指令点データのそれぞれについて、全ブロックを実行したときの前記回転位置の符号の反転回数をカウントし、その反転回数の少ない指令点データを含むＮＣプログラムを生成する、情報処理装置。
【請求項２】
前記工作機械が、前記回転軸として、ワークに対する工具の傾斜角度を変化させる第１回転軸と、ワークをその軸線周りに回転させる第２回転軸とを含み、
前記ＮＣプログラム生成部は、前記反転回数として、前記第１回転軸の回転位置の符号の反転回数をカウントする、請求項１に記載の情報処理装置。
【請求項３】
前記ＮＣプログラム生成部は、前記第１指令点データおよび前記第２指令点データのそれぞれの反転回数が同じであった場合、予め定める選択条件に基づいていずれか一方を選択し、選択された指令点データを含むＮＣプログラムを生成する、請求項１又は２に記載の情報処理装置。
【請求項４】
直線軸および回転軸を有する工作機械に用いられるＮＣプログラムを生成する情報処理プログラムであって、
コンピュータに、
工具先端点の指令位置および工具姿勢の指令角度を含むＣＬデータを取得する機能と、
取得されたＣＬデータに基づき、前記指令位置に対応する前記直線軸の移動位置と、前記指令角度に対応する前記回転軸の回転位置を算出して前記ＮＣプログラムを生成する機能と、
を発揮させ、
前記ＣＬデータが、加工経路に沿って前記指令位置および前記指令角度の組み合わせを複数ブロック含むものであり、
前記ＮＣプログラムを生成する機能は、
前記ＣＬデータに対応する指令点データとして、前記回転位置の初期値を第１値として算出する第１指令点データと、前記回転位置の初期値を前記第１値と異なる第２値として算出する第２指令点データを生成し、
各指令点データが前記ＣＬデータの各ブロックに対応する複数のブロックを含み、各ブロックにおける前記回転位置が予め定める演算式により２つ算出できる場合があり、
前記第１指令点データおよび前記第２指令点データのそれぞれについて、全ブロックを実行したときの前記回転位置の符号の反転回数をカウントし、その反転回数の少ない指令点データを含むＮＣプログラムを生成する、情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械で用いられるＮＣプログラムを生成する情報処理装置に関する。
【背景技術】
【０００２】
工作機械として、例えば直交する３つの直線軸（Ｘ軸，Ｙ軸，Ｚ軸）と２つの回転軸（Ｂ軸，Ｃ軸）を有する５軸加工機が知られている。Ｂ軸の回転が主軸を傾動させ、Ｃ軸の回転がワークを回転させる。このような工作機械は、数値制御装置がＮＣプログラム（加工プログラム）を実行することで５軸を制御し、工具の先端点位置および姿勢を変化させながらワークを所望形状に加工する。
【０００３】
具体的には図１１に示すように、ＮＣプログラムによって指令される加工経路（Ｐｘ，Ｐｙ，Ｐｚ）および工具姿勢（α，β）にしたがって工具先端点制御が行われる（特許文献１参照）。ここで、加工経路（Ｐｘ，Ｐｙ，Ｐｚ）は、３つの直線軸における工具の先端点の位置を示す。工具姿勢（α，β）は、２つの回転軸の回転角度を示す。
【０００４】
ＮＣプログラムは、コンピュータ支援設計（ＣＡＤ）およびコンピュータ支援製造（ＣＡＭ）を経て得られる工具位置データ（Cutter Location Data：以下「ＣＬデータ」という）に基づいて生成される。ただし、工作機械の機種は多数あり、工作機械メーカごとにその仕様も異なる。このため、ＣＡＭのポストプロセッサによりＣＬデータが適切に変換され、工作機械ごとに最適化されたＮＣプログラムが提供される。
【０００５】
すなわち、ＣＡＭはＣＡＤデータに基づき、工具経路と工具姿勢を含むＣＬデータを生成する。ポストプロセッサは、その工具姿勢を実現するための回転軸の回転位置（以下「回転軸位置」ともいう）を算出してＮＣプログラムを生成する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１９−７０９５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、ポストプロセッサは、逐次的に工具姿勢に基づく回転軸位置を算出するが、その際に２通りの解が存在する。
【０００８】
すなわち、例えばテーブル側にＢ軸、Ｃ軸の二つの回転軸を有する工作機械の場合、工具姿勢（Ｉ，Ｊ，Ｋ）と回転軸位置（Ｂ，Ｃ）との関係は、下記式（１）のようになる。
【数１】
0006980357.tif 000002
ここで、（Ｉ，Ｊ，Ｋ）は、工具の刃先（先端点）の方向ベクトル（より正確には、工具の刃先から基端への方向ベクトル）を示す。「Ｂ」はＢ軸（第１回転軸）の基準位置からの回転角度を示し、「Ｃ」はＣ軸（第２回転軸）の基準位置からの回転角度を示す。
【０００９】
Ｂ軸の回転角度は、下記式（２）で表される。
【数２】
0006980357.tif 000003
したがって、Ｋ＝±１の場合、Ｂは特異解となり、Ｃを一意に求めることはできない。一方、Ｋ≠１の場合、−π＜Ｂ≦πの範囲で２つの解が存在する。このため、それぞれのＢに対してＣが算出される。
【００１０】
上記式（１）のＩ，Ｊに関してＣを解くと、下記式（３）のようになる。
【数３】
0006980357.tif 000004
【００１１】
このため、ポストプロセッサは、Ｂ軸とＣ軸の回転角度の組み合わせを、２組の解の一方に決定しなければならない。一般的にはＢ軸（傾斜軸）の回転位置が基準位置に対して正となる解、もしくは回転軸の移動量が小さくなる方の解が選択される。しかし、工作機械の仕様により回転軸の動作範囲には制限があり、好ましい解を選択できない場合がある。その場合、工作機械の実加工の過程で回転軸が大きく動いてしまい、加工時間の増大や加工面品位の低下につながる可能性がある。
【課題を解決するための手段】
【００１２】
本発明のある態様は、直線軸および回転軸を有する工作機械に用いられるＮＣプログラムを生成する情報処理装置である。この情報処理装置は、工具先端点の指令位置および工具姿勢の指令角度を含むＣＬデータを取得するＣＬデータ取得部と、取得されたＣＬデータに基づき、指令位置に対応する直線軸の移動位置と、指令角度に対応する回転軸の回転位置を算出してＮＣプログラムを生成するＮＣプログラム生成部と、を備える。ＮＣプログラム生成部は、ＣＬデータに対応する指令点データとして、回転位置の初期値を第１値として算出する第１指令点データと、回転位置の初期値を第１値と異なる第２値として算出する第２指令点データを生成し、第１指令点データおよび第２指令点データのそれぞれについて、全ブロックを実行したときの回転位置の符号の反転回数をカウントし、その反転回数の少ない指令点データを含むＮＣプログラムを生成する。
【００１３】
本発明の別の態様は、直線軸および回転軸を有する工作機械に用いられるＮＣプログラムを生成する情報処理プログラムである。この情報処理プログラムは、コンピュータに、工具先端点の指令位置および工具姿勢の指令角度を含むＣＬデータを取得する機能と、取得されたＣＬデータに基づき、指令位置に対応する直線軸の移動位置と、指令角度に対応する回転軸の回転位置を算出してＮＣプログラムを生成する機能と、を発揮させる。ＮＣプログラムを生成する機能は、ＣＬデータに対応する指令点データとして、回転位置の初期値を第１値として算出する第１指令点データと、回転位置の初期値を第１値と異なる第２値として算出する第２指令点データを生成し、第１指令点データおよび第２指令点データのそれぞれについて、全ブロックを実行したときの回転位置の符号の反転回数をカウントし、その反転回数の少ない指令点データを含むＮＣプログラムを生成する。
【発明の効果】
【００１４】
本発明によれば、工作機械における上記に起因する加工時間の増大や加工面品位の低下を抑制可能なＮＣプログラムを生成できる。
【図面の簡単な説明】
【００１５】
【図１】実施形態に係る工作機械の概略構成を表す模式図である。
【図２】工作機械のハードウェア構成図である。
【図３】情報処理装置の機能ブロック図である。
【図４】ＮＣプログラムの例を示す図である。
【図５】ＣＬデータからＮＣプログラムへの変換方法を表す図である。
【図６】ＮＣプログラムへの変換に伴う問題点を模式的に表す図である。
【図７】指令点データの生成方法を表す図である。
【図８】ＮＣプログラム生成処理を表すフローチャートである。
【図９】図８のＳ１２のＣＬデータ解析処理を表すフローチャートである。
【図１０】図８のＳ１８のＮＣプログラム生成処理を表すフローチャートである。
【図１１】工具先端点制御の概要を表す図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照しつつ、本発明の一実施形態について説明する。
図１は、実施形態に係る工作機械の概略構成を表す模式図である。なおここでは、工作機械１を正面からみて左右方向，前後方向，上下方向を、それぞれＸ軸方向，Ｙ軸方向，Ｚ軸方向とする。
【００１７】
工作機械１は、５軸制御マシニングセンタであり、直交する３つの直線軸（Ｘ軸，Ｙ軸，Ｚ軸）と、２つの回転軸（Ｂ軸，Ｃ軸）を有する加工装置２を備える。Ｂ軸が「第１回転軸」として機能し、Ｃ軸が「第２回転軸」として機能する。これら５軸が、後述の数値制御装置により同時制御されることにより工具先端点を移動させ、また工具姿勢を変化させながら各種加工が実行される。
【００１８】
加工装置２は、主軸１０を支持する主軸頭１２と、ワークＷを支持するテーブル１４を備える。主軸頭１２がＢ軸を有し、そのＢ軸を中心に主軸１０を回動可能（傾動可能）に支持する。主軸１０は、工具Ｔを同軸状に支持する。工具Ｔは、例えばエンドミル等である。主軸頭１２には、主軸１０を軸線周りに回転駆動するためのスピンドルモータと、Ｂ軸を中心に主軸１０を回動させるためのサーボモータが設けられている。主軸の回動により工具ＴのＺ軸方向に対する傾斜角度が変化するため、Ｂ軸は傾斜軸としての「回動軸」としても機能する。
【００１９】
主軸１０の回動により、ワークＷに対する工具Ｔの傾斜角度が変化する。主軸頭１２は、また、複数のサーボモータによりそれぞれ３軸方向に駆動される。主軸１０は、主軸頭１２が駆動されることによりＸ軸、Ｙ軸およびＺ軸方向に移動自在である。
【００２０】
テーブル１４には、図示略の治具を介してワークＷが固定される。テーブル１４の軸線に沿ってＣ軸が設けられる。テーブル１４は、図示しないサーボモータによりＣ軸を中心に回転駆動される。すなわち、以上の構成により、ワークＷと工具Ｔとの相対位置を三次元的に調整できる。
【００２１】
図２は、工作機械１のハードウェア構成図である。
工作機械１は、操作制御装置５０、数値制御装置５２、加工装置２、工具交換装置５４および工具格納部５６を含む。数値制御装置５２は、手動又は自動で生成されたＮＣプログラムにしたがって加工装置２に制御信号を送信する。加工装置２は、数値制御装置５２からの指示にしたがって主軸１０およびテーブル１４を駆動してワークＷを加工する。
【００２２】
操作制御装置５０は、オペレータにユーザインタフェース機能を提供する操作盤を含む。オペレータは操作制御装置５０を介して数値制御装置５２を制御する。工具格納部５６は工具を格納する。工具交換装置５４は、いわゆるＡＴＣ（Automatic Tool Changer）に対応する。工具交換装置５４は、数値制御装置５２からの交換指示にしたがって、工具格納部５６から工具を取り出し、主軸１０にある工具と取り出した工具を交換する。
【００２３】
数値制御装置５２には情報処理装置１００が接続される。情報処理装置１００は、図示略のＣＡＭ装置から取得したＣＬデータに基づいてＮＣプログラムを生成し、数値制御装置５２へ出力する。数値制御装置５２は、そのＮＣプログラムを実行して加工装置２を制御する。情報処理装置１００は、操作制御装置５０の一部として構成されてもよい。情報処理装置１００は、一般的なラップトップＰＣ（Personal Computer）あるいはタブレット・コンピュータであってもよい。
【００２４】
図３は、情報処理装置１００の機能ブロック図である。
情報処理装置１００の各構成要素は、ＣＰＵ（Central Processing Unit）および各種コンピュータプロセッサなどの演算器、メモリやストレージといった記憶装置、それらを連結する有線または無線の通信線を含むハードウェアと、記憶装置に格納され、演算器に処理命令を供給するソフトウェアによって実現される。コンピュータプログラムは、デバイスドライバ、オペレーティングシステム、それらの上位層に位置する各種アプリケーションプログラム、また、これらのプログラムに共通機能を提供するライブラリによって構成されてもよい。以下に説明する各ブロックは、ハードウェア単位の構成ではなく、機能単位のブロックを示している。
【００２５】
なお、操作制御装置５０および数値制御装置５２も、プロセッサなどの演算器、メモリやストレージといった記憶装置、それらを連結する有線または無線の通信線を含むハードウェアと、記憶装置に格納され演算器に処理命令を供給するソフトウェアやプログラムを情報処理装置１００とは別個のオペレーティングシステム上で実現される形態でもよい。
【００２６】
情報処理装置１００は、入出力インタフェース部１１０、データ処理部１１２およびデータ格納部１１４を含む。入出力インタフェース部１１０は、外部装置とのデータのやりとりを含む入出力インタフェースに関する処理を担当する。データ処理部１１２は、入出力インタフェース部１１０により取得されたデータおよびデータ格納部１１４に格納されているデータに基づいて各種処理を実行する。データ処理部１１２は、入出力インタフェース部１１０およびデータ格納部１１４のインタフェースとしても機能する。データ格納部１１４は、各種プログラムと設定データを格納する。
【００２７】
入出力インタフェース部１１０は、入力部１２０および出力部１２２を含む。
入力部１２０はＣＬデータ取得部１２４を含む。ＣＬデータ取得部１２４は、ＣＡＭ装置１５０からＣＬデータを取得する。ＣＡＭ装置１５０は、図示略のＣＡＤ装置で生成されたＣＡＤデータを取得するとともに、経路生成情報（座標系、工具形状，送り速度、主軸回転数等）を取得する。ＣＡＭ装置１５０は、これらＣＡＤデータと経路生成情報に基づいてＣＬデータを生成する。ＣＬデータには、工具先端点の指令位置および工具姿勢の指令角度が含まれる（詳細後述）。ＣＡＭ装置１５０は、生成したＣＬデータを情報処理装置１００へ出力する。
【００２８】
データ格納部１１４は、プログラム格納部１３０、指令点データ記憶部１３２および反転回数記憶部１３４を含む。データ格納部１１４は、データ処理部１１２が演算処理を行う場合のワーキングエリアとして機能するメモリを含む。
【００２９】
プログラム格納部１３０は、ＮＣプログラムを生成するための情報処理プログラムを格納する。指令点データ記憶部１３２は、ＮＣプログラムの生成過程で算出される指令点データを一時記憶する。反転回数記憶部１３４は、ＮＣプログラムの生成過程で更新される回転軸位置の反転回数を一時記憶する（詳細後述）。
【００３０】
データ処理部１１２はＮＣプログラム生成部１４０を含む。ＮＣプログラム生成部１４０は、ポストプロセッサとして機能し、ＣＡＭ装置１５０から取得されるＣＬデータに基づいてＮＣプログラムを生成する（詳細後述）。
【００３１】
出力部１２２はプログラム出力部１２６を含む。プログラム出力部１２６は、生成されたＮＣプログラムを数値制御装置５２へ出力する。
【００３２】
次に、ＮＣプログラムの生成方法について説明する。
図４は、ＮＣプログラムの例を示す図である。
ＮＣプログラム１７０は、複数のブロックによって構成されており、各ブロックには、工具長補正（工具先端点制御の起動に相当）を指令するＧコード（Ｇ４３．３）、工具先端点の指令位置および工具姿勢の指令角度、および工具長補正のキャンセル（工具先端点制御の終了に相当）を指令するＧコード（Ｇ４９）等が記述されている。工具先端点の指令位置がワーク座標系における工具先端点の位置座標（Ｘｎ、Ｙｎ、Ｚｎ）によって指定され、工具姿勢の指令角度が回転軸（Ｂ軸，Ｃ軸）の移動角度（Ｂｎ、Ｃｎ）によって指定されている。
【００３３】
本実施形態では、工作機械１の仕様に応じたＮＣプログラムを生成するためにポストプロセッサを利用する。まず前提として、ＣＬデータからＮＣプログラムへの変換に関する一般的方法と、その変換に伴う問題点について概説する。
【００３４】
図５は、ＣＬデータからＮＣプログラムへの変換方法を表す図である。図６は、ＮＣプログラムへの変換に伴う問題点を模式的に表す図である。
図５に示すように、ＣＡＭ装置は、ＣＡＤデータに基づいてＣＬデータを生成し、ポストプロセッサへ出力する。ＣＬデータには、工具先端点の指令位置（刃先位置）および工具姿勢が含まれる。指令位置（Ｘ，Ｙ，Ｚ）は工具先端点の移動先座標を示し、工具姿勢（Ｉ，Ｊ，Ｋ）は工具の刃先（先端点）の方向ベクトルを示す。
【００３５】
ポストプロセッサは、ＣＡＭ装置から送られるＣＬデータからＮＣプログラムを構成する指令点データを生成する。この指令点データには、直線軸位置（Ｘ，Ｙ，Ｚ）と回転軸位置（Ｂ，Ｃ）が含まれる。「直線軸位置」は、直線軸の移動位置であり、工具先端点の指令位置（Ｘ，Ｙ，Ｚ）に対応する。一方、「回転軸位置」は、工具姿勢（Ｉ，Ｊ，Ｋ）に対応する回転軸（Ｂ軸およびＣ軸）の回転位置（移動角度）である。なお、本実施形態では、Ｂ軸に関してＺ軸−方向を基準位置：０（度）としている。
【００３６】
既に説明したように回転軸位置には２通りの解が存在し、図示の例では回転軸位置の初期値を基準値に対して負側として設定しているが、工作機械の仕様によりＢ軸の動作範囲（回転角度範囲）に制限があるため、途中で符号が反転してしまっている。この例では、Ｂ軸を負側に−２５．０度よりも大きく動かせない仕様（機械的構成）となっている。
【００３７】
すなわち、この仕様よる制限がなければ、図示の第５ブロックの指令点データにおいて、回転軸位置（Ｂ軸、Ｃ軸）として一方の解である（−２６．０、−５４．０）を選択するところ、他方の解である（２６．０、１２６．０）を選択せざるを得なくなっている（点線領域参照）。
【００３８】
より具体的には、図６に示すように、工具Ｔを現在位置（図５の第４ブロックに対応）からその近傍の第１位置（好ましい位置：一方の解に対応）に移動させるのが理想的であったところ、現在位置から大きく離間した第２位置（好ましくない位置：他方の解に対応）に移動させざるを得なくなる。移動先が現在位置から遠くなるほど、工作機械の軸移動の追従性の問題から、ＣＬデータの指令経路（破線参照）と実際の工具先端点Ｐの軌跡（実線参照）との誤差が大きくなり（Ｇ２＞Ｇ１）、加工面品位の低下をもたらす。また、移動距離が大きい分、加工時間も増大することとなる。
【００３９】
なお、本実施形態では図示のように、位置制御の対象となる工具先端点Ｐを工具Ｔの刃先に設定しているが、変形例においては、先端中心Ｐ'を工具先端点としてもよい。
【００４０】
次に、本実施形態におけるＮＣプログラムの生成方法について説明する。
上述のような好ましくない位置への移動頻度が多くなるほど、加工面品位の低下等の問題につながりやすい。そこで、本実施形態では以下に述べるように、指令点データにおける回転軸位置の符号の反転回数を少なくすることにより、上記問題の発生を抑制する。
【００４１】
図７は、指令点データの生成方法を表す図である。図７（Ａ）は、回転軸位置の初期値を基準位置に対して正の値とした場合の指令点データを示す。一方、図７（Ｂ）は、回転軸位置の初期値を基準位置に対して負の値とした場合の指令点データを示す。
【００４２】
ＮＣプログラム生成部１４０は、ＮＣプログラムを生成するための情報処理プログラムを実行し、ＣＬデータに対応する指令点データを遂次算出する。上述のように、指令点データとして２通りの解が算出されるため、回転軸位置の初期値を基準位置に対して正の値（「第１値」に対応）として算出される指令点データを「第１指令点データ」とする（図７（Ａ））。回転軸位置の初期値を基準位置に対して負の値（「第２値」に対応）として算出される指令点データを「第２指令点データ」とする（図７（Ｂ））。
【００４３】
ＮＣプログラム生成部１４０は、第１指令点データおよび第２指令点データのそれぞれについて、全ブロックを実行したときの回転軸位置の符号の反転回数をカウントし、その反転回数の少ない指令点データを含むＮＣプログラムを生成する。図示の例では、第１指令点データについては符号の反転がなく、第２指令点データについては符号の反転が発生している。このため、ＮＣプログラム生成部１４０は、第１指令点データを含むＮＣプログラムを生成する。
【００４４】
このように、回転軸位置の符号の反転回数が少ないほうの指令点データを選択することで、ＮＣプログラムが実行されたときに、工具Ｔを好ましい位置への移動させる頻度を相対的に高めることができる（図６参照）。それにより、加工面品位の低下を抑制でき、加工効率も高く維持できる。
【００４５】
次に、ＮＣプログラム生成処理について具体的に説明する。
図８は、ＮＣプログラム生成処理を表すフローチャートである。
ＮＣプログラム生成部１４０は、まずＣＬデータに基づいて算出される回転軸位置の初期値として基準値に対して正の値を選択するように設定する（Ｓ１０）。続いて、ＣＬデータ取得部１２４がＣＬデータの取得を開始し、ＮＣプログラム生成部１４０がＣＬデータ解析処理を実行する（Ｓ１２）。
【００４６】
図９は、図８のＳ１２のＣＬデータ解析処理を表すフローチャートである。
ＮＣプログラム生成部１４０は、ＣＬデータ解析前、指令点データに関する反転回数Ｎをゼロクリアする（Ｓ３０）。
【００４７】
ＣＬデータ取得部１２４が、まずＣＡＭ装置１５０からＣＬデータを１ブロック読み取る（Ｓ３１）。ＮＣプログラム生成部１４０は、ＣＬデータに含まれる工具姿勢（Ｉ，Ｊ，Ｋ）から回転軸位置（Ｂ，Ｃ）を算出する（Ｓ３２）。そして、このとき算出される２つの解のうち一方を選択し（Ｓ３４）、これを回転軸位置として含むよう指令点データを算出する。
【００４８】
本実施形態では、このときのときの解の選択条件として、基本的にＢ軸の移動量が小さいほうを選択するよう予め設定されている。ただし、工作機械１の仕様からその選択ができない場合には、もう一方の解が選択される。この指令点データ（第１指令点データ）は、ブロック番号に対応づけるようにして指令点データ記憶部１３２に更新される（Ｓ３６）。
【００４９】
このとき、工作機械１の仕様に基づき、回転軸位置を反転させる解を選択したとき（Ｓ３８のＹ）、反転回数記憶部１３４における指令点データの反転回数Ｎ（第１指令点データの反転回数Ｎ１）を１インクリメントする（Ｓ４０）。回転軸位置の反転がなければ（Ｓ３８のＮ）、Ｓ４０の処理をスキップする。以上の処理をＣＬデータの最終ブロックの指令点データが算出されるまで繰り返す（Ｓ４２のＮ）。最終ブロックについての処理が終了すると（Ｓ４２のＹ）、本処理を一旦終了する。
【００５０】
図８に戻り、ＮＣプログラム生成部１４０は、続いて、ＣＬデータに基づいて算出される回転軸位置の初期値として基準値に対して負の値を選択するように設定する（Ｓ１４）。続いて、ＣＬデータ取得部１２４がＣＬデータの取得を再度開始し、ＮＣプログラム生成部１４０がＣＬデータ解析処理を実行する（Ｓ１６）。それにより、第２指令点データが生成されるとともにその反転回数Ｎ（第２指令点データの反転回数Ｎ２）が更新される。
【００５１】
このＣＬデータ解析処理については、回転軸位置の初期値が異なる以外はＳ１２の処理（図９参照）と同様であるので、その説明は省略する。ＮＣプログラム生成部１４０は、上記ＣＬデータ解析処理（Ｓ１２，Ｓ１６）の結果に基づいてＮＣプログラム生成処理を実行する（Ｓ１８）。
【００５２】
図１０は、図８のＳ１８のＮＣプログラム生成処理を表すフローチャートである。
ＮＣプログラム生成部１４０は、第１指令点データの反転回数Ｎ１および第２指令点データの反転回数Ｎ２を反転回数記憶部１３４から読み出して比較する。このとき、反転回数Ｎ１のほうが反転回数Ｎ２よりも小さければ（Ｓ５２のＹ）、回転軸位置の初期値を基準値に対して正の値とする第１指令点データを含むようＮＣプログラムを生成する（Ｓ５４）。
【００５３】
一方、反転回数Ｎ２のほうが反転回数Ｎ１よりも小さければ（Ｓ５２のＮ、Ｓ５６のＹ）、回転軸位置の初期値を基準値に対して負の値とする第２指令点データを含むようＮＣプログラムを生成する（Ｓ５８）。反転回数Ｎ１と反転回数Ｎ２とが同じであれば（Ｓ５６のＮ）、予め定める指令点データの選択条件に基づいていずれか一方の指令点データを選択する。
【００５４】
本実施形態において、「指令点データの選択条件」は、反転時におけるＢ軸の移動量が小さいほうを選択するよう予め設定されている。また、第１指令点データおよび第２指令点データの双方において反転回数がゼロであれば、予め定める側の指令点データ（例えば第１指令点データ）が選択されるよう設定されている。
【００５５】
このため、ＮＣプログラム生成部１４０は、第１指令点データが指令点データの選択条件を満たす場合には（Ｓ６０のＹ）、第１指令点データを含むようＮＣプログラムを生成する（Ｓ６２）。第２指令点データが指令点データの選択条件を満たす場合には（Ｓ６０のＮ）、第２指令点データを含むようＮＣプログラムを生成する（Ｓ６４）。
【００５６】
図８に戻り、プログラム出力部１２６は、以上のようにして生成されたＮＣプログラムを数値制御装置５２へ出力する（Ｓ２０）。
【００５７】
以上、実施形態に基づいて情報処理装置１００について説明した。
本実施形態では、ＣＬデータの全ブロックについて第１指令点データと第２指令点データをそれぞれ算出し、回転軸位置の反転回数が少ないほうを含むようにＮＣプログラムを生成した。このため、数値制御装置５２によりＮＣプログラムを実行したときに工具Ｔの無用な移動を抑制できる。その結果、加工面品位の低下を抑制でき、加工効率を良好に維持できる。すなわち、本実施形態によれば、工作機械１における加工時間の増大や加工面品位の低下を抑制可能なＮＣプログラムを生成できる。
【００５８】
上記実施形態では、情報処理装置１００において、算出される２つの解のうち、Ｂ軸の移動量が小さいほうを選択するよう解の選択条件を設定した。変形例においては、Ｃ軸の移動量が小さい方を選択するよう解の選択条件を設定してもよい。あるいは、Ｂ軸およびＣ軸の双方の移動量（トータルの移動量）が小さいほうを選択するよう解の選択条件を設定してもよい。
【００５９】
上記実施形態では、第１指令点データと第２指令点データについて回転軸位置の反転回数が同じであった場合、反転時におけるＢ軸の移動量が小さいほうを選択するよう指令点データの選択条件を設定した。変形例においては、反転時におけるＣ軸の移動量が小さいほうを選択するよう指令点データの選択条件を設定してもよい。あるいは、反転時におけるＢ軸およびＣ軸の双方の移動量（トータルの移動量）が小さいほうを選択するよう指令点データの選択条件を設定してもよい。あるいは、指令点データ全体でＢ軸の移動量が小さいほうを選択するよう指令点データの選択条件を設定してもよい。あるいは、指令点データ全体でＣ軸の移動量が小さいほうを選択するよう指令点データの選択条件を設定してもよい。あるいは、指令点データ全体でＢ軸およびＣ軸の双方の移動量（トータルの移動量）が小さいほうを選択するよう指令点データの選択条件を設定してもよい。あるいは、第１指令点データと第２指令点データのいずれを選択するかをユーザが事前設定できるようにしてもよい。
【００６０】
上記実施形態では、情報処理装置１００において、第１指令点データと第２指令点データを生成し、回転軸位置の符号の反転回数が少ないほうの指令点データを選択したうえでＮＣプログラムを生成する例を示した。変形例においては、第１指令点データを含むＮＣプログラム（第１ＮＣプログラム）と、第２指令点データを含むＮＣプログラム（第２ＮＣプログラム）とを生成した後、全ブロックを実行したときの反転回数が少ないほうのＮＣプログラムを選択し、数値制御装置５２に送信してもよい。
【００６１】
上記実施形態では、指令点データとして、回転軸位置の初期値を基準位置に対して正の値（第１値）として算出する第１指令点データと、回転軸位置の初期値を基準位置に対して負の値（第２値）として算出する第２指令点データを生成する例を示した。具体的には、Ｂ軸に関し、「第１値」を基準となる軸方向（Ｚ軸−方向）に対して正の値とし、「第２値」を基準となる軸方向（Ｚ軸−方向）に対して負の値とした。変形例においては、基準となる軸をＸ軸方向（例えばＸ軸−方向）とし、正の値（第１値）と負の値（第２値）を判定してもよい。
【００６２】
上記実施形態では、図７に示したように、回転軸位置としてＢ軸とＣ軸の符号が正負で一致する場合を示したが、正負で互いに異なる符号を有する設定としてもよい。その場合もＢ軸の符号が反転した場合にはＣ軸の符号も反転する。このため、上述した「反転回数」に基づく演算処理は有効に機能する。また、Ｂ軸とＣ軸の符号が正負で互いに異なる場合、一方の回転軸（例えばＢ軸）の符号に基づいて上述した処理を行ってもよい。
【００６３】
上記実施形態では、工作機械として５軸加工機を例示した。すなわち、直線軸がＸ軸、Ｙ軸およびＺ軸の３軸で構成され、回転軸がＢ軸およびＣ軸の２軸で構成される例を示した。変形例においては、回転軸がＡ軸とＣ軸で構成されてもよい。あるいは、Ａ軸とＢ軸で構成されてもよい。また、４軸加工機とし、回転軸が１軸（例えばＢ軸のみ）で構成されてもよい。その１軸に関して第１指令点データと第２指令点データを生成し、回転軸位置の符号の反転回数が少ないほうの指令点データを選択してもよい。
【００６４】
上記実施形態では、加工装置２として、２つの回転軸の一方（Ｂ軸）を中心に工具を回転させ、他方の回転軸（Ｃ軸）を中心にテーブルを回転させる構成を例示した。変形例においては、２つの回転軸が主軸側に設けられてもよい。あるいは、２つの回転軸がテーブル側に設けられてもよい。例えば、テーブルが第１部材によりＣ軸を中心に回転可能に支持され、第１部材が第２部材によりＡ軸又はＢ軸を中心に回転可能に支持される構成を採用してもよい。第２部材がＡ軸を有する場合、第２部材はＹ軸方向に移動可能に支持されてもよい。第２部材がＢ軸を有する場合、第２部材はＸ軸方向に移動可能に支持されてもよい。
【００６５】
上記実施形態では、ＣＡＤ装置とＣＡＭ装置とを別構成とする例を示したが、ＣＡＤ機能とＣＡＭ機能を兼ね備えたＣＡＤ／ＣＡＭ装置として構成されてもよい。
【００６６】
上記実施形態では述べなかったが、上述した情報処理プログラムは、コンピュータ読み取り可能な記録媒体に記録され、提供されてもよい。
【００６７】
なお、本発明は上記実施形態や変形例に限定されるものではなく、要旨を逸脱しない範囲で構成要素を変形して具体化することができる。上記実施形態や変形例に開示されている複数の構成要素を適宜組み合わせることにより種々の発明を形成してもよい。また、上記実施形態や変形例に示される全構成要素からいくつかの構成要素を削除してもよい。
【符号の説明】
【００６８】
１  工作機械、２  加工装置、１０  主軸、１２  主軸頭、１４  テーブル、５０  操作制御装置、５２  数値制御装置、５４  工具交換装置、５６  工具格納部、１００  情報処理装置、１１０  入出力インタフェース部、１１２  データ処理部、１１４  データ格納部、１２０  入力部、１２２  出力部、１２４  ＣＬデータ取得部、１２６  プログラム出力部、１３０  プログラム格納部、１３２  指令点データ記憶部、１３４  反転回数記憶部、１４０  ＮＣプログラム生成部、１５０  ＣＡＭ装置、Ｐ  工具先端点、Ｔ  工具、Ｗ  ワーク。
【要約】
【課題】工作機械における加工時間の増大や加工面品位の低下を抑制可能なＮＣプログラムを生成する。
【解決手段】ある態様の情報処理装置は、工具先端点の指令位置および工具姿勢の指令角度を含むＣＬデータを取得するＣＬデータ取得部と、取得されたＣＬデータに基づき、指令位置に対応する直線軸の移動位置と、指令角度に対応する回転軸の回転位置を算出してＮＣプログラムを生成するＮＣプログラム生成部と、を備える。ＮＣプログラム生成部は、ＣＬデータに対応する指令点データとして、回転位置の初期値を第１値として算出する第１指令点データと、回転位置の初期値を第１値と異なる第２値として算出する第２指令点データを生成し、第１指令点データおよび第２指令点データのそれぞれについて、全ブロックを実行したときの回転位置の符号の反転回数をカウントし、その反転回数の少ない指令点データを含むＮＣプログラムを生成する。
【選択図】図３【図１】
0006980357.tif 000005
【図２】
0006980357.tif 000006
【図３】
0006980357.tif 000007
【図４】
0006980357.tif 000008
【図５】
0006980357.tif 000009
【図６】
0006980357.tif 000010
【図７】
0006980357.tif 000011
【図８】
0006980357.tif 000012
【図９】
0006980357.tif 000013
【図１０】
0006980357.tif 000014
【図１１】
0006980357.tif 000015