(57)【要約】【課題】加工経路をより適切にスムージングすること。【解決手段】本発明の数値制御装置１は、加工のためのプログラムを取得する加工プログラム先読み部１１ａと、加工のためのプログラムに基づいて、加工の経路をパラメトリックな線分又は曲線として表す指令経路数式化部１１ｂと、パラメトリックな線分又は曲線における平滑化の対象点について、平滑化を施す範囲を当該対象点から任意の範囲で設定し、設定された平滑化を施す範囲に基づいて、対象点について平滑化を施す平滑化処理部１１ｃと、を備え、平滑化処理部１１ｃは、対象点における平滑化の前後での乖離量が設定された閾値以下となる平滑化を施す範囲を設定する。【選択図】図１
2020077311.tif 000002
【特許請求の範囲】
【請求項１】
工作機械による加工を制御する数値制御装置であって、
加工のためのプログラムを取得するプログラム取得部と、
前記加工のためのプログラムに基づいて、加工の経路をパラメトリックな線分又は曲線として表す数式化部と、
前記パラメトリックな線分又は曲線における平滑化の対象点について、平滑化を施す範囲を当該対象点から任意の範囲で設定する平滑化適用範囲設定部と、
設定された前記平滑化を施す範囲に基づいて、前記対象点について平滑化を施す平滑化処理部と、
を備え、
前記平滑化適用範囲設定部は、前記対象点における平滑化の前後での乖離量が設定された閾値以下となる前記平滑化を施す範囲を設定することを特徴とする数値制御装置。
【請求項２】
前記数式化部は、前記加工の経路を多項式で数式化することにより、パラメトリックな線分又は曲線として表すことを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記数式化部は、前記加工の経路を直線、円弧、螺旋、ベジエ、スプライン及びＮＵＲＢＳの少なくともいずれかに基づく数式で表すことを特徴とする請求項１又は２に記載の数値制御装置。
【請求項４】
前記平滑化処理部は、スプライン曲線化、ＮＵＲＢＳ曲線化、移動平均フィルタ処理、加重平均フィルタ処理及びガウシアンフィルタ処理の少なくともいずれかによって、前記対象点について平滑化を施すことを特徴とする請求項１から３のいずれか１項に記載の数値制御装置。
【請求項５】
前記平滑化適用範囲設定部は、前記対象点における平滑化の前後での乖離量が設定された閾値以下となる条件の下、最大となる前記平滑化を施す範囲を設定することを特徴とする請求項１から４のいずれか１項に記載の数値制御装置。
【請求項６】
前記平滑化適用範囲設定部は、前記対象点における平滑化の前後での乖離量が設定された閾値以下となる条件の下、最大となる前記平滑化を施す範囲を収束処理により求めた解に基づいて、前記平滑化を施す範囲を決定することを特徴とする請求項５に記載の数値制御装置。
【請求項７】
工作機械による加工を制御する数値制御装置が実行する加工経路設定方法であって、
加工のためのプログラムを取得するプログラム取得ステップと、
前記加工のためのプログラムに基づいて、加工の経路をパラメトリックな線分又は曲線として表す数式化ステップと、
前記パラメトリックな線分又は曲線における平滑化の対象点について、平滑化を施す範囲を当該対象点から任意の範囲で設定する平滑化適用範囲設定ステップと、
設定された前記平滑化を施す範囲に基づいて、前記対象点について平滑化を施す平滑化処理ステップと、
を含み、
前記平滑化適用範囲設定ステップでは、前記対象点における平滑化の前後での乖離量が設定された閾値以下となる前記平滑化を施す範囲を設定することを特徴とする加工経路設定方法。
【請求項８】
コンピュータに、
加工のためのプログラムを取得するプログラム取得機能と、
前記加工のためのプログラムに基づいて、加工の経路をパラメトリックな線分又は曲線として表す数式化機能と、
前記パラメトリックな線分又は曲線における平滑化の対象点について、平滑化を施す範囲を当該対象点から任意の範囲で設定する平滑化適用範囲設定機能と、
設定された前記平滑化を施す範囲に基づいて、前記対象点について平滑化を施す平滑化処理機能と、
を実現させ、
前記平滑化適用範囲設定機能は、前記対象点における平滑化の前後での乖離量が設定された閾値以下となる前記平滑化を施す範囲を設定することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置、加工経路設定方法及びプログラムに関する。
【背景技術】
【０００２】
従来、工作機械等で加工を行う場合、加工時の工具経路（加工経路）を設定し、設定された工具経路に対するスムージングが行われている。一般に、工具経路のスムージングにおいては、指令点によって与えられた指令経路を、各指令点毎にスムージングの適用範囲を周囲の前後Ｎ（Ｎは自然数）点のように量子的（離散的）な値を設定してスムージングしている。このため、工具経路が同一であっても、指令点のパターンが異なると、スムージング結果が異なることがある。
この問題を解決するため、特許文献１には、指令点間を一定間隔で分割し、その分割点をスムージングする方法が開示されている。この方法を用いることで、工具経路が同じであれば、指令点の有無に関わらず、ほぼ同一の分割点が得られ、その分割点をスムージングすることで、同様のスムージング結果を得ることができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１８−７３０９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
スムージングの適用範囲（周囲の前後Ｎ点）の設定については、経路全体を通じて同一のスムージングの適用範囲を設定すると、例えばコーナ等の曲率の大きい部分では元の経路からの乖離量が大きくなり、逆に平坦な部分では、元の経路からの乖離量が小さくなる。このため、元の経路からの乖離量が一定（指定されたトレランス）程度となるように、工具経路の形状に応じて、スムージングの適用範囲（周囲の前後Ｎ点）を随時変更しながらスムージングする必要がある。
そうすると、例えば、図５Ｂに示すように、少しずつ形状が変化する隣接経路において、スムージングを施した場合、スムージングの適用範囲が変化（Ｎが変化）している隣接経路間でスムージングの適用範囲が不連続的に変化すること（経路間段差）があり、これが、加工ワークにスジ等として表れる問題があった。
この点、特許文献１に開示された方法では、工具経路が同じであれば、指令点の有無に関わらず、ほぼ同一の分割点が得られ、その分割点をスムージングすることで、同様のスムージング結果を得ることができるが、少しずつ形状が変化する隣接経路において、スムージングを施した場合には、依然として、隣接経路間でスムージングの適用範囲が不連続的に変化することで、加工ワークにスジ等として表れる可能性があった。
【０００５】
本発明は、加工経路を線分又は曲線としてスムージングの適用範囲を連続的に変化するように設定することで、加工経路をより適切にスムージングすることを目的とする。
【課題を解決するための手段】
【０００６】
（１）  本発明の数値制御装置（例えば、後述の数値制御装置１）は、工作機械による加工を制御する数値制御装置であって、加工のためのプログラムを取得するプログラム取得部（例えば、後述の加工プログラム先読み部１１ａ）と、前記加工のためのプログラムに基づいて、加工の経路をパラメトリックな線分又は曲線として表す数式化部（例えば、後述の指令経路数式化部１１ｂ）と、前記パラメトリックな線分又は曲線における平滑化の対象点について、平滑化を施す範囲を当該対象点から任意の範囲で設定する平滑化適用範囲設定部（例えば、後述の平滑化処理部１１ｃ）と、設定された前記平滑化を施す範囲に基づいて、前記対象点について平滑化を施す平滑化処理部（例えば、後述の平滑化処理部１１ｃ）と、を備え、前記平滑化適用範囲設定部は、前記対象点における平滑化の前後での乖離量が設定された閾値以下となる前記平滑化を施す範囲を設定することを特徴とする。
【０００７】
（２）  （１）の数値制御装置において、前記数式化部は、前記加工の経路を多項式で数式化することにより、パラメトリックな線分又は曲線として表すこととしてもよい。
【０００８】
（３）  （１）又は（２）の数値制御装置において、前記数式化部は、前記加工の経路を直線、円弧、螺旋、ベジエ、スプライン及びＮＵＲＢＳの少なくともいずれかに基づく数式で表すこととしてもよい。
【０００９】
（４）  （１）〜（３）の数値制御装置において、前記平滑化処理部は、スプライン曲線化、ＮＵＲＢＳ曲線化、移動平均フィルタ処理、加重平均フィルタ処理及びガウシアンフィルタ処理の少なくともいずれかによって、前記対象点について平滑化を施すこととしてもよい。
【００１０】
（５）  （１）〜（４）の数値制御装置において、前記平滑化適用範囲設定部は、前記対象点における平滑化の前後での乖離量が設定された閾値以下となる条件の下、最大となる前記平滑化を施す範囲を設定することとしてもよい。
【００１１】
（６）  （５）の数値制御装置において、前記平滑化適用範囲設定部は、前記対象点における平滑化の前後での乖離量が設定された閾値以下となる条件の下、最大となる前記平滑化を施す範囲を収束処理により求めた解に基づいて、前記平滑化を施す範囲を決定することとしてもよい。
【００１２】
（７）  また、本発明の加工経路設定方法は、工作機械による加工を制御する数値制御装置が実行する加工経路設定方法であって、加工のためのプログラムを取得するプログラム取得ステップと、前記加工のためのプログラムに基づいて、加工の経路をパラメトリックな線分又は曲線として表す数式化ステップと、前記パラメトリックな線分又は曲線における平滑化の対象点について、平滑化を施す範囲を当該対象点から任意の範囲で設定する平滑化適用範囲設定ステップと、設定された前記平滑化を施す範囲に基づいて、前記対象点について平滑化を施す平滑化処理ステップと、を含み、前記平滑化適用範囲設定ステップでは、前記対象点における平滑化の前後での乖離量が設定された閾値以下となる前記平滑化を施す範囲を設定することを特徴とする。
【００１３】
（８）  また、本発明のプログラムは、コンピュータに、加工のためのプログラムを取得するプログラム取得機能と、前記加工のためのプログラムに基づいて、加工の経路をパラメトリックな線分又は曲線として表す数式化機能と、前記パラメトリックな線分又は曲線における平滑化の対象点について、平滑化を施す範囲を当該対象点から任意の範囲で設定する平滑化適用範囲設定機能と、設定された前記平滑化を施す範囲に基づいて、前記対象点について平滑化を施す平滑化処理機能と、を実現させ、前記平滑化適用範囲設定機能は、前記対象点における平滑化の前後での乖離量が設定された閾値以下となる前記平滑化を施す範囲を設定することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、加工経路を線分又は曲線としてスムージングの適用範囲を連続的に変化するように設定することで、加工経路をより適切にスムージングすることができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態に係る数値制御装置の構成を示すブロック図である。
【図２】加工プログラムに定義されている指令経路と数式化されたパラメトリックな線分との関係を示す模式図である。
【図３】指令経路とスムージング結果との関係を示す模式図である。
【図４】数値制御装置が実行する工具経路生成処理の流れを説明するフローチャートである。
【図５Ａ】本発明によるスムージングを行った場合の効果を示す模式図である。
【図５Ｂ】従来技術によるスムージングを行った場合の効果を示す模式図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態について、図面を参照して説明する。
［構成］
図１は、本発明の一実施形態に係る数値制御装置１の構成を示すブロック図である。
図１に示すように、数値制御装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１と、ＲＯＭ１２と、ＲＡＭ１３と、入力部１４と、表示部１５と、記憶部１６と、通信部１７と、を備えている。なお、加工プログラムに定義されている指令経路、スムージングされた指令経路、これを補間処理して得られる加工時の工具の移動経路（工具経路）等、加工に関連して設定される経路を総称して、適宜「加工経路」と称する。
【００１７】
ＣＰＵ１１は、記憶部１６に記憶された各種プログラムを実行することにより、数値制御装置１の全体を制御する。例えば、ＣＰＵ１１は、加工時の工具経路を生成する処理（以下、「工具経路生成処理」とも称する。）のためのプログラムを実行する。
工具経路生成処理のためのプログラムを実行することにより、ＣＰＵ１１には、機能的構成として、加工プログラム先読み部１１ａと、指令経路数式化部１１ｂと、平滑化処理部１１ｃと、補間制御部１１ｄと、が形成される。
【００１８】
加工プログラム先読み部１１ａは、数値制御装置１が実行する加工のためのプログラム（加工プログラム）を記憶部１９あるいはネットワークを介して接続されたサーバ等から取得する。このとき取得される加工プログラムには、ＣＡＭ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｍａｎｕｆａｃｔｕｒｉｎｇ）システムによって生成された加工の経路を示す指令経路（指令点の配置）が定義されている。
指令経路数式化部１１ｂは、加工プログラムに定義されている、離散的な指令点より与えられた指令経路を、連続的なパラメトリックな線分又は曲線として数式化する。例えば、指令経路数式化部１１ｂは、指令経路を直線、円弧、螺旋、ベジエ、スプラインあるいはＮＵＲＢＳ（Ｎｏｎ−Ｕｎｉｆｏｒｍ  Ｒａｔｉｏｎａｌ  Ｂ−Ｓｐｌｉｎｅ）等に対応する数式（多項式）として表す。こうすることで、工具経路が同一であっても指令点に有無により近似曲線の経路が大きく変化するという問題が解消されるとともに、後述するように、経路上の各点に対してスムージング適用範囲を連続的に設定することが可能となる。
【００１９】
図２は、加工プログラムに定義されている指令経路と数式化されたパラメトリックな線分との関係を示す模式図である。
図２に示すように、指令経路数式化部１１ｂは、加工プログラムに定義されている指令経路の指令点を補間（ここでは直線補間とする）し、指令点を線分で結ぶ経路をパラメトリックな直線で表す。なお、指令経路数式化部１１ｂは、指令点を円弧やスプライン等の曲線で補間する場合には、指令点を結ぶ経路をパラメトリックな曲線で表す。
これにより、指令点のパターン（配置）が異なる場合であっても、形状が同一の指令経路であれば、指令経路数式化部１１ｂで数式化された経路は等価なものとなる。
【００２０】
平滑化処理部１１ｃは、指令経路数式化部１１ｂによって数式（パラメトリックな曲線）で表された指令経路に対し、スムージング（平滑化処理）を実行する。例えば、平滑化処理部１１ｃは、指令経路数式化部１１ｂによって数式化された（パラメトリックな曲線で表された）指令経路を、スプライン曲線化、ＮＵＲＢＳ曲線化、移動平均フィルタ処理、加重平均フィルタ処理、ガウシアンフィルタ処理等の平滑化処理手法によってスムージングする。このとき、スムージングの適用範囲は、パラメトリックな線分又は曲線として表された経路のパラメータ範囲で設定される。例えば、経路長をパラメータとして経路が記述されている場合、スムージングの適用範囲は、経路に沿う長さとして設定される。また、平滑化処理部１１ｃは、加工プログラムに定義されている本来の指令経路からの乖離量が設定されたトレランス以内となるようにスムージングを行う。こうすることで、数値制御装置１は、あたかも上記のスムージングされた経路が指令されたかのように、経路を補間し、各サーボ軸を制御する。
【００２１】
図３は、指令経路とスムージング結果との関係を示す模式図である。
図３において、連続的なパラメトリックな線分又は曲線として表された指令経路をスムージングする場合、スムージングの適用範囲は、離散的な指令点毎に設定するのではなく、連続的に任意の点で設定することができる。そのため、発明が解決しようとする課題で説明したように隣接する指令経路間においてスムージングの適用範囲を変化させる必要がある場合であっても、スムージングの適用範囲を任意の範囲で変更することができるため、スムージングの結果が大きく異なることが抑制することができる。すなわち、例えば、指令経路からのスムージングによる乖離量がトレランス以内となる条件の下、最大のスムージングの適用範囲となるように、各指令経路のスムージングを行う場合等に、スムージングの適用範囲を隣接する指令点まで大きく変化させることなく、より小さい変化に留めることができるため、スムージングの結果に大きな変化が生じることを防ぐことができる。
【００２２】
補間制御部１１ｄは、平滑化処理部１１ｃによってスムージングされた指令経路に対して補間処理を行い、加工時の工具の移動経路を表す工具経路を生成する。また、補間制御部１１ｄは、生成した工具経路を工具が移動するように、工作機械の各サーボ軸を制御する。
【００２３】
このように、指令経路を連続的なパラメトリックな線分又は曲線として表し、この連続的な線分又は曲線を対象としてスムージングを行うことで、スムージングの適用範囲を連続的に変化させることが可能となる。
そのため、徐々に形状が変化する指令経路のスムージング等において、本来の指令経路からのスムージングによる乖離量がトレランス以内となり、かつ、最大のスムージングの適用範囲となるようにスムージングを行った場合、スムージングの適用範囲も連続的に変化することとなる。
したがって、隣接経路間でスムージング範囲が不連続に変化し、経路間段差が生じることを抑制できる。
【００２４】
ＲＯＭ１２には、数値制御装置１を制御するための各種システムプログラムが予め書き込まれている。
ＲＡＭ１３は、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の半導体メモリによって構成され、ＣＰＵ１１が各種処理を実行する際に生成されるデータを記憶する。
入力部１４は、キーボードやマウス、又は、タッチセンサ（タッチパネル）等の入力装置によって構成され、ユーザによる数値制御装置１への各種情報の入力を受け付ける。
【００２５】
表示部１５は、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）等の表示装置によって構成され、数値制御装置１の各種処理結果を表示する。
記憶部１６は、ハードディスク又はフラッシュメモリ等の不揮発性の記憶装置によって構成され、工具経路生成処理のためのプログラム等を記憶する。また、記憶部１６は、生成された工具経路を表すデータ等、数値制御装置１の各種処理結果を記憶する。
【００２６】
通信部１７は、有線又は無線ＬＡＮやＵＳＢ等、所定の通信規格に基づいて信号処理を行う通信インターフェースを備え、数値制御装置１が他の装置との間で行う通信を制御する。
【００２７】
［具体的処理例１］
次に、数値制御装置１における具体的な処理例について説明する。
初めに、数値制御装置１における具体的処理例１について説明する。
ここでは、指令経路を曲線で表現し、その指令経路に対してベジエ曲線を用いたスムージングを行う例について説明する。
例１では、指令経路数式化部１１ｂは、指令経路を以下のような多項式ｆ（ｕ）で表現することを例示する。
【００２８】
ｆ（ｕ）＝Ａｕ３＋Ｂｕ２＋Ｃｕ＋Ｄ      （１）
なお、式（１）において、ｕはパラメータ（経路上の各点）を表し、Ａ，Ｂ，Ｃ，Ｄは係数を表している。
さらに、平滑化処理部１１ｃは、式（１）で表された指令経路をベジエ曲線でスムージングする。
スムージングを行った経路をｆｑ、スムージングを行う前の指令経路をｆｐ、スムージングの適用範囲（フィルタ長）を±Ｌ（すなわち、経路上の各点の前後±Ｌ）とすると、ｆｑは以下のように表すことができる。
【００２９】
【数１】
2020077311.tif 000003
【００３０】
式（２）において、ｆｑ（ｕ，Ｌ）はｕについて連続である。
また、式（２）において、ＢｅｚｉｅｒＣｕｒｖｅＣｅｎｔｅｒ（α，β，γ，δ）は点α、β、γ、δを制御点とするベジエ曲線の中点を表し、以下のように定義される。
【００３１】
【数２】
2020077311.tif 000004
【００３２】
このとき、乖離量Ｄはフィルタ長Ｌの関数となり、
Ｄ（ｕ，Ｌ）＝｜ｆｐ（ｕ）−ｆｑ（ｕ，Ｌ）｜      （４）
と表される。
ここで、本具体例では、フィルタ長Ｌとして、スムージングによる乖離量が予め設定されたトレランス以下となる範囲の最大のフィルタ長Ｌｔを用いる。
そうすると、トレランス（Ｔｏｌｅｒａｎｃｅ）は、
Ｔｏｌｅｒａｎｃｅ＝｜ｆｐ（ｕ）−ｆｑ（ｕ，Ｌｔ）｜      （５）
となる。
【００３３】
一般に、曲率が大きく変化しない曲線経路の場合、式（４）のように表された乖離量Ｄと、フィルタ長Ｌとの間には相関関係があり、フィルタ長Ｌが増加すると、乖離量Ｄも増加する。また、フィルタ長Ｌ＝０のとき、乖離量Ｄ＝０となる。
そのため、予め設定された条件（乖離量が設定値以下となる等）でトレランスを設定する場合には、フィルタ長Ｌをその条件が充足される範囲で設定すればよい。
なお、乖離量Ｄが予め設定されたトレランス程度となるフィルタ長Ｌが解析的に求められない場合、ニュートン法等の収束計算を用いて解を求めることとしてもよい。
このようにして各点ｕに対してフィルタ長Ｌを求めることができる。このように、フィルタ長Ｌは各点ｕに対して一意的に決まる、ｕの関数として表すことができる。
【００３４】
ここで、各点ｕに対して求められるフィルタ長Ｌは、経路上の各点において刻々と変化するものとなる。
このように求められたフィルタ長Ｌをそのまま用いることができるが、当業者にとって公知の手法により、フィルタ長Ｌの急激な変化がなくなるように処理を行った後のフィルタ長Ｌを用いることとしてもよい。
フィルタ長Ｌの急激な変化がなくなるように処理する手法としては、例えば、特開２０１８−０７３０９７号公報に記載された技術等を用いることができる。
【００３５】
［具体的処理例２］
次に、数値制御装置１における具体的処理例２について説明する。
ここでは、指令経路を線分で表現し、その指令経路に対して移動平均フィルタを用いたスムージングを行う例について説明する。
この場合、指令経路数式化部１１ｂは、点Ｐｎと点Ｐｎ＋１（ｎは整数）を結ぶ指令経路（線分）を以下のような多項式ｆ（ｓ）で表現する。
【００３６】
【数３】
2020077311.tif 000005
【００３７】
ただし、式（６）において、０＜ｓ＜Ｌｎ＋１、Ｌｎ＋１＝｜Ｐｎ＋１−Ｐｎ｜である。
式（６）において、ｓは曲線を表現するためのパラメータであり、本具体例においては、ｓは経路上の長さに相当する。
さらに、点Ｐｎ＋１と点Ｐｎ＋２を結ぶ指令経路（線分）は、同様に以下のように表すことができる。
【００３８】
【数４】
2020077311.tif 000006
【００３９】
ただし、式（７）において、０＜ｓ’＜Ｌｎ＋２、Ｌｎ＋２＝｜Ｐｎ＋２−Ｐｎ＋１｜である。
ここで、ｓ’＝ｓ−Ｌｎ＋１と置くと、点Ｐｎ、点Ｐｎ＋１、点Ｐｎ＋２を結ぶ線分は、以下のように１つのパラメータｓを用いて表すことができる。
【００４０】
【数５】
2020077311.tif 000007
【００４１】
さらに、一般に点Ｐ０〜Ｐｑまでを結ぶ線分は、以下のように１つのパラメータｓを用いて表すことができる。
【００４２】
【数６】
2020077311.tif 000008
【００４３】
このように、指令経路を１つのパラメータで表すことで、スムージングのための計算を簡単に行うことができる。ただし、指令経路を複数のパラメータで表したまま、スムージングのための計算を行うことも可能である。
さらに、平滑化処理部１１ｃは、経路上の長さｓを用いて表された指令経路を移動平均フィルタでスムージングする。
スムージングを行った経路をｆｑ、スムージングを行う前の指令経路をｆｐ、フィルタ関数をｍとすると、フィルタ処理が適用された関数ｆｑは以下のように表すことができる。
【００４４】
【数７】
2020077311.tif 000009
【００４５】
ここで、範囲±Ｌの移動平均フィルタは、
ｍ（ｔ）＝１  （−Ｌ≦ｔ≦Ｌ）
ｍ（ｔ）＝０  （ｔ＜−Ｌ，Ｌ＜ｔ）
であるため、ｆｑはさらに以下のように表すことができる。
【００４６】
【数８】
2020077311.tif 000010
【００４７】
式（１１）において、ｆｑ（ｓ，Ｌ）はｓについて連続である。
本具体例においては、フィルタ長Ｌとして、乖離量Ｄが少なく最大のフィルタ長（スムージングによる乖離量が予め設定されたトレランス以下となる範囲の最大のフィルタ長）を使用する。
このとき、乖離量Ｄはフィルタ長Ｌの関数となり、以下のように表すことができる。
【００４８】
【数９】
2020077311.tif 000011
以降の手順は、具体的処理例１と同様であり、説明は省略する。
【００４９】
［具体的処理例３］
次に、数値制御装置１における具体的処理例３について説明する。
ここでは、指令経路を曲線で表現し、その指令経路に対して移動平均フィルタを用いたスムージングを行う例について説明する。
このとき、指令経路数式化部１１ｂにより、指令経路が、
ｆ（ｕ）＝Ａｕ３＋Ｂｕ２＋Ｃｕ＋Ｄ      （１）
と表されているものとする。
【００５０】
平滑化処理部１１ｃは、式（１）で表された指令経路を移動平均フィルタでスムージングする。
スムージングを行った経路をｆｑ、スムージングを行う前の指令経路をｆｐ、フィルタ関数をｍとすると、フィルタ処理が適用された関数ｆｑは以下のように表すことができる。
【００５１】
【数１０】
2020077311.tif 000012
【００５２】
ここで、フィルタ関数ｍを範囲±Ｕの移動平均フィルタとすると、ｆｑは以下のように表すことができる。
【００５３】
【数１１】
2020077311.tif 000013
以降の手順は、具体的処理例２と同様であり、説明は省略する。
以上、本実施形態に係るスムージング加工を行うための、数値制御装置１の実施形態を数値制御装置１の構成に基づいて説明した。
【００５４】
［動作］
次に、図４のフローチャートを参照して、本実施形態の動作について説明する。
［工具経路生成処理］
図４は、数値制御装置１が実行する工具経路生成処理の流れを説明するフローチャートである。
工具経路生成処理は、入力部１４を介して、工具経路生成処理を起動させる指示が入力されることにより開始される。
【００５５】
ステップＳ１において、加工プログラム先読み部１１ａは、数値制御装置１が実行する加工のためのプログラム（加工プログラム）を記憶部１９あるいはネットワークを介して接続されたサーバ等から取得する。
ステップＳ２において、指令経路数式化部１１ｂは、加工プログラムに定義されている指令経路を、連続的なパラメトリックな線分又は曲線として数式化する。
ステップＳ３において、平滑化処理部１１ｃは、指令経路数式化部１１ｂによって数式で表された指令経路に対し、スムージング（平滑化処理）を実行する。
【００５６】
ステップＳ４において、補間制御部１１ｄは、平滑化処理部１１ｃによってスムージングされた指令経路に対して補間処理を行い、加工時の工具の移動経路を表す工具経路を生成する。
ステップＳ５において、補間制御部１１ｄは、生成した工具経路のデータを記憶部１９に記憶する。ここで記憶された工具経路のデータは、数値制御装置１が工作機械による加工を実行する際に読み出され、工具経路に基づいて、工作機械の各サーボ軸が制御される。
ステップＳ５の後、工具経路生成処理は終了となる。
【００５７】
以上のように、本実施形態に係る数値制御装置１は、指令経路を連続的なパラメトリックな線分又は曲線として表し、この連続的な線分又は曲線を対象としてスムージングを行う。
そのため、指令経路において、スムージングの適用範囲を連続的に変化させることが可能となる。
【００５８】
図５Ａは、本発明によるスムージングを行った場合の効果を示す模式図である。
なお、図５Ｂにおいては、比較例として、スムージングの適用範囲を、離散的な指令点毎に設定した場合の例を併せて示している。
図５Ａに示す例では、徐々に形状が変化する指令経路のスムージングにおいて、所定条件（例えば、本来の指令経路からのスムージングによる乖離量がトレランス以内となり、かつ、最大のスムージングの適用範囲となる等）でスムージングを行った状態を示している。
図５Ａに示すように、徐々に形状が変化する指令経路のスムージングにおいて、所定条件でスムージングを行う場合、本発明においては、隣接する指令経路間でスムージングの適用範囲を離散的に切り替えるのではなく、連続的に変化させることができる。
そのため、隣接する指令経路間でスムージングの適用範囲を離散的に切り替えた場合に、スムージングの適用範囲が連続的に変化することから、経路間段差が生じることを抑制できる。
一方、図５Ｂに示す従来技術を適用した例においては、スムージングの適用範囲が、前後３つの指令点の指令経路と、前後４つの指令点の指令経路とで、離散的に切り替えられた状態となっており、隣接経路間でスムージング範囲が不連続に変化し、経路間段差が生じている。
すなわち、本実施形態に係る数値制御装置１によれば、例えば、少しずつ形状が変化する隣接経路において、スムージングを施した場合に、加工ワークにスジ等が表れないように加工経路をより適切にスムージングすることが可能となる。
【００５９】
なお、本発明は、上述の実施形態及び変形例に限定されるものではなく、種々の変更及び変形等が可能である。
例えば、上述の実施形態において、具体的処理例として、指令経路を多項式あるいは線分で表す場合について説明したが、これに限られない。すなわち、指令経路を連続的なパラメトリックな線分又は曲線として表すことができれば、指令経路を各種数式で表すことが可能である。
同様に、上述の実施形態において、具体的処理例として、指令経路をベジエ曲線あるいは移動平均フィルタによってスムージングする場合について説明したが、これに限られない。すなわち、連続的なパラメトリックな線分又は曲線をスムージングできる手法であれば、各種手法を用いてスムージングを行うことができる。
【００６０】
以上説明した実施形態の数値制御装置１の機能の全部又は一部は、ハードウェア、ソフトウェア又はこれらの組合せにより実現することができる。ここで、ソフトウェアによって実現されるとは、プロセッサがプログラムを読み込んで実行することにより実現されることを意味する。ハードウェアで構成する場合、数値制御装置１の機能の一部又は全部を、例えば、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ゲートアレイ、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＣＰＬＤ（Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）等の集積回路（ＩＣ）で構成することができる。
【００６１】
数値制御装置１の機能の全部又は一部をソフトウェアで構成する場合、数値制御装置１の動作の全部又は一部を記述したプログラムを記憶した、ハードディスク、ＲＯＭ等の記憶部、演算に必要なデータを記憶するＤＲＡＭ、ＣＰＵ、及び各部を接続するバスで構成されたコンピュータにおいて、演算に必要な情報をＤＲＡＭに記憶し、ＣＰＵで当該プログラムを動作させることで実現することができる。
【００６２】
これらのプログラムは、様々なタイプのコンピュータ可読媒体（ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。コンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。コンピュータ可読媒体の例は、磁気記録媒体（例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば、光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、ＤＶＤ−ＲＯＭ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＤＶＤ−Ｒ、ＤＶＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュメモリ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。
また、これらのプログラムは、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。
【００６３】
以上、本発明の実施形態について詳細に説明したが、前述した実施形態は、本発明を実施するにあたっての具体例を示したに過ぎない。本発明の技術的範囲は、前記実施形態に限定されるものではない。本発明は、その趣旨を逸脱しない範囲において種々の変更が可能であり、それらも本発明の技術的範囲に含まれる。
【符号の説明】
【００６４】
１  数値制御装置
１１  ＣＰＵ
１１ａ  加工プログラム先読み部
１１ｂ  指令経路数式化部
１１ｃ  平滑化処理部
１１ｄ  補間制御部
１２  ＲＯＭ
１３  ＲＡＭ
１４  入力部
１５  表示部
１６  記憶部
１７  通信部
【図１】
2020077311.tif 000014
【図２】
2020077311.tif 000015
【図３】
2020077311.tif 000016
【図４】
2020077311.tif 000017
【図５Ａ】
2020077311.tif 000018
【図５Ｂ】
2020077311.tif 000019