(57)【要約】【課題】  ＮＣ加工機に対する工具角度や工具位置の急激な変化を抑制するＮＣデータを作成する。【解決手段】  多軸制御ＮＣ加工機（５０）に対応した工具先端位置ベクトルと工具主軸方向ベクトルからなるＣＬデータ（２０）と、前記加工機の第１回転軸と第２回転軸および初期主軸方向、第１／２回転軸の軸偏差、送り速度からなる加工機構成（２０）とを入力し（１１０）、前記ＣＬデータを前記加工機を数値制御するＮＣデータに変換するＮＣポストプロセッサ装置３０において、前記工具先端位置の各点における前記工具主軸方向ベクトルが前記第２回転軸と一致するか否か判断し、一致する場合は前記第２回転軸と一致しない周辺の点における角度を取り出して曲線補間して当該点における角度を作成する処理（１２３，１２４）を含んで構成したことを特徴とする。【選択図】  図１
2006053789.tif 000002
【特許請求の範囲】
【請求項１】
多軸制御ＮＣ加工機に対応した工具先端位置ベクトルと工具主軸方向ベクトルからなるＣＬデータと、前記加工機の第１回転軸と第２回転軸および初期主軸方向、第１／２回転軸の軸偏差、送り速度からなる加工機構成とを入力し、前記ＣＬデータを前記加工機を数値制御するＮＣデータに変換するＮＣポストプロセッサ装置において、前記工具先端位置の各点における前記工具主軸方向ベクトルが前記第２回転軸と一致するか否か判断し、一致する場合は前記第２回転軸と一致しない周辺の点における角度を取り出して曲線補間して当該点における角度を作成する処理を含むことを特徴とするＮＣポストプロセッサ装置。
【請求項２】
前記曲線補間は、前記第２回転軸と一致しない周辺の点における角度に基づいて角度曲線を作成し、該作成した角度曲線と該角度曲線を両端で延長した角度曲線の少なくとも一方に基づいて、第２回転軸と工具主軸方向ベクトルが一致する点の角度を求めることを特徴とする請求項１に記載のＮＣポストプロセッサ装置。
【請求項３】
前記工具先端位置の各点における前記工具主軸方向ベクトルについて求めた角度の間隔が２πラジアン以上の部位を検出し、該部位の角度の間隔を２πラジアン以下に補正する第１の補正と、角度が反転する部位を検出して反転を解消するように補正する第２の補正を設けたことを特徴とする請求項１または２に記載のＮＣポストプロセッサ装置。
【請求項４】
多軸制御ＮＣ加工機に対応した工具先端位置ベクトルと工具主軸方向ベクトルからなるＣＬデータと、前記加工機の第１回転軸と第２回転軸および初期主軸方向、第１／２回転軸の軸偏差、送り速度からなる加工機構成とを入力し、前記ＣＬデータを前記加工機を数値制御するＮＣデータに変換するＮＣポストプロセッサ装置において、前記工具先端位置の点における前記工具主軸方向ベクトルの第１回転軸と第２回転軸の角度を取り出し、当該点における近似工具主軸方向ベクトルと前記工具先端位置の前の点における前記工具主軸方向ベクトルとの差ベクトルを求め、該差ベクトルと前記近似工具主軸方向ベクトルの第１回転軸方向の微分ベクトルまたは第２回転軸方向の微分ベクトルとの内積を求め、該求めた内積が０に近いか否か判定し、該判定が０に近い判定のときは、角度の更新量を予め定めた微小量に変更して当該点における前記工具主軸方向ベクトルの角度を作成する処理を含むことを特徴とするＮＣポストプロセッサ装置。
【請求項５】
多軸制御ＮＣ加工機に対応した工具先端位置ベクトルと工具主軸方向ベクトルからなるＣＬデータと、前記加工機の第１回転軸と第２回転軸および初期主軸方向、第１／２回転軸の軸偏差、送り速度からなる加工機構成とを入力し、前記ＣＬデータを前記加工機を数値制御するＮＣデータに変換するＮＣポストプロセッサ装置において、前記工具先端位置の任意の点における前記工具先端位置ベクトルを取り出し、当該点における前記工具先端位置ベクトルと前記工具先端位置の前の点における前記工具先端位置ベクトルとの差ベクトルを求め、該差ベクトルと前記工具先端位置ベクトルの第１回転軸方向の微分ベクトルまたは第２回転軸方向の微分ベクトルとの内積を求め、該求めた内積が０に近いか否か判定し、該判定が０に近い判定のときは、機械座標の更新量を予め定めた微小量に変更して当該点における前記工具先端位置の機械座標を作成する処理を含むことを特徴とするＮＣポストプロセッサ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多軸数値制御装置用のＮＣポストプロセッサ装置に係り、特に、加工機に対する工具角度の急激な変化を回避したＮＣデータを作成するＮＣポストプロセッサ装置に関する。
【背景技術】
【０００２】
多軸制御ＮＣ加工機は、段取り換えなしで複雑な形状を切削できる特徴があるが、ＣＡＭシステムの支援なくしては運用が困難である。ＣＡＭシステムは、ＣＡＤデータから最適な工具経路のＣＬデータを生成する。このＣＬデータは、加工経路方向に計算された工具先端位置ベクトルと、工具主軸方向ベクトルからなる。しかし、ＣＬデータは、ＣＡＤ座標系上の値であるから、工作機械の構造により座標系が異なる各工作機械に適合させて、適切なＮＣデータをＮＣポストプロセッサにより作成することになる。
【０００３】
従来、同時多軸制御ＮＣ加工機（以下、単にＮＣ加工機と称する。）に対応したＮＣポストプロセッサ装置は、ＣＡＭシステムにより定義されたワーク（工作物）座標系において、ＣＬデータ、ＮＣ加工機の加工機構成、送り速度を読み取り、ＮＣ加工機を動作させるために機械座標系における座標（機械座標という）と工具姿勢を表す角度とに変換する。
【０００４】
ＣＬデータをＮＣ加工機上の機械座標と角度に変換する処理は、非特許文献１に示すように、次のステップ１〜６で構成される。
ステップ１：ＣＡＭシステムで計算した工具先端位置ベクトルと工具主軸方向ベクトル（工具姿勢）、加工機構成、送り速度を読み取る。
ステップ２：工具主軸方向ベクトルと加工機構成とから、工作機械上でＣＬデータと同じ工具姿勢をとるように、機械座標の軸周りの工具の角度を作成する。
ステップ３：工具先端位置ベクトルと工具の角度とから機械座標を作成する。
ステップ４：機械座標の軌跡と工具先端位置ベクトルの軌跡を比較し、差を小さくする（リニアライゼーション）。
ステップ５：機械座標の軌跡と工具先端位置ベクトルの軌跡から、機械座標の送り速度（例えば、一定速度）を作成する。
ステップ６：加工機構成から数値制御装置の種類を取り出し、数値制御装置の指令フォーマットに従ってＮＣデータへ変換する。
【０００５】
ここで、非特許文献１は、ステップ２の工具の角度を作成するにあたって、工具と工作物の位置関係から４つのタイプに分類し、タイプ毎に三角関数や正負符号識別関数を用いて角度を算出する方法を開示している。また、計算機で利用する三角関数が一定の変域（例えば、±１８０°）しか持たないため、数値制御装置の指令用に３６０°（２π）を加算または減算して補正する方法を開示している。更に、回転軸がずれている場合の補正方法を開示している。また、特許文献１においても、５軸ＮＣ制御加工機の代表的な機械構成５種について三角関数を用いて角度を算出する方法を開示している。
【０００６】
一方、非特許文献１は、ステップ３の機械座標作成に関して、加工機の構造別に座標変換の順番を変えて対処する一般化座標変換という方法を提案している。この一般化座標変換は、４成分を持つ機械座標系の原点を、回転行列、回転軸補正行列、平行移動行列に分類した４×４の成分を持つ行列で順番に変換していくことにより、４成分を持つワーク座標系の座標に変換する関係式である。この関係式により、種々の加工機に対する機械座標系とワーク座標系の関係を記述できることが示されている。
【０００７】
例えば、ワーク座標系の工具先端位置ベクトルと機械座標の原点との関係は、数１の式で表すことが記載されている。数1において、Ｗはワーク座標系の工具先端位置ベクトル、Ｔｘｙｚは機械座標系での原点、Ｍｉ（ｉは１〜Ｎ）は各行列、Ｎは行列の数である。
【０００８】
【数１】
2006053789.tif 000003
また、ワーク座標系の工具主軸方向ベクトルと機械座標系での初期主軸方向の関係は、数２の式で表すことが記載されている。数2において、Ｖはワーク座標系の工具主軸方向ベクトル、Ｔｖは機械座標系での初期主軸方向を表す。
【０００９】
【数２】
2006053789.tif 000004
数１および数２において、各行列Ｍｉには、以下のものがある。
【００１０】
・Ｘ軸回転行列：工具がＸ軸の右回りにA度回転する場合の回転行列
【００１１】
【数３】
2006053789.tif 000005
・Ｙ軸回転行列：工具がY軸の右回りにB度回転する場合の回転行列
【００１２】
【数４】
2006053789.tif 000006
・Ｚ軸回転行列：工具がZ軸の右回りにC度回転する場合の回転行列
【００１３】
【数５】
2006053789.tif 000007
・Ｘ軸回転軸補正行列：回転軸Xがずれている場合に補正する移動行列、これは、数７の式に示すようにＸ軸回転行列ＭＡを挟んで利用する。
【００１４】
【数６】
2006053789.tif 000008
【００１５】
【数７】
2006053789.tif 000009
・Ｙ軸回転軸補正行列：回転軸Yがずれている場合に補正する移動行列、これは数９の式に示すようにY軸回転行列MＢを挟んで利用する。
【００１６】
【数８】
2006053789.tif 000010
【００１７】
【数９】
2006053789.tif 000011
・Ｚ軸回転軸補正行列：回転軸Ｚがずれている場合に補正する移動行列、これは数１１の式に示すようにＺ軸回転行列MＣを挟んで利用する。
【００１８】
【数１０】
2006053789.tif 000012
【００１９】
【数１１】
2006053789.tif 000013
・機械座標行列：機械座標を移動成分にもつ移動行列（数2では、使用していない。）
【００２０】
【数１２】
2006053789.tif 000014
・機械座標原点：機械座標の原点（数2では、使用していない。）
【００２１】
【数１３】
2006053789.tif 000015
・機械座標系での初期主軸方向：一般には移動軸方向正負の６種（数１では使用してない）
【００２２】
【数１４】
2006053789.tif 000016
例えば、工具・工作物両旋回形の加工機で、A軸周りに回転後にB軸周りに回転し、各軸に軸ずれが有る場合、ワーク座標系の工具主軸方向ベクトルと機械座標系の初期主軸方向の関係は数１５の式、ワーク座標系の工具先端位置ベクトルと機械座標原点の関係は数１６の式で表す。
【００２３】
【数１５】
2006053789.tif 000017
【００２４】
【数１６】
2006053789.tif 000018
非特許文献１では、各行列を座標コードとし、一般化座標変換の関係をわかりやすい形式で開示している。また、非特許文献１には、ステップ４のリニアライゼーション、ステップ５の送り速度決定法についても一般的な方法が開示されている。
【００２５】
【非特許文献１】工作機械の形状創成理論−その基礎と応用−、稲崎一郎・岸浪建史・坂本重彦・杉村延広・竹内芳美・田中文基  共著、１９９７年７月、株式会社養賢堂発行（第１４７頁〜第１６４頁、図５．１〜図５．１１）
【特許文献１】特開平７−３３４２２３号（第３頁〜第５頁、図３〜図１１）
【発明の開示】
【発明が解決しようとする課題】
【００２６】
しかし、従来の技術によれば、工具の角度を三角関数の演算で算出していることから、計算機実装上の制限により数値制御装置で利用するための連続した角度にならないという問題がある。例えば、計算機用言語としてＣ＋＋やＦＯＲＴＲＡＮなどを使用する場合、（１）一定の変域（例えば、±１８０°の域）を持つ工具の角度しか作成できないという制限があることから、あるいは、（２）０を含む微小な数値による割り算が生じて著しく大きい角度、あるいは０等の角度が作成されてしまうことから、角度変換に際して特異値が生成されるという問題がある。
【００２７】
このような角度の特異値が作成された場合、工具を先に回転させる第１回転角度と、続いて回転させる第２回転角度の軌跡を作成すると、鋸刃状、尖点あるいは不自然な凹凸となって表れる。したがって、その角度の特異値を含むＮＣデータをそのまま数値制御装置に伝送すると、サーボ機構の急激な負荷の変化あるいは機械座標の急激な変化が生じ、被切削材である工作物の不要な削り込み、あるいは加工表面粗さの悪化が生ずる。さらに、切削工具の寿命短縮又は破損、加工機駆動系への過剰な負担あるいは破損の原因となる。
【００２８】
本発明は、ＣＡＭシステムで生成されたＣＬデータを変換してＮＣデータを作成する際、ＮＣ加工機に対する工具角度や工具位置の急激な変化を抑制することを課題とする。
【課題を解決するための手段】
【００２９】
上記課題を解決するため、本発明は、多軸制御ＮＣ加工機に対応した工具先端位置ベクトルと工具主軸方向ベクトルからなるＣＬデータと、前記加工機の第１回転軸と第２回転軸および初期主軸方向、第１／２回転軸の軸偏差、送り速度からなる加工機構成とを入力し、前記ＣＬデータを前記加工機を数値制御するＮＣデータに変換するＮＣポストプロセッサ装置において、前記工具先端位置の各点における前記工具主軸方向ベクトルが前記第２回転軸と一致するか否か判断し、一致する場合は前記第２回転軸と一致しない周辺の点における角度を取り出して曲線補間して当該点における角度を作成する処理を含んで構成したことを特徴とする。
【００３０】
このように構成することにより、ＮＣ加工機に対する工具角度の急激な変化を抑制することができるから、鋸刃状、尖点あるいは不自然な凹凸となる工具経路のＮＣデータの作成を回避することができる。
【００３１】
この場合において、曲線補間は、前記第２回転軸と一致しない周辺の点における角度に基づいて角度曲線を作成し、該作成した角度曲線と該角度曲線を両端で延長した角度曲線の少なくとも一方に基づいて、第２回転軸と工具主軸方向ベクトルが一致する点の角度を求めることができる。
【００３２】
また、前記工具先端位置の各点における前記工具主軸方向ベクトルについて求めた角度の間隔が２πラジアン以上の部位を検出し、該部位の角度の間隔を２πラジアン以下に補正する第１の補正と、角度が反転する部位を検出して反転を解消するように補正する第２の補正を設けることができる。これにより、計算機の制約から、一定の変域（例えば、±１８０°の域）を持つ工具の角度しか作成できない場合であっても、角度変換に際して特異値の角度が生成されるという問題を回避できる。
【００３３】
また、本発明のＮＣポストプロセッサ装置は、前記工具先端位置の点における前記工具主軸方向ベクトルの第１回転軸と第２回転軸の角度を取り出し、当該点における近似工具主軸方向ベクトルと前記工具先端位置の前の点における前記工具主軸方向ベクトルとの差ベクトルを求め、該差ベクトルと前記近似工具主軸方向ベクトルの第１回転軸方向の微分ベクトルまたは第２回転軸方向の微分ベクトルとの内積を求め、該求めた内積が０に近いか否か判定し、該判定が０に近い判定のときは、角度の更新量を予め定めた微小量に変更して当該点における前記工具主軸方向ベクトルの角度を作成する処理を含んで構成することができる。
【００３４】
これによれば、０を含む微小な数値による割り算、いわゆる０割を回避することができ、角度変換に際して特異値が生成されるという問題を回避できる。
【００３５】
また、本発明の０割を回避する処理は角度に限らず、機械座標の変換処理にも適用できる。すなわち、前記工具先端位置の任意の点における前記工具先端位置ベクトルを取り出し、当該点における前記工具先端位置ベクトルと前記工具先端位置の前の点における前記工具先端位置ベクトルとの差ベクトルを求め、該差ベクトルと前記工具先端位置ベクトルの第１回転軸方向の微分ベクトルまたは第２回転軸方向の微分ベクトルとの内積を求め、該求めた内積が０に近いか否か判定し、該判定が０に近い判定のときは、機械座標の更新量を予め定めた微小量に変更して当該点における前記工具先端位置の機械座標を作成する処理を含んで構成することができる。
【００３６】
このように、本発明によれば、機械座標系における回転角度の急激な変化や機械座標の急激な変化を無くすことができるので、切削工具寿命を延長させ、サーボ機構の急激な挙動変化を回避し、ＮＣデータをモータ制御指令に変換する際の数値制御装置への負担を軽減し、加工面粗さを改善し、加工面精度が良い加工が可能になる。その結果、後工程における手仕上げ作業の加工工数を大幅に削減できる。
【発明の効果】
【００３７】
本発明によれば、ＣＡＭシステムで生成されたＣＬデータを変換してＮＣデータを作成する際、ＮＣ加工機に対する工具角度や工具位置の急激な変化を抑制することができる。
【発明を実施するための最良の形態】
【００３８】
以下、本発明のＮＣポストプロセッサ装置を実施形態に基づいて説明する。図1に、本発明の一実施形態のＮＣポストプロセッサ装置を含んでなるＮＣ加工システムの全体構成図を示す。
【００３９】
図において、ＣＡＭシステム１０は、図示していない上位計算機で稼動するＣＡＤシステム等で定義した仕上り形状のＣＡＤデータを用い、多軸制御曲面加工機５０のためのＣＬデータを作成して、ＣＬデータファイル２０に格納する。また、ＣＡＭシステム１０は、加工機５０の加工機構成に係るデータを、ＣＬデータファイル２０に格納する。
【００４０】
ここで、ＣＬデータは、工具先端位置ベクトルと工具主軸方向ベクトルとからなり、ＣＡＭシステムが定義したワーク座標系で作成される。加工機構成に係るデータは、加工機５０の第１回転軸、第２回転軸、初期主軸方向、第１回転軸および第２回転軸の軸ずれ量、送り速度をあらわす文字列で表現される。
【００４１】
ＮＣポストプロセッサ装置３０は、ＣＬデータ・加工機構成読取手段１１０と、角度変換手段１２０と、機械座標変換手段１３０と、ＮＣデータ変換手段１４０と、ＮＣデータ伝送手段１５０とから構成される。また、角度変換手段１２０は、本実施形態の特徴部の１つに係り、角度変換手順列作成手段１２１と、各変換行列・角度の初期設定手段１２２と、第２回転軸不一致時の最短角度作成手段１２３と、第２回転軸一致時の最短角度作成手段１２４、角度補正手段１２５とから構成される。また、機械座標変換手段１３０は、機械座標変換手順列作成手段１３１と、各変換行列の初期設定手段１３２と、最短機械座標作成手段１３３とからなる。  これらの角度変換手段１２０および機械座標変換手段１３０は、ＮＣポストプロセッサ装置３０を構成する計算機を稼動させるプログラムで実現することができる。
【００４２】
数値制御装置４０は、多軸制御曲面加工機５０を数値制御する。加工機５０の工具位置を決定する座標系は、互いに直交するＸ，Ｙ，Ｚの直交３軸と、工具主軸方向を制御する軸は、回転軸Ａ，Ｂ，Ｃの内の２軸である。例えば、回転軸ＡはＸ軸、回転軸ＢはＹ軸、回転軸ＣはＺ軸とするのが一般である。
【００４３】
次に、ＮＣポストプロセッサ装置３０の詳細構成を動作とともに説明する。
（ＣＬデータ・加工機構成読取手段１１０）
ＣＬデータ・加工機構成読取手段１１０は、ＣＬデータファイル２０から工具先端位置ベクトル（Ｘ，Ｙ，Ｚ）と工具主軸方向ベクトル（Ｉ，Ｊ，Ｋ）からなるＣＬデータと、第１回転軸、第２回転軸、初期主軸方向、軸ずれ量、送り速度からなる加工機構成のデータを読取るようになっている。
（角度変換手段１２０）
角度変換手段１２０は、加工機構成に基づいて工具主軸方向ベクトル（Ｉ，Ｊ，Ｋ）から第１回転軸の角度と第２回転軸の角度を求める。
（角度変換手順列作成手段１２１）
最初に、角度変換手順列作成手段１２１は、角度変換手順を文字列で作成する。図２に、第１回転軸をＢ軸、第２回転軸をＡ軸としたときの工作機械種類と角度変換、機械座標変換の一般化座標変換式および対応する変換文字列の対応関係を示す。例えば、角度変換手順列作成手段１２１は、第１回転軸をＢ軸、第２回転軸をＡ軸としたとき、（ＲＡＬ）（ＭＡ）（ＲＡＲ）（ＲＢＬ）（ＭＢ）（ＲＢＲ）（ＴＶ）という文字列２２０を作成する。
（各変換行列・角度の初期設定手段１２２）
次に、各変換行列・角度の初期設定手段１２２は、各変換行列や角度を初期化する。図８に、この初期化処理のフローチャートを示す。ステップ８１０の回転行列初期化処理は、回転行列ＭＡ，ＭＢ，ＭＣの角度Ａ，Ｂ，Ｃをいずれも０に設定する。ステップ８２０の各軸中心ずれ行列初期化処理は、各軸中心ずれ行列ＲＡＬ，ＲＡＲ，ＲＢＬ，ＲＢＲ，ＲＣＬ，ＲＣＲの初期化処理を、次のように設定する。まず、角度変換手順（例えば、文字列２２０）中から区切り文字“（”と“）”で囲まれた各軸中心のずれ行列およびずれ戻し行列を表す文字列（ＲＡＬ，ＲＡＲ，ＲＢＬ，ＲＢＲ，ＲＣＬ，ＲＣＲ）の有無を判別する。次いで、加工機構成の軸ずれ量から読み取った値（（ｔＡＹ，ｔＡＺ），（ｔＢＸ，ｔＢＺ），（ｔＣＸ，ｔＣＹ））を数６、数８、数１０に従い、４×４の行列で設定する。加工機構成を示す文字列中に、加工機構成の軸ずれ量が無い場合は、ずれ成分を０に設定する。
【００４４】
ステップ８３０の機械座標行列初期化処理は、機械座標成分ＭＸ，ＭＹ，ＭＺをいずれも０と設定する。ステップ８４０の初期主軸方向設定処理は、角度変換手順を示す文字列中に区切り文字“（”と“）”で囲まれた初期主軸方向を示す文字列（＋Ｘまたは−Ｘ，＋Ｙ，−Ｙ，＋Ｚ，−Ｚ）の有無を判別して、その文字列に対応するベクトルを設定する。図７に、ベクトル種および設定するベクトル成分の対応関係を示す。図７のベクトル種は、初期主軸方向を示す文字列と対応している。例えば、文字列“＋Ｘ”の場合、ベクトル種がＸ軸と対応しているので、初期主軸方向ＴＶとして（１，０，０，１）を設定する。同様に“−Ｘ”は−X軸、“＋Ｙ”はY軸、“−Ｙ”は−Y軸、“＋Ｚ”はZ軸、“−Ｚ”は−Z軸と対応し、それぞれ対応するベクトルの成分を設定する。
【００４５】
ステップ８５０の原点初期化処理は、数１３の式に示すように原点として（０，０，０，１）を設定する。
（第２回転軸不一致時の最短角度作成手段１２３）
本発明の特徴に係る第２回転軸不一致時の最短角度作成手段１２３について詳細に説明する。最短角度作成手段１２３は、第２回転軸と工具主軸方向ベクトルが同一方向あるいは反対方向かを判別し、同一方向あるいは反対方向にならない場合の角度を作成する。ここで、第２回転軸と工具主軸方向ベクトルが同一方向あるいは反対方向にならないとは、第２回転軸と工具主軸方向ベクトルとが不一致の場合である。
【００４６】
図９に、第２回転軸不一致時の最短角度作成処理のフローチャートを示す。最初に、ステップ９１０のカウンタ初期設定処理でカウンタIを０にする。このカウンタＩは、工具主軸方向ベクトルの順番を識別するためのカウンタである。次いで、ステップ９１２の初期角度設定において、角度初期値（ＡＩ，ＢＩ，ＣＩ）を（０，０，０）に設定する。ステップ９１４において、目的とする角度を作成する位置であるＩ番目の工具主軸方向ベクトルＶＩ（目的工具主軸方向ベクトル）を取り出す。次に、ステップ９１６において、取り出した目的工具主軸方向ベクトルと第２回転軸方向ベクトルを比較し、目的工具主軸方向ベクトルと第２回転軸方向ベクトルの方向が一致するか否か判別する。ステップ９１６の判定で、同一方向あるいは反対方向でない場合、つまり一致しない場合は、ステップ９１８で（α、β）の取り出しを行う。ここで、αは第２回転軸の角度、βは第１回転軸の角度とする。また、同一方向あるいは反対方向、つまり一致する場合は、ステップ９２８にてカウンタＩにより処理終了の判別を行う。ステップ９１８においては、角度変換手順を示す文字列中に区切り文字“（”と“）”で囲まれた回転を示す文字列（ＭＡまたはＭＢ，ＭＣ）の第１番目の回転の角度をαに設定し、次の第２番目の回転を示す文字列（ＭＡまたはＭＢ，ＭＣ）の角度をβに設定して（α、β）を取り出す。例えば、角度変換手順を示す文字列が“（ＭＢ）（ＭＡ）（ＴＶ）”の場合、最初に“ＭＢ”があるので、I番目の角度ＢＩをαにし、次に“ＭＡ”があるのでＩ番目の角度ＡＩをβにする。このようにして、角度変換手順を示す文字列を検索して回転行列の種類に対応する角度を（α、β）として取り出す。
【００４７】
次いで、ステップ９２０において、ステップ９１８で取り出した角度（α、β）から目的工具主軸方向ベクトルに近い近似工具主軸方向ベクトルＶＩを求める。また、求めた近似工具主軸方向ベクトルＶＩの微分を計算して、角度αで偏微分したベクトルａと、角度βで偏微分したベクトルｂを設定する。
【００４８】
ここで、図３に、角度変換手順を示す文字列、角度（α、β）を与え、ワーク座標系の工具主軸方向ベクトルを求める一例のフローチャートを示す。最初に、ステップ３１０の手順文字列読取において、角度変換手順を示す文字列（例えば、図２の文字列２２０（（ＲＡＬ）（ＭＡ）（ＲＡＲ）（ＲＢＬ）（ＭＢ）（ＲＢＲ）（ＴＶ））を読み取る。次いで、角度変換は初期主軸方向に順番に行列を乗じることから、ステップ３２０の文字列順入替において、角度変換手順を示す文字列を並べ替える（例えば、図２の文字列２２２（（ＴＶ）（ＲＢＲ）（ＭＢ）（ＲＢＬ）（ＲＡＲ）（ＭＡ）（ＲＡＬ））。次に、ステップ３３０の文字列取出において、文字列を検索し、区切り文字（例えば、図２の“（”と“）”で囲まれる文字を取り出す。次に、ステップ３４０において文字列判定を行い、該当する文字列があればステップ３４１の文字列判別処理へ移行し、文字列が無ければ終了する。
【００４９】
ステップ３４１に移行した場合は、文字列について、ステップ３４１〜３５７の文字列判別処理を実行し、文字列が“ＲＡＬ”、“ＭＡ”、“ＲＡＲ”、“ＲＢＬ”、“ＭＢ”、“ＲＢＲ”、“ＲＣＬ”、“ＭＣ”、“ＲＣＲ”、“ＭＸＹＺ”であるかを判定する。そして、ステップ３６１〜３７０において、各判定で判定された文字列に対応する４×４行列設定を実行する。また、文字列が“＋Ｘ”、“−Ｘ”、“＋Ｙ”、“−Ｙ”、“＋Ｚ”、“−Ｚ”、“Ｔｘｙｚ”である場合は、ステップ３７１〜３７７で各文字列に対応するベクトル設定を実行する。
【００５０】
なお、ステップ３４１〜３５７の文字列判別処理において、該当する文字列が無い場合は、ステップ３９１のエラー処理に進んで、解釈できない文字列であることを警告して終了する。
【００５１】
ステップ３６１〜３７０にて設定された４×４行列は、ステップ３８１の行列演算において、現在の軸ベクトルに乗じて座標変換される。そして、座標変換後の値を軸ベクトルに設定して、ステップ３８２の次文字列設定を実行する。
【００５２】
一方、ステップ３７１〜３７７にて設定された各文字列に対応した軸ベクトル（例えば、（０，０，１，１））は、ステップ３８２にて次の文字列設定を実行する。すなわち、ステップ３８２にて、現在の文字列を消去し、ステップ３３０に戻って文字列取出を繰り返す。
【００５３】
ここで、ステップ３７１〜３７７の処理は、偏微分ベクトル設定のため、角度変換手順の場合は３つの軸ベクトルを設定し、機械座標変換手順の場合は４つの軸ベクトルを設定する。また、ステップ３６１〜３７０の処理は、図４〜図７に示す行列と行列の微分成分も計算し、３ないし４の軸ベクトルに順番に乗じて微分成分を作成する。数２１の式は、ワーク座標系の工具主軸方向ベクトルの角度Ａによる微分、角度Ｂによる微分、角度Ｃによる微分を示し、数１７〜数２０の各式は数２１の式に表れる微分成分を示す。
【００５４】
・Ｘ軸回転行列の角度Ａでの微分、角度Ｂでの微分、角度Ｃでの微分：
【００５５】
【数１７】
2006053789.tif 000019
・Ｙ軸回転行列の角度Ａでの微分、角度Ｂでの微分、角度Ｃでの微分：
【００５６】
【数１８】
2006053789.tif 000020
・Ｚ軸回転行列の角度Ａ成分微分、角度Ｂ成分微分、角度Ｃ成分微分：
【００５７】
【数１９】
2006053789.tif 000021
・Ｘ／Ｙ／Ｚ軸回転軸補正行列、機械座標系での初期主軸方向：すべての成分が０
【００５８】
【数２０】
2006053789.tif 000022
・機械座標行列、機械座標系での原点：角度変換手順を示す文字列では利用しない
【００５９】
【数２１】
2006053789.tif 000023
図９のステップ９２２の更新量作成においては、Ｉ番目の近似工具主軸方向ベクトルＶＩから（Ｉ−１）番目の近似工具主軸方向ベクトルＶＩ−１を引いて偏差である差ベクトルｃ＝ＶＩ―ＶＩ−１を求め、（Ｉ−１）番目からＩ番目の角度αの更新量δα＝ａ・ｃ／ａ・ａおよび角度βの更新量δβ＝ｂ・ｃ／ｂ・ｂを求める。ここで、演算子“・”はベクトル間の内積を示す。
【００６０】
ステップ９２４の収束判定処理は、更新量（δα、δβ）が十分に小さいか否かを判別し、大きい場合はステップ９２６に進んで、α＝α＋δα、β＝β＋δβに角度を更新し、ステップ９２０に戻って近似工具主軸方向ベクトルＶＩの作成から繰り返す。ステップ９２４の収束判定で、更新量（δα、δβ）が十分小さい場合は、角度（α、β）をカウンタＩで示す工具主軸方向ベクトルＶＩの角度とする。次いで、ステップ９２８で最後の工具主軸方向ベクトルか否かをカウンタＩで判別し、最後の工具主軸方向ベクトルである場合は処理を終了する。最後でない場合は、ステップ９３０にてカウンタＩを１つ進め、ステップ９３２にて角度（α、β）を次の角度初期値に変更して、ステップ９１４に戻って次の目的工具主軸方向ベクトルの取り出しから処理を繰り返す。
【００６１】
ここで、ステップ９１８〜９２６の処理は、２変数の場合のニュートンラプソン法として知られている収束計算法である。本実施形態では、角度変換に対して２変数のニュートンラプソン法を適用するために、一般化座標変換処理で角度αによる微分、角度βによる微分を作成し、各微分ベクトルで内積を作成して２本の連立一次方程式を作成している。
【００６２】
（０割りを避けるための処理）
ここで、本発明の特徴の１つである０割りを避けるための処理について、図１０に示したフローチャートに基づいて説明する。まず、図９のステップ９２０、９２２の処理において０割りが発生すると角度の特異値が作成され、鋸刃状、尖点あるいは不自然な凹凸が表れることになる。そこで、このような０割りを避けるため、ステップ９２０の近似工具主軸方向ベクトルＶＩを作成した後、ステップ１０１２において、Ｉ番目の近似工具主軸方向ベクトルＶＩから（Ｉ−１）番目の近似工具主軸方向ベクトルＶＩ−１を引いて差ベクトルｃ＝ＶＩ―ＶＩ−１を作成する。次いで、ステップ１０１４において、更新量δαを作成する際の０割りを避けるため、近似工具主軸方向ベクトルを角度αで偏微分したベクトルａと差ベクトルｃの内積ａ・ｃが０に近いか否かの判定Ａを実行する。この判定Ａの結果、ベクトルの内積ａ・ｃが０に近い場合は、ステップ１０１６に進んで、０割りを避けるためにδα＝０．０１に設定する。
【００６３】
一方、判定Ａの結果、ベクトルの内積ａ・ｃが０に近くない場合は、ステップ１０１８に進んで、δβを作成する際の０割りを避けるため、近似工具主軸方向ベクトルを角度βで偏微分したベクトルｂと差ベクトルｃの内積ｂ・ｃが０に近いか否かの判定Ｂを実行する。また、ステップ１０１６でδα＝０．０１に設定した後、ステップ１０１８に進んで判定Ｂを実行する。この判定Ｂの結果、ベクトルの内積ｂ・ｃが０に近い場合は、ステップ１０２０に進んで、０割りを避けるためにδβ＝０．０１に設定する。
【００６４】
一方、判定Ｂの結果、ベクトルの内積ｂ・ｃが０に近くない場合は、ステップ１０２２に進んで、判定Ｃを実行する。また、ステップ１０２０でδβ＝０．０１に設定した後、ステップ１０２２に進んで判定Ｃを実行する。この判定Ｃは、ベクトルの内積ａ・ｃが判定Ａで用いた０に近い値より大きいか、または、ベクトルの内積ｂ・ｃが判定Ｂで用いた０に近い値より大きいか否かを判定する。この判定Ｃの結果、いずれかのベクトルの内積が０に近い値より大きい場合は、ステップ１０２４に進んで、δα＝ａ・ｃ／ａ・ａ、δβ＝ｂ・ｃ／ｂ・ｂに変更する。一方、判定Ｃの結果、いずれのベクトルの内積も０に近い値より小さい場合、あるいはステップ１０２４でδαとδβが変更された場合、図９のステップ９２４に進んで収束判定を実行する。
【００６５】
このように、図１０の判定Ａや判定Ｂの処理により、ベクトルの内積ａ・ｃあるいはｂ・ｃが０に近い場合でも、δαやδβの値をデフォルトの値に設定するようにしていることから、ステップ１０２４のδα、δβの変更処理で、０割りや著しく大きなδαやδβを作成することを回避できる。また、δαやδβをデフォルトの値に設定し、初期値を変化させて収束計算を継続することができる。その結果、ステップ１０１２〜１０２４の処理を実行することにより、安定に角度（α、β）を求めることができる。
（第２回転軸一致時の最短角度作成手段１２４）
ここで、図１に戻って、本発明の他の特徴に係る第２回転軸一致時の最短角度作成手段１２４について説明する。この手段１２４は、第２回転軸と工具主軸方向ベクトルが同一方向あるいは反対方向かを判別し、同一方向あるいは反対方向になる場合の角度を作成する。つまり、５軸制御加工機の場合、工具主軸方向ベクトルは工具軸（回転軸）に相当するから、工具姿勢を規定する第２回転軸が工具主軸方向ベクトルに一致する場合は無意味である。
【００６６】
図１１に、第２回転軸一致時の最短角度作成処理のフローチャートを示す。同図に示すように、ステップ１３１０において、カウンタＩを０に初期設定する。このカウンタＩは、工具主軸方向ベクトルの順番を識別するためのカウンタである。次いで、ステップ１３１２において、初期値角度（ＡＩ，ＢＩ，ＣＩ）を（０，０，０）に設定して、ステップ１３１４に進む。ステップ１３１４においては、目的とする角度を作成する位置であるＩ番目の工具主軸方向ベクトルＶＩ（目的工具主軸方向ベクトル）を取り出す。次いで、ステップ１３１６において、目的工具主軸方向ベクトルと第２回転軸方向ベクトルを比較し、同一方向あるいは反対方向、つまり工具軸と第２回転軸が一致しているか否かの判別を行う。工具軸と第２回転軸が一致している場合は、ステップ１３１８に進んで曲線補間処理を行う。一致していない場合は、ステップ１３３２に進んで、カウンタＩにより処理終了の判別を行う。
【００６７】
ここで、ステップ１３１８の曲線補間処理について、図１２、図１３を参照して説明する。まず、補間処理は、ステップ１３１６の第２回転軸一致判別で求めたＩ番目周辺の角度を補間した角度曲線を作成する。図１２に示すように、目的工具主軸方向ベクトルと第２回転軸方向ベクトルが一致する位置を白丸印１１２０で示し、図１の手段１２３で求めた目的工具主軸方向ベクトルと第２回転軸方向ベクトルが不一致の角度がある位置を黒丸印１１１０で示す。最初に、目的工具主軸方向ベクトルと第２回転軸方向ベクトルが一致する位置近傍の工具主軸方向ベクトルの角度を取り出す。図１２では、白丸印１１２０を挟んで５点づつ合計１０点の角度列１１３０を取り出している。次に、その角度列１１３０を曲線補間して角度曲線１１４０を作成する。曲線補間の方法は、最小二乗法によるB−スプライン曲線作成法を用いているが、近傍の点数を制限して円弧補間や放物線補間、多項式補間、スプライン補間などを用いてもかまわない。次に、角度曲線１１４０から白丸印１１２０に近い点１１５０を取り出して初期位置とする。この初期位置１１５０から収束計算で白丸印１１２０の位置における角度（α、β）を定める。
【００６８】
図１３は、目的工具主軸方向ベクトルと第２回転軸方向ベクトルが一致する工具主軸方向ベクトルが、角度曲線の外にある場合の角度曲線作成方法を説明する図である。目的工具主軸方向ベクトルと第２回転軸方向ベクトルが一致する工具主軸方向ベクトルが、ＣＬデータの先頭または終了位置にある場合、角度曲線１２１０の外に白丸印１２２０、１２３０が現れる。この状態では、角度曲線が無いため角度（α、β）を作成できない。そのため、角度曲線１２１０の両端を接線方向に延長した角度曲線１２４０および１２５０を作成し、その延長線を角度曲線とする。このようにすることで、角度曲線の外に目的工具主軸方向ベクトルと第２回転軸方向ベクトルが同一方向あるいは反対方向の工具主軸方向ベクトルがある場合にも角度（α、β）を作成可能になる。
【００６９】
図１１に戻って、ステップ１３２０の初期パラメータ設定処理は、曲線補間１３１８で作成した角度曲線とカウンタＩ−１番目の角度から角度曲線のパラメータｔを求める。このパラメータｔが繰り返し計算時の初期値となる。次いで、ステップ１３２２において、ステップ１３２０で設定した初期パラメータを角度曲線に代入して、角度（α、β）と、それらの角度をパラメータｔで微分した値（αｔ、βｔ）を作成して角度曲線上の点作成を行う。次のステップ１３２４は、ステップ１３２２で求めた角度（α、β）から計算した近似工具主軸方向ベクトルを求めると共に、近似工具主軸方向ベクトルを角度α成分で偏微分したベクトルａ、角度β成分で偏微分したベクトルｂを計算する。ここで、角度（α、β）から近似工具主軸方向ベクトルを計算する処理は、図９のステップ９２０の近似工具主軸方向ベクトル作成処理と同様である。
【００７０】
次のステップ１３２６において、初期パラメータｔの更新量δｔを求める。すなわち、Ｉ番目の工具主軸方向ベクトルと近似工具主軸方向ベクトルの差でベクトルｃを定め、角度曲線の微分ベクトルｄを（ａ）αｔ＋（ｂ）βｔで定める。これに基づいて、初期パラメータｔの更新量δｔ＝ｄ・ｃ／ｄ・ｄを求める。ここで、演算子“・”はベクトル間の内積を示す。
【００７１】
次いで、ステップ１３２８において、更新量δｔが十分に小さいか否かにより、収束判定を行う。この判定で、更新量δｔが大きい場合は、ステップ１３３０に進み、パラメータをｔ＝ｔ＋δｔに更新して、ステップ１３２２に戻り、角度曲線上の点作成から繰り返す。一方、十分に小さい場合は、ステップ１３３２に進んで、カウンタＩにより終了判別を行う。カウンタが最後でない場合は、ステップ１３３４にてカウンタＩを１つ進めて、ステップ１３１４に戻って次の目的工具主軸方向ベクトルを取り出して処理を繰り返す。
【００７２】
なお、ステップ１３２０〜１３３０の処理は、２変数（α、β）をパラメータｔの変数（α（ｔ）、β（ｔ））としたときの１変数のニュートンラプソン法として知られている収束計算法である。本実施形態では、角度変換に対して１変数のニュートンラプソン法を適用するために、角度曲線を作成した後、一般化座標変換処理で角度αによる微分、角度βによる微分を作成し、各微分ベクトルの合成微分で内積を作成して１本の連立一次方程式を作成している。
【００７３】
（０割りを避けるための処理）
さらに、ステップ１３２０〜１３３０の処理で表れる０割りを避けるための処理の実施形態を、図１４のフローチャートに示す。図示のように、図１１のステップ１３２２で角度曲線上の点作成処理を実行し、次のステップ１３２４でステップ１３２２で近似工具主軸方向ベクトルを求めると共に、近似工具主軸方向ベクトルの微分ベクトルａ、ｂを計算した後、ステップ１４３０の偏差作成処理にて、目的とする工具主軸方向ベクトルと近似工具主軸方向ベクトルの差ベクトルｃ、角度曲線のパラメータｔによる微分ベクトルｄを作成する。次に、ステップ１４４０の判定Ａにより、δｔを作成する場合の０割りを避けるため、ベクトルの内積ｄ・ｄが０に近い場合は、ステップ１４６０で角度（α、β）を１つ前の角度（α、β）に設定して処理を終了する。一方、ベクトルの内積ｄ・ｄが０とみなせないときは、ステップ１４５０で初期パラメータｔの更新量δｔ＝ｄ・ｃ／ｄ・ｄを更新する。次いで、図１１と同様に、ステップ１３２８に進んで、収束判定を実行する。このようにして、δｔを作成する場合の０割りを避けることができることから、ステップ１４３０〜１４６０の処理を行うことで、安定に角度（α、β）を求めることができる。
（角度補正手段１２５）
図１に戻って、本発明の他の特徴である角度補正手段１２５について説明する。角度補正手段１２５は、各手段１２１〜１２４で作成した角度の間隔や方向を確認して必要な角度補正をする。この角度補正の第１の補正手順を図１７を参照して説明する。同図は、αを角度とした第１回転軸１７０１、βを角度とした第２回転軸１７０２に、各手段１２１〜１２４で作成した角度を順番に繋いだ角度曲線１７１２を描画している。ここで、黒丸印１７１１は角度曲線の頂点であり、白丸印１７２１および１７２２は角度間隔が２πラジアンより大きい場合の角度曲線の頂点を示す。
【００７４】
まず、角度曲線の隣接する２点を順番に検索して、角度曲線の間隔を作成する。次に、角度曲線の間隔が２πラジアン以上になる位置を探す。図１７では、白丸印１７２１と１７２２の間隔が２πラジアンより大きくなっている。次に、２πラジアンより大きい角度曲線の間隔を持つ点１７２２を補正する。この第１の補正は、点１７２２の角度β成分が、点１７２１の角度β成分に対し増分方向にあれば点１７２２のβ成分を２πラジアンだけ減算し、逆に点１７６２のように点１７６１に対し減少方向にあれば、点１７６２のβ成分を２πラジアンだけ加算する。点１７２２または点１７６２以降の角度群１７３２および１７７２に対しても同様の処理をおこなう。この処理で、点１７２１と点１７２２の間隔が２πラジアンの２倍以上になっている場合は、２πラジアンの加算または減算を当該間隔が２π以下になるまで繰り返す。この第１の補正により、角度間隔が２πラジアン以上の場合に２πラジアン以下の角度に補正することができる。
【００７５】
また、角度補正の第２の補正手順を図１８を参照して説明する。図１８において、黒丸印１８１１は角度曲線１８１２の頂点であり、白丸印１８２１は尖点となる頂点を示す。まず、角度曲線の隣接する３点を順番に検索し、１点目と２点目を結ぶベクトルのβ方向のベクトルＡ、２点目と３点目結ぶベクトルのβ方向のベクトルＢを作成する。次に、隣接するＡベクトルとＢベクトル間の内積を求め、内積値が負となる位置を検索する。内積値が負となる場合は、尖点１８２１となる。そこで、尖点１８２１を持つ点より先の点群１８３１を補正する。この第２の補正は、点１８２２と１８２１のβ方向ベクトルを反転１８３２させ、点１８２１に加算した後、点１８２２と１８２１のα方向ベクトルを加算することにより行う。また、点１８２２以降の点群１８３１に関しても同様の処理を行い、点群１８３３を作成する。この第２の補正により、尖点となる角度曲線を平坦に近い分布に補正することができる。
【００７６】
以上のようにして、図１の手段１２１〜１２５からなる角度変換手段１２０により角度変換を行うようにしているから、本実施形態によれば、鋸刃状の角度分布や尖点のような特異点の発生を抑制できる。
（機械座標変換手段１３０）
図１の機械座標変換手段１３０は、角度変換手段１２０で作成した角度、CLデータの工具先端位置ベクトル、加工機構成を用いて、従来の手法により機械座標を作成する。
（機械座標変換手順列作成手段１３１）
まず、機械座標変換手順列作成手段１３１で機械座標変換手順を文字列で作成する。図２に、第１回転軸がＢ軸、第２回転軸がＡ軸としたときの工作機械種類と角度変換、機械座標変換の一般化座標変換式および対応する変換文字列の対応関係を示す。機械座標変換手順列作成手段１３１は、第１回転軸がＢ軸、第２回転軸がＡ軸としたときに、
・工作機械種類が工作物旋回形のとき、
（ＲＡＬ）（ＭＡ）（ＲＡＲ）（ＲＢＬ）（ＭＢ）（ＲＢＲ）（ＭＸＹＺ）（ＴＸＹＺ）の文字列２３０、
・工作機械種類が工具旋回形のとき、
（ＭＸＹＺ）（ＲＡＬ）（ＭＡ）（ＲＡＲ）（ＲＢＬ）（ＭＢ）（ＲＢＲ）（ＴＸＹＺ）の文字列２４０、
・工作機械種類が工具・工作物両旋回形のとき、
（ＲＡＬ）（ＭＡ）（ＲＡＲ）（ＭＸＹＺ）（ＲＢＬ）（ＭＢ）（ＲＢＲ）（ＴＸＹＺ）の文字列２５０、を作成する。
（各変換行列の初期設定手段１３２）
また、各変換行列の初期設定手段１３２は、各変換行列を初期化する。なお、回転角度に関連する行列は初期化しない。この初期化は、回転角度に関連する行列を初期化しないことを除き、各変換行列・角度の初期設定手段１２２と同様である。
（最短機械座標作成処理１３３）
さらに、最短機械座標作成処理１３３は、角度変換手段１２０で作成した角度、ＣＬデータの工具先端位置ベクトルから機械座標変換手順文字列に従って機械座標を求める。
【００７７】
図１５に、機械座標作成処理１３３のフローチャートを示す。最初に、ステップ１５１０にてカウンタＩを０に初期設定する。このカウンタＩは工具先端位置ベクトルの順番を識別するためのカウンタである。次いで、ステップ１５１２においてカウンタＩに対応する機械座標を（０，０，０）に初期化して、これを機械座標の初期値とする。次いで、ステップ１５１４にて、カウンタＩに対応する工具先端位置ベクトルを取り出す。ステップ１５１６は、機械座標初期値、角度変換手段１２０で求めた角度と機械座標変換手順を示す文字列を与え、近似工具先端位置ベクトル、近似工具先端位置ベクトルの微分を計算して、機械座標ＭＸで偏微分したベクトルをａ、ＭＹで偏微分したベクトルをｂ、ＭＺで偏微分したベクトルをｃに設定する。
【００７８】
ここで、ワーク座標系の工具先端位置ベクトルを求める処理手順は、図３に示したワーク座標系の工具主軸方向ベクトルを求めるフローチャートと同様である。つまり、機械座標変換手順を示す文字列、角度（α、β）、機械座標（ＭＸ，ＭＹ，ＭＺ）を与え、ワーク座標系の工具先端位置ベクトルを求める。まず、ステップ３１０で、機械座標変換手順を示す文字列（例えば、工具・工作物両旋回形の工作機械の場合、図２の文字列（ＲＡＬ）（ＭＡ）（ＲＡＲ）（ＭＸＹＺ）（ＲＢＬ）（ＭＢ）（ＲＢＲ）（ＴＸＹＺ）２５０）を読取る。そして、機械座標変換は機械座標原点に順番に行列を乗じることから、ステップ３２０にて機械座標変換手順を示す文字列を並べ替える（例えば、工具・工作物両旋回形の工作機械の場合、図２の文字列（ＴＸＹＺ）（ＲＢＲ）（ＭＢ）（ＲＢＬ）（ＭＸＹＺ）（ＲＡＲ）（ＭＡ）（ＲＡＬ）２５２）。次に、ステップ３３０で、文字列を検索し、区切り文字（例えば、図２の“（”と“）”で囲まれる文字を取り出す。次に、ステップ３４０にて文字列の有無を判定し、文字列があればステップ３４１に進んで文字列判別処理を実行し、文字列が無ければ終了する。
【００７９】
文字列がある場合は、ステップ３４１〜３５７で、その文字列が“ＲＡＬ”、“ＭＡ”、“ＲＡＲ”、“ＲＢＬ”、“ＭＢ”、“ＲＢＲ”、“ＲＣＬ”、“ＭＣ”、“ＲＣＲ”、“ＭＸＹＺ”であるかを判定し、ステップ３６１〜３７０にて各文字列に対応する４×４行列を設定する。その文字列が“＋Ｘ”、“−Ｘ”、“＋Ｙ”、“−Ｙ”、“＋Ｚ”、“−Ｚ”、“Ｔｘｙｚ”である場合、ステップ３７１〜３７７にて各文字列に対応するベクトルを設定する。
【００８０】
一方、ステップ３４１〜３５７の文字列判別に対応する文字が無い場合は、ステップ３９１のエラー処理で、解釈できない文字列であることを警告して終了する。
【００８１】
ステップ３６１〜３７０の４×４行列設定は、ステップ３８１の行列演算で現在の軸ベクトルに、ステップ３６１〜３７０で設定した４×４行列を乗じて座標変換し、座標変換後の値を軸ベクトルに設定し、ステップ３８２に進んで次文字列設定を実行する。
【００８２】
また、ステップ３７１〜３７７は、各文字列に対応した軸ベクトル（例えば、（０，０，０，１））を設定し、ステップ３８２に進んで次文字列設定を実行する。ステップ３８２は、現在の文字列を消去して、ステップ３３０に戻って次の文字列を取出して繰り返す。
【００８３】
ここで、ステップ３７１〜３７７の処理は、偏微分ベクトル設定のため、角度変換手順の場合は３つの軸ベクトル、機械座標変換手順の場合は４つの軸ベクトルを設定する。また、ステップ３６１〜３７０の処理は、図４〜図７に示す行列と行列の微分成分も計算し、３ないし４の軸ベクトルに順番に乗じることで微分成分を作成する。数２３は、ワーク座標系の工具先端位置ベクトルの機械座標ＭＸ成分による微分、ＭＹ成分による微分、ＭＺ成分による微分を示し、数２２の式は数２３の式に表れる微分成分を示す。
・機械座標行列：
【００８４】
【数２２】
2006053789.tif 000024
・Ｘ／Ｙ／Ｚ軸回転行列、Ｘ／Ｙ／Ｚ軸回転軸補正行列、機械座標系での原点：
すべての成分が０なので数２０の式に従う。
【００８５】
・機械座標系での初期主軸方向：使用しない。
【００８６】
【数２３】
2006053789.tif 000025
ステップ１５１８の更新量作成は、目的工具先端位置ベクトルから近似工具先端位置ベクトルを引くことでベクトルｄを定め、機械座標の更新量（δＭＸ，δＭＹ，δＭＺ）を（ａ・ｄ／ａ・ａ, ｂ・ｄ／ｂ・ｂ, ｃ・ｄ／ｃ・ｃ）で求める。ここで演算子“・”はベクトル間の内積を示す。
【００８７】
ステップ１５２０は、更新量（δＭＸ，δＭＹ，δＭＺ）が十分小さいかを判別し、大きい場合はステップ１５２２に進んでパラメータを（ＭＸ，ＭＹ，ＭＺ）＝（ＭＸ＋δＭＸ，MＹ＋δＭＹ，MＺ＋δＭＺ）に更新し、ステップ１５１６に戻って近似工具先端位置ベクトル作成から繰り返す。十分小さい場合は、機械座標（ＭＸ，ＭＹ，ＭＺ）をカウンタＩで示す工具先端位置ベクトルの機械座標とした後、最後の工具先端位置ベクトルかをステップ１５２４の終了判別を行う。この判定が、最後の工具先端位置ベクトルである場合は終了し、最後でない場合は、ステップ１５２６にてカウンタＩを１つ進め、ステップ１５２８で機械座標（ＭＸ，ＭＹ，ＭＺ）を次の機械座標初期値にして、ステップ１５２４に戻ってＩ番目の目的工具先端位置ベクトル取出処理から繰り返す。
【００８８】
なお、ステップ１５１６〜１５２２の処理は、３変数（ＭＸ，ＭＹ，ＭＺ）のニュートンラプソン法として知られている収束計算法である。本実施形態では機械座標変換に対して３変数のニュートンラプソン法を適用するために、一般化座標変換処理で機械座標ＭＸによる微分、機械座標ＭＹによる微分、機械座標ＭＺによる微分を作成し、各微分ベクトルで内積を作成して３本の連立一次方程式を作成している。
【００８９】
（０割りを避けるための処理）
図１６に、ステップ１５１６〜１５２２の処理で、０割りを避けるための処理の一例のフローチャートを示す。ステップ１５１６の近似工具先端位置ベクトル作成を実行後、ステップ１６１２で目的工具先端位置ベクトルと近似工具先端位置ベクトルの偏差である差ベクトルｄを作成する。次いで、ステップ１６１４の判定Ａを実行する。判定Ａは、更新量δＭＸを作成する場合の０割りを避けるため、ベクトルの内積ａ・ａが０に近い場合、ステップ１６１８で更新量δＭＸを０に設定する。また、判定Ａでベクトルの内積a・aが十分大きいときは、ステップ１６１６でδＭＸ＝ａ・ｄ／ａ・ａに設定する。
【００９０】
ステップ１６２０の判定Ｂは、δＭＹを作成する場合の０割りを避けるための判定であり、、ベクトルの内積ｂ・ｂが０に近い場合は、ステップ１６２４にて更新量δMＹ＝０に設定する。判定Ｂでベクトルの内積ｂ・ｂが十分大きいときは、ステップ１６２２にてδMＹ＝ｂ・ｄ／ｂ・ｂに設定する。
【００９１】
一方、ステップ１６２６の判定Ｃは、δＭＺを作成する場合の０割りを避けるための判定であり、ベクトルの内積ｃ・ｃが０に近い場合、ステップ１６３０で更新量δMＺ＝０に設定する。判定Ｃでベクトルの内積ｃ・ｃが十分大きいときは、ステップ１６２８でδMＺ＝ｃ・ｄ／ｃ・ｃに設定する。
【００９２】
このように、判定Ａ、判定Ｂ、判定Ｃによりａ・ａ、ｂ・ｂ、ｃ・ｃが０に近い場合でも、δＭＸ、δＭＹ、δＭＺを０に設定するので、ステップ１５２２で０割りや著しく大きなδＭＸ、δＭＹ、δＭＺを設定することを回避できる。その結果、ステップ１６１２〜１６３０の処理により、安定に機械座標（ＭＸ，ＭＹ，ＭＺ）を求めることができる。
（ＮＣデータ変換手段１４０）
図１のＮＣデータ変換手段１４０は、手段１１０〜１３０で求めた角度や機械座標を数値制御装置４０が解釈可能な文字列で構成されるＮＣデータに変換し、ＮＣデータ伝送手段１５０でＮＣ制御装置に送付する。
【００９３】
以上説明した本発明の実施形態によれば、ＣＬデータから第２回転軸不一致時の最短角度を作成するとともに、第２回転軸に一致する工具主軸方向ベクトルを補間して角度を作成した後、角度間隔が２πラジアンより大きい角度分布や、尖点が生じる角度分布を補正した角度や機械座標を作成できるので、急激な角度変化の無いＮＣデータを作成できる。
【００９４】
また、急激な角度変化が無い角度分布から機械座標を作成することができるので、折れの少ない機械座標軌跡を得ることができる。その結果、数値制御装置の負担が減少し、加工機におけるサーボ機構の負荷が安定し、被切削材への削り込みが少なく、加工表面粗さを改善し、切削工具の寿命を長くするとともに破損を少なくし、加工機駆動系の負担軽減や破損を少なくすることができる。
【図面の簡単な説明】
【００９５】
【図１】本発明の一実施形態のＮＣポストプロセッサ装置を含むＮＣ加工システムの構成図である。
【図２】本発明の実施形態に係る工作機械種類と角度変換、機械座標変換の一般化座標変換式および対応する変換文字列の対応関係を示す図である。
【図３】本発明の実施形態に係る角度変換処理、機械座標変換処理を示すフローチャートである。
【図４】本発明の実施形態に係るＡ／Ｂ／Ｃ軸回転行列成分と微分成分を示す図である。
【図５】本発明の実施形態に係るＡ／Ｂ／Ｃ軸ずれ行列およびずれ戻し行列の成分と微分成分を示す図である。
【図６】本発明の実施形態に係る機械座標行列の成分と微分成分を示す図である。
【図７】本発明の実施形態に係る初期主軸方向ベクトルの成分と微分成分を示す図である。
【図８】本発明の実施形態の各変換行列の初期設定処理を示すフローチャートである。
【図９】本発明の実施形態の第２回転軸不一致時の最短角度作成処理を示すフローチャートである。
【図１０】本発明の実施形態の第２回転軸不一致時の最短角度作成処理における０割り回避処理を示すフローチャートである。
【図１１】本発明の実施形態の第２回転軸一致時の最短角度作成処理を示すフローチャートである。
【図１２】本発明の実施形態の角度曲線作成処理の説明図である。
【図１３】本発明の実施形態の角度曲線の両端延長処理の説明図である。
【図１４】本発明の実施形態の第２回転軸一致時の最短角度作成処理における０割り回避処理を示すフローチャートである。
【図１５】本発明の実施形態の機械座標作成処理を示すフローチャートである。
【図１６】本発明の実施形態の機械座標作成処理における０割り回避処理を示すフローチャートである。
【図１７】本発明の実施形態の第１の角度補正手順の説明図である。
【図１８】本発明の実施形態の第２の角度補正手順の説明図である。
【符号の説明】
【００９６】
３０  ＮＣポストプロセッサ装置
１１０  ＣＬデータ・加工機構成読取手段
１２０  角度変換手段
１２１  角度変換手順列作成手段
１２２  各変換行列・角度の初期設定手段
１２３  第２回転軸不一致時の最短角度作成手段
１２４  第２回転軸一致時の最短角度作成手段
１２５  角度補正手段
１３０  機械座標変換手段
１３１  機械座標変換手順列作成手段
１３２  各変換行列の初期設定手段
１３３  最短機械座標作成手段
１４０  ＮＣデータ変換手段
１５０  ＮＣデータ伝送手段
【図１】
2006053789.tif 000026
【図２】
2006053789.tif 000027
【図３】
2006053789.tif 000028
【図４】
2006053789.tif 000029
【図５】
2006053789.tif 000030
【図６】
2006053789.tif 000031
【図７】
2006053789.tif 000032
【図８】
2006053789.tif 000033
【図９】
2006053789.tif 000034
【図１０】
2006053789.tif 000035
【図１１】
2006053789.tif 000036
【図１２】
2006053789.tif 000037
【図１３】
2006053789.tif 000038
【図１４】
2006053789.tif 000039
【図１５】
2006053789.tif 000040
【図１６】
2006053789.tif 000041
【図１７】
2006053789.tif 000042
【図１８】
2006053789.tif 000043