(57)【要約】【課題】  ２軸以上の回転軸を有する工作機械における適切な曲線補間方法を提供する。【解決手段】  指令点列点Ｐ0，Ｐ1…Ｐn間を内挿し内挿点Ｑ0，Ｑ1…Ｑ２nを得る(Ｓ1〜Ｓ3)。直線軸要素のみの列と回転軸要素の列に分解し(Ｓ1〜Ｓ8，Ｓ17，Ｓ18）、それぞれ近似曲線を得る(Ｓ9，Ｓ11)。直線軸要素の点、回転軸要素の点をそれぞれの近似曲線に向かって移動させた修正指令点Ｑi1’、Ｑi2’を得る(Ｓ10〜Ｓ12)。修正指令点Ｑi1’、Ｑi2’を合成し、合成修正指令点Ｑi’を得る(Ｓ13)。各内挿点に対応する２つの近似曲線上の位置における１階微分を求め合成し、合成１階微分値Ｑi(1)'を求める(Ｓ14)。合成修正指令点Ｑi’と合成１階微分値Ｑi(1)'により合成修正指令点Ｑi’を通る曲線を生成し、該曲線を補間する。ディメンジョンが異なる直線軸要素と回転軸要素に分割して修正指令点を求めて曲線を生成するから、より適切な曲線補間ができる。【選択図】          図９
2006309645.tif 000002
【特許請求の範囲】
【請求項１】
直線軸３軸と回転軸２軸以上を持った多軸工作機械用の数値制御装置における、指令点列から滑らかな曲線を生成しその曲線に沿って補間する方法において、
（１）指令点列の各点間に内挿点を求め、それを形状指令点とするステップと、
（２）該形状指令点の各点について順に着目し、着目した点とその前後の予め決められた点数の形状指令点を選択するステップと、
（３）該選択した点に対して直線軸３軸分の要素と２軸以上の回転軸分の要素に分割するステップと、
（４）該直線軸３軸分の要素に対して直線軸用近似曲線を生成するステップと、
（５）前記直線軸３軸分の要素について前記直線軸用近似曲線に向かって移動し直線軸用修正指令点とするステップと、
（６）２軸以上の前記回転軸分の要素に対して回転軸用近似曲線を生成するステップと、
（７）２軸以上の前記回転軸分の要素について前記回転軸用近似曲線に向かって移動し回転軸用修正指令点とするステップと、
（８）前記移動後の直線軸用修正点の３軸分の要素と前記移動後の回転軸用修正移動点の２軸以上の回転軸分の要素を合成し合成修正指令点とするステップと、
（９）前記ステップ（２）からステップ（８）までを各形状指令点について繰り返し実行するステップと、
（１０）前記合成修正指令点の点列を通る曲線を生成するステップと、
（１１）生成した曲線を補間するステップと、
からなることを特徴とする曲線補間方法。
【請求項２】
ステップ（１）において、内挿点と指令点をあわせて形状指令点とする、請求項１記載の曲線補間方法。
【請求項３】
ステップ（１）において、内挿するにあたり、設定単位以下の細かさで内挿点を求める、請求項１又は請求項２記載の曲線補間方法。
【請求項４】
ステップ（４）、（６）において、各点と近似曲線との距離の２乗の和が最小となる近似曲線を生成する、請求項１乃至３の内いずれか１項に記載の曲線補間方法。
【請求項５】
ステップ（５）、（７）において、修正のための移動量が第１の設定値を越えるとき、修正のための移動量は前記第１の設定値分だけとする、請求項１乃至４の内いずれか１項に記載の曲線補間方法。
【請求項６】
ステップ（５）、（７）において、修正指令点間が第２の設定値よりも短い場合は、さらにその内挿点を修正指令点とし、その内挿点を求めるために使用した修正指令点は削除する、請求項１乃至５の内いずれか１項に記載の曲線補間方法。
【請求項７】
請求項６において求める前記内挿点は中点とした請求項６記載の曲線補間方法。
【請求項８】
ステップ（５）、（７）において、移動するにあたり、設定単位以下の細かさで移動する、請求項１乃至７の内いずれか１項に記載の曲線補間方法。
【請求項９】
ステップ（１０）において、合成修正指令点列を通る曲線を生成するにあたり、前記直線軸用近似曲線及び前記回転軸用近似曲線における各修正指令点が対応する近似曲線の点における近似曲線の１階微分の値を各修正指令点毎に求め合成して得られる、合成１階微分値をも使用する、請求項１乃至８の内いずれか１項に記載の曲線補間方法。
【請求項１０】
ステップ（１１）において、設定単位以下の細かさで補間する、請求項１乃至９の内いずれか１項に記載の曲線補間方法。
【請求項１１】
ステップ（１）において、指令点間がある設定値よりも短い場合は、さらにその内挿点を指令点とみなし、その内挿点を求めるために使用した指令点は削除する、請求項１乃至１０の内いずれか１項に記載の曲線補間方法。
【請求項１２】
請求項１１において求める前記内挿点は中点とした請求項１１記載の曲線補間方法。
【請求項１３】
ステップ（４）、（６）において、生成する曲線はNURBS曲線である、請求項１乃至１２の内いずれか１項に記載の曲線補間方法。
【請求項１４】
ステップ（４）、（６）において、生成する曲線はスプライン曲線である、請求項１乃至１２の内いずれか１項に記載の曲線補間方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置等で曲面を加工する際の指令点列データより滑らかな曲線を得る曲線補間方法に関する。
【背景技術】
【０００２】
ＣＡＤ／ＣＡＭ装置や倣い装置などを使って作成した指令点列データに基づいて数値制御工作機械等で金型等の曲面を加工する場合、指令点列データから近似曲線を得て該曲線の補間を行って曲面加工が行われている。  
ＣＡＤ／ＣＡＭで作成されるデータは、ＣＡＤで作成されるデータの目標曲線（以下、所期の曲線という）に対してあるトレランス内に入るように線分が作成され、その線分の両端の点が指令点列データとして数値制御装置に指令される。
【０００３】
図１に示すように、ＣＡＭでは所期の曲線Ｃｓに対して、あるトレランス幅２ｗ内に入るように線分Ｌが作成され、その線分の両端の点Ｐ，Ｐ…・が指令点列データとしてＣＡＭから数値制御装置に指令される。この指令点列の位置情報に基づいて曲線Ｃｅが生成されるために、所期の曲線Ｃｓに対するトレランス幅２ｗを越えるような曲線Ｃｅが生成されてしまうことがある。  
指令点を修正する方法も公知（特許文献１参照）であるが、この場合においても、所期の曲線Ｃｓに対するトレランス幅２ｗを越えるような曲線Ｃｅが生成されないという保証はない。
【０００４】
また、指令点列は所期の曲線Ｃｓに対してあるトレランス幅２ｗの帯の端に来ることが多い。そのため、指令点列のみから曲線Ｃｅを生成すると、所期の曲線Ｃｓから離れてしまうことがある。たとえば、図２に示すように、所期の曲線Ｃｓが円弧であった場合、あるトレランス幅２ｗ内に入る線分Ｌを生成すると、指令点Ｐ，Ｐ，Ｐは所期の曲線Ｃｓからトレランス量ｗだけ離れた位置にある。図３に示すように、各線分Ｌを約０．１５：０．７：０．１５で内分した２点Ｑ1，Ｑ2が所期の曲線Ｃｓ上に存在する点である。
【０００５】
このことは、指令点を修正する場合も同様である。たとえば、上述した図２のように、所期の曲線が円弧であった場合、指令点列は円弧上に並んでいるため、指令点列に対して近似的な曲線を当てはめても指令点列はほとんど修正されない。したがって、修正された指令点列はやはり所期の曲線Ｃｓからトレランス量ｗだけ離れた位置にある。
【０００６】
又、指令点列から生成される曲線Ｃｅは、指令点列の位置を必ず通過する。そのため、指令点列にＣＡＤ／ＣＡＭでの計算誤差があったり、設定単位への丸め誤差があり、図４に示すような点列Ｐ，Ｐ，Ｐ…であると、その誤差が生成曲線Ｃｅに反映し、加工面の面精度が良くないことや加工時の機械の振動の原因となることがある。このように、指令された点列の位置を必ず通過することが、面精度の劣化の原因となることがある。
【０００７】
これらの問題を解決するために、ＣＡＤ／ＣＡＭ装置や倣い装置などを使って作成された指令点列データを内挿する内挿点を求め、該内挿点より近似曲線を求め、各内挿点を近似曲線に向かって設定単位以下の細かさで補正した修正点を求め、該修正点の点列を通るトレランス幅を越えない滑らかな曲線を生成して該曲線を補間する曲線補間方法が知られている（特許文献２参照）。
【０００８】
【特許文献１】特開平１０−２４０３２８号公報
【特許文献２】特開２００４−７８５１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述した特許文献２に記載された曲線補間方法は、指令された点列からトレランス幅内に収まり、滑らかな曲線を得て、該曲線を補間するものである。この曲線補間方法は、工作機械の各軸を対等に扱っている。直線軸も回転軸も区別することなく、指令点列データから内挿点を求めて近似曲線を求め、この近似曲線に基づいて各内挿点に対する修正点を求め、該修正点の点列を通る曲線を求めている。しかし、直線軸は長さの単位であり、回転軸は角度の単位であることから、ディメンションが異なる。そのため、この特許文献２に記載された曲線補間方法は回転軸を有する工作機械に適用するには必ずしも十分ではない。
そこで、本発明の目的は、上述した問題点を改善し、回転軸をも有する工作機械に対してもより適切な曲線補間方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明は、直線軸３軸と回転軸２軸以上を持った多軸工作機械用の数値制御装置における、指令点列から滑らかな曲線を生成しその曲線に沿って補間する方法であって、請求項１に係る発明は、
（１）指令点列の各点間に内挿点を求め、それを形状指令点とするステップと、
（２）該形状指令点の各点について順に着目し、着目した点とその前後の予め決められた点数の形状指令点を選択するステップと、
（３）該選択した点に対して直線軸３軸分の要素と２軸以上の回転軸分の要素に分割するステップと、
（４）該直線軸３軸分の要素に対して直線軸用近似曲線を生成するステップと、
（５）前記直線軸３軸分の要素について前記直線軸用近似曲線に向かって移動し直線軸用修正指令点とするステップと、
（６）２軸以上の前記回転軸分の要素に対して回転軸用近似曲線を生成するステップと、
（７）２軸以上の前記回転軸分の要素について前記回転軸用近似曲線に向かって移動し回転軸用修正指令点とするステップと、
（８）前記移動後の直線軸用修正点の３軸分の要素と前記移動後の回転軸用修正移動点の２軸以上の回転軸分の要素を合成し合成修正指令点とするステップと、
（９）前記ステップ（２）からステップ（８）までを各形状指令点について繰り返し実行するステップと、
（１０）前記合成修正指令点の点列を通る曲線を生成するステップと、
（１１）生成した曲線を補間するステップと、
からなることを特徴とする曲線補間方法である。
【００１１】
又、請求項２に係る発明は前記ステップ（１）において、内挿点と指令点をあわせて形状指令点とするものであり、請求項３に係る発明は、前記ステップ（１）において、内挿するにあたり、設定単位以下の細かさで内挿点を求めるものとした。さらに、請求項４に係る発明は、前記ステップ（４）、（６）において、各点と近似曲線との距離の２乗の和が最小となる近似曲線を生成するものとした。  
請求項５に係る発明は、前記ステップ（５）、（７）において、修正のための移動量が第１の設定値を越えるとき、修正のための移動量は前記第１の設定値分だけとし、請求項６に係る発明は、前記ステップ（５）、（７）において、修正指令点間が第２の設定値よりも短い場合は、さらにその内挿点を修正指令点とし、その内挿点を求めるために使用した修正指令点は削除するものとした。特に、請求項７に係る発明は、請求項６で求める前記内挿点を中点とした。
【００１２】
請求項８に係る発明は、前記ステップ（５）、（７）において、移動するにあたり、設定単位以下の細かさで移動するものとし、請求項９に係る発明は、前記ステップ（１０）において、合成修正指令点列を通る曲線を生成するにあたり、前記直線軸用近似曲線及び前記回転軸用近似曲線における各修正指令点が対応する近似曲線の点における近似曲線の１階微分の値を各修正指令点毎に求め合成して得られる、合成１階微分値をも使用するものとした。請求項１０に係る発明は、前記ステップ（１１）において、設定単位以下の細かさで補間するものとし、請求項１１に係る発明は、前記ステップ（１）において、指令点間がある設定値よりも短い場合は、さらにその内挿点を指令点とみなし、その内挿点を求めるために使用した指令点は削除するものとした。特に、請求項１２に係る発明は、請求項１１で求める前記内挿点を中点とした。請求項１３に係る発明は、前記ステップ（４）、（６）において、生成する曲線はNURBS曲線とし、請求項１４に係る発明は、前記ステップ（４）、（６）において、生成する曲線はスプライン曲線とした。
【発明の効果】
【００１３】
ディメンションの異なる直線軸と回転軸とに分割してそれぞれ修正指令点を求め、直線軸用修正指令点と回転軸用修正指令点の各要素を合成して合成修正指令点を求めて、該合成修正指令点を通る曲線を生成し補間するようにしたから、回転軸を２軸以上有する多軸工作機械におけるより適切な曲線補間を行うことができる。
【発明を実施するための最良の形態】
【００１４】
図５は本発明の曲線補間方法を適用する数値制御装置１００のブロック図である。数値制御装置１００を全体的に制御するプロセッサ１１には、ＲＯＭ、ＲＡＭ、バッテリでバックアップされたＣＭＯＳメモリ等のメモリ１２、記憶媒体にデータを入出力するデータ入出力装置３４が接続されたインターフェイス１３、表示器／ＭＤＩユニット３０が接続されたインターフェイス１６、操作盤３１が接続されたインターフェイス１７、ＰＭＣ（プログラマブル・マシン・コントローラ）１４、表示器／ＭＤＩユニット３０、各軸の軸制御回路１８、スピンドル制御回路２０がバス２２で接続されている。
【００１５】
この実施形態では、５軸工作機械を該数値制御装置１００で制御するものとし、直線軸のＸ軸，Ｙ軸，Ｚ軸の３軸と、回転軸のＡ軸、Ｂ軸を備えるものとしており、この各５軸の軸制御回路１８はプロセッサ１１からの各軸の移動指令量を受けて、各軸の指令をサーボアンプ１９に出力する。各軸サーボアンプ１９はこの指令を受けて、各軸のサーボモータ３２を駆動する。各軸のサーボモータ３２は位置・速度検出器を内蔵し、この位置・速度検出器からの位置・速度フィードバック信号を各軸制御回路１８にフィードバックし、位置・速度のフィードバック制御を行う。なお、図５では、位置・速度のフィードバックについては省略している。
【００１６】
また、スピンドル制御回路２０は主軸回転指令を受け、指令主軸速度と主軸モータ３３に設けられたポジションコーダからの速度フィードバック信号とにより、スピンドルアンプ２１にスピンドル速度信号を出力する。スピンドルアンプ２１はスピンドル速度信号により主軸の速度制御を行う。
【００１７】
データ入出力装置３４からインターフェイス１３を介して、ＣＡＤ／ＣＡＭ装置や倣い装置などを使って作成された指令点列データを含む加工プログラムが入力され、メモリの不揮発性部分に記憶されているものとする。滑らかな曲線を生成して補間することの開始を指令するＧコードとこの指令を解除するＧコードが用意されており、加工プログラムには、図６に示すように、滑らかな曲線を生成して補間すべき対象の指令点列の最初に、滑らか曲線補間指令のＧコード「Ｇ０６．３」がプログラムされ、この指令をキャンセルする位置に滑らか曲線補間キャンセル指令Ｇコード「Ｇ０６．９」がプログラムされている。このＧコード「Ｇ０６．３」と「Ｇ０６．９」間において、Ｘ，Ｙ，Ｚ，Ａ，Ｂの各軸に対する移動指令に対して本発明が採用する滑らか補間がなされる。  
又、この滑らか補間をなす区間を各点列における直線軸の位置によって自動的に判断するようにしてもよい。この場合は、プロセッサ１１は加工プログラムより点列を読み、各点列間を結ぶ線分の角度や長さから滑らか曲線を生成して補間するか否かを自動的に判断するようにする。図７に示すように、点Ｐ1，Ｐ2，Ｐ3の各点間の隣り合う線分間の屈折角度は小さい。及び点，Ｐ6，Ｐ7，Ｐ8の各点間の隣り合う線分間の屈折角度も小さい。よって、これらの区間は滑らか曲線を生成して補間する領域と判断し、又、点Ｐ3とＰ4間の線分と点Ｐ4とＰ5間の線分の屈折角度α、点Ｐ4とＰ5間の線分と点Ｐ5とＰ6間の線分の屈折角度βは大きい。このため、点Ｐ4とＰ5間は滑らかな曲線を生成して補間する処理は行わないようにする。すなわち、指令点列間のとなりあう線分の屈折角が基準値以下の場合には、滑らか曲線を生成して補間する処理を行うものと自動的に判断し、他の場合には行わないように自動的に判断するようにする。
【００１８】
又、図８に示すように、指令点Ｐ1からＰ4及び指令点Ｐ5からＰ8の各点間の距離は短いが、指令点Ｐ4とＰ5間の距離は長い、このように指令点間の距離が基準値以下の指令点Ｐ0〜Ｐ4、Ｐ5〜Ｐ8の場合には、滑らか曲線を生成して補間する処理を行い、基準値より長い指令点Ｐ4〜Ｐ5の場合には、滑らか曲線を生成して補間する処理を行わないものと自動的に判断するようにする。
そこで、Ｇコードにより又は自動的に滑らか曲線を生成して補間する処理と判断されたときの処理について、図９、図１０に示すフローチャートと共に説明する。
【００１９】
プロセッサ１１は加工プログラムより指令点列Ｐ0，Ｐ1，Ｐ2，Ｐn-1，Ｐnを読込む（Ｓ１）。この読込んだ指令点列が図１１に示すような指令点列Ｐ0，Ｐ1，Ｐ2，Ｐn-1，Ｐnであったとする。
【００２０】
次に、各点間（Ｐ0，Ｐ1） ，(Ｐ1，Ｐ2)…(Ｐn-1，Ｐn)に、点列指令の設定単位以下の細かさで２点の内挿点(Ｑ1，Ｑ2)，（Ｑ3，Ｑ4）…（Ｑ2n-1，Ｑ2n）を作成する（Ｓ２）。この実施形態においては、図１２に示すように、内挿比を０．１５：０．７：０．１５としている。すなわち、 (Ｐi，Ｐi+1)間の内挿点(Ｑ2i+1，Ｑ2i+2)の内挿比は、線分(Ｐi，Ｐi+1)の距離：線分(Ｑ2i+1，Ｑ2i+2)の距離：線分(Ｐi，Ｑ2i+1)の距離=０．１５：０．７：０．１５とする。
【００２１】
そして、Ｑ0=Ｐ0，Ｑ2n+1=Ｐnとし（Ｓ３）、これによって内挿点の点列Ｑ0，Ｑ1，Ｑ2，…Ｑ2n，Ｑ2n+1からなる形状指令点列を生成する。  
指標ｉを「１」にセットし（Ｓ４）、該指標ｉの値を判断し（Ｓ５，Ｓ６）、指標ｉが「１」の場合には、形状指令点列Ｑi-1，Ｑi，Ｑi+1，Ｑi+2（＝Ｑ0，Ｑ1，Ｑ2，Ｑ3）を取出し（Ｓ１７）、指標ｉが「２〜２n-1」の場合には、形状指令点列Ｑi-2，Ｑi-1，Ｑi，Ｑi+1，Ｑi+2を取出し（Ｓ７）、指標ｉが「２n」の場合には、形状指令点列Ｑi-2，Ｑi-1，Ｑi，Ｑi+1（＝Ｑ2n-2，Ｑ2n-1，Ｑ2n，Ｑ2n+1）を取出す（Ｓ１８）。なお、指標ｉが「２n+1」の場合には後述する。
こうして取出した点列に対して直線軸要素（Ｘ軸，Ｙ軸，Ｚ軸の要素）のみの列と回転軸要素（Ａ軸、Ｂ軸の要素）のみの列に分解する（Ｓ８）。
【００２２】
得られた直線軸要素のみの列に対して、最小２乗法にて直線軸用近似曲線Ｃｍ１を作成する。つまり、取出した点列からの距離の２乗和が最も小さくなる曲線Ｃｍ１を作成する（Ｓ９）。この直線軸用近似曲線Ｃｍ１が図１３に示す一点鎖線の曲線であったとする。次に、この時点の指標ｉに対応する形状指令点Ｑiの直線軸要素の点を直線軸用近似曲線Ｃｍ１に向かって、点列指令の設定単位以下の細かさでかつトレランス量２ｗ以内に制限して移動し、直線軸のみからなる直線軸用修正指令点Ｑi1’とする（Ｓ１０）。
【００２３】
同様に、回転軸要素のみの列に対して、最小２乗法にて回転軸用近似曲線Ｃｍ２を作成し（Ｓ１１）、この時点の指標ｉに対応する形状指令点Ｑiの回転軸要素の点を回転軸用近似曲線Ｃｍ２に向かって、点列指令の設定単位以下の細かさでかつトレランス量２ｗ以内で移動し、回転軸のみからなる回転軸用修正指令点Ｑi2’を得る（Ｓ１２）。
【００２４】
そして、直線軸用修正指令点Ｑi1’と回転軸用修正指令点Ｑi2’を合成し、合成修正指令点Ｑi’を得る（Ｓ１３）。さらに、形状指令点Ｑiに対する直線軸用近似曲線Ｃｍ１と回転軸用近似曲線Ｃｍ２上の位置における１階微分をそれぞれ求め合成し１階微分値Ｑi(1)’として記憶する（Ｓ１４）。
【００２５】
指標ｉを「１」インクリメントし（Ｓ１５）、該指標ｉが形状指令点Ｑの数の「２ｎ＋１」を越えたか判断し（Ｓ１６）、越えてなければ、処理Ｓ５に戻り上述した処理を実行する。
【００２６】
指標ｉが「２ｎ＋１」に達したことが、処理Ｓ５で判断されたときには、合成修正指令点Ｑ2n+1’＝指令点Ｐnとし、合成修正指令点Ｑ2n’から指令点Ｐnへの方向ベクトルを合成修正指令点Ｑ2n+1’に対応する１階微分値Ｑ2n+1(1)’として記憶し（Ｓ１９）、指標ｉを１インクリメントする（Ｓ１５）。その結果、指標ｉが形状指令点Ｑの数「２ｎ＋１」を越えたことが判別されるので（Ｓ１６）、処理Ｓ２０に移行し、合成修正指令点Ｑ0’=指令点Ｐ0とし、指令点Ｐ0から合成修正指令点Ｑ1’の方向ベクトルを合成修正指令点Ｑ0’（＝Ｐ0）に対応する１階微分値Ｑ0 (1)’とする（Ｓ２０）。以上の処理によって、形状指令点列Ｑ0，Ｑ1，Ｑ2，…Ｑ2n，Ｑ2n+1に対応する合成修正指令点列Ｑ0’，Ｑ1’，Ｑ2’…Ｑ2n’，Ｑ2n+1’及び各合成修正指令点の１階微分値Ｑ0 (1)’，Ｑ1 (1)’，Ｑ2 (1)’…Ｑ2n (1)’，Ｑ2n+1 (1)’を得る。
【００２７】
さらに本実施形態においては、図１４に示すように、合成修正指令点Ｑ0’，Ｑ1’…Ｑ2n+1’の各２点間の距離（直線軸で形成される位置間の距離）について、設定されている基準値よりも短い２点Ｑj’，Ｑj+1’間の距離があれば、その２点間を内挿した内挿点を求める。この図１４に示す例では２点の中点を新しい合成修正指令点Ｑj’とし、旧い合成修正指令点Ｑj’，Ｑj+1’を削除する。又、旧い合成修正指令点の１階微分値Ｑj(1)’とＱj+1(1)’の平均値を新しい合成修正指令点Ｑj’の１階微分値Ｑj(1)’として、旧い合成修正指令点の１階微分値Ｑj(1)’とＱj+1(1)’を削除する。ただし、合成修正指令点列の両端の合成修正指令点Ｑ0’，Ｑ2n+1’及びこの合成修正指令点の１階微分値Ｑ0(1)’，Ｑ2n+1(1)’は削除しない。  
これによって、曲線生成の元データとして、合成修正指令点列Ｑ0’，Ｑ1’…Ｑ2n+1’と、各点における１階微分値Ｑ0(1)’，Ｑ1(1)’…Ｑ2n+1(1)’が作成される（Ｓ２１）。
【００２８】
次に、合成修正指令点列Ｑ0’，Ｑ1’…Ｑ2n+1’および各１階微分値Ｑ0(1)’，Ｑ1(1)’…Ｑ2n+1(1)’とから、合成修正指令点列Ｑ0’，Ｑ1’…Ｑ2n+1’を通る曲線を生成する（Ｓ２２）。
【００２９】
たとえば、２点Ｑj’，Ｑj+1’において、それらの位置Ｑj’，Ｑj+1’とそれらの点における１階微分値Ｑj(1)’，Ｑj+1(1)’が与えられているので、それらの点を結ぶスプライン曲線やNURBS曲線等の３次曲線を生成して補間することができる。より具体的には、たとえば、２点Ｑj’，Ｑj+1’間を次のようなスプライン曲線の３次曲線で結ぶ場合、２点の位置Ｑj’，Ｑj+1’と１階微分値Ｑj(1)’，Ｑj+1(1)’の４個のデータが与えられるので、次式で示すスプライン曲線の係数Ａ，Ｂ，Ｃ，Ｄは決定され、２点Ｑj’，Ｑj+1’間を結ぶ３次曲線Ｃｅが生成される（Ｓ２３）。
【００３０】
ｆ（ｔ）＝Ａｔ3＋Ｂｔ2＋Ｃｔ＋Ｄ  
(Ａ，Ｂ，Ｃ，Ｄは係数、t=０〜１．０の曲線パラメータ)
ただし、ｆ（ｔ），Ａ，Ｂ，Ｃ，Ｄは次のように各軸ごとに値を持つベクトルである。
【００３１】
ｆ（ｔ）x＝Ａxｔ3＋Ｂxｔ2＋Ｃxｔ＋Ｄx
ｆ（ｔ）y＝Ａyｔ3＋Ｂyｔ2＋Ｃyｔ＋Ｄy
ｆ（ｔ）z＝Ａzｔ3＋Ｂzｔ2＋Ｃzｔ＋Ｄz
ｆ（ｔ）a＝Ａaｔ3＋Ｂaｔ2＋Ｃaｔ＋Ｄa
ｆ（ｔ）b＝Ａbｔ3＋Ｂbｔ2＋Ｃbｔ＋Ｄb
なお、図１６にこうして生成された曲線Ｃｅを示す。  
次に、こうして生成された曲線Ｃｅを点列指令の設定単位以下の細かさで補間する（Ｓ２０）。
【００３２】
上述の実施形態においては、ステップＳ１で全ての指令点列Ｐ0，Ｐ1，Ｐ2, …Ｐn-1，Ｐnの読込みを行ってから処理を開始したが、必要点列だけ読みとってその点列に対する処理を行うことも可能である。そうすることによって、対象の指令点列をすべて読込み終わってから曲線生成の処理を開始するのでなく指令点列を読込みながら読込んだ指令点列に対して曲線を生成していくことが可能である。
【００３３】
又、各指令点間に内挿点（＝形状指令点）を得る場合、上記実施形態では２点の内挿点を作成しているが、２点に限らず他の数の内挿点を作成するようにしてもよい。さらに、近似曲線Ｃｍを作成する場合、上記実施形態では、着目している形状指令点Ｑiの前後に最大２点の形状指令点を取出しているが、２点という点数を他の数にしてもよい。さらには、指令点列Ｐ0，Ｐ1，Ｐ2，…Ｐn-1，Ｐn と内挿点Ｑ1，Ｑ2，…Ｑ2nを合わせて形状指令点としてもよい。
【００３４】
さらに、指令点列Ｐ0，Ｐ1，Ｐ2，…Ｐn-1，Ｐn の任意の２点を結ぶ線分がある設定値よりも短い場合、図１５に示すように、その内挿点または中点を指令点Ｐ’とみなしその内挿点または中点を生成するために使用した２点の指令点は削除するようにしてもよい。この場合、処理Ｓ２で、各指令点Ｐ間の距離が設定基準値以下か判断し、基準以下の場合には、上述した処理を行うようにして、指令点列を作成しなおし、内挿点を求めるようにすればよい。
【００３５】
又、上記実施形態では、処理Ｓ２の処理で指令点Ｐi，Ｐi+1間の内挿点Ｑ2i+1，Ｑ2i+2おいて、線分(Ｐi，Ｐi+1)の距離：線分(Ｑ2i+1，Ｑ2i+2)の距離：線分(Ｐi，Ｑ2i+1)の距離＝０．１５：０．７：０．１５とした内挿比を用いたが、他の値にしてもよい。
上述した実施形態では、３つの直線軸と２つの回転軸を有する５軸加工機に本発明を適用した例を示したが、回転軸が３軸の６軸加工機にも本発明は適用できるものである。
【図面の簡単な説明】
【００３６】
【図１】指令点列に基づいて曲線を生成する従来の方法における問題点の説明図である。
【図２】従来の方法により生成した曲線と所期の曲線の説明図である。
【図３】従来の方法による所期の曲線上の点の説明図である。
【図４】指令点列によっては、従来の方法では滑らかな生成曲線が得られない例の説明図である。
【図５】本発明を実施する数値制御装置の一実施形態の要部ブロック図である。
【図６】同実施形態における曲線を生成して補間するプログラムを指令したプログラム例の説明図である。
【図７】同実施形態において、曲線を生成して補間するか否かを自動的に判断する方法の説明図である。
【図８】同実施形態において、曲線を生成して補間するか否かを自動的に判断する別の方法の説明図である。
【図９】同実施形態における動作処理のフローチャートである。
【図１０】同動作処理フローチャートの続きである。
【図１１】同実施形態における点列指令の説明図である。
【図１２】同実施形態における内挿点（形状指令点）の説明図である。
【図１３】同実施形態における近似曲線を求め、修正指令点及び１階微分値を求める説明図である。
【図１４】同実施形態における修正指令点をさらに修正し新しい修正指令点と１階微分値を求める説明図である。
【図１５】本発明においてさらに指令点を修正する場合の説明図である。
【図１６】同実施形態において生成される滑らかな曲線の説明図である。
【符号の説明】
【００３７】
１００  数値制御装置
Ｐ，Ｐ0，Ｐ1，Ｐ2，…Ｐn-1，Ｐn  指令点
Ｑ，Ｑ0，Ｑ1，Ｑ2，…Ｑ2n，Ｑ2n+1  内挿点（形状指令点）
Ｑi1’  直線軸のみの修正指令点
Ｑi2’  回転軸のみの修正指令点
Ｑi’，Ｑ0’，Ｑ1’，Ｑ2’…Ｑ2n’，Ｑ2n+1’  合成修正指令点
Ｑ(1)’，Ｑ0(1)’，Ｑ1(1)’…Ｑ2n+1(1)’  １階微分値
Ｃｓ  所期の曲線
Ｃｍ  近似曲線
Ｃｅ  生成される曲線
ｗ  トレランス幅
Ｌ  線分
【図１】
2006309645.tif 000003
【図２】
2006309645.tif 000004
【図３】
2006309645.tif 000005
【図４】
2006309645.tif 000006
【図５】
2006309645.tif 000007
【図６】
2006309645.tif 000008
【図７】
2006309645.tif 000009
【図８】
2006309645.tif 000010
【図９】
2006309645.tif 000011
【図１０】
2006309645.tif 000012
【図１１】
2006309645.tif 000013
【図１２】
2006309645.tif 000014
【図１３】
2006309645.tif 000015
【図１４】
2006309645.tif 000016
【図１５】
2006309645.tif 000017
【図１６】
2006309645.tif 000018