以下に、本発明にかかる数値制御装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は本発明の実施の形態1による数値制御装置の構成を示す図である。数値制御装置100は、対象点指定部101、参照点群抽出部102、基準直線作成部103、対象点補正部104、指令出力部105、比率算出部106および最大抽出距離入力部107を備えている。数値制御装置100は、加工プログラム108、所定軌跡110および最大抽出距離111を入力とし、サーボへの指令109を出力とする。
加工プログラム108は、工作機械の動作を決定するためのプログラムである。具体的には、加工プログラム108は、工具の位置・姿勢を指令点として表現する。例えば、加工プログラム108は、加工開始から加工終了までに経由する指令点の点列(指令点群)が記述されて構成される。加工プログラム108に記述される指令点群は、工具経路を規定する。サーボへの指令109は、工作機械を構成する各軸を動作させるための情報である。ここでは、サーボへの指令109は、工作機械の各軸がとるべき位置が記述されている。
加工プログラム108に記述される指令点は、打切り誤差または丸め誤差(以降、打切り誤差および丸め誤差を単に誤差という)が含まれている場合がある。数値制御装置100は、加工プログラム108に記述されている夫々の指令点を平滑化処理により補正する。そして、数値制御装置100は、補正後の指令点に基づいて、誤差による影響を除いたサーボへの指令109を生成することができる。
個々の指令点の平滑化処理においては、平滑化処理対象の指令点(対象点)の周辺の指令点が参照される。対象点の平滑化処理のために参照される指令点を、参照点という。最大抽出距離111は、参照点を取得する範囲を規定する情報である。その一例として、ここでは、最大抽出距離111は、参照点を取得する範囲の、対象点からの最大距離が記述される。
所定軌跡110は、平滑化処理において、直線以外に扱う軌跡情報を記述した情報である。所定軌跡110は、例えば半径と角度とが指定される円弧であってよい。ユーザは、対象点がどのような曲線に沿うように平滑化処理したいかに応じて所望の所定軌跡110を入力することができる。
比率算出部106は、入力された所定軌跡110に基づいて比率設定値を算出する。本発明の実施の形態によれば、平滑化処理に用いられる参照点群が、当該参照点群に含まれる指令点のうちの対象点の直前の指令点群(第1指令点群)と対象点の直後の対象点群(第2指令点群)とが、点数または総距離に関して非対称となるように取得される。なお、対象点の前の指令点とは、ここでは、対象点よりも前に指令される指令点をいい、対象点の後の指令点とは、対象点よりも後に指令される指令点をいう。比率設定値は、非対称の度合いを示す設定値である。ここでは一例として、比率設定値は、全参照点に対する第1指令点群の点数または総距離の比率の設定値を示すものとする。なお、比率設定値は、全参照点に対する第2指令点群の点数または総距離の比率の設定値を示すものとしてもよい。
比率算出部106は、具体的には、次のようにして比率設定値を算出する。比率算出部106は、入力された所定軌跡110を読み込み、読み込んだ所定軌跡110の両端を結んだ線分と所定軌跡110とで囲まれる区間の面積を前記線分の長さで割った値(即ち所定軌跡110上の点と所定軌跡110の両端を結んだ線分との間の平均距離)を算出する。そして、比率算出部106は、所定軌跡110上の点で、所定軌跡110の両端を結ぶ線分へ下ろした垂線の長さが平均距離と一致する点を特定し、特定した点から前記両端を結ぶ線分に下ろした垂線の足を求める。そして、比率算出部106は、所定軌跡110の両端間の直線距離に対する、所定軌跡110の一方の端点から前記垂線の足まで距離の比率を求める。そして、比率算出部106は、算出した比率を比率設定値として参照点群抽出部102に渡す。
なお、所定軌跡110上の点と所定軌跡110の両端を結んだ線分との間の平均距離は、ベクトル平均によって算出される。これにより、所定軌跡110が所定軌跡110の両端を結んだ線分と交差する場合でも、実施の形態1が適用可能となる。また、所定軌跡110が3次元の形状で定義される場合でも、実施の形態1が適用可能となる。
最大抽出距離入力部107は、入力された最大抽出距離111を読み込んで、対象点指定部101と参照点群抽出部102とに渡す。
対象点指定部101は、最大抽出距離入力部107から最大抽出距離111を受け取る。また、対象点指定部101は、入力された加工プログラム108を読み込み、指令点群のうちの任意の1つを抽出して対象点に設定する。ここでは、対象点指定部101は、一例として、加工プログラム108に記述された指令点を指令順に順次対象点に設定するものとする。対象点指定部101は、対象点に隣接する指令点(隣接点)と対象点との距離が最大抽出距離111を越える場合、対象点指定部101は、抽出した対象点を指令出力部105に渡す。隣接点と対象点との距離が最大抽出距離111を越えない場合、対象点指定部101は、抽出した対象点を参照点群抽出部102と対象点補正部104とに渡す。なお、ここでは一例として、対象点の直前に指令される指令点を隣接点とする。
参照点群抽出部102は、比率算出部106から比率設定値を受け取り、最大抽出距離入力部107から最大抽出距離111を受け取り、対象点指定部101から対象点を受け取る。そして、参照点群抽出部102は、加工プログラム108に記述された指令点を、対象点から前と後とに夫々辿り、夫々総距離を算出する。ここでは一例として、総距離とは、対象点間の距離の合計距離をいうものとする。そして、参照点群抽出部102は、対象点から前に辿っていった場合の合計距離(第1合計距離)および対象点から後に辿っていった場合の合計距離(第2合計距離)の比と、比率算出部106が算出した比率設定値と、最大抽出距離111と、に基づいて、参照点の抽出範囲を決定し、加工プログラム108から当該抽出範囲内の指令点を抽出して、抽出した指令点を対象点に対する参照点群に設定する。そして、参照点群抽出部102は、参照点群を基準直線作成部103および対象点補正部104に渡す。
ここでは、例えば、参照点群抽出部102は、第1合計距離および第2合計距離の和に対する第1合計距離の比率が比率算出部106から受け取った比率設定値に一致し、かつ、第1合計距離および第2合計距離が何れも最大抽出距離111を越えず、かつ、第1合計距離または第2合計距離のうちの何れか一方が最大となる、という条件を満たすように参照点の抽出範囲を決定するものとする。
基準直線作成部103および対象点補正部104は、実施の形態1の補正部として機能する。
基準直線作成部103は、参照点群抽出部102から参照点群を受け取り、受け取った参照点群の両端(即ち最初に出力される参照点および最後の出力される参照点)を結ぶ直線を作成して基準直線(第1直線)とする。基準直線作成部103は作成した基準直線を対象点補正部104に渡す。
対象点補正部104は、対象点指定部101から対象点を受け取り、参照点群抽出部102から参照点群を受け取り、基準直線作成部103から基準直線を受け取る。ここで、参照点を終点とし、当該参照点から基準直線に下ろした垂線の足を始点とするベクトルを垂直成分評価ベクトルとよぶ。対象点補正部104は、参照点群の各点について垂直成分評価ベクトルを算出し、垂直成分評価ベクトルの各成分を全参照点について平均した垂直成分平均ベクトル(平均ベクトル)を求める。そして、対象点補正部104は、対象点から基準直線に下ろした垂線の足の位置に垂直成分平均ベクトルを加えた位置を、補正後の対象点位置とする。そして、対象点補正部104は、補正後の対象点位置を指令出力部105に渡す。
指令出力部105は、対象点指定部101または対象点補正部104から受け取った対象点位置に基づいてサーボへの指令109を算出し、算出したサーボへの指令109をサーボへ出力する。
図2は、比率設定値をさらに詳細に説明するための図である。ここでは、所定軌跡110として、半径R、角度θの円弧が入力されたものとしている。円弧の端点間を結んだ直線と円弧とで囲まれる部分の面積をS1、円弧の端点間の長さをW、円弧の端点と円弧の中心点の3点を頂点とする三角形の面積をS2、円弧の端点を結んだ直線から円弧の中心点までの距離をH、とおくと、下記に示す式1〜式4の関係が成立する。
S1+S2=π・R2・θ/(2・π) (式1)
W/2=R・sin(θ/2) (式2)
H=R・cos(θ/2) (式3)
S2=W・H/2 (式4)
式1〜式4の関係から、次の式5が成立する。
S1/W=R・[{(θ/2)/sin(θ/2)}−cos(θ/2)]/2 (式5)
円弧の端点のうちの一つの点Aから他方の端点である点Bに向かってAB間を結ぶ直線(線分AB)上を距離Xだけ進んだ点を点Cとし、点Cを通り、かつ、線分ABと垂直な直線が円弧と交わる点を点Dとし、CD間の距離をYとした場合、比率算出部106が算出する比率設定値は、S1/W=Yを満たすXにおけるX/Wに等しい。
ここで、点Dと円弧の中心点とを結ぶ直線と線分ABとの角度をΦとすると、次の式6および式7が成立する。
Y+H=R・sinΦ (式6)
(W/2)−X=R・cosΦ (式7)
S1/W=YとなるXにおいては、θ/2=Θとおくと、X/Wは次式8のように表現できる。
X/W=0.5−sqrt[1−{0.5・(Θ/sinΘ+cosΘ)}2]/(2・sinΘ) (式8)
このように、所定軌跡110が円弧の場合には、X/Wの値は、Θ(=θ/2)のみに依存することがわかる。
図3は、θ=5〜175deg(ただし360deg=2・πラジアン)におけるX/Wの具体的な数値を示す図である。図3に示すように、θ=5〜175degの円弧軌跡が入力された場合には、比率設定値は、およそ20%であることが分かる。
参照点が図2に示す円弧AB上に位置する場合、垂直成分評価ベクトルの大きさの平均値(即ち垂直成分平均ベクトルの大きさ)は、S1/Wにほぼ一致する。そして、比率算出部106は、S1/W=Yを満たす点Xに対象点が位置し、かつ、参照点群が円弧AB上に位置するように、比率設定値を算出する。これにより、対象点位置が誤差に起因して円弧AB上からずれている場合であっても、円弧AB上に補正される。
図4は、第1合計距離と第2合計距離とが対称になるように抽出範囲が決定される場合(以下、比較例という)と、実施の形態1により抽出範囲が決定される場合と、の両方の場合における補正位置を説明する図である。本図において、黒丸は、補正前の指令点を示し、白抜き丸は、補正後の指令点を示す。また、黒矢印は垂直成分評価ベクトルを示す。また、白抜き矢印は、垂直成分平均ベクトルを示す。比較例によって抽出範囲が決定される場合、対象点(点P1)においては、点P1の近傍の円弧上の点と基準直線との距離が最も大きくなり、その距離は垂直成分平均ベクトルの大きさよりも大きい。したがって、補正後の対象点は、円弧上から乖離した場所に位置することとなる。これに対して、実施の形態1により抽出範囲が決定される場合、対象点(点P2)においては、点P2の近傍の円弧上の点と基準直線との距離が、垂直成分平均ベクトルの大きさと最も小さくなる。したがって、比較例によって抽出範囲が決定される場合よりも、実施の形態1により抽出範囲が決定される場合のほうが、対象点の位置を円弧上に精度よく補正することができる。
図5は、実施の形態1の数値制御装置100の動作を説明するフローチャートである。
まず、比率算出部106が、入力された所定軌跡110を読み込む(S101)。そして、比率算出部106は、読み込んだ所定軌跡110に基づいて比率設定値を算出する(S102)。比率算出部106が算出した比率設定値は参照点群抽出部102に渡される。
続いて、最大抽出距離入力部107は、最大抽出距離111を読み込む(S103)。最大抽出距離入力部107が読み込んだ最大抽出距離111は、対象点指定部101と参照点群抽出部102に渡される。
続いて、対象点指定部101は、加工プログラム108中に未実行の移動指令があるか否かを確認する(S104)。未実行の移動指令が存在しない場合(S104、No)、平滑化処理が終了となる。未実行の移動指令が存在する場合(S104、Yes)、対象点指定部101は、未実行移動指令の最初の指令点を対象点とする(S105)。
続いて、対象点指定部101は、対象点と隣接する指令点(隣接点)との間の距離が最大抽出距離111を越えるか否かを判定する(S106)。ここで判定対象となる隣接点は、対象点よりも1つ前に指令される指令点をいう。隣接点と指令点との間の距離が最大抽出距離111を越えている場合(S106、Yes)、対象点指定部101は、当該対象点(対象点位置)を出力する。対象点指定部101が出力した対象点位置は、指令出力部105に渡される。
隣接点と指令点との間の距離が最大抽出距離111を越えない場合(S106、No)、参照点群抽出部102は、第1合計距離および第2合計距離の和に対する第1合計距離の比率が比率算出部106から受け取った比率設定値に一致し、かつ、第1合計距離および第2合計距離が何れも最大抽出距離111を越えず、かつ、第1合計距離または第2合計距離のうちの何れか一方が最大となる、という条件を満たすように参照点の抽出範囲を決定する(S107)。そして、参照点群抽出部102は、加工プログラム108における前記決定した抽出範囲から参照点群を抽出する(S108)。参照点群抽出部102によって抽出された参照点群は、基準直線作成部103と対象点補正部104とに渡される。
続いて、基準直線作成部103は、参照点群の両端を結ぶ直線(基準直線)を作成する(S109)。作成された基準直線は対象点補正部104に渡される。
続いて、対象点補正部104は、基準直線と参照点群とに基づいて対象点位置を補正する(S110)。補正後の対象点位置は指令出力部105に渡される。
指令出力部105は、対象点指定部101から出力された対象点位置または対象点補正部104から出力された補正後の対象点位置に基づき、サーボへの指令109を生成し、出力する(S111)。
ステップS110の処理の後、対象点指定部101は、対象点を加工プログラム108に記述された未実行の移動指令から削除して(ステップS112)、ステップS104の処理を再び実行する。
CAMから指令点が出力される際に小数点以下の桁数が少ない場合(事例1)、前述のように、加工プログラム108に記載される指令点が滑らかでなくなる。事例1を想定した場合において、補正前の指令点位置と数値制御装置100による補正後の指令点位置との差を説明する。
図6は、直線軌跡を表現する指令点群に関し、補正前の指令点位置と補正後の指令点位置とを示す図である。本図において、白抜き丸は、補正前の指令点位置、十字は、実施の形態1の数値制御装置100による補正後の指令点位置、白抜き四角は、比較例によって補正された場合の補正後の指令点位置を示す。図示するように、工具経路が直線軌跡になることを意図して指令点が作成されている場合であっても、補正前の指令点は所定の刻み幅毎にステップ状に配置され、かつ、1ステップにつき複数個の指令点が配置されている。そして、数値制御装置100および比較例のどちらであっても、指令点が直線状に位置するように補正されている。
図7は、円弧軌跡を表現する指令点群に関し、補正前の指令点位置と補正後の指令点位置とを示す図である。図示するように、比較例によれば、指令点が円弧軌跡よりも内側に位置している。即ち、内回り誤差が生じている。これに対し、実施の形態1の数値制御装置100によれば、内回り誤差を生じることなく円弧上に補正されていることがわかる。
なお、以上の説明においては、参照点群抽出部102は、第1合計距離および第2合計距離の和に対する第1合計距離の比率が比率算出部106から受け取った比率設定値に一致し、かつ、第1合計距離および第2合計距離が何れも最大抽出距離111を越えず、かつ、第1合計距離または第2合計距離のうちの何れか一方が最大となる、という条件を満たすように参照点の抽出範囲を決定するとして説明した。しかしながら、第1合計距離および第2合計距離の和に対する第1合計距離の比率が比率設定値に一致する場合はまれである。したがって、参照点群抽出部102は、第1合計距離および第2合計距離の和に対する第1合計距離の比率が比率設定値にほぼ一致するように抽出範囲を決定するようにしてもよい。また、参照点群抽出部102は、抽出範囲の境界において、指令点を結ぶ直線上の点で第1合計距離および第2合計距離の和に対する第1合計距離の比率が比率設定値に一致するような内挿点を作成し、当該内挿点を参照点群に加えるようにしてもよい。
また、参照点群抽出部102は、参照点の総数に対する第1指令群または第2指令群の点数の比が比率設定値に一致するように抽出範囲を決定するようにしてもよい。これにより、参照点群抽出部102は、指令点間の距離を算出することなく抽出範囲を決定することができるので、計算の負荷を軽減することができる。
また、参照点群抽出部102は、参照点群の両端間の距離に対する、対象点から参照点群の両端を結ぶ直線に下ろした垂線の足から参照点群の端点までの距離の比率が比率設定値に一致するように抽出範囲を決定するようにしてもよい。これにより、参照点群の両端と対象点との間の位置関係が、図2に示した所定軌跡110の両端の点であるA点およびB点とC点との間の位置関係と対応するので、補正の精度を高めることが可能となる。
なお、以上の説明においては、指令点間の距離の合計距離を総距離と定義したが、総距離はこの定義だけに限定されない。例えば3以上の指令点において、最初に指令される指令点と最後に指令される指令点との間の直線距離を総距離としてもよい。
また、参照点群抽出部102は、基準直線作成部103および対象点補正部104は、次のように構成されてもよい。即ち、参照点群抽出部102は、第1合計距離および第2合計距離の和に対する第1合計距離の比率が比率設定値に一致するように第1の抽出範囲を決定し、第1合計距離および第2合計距離の和に対する第2合計距離の比率が比率設定値に一致するように第2の抽出範囲を決定し、夫々の抽出範囲から参照点群を抽出する。そして、基準直線作成部103および対象点補正部104は、協働して、夫々の参照点群に基づいて二通りの垂直成分平均ベクトルを算出し、対象点補正部104は、二通りの垂直成分平均ベクトルの平均値を用いて対象点を補正する。これにより、工具経路が往復する場合に、往路と復路とで工具が同一経路上を推移するように工作機械を制御することができるようになる。
また、指令出力部105は、対象点指定部101または対象点補正部104から渡された対象点間を補間するようにサーボへの指令109を生成するようにしてもよい。また、数値制御装置100は、加工プログラム108に記述されている指令点群を補間して、補間後の指令点群を、対象点および参照点の抽出対象とするようにしてもよい。
また、本実施の形態の説明においては、並進移動指令の3次元空間上で平滑化を行っているが、回転軸を軸とした座標空間上で平滑化を行ったり、並進移動・回転移動が混在するN次元空間上で平滑化を行ったり、横軸を予想時刻として縦軸を工作機械の各軸とした座標空間で平滑化を行ったり、横軸を工具先端の移動量または並進・回転全軸の合計移動量として縦軸を工作機械の各軸とした座標空間で平滑化を行ったりする場合であっても本実施の形態は適用可能である。
以上述べたように、本発明の実施の形態1によれば、参照点群抽出部102は、加工プログラム108から、補正の対象点の周辺の複数の指令点を、対象点の前に出力される指令点と対象点の後に出力される指令点とが点数または総距離が非対称になるように抽出し、抽出した複数の指令点を参照点群に設定するように構成し、基準直線作成部103は、参照点群のうちの最初に出力される指令点と最後に出力される指令点とを結ぶ基準直線を算出し、参照点群に含まれる指令点から基準直線に下ろした垂直成分評価ベクトルの平均ベクトルである垂直成分平均ベクトルを算出し、対象点補正部104は、対象点から基準直線に下ろした垂線の足に垂直成分平均ベクトルを加えた位置を補正後の対象点とする。これにより、数値制御装置100は、対象点の前に出力される指令点と対象点の後に出力される指令点とが点数または総距離が対称になるように参照点群が抽出される場合に比べて対象点が所定軌跡110に近くなるように補正することができるので、円弧などの曲線軌跡を意図して指令された場合であっても内回り誤差を発生させることなく工具経路を平滑化でき、かつ、直線を意図して指令された場合であっても工具経路が当該直線上に乗るように工具経路を平滑化できる。
また、比率算出部106は、所定軌跡110の入力を受け付けて、所定軌跡110上の点と所定軌跡110の両端を結ぶ直線と間の平均距離を算出し、当該直線との間の距離が平均距離に一致する所定軌跡110上の点を特定し、特定した点から所定軌跡110の両端を結ぶ直線に下ろした垂線の足から所定軌跡110の端点までの距離を算出し、当該算出した距離の所定軌跡110の両端間の直線距離に対する比率である比率設定値を算出する。そして、参照点群抽出部102は、参照点群に対する対象点の前または対象点の後に出力される指令点の点数または総距離の比率が比率設定値に一致するように参照点群を抽出する。これにより、数値制御装置100は、対象点が所定軌跡110にさらに近くなるように補正することができる。
また、最大抽出距離入力部107は、最大抽出距離111の入力を受け付ける。対象点指定部101は、加工プログラム108に記述されている指令点のうちの、隣接する指令点との距離が最大抽出距離111を越えない指令点を対象点補正部104に渡し、隣接する指令点との距離が最大抽出距離111を越える指令点を指令出力部105に渡す。即ち、対象点指定部101は、隣接する指令点との距離が最大抽出距離111を越えない指令点を補正の対象に指定し、隣接する指令点との距離が最大抽出距離111を越える指令点を補正の対象に指定しない。これにより、最大抽出距離111の設定によって、微小線分による指令部分に対してのみ補正をかけることが可能となる。
また、参照点群抽出部102は、参照点群を構成する指令点の総距離が最大抽出距離111を越えないように参照点群を抽出する。これにより、ユーザは参照点の数を変化させることができるようになる。
実施の形態2.
図8は本発明の実施の形態2による数値制御装置の構成を示す図である。なお、実施の形態1の数値制御装置100と同様の構成要素には、実施の形態1と同じ名称および符号を付して、重複する説明を省略する。
実施の形態2の数値制御装置200は、対象点指定部201、参照点群抽出部202、基準直線作成部103、対象点補正部104、指令出力部105および角度閾値入力部203を備えている。数値制御装置200は、加工プログラム108、所定の比率設定値204および角度閾値205を入力とし、サーボへの指令109を出力とする。
実施の形態2によれば、対象点と対象点の1つ前に指令される指令点とを結ぶ直線と、対象点と対象点の1つ後に指令される指令点とを結ぶ直線と、がなす角度(以降、指令点角度という)から、対象点を補正対象とするか否かが判定される。誤差を含む指令点においては、指令点角度がその指令点の周辺の指令点の指令点角度から著しくかけ離れた値をとる場合がある。実施の形態2においては、周辺の指令点とは指令点角度が著しくかけ離れた指令点を検出して、検出した指令点を補正することができる。角度閾値205は、対象点を補正対象とするか否かの判定に用いられる閾値である。なお、指令点角度は、その指令点において工具の進行方向が変化しない場合における指令点角度を0degとするように表現されてもよいし、180degとするように表現されてもよい。
比率設定値204は、参照点群抽出部202が参照点群を抽出する際に利用される比率である。比率設定値204は、参照点群の抽出範囲が対象点を中心として非対称となるように設定されることが可能である。具体的には、比率設定値204は、例えば50%以外の数値が設定可能である。
角度閾値入力部203は、入力された角度閾値205を読み込んで、対象点指定部201に渡す。
対象点指定部201は、角度閾値入力部203から角度閾値205を受け取る。そして、対象点指定部201は、加工プログラム108を読み込み、指令点のうち1つを抽出して対象点に設定する。そして、対象点指定部201は、対象点の指令点角度を算出する。また、対象点指定部201は、対象点の周辺の複数の指令点における指令点角度を夫々算出し、算出した指令点角度の平均値を求める。ここで、対象点の周辺の複数の指令点とは、一例として、対象点を含むものとしている。また、対象点の周辺の複数の指令点とは、一例として、対象点の直前の1以上の所定数の指令点と、対象点の直後の1以上の所定数の指令点とを含むものとしている。なお、対象点の周辺の指令点における指令点角度の平均値を、指令点角度周辺値と表現する。対象点指定部201は、対象点における指令点角度と指令点角度周辺値との差分が角度閾値205を越えない場合、指令出力部105に対象点を渡す。対象点における指令点角度と指令点角度周辺値との差分が角度閾値205を越える場合、対象点指定部201は、参照点群抽出部202と対象点補正部104とに対象点を渡す。
なお、本実施の形態2では、対象点指定部201は、指令点角度周辺値として対象点の周辺の複数の指令点での指令点角度の平均値を求めているが、指令点角度周辺値は、対象点の周辺の指令点における指令点角度を代表する値であれば平均値でなくても構わない。例えば、平均値の代わりに中間値または最頻値が採用可能である。
参照点群抽出部202は、入力された比率設定値204を受け取り、対象点指定部201から対象点を受け取る。そして、参照点群抽出部202は、加工プログラム108に記載された指令点について、第1合計距離と第2合計距離との比と、比率設定値204とに基づいて参照点の抽出範囲を決定し、加工プログラム108から当該抽出範囲内の指令点を抽出して、抽出した指令点を対象点に対する参照点群とする。そして、参照点群抽出部202は、参照点群を基準直線作成部103および対象点補正部104に渡す。
図9は、実施の形態2の数値制御装置200の動作を説明するフローチャートである。
まず、角度閾値入力部203は、入力された角度閾値205を読み込む(S201)。角度閾値入力部203が読み込んだ角度閾値205は、対象点指定部201に渡される。
続いて、参照点群抽出部202は、入力された比率設定値204を読み込む(S202)。
続いて、対象点指定部201は、加工プログラム108中に未実行の移動指令があるか否かを判定する(S203)。未実行の移動指令が存在しない場合(S203、No)、平滑化処理が終了となる。未実行の移動指令が存在する場合(S203、Yes)、対象点指定部201は、未実行移動指令の最初の指令点を対象点とする(S204)。
続いて、対象点指定部201は、対象点における指令点角度を算出し(S205)、指令点角度周辺値を算出する(S206)。そして、対象点指定部201は、ステップS205の処理において算出した対象点における指令点角度と、ステップS206の処理において算出した指令点角度周辺値と、の差分が角度閾値205を越えるか否かを判定する(S207)。前記差分が角度閾値205を越えていない場合(S207、No)、対象点指定部201は、当該対象点(対象点位置)を出力する。対象点指定部201が出力した対象点位置は、指令出力部105に渡される。
前記差分が角度閾値205を越えている場合(S207、Yes)、参照点群抽出部202は、第1合計距離および第2合計距離の和に対する第1合計距離の比率が比率設定値204と一致するように抽出範囲を決定する(S208)。そして、参照点群抽出部202は、加工プログラム108における前記決定した抽出範囲から参照点群を抽出する(S209)。参照点群抽出部202によって抽出された参照点群は、基準直線作成部103と対象点補正部104とに渡される。
続いて、基準直線作成部103は、参照点群の両端を結ぶ直線(基準直線)を作成する(S210)。作成された基準直線は対象点補正部104に渡される。
続いて、対象点補正部104は、基準直線と参照点群とに基づいて対象点位置を補正する(S211)。補正後の対象点位置は指令出力部105に渡される。
指令出力部105は、対象点指定部201から出力された対象点位置または対象点補正部104から出力された補正後の対象点位置に基づき、サーボへの指令109を生成し、出力する(S212)。
ステップS212の処理の後、対象点指定部201は、対象点を加工プログラム108に記述された未実行の移動指令から削除して(ステップS213)、ステップS203の処理を再び実行する。
このように、本発明の実施の形態2によれば、角度閾値入力部203は、角度閾値205の入力を受け付ける。そして、対象点指定部201は、指令点角度と指令点角度周辺値との差分が角度閾値205を越える指令点を、補正の対象に指定する。誤差を含む指令点においては、その指令点における指令点角度が指令点角度周辺値よりも著しく大きくなる場合がある。これにより、誤差を含む可能性が高い指令点のみを補正の対象とすることが可能となる。また、誤差を含まない可能性が高い指令点については、指令された通りの動作を保証することができる。
また、参照点群抽出部202は、比率設定値204の入力を受け付ける比率入力部として機能する。これにより、ユーザは所望の比率設定値204を設定することが可能となる。また、ユーザは比率設定値204を所望のタイミングで所望の値に変更することが可能となる。
実施の形態3.
図10は、本発明の実施の形態3による数値制御装置の構成を示す図である。なお、実施の形態1の数値制御装置100または実施の形態2の数値制御装置200と同様の構成要素には、実施の形態1または実施の形態2と同じ名称および符号を付して、重複する説明を省略する。
実施の形態3の数値制御装置300は、対象点指定部301、参照点群抽出部202、基準直線作成部103、対象点補正部104、指令出力部105および往復変化量閾値入力部302を備えている。数値制御装置300は、加工プログラム108、所定の比率設定値204および往復変化量閾値303を入力とし、サーボへの指令109を出力とする。
前述のように、誤差が原因となって、本来実現したい軌跡は滑らかに変化しているにも関わらず、加工プログラム108上では、特定の軸について微小な往復動作を指令する場合がある。実施の形態3によれば、数値制御装置300は、微小な往復動作を指令する箇所を特定して、特定した箇所について平滑化処理を施すことができる。往復変化量閾値303は、加工プログラム108中の指令点での所定の軸について、指令値間の移動量が微小な移動量であるかの判定に用いられる閾値である。往復変化量閾値303は、指令値間の移動量が微小な移動量と判定するための最大移動量を示している。
往復変化量閾値入力部302は、往復変化量閾値303を読み込んで、対象点指定部301に渡す。
対象点指定部301は、往復変化量閾値入力部302から往復変化量閾値303を受け取る。そして、対象点指定部301は、加工プログラム108を読み込み、指令点のうち1つを抽出して対象点とする。そして、対象点指定部301は、対象点を含む対象点の周辺の区間の指令点を参照し、参照した区間の指令点群が所定の軸方向の往復動作を指令しており、かつ、所定の軸方向の往復動作の移動量が往復変化量閾値303を越えない、という条件が満たされる場合に、参照点群抽出部202と対象点補正部104とに対象点を渡す。前記条件が満たされない場合、対象点指定部301は、指令出力部105に対象点を渡す。なお、対象点指定部301が参照する区間は、どのように決定されてもよい。
図11は、実施の形態3の数値制御装置300の動作を説明するフローチャートである。
まず、往復変化量閾値入力部302は、入力された往復変化量閾値303を読み込む(S301)。往復変化量閾値入力部302が読み込んだ往復変化量閾値303は、対象点指定部301に渡される。
続いて、参照点群抽出部202は、入力された比率設定値204を読み込む(S302)。
続いて、対象点指定部301は、加工プログラム108中に未実行の移動指令があるか否かを判定する(S303)。未実行の移動指令が存在しない場合(S303、No)、平滑化処理が終了となる。未実行の移動指令が存在する場合(S303、Yes)、対象点指定部301は、未実行移動指令の最初の指令点を対象点とする(S304)。
続いて、対象点指定部301は、対象点の周辺の指令点群が所定の軸方向の往復動作を指令し、かつ、所定の軸方向の往復動作の移動量が往復変化量閾値303を越えない、という条件が満たされるか否かを、対象点を含む対象点の周辺の区間に含まれる複数の指令点に基づいて判定する(S305)。ステップS305の判定条件が満たされない場合(S305、No)、対象点指定部301は、当該対象点(対象点位置)を出力する。対象点指定部301が出力した対象点位置は、指令出力部105に渡される。
ステップS305の判定条件が満たされる場合(S305、Yes)、参照点群抽出部202は、ステップS208およびステップS209と同等の処理をステップS306およびステップS307において実行することによって、加工プログラム108から参照点群を抽出する。参照点群抽出部202によって抽出された参照点群は、基準直線作成部103と対象点補正部104とに渡される。
続いて、基準直線作成部103は、参照点群の両端を結ぶ直線(基準直線)を作成する(S308)。作成された基準直線は対象点補正部104に渡される。
続いて、対象点補正部104は、基準直線と参照点群とに基づいて対象点位置を補正する(S309)。補正後の対象点位置は指令出力部105に渡される。
指令出力部105は、対象点指定部301から出力された対象点位置または対象点補正部104から出力された補正後の対象点位置に基づき、サーボへの指令109を生成し、出力する(S310)。
ステップS310の処理の後、対象点指定部301は、対象点を加工プログラム108に記述された未実行の移動指令から削除して(ステップS311)、ステップS303の処理を再び実行する。
このように、本発明の実施の形態3におれば、往復変化量閾値入力部302は、往復変化量閾値303の入力を受け付ける。そして、対象点指定部301は、周辺の指令点が所定の軸方向の往復動作を指令し、かつ、その往復動作の移動量が往復変化量閾値303を越えない、という条件が満たされる指令点を補正の対象に指定する。これにより、数値制御装置300は、加工時の傷などの要因となりやすい微小な軸反転箇所のみを平滑化し、それ以外の指令点については指令通りの動作を保証することが出来る。
実施の形態4.
図12は、本発明の実施の形態4による数値制御装置の構成を示す図である。なお、実施の形態1の数値制御装置100または実施の形態2の数値制御装置200と同様の構成要素には、実施の形態1または実施の形態2と同じ名称および符号を付して、重複する説明を省略する。
実施の形態4の数値制御装置400は、対象点指定部401、参照点群抽出部402、基準直線作成部103、対象点補正部104、指令出力部105および最大抽出点数入力部403を備えている。数値制御装置400は、加工プログラム108、所定の比率設定値204および最大抽出点数404を入力とし、サーボへの指令109を出力とする。
最大抽出点数404は、対象点の補正に用いられる参照点の点数に制限をかけるための値である。最大抽出点数404は、許容される最大点数を示している。
対象点指定部401は、加工プログラム108を読み込み、指令点のうち1つを抽出して対象点とする。そして、対象点指定部401は、参照点群抽出部402と対象点補正部104とに対象点を渡す。
最大抽出点数入力部403は、入力された最大抽出点数404を読み込んで、参照点群抽出部402に渡す。
参照点群抽出部402は、入力された比率設定値204を読み込み、最大抽出点数入力部403から最大抽出点数404を受け取り、対象点指定部401から対象点を受け取る。そして、参照点群抽出部402は、加工プログラム108に記述された指令点を、対象点から前と後とに夫々辿り、第1合計距離および第2合計距離を算出する。そして、参照点群抽出部402は、第1合計距離および第2合計距離の比と、比率設定値204と、最大抽出点数404と、に基づいて、参照点の抽出範囲を決定し、加工プログラム108から当該抽出範囲内の指令点を抽出して、抽出した指令点を対象点に対する参照点群とする。ここで、参照点群抽出部402は、参照点の数が最大抽出点数404を越えないように抽出範囲を決定する。参照点群抽出部402は、参照点群を基準直線作成部103および対象点補正部104に渡す。
図13は、実施の形態4の数値制御装置400の動作を説明するフローチャートである。
まず、最大抽出点数入力部403は、入力された最大抽出点数404を読み込む(S401)。最大抽出点数入力部403が読み込んだ最大抽出点数404は、参照点群抽出部402に渡される。
続いて、参照点群抽出部402は、入力された比率設定値204を読み込む(S402)。
続いて、対象点指定部401は、加工プログラム108中に未実行の移動指令があるか否かを判定する(S403)。未実行の移動指令が存在しない場合(S403、No)、平滑化処理が終了となる。未実行の移動指令が存在する場合(S403、Yes)、対象点指定部401は、未実行の移動指令の最初の指令点を対象点とする(S404)。
続いて、参照点群抽出部402は、第1合計距離および第2合計距離の和に対する第1合計距離の比率が比率設定値に一致し、かつ、第1合計距離および第2合計距離の和が最大抽出点数404を越えない範囲で最大となる、という条件を満たすように参照点の抽出範囲を決定する(S405)。そして、参照点群抽出部402は、加工プログラム108における前記決定した抽出範囲から参照点群を抽出する(S406)。参照点群抽出部402によって抽出された参照点群は、基準直線作成部103と対象点補正部104とに渡される。
続いて、基準直線作成部103は、参照点群の両端を結ぶ直線(基準直線)を作成する(S407)。作成された基準直線は対象点補正部104に渡される。
続いて、対象点補正部104は、基準直線と参照点群とに基づいて対象点位置を補正する(S408)。補正後の対象点位置は指令出力部105に渡される。
指令出力部105は、対象点指定部401から出力された対象点位置または対象点補正部104から出力された補正後の対象点位置に基づき、サーボへの指令109を生成し、出力する(S409)。
ステップS409の処理の後、対象点指定部401は、対象点を加工プログラム108に記述された未実行の移動指令から削除して(ステップS410)、ステップS403の処理を再び実行する。
参照点群が軌跡の種類が異なる指令点を含む場合、対象点を所望の軌跡に乗せることができない場合がある。本発明の実施の形態4によれば、最大抽出点数入力部403は、最大抽出点数404の入力を受け付ける。そして、参照点群抽出部402は、参照点の点数が最大抽出点数404を越えないように参照点群を抽出する。これにより、数値制御装置400は、参照点の点数を最大抽出点数404で制限するため、加工プログラム108中で軌跡の種類が変わる箇所を参照点群に含む可能性を低減することができる。
実施の形態5.
図14は、本発明の実施の形態5による数値制御装置の構成を示す図である。なお、実施の形態1の数値制御装置100または実施の形態2の数値制御装置200と同様の構成要素には、実施の形態1または実施の形態2と同じ名称および符号を付して、重複する説明を省略する。
実施の形態5の数値制御装置500は、対象点指定部501、参照点群抽出部502、基準直線作成部103、対象点補正部104、指令出力部105、軌跡切替り判定部503、コーナー判定角度閾値入力部504および同一軌跡角度閾値入力部505を備えている。数値制御装置500は、加工プログラム108、所定の比率設定値204、コーナー判定角度閾値506および同一軌跡角度閾値507を入力とし、サーボへの指令109を出力とする。
実施の形態5によれば、軌跡切替り判定部503は、加工プログラム108に記述されている指令点群のうち、異なる種類の軌跡の境界に位置する指令点である境界点を特定する特定部として機能する。異なる種類の軌跡にまたがった指令点群を参照点群として平滑化処理が実行されると、その対象点は意図した位置に補正されない。これを防ぐために、実施の形態5によれば、境界点を含まないように参照点群を設定することができる。
コーナー判定角度閾値506は、指令点がコーナーに該当するか否かの判定に用いられる閾値である。コーナーとは、境界点の1つであって、その境界点において工具の進行方向の変化が大きく変化するような境界点をいう。コーナー判定角度閾値506は、ある指令点における指令点角度とその指令点にかかる指令点角度周辺値との差分の閾値であって、その指令点がコーナーであると判定されるための最小の差分を示している。
同一軌跡角度閾値507は、指定点がその指令点の前後で軌跡の種類が切り替わる境界点であるか否かの判定に用いられる閾値である。コーナー以外の境界点、即ち境界点において工具の進行方向の変化が大きく変化しないような境界点は、同一軌跡角度閾値507を用いた判定によって特定される。同一軌跡角度閾値507の詳細は後ほど明らかになる。
コーナー判定角度閾値入力部504は、入力されたコーナー判定角度閾値506を読み込み、軌跡切替り判定部503に渡す。
同一軌跡角度閾値入力部505は、入力された同一軌跡角度閾値507を読み込み、軌跡切替り判定部503に渡す。
対象点指定部501は、加工プログラム108を読み込み、指令点のうち1つを抽出して対象点に設定する。そして、対象点指定部501は、対象点を軌跡切替り判定部503に渡し、軌跡切替り判定部503は渡された対象点が境界点に該当するか否かを判定する。対象点が境界点に該当すると判定された場合、対象点指定部501は、指令出力部105に対象点を渡す。対象点が境界点に該当しないと判定された場合、対象点指定部501は、参照点群抽出部502と対象点補正部104とに対象点を渡す。
参照点群抽出部502は、入力された所定の比率設定値204を受け取り、対象点指定部501から対象点を受け取る。そして、参照点群抽出部502は、加工プログラム108に記載された指令点について、第1合計距離と第2合計距離との比と、比率設定値204とに基づいて参照点の抽出範囲を決定し、加工プログラム108から加工プログラム108から当該抽出範囲内の指令点を抽出して、抽出した指令点を対象点に対する参照点群とする。そして、参照点群抽出部502は、参照点群を軌跡切替り判定部503に渡す。軌跡切替り判定部503は、参照点群が境界点を含むか否かを判定する。参照点群が境界点を含むと判定された場合、参照点群抽出部502は、抽出範囲を狭めて参照点群を再び抽出し、抽出した参照点群を再び軌跡切替り判定部503に渡す。参照点群が境界点を含まないと判定された場合、参照点群抽出部502は、その参照点群を基準直線作成部103と対象点補正部104とに渡す。
参照点群抽出部502が抽出範囲を狭めていった結果、参照点群が対象点のみで構成されるに至った場合、対象点前後には誤差の乗った指令が多く含まれていると考えられる。その場合には、できるだけ広い範囲の参照点群に基づいて平滑化を行うことが可能となるように、参照点群抽出部502は、抽出範囲を狭める前に最初に抽出した参照点群を基準直線作成部103と対象点補正部104とに渡す。
なお、参照点群抽出部502が抽出範囲を狭めた結果、参照点群が対象点のみで構成されるに至った場合、平滑化を行うことで内回り誤差を発生させる可能性がある。したがって、参照点群抽出部502は、最初に抽出した参照点群を基準直線作成部103および対象点補正部104に渡す代わりに、対象点を指令出力部105に渡すようにしても良い。また、参照点群を構成する指令点の数が所定数を下回った場合に、参照点群抽出部502は、最初に抽出した参照点群を基準直線作成部103と対象点補正部104とに渡すか、または、対象点を指令出力部105に渡すようにしても良い。
軌跡切替り判定部503は、第1判定および第2判定を実行することによって、加工プログラム108に記述されている指令点群のうちの境界点を特定する。
第1判定は、次に説明する通りである。即ち、軌跡切替り判定部503は、判定の対象として着目した指令点について、加工プログラム108に記述されている指令点のうちの任意の指令点に着目して、指令点角度と指令点角度周辺値とを算出する。そして、軌跡切替り判定部503は、着目した指令点にかかる指令点角度と指令点角度周辺値との差分がコーナー判定角度閾値506より小さい場合、当該着目した指令点はコーナーに該当する境界点でないと判定する。また、軌跡切替り判定部503は、着目した指令点にかかる指令点角度と指令点角度周辺値との差分がコーナー判定角度閾値506より大きい場合、当該着目した指令点はコーナーに該当する境界点であると判定する。
第2判定は、次に説明する通りである。即ち、軌跡切替り判定部503は、判定の対象として着目した指令点の直前に指令される所定の数の指令点(第1指令点群)および当該着目した指令点の直後に指令される所定の数の指令点(第2指令点群)について、夫々指令点角度を算出する。また、軌跡切替り判定部503は、第1指令点群の指令点角度を平均して指令点角度周辺値(第1指令点角度)を算出し、第2指令点群の指令点角度を平均して指令点角度周辺値(第2指令点角度)を算出する。軌跡切替り判定部503は、第1指令点群に属する指令点にかかる指令点角度と第1指令点角度との差分が第1指令点群に属する何れの指令点においても同一軌跡角度閾値507より小さく、かつ、第2指令点群に属する指令点にかかる指令点角度と第2指令点角度との差分が第2指令点群に属する何れの指令点においても同一軌跡角度閾値507より小さく、かつ、第1指令点群または第2指令点群に属する指令点のうちの少なくとも1つの指令点にかかる指令点角度と第1指令点角度または第2指令点角度のうちの少なくとも1つとの差分が同一軌跡角度閾値507よりも大きい、という条件を満たされるか否かを判定し、この条件が満たされない場合、着目した指令点は境界点ではないと判定し、この条件が満たされる場合、着目した指令点は境界点であると判定する。
なお、第2判定は、次に説明するように実行されてもよい。即ち、軌跡切替り判定部503は、第1指令点角度と第2指令点角度との差分が同一軌跡角度閾値507よりも小さい場合、着目した指令点は境界点ではないと判定し、第1指令点角度と第2指令点角度との差分が同一軌跡角度閾値507よりも大きい場合、着目した指令点は境界点であると判定する。
軌跡切替り判定部503は、第1判定または第2判定のうちの少なくとも1つにおいて、着目した指令点が(コーナーに該当するか否かにかかわらず)境界点である旨の判定結果を得た場合、着目した指令点は境界点であることを特定することができる。また、軌跡切替り判定部503は、第1判定において、着目した指令点がコーナーに該当する境界点ではないという判定結果を得るとともに、第2判定において、着目した指令点が境界点ではないという判定結果を得た場合には、着目した指令点は境界点ではないことを特定することができる。
軌跡切替り判定部503は、コーナー判定角度閾値入力部504からコーナー判定角度閾値506を受け取り、同一軌跡角度閾値入力部505から同一軌跡角度閾値507を受け取る。また、軌跡切替り判定部503は、対象点指定部501から対象点を受け取るか、または、参照点群抽出部502から参照点群を受け取る。対象点指定部501から対象点を受け取った場合、軌跡切替り判定部503は、対象点が境界点であるか否かを判定して、判定結果を対象点指定部501に返す。参照点群抽出部502から参照点群を受け取った場合、軌跡切替り判定部503は、参照点群に境界点が含まれるか否かを判定して、判定結果を参照点群抽出部502に返す。
なお、軌跡切替り判定部503が境界点を特定するタイミングは任意である。例えば、軌跡切替り判定部503は、加工プログラム108を読み込んで、加工プログラム108に記述されている全ての指令点に対して順次着目して夫々第1判定および第2判定を行って、加工プログラム108に記述されている指令点群のうちの境界点を特定して境界点群を記憶するようにしてもよい。その場合には、軌跡切替り判定部503は、対象点または参照点群を受け取ったとき、予め記憶しておいた境界点群を参照することによって、対象点が境界点であるか否か、または、参照点群に境界点が含まれるか否かを判定する。なお、ここでは、軌跡切替り判定部503は、対象点を受け取ったタイミング、対象点を判定の対象として着目して第1判定および第2判定を実行し、参照点群を受け取ったタイミングで参照点群を構成する夫々の参照点を判定の対象として順次着目して第1判定および第2判定を実行するものとする。
なお、第1判定および第2判定のうちの何れにおいても、指令点とその前後の指令点とを結ぶ直線がなす角度を指令点角度としている。この場合、第1判定において、微小な誤差を含む指令点がコーナーであると判定されたり、第2判定において、誤差を含む指令点が連続する場合に、それらの指令点のうちの少なくとも1つが境界点であると判定されたりする可能性がある。この可能性を低減するために、指令点と指令点から所定の点数だけ離れた位置の指令点を結ぶ直線がなす角度を指令点角度として採用されるようにしても良い。
図15は、実施の形態5の数値制御装置500の動作を説明するフローチャートである。
まず、コーナー判定角度閾値入力部504は、入力されたコーナー判定角度閾値506を読み込む(S501)。コーナー判定角度閾値入力部504が読み込んだコーナー判定角度閾値506は、軌跡切替り判定部503に渡される。
続いて、同一軌跡角度閾値入力部505は、入力された同一軌跡角度閾値507を読み込む(S502)。同一軌跡角度閾値入力部505が読み込んだ同一軌跡角度閾値507は、軌跡切替り判定部503に渡される。
続いて、参照点群抽出部502は、入力された比率設定値204を読み込む(S503)。
続いて、対象点指定部501は、加工プログラム108中に未実行の移動指令があるか否かを判定する(S504)。未実行の移動指令が存在しない場合(S504、No)、平滑化処理が終了となる。未実行の移動指令が存在する場合(S504、Yes)、対象点指定部501は、未実行移動指令の最初の指令点を対象点とする(S505)。
続いて、対象点指定部501は、対象点を軌跡切替り判定部503に渡し、軌跡切替り判定部503は、第1判定および第2判定を実行して、対象点が境界点に該当するか否かを判定する(S506)。ステップS506の判定処理による判定結果は対象点指定部501に渡される。対象点が境界点に該当すると判定された場合(S506、Yes)、対象点指定部501から指令出力部105に対象点(対象点位置)が渡される。
対象点が境界点に該当しないと判定された場合(S506、No)、対象点指定部501から参照点群抽出部502および対象点補正部104に対象点(対象点位置)が渡される。参照点群抽出部502は、第1合計距離および第2合計距離の和に対する第1合計距離の比率が比率設定値204と一致するように抽出範囲を決定する(S507)。そして、参照点群抽出部502は、加工プログラム108における前記決定した抽出範囲から参照点群を抽出する(S508)。
続いて、参照点群抽出部502は、抽出した参照点群を軌跡切替り判定部503に渡し、軌跡切替り判定部503は、渡された参照点群を構成する個々の指令値に順次着目して着目して第1処理および第2処理を実行することによって、参照点群が境界点を含むか否かを判定する(S509)。ステップS509の判定処理による判定結果は参照点群抽出部502に渡される。
参照点群が境界点を含むと判定された場合(S509、Yes)、参照点群抽出部502は、抽出範囲をより小さく設定し直して(S510)、ステップS508の処理を再び実行する。なお、ステップS510の処理において、参照点群抽出部502は、例えば参照点群を構成する指令値の数を減少させることで抽出範囲を狭めることができる。また、ステップS510の処理の際には、参照点群抽出部502は、第1合計距離および第2合計距離の和に対する第1合計距離の比率が比率設定値204と一致するという条件を満たしたまま抽出範囲を狭めることとする。
参照点群が境界点を含まないと判定された場合(S509、No)、参照点群抽出部502は、参照点群を基準直線作成部103と対象点補正部104に参照点群を渡し、基準直線作成部103は、参照点群の両端を結ぶ直線(基準直線)を作成する(S511)。作成された基準直線は対象点補正部104に渡される。
続いて、対象点補正部104は、基準直線と参照点群とに基づいて対象点位置を補正する(S512)。補正後の対象点位置は指令出力部105に渡される。
指令出力部105は、対象点指定部501から出力された対象点位置または対象点補正部104から出力された補正後の対象点位置に基づき、サーボへの指令109を生成し、出力する(S513)。
ステップS513の処理の後、対象点指定部501は、対象点を加工プログラム108に記述された未実行の移動指令から削除して(ステップS514)、ステップS504の処理を再び実行する。
このように、本発明の実施の形態5によれば、軌跡切替り判定部503は、境界点を特定することができる。そして、対象点指定部501は、対象点が境界点に該当する場合には、その対象点を補正の対象から外す。これにより、数値制御装置500は、複数の種類の軌跡が含まれる参照点群に基づいて平滑化処理が行われる可能性を低減することができるようになる。
また、参照点群抽出部502は、抽出範囲に境界点が含まれている場合には、抽出範囲を狭めて参照点群を抽出する。これにより、数値制御装置500は、複数の種類の軌跡が含まれる参照点群に基づいて平滑化処理が行われる可能性を低減することができるようになる。
実施の形態6.
図16は、本発明の実施の形態6による数値制御装置の構成を示す図である。なお、実施の形態1の数値制御装置100、実施の形態2の数値制御装置200または実施の形態4の数値制御装置400と同様の構成要素には、実施の形態1、実施の形態2または実施の形態4と同じ名称および符号を付して、重複する説明を省略する。
実施の形態6の数値制御装置600は、対象点指定部401、参照点群抽出部202、基準直線作成部103、対象点補正部601、指令出力部105および補正量最大値入力部602を備えている。数値制御装置600は、加工プログラム108、比率設定値204および補正量最大値603を入力とし、サーボへの指令109を出力とする。
補正量最大値603は、対象点に加える補正量を制限するための値である。補正量最大値603は、補正量の最大距離(最大量)を示している。
補正量最大値入力部602は、入力された補正量最大値603を読み込み、対象点補正部601に渡す。
対象点補正部601は、補正量最大値入力部602から補正量最大値603を受け取り、対象点指定部401から対象点を受け取り、参照点群抽出部202から参照点群を受け取り、基準直線作成部103から基準直線を受け取る。そして、対象点補正部601は、参照点群を構成する各指令点について垂直成分評価ベクトルを求め、求めた垂直成分評価ベクトルを平均して垂直成分平均ベクトルを求める。そして、対象点補正部601は、対象点の補正後候補点の位置として、対象点から基準直線に下ろした垂線の足の位置に垂直成分平均ベクトルを加えた位置を求める。そして、対象点補正部601は、補正後候補点位置と対象点位置の距離(補正量)を求め、求めた補正量と補正量最大値603とを比較する。補正量が補正量最大値603を越えない場合には、対象点補正部601は、補正後候補点位置を対象点位置として指令出力部105に渡す。補正量が補正量最大値603を越える場合には、対象点補正部601は、対象点位置から補正後候補点位置に向かい、かつ、大きさが補正量最大値603である補正ベクトルを求める。対象点補正部601は、対象点位置に補正ベクトルを加えた位置を新たな対象点位置として、指令出力部105に渡す。即ち、対象点補正部601は、対象点の補正量を補正量最大値603でクランプすることができる。
図17は、実施の形態6の数値制御装置600の動作を説明するフローチャートである。
まず、補正量最大値入力部602は、入力された補正量最大値603を読み込む(S601)。補正量最大値入力部602が読み込んだ補正量最大値603は対象点補正部601に渡される。
続いて、参照点群抽出部202は、入力された比率設定値204を読み込む(S602)。
続いて、対象点指定部401は、加工プログラム108中に未実行の移動指令があるか否かを判定する(S603)。未実行の移動指令が存在しない場合(S603、No)、平滑化処理が終了となる。未実行の移動指令が存在する場合(S603、Yes)、対象点指定部401は、未実行の移動指令の最初の指令点を対象点とする(S604)。対象点は、参照点群抽出部202および対象点補正部601に渡される。
続いて、参照点群抽出部202は、ステップS208およびステップS209と同等の処理をステップS605およびステップS606において実行することによって、加工プログラム108から参照点群を抽出する。参照点群抽出部202によって抽出された参照点群は、基準直線作成部103と対象点補正部601とに渡される。
続いて、基準直線作成部103は、参照点群の両端を結ぶ直線(基準直線)を作成する(S607)。作成された基準直線は対象点補正部601に渡される。
続いて、対象点補正部601は、基準直線と参照点群とに基づいて対象点位置を補正し、補正後候補点を求める(S608)。そして、対象点補正部601は、補正後候補点に補正する場合の補正量が補正量最大値603を越えるか否かを判定する(S609)。補正量が補正量最大値603を越えない場合(S609、No)、対象点補正部601は、補正後候補点の位置を補正後の対象点位置に設定し、指令出力部105に渡す(S610)。補正量が補正量最大値603を越える場合(S609、Yes)、対象点補正部601は、対象点から補正後候補点へ向かい、かつ、大きさが補正量最大値603と等しいベクトルを対象点に加えた位置を、補正後の対象点位置に設定し、指令出力部105に渡す(S611)。
指令出力部105は、対象点指定部401から出力された対象点位置または対象点補正部601から出力された補正後の対象点位置に基づき、サーボへの指令109を生成し、出力する(S612)。
ステップS612の処理の後、対象点指定部201は、対象点を加工プログラム108に記述された未実行の移動指令から削除して(ステップS613)、ステップS603の処理を再び実行する。
このように、本発明の実施の形態6によれば、補正量最大値入力部602は、補正量最大値603の入力を受け付ける。対象点補正部601は、対象点の補正量を補正量最大値603でクランプする。数値制御装置600は元の指令位置からの補正量を制限するので、ユーザは、補正後の指令によって実現される寸法精度と補正前の指令によって実現される寸法精度の差に制限を設けることが出来るようになる。
なお、以上に述べた実施の形態1〜実施の形態6の数値制御装置(数値制御装置100〜数値制御装置600)は、例えばコンピュータが数値制御プログラムを実行することで実現される。図18は、一例として、実施の形態1の数値制御装置100がコンピュータによって実現される場合の数値制御装置100のハードウェア構成例を示す図である。
図18に示すように、数値制御装置100は、CPU(Central Processing Unit)1、RAM(Random Access Memory)2、ROM(Read Only Memory)3、入力装置4、出力装置5およびI/O6を備える。CPU1、RAM2、ROM3、入力装置4、出力装置5およびI/O6は、バスラインを介して夫々接続されている。
CPU1は、コンピュータプログラムである数値制御プログラム31を実行する。出力装置5は、液晶モニタなどの表示装置である。出力装置5は、CPU1からの指示に基づいて、操作画面などのユーザに対する出力情報を表示する。入力装置4は、マウスやキーボードを備えて構成される。入力装置4は、ユーザからの数値制御装置100に対する操作が入力される。入力装置4へ入力された操作情報は、CPU1へ送られる。I/O6は、サーボが接続されるインタフェース装置である。
ROM3は、数値制御プログラム31を予め記憶する記録媒体である。数値制御プログラム31は、ROM3から読み出され、バスラインを介してRAM2へロードされる。CPU1は、RAM2内にロードされた数値制御プログラム31を実行する。具体的には、数値制御プログラム31は、構成要素(対象点指定部101、参照点群抽出部102、基準直線作成部103、対象点補正部104、指令出力部105、比率算出部106および最大抽出距離入力部107)を夫々実現するプログラムモジュールを含んでいる。数値制御装置100では、ユーザによる入力装置4からの指示入力に従って、CPU1が、ROM3内から数値制御プログラム31を読み出してRAM2内のプログラム格納領域に夫々のプログラムモジュールを展開する。CPU1は、RAM2に展開されたプログラムモジュールを実行することによって、対応する構成要素として機能することができる。
また、ROM3は、加工プログラム108、所定軌跡110および最大抽出距離111を予め記憶している。CPU1は、ROM3に予め記憶されている加工プログラム108、所定軌跡110および最大抽出距離111を読み込むことができる。なお、加工プログラム108、所定軌跡110および最大抽出距離111のうちの一部または全部は図示しない外部記憶装置を介して入力されるようにしてもよい。また、所定軌跡110および最大抽出距離111のうちの一方または両方は、ユーザが入力装置4を操作することによって入力され、CPU1に送られるようにしてもよい。参照点群および対象点など、構成要素間で渡される情報は、中間データとしてRAM2に一時記憶される。即ち、構成要素間のデータの授受は、RAM2を介して実現される。CPU1は、生成したサーボへの指令109をI/O6を介してサーボに出力する。
なお、数値制御プログラム31を、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることによりRAM2に展開されるように構成してもよい。また、数値制御プログラム31をインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、数値制御プログラム31を予め記憶する記録媒体は、一時的でない有形の記録媒体であれば、ROM3以外の記録媒体であっても適用可能である。例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、CD−ROM、DVD−ROM、または着脱可能なメモリデバイスが数値制御プログラム31を予め記憶する記録媒体として適用可能である。
なお、対象点指定部101、参照点群抽出部102、基準直線作成部103、対象点補正部104、指令出力部105、比率算出部106および最大抽出距離入力部107は、ソフトウェアにより実現されるものとして説明したが、これらの各構成要素は、ハードウェア、またはハードウェアとソフトウェアとの組み合わせとして実現することができる。これらの構成要素が、ハードウェアとして実現されるか、ソフトウェアとして実現されるかは、装置全体に課される設計制約に基づいて決定される。