(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-01-20
(45)【発行日】2022-01-28
(54)【発明の名称】数値制御用プログラム作成装置、数値制御工作システムおよび数値制御工作プログラム
(51)【国際特許分類】
G05B 19/4093 20060101AFI20220121BHJP
G05B 19/4103 20060101ALI20220121BHJP
【FI】
G05B19/4093 A
G05B19/4103 Z
(21)【出願番号】P 2018032539
(22)【出願日】2018-02-26
【審査請求日】2021-01-21
(73)【特許権者】
【識別番号】504132881
【氏名又は名称】国立大学法人東京農工大学
(73)【特許権者】
【識別番号】504150450
【氏名又は名称】国立大学法人神戸大学
(74)【代理人】
【識別番号】100079049
【氏名又は名称】中島 淳
(74)【代理人】
【識別番号】100084995
【氏名又は名称】加藤 和詳
(74)【代理人】
【識別番号】100099025
【氏名又は名称】福田 浩志
(72)【発明者】
【氏名】笹原 弘之
(72)【発明者】
【氏名】大槻 俊明
(72)【発明者】
【氏名】佐藤 隆太
【審査官】木原 裕二
(56)【参考文献】
【文献】国際公開第99/061962(WO,A1)
【文献】特開昭53-133860(JP,A)
【文献】特開2004-326238(JP,A)
【文献】実開平02-046207(JP,U)
【文献】特開平10-254526(JP,A)
【文献】米国特許第05394323(US,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/18 - 19/416
G05B 19/42 - 19/46
(57)【特許請求の範囲】
【請求項1】
目標曲線に沿った加工を行う数値制御工作機械を制御する数値制御装置に対する指令を示す数値制御用プログラムを作成する数値制御用プログラム作成装置であって、
前記数値制御装置の処理時間を示すブロック処理時間、前記数値制御装置の加工速度を指定する指令速度、前記目標曲線における曲率半径、および前記目標曲線を線分近似するための弦誤差の複数のパラメータの間の関係を記憶する記憶手段と、
前記数値制御装置が前記数値制御工作機械を制御する上での前記弦誤差の条件に基づき、前記複数のパラメータの間の関係を用いて目標弦誤差を算出する算出手段と、
前記目標弦誤差に基づいて前記目標曲線に対する近似線分を作成するプログラム作成手段と、
を含む数値制御用プログラム作成装置。
【請求項2】
複数のパラメータの間の関係が前記ブロック処理時間、前記指令速度、前記曲率半径、および前記弦誤差の間の関係を示す弦誤差曲面である
請求項1に記載の数値制御用プログラム作成装置。
【請求項3】
前記弦誤差の条件が、前記弦誤差曲面上の点を指定する条件である
請求項2に記載の数値制御用プログラム作成装置。
【請求項4】
前記弦誤差の条件が、前記弦誤差曲面の近傍の点を指定する条件である
請求項2に記載の数値制御用プログラム作成装置。
【請求項5】
前記算出手段は、前記ブロック処理時間、前記指令速度、前記曲率半径、および前記弦誤差のいずれかに1より大きい補正係数を乗じて前記目標弦誤差を算出する
請求項4に記載の数値制御用プログラム作成装置。
【請求項6】
前記複数のパラメータの間の関係が、前記指令速度および前記曲率半径を変数とする前記弦誤差の関数であり、
前記算出手段は、前記目標曲線における前記指令速度および前記曲率半径の組合せに対する前記弦誤差の最大値を前記弦誤差の関数を用いて演算し、前記弦誤差の最大値を用いて前記目標弦誤差を算出する
請求項1に記載の数値制御用プログラム作成装置。
【請求項7】
前記複数のパラメータの間の関係が、前記指令速度および前記曲率半径を変数とする前記弦誤差の関数であり、
前記算出手段は、前記目標曲線における前記指令速度の最大値および前記曲率半径の最小値を演算し、前記指令速度の最大値および前記曲率半径の最小値を用いて前記弦誤差の関数に基づいて前記目標弦誤差を算出する
請求項1に記載の数値制御用プログラム作成装置。
【請求項8】
前記弦誤差の関数が、前記指令速度および前記曲率半径で表された法線加速度の関数であり、
前記算出手段は、前記目標曲線における前記法線加速度の最大値を演算し、前記法線加速度の最大値を用いて前記法線加速度の関数に基づいて前記目標弦誤差を算出する
請求項7に記載の数値制御用プログラム作成装置。
【請求項9】
前記算出手段は、前記目標弦誤差に最小値を設定し、算出された目標弦誤差が前記最小値未満となった場合には前記最小値を前記目標弦誤差として算出する
請求項1から請求項8のいずれか1項に記載の数値制御用プログラム作成装置。
【請求項10】
請求項1から請求項9のいずれか1項に記載の数値制御用プログラム作成装置と、
目標曲線に沿った加工を行う数値制御工作機械と、
前記数値制御用プログラム作成装置で作成されたプログラムに基づいて前記数値制御工作機械を制御する数値制御装置と、を含む
数値制御工作システム。
【請求項11】
目標曲線に沿った加工を行う数値制御工作機械を制御する数値制御装置に対する指令を示す数値制御用プログラムを作成する数値制御用プログラム作成装置を動作させるための数値制御工作プログラムであって、
コンピュータを、
前記数値制御装置の処理時間を示すブロック処理時間、前記数値制御装置の加工速度を指定する指令速度、前記目標曲線における曲率半径、および前記目標曲線を線分近似するための弦誤差の複数のパラメータの間の関係を記憶する記憶手段と、
前記数値制御装置が前記数値制御工作機械を制御する上での前記弦誤差の条件に基づき、前記複数のパラメータの間の関係を用いて目標弦誤差を算出する算出手段と、
前記目標弦誤差に基づいて前記目標曲線に対する近似線分を作成するプログラム作成手段と、
として機能させるための数値制御工作プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、数値制御用プログラム作成装置、数値制御工作システムおよび数値制御工作プログラムに関し、特に、工作物と工具とを相対運動させることによって目標曲線に沿った加工を行う数値制御工作機械を制御する数値制御装置に指令するためのプログラムを作成する数値制御用プログラム作成装置、数値制御工作システムおよび数値制御工作プログラムに関する。
【背景技術】
【0002】
数値制御工作機械の主要な機能は、工作物(加工対象物、ワーク)を所望の精度内でできるだけ短時間に加工する高速高精度加工である。また、数値制御用プログラム作成装置(Computer Aided Manufacturing:CAM)の重要な機能は高速高精度加工を行うためのプログラム(数値制御用プログラム)を作成して数値制御装置に指令することである。
【0003】
加工形状が曲線である場合には、数値制御用プログラム作成装置は曲線加工のためのプログラムを作成する。曲線加工を行う場合、目標曲線からの最大距離が設定された弦誤差(許容弦誤差)となるよう近似した微小線分でプログラムを作成することが通常行われる。
【0004】
上記の微小線分プログラムを作成する従来技術として特許文献1に開示されたファイルコンバータ装置が知られている。特許文献1に開示されたファイルコンバータ装置では、目標曲線をNURBS(Non Uniform Rational B-Spline)曲線とし、そのNURBS曲線に対して設定された弦誤差(ε)以下でかつできるだけεに近い距離となる微小線分を作成し、G01(直線補間指令)による直線補間プログラムを作成する。
【0005】
高精度加工のためには弦誤差を小さくし、より小さな微小線分のプログラムを作成することが望ましい。しかしながら、数値制御装置がプログラムの1ブロックを読み込んで解析するには一定の時間(以下、「ブロック処理時間」)が必要である。従って、そのブロック処理時間よりも高速に1ブロックを読み出して解析する必要があるような、過剰に小さな微小線分のプログラムが指令されると、指令速度通りの加工速度が出ない、あるいは加工速度がふらついて加工面が荒くなるなどの問題が発生する。そのため、設定する弦誤差を過剰に小さくすることはできない。この問題に対しては、一定の余裕を見込んで大きめの弦誤差を設定することも考えられるが、この場合は意図する加工精度が達成できなくなる可能性がある。
【0006】
上記ブロック処理時間に関連する従来技術として、特許文献2に開示された送り速度クランプ方式が知られている。特許文献2に開示された送り速度クランプ方式では、ブロック処理時間に基づいて指令速度をクランプしている。しかしながら、特許文献2に開示された送り速度クランプ方式では所望の元の指令速度に対してクランプするため、高速加工の観点からは望ましくない。
【先行技術文献】
【特許文献】
【0007】
【文献】国際公開第WO99/61962号公報
【文献】特開平6-95727号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明は、以上のような背景に鑑みてなされたものであり、数値制御工作機械において、より高速度でかつ高精度な加工が実現される数値制御用プログラムを作成することが可能な数値制御用プログラム作成装置、数値制御工作システム、および数値制御工作プログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
上述した目的を達成するために、請求項1に記載の数値制御用プログラム作成装置は、目標曲線に沿った加工を行う数値制御工作機械を制御する数値制御装置に対する指令を示す数値制御用プログラムを作成する数値制御用プログラム作成装置であって、前記数値制御装置の処理時間を示すブロック処理時間、前記数値制御装置の加工速度を指定する指令速度、前記目標曲線における曲率半径、および前記目標曲線を線分近似するための弦誤差の複数のパラメータの間の関係を記憶する記憶手段と、前記数値制御装置が前記数値制御工作機械を制御する上での前記弦誤差の条件に基づき、前記複数のパラメータの間の関係を用いて目標弦誤差を算出する算出手段と、前記目標弦誤差に基づいて前記目標曲線に対する近似線分を作成するプログラム作成手段と、を含むものである。
【0010】
また、請求項2に記載の発明は、請求項1に記載の発明において、複数のパラメータの間の関係が前記ブロック処理時間、前記指令速度、前記曲率半径、および前記弦誤差の間の関係を示す弦誤差曲面であるものである。
【0011】
また、請求項3に記載の発明は、請求項2に記載の発明において、前記弦誤差の条件が、前記弦誤差曲面上の点を指定する条件であるものである。
【0012】
また、請求項4に記載の発明は、請求項2に記載の発明において、前記弦誤差の条件が、前記弦誤差曲面の近傍の点を指定する条件であるものである。
【0013】
また、請求項5に記載の発明は、請求項4に記載の発明において、前記算出手段は、前記ブロック処理時間、前記指令速度、前記曲率半径、および前記弦誤差のいずれかに1より大きい補正係数を乗じて前記目標弦誤差を算出するものである。
【0014】
また、請求項6に記載の発明は、請求項1に記載の発明において、前記複数のパラメータの間の関係が、前記指令速度および前記曲率半径を変数とする前記弦誤差の関数であり、前記算出手段は、前記目標曲線における前記指令速度および前記曲率半径の組合せに対する前記弦誤差の最大値を前記弦誤差の関数を用いて演算し、前記弦誤差の最大値を用いて前記目標弦誤差を算出するものである。
【0015】
また、請求項7に記載の発明は、請求項1に記載の発明において、前記複数のパラメータの間の関係が、前記指令速度および前記曲率半径を変数とする前記弦誤差の関数であり、前記算出手段は、前記目標曲線における前記指令速度の最大値および前記曲率半径の最小値を演算し、前記指令速度の最大値および前記曲率半径の最小値を用いて弦誤差の関数に基づいて前記目標弦誤差を算出するものである。
【0016】
また、請求項8に記載の発明は、請求項7に記載の発明において、前記弦誤差の関数が、前記指令速度および前記曲率半径で表された法線加速度の関数であり、前記算出手段は、前記目標曲線における前記法線加速度の最大値を演算し、前記法線加速度の最大値を用いて法線加速度の関数に基づいて前記目標弦誤差を算出するものである。
【0017】
また、請求項9に記載の発明は、請求項1から請求項8のいずれか1項に記載の発明において、前記算出手段は、前記目標弦誤差に最小値を設定し、算出された目標弦誤差が前記最小値未満となった場合には前記最小値を前記目標弦誤差として算出するものである。
【0018】
上述した目的を達成するために、請求項10に記載の数値制御工作システムは、請求項1から請求項9のいずれか1項に記載の数値制御用プログラム作成装置と、目標曲線に沿った加工を行う数値制御工作機械と、前記数値制御用プログラム作成装置で作成されたプログラムに基づいて前記数値制御工作機械を制御する数値制御装置と、を含むものである。
【0019】
上述した目的を達成するために、請求項11に記載の数値制御工作プログラムは、目標曲線に沿った加工を行う数値制御工作機械を制御する数値制御装置に対する指令を示す数値制御用プログラムを作成する数値制御用プログラム作成装置を動作させるための数値制御工作プログラムであって、コンピュータを、前記数値制御装置の処理時間を示すブロック処理時間、前記数値制御装置の加工速度を指定する指令速度、前記目標曲線における曲率半径、および前記目標曲線を線分近似するための弦誤差の複数のパラメータの間の関係を記憶する記憶手段と、前記数値制御装置が前記数値制御工作機械を制御する上での前記弦誤差の条件に基づき、前記複数のパラメータの間の関係を用いて目標弦誤差を算出する算出手段と、前記目標弦誤差に基づいて前記目標曲線に対する近似線分を作成するプログラム作成手段と、として機能させるためのものである。
【発明の効果】
【0020】
本発明によれば、数値制御工作機械において、より高速度でかつ高精度な加工が実現される数値制御用プログラムを作成することが可能な数値制御用プログラム作成装置、数値制御工作システム、および数値制御工作プログラムを提供することが可能となる。
【図面の簡単な説明】
【0021】
【
図1】第1の実施の形態、第2の実施の形態、および第3の実施の形態に係る数値制御用プログラム作成装置を含む数値制御工作システムの構成の一例を示すブロック図である。
【
図2】ブロック処理時間(Tb)を求めるブログラムを説明する図である。
【
図3】指令速度Fと実速度Vmとの関係の一例を示すグラフである。
【
図4】指令速度Fおよび曲率半径rと弦誤差Ceとの関係を表す弦誤差曲面を示す図である。
【
図5】目標曲線P(s)において曲率半径を求める例を説明する図である。
【
図6】曲率半径r、弦の線分長Lb、弦誤差Ce、および角度θの関係を説明する図である。
【
図7】目標曲線P(s)に対する数値制御工作プログラムの処理の流れを示すフローチャートである。
【
図8】目標曲線P(s)に対する数値制御用プログラムの作成を説明する図である。
【
図10】本発明の実施例の結果における誤差と速度波形を示す図である。
【
図11】指令線分のコーナにおける方向変化角と減速との関係を説明する図である。
【
図12】第4の実施の形態および第5の実施の形態に係る数値制御用プログラム作成装置の構成の一例を示すブロック図である。
【
図13】第4の実施の形態における指令速度と曲率半径を説明する図である。
【発明を実施するための形態】
【0022】
以下、図面を参照して、本発明を実施するための形態について詳細に説明する。なお、以下の実施の形態は特許請求の範囲に係る発明を限定するものではない。また、実施の形態の中で説明されている特徴の組合せの全てが発明の解決手段に必須であるとは限らない。
【0023】
[第1の実施の形態]
図1から
図11を参照して、本実施の形態に係る数値制御用プログラム作成装置、数値制御工作システムおよび数値制御工作プログラムについて説明する。
【0024】
図1に示すように、本実施の形態に係る数値制御用プログラム作成装置10は、弦誤差曲面作成手段12、プログラム用弦誤差作成手段14、およびプログラム作成手段16を含んで構成されている。数値制御用プログラム作成装置10は数値制御装置を介して数値制御工作機械20に接続されており、数値制御用プログラム作成装置10、数値制御装置、および数値制御工作機械20によって、本実施の形態に係る数値制御工作システム1が構成されている。なお、簡略化のため、
図1では数値制御装置は数値制御工作機械20に含まれ、一体的に構成している。
【0025】
数値制御用プログラム作成装置10は、
図1に示すように指令速度F、目標曲線P(s)、およびブロック処理時間Tbを入力とし、数値制御用プログラムを出力する。そして、出力された数値制御用プログラムは、指令として数値制御装置(数値制御工作機械20)に送られる。すなわち、本実施の形態に係る数値制御用プログラム作成装置10は、いわゆるCAMとして構成されている。
【0026】
指令速度Fは、工作物に対する工具の送り速度(相対速度)である。目標曲線P(s)が与えられた場合の指令速度Fは、従来知られた方法により数値制御用プログラム作成装置10に対して設定される。あるいは、数値制御工作システム1のオペレータ等が指令速度Fを入力するようにしてもよい。あるいは、数値制御用プログラム作成装置10(CAM)には、工作物の材質や硬さ、工具の径や刃数などの諸条件を入力すると適切な指令速度F(送り速度)を出力する機能をもったものがある。その場合は、
図1の指令速度Fは数値制御用プログラム作成装置10(CAM)の中で作成される。そのような機能によって指令速度Fを取得てもよいし、あるいはプログラマやオペレータ等が適切な指令速度Fを入力してもよい。以上のようにして目標曲線P(s)に対する指令速度Fが指令される。
【0027】
目標曲線P(s)は、工作物に対する工作内容が決まると該工作内容に対応して与えられる(決定される)。あるいは、目標曲線P(s)は数値制御用プログラム作成装置10(CAM)において目標加工形状から作成される。ここで、sは曲線上の距離であり、関数P(s)は距離sに対する加工曲線を示している。また、目標曲線P(s)は3次元ベクトルであり、P(s)=(Px(s)、Py(s)、Pz(s))のように表記される。なお、目標曲線P(s)の時数は3次元に限られず、4次元以上の高次元としてもよい。また、目標曲線Pを関数として表現する変数は距離sに限られず、時間tなど他の変数による関数としてもよい。
【0028】
ブロック処理時間Tbは、数値制御装置が1ブロックを読み出して解析する時間である。本実施の形態では、後述するように、このブロック処理時間Tbは予め測定しておく。
【0029】
弦誤差曲面作成手段12は、指令速度F、ブロック処理時間Tb、および目標曲線P(s)から求められる曲率半径rを用いて後述する弦誤差曲面Scを作成する。作成された弦誤差曲面Scは、数値制御用プログラム作成装置10が備える図示しないROM等の記憶手段に記憶させてもよい。プログラム用弦誤差作成手段14は、指令速度F、曲率半径r、および弦誤差曲面Scを用いてプログラム用弦誤差Cep(本発明に係る「目標弦誤差」に相当)を算出する。プログラム作成手段16は、プログラム用弦誤差Cepと目標曲線P(s)を用いて、数値制御用プログラムを作成する。プログラム作成手段16における数値制御用プログラムの作成は、従来知られた方法で行えばよい。なお、以下の説明においては、弦誤差一般を記号Ceで表記し、プログラム用弦誤差を記号Cepで表記し区別することとする。
【0030】
次に、ブロック処理時間Tbを取得する方法について説明する。ブロック処理時間Tbの取得方法の一例として、たとえばタイマー割り込みによる方法が知られている(例えば、特許文献2)。しかしながら、タイマー割り込みによる方法では数値制御装置のソフトウェアを変更する必要がある。そこで、本実施の形態ではより簡便な方法である、微小直線移動指令を繰り返し、その間の時間を測定して実速度からブロック処理時間Tbを得る方法を用いている。
【0031】
図2は、ブロック処理時間Tbを算出するためのプログラム(以下、「ブロック処理時間算出プログラム」)の一例を示している。
図2に示すように、ブロック処理時間算出プログラムはメインプログラム(MAIN-PROG)とサブプログラムSUB-PROG(999)を含んで構成されている。
図2の例では、メインプログラムはサブプログラムを50回呼び出している。
【0032】
サブプログラムによる指令は、0.1mmの移動量を持つブロックを100回実行することにより10mm移動する指令である。従って、メインプログラムは、指令速度「F**」(任意の値)で500mm移動することを指令するプログラムとなっている(10mm×50回=500mm)。メインプログラムは、マクロ変数「#3001」によってその間の時間Tm(min:分)を測定する。以上から、実速度は500/Tm(mm/min)で求められる。
【0033】
メインプログラムにおける「G53」は、移動が終了した後マクロ変数「#3001」を読むためにプログラムの読み込みを一旦停止する指令である。指令速度Fが十分小さければ、メインプログラムはほぼ指令速度F通りの速度で実行される。しかしながら、指令速度Fが大きくなるとブロック処理時間Tbが間に合わなくなり実速度は頭打ちとなる。
その限界からブロック処理時間Tb(msec:millisecond)を求めることができる。
【0034】
図3は、以上のようにして求めた指令速度Fと実速度Vmとの関係の一例を示している。すなわち、
図3はいくつかの指令速度Fに対する実速度Vmの変化を示すグラフである。
図3から、実速度Vmは1500mm/minが限界であることがわかる。この限界の実速度1500mm/minを用い、以下に示す(式1)によってブロック処理時間Tbを算出すると、Tb=4msecとなる。
【0035】
なお、本例では0.1mmの移動ブロックを5000回指令してマクロ変数でその間の時間を測定して実速度Vmを得たが、微小な移動指令は0.1mmに限られず適宜な値を選択してよい。また、加工時間を計数する場合にもマクロ変数を用いることなく、例えばストップウォッチなどで時間を測定してもよい。さらに、ブロック処理時間Tbについては、本実施の形態ではTb=4msecの場合を例示して説明するが、ブロック処理時間Tbは数値制御装置によって異なるし、厳密には指令内容(軸数、直線指令か円弧指令か、工具径補正ありかなしか、など)によっても異なってくる。しかしながら、所定の数値制御装置において固定軸数の微小直線指令を行う場合は、ブロック処理時間Tbは一定と考えられるので、本実施の形態ではブロック処理時間Tbを定数として取り扱う。
【0036】
次に、弦誤差曲面作成手段12について説明する。弦誤差曲面作成手段12は、曲率半径r、指令速度F、およびブロック処理時間Tbと弦誤差Ceとの関係を示す弦誤差曲面Scを作成する部位である。上述したように、ある数値制御装置において、微小線分指令に対するブロック処理時間Tbは一定と考えてよい。そこで本実施の形態に係る弦誤差曲面Scは、ブロック処理時間Tbをある値に固定した場合の、曲率半径r、指令速度Fおよび弦誤差Ceの関係を示している。ブロック処理時間Tbを固定した場合の、曲率半径r、指令速度Fおよび弦誤差Ceの関係は、後述するように所定の曲面で表される。
【0037】
以下、弦誤差曲面Scの作成方法について説明するが、まず、
図6を参照して弦誤差について説明する。
図6は、目標曲線Pを線分で近似する場合の近似方法を示している。
図6において、円弧で近似した曲率半径rの曲線に対して線分長Lbの弦を作成したときの弦に対応する角度をθとした場合、弦誤差Ce(mm)は
図6のように定義される。その際、指令速度F(mm/min)は、ブロック処理時間Tb(msec)によって、それ以上指令を上げても実速度は大きくならないことを意味する(式2)の制限を受ける。
【0038】
(式2)からθを消去すると、以下に示す(式3)を得る。
(式3)は不等式であるが、これを(式4)のように等式としたものは曲面を表し、この曲面を弦誤差曲面Scとよぶ。
つまり、本実施の形態に係る弦誤差曲面Scは、あるブロック処理時間Tbが与えられた場合の、曲率半径r、指令速度F、弦誤差Ceの複数のパラメータの間の関係を示している。図示しない記憶手段はこの複数のパラメータの間の関係を記憶する。記憶手段がこのような複数のパラメータの間の関係を記憶することについては、後述の実施の形態でも同様である。
【0039】
図4は、(式4)に基づき弦誤差曲面作成手段12によって作成された弦誤差曲面Scの一例を示している。
図4では、ブロック処理時間TbをTb=4msecとしている。
また
図4では、X軸を指令速度F(mm/min)、Y軸を曲率半径r(mm)、Z軸を弦誤差Ce(mm)としている。なお、(式3)で表される不等式は、弦誤差Ceが弦誤差曲面ScのZ軸方向の上側の領域に存在する必要があることを示している。
【0040】
次に、
図5を参照して、目標曲線P(s)から局所的な曲率半径rを求める方法について説明する。いま、距離sを変数とする目標曲線P(s)が
図5に示すように与えられたものとする。目標曲線P(s)は、上述したように3次元ベクトルP(s)=(Px(s)、Py(s)、Pz(s))である。この場合、曲率半径rは、曲線上のある位置P(s0)から微小な曲線上の距離Δs(以下、「微小距離Δs」だけ離れた位置P(s1)(s1=s0+Δs)との間の曲率半径から求められる。ここで、Δsは曲率半径rが得られる程度の微小距離であり、曲率等に応じて可変としてもよい。具体的には、P(sm)をP(s0)とP(s1)との中点、つまりP(sm)=P((s0+s1)/2)とする。このとき、P(s0)、P(sm)、P(s1)の3点を用いて円弧近似を行い、その円弧の半径を求める曲率半径rとする。以上の手順から曲率半径rが求められるが、曲率半径rを求める方法は上記に限られず、公知の任意の方法を用いてもよい。
【0041】
次に、プログラム用弦誤差作成手段14の動作について説明する。本実施の形態に係るプログラム用弦誤差Cepは、数値制御用プログラム作成装置10においてプログラムを作成する際に用いる弦誤差をいう。すなわち、プログラム用弦誤差作成手段14は、上記方法によって算出した曲率半径r、予め設定した指令速度F、予め測定したブロック処理時間Tbに対して(式3)を充足する極力小さい、または十分小さい弦誤差Ceを算出する。算出された弦誤差Ceを、プログラム用弦誤差Cepとする。本実施の形態においては、このように弦誤差Ceを算出しプログラム用弦誤差Cepとする手段が目標弦誤差を算出する算出手段である。
【0042】
次に、プログラム作成手段16が、上記で求めたプログラム用弦誤差Cepを用いて数値制御装置を制御するためのプログラム(指令)を作成する。プログラムの具体的な作成方法は従来知られている方法により作成されるので、詳細な説明を省略する(例えば、特許文献1参照)。
【0043】
次に、
図7および
図8を参照して、弦誤差曲面作成手段12、プログラム用弦誤差作成手段14、プログラム作成手段16において実行される、数値制御用プログラム作成処理について説明する。
図7および
図8は、本実施の形態に係る数値制御用プログラム作成プログラム(以下、「数値制御工作プログラム」)の流れを示すフローチャートである。数値制御工作プログラムは、数値制御用プログラム作成装置10の図示しないROM等の記憶手段に記憶され、CPUによって読み出され、RAM等の記憶手段に展開して実行される。
図7および
図8では、
図8に示す目標曲線P(s)において、位置P(ss)からP(se)までのプログラムを作成する場合を例示して説明する。
【0044】
ステップS101では、まず微小距離Δsとして、P(s)上で局所的な曲率半径rが求められるほどの(つまり、目標曲線P(s)の一部を円弧とする略扇形が形成されるほどの)長さを設定する。すなわち、微小距離Δsは、距離ssとseとの間の長さに対して十分小さく設定される。最終フラグを0に設定する。P(ss)を第1プログラム指令点とする。s0=ss、s1=s0+Δsとする。
【0045】
次のステップS102では、ブロック処理時間Tb、曲率半径r、指令速度Fおよび弦誤差Ceの関係を表す式(4)を用いて弦誤差曲面Scを求める。ステップ102における処理が、弦誤差曲面作成手段12における処理である。
【0046】
次のS103では、P(s0)とP(s1)との間の曲率半径rを、例えば上述した方法によって求める。次に、曲率半径r、指令速度Fに対して(式3)を満たすできるだけ小さい、または十分小さい弦誤差Ceを求めプログラム用弦誤差Cepとする。ステップ103における処理が、プログラム用弦誤差作成手段14における処理である。ここで、できるだけ小さい弦誤差Ceとは、例えば式(4)を満たすCeであり、本実施の形態ではこの式(4)を満たす弦誤差Ceをプログラム用弦誤差Cepとする。これが、本実施の形態における弦誤差の条件である。一方、十分小さい弦誤差Ceとは、式(4)に対して+Z方向の近傍に位置する弦誤差Ceであり、具体例については後述する。
【0047】
次のステップS104では、
図8に示すように、プログラム用弦誤差Cepに基づいてP(s0)からP(s1)までの間のプログラム指令点P(s01)、P(s02)、・・・、P(s0n)を求め、作成対象のプログラムに追加する。ステップS104における処理が、プログラム作成手段16における処理である。なお、プログラム作成手段16における処理には、従来技術に係るプログラムの作成も含まれるので、ステップS104における処理は、プログラム作成手段16における処理の一部である。
【0048】
次のS105では、最終フラグが1か否か判定する。当該判定が否定判定となった場合にはステップS106に移行するとともに、肯定判定となった場合には本数値制御工作プログラムを終了する。
【0049】
次のステップS106では、s0n→s0、s0+Δs→s1として、次の区間P(s0)、P(s1)の準備をする。
【0050】
次のステップS107では、s1>seであるか否か判定する。当該判定が否定判定となった場合にはステップS102に戻るとともに、肯定判定となった場合にはステップS108に移行する。
【0051】
次のステップS108では、次回が最終区間となるので、se→s1、最終フラグ=1とした後、ステップS102に戻る。
【0052】
次に、
図9および
図10を参照して、実施例の一例について説明する。
図9および
図10に示す実施例は、目標曲線P(s)を半径50mmの円の円周全体とし、指令速度FをF=10000mm/minとし、ブロック処理時間TbをTb=4msecとしている。また、理解の容易さの観点から、本実施例では、3次元曲面である弦誤差曲面Sc(
図4)において曲率半径rをある値に固定し、
図4に示す弦誤差曲面Scにおける指令速度Fと弦誤差Ceの関係を示す2次元グラフで考える。
図9は、目標曲線P(s)の半径を50mmとした場合の指令速度Fと弦誤差Ceとの関係を示している。つまり、
図9は
図4において曲率半径rをr=50mmとした場合の断面を示している。
図9に「弦誤差曲面」として示す曲線はこの断面を示している。
【0053】
また、本実施例では、上記の条件で作成したプログラムを用いて数値制御工作機械20を動作させた場合の、最大誤差Emax(mm)と実速度Vm(mm/min)を測定した。ここで、本実施の形態でいう最大誤差Emaxとは目標曲線P(s)と実軌跡の最大誤差であり、実速度Vmは実際の運動における平均速度である。最大誤差Emaxおよび実速度Vmは、交差格子エンコーダによって実軌跡をパソコンに取り込みそのデータを解析することによって取得した。
図9では、横軸を指令速度Fと実速度Vmとし、縦軸を弦誤差Ceと最大誤差Emaxとしている。つまり、
図9では、(F、Ce)と(Vm、Emax)の座標系を重ねて表示している。
【0054】
本実施例では、本実施の形態を適用しない比較例であるケース1と、本実施の形態を適用したケース2の加工条件を設定し、両者を比較した。プログラム用弦誤差Cepは、ケース1で0.01mm、ケース2で0.00111mmとした。各ケースの加工条件を整理すると、以下のようになる。
<ケース1>
プログラム用弦誤差Cep=0.01mm(約157角形)、指令速度F=10000mm/min、曲率半径r=50mm、ブロック処理時間Tb=4msec
<ケース2>
プログラム用弦誤差Cep=0.00111mm(約471角形)、指令速度F=10000mm/min、曲率半径r=50mm、ブロック処理時間Tb=4msec
【0055】
ここで、ケース1の0.01mmというプログラム用弦誤差Cepは、従来の加工においてよく設定される数値である。
図9では、この点を「ケース1指令」と表記された白抜き丸で示している。一方、ケース2のプログラム用弦誤差0.00111mmは、この点を「ケース2指令」と表記された白抜き丸で示している。すなわち、ケース1のプログラム用弦誤差Cepは、(式3)を充足しているが弦誤差曲面Scから離間している。つまり、ブロック処理時間による制限((式3)の不等式)の観点からかなり余裕を見込んだプログラム用弦誤差Cepとなっている。これに対し、ケース2のプログラム用弦誤差Cepは、弦誤差曲面Sc上の点となっている(すなわち、(式4)を満たしている)。つまり、(式3)を充足しつつ極力小さなプログラム用弦誤差Cepとなっている。
【0056】
ここで、プログラム用弦誤差Cepと、目標曲線P(s)である半径50mmの円との関係について説明する。プログラム用弦誤差Cepと、目標曲線P(s)の半径が定まると、実際の加工軌跡が多角形として定まる。具体的には、プログラム用弦誤差CepをCep=0.01mmとした場合はこの多角形がおよそ157角形となり、プログラム用弦誤差CepをCep=0.00111mmとした場合はこの多角形がおよそ471角形となる。つまり、ケース1よりケース2の方がより加工精度が高くなることが想定される。
【0057】
以上の条件の下、それぞれのケースについて数値制御工作機械20を動作させた。
図9において、「ケース1結果」と表記された黒四角がケース1による加工の結果を示し、「ケース2結果」と表記された黒四角がケース2による加工の結果を示している。
図9から、結果を整理すると以下のようになる。
<ケース1>
実速度Vm=7847mm/min、最大誤差Emax=0.0168mm
<ケース2>
実速度Vm=9369mm/min、最大誤差Emax=0.0119mm
【0058】
すなわち、ケース1の結果に対してケース2の結果は、実速度Vmが速くなり、最大誤差Emaxが小さくなっている。実速度は、ケース1の実速度Vm=7847mm/minから、ケース2の実速度Vm=9369mm/minと、より高速度になっている。つまり、ケース1のプログラム用弦誤差Cep=0.01mmから、ケース2ではプログラム用弦誤差Cep=0.00111mmとすることにより、より高速高精度となった。
【0059】
次に、
図10を参照して、本実施例の結果についてより詳細に説明する。
図10(a)はケース1の結果を、
図10(b)はケース2の結果を、各々示している。また、
図10(a)、(b)の各々において、<1>で示す図は誤差の軌跡を、<2>は実速度Vm(
図10では「合成速度」と表記)の波形を示している。<1>では、外側の円が目標曲線P(s)を示しており、その内側の曲線が実軌跡における誤差を拡大したものを示している。
【0060】
図10(a)の<1>と
図10(b)<1>との比較から、ケース2の誤差のほうがケース1の誤差より小さいことがわかる。また、
図10(a)<2>から、ケース1の速度波形では、指令速度F=10000mm/minに到達していない。これは、多角形の線分間のコーナにおける方向変化角が大きいため各コーナで減速が発生しているためである。つまり、
図10(a)<2>の速度波形には表れない程度の減速加速を繰り返しているため指令速度F=10000mm/minに到達しない。これに対し、
図10(b)<2>に示すように、ケース2ではその方向変化角が小さいためあまり減速せず、指令速度F=10000mm/minに到達している。その結果、ケース1の実速度よりケース2の実速度の方が速くなるのである。なお、
図10(a)<2>において4か所で速度が上がっているのは、移動方向が45度(あるいは135度)となる場合2軸の合成速度として加速されるという特殊な理由から生じたものである。
【0061】
図11を参照して、上記方向変化角と実速度との関係について説明する。
図11は、目標曲線Pに対してプログラム用弦誤差Cepによって指令線分を作成した時、指令線分のコーナLcで方向変化が発生した状態を示している。
図11に示すように、指令線分のコーナLcにおける方向変化角が大きいと、数値制御装置はコーナで発生する誤差を小さくするように減速させる。一方、方向変化角が小さいとそれほどの減速を行わない。このことによって、方向変化角による実速度の差が発生する。
【0062】
以上詳述したように、本実施の形態に係る数値制御用プログラム作成装置、数値制御工作システムおよび数値制御工作プログラムによれば、より高速度でかつ高精度な加工が実現される数値制御用プログラムを作成することが可能となる。プログラム用弦誤差Cepを弦誤差曲面Scに基づいてできるだけ小さくすることによってより高速度、高精度となる理由を以下に整理する。
(1)プログラム用弦誤差Cepを小さくすることにより、線分間のコーナにおける方向変化角が小さくなり減速が少なくなるため、より高速となる。
(2)プログラム用弦誤差Cepを小さくすることにより目標曲線との誤差が小さくなり、より高精度となる。
さらに、本実施の形態では、上記のようにプログラム用弦誤差Cepを小さくする場合において、式(4)で示す関係を考慮しているので、高速高精度化しつつブロック処理時間が間に合わなくなることにもならない。つまりブロック処理時間が間に合わないことによる加工速度の低下も抑制される。なお、本実施例では特定の条件における結果を示したが、他のさまざまな条件で行った実施例においても弦誤差曲面Scに基づいてプログラム用弦誤差Cepをできるだけ小さくすることによって、同様により高速度、高精度となることを確認している。
【0063】
[第2の実施の形態]
上記実施の形態では、
図7に示すステップS103において、曲率半径r、指令速度Fに対応し(式3)を満たすできるだけ小さい、つまり(式4)を満たす弦誤差Ceをプログラム用弦誤差Cepとした。しかしながら、(式4)を満たすプログラム用弦誤差Cepはブロック処理時間Tbが間に合うかどうかの境界にあるため、場合によってはブロック処理時間Tbが間に合わないことも想定される。その場合、読み込み解析処理したブロックが不足して急激な減速が生じる可能性がある。
【0064】
そこで本実施の形態では、上記(式4)に変えて以下に示す(式5)を用いる。(式5)は、(式4)における指令速度Fに対して係数kfを掛けたものである。
ここで、kfはkf>1.0で、1.0に近い値とする。(式5)に従うことは、
図7に示すステップS103において、曲率半径r、指令速度Fに対応し(式3)を満たす十分小さい弦誤差Ceをプログラム用弦誤差Cepとすることに相当する。
【0065】
ここで、αを以下に示す(式6)のように定義する。
上記αを用いて、(式5)は以下に示す(式7)のように簡略化される。
弦誤差Ceは小さいので(式7)を解いた2根のうち小さい方をCeとすると、以下に示す(式8)となる。
ここで、弦誤差Ceは実数であるため、r
2-α×F
2≧0である。なお、kf=1.0、Tb=4msecとした場合の(式8)における曲率半径r、指令速度Fに対する弦誤差Ceが
図4に示す弦誤差曲面Scである。
【0066】
ここで、(式8)において平方根部分を多項式に展開してその第2項までを採用すれば、(式9)のように近似することもできる。
むろん、求められる弦誤差曲面の精度等を勘案して第3項以降を採用してもよいが、ここでは簡便のため第2項までとしている。(式9)の近似式を用いても、プログラム用弦誤差Cepを弦誤差曲面Sc上、あるいは弦誤差曲面Sc近傍とすることができる。
【0067】
ここで、(式8)において、例えばkf=1.1とすることは、指令速度FがF=10000mm/minであっても、実際にはF=11000mm/minに対応する(式4)の弦誤差Ceをプログラム用弦誤差Cepとすることになる。あるいは、(式4)で求めた弦誤差Ceに対して係数kceをかけてプログラム用弦誤差Cep=kce×Ceとしてもよい。例えばkce=1.05とすれば、(式4)から求めた弦誤差Ceに対して少し大きい値をプログラム用弦誤差Cepを採用することになる。あるいは、rに係数をかけるか、Tbに係数をかけるようにしてもよい。さらに、係数をかけたパラメータを組み合わせてもよい。本実施の形態では、このようにしてプログラム用弦誤差Cepを算出する。その算出する手段が目標弦誤差を算出する算出手段である。
【0068】
換言すると、本実施の形態は、(式4)で示される曲面の近傍の弦誤差Ceをプログラム用弦誤差Cepとすることとしている。本実施の形態では、このように弦誤差曲面の近傍の弦誤差Ceをプログラム用弦誤差Cepとすることが、弦誤差の条件である。このことにより、ブロック処理時間Tbが間に合わないことによって急激な減速が生じることが抑制される。プログラム用弦誤差Cepを決定した後の処理は上記実施の形態と同様なので、詳細な説明を省略する。
【0069】
[第3の実施の形態]
上記実施の形態では、ブロック処理時間Tb、曲率半径rおよび指令速度Fを用いてプログラム用弦誤差Cepを求めた。これに対し、本実施の形態に係るプログラム用弦誤差作成手段14は、あるブロック処理時間Tbの数値制御装置において、目標曲線P(s)における曲率半径rおよび指令速度Fの組合せに対する弦誤差Ceの最大値をCemaxとし、プログラム用弦誤差CepをCep=Cemaxとする。つまり、目標曲線P(s)における曲率半径rおよび指令速度Fの組合せに対して、Cemaxを以下に示す(式10)から算出する。ここで、あるブロック処理時間Tbの数値制御装置において、目標曲線P(s)における曲率半径rおよび指令速度Fの組合わせに対する弦誤差Ceの関係、つまり(式8)が、本実施の形態における複数のパラメータの間の関係、弦誤差の関数である。(式8)に対してmax演算を行った(式10)によってCemaxを算出する手段が本実施の形態における目標弦誤差を算出する算出手段である。
【0070】
(式10)に示すCemaxをCepとすることによって、目標曲線P(s)におけるどのような曲率半径rおよびどのような指令速度Fに対してもブロック処理時間Tbが間に合わなくなることのない、できるだけ小さい、または十分小さい弦誤差Ceとすることができる。つまり、(式8)が示す弦誤差Ceは、任意の曲率半径rと指令速度Fに対するできるだけ小さい、または十分小さい弦誤差Ceである。一方、目標曲線P(s)における曲率半径rおよび指令速度Fの組合せに対応させた最大のCeであるCemaxを用いることにより、目標曲線P(s)のどこにおいてもブロック処理時間Tbが間に合わなくなることのない、できるだけ小さい、または十分小さい弦誤差Ceが得られる。
【0071】
ここで、上記実施の形態は、目標曲線における曲率半径rおよび指令速度Fに応じて変化するCepを求めていたが、本実施の形態においては、目標曲線P(s)に対して求めるCepは1個の数値である。その意味から、本実施の形態は上記実施の形態より簡便である。
【0072】
なお、本実施の形態に係る弦誤差曲面作成手段12およびプログラム用弦誤差作成手段14は、数値制御用プログラム作成装置10(CAM)の中に組み込んでもよい。あるいは、数値制御用プログラム作成装置10から出力されたデータを各数値制御装置に合わせたプログラムとするポストプロセッサ(図示省略)の中に組み込んでもよい。さらに、数値制御用プログラム作成装置10やポストプロセッサの外に作成してもよい。ポストプロセッサの中に組み込む、または数値制御用プログラム作成装置10やポストプロセッサの外に作成する場合は、
図1に示すプログラム作成手段16は既存の数値制御用プログラム作成装置とすることができる。つまり、既存の数値制御用プログラム作成装置(CAM)に対する弦誤差の設定値あるいは入力値として、求めたプログラム用弦誤差Cepを設定あるいは入力するように構成してもよい。
【0073】
また、(式10)を用いたプログラム用弦誤差Cepの算出は、プログラム作成前に目標曲線P(s)をチェックして行ってもよいし、一旦既存のCAMによって従来通りプログラムを作成し、その結果をチェックしてプログラム用弦誤差Cepを算出し、算出したプログラム用弦誤差Cepを用いて再度プログラムを作成してもよい。
【0074】
[第4の実施の形態]
図12を参照して、本実施の形態に係る数値制御用プログラム作成装置、数値制御工作システムおよび数値制御工作プログラムについて説明する。
図12は、本実施の形態に係る数値制御用プログラム作成装置10Aを示している。なお、
図12では数値制御装置および数値制御工作機械20の図示を省略している。
【0075】
図12に示すように、数値制御用プログラム作成装置10Aは、プログラム用弦誤差作成手段14、およびプログラム作成手段16を含んで構成されている。つまり、数値制御用プログラム作成装置10Aは、数値制御用プログラム作成装置10における弦誤差曲面作成手段12を除いた形態である。数値制御用プログラム作成装置10Aでは、弦誤差曲面作成手段12を用いる代わりに、目標曲線P(s)の特徴を表す目標曲線指標Ig、およびブロック処理時間Tbを用いてプログラム用弦誤差Cepを算出し、算出したプログラム用弦誤差Cepを用いてプログラムを作成する。
【0076】
本実施の形態では、目標曲線指標Igを、目標曲線P(s)における最小曲率半径rmin、および最大指令速度Fmaxとしている。
図13を参照して、最小曲率半径rmin、および最大指令速度Fmaxについて説明する。
図13に示す破線は、工作物W上の目標曲線P(s)を示している。
図13において、最も小さい曲率半径がrminである。一方、最大指令速度Fmaxは、
図13に示すように目標曲線P(s)の場所によって指令速度がF1、F2、F3、・・・のように変化する場合において、Fmax=Max(F1、F2、F3、・・・)で定義される。指令速度がF1だけであれば、Fmax=Max(F1)=F1である。
【0077】
ここで、(式8)に基づいて、以下に示す(式11)および(式12)が得られる。
【0078】
(式11)から、曲率半径rが減少するにしたがって弦誤差Ceは増加することがわかる。また、(式12)からFが増大するにしたがって弦誤差Ceは増加することがわかる。従って、目標曲線P(s)における最小曲率半径をrminとし、最大指令速度をFmaxとすると、とり得る最大の弦誤差Ceである最大弦誤差Cemaxは、以下に示す(式13)から算出することができる。ここで、第3の実施の形態と同様、(式8)が、本実施の形態における複数のパラメータの間の関係、弦誤差の関数である。(式8)に対してrminとFmaxを適用した(式13)によってCemaxを算出する手段が、本実施の形態における目標弦誤差を算出する算出手段である。
本実施の形態では、以上のようにして求められた最大弦誤差Cemaxをプログラム用弦誤差Cepとしている。
【0079】
以上の構成を有する本実施の形態によれば、上記第3の実施の形態と同様、目標曲線P(s)におけるどのような曲率半径rおよびどのような指令速度Fに対しても、ブロック処理時間Tbが間に合わなくなることのない、できるだけ小さい、または十分小さいプログラム用弦誤差Cepを求めることができる。この点は上記第3の実施の形態と同様であるが、本実施の形態では第3の実施の形態よりもより簡便にプログラム用弦誤差Cepを求めることができる。
【0080】
本実施の形態では、すでに取得しているブロック処理時間Tb、目標曲線P(s)における最小曲率半径rminおよび最大指令速度Fmaxからプログラム用弦誤差Cepを求めるものである。そのため、本実施の形態では、上記実施の形態のように弦誤差曲面Scを求めることは不要であり、この点からも本実施の形態は上記実施の形態より簡便な形態となっている。
【0081】
具体例を示せば、例えば、ブロック処理時間TbをTb=4msec、最小曲率半径rminをrmin=25mm、最大指令速度FmaxをFmax=10000mm/min、係数kfをkf=1.1とすると、プログラム用弦誤差CepはCep=Cemax=0.00269mmとなる。
【0082】
図12に示す数値制御用プログラム作成装置10Aにおいて、破線で囲んだ部分が実質的な入力と該入力を受けた動作部分であるが、本実施の形態は、該動作部分を数値制御用プログラム作成装置(CAM)の中に組み込んだ形態としている。しかしながらこれに限られず、上記第3の実施の形態で説明したように、ポストプロセッサの中に組み込んでもよいし、あるいは、数値制御用プログラム作成装置やポストプロセッサの外に作成してもよい。ポストプロセッサの中に組み込む場合、または数値制御用プログラム作成装置やポストプロセッサの外に作成する場合は、
図12のプログラム作成手段は既存の数値制御用プログラム作成装置(CAM)とすることができる。つまり、既存の数値制御用プログラム作成装置(CAM)(プログラム作成手段16をCAMとした構成でもよい)に対する弦誤差の設定値あるいは入力値として、求めたプログラム用弦誤差Cepを設定あるいは入力する形態とすることも可能である。
【0083】
また、最小曲率半径rmin、および最大指令速度Fmaxを求める方法は、目標曲線P(s)の形状や図面から目視で判断してもよい。あるいは、一旦既存の数値制御用プログラム作成装置によって従来例に従ったプログラムを作成し、作成したプログラムをチェックして求め、(式13)で求めたプログラム用弦誤差Cepによって再度プログラムを作成してもよい。最小曲率半径rminについては、
図5に関する説明で述べたような方法で求めてもよい。以上の求め方の具体的な手順は従来知られたものなので、詳細な説明を省略する。
【0084】
[第5の実施の形態]
本実施の形態に係る数値制御用プログラム作成装置の構成は、上記第4の実施の形態に係る数値制御用プログラム作成装置10Aと同様なので、必要な場合は
図12を参照することとし、詳細な説明を省略する。本実施の形態に係る数値制御用プログラム作成装置も、ブロック処理時間Tb、および目標曲線の特徴を表す目標曲線指標Igを用いてプログラム用弦誤差Cepを求め、プログラムを作成する。しかしながら、本実施の形態では、目標曲線P(s)における曲率半径rおよび指令速度Fの代わりに、これらのパラメータによって記述される法線加速度An=F
2/rに着目し、その最大値Anmaxを目標曲線の特徴を表す目標曲線指標Igとしている。
【0085】
すなわち、(式9)においてAn=F
2/rとおくと、以下に示す(式14)となる。これが、本実施の形態における弦誤差の関数である。
【0086】
従って、目標曲線P(s)における法線加速度Anの最大値を、最大法線加速度Anmaxとすると、とり得る最大のCeであるCemaxは、以下に示す(式15)で表すことができる。本実施の形態では、このCemaxをプログラム用弦誤差Cepとする。本実施の形態においては、(式15)からCemaxを算出する手段が目標弦誤差を算出する算出手段である。
【0087】
(式15)を用いて算出される最大弦誤差Cemax用いても、上記第4の実施の形態と同様、目標曲線P(s)における曲率半径rおよび指令速度Fから算出されるどのような法線加速度Anに対しても、ブロック処理時間Tbが間に合わなくなることが抑制され、かつ極力小さい、または十分小さい弦誤差Ce、すなわちプログラム用弦誤差Cepを得ることができる。プログラム用弦誤差Cepを求めた後の処理は、上記第4の実施の形態と同様なので、詳細な説明を省略する。
【0088】
なお、上記第4の実施の形態では目標曲線P(s)における最小曲率半径rminおよび最大指令速度Fmaxを目標曲線指標Igとし、本実施の形態では目標曲線P(s)における曲率半径rおよび指令速度Fから算出される法線加速度An=F2/rの最大値Anmaxを目標曲線指標Igとしたが、これに限られず、他に目標曲線P(s)の特徴を表す指標があればその指標を目標曲線指標Igとしてもよい。
【0089】
[第6の実施の形態]
上記各実施の形態では、プログラム用弦誤差Cepを算出し、算出されたプログラム用弦誤差Cepを用いて数値制御用プログラムを作成した。しかしながら、上記各実施の形態のようにプログラム用弦誤差Cepを用いて数値制御用プログラムを作成した場合、例えば数値制御用プログラム長が長くなり、プログラム作成における計算時間が、想定するものより長くなる等の現象が発生する場合がある。
【0090】
そこで、本実施の形態では、プログラム用弦誤差Cepに弦誤差下限値Ceminを設けることとした。このことにより、プログラム用弦誤差Cepが過剰に小さくなることを予防し、その結果、プログラム作成における計算時間が想定外に長くなることを抑制している。
【0091】
例えば、上記第1の実施の形態の実施例の条件において、曲率半径r=200mmを仮定すると、プログラム用弦誤差はCep=0.00028mmとなるが、このプログラム用弦誤差Cepの値は不必要に小さい値と考えられる。そこで、本実施の形態ではプログラム用弦誤差Cepに弦誤差下限値Ceminを設け、Cep<Ceminとなる場合はプログラム用弦誤差CepをCep=Ceminとする。本実施の形態では、このような算出を行う手段が目標弦誤差を算出する算出手段である。弦誤差下限値Ceminの具体的な値としては、例えばCemin=0.001mmとすることができる。このことによって、不必要に数値制御用プログラムが長くなることや、プログラム作成での計算時間が長くなることが抑制される。プログラム用弦誤差Cepを求めた後の処理は、上記各実施の形態と同様なので、詳細な説明を省略する。
【0092】
以上詳述したように、本発明においては、指令速度F、ブロック処理時間Tb、目標曲線P(s)の曲率半径rに基づいて高速度、高精度加工に適したプログラム用弦誤差Cepを求め、求めたプログラム用弦誤差Cepによって微小線分のプログラムを作成している。この際、プログラム用弦誤差Cepは、弦誤差曲面Sc上の点であってもよいし、予め定められた手順によって求められた弦誤差曲面Sc近傍の点であってもよい。その結果、数値制御工作機械を用いた曲線加工において、従来技術よりもより高速度、高精度加工に適した数値制御用プログラムを作成し、数値制御装置に指令することができることになった。このことにより、本発明に係る数値制御工作システムは、従来技術と比較してより高速度、高精度加工を行うことができるようになった。そのため、本発明に係る数値制御工作システムは加工の効率が向上し、ひいては省エネルギにも貢献することができる。
【符号の説明】
【0093】
1 数値制御工作システム
10、10A 数値制御用プログラム作成装置
12 弦誤差曲面作成手段
14 プログラム用弦誤差作成手段
16 プログラム作成手段
20 数値制御工作機械
Ce 弦誤差
Cep プログラム用弦誤差
Cemax 最大弦誤差
Cemin 弦誤差下限値
F 指令速度
Ig 目標曲線指標
Tb ブロック処理時間
rmin 最小曲率半径
Fmax 最大指令速度
r 曲率半径
P(s) 目標曲線
Sc 弦誤差曲面
An 法線加速度
Anmax 最大法線加速度
s 距離
Δs 微小距離
W 工作物