(57)【要約】【課題】数値制御工作機械において、より高速度でかつ高精度な加工が実現される数値制御用プログラムを作成することが可能な数値制御用プログラム作成装置、数値制御工作システム、および数値制御工作プログラムを提供すること。【解決手段】数値制御装置の処理時間を示すブロック処理時間、数値制御装置の加工速度を指定する指令速度、目標曲線における曲率半径、および目標曲線を線分近似するための弦誤差の複数のパラメータの間の関係を記憶する記憶手段と、数値制御装置が数値制御工作機械を制御する上での弦誤差の条件に基づき、該複数のパラメータの間の関係を用いて目標弦誤差を算出する算出手段と、目標弦誤差に基づいて目標曲線に対する近似線分を作成するプログラム作成手段と、を含む。【選択図】図１
2019148931.tif 000002
【特許請求の範囲】
【請求項１】
目標曲線に沿った加工を行う数値制御工作機械を制御する数値制御装置に対する指令を示す数値制御用プログラムを作成する数値制御用プログラム作成装置であって、
前記数値制御装置の処理時間を示すブロック処理時間、前記数値制御装置の加工速度を指定する指令速度、前記目標曲線における曲率半径、および前記目標曲線を線分近似するための弦誤差の複数のパラメータの間の関係を記憶する記憶手段と、
前記数値制御装置が前記数値制御工作機械を制御する上での前記弦誤差の条件に基づき、前記複数のパラメータの間の関係を用いて目標弦誤差を算出する算出手段と、
前記目標弦誤差に基づいて前記目標曲線に対する近似線分を作成するプログラム作成手段と、
を含む数値制御用プログラム作成装置。
【請求項２】
複数のパラメータの間の関係が前記ブロック処理時間、前記指令速度、前記曲率半径、および前記弦誤差の間の関係を示す弦誤差曲面である
請求項１に記載の数値制御用プログラム作成装置。
【請求項３】
前記弦誤差の条件が、前記弦誤差曲面上の点を指定する条件である
請求項２に記載の数値制御用プログラム作成装置。
【請求項４】
前記弦誤差の条件が、前記弦誤差曲面の近傍の点を指定する条件である
請求項２に記載の数値制御用プログラム作成装置。
【請求項５】
前記算出手段は、前記ブロック処理時間、前記指令速度、前記曲率半径、および前記弦誤差のいずれかに１より大きい補正係数を乗じて前記目標弦誤差を算出する
請求項４に記載の数値制御用プログラム作成装置。
【請求項６】
前記複数のパラメータの間の関係が、前記指令速度および前記曲率半径を変数とする前記弦誤差の関数であり、
前記算出手段は、前記目標曲線における前記指令速度および前記曲率半径の組合せに対する前記弦誤差の最大値を前記弦誤差の関数を用いて演算し、前記弦誤差の最大値を用いて前記目標弦誤差を算出する
請求項１に記載の数値制御用プログラム作成装置。
【請求項７】
前記複数のパラメータの間の関係が、前記指令速度および前記曲率半径を変数とする前記弦誤差の関数であり、
前記算出手段は、前記目標曲線における前記指令速度の最大値および前記曲率半径の最小値を演算し、前記指令速度の最大値および前記曲率半径の最小値を用いて前記弦誤差の関数に基づいて前記目標弦誤差を算出する
請求項１に記載の数値制御用プログラム作成装置。
【請求項８】
前記弦誤差の関数が、前記指令速度および前記曲率半径で表された法線加速度の関数であり、
前記算出手段は、前記目標曲線における前記法線加速度の最大値を演算し、前記法線加速度の最大値を用いて前記法線加速度の関数に基づいて前記目標弦誤差を算出する
請求項７に記載の数値制御用プログラム作成装置。
【請求項９】
前記算出手段は、前記目標弦誤差に最小値を設定し、算出された目標弦誤差が前記最小値未満となった場合には前記最小値を前記目標弦誤差として算出する
請求項１から請求項８のいずれか１項に記載の数値制御用プログラム作成装置。
【請求項１０】
請求項１から請求項９のいずれか１項に記載の数値制御用プログラム作成装置と、
目標曲線に沿った加工を行う数値制御工作機械と、
前記数値制御用プログラム作成装置で作成されたプログラムに基づいて前記数値制御工作機械を制御する数値制御装置と、を含む
数値制御工作システム。
【請求項１１】
目標曲線に沿った加工を行う数値制御工作機械を制御する数値制御装置に対する指令を示す数値制御用プログラムを作成する数値制御用プログラム作成装置を動作させるための数値制御工作プログラムであって、
コンピュータを、
前記数値制御装置の処理時間を示すブロック処理時間、前記数値制御装置の加工速度を指定する指令速度、前記目標曲線における曲率半径、および前記目標曲線を線分近似するための弦誤差の複数のパラメータの間の関係を記憶する記憶手段と、
前記数値制御装置が前記数値制御工作機械を制御する上での前記弦誤差の条件に基づき、前記複数のパラメータの間の関係を用いて目標弦誤差を算出する算出手段と、
前記目標弦誤差に基づいて前記目標曲線に対する近似線分を作成するプログラム作成手段と、
として機能させるための数値制御工作プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御用プログラム作成装置、数値制御工作システムおよび数値制御工作プログラムに関し、特に、工作物と工具とを相対運動させることによって目標曲線に沿った加工を行う数値制御工作機械を制御する数値制御装置に指令するためのプログラムを作成する数値制御用プログラム作成装置、数値制御工作システムおよび数値制御工作プログラムに関する。
【背景技術】
【０００２】
数値制御工作機械の主要な機能は、工作物（加工対象物、ワーク）を所望の精度内でできるだけ短時間に加工する高速高精度加工である。また、数値制御用プログラム作成装置（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｍａｎｕｆａｃｔｕｒｉｎｇ：ＣＡＭ）の重要な機能は高速高精度加工を行うためのプログラム（数値制御用プログラム）を作成して数値制御装置に指令することである。
【０００３】
加工形状が曲線である場合には、数値制御用プログラム作成装置は曲線加工のためのプログラムを作成する。曲線加工を行う場合、目標曲線からの最大距離が設定された弦誤差（許容弦誤差）となるよう近似した微小線分でプログラムを作成することが通常行われる。
【０００４】
上記の微小線分プログラムを作成する従来技術として特許文献１に開示されたファイルコンバータ装置が知られている。特許文献１に開示されたファイルコンバータ装置では、目標曲線をＮＵＲＢＳ（Ｎｏｎ  Ｕｎｉｆｏｒｍ  Ｒａｔｉｏｎａｌ  Ｂ−Ｓｐｌｉｎｅ）曲線とし、そのＮＵＲＢＳ曲線に対して設定された弦誤差（ε）以下でかつできるだけεに近い距離となる微小線分を作成し、Ｇ０１（直線補間指令）による直線補間プログラムを作成する。
【０００５】
高精度加工のためには弦誤差を小さくし、より小さな微小線分のプログラムを作成することが望ましい。しかしながら、数値制御装置がプログラムの１ブロックを読み込んで解析するには一定の時間（以下、「ブロック処理時間」）が必要である。従って、そのブロック処理時間よりも高速に１ブロックを読み出して解析する必要があるような、過剰に小さな微小線分のプログラムが指令されると、指令速度通りの加工速度が出ない、あるいは加工速度がふらついて加工面が荒くなるなどの問題が発生する。そのため、設定する弦誤差を過剰に小さくすることはできない。この問題に対しては、一定の余裕を見込んで大きめの弦誤差を設定することも考えられるが、この場合は意図する加工精度が達成できなくなる可能性がある。
【０００６】
上記ブロック処理時間に関連する従来技術として、特許文献２に開示された送り速度クランプ方式が知られている。特許文献２に開示された送り速度クランプ方式では、ブロック処理時間に基づいて指令速度をクランプしている。しかしながら、特許文献２に開示された送り速度クランプ方式では所望の元の指令速度に対してクランプするため、高速加工の観点からは望ましくない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開第ＷＯ９９／６１９６２号公報
【特許文献２】特開平６−９５７２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、以上のような背景に鑑みてなされたものであり、数値制御工作機械において、より高速度でかつ高精度な加工が実現される数値制御用プログラムを作成することが可能な数値制御用プログラム作成装置、数値制御工作システム、および数値制御工作プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した目的を達成するために、請求項１に記載の数値制御用プログラム作成装置は、目標曲線に沿った加工を行う数値制御工作機械を制御する数値制御装置に対する指令を示す数値制御用プログラムを作成する数値制御用プログラム作成装置であって、前記数値制御装置の処理時間を示すブロック処理時間、前記数値制御装置の加工速度を指定する指令速度、前記目標曲線における曲率半径、および前記目標曲線を線分近似するための弦誤差の複数のパラメータの間の関係を記憶する記憶手段と、前記数値制御装置が前記数値制御工作機械を制御する上での前記弦誤差の条件に基づき、前記複数のパラメータの間の関係を用いて目標弦誤差を算出する算出手段と、前記目標弦誤差に基づいて前記目標曲線に対する近似線分を作成するプログラム作成手段と、を含むものである。
【００１０】
また、請求項２に記載の発明は、請求項１に記載の発明において、複数のパラメータの間の関係が前記ブロック処理時間、前記指令速度、前記曲率半径、および前記弦誤差の間の関係を示す弦誤差曲面であるものである。
【００１１】
また、請求項３に記載の発明は、請求項２に記載の発明において、前記弦誤差の条件が、前記弦誤差曲面上の点を指定する条件であるものである。
【００１２】
また、請求項４に記載の発明は、請求項２に記載の発明において、前記弦誤差の条件が、前記弦誤差曲面の近傍の点を指定する条件であるものである。
【００１３】
また、請求項５に記載の発明は、請求項４に記載の発明において、前記算出手段は、前記ブロック処理時間、前記指令速度、前記曲率半径、および前記弦誤差のいずれかに１より大きい補正係数を乗じて前記目標弦誤差を算出するものである。
【００１４】
また、請求項６に記載の発明は、請求項１に記載の発明において、前記複数のパラメータの間の関係が、前記指令速度および前記曲率半径を変数とする前記弦誤差の関数であり、前記算出手段は、前記目標曲線における前記指令速度および前記曲率半径の組合せに対する前記弦誤差の最大値を前記弦誤差の関数を用いて演算し、前記弦誤差の最大値を用いて前記目標弦誤差を算出するものである。
【００１５】
また、請求項７に記載の発明は、請求項１に記載の発明において、前記複数のパラメータの間の関係が、前記指令速度および前記曲率半径を変数とする前記弦誤差の関数であり、前記算出手段は、前記目標曲線における前記指令速度の最大値および前記曲率半径の最小値を演算し、前記指令速度の最大値および前記曲率半径の最小値を用いて弦誤差の関数に基づいて前記目標弦誤差を算出するものである。
【００１６】
また、請求項８に記載の発明は、請求項７に記載の発明において、前記弦誤差の関数が、前記指令速度および前記曲率半径で表された法線加速度の関数であり、前記算出手段は、前記目標曲線における前記法線加速度の最大値を演算し、前記法線加速度の最大値を用いて法線加速度の関数に基づいて前記目標弦誤差を算出するものである。
【００１７】
また、請求項９に記載の発明は、請求項１から請求項８のいずれか１項に記載の発明において、前記算出手段は、前記目標弦誤差に最小値を設定し、算出された目標弦誤差が前記最小値未満となった場合には前記最小値を前記目標弦誤差として算出するものである。
【００１８】
上述した目的を達成するために、請求項１０に記載の数値制御工作システムは、請求項１から請求項９のいずれか１項に記載の数値制御用プログラム作成装置と、目標曲線に沿った加工を行う数値制御工作機械と、前記数値制御用プログラム作成装置で作成されたプログラムに基づいて前記数値制御工作機械を制御する数値制御装置と、を含むものである。
【００１９】
上述した目的を達成するために、請求項１１に記載の数値制御工作プログラムは、目標曲線に沿った加工を行う数値制御工作機械を制御する数値制御装置に対する指令を示す数値制御用プログラムを作成する数値制御用プログラム作成装置を動作させるための数値制御工作プログラムであって、コンピュータを、前記数値制御装置の処理時間を示すブロック処理時間、前記数値制御装置の加工速度を指定する指令速度、前記目標曲線における曲率半径、および前記目標曲線を線分近似するための弦誤差の複数のパラメータの間の関係を記憶する記憶手段と、前記数値制御装置が前記数値制御工作機械を制御する上での前記弦誤差の条件に基づき、前記複数のパラメータの間の関係を用いて目標弦誤差を算出する算出手段と、前記目標弦誤差に基づいて前記目標曲線に対する近似線分を作成するプログラム作成手段と、として機能させるためのものである。
【発明の効果】
【００２０】
本発明によれば、数値制御工作機械において、より高速度でかつ高精度な加工が実現される数値制御用プログラムを作成することが可能な数値制御用プログラム作成装置、数値制御工作システム、および数値制御工作プログラムを提供することが可能となる。
【図面の簡単な説明】
【００２１】
【図１】第１の実施の形態、第２の実施の形態、および第３の実施の形態に係る数値制御用プログラム作成装置を含む数値制御工作システムの構成の一例を示すブロック図である。
【図２】ブロック処理時間（Ｔｂ）を求めるブログラムを説明する図である。
【図３】指令速度Ｆと実速度Ｖｍとの関係の一例を示すグラフである。
【図４】指令速度Ｆおよび曲率半径ｒと弦誤差Ｃｅとの関係を表す弦誤差曲面を示す図である。
【図５】目標曲線Ｐ（ｓ）において曲率半径を求める例を説明する図である。
【図６】曲率半径ｒ、弦の線分長Ｌｂ、弦誤差Ｃｅ、および角度θの関係を説明する図である。
【図７】目標曲線Ｐ（ｓ）に対する数値制御工作プログラムの処理の流れを示すフローチャートである。
【図８】目標曲線Ｐ（ｓ）に対する数値制御用プログラムの作成を説明する図である。
【図９】本発明の実施例の結果を示すグラフである。
【図１０】本発明の実施例の結果における誤差と速度波形を示す図である。
【図１１】指令線分のコーナにおける方向変化角と減速との関係を説明する図である。
【図１２】第４の実施の形態および第５の実施の形態に係る数値制御用プログラム作成装置の構成の一例を示すブロック図である。
【図１３】第４の実施の形態における指令速度と曲率半径を説明する図である。
【発明を実施するための形態】
【００２２】
以下、図面を参照して、本発明を実施するための形態について詳細に説明する。なお、以下の実施の形態は特許請求の範囲に係る発明を限定するものではない。また、実施の形態の中で説明されている特徴の組合せの全てが発明の解決手段に必須であるとは限らない。
【００２３】
［第１の実施の形態］
図１から図１１を参照して、本実施の形態に係る数値制御用プログラム作成装置、数値制御工作システムおよび数値制御工作プログラムについて説明する。
【００２４】
図１に示すように、本実施の形態に係る数値制御用プログラム作成装置１０は、弦誤差曲面作成手段１２、プログラム用弦誤差作成手段１４、およびプログラム作成手段１６を含んで構成されている。数値制御用プログラム作成装置１０は数値制御装置を介して数値制御工作機械２０に接続されており、数値制御用プログラム作成装置１０、数値制御装置、および数値制御工作機械２０によって、本実施の形態に係る数値制御工作システム１が構成されている。なお、簡略化のため、図１では数値制御装置は数値制御工作機械２０に含まれ、一体的に構成している。
【００２５】
数値制御用プログラム作成装置１０は、図１に示すように指令速度Ｆ、目標曲線Ｐ（ｓ）、およびブロック処理時間Ｔｂを入力とし、数値制御用プログラムを出力する。そして、出力された数値制御用プログラムは、指令として数値制御装置（数値制御工作機械２０）に送られる。すなわち、本実施の形態に係る数値制御用プログラム作成装置１０は、いわゆるＣＡＭとして構成されている。
【００２６】
指令速度Ｆは、工作物に対する工具の送り速度（相対速度）である。目標曲線Ｐ（ｓ）が与えられた場合の指令速度Ｆは、従来知られた方法により数値制御用プログラム作成装置１０に対して設定される。あるいは、数値制御工作システム１のオペレータ等が指令速度Ｆを入力するようにしてもよい。あるいは、数値制御用プログラム作成装置１０（ＣＡＭ）には、工作物の材質や硬さ、工具の径や刃数などの諸条件を入力すると適切な指令速度Ｆ（送り速度）を出力する機能をもったものがある。その場合は、図１の指令速度Ｆは数値制御用プログラム作成装置１０（ＣＡＭ）の中で作成される。そのような機能によって指令速度Ｆを取得てもよいし、あるいはプログラマやオペレータ等が適切な指令速度Ｆを入力してもよい。以上のようにして目標曲線Ｐ（ｓ）に対する指令速度Ｆが指令される。
【００２７】
目標曲線Ｐ（ｓ）は、工作物に対する工作内容が決まると該工作内容に対応して与えられる（決定される）。あるいは、目標曲線Ｐ（ｓ）は数値制御用プログラム作成装置１０（ＣＡＭ）において目標加工形状から作成される。ここで、ｓは曲線上の距離であり、関数Ｐ（ｓ）は距離ｓに対する加工曲線を示している。また、目標曲線Ｐ（ｓ）は３次元ベクトルであり、Ｐ（ｓ）＝（Ｐｘ（ｓ）、Ｐｙ（ｓ）、Ｐｚ（ｓ））のように表記される。なお、目標曲線Ｐ（ｓ）の時数は３次元に限られず、４次元以上の高次元としてもよい。また、目標曲線Ｐを関数として表現する変数は距離ｓに限られず、時間ｔなど他の変数による関数としてもよい。
【００２８】
ブロック処理時間Ｔｂは、数値制御装置が１ブロックを読み出して解析する時間である。本実施の形態では、後述するように、このブロック処理時間Ｔｂは予め測定しておく。
【００２９】
弦誤差曲面作成手段１２は、指令速度Ｆ、ブロック処理時間Ｔｂ、および目標曲線Ｐ（ｓ）から求められる曲率半径ｒを用いて後述する弦誤差曲面Ｓｃを作成する。作成された弦誤差曲面Ｓｃは、数値制御用プログラム作成装置１０が備える図示しないＲＯＭ等の記憶手段に記憶させてもよい。プログラム用弦誤差作成手段１４は、指令速度Ｆ、曲率半径ｒ、および弦誤差曲面Ｓｃを用いてプログラム用弦誤差Ｃｅｐ（本発明に係る「目標弦誤差」に相当）を算出する。プログラム作成手段１６は、プログラム用弦誤差Ｃｅｐと目標曲線Ｐ（ｓ）を用いて、数値制御用プログラムを作成する。プログラム作成手段１６における数値制御用プログラムの作成は、従来知られた方法で行えばよい。なお、以下の説明においては、弦誤差一般を記号Ｃｅで表記し、プログラム用弦誤差を記号Ｃｅｐで表記し区別することとする。
【００３０】
次に、ブロック処理時間Ｔｂを取得する方法について説明する。ブロック処理時間Ｔｂの取得方法の一例として、たとえばタイマー割り込みによる方法が知られている（例えば、特許文献２）。しかしながら、タイマー割り込みによる方法では数値制御装置のソフトウェアを変更する必要がある。そこで、本実施の形態ではより簡便な方法である、微小直線移動指令を繰り返し、その間の時間を測定して実速度からブロック処理時間Ｔｂを得る方法を用いている。
【００３１】
図２は、ブロック処理時間Ｔｂを算出するためのプログラム（以下、「ブロック処理時間算出プログラム」）の一例を示している。図２に示すように、ブロック処理時間算出プログラムはメインプログラム（ＭＡＩＮ−ＰＲＯＧ）とサブプログラムＳＵＢ−ＰＲＯＧ（９９９）を含んで構成されている。図２の例では、メインプログラムはサブプログラムを５０回呼び出している。
【００３２】
サブプログラムによる指令は、０．１ｍｍの移動量を持つブロックを１００回実行することにより１０ｍｍ移動する指令である。従って、メインプログラムは、指令速度「Ｆ＊＊」（任意の値）で５００ｍｍ移動することを指令するプログラムとなっている（１０ｍｍ×５０回＝５００ｍｍ）。メインプログラムは、マクロ変数「＃３００１」によってその間の時間Ｔｍ（ｍｉｎ：分）を測定する。以上から、実速度は５００／Ｔｍ（ｍｍ／ｍｉｎ）で求められる。
【００３３】
メインプログラムにおける「Ｇ５３」は、移動が終了した後マクロ変数「＃３００１」を読むためにプログラムの読み込みを一旦停止する指令である。指令速度Ｆが十分小さければ、メインプログラムはほぼ指令速度Ｆ通りの速度で実行される。しかしながら、指令速度Ｆが大きくなるとブロック処理時間Ｔｂが間に合わなくなり実速度は頭打ちとなる。
その限界からブロック処理時間Ｔｂ（ｍｓｅｃ：ｍｉｌｌｉｓｅｃｏｎｄ）を求めることができる。
【００３４】
図３は、以上のようにして求めた指令速度Ｆと実速度Ｖｍとの関係の一例を示している。すなわち、図３はいくつかの指令速度Ｆに対する実速度Ｖｍの変化を示すグラフである。図３から、実速度Ｖｍは１５００ｍｍ／ｍｉｎが限界であることがわかる。この限界の実速度１５００ｍｍ／ｍｉｎを用い、以下に示す（式１）によってブロック処理時間Ｔｂを算出すると、Ｔｂ＝４ｍｓｅｃとなる。
2019148931.tif 000003
【００３５】
なお、本例では０．１ｍｍの移動ブロックを５０００回指令してマクロ変数でその間の時間を測定して実速度Ｖｍを得たが、微小な移動指令は０．１ｍｍに限られず適宜な値を選択してよい。また、加工時間を計数する場合にもマクロ変数を用いることなく、例えばストップウォッチなどで時間を測定してもよい。さらに、ブロック処理時間Ｔｂについては、本実施の形態ではＴｂ＝４ｍｓｅｃの場合を例示して説明するが、ブロック処理時間Ｔｂは数値制御装置によって異なるし、厳密には指令内容（軸数、直線指令か円弧指令か、工具径補正ありかなしか、など）によっても異なってくる。しかしながら、所定の数値制御装置において固定軸数の微小直線指令を行う場合は、ブロック処理時間Ｔｂは一定と考えられるので、本実施の形態ではブロック処理時間Ｔｂを定数として取り扱う。
【００３６】
次に、弦誤差曲面作成手段１２について説明する。弦誤差曲面作成手段１２は、曲率半径ｒ、指令速度Ｆ、およびブロック処理時間Ｔｂと弦誤差Ｃｅとの関係を示す弦誤差曲面Ｓｃを作成する部位である。上述したように、ある数値制御装置において、微小線分指令に対するブロック処理時間Ｔｂは一定と考えてよい。そこで本実施の形態に係る弦誤差曲面Ｓｃは、ブロック処理時間Ｔｂをある値に固定した場合の、曲率半径ｒ、指令速度Ｆおよび弦誤差Ｃｅの関係を示している。ブロック処理時間Ｔｂを固定した場合の、曲率半径ｒ、指令速度Ｆおよび弦誤差Ｃｅの関係は、後述するように所定の曲面で表される。
【００３７】
以下、弦誤差曲面Ｓｃの作成方法について説明するが、まず、図６を参照して弦誤差について説明する。図６は、目標曲線Ｐを線分で近似する場合の近似方法を示している。図６において、円弧で近似した曲率半径ｒの曲線に対して線分長Ｌｂの弦を作成したときの弦に対応する角度をθとした場合、弦誤差Ｃｅ（ｍｍ）は図６のように定義される。その際、指令速度Ｆ（ｍｍ／ｍｉｎ）は、ブロック処理時間Ｔｂ（ｍｓｅｃ）によって、それ以上指令を上げても実速度は大きくならないことを意味する（式２）の制限を受ける。
2019148931.tif 000004
【００３８】
（式２）からθを消去すると、以下に示す（式３）を得る。
2019148931.tif 000005
（式３）は不等式であるが、これを（式４）のように等式としたものは曲面を表し、この曲面を弦誤差曲面Ｓｃとよぶ。
2019148931.tif 000006
つまり、本実施の形態に係る弦誤差曲面Ｓｃは、あるブロック処理時間Ｔｂが与えられた場合の、曲率半径ｒ、指令速度Ｆ、弦誤差Ｃｅの複数のパラメータの間の関係を示している。図示しない記憶手段はこの複数のパラメータの間の関係を記憶する。記憶手段がこのような複数のパラメータの間の関係を記憶することについては、後述の実施の形態でも同様である。
【００３９】
図４は、（式４）に基づき弦誤差曲面作成手段１２によって作成された弦誤差曲面Ｓｃの一例を示している。図４では、ブロック処理時間ＴｂをＴｂ＝４ｍｓｅｃとしている。
また図４では、Ｘ軸を指令速度Ｆ（ｍｍ／ｍｉｎ）、Ｙ軸を曲率半径ｒ（ｍｍ）、Ｚ軸を弦誤差Ｃｅ（ｍｍ）としている。なお、（式３）で表される不等式は、弦誤差Ｃｅが弦誤差曲面ＳｃのＺ軸方向の上側の領域に存在する必要があることを示している。
【００４０】
次に、図５を参照して、目標曲線Ｐ（ｓ）から局所的な曲率半径ｒを求める方法について説明する。いま、距離ｓを変数とする目標曲線Ｐ（ｓ）が図５に示すように与えられたものとする。目標曲線Ｐ（ｓ）は、上述したように３次元ベクトルＰ（ｓ）＝（Ｐｘ（ｓ）、Ｐｙ（ｓ）、Ｐｚ（ｓ））である。この場合、曲率半径ｒは、曲線上のある位置Ｐ（ｓ０）から微小な曲線上の距離Δｓ（以下、「微小距離Δｓ」だけ離れた位置Ｐ（ｓ１）（ｓ１＝ｓ０＋Δｓ）との間の曲率半径から求められる。ここで、Δｓは曲率半径ｒが得られる程度の微小距離であり、曲率等に応じて可変としてもよい。具体的には、Ｐ（ｓｍ）をＰ（ｓ０）とＰ（ｓ１）との中点、つまりＰ（ｓｍ）＝Ｐ（（ｓ０＋ｓ１）／２）とする。このとき、Ｐ（ｓ０）、Ｐ（ｓｍ）、Ｐ（ｓ１）の３点を用いて円弧近似を行い、その円弧の半径を求める曲率半径ｒとする。以上の手順から曲率半径ｒが求められるが、曲率半径ｒを求める方法は上記に限られず、公知の任意の方法を用いてもよい。
【００４１】
次に、プログラム用弦誤差作成手段１４の動作について説明する。本実施の形態に係るプログラム用弦誤差Ｃｅｐは、数値制御用プログラム作成装置１０においてプログラムを作成する際に用いる弦誤差をいう。すなわち、プログラム用弦誤差作成手段１４は、上記方法によって算出した曲率半径ｒ、予め設定した指令速度Ｆ、予め測定したブロック処理時間Ｔｂに対して（式３）を充足する極力小さい、または十分小さい弦誤差Ｃｅを算出する。算出された弦誤差Ｃｅを、プログラム用弦誤差Ｃｅｐとする。本実施の形態においては、このように弦誤差Ｃｅを算出しプログラム用弦誤差Ｃｅｐとする手段が目標弦誤差を算出する算出手段である。
【００４２】
次に、プログラム作成手段１６が、上記で求めたプログラム用弦誤差Ｃｅｐを用いて数値制御装置を制御するためのプログラム（指令）を作成する。プログラムの具体的な作成方法は従来知られている方法により作成されるので、詳細な説明を省略する（例えば、特許文献１参照）。
【００４３】
次に、図７および図８を参照して、弦誤差曲面作成手段１２、プログラム用弦誤差作成手段１４、プログラム作成手段１６において実行される、数値制御用プログラム作成処理について説明する。図７および図８は、本実施の形態に係る数値制御用プログラム作成プログラム（以下、「数値制御工作プログラム」）の流れを示すフローチャートである。数値制御工作プログラムは、数値制御用プログラム作成装置１０の図示しないＲＯＭ等の記憶手段に記憶され、ＣＰＵによって読み出され、ＲＡＭ等の記憶手段に展開して実行される。図７および図８では、図８に示す目標曲線Ｐ（ｓ）において、位置Ｐ（ｓｓ）からＰ（ｓｅ）までのプログラムを作成する場合を例示して説明する。
【００４４】
ステップＳ１０１では、まず微小距離Δｓとして、Ｐ（ｓ）上で局所的な曲率半径ｒが求められるほどの（つまり、目標曲線Ｐ（ｓ）の一部を円弧とする略扇形が形成されるほどの）長さを設定する。すなわち、微小距離Δｓは、距離ｓｓとｓｅとの間の長さに対して十分小さく設定される。最終フラグを０に設定する。Ｐ（ｓｓ）を第１プログラム指令点とする。ｓ０＝ｓｓ、ｓ１＝ｓ０＋Δｓとする。
【００４５】
次のステップＳ１０２では、ブロック処理時間Ｔｂ、曲率半径ｒ、指令速度Ｆおよび弦誤差Ｃｅの関係を表す式（４）を用いて弦誤差曲面Ｓｃを求める。ステップ１０２における処理が、弦誤差曲面作成手段１２における処理である。
【００４６】
次のＳ１０３では、Ｐ（ｓ０）とＰ（ｓ１）との間の曲率半径ｒを、例えば上述した方法によって求める。次に、曲率半径ｒ、指令速度Ｆに対して（式３）を満たすできるだけ小さい、または十分小さい弦誤差Ｃｅを求めプログラム用弦誤差Ｃｅｐとする。ステップ１０３における処理が、プログラム用弦誤差作成手段１４における処理である。ここで、できるだけ小さい弦誤差Ｃｅとは、例えば式（４）を満たすＣｅであり、本実施の形態ではこの式（４）を満たす弦誤差Ｃｅをプログラム用弦誤差Ｃｅｐとする。これが、本実施の形態における弦誤差の条件である。一方、十分小さい弦誤差Ｃｅとは、式（４）に対して＋Ｚ方向の近傍に位置する弦誤差Ｃｅであり、具体例については後述する。
【００４７】
次のステップＳ１０４では、図８に示すように、プログラム用弦誤差Ｃｅｐに基づいてＰ（ｓ０）からＰ（ｓ１）までの間のプログラム指令点Ｐ（ｓ０１）、Ｐ（ｓ０２）、・・・、Ｐ（ｓ０ｎ）を求め、作成対象のプログラムに追加する。ステップＳ１０４における処理が、プログラム作成手段１６における処理である。なお、プログラム作成手段１６における処理には、従来技術に係るプログラムの作成も含まれるので、ステップＳ１０４における処理は、プログラム作成手段１６における処理の一部である。
【００４８】
次のＳ１０５では、最終フラグが１か否か判定する。当該判定が否定判定となった場合にはステップＳ１０６に移行するとともに、肯定判定となった場合には本数値制御工作プログラムを終了する。
【００４９】
次のステップＳ１０６では、ｓ０ｎ→ｓ０、ｓ０＋Δｓ→ｓ１として、次の区間Ｐ（ｓ０）、Ｐ（ｓ１）の準備をする。
【００５０】
次のステップＳ１０７では、ｓ１＞ｓｅであるか否か判定する。当該判定が否定判定となった場合にはステップＳ１０２に戻るとともに、肯定判定となった場合にはステップＳ１０８に移行する。
【００５１】
次のステップＳ１０８では、次回が最終区間となるので、ｓｅ→ｓ１、最終フラグ＝１とした後、ステップＳ１０２に戻る。
【００５２】
次に、図９および図１０を参照して、実施例の一例について説明する。図９および図１０に示す実施例は、目標曲線Ｐ（ｓ）を半径５０ｍｍの円の円周全体とし、指令速度ＦをＦ＝１００００ｍｍ／ｍｉｎとし、ブロック処理時間ＴｂをＴｂ＝４ｍｓｅｃとしている。また、理解の容易さの観点から、本実施例では、３次元曲面である弦誤差曲面Ｓｃ（図４）において曲率半径ｒをある値に固定し、図４に示す弦誤差曲面Ｓｃにおける指令速度Ｆと弦誤差Ｃｅの関係を示す２次元グラフで考える。図９は、目標曲線Ｐ（ｓ）の半径を５０ｍｍとした場合の指令速度Ｆと弦誤差Ｃｅとの関係を示している。つまり、図９は図４において曲率半径ｒをｒ＝５０ｍｍとした場合の断面を示している。図９に「弦誤差曲面」として示す曲線はこの断面を示している。
【００５３】
また、本実施例では、上記の条件で作成したプログラムを用いて数値制御工作機械２０を動作させた場合の、最大誤差Ｅｍａｘ（ｍｍ）と実速度Ｖｍ（ｍｍ／ｍｉｎ）を測定した。ここで、本実施の形態でいう最大誤差Ｅｍａｘとは目標曲線Ｐ（ｓ）と実軌跡の最大誤差であり、実速度Ｖｍは実際の運動における平均速度である。最大誤差Ｅｍａｘおよび実速度Ｖｍは、交差格子エンコーダによって実軌跡をパソコンに取り込みそのデータを解析することによって取得した。図９では、横軸を指令速度Ｆと実速度Ｖｍとし、縦軸を弦誤差Ｃｅと最大誤差Ｅｍａｘとしている。つまり、図９では、（Ｆ、Ｃｅ）と（Ｖｍ、Ｅｍａｘ）の座標系を重ねて表示している。
【００５４】
本実施例では、本実施の形態を適用しない比較例であるケース１と、本実施の形態を適用したケース２の加工条件を設定し、両者を比較した。プログラム用弦誤差Ｃｅｐは、ケース１で０．０１ｍｍ、ケース２で０．００１１１ｍｍとした。各ケースの加工条件を整理すると、以下のようになる。
＜ケース１＞
プログラム用弦誤差Ｃｅｐ＝０．０１ｍｍ（約１５７角形）、指令速度Ｆ＝１００００ｍｍ／ｍｉｎ、曲率半径ｒ＝５０ｍｍ、ブロック処理時間Ｔｂ＝４ｍｓｅｃ
＜ケース２＞
プログラム用弦誤差Ｃｅｐ＝０．００１１１ｍｍ（約４７１角形）、指令速度Ｆ＝１００００ｍｍ／ｍｉｎ、曲率半径ｒ＝５０ｍｍ、ブロック処理時間Ｔｂ＝４ｍｓｅｃ
【００５５】
ここで、ケース１の０．０１ｍｍというプログラム用弦誤差Ｃｅｐは、従来の加工においてよく設定される数値である。図９では、この点を「ケース１指令」と表記された白抜き丸で示している。一方、ケース２のプログラム用弦誤差０．００１１１ｍｍは、この点を「ケース２指令」と表記された白抜き丸で示している。すなわち、ケース１のプログラム用弦誤差Ｃｅｐは、（式３）を充足しているが弦誤差曲面Ｓｃから離間している。つまり、ブロック処理時間による制限（（式３）の不等式）の観点からかなり余裕を見込んだプログラム用弦誤差Ｃｅｐとなっている。これに対し、ケース２のプログラム用弦誤差Ｃｅｐは、弦誤差曲面Ｓｃ上の点となっている（すなわち、（式４）を満たしている）。つまり、（式３）を充足しつつ極力小さなプログラム用弦誤差Ｃｅｐとなっている。
【００５６】
ここで、プログラム用弦誤差Ｃｅｐと、目標曲線Ｐ（ｓ）である半径５０ｍｍの円との関係について説明する。プログラム用弦誤差Ｃｅｐと、目標曲線Ｐ（ｓ）の半径が定まると、実際の加工軌跡が多角形として定まる。具体的には、プログラム用弦誤差ＣｅｐをＣｅｐ＝０．０１ｍｍとした場合はこの多角形がおよそ１５７角形となり、プログラム用弦誤差ＣｅｐをＣｅｐ＝０．００１１１ｍｍとした場合はこの多角形がおよそ４７１角形となる。つまり、ケース１よりケース２の方がより加工精度が高くなることが想定される。
【００５７】
以上の条件の下、それぞれのケースについて数値制御工作機械２０を動作させた。図９において、「ケース１結果」と表記された黒四角がケース１による加工の結果を示し、「ケース２結果」と表記された黒四角がケース２による加工の結果を示している。図９から、結果を整理すると以下のようになる。
＜ケース１＞
実速度Ｖｍ＝７８４７ｍｍ／ｍｉｎ、最大誤差Ｅｍａｘ＝０．０１６８ｍｍ
＜ケース２＞
実速度Ｖｍ＝９３６９ｍｍ／ｍｉｎ、最大誤差Ｅｍａｘ＝０．０１１９ｍｍ
【００５８】
すなわち、ケース１の結果に対してケース２の結果は、実速度Ｖｍが速くなり、最大誤差Ｅｍａｘが小さくなっている。実速度は、ケース１の実速度Ｖｍ＝７８４７ｍｍ／ｍｉｎから、ケース２の実速度Ｖｍ＝９３６９ｍｍ／ｍｉｎと、より高速度になっている。つまり、ケース１のプログラム用弦誤差Ｃｅｐ＝０．０１ｍｍから、ケース２ではプログラム用弦誤差Ｃｅｐ＝０．００１１１ｍｍとすることにより、より高速高精度となった。
【００５９】
次に、図１０を参照して、本実施例の結果についてより詳細に説明する。図１０（ａ）はケース１の結果を、図１０（ｂ）はケース２の結果を、各々示している。また、図１０（ａ）、（ｂ）の各々において、＜１＞で示す図は誤差の軌跡を、＜２＞は実速度Ｖｍ（図１０では「合成速度」と表記）の波形を示している。＜１＞では、外側の円が目標曲線Ｐ（ｓ）を示しており、その内側の曲線が実軌跡における誤差を拡大したものを示している。
【００６０】
図１０（ａ）の＜１＞と図１０（ｂ）＜１＞との比較から、ケース２の誤差のほうがケース１の誤差より小さいことがわかる。また、図１０（ａ）＜２＞から、ケース１の速度波形では、指令速度Ｆ＝１００００ｍｍ／ｍｉｎに到達していない。これは、多角形の線分間のコーナにおける方向変化角が大きいため各コーナで減速が発生しているためである。つまり、図１０（ａ）＜２＞の速度波形には表れない程度の減速加速を繰り返しているため指令速度Ｆ＝１００００ｍｍ／ｍｉｎに到達しない。これに対し、図１０（ｂ）＜２＞に示すように、ケース２ではその方向変化角が小さいためあまり減速せず、指令速度Ｆ＝１００００ｍｍ／ｍｉｎに到達している。その結果、ケース１の実速度よりケース２の実速度の方が速くなるのである。なお、図１０（ａ）＜２＞において４か所で速度が上がっているのは、移動方向が４５度（あるいは１３５度）となる場合２軸の合成速度として加速されるという特殊な理由から生じたものである。
【００６１】
図１１を参照して、上記方向変化角と実速度との関係について説明する。図１１は、目標曲線Ｐに対してプログラム用弦誤差Ｃｅｐによって指令線分を作成した時、指令線分のコーナＬｃで方向変化が発生した状態を示している。図１１に示すように、指令線分のコーナＬｃにおける方向変化角が大きいと、数値制御装置はコーナで発生する誤差を小さくするように減速させる。一方、方向変化角が小さいとそれほどの減速を行わない。このことによって、方向変化角による実速度の差が発生する。
【００６２】
以上詳述したように、本実施の形態に係る数値制御用プログラム作成装置、数値制御工作システムおよび数値制御工作プログラムによれば、より高速度でかつ高精度な加工が実現される数値制御用プログラムを作成することが可能となる。プログラム用弦誤差Ｃｅｐを弦誤差曲面Ｓｃに基づいてできるだけ小さくすることによってより高速度、高精度となる理由を以下に整理する。
（１）プログラム用弦誤差Ｃｅｐを小さくすることにより、線分間のコーナにおける方向変化角が小さくなり減速が少なくなるため、より高速となる。
（２）プログラム用弦誤差Ｃｅｐを小さくすることにより目標曲線との誤差が小さくなり、より高精度となる。
さらに、本実施の形態では、上記のようにプログラム用弦誤差Ｃｅｐを小さくする場合において、式（４）で示す関係を考慮しているので、高速高精度化しつつブロック処理時間が間に合わなくなることにもならない。つまりブロック処理時間が間に合わないことによる加工速度の低下も抑制される。なお、本実施例では特定の条件における結果を示したが、他のさまざまな条件で行った実施例においても弦誤差曲面Ｓｃに基づいてプログラム用弦誤差Ｃｅｐをできるだけ小さくすることによって、同様により高速度、高精度となることを確認している。
【００６３】
［第２の実施の形態］
上記実施の形態では、図７に示すステップＳ１０３において、曲率半径ｒ、指令速度Ｆに対応し（式３）を満たすできるだけ小さい、つまり（式４）を満たす弦誤差Ｃｅをプログラム用弦誤差Ｃｅｐとした。しかしながら、（式４）を満たすプログラム用弦誤差Ｃｅｐはブロック処理時間Ｔｂが間に合うかどうかの境界にあるため、場合によってはブロック処理時間Ｔｂが間に合わないことも想定される。その場合、読み込み解析処理したブロックが不足して急激な減速が生じる可能性がある。
【００６４】
そこで本実施の形態では、上記（式４）に変えて以下に示す（式５）を用いる。(式５）は、（式４）における指令速度Ｆに対して係数ｋｆを掛けたものである。
2019148931.tif 000007
ここで、ｋｆはｋｆ＞１．０で、１．０に近い値とする。(式５）に従うことは、図７に示すステップＳ１０３において、曲率半径ｒ、指令速度Ｆに対応し（式３）を満たす十分小さい弦誤差Ｃｅをプログラム用弦誤差Ｃｅｐとすることに相当する。
【００６５】
ここで、αを以下に示す（式６）のように定義する。
2019148931.tif 000008
上記αを用いて、（式５）は以下に示す（式７）のように簡略化される。
2019148931.tif 000009
弦誤差Ｃｅは小さいので（式７）を解いた２根のうち小さい方をＣｅとすると、以下に示す（式８）となる。
2019148931.tif 000010
ここで、弦誤差Ｃｅは実数であるため、ｒ２−α×Ｆ２≧０である。なお、ｋｆ＝１．０、Ｔｂ＝４ｍｓｅｃとした場合の（式８）における曲率半径ｒ、指令速度Ｆに対する弦誤差Ｃｅが図４に示す弦誤差曲面Ｓｃである。
【００６６】
ここで、（式８）において平方根部分を多項式に展開してその第２項までを採用すれば、（式９）のように近似することもできる。
2019148931.tif 000011
むろん、求められる弦誤差曲面の精度等を勘案して第３項以降を採用してもよいが、ここでは簡便のため第２項までとしている。（式９）の近似式を用いても、プログラム用弦誤差Ｃｅｐを弦誤差曲面Ｓｃ上、あるいは弦誤差曲面Ｓｃ近傍とすることができる。
【００６７】
ここで、（式８）において、例えばｋｆ＝１．１とすることは、指令速度ＦがＦ＝１００００ｍｍ／ｍｉｎであっても、実際にはＦ＝１１０００ｍｍ／ｍｉｎに対応する（式４）の弦誤差Ｃｅをプログラム用弦誤差Ｃｅｐとすることになる。あるいは、（式４）で求めた弦誤差Ｃｅに対して係数ｋｃｅをかけてプログラム用弦誤差Ｃｅｐ＝ｋｃｅ×Ｃｅとしてもよい。例えばｋｃｅ＝１．０５とすれば、（式４）から求めた弦誤差Ｃｅに対して少し大きい値をプログラム用弦誤差Ｃｅｐを採用することになる。あるいは、ｒに係数をかけるか、Ｔｂに係数をかけるようにしてもよい。さらに、係数をかけたパラメータを組み合わせてもよい。本実施の形態では、このようにしてプログラム用弦誤差Ｃｅｐを算出する。その算出する手段が目標弦誤差を算出する算出手段である。
【００６８】
換言すると、本実施の形態は、（式４）で示される曲面の近傍の弦誤差Ｃｅをプログラム用弦誤差Ｃｅｐとすることとしている。本実施の形態では、このように弦誤差曲面の近傍の弦誤差Ｃｅをプログラム用弦誤差Ｃｅｐとすることが、弦誤差の条件である。このことにより、ブロック処理時間Ｔｂが間に合わないことによって急激な減速が生じることが抑制される。プログラム用弦誤差Ｃｅｐを決定した後の処理は上記実施の形態と同様なので、詳細な説明を省略する。
【００６９】
［第３の実施の形態］
上記実施の形態では、ブロック処理時間Ｔｂ、曲率半径ｒおよび指令速度Ｆを用いてプログラム用弦誤差Ｃｅｐを求めた。これに対し、本実施の形態に係るプログラム用弦誤差作成手段１４は、あるブロック処理時間Ｔｂの数値制御装置において、目標曲線Ｐ（ｓ）における曲率半径ｒおよび指令速度Ｆの組合せに対する弦誤差Ｃｅの最大値をＣｅｍａｘとし、プログラム用弦誤差ＣｅｐをＣｅｐ＝Ｃｅｍａｘとする。つまり、目標曲線Ｐ（ｓ）における曲率半径ｒおよび指令速度Ｆの組合せに対して、Ｃｅｍａｘを以下に示す（式１０）から算出する。ここで、あるブロック処理時間Ｔｂの数値制御装置において、目標曲線Ｐ（ｓ）における曲率半径ｒおよび指令速度Ｆの組合わせに対する弦誤差Ｃｅの関係、つまり（式８）が、本実施の形態における複数のパラメータの間の関係、弦誤差の関数である。（式８）に対してｍａｘ演算を行った（式１０）によってＣｅｍａｘを算出する手段が本実施の形態における目標弦誤差を算出する算出手段である。
2019148931.tif 000012
【００７０】
（式１０）に示すＣｅｍａｘをＣｅｐとすることによって、目標曲線Ｐ（ｓ）におけるどのような曲率半径ｒおよびどのような指令速度Ｆに対してもブロック処理時間Ｔｂが間に合わなくなることのない、できるだけ小さい、または十分小さい弦誤差Ｃｅとすることができる。つまり、（式８）が示す弦誤差Ｃｅは、任意の曲率半径ｒと指令速度Ｆに対するできるだけ小さい、または十分小さい弦誤差Ｃｅである。一方、目標曲線Ｐ（ｓ）における曲率半径ｒおよび指令速度Ｆの組合せに対応させた最大のＣｅであるＣｅｍａｘを用いることにより、目標曲線Ｐ（ｓ）のどこにおいてもブロック処理時間Ｔｂが間に合わなくなることのない、できるだけ小さい、または十分小さい弦誤差Ｃｅが得られる。
【００７１】
ここで、上記実施の形態は、目標曲線における曲率半径ｒおよび指令速度Ｆに応じて変化するＣｅｐを求めていたが、本実施の形態においては、目標曲線Ｐ（ｓ）に対して求めるＣｅｐは１個の数値である。その意味から、本実施の形態は上記実施の形態より簡便である。
【００７２】
なお、本実施の形態に係る弦誤差曲面作成手段１２およびプログラム用弦誤差作成手段１４は、数値制御用プログラム作成装置１０（ＣＡＭ）の中に組み込んでもよい。あるいは、数値制御用プログラム作成装置１０から出力されたデータを各数値制御装置に合わせたプログラムとするポストプロセッサ（図示省略）の中に組み込んでもよい。さらに、数値制御用プログラム作成装置１０やポストプロセッサの外に作成してもよい。ポストプロセッサの中に組み込む、または数値制御用プログラム作成装置１０やポストプロセッサの外に作成する場合は、図１に示すプログラム作成手段１６は既存の数値制御用プログラム作成装置とすることができる。つまり、既存の数値制御用プログラム作成装置（ＣＡＭ）に対する弦誤差の設定値あるいは入力値として、求めたプログラム用弦誤差Ｃｅｐを設定あるいは入力するように構成してもよい。
【００７３】
また、（式１０）を用いたプログラム用弦誤差Ｃｅｐの算出は、プログラム作成前に目標曲線Ｐ（ｓ）をチェックして行ってもよいし、一旦既存のＣＡＭによって従来通りプログラムを作成し、その結果をチェックしてプログラム用弦誤差Ｃｅｐを算出し、算出したプログラム用弦誤差Ｃｅｐを用いて再度プログラムを作成してもよい。
【００７４】
［第４の実施の形態］
図１２を参照して、本実施の形態に係る数値制御用プログラム作成装置、数値制御工作システムおよび数値制御工作プログラムについて説明する。図１２は、本実施の形態に係る数値制御用プログラム作成装置１０Ａを示している。なお、図１２では数値制御装置および数値制御工作機械２０の図示を省略している。
【００７５】
図１２に示すように、数値制御用プログラム作成装置１０Ａは、プログラム用弦誤差作成手段１４、およびプログラム作成手段１６を含んで構成されている。つまり、数値制御用プログラム作成装置１０Ａは、数値制御用プログラム作成装置１０における弦誤差曲面作成手段１２を除いた形態である。数値制御用プログラム作成装置１０Ａでは、弦誤差曲面作成手段１２を用いる代わりに、目標曲線Ｐ（ｓ）の特徴を表す目標曲線指標Ｉｇ、およびブロック処理時間Ｔｂを用いてプログラム用弦誤差Ｃｅｐを算出し、算出したプログラム用弦誤差Ｃｅｐを用いてプログラムを作成する。
【００７６】
本実施の形態では、目標曲線指標Ｉｇを、目標曲線Ｐ（ｓ）における最小曲率半径ｒｍｉｎ、および最大指令速度Ｆｍａｘとしている。図１３を参照して、最小曲率半径ｒｍｉｎ、および最大指令速度Ｆｍａｘについて説明する。図１３に示す破線は、工作物Ｗ上の目標曲線Ｐ（ｓ）を示している。図１３において、最も小さい曲率半径がｒｍｉｎである。一方、最大指令速度Ｆｍａｘは、図１３に示すように目標曲線Ｐ（ｓ）の場所によって指令速度がＦ１、Ｆ２、Ｆ３、・・・のように変化する場合において、Ｆｍａｘ＝Ｍａｘ（Ｆ１、Ｆ２、Ｆ３、・・・）で定義される。指令速度がＦ１だけであれば、Ｆｍａｘ＝Ｍａｘ（Ｆ１）＝Ｆ１である。
【００７７】
ここで、（式８）に基づいて、以下に示す（式１１）および（式１２）が得られる。
2019148931.tif 000013
2019148931.tif 000014
【００７８】
（式１１）から、曲率半径ｒが減少するにしたがって弦誤差Ｃｅは増加することがわかる。また、（式１２）からＦが増大するにしたがって弦誤差Ｃｅは増加することがわかる。従って、目標曲線Ｐ（ｓ）における最小曲率半径をｒｍｉｎとし、最大指令速度をＦｍａｘとすると、とり得る最大の弦誤差Ｃｅである最大弦誤差Ｃｅｍａｘは、以下に示す（式１３）から算出することができる。ここで、第３の実施の形態と同様、(式８）が、本実施の形態における複数のパラメータの間の関係、弦誤差の関数である。（式８）に対してｒｍｉｎとＦｍａｘを適用した(式１３）によってＣｅｍａｘを算出する手段が、本実施の形態における目標弦誤差を算出する算出手段である。
2019148931.tif 000015
本実施の形態では、以上のようにして求められた最大弦誤差Ｃｅｍａｘをプログラム用弦誤差Ｃｅｐとしている。 
【００７９】
以上の構成を有する本実施の形態によれば、上記第３の実施の形態と同様、目標曲線Ｐ（ｓ）におけるどのような曲率半径ｒおよびどのような指令速度Ｆに対しても、ブロック処理時間Ｔｂが間に合わなくなることのない、できるだけ小さい、または十分小さいプログラム用弦誤差Ｃｅｐを求めることができる。この点は上記第３の実施の形態と同様であるが、本実施の形態では第３の実施の形態よりもより簡便にプログラム用弦誤差Ｃｅｐを求めることができる。
【００８０】
本実施の形態では、すでに取得しているブロック処理時間Ｔｂ、目標曲線Ｐ（ｓ）における最小曲率半径ｒｍｉｎおよび最大指令速度Ｆｍａｘからプログラム用弦誤差Ｃｅｐを求めるものである。そのため、本実施の形態では、上記実施の形態のように弦誤差曲面Ｓｃを求めることは不要であり、この点からも本実施の形態は上記実施の形態より簡便な形態となっている。
【００８１】
具体例を示せば、例えば、ブロック処理時間ＴｂをＴｂ＝４ｍｓｅｃ、最小曲率半径ｒｍｉｎをｒｍｉｎ＝２５ｍｍ、最大指令速度ＦｍａｘをＦｍａｘ＝１００００ｍｍ／ｍｉｎ、係数ｋｆをｋｆ＝１．１とすると、プログラム用弦誤差ＣｅｐはＣｅｐ＝Ｃｅｍａｘ＝０．００２６９ｍｍとなる。
【００８２】
図１２に示す数値制御用プログラム作成装置１０Ａにおいて、破線で囲んだ部分が実質的な入力と該入力を受けた動作部分であるが、本実施の形態は、該動作部分を数値制御用プログラム作成装置（ＣＡＭ）の中に組み込んだ形態としている。しかしながらこれに限られず、上記第３の実施の形態で説明したように、ポストプロセッサの中に組み込んでもよいし、あるいは、数値制御用プログラム作成装置やポストプロセッサの外に作成してもよい。ポストプロセッサの中に組み込む場合、または数値制御用プログラム作成装置やポストプロセッサの外に作成する場合は、図１２のプログラム作成手段は既存の数値制御用プログラム作成装置（ＣＡＭ）とすることができる。つまり、既存の数値制御用プログラム作成装置（ＣＡＭ）（プログラム作成手段１６をＣＡＭとした構成でもよい）に対する弦誤差の設定値あるいは入力値として、求めたプログラム用弦誤差Ｃｅｐを設定あるいは入力する形態とすることも可能である。
【００８３】
また、最小曲率半径ｒｍｉｎ、および最大指令速度Ｆｍａｘを求める方法は、目標曲線Ｐ（ｓ）の形状や図面から目視で判断してもよい。あるいは、一旦既存の数値制御用プログラム作成装置によって従来例に従ったプログラムを作成し、作成したプログラムをチェックして求め、（式１３）で求めたプログラム用弦誤差Ｃｅｐによって再度プログラムを作成してもよい。最小曲率半径ｒｍｉｎについては、図５に関する説明で述べたような方法で求めてもよい。以上の求め方の具体的な手順は従来知られたものなので、詳細な説明を省略する。
【００８４】
［第５の実施の形態］
本実施の形態に係る数値制御用プログラム作成装置の構成は、上記第４の実施の形態に係る数値制御用プログラム作成装置１０Ａと同様なので、必要な場合は図１２を参照することとし、詳細な説明を省略する。本実施の形態に係る数値制御用プログラム作成装置も、ブロック処理時間Ｔｂ、および目標曲線の特徴を表す目標曲線指標Ｉｇを用いてプログラム用弦誤差Ｃｅｐを求め、プログラムを作成する。しかしながら、本実施の形態では、目標曲線Ｐ（ｓ）における曲率半径ｒおよび指令速度Ｆの代わりに、これらのパラメータによって記述される法線加速度Ａｎ＝Ｆ２／ｒに着目し、その最大値Ａｎｍａｘを目標曲線の特徴を表す目標曲線指標Ｉｇとしている。
【００８５】
すなわち、（式９）においてＡｎ＝Ｆ２／ｒとおくと、以下に示す（式１４）となる。これが、本実施の形態における弦誤差の関数である。
2019148931.tif 000016
【００８６】
従って、目標曲線Ｐ（ｓ）における法線加速度Ａｎの最大値を、最大法線加速度Ａｎｍａｘとすると、とり得る最大のＣｅであるＣｅｍａｘは、以下に示す（式１５）で表すことができる。本実施の形態では、このＣｅｍａｘをプログラム用弦誤差Ｃｅｐとする。本実施の形態においては、（式１５）からＣｅｍａｘを算出する手段が目標弦誤差を算出する算出手段である。
2019148931.tif 000017
【００８７】
（式１５）を用いて算出される最大弦誤差Ｃｅｍａｘ用いても、上記第４の実施の形態と同様、目標曲線Ｐ（ｓ）における曲率半径ｒおよび指令速度Ｆから算出されるどのような法線加速度Ａｎに対しても、ブロック処理時間Ｔｂが間に合わなくなることが抑制され、かつ極力小さい、または十分小さい弦誤差Ｃｅ、すなわちプログラム用弦誤差Ｃｅｐを得ることができる。プログラム用弦誤差Ｃｅｐを求めた後の処理は、上記第４の実施の形態と同様なので、詳細な説明を省略する。
【００８８】
なお、上記第４の実施の形態では目標曲線Ｐ（ｓ）における最小曲率半径ｒｍｉｎおよび最大指令速度Ｆｍａｘを目標曲線指標Ｉｇとし、本実施の形態では目標曲線Ｐ（ｓ）における曲率半径ｒおよび指令速度Ｆから算出される法線加速度Ａｎ＝Ｆ２／ｒの最大値Ａｎｍａｘを目標曲線指標Ｉｇとしたが、これに限られず、他に目標曲線Ｐ（ｓ）の特徴を表す指標があればその指標を目標曲線指標Ｉｇとしてもよい。
【００８９】
［第６の実施の形態］
上記各実施の形態では、プログラム用弦誤差Ｃｅｐを算出し、算出されたプログラム用弦誤差Ｃｅｐを用いて数値制御用プログラムを作成した。しかしながら、上記各実施の形態のようにプログラム用弦誤差Ｃｅｐを用いて数値制御用プログラムを作成した場合、例えば数値制御用プログラム長が長くなり、プログラム作成における計算時間が、想定するものより長くなる等の現象が発生する場合がある。
【００９０】
そこで、本実施の形態では、プログラム用弦誤差Ｃｅｐに弦誤差下限値Ｃｅｍｉｎを設けることとした。このことにより、プログラム用弦誤差Ｃｅｐが過剰に小さくなることを予防し、その結果、プログラム作成における計算時間が想定外に長くなることを抑制している。
【００９１】
例えば、上記第１の実施の形態の実施例の条件において、曲率半径ｒ＝２００ｍｍを仮定すると、プログラム用弦誤差はＣｅｐ＝０．０００２８ｍｍとなるが、このプログラム用弦誤差Ｃｅｐの値は不必要に小さい値と考えられる。そこで、本実施の形態ではプログラム用弦誤差Ｃｅｐに弦誤差下限値Ｃｅｍｉｎを設け、Ｃｅｐ＜Ｃｅｍｉｎとなる場合はプログラム用弦誤差ＣｅｐをＣｅｐ＝Ｃｅｍｉｎとする。本実施の形態では、このような算出を行う手段が目標弦誤差を算出する算出手段である。弦誤差下限値Ｃｅｍｉｎの具体的な値としては、例えばＣｅｍｉｎ＝０．００１ｍｍとすることができる。このことによって、不必要に数値制御用プログラムが長くなることや、プログラム作成での計算時間が長くなることが抑制される。プログラム用弦誤差Ｃｅｐを求めた後の処理は、上記各実施の形態と同様なので、詳細な説明を省略する。
【００９２】
以上詳述したように、本発明においては、指令速度Ｆ、ブロック処理時間Ｔｂ、目標曲線Ｐ（ｓ）の曲率半径ｒに基づいて高速度、高精度加工に適したプログラム用弦誤差Ｃｅｐを求め、求めたプログラム用弦誤差Ｃｅｐによって微小線分のプログラムを作成している。この際、プログラム用弦誤差Ｃｅｐは、弦誤差曲面Ｓｃ上の点であってもよいし、予め定められた手順によって求められた弦誤差曲面Ｓｃ近傍の点であってもよい。その結果、数値制御工作機械を用いた曲線加工において、従来技術よりもより高速度、高精度加工に適した数値制御用プログラムを作成し、数値制御装置に指令することができることになった。このことにより、本発明に係る数値制御工作システムは、従来技術と比較してより高速度、高精度加工を行うことができるようになった。そのため、本発明に係る数値制御工作システムは加工の効率が向上し、ひいては省エネルギにも貢献することができる。
【符号の説明】
【００９３】
１      数値制御工作システム
１０、１０Ａ    数値制御用プログラム作成装置
１２    弦誤差曲面作成手段
１４    プログラム用弦誤差作成手段
１６    プログラム作成手段
２０    数値制御工作機械
Ｃｅ    弦誤差
Ｃｅｐ  プログラム用弦誤差
Ｃｅｍａｘ  最大弦誤差
Ｃｅｍｉｎ  弦誤差下限値
Ｆ      指令速度
Ｉｇ    目標曲線指標
Ｔｂ    ブロック処理時間
ｒｍｉｎ  最小曲率半径
Ｆｍａｘ  最大指令速度
ｒ      曲率半径
Ｐ（ｓ）  目標曲線
Ｓｃ    弦誤差曲面
Ａｎ    法線加速度
Ａｎｍａｘ  最大法線加速度
ｓ      距離
Δｓ    微小距離
Ｗ      工作物
【図１】
2019148931.tif 000018
【図２】
2019148931.tif 000019
【図３】
2019148931.tif 000020
【図４】
2019148931.tif 000021
【図５】
2019148931.tif 000022
【図６】
2019148931.tif 000023
【図７】
2019148931.tif 000024
【図８】
2019148931.tif 000025
【図９】
2019148931.tif 000026
【図１０】
2019148931.tif 000027
【図１１】
2019148931.tif 000028
【図１２】
2019148931.tif 000029
【図１３】
2019148931.tif 000030