(57)【特許請求の範囲】
【請求項１】
テーブルに取付けられたワーク（加工物）に対して少なくとも直線軸３軸によって加工する工作機械を制御するとともに、前記工作機械に対する誤差補正を行う誤差補正部を備えた数値制御装置において、
前記誤差補正部は、前記工作機械のベッドから工具先端点への工具ヘッド側の１個または複数個のリンクベクトルを合成したヘッド側合成リンクベクトルおよび前記工作機械のベッドから工具先端点へのテーブル側の１個または複数個のリンクベクトルを合成したテーブル側合成リンクベクトルに対して伸縮誤差量による演算を行いヘッド側合成誤差リンクベクトルおよびテーブル側合成誤差リンクベクトルを作成し、前記テーブル側合成誤差リンクベクトルと前記ヘッド側合成誤差リンクベクトルとの差分によって補正量を演算する機能を有することを特徴とする誤差補正部を備えた数値制御装置。
【請求項２】
前記リンクベクトルは、ベッド固定点またはリンク軸順における軸駆動部誤差原点から次軸の軸駆動部誤差原点または工具先端点へのベクトルであることを特徴とする請求項１に記載の誤差補正部を備えた数値制御装置。
【請求項３】
前記伸縮誤差量は、熱変位、工具の摩耗による誤差量であることを特徴とする請求項１または２のいずれか１つに記載の誤差補正部を備えた数値制御装置。
【請求項４】
前記伸縮誤差量による演算は、前記１個または複数個のリンクベクトルの第１、第２および第３要素に（１＋伸縮誤差量）を乗算する演算であることを特徴とする請求項１乃至請求項３のいずれか１つに記載の誤差補正部を備えた数値制御装置。
【請求項５】
前記伸縮誤差量は、外部からの入力値、別途設定された設定値、または加工プログラムによる指令値であることを特徴とする請求項１乃至請求項４のいずれか１つに記載の誤差補正部を備えた数値制御装置。
【請求項６】
前記伸縮誤差量は、前記工作機械電源オンからの時間による関数、または前記工作機械における主軸回転数または主軸回転時間の関数であることを特徴とする請求項１乃至請求項４のいずれか１つに記載の誤差補正部を備えた数値制御装置。
【請求項７】
前記誤差補正部は、前記伸縮誤差量に加えて並進誤差量または回転誤差量による誤差リンクベクトルの演算を行うことを特徴とする請求項１乃至請求項６のいずれか１つに記載の誤差補正部を備えた数値制御装置。
【請求項８】
前記並進誤差量または前記回転誤差量は、各軸位置に対応した誤差量が設定されている誤差量データテーブルと該各軸位置によって演算される値であることを特徴とする請求項７に記載の誤差補正部を備えた数値制御装置。
【請求項９】
前記工作機械は、テーブルに取付けられたワーク（加工物）に対して直線軸３軸によって加工する３軸加工機であることを特徴とする請求項１乃至請求項８のいずれか１つに記載の誤差補正部を備えた数値制御装置。
【請求項１０】
前記工作機械は、テーブルに取付けられたワーク（加工物）に対して直線軸３軸とヘッド回転用回転軸２軸によって加工する５軸加工機であることを特徴とする請求項１乃至請求項８に記載の誤差補正部を備えた数値制御装置。
【請求項１１】
前記工作機械は、テーブルに取付けられたワーク（加工物）に対して直線軸３軸とテーブル回転用回転軸２軸によって加工する５軸加工機であることを特徴とする請求項１乃至請求項８に記載の誤差補正部を備えた数値制御装置。
【請求項１２】
前記工作機械は、テーブルに取付けられたワーク（加工物）に対して直線軸３軸とヘッド回転用回転軸１軸とテーブル回転用回転軸１軸によって加工する５軸加工機であることを特徴とする請求項１乃至請求項８に記載の誤差補正部を備えた数値制御装置。
【請求項１３】
前記リンクベクトルに対する伸縮誤差、並進誤差または回転誤差について、着目する必要のない誤差について０とする、または前記リンクベクトルについて、着目する必要のないリンクベクトルは０ベクトルとすることを特徴とする請求項１乃至請求項１２のいずれか１つに記載の誤差補正部を備えた数値制御装置。
【請求項１４】
前記リンクベクトルのうち関連性の強いリンクベクトル同士を結合してリンクベクトルとすることを特徴とする請求項１乃至請求項１３のいずれか１つに記載の誤差補正部を備えた数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械を制御する数値制御装置に関し、特に、テーブルに取付けられたワーク（加工物）に対して少なくとも直線軸３軸によって加工する工作機械を制御するとともに、該工作機械を構成するリンクベクトルに対して誤差補正を行う誤差補正部を備えた数値制御装置に関する。
【背景技術】
【０００２】
工作機械においては、工作機械の組み立て精度による誤差（ピッチ誤差や案内面の真直度誤差など）、運動精度による誤差（位置決め精度の誤差、サーボ応答誤差など）、実加工中運動精度による誤差（熱変位誤差、振動誤差など）など様々な誤差がある。それらの誤差を補正する従来技術として特許文献１に開示される技術がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−３４４３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
背景技術で説明した誤差に加えてさらに伸縮誤差がある。工作機械の各軸駆動部やベッド、ワーク、工具ヘッドおよび工具などは、室温変化や機械自身の発熱および切削熱によって熱変位する。熱変位は工作機械の各軸駆動部、ベッドや工具などを含めた各部材に対する前記伸縮誤差として現れる。さらに、工具は摩耗によって縮小する。  
特許文献１においては、その課題に記載されているように、「工作機械の各軸位置に依存した軸依存並進誤差量または軸依存回転誤差量によって、工作機械のベッドから工具を経由した工具先端点へのリンクベクトルによって補正量を演算し補正を行う誤差補正手段を提供する。」としている。  
【０００５】
ここで、リンクベクトルとは、前記特許文献１の請求項１および請求項２に記載されているように、工作機械のベッドから工具を経由した工具先端点へのリンク軸順における着目軸の誤差中心から次軸の誤差中心または工具先端点へのベクトル（群）または工作機械のベッドからテーブルを経由した工具先端点へのリンク軸順における着目軸の誤差中心から次軸の誤差中心または工具先端点へのベクトル（群）である。つまり、ベッドから工具先端点へ各軸や工具などの各部材がリンクしていると考えた場合のリンク状態を示すベクトル（群）である。  
しかし、この誤差補正方法では、上記の誤差のうちピッチ誤差、真直度誤差、位置決め誤差などは補正することは可能であるが、リンクベクトルに対する上記のような伸縮誤差については補正することができない。それは、従来技術ではリンクベクトルに対する並進誤差および回転誤差は考慮されているけれども、リンクベクトルに対する伸縮誤差は考慮されていないためである。つまり、従来技術にはリンクベクトルに対する伸縮誤差補正という技術思想はなかった。
【０００６】
また、工具ヘッドが回転軸によって回転する工具ヘッド回転型５軸加工機において、工具ヘッドが回転軸によって傾斜している場合に工具軸方向の熱変位誤差を補正する技術として「工具軸方向熱変位補正」は従来技術として知られている。この技術は図１のように、工具ヘッドが回転軸（Ａ軸、Ｃ軸）で回転および傾斜している場合、外部から入力信号として入力される熱変位補正データに基づいて数値制御装置が工具軸方向に補正を行いその補正量によってＸ，Ｙ，Ｚ軸方向に補正を行うものである。つまり、工具軸方向の補正量として入力される熱変位補正データを回転軸位置に基づいてＸ，Ｙ，Ｚ方向の補正量に変換しＸ，Ｙ，Ｚ軸方向に補正するものである。  
しかし、この補正方法は工具ヘッド回転型５軸加工機において工具軸方向にのみ適用される補正であり、３軸加工機も含めた他の軸構成の機械や工作機械全体における各軸駆動部やベッドを含めた各部材に対する補正ではなかった。つまり、各軸駆動部を含めた各部材についてベッドから工具ヘッドを経由した工具先端点への１個または複数個のリンクベクトルまたは前記工作機械のベッドからテーブルを経由した工具先端点への１個または複数個のリンクベクトルに関してそれらのリンクベクトルに対する伸縮誤差補正という技術思想ではなかった。
【０００７】
そこで、本発明の課題は、工作機械のベッドから工具ヘッドを経由した工具先端点への１個または複数個のリンクベクトルまたは工作機械のベッドからテーブルを経由した工具先端点への１個または複数個のリンクベクトルに対して伸縮誤差量による誤差リンクベクトルの演算を行い、リンクベクトルと誤差リンクベクトルとの差分によって補正量を演算し誤差補正を行う機能を有することを特徴とする誤差補正部を備えた数値制御装置を提供することである。  
さらに、本発明では、工作機械のベッドから工具ヘッドを経由した工具先端点への１個または複数個のリンクベクトルまたは工作機械のベッドからテーブルを経由した工具先端点への１個または複数個のリンクベクトルに対して伸縮誤差量に加えて並進誤差または回転誤差による誤差リンクベクトルの演算を行い、該リンクベクトルと該誤差リンクベクトルとの差分によって補正量を演算し誤差補正を行う機能を有することを特徴とする誤差補正部を備えた数値制御装置を提供することである。
【課題を解決するための手段】
【０００８】
本願の請求項１に係る発明は、テーブルに取付けられたワーク（加工物）に対して少なくとも直線軸３軸によって加工する工作機械を制御するとともに、前記工作機械に対する誤差補正を行う誤差補正部を備えた数値制御装置において、前記誤差補正部は、前記工作機械のベッドから工具先端点への工具ヘッド側の１個または複数個のリンクベクトルを合成したヘッド側合成リンクベクトルおよび前記工作機械のベッドから工具先端点へのテーブル側の１個または複数個のリンクベクトルを合成したテーブル側合成リンクベクトルに対して伸縮誤差量による演算を行いヘッド側合成誤差リンクベクトルおよびテーブル側合成誤差リンクベクトルを作成し、前記テーブル側合成誤差リンクベクトルと前記ヘッド側合成誤差リンクベクトルとの差分によって補正量を演算する機能を有することを特徴とする誤差補正部を備えた数値制御装置である。
【０００９】
請求項２に係る発明は、前記リンクベクトルは、ベッド固定点またはリンク軸順における軸駆動部誤差原点から次軸の軸駆動部誤差原点または工具先端点へのベクトルであることを特徴とする請求項１に記載の誤差補正部を備えた数値制御装置である。  
請求項３に係る発明は、前記伸縮誤差量は、熱変位、工具の摩耗による誤差量であることを特徴とする請求項１または２のいずれか１つに記載の誤差補正部を備えた数値制御装置である。  
請求項４に係る発明は、前記伸縮誤差量による演算は、前記１個または複数個のリンクベクトルの第１、第２および第３要素に（１＋伸縮誤差量）を乗算する演算であることを特徴とする請求項１乃至請求項３のいずれか１つに記載の誤差補正部を備えた数値制御装置である。  
請求項５に係る発明は、前記伸縮誤差量は、外部からの入力値、別途設定された設定値、または加工プログラムによる指令値であることを特徴とする請求項１乃至請求項４のいずれか１つに記載の誤差補正部を備えた数値制御装置である。
【００１０】
請求項６に係る発明は、前記伸縮誤差量は、前記工作機械電源オンからの時間による関数、または前記工作機械における主軸回転数または主軸回転時間の関数であることを特徴とする請求項１乃至請求項４のいずれか１つに記載の誤差補正部を備えた数値制御装置である。  
請求項７に係る発明は、前記誤差補正部は、前記伸縮誤差量に加えて並進誤差量または回転誤差量による誤差リンクベクトルの演算を行うことを特徴とする請求項１乃至請求項６のいずれか１つに記載の誤差補正部を備えた数値制御装置である。  
請求項８に係る発明は、前記並進誤差量または前記回転誤差量は、各軸位置に対応した誤差量が設定されている誤差量データテーブルと該各軸位置によって演算される値であることを特徴とする請求項７に記載の誤差補正部を備えた数値制御装置である。  
請求項９に係る発明は、前記工作機械は、テーブルに取付けられたワーク（加工物）に対して直線軸３軸によって加工する３軸加工機であることを特徴とする請求項１乃至請求項８のいずれか１つに記載の誤差補正部を備えた数値制御装置である。
【００１１】
請求項１０に係る発明は、前記工作機械は、テーブルに取付けられたワーク（加工物）に対して直線軸３軸とヘッド回転用回転軸２軸によって加工する５軸加工機であることを特徴とする請求項１乃至請求項８に記載の誤差補正部を備えた数値制御装置である。  
請求項１１に係る発明は、前記工作機械は、テーブルに取付けられたワーク（加工物）に対して直線軸３軸とテーブル回転用回転軸２軸によって加工する５軸加工機であることを特徴とする請求項１乃至請求項８に記載の誤差補正部を備えた数値制御装置である。  
請求項１２に係る発明は、前記工作機械は、テーブルに取付けられたワーク（加工物）に対して直線軸３軸とヘッド回転用回転軸１軸とテーブル回転用回転軸１軸によって加工する５軸加工機であることを特徴とする請求項１乃至請求項８に記載の誤差補正部を備えた数値制御装置である。  
請求項１３に係る発明は、前記リンクベクトルに対する伸縮誤差、並進誤差または回転誤差について、着目する必要のない誤差について０とする、または前記リンクベクトルについて、着目する必要のないリンクベクトルは０ベクトルとすることを特徴とする請求項１乃至請求項１２のいずれか１つに記載の誤差補正部を備えた数値制御装置である。  
請求項１４に係る発明は、前記リンクベクトルのうち関連性の強いリンクベクトル同士を結合してリンクベクトルとすることを特徴とする請求項１乃至請求項１３のいずれか１つに記載の誤差補正部を備えた数値制御装置である。
【発明の効果】
【００１２】
本発明により、リンクベクトルつまり各軸駆動部を含めた各部材に対する熱変位や工具摩耗による伸縮誤差を補正することにより高精度の加工を行うことができる。  
また本発明により、リンクベクトルに対する伸縮誤差に加えて組み立て精度や運動精度による並進誤差または回転誤差をも補正しさらに高精度の加工を行うことができる。
【図面の簡単な説明】
【００１３】
【図１】工具ヘッドが回転軸によって傾斜している場合に工具軸方向の熱変位誤差を補正する技術を説明する図である。
【図２】ヘッド回転型の５軸加工機の機械構成を説明する図である。
【図３】図２に示されるヘッド回転型の５軸加工機の機械構成におけるリンクベクトルを説明する図である。
【図４】５軸加工機のＹ軸コラムにおける誤差を説明する図である。
【図５】５軸加工機のＺ軸コラム上のＣ軸ヘッドの位置による誤差、ＥＸＣ（ｃ），ＥＹＣ（ｃ），ＥＺＣ（ｃ），ＥＡＣ（ｃ），ＥＢＣ（ｃ），ＥＣＣ（ｃ）を説明する図である。
【図６】ベッド固定点ＰｂからＸ軸駆動部誤差原点へのリンクベクトルＶｈおよびベッド固定点Ｐｂから工具先端点へのリンクベクトルＶｔ、それらに対する伸縮誤差量ＥＶｈおよびＥＶｔを生じる伸縮（伸長・縮小）を説明する図である。
【図７】リンクベクトルＶｈと伸縮誤差量ＥＶｈとの関係を説明する図である。
【図８】リンクベクトルＶｘと誤差（伸縮誤差、並進誤差、回転誤差）との関係を説明する図である。
【図９】リンクベクトルＶｙと誤差との関係を説明する図である。
【図１０】リンクベクトルＶｚと誤差との関係を説明する図である。
【図１１】リンクベクトルＶｃと誤差との関係を説明する図である。
【図１２】リンクベクトルＶａと誤差との関係を説明する図である。
【図１３】リンクベクトルＶｔと誤差との関係を説明する図である。
【図１４】ヘッド側合成リンクベクトルＶＬｈおよびテーブル側合成リンクベクトルＶＬｔを説明する図である。
【図１５】数３式，数５式および数７式をベクトル図として図示したものである。
【図１６】ヘッド側合成リンクベクトルＶＬｈ，テーブル側合成リンクベクトルＶＬｔ，ヘッド側合成誤差リンクベクトルＶＬｈ’およびテーブル側合成誤差リンクベクトルＶＬｔ’の関係と補正量Δ３ＤとヘッドおよびＺ軸コラムとの関係を説明する図である。
【図１７】Ｘ軸位置による並進誤差量およびＸ軸位置による回転誤差量の設定を説明する図である。
【図１８】本発明の誤差補正部を備えた数値制御装置を説明する図である。
【図１９】本発明の第１の実施形態における誤差補正部が行う補正処理のアルゴリズムのフローチャートである。
【図２０】テーブル回転型の５軸加工機の機械構成を説明する図である。
【図２１】Ｙ軸テーブルの誤差量の方向について説明する図である。
【図２２】図２０に示される機械構成の５軸加工機におけるリンクベクトルＶｔ，Ｖｙ，Ｖｘ，Ｖｂ，Ｖｃ，Ｖｈ，Ｖｚ、および、（ｘ，ｙ，ｚ）＝（０，０，０）の時のＰｘ０、Ｐｙ０，Ｐｚ０，Ｐｂ０を示す図である。
【図２３】リンクベクトルＶｔと誤差との関係を説明する図である。
【図２４】リンクベクトルＶｙと誤差との関係を説明する図である。
【図２５】リンクベクトルＶｘと誤差との関係を説明する図である。
【図２６】リンクベクトルＶｂと誤差との関係を説明する図である。
【図２７】リンクベクトルＶｃと誤差との関係を説明する図である。
【図２８】リンクベクトルＶｈと誤差との関係を説明する図である。
【図２９】リンクベクトルＶｚと誤差との関係を説明する図である。
【図３０】数２５式、数２７式のベクトル図である。
【図３１】数２４式、数２６式のベクトル図である。
【図３２】ＶＬｈ，ＶＬｈ’，ＶＬｔ，ＶＬｔ’の関係と、Δ３Ｄと、工具ヘッドとの関係を説明する図である。
【図３３】Ｘ，Ｙ，Ｚ軸間で関連性が強く、Ｃ，Ａ軸間で関連性が強い場合のリンクベクトルを説明する図である。
【図３４】Ｘ，Ｙ，Ｚ軸間で関連性が強く、Ｃ，Ａ軸間で関連性が強く、Ｖｃは十分に無視できる場合のリンクベクトルを説明する図である。
【図３５】リンクベクトルＶｈと伸縮誤差量ＥＶｈとの関係を説明する図である。
【図３６】リンクベクトルＶｘｙｚと伸縮誤差量ＥＶｘｙｚを含む誤差との関係を説明する図である。
【図３７】リンクベクトルＶｃａと伸縮誤差量ＥＶｃａを含む誤差との関係を説明する図である。
【図３８】リンクベクトルＶｔと伸縮誤差量ＥＶｔとの関係を説明する図である。
【図３９】数３２式で求められるヘッド側合成リンクベクトルＶＬｈ、数３４式で求められるテーブル側合成リンクベクトルＶＬｔのベクトル図である。
【図４０】数３１式、数３３式および数３５式を図示して説明する図である。
【図４１】誤差量データテーブル、および、Ｘ，Ｙ，Ｚ軸位置が（ｘ１，ｙ０，ｚ１）において並進誤差量および回転誤差量が設定されていることを説明する図である。
【図４２】Ｘ，Ｙ，Ｚ軸位置が（ｘ，ｙ，ｚ）の時の並進誤差量および回転誤差量を誤差量データテーブルのデータから比例配分で求めることを説明する図である。
【図４３】Ｃ，Ａ軸依存の誤差量を説明する図である。
【図４４】Ｃ，Ａ軸位置が（ｃ，ａ）の時の並進誤差量および回転誤差量を誤差量データテーブルに記憶された最寄の位置のデータから比例配分で求めることを説明する図である。
【図４５】テーブルに回転軸Ｃ軸がありヘッドに回転軸Ｂ軸がある混合型の５軸加工機の一例を示す図である。
【図４６】本発明を適用した一実施形態の誤差補正部を備えた数値制御装置の構成を概略で示すブロック図である。
【発明を実施するための形態】
【００１４】
本発明は、工作機械を制御する数値制御装置に関し、特に、テーブルに取付けられたワーク（加工物）に対して少なくとも直線軸３軸によって加工する工作機械を制御するとともに、該工作機械を構成するリンクベクトルに対して誤差補正を行う誤差補正部を有する数値制御装置である。前記誤差補正部は、リンクベクトルに対して伸縮誤差補正を行う、あるいは、伸縮誤差補正に加えて、並進誤差補正、および回転誤差補正を行う数値制御装置である。以下、本発明の実施形態を図面と共に説明する。
【００１５】
（第１の実施形態）  
図２は、ヘッド回転型の５軸加工機の機械構成を説明する図である。両端部が立設する構造のベッドに架設されるＸ軸コラムには、Ｙ軸コラムが取付けられている。Ｙ軸コラムにはＺ軸コラムが取付けられている。工具が取付けられたＡ軸ヘッドがＣ軸ヘッドに取付けられ、Ｃ軸ヘッドがＺ軸コラムに取付けられている。ベッド上にはテーブルが備えられ、その上にワークが載せられて工具先端点で加工する。Ｘ軸コラムやＣ軸ヘッドなどはＸ軸やＣ軸で動作する部分を指す。ここでの実施形態としては図２のような５軸加工機の機械構成で説明する。回転軸はＣ軸とＡ軸としているが、他の軸（Ｃ，Ｂ軸やＡ，Ｂ軸など）の組み合わせもある。また、以降で回転軸に関する処理や演算を除けば３軸加工機での誤差補正となるが、それは機械構成としては図２の機械構成においてＡ軸ヘッドやＣ軸ヘッドを除いた機械構成に対応する。
【００１６】
＜リンクベクトル＞  
ここで、リンクベクトルについて説明する。リンクベクトルとは、工作機械のベッド固定点から工具を含む工具ヘッドを経由した工具先端点への、または工作機械のベッド固定点からテーブルを経由した工具先端点への各軸間の結合を示すベクトルである。ベッド固定点はベッド内における誤差がないと想定する位置である。各軸の軸駆動部は、Ｘ軸コラム、Ｃ軸ヘッドなど各軸によって駆動する部分であり、各軸の軸駆動部誤差原点は、各軸の軸駆動部において誤差が発生する原点であり各リンクベクトル同士の結合点である。図２におけるリンクベクトルは図３のように表される。図示の便宜上、図３ではワークを除いている。また、図３は機械座標位置（ｘ，ｙ，ｚ）＝（０，０，０）の時の図でもある。
【００１７】
Ｖｈ：ベッド固定点からＸ軸駆動部（Ｘ軸コラム）誤差原点へのリンクベクトル（ベッド
固定点から工具ヘッドを経由する最初のリンクベクトル）  
Ｖｘ：Ｘ軸駆動部（Ｘ軸コラム）誤差原点からＹ軸駆動部（Ｙ軸コラム）誤差原点へのリ
ンクベクトル  
Ｖｙ：Ｙ軸駆動部（Ｙ軸コラム）誤差原点からＺ軸駆動部（Ｚ軸コラム）誤差原点へのリ
ンクベクトル  
Ｖｚ：Ｚ軸駆動部（Ｚ軸コラム）誤差原点からＣ軸駆動部（Ｃ軸ヘッド）誤差原点へのリ
ンクベクトル  
Ｖｃ：Ｃ軸駆動部（Ｃ軸ヘッド）誤差原点からＡ軸駆動部（Ａ軸ヘッド）誤差原点へのリ
ンクベクトル  
Ｖａ：Ａ軸駆動部（Ａ軸ヘッド）誤差原点から工具先端点へのリンクベクトル
Ｖｔ：ベッド固定点から工具先端点へのリンクベクトル（ベッド固定点からテーブルを経
由する最初のリンクベクトル）
【００１８】
ここで、Ｘ，Ｙ，Ｚ軸の機械座標位置（ｘ，ｙ，ｚ）はＡ軸ヘッド回転中心中央（Ａ軸回転誤差中心）とする。Ｘ軸駆動部（Ｘ軸コラム）誤差原点はベッドとＸ軸コラムの接触部分の中心とし、機械座標位置（ｘ，ｙ，ｚ）＝（０，０，０）の時のその位置をＰｘ０とする。Ｙ軸駆動部（Ｙ軸コラム）誤差原点はＸ軸コラムとＹ軸コラムの接触部分の中心とし、機械座標位置（ｘ，ｙ，ｚ）＝（０，０，０）の時のその位置をＰｙ０とする。Ｚ軸駆動部（Ｚ軸コラム）誤差原点（Ｐｚ０）はＹ軸コラムとＺ軸コラムの接触部分の中心とし、機械座標位置（ｘ，ｙ，ｚ）＝（０，０，０）の時のその位置をＰｚ０とする。Ｃ軸駆動部（Ｃ軸ヘッド）誤差原点はＺ軸コラムとＣ軸ヘッドの接触部分の中心とし、機械座標位置（ｘ，ｙ，ｚ）＝（０，０，０）の時のその位置をＰｃ０とする。Ａ軸駆動部（Ａ軸ヘッド）誤差原点は工具を含めたＡ軸ヘッドの回転中心中央であるとし、機械座標位置（ｘ，ｙ，ｚ）＝（０，０，０）の時のその位置をＰａ０とする。したがって、Ｐａ０＝（０，０，０）である。ベッド固定点の位置をＰｂとする。
【００１９】
Ｖｃ、Ｖａを無視する（Ｖｃ＝Ｖａ＝０としＶｚをＺ軸駆動部誤差原点から工具先端点へのリンクベクトルとする）と、３軸加工機での誤差補正となる。また、図３におけるＸ，Ｙ，Ｚ軸座標を示す矢印はそれらの座標方向を示す矢印であり、それらの交点は機械座標系原点（機械座標位置（ｘ，ｙ，ｚ）＝（０，０，０））ではなく、機械座標系原点は図中Ｐａ０としている。
【００２０】
＜リンクベクトル演算＞  
それぞれのリンクベクトルは、ここでは同次座標系で数１式のように演算する。ｘ，ｙ，ｚ，ａ，ｃは機械座標位置（機械座標系上の各軸位置）である。したがって、ｘ，ｙ，ｚはＸ，Ｙ，Ｚ軸の移動とともに変化する。「T」は転置を示すが、以降自明の場合は省略する。（Ｐｙ０，０）などの表記は第１〜第３要素がＰｙ０のｘ，ｙ，ｚ要素であり、第４要素が０のベクトルを示す。Ｐｘ０，Ｐｙ０，Ｐｚ０，Ｐｃ０，Ｐａ０，Ｐｂはパラメータなどの設定値として設定されている。
【００２１】
【数１】
0005788260.tif 000002
【００２２】
ここで、Ｖａ（Ｖａｘ，Ｖａｙ，Ｖａｚ，１）はＡ，Ｃ軸の回転によって数２式で表される。ａはＡ軸位置（機械座標位置）、ｃはＣ軸位置（機械座標位置）である。ｈはＡ軸ヘッド回転中心から工具先端点への工具長を含めた距離であり、工具長補正量と定数から求められる。工具は、ａ＝０，ｃ＝０の時、Ｚ軸マイナス方向を向くとする。回転軸（Ｃ，Ａ軸）要素を除けば、つまり、Ｖｃ＝Ｖａ＝０としＶｚを工具先端点へのベクトルとし機械座標位置（ｘ，ｙ，ｚ）を工具先端点とすれば、３軸加工機に適用できる。
【００２３】
【数２】
0005788260.tif 000003
【００２４】
着目する必要のないリンクベクトル、つまりそのリンクベクトルに対する誤差は無視できる場合は、そのリンクベクトルを０ベクトルとしてもよい。
【００２５】
＜伸縮誤差＞  
前述のように、各軸駆動部やベッド、ワークおよび工具などは、室温変化や機械自身の発熱および切削熱によって熱変位し伸縮する。さらに、工具は摩耗によって縮小する。それらの変位によって対応するリンクベクトルは伸縮誤差を持つ。各リンクベクトル（Ｖｈ，Ｖｘ，Ｖｙ，Ｖｚ，Ｖｃ，Ｖａ，Ｖｔ）に対する伸縮誤差量を、ＥＶｈ，ＥＶｘ，ＥＶｙ，ＥＶｚ，ＥＶｃ，ＥＶａ，ＥＶｔと表記する。ここで、ＥＶｈはＶｈを１とした時のＶｈに対する比を示す。以降の伸縮誤差量ＥＶα（α＝ｘ，ｙ，ｚ，ｃ，ａ，ｔ，ｘｙｚなど）も同様である。伸縮誤差が長さとして与えられる場合であってもこの比は容易に計算できる。例えば、Ｖｈに対する伸縮誤差長さがＬＥＶｈであれば、ＥＶｈ＝ＬＥＶｈ／｜Ｖｈ｜と計算すればよい。伸縮誤差量が正なら伸長、負なら縮小を表す。これらはごく小さい値である。着目する必要のない、つまり無視できる誤差に対する誤差量は０とすればよい。
【００２６】
＜並進誤差と回転誤差＞  
図４は、５軸加工機のＹ軸コラムにおける誤差を説明する図である。図４では本明細書で説明する並進誤差と回転誤差とともに前述の伸縮誤差量ＥＶｙ（図９参照）を生じるＹ軸コラム（灰色部）の伸縮（伸長・縮小）も示している。なお、熱を持っているイメージで灰色にしている。各軸位置による並進誤差量と回転誤差量を表１に示されるように表記する。ただし、不要な要素は誤差量０として省略可である。  
図４では、Ｘ軸コラム上のＹ軸コラムの位置による誤差、ＥＸＹ（ｙ），ＥＹＹ（ｙ），ＥＺＹ（ｙ），ＥＡＹ（ｙ），ＥＢＹ（ｙ），ＥＣＹ（ｙ）を図示する。ＥＸＹ（ｙ），ＥＹＹ（ｙ），ＥＺＹ（ｙ）はあるＹ軸位置ｙにおける、それぞれＸ方向、Ｙ方向、Ｚ方向のＹ軸コラムの誤差である。つまり、Ｙ軸の並進誤差である。ＥＡＹ（ｙ），ＥＢＹ（ｙ），ＥＣＹ（ｙ）はあるＹ軸位置ｙにおける、それぞれＸ軸周り、Ｙ軸周り、Ｚ軸周りのＹ軸コラムの誤差である。つまり、Ｙ軸位置による回転誤差である。なお、図４上では大きく描いているが、これらの誤差はごくわずかである。誤差がごくわずかであることは以降も同様である。着目する必要のない誤差量は０とすればよい。
【００２７】
表１に示される表記はＪＩＳ規格Ｂ６１９１にならっている。ＪＩＳハンドブック  １３  工作機械２００６  日本規格協会，工作機械−静的精度試験方法及び工作精度試験方法通則Ｂ６１９１  ５．２３１に、Ｚ軸方向の運動による偏差として、ＥＸＺ：直進偏差、ＥＹＺ：直進偏差、ＥＺＺ：位置偏差、並びに、角度偏差であるＥＡＺ：ピッチ，ＥＢＺ：ヨー，ＥＣＺ：ロールが規定されている。
【００２８】
【表１】
0005788260.tif 000004
【００２９】
本発明では、直進偏差および位置偏差を並進誤差、角度偏差を回転誤差と記述する。表１では、この表記にならって各軸位置による各軸方向の並進誤差量、各軸周りの回転誤差量を表記し、さらに各軸位置による関数であることを数学的に明確にするために、ＥＸＺ（ｚ）、ＥＡＺ（ｚ）などのように関数の形にしている。  
さらに、Ｚ軸コラム上のＣ軸ヘッドの位置による誤差、ＥＸＣ（ｃ），ＥＹＣ（ｃ），ＥＺＣ（ｃ），ＥＡＣ（ｃ），ＥＢＣ（ｃ），ＥＣＣ（ｃ）を図示すると図５に示すようになる。図５では本明細書で説明する並進誤差と回転誤差とともに前述の伸縮誤差量ＥＶｃ（図１１参照）を生じるＣ軸ヘッド（灰色部）の伸縮（伸長・縮小）も示している。ＥＸＣ（ｃ），ＥＹＣ（ｃ），ＥＺＣ（ｃ）はあるＣ軸位置ｃにおける、それぞれＸ方向、Ｙ方向、Ｚ方向のＣ軸ヘッドの誤差である。つまり、Ｃ軸位置による並進誤差である。ＥＡＣ（ｃ），ＥＢＣ（ｃ），ＥＣＣ（ｃ）はあるＣ軸位置ｃにおける、それぞれＸ軸周り、Ｙ軸周り、Ｚ軸周りのＣ軸ヘッドの誤差である。つまり、Ｃ軸位置による回転誤差である。
【００３０】
さらに、ベッド固定点ＰｂからＸ軸駆動部（Ｘ軸コラム）誤差原点へのリンクベクトル（ベッド固定点から工具ヘッドを経由する最初のリンクベクトル）Ｖｈおよびベッド固定点Ｐｂから工具先端点へリンクベクトル（ベッド固定点からテーブルを経由する最初のリンクベクトル）Ｖｔと、それらに対する伸縮誤差量ＥＶｈおよびＥＶｔを生じる伸縮（伸長・縮小）を図示すると図６に示すようになる。ただし、Ｖｔについてベッド固定点からテーブルを経由する最初のリンクベクトルと記載しているが、この場合ベッド固定点からテーブルを経由するリンクベクトルはこのベクトル１本のみである。図６ではベッドとテーブルおよびワークのみ図示している。Ｖｈ，Ｖｔに対しては並進誤差と回転誤差はなくベッドとワークの伸縮（伸長・縮小）から発生する誤差ＥＶｈ、ＥＶｔのみとし、それらは位置によらないとする。ただし、Ｖｈ，Ｖｔ自体は数１式で示したように位置に依る。
ここでは、上記のようにＶｈ，Ｖｔに対しては並進誤差と回転誤差は無いとしたが、もちろん並進誤差と回転誤差を計算に入れることも可能である。
【００３１】
＜リンクベクトルと誤差＞  
各リンクベクトルＶｈ，Ｖｘ，Ｖｙ，Ｖｚ，Ｖｃ，Ｖａ，Ｖｔと誤差との関係を図示すると、図７〜図１３に示されるようになる。図７は、リンクベクトルＶｈと伸縮誤差量ＥＶｈとの関係を説明する図である。図８はリンクベクトルＶｘと誤差（伸縮誤差、並進誤差、回転誤差）との関係を説明する図である。図９は、リンクベクトルＶｙと誤差との関係を説明する図である。図１０は、リンクベクトルＶｚと誤差との関係を説明する図である。図１１は、リンクベクトルＶｃと誤差との関係を説明する図である。図１２は、リンクベクトルＶａと誤差との関係を説明する図である。図１３は、リンクベクトルＶｔと誤差との関係を説明する図である。  
ここで、図９は、図４の誤差をリンクベクトルに対する誤差として図示したものである。図９のＥＡＹ（ｙ），ＥＢＹ（ｙ），ＥＣＹ（ｙ）は図４のＥＡＹ（ｙ），ＥＢＹ（ｙ），ＥＣＹ（ｙ）と相違するように見えるが、図４はＹ軸コラム全体に対する誤差として図示しているのに対して、図９はリンクベクトルに対する誤差として図示しているものであり、共に同じ誤差を図示している。図９の伸縮誤差量ＥＶｙは図４のＹ軸コラムの伸縮（伸長・縮小）から生じる誤差である。
【００３２】
＜誤差と補正＞  
ある機械座標位置Ｐ（ｘ，ｙ，ｚ，ｃ，ａ）における、Ｘ，Ｙ，Ｚ軸への補正量Δ３Ｄ（Δ３Ｄｘ，Δ３Ｄｙ，Δ３Ｄｚ，０）は、数３式〜数７式により演算される。Ｃα（α＝ｈ，ｘ，ｙ，ｚ，ｃ，ａ，ｔ）、Ｍβ（β＝ｘ，ｙ，ｚ，ｃ，ａ）は誤差生成計算用のマトリックスであり後述する。数７式において、後述するようにＶＬｈ＝ＶＬｔのため、Δ３Ｄは（ＶＬｔ’―ＶＬｈ’）となる。ここで、補正を行うのはＸ，Ｙ，Ｚ軸に対してであり、回転軸Ｃ，Ａ軸に対しては本発明による補正は行わない。回転軸の演算部分（Ｍｃ，Ｃｃ，Ｖｃ，Ｍａ，Ｃａ，Ｖａによる演算部分）を除けば、つまり、Ｖｃ＝Ｖａ＝０としＶｚを工具長を含むベクトルとすれば、３軸加工機における演算となる。
【００３３】
【数３】
0005788260.tif 000005
【００３４】
【数４】
0005788260.tif 000006
【００３５】
【数５】
0005788260.tif 000007
【００３６】
【数６】
0005788260.tif 000008
【００３７】
【数７】
0005788260.tif 000009
【００３８】
ここで、数３式〜数６式は機械構造のリンク軸順の計算となる。リンク軸順とは、ベッド上でＸ軸コラムが動作し、Ｘ軸コラム上でＹ軸コラムが動作し、Ｙ軸コラム上でＺ軸コラムが動作し、Ｚ軸コラム上でＣ軸ヘッドが動作し、Ｃ軸ヘッド上で工具を取付けられたＡ軸ヘッドが動作するという、ベッドから工具ヘッドを経由した工具先端点までのヘッド側の軸並びの順、つまりヘッド側はリンクベクトルＶｈ，Ｖｘ，Ｖｙ，Ｖｚ，Ｖｃ，Ｖａがつながっていること、およびベッド上にテーブルがありその上にワークが載置されその間には軸が存在しないこと、つまりテーブル側はリンクベクトルＶｔだけであることをいう。ここでヘッドとは工具ヘッドのことである。したがって、リンク軸順は機械構造に依存する。ＶＬｈをヘッド側合成リンクベクトル、ＶＬｈ’をヘッド側合成誤差リンクベクトルと呼ぶ。ＶＬｔをテーブル側合成リンクベクトル、ＶＬｔ’をテーブル側合成誤差リンクベクトルと呼ぶ。この実施形態ではＶＬｔ、ＶＬｔ’とも１個のリンクベクトルから作成されるが、１個のリンクベクトルであっても合成されてこれらの合成リンクベクトルが作成されるものとする。各マトリックスは下記のマトリックスを意味する。
【００３９】
Ｍｘ：Ｖｘに対する並進回転誤差生成マトリックス  
Ｍｙ：Ｖｙに対する並進回転誤差生成マトリックス  
Ｃｈ：Ｖｈに対する伸縮誤差生成マトリックス  
Ｃｘ：Ｖｘに対する伸縮誤差生成マトリックス  
Ｃｙ：Ｖｙに対する伸縮誤差生成マトリックス  
Ｃｚ：Ｖｚに対する伸縮誤差生成マトリックス  
Ｃｃ：Ｖｃに対する伸縮誤差生成マトリックス  
Ｃａ：Ｖａに対する伸縮誤差生成マトリックス  
Ｃｔ：Ｖｔに対する伸縮誤差生成マトリックス  
Ｍｚ：Ｖｚに対する並進回転誤差生成マトリックス  
Ｍｃ：Ｖｃに対する並進回転誤差生成マトリックス  
Ｍａ：Ｖａに対する並進回転誤差生成マトリックス
【００４０】
各伸縮誤差生成マトリックスＣｈ，Ｃｘ，Ｃｙ，Ｃｚ，Ｃｃ，Ｃａ，Ｃｔは数８式〜数１４式のようになる。数３式、数５式でこれらのマトリックスを乗算することは、乗算されるベクトルの第１、第２および第３要素に対して（１＋伸縮誤差量）を乗算することである。例えば、数３式でＣｈをＶｈに乗算することは、Ｖｈの第１、第２および第３要素に対して（１＋ＥＶｈ）を乗算することである。
【００４１】
【数８】
0005788260.tif 000010
【００４２】
【数９】
0005788260.tif 000011
【００４３】
【数１０】
0005788260.tif 000012
【００４４】
【数１１】
0005788260.tif 000013
【００４５】
【数１２】
0005788260.tif 000014
【００４６】
【数１３】
0005788260.tif 000015
【００４７】
【数１４】
0005788260.tif 000016
【００４８】
各並進回転誤差生成マトリックスＭｘ，Ｍｙ，Ｍｚ，Ｍｃ，Ｍａは数１５式〜数１９式のようになる。ここで、回転誤差量の要素（１〜３行、１〜３列の要素）は、本来はｓｉｎ（ＥＣＸ（ｘ）），ｃｏｓ（ＥＣＸ（ｘ））などのように三角関数によって表される。回転誤差量はラジアン単位の十分小さい量であるとして、ｓｉｎ（ＥＣＸ（ｘ））＝ＥＣＸ（ｘ），ｃｏｓ（ＥＣＸ（ｘ））＝１と近似し、三角関数によらないマトリックスとしている。もちろん、近似せず三角関数のマトリックスとしてもよい。
【００４９】
【数１５】
0005788260.tif 000017
【００５０】
【数１６】
0005788260.tif 000018
【００５１】
【数１７】
0005788260.tif 000019
【００５２】
【数１８】
0005788260.tif 000020
【００５３】
【数１９】
0005788260.tif 000021
【００５４】
ここで、前述した数４式と数６式をベクトル図として図示すると、図１４に示されるようになる。図１４は、ヘッド側合成リンクベクトルＶＬｈおよびテーブル側合成リンクベクトルＶＬｔを説明する図である。ＶＬｈおよびＶＬｔはともにテーブル固定点Ｐｂから工具先端点へのベクトルなので、等しい。それに対して、各リンクベクトルＶｈ，Ｖｘ，Ｖｙ，Ｖｚ，Ｖｃ，Ｖａ，Ｖｔに各誤差生成マトリックスＣｈ，Ｃｘ，Ｃｙ，Ｃｚ，Ｃｃ，Ｃａ，Ｃｔ，Ｍｘ，Ｍｙ，Ｍｚ，Ｍｃ，Ｍａの積が演算されることによる、数３式，数５式および数７式をベクトル図として図示すると図１５のようになる。図１５は、ヘッド側合成誤差リンクベクトルＶＬｈ’およびテーブル側合成誤差リンクベクトルＶＬｔ’を説明する図である。ここで、Ｖｈ’，Ｖｘ’，Ｖｙ’，Ｖｚ’，Ｖｃ’，Ｖａ’，Ｖｔ’は、それぞれリンクベクトルＶｈ，Ｖｘ，Ｖｙ，Ｖｚ，Ｖｃ，Ｖａ，Ｖｔに誤差生成マトリックスＭｘ，Ｍｙ，Ｍｚ，Ｍｃ，Ｍａ，Ｃｈ，Ｃｘ，Ｃｙ，Ｃｚ，Ｃｃ，Ｃａ，Ｃｔが乗算された誤差リンクベクトルを表す。つまり、誤差リンクベクトルＶｈ’，Ｖｘ’，Ｖｙ’，Ｖｚ’，Ｖｃ’，Ｖａ’，Ｖｔ’はそれぞれ、数２０式のように表される。これらは数３式と数５式の各項でもある。
【００５５】
【数２０】
0005788260.tif 000022
【００５６】
したがって、ヘッド側合成リンクベクトルＶＬｈ，テーブル側合成リンクベクトルＶＬｔ，ヘッド側合成誤差リンクベクトルＶＬｈ’およびテーブル側合成誤差リンクベクトルＶＬｔ’の関係と補正量Δ３ＤとヘッドおよびＺ軸コラムとの関係を図示すると図１６のようになる。つまり、補正量Δ３Ｄの補正を行うことは、工具先端点をヘッド側合成誤差リンクベクトルの先端（ＶＬｈ’の先端）からテーブル側合成誤差リンクベクトルの先端（ＶＬｔ’の先端）に移動し補正することである。つまり、誤差を持つ実際の工具先端点位置を誤差を持つ実際のワーク上の正しい加工位置に移動することが補正である。この結果、各リンクベクトルＶｈ，Ｖｘ，Ｖｙ，Ｖｚ，Ｖｃ，Ｖａ，Ｖｔに伸縮誤差、並進誤差または回転誤差があっても実際の工具先端点は実際のワーク上の正しい加工位置に移動し、ワークに対する正しい加工が行われる。なお、図１６においてＺ軸コラム、Ｃ軸ヘッドなどを傾けているが、誤差を持っていることを明確にするために傾けて図示している。実際の機械でこのように大きく傾くものではない。
【００５７】
＜誤差量の取得＞  
（１）伸縮誤差量の取得  
伸縮誤差量は次のような様々な方法で取得する。もちろん、伸縮誤差量を０とすれば、伸縮誤差量を無視することも可能である。  
１）外部からの外部入力で取得する。つまり、外部からの入力信号や通信回線を通じて
数値制御装置の外部から入力する。つまり、外部の測定器などによる測定値に基づい
て入力する。あるいは温度センサによって各部材の温度を測定しそれに関する関数と
して伸縮誤差量を求めて入力する。  
２）電源オンからの時間による関数とする。各部材は電源オンからの時間に応じて伸縮
（特に熱による伸長）する。そのため、電源オンからの時間ｔ１をカウントしその時
間ｔ１の関数ｆ（ｔ１）として伸縮誤差量を求める。  
３）主軸回転から発生する熱が大きいため、主軸回転数（Ｓ）と主軸回転時間（ｔ２）
の関数ｇ（Ｓ，ｔ２）として伸縮誤差量を求める。  
４）パラメータなどの設定値として設定する。または、プログラムにおける指令値とし
て指令する。
前述のように伸縮誤差量は対応するリンクベクトルに対する比としているので、ここで取得する伸縮誤差量も比として取得されることを想定している。もちろん、前述のように伸縮誤差が長さとして与えられる場合であってもこの比を容易に計算することができるので、伸縮誤差を上記の方法によって長さとして与えることも可能である。
【００５８】
（２）並進誤差量、回転誤差量の取得  
軸位置による並進誤差量および軸位置による回転誤差量の設定について説明する。例ととして、図１７に示されるＸ軸位置による誤差量で説明する。図１７は、Ｘ軸位置による並進誤差量およびＸ軸位置による回転誤差量の設定を説明する図である。Ｘ軸位置がｘ０のときの並進誤差量（ＥＸＸ（ｘ０）），ＥＹＸ（ｘ０），ＥＺＸ（ｘ０））および回転誤差量（ＥＡＸ（ｘ０），ＥＢＸ（ｘ０），ＥＣＸ（ｘ０））を、ｘ０に対応した並進回転誤差量データテーブルに並進誤差量および回転誤差量として設定する。同様に、ｘ１，ｘ２，・・・に対応した誤差量を並進誤差量および回転誤差量として設定する。ｘ０，ｘ１，ｘ２，・・・の位置については最初のｘ０を固定値にしておき、それから等間隔でｘ１，ｘ２，・・・が並んでいるとしてもよいし、ｘ０，ｘ１，ｘ２，・・・の位置を別途パラメータに設定しておいてもよい。  
ここで、Ｘ軸位置がｘの時の並進誤差量（ＥＸＸ（ｘ），ＥＹＸ（ｘ），ＥＺＸ（ｘ））および回転誤差量（ＥＡＸ（ｘ），ＥＢＸ（ｘ），ＥＣＸ（ｘ））は、最寄のｘn，ｘn+1（ｎ＝０，１，２，・・・）から比例配分で求める。つまり、ｘn≦ｘ≦ｘn+1としたとき、並進誤差量ＥＸＸ（ｘ）の値を数２１式により求める。他の要素も同様である。
【００５９】
【数２１】
0005788260.tif 000023
【００６０】
他の軸位置による並進誤差量および回転誤差量も同様に並進回転誤差量データテーブルに設定されたデータと各軸の位置から求める。  
ここでは各軸位置による１次元のデータテーブルとしたが、関連性の強い軸同士ではそれらの軸の組み合わせによる２次元、３次元のデータテーブルとし、２軸または３軸の位置とそれらの誤差データテーブルから比例配分で求めてもよい。（詳細には第３の実施形態の説明で述べる）  
また、並進誤差量および回転誤差量は軸位置によって値が決定される関数による値であってもよい。例えば、ＥＸＸ（ｘ）＝ｈ（ｘ）のような関数の値であってもよい。また、上記伸縮誤差量のように外部からの入力、時間の関数、プログラム指令値などの方法による量であってもよい。  
もちろん、並進誤差量および回転誤差量を０とすれば、並進誤差量および回転誤差量を無視し、伸縮誤差に対する補正のみ行うようにすることも可能である。また、並進誤差量または回転誤差量を０とすれば、並進誤差または回転誤差を無視することも可能である。
【００６１】
＜ブロック図＞
次に、図１８を用いて本発明の誤差補正部を備えた数値制御装置を説明する。数値制御装置１０は一般に、指令解析部１１でプログラム指令を解析して補間用データを作成し、補間部１２で補間用データにもとづいて補間を行って各軸の移動すべき位置を求め、各軸用の加減速部１３Ｘ，１３Ｙ，１３Ｚ，１３Ａ（Ｂ），１３Ｃによって各軸の加減速を行った後の各軸位置を求め、補正部１４でピッチ誤差補正や真直度誤差補正などの従来技術の補正を行い、その結果の位置によって各軸のサーボ１５Ｘ，１５Ｙ，１５Ｚ，１５Ａ（Ｂ），１５Ｃを駆動する。
【００６２】
ここで、本発明によって、すでに述べたように、各軸の機械座標位置、並進回転誤差量データテーブル、パラメータ、外部入力２１、プログラム指令および工具長補正量から、回転誤差量取得部、並進誤差量取得部および伸縮誤差量取得部において、回転誤差量、並進誤差量、伸縮誤差量を求め、リンクベクトル演算部において数１式、数２式により各リンクベクトルを求め、求めた伸縮誤差量、回転誤差量、並進誤差量および各リンクベクトルに対して補正演算部において、数３式、数４式、数５式、数６式、数７式の演算を行うことにより、補正量Δ３Ｄを求める。これを新たな補正量Δ３Ｄとして従来技術の補正量に加算して補正を行う。これらの処理をまとめた部分が図１８において点線で囲った誤差補正部２０である。  
なお、図１８は１つのブロック図の例であり、上記のように回転誤差量や並進誤差量を外部入力やパラメータから求めるなど他の方法もある。その場合にはそれらの方法に応じてブロック図は変更される。
【００６３】
図１９は、第１の実施形態における誤差補正部が行う補正処理のアルゴリズムのフローチャートである。以下、各ステップに従って説明する。  
●［ステップＳＡ０１］機械座標位置（ｘ，ｙ，ｚ，ｃ，ａ）のデータ、および、工具長補正量を取得する。  
●［ステップＳＡ０２］外部入力、パラメータまたはプログラム指令から、伸縮誤差量を取得する。  
●［ステップＳＡ０３］並進回転誤差量データテーブルおよび機械座標位置から、数２１式およびそれにならって、各並進誤差量、各回転誤差量を取得する。つまり、数２１式によりＸ軸の並進誤差ＥＸＸ（ｘ）の値を求め、他の要素も同様な計算式により値を求める。  
●［ステップＳＡ０４］パラメータ、工具長補正量、および機械座標位置から数１式、数２式により各リンクベクトルを演算する。  
●［ステップＳＡ０５］伸縮誤差量、並進誤差量、回転誤差量および各リンクベクトルから数３式、数４式、数５式、数６式、数７式により補正量を演算し、処理を終了する。
【００６４】
（第２の実施形態）
図２０は、テーブル回転型の５軸加工機の機械構成を説明する図である。Ｙ軸テーブルやＢ軸テーブルなどはＹ軸やＢ軸で動作する部分を指す。回転軸はＢ軸とＣ軸としているが、他の軸（Ａ，Ｃ軸やＡ，Ｂ軸など）の組み合わせもある。また、回転軸に関する処理や演算を除けば３軸加工機での誤差補正となるのは第１の実施形態と同じである。また、第１の実施形態と同様、図中のＸ，Ｙ，Ｚ軸座標を示す矢印はそれらの座標方向を示す矢印であり、それらの交点は機械座標系原点（機械座標位置（ｘ，ｙ，ｚ）＝（０，０，０））ではない。図２０、および図２２において、図示の便宜上テーブル上に存在するワークは図示していない。
【００６５】
＜伸縮誤差、並進誤差と回転誤差＞
各軸位置に依存した並進誤差量と回転誤差量を表２のように表記する。ただし、着目する必要のない誤差量は０とすればよい。回転軸（Ｂ軸，Ｃ軸）要素を除けば３軸加工機に適用できることなど、第１の実施形態に準じる。
【００６６】
【表２】
0005788260.tif 000024
【００６７】
誤差量の方向についてさらに説明する。図２１は、Ｙ軸テーブルの誤差量の方向について説明する図である。ベッド上のＹ軸テーブルの位置による誤差量、ＥＸＹ（ｙ），ＥＹＹ（ｙ），ＥＺＹ（ｙ），ＥＡＹ（ｙ），ＥＢＹ（ｙ），ＥＣＹ（ｙ）を図示すると図２１に示されるようになる。誤差量ＥＸＹ（ｙ），ＥＹＹ（ｙ），ＥＺＹ（ｙ）は、あるＹ軸位置ｙにおける、それぞれＸ方向、Ｙ方向、Ｚ方向のＹ軸テーブルの誤差である。つまり、Ｙ軸位置による並進誤差である。誤差量ＥＡＹ（ｙ），ＥＢＹ（ｙ），ＥＣＹ（ｙ）は、あるＹ軸位置ｙにおける、それぞれＸ軸周り、Ｙ軸周り、Ｚ軸周りのＹ軸テーブルの誤差である。つまり、Ｙ軸位置による回転誤差である。さらに、Ｙ軸テーブル（灰色部）は第１の実施形態と同様、伸縮変位する。この伸縮誤差量をＥＶｙ（図２４参照）とする。
【００６８】
＜リンクベクトル＞  
第１の実施形態と同様、リンクベクトルは、工作機械のベッド固定点Ｐｂから工具ヘッドを経由した工具先端点への、または工作機械のベッド固定点Ｐｂからテーブルを経由した工具先端点への各軸間の結合を示すベクトルである。各軸の軸駆動部はＹ軸テーブルやＺ軸コラム（工具ヘッド）など各軸によって駆動する部分であり、各軸の軸駆動部誤差原点は各軸の軸駆動部において誤差が発生する原点であり各リンクベクトル同士の結合点でもある。図２２は、図２０に示される機械構成の５軸加工機におけるリンクベクトルＶｔ，Ｖｙ，Ｖｘ，Ｖｂ，Ｖｃ，Ｖｈ，Ｖｚを説明する図である。また、図２２は（ｘ，ｙ，ｚ）＝（０，０，０）の時のＰｘ０，Ｐｙ０，Ｐｚ０，Ｐｂ０を示す図でもある。
【００６９】
Ｖｔ：ベッド固定点からＹ軸駆動部（Ｙ軸テーブル）誤差原点へのリンクベクトル（ベッ
ド固定点からテーブルを経由する最初のリンクベクトル）  
Ｖｙ：Ｙ軸駆動部（Ｙ軸テーブル）誤差原点からＸ軸駆動部（Ｘ軸テーブル）誤差原点へ
のリンク  
Ｖｘ：Ｘ軸駆動部（Ｘ軸テーブル）誤差原点からＢ軸駆動部（Ｂ軸テーブル）誤差原点へ
のリンクベクトル  
Ｖｂ：Ｂ軸駆動部（Ｂ軸テーブル）誤差原点からＣ軸駆動部（Ｃ軸テーブル）誤差原点へ
のリンクベクトル  
Ｖｃ：Ｃ軸駆動部（Ｃ軸テーブル）誤差原点から工具先端点へのリンクベクトル  
Ｖｈ：ベッド固定点からＺ軸駆動部（Ｚ軸コラム）誤差原点へのリンクベクトル（ベッド
固定点から工具ヘッドを経由する最初のリンクベクトル）  
Ｖｚ：Ｚ軸駆動部（Ｚ軸コラム）誤差原点から工具先端点へのリンクベクトル
【００７０】
ここで、ベッド固定点の位置をＰｂとする。Ｙ軸駆動部（Ｙ軸テーブル）誤差原点はベッドとＹ軸テーブルの接触部分の中心とし、機械座標位置（ｘ，ｙ，ｚ）＝（０，０，０）の時のその位置をＰｙ０とする。Ｘ軸駆動部（Ｘ軸テーブル）誤差原点はＹ軸テーブルとＸ軸テーブルの接触部分の中心とし、機械座標位置（ｘ，ｙ，ｚ）＝（０，０，０）の時のその位置をＰｘ０とする。Ｂ軸駆動部（Ｂ軸テーブル）誤差原点はＢ軸回転中心とＣ軸回転中心の交点とし、機械座標位置（ｘ，ｙ，ｚ，ｂ，ｃ）＝（０，０，０，０，０）の時のその位置（ｘ，ｙ，ｚ位置）をＰｂ０とする。Ｃ軸駆動部（Ｃ軸テーブル）誤差原点はＣ軸テーブルとＢ軸テーブルの接触部分の中心（Ｃ軸回転中心）とし、機械座標位置（ｘ，ｙ，ｚ，ｂ，ｃ）＝（０，０，０，０，０）の時のその位置（ｘ，ｙ，ｚ位置）をＰｃ０とする。Ｐｂ０とＰｃ０の間の距離をｈｂｃとする。Ｐｃ０−Ｐｂ０＝（０，０，ｈｂｃ）である。Ｚ軸駆動部（Ｚ軸コラム）誤差原点はベッドとＺ軸コラムの接触部分の中心とし、機械座標位置（ｘ，ｙ，ｚ）＝（０，０，０）の時のその位置をＰｚ０とする。ｈは工具長補正量である。また、直線軸の機械座標位置ｘ，ｙ，ｚは工具ヘッドの端面の位置（工具長補正量０の位置）とする。図２０におけるＸ，Ｙ，Ｚ軸座標を示す矢印はそれらの座標方向を示す矢印であり、それらの交点は機械座標系原点（機械座標位置（ｘ，ｙ，ｚ）＝（０，０，０））ではなく、機械座標系原点は図２２中の（ｘ，ｙ，ｚ）＝（０，０，０）の位置（工具ヘッドの端面と工具中心線との位置）としている。機械座標位置（ｘ，ｙ，ｚ）はＸ，Ｙ，Ｚ軸の移動とともに変化する。なお、図２２は、Ｘ，Ｙ，Ｚ軸位置については（ｘ，ｙ，ｚ）＝（０，０，０）としているが、Ｂ軸位置（ｂ）についてはｂ≠０としている図である。Ｖｂ，Ｖｃを無視する（Ｖｂ＝Ｖｃ＝０としＶｘをＸ軸駆動部誤差原点から工具先端点へのリンクベクトルとする）と、３軸加工機での誤差補正量となること、着目する必要のないリンクベクトル、つまりそのリンクベクトルから発生する誤差は無視できる場合はそのリンクベクトルを０ベクトルとしてもよいことなどは、第１の実施形態に準じる。
【００７１】
＜リンクベクトル演算＞  
それぞれのリンクベクトルを、ここでは同次座標系で数２２式のように演算する。ｘ，ｙ，ｚ，ｂ，ｃは機械座標位置（機械座標系上の各軸位置）である。Ｐｙ０，Ｐｘ０など定数となっているデータはあらかじめパラメータに設定しておきそれを使用する。ＶｔT，ＶｙTにおいてｙ、ｘを含むベクトルが減算になっているのはｙ，ｘの移動によってテーブルは逆方向に移動するためである。
【００７２】
【数２２】
0005788260.tif 000025
【００７３】
ここで、Ｖｂ（Ｖｂｘ，Ｖｂｙ，Ｖｂｚ，０）はＢ軸の回転によって数２３式で表される。ｂはＢ軸位置（機械座標位置）である。Ｐｃ０−Ｐｂ０は、Ｐｃ０−Ｐｂ０におけるｘ，ｙ，ｚ要素を示す。
【００７４】
【数２３】
0005788260.tif 000026
【００７５】
各リンクベクトルＶｙ，Ｖｘ，Ｖｂ，Ｖｃ，Ｖｚと誤差の関係を図示すると、図２３〜図２９のようになる。図２３は、リンクベクトルＶｔと誤差との関係を説明する図である。図２４は、リンクベクトルＶｙと誤差との関係を説明する図である。図２５は、Ｖｘと誤差との関係を説明する図である。図２６は、リンクベクトルＶｂと誤差との関係を説明する図である。図２７は、リンクベクトルＶｃと誤差との関係を説明する図である。図２８は、リンクベクトルＶｈと誤差との関係を説明する図である。図２９は、リンクベクトルＶｚと誤差との関係を説明する図である。図中の記号などは第１の実施形態と同様である。
【００７６】
＜誤差と補正＞  
ある機械座標位置Ｐ（ｘ，ｙ，ｚ，ｂ，ｃ）における、Ｘ，Ｙ，Ｚ軸への補正Δ３Ｄ（Δ３Ｄｘ，Δ３Ｄｙ，Δ３Ｄｚ，０）Tは、数２４式〜数２８式のように演算される。Ｃα（α＝ｈ，ｘ，ｙ，ｚ，ｂ，ｃ，ｔ）、Ｍβ（β＝ｘ，ｙ，ｚ，ｂ，ｃ）は誤差生成計算用のマトリックスであり後述すること、数２８式において、ＶＬｈ＝ＶＬｔのため、Δ３Ｄは（ＶＬｔ’―ＶＬｈ’）となること、補正を行うのはＸ，Ｙ，Ｚ軸に対してであり、回転軸Ｂ，Ｃ軸に対しては本発明による補正は行わないこと、回転軸の演算部分（Ｍｂ，Ｃｂ，Ｖｂ，Ｍｃ，Ｃｃ，Ｖｃによる演算部分）を除けば、つまり、Ｖｂ＝Ｖｃ＝０とすれば、３軸加工機における演算となることなどは、第１の実施形態と同様である。
【００７７】
【数２４】
0005788260.tif 000027
【００７８】
【数２５】
0005788260.tif 000028
【００７９】
【数２６】
0005788260.tif 000029
【００８０】
【数２７】
0005788260.tif 000030
【００８１】
【数２８】
0005788260.tif 000031
【００８２】
ここで、数２４式〜数２７式は機械構造のリンク軸順の計算となる。リンク軸順とは、ベッド上でＺ軸コラム（工具ヘッド）が動作し工具先端点に至るという、ベッドから工具ヘッド（単にヘッドともいう）を経由した工具ヘッド側の軸並びの順と、ベッド上でＹ軸テーブルが動作し、Ｙ軸テーブル上でＸ軸テーブルが動作し、Ｘ軸テーブル上でＢ軸テーブルが動作し、Ｂ軸テーブル上でＣ軸テーブルが動作し工具先端点に至るという、ベッドからテーブルを経由したテーブル側の軸並びの順を言う。したがって、機械構造に依存する。ＶＬｈをヘッド側合成リンクベクトル、ＶＬｈ’をヘッド側合成誤差リンクベクトル、ＶＬｔをテーブル側合成リンクベクトル、ＶＬｔ’をテーブル側合成誤差リンクベクトルと呼ぶ。各マトリックスは次を示す。
【００８３】
Ｃｈ：Ｖｈに対する伸縮誤差生成マトリックス
Ｃｚ：Ｖｚに対する伸縮誤差生成マトリックス
Ｃｔ：Ｖｔに対する伸縮誤差生成マトリックス
Ｃｙ：Ｖｙに対する伸縮誤差生成マトリックス
Ｃｘ：Ｖｘに対する伸縮誤差生成マトリックス
Ｃｂ：Ｖｂに対する伸縮誤差生成マトリックス
Ｃｃ：Ｖｃに対する伸縮誤差生成マトリックス
Ｍｚ：Ｖｚに対する並進回転誤差生成マトリックス
Ｍｙ：Ｖｙに対する並進回転誤差生成マトリックス
Ｍｘ：Ｖｘに対する並進回転誤差生成マトリックス
Ｍｂ：Ｖｂに対する並進回転誤差生成マトリックス
Ｍｃ：Ｖｃに対する並進回転誤差生成マトリックス
【００８４】
各マトリックス自体の内容については、第１の実施形態とほぼ同様なので省略する。数２５式、数２７式は、図３０に示されるベクトル図で表される。それに対して、各リンクベクトルに各誤差生成マトリックスの積が演算されることにより数２４式、数２６式を図示すると図３１のようになる。ここで、Ｖｔ’，Ｖｙ’，Ｖｘ’，Ｖｂ’，Ｖｃ’，Ｖｈ’，Ｖｚ’は、それぞれＶｔ，Ｖｙ，Ｖｘ，Ｖｂ，Ｖｃ，Ｖｈ，Ｖｚに誤差生成マトリックスＣｔ，Ｃｙ，Ｃｘ，Ｃｂ，Ｃｃ，Ｃｈ，Ｃｚ，Ｍｙ，Ｍｘ，Ｍｂ，Ｍｃ，Ｍｚが乗算された誤差リンクベクトルを表す。つまり、Ｖｔ’，Ｖｙ’，Ｖｘ’，Ｖｂ’，Ｖｃ’，Ｖｈ’，Ｖｚ’は数２９式のように表される。
【００８５】
【数２９】
0005788260.tif 000032
【００８６】
したがって、ＶＬｈ，ＶＬｈ’，ＶＬｔ，ＶＬｔ’の関係と、Δ３Ｄと、工具ヘッドとの関係を図示すると図３２のようになる。これは、Δ３Ｄの補正を行うことは、工具先端点を誤差のあるヘッド側合成誤差リンクベクトルの先端（ＶＬｈ’の先端）から、誤差のあるテーブル側合成誤差リンクベクトルの先端（ＶＬｔ’の先端）つまり実際のワーク上の正しい加工位置に移動し補正することである。この結果、各リンクベクトルに伸縮誤差、並進誤差または回転誤差があっても工具先端点は実際の（誤差のある）ワーク上の正しい位置に移動し、正しい加工が行われる。
【００８７】
なお、図３２ではＺ軸コラム（工具ヘッド）がＺ方向のみならずＸ，Ｙ方向にも補正され動作しているように描いているが、テーブルに対する相対的なＺ軸コラム位置を描いているものである。Ｚ軸コラム自体がＸ，Ｙ方向に補正動作するのではなく、Ｘ，Ｙ方向の補正動作はテーブルの動作によって行われる。また、図３２においてＺ軸コラム（工具ヘッド）、工具を傾けているが、誤差を持っていることを明確にするために傾けて図示している。実際にこのように大きく傾くものではない。  
さらに、本実施形態の誤差補正部を備えた数値制御装置は、図１８に示されるものと同様である。但し、補正演算における演算は、数２４式〜数２８式の演算を行う。
【００８８】
（第３の実施形態）  
＜機械構成＞  
第１の実施形態の図２と同様の機械構成を用いる。
【００８９】
＜リンクベクトル＞  
第１の実施形態、第２の実施形態では、各軸駆動部ごとにリンクベクトルを作成したが、ここでは、Ｘ，Ｙ，Ｚ軸間での関連性が強い、またＣ，Ａ軸間での関連性が強いとする。そこで、リンクベクトルを図３３に示すようにする。その他は第１の実施形態に準じる。  
Ｖｈ：ベッド固定点からＸ軸コラム誤差原点へのリンクベクトルとする。  
Ｖｘｙｚ：Ｘ軸コラム誤差原点からＸ軸コラム、Ｙ軸コラム、Ｚ軸コラムを経由してＣ軸
ヘッド誤差原点へのリンクベクトルとする。ここでは、Ｃ軸ヘッド誤差原点は
Ｚ軸コラムとＣ軸ヘッドの接触部分の中心であると想定する。  
Ｖｃａ：Ｃ軸ヘッド誤差原点からＡ軸ヘッドを経由して工具先端点へのリンクベクトルと
する。  
Ｖｔ：ベッド固定点からテーブルを経由する工具先端点へのリンクベクトルとする。ここ
でＶｃａを無視する（Ｖｃａ＝０としＶｘｙｚをＸ軸コラム誤差原点から工具先端
点へのリンクベクトルとする）と３軸加工機での誤差補正となる。
【００９０】
あるいは、図３におけるＶｃは十分無視できる場合は、リンクベクトルＶｘｙｚとＶｃａは次のように作成してもよい。その場合のリンクベクトルは図３４のようになる。図３３との相違はＶｘｙｚとＶｃａ（＝Ｖａ）のみである。  
Ｖｘｙｚ：Ｘ軸コラム誤差原点からＸ軸コラム、Ｙ軸コラム、Ｚ軸コラムを経由してＡ軸ヘッド誤差原点へのリンクベクトルとする。ここでは、Ａ軸ヘッド回転誤差原点はＡ軸回転中心中央とする。  
Ｖｃａ：Ａ軸ヘッド誤差原点から工具先端点へのリンクベクトルとする。（図３のＶａと
同じ。）  
着目する必要のないリンクベクトル、つまりそのリンクベクトルに対する誤差は無視できる場合は、そのリンクベクトルを０ベクトルとしてもよい。
【００９１】
＜伸縮誤差＞  
Ｖｈ，Ｖｘｙｚ，Ｖｃａ，Ｖｔに対する伸縮誤差をＥＶｈ，ＥＶｘｙｚ，ＥＶｃａ，ＥＶｔとする。着目する必要のない誤差量は０とすればよい。  
【００９２】
＜並進誤差と回転誤差＞
各軸に依存した並進誤差量と回転誤差量を表３のように表記する。ただし、不要な要素は誤差量０として省略可である。回転軸（Ｃ，Ａ軸）要素を除けば３軸加工機に適用できる、着目する必要のない誤差量は０とすればよいことは第１の実施形態と同様である。
【００９３】
【表３】
0005788260.tif 000033
【００９４】
第１の実施形態、第２の実施形態では、各軸位置による１次元のデータテーブルとしたが、ここでは、上記のようにＸ，Ｙ，Ｚ軸間での関連性が強いとしてそれらに関する誤差量はＸ，Ｙ，Ｚの３次元データ、Ｃ，Ａ軸間での関連性が強いとしてそれらに関する誤差量はＣ，Ａの２次元データとしている。
【００９５】
＜リンクベクトル演算＞  
図３３の場合、それぞれ、ここでは同次座標系で数３０式のように演算する。ｘ，ｙ，ｚ，ａ，ｃは機械座標位置（機械座標系上の各軸位置）である。
【００９６】
【数３０】
0005788260.tif 000034
【００９７】
Ｖａは数２式と同じである。
図３４の場合は、数３０式において、Ｐｃ０＝０とする。各リンクベクトルと誤差の関係は図３５〜図３８で示される。
【００９８】
＜誤差と補正＞
ある機械座標位置Ｐ（ｘ，ｙ，ｚ，ｃ，ａ）における、Ｘ，Ｙ，Ｚ軸への補正量Δ３Ｄ（Δ３Ｄｘ，Δ３Ｄｙ，Δ３Ｄｚ，０）は、数３１式〜数３５式のように演算される。回転軸の演算部分（Ｍｃａ，Ｖｃａによる演算部分）を除けば、３軸加工機における演算となる。
【００９９】
【数３１】
0005788260.tif 000035
【０１００】
【数３２】
0005788260.tif 000036
【０１０１】
【数３３】
0005788260.tif 000037
【０１０２】
【数３４】
0005788260.tif 000038
【０１０３】
【数３５】
0005788260.tif 000039
【０１０４】
ここで、数３１式、数３２式は機械構造のリンク軸順となる。つまり、Ｘ，Ｙ，Ｚ軸上でＣ，Ａ軸が動作するという軸並びの順である。ここで、各誤差生成マトリックスは次のようになり、計算式は数３６式〜数４１式のようになる。
【０１０５】
Ｃｈ：Ｖｈに対する伸縮誤差生成マトリックス  
Ｃｘｙｚ：Ｖｘｙｚに対する伸縮誤差生成マトリックス  
Ｃｃａ：Ｖｃａに対する伸縮誤差生成マトリックス  
Ｃｔ：Ｖｔに対する伸縮誤差生成マトリックス  
Ｍｘｙｚ：Ｖｘｙｚに対する並進回転誤差生成マトリックス  
Ｍｃａ：Ｖｃａに対する並進回転誤差生成マトリックス
【０１０６】
【数３６】
0005788260.tif 000040
【０１０７】
【数３７】
0005788260.tif 000041
【０１０８】
【数３８】
0005788260.tif 000042
【０１０９】
【数３９】
0005788260.tif 000043
【０１１０】
【数４０】
0005788260.tif 000044
【０１１１】
【数４１】
0005788260.tif 000045
【０１１２】
数３２式で求められるヘッド側合成リンクベクトルＶＬｈ、数３４式で求められるテーブル側合成リンクベクトルＶＬｔは、図３９のベクトル図として表せる。  
それに対して、各リンクベクトルに各誤差生成マトリックスの積が演算されることによる数３１式、数３３式を図示すると図４０のようになる。ここで、Ｖｘｙｚ’，Ｖｃａ’は、それぞれＶｘｙｚ，Ｖｃａに伸縮誤差生成マトリックスＣｘｙｚ，Ｃｃａおよび並進回転誤差生成マトリックスＭｘｙｚ，Ｍｃａを乗算した誤差リンクベクトルを表す。また、Ｖｈ’，Ｖｔ’はＶｈ，Ｖｔに伸縮誤差生成マトリックスＣｈ，Ｃｔを乗算したリンクベクトルを表す。つまり、Ｖｈ’，Ｖｘｙｚ’，Ｖｃａ’，Ｖｔ’は数４２式のように表される。
【０１１３】
【数４２】
0005788260.tif 000046
【０１１４】
ヘッド側合成リンクベクトルＶＬｈ、ヘッド側合成誤差リンクベクトルＶＬｈ’、テーブル側合成リンクベクトルＶＬｔ、およびテーブル側合成誤差リンクベクトルＶＬｔ’の関係と工具の関係は、第１の実施形態と同様である。したがって、各リンクベクトルに伸縮誤差、並進誤差または回転誤差があっても工具先端点は正しい位置に移動し、正しい加工が行われる。
【０１１５】
＜誤差量の設定＞  
伸縮誤差量については第１の実施形態と同様であるので省略する。並進誤差量および回転誤差量の設定について説明する。例として、Ｘ，Ｙ，Ｚ軸位置による誤差量で説明する。Ｘ，Ｙ，Ｚ軸位置が（ｘ０，ｙ０，ｚ０）のときの並進誤差量（ＥＸＸＹＺ（ｘ０，ｙ０，ｚ０），ＥＹＸＹＺ（ｘ０，ｙ０，ｚ０）ＥＺＸＹＺ（ｘ０，ｙ０，ｚ０））および回転誤差量（ＥＡＸＹＺ（ｘ０，ｙ０，ｚ０），ＥＢＸＹＺ（ｘ０，ｙ０，ｚ０），ＥＣＸＹＺ（ｘ０，ｙ０，ｚ０））を、（ｘ０，ｙ０，ｚ０）に対応した誤差量補正データテーブルに並進誤差量および回転誤差量として設定する。  
同様に、（ｘｉ，ｙｊ，ｚｋ）（ｉ，ｊ，ｋ＝０，１，２，・・・）に対応した誤差量を並進誤差量および回転誤差量として設定する。ｘ０，ｘ１，ｘ２，・・・，ｙ０，ｙ１，ｙ２，・・・，ｚ０，ｚ１，ｚ２，・・・の位置については最初のｘ０，ｙ０，ｚ０を固定値にしておき、それから等間隔でｘ１，ｘ２，・・・，ｙ１，ｙ２，・・・，ｚ１，ｚ２，・・・が並んでいるとしてもよいし、ｘ０，ｘ１，ｘ２，・・・，ｙ０，ｙ１，ｙ２，・・・，ｚ０，ｚ１，ｚ２，・・・の位置を別途パラメータに設定しておいてもよい。
【０１１６】
＜誤差量データテーブル＞
例えば、図４１には誤差量データテーブルが示されており、Ｘ，Ｙ，Ｚ軸位置が（ｘ１，ｙ０，ｚ１）において、並進誤差量（ＥＸＸＹＺ（ｘ１，ｙ０，ｚ１），ＥＹＸＹＺ（ｘ１，ｙ０，ｚ１），ＥＺＸＹＺ（ｘ１，ｙ０，ｚ１））および回転誤差量（ＥＡＸＹＺ（ｘ１，ｙ０，ｚ１），ＥＢＸＹＺ（ｘ１，ｙ０，ｚ１），ＥＣＸＹＺ（ｘ１，ｙ０，ｚ１）が設定されている。  
Ｘ，Ｙ，Ｚ軸位置が（ｘ，ｙ，ｚ）の時の並進誤差量（ＥＸＸＹＺ（ｘ，ｙ，ｚ），ＥＹＸＹＺ（ｘ，ｙ，ｚ），ＥＺＸＹＺ（ｘ，ｙ，ｚ））および回転誤差量（ＥＡＸＹＺ（ｘ，ｙ，ｚ），ＥＢＸＹＺ（ｘ，ｙ，ｚ），ＥＣＸＹＺ（ｘ，ｙ，ｚ））は、最寄のｘi，ｘi+1（ｘi≦ｘ≦ｘi+1），ｙj，ｙj+1（ｙj≦ｙ≦ｙj+1），ｚk，ｚk+1（ｚk≦ｚ≦ｚk+1）（ｉ，ｊ，ｋ＝０，１，２，・・・）における並進誤差量および回転誤差量から、図４２に示されるように比例配分でそれぞれの誤差量を求める。図４２は、Ｘ，Ｙ，Ｚ軸位置が（ｘ，ｙ，ｚ）の時の並進誤差量および回転誤差量を誤差量データテーブルのデータから比例配分で求めることを説明する図である。
【０１１７】
さらに、Ｃ，Ａ軸位置による誤差量を説明する。Ｃ，Ａ軸位置が（ｃ０，ａ０）のときの並進誤差量（ＥＸＣＡ（ｃ０，ａ０），ＥＹＣＡ（ｃ０，ａ０），ＥＺＣＡ（ｃ０，ａ０））および回転誤差量（ＥＡＣＡ（ｃ０，ａ０），ＥＢＣＡ（ｃ０，ａ０），ＥＣＣＡ（ｃ０，ａ０））を、（ｃ０，ａ０）に対応した誤差量データテーブルに並進誤差量および回転誤差量として設定する。同様に、（ｃｍ，ａｎ）（ｍ，ｎ＝０，１，２，・・・）に対応した誤差量を並進誤差量および回転誤差量として設定する。ｃ０，ｃ１，ｃ２，・・・，ａ０，ａ１，ａ２，・・・位置については最初のｃ０，ａ０を固定値にしておき、それから等間隔でｃ１，ｃ２，・・・，ａ１，ａ２，・・・が並んでいるとしてもよいし、ｃ０，ｃ１，ｃ２，・・・，ａ０，ａ１，ａ２，・・・の位置を別途パラメータに設定しておいてもよい。
【０１１８】
例えば、図４３はＣ，Ａ軸依存の誤差量を説明する図であり、図４３では（ｃ１，ａ１）において、並進誤差量（ＥＸＣＡ（ｃ１，ａ１），ＥＹＣＡ（ｃ１，ａ１），ＥＺＣＡ（ｃ１，ａ１））を回転誤差量（ＥＡＣＡ（ｃ１，ａ１），ＥＢＣＡ（ｃ１，ａ１），ＥＣＣＡ（ｃ１，ａ１））を設定していることを示している。  
そして、Ｃ，Ａ軸位置が（ｃ，ａ）の時の並進誤差量（ＥＸＣＡ（ｃ，ａ），ＥＹＣＡ（ｃ，ａ），ＥＺＣＡ（ｃ，ａ））および回転誤差量（ＥＡＣＡ（ｃ，ａ），ＥＢＣＡ（ｃ，ａ），ＥＣＣＡ（ｃ，ａ））は、最寄のｃm，ｃm+1（ｃm≦ｃ≦ｃm+1），ａn，ａn+1（ａn≦ａ≦ａn+1）（ｍ，ｎ＝０，１，２，・・・）における並進誤差量および回転誤差量から図４４に示されるように比例配分でそれぞれの誤差量を求める。図４４は、Ｃ，Ａ軸位置が（ｃ，ａ）の時の並進誤差量および回転誤差量を誤差量データテーブルに記憶された最寄の位置のデータから比例配分で求めることを説明する図である。  
また、これらの軸依存並進誤差量および該軸依存回転誤差量は、第１の実施形態と同様に、軸位置によって値が決定される関数（（ｘ，ｙ，ｚ）や（ｃ，ａ）に依存した関数）による値であってもよい。
【０１１９】
第１の実施形態および第３の実施形態はヘッド回転型の５軸加工機、第２実施形態ではテーブル回転型の５軸加工機で説明したが、既に述べたように、回転軸２軸に対するデータや処理を除けばそのまま３軸加工機に適用できる。また、５軸加工機にはヘッドに回転軸が１軸ありテーブルに回転軸が１軸ある混合型と呼ばれる５軸加工機もある。本発明は、混合型の５軸加工機にも同様に適用できる。図４５は、テーブルに回転軸Ｃ軸がありヘッドに回転軸Ｂ軸がある混合型の５軸加工機の一例を示す図である。
【０１２０】
図４６は本発明を適用した一実施形態の誤差補正部を備えた数値制御装置の構成を概略で示すブロック図である。数値制御装置１０は本発明に係る誤差補正機能を備えている。プロセッサであるＣＰＵ１１１は、ＲＯＭ１１２に格納されたシステムプログラムに従って数値制御装置１の全体を制御する。ＲＡＭ１１３は、各種のデータあるいは入出力信号が格納される。不揮発性メモリ１１４に格納された各種のデータは電源切断後もそのまま保存される。グラフィック制御回路１１５は、デジタル信号を表示用の信号に変換し、表示装置１１６に与える。キーボード１１７は、数値キー、文字キーなどを有する各種設定データを入力する手段である。
【０１２１】
軸制御回路１１８は、ＣＰＵ１１１から各軸の移動指令を受けて軸の指令をサーボアンプ１１９に出力する。このサーボアンプ１１９は、この移動指令を受けて工作機械１２０のサーボモータ（図示せず）を駆動する。これらの構成要素はバス１２１で互いに結合されている。ＰＭＣ（プログラマブル・マシン・コントローラ）１２２は、加工プログラムの実行時に、バス１２１経由でＴ機能信号（工具選択指令）などを受け取る。そして、この信号を、シーケンス・プログラムで処理して、動作指令として信号を出力し、工作機械１２０を制御する。また、工作機械１２０から状態信号を受けて、ＣＰＵ１１１に必要な入力信号を転送する。更に、バス１２１には、システムプログラム等によって機能が変化するソフトウェアキー１２３、ＮＣデータを記憶装置などの外部機器に送るインタフェース１２４が接続されている。このソフトウェアキー１２３は、表示装置１１６、キーボード１１７と共に、表示装置／ＭＤＩパネル１２５に設けられている。
【符号の説明】
【０１２２】
１０  数値制御装置
１１  指令解析部
１２  補間部
１３Ｘ  Ｘ軸用加減速部
１３Ｙ  Ｙ軸用加減速部
１３Ｚ  Ｚ軸用加減速部
１３Ａ（Ｂ）  Ａ（Ｂ）軸用加減速部
１３Ｃ  Ｃ軸用加減速部
１４  補正部
１５Ｘ  Ｘ軸サーボ
１５Ｙ  Ｙ軸サーボ
１５Ｚ  Ｚ軸サーボ
１５Ａ（Ｂ）  Ａ（Ｂ）軸サーボ
１５Ｃ  Ｃ軸サーボ
２０  誤差補正部
２１  外部入力部
【図１】
0005788260.tif 000047
【図２】
0005788260.tif 000048
【図３】
0005788260.tif 000049
【図４】
0005788260.tif 000050
【図５】
0005788260.tif 000051
【図６】
0005788260.tif 000052
【図７】
0005788260.tif 000053
【図８】
0005788260.tif 000054
【図９】
0005788260.tif 000055
【図１０】
0005788260.tif 000056
【図１１】
0005788260.tif 000057
【図１２】
0005788260.tif 000058
【図１３】
0005788260.tif 000059
【図１４】
0005788260.tif 000060
【図１５】
0005788260.tif 000061
【図１６】
0005788260.tif 000062
【図１７】
0005788260.tif 000063
【図１８】
0005788260.tif 000064
【図１９】
0005788260.tif 000065
【図２０】
0005788260.tif 000066
【図２１】
0005788260.tif 000067
【図２２】
0005788260.tif 000068
【図２３】
0005788260.tif 000069
【図２４】
0005788260.tif 000070
【図２５】
0005788260.tif 000071
【図２６】
0005788260.tif 000072
【図２７】
0005788260.tif 000073
【図２８】
0005788260.tif 000074
【図２９】
0005788260.tif 000075
【図３０】
0005788260.tif 000076
【図３１】
0005788260.tif 000077
【図３２】
0005788260.tif 000078
【図３３】
0005788260.tif 000079
【図３４】
0005788260.tif 000080
【図３５】
0005788260.tif 000081
【図３６】
0005788260.tif 000082
【図３７】
0005788260.tif 000083
【図３８】
0005788260.tif 000084
【図３９】
0005788260.tif 000085
【図４０】
0005788260.tif 000086
【図４１】
0005788260.tif 000087
【図４２】
0005788260.tif 000088
【図４３】
0005788260.tif 000089
【図４４】
0005788260.tif 000090
【図４５】
0005788260.tif 000091
【図４６】
0005788260.tif 000092