(57)【特許請求の範囲】
【請求項１】
加工物を加工する工具の工具経路を表わす点列からその一部を部分点列として取り出して部分曲線を生成する手続きを繰り返して工具経路を曲線化する工具経路曲線化装置において、
工具経路を構成する個々の曲線区間である区分曲線に対して、該区分曲線が含む前記生成された部分曲線の数と、区分曲線の終点における接線方向と、部分曲線情報と、からなる区分曲線情報を、すでに生成された区分曲線に対応づけて記憶する区分曲線情報記憶手段であって、前記部分曲線情報は、各部分曲線の部分曲線長および部分点列の点数の少なくとも一つと、前記部分曲線を数学的に定義する情報と、を含んでいる、区分曲線情報記憶手段と、
前記部分曲線を生成する時に、これから曲線を生成する点列の向きや折れ線長を含む特徴量と記憶された各区分曲線の区分曲線情報を比較することにより、形状を合わせるべき区分曲線がすでに生成されて対応する区分曲線情報が記憶されているか否かを調べて、記憶されている場合は、当該区分曲線情報を使って曲線を生成すると判定する曲線情報利用判定手段と、
前記区分曲線情報を利用して部分曲線を生成する記憶情報利用曲線生成手段と、
を備え、
前記曲線情報利用判定手段が前記記憶された前記区分曲線情報を利用すると判断した時には、前記記憶情報利用曲線生成手段により、形状を合わせるべき区分曲線の区分曲線情報とその区分曲線を構成する部分曲線の部分曲線情報を基に部分曲線を生成する、
工具経路曲線化装置。
【請求項２】
前記曲線情報利用判定手段が、前記工具経路が往復加工経路における復路であることを判定する手段である、請求項１に記載の工具経路曲線化装置。
【請求項３】
前記部分点列の取り出しを、点の数に基づく方法と部分点列の長さに基づく方法のいずれかを選択して行うようにした、請求項１に記載の工具経路曲線化装置。
【請求項４】
前記部分点列の取り出し方法の選択を、前記工具経路が往復経路の復路か否かに基づいて行うようにした、請求項３に記載の工具経路曲線化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械を制御する数値制御装置またはパーソナルコンピュータなどの情報処理装置を用いて、数値制御工作機械による加工において滑らかな加工面を実現するための工具経路を求める、工具経路曲線化装置に関する。
【背景技術】
【０００２】
与えられた点列を補間する曲線や各点の近傍を通る曲線を求める方法は広く知られており（非特許文献１，２）、数値制御工作機械による加工おいては、なめらかな加工面の実現と加工時間の短縮を目的として、点列で与えられた工具経路を曲線へ変換するために、この方法が利用されている（特許文献１〜５）。
【０００３】
一般に、加工プログラムの長さは加工物によって変わり、時間を要する加工では工具経路を構成する点の数も非常に多くなる。したがって、曲線化を一回の処理で完了することは困難で、点列を分割して少しづつ曲線を生成して行くという方式が採用されている。また、曲線生成と加工を並行して行おうとすると、必然的にこのやり方を取ることになる。
【０００４】
点列の分割は、通常、先頭から所定の数の点を取り出すという方法で行われる。点列に屈曲した箇所がある場合は、所定の数に満たなくてもその箇所を点列の分割点とする。分割された点群から生成される曲線は、パラメトリック曲線の形式で表わされ、Ｂスプライン曲線やＮＵＲＢＳ曲線など、用途に適した表現形式が採用される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１７１３７６号公報
【特許文献２】特開２００７−２９３４７８号公報
【特許文献３】特開２００６−３０９６４５号公報
【特許文献４】特開２００５−１８２４３７号公報
【特許文献５】特開２００４−０７８５１６号公報
【非特許文献】
【０００６】
【非特許文献１】Les Piegl, Wayne Tiler, The NURBS Book, Springer-Verlag
【非特許文献２】I.J.Schoenbarg, Spline functions and the problem of                         graduation, Proceedings of the National Academy of Sciences                of the U.S.A., 52 (1964)
【発明の概要】
【発明が解決しようとする課題】
【０００７】
背景技術で説明した従来の加工経路の曲線化は、分割された点列から曲線を生成する方法に主眼をおいており、生成された曲線を繋ぎ合わせた時の工具経路全体の形状については特に考慮されていない。その結果、往復加工パスの往路と復路のように隣接した曲線の間に形状の類似性が求められる時に、満足できる曲線を生成できないという問題がある。
【０００８】
一般に、ＣＡＭが出力する加工プログラムでは、演算方法などにより、工具経路を表わす点の位置は目標とする経路から少しずれることあり、点の間隔にもばらつきがあるのが普通である。往復パスでは、往路を与える点と復路を与える点が必ずしも対応していないことになり、所定の数の点を取り出す点列分割方法では、往路と復路で分割された点列の空間的な分布が異なる。点列の空間的な分布が異なれば生成される曲線の形状も変わり、往路と復路の曲線を比べた時に曲線間の段差として現れる。同様の問題は加工物を周回する螺旋状の工具経路の場合にも起こり得る。この原因は、所定の数の点を取り出す方法では点列の空間的な分布を制御できないところにあり、空間的な分布が揃う分割方法が必要なことを示している。
【０００９】
そこで本発明の目的は、上記従来技術の課題を解決するために、工具経路を表す点列をもとに生成した曲線の情報を記憶し、曲線の類似性が求められる箇所で、この情報を利用して所望の曲線を生成する工具経路曲線化装置を提供することである。
【課題を解決するための手段】
【００１０】
本願の請求項１に係る発明は、加工物を加工する工具の工具経路を表わす点列からその一部を部分点列として取り出して部分曲線を生成する手続きを繰り返して工具経路を曲線化する工具経路曲線化装置において、工具経路を構成する個々の曲線区間である区分曲線に対して、該区分曲線が含む前記生成された部分曲線の数と、区分曲線の終点における接線方向と、部分曲線情報と、からなる区分曲線情報を、すでに生成された区分曲線に対応づけて記憶する区分曲線情報記憶手段であって、前記部分曲線情報は、各部分曲線の部分曲線長および部分点列の点数の少なくとも一つと、前記部分曲線を数学的に定義する情報と、を含んでいる、区分曲線情報記憶手段と、前記部分曲線を生成する時に、これから曲線を生成する点列の向きや折れ線長を含む特徴量と記憶された各区分曲線の区分曲線情報を比較することにより、形状を合わせるべき区分曲線がすでに生成されて対応する区分曲線情報が記憶されているか否かを調べて、記憶されている場合は、当該区分曲線情報を使って曲線を生成すると判定する曲線情報利用判定手段と、前記区分曲線情報を利用して部分曲線を生成する記憶情報利用曲線生成手段と、を備え、前記曲線情報利用判定手段が前記記憶された前記区分曲線情報を利用すると判断した時には、前記記憶情報利用曲線生成手段により、形状を合わせるべき区分曲線の区分曲線情報とその区分曲線を構成する部分曲線の部分曲線情報を基に部分曲線を生成する、工具経路曲線化装置である。
【００１１】
請求項２に係る発明は、前記曲線情報利用判定手段が、前記工具経路が往復加工経路における復路であることを判定する手段である、請求項１に記載の工具経路曲線化装置である。
【００１２】
請求項３に係る発明は、前記部分点列の取り出しを、点の数に基づく方法と部分点列の長さに基づく方法のいずれかを選択して行うようにした、請求項１に記載の工具経路曲線化装置である。請求項３に係る発明により、点列の曲線化において、必要な箇所のみに点列の長さに基づく分割を適用して、曲線生成に要する時間を短縮すると共に、類似した曲線の生成を可能にする。
【００１３】
請求項４に係る発明により、前記部分点列の取り出し方法の選択を、工具経路が往復経路の復路か否かに基づいて行うようにした、請求項３に記載の工具経路曲線化装置である。請求項４に係る発明により、効率よく曲線を生成しながら、往復加工パスの往路と復路の間の段差を抑制できる。
【発明の効果】
【００１４】
本発明により、工具経路を表す点列をもとに生成した曲線の情報を記憶し、曲線の類似性が求められる箇所で、この情報を利用して所望の曲線を生成する工具経路曲線化装置を提供できる。
【図面の簡単な説明】
【００１５】
【図１】工具経路曲線化装置の構成を説明するブロック図である。
【図２】点列データを説明する図である。
【図３】工具経路の屈曲点の判定方法を説明する図である。
【図４】区分曲線データと部分曲線データとの関係を説明する図である。
【図５】曲線生成の手順を説明するフローチャートである。
【図６】復路か否かの判定手順を説明するフローチャートである。
【図７】通常の区分曲線を生成する手順を説明するフローチャートである。
【図８】復路の区分曲線を生成する手順を説明するフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態を図面と共に説明する。  
本発明は、点列で与えられた工具経路から点列を少しづつ取り出してパラメトリック曲線を生成して行く曲線化方法であって、生成した曲線を特徴づける情報を記憶しておき、既に生成した曲線に類似した曲線が求められる時は、記憶した情報を用いて曲線を生成する。  
まず幾つかの用語を定義する。曲線生成のために分割された点列のそれぞれを部分点列とし、部分点列から生成された曲線を部分曲線とする。工具経路が折れ曲がっている箇所は曲線の端点であり、そこで曲線が一旦終了し、別の曲線が始まる。一つの端点から次の端点までを区分曲線とする。曲線化した工具経路は区分曲線の集まりである。区分曲線は一つ以上の部分曲線から構成される。往復パスにおける往路と復路は、それぞれ、一つの区分曲線である。
【００１７】
本発明の方法では、区分曲線を単位として生成した曲線の情報を区分曲線情報として記憶する。区分曲線情報は、区分曲線に含まれる部分曲線の数と各部分曲線に関する部分曲線情報から構成される。部分曲線情報は、端点の位置、部分曲線の長さ、部分曲線の元になった部分点列の点数を含む。部分点列への分割は、扱いが簡単な点の数による分割を基本とする。部分点列の空間的な分布を揃えるべき箇所であることを判定する手段を設け、分布を揃えるべき箇所と判定された場合は、点の数による分割ではなく、記憶した情報に基づいて部分点列を取り出す。往復加工パスの場合は、復路が分布を揃えるべき箇所であり、復路と判定された場合は、往路の区分曲線情報を用いて、復路を構成する部分曲線の数、各部分点列の長さなどを往路と合わせる。詳細は後述するが、このようにして、記憶した情報を基に往路と復路を構成する各部分点列の空間分布を合わせることにより、往路と復路で段差のない曲線が生成される。
【００１８】
本発明に係る工具経路の曲線化の方法の要点は、往路に対する復路のように曲線の形状を合わせるべき箇所を判定し、判定した箇所では、通常の曲線生成手順とは異なる専用の生成手順により、記憶した曲線情報を利用して曲線を生成するところにある。
【００１９】
ここで、往復加工パスを含む場合を例に取り、本発明の手法の具体的な手順を説明する。図１は本発明の一実施形態を示すブロック図である。工具経路曲線化装置１は、ＮＣ指令解読部１０、点列取得部２０、復路判定部３０、区分曲線生成部４０、区分曲線情報記憶部５０、復路曲線生成部６０、曲線出力部７０を含む。なお、工具経路曲線化装置１は、工作機械を制御する数値制御装置またはパーソナルコンピュータなどの情報処理装置を用いて構成することができる。
【００２０】
ＮＣ指令解読部１０は、工作機械を制御する数値制御装置に搭載されるＮＣ指令解読部と同じもので、ＮＣ指令２（加工プログラム）を解読し、工具経路を構成する点列の点列データを取り出す。点列データは工具経路上の点の位置を表わすデータで、５軸加工の場合は位置に加えて工具の向きを表わすデータも含む。図２に３軸加工の場合の点列データの構造を示す。点列データの一つの点のデータは、工具先端の座標Ｘ，Ｙ，Ｚから成り、点の数だけこのデータが含まれている。
【００２１】
点列取得部２０はＮＣ指令解読部１０に対し、必要とする点列データを要求して取得する。所定の数Ｎ（個）の点のデータを取得することを基本とし、復路の場合は、復路曲線生成部６０の要求する範囲の点列データを取得する。要求された点列の中に工具経路の屈曲点と判定される箇所があれば、屈曲点までの点列データを取得する。
【００２２】
ＣＡＭが出力する加工プログラムでは、計算上の問題により局所的に位置が乱れた点が出力されることがある。このような異常な点と真の屈曲点を判別するため、図３に示すように点列を結ぶ線分の向きを平均化したｑ（バー），ｐ（バー）を求め、平均化した向きの差が閾値以上の時に屈曲点とする。なお、ｑ（バー），ｐ（バー）は、図３中に記載されるものである。
【００２３】
復路判定部３０は点列取得部２０から点列データを受け取り、その点列が復路か否かを判定する。この判定には区分曲線情報記憶部５０によって記憶された情報を用いるので、詳細は後述する。
【００２４】
区分曲線生成部４０は復路ではないと判定された場合に点列取得部２０から部分点列を取得して部分曲線を生成する処理を繰り返し、工具経路の屈曲点を終点とする区分曲線を生成する。部分曲線は部分点列の始点と終点を通り、その他の点の近傍を通るパラメトリック曲線である。パラメトリック曲線としてＢスプライン曲線を用いるが、ＮＵＲＢＳ曲線や区分多項式曲線など他の形式の曲線でもよい。部分曲線は、数１式により表される。
【００２５】
【数１】
0005845228.tif 000002
【００２６】
曲線が点の近傍を通るということは、数１式の曲線と部分点列の各点との距離が予め設定されたトレランス以下であるということ、すなわち、数２式を意味している。
【００２７】
【数２】
0005845228.tif 000003
【００２８】
パラメータｕの変域はノットと呼ばれる数の組Ｕ＝｛ｕ０，・・・，ｕｎ＋４｝によって分割される。したがって、数１式はノットと制御点を変数として曲線を表わしており、これらの変数の値を決めることによって曲線が定まる。数１式のような曲線を決める方法は幾つかあり、非特許文献１，２に記載されているように周知のことなので省略する。
【００２９】
区分曲線情報記憶部５０は区分曲線を単位として生成した曲線の情報を記憶する。図４に区分曲線データの構造を示す。部分曲線数は区分曲線が含む部分曲線の数を示すもので１以上の値を取る。終点における微分は終点においてパラメトリック曲線を微分したものである。部分曲線データは区分曲線に含まれる各部分曲線の情報を記憶するもので、図４に示す構造をなす。端点の位置は部分曲線の始点と終点の位置を表わす。点数は部分曲線の元になる部分点列に含まれる点の数を表わす。ノットはＢスプライン曲線で表わされた部分曲線の各ノットの値で、０から１の間の数値の組である。長さは部分点列の各点を線分で繋いだ折れ線の長さを表わす。区分曲線の情報を記憶するのは、後で復路が現れた時に往路の情報として利用するためである。一般に、復路は往路と短い経路でつながっているので、往路と復路の間に多くの区分曲線が存在することはない。したがって、記憶する区分曲線データの数に上限を設けて、記憶データの数が上限に達したら古いデータから捨てて行くようにする。
【００３０】
復路か否かの判定は、作成する区分曲線の元になる点列と記憶された区分曲線のデータを比較することによって行う。以下の（１）〜（３）の条件がすべて満足される時は、これから作成する区分曲線が記憶された区分曲線の一つを往路とする復路であると判定する。
（１）記憶された区分曲線の中に、終点の接線方向が点列の始点における接線方向と逆のものが存在する。
これは、往路と復路はほぼ逆向きであることを要求している。
（２）その区分曲線の終点が点列の始点の近くにある。  
これは、往路と復路が空間的に近い位置に存在することを要求している。
（３）その区分曲線の長さと点列の折れ線長がほぼ同じ。  
これは、往路と復路はほぼ同じ長さであることと、長さがある程度異なる場合には、往路と同じ曲線生成方法の方が良い結果を与えることによる。
【００３１】
復路曲線生成部６０は復路と判定された点列に基づいて曲線を生成する。復路は往路と同じ数の部分曲線で構成される。復路では点列長に基づいて部分点列を取り出す。往路の部分曲線を順にＣ１，・・・，Ｃｍ（Ｃｍが末尾の部分曲線）とする。復路の部分曲線を順にＣ’１，・・・，Ｃ’ｍ（Ｃ’ｍが末尾の部分曲線）とすると、Ｃｉに対向する位置に来るのは、Ｃ’ｍ−ｉである（ｉ＝０，・・・，ｍ−１）。往路に対する復路の縮尺を、往路の候補である区分曲線の長さＬ、点列長Ｌ’を用いて、数３式と表すことができる。
【００３２】
【数３】
0005845228.tif 000004
【００３３】
Ｃ’ｍ−ｉの元になる部分点列を、その点列長ｌｍ−ｉ’がＣｉの長さｌｉとｒにより、数４式で表されるように取る。
【００３４】
【数４】
0005845228.tif 000005
【００３５】
一般に、ｌｍ−ｉ’に対応する位置には点列に含まれる点は存在しないから、この位置に新たな点を追加して部分点列の終点とする。このようにして部分点列が決まれば、部分曲線を生成する手順は通常の区分曲線の場合と同じである。
【００３６】
曲線を生成する手順を図５のフローチャートに従って説明する。
●［ステップＳＡ１００］予め決めた所定の数の点を指令点列から取り出す。
●［ステップＳＡ１０１］取り出した点列が復路の一部か否かを判定する。その方法は後述する。
●［ステップＳＡ１０２］復路ではないと判定された場合は、通常の方法で区分曲線を生成する。その方法は後述する。
●［ステップＳＡ１０３］復路であると判定された場合は、復路用の方法で区分曲線を生成する。その方法は後述する。
●［ステップＳＡ１０４］生成した区分曲線の情報を区分曲線データに記憶する。
●［ステップＳＡ１０５］指令点列の中にまだ曲線化していない点が残っているか否かを判定する。残っていればステップＳＡ１００へ戻って曲線生成を続行し、残っていなければステップＳＡ１０６へ進む。
●［ステップＳＡ１０６］生成した曲線のデータを出力し、曲線生成を終了する。ここでは、すべての点を曲線化してから曲線データを出力するとしたが、一つの区分曲線が生成される毎に出力するなど、よりきめ細かく出力してもよい。
【００３７】
次に、復路か否かを判定するステップＳＡ１０１の手順を図６のフローチャートに従って説明する。
●［ステップＳＢ１００］上記（１）に対応し、部分点列の始点の接線方向を求めて、記憶された区分曲線の中で終点における接線方向がそれと逆向きのものが存在すれば、それを往路の候補としてステップＳＢ１０１へ進む。存在しなければステップＳＢ１０４へ進む。接線方向を求める方法は色々あり、どの方法でもよい。例えば、その点の近傍の数点を取り、それらを結ぶ線分の向きを平均したものとする。接線が逆向きであることは、二つの接線のなす角度θを閾値と比較することによって判定する。閾値  ≦  θ≦  １８０°の時に逆向きとする。
●［ステップＳＢ１０１］上記（２）に対応し、ステップＳＢ１００で往路の候補とした区分曲線の終点と点列の始点との距離を求め、閾値以下であれば近いと判定する。
●［ステップＳＢ１０２］上記（３）に対応し、これから生成する区分曲線の元になる点列の長さと往路の候補である区分曲線の長さを比較する。点列の長さは点列の各点を繋ぐ折れ線の長さとする。点列の終点は工具経路の次の屈曲点とする。これには、既に述べた屈曲点の判定方法を用いる。往路の候補である区分曲線の長さをＬ、点列長をＬ’、閾値をｋとして数５式で表される時に、両者がほぼ同じ長さと判定する。
【００３８】
【数５】
0005845228.tif 000006
【００３９】
●［ステップＳＢ１０３］復路であることを示すフラグを立てる。
●［ステップＳＢ１０４］復路であることを示すフラグを落とす。
【００４０】
次に、通常の区分曲線を生成する図５のステップＳＡ１０２の手順を図７のフローチャートに従って説明する。
●［ステップＳＣ１００］点列の始点と終点を通り、始点と終点の微分が指定された値を持つベジェ曲線を初期曲線とする。始点における微分の値は、始点とその近傍の点を用いて非特許文献１に記載された方法で求める。終点についても同様である。また、別の方法として、始点近傍の３点と終点を通るベジェ曲線の始点における微分を用いてもよい。終点の場合は、終点近傍の３点と始点を通るベジェ曲線の終点における微分とする。
●［ステップＳＣ１０１］数２式で与えられる部分曲線の各点と曲線との距離を求めて、その最大値を得る。
●［ステップＳＣ１０２］最大値がトレランス以下であれば現在の曲線を部分曲線として、処理を終了する。トレランスより大きければ、ステップＳＣ１０３へ進む。
●［ステップＳＣ１０３］内部ノットと制御点を一つづつ追加し、曲線を修正して、ステップＳＣ１０１へ戻る。追加するノットの値は非特許文献１に記載されている方法のいずれかを用いて決める。修正された曲線は、数１式の形に表わされるＢスプライン曲線である。
●［ステップＳＣ１０４］生成した部分曲線の情報を部分曲線データに記憶する。
●［ステップＳＣ１０５］直前に生成した部分曲線の終点が工具経路の屈曲点であれば、区分曲線の終点に到達したと判断し、処理を終了する。そうでなければ、ステップＳＣ１０６へ進む。
●［ステップＳＣ１０６］新たに所定の数の点列を取り出して部分点列とし、初期曲線を生成するステップＳＣ１００へ戻る。
【００４１】
最後に、復路の区分曲線を生成する図５のステップＳＡ１０３の手順を図８のフローチャートに従って説明する。
●［ステップＳＤ１００］数３式のｒを求める。復路であると判定した段階で復路の終点まで点列を読んでいるので、Ｌ’を求めることができる。
●［ステップＳＤ１０１］点列長が数４式で与えられる長さになるように、部分点列を取り出す。
●［ステップＳＤ１０２］往路の対応する部分曲線の部分曲線データからノットを取得し、それを反転したノットを用いてＢスプライン曲線を生成する。ノットの反転とは、元のノットをｕｉとした時、１−ｕｉを新たなノットとすることである。通常の区分曲線生成では初期曲線がベジェ曲線であるのに対し、復路では往路の情報を利用したＢスプライン曲線である。
●［ステップＳＤ１０３］〜●［ステップＳＤ１０５］部分曲線自体を生成するこれらのステップの処理は、通常の区分曲線生成の時と同じである。
●［ステップＳＤ１０６］部分曲線情報を記憶する処理も、通常の区分曲線生成の時と同じである。
●［ステップＳＤ１０７］区分曲線生成の終了を判定する処理も、通常の区分曲線生成の時と同じである。
【００４２】
曲線出力部７０は得られた曲線のデータを所定の形式で出力する。曲線生成装置を数値制御装置と別にする場合は、曲線を数値制御装置が解読できる形式、例えばＮＵＲＢＳ指令形式、に変換する。曲線生成装置を数値制御装置に内蔵させて曲線に変換しながら加工を行う場合は、数値制御装置が処理し易い内部形式、すなわち、加工プログラムに曲線補間指令が含まれている時にＮＣ指令解読部が出力する形式に変換する。
【００４３】
なお、ここでは、パラメトリック曲線としてＢスプライン曲線を用いているが、ＮＵＲＢＳ曲線など他の形式の曲線への拡張は、数１式の表現形式を変えて同じ考え方を適用すればよい。
【符号の説明】
【００４４】
１  工具経路曲線化装置
２  ＮＣ指令
１０  ＮＣ指令解読部
２０  点列取得部
３０  復路判定部
４０  区分曲線生成部
５０  区分曲線情報記憶部
６０  復路曲線生成部
７０  曲線出力部
【図１】
0005845228.tif 000007
【図２】
0005845228.tif 000008
【図５】
0005845228.tif 000009
【図６】
0005845228.tif 000010
【図７】
0005845228.tif 000011
【図８】
0005845228.tif 000012
【図３】
0005845228.tif 000013
【図４】
0005845228.tif 000014