(57)【特許請求の範囲】
【請求項１】
第１の加工面および第２の加工面を有する被加工物を切削する工具を移動させるための指令が記述された加工プログラムの解析によって、前記被加工物に対して前記工具を移動させる経路である工具経路を求める加工プログラム解析部と、
前記工具経路上の指令点に前記工具が配置された場合に、前記被加工物の加工面上の点であって前記工具に対応する点である切削点を、前記工具経路上の複数の前記指令点の各々について算出する切削点算出部と、
前記第１の加工面および前記第２の加工面がなす角度である境界部角度を前記指令点および前記切削点から算出する角度算出部と、
前記境界部角度の情報が反映された前記加工プログラムを出力する加工プログラム出力部と、
を備えることを特徴とする加工プログラム修正装置。
【請求項２】
前記第１の加工面および前記第２の加工面の境界に対応する前記指令点である境界指令点を複数の前記指令点の中から抽出する境界指令点抽出部をさらに備え、
前記境界部角度は、前記境界指令点における角度であることを特徴とする請求項１に記載の加工プログラム修正装置。
【請求項３】
前記境界指令点抽出部は、前記第１の加工面および前記第２の加工面の各々にある前記切削点に対応付けられた前記指令点と、前記境界にある前記切削点に対応付けられた前記指令点との少なくとも一方を、前記境界指令点として抽出することを特徴とする請求項２に記載の加工プログラム修正装置。
【請求項４】
前記境界指令点における前記工具の速度を前記境界部角度に基づいて算出する速度算出部をさらに備え、
前記加工プログラム出力部は、前記工具の速度の情報が記述された前記加工プログラムを出力することを特徴とする請求項２または３に記載の加工プログラム修正装置。
【請求項５】
前記切削点算出部は、前記工具経路と、前記工具の形状を表す工具データと、前記被加工物の加工における目標形状を表す形状データとに基づいて前記切削点を求めることを特徴とする請求項１から４のいずれか１つに記載の加工プログラム修正装置。
【請求項６】
前記角度算出部は、前記第１の加工面の前記切削点における法線ベクトルと前記第２の加工面の前記切削点における法線ベクトルとに基づいて前記境界部角度を算出することを特徴とする請求項１から５のいずれか１つに記載の加工プログラム修正装置。
【請求項７】
前記角度算出部は、前記加工プログラムへ反映させる前記境界部角度の情報を、前記指令点における前記工具の進行方向と前記第１の加工面および前記第２の加工面の境界である線とがなす角度に基づいて補正することを特徴とする請求項１から６のいずれか１つに記載の加工プログラム修正装置。
【請求項８】
前記加工プログラム出力部は、前記境界部角度の情報が記述された前記加工プログラムを出力することを特徴とする請求項１から７のいずれか１つに記載の加工プログラム修正装置。
【請求項９】
前記加工プログラム出力部は、前記被加工物のうち前記第１の加工面および前記第２の加工面で構成される境界部が凸形状および凹形状のいずれであるかを表す情報が記述された前記加工プログラムを出力することを特徴とする請求項１から８のいずれか１つに記載の加工プログラム修正装置。
【請求項１０】
第１の加工面および第２の加工面を有する被加工物を切削する工具を移動させるための指令が記述された加工プログラムの解析によって、前記被加工物に対して前記工具を移動させる経路である工具経路を求める加工プログラム解析部と、
前記工具経路上の指令点に前記工具が配置された場合に、前記被加工物の加工面上の点であって前記工具に対応する点である切削点を、前記工具経路上の複数の前記指令点の各々について求める切削点算出部と、
前記第１の加工面および前記第２の加工面がなす角度である境界部角度を前記指令点および前記切削点から算出する角度算出部と、
前記工具の速度を前記境界部角度に基づいて算出する速度算出部と、
単位時間ごとにおける前記工具経路上の位置を表す補間点を前記工具の速度に基づいて求める補間部と、
を備えることを特徴とする数値制御装置。
【請求項１１】
前記第１の加工面および前記第２の加工面の境界に対応する前記指令点である境界指令点を複数の前記指令点の中から抽出する境界指令点抽出部をさらに備え、
前記境界部角度は、前記境界指令点における角度であって、
前記速度算出部は、前記境界指令点における前記工具の速度を前記境界部角度に基づいて算出することを特徴とする請求項１０に記載の数値制御装置。
【請求項１２】
前記角度算出部は、前記境界部角度の情報を、前記指令点における前記工具の進行方向と前記第１の加工面および前記第２の加工面の境界の線とがなす角度に基づいて補正し、
前記速度算出部は、補正された前記境界部角度の情報を用いた演算によって前記工具の速度を算出することを特徴とする請求項１０または１１に記載の数値制御装置。
【請求項１３】
前記補間点のデータを状態変数として観測する状態観測部と、
前記状態変数に基づいて作成されるデータセットに従って、前記境界部角度の情報の補正方法を学習する学習部と、
を備え、
前記角度算出部は、学習された前記補正方法に従って前記境界部角度の情報を補正することを特徴とする請求項１２に記載の数値制御装置。
【請求項１４】
前記補間点のデータを状態変数として観測する状態観測部と、
前記状態変数に基づいて作成されるデータセットに従って、前記境界指令点における前記工具の速度の算出方法を学習する学習部と、
を備え、
前記速度算出部は、学習された前記算出方法に従って前記工具の速度を算出することを特徴とする請求項１１に記載の数値制御装置。
【請求項１５】
前記状態変数は、前記補間点における前記工具と前記切削点との距離と、前記工具経路と前記工具の先端位置の軌跡との差を表す誤差量と、前記補間点における前記工具の速度または加速度と、前記工具経路における加工時間との少なくとも１つを含むことを特徴とする請求項１３または１４に記載の数値制御装置。
【請求項１６】
前記状態観測部は、前記距離と、前記誤差量と、前記工具の速度または加速度と、前記加工時間との少なくとも１つの実測値を前記状態変数として観測することを特徴とする請求項１５に記載の数値制御装置。
【請求項１７】
前記状態観測部は、前記工具経路における複数の前記補間点の中から前記境界以外における前記補間点を除いて、前記境界における前記補間点のデータを前記状態変数として観測することを特徴とする請求項１３から１６のいずれか１つに記載の数値制御装置。
【請求項１８】
第１の加工面および第２の加工面を有する被加工物を切削する工具を移動させるための指令が記述された加工プログラムを加工プログラム修正装置が修正する加工プログラム修正方法であって、
前記加工プログラムの解析によって、前記被加工物に対して前記工具を移動させる経路である工具経路を求めるステップと、
前記工具経路上の指令点に前記工具が配置された場合に、前記被加工物の加工面上の点であって前記工具に対応する点である切削点を、前記工具経路における複数の前記指令点の各々について算出するステップと、
前記第１の加工面および前記第２の加工面がなす角度である境界部角度を前記指令点および前記切削点から算出するステップと、
前記境界部角度の情報が反映された前記加工プログラムを出力するステップと、
を含むことを特徴とする加工プログラム修正方法。
【請求項１９】
前記第１の加工面および前記第２の加工面の境界に対応する前記指令点である境界指令点を複数の前記指令点の中から抽出するステップをさらに含み、
前記境界部角度は、前記境界指令点における角度であることを特徴とする請求項１８に記載の加工プログラム修正方法。
【請求項２０】
請求項４に記載の加工プログラム修正装置または請求項１０に記載の数値制御装置において境界指令点における工具の速度を算出するための算出方法を学習する機械学習装置であって、
単位時間ごとにおける工具経路上の位置を表す補間点のデータを状態変数として観測する状態観測部と、
前記状態変数に基づいて作成されるデータセットに従って前記工具の速度の前記算出方法を学習する学習部と、
を備えることを特徴とする機械学習装置。
【請求項２１】
請求項７に記載の加工プログラム修正装置または請求項１２に記載の数値制御装置において加工プログラムへ反映させる境界部角度の情報を、指令点における工具の進行方向と第１の加工面および第２の加工面の境界である線とがなす角度に基づいて補正するための補正方法を学習する機械学習装置であって、
単位時間ごとにおける工具経路上の位置を表す補間点のデータを状態変数として観測する状態観測部と、
前記状態変数に基づいて作成されるデータセットに従って前記境界部角度の情報の前記補正方法を学習する学習部と、
を備えることを特徴とする機械学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、工具を用いた加工のための加工プログラムを修正する加工プログラム修正装置、数値制御装置、加工プログラム修正方法および機械学習装置に関する。
【背景技術】
【０００２】
数値制御工作機械による加工には、あらかじめ設定された経路において被加工物または工具を移動させるための移動指令が記述された数値制御加工プログラムが用いられる。以下、数値制御工作機械を、単に「工作機械」と称する。数値制御加工プログラムを、単に「加工プログラム」と称する。加工プログラムは、例えば、市販のＣＡＤ（Computer  Aided  Design）／ＣＡＭ（Computer  Aided  Manufacturing）装置によって作成される。加工プログラムは、Ｇコードまたはマクロ文といった文字列により、あらかじめ定められたフォーマットのファイルに記述される。ここで、Ｇコードとは、例えば、数値制御によって位置決め、直線補間、円弧補間、および平面指定等を行うための指令コードである。【０００３】
切削加工のための加工プログラムを作成する場合に、ＣＡＤ／ＣＡＭ装置は、被加工物を目標形状に加工するための加工面に工具が接するようにして仮想的に工具を移動させて、工具経路を作成する。ＣＡＤ／ＣＡＭ装置は、工具経路に沿って工具を移動させる移動指令を、数値制御装置が解釈可能なＧコードによって記述する。加工プログラムは、工作機械が有する数値制御装置へ入力される。数値制御装置は、加工プログラムの解析によって、移動指令から、補間周期ごとに工具経路を補間した補間データを作成する。数値制御装置は、補間データを基に工作機械の各軸を制御する。工作機械は、数値制御装置が工具の移動を制御することによって、切削加工を行う。【０００４】
工具経路に沿って工具を移動させる制御が行われても、実際の工作機械では、機械またはサーボ系の追従遅れによる軌跡誤差、あるいは機械振動の発生によって、加工品の品質が低下する場合がある。軌跡誤差および機械振動は、工具経路のうち、工具経路の方向が大きく変わる曲がり部、または曲率が大きい角部において発生し易い。また、工具の移動速度が高いほど、軌跡誤差および機械振動は大きくなり易い。そこで、従来、工具経路の方向が大きく変化する部分での工具の許容速度を求めておき、工具経路の方向変化に応じて許容速度以下まで工具を減速させることが行われている。しかしながら、工具経路の方向の変化は大きいが、目標形状において平滑な部分を工具が通る場合、減速が不要であるにも関わらず工具は減速されることになる。また、目標形状における角部を工具が通るが、工具経路の向きの変化が小さい場合、減速が必要であるにも関わらず工具は減速されないことになる。このように、工具経路の方向のみに基づいて減速の要否が判断されることで、不要な減速によって加工の効率が低下し、かつ、必要な減速が行われないことによって加工品の品質が低下するという問題が生じていた。【０００５】
特許文献１には、被加工箇所である輪郭等の目標形状に基づいて変曲点の属性を判別し、変曲点の属性ごとにあらかじめ設定されたパラメータを用いて加工速度を決定する加工装置が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−１０８２１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１の技術によると、数値制御データに記述されているデータ点群は工具経路を表すものであるため、目標形状における角部が認識されず、減速の要否を適切に判断することができない場合がある。このように、特許文献１に開示される従来の技術によると、工作機械により高い品質の加工品を効率良く得ることが難しいという問題があった。【０００８】
本開示は、上記に鑑みてなされたものであって、工作機械により高い品質の加工品を効率良く得ることを可能とする加工プログラム修正装置を得ることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本開示にかかる加工プログラム修正装置は、第１の加工面および第２の加工面を有する被加工物を切削する工具を移動させるための指令が記述された加工プログラムの解析によって、被加工物に対して工具を移動させる経路である工具経路を求める加工プログラム解析部と、工具経路上の指令点に工具が配置された場合に、被加工物の加工面上の点であって工具に対応する点である切削点を、工具経路上の複数の指令点の各々について算出する切削点算出部と、第１の加工面および第２の加工面がなす角度である境界部角度を指令点および切削点から算出する角度算出部と、境界部角度の情報が反映された加工プログラムを出力する加工プログラム出力部と、を備える。
【発明の効果】
【００１０】
本開示にかかる加工プログラム修正装置は、工作機械により高い品質の加工品を効率良く得ることが可能となるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１にかかる加工プログラム修正装置の構成を示す図
【図２】実施の形態１にかかる加工プログラム修正装置の動作手順を示すフローチャート
【図３】実施の形態１において工具データによって定義される工具の一例を示す図
【図４】実施の形態１において形状データによって定義される目標形状の一例を示す斜視図
【図５】実施の形態１において加工プログラムの解析によって求めた工具経路と指令点との一例を示す図
【図６】図５に示す工具経路において工具が移動する様子について説明するための第１の図
【図７】図５に示す工具経路において工具が移動する様子について説明するための第２の図
【図８】実施の形態１において算出される切削点について説明するための第１の図
【図９】実施の形態１において算出される切削点について説明するための第２の図
【図１０】実施の形態１において算出される切削点について説明するための第３の図
【図１１】図７に示す工具経路上の各指令点と、各指令点に対応する切削点とを示す図
【図１２】実施の形態１における境界指令点の抽出について説明するための第１の図
【図１３】実施の形態１における境界指令点の抽出について説明するための第２の図
【図１４】実施の形態１における境界部角度の算出について説明するための第１の図
【図１５】図１４に示す境界部角度の算出方法の変形例について説明するための図
【図１６】実施の形態１における境界部角度の算出について説明するための第２の図
【図１７】図１６に示す境界部角度の算出方法の変形例について説明するための図
【図１８】実施の形態１の変形例にかかる加工プログラム修正装置の構成を示す図
【図１９】実施の形態２において加工プログラムの解析によって求めた工具経路において工具が移動する様子について説明するための図
【図２０】図１９に示す工具経路上の各指令点と、各指令点に対応する切削点とを示す図
【図２１】実施の形態２における境界部角度の算出について説明するための第１の図
【図２２】実施の形態２における境界部角度の情報の補正について説明するための第１の図
【図２３】実施の形態２における境界部角度の算出について説明するための第２の図
【図２４】実施の形態２における境界部角度の情報の補正について説明するための第２の図
【図２５】実施の形態１または２にかかる加工プログラム修正装置のハードウェア構成例を示す図
【図２６】実施の形態３にかかる数値制御装置の構成を示す図
【図２７】実施の形態３にかかる数値制御装置の動作手順を示すフローチャート
【図２８】実施の形態４にかかる数値制御装置の構成を示す図
【図２９】実施の形態４にかかる数値制御装置が有する学習部の動作手順を示すフローチャート
【図３０】実施の形態４の変形例にかかる数値制御装置の構成を示す図
【発明を実施するための形態】
【００１２】
以下に、実施の形態にかかる加工プログラム修正装置、数値制御装置、加工プログラム修正方法および機械学習装置を図面に基づいて詳細に説明する。
【００１３】
実施の形態１．
図１は、実施の形態１にかかる加工プログラム修正装置１００の構成を示す図である。加工プログラム修正装置１００は、工具を用いた加工のための加工プログラムを修正する。
【００１４】
加工プログラム修正装置１００は、加工プログラム入力部１と、加工プログラム記憶部２と、工具データ入力部３と、工具データ記憶部４と、形状データ入力部５と、形状データ記憶部６と、加工プログラム解析部７と、工具経路記憶部８と、切削点算出部９と、切削点記憶部１０と、境界指令点抽出部１１と、境界指令点記憶部１２と、角度算出部１３と、角度記憶部１４と、修正部１５と、加工プログラム出力部１６とを有する。
【００１５】
加工プログラム入力部１には、加工プログラム修正装置１００の外部から加工プログラムが入力される。加工プログラム記憶部２は、加工プログラム入力部１へ入力された加工プログラムを記憶する。実施の形態１において、加工プログラムには、被加工物を切削する工具を移動させるための移動指令が記述されている。なお、工具の移動とは、被加工物に対する工具の相対的な移動を指す。
【００１６】
工具データ入力部３には、加工プログラム修正装置１００の外部から工具データが入力される。工具データ記憶部４は、工具データ入力部３へ入力された工具データを記憶する。工具データは、加工に用いられる工具を定義するデータである。工具データは、工具の種類を表す情報と、工具径および工具長といった工具の形状を表す情報とを含む。テーパがつけられている工具の場合、工具データには、工具の中心軸に対する工具外径母線の傾きを表す情報が含まれても良い。工具データには、旋削工具等の非対称な形状を表す情報が含まれても良い。
【００１７】
形状データ入力部５には、加工プログラム修正装置１００の外部から形状データが入力される。形状データ記憶部６は、形状データ入力部５へ入力された形状データを記憶する。形状データは、目標形状を定義するデータである。形状データには、被加工物のうち工具の接触を回避すべき面の情報も含まれる。形状データは、３次元データであって、例えばＣＡＤデータである。
【００１８】
加工プログラム解析部７は、加工プログラム記憶部２から加工プログラムを読み出し、加工プログラムの解析処理を行う。加工プログラム解析部７は、加工プログラムの解析によって、工具経路を求める。工具経路は、被加工物に対して工具を移動させる経路である。加工プログラム解析部７は、加工プログラムに記述されている移動指令を解析し、工具経路と、工具経路上の点列である各指令点とを求める。工具経路記憶部８は、工具経路および指令点のデータを記憶する。
【００１９】
切削点算出部９は、切削点を算出する。切削点は、工具経路上の指令点に工具が配置された場合に、被加工物の加工面上の点であって工具に対応する点である。切削点の詳細については後述する。切削点算出部９は、工具経路上の複数の指令点の各々について切削点を算出する。切削点記憶部１０は、切削点のデータを記憶する。
【００２０】
境界指令点抽出部１１は、複数の指令点の中から境界指令点を抽出する。境界指令点は、被加工物のうち互いに接する２つの加工面の境界に位置する指令点である。境界指令点記憶部１２は、境界指令点のデータを記憶する。角度算出部１３は、指令点および切削点から境界部角度を算出する。境界部角度は、境界指令点において被加工物の第１の加工面および第２の加工面がなす角度である。角度記憶部１４は、境界部角度のデータを記憶する。境界指令点および境界部角度の詳細については後述する。
【００２１】
修正部１５は、加工プログラムに境界部角度の情報を反映させることによって加工プログラムを修正する。実施の形態１において、修正部１５は、加工プログラムに境界部角度の情報を追加することによって加工プログラムを修正する。加工プログラム出力部１６は、境界部角度の情報が反映された加工プログラムを、加工プログラム修正装置１００の外部へ出力する。
【００２２】
次に、加工プログラム修正装置１００の動作について説明する。図２は、実施の形態１にかかる加工プログラム修正装置１００の動作手順を示すフローチャートである。
【００２３】
ステップＳ１において、加工プログラム修正装置１００は、加工プログラム、工具データおよび形状データを受け付ける。あらかじめ定められたフォーマットのファイルである加工プログラムがＣＡＤ／ＣＡＭ装置またはＣＡＤ／ＣＡＭシステムから加工プログラム入力部１へ入力される。または、加工プログラムは、作業者がキーボード等の入力機器を操作することによって加工プログラム入力部１へ入力される。加工プログラム入力部１は、入力された加工プログラムを加工プログラム記憶部２へ出力する。
【００２４】
工具データは、作業者が入力機器を操作することによって工具データ入力部３へ入力される。工具データ入力部３には、ＣＡＤデータからのデータ変換によって得られた工具データが入力されても良い。工具データ入力部３は、入力された工具データを工具データ記憶部４へ出力する。
【００２５】
図３は、実施の形態１において工具データによって定義される工具の一例を示す図である。図３に示す工具Ｔ１は、ボールエンドミルである。工具Ｔ１は、円柱の底部に半球が付された形状である。工具Ｔ１の中心軸は、当該円柱の中心軸である。中心軸は、工具Ｔ１の回転軸である。工具径は、当該円柱の径である。工具長は、中心軸の方向における工具Ｔ１の長さである。
【００２６】
形状データは、あらかじめ定められたフォーマットのデータであって、ＣＡＤ／ＣＡＭ装置またはＣＡＤ／ＣＡＭシステムによって作成される。形状データは、ＣＡＤ／ＣＡＭ装置またはＣＡＤ／ＣＡＭシステムから形状データ入力部５へ入力される。形状データは、作業者が入力機器を操作することによって形状データ入力部５へ入力されても良い。
【００２７】
図４は、実施の形態１において形状データによって定義される目標形状の一例を示す斜視図である。図４に示す目標形状Ｍ１は、３個の加工面Ｓ０，Ｓ１，Ｓ２を有する３次元形状である。加工面Ｓ０，Ｓ１，Ｓ２の各々は、曲面または平面である。Ｘ軸、Ｙ軸およびＺ軸は、互いに垂直な３軸である。Ｘ軸方向を加工方向、Ｙ軸方向を横方向、Ｚ軸方向を上下方向と称することがある。ステップＳ１を終えると、加工プログラム修正装置１００は、ステップＳ２へ手順を進める。
【００２８】
ステップＳ２において、加工プログラム修正装置１００は、加工プログラムの解析によって、工具経路を求める。加工プログラム解析部７は、加工プログラム記憶部２から加工プログラムを読み出して、加工プログラムを解析する。加工プログラム解析部７は、加工プログラムの解析によって、工具経路と指令点とを求める。加工プログラム解析部７は、工具経路および指令点のデータを工具経路記憶部８へ出力する。
【００２９】
図５は、実施の形態１において加工プログラムの解析によって求めた工具経路と指令点との一例を示す図である。図５に示す工具経路ＴＰ１は、１０個の指令点Ｐ０−Ｐ９において順次工具Ｔ１を移動させる経路である。
【００３０】
図６は、図５に示す工具経路ＴＰ１において工具Ｔ１が移動する様子について説明するための第１の図である。図７は、図５に示す工具経路ＴＰ１において工具Ｔ１が移動する様子について説明するための第２の図である。図６において、工具Ｔ１および工具経路ＴＰ１は、目標形状Ｍ１に対して斜め上の位置から見たときの目標形状Ｍ１に合わせて示されている。図７において、工具Ｔ１および工具経路ＴＰ１は、目標形状Ｍ１に対して横方向の位置から見たときの目標形状Ｍ１に合わせて示されている。工具Ｔ１は、各指令点Ｐ０−Ｐ９において、工具Ｔ１の基準点が指令点Ｐに一致するように配置される。基準点は、工具Ｔ１のうち中心軸上の位置である。なお、指令点Ｐとは、指令点Ｐ０−Ｐ９の各々を区別せずに称したものとする。ステップＳ２を終えると、加工プログラム修正装置１００は、ステップＳ３へ手順を進める。
【００３１】
ステップＳ３において、加工プログラム修正装置１００は、工具経路上の複数の指令点の各々について切削点を求める。切削点算出部９は、工具データ記憶部４から工具データを読み出す。切削点算出部９は、形状データ記憶部６から形状データを読み出す。切削点算出部９は、工具経路および指令点のデータを工具経路記憶部８から読み出す。切削点算出部９は、工具データと、形状データと、工具経路および指令点のデータとに基づいて、工具経路上の各指令点についての切削点を算出する。切削点算出部９は、指令点に対応付けられた切削点のデータを、切削点記憶部１０へ出力する。
【００３２】
切削点算出部９は、形状データによって表現される目標形状Ｍ１と工具データによって表現される工具Ｔ１とを仮想空間にて疑似的に配置する演算によって、加工面Ｓと工具Ｔ１との位置関係を求める。切削点算出部９は、指令点Ｐ０−Ｐ９の各々について、指令点Ｐに工具Ｔ１が配置された際における当該位置関係を求める。なお、加工面Ｓとは、加工面Ｓ０，Ｓ１，Ｓ２の各々を区別せずに称したものとする。
【００３３】
目標形状Ｍ１と工具Ｔ１を仮想的に配置した場合に、工具Ｔ１の配置の態様には、加工面Ｓから工具Ｔ１が離れている第１の態様と、工具Ｔ１が加工面Ｓに接している第２の態様と、目標形状Ｍ１の一部に工具Ｔ１の一部が重なり合う第３の態様とがある。
【００３４】
図８は、実施の形態１において算出される切削点について説明するための第１の図である。図９は、実施の形態１において算出される切削点について説明するための第２の図である。図１０は、実施の形態１において算出される切削点について説明するための第３の図である。
【００３５】
図８には、工具Ｔ１の配置の態様が第１の態様である場合における切削点ＣＰの例を示す。第１の態様では、切削点算出部９は、加工面Ｓのうち工具Ｔ１との距離が最も短くなる点を切削点ＣＰとして算出する。図９には、工具Ｔ１の配置の態様が第２の態様である場合における切削点ＣＰの例を示す。第２の態様では、切削点算出部９は、加工面Ｓのうち工具Ｔ１が接する点を切削点ＣＰとして算出する。
【００３６】
図１０には、工具Ｔ１の配置の態様が第３の態様である場合における切削点ＣＰの例を示す。第３の態様では、切削点算出部９は、工具Ｔ１の基準点を中心に仮想的に工具Ｔ１を縮小させる。切削点算出部９は、加工面Ｓに工具Ｔ１が接するまで工具Ｔ１を縮小させた状態において、加工面Ｓのうち縮小させた工具Ｔ１ｏが接する点を、切削点ＣＰとして算出する。図８から図１０の各態様において、切削点ＣＰは、工具経路ＴＰ１上の指令点Ｐに工具Ｔ１が配置された場合に、被加工物の加工面Ｓ上の点であって工具Ｔ１に対応する点である。
【００３７】
図１１は、図７に示す工具経路ＴＰ１上の各指令点Ｐと、各指令点Ｐに対応する切削点ＣＰとを示す図である。切削点ＣＰ０−ＣＰ３は、それぞれ指令点Ｐ０−Ｐ３に対応する切削点ＣＰである。切削点ＣＰ６は、指令点Ｐ５に対応する切削点ＣＰである。切削点ＣＰ８は、指令点Ｐ９に対応する切削点ＣＰである。図１１に示す例では、各指令点Ｐ０−Ｐ３，Ｐ５，Ｐ９には、１つの切削点ＣＰが対応する。
【００３８】
指令点Ｐ４は、２つの加工面Ｓ０，Ｓ１の境界付近にある指令点Ｐである。切削点ＣＰ４は、指令点Ｐ４に工具Ｔ１が配置されたときにおける加工面Ｓ０上の切削点ＣＰである。切削点ＣＰ５は、指令点Ｐ４に工具Ｔ１が配置されたときにおける加工面Ｓ１上の切削点ＣＰである。図１１に示す例では、指令点Ｐ４には、２つの切削点ＣＰ４，ＣＰ５が対応する。
【００３９】
切削点ＣＰ７は、２つの加工面Ｓ１，Ｓ２の境界にある。切削点ＣＰ７は、指令点Ｐ６，Ｐ７，Ｐ８の各々に工具Ｔ１が配置されたときにおける切削点ＣＰである。図１１に示す例では、３個の指令点Ｐ６，Ｐ７，Ｐ８には、１つの切削点ＣＰ７が対応する。このように、１つの指令点Ｐに複数の切削点ＣＰが対応する場合と、複数の指令点Ｐが１つの切削点ＣＰに対応する場合とがある。境界指令点は、指令点Ｐと切削点ＣＰとが１対１対応になっていない場合における指令点である。ステップＳ３を終えると、加工プログラム修正装置１００は、ステップＳ４へ手順を進める。
【００４０】
ステップＳ４において、加工プログラム修正装置１００は、工具経路上の複数の指令点の中から境界指令点を抽出する。境界指令点抽出部１１は、形状データ記憶部６から形状データを読み出す。境界指令点抽出部１１は、指令点に対応付けられた切削点のデータを切削点記憶部１０から読み出す。境界指令点抽出部１１は、形状データと切削点のデータとに基づいて、複数の指令点の中から境界指令点を抽出する。境界指令点抽出部１１は、切削点に対応付けられた境界指令点のデータを、境界指令点記憶部１２へ出力する。
【００４１】
図１２は、実施の形態１における境界指令点の抽出について説明するための第１の図である。図１３は、実施の形態１における境界指令点の抽出について説明するための第２の図である。図１２および図１３は、図１１に示す複数の指令点Ｐ０−Ｐ９の中から抽出される境界指令点を示す。境界指令点は、互いに接する２つの加工面Ｓの境界に位置する指令点Ｐである。
【００４２】
図１２に示すように、指令点Ｐ４は、２つの切削点ＣＰ４，ＣＰ５に対応付けられており、２つの加工面Ｓ０，Ｓ１の境界に位置する指令点Ｐである。２つの加工面Ｓ０，Ｓ１は、凹形状の境界部を構成する。境界指令点抽出部１１は、指令点Ｐ４を境界指令点として抽出する。境界指令点抽出部１１は、２つの切削点ＣＰ４，ＣＰ５に対応付けられた指令点Ｐ４のデータを、境界指令点のデータとして出力する。
【００４３】
図１３に示すように、３個の指令点Ｐ６，Ｐ７，Ｐ８は、１つの切削点ＣＰ７に対応付けられており、２つの加工面Ｓ１，Ｓ２の境界に位置する指令点Ｐである。２つの加工面Ｓ１，Ｓ２は、凸形状の境界部を構成する。境界指令点抽出部１１は、３個の指令点Ｐ６，Ｐ７，Ｐ８を境界指令点として抽出する。境界指令点抽出部１１は、１つの切削点ＣＰ７に対応付けられた３個の指令点Ｐ６，Ｐ７，Ｐ８のデータを、境界指令点のデータとして出力する。ステップＳ４を終えると、加工プログラム修正装置１００は、ステップＳ５へ手順を進める。
【００４４】
ステップＳ５において、加工プログラム修正装置１００は、工具経路上の各境界指令点における境界部角度を算出する。角度算出部１３は、形状データ記憶部６から形状データを読み出す。角度算出部１３は、切削点に対応付けられた境界指令点のデータを境界指令点記憶部１２から読み出す。角度算出部１３は、形状データと境界指令点のデータとに基づいて、境界部角度を算出する。角度算出部１３は、境界指令点に対応付けられた境界部角度のデータを、角度記憶部１４へ出力する。
【００４５】
図１４は、実施の形態１における境界部角度の算出について説明するための第１の図である。角度算出部１３は、境界指令点である指令点Ｐ４について、境界部角度ＡＮ０を算出する。境界部角度ＡＮ０は、加工面Ｓ０と加工面Ｓ１との境界Ｂ１において加工面Ｓ０と加工面Ｓ１とがなす角度である。境界部角度ＡＮ０の算出において、加工面Ｓ０は第１の加工面であって、加工面Ｓ１は第２の加工面である。凹形状の境界部における境界部角度ＡＮ０は、目標形状Ｍ１の外部において加工面Ｓ０と加工面Ｓ１とがなす角度である。
【００４６】
なお、２つの加工面Ｓ０，Ｓ１の双方が自由曲面である場合のように、形状データと境界指令点のデータとから境界部角度ＡＮ０を直接求めることが困難である場合がある。角度算出部１３は、加工面Ｓ０と加工面Ｓ１とがなす角度の近似結果である近似角度を、境界部角度ＡＮ０として算出しても良い。次に説明する変形例では、角度算出部１３は、境界指令点に対応付けられた切削点に基づいて近似角度を算出する。
【００４７】
図１５は、図１４に示す境界部角度の算出方法の変形例について説明するための図である。角度算出部１３は、切削点ＣＰ４における加工面Ｓ０の法線ベクトルＮＶ４と、切削点ＣＰ５における加工面Ｓ１の法線ベクトルＮＶ５とを求める。角度算出部１３は、法線ベクトルＮＶ４と法線ベクトルＮＶ５とがなす角度ＡＮ０’の外角を、加工面Ｓ０と加工面Ｓ１との近似角度として求める。このようにして、角度算出部１３は、境界部角度ＡＮ０として近似角度を算出することができる。
【００４８】
図１６は、実施の形態１における境界部角度の算出について説明するための第２の図である。角度算出部１３は、境界指令点である指令点Ｐ６，Ｐ７，Ｐ８について、境界部角度ＡＮ１を算出する。境界部角度ＡＮ１は、加工面Ｓ１と加工面Ｓ２との境界において加工面Ｓ１と加工面Ｓ２とがなす角度である。境界部角度ＡＮ１の算出において、加工面Ｓ１は第１の加工面であって、加工面Ｓ２は第２の加工面である。切削点ＣＰ７は、加工面Ｓ１と加工面Ｓ２との境界上に位置している。凸形状の境界部における境界部角度ＡＮ１は、目標形状Ｍ１の内部において加工面Ｓ１と加工面Ｓ２とがなす角度である。なお、被加工物は、少なくとも第１の加工面と第２の加工面とを有していれば良い。被加工物は、第１、第２および第３の加工面を有していても良く、それ以外の加工面をさらに有していても良いことは言うまでもない。
【００４９】
なお、２つの加工面Ｓ１，Ｓ２が自由曲面である場合のように、形状データと境界指令点のデータとから境界部角度ＡＮ１を直接求めることが困難である場合がある。角度算出部１３は、加工面Ｓ１と加工面Ｓ２とがなす角度の近似結果である近似角度を、境界部角度ＡＮ１として算出しても良い。次に説明する変形例では、角度算出部１３は、境界指令点に対応付けられた切削点に基づいて近似角度を算出する。
【００５０】
図１７は、図１６に示す境界部角度の算出方法の変形例について説明するための図である。角度算出部１３は、切削点ＣＰ７における加工面Ｓ１の法線ベクトルＮＶ７ａと、切削点ＣＰ７における加工面Ｓ２の法線ベクトルＮＶ７ｂとを求める。角度算出部１３は、法線ベクトルＮＶ７ａと法線ベクトルＮＶ７ｂとがなす角度ＡＮ１’の外角を、加工面Ｓ１と加工面Ｓ２との近似角度として求める。このようにして、角度算出部１３は、境界部角度ＡＮ１として近似角度を算出することができる。
【００５１】
なお、角度算出部１３は、境界部角度のデータに、境界部が凹形状と凸形状とのいずれであるかを示す情報を対応付けて、角度記憶部１４へ出力しても良い。ステップＳ５を終えると、加工プログラム修正装置１００は、ステップＳ６へ手順を進める。
【００５２】
ステップＳ６において、加工プログラム修正装置１００は、加工プログラムに境界部角度の情報を記述することによって加工プログラムを修正する。修正部１５は、工具経路および指令点のデータを工具経路記憶部８から読み出す。修正部１５は、境界指令点に対応付けられた境界部角度のデータを角度記憶部１４から読み出す。修正部１５は、工具経路に基づいた移動指令からなる加工プログラムに、境界指令点である指令点に対応付けられた境界部角度の情報を記述する。修正部１５は、加工プログラムに境界部角度の情報を記述することによって、加工プログラムを修正する。修正部１５は、修正された加工プログラムを加工プログラム出力部１６へ出力する。
【００５３】
修正部１５は、境界部角度の情報とともに、境界部が凹形状と凸形状とのいずれであるかを示す情報を、加工プログラムに記述しても良い。ステップＳ６を終えると、加工プログラム修正装置１００は、ステップＳ７へ手順を進める。
【００５４】
ステップＳ７において、加工プログラム修正装置１００は、修正された加工プログラムを、加工プログラム出力部１６により加工プログラム修正装置１００の外部へ出力する。加工プログラム出力部１６は、境界部角度の情報が記述された加工プログラムを出力する。加工プログラム出力部１６は、被加工物のうち２つの加工面で構成される境界部が凸形状および凹形状のいずれであるかを表す情報が記述された加工プログラムを出力しても良い。以上により、加工プログラム修正装置１００は、図２に示す手順による動作を終了する。
【００５５】
加工プログラム修正装置１００によって修正された加工プログラムは、工作機械の数値制御装置へ入力される。数値制御装置は、境界指令点に対応付けられた境界部角度のデータを基に、境界部角度が対応付けられている各指令点について、当該指令点を工具が通るときにおける許容速度を算出する。許容速度は、所望される品質で加工面を加工し得る最も高い速度である。数値制御装置は、工具経路および指令点のデータと許容速度とに基づいて、補間データを作成する。
【００５６】
実施の形態１によると、加工プログラム修正装置１００は、工具経路と、形状データと、工具データとに基づいて境界指令点を抽出し、抽出された境界指令点における境界度角度を求める。加工プログラム修正装置１００は、工具経路の方向が大きく変わる曲がり部と目標形状における角部とを認識して、曲がり部および角部における境界部角度の情報が反映された加工プログラムを出力できる。これにより、加工品の品質向上が可能となる。
【００５７】
また、加工プログラム修正装置１００は、境界において加工面が構成する境界部角度を求める。加工プログラム修正装置１００は、加工目標形状が奥行き方向に一様でない輪郭の形状であって隣接する工具経路が変化する場合でも、工具経路ごとの輪郭のデータを必要としない。このため、加工プログラム修正装置１００は、作業効率の低下を回避することが可能である。数値制御装置は、走査線加工以外の場合であって、かつ工具経路がある平面上に沿って進む経路ではない場合でも、許容速度を設定することができ加工面の品質を向上させることができる。
【００５８】
さらに、加工プログラム修正装置１００は、工具経路の指令点に対応付けられた境界部角度の情報を加工プログラムに記載して出力するため、角度等によって変曲点の属性を区分しなくても良い。数値制御装置は、境界部角度に基づいて算出された許容速度に従って各々の指令点位置で工具を減速させることができる。数値制御装置は、複数の工具経路が隣り合う場合に、工具経路同士が隣り合う方向において連続的に加工面の角度が変化する場合であっても、工具経路間にて速度を滑らかに変化させることができる。数値制御装置は、工具経路間にて速度を滑らかに変化させることで、加工面の品質を向上できる。以上により、加工プログラム修正装置１００は、工作機械により高い品質の加工品を効率良く得ることが可能となるという効果を奏する。
【００５９】
なお、境界部角度に応じた工具の速度は、加工プログラム修正装置が算出しても良い。ここで、加工プログラム修正装置が速度を算出する場合の変形例について説明する。図１８は、実施の形態１の変形例にかかる加工プログラム修正装置１０１の構成を示す図である。加工プログラム修正装置１０１は、図１に示す構成に加えて、速度算出部１７を有する。速度算出部１７は、境界指令点における工具の速度を境界部角度に基づいて算出する。
【００６０】
速度算出部１７は、工具経路および指令点のデータを工具経路記憶部８から読み出す。速度算出部１７は、境界指令点に対応付けられた境界部角度のデータを角度記憶部１４から読み出す。速度算出部１７は、当該指令点を工具が通るときにおける速度である許容速度を算出する。速度算出部１７は、境界部角度が対応付けられている各指令点について、速度を算出する。
【００６１】
速度の算出方法の一例は、加工プログラムに記述されている送り速度に係数を乗算する方法である。係数には、各指令点における境界部角度を１８０度で除算した値を使用することができる。かかる方法によると、速度算出部１７は、境界部角度が１８０度に近いほど、加工プログラムに記述されている送り速度に近い速度を算出する。速度算出部１７は、境界部が凹形状と凸形状とのいずれであるかに応じて、速度の算出方法を切り換えても良い。速度算出部１７は、境界指令点に対応付けられた速度のデータを修正部１５へ出力する。
【００６２】
修正部１５は、工具経路に基づいた移動指令からなる加工プログラムに、速度の情報を記述する。修正部１５は、加工プログラムに速度の情報を記述することによって、加工プログラムを修正する。加工プログラム出力部１６は、速度の情報が記述された加工プログラムを出力する。速度の情報は境界部角度に基づいて算出された情報であることから、加工プログラム出力部１６は、速度の情報の記述によって境界部角度の情報が反映された加工プログラムを出力する。
【００６３】
実施の形態１の変形例によると、加工プログラム修正装置１０１は、上記の加工プログラム修正装置１００と同様に、工作機械により高い品質の加工品を効率良く得ることが可能となる。また、実施の形態１の変形例によると、数値制御装置では、境界部角度の情報を基に工具の速度を算出する処理が不要となる。
【００６４】
なお、実施の形態１にかかる加工プログラム修正装置１００，１０１は、例えば上記特許文献１の加工装置と比較すると、以下の効果もある。特許文献１にかかる加工装置は、目標形状を認識するために加工プログラムである数値制御データを読み込み、数値制御データに記述されているデータ点群を細分化して変曲点の属性を判別する。特許文献１の技術によると、加工装置は、工具経路に沿った輪郭を基に目標形状を認識する。工具経路の方向とは垂直な奥行き方向において輪郭の形状が変化している目標形状の場合、加工装置は、目標形状を認識するために、奥行き方向に並ぶ工具経路の各々についてデータ点群を取り込む必要がある。このため、特許文献１の技術によると、加工速度を決定するための処理は、時間と手間とを要し、現状のプロセッサ等による実現が事実上困難である。これに対し、実施の形態１にかかる加工プログラム修正装置１００，１０１は、奥行き方向の工具経路の各々についてのデータ点群を取り込む必要が無いため、現状のプロセッサ等でも処理を実行可能である。
【００６５】
実施の形態２．
実施の形態２にかかる加工プログラム修正装置１００は、加工プログラムへ反映させる境界部角度の情報を、指令点における工具の進行方向と境界である線とがなす角度に基づいて補正する。実施の形態２にかかる加工プログラム修正装置１００は、実施の形態１にかかる加工プログラム修正装置１００と同様の構成を有する。実施の形態２にかかる加工プログラム修正装置１００の動作手順は、図２に示す動作手順と同様である。実施の形態２では、上記の実施の形態１と同一の構成要素には同一の符号を付し、実施の形態１とは異なる処理について説明する。
【００６６】
図１９は、実施の形態２において加工プログラムの解析によって求めた工具経路ＴＰ２において工具Ｔ１が移動する様子について説明するための図である。図１９に示す工具経路ＴＰ２は、１０個の指令点Ｐ１０−Ｐ１９において順次工具Ｔ１を移動させる経路である。図６に示す工具経路ＴＰ１はＹ軸方向における位置が一定である一方、図１９に示す工具経路ＴＰ２は、Ｙ軸方向における位置が変化する。
【００６７】
図２０は、図１９に示す工具経路ＴＰ２上の各指令点Ｐと、各指令点Ｐに対応する切削点ＣＰとを示す図である。切削点算出部９は、工具経路ＴＰ２上の各指令点Ｐ１０−Ｐ１９についての切削点ＣＰ１０−ＣＰ２０を算出する。
【００６８】
切削点ＣＰ１０−ＣＰ１３は、それぞれ指令点Ｐ１０−Ｐ１３に対応する切削点ＣＰである。切削点ＣＰ１６は、指令点Ｐ１５に対応する切削点ＣＰである。切削点ＣＰ２０は、指令点Ｐ１９に対応する切削点ＣＰである。図２０に示す例では、各指令点Ｐ１０−Ｐ１３，Ｐ１５，Ｐ１９には、１つの切削点ＣＰが対応する。指令点Ｐ１４には、２つの切削点ＣＰ１４，ＣＰ１５が対応する。３個の指令点Ｐ１６，Ｐ１７，Ｐ１８には、それぞれ切削点ＣＰ１７，ＣＰ１８，ＣＰ１９が対応する。境界指令点抽出部１１は、境界指令点である指令点Ｐ１４，Ｐ１６，Ｐ１７，Ｐ１８を抽出する。
【００６９】
図２１は、実施の形態２における境界部角度の算出について説明するための第１の図である。実施の形態１の場合と同様に、角度算出部１３は、境界指令点である指令点Ｐ１４について、境界部角度ＡＮ２を算出する。境界部角度ＡＮ２は、加工面Ｓ０と加工面Ｓ１との境界Ｂ２において加工面Ｓ０と加工面Ｓ１とがなす角度である。
【００７０】
図２２は、実施の形態２における境界部角度の情報の補正について説明するための第１の図である。角度算出部１３は、指令点Ｐ１４における工具Ｔ１の移動方向ＰＶ１４と、境界Ｂ２である直線の方向である境界方向ＥＶ０とを求め、移動方向ＰＶ１４と境界方向ＥＶ０とを比較する。角度算出部１３は、移動方向ＰＶ１４と境界方向ＥＶ０とが平行に近いほど、境界部角度ＡＮ２の情報を１８０度に近づける補正を行う。一方、角度算出部１３は、移動方向ＰＶ１４と境界方向ＥＶ０とが垂直に近いほど、境界部角度ＡＮ２の情報を補正しないようにする。具体的には、角度算出部１３は、移動方向ＰＶ１４と境界方向ＥＶ０とがなす角度が９０度から１８０度に含まれる角度である場合に、境界部角度ＡＮ２の情報を、境界部角度ＡＮ２の元の値から１８０度の間で線形補間する。
【００７１】
図２３は、実施の形態２における境界部角度の算出について説明するための第２の図である。各指令点Ｐ１６，Ｐ１７，Ｐ１８は、加工面Ｓ１と加工面Ｓ２との境界Ｂ３上の点である。実施の形態１の場合と同様に、角度算出部１３は、境界指令点である指令点Ｐ１６−Ｐ１８について、境界部角度ＡＮ３を算出する。境界部角度ＡＮ３は、境界Ｂ３において加工面Ｓ１と加工面Ｓ２とがなす角度である。
【００７２】
図２４は、実施の形態２における境界部角度の情報の補正について説明するための第２の図である。角度算出部１３は、指令点Ｐ１６における工具Ｔ１の移動方向ＰＶ１６と、境界Ｂ３である直線の方向である境界方向ＥＶ１とを求め、移動方向ＰＶ１６と境界方向ＥＶ１とを比較する。角度算出部１３は、移動方向ＰＶ１６と境界方向ＥＶ１とが平行に近いほど、境界部角度ＡＮ３の情報を１８０度に近づける補正を行う。一方、角度算出部１３は、移動方向ＰＶ１６と境界方向ＥＶ１とが垂直に近いほど、境界部角度ＡＮ３の情報を補正しないようにする。具体的には、角度算出部１３は、移動方向ＰＶ１６と境界方向ＥＶ１とがなす角度が９０度から１８０度に含まれる角度である場合に、境界部角度ＡＮ３の情報を、境界部角度ＡＮ３の元の値から１８０度の間で線形補間する。角度算出部１３は、指令点Ｐ１７，Ｐ１８についても、指令点Ｐ１６の場合と同様に、境界部角度ＡＮ３の情報を補正する。
【００７３】
なお、角度算出部１３は、工具経路上において互いに隣り合う指令点同士を結ぶ直線の方向を、境界指令点における工具の進行方向として求めても良い。角度算出部１３は、その他の方法によって、境界指令点における工具の進行方向を求めても良い。２つの加工面における境界の方向は、目標形状から直接得るのが望ましい。角度算出部１３は、境界指令点に対応付けられた切削点に基づいて、境界の方向を近似的に求めても良い。角度算出部１３は、２つの加工面の各々について、切削点における加工面の法線ベクトルを求め、各法線ベクトルの外積方向から、境界の方向を近似的に求めても良い。
【００７４】
工具の移動方向と境界方向とが平行に近いほど、工具の速度の減速が不要である。また、工具の移動方向と境界方向とが垂直に近いほど、工具の速度の減速が必要である。実施の形態２によると、加工プログラム修正装置１００は、目標形状のうち工具の移動方向と境界方向とが平行に近い部分では、工具の減速が少なくなるように加工プログラムを修正することができる。また、加工プログラム修正装置１００は、目標形状のうち工具の移動方向と境界方向とが垂直に近い部分では、算出された境界部角度に従って工具が減速されるように加工プログラムを修正することができる。これにより、加工プログラム修正装置１００は、工作機械により高い品質の加工品を効率良く得ることが可能となるという効果を奏する。なお、実施の形態１の変形例にかかる加工プログラム修正装置１０１は、実施の形態２と同様に、境界部角度の情報を補正しても良い。
【００７５】
次に、実施の形態１または２にかかる加工プログラム修正装置１００，１０１のハードウェア構成について説明する。図２５は、実施の形態１または２にかかる加工プログラム修正装置１００，１０１のハードウェア構成例を示す図である。図２５には、プログラムを実行するハードウェアを用いることによって加工プログラム修正装置１００，１０１の機能が実現される場合におけるハードウェア構成を示している。
【００７６】
加工プログラム修正装置１００，１０１は、加工プログラム修正装置１００，１０１への情報の入力のための入力部５０と、各種処理を実行するプロセッサ５１と、内蔵メモリであるメモリ５２と、情報を記憶する記憶装置５３と、加工プログラム修正装置１００，１０１からの情報の出力のための出力部５４と、を有する。
【００７７】
入力部５０は、外部から加工プログラム修正装置１００，１０１へ入力されるデータを受信する回路である。加工プログラム入力部１と、工具データ入力部３と、形状データ入力部５との各機能は、入力部５０を使用して実現される。
【００７８】
プロセッサ５１は、ＣＰＵ（Central  Processing  Unit）である。プロセッサ５１は、処理装置、マイクロプロセッサ、マイクロコンピュータ、又はＤＳＰ（Digital  Signal  Processor）であっても良い。メモリ５２は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ、ＥＰＲＯＭ（Erasable  Programmable  Read  Only  Memory）またはＥＥＰＲＯＭ（登録商標）（Electrically  Erasable  Programmable  Read  Only  Memory）である。
【００７９】
記憶装置５３は、ＨＤＤ（Hard  Disk  Drive）またはＳＳＤ（Solid  State  Drive）である。コンピュータを加工プログラム修正装置１００，１０１として機能させるプログラムは、記憶装置５３に格納される。プロセッサ５１は、記憶装置５３に格納されているプログラムをメモリ５２に読み出して実行する。
【００８０】
プログラムは、コンピュータシステムによる読み取りが可能とされた記憶媒体に記憶されたものであっても良い。加工プログラム修正装置１００，１０１は、記憶媒体に記録されたプログラムをメモリ５２へ格納しても良い。記憶媒体は、フレキシブルディスクである可搬型記憶媒体、あるいは半導体メモリであるフラッシュメモリであっても良い。プログラムは、他のコンピュータあるいはサーバ装置から通信ネットワークを介してコンピュータシステムへインストールされても良い。
【００８１】
加工プログラム解析部７と、切削点算出部９と、境界指令点抽出部１１と、角度算出部１３と、修正部１５と、速度算出部１７との各機能は、プロセッサ５１とソフトウェアの組み合わせによって実現される。当該各機能は、プロセッサ５１およびファームウェアの組み合わせによって実現されても良く、プロセッサ５１、ソフトウェアおよびファームウェアの組み合わせによって実現されても良い。ソフトウェアまたはファームウェアは、プログラムとして記述され、記憶装置５３に格納される。
【００８２】
記憶装置５３には、加工プログラム修正装置１００，１０１において使用される各種データが格納される。加工プログラム記憶部２と、工具データ記憶部４と、形状データ記憶部６と、工具経路記憶部８と、切削点記憶部１０と、境界指令点記憶部１２と、角度記憶部１４との各機能は、記憶装置５３を使用して実現される。
【００８３】
出力部５４は、加工プログラム修正装置１００，１０１により修正された加工プログラムを外部へ出力する回路である。加工プログラム出力部１６の機能は、出力部５４を使用して実現される。
【００８４】
加工プログラム修正装置１００，１０１の機能は、加工プログラムの修正のための専用のハードウェアである処理回路によって実現されても良い。処理回路は、単一回路、複合回路、プログラム化されたプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field-Programmable  Gate  Array）、又はこれらの組み合わせである。加工プログラム修正装置１００，１０１の機能は、一部を専用のハードウェアで実現し、他の一部をソフトウェアまたはファームウェアで実現するようにしても良い。
【００８５】
実施の形態３．
実施の形態３では、数値制御装置において加工プログラムを修正する例について説明する。図２６は、実施の形態３にかかる数値制御装置２００の構成を示す図である。実施の形態３では、上記の実施の形態１または２と同一の構成要素には同一の符号を付し、実施の形態１または２とは異なる構成について説明する。
【００８６】
数値制御装置２００は、加工プログラム入力部１と、加工プログラム記憶部２と、工具データ入力部３と、工具データ記憶部４と、形状データ入力部５と、形状データ記憶部６と、加工プログラム解析部７と、工具経路記憶部８と、切削点算出部９と、切削点記憶部１０と、境界指令点抽出部１１と、境界指令点記憶部１２と、角度算出部１３と、角度記憶部１４と、速度算出部１７と、補間加減速部２０と、補間データ出力部２１とを有する。
【００８７】
補間加減速部２０は、単位時間ごとにおける工具経路上の位置を表す補間点を求める補間部としての機能と、補間点の加減速処理を行う機能とを有する。補間加減速部２０は、速度算出部１７によって算出された速度に基づいて補間点を求める。補間加減速部２０は、加減速処理を経た補間点のデータである補間データを、補間データ出力部２１へ出力する。補間データ出力部２１は、工作機械のモータ駆動部２２へ補間データを出力する。
【００８８】
次に、数値制御装置２００の動作について説明する。図２７は、実施の形態３にかかる数値制御装置２００の動作手順を示すフローチャートである。
【００８９】
ステップＳ１１において、数値制御装置２００は、加工プログラム、工具データおよび形状データを受け付ける。ステップＳ１２において、数値制御装置２００は、加工プログラムの解析によって、工具経路を求める。ステップＳ１３において、数値制御装置２００は、工具経路上の複数の指令点の各々について切削点を求める。ステップＳ１４において、数値制御装置２００は、工具経路上の複数の指令点の中から境界指令点を抽出する。ステップＳ１５において、数値制御装置２００は、工具経路上の各境界指令点における境界部角度を算出する。ステップＳ１１からステップＳ１５の詳細は、図２に示すステップＳ１からステップＳ５の場合と同様である。なお、角度算出部１３は、実施の形態２の場合と同様に、指令点における工具の進行方向と境界の線とがなす角度に基づいて、境界部角度の情報を補正しても良い。
【００９０】
ステップＳ１６において、数値制御装置２００は、境界指令点における工具の速度を境界部角度に基づいて算出する。速度算出部１７は、工具経路および指令点のデータを工具経路記憶部８から読み出す。速度算出部１７は、境界指令点に対応付けられた境界部角度のデータを角度記憶部１４から読み出す。速度算出部１７は、境界部角度が対応付けられている各指令点について、当該指令点を工具が通るときにおける速度を算出する。速度算出部１７による速度の算出方法は、実施の形態１の変形例の場合と同様である。なお、角度算出部１３によって境界部角度の情報が補正された場合、速度算出部１７は、補正された境界部角度の情報を用いた演算によって速度を算出する。速度算出部１７は、境界指令点に対応付けられた速度のデータを補間加減速部２０へ出力する。
【００９１】
ステップＳ１７において、数値制御装置２００は、工具経路の補間処理と補間結果の加減速処理とを実施する。補間加減速部２０は、工具経路に基づいた移動指令と速度のデータとに基づいて、補間周期ごとに、すなわち単位時間ごとに工具経路を補間した補間点を作成する。補間加減速部２０は、補間点の加減速処理を行う。補間加減速部２０は、補間データ出力部２１へ補間データを出力する。
【００９２】
ステップＳ１８において、数値制御装置２００は、補間データ出力部２１により、モータ駆動部２２へ補間データを出力する。以上により、数値制御装置２００は、図２７に示す手順による動作を終了する。
【００９３】
実施の形態３によると、数値制御装置２００は、工具経路と、形状データと、工具データとに基づいて境界指令点を抽出し、抽出された境界指令点における境界度角度から境界部における工具の速度を求める。数値制御装置２００は、工具経路の方向が大きく変わる曲がり部と目標形状における角部とにおいて、所望の品質での加工が可能な速度で工具を移動させる制御が可能となる。これにより、加工品の品質向上が可能となる。実施の形態３によると、数値制御装置２００は、実施の形態１または２の場合と同様に、工作機械により高い品質の加工品を効率良く得ることが可能となるという効果を奏する。
【００９４】
実施の形態４．
実施の形態２では、角度算出部１３における境界部角度の情報の補正について説明した。実施の形態４では、機械学習の手法によって、境界部角度の情報の補正方法を学習する例について説明する。図２８は、実施の形態４にかかる数値制御装置２０１の構成を示す図である。実施の形態４では、上記の実施の形態１から３と同一の構成要素には同一の符号を付し、実施の形態１から３とは異なる構成について説明する。
【００９５】
数値制御装置２０１は、図２６に示す構成に加えて、補間データ記憶部２３と機械学習装置３０とを有する。補間加減速部２０は、補間データ出力部２１と補間データ記憶部２３とへ補間データを出力する。補間データ記憶部２３は、補間加減速部２０によって作成された補間データを記憶する。
【００９６】
機械学習装置３０は、加工時間の遅延をできるだけ少なくしながら所望の精度での加工を可能とする境界部角度の補正方法を学習する。機械学習装置３０は、状態観測部３１と学習部３２とを備える。状態観測部３１は、補間データ記憶部２３から補間データを読み出す。状態観測部３１は、補間データを状態変数として観測する。学習部３２は、状態変数に基づいて作成されるデータセットに従って、境界部角度の情報の補正方法を学習する。
【００９７】
実施の形態２にて説明したように、角度算出部１３は、指令点における工具の進行方向と、２つの加工面の境界である線とがなす角度に基づいて、境界部角度の情報を補正する。角度算出部１３は、工具の移動方向と境界方向とがなす角度が９０度から１８０度に含まれる角度である場合において、境界部角度の情報を、境界部角度の元の値から１８０度の間で補間する。機械学習装置３０は、かかる補間を表す関数を学習する。
【００９８】
なお、状態変数には、補間点における工具と切削点との距離と、工具経路と工具の先端位置の軌跡との差を表す誤差量と、補間点における工具の速度または加速度と、工具経路における加工時間との少なくとも１つである加工データが含まれても良い。状態観測部３１は、補間データに基づいて算出された加工データを、状態変数として観測する。
【００９９】
なお、状態変数として観測される加工データは、補間データに基づいて算出されたデータに限られず、工作機械において実測されたデータであっても良い。すなわち、状態観測部３１は、補間点における工具と切削点との距離と、工具経路と工具の先端位置の軌跡との差を表す誤差量と、補間点における工具の速度または加速度と、工具経路における加工時間との少なくとも１つの実測値を、状態変数として観測しても良い。この場合、状態観測部３１は、数値制御装置２０１の外部の測定機器から加工データを取得する。これにより、状態観測部３１は、工作機械における振動等が加味された加工データを、状態変数として観測することができる。
【０１００】
学習部３２は、状態観測部３１から入力される状態変数をまとめ合わせたデータセットを作成する。学習部３２は、データセットに従って、境界部角度の情報の補正方法を学習する。学習部３２が用いる学習アルゴリズムはどのようなものを用いてもよい。一例として、強化学習（Reinforcement  Learning）を適用した場合について説明する。
【０１０１】
強化学習は、ある環境内におけるエージェントである行動主体が、現在の状態を観測し、取るべき行動を決定する、というものである。エージェントは行動を選択することで環境から報酬を得て、一連の行動を通じて報酬が最も多く得られるような方策を学習する。強化学習の代表的な手法として、Ｑ学習（Q-Learning）およびＴＤ学習（TD-Learning）などが知られている。例えば、Ｑ学習の場合、行動価値関数Ｑ（ｓ，ａ）の一般的な更新式である行動価値テーブルは、次の式（１）で表される。行動価値関数Ｑ（ｓ，ａ）は、環境「ｓ」のもとで行動「ａ」を選択する行動の価値である行動価値Ｑを表す。
【０１０２】
【数１】
0006903255.tif 000002
【０１０３】
上記の式（１）により表される更新式は、時刻「ｔ＋１」における最良の行動「ａ」の行動価値が、時刻「ｔ」において実行された行動「ａ」の行動価値Ｑよりも大きければ、行動価値Ｑを大きくし、逆の場合は、行動価値Ｑを小さくする。換言すれば、時刻「ｔ」における行動「ａ」の行動価値Ｑを、時刻「ｔ＋１」における最良の行動価値に近づけるように、行動価値関数Ｑ（ｓ，ａ）を更新する。それにより、ある環境における最良の行動価値が、それ以前の環境における行動価値に順次伝播する。
【０１０４】
学習部３２は、報酬算出部３３と関数更新部３４とを有する。報酬算出部３３は、状態変数に基づいて報酬を算出する。関数更新部３４は、報酬算出部３３によって算出される報酬に従って、補正方法を表す関数を更新する。
【０１０５】
報酬算出部３３は、加工によって得られる面精度と理想とする面精度との差分と、加工時間とに基づいて、報酬「ｒ」を算出する。例えば、補正方法を変更した結果、面精度の差分が閾値以下となった場合、および、加工時間が短くなった場合において、報酬算出部３３は報酬「ｒ」を増大させる。報酬算出部３３は、報酬の値である「１」を与えることによって報酬「ｒ」を増大させる。なお、報酬の値は「１」に限られない。また、補正方法を変更した結果、面精度の差分が閾値を超えた場合、または、加工時間が長くなった場合において、報酬算出部３３は、報酬「ｒ」を低減させる。報酬算出部３３は、報酬の値である「−１」を与えることによって報酬「ｒ」を低減させる。なお、報酬の値は「−１」に限られない。
【０１０６】
図２９は、実施の形態４にかかる数値制御装置２０１が有する学習部３２の動作手順を示すフローチャートである。図２９のフローチャートを参照して、行動価値関数Ｑ（ｓ，ａ）を更新する強化学習方法について説明する。
【０１０７】
ステップＳ２１において、学習部３２は、データセットを取得する。ステップＳ２２において、学習部３２は、面精度との差分と、加工時間とに基づいて報酬を算出する。ステップＳ２３において、学習部３２は、報酬に基づいて行動価値関数Ｑ（ｓ，ａ）を更新する。ステップＳ２４において、学習部３２は、行動価値関数Ｑ（ｓ，ａ）が収束したか否かを判断する。学習部３２は、ステップＳ２３における行動価値関数Ｑ（ｓ，ａ）の更新が行われなくなることによって行動価値関数Ｑ（ｓ，ａ）が収束したと判断する。
【０１０８】
行動価値関数Ｑ（ｓ，ａ）が収束していないと判断された場合（ステップＳ２４，Ｎｏ）、学習部３２は、手順をステップＳ２１へ戻す。行動価値関数Ｑ（ｓ，ａ）が収束したと判断された場合（ステップＳ２４，Ｙｅｓ）、学習部３２は、図２９に示す手順による学習を終了する。なお、学習部３２は、ステップＳ２４による判断をせず、ステップＳ２３からステップＳ２１へ手順を戻すことによって学習を継続しても良い。
【０１０９】
機械学習装置３０は、生成された行動価値関数Ｑ（ｓ，ａ）である学習済モデルを角度算出部１３へ出力する。角度算出部１３は、学習済モデルに示される補正方法に従って、境界部角度の情報を補正する。数値制御装置２０１は、学習済モデルに示される補正方法に従って、境界部角度の情報を補正することによって、加工時間の遅延をできるだけ少なくしながら所望の精度での加工が可能となるように工作機械を制御することができる。
【０１１０】
実施の形態３において、速度算出部１７は、境界部角度の情報に基づいて工具の速度を算出する。境界部角度の情報の補正方法に代えて、速度の算出方法を学習しても良い。ここで、機械学習の手法によって速度の算出方法を学習する変形例について説明する。図３０は、実施の形態４の変形例にかかる数値制御装置２０２の構成を示す図である。
【０１１１】
数値制御装置２０２は、図２６に示す構成に加えて、補間データ記憶部２３と機械学習装置４０とを有する。機械学習装置４０は、加工時間の遅延をできるだけ少なくしながら所望の精度での加工を可能とする速度の算出方法を学習する。機械学習装置４０は、状態観測部４１と学習部４２とを備える。状態観測部４１は、補間データ記憶部２３から補間データを読み出す。状態観測部４１は、補間データを状態変数として観測する。学習部４２は、状態変数に基づいて作成されるデータセットに従って、速度の算出方法を学習する。学習部４２は、報酬算出部４３と関数更新部４４とを有する。
【０１１２】
変形例においても、状態変数には、補間点における工具と切削点との距離と、工具経路と工具の先端位置の軌跡との差を表す誤差量と、補間点における工具の速度または加速度と、工具経路における加工時間との少なくとも１つである加工データが含まれても良い。状態観測部４１は、補間データに基づいて算出された加工データを、状態変数として観測する。状態変数として観測される加工データは、補間データに基づいて算出されたデータに限られず、工作機械において実測されたデータであっても良い。
【０１１３】
状態観測部４１および学習部４２の詳細は、上記の状態観測部３１および学習部３２の場合と同様である。機械学習装置４０は、生成された行動価値関数Ｑ（ｓ，ａ）である学習済モデルを速度算出部１７へ出力する。数値制御装置２０２は、学習済モデルに示される算出方法に従って速度を算出することによって、加工時間の遅延をできるだけ少なくしながら所望の精度での加工が可能となるように工作機械を制御することができる。
【０１１４】
実施の形態４において、状態変数として観測される補間点のデータは、工具経路上の全ての補間点のデータである場合に限られない。状態観測部３１，４１は、工具経路における複数の補間点の中から加工面同士の境界以外における補間点を除いて、境界における補間点のデータのみを状態変数として観測しても良い。この場合、補間データ記憶部２３において境界指令点に対応付けて補間点のデータを記憶することで、状態観測部３１，４１は、境界指令点に対応付けられている補間点のデータのみを取得しても良い。機械学習装置３０，４０は、境界における補間点のデータのみを状態変数として観測することによって、学習の効率化が可能となる。
【０１１５】
実施の形態４では、学習部３２，４２が用いる学習アルゴリズムに強化学習を適用する場合について説明したが、学習アルゴリズムには、強化学習以外の学習が適用されても良い。学習部３２，４２は、強化学習以外の公知の学習アルゴリズム、例えば、深層学習（Deep  Learning）、ニューラルネットワーク、遺伝的プログラミング、帰納論理プログラミングあるいはサポートベクターマシンといった学習アルゴリズムを用いて機械学習を実行しても良い。
【０１１６】
機械学習装置３０，４０は、数値制御装置２０１，２０２に内蔵されるものに限られない。機械学習装置３０，４０は、実施の形態１または２にかかる加工プログラム修正装置１００，１０１に内蔵されても良い。加工プログラム修正装置１００，１０１に機械学習装置３０，４０が内蔵される場合、機械学習装置３０，４０は、数値制御装置から補間データおよび加工データを取得する。機械学習装置３０，４０は、工作機械において実測された加工データを測定機器から取得しても良い。機械学習装置３０，４０は、ネットワークを介して数値制御装置２０１，２０２に接続可能な装置であっても良い。機械学習装置３０，４０は、クラウドサーバ上に存在する装置であっても良い。
【０１１７】
学習部３２，４２は、複数の数値制御装置２０１，２０２に対して作成されたデータセットに従って、補正方法または算出方法を学習しても良い。学習部３２，４２は、同一の現場で使用される複数の数値制御装置２０１，２０２から得たデータを基にデータセットを作成しても良く、あるいは、互いに異なる現場で使用される複数の数値制御装置２０１，２０２から得たデータを基にデータセットを作成しても良い。データセットは、複数の現場において互いに独立して稼働する複数の数値制御装置２０１，２０２から収集されたものであっても良い。複数の数値制御装置２０１，２０２からのデータセットの収集を開始した後に、データセットが収集される対象に新たな数値制御装置２０１，２０２が追加されても良い。また、複数の数値制御装置２０１，２０２からのデータセットの収集を開始した後に、データセットが収集される対象から、複数の数値制御装置２０１，２０２のうちの一部が除外されても良い。
【０１１８】
ある１つの数値制御装置２０１，２０２について学習を行った学習部３２，４２は、当該数値制御装置２０１，２０２以外の他の数値制御装置２０１，２０２についての学習を行っても良い。当該他の数値制御装置２０１，２０２についての学習を行う学習部３２，４２は、当該他の数値制御装置２０１，２０２における再学習によって、学習済モデルを更新することができる。
【０１１９】
次に、実施の形態３または４にかかる数値制御装置２００，２０１，２０２のハードウェア構成について説明する。数値制御装置２００，２０１，２０２のハードウェア構成は、図２５に示すハードウェア構成と同様である。ここでは、図２５を参照して、数値制御装置２００，２０１，２０２のハードウェア構成について説明する。
【０１２０】
加工プログラム入力部１と、工具データ入力部３と、形状データ入力部５との各機能は、入力部５０を使用して実現される。加工プログラム解析部７と、切削点算出部９と、境界指令点抽出部１１と、角度算出部１３と、修正部１５と、速度算出部１７と、補間加減速部２０と、機械学習装置３０，４０との各機能は、プロセッサ５１とソフトウェアの組み合わせによって実現される。当該各機能は、プロセッサ５１およびファームウェアの組み合わせによって実現されても良く、プロセッサ５１、ソフトウェアおよびファームウェアの組み合わせによって実現されても良い。
【０１２１】
加工プログラム記憶部２と、工具データ記憶部４と、形状データ記憶部６と、工具経路記憶部８と、切削点記憶部１０と、境界指令点記憶部１２と、角度記憶部１４と、補間データ記憶部２３との各機能は、記憶装置５３を使用して実現される。補間データ出力部２１の機能は、出力部５４を使用して実現される。数値制御装置２００，２０１，２０２の機能は、数値制御のための専用のハードウェアである処理回路によって実現されても良い。
【０１２２】
機械学習装置３０，４０が数値制御装置２００，２０１，２０２の外部の装置である場合、機械学習装置３０，４０は、パーソナルコンピュータまたは汎用コンピュータといったコンピュータシステムにより実現される。コンピュータシステムには、機械学習装置３０，４０として動作するための処理が記述されたプログラムがインストールされる。この場合における機械学習装置３０，４０のハードウェア構成は、図２５に示すハードウェア構成と同様である。
【０１２３】
以上の各実施の形態に示した構成は、本開示の内容の一例を示すものである。各実施の形態の構成は、別の公知の技術と組み合わせることが可能である。各実施の形態の構成同士が適宜組み合わせられても良い。本開示の要旨を逸脱しない範囲で、各実施の形態の構成の一部を省略または変更することが可能である。
【符号の説明】
【０１２４】
１  加工プログラム入力部、２  加工プログラム記憶部、３  工具データ入力部、４  工具データ記憶部、５  形状データ入力部、６  形状データ記憶部、７  加工プログラム解析部、８  工具経路記憶部、９  切削点算出部、１０  切削点記憶部、１１  境界指令点抽出部、１２  境界指令点記憶部、１３  角度算出部、１４  角度記憶部、１５  修正部、１６  加工プログラム出力部、１７  速度算出部、２０  補間加減速部、２１  補間データ出力部、２２  モータ駆動部、２３  補間データ記憶部、３０，４０  機械学習装置、３１，４１  状態観測部、３２，４２  学習部、３３，４３  報酬算出部、３４，４４  関数更新部、５０  入力部、５１  プロセッサ、５２  メモリ、５３  記憶装置、５４  出力部、１００，１０１  加工プログラム修正装置、２００，２０１，２０２  数値制御装置。
【要約】
加工プログラム修正装置（１００）は、第１の加工面および第２の加工面を有する被加工物を切削する工具を移動させるための指令が記述された加工プログラムの解析によって、被加工物に対して工具を移動させる経路である工具経路を求める加工プログラム解析部（７）と、工具経路上の指令点に工具が配置された場合に、被加工物の加工面上の点であって工具に対応する点である切削点を、工具経路上の複数の指令点の各々について算出する切削点算出部（９）と、第１の加工面および第２の加工面がなす角度である境界部角度を指令点および切削点から算出する角度算出部（１３）と、境界部角度の情報が反映された加工プログラムを出力する加工プログラム出力部（１６）と、を備える。【図１】
0006903255.tif 000003
【図２】
0006903255.tif 000004
【図３】
0006903255.tif 000005
【図４】
0006903255.tif 000006
【図５】
0006903255.tif 000007
【図６】
0006903255.tif 000008
【図７】
0006903255.tif 000009
【図８】
0006903255.tif 000010
【図９】
0006903255.tif 000011
【図１０】
0006903255.tif 000012
【図１１】
0006903255.tif 000013
【図１２】
0006903255.tif 000014
【図１３】
0006903255.tif 000015
【図１４】
0006903255.tif 000016
【図１５】
0006903255.tif 000017
【図１６】
0006903255.tif 000018
【図１７】
0006903255.tif 000019
【図１８】
0006903255.tif 000020
【図１９】
0006903255.tif 000021
【図２０】
0006903255.tif 000022
【図２１】
0006903255.tif 000023
【図２２】
0006903255.tif 000024
【図２３】
0006903255.tif 000025
【図２４】
0006903255.tif 000026
【図２５】
0006903255.tif 000027
【図２６】
0006903255.tif 000028
【図２７】
0006903255.tif 000029
【図２８】
0006903255.tif 000030
【図２９】
0006903255.tif 000031
【図３０】
0006903255.tif 000032