(57)【特許請求の範囲】
【請求項１】
ワークに対して直線軸３軸と回転軸３軸によって加工する６軸加工機を制御する数値制御装置であり、直線軸３軸指令、工具方向指令および工具位相指令を含む加工プログラムを読取る加工プログラム読取り手段、該直線軸３軸指令による工具先端点位置および該工具方向指令による工具方向に対して座標変換を行う座標変換手段、該座標変換を行った座標変換後工具先端点位置および座標変換後工具方向によって工具先端点位置、第１回転軸位置、第２回転軸位置および直線軸３軸位置を制御する工具先端点制御手段、および該工具位相指令にしたがって工具位相を求め該工具位相となる第３回転軸位置を求める工具位相制御手段を有する数値制御装置において、
該工具位相制御手段において座標変換後の工具位相が指定方向となるように該指定方向の工具位相０ベクトルからの角度として第３回転軸位置を求める座標変換後工具位相計算手段を有し、該求めた直線軸３軸と回転軸３軸の位置へ各軸を駆動する座標変換工具位相制御用数値制御装置。
【請求項２】
該工具方向指令は該第１回転軸位置と該第２回転軸位置の指令であることを特徴とする請求項１に記載の座標変換工具位相制御用数値制御装置。
【請求項３】
該工具方向指令は工具方向をベクトルで指令する工具方向ベクトル指令であることを特徴とする請求項１に記載の座標変換工具位相制御用数値制御装置。
【請求項４】
該指定方向は、座標変換前の該工具位相を示すベクトルを工具位相指令ベクトルとし該工具位相指令ベクトルに座標変換を行ったベクトルを座標変換後工具位相ベクトルとしたときの該座標変換後工具位相ベクトルの方向であることを特徴とする請求項１〜３のいずれか１つに記載の座標変換工具位相制御用数値制御装置。
【請求項５】
該指定方向は、座標変換前の該工具位相を示すベクトルを工具位相指令ベクトルとし座標変換後の該工具位相を示すベクトルを座標変換後工具位相指令ベクトルとしたとき、該工具位相指令ベクトルと座標変換前の該工具先端点位置による工具先端点位置移動方向との間の角度が座標変換後の該座標変換後工具先端点位置の移動方向と該座標変換後工具位相ベクトルとの間の角度と同じとなる該座標変換後工具位相ベクトルの方向であることを特徴とする請求項１〜３のいずれか１つに記載の座標変換工具位相制御用数値制御装置。
【請求項６】
該工具先端点移動方向は補間周期毎に過去の補間周期における工具先端点位置と今回補間周期における工具先端点位置から求める請求項５に記載の座標変換工具位相制御用数値制御装置。
【請求項７】
該工具先端点移動方向は指令プログラムにおけるブロック毎に過去のブロックにおける工具先端点位置と今回ブロックにおける工具先端点位置から求める請求項５に記載の座標変換工具位相制御用数値制御装置。
【請求項８】
該工具位相０ベクトルは、該工具方向を示すベクトルを工具方向ベクトルとしたとき該工具方向ベクトルに垂直でかつ該工具方向ベクトルを含む垂直面上に含まれるベクトルであることを特徴とする請求項１〜７のいずれか１つに記載の座標変換工具位相制御用数値制御装置。
【請求項９】
該工具位相０ベクトルは、該工具方向を示すベクトルを工具方向ベクトルとしたとき該工具方向ベクトルに垂直でかつ水平面上に含まれるベクトルであることを特徴とする請求項１〜７のいずれか１つに記載の座標変換工具位相制御用数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワーク（加工物）に対して直線軸３軸と回転軸３軸によって加工する６軸加工機を制御する数値制御装置に関する。
【背景技術】
【０００２】
２軸の回転軸と３軸の直線軸を持つ５軸加工機における加工では、工具先端点の移動経路と工具方向の移動指令に対して、指令された加工物と工具との相対移動速度に基づいて工具先端点の移動経路を補間しながら工具方向も補間し、工具方向が変化しながら工具先端点が指令された移動経路上を指令された速度で移動する加工が一般的になってきている。このような指令と加工方法を工具先端点制御という。
【０００３】
特許文献１には、２軸の回転軸と３軸の直線軸を持つ工作機械において、工具先端点制御をおこなう技術が開示されている。この工具先端点制御の技術は、工具先端点の移動経路と工具方向の移動指令に対して、加工物と工具との相対移動速度に基づいてそれぞれ（工具経路と工具方向）を補間しながら移動経路の補間点を補正して、工具先端点が指令された移動経路上を指令された速度で移動するようにサーボモータを制御する技術である。
特許文献１に開示される工具先端点制御の技術によって、回転軸が回転しながら工具先端点が所期の速度で移動する加工を行うとき、プログラムを容易に作成することができ、プログラム長が短くなり、工具長を変更した場合ＣＡＭからプログラムを作成し直す必要がなく加工サイクルタイムを短縮できるものである。
また、特許文献２には、指令位置に対して座標変換を行う技術が開示されている。このような座標変換の技術によって、元の指令に対して座標変換を行う必要が生じた場合でもＣＡＭからプログラムを作成し直す必要がなく加工サイクルタイムを短縮できるものである。
【０００４】
飛行機の機体、傾斜した翼の外側、ドームまたはロケット頭部の円錐部のような非一様性の断面を有する部分にファイバ（炭素繊維複合材料）を巻きつけるファイバプレースメント装置の技術が特許文献３や特許文献４に開示されている。特許文献３に開示されるファイバプレースメント装置は、デリバリーローラを備えたデリバリーヘッドを有する。ファイバは、デリバリーローラを介してマンドレルに巻き付けられる。
【０００５】
【特許文献１】特開２００３−１９５９１７号公報
【特許文献２】特開昭６３−１８４０４号公報
【特許文献３】特開平４−３４１８２９号公報
【特許文献４】特開２００７−１３３８８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
図１においては、Ｘ，Ｙ，Ｚ軸でアーム位置が制御され、ＢＢ，ＣＣ軸で工具方向が制御され、ＡＡ軸でローラ方向が制御される。このローラ方向が工具位相である。したがって、ＡＡ軸位置（第３回転軸位置）、ローラ方向および工具位相は同義であるが、以降の記述において特にそのことを断らない。ここで、ＢＢ，ＣＣ軸が工具方向を制御する従来の５軸加工機が持つ第１回転軸、第２回転軸である。そして、ＡＡ軸は工具位相を制御する第３回転軸である。図１に示される状態がＢＢ＝ＣＣ＝０（度）（「０」はゼロ）であり、ＢＢ軸，ＣＣ軸はそれぞれ、−４５度〜４５度の角度範囲を動作範囲とする。なお、図１では、わかり易くするために、ワーク（例えば、航空機の胴体）に比して工具やローラ部分を大きく描いている。
特許文献３に開示されるファイバプレースメント機本体に相当する部分は、図１の右側に存在するが図示を省略している。特許文献３に記載されている「デリバリーヘッド」、「デリバリーローラ」、「マンドレル」は、図１においてそれぞれ「工具」、「ローラ」、「ワーク」に相当する。
【０００７】
多軸加工機を動作させるＮＣプログラム指令はＣＡＭを用いて作成されるのが一般的となっている。ＣＡＭは「Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｍａｎｕｆａｃｔｕｒｉｎｇ」の略である。ＣＡＭで作成したプログラム例１−１（図２参照）を説明する。「Ｇ４３．４」は工具先端点制御開始のＧコード指令であり、「Ｇ４９」がそのキャンセルのためのＧコード指令である。「Ｈ」で工具長補正番号を指令して、「Ｆ」で工具先端点での速度を指令する。「Ｘ，Ｙ，Ｚ」で工具先端点位置を指令し、「ＢＢ，ＣＣ」で工具方向を指令し、「ＡＡ」でローラ方向を指令する。
【０００８】
また図３に示すプログラム例１−２のように、「ＢＢ，ＣＣ」の代わりに、工具方向をベクトルで指令することもできる。「Ｉ，Ｊ，Ｋ」の指令が工具方向を示すベクトルの指令である。工具方向がベクトルで指令されると、数値制御装置は工具が指令された方向に動作するように回転軸（ＢＢ，ＣＣ軸）を制御する。
【０００９】
図２に示されるプログラム例１−１や図３に示されるプログラム例１−２に対して、座標変換を指令する必要があることがある。例えば、ＣＡＭでプログラムを作成する時のワークの想定位置と実際のワーク位置とが相違している場合には、座標変換が必要となる。ここで、座標変換の１つである傾斜面加工指令を行うとする。
【００１０】
図４のプログラム例２−１は、傾斜面加工指令を行うプログラム例である。「Ｇ６８．２」は傾斜面加工指令開始のＧコード指令であり、「Ｇ６９」がそのキャンセルのためのＧコード指令である。「Ｇ５３．１」で工具方向も座標変換することを指令する。「Ｇ６８．２」のブロックの「Ｘ，Ｙ，Ｚ」で座標変換先の座標系の原点位置、「Ｉ，Ｊ，Ｋ」で座標変換用の角度を指令する。これにより、従来の５軸加工機（直線軸３軸、第１回転軸および第２回転軸）における数値制御装置は、指令された工具先端点位置と工具方向とが座標変換で新たに作成される座標系上の工具先端点位置と工具方向となるように変換する。
【００１１】
図５のプログラム例２−２に示されるように、前述したプログラム例１−２（図３参照）と同様に、「ＢＢ，ＣＣ」の代わりに工具方向をベクトルで指令することもできる。工具方向がベクトルで指令されると、数値制御装置は指令された方向を座標変換し座標変換された方向に工具が動作するように回転軸（ＢＢ，ＣＣ軸）を制御する。
【００１２】
しかしながら、５軸加工機の従来技術では、第３回転軸のローラ方向は座標変換されなかった。したがって、上記プログラム例２−１（図４参照）およびプログラム例２−２（図５参照）では、「ＡＡ」の指令を入れていない。何故なら、「ＡＡ」を指令しても座標変換されない。具体的には、後述するように座標変換（傾斜面加工指令）モード中に「ＡＡ」を指令するとアラームとなり運転停止するからである。
【００１３】
したがって、第３回転軸のローラ方向を制御する機械においては、工具先端点制御と傾斜面加工指令を併用することができなかった。その結果、第３回転軸のローラ方向を制御する機械において工具先端点制御と座標変換を併用するには、ＣＡＭで座標変換された工具先端点制御のプログラム指令を作成し直す必要があり、手間がかかっている。
【００１４】
そこで、本発明の目的は、第３回転軸のローラ方向である工具位相の制御も含めた工具先端点制御指令に対して、座標変換（傾斜面加工指令）を行うことが可能な工具位相制御用数値制御装置を提供することである。
【課題を解決するための手段】
【００１５】
本願の請求項１に係る発明は、ワークに対して直線軸３軸と回転軸３軸によって加工する６軸加工機を制御する数値制御装置であり、直線軸３軸指令、工具方向指令および工具位相指令を含む加工プログラムを読取る加工プログラム読取り手段、該直線軸３軸指令による工具先端点位置および該工具方向指令による工具方向に対して座標変換を行う座標変換手段、該座標変換を行った座標変換後工具先端点位置および座標変換後工具方向によって工具先端点位置、第１回転軸位置、第２回転軸位置および直線軸３軸位置を制御する工具先端点制御手段、および該工具位相指令にしたがって工具位相を求め該工具位相となる第３回転軸位置を求める工具位相制御手段を有する数値制御装置において、該工具位相制御手段において座標変換後の工具位相が指定方向となるように該指定方向の工具位相０ベクトルからの角度として第３回転軸位置を求める座標変換後工具位相計算手段を有し、該求めた直線軸３軸と回転軸３軸の位置へ各軸を駆動する座標変換工具位相制御用数値制御装置である。
【００１６】
請求項２に係る発明は、該工具方向指令は該第１回転軸位置と該第２回転軸位置の指令であることを特徴とする請求項１に記載の座標変換工具位相制御用数値制御装置である。
【００１７】
請求項３に係る発明は、該工具方向指令は工具方向をベクトルで指令する工具方向ベクトル指令であることを特徴とする請求項１に記載の座標変換工具位相制御用数値制御装置である。
【００１８】
請求項４に係る発明は、該指定方向は、座標変換前の該工具位相を示すベクトルを工具位相指令ベクトルとし該工具位相指令ベクトルに座標変換を行ったベクトルを座標変換後工具位相ベクトルとしたときの該座標変換後工具位相ベクトルの方向であることを特徴とする請求項１〜３のいずれか１つに記載の座標変換工具位相制御用数値制御装置である。
【００１９】
請求項５に係る発明は、該指定方向は、座標変換前の該工具位相を示すベクトルを工具位相指令ベクトルとし座標変換後の該工具位相を示すベクトルを座標変換後工具位相指令ベクトルとしたとき、該工具位相指令ベクトルと座標変換前の該工具先端点位置による工具先端点位置移動方向との間の角度が座標変換後の該座標変換後工具先端点位置の移動方向と該座標変換後工具位相ベクトルとの間の角度と同じとなる該座標変換後工具位相ベクトルの方向であることを特徴とする請求項１〜３のいずれか１つに記載の座標変換工具位相制御用数値制御装置である。
【００２０】
請求項６に係る発明は、該工具先端点移動方向は補間周期毎に過去の補間周期における工具先端点位置と今回補間周期における工具先端点位置から求める請求項５に記載の座標変換工具位相制御用数値制御装置である。
【００２１】
請求項７に係る発明は、該工具先端点移動方向は指令プログラムにおけるブロック毎に過去のブロックにおける工具先端点位置と今回ブロックにおける工具先端点位置から求める請求項５に記載の座標変換工具位相制御用数値制御装置である。
【００２２】
請求項８に係る発明は、該工具位相０ベクトルは、該工具方向を示すベクトルを工具方向ベクトルとしたとき該工具方向ベクトルに垂直でかつ該工具方向ベクトルを含む垂直面上に含まれるベクトルであることを特徴とする請求項１〜７のいずれか１つに記載の座標変換工具位相制御用数値制御装置である。
【００２３】
請求項９に係る発明は、該工具位相０ベクトルは、該工具方向を示すベクトルを工具方向ベクトルとしたとき該工具方向ベクトルに垂直でかつ水平面上に含まれるベクトルであることを特徴とする請求項１〜７のいずれか１つに記載の座標変換工具位相制御用数値制御装置である。
【発明の効果】
【００２４】
本発明により、第３回転軸のローラ方向（工具位相）の制御も含めた工具先端点制御指令に対して座標変換（傾斜面加工指令）を行うことが可能な工具位相制御用数値制御装置を提供できる。
【００２５】
このことによって、第３回転軸のローラ方向を制御する機械において、ＣＡＭを用いてプログラム指令を作成し直すことなく、第３回転軸のローラ方向（工具位相）の制御も含めた工具先端点制御に対して座標変換（傾斜面加工指令）を行うことが可能となった。
【００２６】
そのことにより、座標変換を行っても工具方向、工具移動方向およびローラ方向の位置関係が保持され、ファイバが正しくワークに加工される（巻き付けられる）。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の実施形態を図面を用いて説明する。  
まず、本発明の実施形態で用いられている従来技術の部分について説明する。プログラム指令においてＢＢ軸、ＣＣ軸に対しそれぞれＢＢ，ＣＣの位置が指令された時、工具方向を示す工具方向ベクトルＶｔ（Ｖｔｘ，Ｖｔｙ，Ｖｔｚ）Tは（数１）のように表される。ここで、ＢＢ＝ＣＣ＝０度の時（図１に示される状態）、ＶｔはＸ軸のプラス方向であるとしている。「T」は数学記号で転置を表している。また、「＊」は乗算を意味する記号である。
【００２８】
【数１】
0004503659.tif 000002
【００２９】
これにより、ＢＢ，ＣＣ軸位置に対して工具方向ベクトルＶｔが計算される。このベクトルは正規化されておりベクトル長は１である。
【００３０】
ここで、傾斜面加工指令（座標変換）が指令される。傾斜面加工指令（座標変換）によって、元の（Ｘ，Ｙ，Ｚ）座標系は座標変換後の（Ｘ’，Ｙ’，Ｚ’）座標系となる（図７に点線で示される座標変換を参照）。また、その傾斜面加工指令（座標変換）に対応する（Ｘ，Ｙ，Ｚ）座標系から（Ｘ’，Ｙ’，Ｚ’）座標系への座標変換用のマトリックスＭｃ及びＭｃ３が計算される。
【００３１】
ここでは、傾斜面加工指令のＧコードである「Ｇ６８．２」のブロックのＸ，Ｙ，Ｚ指令される座標原点位置がｘ０，ｙ０，ｚ０であり、Ｉ，Ｊ，Ｋによる座標変換用の角度がオイラー角で指令され、Ｉ，Ｊ，Ｋの指令データがそれぞれ、α，β，γであるとすると、マトリックスＭｃは次の（数２）のようになる。マトリックスＭｃは第４行、第４列を持つ。以降の位置ベクトルは第４要素の「１」を持つ同次座標系で表している。ただし、自明である場合それらの要素を省略する。
【００３２】
【数２】
0004503659.tif 000003
【００３３】
また、マトリックスＭｃ３は（数３）に示されるように、マトリックスＭｃの第４行と第４列を除いたマトリックスである。
【００３４】
【数３】
0004503659.tif 000004
【００３５】
（数４）に示されるように、マトリックスＭｃによって工具先端点指令位置ベクトルＶｐｏｓ（Ｘ，Ｙ，Ｚ，１）Tは座標変換され、Ｖｐｏｓ’（Ｘ’，Ｙ’，Ｚ’，１）Tの位置ベクトルとなる。Ｘ，Ｙ，Ｚはそれぞれ指令されるＸ，Ｙ，Ｚ軸の位置である。（図７参照）
【００３６】
【数４】
0004503659.tif 000005
【００３７】
また、（数５）に示されるように、マトリックスＭｃ３によって工具方向ベクトルＶｔ（Ｖｔｘ，Ｖｔｙ，Ｖｔｚ）Tも座標変換されＶｔ’（Ｖｔｘ’，Ｖｔｙ’，Ｖｔｚ’）Tとなる。（図７参照）
【００３８】
【数５】
0004503659.tif 000006
【００３９】
そして、このＶｔ’から傾斜面加工指令（座標変換）後のＢＢ軸およびＣＣ軸の位置である位置ＢＢ’および位置ＣＣ’を求める。つまり、（数１）と同様、Ｖｔ’、ＢＢ’およびＣＣ’に対して次の式（数６）が成り立つので、（数７）に示されるように従来技術によりＢＢ’、ＣＣ’が求められる。
【００４０】
【数６】
0004503659.tif 000007
【００４１】
【数７】
0004503659.tif 000008
【００４２】
次に、本発明に係る工具位相ベクトルについて説明する。  
まず、ＡＡ＝０の時のローラ方向を説明する。ＢＢ軸及びＣＣ軸がどの位置にあっても、ＡＡ軸が０度であれば、ローラ方向は工具方向に垂直で、かつ、工具方向ベクトルＶｔを含む垂直平面上に含まれる（図６参照）。この方向を示すベクトルを工具位相０ベクトルＶｐ０（Ｖｐ０ｘ，Ｖｐ０ｙ，Ｖｐ０ｚ）と呼ぶ。
【００４３】
ただし、ここでは「ＢＢ，ＣＣ軸がどの位置にあっても、ＡＡ軸が０度であれば、ローラ方向は工具方向に垂直で、かつ工具方向ベクトルを含む垂直平面上に含まれる」としたが、Ｖｐ０にはオフセットを付加することも可能である。例えば、９０度のオフセットを付加すれば、ＢＢ軸及びＣＣ軸がどの位置にあっても、ＡＡ軸が０度であれば、ローラ方向は工具方向に垂直で、かつ水平面上に含まれる方向となる（図８参照）。
【００４４】
本実施形態では、ＢＢ及びＣＣ軸がどのような位置にあってもＡＡ軸が０度であれば、ローラ方向は工具方向に垂直で、かつ工具方向ベクトルを含む垂直平面上に含まれる（図６参照）とすると、工具位相０ベクトルＶｐ０は（数８）の計算で求められる。
【００４５】
【数８】
0004503659.tif 000009
【００４６】
ここで、各項の意味、記号の意味は次のとおりである。「×」は前後のベクトルに対する外積を表す記号である。「Ｖｙ」は垂直ベクトル（０，１，０）Tである。この例では、Ｙ軸方向であるが、軸構成が相違すれば他の軸方向が垂直ベクトルとなることもある。  「Ｖｔ」は（数１）で示したＢＢ，ＣＣ軸位置によって求められる工具方向を示す工具方向ベクトル（Ｖｔｘ，Ｖｔｙ，Ｖｔｚ）Tである。傾斜面加工指令モード中は、座標変換前の工具位相０ベクトルＶｐ０については、上記（数８）のように工具方向ベクトルＶｔを使用して求められる。座標変換後の工具位相０ベクトルＶｐ０’（図７参照）については、次の（数９）に示されるようにＶｔの代わりに傾斜面加工指令によって座標変換された（数５）による工具方向ベクトルＶｔ’が使用される。ここで、傾斜面加工指令モード中でも、Ｖｙは元の座標系上の垂直方向ベクトル（Ｙ方向）であり、傾斜面加工指令によって座標変換された座標系上のＹ’方向ではない。
【００４７】
【数９】
0004503659.tif 000010
【００４８】
（数８）および（数９）による演算の結果、Ｖｐ０およびＶｐ０’は工具方向ベクトルに垂直で、かつそれぞれの工具方向ベクトルＶｔおよびＶｔ’を含む垂直平面上に存在する。なお、さらに（数８）および（数９）で求められる方向に対して例えば４５度などのオフセットを加えることも可能である。
【００４９】
また、図８に示されるように、ＢＢ，ＣＣ軸がどの位置にあっても、ＡＡ軸が０度であれば、ローラ方向は工具方向に垂直で、かつ水平面上に含まれる方向となる場合には、Ｖｐ０，Ｖｐ０’は次のように求められる。なお、さらに（数１０）および（数１１）で求められる方向に対して例えば４５度などのオフセットを加えることも可能である。
【００５０】
【数１０】
0004503659.tif 000011
【００５１】
【数１１】
0004503659.tif 000012
【００５２】
したがって、ＡＡ軸位置ＡＡはローラ方向を示す工具位相指令ベクトルＶｐｃと工具位相０ベクトルＶｐ０との間の角度を示す（図９参照）。そのため、ＡＡ軸に対してＡＡの位置が指令された時、対応するローラ方向を示す工具位相指令ベクトルＶｐｃ（Ｖｐｃｘ，Ｖｐｃｙ，Ｖｐｃｚ）Tは（数１２）のように計算される。ＡＡは０度〜３６０度とする。
【００５３】
【数１２】
0004503659.tif 000013
【００５４】
ここで、マトリックスＭａａは工具方向ベクトルＶｔの周りにＡＡだけ回転する（数１３）に示されるマトリックスである。
【００５５】
【数１３】
0004503659.tif 000014
【００５６】
傾斜面加工指令（座標変換）モード中においては、工具位相指令ベクトルＶｐｃ（Ｖｐｃｘ，Ｖｐｃｙ，Ｖｐｃｚ）Tも（数５）の工具方向ベクトルと同様に（数１４）のように座標変換され、Ｖｐｃ’（Ｖｐｃｘ’，Ｖｐｃｙ’，Ｖｐｃｚ’）Tとなる。（図７参照）
【００５７】
【数１４】
0004503659.tif 000015
【００５８】
また、次の（数１５）も成立する。（図７参照）
【００５９】
【数１５】
0004503659.tif 000016
【００６０】
ここで、マトリックスＭａａ’は（数１３）に表したマトリックスＭａａにおいて、右辺のＶｔ，ＡＡをＶｔ’，ＡＡ’に置き換えた（数１６）のマトリックス、つまり、工具方向ベクトルＶｔ’周りにＡＡ’だけ回転するマトリックスである。
【００６１】
【数１６】
0004503659.tif 000017
【００６２】
この（数１５）は未知数がＡＡ’のみであるので解くことができ、ＡＡ’を得ることができる。このことによって、ＡＡを含む工具先端点制御指令のプログラムに対して、傾斜面加工指令（座標変換）を行った場合のＡＡ’を得ることができ、その結果、ＡＡを含む工具先端点制御指令のプログラムに対して、プログラム例３−１（図１０参照）のように傾斜面加工指令（座標変換）を行うことができる。
【００６３】
また、プログラム例１−２（図３参照）、プログラム例２−２（図５参照）と同様に、ＢＢ，ＣＣの代わりに、プログラム例３−２（図１１参照）に示されるように工具方向をベクトルで指令することもできる。
【００６４】
次に、第２の実施形態について説明する。Ｖｐ０に関する説明（図６、図８参照）、およびＡＡに関する説明（図９参照）は、第１の実施形態の説明で既に行ったので記載を省略する。
【００６５】
Ｘ，Ｙ，Ｚによって工具先端点位置が指令された時、工具先端点位置移動方向ベクトルＶｍ（Ｖｍｘ，Ｖｍｙ，Ｖｍｚ）Tを（数１７）のように計算する。工具先端点位置移動方向ベクトルＶｍは図１２に示されている。このＶｍの計算は、図１４に示される「座標変換後工具位相計算手段８」において指令ブロックごとに行う。１ブロック前のＸ，Ｙ，Ｚ位置をＸｐ，Ｙｐ，Ｚｐとする。ただし、複数回前までの過去のブロックが存在する場合は、それらも含めてＶｍを計算することもできる。例えば、それらのブロックの移動方向の平均をＶｍとすることもできる。ただし、移動量（（数１７）の分母）は０（ゼロ）ではないとする。
【００６６】
【数１７】
0004503659.tif 000018
【００６７】
上述した実施形態では、工具先端点位置移動方向ベクトルＶｍの計算を、図１４に示される「座標変換後工具位相計算手段８」における指令ブロックごとに行っているが、図１６に示される「座標変換後工具位相計算手段８」のように、補間ごとに計算することもできる。補間ごとに計算するとした場合は、Ｘｐ，Ｙｐ，Ｚｐは１補間周期前のＸ，Ｙ，Ｚ位置である。ただし、複数回前までの過去の補間位置が存在する場合は、それらも含めてＶｍを計算することもできる。例えば、それらの補間ごとの移動方向の平均をＶｍとすることもできる。
【００６８】
そして、工具位相０ベクトルＶｐ０と工具先端点位置移動方向ベクトルＶｍの間の角度ｂを（数１８）により求める。（図１２参照）
【００６９】
【数１８】
0004503659.tif 000019
【００７０】
ここで、マトリックスＭｂは、工具方向ベクトルＶｔの周りに角度ｂだけ回転するマトリックスである（（数１９）参照）。
【００７１】
【数１９】
0004503659.tif 000020
【００７２】
（数１９）に示されるマトリックスＭｂでの未知数は角度ｂだけであるので、（数１８）を解くことによって角度ｂを求める。
【００７３】
また、（数２０）に示されているように、ＡＡによって指令されている工具位相指令ベクトルＶｐｃと工具先端点位置移動方向ベクトルＶｍとの間の角度ａを求める（ａ＝ｂ−ＡＡ）。（図１２参照）
【００７４】
【数２０】
0004503659.tif 000021
【００７５】
そして、（数２１）に示されるように傾斜面加工指令（座標変換）によって、工具先端点位置移動方向ベクトルＶｍはＶｍ’となる。（図１２参照）
【００７６】
【数２１】
0004503659.tif 000022
【００７７】
次に、Ｖｍ’とＶｐ０の間の角度ｂ’を（数２２）によって求める。（図１２参照）
【００７８】
【数２２】
0004503659.tif 000023
【００７９】
ここで、Ｍｂ’は座標変換後工具方向ベクトルＶｔ’の周りに角度ｂ’だけ回転する次のマトリックスである。Ｖｔ’は第１の実施形態と同じである。
【００８０】
【数２３】
0004503659.tif 000024
【００８１】
ここで、（数２２）の未知数はｂ’だけであるので、（数２２）を解くことによりｂ’を求めることができる。傾斜面加工指令（座標変換）後のＡＡ軸位置ＡＡ’は（数２４）により求めることができる（ＡＡ’＝ｂ’−ａ）。（図１２参照）
【００８２】
【数２４】
0004503659.tif 000025
【００８３】
（数２４）に示される計算によって、座標変換前の指令による角度ａが座標変換後も保持されるようにＡＡ’を求めることができる。つまり、座標変換を行っても、工具方向、工具移動方向、およびローラ方向の位置関係が保持される。したがって、ファイバが正しく加工される（巻きつけられる）。（図１２参照）
【００８４】
なお、座標変換前の指令による角度ａが座標変換後も保持されることにより、座標変換を行っても、工具方向、工具移動方向、およびローラ方向の位置関係が保持され、ファイバが正しく加工される（巻きつけられる）のは、第１の実施形態においても同様である。
【００８５】
次に、ブロック図を用いて前述した本発明に係る実施形態の工具位相制御がどのように処理されるかについて説明する。  
図１３は、従来技術を説明するブロック図である。加工プログラム読取り手段１で直線軸３軸の指令（工具先端点位置指令）、工具方向指令および工具位相指令（ＡＡ軸位置指令）を含む加工プログラムを読取る。
【００８６】
解析２において読取ったプログラムを解析する。ここで、解析用座標変換手段４によって、マトリックスＭｃおよびＭｃ３を計算しプログラム指令位置に対して座標変換を行う。また、工具位相制御手段５によって、工具位相指令（ＡＡ軸位置指令）から工具位相を制御する第３回転軸位置（ＡＡ軸位置）を求める。ただし、座標変換と工具位相指令は同時に行うことはできない。そのため、座標変換と工具位相指令が同時に指令されると、アラーム発生手段９によってアラームを発生させ運転を停止する。
【００８７】
補間３において、解析２において解析された内容にしたがって工具先端点位置および工具方向の補間を行う。ここで、補間用座標変換手段６によって、補間された工具先端点位置および工具方向に対してＭｃおよびＭｃ３によって座標変換を行う。工具先端点制御手段７によって、座標変換を行った座標変換後工具先端点位置および座標変換後工具方向によって工具先端点位置、第１回転軸位置、第２回転軸位置および直線軸３軸位置を求める。
【００８８】
工具位相については、解析で求められた第３回転軸位置（ＡＡ軸位置）に対して通常の補間を行う。ただし、座標変換と工具位相指令は同時に行うことはできない。補間３で求められた直線軸３軸と回転軸位置へ各軸サーボを制御し各軸を駆動する。
【００８９】
図１４は、図１３に示される従来技術に座標変換後工具位相計算手段８を付加した本発明の実施形態を説明する図である。図１３に示される工具位相制御手段５に座標変換後工具位相計算手段８を追加し、座標変換後の工具位相が指定方向となるように該指定方向の工具位相０ベクトルからの角度として第３回転軸位置を求める。このように座標変換と工具位相指令を同時に指令することが可能となるので、従来技術の図１３にあったアラーム発生手段９は不要となる。
【００９０】
図１５は、従来技術を説明する他のブロック図である。加工プログラム読取り手段１で直線軸３軸指令（工具先端点位置指令）、工具方向指令および工具位相指令（ＡＡ軸位置指令）を含む加工プログラムを読取る。解析２において読取ったプログラムを解析する。解析用座標変換手段４によって、マトリックスＭｃおよびＭｃ３を計算しプログラム指令位置に対して座標変換を行う。ただし、座標変換と工具位相指令は同時に行うことはできない。そのため、座標変換と工具位相指令が同時に指令されると、アラーム発生手段９によってアラームを発生させ運転を停止する。
【００９１】
補間３において、解析された内容にしたがって工具先端点位置および工具方向の補間を行う。ここで、補間用座標変換手段６によって、補間された工具先端点位置および工具方向に対してＭｃおよびＭｃ３によって座標変換を行う。工具先端点制御手段７によって、座標変換を行った座標変換後工具先端点位置および座標変換後工具方向によって工具先端点位置、第１回転軸位置、第２回転軸位置および直線軸３軸位置を求める。さらに、工具位相制御手段５によって、工具位相を制御する第３回転軸位置を求める。ただし、座標変換と工具位相指令は同時に行うことはできない。補間で求められた直線軸３軸と回転軸３軸の位置へ各軸サーボを制御し各軸を駆動する。
【００９２】
図１６は、図１５に示される従来技術に座標変換後工具位相計算手段８を付加した本発明の実施形態を説明する図である。図１５に示される工具位相制御手段に座標変換後工具位相計算手段８を追加し、座標変換後の工具位相が指定方向となるように該指定方向の工具位相０ベクトルからの角度として第３回転軸位置を求める。このように座標変換と工具位相指令を同時に指令することが可能となるので、従来技術の図１５にあったアラーム発生手段９は不要となる。
【００９３】
図１７は、図１４に示される座標変換後工具位相計算手段８における処理のアルゴリズムを示すフローチャートである。各ステップに従って説明する。ＡＡ，ＢＢ，ＣＣ軸指令位置ＡＡ，ＢＢ，ＣＣを得る（ステップＳＡ１）。そして、（数１）によってＶｔを計算し、（数５）によってＶｔ’を計算する（ステップＳＡ２）。なお、ここで使用するＭｃおよびＭｃ３は既に得られている。また、ＢＢ，ＣＣについて、プログラム例３−１（図１０）のように工具方向がＢＢ，ＣＣ軸指令で指令される場合は指令されたＢＢ，ＣＣ軸位置であり、プログラム例３−２（図１１）のように工具方向がベクトルで指令される場合は指令されたベクトルから変換されたＢＢ，ＣＣ軸位置である。
【００９４】
次に、（数８）によってＶｐ０を計算し、（数９）によってＶｐ０’を計算し、（数１４）によってＶｐｃ’を計算する（ステップＳＡ３）。そして、（数１５）を解くことによってＡＡ’を計算し（ステップＳＡ４）、処理を終了する。
【００９５】
図１８は、図１６に示される座標変換後工具位相計算手段８における処理のアルゴリズムを示すフローチャートである。各ステップに従って説明する。Ｆ１は０であるか否か判断し（ステップＳＢ１）、Ｆ１が０の場合にはＦ１を１に設定しブロック開始時のＸ，Ｙ，Ｚ位置をＸｐ，Ｙｐ，ＺｐにセットしステップＳＢ２に移行する（ステップＳＢ９、ステップＳＢ１０）。一方、Ｆ１が０でない場合には、Ｘ，Ｙ，Ｚ，ＡＡ，ＢＢ，ＣＣ軸指令位置Ｘ，Ｙ，Ｚ，ＡＡ，ＢＢ，ＣＣを得る（ステップＳＢ２）。ここで、Ｘ，Ｙ，Ｚ，ＡＡ，ＢＢ，ＣＣは従来技術の工具先端点制御手段および工具位相制御手段によって計算されている。
【００９６】
次に、（数１）によってＶｔ、（数５）によってＶｔ’を計算する（ステップＳＢ３）。なお、Ｍｃ、Ｍｃ３は既に得られている。そして、（数８）によってＶｐ０、（数９）によってＶｐ０’、（数１７）によってＶｍを求め、（数１８）を解くことによって、「ｂ」を求める（ステップＳＢ４）。
【００９７】
次に、（数２０）によって「ａ」を計算する（ステップＳＢ５）。（数２１）によってＶｍ’を計算し、（数２２）を解くことによってｂ’を求める（ステップＳＢ６）。そして、（数２４）によってＡＡ’を計算する（ステップＳＢ７）。次に、Ｘ，Ｙ，ＺをＸｐ，Ｙｐ，Ｚｐにセットし（ステップＳＢ８）終了する。
【００９８】
なお、ステップＳＢ１の「Ｆ１」は１回目の補間周期であることを識別するためのフラグである。Ｆ１の初期状態は０である。またステップＳＢ４で、第１補間周期（Ｆ１＝０の場合）においてはＸｐ，Ｙｐ，Ｚｐをブロック開始時のＸ，Ｙ，Ｚ位置から求め、第２補間周期以降はＸｐ，Ｙｐ，Ｚｐは前回補間周期におけるＸ，Ｙ，Ｚ位置とするようにしたが、第２補間周期以降において複数回の過去の補間データ保持するようにし、それらのデータからＶｍを求めるようにすることもできる。例えば、それらの補間ごとの移動方向の平均Ｖｍとすることもできる。
【００９９】
図１９は本発明の工具位相制御を実行する一実施形態の数値制御装置（ＣＮＣ）１００のブロック図である。ＣＰＵ１１は数値制御装置１００を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたシステムプログラムをバス２０を介して読み出し、該システムプログラムに従って数値制御装置１００の全体を制御する。
【０１００】
ＲＡＭ１３は一時的な計算データや表示データ及びＬＣＤ／ＭＤＩユニット７０を介してオペレータが入力した各種データが格納される。
【０１０１】
ＳＲＡＭメモリ１４は図示しないバッテリでバックアップされ、数値制御装置１００の電源がオフされても記憶状態が保持される不揮発性メモリとして構成される。ＳＲＡＭメモリ１４中には、インタフェース１５を介して読み込まれた加工プログラムやＬＣＤ／ＭＤＩユニット７０を介して入力された加工プログラム等が記憶される。本発明を実施する加工プログラム等の各種加工プログラムはインタフェース１５やＬＣＤ／ＭＤＩユニット７０を介して入力し、ＳＲＡＭメモリ１４に格納することができる。
【０１０２】
また、ＲＯＭ１２には、加工プログラムの作成及び編集のために必要とされる編集モードの処理や自動運転のための処理を実施するための各種システムプログラムが予め書き込まれている。また、工具位相を制御するための本発明に係るプログラムもＲＯＭ１２に格納されている。
【０１０３】
インタフェース１５は、数値制御装置１００とアダプタ等の外部機器７２との接続を可能とするものである。外部機器７２側からは加工プログラムや各種パラメータ等が読み込まれる。また、数値制御装置１００内で編集した加工プログラムは、外部機器７２を介して外部記憶手段に記憶させることができる。
【０１０４】
ＰＭＣ（プログラマブル・マシン・コントローラ）１６は、数値制御装置１００に内蔵されたシーケンスプログラムを用いて工作機械の補助装置（例えば、給脂装置）にＩ／Ｏユニット１７を介して信号を出力し制御する。また、工作機械本体に配備された操作盤の各種スイッチ等の信号を受け、必要な信号処理を行なった後、ＣＰＵ１１に渡す。
【０１０５】
ＬＣＤ／ＭＤＩユニット７０はディスプレイやキーボードを備えた手動データ入力装置であり、インタフェース１８はＬＣＤ／ＭＤＩユニット７０のキーボードからの指令、データを受けてＣＰＵ１１に渡す。インタフェース１９は手動パルス発生器を備えた操作盤７１に接続されている。
【０１０６】
各軸のサーボ制御手段３０〜３５はＣＰＵ１１からの各軸の移動指令を受けて、各軸の指令をサーボアンプ４０〜４５に出力する。サーボアンプ４０〜４５はこの指令を受けて、各軸のサーボモータ５０〜５５を駆動する。各軸のサーボモータ５０〜５５は位置検出装置（図示省略）を内蔵しており、この位置検出装置からのフィードバック信号をサーボ制御手段３０〜３５にフィードバックする。各軸のサーボ制御手段３０〜３５は、該フィードバック信号に基づいて位置と速度のフィードバック制御を行う。
【０１０７】
以上に説明した数値制御装置１００の構成は従来の数値制御装置の構成と変りなく、この数値制御装置１００によって６軸加工機を制御して工具先端点制御を行なうことができる。そして本発明の一実施形態である数値制御装置は、前述した第１の実施形態または第２の実施形態について説明した処理を実施することにより、工具位相の制御も含めた工具先端点指令に対して座標変換（傾斜面加工指令）を行なうことが可能な数値制御装置である。
【図面の簡単な説明】
【０１０８】
【図１】工具位相を制御する第３回転軸を有する加工機を説明する図である。
【図２】プログラム例１−１である。
【図３】プログラム例１−２である。
【図４】プログラム例２−１である。
【図５】プログラム例２−２である。
【図６】ＢＢ，ＣＣ軸がどの位置にあっても、ＡＡ軸が０度であれば、ローラ方向（工具位相０ベクトル）は工具方向に垂直で、かつ工具方向ベクトルを含む垂直平面上に含まれることを示す図である。
【図７】本発明に係る傾斜面加工指令（座標変換）によって、元の（Ｘ，Ｙ，Ｚ）座標系が座標変換後の（Ｘ’，Ｙ’，Ｚ’）に変換されることを説明する図である。
【図８】ＢＢ，ＣＣ軸がどの位置にあっても、ＡＡ軸が０度であれば、ローラ方向（工具位相０ベクトル）は工具方向に垂直で、かつ水平面上に含まれる方向となることを示す図である。
【図９】ＡＡ軸位置ＡＡはローラ方向を示す工具位相指令ベクトルＶｐｃと工具位相０ベクトルＶｐ０との間の角度を表すことを説明する図である。
【図１０】プログラム例３−１である。
【図１１】プログラム例３−２である。
【図１２】本発明に係る工具先端点位置移動方向ベクトルＶｍを算出することを説明する図である。
【図１３】従来技術のブロック図である。
【図１４】図１３に示される工具位相制御手段に座標変換後工具位相計算手段を追加した本発明に係るブロック図である。
【図１５】従来技術の他のブロック図である。
【図１６】図１５に示される工具位相制御手段に座標変換後工具位相計算手段を追加した本発明に係るブロック図である。
【図１７】本発明の第１の実施形態において座標変換後工具位相計算手段での処理のアルゴリズムを示すフローチャートである。
【図１８】本発明の第２の実施形態において座標変換後工具位相計算手段での処理のアルゴリズムを示すフローチャートである。
【図１９】本発明の一実施形態である数値制御装置（ＣＮＣ）のブロック図である。
【符号の説明】
【０１０９】
１  加工プログラム読取り手段
２  解析
３  補間
４  解析用座標変換手段
５  工具位相制御手段
６  補間用座標変換手段
７  工具先端点制御手段
８  座標変換後工具位相計算手段
９  アラーム発生手段
１１  プロセッサ（ＣＰＵ）
１２  ＲＯＭ
１３  ＲＡＭ
１４  ＳＲＡＭ
３０  Ｘ軸サーボ制御手段
３１  Ｙ軸サーボ制御手段
３２  Ｚ軸サーボ制御手段
３３  ＡＡ軸サーボ制御手段
３４  ＢＢ軸サーボ制御手段
３５  ＣＣ軸サーボ制御手段
１００  数値制御装置
【図１】
0004503659.tif 000026
【図２】
0004503659.tif 000027
【図３】
0004503659.tif 000028
【図４】
0004503659.tif 000029
【図５】
0004503659.tif 000030
【図６】
0004503659.tif 000031
【図７】
0004503659.tif 000032
【図８】
0004503659.tif 000033
【図９】
0004503659.tif 000034
【図１０】
0004503659.tif 000035
【図１１】
0004503659.tif 000036
【図１２】
0004503659.tif 000037
【図１３】
0004503659.tif 000038
【図１４】
0004503659.tif 000039
【図１５】
0004503659.tif 000040
【図１６】
0004503659.tif 000041
【図１７】
0004503659.tif 000042
【図１８】
0004503659.tif 000043
【図１９】
0004503659.tif 000044