(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-12-12
(45)【発行日】2024-12-20
(54)【発明の名称】制御装置および制御方法
(51)【国際特許分類】
G05B 19/4097 20060101AFI20241213BHJP
G05B 19/4093 20060101ALI20241213BHJP
【FI】
G05B19/4097 C
G05B19/4093 P
(21)【出願番号】P 2024532966
(86)(22)【出願日】2024-01-24
(86)【国際出願番号】 JP2024002018
【審査請求日】2024-05-31
【早期審査対象出願】
(73)【特許権者】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】100118762
【氏名又は名称】高村 順
(72)【発明者】
【氏名】松原 晋
【審査官】山本 忠博
(56)【参考文献】
【文献】特開2004-213554(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/404,19/4093,19/4097;
B23Q 15/00
(57)【特許請求の範囲】
【請求項1】
製品形状を表す製品形状データを取り込んで加工プログラムを生成し、生成した前記加工プログラムを用いて工作機械を制御する制御装置であって、
前記製品形状データに設定されている第1の方向と、プログラム座標系に設定されている第2の方向とが一致するように、前記プログラム座標系を設定する座標設定部と、
前記プログラム座標系が設定される際の前記製品形状データのフォーマット変換が原因で、配置された前記製品形状の座標および前記第1の方向と前記プログラム座標系の座標および前記第2の方向との差分
が発生した場合に、前記差分を検出する差分検出部と、
前記差分が幾何学的に許容される誤差量である幾何許容誤差量以上の特定範囲内でない場合に前記差分が前記特定範囲内となるように前記製品形状データを補正する形状補正部と、
を備える、
ことを特徴とする制御装置。
【請求項2】
前記特定範囲は、作業者によって設定された誤差量である設定誤差量未満である、
ことを特徴とする請求項1に記載の制御装置。
【請求項3】
前記第1の方向は、前記製品形状に含まれる円柱面、円錐面、または円環面の中心軸の方向であり、
前記第2の方向は、前記プログラム座標系で設定されている旋削軸の方向であり、
前記形状補正部は、前記差分が前記特定範囲内でない場合に前記差分が前記特定範囲内となるように前記中心軸を補正する、
ことを特徴とする請求項1または2に記載の制御装置。
【請求項4】
前記製品形状を特定の座標系に配置する形状配置部をさらに備え、
前記第1の方向は、前記製品形状に含まれる段差のある穴である段付き穴の各中心軸の方向であり、
前記形状配置部は、前記各中心軸が一致するように前記製品形状を配置し、
前記差分検出部は、前記段付き穴に含まれる穴のうち隣接する穴面同士の中心軸の差分である軸差分を検出し、
前記形状補正部は、前記軸差分が前記特定範囲内でない場合に前記軸差分が前記特定範囲内となるように前記各中心軸を補正する、
ことを特徴とする請求項1または2に記載の制御装置。
【請求項5】
前記第1の方向は、前記製品形状に含まれる平面の法線ベクトルの方向であり、
前記形状補正部は、前記差分が前記特定範囲内でない場合に前記差分が前記特定範囲内となるように前記法線ベクトルを補正する、
ことを特徴とする請求項1または2に記載の制御装置。
【請求項6】
前記第1の方向は、前記製品形状に含まれる円柱面の一部である円柱部分面の中心軸ベクトルの方向であり、
前記第2の方向は、前記プログラム座標系で設定されている旋削軸の方向であり、
前記形状補正部は、前記差分が前記特定範囲内でない場合に前記差分が前記特定範囲内となるように前記中心軸ベクトルを補正する、
ことを特徴とする請求項1または2に記載の制御装置。
【請求項7】
前記製品形状を特定の座標系に配置する形状配置部をさらに備え、
前記形状配置部は、前記製品形状に含まれるR面取り面の半径値と基準の半径値である基準半径値とが一致するように前記製品形状を配置し、
前記差分検出部は、前記R面取り面の半径値と前記基準半径値との差分である半径差分を検出し、
前記形状補正部は、前記半径差分が前記特定範囲内でない場合に前記半径差分が前記特定範囲内となるように前記R面取り面の半径値を補正する、
ことを特徴とする請求項1または2に記載の制御装置。
【請求項8】
前記製品形状を特定の座標系に配置する形状配置部をさらに備え、
前記形状配置部は、前記製品形状に含まれるC面取り面のC面取り幅と基準のC面取り幅である基準幅とが一致するように前記製品形状を配置し、
前記差分検出部は、前記C面取り面のC面取り幅と前記基準幅との差分である幅差分を検出し、
前記形状補正部は、前記幅差分が前記特定範囲内でない場合に前記幅差分が前記特定範囲内となるように前記C面取り面のC面取り幅を補正する、
ことを特徴とする請求項1または2に記載の制御装置。
【請求項9】
補正後の前記製品形状データから形状補正方法に対応し調整対象である第1のパラメータを抽出するとともに、補正前の前記製品形状データから前記第1のパラメータの調整に使用されるとともに調整対象外である第2のパラメータを抽出する形状補正方法解析部と、
前記第1のパラメータと前記第2のパラメータとを含むデータセットを用いた学習によって、前記第2のパラメータから前記第1のパラメータを推論するための学習モデルを生成する機械学習部と、
前記学習モデルを用いて、前記第2のパラメータから前記第1のパラメータを推論する推論部と、
をさらに備え、
前記形状補正部は、前記推論部が推論した前記第1のパラメータを用いて前記製品形状データを補正する、
ことを特徴とする請求項1または2に記載の制御装置。
【請求項10】
前記差分は、前記製品形状データが作成される際のフォーマット変換によって発生した差分である、
ことを特徴とする請求項1または2に記載の制御装置。
【請求項11】
製品形状を表す製品形状データを取り込んで加工プログラムを生成し、生成した前記加工プログラムを用いて工作機械を制御する制御方法であって、
制御装置が、前記製品形状データに設定されている第1の方向と、プログラム座標系に設定されている第2の方向とが一致するように、前記プログラム座標系を設定する座標設定ステップと、
前記制御装置が、
前記プログラム座標系が設定される際の前記製品形状データのフォーマット変換が原因で、配置された前記製品形状の座標および前記第1の方向と前記プログラム座標系の座標および前記第2の方向との差分
が発生した場合に、前記差分を検出する差分検出ステップと、
前記制御装置が、前記差分が幾何学的に許容される誤差量である幾何許容誤差量以上の特定範囲内でない場合に前記差分が前記特定範囲内となるように前記製品形状データを補正する形状補正ステップと、
を含む、
ことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、工作機械を制御する制御装置および制御方法に関する。
【背景技術】
【0002】
素材を旋削加工することで製品を削り出す工作機械は、数値制御装置といった制御装置によって制御される。この制御装置には、作業者が意図した形状、すなわち設計通りの形状の製品を作製するように工作機械を制御することが望まれている。ここで、数値制御装置を搭載した工作機械においては、NC(Numeral Control、数値制御)プログラムを実行することによりワークを所望の製品形状に加工するようにしている。そして、このNCプログラムを作成するためのNC作成用プログラムが生成される際に、CAD(Computer-Aided Design、キャド)データ等の製品形状を表す製品形状データを取り込んでNC作成用プログラムに定義するようにしているが、様々な要因により設計された製品形状とNC作成用プログラムに定義された製品形状との間に誤差が生じるという問題があった。
【0003】
このような問題に対して、特許文献1に記載の自己干渉立体修正装置では、製品形状データに相当する三次元立体のすべての面を薄板に分離し、すべての薄板の自己干渉をチェックし、チェックした結果を用いて三次元立体を再構成することで自己干渉した立体を修正している。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記特許文献1の技術をNC作成用プログラムの作成に適用する場合、自己干渉した製品形状データ自身の修正はできるものの、製品形状データのフォーマット変換等の種々の処理が原因で、製品形状データに含まれる各形状要素の幾何情報に誤差が発生し、製品形状データの各形状要素の幾何情報において設定されている軸とNCプログラムのプログラム座標系において設定されている軸との間に、作業者が想定し得ない差分が生じる場合があり、この差分を補正することができず、工作機械に設計通りの形状の製品を作製させることができないという問題があった。
【0006】
本開示は、上記に鑑みてなされたものであって、製品形状データに含まれる各形状要素の幾何情報において設定されている軸とNCプログラムのプログラム座標系において設定されている軸との間に差分が生じる場合であっても、工作機械に設計通りの形状の製品を作製させることができる制御装置を得ることを目的とする。
【課題を解決するための手段】
【0007】
上述した課題を解決し、目的を達成するために、本開示の制御装置は、製品形状を表す製品形状データを取り込んで加工プログラムを生成し、生成した加工プログラムを用いて工作機械を制御する制御装置であって、製品形状データに設定されている第1の方向と、プログラム座標系に設定されている第2の方向とが一致するように、プログラム座標系を設定する座標設定部を備える。また、本開示の制御装置は、プログラム座標系が設定される際の製品形状データのフォーマット変換が原因で、配置された製品形状の座標および第1の方向とプログラム座標系の座標および第2の方向との差分が発生した場合に、差分を検出する差分検出部と、差分が幾何学的に許容される誤差量である幾何許容誤差量以上の特定範囲内でない場合に差分が特定範囲内となるように製品形状データを補正する形状補正部とを備える。
【発明の効果】
【0008】
本開示にかかる制御装置は、製品形状データに含まれる各形状要素の幾何情報において設定されている軸とNCプログラムのプログラム座標系において設定されている軸との間に差分が生じる場合であっても、工作機械に設計通りの形状の製品を作製させることができるという効果を奏する。
【図面の簡単な説明】
【0009】
【
図1】実施の形態にかかる数値制御装置の構成を示す図
【
図2】実施の形態にかかる加工プログラム生成装置が実行する加工プログラム生成処理の処理手順を示すフローチャート
【
図3】実施の形態にかかる加工プログラム生成装置の製品形状記憶部が記憶する製品形状データに対応する製品形状の一例を示す図
【
図4】実施の形態にかかる加工プログラム生成装置の素材形状記憶部が記憶する素材形状データに対応する素材形状の一例を示す図
【
図5】実施の形態にかかる加工プログラム生成装置の形状配置部が配置した製品形状および素材形状の一例を示す図
【
図6】実施の形態にかかる加工プログラム生成装置の加工プログラム生成部が生成する加工形状データの一例を示す模式図
【
図7】実施の形態にかかる加工プログラム生成装置の加工プログラム生成部が生成する加工プログラムの一例を示す図
【
図8】実施の形態にかかる加工プログラム生成装置の形状補正部が実行する第1例の形状補正処理の処理手順を示すフローチャート
【
図9】実施の形態にかかる加工プログラム生成装置の形状補正部が実行する第1例の形状補正処理を説明するための図
【
図10】実施の形態にかかる加工プログラム生成装置の形状補正部が実行する第2例の形状補正処理の処理手順を示すフローチャート
【
図11】実施の形態にかかる加工プログラム生成装置の形状補正部が実行する第2例の形状補正処理を説明するための図
【
図12】実施の形態にかかる加工プログラム生成装置の形状補正部が実行する第3例の形状補正処理の処理手順を示すフローチャート
【
図13】実施の形態にかかる加工プログラム生成装置の形状補正部が実行する第3例の形状補正処理を説明するための図
【
図14】実施の形態にかかる加工プログラム生成装置の形状補正部が実行する第4例の形状補正処理の処理手順を示すフローチャート
【
図15】実施の形態にかかる加工プログラム生成装置の形状補正部が実行する第5例の形状補正処理の処理手順を示すフローチャート
【
図16】実施の形態にかかる加工プログラム生成装置の形状補正部が実行する第6例の形状補正処理の処理手順を示すフローチャート
【
図17】実施の形態にかかる加工プログラム生成装置の形状補正部が実行する第6例の形状補正処理を説明するための図
【
図18】実施の形態にかかる加工プログラム生成装置の形状補正部が実行する第7例の形状補正処理の処理手順を示すフローチャート
【
図19】実施の形態にかかる加工プログラム生成装置の形状補正部が実行する第7例の形状補正処理を説明するための図
【
図20】実施の形態にかかる数値制御装置が実行する第8例の形状補正処理の処理手順を示すフローチャート
【
図21】実施の形態にかかる機械学習装置が実行する学習モデル生成処理の処理手順を示すフローチャート
【
図22】実施の形態にかかる数値制御装置のハードウェア構成を示すブロック図
【発明を実施するための形態】
【0010】
以下に、本開示の実施の形態にかかる制御装置および制御方法を図面に基づいて詳細に説明する。
【0011】
実施の形態.
図1は、実施の形態にかかる数値制御装置の構成を示す図である。制御装置である数値制御装置100は、工作機械(図示せず)を数値制御するためのNCプログラムである加工プログラムPM(図示せず)を自動作成するとともに、加工プログラムPMを用いて工作機械を制御するコンピュータである。数値制御装置100は、製品の形状を示す製品形状データに基づいて、加工プログラムPMを生成する。工作機械は、素材である加工対象物を固定して工具を回転させる切削加工、または工具を固定して加工対象物工具を回転させる旋削加工を実行する。
【0012】
数値制御装置100は、製品形状データのフォーマット変換等が原因で、製品形状の特定部位の軸(第1の軸)と、プログラム座標系において設定されている軸(第2の軸)との間に差分が生じた場合に、この差分を補正して加工プログラムPMを生成する。すなわち、数値制御装置100は、加工プログラムPMの生成に有利になるように製品形状を補正したうえで、加工プログラムPMを生成する。
【0013】
数値制御装置100は、工作機械に搭載されてもよいし、工作機械に接続された工作機械の外部装置であってもよい。数値制御装置100は、作成した加工プログラムPMに従って工作機械の動作を数値制御する。加工プログラムPMは、被加工物である加工対象物を素材の状態から切削加工して切削加工品の製品形状を削り出すために用いられる。
【0014】
製品形状は、切削加工品の仕上がり形状である。素材形状は、加工前の加工対象物の形状である。素材形状としては、例えば、製品形状を内包するような円柱形状または直方体形状がある。なお、素材形状は、製品形状を必ずしも内包しなくてもよく、製品形状の任意の面を肉厚化した形状、製品形状の穴を削除した形状であってもよい。工作機械は、例えば、マシニングセンタ、旋盤、複合旋盤などである。以下では、工作機械が複合旋盤である場合について説明する。
【0015】
数値制御装置100は、加工プログラム生成装置10と、機械学習装置20と、対話操作処理部30と、指示入力部40と、表示部50と、制御部60とを有する。なお、
図1に示す例では、加工プログラム生成装置10と、機械学習装置20とが、数値制御装置100に搭載されることとしたが、実施の形態はかかる例に限定されない。例えば、加工プログラム生成装置10および機械学習装置20の少なくとも一方は、数値制御装置100と異なる装置であってもよい。すなわち、加工プログラム生成装置10および機械学習装置20の少なくとも一方は、数値制御装置100の外部に独立して設けられてもよい。また、加工プログラム生成装置10と機械学習装置20とは、異なる別々の装置で構成されてもよいし、1台の装置で構成されてもよい。
【0016】
加工プログラム生成装置10は、数値制御によって加工対象物(素材)から切削加工品を削り出すための複数の切削加工処理を含む加工プログラムPMを生成する装置である。加工プログラム生成装置10は、外部装置から形状データFdおよび形状補正事例Fcを受け付ける。なお、形状補正事例Fcは、数値制御装置100内で記憶しておいてもよいし、数値制御装置100の外部装置で記憶しておいてもよい。
【0017】
形状補正事例Fcは、過去に作成された複数の形状補正例のデータである。形状補正事例Fcは、過去に製品形状に対して実行された製品形状の補正例である。形状補正事例Fcは、数値制御装置100が実行した形状補正のデータを含んでいてもよい。また、形状補正事例Fcは、他の装置が実行した形状補正のデータを含んでいてもよい。
【0018】
形状補正事例Fcには、製品形状データの補正方法の情報、補正された製品形状(補正後の製品形状データ)、製品形状の配置データ、ワーク原点の位置(座標)、プログラム座標系の各軸の方向ベクトルの情報などが含まれている。
【0019】
加工プログラム生成装置10は、数値制御装置100の外部から加工プログラム生成装置10に入力される形状データFdに基づいて、加工プログラムPMを生成する。形状データFdには、加工対象物のデータである素材形状データと、製品形状のデータである製品形状データとが含まれている。
【0020】
なお、製品形状データには、製品形状の材質を示す製品材質情報が含まれていてもよいし、素材形状データには、素材形状の材質を示す素材材質情報が含まれていてもよい。また、形状データFdには、素材形状のアセンブリデータが含まれていてもよい。この場合、素材形状のアセンブリデータは、複数の素材形状データで構成されている。また、形状データFdには、製品形状のアセンブリデータが含まれていてもよい。この場合、製品形状のアセンブリデータは、複数の製品形状データで構成されている。
【0021】
素材形状データは、加工前の加工対象物の形状である素材形状を定義するデータである。製品形状データは、加工後の加工対象物の形状である製品形状を定義するデータである。素材形状データおよび製品形状データは、例えばCADデータである。なお、製品形状データおよび素材形状データは、CADデータに限定されず、加工プログラム生成装置10が解釈可能なデータであれば何れのデータであってもよい。
【0022】
加工プログラム生成装置10は、製品形状データを受け付けると、機械学習装置20の推論結果である形状補正データを用いて、製品形状を補正する。形状補正データは、製品形状データに対応する製品形状の形状補正に関するデータ(補正方法など)である。
【0023】
実施の形態の加工プログラム生成装置10は、製品形状を補正した後の製品形状データと、素材形状データとに基づいて加工プログラムPMを生成する。加工プログラム生成装置10は、配置データ(素材形状データおよび製品形状データの配置位置)と、ワーク原点と、プログラム座標系とに基づいて、加工ユニットの情報(以下、加工ユニット情報という)を含んだ加工プログラムPMを生成する。
【0024】
ワーク原点は、被加工物である加工対象物に対して設定される原点である。ワーク原点は、プログラム座標系の原点であり、加工プログラムPMを生成する際に使用される基準点である。ワーク原点は、加工対象物の位置および姿勢を定義するために使用される。ワーク原点としては、例えば、工作機械の座標系の原点が設定される。加工プログラムPMは、ワーク原点を基準にして、加工位置および工具の移動経路を計算する。例えば、ワーク原点がX=0、Y=0、Z=0の位置に設定されている場合、加工プログラムPMはこの位置を基準にして加工位置および工具の移動経路を計算する。
【0025】
加工ユニットは、同一の主軸でかつ同一の工具を用いて連続的な加工が行われる加工の単位である。加工ユニット情報は、加工工程のデータである。具体的には、加工ユニット情報は、加工方法(穴加工、面加工など)の情報を含む加工データと、加工に使用する工具の情報および切削条件の情報を含む工具データと、単一形状からなる加工形状を定義する形状情報とを含んでいる。
【0026】
加工ユニットとしては、例えば、旋削加工ユニット、段付き穴加工ユニット、面加工ユニット、R面取り加工ユニット、C面取り加工ユニットなどがある。旋削加工ユニットは、旋削加工が行われる加工ユニットであり、段付き穴加工ユニットは、段付き穴加工(段差のある穴の加工)が行われる加工ユニットである。面加工ユニットは、面加工が行われる加工ユニットであり、R面取り加工ユニットは、R面取り加工が行われる加工ユニットであり、C面取り加工ユニットは、C面取り加工が行われる加工ユニットである。なお、加工形状を定義する形状情報には、加工対象物の表面粗さなどの情報が含まれていてもよい。
【0027】
工具の情報には、工具の種類、工具の形状などが含まれている。なお、工具の情報には工具ホルダの情報が含まれていてもよい。工具ホルダの情報には、工具ホルダの種類、工具ホルダの形状などが含まれている。切削条件の情報は、工作機械が加工を行う際の切削速度、回転数、送り量などである。
【0028】
機械学習装置20は、形状補正事例Fcに含まれている複数の形状補正例に基づいて、製品形状の形状補正に用いられる機械学習モデルである学習モデルMx(図示せず)を生成する。
【0029】
機械学習装置20は、形状補正事例Fcに含まれている複数の形状補正例から、製品形状の情報(製品形状、ワーク原点、プログラム座標系)と、形状補正データである補正方法とを抽出する。以下、製品形状、ワーク原点、プログラム座標系を含んだ製品形状の情報を製品形状情報という場合がある。
【0030】
機械学習装置20は、抽出した製品形状情報と補正方法との対応関係に基づいて、学習モデルMxを生成する。実施の形態では、補正方法(形状補正データ)が、後述する第1のパラメータに対応し、製品形状情報が後述する第2のパラメータに対応している。
【0031】
学習モデルMxは、製品形状情報から補正方法を推論するためのモデルである。学習モデルMxは、製品形状情報が入力されると、製品形状情報に対応する補正方法を推論して出力する。機械学習装置20は、生成した学習モデルMxを用いて製品形状情報から補正方法を推論し、推論した結果である補正方法を加工プログラム生成装置10に送る。
【0032】
対話操作処理部30は、数値制御装置100と作業者との間のインタフェースであるとともに、加工プログラム生成装置10または機械学習装置20と作業者との間のインタフェースでもある。
【0033】
対話操作処理部30は、作業者が指示入力部40を介して入力した指示情報を加工プログラム生成装置10または機械学習装置20に送信する。また、対話操作処理部30は、作業者が指示入力部40を介して入力した指示情報を表示部50に表示させる。なお、
図1では、対話操作処理部30と機械学習装置20との接続線の図示を省略している。
【0034】
指示入力部40は、マウス、キーボードなどの入力機器を用いて構成されている。指示入力部40は、作業者からの指示情報を受け付けて、対話操作処理部30に指示情報を送信する。
【0035】
表示部50は、液晶モニタなどの表示機器である。表示部50は、加工プログラムPM、形状補正事例Fc、CADデータである形状データFd、作業者が指示入力部40を介して入力した指示情報などを表示する。また、表示部50は、数値制御装置100で実行される処理に関する各種の情報を表示する。制御部60は、加工プログラム生成装置10が生成した加工プログラムPMを用いて工作機械を制御する。
【0036】
加工プログラム生成装置10は、形状入力部11と、製品形状記憶部12と、素材形状記憶部13と、形状配置部14と、プログラム座標設定部15と、差分検出部16と、形状補正部17と、加工プログラム生成部18とを有する。
【0037】
形状入力部11は、外部装置から入力される製品形状データおよび素材形状データを形状データFdとして受け付ける。なお、形状入力部11は、製品形状データと素材形状データとを別々に外部装置から受け付けてもよい。
【0038】
製品形状記憶部12は、形状入力部11に入力された形状データFdのうちの製品形状データを記憶する。素材形状記憶部13は、形状入力部11に入力された形状データFdのうちの素材形状データを記憶する。
【0039】
形状配置部14は、製品形状記憶部12が記憶した製品形状データの製品形状と、素材形状記憶部13が記憶した素材形状データの素材形状とを配置する。形状配置部14は、加工後の加工対象物の形状である製品形状が、加工前の加工対象物の形状である素材形状に内包されるように製品形状および素材形状を配置する。形状配置部14は、配置した製品形状の製品形状データを製品形状記憶部12に記憶させ、配置した素材形状の素材形状データを素材形状記憶部13に記憶させる。製品形状を配置した製品形状データには、製品形状の座標(製品形状データに設定された座標)およびプログラム座標系の情報が含まれている。また、素材形状を配置した素材形状データには、素材形状の座標およびプログラム座標系の情報が含まれている。
【0040】
製品形状記憶部12は、配置された製品形状および素材形状の組合せを識別する識別情報(以下、形状識別情報という)と、製品形状データとを対応付けして記憶しておく。素材形状記憶部13は、配置された製品形状および素材形状の形状識別情報と、素材形状データとを対応付けして記憶しておく。
【0041】
形状配置部14は、素材形状および製品形状を、必ずしも素材形状が製品形状を内包する位置に配置しなくてもよい。また、形状配置部14は、製品形状および素材形状の少なくとも1つを、対話操作処理部30を介して、作業者が指示した位置に配置してもよい。
【0042】
プログラム座標設定部15は、形状配置部14によって配置された製品形状および素材形状の何れかの形状から、任意の位置にワーク原点およびプログラム座標系を配置する。プログラム座標設定部15は、製品形状に設定されている位置および方向(第1の方向)と、プログラム座標系において設定されている位置および方向(第2の方向)とが一致するようにワーク原点およびプログラム座標系を設定する。すなわち、プログラム座標設定部15は、製品形状データとプログラム座標系との位置合わせおよび方向合わせを行う。第1の方向(第1の軸)は、第1の方向ベクトルに対応し、第2の方向(第2の軸)は、第2の方向ベクトルに対応している。プログラム座標設定部15は、ワーク原点の座標値およびプログラム座標系の各軸の方向ベクトルを形状識別情報に対応付けして記憶する。
【0043】
なお、プログラム座標設定部15は、作業者が任意の位置に指定したワーク原点およびプログラム座標系を配置してもよい。この場合、プログラム座標設定部15は、作業者が任意の位置に指定したワーク原点の座標値およびプログラム座標系の各軸の方向ベクトルを記憶しておく。
【0044】
また、プログラム座標設定部15は、初期設定された方向(例えば、Z軸方向)を旋削方向に設定し、設定した旋削方向を記憶する。なお、プログラム座標設定部15は、作業者が任意の位置に指定した方向を旋削方向に設定し、設定した旋削方向を記憶してもよい。
【0045】
ワーク原点は、加工プログラムPMを作成するための原点であり、例えば、素材形状の特定位置(中心、角部など)に設定される。プログラム座標系は、ワーク原点を原点とする座標系であり、例えばX軸、Y軸、およびZ軸を有するワールド座標系が設定される。なお、ワーク原点は、面の中心または角部に設定されなくてもよく、作業者が任意の位置に設定してもよい。
【0046】
差分検出部16は、形状配置部14によって配置され製品形状記憶部12で記憶されている製品形状データを製品形状記憶部12から読み出す。また、差分検出部16は、プログラム座標設定部15で記憶されているプログラム座標系をプログラム座標設定部15から読み出す。
【0047】
差分検出部16は、製品形状データとプログラム座標系とに基づいて、製品形状に設定される位置または方向(第1の方向)と、プログラム座標系において設定されている位置または方向(第2の方向)との差分を検出する。差分検出部16は、製品形状データ、プログラム座標系、および検出した差分を形状補正部17に送る。形状補正部17は、製品形状データ、プログラム座標系、および差分に基づいて、製品形状データを補正する。
【0048】
形状補正部17は、製品形状データの補正方法を形状補正データとして記憶しておく。形状補正部17は、形状識別情報と形状補正データとを対応付けして記憶しておく。なお、形状補正データは、形状補正部17以外の他の領域で記憶されてもよい。
【0049】
また、形状補正部17は、補正した製品形状データを製品形状記憶部12に記憶させる。すなわち、形状補正部17は、製品形状記憶部12が記憶している補正前の製品形状データを補正後の製品形状データで上書きする。
【0050】
製品形状記憶部12は、形状識別情報と補正後の製品形状データとを対応付けして記憶しておく。なお、形状補正部17は、補正前の製品形状データと補正後の製品形状データとの両方を製品形状記憶部12に記憶させてもよい。補正後の製品形状データには、製品形状の配置データ、製品形状の寸法などの情報が含まれている。
【0051】
補正後の製品形状と、ワーク原点と、プログラム座標系とを含む情報が製品形状情報である。また、形状補正部17が用いた補正方法が形状補正データである。そして、製品形状情報と形状補正データとの組み合わせが形状補正事例Fcとなる。
【0052】
加工プログラム生成部18は、形状配置部14によって配置され形状補正部17によって補正された製品形状データおよび形状識別情報を製品形状記憶部12から読み出す。また、加工プログラム生成部18は、形状識別情報に基づいて、形状配置部14によって配置された素材形状データを素材形状記憶部13から読み出す。また、加工プログラム生成部18は、形状識別情報に基づいて、プログラム座標系をプログラム座標設定部15から読み出す。
【0053】
加工プログラム生成部18は、形状配置部14によって配置され形状補正部17によって補正された製品形状データと、形状配置部14によって配置された素材形状データと、プログラム座標系とに基づいて、加工プログラムPMを生成する。
【0054】
機械学習装置20は、加工プログラム生成装置10が生成した形状補正事例Fcまたは外部から読み出した形状補正事例Fcを用いて、製品形状情報から補正方法を推論するための学習モデルMxを生成する。また、機械学習装置20は、加工プログラム生成装置10が生成した製品形状情報を学習モデルMxに入力することで補正方法を推論する。
【0055】
以下では、機械学習装置20が、加工プログラム生成装置10が生成した形状補正事例Fcを用いて、製品形状情報から補正方法を推論するための学習モデルMxを生成する場合について説明する。
【0056】
機械学習装置20は、形状補正方法解析部21と、機械学習部22と、学習モデル記憶部23と、推論部24とを有する。形状補正方法解析部21は、形状配置部14によって配置され形状補正部17によって補正された、製品形状記憶部12で記憶されている製品形状データおよび形状識別情報を製品形状記憶部12から読み出す。
【0057】
形状補正方法解析部21は、製品形状記憶部12から読み出した製品形状データと、プログラム座標設定部15で記憶されているプログラム座標系と、形状補正部17で記憶されている形状補正データとから、第1のパラメータおよび第2のパラメータを抽出する。すなわち、形状補正方法解析部21は、形状補正データから第1のパラメータ(製品形状データの補正方法)を抽出し、補正された製品形状、製品形状の配置データ、ワーク原点位置、およびプログラム座標系の各軸の方向ベクトルから第2のパラメータ(製品形状、ワーク原点、およびプログラム座標系)を抽出する。
【0058】
製品形状データの補正方法には、以下の補正方法などがある。
・旋削面(円柱、円錐、円環)の補正方法
・段付き穴面の穴面と段穴面との補正方法
・平面のXY平面との補正方法
・面加工時に壁となる平面および円柱面とZ軸方向との関係の補正方法
・近接するR面取り面(round fillet)同士のR面取り量の補正方法
・近接するC面取り面(chamfer fillet)同士のC面取り量の補正方法
【0059】
第1のパラメータおよび第2のパラメータは、加工プログラム生成装置10で使用されたパラメータである。第1のパラメータは、加工プログラム生成装置10において調整対象となるパラメータである。第2のパラメータは、加工プログラムPMにおいて調整対象外のパラメータであって第1のパラメータの調整に使用されるパラメータである。パラメータの調整処理は、パラメータの値を決定する処理である。
【0060】
第1のパラメータの値は、製品形状記憶部12で記憶された製品形状データの製品形状が、形状補正される際に生成される。第1のパラメータは、例えば、形状補正事例Fcにおける製品形状の補正方法を表すパラメータであり、製品形状の補正に必要なデータである。
【0061】
第2のパラメータは、調整されることのない固定長データである。第2のパラメータは、例えば、製品形状、製品形状の寸法などに基づいて生成されるデータである。第2のパラメータは、例えば、製品形状から抽出される製品の寸法(高さ、横幅、縦幅など)、ワーク原点の位置座標、プログラム座標系の各軸の方向ベクトルである。また、第2のパラメータは、製品形状の3次元形状の画像データ、製品形状の3次元形状のボクセルデータ、製品形状の3次元の格子空間上の内外判定データなどであってもよい。
【0062】
内外判定データは、3次元空間を格子状に分割した格子空間上のデータである。各格子点には、データが割り当てられており、内外データでは、格子空間内に存在するデータ(内データ)と格子空間外に存在するデータ(外データ)との2種類に分類されている。内データは、格子空間内のデータであり、例えば物体の形状または物理量の分布などを表すことができる。一方、外データは、格子空間外のデータであり、例えば物体の外部からの入力や境界条件などを表すことができる。
【0063】
第1のパラメータには、第1のパラメータ毎に、第2のパラメータが対応付けられている。形状補正方法解析部21は、第1のパラメータを、第1のパラメータに対応する第2のパラメータに基づいて調整する。形状補正方法解析部21は、第1のパラメータ毎に、抽出する第2のパラメータを決定し、決定した第2のパラメータを抽出する。形状補正方法解析部21は、抽出した第1のパラメータおよび第2のパラメータを、機械学習部22に入力する。
【0064】
機械学習部22は、抽出された第1のパラメータおよび第2のパラメータを含むデータセットを用いた学習によって、学習モデルMxを生成する。すなわち、機械学習部22は、作業者によって設定される第2のパラメータから第1のパラメータを推論するための学習モデルMxを生成する。実施の形態において、機械学習部22は、例えば、学習モデルMxを生成するための教師あり学習を行う。機械学習部22は、生成した学習モデルMxを学習モデル記憶部23に入力する。
【0065】
機械学習部22が用いる学習アルゴリズムは、どのようなアルゴリズムであってもよい。機械学習部22が用いる学習アルゴリズムの一例としては、ニューラルネットワークなどが挙げられる。ニューラルネットワークは、多層構造のディープラーニングであってもよい。また、機械学習部22が用いる学習アルゴリズムは、遺伝的プログラミング、帰納論理プログラミング、SVM(Support Vector Machine、サポートベクターマシーン)などであってもよい。機械学習は、ニューラルネットワークの重みまたはバイアスといったパラメータを最適化する処理である。
【0066】
学習モデル記憶部23は、機械学習部22の学習結果である学習モデルMxを記憶する。学習モデルMxは、入力される第2のパラメータに対する、最適な第1のパラメータを出力する。すなわち、学習モデルMxは、第2のパラメータから、第2のパラメータに対して最適な第1のパラメータを導出するためのモデルである。
【0067】
推論部24へは、入力データとして、第2のパラメータを含む入力データが入力される。推論部24は、学習モデルMxを使用して、第2のパラメータから第1のパラメータを推論する。推論部24は、学習モデルMxに第2のパラメータを入力し、学習モデルMxから推論結果である第1のパラメータを出力させる。推論部24は、推論結果を形状補正部17に送る。すなわち、推論部24は、形状補正部17から送られてくる第2のパラメータに対して、推論結果である第1のパラメータを、形状補正部17に返す。推論部24は、推論結果として、第1のパラメータを形状補正部17に出力する。
【0068】
数値制御装置100は、機械学習装置20を用いて第2のパラメータから第1のパラメータ(補正方法)を決定してもよいし、機械学習装置20を用いることなく第2のパラメータから第1のパラメータを決定してもよい。数値制御装置100は、機械学習装置20を用いることなく第1のパラメータを決定する場合、加工する領域(面)の形状などに基づいて第1のパラメータである補正方法を決定する。
【0069】
つぎに、数値制御装置100の動作について説明する。数値制御装置100が実行する処理は、加工プログラム生成装置10が実行する加工プログラム生成処理と、機械学習装置20が実行する学習モデル生成処理と、機械学習装置20が実行する推論処理とを含んでいる。
【0070】
図2は、実施の形態にかかる加工プログラム生成装置が実行する加工プログラム生成処理の処理手順を示すフローチャートである。加工プログラム生成装置10は、機械学習装置20の学習結果である学習モデルMxを用いて推論した推論結果を使用して、製品形状を形状補正し、形状補正した製品形状に対して加工プログラムPMを生成する。
【0071】
形状入力部11は、外部装置または数値制御装置100内の図示しない記憶領域から、製品形状データを読み込む(ステップS1)。形状入力部11は、製品形状データを製品形状記憶部12に記憶させる。
【0072】
形状入力部11は、外部装置または数値制御装置100内の図示しない記憶領域から、素材形状データを読み込む(ステップS2)。形状入力部11は、素材形状データを素材形状記憶部13に記憶させる。なお、加工プログラム生成装置10は、製品形状記憶部12が記憶した製品形状データに基づいて素材形状を生成し、生成した素材形状データを素材形状記憶部13に記憶させてもよい。加工プログラム生成装置10は、ステップS1の処理と、ステップS2の処理とを何れの順番で実行してもよい。
【0073】
図3は、実施の形態にかかる加工プログラム生成装置の製品形状記憶部が記憶する製品形状データに対応する製品形状の一例を示す図である。製品形状記憶部12が記憶する製品形状データ101には、製品形状SA1の3面図および斜視
図Pv1が含まれている。製品形状SA1の3面図は、製品形状の正面
図Fv1、左側面
図Ls1、および平面
図Gp1である。製品形状SA1の3面図および斜視
図Pv1には、プログラム座標系AX1が設定されている。
【0074】
図4は、実施の形態にかかる加工プログラム生成装置の素材形状記憶部が記憶する素材形状データに対応する素材形状の一例を示す図である。素材形状記憶部13が記憶する素材形状データ102には、素材形状SB2の3面図および斜視
図Pv2が含まれている。素材形状SB2の3面図は、素材形状SB2の正面
図Fv2、左側面
図Ls2、および平面
図Gp2である。素材形状SB2の3面図および斜視
図Pv2には、プログラム座標系AX2が設定されている。
図4では、プログラム座標系AX2がプログラム座標系AX1と等しい場合を示している。
【0075】
形状配置部14は、製品形状および素材形状の各形状を配置する(ステップS3)。すなわち、形状配置部14は、製品形状および素材形状の配置データを生成する。換言すると、形状配置部14は、製品形状の配置位置、および素材形状の配置位置を示す配置データを生成する。配置データは、製品形状および素材形状を3次元座標上の何れの位置に、何れの向きで配置するかを表したデータである。配置データが生成された時点では、製品形状および素材形状は、加工のしやすい位置に配置されているとは限らない。
【0076】
そこで、形状配置部14は、生成した配置データに基づいて、製品形状データと素材形状データとを再配置する。すなわち、形状配置部14は、製品形状および素材形状を、配置データに沿って、回転および移動させて再配置する。形状配置部14は、例えば、製品形状データに含まれる加工形状(加工領域)の軸(第1の軸)の方向と、プログラム座標系において設定されている軸(第2の軸)の方向とが一致するように製品形状および素材形状を再配置する。なお、製品形状データおよび素材形状データの少なくとも1つは、作業者が対話操作処理部30と指示入力部40と表示部50とを用いて任意の位置に配置してもよい。
【0077】
プログラム座標設定部15は、形状配置部14によって配置された製品形状および素材形状の何れかの形状から、任意の位置にワーク原点の座標値およびプログラム座標系を配置する(ステップS4)。プログラム座標設定部15は、例えば、製品形状または素材形状の中心軸上の位置をワーク原点に設定する。また、プログラム座標設定部15は、例えば、切削軸の方向が、プログラム座標系の軸方向と一致するように、プログラム座標系を配置する。プログラム座標設定部15は、ワーク原点の座標値およびプログラム座標系の各軸の方向ベクトルを記憶する。
【0078】
ワーク原点およびプログラム座標系は、作業者が対話操作処理部30と指示入力部40と表示部50とを用いて任意の位置に任意の方向で配置してもよい。なお、プログラム座標系をワールド座標系とした場合、加工プログラム生成装置10は、ステップS4の処理を省略することも可能である。すなわち、プログラム座標系がワールド座標系である場合、加工プログラム生成装置10は、ワーク原点の座標値およびプログラム座標系を設定する必要はない。
【0079】
図5は、実施の形態にかかる加工プログラム生成装置の形状配置部が配置した製品形状および素材形状の一例を示す図である。形状配置部14は、製品形状および素材形状を配置することで、製品形状と素材形状とを合成する。
【0080】
形状配置部14が製品形状および素材形状を配置することで生成された製品形状および素材形状の配置データ103には、製品形状SA1および素材形状SB2が配置された配置形状SC3の3面図および斜視
図Pv3が含まれている。配置形状SC3の3面図は、配置形状SC3の正面
図Fv3、左側面
図Ls3、および平面
図Gp3である。配置形状SC3には、プログラム座標系AX3が設定されている。
図5では、プログラム座標系AX3がプログラム座標系AX1,AX2と等しい場合を示している。
【0081】
製品は、素材が切削されることで形成される。したがって、
図5では、製品形状SA1が素材形状SB2の内側に配置されている場合を示している。
【0082】
形状補正部17は、形状配置部14によって配置された製品形状の全形状データを解析し、ワーク原点およびプログラム座標系に基づいて製品形状を補正する(ステップS5)。加工プログラム生成部18は、加工される領域(形状)を示す加工形状を展開する。具体的には、加工プログラム生成部18は、製品形状記憶部12が記憶した、形状補正部17によって形状を補正された製品形状データと、素材形状記憶部13が記憶した素材形状データとから加工形状データを生成する。
【0083】
加工形状データは、製品形状データと素材形状データとの差分の形状に対応している。すなわち、加工形状データは、素材に対して加工される形状(領域)のデータである。加工プログラム生成部18は、加工形状データから、旋削加工データ、面加工データ、面取り加工データ、および穴加工データを生成する。
【0084】
旋削加工データは、素材を回転させる旋削加工の領域を示すデータである。面加工データは、面加工される領域を示すデータであり、面取り加工データは、面取り加工される領域を示すデータであり、穴加工データは、穴加工される領域を示すデータである。面加工、面取り加工、および穴加工は、工具を回転させる加工である。
【0085】
つぎに、加工プログラム生成部18は、展開した加工形状に対して、加工ユニットを割り当てる。すなわち、加工プログラム生成部18は、生成した加工形状に対して、加工方法、工具、および切削条件を決定する。加工プログラム生成部18は、加工方法、工具、および切削条件の情報を加工形状に割り当てることで加工ユニット情報を生成する。そして、加工プログラム生成部18は、生成した加工ユニット情報、加工方法、工具、切削条件、加工形状、および干渉チェックの結果に基づいて、加工プログラムPMを生成する(ステップS6)。干渉チェックは、工具と非加工領域とが干渉しないかを確認する処理である。
【0086】
図6は、実施の形態にかかる加工プログラム生成装置の加工プログラム生成部が生成する加工形状データの一例を示す模式図である。
図6の加工形状データ201では、素材形状データと、旋削加工形状データと、面加工形状データと、穴加工形状データとを示している。
【0087】
図6の左側に示す加工形状データの図では、素材形状Sx1と、正面側工程の旋削加工形状データで示される形状例である旋削穴加工形状SH1と、旋削加工形状SH2,SH3と、穴加工形状データで示される形状例である穴加工形状SH4とを模式的に斜視図で示している。
【0088】
図6の右側に示す加工形状データの図では、素材形状Sx1と、背面側工程の旋削加工形状データで示される形状例である旋削加工形状SH5~SH7と、面加工形状SH8~SH15と、穴加工形状データで示される形状例である穴加工形状SH16とを模式的に斜視図で示している。
【0089】
なお、穴加工形状のSH4は4つの穴加工形状で構成される穴加工形状であり、それぞれ同じ穴加工が行われる。また、穴加工形状のSH16は、2つの穴加工形状で構成される穴加工形状であり、それぞれ同じ穴加工が行われる。
【0090】
図7は、実施の形態にかかる加工プログラム生成装置の加工プログラム生成部が生成する加工プログラムの一例を示す図である。
図7では加工プログラムPMの加工工程の一覧を示している。ここでは、加工プログラムPMの正面側加工工程HD1に、Uno1.~Uno4.が含まれている場合を示している。また、背面側加工工程HD2に、Uno.5.~Uno.16が含まれている場合を示している。
【0091】
「Uno1.旋削ドリル…SH1」は、工作機械が旋削穴加工形状SH1を旋削ドリルユニットとして加工することを示している。「Uno2.端面…SH2」は、工作機械が旋削加工形状SH2を旋削端面ユニットとして加工することを示している。「Uno3.棒材…SH3」は、工作機械が旋削加工形状SH3を旋削棒材ユニットとして加工することを示している。「Uno4.C軸ドリル…SH4」は、工作機械が4つの穴加工形状SH4をC軸ドリルユニットとして加工することを示している。なお、Uno1.~Uno4.では、工作機械が第1主軸側で素材を保持して正面側から加工する。第1主軸は、互いに反対方向の軸方向を向く主軸のうちの一方の主軸である。第1主軸および第2主軸は、
図6に示した素材形状Sx1の中心軸である。
【0092】
「Uno5.端面…SH5」は、工作機械が旋削加工形状SH5を旋削端面ユニットとして加工することを示している。「Uno6.棒材…SH6」および「Uno7.棒材…SH7」は、工作機械が旋削加工形状SH6およびSH7を旋削棒材ユニットとして加工することを示している。「Uno8.フェイスミル…SH8」、「Uno9.フェイスミル…SH9」、「Uno10.フェイスミル…SH10」、および「Uno11.フェイスミル…SH11」は、工作機械が面加工形状SH8,SH9,SH10,SH11をフェイスミルユニットとして加工することを示している。「Uno12.ポケットミル…SH12」、「Uno13.ポケットミル…SH13」、「Uno14.ポケットミル…SH14」、および「Uno15.ポケットミル…SH15」は、工作機械が面加工形状SH12,SH13,SH14,SH15をポケットミルユニットとして加工することを示している。「Uno16.C軸ドリル…SH16」は、工作機械が2つの穴加工形状SH16をC軸ドリルユニットとして加工することを示している。
【0093】
なお、Uno5~Uno16では、工作機械が第1主軸で加工した素材を、第2主軸で保持し直して背面側から加工する。第1主軸および第2主軸は、ともに旋削主軸であり、それぞれメイン主軸、サブ主軸と呼ばれ、それぞれが対向する位置に配置されている。第2主軸を持たない工作機械の場合、工作機械が正面側の加工をした後、第1主軸から加工途中の素材が取り外され、加工した素材を逆転させて、第1主軸で再把持させ、工作機械が背面側を加工する。
【0094】
旋削ドリルユニットは、素材の中心に旋削ドリルを使って穴加工する加工ユニットである。旋削端面ユニットは、素材端面(正面または背面)の突出部を削り落とし加工する加工ユニットである。旋削棒材ユニットは、旋削工具で丸棒素材の外周、内周、正面または背面を旋削加工する加工ユニットである。フェイスミルユニットは、フェイスミル工具を使ってワーク(加工対象物)の表面を平らに加工する加工ユニットである。フェイスミルユニットでは、加工形状の範囲をはみ出すように加工される。ポケットミルユニットは、エンドミル工具を使ってポケット形状を加工する加工ユニットである。ポケットミルユニットでは、加工形状をはみ出さないように加工される。C軸ドリルは、ドリル工具を使って穴加工する加工ユニットであり、位置決めの際、C軸をクランプすることでC軸加工する。C軸は、Z軸の周りを回転する軸である。
【0095】
図8は、実施の形態にかかる加工プログラム生成装置の形状補正部が実行する第1例の形状補正処理の処理手順を示すフローチャートである。
図8の処理は、
図2のステップS5の処理に対応する。形状補正部17が実行する第1例の形状補正処理は、円柱面、円錐面、および円環面を補正する処理である。
【0096】
プログラム座標設定部15は、円柱面、円錐面、または円環面の中心軸の方向(第1の方向)および位置座標と、旋削軸の方向(第2の方向)および位置座標とが一致するようにワーク原点、プログラム座標系、および旋削軸の方向を設定する。ここでの第1の方向および第2の方向は、旋削軸の方向である。すなわち、第1の方向および第2の方向は、ベクトル(0,0,1)の方向またはベクトル(0,0,-1)の方向である。
【0097】
差分検出部16は、形状配置部14が配置し製品形状記憶部12が記憶した製品形状の全ての面を取得する(ステップS11)。差分検出部16は、取得した面の幾何情報を参照して、取得した面のうち、円柱面、円錐面、および円環面を抽出する(ステップS12)。円柱面は、円柱状の穴形状の内側の壁面であり、円錐面は、円錐状の穴形状の内側の壁面である。円環面は、円環状の穴形状の内側の壁面である。
【0098】
差分検出部16は、形状補正部17は、抽出した面の中心軸とプログラム座標系で設定されている旋削軸との差分を計算する(ステップS13)。すなわち、差分検出部16は、抽出した円柱面、円錐面、および円環面の中心軸の位置座標および方向ベクトルと、プログラム座標設定部15が記憶した旋削軸の位置座標および方向ベクトルとを比較し、位置座標の差分量および方向ベクトルの差分量を求める。中心軸の位置座標は、中心軸上の特定点の座標であり、旋削軸の位置座標は、旋削軸上の特定点の座標である。
【0099】
形状補正部17は、位置座標の差分量および方向ベクトルの差分量に基づいて、製品形状に対する補正の要否を判定する(ステップS14)。形状補正部17は、位置座標の差分量が特定範囲内で且つ方向ベクトルの差分量が特定範囲内である場合に、補正が必要であると判定する。すなわち、形状補正部17は、位置座標の差分量および方向ベクトルの差分量が幾何許容誤差量(幾何精度)以上であり、作業者によって設定された設定誤差量未満である場合に補正が必要であると判定する。設定誤差量は、固定値であってもよいし、作業者によって任意に設定されてもよい。設定誤差量が作業者によって設定される場合、設定誤差量以上の差分は、作業者が意図的に設定した差分であり、このような差分がある製品形状は補正対象としない。すなわち、設計的に設定されている差分は設計通りの製品形状を実現するために必要な差分であり、この差分は補正対象とならないような判定が実行される。
【0100】
形状補正部17は、位置座標の差分量および方向ベクトルの差分量の一方が幾何許容誤差量未満であり、他方が幾何許容誤差量以上且つ設定誤差量未満の場合に、補正が必要であると判定する。
【0101】
また、形状補正部17は、位置座標の差分量および方向ベクトルの差分量の何れかが、設定誤差量以上の場合は、補正が不要であると判定する。また、形状補正部17は、位置座標の差分量および方向ベクトルの差分量の両方が、幾何許容誤差量未満の場合は、補正が不要であると判定する。
【0102】
すなわち、形状補正部17は、位置座標の差分量および方向ベクトルの差分量の少なくとも一方が幾何許容誤差量以上で、且つ位置座標の差分量および方向ベクトルの両方が設定誤差量未満の場合に、補正が必要であると判定する。
【0103】
幾何許容誤差量は、幾何学的に許容される誤差量であり、幾何許容誤差量以上の誤差は幾何学的に許容されない。幾何許容誤差量は、システムにおける線形精度および角精度に対応している。位置座標の差分量が線形精度未満であれば、位置座標の差分量である距離(誤差量)はゼロとして扱われ、距離が線形精度より小さな差分しかなければ同じ位置として扱われる。
【0104】
また、方向ベクトルの差分量が角精度未満であれば、方向ベクトルの差分量である角度はゼロとして扱われ、角度が角精度より小さな差分しかなければ同じ角度の同じ方向ベクトルとして扱われる。
【0105】
また、作業者が設定する設定誤差量は、幾何許容誤差量とは別に設定される線形精度および角精度のことである。作業者は、精度の悪い形状データを考慮して、幾何許容誤差量以上の値を設定誤差量に設定する。設定誤差量は、作業者が想定した誤差量であり、作業者が想定した設定誤差量以上の誤差は許容されるが、設定誤差量未満の誤差は許容されない。すなわち、作業者が意図した誤差以上の誤差は許容されるが、作業者が意図していない誤差は許容されない。作業者が想定していない誤差は、加工プログラムを作る側にとって都合の悪い誤差であり、形状補正部17は、この誤差を設定誤差量未満の誤差に減らすために製品形状を補正する。すなわち、形状補正部17は、誤差(差分)が幾何学的に許容される誤差量である幾何許容誤差量以上の特定範囲内でない場合に誤差が特定範囲内となるように製品形状を補正する。このように、形状補正部17は、作業者が想定した特定範囲の誤差のみを補正対象とする。
【0106】
形状補正部17は、補正が必要であると判定すると(ステップS14、必要)、補正が必要であると判定した面を補正する(ステップS15)。円柱面、円錐面、または円環面の中心軸の位置座標に補正が必要な場合、形状補正部17は、旋削軸の位置座標と一致するように中心軸の位置座標を補正する。また、円柱面、円錐面、または円環面の中心軸の方向ベクトルに補正が必要な場合、形状補正部17は、中心軸の方向ベクトルが旋削軸の方向ベクトルと一致するように中心軸の方向ベクトルを補正する。形状補正部17は、ステップS15で補正した面と隣接する面との交線および交点を計算し直して補正する(ステップS16)。形状補正部17は、補正が不要であると判定すると(ステップS14、不要)、補正を実行しない。
【0107】
図9は、実施の形態にかかる加工プログラム生成装置の形状補正部が実行する第1例の形状補正処理を説明するための図である。ここでは、製品形状81に形成される円錐面について説明する。
【0108】
プログラム座標設定部15は、製品形状81に含まれる面SF4の中心軸とプログラム座標系で設定されている旋削軸の方向であるベクトル(0,0,1)またはベクトル(0,0,-1)とが一致するようにワーク原点およびプログラム座標系、および旋削軸の方向を設定する。この場合において、例えば、製品形状81に形成される円錐面の面SF4の幾何情報が、以下の情報を有しているとする。この幾何情報は、例えば、フォーマット変換時に、何等かの要因で書き換えられてずれが生じた結果の情報である。
【0109】
面SF4:円錐面
・中心軸の位置座標(0.00001,0,0)
・中心軸の方向ベクトル(0.0001,0.0001,0.99999999)
・半径=0.025
・半頂角=2.86度
【0110】
差分検出部16は、面SF4の中心軸と旋削軸との、位置座標および方向ベクトルの差分を算出する。
【0111】
比較対象の旋削軸が、位置座標(0,0,0)、方向ベクトル(0,0,1)である場合、旋削軸の位置座標と面SF4の中心軸の位置座標との差分は0.00001となり、旋削軸の方向ベクトルと面SF4の中心軸の方向ベクトルとの差分は0.000141となる。
【0112】
なお、旋削軸の方向ベクトルおよび面SF4の中心軸の方向ベクトルは、何れも単位ベクトルである。したがって、実施の形態では、両者の方向ベクトルの差分を、方向ベクトルの差分の大きさとしているが、方向ベクトルの差分は、旋削軸の方向ベクトルと面SF4の中心軸の方向ベクトルとがなす角度であってもよい。
【0113】
位置座標の幾何許容誤差量が1.0e-8であり、方向ベクトルの幾何許容誤差量が1.0e-10であり、作業者が設定した位置座標の設定誤差量が1.0e-3であり、方向ベクトルの設定誤差量が1.0e-6である場合、形状補正部17は、面SF4の形状補正を実行する。
【0114】
形状補正部17は、円錐面の面SF4の幾何情報を以下のように補正する。
・中心軸の位置座標(0,0,0)
・中心軸の方向ベクトル(0,0,1)
【0115】
すなわち、形状補正部17は、面SF4の中心軸の位置座標および方向ベクトルが、旋削軸の位置座標(0,0,0)および方向ベクトル(0,0,1)に一致するように、面SF4の幾何情報を補正する。また、形状補正部17は、補正した面SF4に合わせて、面SF4と面SF4に隣接する面との交線および交点を再計算する。
【0116】
図10は、実施の形態にかかる加工プログラム生成装置の形状補正部が実行する第2例の形状補正処理の処理手順を示すフローチャートである。
図10の処理は、
図2のステップS5の処理に対応する。形状補正部17が実行する第2例の形状補正処理は、段付き穴において隣接する円柱面、円錐面、および円環面を補正する処理である。
【0117】
形状配置部14は、製品形状に含まれる段差のある穴である段付き穴の各中心軸の方向が一致するように製品形状を配置する。プログラム座標設定部15は、製品形状に含まれる段差のある穴である段付き穴の各中心軸の方向(第1の方向)および位置座標と、旋削軸の方向(第2の方向)および位置座標とが一致するようにワーク原点、プログラム座標系、および旋削軸の方向を設定する。すなわち、プログラム座標設定部15は、段付き穴における円柱面、円錐面、および円環面の中心軸の方向と、旋削軸の方向とが一致するようにワーク原点、プログラム座標系、および旋削軸の方向を設定する。ここでの第1の方向および第2の方向は、旋削軸の方向である。すなわち、第1の方向および第2の方向は、ベクトル(0,0,1)の方向またはベクトル(0,0,-1)の方向である。
【0118】
差分検出部16は、形状配置部14が配置し製品形状記憶部12が記憶した製品形状の全ての面を取得する(ステップS21)。差分検出部16は、取得した面の幾何情報を参照して、取得した面のうち、穴形状(内側が空)の円柱面、円錐面、および円環面を抽出する(ステップS22)。
【0119】
差分検出部16は、取得した面の幾何情報を参照して、取得した面のうち、隣接する面を選択する。すなわち、形状補正部17は、抽出した円柱面、円錐面、および円環面のうち、互いに隣接する面(穴面)の組合せを選択する(ステップS23)。
【0120】
差分検出部16は、隣接する面同士(穴面同士)の中心軸の差分(軸差分)を計算する(ステップS24)。すなわち、差分検出部16は、選択した隣接する円柱面、円錐面、および円環面の中心軸の位置座標および方向ベクトルを取得し、取得した隣接する面同士の位置座標の差分量および方向ベクトルの差分量を求める。このように、差分検出部16は、隣接する面同士で中心軸がどれだけずれているかを示す差分量を求める。
【0121】
形状補正部17は、位置座標の差分量および方向ベクトルの差分量に基づいて、製品形状に対する補正の要否を判定する(ステップS25)。形状補正部17は、第1例の形状補正処理での判定方法(ステップS14での判定方法)と同様の判定方法によって補正の要否を判定する。
【0122】
形状補正部17は、補正が必要であると判定すると(ステップS25、必要)、補正が必要であると判定した面を補正する(ステップS26)。円柱面、円錐面、または円環面の中心軸の位置座標に補正が必要な場合、形状補正部17は、隣接する面の一方の面の中心軸の位置座標と他方の面の中心軸の位置座標とが一致するように、一方の面の中心軸の位置座標を補正する。
【0123】
また、円柱面、円錐面、または円環面の中心軸の方向ベクトルに補正が必要な場合、形状補正部17は、隣接する面の一方の面の中心軸の方向ベクトルと他方の面の中心軸の方向ベクトルとが一致するように、一方の面の中心軸の方向ベクトルを補正する。換言すると、形状補正部17は、隣接する面の両方の中心軸の位置座標および方向ベクトルが一致するように、隣接する面の何れか一方の中心軸の位置座標および方向ベクトルを補正する。
【0124】
なお、形状補正部17は、隣接する面の両方の中心軸の位置座標および方向ベクトルが一致するように、隣接する面の両方の中心軸の位置座標および方向ベクトルを補正してもよい。形状補正部17は、ステップS26で補正した面と隣接する面との交線および交点を計算し直して補正する(ステップS27)。形状補正部17は、補正が不要であると判定すると(ステップS25、不要)、補正を実行しない。
【0125】
図11は、実施の形態にかかる加工プログラム生成装置の形状補正部が実行する第2例の形状補正処理を説明するための図である。ここでは、製品形状82に形成される段付き穴について説明する。例えば、製品形状82に形成される段付き穴は、円錐面の面SF5、円柱面の面SF6、および円柱面の面SF7を含んでいる。
【0126】
形状配置部14は、製品形状82に含まれる面SF5~SF7の中心軸が一致するように製品形状82を配置する。プログラム座標設定部15は、面SF5~SF7の中心軸と、旋削軸の方向とが一致するようにワーク原点、プログラム座標系、および旋削軸の方向を設定する。この場合において、円錐面の面SF5、円柱面の面SF6、および円柱面の面SF7の幾何情報が、以下の情報を有しているとする。この幾何情報は、例えば、フォーマット変換時に、何等かの要因で書き換えられてずれが生じた結果の情報である。
【0127】
面SF5:円錐面
・中心軸の位置座標(0,0,0.029)
・中心軸の方向ベクトル(0,0,1)
・半径=0.0075
・半頂角=45度
【0128】
面SF6:円柱面
・中心軸の位置座標(0,0,0.03)
・中心軸の方向ベクトル(0,0,1)
・半径=0.0075
【0129】
面SF7:円柱面
・中心軸の位置座標(0.00001,0.0001,0.03)
・中心軸の方向ベクトル(0.0001,0.0001,0.99999999)
・半径=0.005
【0130】
差分検出部16は、面SF5~SF7の位置座標および方向ベクトルの差分を算出する。すなわち、差分検出部16は、面SF5に隣接する面SF6の中心軸と面SF5の中心軸との差分を算出し、面SF6に隣接する面SF7の中心軸と面SF6の中心軸との差分を算出する。
【0131】
円錐面の面SF5と円柱面の面SF6との位置座標の差分は0.001であり、中心軸の方向ベクトルの差分は0である。また、円柱面の面SF6と円柱面の面SF7の位置座標の差分は0であり、中心軸の方向ベクトルの差分は、0.000141である。
【0132】
位置座標の幾何許容誤差量が1.0e-8であり、方向ベクトルの幾何許容誤差量が1.0e-10であり、作業者が設定した位置座標の設定誤差量が1.0e-3であり、方向ベクトルの設定誤差量が1.0e-6である場合、形状補正部17は、面SF7の形状補正を実行する。
【0133】
形状補正部17は、円柱面の面SF7の幾何情報を以下のように補正する。
・中心軸の位置座標(0,0,0.03)
・中心軸の方向ベクトル(0,0,1)
【0134】
すなわち、形状補正部17は、面SF7の中心軸の位置座標および方向ベクトルが、面SF6の中心軸の位置座標(0,0,0.03)および方向ベクトル(0,0,1)に一致するように、面SF7の幾何情報を補正する。また、形状補正部17は、補正した面SF7に合わせて、面SF7と面SF7に隣接する面との交線および交点を再計算する。また、形状補正部17は、円柱面の面SF5,SF6の幾何情報を補正しない。
【0135】
なお、形状補正部17は、面SF7の中心軸の位置座標および方向ベクトルが、面SF5の中心軸の位置座標(0,0,0.029)および方向ベクトル(0,0,1)に一致するように、面SF7の幾何情報を補正してもよい。
【0136】
また、形状補正部17は、面SF5,SF6において、位置座標の差分量および方向ベクトルの差分量の両方が幾何許容誤差量以上で、且つ位置座標の差分量および方向ベクトルの少なくとも一方が設定誤差量未満の場合には、面SF5,SF6の何れかの補正が必要であると判定する。
【0137】
形状補正部17は、面SF5~SF7のうちの2つを補正する場合、面SF5,SF7の中心軸の位置座標および方向ベクトルを、面SF5,SF7に隣接する面SF6の中心軸の位置座標および方向ベクトルに一致するように、面SF5,SF7の幾何情報を補正する。これにより、形状補正部17は、補正量を抑制することができる。
【0138】
図12は、実施の形態にかかる加工プログラム生成装置の形状補正部が実行する第3例の形状補正処理の処理手順を示すフローチャートである。
図12の処理は、
図2のステップS5の処理に対応する。形状補正部17が実行する第3例の形状補正処理は、旋削方向に垂直な平面を補正する処理である。第3例の形状補正処理では、例えば、製品形状に含まれる平面の法線ベクトルが、ベクトル(0,0,1)の近傍またはベクトル(0,0,-1)の近傍である平面を補正する。
【0139】
プログラム座標設定部15は、製品形状に含まれる平面の法線ベクトルの方向(第1の方向)および位置座標と、特定方向(第2の方向)および位置座標とが一致するようにワーク原点、プログラム座標系、および旋削軸の方向を設定する。ここでの第1の方向および第2の方向は、旋削軸の方向である。すなわち、第1の方向および第2の方向は、ベクトル(0,0,1)の方向またはベクトル(0,0,-1)の方向である。
【0140】
差分検出部16は、形状配置部14が配置し製品形状記憶部12が記憶した製品形状の全ての面を取得する(ステップS31)。差分検出部16は、取得した面の幾何情報を参照して、取得した面のうち、平面を抽出する(ステップS32)。
【0141】
差分検出部16は、取得した面の幾何情報を参照して、抽出した平面のうち、法線ベクトルがベクトル(0,0,1)の近傍またはベクトル(0,0,-1)の近傍の平面を選択する(ステップS33)。具体的には、差分検出部16は、取得した平面の法線ベクトルと、ベクトル(0,0,1)またはベクトル(0,0,-1)との差分が特定範囲内の平面を選択する。
【0142】
差分検出部16は、選択した平面の法線ベクトルと、ベクトル(0,0,1)またはベクトル(0,0,-1)との差分を計算する(ステップS34)。差分検出部16は、選択した平面の法線ベクトルと、ベクトル(0,0,1)またはベクトル(0,0,-1)との差分量として、ベクトルの大きさの差分を計算する。このように、差分検出部16は、選択した平面の法線ベクトルが、ベクトル(0,0,1)またはベクトル(0,0,-1)に対してどれだけずれているかを示す差分量を求める。
【0143】
形状補正部17は、選択した平面の法線ベクトルと、ベクトル(0,0,1)またはベクトル(0,0,-1)との差分量に基づいて、製品形状に対する補正の要否を判定する(ステップS35)。形状補正部17は、第1例の形状補正処理での判定方法(ステップS14での判定方法)と同様の判定方法によって補正の要否を判定する。
【0144】
形状補正部17は、補正が必要であると判定すると(ステップS35、必要)、補正が必要であると判定した平面を補正する(ステップS36)。平面に補正が必要な場合、形状補正部17は、平面の法線ベクトルがベクトル(0,0,1)またはベクトル(0,0,-1)と一致するように平面を補正する。形状補正部17は、ステップS36で補正した面と隣接する面との交線および交点を計算し直して補正する(ステップS37)。形状補正部17は、補正が不要であると判定すると(ステップS35、不要)、補正を実行しない。
【0145】
図13は、実施の形態にかかる加工プログラム生成装置の形状補正部が実行する第3例の形状補正処理を説明するための図である。ここでは、製品形状83に形成されるポケットの平面について説明する。例えば、製品形状83に形成されるポケットは、平面の面SF8,SF9,SF11,SF13,SF15、円柱面の一部(以下、円柱部分面という)の面である面SF10,SF12,SF14,SF16を含んでいる。面SF8は、ポケット底面の平面であり、面SF9,SF11,SF13,SF15は、ポケット側面の平面であり、面SF10,SF12,SF14,SF16は、ポケット側面の角部の円柱部分面である。
図13では、面SF8を補正する場合について説明する。
【0146】
プログラム座標設定部15は、製品形状83に含まれる面SF8の法線ベクトルの方向と、旋削軸の方向であるベクトル(0,0,1)またはベクトル(0,0,-1)とが一致するようにワーク原点、プログラム座標系、および旋削軸の方向を設定する。この場合において、面SF8の幾何情報が、以下の情報を有しているとする。この幾何情報は、例えば、フォーマット変換時に、何等かの要因で書き換えられてずれが生じた結果の情報である。
【0147】
面SF8:平面
・位置座標(0,0,0.02)
・法線ベクトル(0.0001,0.0001,0.99999999)
【0148】
差分検出部16は、面SF8の中心軸とプログラム座標系で設定されているZ軸方向ベクトルとの差分を算出する。Z軸方向ベクトルが、
図12で説明したベクトル(0,0,1)またはベクトル(0,0,-1)である。
【0149】
面SF8の幾何情報が上述の情報である場合、比較対象のベクトルであるZ軸方向ベクトル(0,0,1)と面SF8の法線ベクトルとの差分は0.000141となる。方向ベクトルの幾何許容誤差量が1.0e-10であり、作業者が設定した方向ベクトルの設定誤差量が1.0e-6である場合、形状補正部17は、面SF8の形状補正を実行する。
【0150】
形状補正部17は、平面の面SF8の幾何情報を以下のように補正する。
・法線ベクトル(0,0,1)
【0151】
すなわち、形状補正部17は、面SF8の法線ベクトルが、XY平面の法線ベクトル(0,0,1)に一致するように、面SF8の幾何情報を補正する。また、形状補正部17は、補正した面SF8に合わせて、面SF8と面SF8に隣接する面との交線および交点を再計算する。
【0152】
図14は、実施の形態にかかる加工プログラム生成装置の形状補正部が実行する第4例の形状補正処理の処理手順を示すフローチャートである。
図14の処理は、
図2のステップS5の処理に対応する。形状補正部17が実行する第4例の形状補正処理は、製品形状に含まれる面の法線ベクトルとXY平面の法線ベクトル(0,0,1)とがなす角度が90度近傍の平面を補正する処理である。
【0153】
プログラム座標設定部15は、製品形状に含まれる面の法線ベクトルの方向(第1の方向)および位置座標と、プログラム座標系で設定されている旋削軸の方向に垂直な特定方向(第2の方向)および位置座標とが一致するようにワーク原点、プログラム座標系、および旋削軸の方向を設定する。ここでの第1の方向および第2の方向は、Y軸方向である。すなわち、第1の方向および第2の方向は、ベクトル(0,1,0)の方向またはベクトル(0,-1,0)の方向である。また、旋削軸の方向は、Z軸方向である。
【0154】
差分検出部16は、形状配置部14が配置し製品形状記憶部12が記憶した製品形状の全ての面を取得する(ステップS41)。差分検出部16は、取得した面の幾何情報を参照して、取得した面のうち、平面を抽出する(ステップS42)。
【0155】
差分検出部16は、取得した面の幾何情報を参照して、抽出した平面のうち、平面の法線ベクトルがZ軸方向ベクトルであるベクトル(0,0,1)の近傍に垂直な平面を選択する(ステップS43)。具体的には、差分検出部16は、取得した平面の法線ベクトルと、ベクトル(0,0,1)に垂直なベクトルとの差分が特定範囲内の平面を選択する。ベクトル(0,0,1)の近傍に垂直な平面は、XY平面であり、ベクトル(0,0,1)に垂直なベクトルはY軸方向ベクトルまたはX軸方向ベクトルである。ここでの差分検出部16は、
図13に示した平面の面SF9,SF11,SF13,SF15を選択する。
【0156】
差分検出部16は、選択した平面の法線ベクトルと、ベクトル(0,0,1)とがなす角度と、90度との差分を計算する(ステップS44)。このように、差分検出部16は、選択した平面の法線ベクトルとXY平面の法線ベクトル(0,0,1)とがなす角度が直角からどれだけずれているかを示す差分量を求める。
【0157】
形状補正部17は、選択した平面の法線ベクトルとベクトル(0,0,1)とがなす角度と、90度との差分量に基づいて、製品形状に対する補正の要否を判定する(ステップS45)。形状補正部17は、第1例の形状補正処理での判定方法(ステップS14での判定方法)と同様の判定方法によって補正の要否を判定する。
【0158】
形状補正部17は、補正が必要であると判定すると(ステップS45、必要)、補正が必要であると判定した平面を補正する(ステップS46)。平面に補正が必要な場合、形状補正部17は、平面の法線ベクトルとベクトル(0,0,1)とがなす角度が90度となるように平面の法線ベクトルを補正する。形状補正部17は、ステップS46で補正した面と隣接する面との交線および交点を計算し直して補正する(ステップS47)。形状補正部17は、補正が不要であると判定すると(ステップS45、不要)、補正を実行しない。
【0159】
ここで、
図13を用いて形状補正部17が実行する第4例の形状補正処理について説明する。ここでは、形状補正部17が、旋削軸の方向に垂直な面である面SF9を補正する場合について説明する。
【0160】
プログラム座標設定部15は、製品形状83に含まれる面SF9の法線ベクトルの方向と、プログラム座標系で設定されている特定軸の軸方向(ここではZ軸方向)に垂直な方向(ここではY軸方向)とが一致するようにワーク原点、プログラム座標系、および旋削軸の方向を設定する。すなわち、プログラム座標設定部15は、面SF9の法線ベクトルと、プログラム座標系で設定されている旋削軸に垂直な方向であるベクトル(0,1,0)またはベクトル(0,-1,0)とが一致するようにワーク原点、プログラム座標系、および旋削軸の方向を設定する。なお、旋削軸の方向がZ軸方向である。この場合において、面SF9の幾何情報が、以下の情報を有しているとする。この幾何情報は、例えば、フォーマット変換時に、何等かの要因で書き換えられてずれが生じた結果の情報である。
【0161】
面SF9:平面
・位置座標(0.04,-0.04,0.02)
・法線ベクトル(0.0001,0.99999999,0.0001)
【0162】
差分検出部16は、面SF9の法線ベクトルと、プログラム座標系で設定されているZ軸に垂直なY軸方向ベクトルとの差分を算出する。
【0163】
面SF9の幾何情報が上述の情報である場合、面SF9の法線ベクトルと、比較対象のベクトルであるZ軸と垂直なY軸方向ベクトルとの差分は0.000141となる。方向ベクトルの幾何許容誤差量が1.0e-10であり、作業者が設定した方向ベクトルの誤差量が1.0e-6である場合、形状補正部17は、面SF9の形状補正を実行する。
【0164】
形状補正部17は、平面の面SF9の幾何情報を以下のように補正する。
・法線ベクトル(0,1,0)
【0165】
すなわち、形状補正部17は、面SF9の法線ベクトルとXY平面の法線ベクトル(0,0,1)とがなす角度が90度となるように、面SF9の幾何情報を補正する。また、形状補正部17は、補正した面SF9に合わせて、面SF9と面SF9に隣接する面との交線および交点を再計算する。
【0166】
なお、形状補正部17は、平面の面SF13を補正する場合、面SF13の法線ベクトルとXY平面の法線ベクトルであるZ軸方向ベクトル(0,0,1)とがなす角度が90度となるように、面SF13の幾何情報を以下のように補正する。
・法線ベクトル(0,-1,0)
【0167】
また、形状補正部17は、平面の面SF11を補正する場合、面SF11の法線ベクトルとXY平面の法線ベクトルであるZ軸方向ベクトル(0,0,1)とがなす角度が90度となるように、幾何情報を以下のように補正する。
・法線ベクトル(1,0,0)
【0168】
また、形状補正部17は、平面の面SF15を補正する場合、面SF15の法線ベクトルとXY平面の法線ベクトルであるZ軸方向ベクトル(0,0,1)とがなす角度が90度となるように、幾何情報を以下のように補正する。
・法線ベクトル(-1,0,0)
【0169】
なお、形状補正部17は、面SF9,SF11,SF13,SF15のような法線ベクトルが特定の軸方向に一致する平面に限らず、特定の軸方向に対して傾斜した平面を補正してもよい。この場合、形状補正部17は、製品形状に含まれる傾斜した平面に設定されている法線ベクトル(設計値に対応する理想の法線ベクトル)と、実際の平面の幾何情報との差分がなくなるように、傾斜した平面を補正する。例えば、製品形状に含まれる傾斜した平面に設定されている法線ベクトルが(A,B,C)であり、実際の平面の法線ベクトルが(A+a,B+b,C+c)である場合、形状補正部17は、平面の法線ベクトルを(A,B,C)に補正する。
【0170】
図15は、実施の形態にかかる加工プログラム生成装置の形状補正部が実行する第5例の形状補正処理の処理手順を示すフローチャートである。
図15の処理は、
図2のステップS5の処理に対応する。形状補正部17が実行する第5例の形状補正処理は、旋削方向と同軸方向の円柱部分面を補正する処理である。
【0171】
プログラム座標設定部15は、円柱部分面の中心軸の方向(第1の方向)および位置座標と、旋削軸の方向(第2の方向)および位置座標とが一致するようにワーク原点、プログラム座標系、および旋削軸の方向を設定する。ここでの第1の方向および第2の方向は、旋削軸の方向である。すなわち、第1の方向および第2の方向は、ベクトル(0,0,1)の方向またはベクトル(0,0,-1)の方向である。すなわち、第5例の形状補正処理では、例えば、円柱部分面の中心軸ベクトルが、ベクトル(0,0,1)の近傍またはベクトル(0,0,-1)の近傍である円柱部分面を補正する。
【0172】
差分検出部16は、形状配置部14が配置し製品形状記憶部12が記憶した製品形状の全ての面を取得する(ステップS51)。差分検出部16は、取得した面の幾何情報を参照して、取得した面のうち、円柱部分面を抽出する(ステップS52)。
【0173】
差分検出部16は、取得した面の幾何情報を参照して、抽出した円柱部分面のうち、円柱部分面の中心軸ベクトルがベクトル(0,0,1)近傍またはベクトル(0,0,-1)近傍となる円柱部分面を選択する(ステップS53)。具体的には、差分検出部16は、取得した円柱部分面の中心軸ベクトルと、ベクトル(0,0,1)またはベクトル(0,0,-1)との差分が特定範囲内の円柱部分面を選択する。ここでの差分検出部16は、
図13に示した平面の面SF10,SF12,SF14,SF16を選択する。
【0174】
差分検出部16は、選択した円柱部分面の中心軸ベクトルとベクトル(0,0,1)またはベクトル(0,0,-1)とがなす角度の差分を計算する(ステップS54)。このように、差分検出部16は、選択した円柱部分面の中心軸ベクトルが、XY平面の法線ベクトルであるベクトル(0,0,1)またはベクトル(0,0,-1)からどれだけずれているかを示す差分量を求める。
【0175】
形状補正部17は、選択した円柱部分面の中心軸ベクトルと、ベクトル(0,0,1)またはベクトル(0,0,-1)との差分量に基づいて、製品形状に対する補正の要否を判定する(ステップS55)。形状補正部17は、第1例の形状補正処理での判定方法(ステップS14での判定方法)と同様の判定方法によって補正の要否を判定する。
【0176】
形状補正部17は、補正が必要であると判定すると(ステップS55、必要)、補正が必要であると判定した円柱部分面を補正する(ステップS56)。円柱部分面に補正が必要な場合、形状補正部17は、円柱部分面の中心軸ベクトルとベクトル(0,0,1)またはベクトル(0,0,-1)とが一致するように円柱部分面の中心軸ベクトルを補正する。形状補正部17は、ステップS56で補正した面と隣接する面との交線および交点を計算し直して補正する(ステップS57)。形状補正部17は、補正が不要であると判定すると(ステップS55、不要)、補正を実行しない。
【0177】
ここで、
図13を用いて形状補正部17が実行する第5例の形状補正処理について説明する。ここでは、形状補正部17が、旋削軸の方向に平行な中心軸を有した面SF10を補正する場合について説明する。
【0178】
プログラム座標設定部15は、製品形状83に含まれる面SF10の中心軸ベクトルの方向と、プログラム座標系で設定されている特定軸の軸方向(ここではZ軸方向)とが一致するようにワーク原点、プログラム座標系、および旋削軸の方向を設定する。すなわち、プログラム座標設定部15は、面SF10の中心軸ベクトルと、プログラム座標系で設定されている旋削軸の方向であるベクトル(0,0,1)またはベクトル(0,0,-1)とが一致するようにワーク原点、プログラム座標系、および旋削軸の方向を設定する。この場合において、面SF10の幾何情報が、以下の情報を有しているとする。この幾何情報は、例えば、フォーマット変換時に、何等かの要因で書き換えられてずれが生じた結果の情報である。
【0179】
・面SF10:円柱部分面
・中心軸の位置座標(-0.03,-0.03,0.02)
・中心軸の方向ベクトル(0.0001,0.0001,0.999999)
【0180】
差分検出部16は、面SF10の中心軸の方向ベクトルと、プログラム座標系で設定されているZ軸方向ベクトルとの差分を算出する。
【0181】
面SF10の幾何情報が上述の情報である場合、面SF10の中心軸の方向ベクトルと、比較対象の特定軸の軸方向ベクトル(ここではZ軸方向ベクトル(0,0,1))との差分は0.000141となる。方向ベクトルの幾何許容誤差量が1.0e-10であり、作業者が設定した方向ベクトルの設定誤差量が1.0e-6である場合、形状補正部17は、面SF10の形状補正を実行する。
【0182】
形状補正部17は、円柱部分面の面SF10の幾何情報を以下のように補正する。
・中心軸の方向ベクトル(0,0,1)
【0183】
すなわち、形状補正部17は、面SF10の中心軸ベクトルが、XY平面の法線ベクトルであるZ軸方向ベクトル(0,0,1)に一致するように、面SF10の幾何情報を補正する。また、形状補正部17は、補正した面SF10に合わせて、面SF10と面SF10に隣接する面との交線および交点を再計算する。
【0184】
図16は、実施の形態にかかる加工プログラム生成装置の形状補正部が実行する第6例の形状補正処理の処理手順を示すフローチャートである。
図16の処理は、
図2のステップS5の処理に対応する。形状補正部17が実行する第6例の形状補正処理は、R面取り面を補正する処理である。
【0185】
形状配置部14は、製品形状に含まれる一連のR面取り面が特定値(基準半径値)と同じ半径値(R値)となるように製品形状を配置する。差分検出部16は、形状配置部14が配置し製品形状記憶部12が記憶した製品形状の全ての面を取得する(ステップS61)。差分検出部16は、取得した面の幾何情報を参照して、取得した面のうち、R面取り面を抽出する(ステップS62)。R面取り面は、円柱面、円環面、または自由曲面からなる面であり、形状の角部が曲面によって丸められている。
【0186】
差分検出部16は、取得した面の幾何情報を参照して、抽出したR面取り面のうち、半径値が基準半径値近傍のR面取り面を選択する(ステップS63)。具体的には、差分検出部16は、取得したR面取り面の半径値と、基準半径値との差分(半径差分)が特定範囲内のR面取り面を選択する。
【0187】
差分検出部16は、選択したR面取り面の半径値と基準半径値との差分を計算する(ステップS64)。このように、差分検出部16は、選択したR面取り面の半径値が、基準半径値からどれだけずれているかを示す差分量を求める。
【0188】
形状補正部17は、選択したR面取り面の半径値と基準半径値との差分量に基づいて、製品形状に対する補正の要否を判定する(ステップS65)。形状補正部17は、第1例の形状補正処理での判定方法(ステップS14での判定方法)と同様の判定方法によって補正の要否を判定する。
【0189】
形状補正部17は、補正が必要であると判定すると(ステップS65、必要)、補正が必要であると判定したR面取り面を補正する(ステップS66)。R面取り面に補正が必要な場合、形状補正部17は、R面取り面の半径値が基準半径値に一致するようにR面取り面を補正する。形状補正部17は、ステップS66で補正したR面取り面と隣接する面との交線および交点を計算し直して補正する(ステップS67)。形状補正部17は、補正が不要であると判定すると(ステップS65、不要)、補正を実行しない。
【0190】
図17は、実施の形態にかかる加工プログラム生成装置の形状補正部が実行する第6例の形状補正処理を説明するための図である。ここでは、製品形状84に形成されるポケットのR面取り面について説明する。例えば、製品形状84に形成されるポケットは、R面取り面の面SF17,SF18,SF19,SF20を含んでいる。形状配置部14は、製品形状84に含まれる一連のR面取り面である面SF17~SF20の半径値と、基準半径値とが一致するように製品形状84を配置する。この場合において、面SF17~SF20の幾何情報が、以下の情報を有しているとする。この幾何情報は、例えば、フォーマット変換時に、何等かの要因で書き換えられてずれが生じた結果の情報である。
【0191】
・面SF17:R面取り面
・半径値=2
【0192】
・面SF18:R面取り面
・半径値=2.00016
【0193】
・面SF19:R面取り面
・半径値=2
【0194】
・面SF20:R面取り面
・半径値=2
【0195】
差分検出部16は、面SF17~SF20の半径値と、基準半径値との差分を算出する。面SF17~SF20の幾何情報が上述の情報であり、比較対象である基準半径値が2の場合、面SF18の半径値と基準半径値との差分は、0.00016となる。半径値の許容誤差量が1.0e-3であり、作業者が設定した半径値の設定誤差量が1.0e-6である場合、形状補正部17は、面SF18の形状補正を実行する。
【0196】
形状補正部17は、R面取り面の面SF18の幾何情報を以下のように補正する。
・半径値=2
【0197】
すなわち、形状補正部17は、面SF18の半径値が、基準半径値に一致するように、面SF18の幾何情報を補正する。また、形状補正部17は、補正した面SF18に合わせて、面SF18と面SF18に隣接する面との交線および交点を再計算する。
【0198】
図18は、実施の形態にかかる加工プログラム生成装置の形状補正部が実行する第7例の形状補正処理の処理手順を示すフローチャートである。
図18の処理は、
図2のステップS5の処理に対応する。形状補正部17が実行する第7例の形状補正処理は、C面取り面を補正する処理である。
【0199】
形状配置部14は、製品形状に含まれる一連のC面取り面が特定値(基準幅)と同じC面取り面幅となるように製品形状を配置する。差分検出部16は、形状配置部14が配置し製品形状記憶部12が記憶した製品形状の全ての面を取得する(ステップS71)。差分検出部16は、取得した面の幾何情報を参照して、取得した面のうち、C面取り面を抽出する(ステップS72)。C面取り面は、平面、円錐面、または自由曲面からなる面で、形状の角部が平面によって斜めに削ぎ落とされている。
【0200】
差分検出部16は、取得した面の幾何情報を参照して、抽出したC面取り面のうち、C面取り幅が基準幅近傍のC面取り面を選択する(ステップS73)。具体的には、差分検出部16は、取得したC面取り面のC面取り幅と、基準幅との差分(幅差分)が特定範囲内のC面取り面を選択する。C面取り幅は、一般に、C面取り面の幅ではなく、角から丸めた長さを表すが、C面取り面の幅としてもよい。
【0201】
差分検出部16は、選択したC面取り面のC面取り幅と基準幅との差分を計算する(ステップS74)。このように、差分検出部16は、選択したC面取り面のC面取り幅が、基準幅からどれだけずれているかを示す差分量を求める。
【0202】
形状補正部17は、選択したC面取り面のC面取り幅と基準幅との差分量に基づいて、製品形状に対する補正の要否を判定する(ステップS75)。形状補正部17は、第1例の形状補正処理での判定方法(ステップS14での判定方法)と同様の判定方法によって補正の要否を判定する。
【0203】
形状補正部17は、補正が必要であると判定すると(ステップS75、必要)、補正が必要であると判定したC面取り面を補正する(ステップS76)。C面取り面に補正が必要な場合、形状補正部17は、C面取り面のC面取り幅が基準幅に一致するようにC面取り面を補正する。形状補正部17は、ステップS76で補正したC面取り面と隣接する面との交線および交点を計算し直して補正する(ステップS77)。形状補正部17は、補正が不要であると判定すると(ステップS75、不要)、補正を実行しない。
【0204】
図19は、実施の形態にかかる加工プログラム生成装置の形状補正部が実行する第7例の形状補正処理を説明するための図である。ここでは、製品形状85に形成されるポケットのC面取り面について説明する。例えば、製品形状85に形成されるポケットは、C面取り面の面SF21,SF22,SF23,SF24を含んでいる。形状配置部14は、製品形状85に含まれる一連の面SF21~SF24のC面取り幅と、基準幅とが一致するように製品形状85を配置する。この場合において、面SF21~SF24の幾何情報が、以下の情報を有しているとする。この幾何情報は、例えば、フォーマット変換時に、何等かの要因で書き換えられてずれが生じた結果の情報である。
【0205】
・面SF21:C面取り面
・C面取り幅=2
【0206】
・面SF22:C面取り面
・C面取り幅=2.00016
【0207】
・面SF23:C面取り面
・C面取り幅=2
【0208】
・面SF24:C面取り面
・C面取り幅=2
【0209】
差分検出部16は、面SF21~SF24のC面取り幅と、基準幅との差分を算出する。面SF21~SF24の幾何情報が上述の情報であり、比較対象である基準幅が2の場合、面SF22のC面取り幅と基準幅との差分は、0.00016となる。C面取り幅の許容誤差量が1.0e-3であり、作業者が設定したC面取り幅の設定誤差量が1.0e-6である場合、形状補正部17は、面SF22の形状補正を実行する。
【0210】
形状補正部17は、C面取り面の面SF22の幾何情報を以下のように補正する。
・C面取り幅=2
【0211】
すなわち、形状補正部17は、面SF22のC面取り幅が、基準幅に一致するように、面SF22の幾何情報を補正する。また、形状補正部17は、補正した面SF22に合わせて、面SF22と面SF22に隣接する面との交線および交点を再計算する。
【0212】
図20は、実施の形態にかかる数値制御装置が実行する第8例の形状補正処理の処理手順を示すフローチャートである。
図20の処理は、
図2のステップS5の処理に対応する。数値制御装置100が実行する第8例の形状補正処理は、第1のパラメータである補正方法を推論し、推論した補正方法に従って製品形状を補正する処理である。
【0213】
機械学習装置20が、第1のパラメータを推論する処理では、加工プログラム生成装置10が抽出した第2のパラメータを入力として、形状補正事例Fcに基づいて生成された学習モデルMxを用いて、第1のパラメータを推論する。すなわち、機械学習装置20は、学習モデルMxに第2のパラメータを入力することによって第1のパラメータを推論する。
【0214】
具体的には、形状補正部17は、形状配置部14が配置し製品形状記憶部12が記憶した製品形状データと、プログラム座標設定部15が記憶したワーク原点およびプログラム座標系とに基づいて、製品形状の第2のパラメータ(製品形状、ワーク原点、およびプログラム座標系)を抽出し、製品形状の第2のパラメータを機械学習装置20に入力する(ステップS81)。
【0215】
ここで、形状補正部17が、推論候補の第1のパラメータとして、「製品形状の旋削面補正方法」、「製品形状の段付き穴補正方法」、「製品形状の底平面補正方法」、「製品形状の壁面補正方法」、「製品形状のR面取り面補正方法」および「製品形状のC面取り面補正方法」を指定したとする。この場合、形状補正部17は、第1のパラメータを推論するための第2のパラメータとして、製品形状の材質、製品形状の寸法値などを製品形状記憶部12から取得する。製品形状の各寸法値は、製品形状の縦長さ、横長さ、深さなどである。形状補正部17は、推論候補として指定した第1のパラメータの種類と、取得した第2のパラメータとを機械学習装置20の推論部24に入力する。
【0216】
なお、推論候補の第1のパラメータは、予め形状補正部17に設定されていてもよいし、作業者が指示入力部40を介して形状補正部17に設定してもよい。
【0217】
機械学習装置20の推論部24は、第2のパラメータを用いて第1のパラメータを推論する(ステップS82)。具体的には、形状補正部17が、生成した第2のパラメータを機械学習装置20の推論部24に入力し、推論部24が第2のパラメータに基づいて、第1のパラメータを推論する。推論部24は、第2のパラメータから第1のパラメータを推論するための学習モデルMxを用いて、形状補正部17から取得した第2のパラメータから第1のパラメータを推論する。これにより、推論部24は、推論した結果である第1のパラメータの複数の値を取得する。推論部24は、第1のパラメータの複数の値を形状補正部17に送る。
【0218】
形状補正部17は、取得した第1のパラメータに従って、製品形状を補正する(ステップS83)。具体的には、形状補正部17は、形状配置部14が配置し製品形状記憶部12が記憶した製品形状データを、比較対象との差分がなくなるように第1のパラメータの補正方法によって補正する。
【0219】
図21は、実施の形態にかかる機械学習装置が実行する学習モデル生成処理の処理手順を示すフローチャートである。学習モデル生成処理では、形状補正事例Fcに含まれている、補正方法、製品形状、ワーク原点、およびプログラム座標系に基づいて、形状補正データを生成するための学習モデルMxが生成される。ここでは、形状補正事例Fcが、製品形状記憶部12に記憶されている補正前の製品形状データ、プログラム座標設定部15で記憶されているワーク原点およびプログラム座標系、形状補正部17で記憶されている補正方法である場合について説明する。
【0220】
機械学習装置20は、加工プログラム生成装置10の製品形状記憶部12に記憶されている補正前の製品形状データを読み込む(ステップS91)。機械学習装置20は、加工プログラム生成装置10のプログラム座標設定部15で記憶されているワーク原点およびプログラム座標系を読み込む(ステップS92)。機械学習装置20は、ステップS91の処理と、ステップS92の処理とを何れの順番で実行してもよい。
【0221】
形状補正部17は、配置後の製品形状データ、ワーク原点、およびプログラム座標系の何れかに使用されている第1のパラメータを、製品形状データ、ワーク原点、およびプログラム座標系から複数抽出する(ステップS93)。形状補正部17は、抽出した複数の第1のパラメータに対し、第1のパラメータ毎に第2のパラメータを抽出する(ステップS94)。すなわち、形状補正部17は、第1のパラメータ毎に、抽出する第2のパラメータを決定し、決定した第2のパラメータを抽出する。形状補正部17は、形状識別情報に基づいて、第1のパラメータに対応する第2のパラメータを抽出する。形状補正部17は、抽出した第1のパラメータおよび第2のパラメータを機械学習部22に入力する。
【0222】
機械学習部22は、入力された第1のパラメータおよび第2のパラメータを用いて、機械学習処理を実行する(ステップS95)。具体的には、機械学習部22は、第1のパラメータおよび第2のパラメータに基づいてデータセットを生成し、生成したデータセットに従って機械学習を実行する。データセットは、調整対象の第1のパラメータと、この第1のパラメータの値を決定するために使用される調整対象外のパラメータである第2のパラメータとを対応づけたデータの組である。機械学習部22は、予め定められた基準を用いて、最適化されたモデルを学習モデルMxとして生成する。このように、機械学習部22は、学習結果である学習モデルMxを生成する。
【0223】
学習モデル記憶部23は、生成された学習モデルMxを記憶する(ステップS96)。これにより、機械学習装置20は、学習モデル生成処理を終了する。
【0224】
なお、実施の形態では、加工後の形状が凹状となる加工について説明したが、加工後の形状は凸状であってもよい。
【0225】
このように、加工プログラム生成装置10は、形状の差分が幾何許容誤差量以上で設定誤差量未満の部位のみを補正することによって、作業者が所望する範囲内の差分を有した部位のみを補正することができる。作業者が所望する範囲内は、比較対象との差分が幾何許容誤差量以上で且つ設定誤差量未満となる範囲である。
【0226】
製品形状データが作成される際には、フォーマット変換等の種々の処理によって、製品形状データの精度が悪くなる場合がある。例えば、製品形状データに対する種々の処理によって、製品形状と旋削軸との間で、位置座標および軸方向のベクトルが一致しない場合がある。すなわち、製品形状データのフォーマット変換等の種々の処理が原因で、製品形状データに含まれる各形状要素の幾何情報に誤差が発生し、製品形状データの各形状要素の幾何情報において設定されている軸と加工プログラムのプログラム座標系において設定されている軸との間に、作業者が想定し得ない差分が生じる場合がある。この場合に製品形状データに対応する加工プログラムを生成しようとすると、加工プログラムが生成されない部位が発生する、あるいは加工プログラムの精度が悪くなる場合があり、工作機械に設計通りの形状の製品を作製させることができなくなる。
【0227】
実施の形態の数値制御装置100は、比較対象との間に形状の差分がある場合に製品形状データを補正するので、加工プログラムの精度が悪くなることを防止できる。これにより、数値制御装置100は、加工プログラムの生成成功率および加工プログラムの精度を向上させることができる。
【0228】
また、作業者が設定誤差量を設定することにより、数値制御装置100は、比較対象との形状の差分が特定範囲内の製品形状データを補正し、特定範囲外の製品形状データを補正対象から外すことができる。これにより、数値制御装置100は、比較対象との形状の差分が、作業者が所望する範囲内の製品形状データを補正することができる。
【0229】
また、数値制御装置100は、製品形状データの円柱面、円錐面、および円環面の中心軸と旋削軸とが一致せず、旋削加工ユニットとして加工プログラムに展開できない製品形状の部位がある場合、中心軸と旋削軸との差分が解消されるように、製品形状データの中心軸を補正している。これにより、数値制御装置100は、加工プログラムに展開可能な旋削加工ユニットを生成することができる。
【0230】
また、数値制御装置100は、製品形状データの円柱面、円錐面、または円環面の中心軸が隣り合う円柱面、円錐面、または円環面の中心軸に一致せず、1つの段付き穴加工ユニットとして加工プログラムに展開されない製品形状の部位がある場合、中心軸同士の差分が解消されるように、製品形状データの中心軸を補正している。これにより、数値制御装置100は、加工プログラムに展開可能な1つの段付き穴加工ユニットを生成することができる。すなわち、数値制御装置100は、中心軸同士の差分によって穴の中心軸が一致せず、別々の穴加工ユニットとして展開される状況であっても、中心軸の補正により、加工プログラムに展開可能な1つの段付き穴加工ユニットを生成することができる。
【0231】
また、数値制御装置100は、製品形状データの平面がXY平面に平行でなく、面加工ユニットとして加工プログラムに展開されない製品形状の部位がある場合、製品形状データの法線ベクトルとZ軸方向ベクトルとの差分が解消されるように、製品形状データの法線ベクトルを補正している。すなわち、製品形状データの平面がXY平面に対して傾いていると判断され、面加工ユニットの底面として判定されない場合に、製品形状データの法線ベクトルを補正している。これにより、数値制御装置100は、加工プログラムに展開可能な面加工ユニットを生成することができる。すなわち、数値制御装置100は、面加工ユニットの底面として判定されず、未展開になる箇所を面加工ユニットとして展開できる。
【0232】
また、数値制御装置100は、製品形状データの平面の法線ベクトルとベクトル(0,0,1)とがなす角度が90度でなく、面加工ユニットとして加工プログラムに展開されない製品形状の部位がある場合、製品形状データの法線ベクトルとZ軸方向ベクトルとがなす角度の差分が解消されるように、製品形状データの法線ベクトルを補正している。すなわち、製品形状データの平面の法線ベクトルがXY平面に対して平行でなく傾いていると判断され、面加工ユニットの壁面として判定されない場合に、製品形状データの法線ベクトルを補正している。これにより、数値制御装置100は、加工プログラムに展開可能な面加工ユニットを生成することができる。すなわち、数値制御装置100は、面加工ユニットの側壁面として判定されず、未展開になる箇所を面加工ユニットとして展開できる。
【0233】
また、数値制御装置100は、製品形状データの円柱部分面の中心軸がXY平面と垂直でなく、加工プログラムに展開されない製品形状の部位がある場合、製品形状データの中心軸とZ軸方向ベクトルとの差分が解消されるように、製品形状データの中心軸を補正している。すなわち、XY平面と垂直をなす円柱面のうち、円柱面の傾きによって円柱面の中心軸がXY平面と垂直でなく、面加工ユニットの壁面として判定されない場合に、製品形状データの中心軸を補正している。これにより、数値制御装置100は、加工プログラムに展開可能な面加工ユニットを生成することができる。すなわち、数値制御装置100は、面加工ユニットの円柱部分面として判定されず、未展開になる箇所を面加工ユニットとして展開できる。
【0234】
また、数値制御装置100は、製品形状データのR面取り面の半径値が基準半径値に一致せず、R面取り面が複数の面取り加工ユニットとして加工プログラムに展開される製品形状の部位がある場合、製品形状データの半径値と基準半径値との差分が解消されるように、製品形状データのR面取り面の半径値を補正している。すなわち、数値制御装置100は、複数からなる一連のR面取り面の一部の半径値が基準半径値に一致しない場合であっても、基準半径値に一致しないR面取り面の半径値を基準半径値に補正している。これにより、数値制御装置100は、複数からなる一連のR面取り面に対し、加工プログラムに展開可能な一連のR面取り面加工ユニットを生成することができる。すなわち、数値制御装置100は、一連のR面取り面として判定されず、未展開になる箇所を一連のR面取り面加工ユニットとして展開できる。
【0235】
また、数値制御装置100は、製品形状データのC面取り面のC面取り幅が基準幅に一致せず、C面取り面が複数の面取り加工ユニットとして加工プログラムに展開される製品形状の部位がある場合、製品形状データのC面取り幅と基準幅との差分が解消されるように、製品形状データのC面取り面のC面取り幅を補正している。すなわち、数値制御装置100は、複数からなる一連のC面取り面の一部の半径幅が基準幅に一致しない場合であっても、基準幅に一致しないC面取り面の半径幅を基準幅に補正している。これにより、数値制御装置100は、一連のC面取り面加工ユニットとして加工プログラムに展開可能なC面取り面加工ユニットを生成することができる。すなわち、数値制御装置100は、一連のC面取り面として判定されず、未展開になる箇所を一連のC面取り面加工ユニットとして展開できる。
【0236】
また、数値制御装置100は、形状補正データを機械学習することによって、推論する形状補正方法の精度を向上させることができる。
【0237】
つぎに、数値制御装置100のハードウェア構成について説明する。
図22は、実施の形態にかかる数値制御装置のハードウェア構成を示すブロック図である。
【0238】
図22に示す数値制御装置100は、機能部として、プロセッサ71と、プロセッサ71がワークエリアに用いるメモリ72と、数値制御装置100の各機能を記述したコンピュータプログラム(制御プログラム、加工プログラム)を記憶する記憶装置73と、作業者との間の入力インタフェースである入力装置74と、作業者に情報を表示する出力装置である表示装置75と、被制御機器(工作機械など)または他の数値制御装置などとの通信機能を有する通信装置76とを備える。
【0239】
プロセッサ71、メモリ72、記憶装置73、入力装置74、表示装置75、および通信装置76は、データバス77によって互いに接続されている。
【0240】
プロセッサ71は、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、CPU(Central Processing Unit)、またはDSP(Digital Signal Processor)などである。
【0241】
メモリ72は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、またはEEPROM(登録商標)(Electrically EPROM)などの、不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、またはDVD(Digital Versatile Disc)などである。
【0242】
数値制御装置100の形状入力部11、形状配置部14、プログラム座標設定部15、差分検出部16、形状補正部17、および加工プログラム生成部18は、メモリ72に記憶されたコンピュータプログラムをプロセッサ71が読み出して実行することによって実現することができる。
【0243】
同様に、機械学習装置20の形状補正方法解析部21、機械学習部22、および推論部24は、メモリ72に記憶されたコンピュータプログラムをプロセッサ71が読み出して実行することによって実現することができる。
【0244】
製品形状記憶部12、素材形状記憶部13、および形状配置部14の機能は、記憶装置73によって実現される。同様に、学習モデル記憶部23の機能は、記憶装置73によって実現される。また、プログラム座標設定部15が、ワーク原点の座標値およびプログラム座標系の各軸の方向ベクトルを記憶する機能、および形状補正部17が、形状補正データを記憶する機能は、記憶装置73によって実現される。
【0245】
なお、数値制御装置100では、複数のプロセッサ71および複数のメモリ72が連携して数値制御装置100の各機能を実現してもよい。また、形状入力部11、形状配置部14、プログラム座標設定部15、差分検出部16、形状補正部17、加工プログラム生成部18、形状補正方法解析部21、機械学習部22、および推論部24の機能のうちの一部を電子回路として実装し、他の部分をプロセッサ71およびメモリ72を用いて実現するようにしてもよい。
【0246】
加工プログラム生成装置10を実現するためのプロセッサ71およびメモリ72は、機械学習装置20を実現するためのプロセッサ71およびメモリ72と同一であってもよいし、機械学習装置20を実現するためのプロセッサ71およびメモリ72とは異なるプロセッサ71およびメモリ72であってもよい。すなわち、形状入力部11、形状配置部14、プログラム座標設定部15、差分検出部16、形状補正部17、および加工プログラム生成部18の機能を実現するためのプロセッサ71およびメモリ72は、形状補正方法解析部21、機械学習部22、および推論部24を実現するためのプロセッサ71およびメモリ72と同一であってもよいし異なっていてもよい。なお、加工プログラム生成装置10または機械学習装置20のハードウェア構成を
図22のハードウェア構成としてもよい。
【0247】
このように実施の形態の数値制御装置100は、配置された製品形状の位置座標および方向とプログラム座標系の座標および方向との差分が特定範囲内でない場合に差分が特定範囲内となるように製品形状データを補正するので、加工プログラムの精度が悪くなることを防止できる。したがって、数値制御装置100は、工作機械に作業者が所望する形状の製品を作製させることができる。
【0248】
以上の実施の形態に示した構成は、一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【0249】
10 加工プログラム生成装置、11 形状入力部、12 製品形状記憶部、13 素材形状記憶部、14 形状配置部、15 プログラム座標設定部、16 差分検出部、17 形状補正部、18 加工プログラム生成部、20 機械学習装置、21 形状補正方法解析部、22 機械学習部、23 学習モデル記憶部、24 推論部、30 対話操作処理部、40 指示入力部、50 表示部、60 制御部、71 プロセッサ、72 メモリ、73 記憶装置、74 入力装置、75 表示装置、76 通信装置、77 データバス、81~85 製品形状、100 数値制御装置、101 製品形状データ、102 素材形状データ、103 配置データ、201 加工形状データ、AX1~AX3 プログラム座標系、Fc 形状補正事例、Fd 形状データ、Mx 学習モデル、PM 加工プログラム、SA1 製品形状、SB2,Sx1 素材形状、SC3 配置形状、SF4~SF24 面、SH1 旋削穴加工形状、SH2,SH3,SH5~SH7 旋削加工形状、SH4,SH16 穴加工形状、SH8~SH15 面加工形状。
【要約】
数値制御装置(100)は、製品形状を表す製品形状データに設定されている第1の方向と、プログラム座標系に設定されている第2の方向とが一致するように、プログラム座標系を設定するプログラム座標設定部(15)と、配置された製品形状の座標および第1の方向とプログラム座標系の座標および第2の方向との差分を検出する差分検出部(16)と、差分が幾何学的に許容される誤差量である幾何許容誤差量以上の特定範囲内でない場合に差分が特定範囲内となるように製品形状データを補正する形状補正部(17)とを備える。