JP4085789B2 - オブジェクト指向型加工シミュレーション装置およびオブジェクト指向型加工シミュレーションプログラム - Google Patents
オブジェクト指向型加工シミュレーション装置およびオブジェクト指向型加工シミュレーションプログラム Download PDFInfo
- Publication number
- JP4085789B2 JP4085789B2 JP2002331943A JP2002331943A JP4085789B2 JP 4085789 B2 JP4085789 B2 JP 4085789B2 JP 2002331943 A JP2002331943 A JP 2002331943A JP 2002331943 A JP2002331943 A JP 2002331943A JP 4085789 B2 JP4085789 B2 JP 4085789B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- data
- type
- tool
- class
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Numerical Control (AREA)
Description
【発明の属する技術分野】
この発明は、パンチプレス等の板金加工機や、その他の加工機械を数値制御する手続き型言語のNCデータをシミュレーションするオブジェクト指向型加工シミュレーション装置およびオブジェクト指向型加工シミュレーションプログラムに関する。
【0002】
【従来の技術】
従来より、加工機械を制御するNCデータを、実加工する前にシミュレーションし、加工状況や工具干渉等をチェックし、トラブルを未然に防ぐことが行われている。
従来のC言語を用いた一般的なシミュレーション方法は、NCデータ1行に対して文字列処理し、NC命令を検索した後、あらかじめ容易された関数へ処理を移行し、その関数内で命令特有の処理を行うのが一般的であった。
なお、オブジェクト指向型のソフトウェアをシミュレーションする方法としては、特許文献1に示すものがあるが、手続き型のNCデータをシミュレーションする方法ではない。
【0003】
【特許文献1】
特開平9−22359号公報
【0004】
【発明が解決しようとする課題】
しかし、上記従来のシミュレーション方法では、次のデメリットがある。
a)NC命令が膨大であると、NCデータの1行を検索し、該当する関数へ移行させる上位関数の判断・検索を行う処理が複雑になる。
b)上位関数の判断・検索が複雑になるため、新規のNC命令分岐を挿入するときにバグを誘発する。
c)NC命令は行では完結しないものがあり、複数行に渡る時の上位関数の処理が複雑になる。
d)NC命令同士で干渉し合うものがあり、上位関数の処理にNC命令の関係処理を記述する必要があって、上位関数が複雑になる。
e)NC命令を他社コードへ変換処理する場合も、上位関数による分岐・変換処理が必要となり、複雑になる。
これらの結果、特定の関数に処理が集中し、関数は単純処理のみとなり、効率の悪いプログラムとなる。また、新規NC命令の追加や削除・変更などの際に、他命令への影響を最大限に気をつける必要があり、デバッグとテスト工数に多大の時間を費やしてしまう。
【0005】
この発明の目的は、シミュレーションプログラムのメンテナンス性に優れ、NCデータに対応したNC命令の種別の追加,変更,削除の対応が容易に行える加工シミュレーション装置を提供することである。
この発明の他の目的は、種々の工具を持つパンチプレスに対するシミュレーションに対しても、メンテナンス性に優れたものとすることである。
この発明のさらに他の目的は、メンテナンス性に優れ、NCデータに対応したNC命令の種別の追加,変更,削除の対応が容易に行える加工シミュレーションプログラムを提供することである。
【0006】
【課題を解決するための手段】
この発明のオブジェクト指向型加工シミュレーション装置(1)は、加工機械を数値制御する手続き型言語のNCデータ(6)をシミュレーションする装置であって、NCデータ(6)の命令毎のオブジェクトである命令単位オブジェクト(23)を生成する命令単位オブジェクト生成手段(31)と、生成された命令単位オブジェクト(23)に実行指令を与える管理手段(32)とを備える。
上記命令単位オブジェクト(23)は、自己のNC命令種別のデータと、必要な特有属性データと、上記実行指令に応答して自己のNC命令種別および特有属性データに応じたシミュレーション処理を行う実行メソッドとを有するものである。上記特有属性データは、特にない場合には保有しなくても良い。
上記命令単位オブジェクト生成手段(31)は、NC命令の種別毎にクラス定義された命令種別クラス(33)を有する。これらの命令種別クラス(33)は、渡されたNC命令が自己のNC命令の種別に合致するか否かを判断し、合致する場合に自己のクラスのインスタンスとして上記命令単位オブジェクト(23)を生成するものとする。
なお、この明細書で言う「命令種別クラス」は実際の一つのクラスを示すのではなく、NC命令の種別毎にクラス定義された各クラスを総称して示すものである。
【0007】
この構成の加工シミュレーション装置(1)は、単独のNC命令を関数ではなく、命令単位のオブジェクト(23)として定義したため、性格や振る舞いなど、自分がどのような命令で、どのような処理が行えるかを知るソフトウェア部品として取り扱える。また、命令単位オブジェクト生成手段(31)は、NC命令の種別毎にクラス定義された命令種別クラス(33)を有し、自己のNC命令の種別に合致するか否かを判断して自己生成するものとしたため、膨大なNC命令の中から、自分自信の命令を探し出し、自分自身を生成し、上位オブジェクト(22)等へ自己ポインタを与えることができて、上位オブジェクト(22)が行う複雑な初期処理は不要であり、非常にすっきりとした独立性の高いプログラム構造となる。シミュレーションの実行時にも、管理手段(32)が命令単位オブジェクト(23)に対して「実行」を通知するだけで良い。その後は各命令単位オブジェクト(23)が、自分自身で判断し必要に応じて、例えば加工や,工具交換,移動等のシミュレーション処理を全て自立的に行う。
【0008】
このため、次の各利点が得られる。
a)入力データのNCデータファイルから自己生成型ロジックにより、各命令種別クラス(33)が自立的に自分自身を探し出し、動的メモリ空間に命令単位オブジェクト(23)として自分を作りだすため、プログラムのメンテナンス性が飛躍的に向上する。
b)シミュレーションプログラムの開発が、従来の処理手続き中心から、各命令単位オブジェクト(23)の命令種別クラス(33)の作成に専念できる。
c)独立性が高く、他のソースコードに影響することなく、命令種別クラス(33)の単位での追加・変更・削除が容易に行える。
d)他社形式へのNC命令の変換も、各命令種別クラス(33)の定義により容易に対処できる。
【0009】
この発明は、整理し直すと、オブジェクト指向を利用した自己生成型のシミュレーション装置であることを特徴とする。通常は、オブジェクト指向を用いても、上位オブジェクトが下位オブジェクトを生成して保有するのが一般的である。しかし、この発明の「自己生成型」では、下位の命令単位オブジェクト(正確には命令種別クラス)が自分自身の生成の可否を判断し、さらに必要となれば、自分自身を生成した後、上位オブジェクトへの保有依頼の旨を伝える手法であり、完全な独立手法となっている。
【0010】
この発明において、上記加工機械がパンチプレスである場合に、上記NCデータ(6)に属性データとして記述された工具についてのデータを上記NCデータ(6)から抽出する工具データ抽出手段(34)と、抽出された工具データにおける工具の種別毎のオブジェクトである工具種別オブジェクト(25)を生成する工具種別オブジェクト生成手段(35)とを設けても良い。
この工具種別オブジェクト生成手段(35)は、その工具種別の工具に関するデータとシミュレーション処理時にその工具を作画する作画メソッドとを有するものである。上記命令単位オブジェクト(23)のうち、工具命令の命令単位オブジェクト(23)は、実行メソッドにおけるシミュレーション処理に上記工具種別オブジェクト(25)の作画メソッドを用いるものとする。
パンチプレスでは、種々の工具を持つため、シミュレーション時の作画が煩雑なものとなるが、このような加工機械のミュレーション装置においても、メンテナンス性に優れたものとなる。
【0011】
この発明のオブジェクト指向型加工シミュレーションプログラムは、加工機械を数値制御する手続き型言語のNCデータをシミュレーションするプログラムであって、コンピュータで実行可能なものであり、次の各手順を含む。
すなわち、NCデータ(6)から、このNCデータ(6)の所定区分毎の文字列をデータとして持つ複数のNC1行オブジェクト(22)を生成する手順と、これらのNC1行オブジェクト(22)の下位のオブジェクトとして、NC1行オブジェクト(22)の持つNCデータの命令毎のオブジェクトである命令単位オブジェクト(23)を生成する手順と、
生成された各命令単位オブジェクト(23)に順次実行指令を与える手順とを含む。
上記命令単位オブジェクト(23)は、自己のNC命令種別のデータと、必要な特有属性データと、上記実行指令に応答して自己のNC命令種別および特有属性データに応じたシミュレーション処理を行う実行メソッドとを有するものである。
上記命令単位オブジェクト(23)を生成する手順は、NC命令の種別毎にクラス定義された各々の命令種別クラス(33)により、上記NC1行オブジェクト(22)から渡されたNC命令が自己のNC命令の種別に合致するか否かを判断し、合致する場合に自己のクラスのインスタンスとして上記命令単位オブジェクト(23)を生成する手順とする。この自己生成の手順は、NC1行オブジェクト(22)の生成の過程で行うようにしても良く、また生成後に行うようにしても良い。
【0012】
【発明の実施の形態】
この発明の一実施形態を図面と共に説明する。図2に示すように、このオブェジェクト指向型の加工シミュレーション装置1は、NCデータ6をシミュレーションする装置であって、コンピュータ2のハードウェアおよびオペレーションシステム(図示せず)と、アプリケーションプログラムとなる加工シミュレーションプログラム3とで構成される。加工シミュレーションプログラム3は、オブェジェクト指向型のプログラムであり、例えばC++言語で記述される。コンピュータ2は、中央処理装置(CPU)等で構成される演算制御部4と、記憶手段5とを有し、記憶手段5の一部の記憶エリアに上記加工シミュレーションプログラム3が記憶される。記憶手段5の他の記憶エリアに、一つまたは複数のNCデータ6がファイル等として記憶される。
NCデータ6は、加工機械を数値制御する手続き型言語のプログラムであり、1行に1命令または複数の関連命令を記述した文字列として記述されている。各NC命令は所定形式のNCコードで記述されている。NCデータ6の制御対象となる加工機械は、パンチプレス,レーザ加工機等の板金加工機械や、旋盤等の工作機械である。
加工シミュレーションプログラム3は、NCデータ6から階層関係のオブジェクト群7を、記憶手段5の一部の記憶エリア5aに作成し、そのオブジェクト群7にシミュレーションの処理を実行させることで、NCデータ6のシミュレーション結果を画面表示装置8に表示させる。画面表示装置8は、液晶表示装置またはCRT等からなる。コンピュータ2には、キーボードや、マウス、その他の入力装置9が備えられている。なお、コンピュータ2は、1台として図示してあるが、ここで言うコンピュータ2は、ネットワークを構成する複数台のコンピュータの集まりであっても良い。
【0013】
図3は、画面表示装置8のシミュレーション時の画面表示例を示す。この例では、画面表示装置8の全体画面の中に、NCデータ画面10と、シミュレーション結果表示画面11と、各種情報画面12とが、別のウィンドウとして表示され、かつ各種のソフトウェアキー13が表示されている。NCデータ画面10にはNCデータ6が文字列で表示される。シミュレーション結果表示画面11にはシミュレーション結果として、加工完了状態または加工途中のワーク等の図が表示される。図示の例は、パンチプレスのNCデータ6のシミュレーション結果例であり、素材となる板金ワークWに、加工された各パンチ孔14の図が重ねて表示してある。パンチ孔14は、この例では連続したスリットを構成するが、1回のパンチ毎のパンチ孔14が示されている。また、パンチプレスにおけるワークWを把持するワークホルダ15の図も表示されている。ソフトウェアキー13は、各種情報画面12に表示させる情報種類の選択等を行う手段であり、加工情報、工具情報、NC情報、実績情報等の別に設けられている。各種情報画面12に表示される情報は、例えば加工情報としてはNCデータ6のプログラム番号,タレット番号、板厚などが表示される。工具情報としてはタレットの各タレット番号の該当箇所に配置された工具の工具番号,工具種類などが表示され、NC情報としては、NCデータ6のファイル更新日時などが表示される。実績情報としてはNCデータ6のシミュレーション回数等が表示される。
【0014】
図1は、このオブェジェクト指向型の加工シミュレーション装置1の概念構成と、この装置1で生成されたオブジェクト群7の階層関係を示す説明図である。まず、各オブジェクトにつき説明し、その後に加工シミュレーション装置1の構成を説明する。
オブジェクト群7の各オブジェクトは、それぞれデータと処理内容であるメソッドとを持つ。オブジェクト群7は、最上位の一つのNCデータオブジェクト21と、その下位の複数のNC1行オブジェクト22と、各NC1行オブジェクト22に対してその下位に一つまたは複数設けられた命令単位オブジェクト23とを有する。NCデータオブジェクト21は、NCデータ6のファイル6Aの全体のデータを有する。NC1行オブジェクト22は、NCデータ6の1行等の所定区分毎に設けられたオブジェクトである。上記所定の区分は原則的には1行であるが、NC命令の種類等により、複数行にわたるものとなっても良い。命令単位オブジェクト23は、各NC1行オブジェクト22の持つNC命令毎に設けられたオブジェクトであり、NC1行オブジェクト22が1つのNC命令のみを持つ場合は1個設けられ、複数の命令を持つ場合はそのNC命令個数だけ設けられる。なお、ここで言う命令単位オブジェクト23の個数には、後述の基底クラスは含めない。命令単位オブジェクト23は、シミュレーションの作画や座標変更等を行う実行メソッドを有するオブジェクトである。その上位のNC1行オブジェクト22およびNCデータオブジェクト21は、命令単位オブジェクト23の生成や管理上の都合で設けられるオブジェクトである。命令単位オブジェクト23は、後述のように自己生成型とされる。
【0015】
オブジェクト群7は、この他にNCデータオブジェクト21と同じ階層のオブジェクトとして、工具データオブジェクト24と、加工情報オブジェクト26とを有し、工具データオブジェクト24の下位に複数の工具種別オブジェクト25を有する。
工具データオブジェクト24は、NCデータ6に属性データとして記述された工具についてのデータをNCデータ6から抽出したものを、データとして持つオブジェクトである。NCデータ6の制御対象となる加工機械がタレット式のパンチプレスの場合、工具についてのデータとして、工具番号、工具自体の形状,サイズ等のデータと、タレット番号(タレットにおける工具の配置場所の番号)と、そのタレット番号の箇所に装備した工具の番号等が保持される。
工具種別オブジェクト25は、個々の工具毎に作成されたオブジェクトであって、個々の工具についての工具番号,形状,サイズ等のデータと、シミュレーション時に画面に表示させる工具作画データ等を持つ。工具データオブジェクト24および工具種別オブジェクト25は、工具を交換しない加工機械(例えばレーザ加工専用機)等の場合は不要である。また、工具交換する加工機械の場合にも、工具に関するデータは、必ずしもオブジェクトとして持つ必要はなく、単なるデータファイルとして持つようにしても良い。工具種別オブジェクト25は、後に命令単位オブジェクト23について説明すると同様に自己生成型とされる。
【0016】
加工情報オブジェクト26は、NCデータ6に属性データとして記述された加工条件等のデータを抽出して持つオブジェクトである。上記加工条件は、パンチプレスの場合、パンチ圧力,ニブリングピッチ等である。加工情報オブジェクト26も、必ずしも設ける必要はなく、単なるファイルとして加工条件等の加工情報を記憶させておいても良い。
なお、工具データオブジェクト24および加工情報オブジェクト26は、NCデータ6に含まれない他のファイル等の情報がシミュレーションに必要な場合、例えばNCデータ6とは別に設けられた工具マスタファイル(図示せず)や、NCデータ6を作成する自動プログラミング装置の持つデータを、それらのファイルや装置から得て保有するものとしても良い。
【0017】
図6は、NC1行オブジェクト22の構造の概念図である。NC1行オブジェクト22は、データとして、NCデータ6の所定区分の文字列(以下「NC1行文字列」と称す)と、下位の命令単位オブジェクト23の記憶場所を識別する情報となるオブジェクトポインタとを持つ。この他に、データとして、上記NC1行文字列の行ナンバーと、そのNC1行文字列の命令固有の情報を持つ。この固有の情報は、タレット型のパンチプレスである場合、タレット番号、ニブリングの有無、現在位置データ等である。レーザ・パンチ複合型のタレット式パンチプレスでは、パンチ加工とレーザ加工の区別のモード等の情報が含まれる。
NC1行オブジェクト22のメソッドには、上位のNCデータオブジェクト21から受けた実行指令を伝達する伝達メソッドが設けられる。この伝達メソッドは、下位の各命令単位オブジェクト23に実行指令を順次伝達し、各下位の命令単位オブジェクト23の実行の完了応答によって次のNC1行オブジェクト22に実行指令を伝達するものである。
【0018】
図7は、命令単位オブジェクト23の構造の概念図である。命令単位オブジェクト23は、NC命令毎に設けられたものであるため、NC命令の種別毎に若干違った内容のものとなる。命令単位オブジェクト23は、データとして、NC命令の種別と、そのNC命令の特有の属性と、上記のNC1行オブジェクト22のポインタとを持つ。NC命令は、NCコードの文字列として記述されており、パンチプレスの場合、工具指令であるTコードや、X軸方向の移動指令であるXコードや、回転割出するインデックスツールの回転角度の指令であるCコードや、同じ工具で直線的に複数箇所を順次打ち抜く命令であるRECコード等がある。上記のNC命令の特有の属性として、Tコードの場合はタレット51(図14(A))の工具配置位置であるタレット番号Tn、Cコードの場合はインデックスツール52(同図(C))の角度θがある。RECコードの場合は方向(前後左右),加工長L(同図(B)),工具長a,送りピッチp等のデータがあり、Xコードの場合は移動量x(同図(D))がある。命令単位オブジェクト23の持つデータとして、上記の他に、NCデータ6の形式を示すコードや、注意書き(例えば、相性の悪いNC命令等)がある。
命令単位オブジェクト23は、メソッドとしては、与えられた実行指令に応答して所定のシミュレーションの処理を実行メソッドを持つ。実行メソッドは、NC命令の種別によって異なり、例えばパンチ指令(RECコード等)の場合は作画の処理、移動指令(Xコード等)の場合は現在座標の変更、工具指令(Tコード)の場合はタレットの割出回転等の処理を行うメソッドである。
【0019】
図1のNCデータオブジェクト21は、図示を省略するが、上記のようにデータとしては、NCデータ6の全体を持ち、メソッドとしては、入力装置9(図2)等から与えられる実行指令の入力に応じて、各NC1行オブジェクト22に実行の指令を与えるメソッドを持つ。
【0020】
図1と共に、加工シミュレーション装置1の構成を説明する。この加工シミュレーション装置1は、NCデータ6の命令毎のオブジェクトである命令単位オブジェクト23を生成する命令単位オブジェクト生成手段31と、生成された命令単位オブジェクト23に実行指令を与える管理手段32とを備える。
命令単位オブジェクト生成手段31は、NC命令の種別毎にクラス定義された複数の命令種別クラス33を有する。これらの命令種別クラス33は、渡されたNC命令が自己のNC命令の種別に合致するか否かを判断し、合致する場合に自己のクラスのインスタンスとして上記命令単位オブジェクト23を生成するものである。インスタンスは、クラスに実体を持たせたものである。命令種別クラス33は、NC命令の種類の個数だけ設けられる。
【0021】
加工シミュレーション装置1は、この他に工具データ抽出手段34と、工具種別オブジェクト生成手段35と、加工情報オブジェクト生成手段36とを有する。工具データ抽出手段34は、NCデータ6に属性データとして記述された工具についてのデータを上記NCデータ6から抽出する手段であり、具体的には上記工具データオブジェクト24を生成するものとされる。工具種別オブジェクト生成手段35は、工具データ抽出手段34により抽出された工具データにおける工具の種別毎のオブジェクトである工具種別オブジェクト25を生成する手段である。工具種別オブジェクト生成手段35は、この例では、工具種別オブジェクト25を、命令単位オブジェクト23の生成手法と同様な手法で自己生成させるものとしてある。工具種別オブジェクト25は、その工具種別の工具に関するデータとシミュレーション処理時にその工具を作画する作画メソッドとを有するものである。上記命令単位オブジェクト23のうち、工具命令の命令単位オブジェクト23は、実行メソッドにおけるシミュレーション処理に工具種別オブジェクト25の作画メソッドを用いるものとしている。
【0022】
図4は、管理手段32および命令単位オブジェクト生成手段31の具体例を示す。管理手段32は、管理部37とNCデータオブジェクト生成部38を有し、NCデータオブジェクト生成部38は図1のNCデータオブジェクト21を生成する。管理手段32は、この他に、工具データオブジェクト24および加工情報オブジェクト26を生成する各最上位オブジェクト生成部(図示せず)を有する。管理部37は、オペレータの入力に対する処理等を行う手段であり、どのNCデータ6のシミュレーションを行うかの選択、およびオブジェクト作成開始の指令を受け、NCデータオブジェクト生成部38等に、選択されたNCデータ6のオブジェクト群7の作成を開始させる。また、作成されたオブジェクト群7に対して、シミュレーションの実行指令を伝える。この実行指令は、作成されたNCデータオブジェクト21から順次下位のオブジェクトに伝えられることになる。
【0023】
命令単位オブジェクト生成手段31は、NC1行オブジェクト22を生成するNC1行オブジェクト生成部39と、命令単位オブジェクト23を生成する命令単位オブジェクト生成部40とを有する。
【0024】
図5に示すように、NC1行オブジェクト生成部39は、クラス定義された一つのNC1行クラス41を有する。NC1行オブジェクト生成部39は、NC1行クラス41にNCデータ6の1行文字列等のデータを引数等として与え、NC1行クラス41のインスタンスとしてNC1行オブジェクト22(図1)を生成する手段である。NC1行オブジェクト生成部39は、上位の管理手段32(図4)の管理に従って、NC1行オブジェクト22の生成を行う。NC1行クラス41は、具体的には図10に流れ図で示す手順の処理を行うメソッドを有している。
【0025】
命令単位オブジェクト生成部40は、命令種別クラス33に属するクラスとして、基底クラスである命令種別基底クラス33aと、この命令種別基底クラス33aの派生クラスとして定義された複数の命令種別毎のクラス33bを有する。命令種別毎のクラス33bは、命令種別の数だけ設けられる。なお、この明細書で言う「命令種別クラス33」は、実際のクラスではなく、上記命令種別基底クラス33aと、その各派生クラスである命令種別毎のクラス33bとを総称したものを示す。
命令種別基底クラス33aは、各命令種別毎のクラス33bに共通のメンバを持つクラスであり、このクラス33aのインスタンスは生成しない。命令種別毎のクラス33bは、命令種別基底クラス33aとの差分となるデータおよびメソッドを定義したものであり、命令種別基底クラス33aのデータおよびメソッドの全てを承継し、これに差分となるデータおよびメソッドが追加された内容をもつものとなる。
【0026】
各命令種別毎のクラス33bは、データとして自己特徴のデータを有し、メソッドとして、自己識別関数と、自己生成メソッドと、実行メソッドとを有する。自己特徴のデータは、そのクラス33bがどのNC命令(例えば、Tコード、Xコード、Cコード、RECコード、…)であるかを示すデータである。
自己識別関数は、引数として渡されたデータが、自己特徴を示すデータに一致するか否かを判断する関数である。
自己生成メソッドは、自己識別関数により自己特徴と一致すると判断された場合に、その命令種別のクラス33bに対して、NCデータの内容を持つインスタンスとして命令単位オブジェクト23を生成するメソッドである。
実行メソッドは、命令単位オブジェクト23について説明した内容と同じであり、NC命令の種別によって異なる。説明が重複するが、実行メソッドは、例えばパンチ指令(RECコード等)のクラスの場合は作画の処理、移動指令(Xコード等)のクラスの場合は現在座標の変更、工具指令(Tコード)のクラスの場合はタレットの割出回転等の処理を行うメソッドとされる。
【0027】
図12に示すように、各命令種別毎のクラス33bの自己識別関数は、一つの自己識別関数テーブル42にその関数名が列挙される。関数名は、クラス名と関数名とを併記することで、各クラス特有の関数名とされる。自己識別関数テーブル42は、静的メソッド関数テーブルとされる。
【0028】
次に、上記構成の加工シミュレーション装置1によりオブジェクト群7を生成する過程、および作成されたオブジェクト群によりシミュレーションを実行する過程を、図8〜図11の流れ図に従って説明する。
図8は全体処理の流れを示す。オペレータの入力により、加工シミュレーションプログラム5を起動させると(ステップS1)、管理手段32(図1,図4)の処理により、NCデータ6のファイル6Aが選択可能な状態となる。この状態で、希望のNCデータ6のファイル6Aを選択し、オブジェクト作成の指令を入力すると(S2)、まずNCデータオブジェクト21が生成され(S3)、その後に各NC1行オブジェクト22が順次生成される(S4)。各NC1行オブジェクト22の生成の過程で、その下位に属する命令単位オブジェクト23が生成される。このようにして、階層構造のオブジェクト群7が生成される。なお、上記のオブジェクト作成の指令の入力により、図1の工具データオブジェクト24、工具種別オブジェクト25、および加工情報オブジェクト26も生成される。これらのオブジェクト25,26の生成は、NC1行オブジェクト22の生成の前後のいずれであっても、同時であっても良い。
このようにオブジェクト群7が生成されると、管理手段32がその生成完了を認識してシミュレーションの実行指令を与える。この実行指令は、管理手段32に対するオペレータの操作によって与えるようにしても良い。
【0029】
図9は、NC1行オブジェクト22の作成の過程を示す。図5のNC1行オブジェクト生成部39により、NCデータオブジェクト21のデータとして持つNCデータ6から、1行の文字列を抽出し、NC1行クラス41に引数として与える(ステップR1)。これにより、NC1行クラス41を、そのクラスのインスタンス、つまり実体のあるオブジェクトとしたNC1行オブジェクト22が生成される(R2)。このNC1行オブジェクト22の生成過程で、下位の命令単位毎のクラス33b(図5)に命令単位オブジェクト23を自己生成させ、その自己生成された命令単位オブジェクト23を、NC1行オブジェクト22の持つ配列要素に追加する。これにより一つのNC1行オブジェクト22が完成する。
ついで、NCデータ6の文字列の行ナンバーを示す行カウンタをデクリメントし(またはインクリメントし)(R3)、最終行か否かの判定を行う(R4)。最終行でなければ、NCデータ6の次の1行の文字列を抽出し、上記と同様にしてNC1行オブジェクト22を生成する。このような処理を繰り返し、NCデータ6の全ての行について、NC1行オブジェクト22を生成する。
【0030】
図10は、NC1行クラス41により、その生成過程で、下位クラス33b(図5)へ命令単位オブジェクト23の自己生成の指令を行い、配列要素へ追加する手順を示す。
概要を先に説明すると、自己生成は、自己識別関数テーブル42(図12)に列挙された自己識別関数を順に実行して該当クラスに自己識別させ、自己特徴と一致する場合に行われる。自己識別関数は、全ての命令種別のクラス33bについて個別に設けられた関数であり、引数と自己特徴を比較して自己識別する。
ステップ順に説明する。NC1行クラス41のメソッドは、自己識別関数テーブル42(図12)の配列値を初期化し(ステップQ1)、該当配列値の自己識別関数を読み込む(Q2)。配列値からテーブル終端か否かを判断し(Q3)、終端でなければ以下の処理Q4〜Q10を進める。次のステップQ4,Q5については詳細処理であるため、後に説明する。ステップQ6において、上記の読み込んだ自己識別関数をコールする。
【0031】
このコールにより、図11に示すように、その自己識別関数を持つ命令種別のクラス33bでは、自己識別関数を実行し、引数であるNC命令が自己特徴と一致するか否かを判断する(U2)。一致しない場合は、不一致の返答をNC1行クラス41に返し、オブジェクトの生成は行わない。一致する場合は、その命令種別のクラス33bのインスタンスとなる命令単位オブジェクト23を、そのクラス33bの持つ自己生成メソッドによって自己生成し、一致の返答をNC1行クラス41に返す。
具体例で説明すると、読み出された自己識別関数が、工具命令(Tコード)クラスの自己識別関数であったとする。この場合、工具命令のクラスがその自己識別関数を実行することになる。このとき、工具命令クラスには、NC1行の文字列が引数として渡されていて、その文字列の示す命令がX方向の移動指令(Xコード)であったとする。そうすると、自己識別関数を実行している工具命令のクラスは、自己特徴である工具命令と引数である移動指令とが一致しないため、不一致の返答を返し、インスタンスとなるオブジェクトを生成しない。引数が工具命令である場合は、自己特徴と一致するため、工具命令のクラスのインスタンスとなる命令単位オブジェクト23を生成し、一致の返答をNC1行クラス41に返す。
【0032】
図10のステップQ7では、命令種別のクラス33bから返される返答を判断し、自己特徴と不一致の返答の場合は、次の自己識別関数の読み込み(Q10,Q2)に進む。自己特徴と一致の返答の場合は、NC1行オブジェクト22の保有する配列要素に、その自己生成された命令単位オブジェクト23を追加し(Q8)、配列値を初期化した後に(Q9)、次の自己識別関数の読み込み(Q2)に進む。
【0033】
このような処理を、自己識別関数テーブル42の終端の自己識別関数まで繰り返す。したがって、NC1行オブジェクト22は、引数に該当する命令単位オブジェクト23を保有することになる。
具体例で説明すると、NC1行クラス41に引数として渡されたNC命令が工具命令であったとする。その場合、自己識別関数テーブル42に列挙された自己識別関数が順次コールされ、その自己識別関数に該当する命令種別のクラス33bで自己識別関数を実行することになるが、コールされた自己識別関数に対応する命令種別のクラス33bが移動命令のクラスであった場合は、自己特徴に一致しないため、不一致の返答がなされ、次の自己識別関数がコールされる。次の自己識別関数も工具命令以外のNC命令、例えばC軸命令であったとすると、不一致の返答がなされ、さらに次の自己識別関数がコールされる。このようにして自己識別関数テーブル42の自己識別関数が順次コールされ、工具命令の自己識別関数がコールされると、引数である工具命令が工具命令のクラス33bの自己特徴と一致することになり、その工具命令のクラス33bの命令単位オブジェクト23が自己生成される。また、その自己生成された命令単位オブジェクト23が、NC1行クラス41のインスタンスであるNC1行オブジェクト22に配列要素として保有されることになる。
【0034】
図10のステップQ4,Q5の処理は、引数とされたNC1行文字列が複数の命令を含む場合にも対処可能とするための処理を示す。図13の具体例と共に説明する。
引数のNC1行文字列が、NC命令として、「REC/100」の命令と、「T0」の命令と、「M0」の命令を含む「REC/100 T0 M0」であったとする。なお、ここでNCコードで示した「REC/100」等の命令は、仮に示したコードであり、その内容は何であっても良い。
ステップQ4では、自己識別関数テーブル42における一つ前の自己識別関数の読み出し時に、自己特徴と一致するとして命令単位オブジェクト23が自己生成された場合に、その自己生成された命令の文字列を引数から引く処理を行う。その結果、図13の例では、残された文字列は「T0 M0」となり、2つのNC命令が残ることになる。なお、1行文字列に複数のNC命令を含む場合、その1行中の最先のNC命令から自己識別,自己生成が行われる。
ステップQ5では、文字列が残っているか否かを判別し、残っていない場合はそのNC1行クラス41の処理を終了する。図13の例では、まだ文字列「T0 M0」が残っているため、処理が続けられることになる。
ついで、文字列「T0」のNC命令の命令単位オブジェクト23が自己生成されると、その文字列「T0」が次の繰り返し過程のステップQ4で引かれ、「M0」が残る。文字列「M0」のNC命令の命令単位オブジェクト23が自己生成されると、文字列は0となるため、ステップQ5からNC1行クラス41の処理の終了となる。
このようにして、1行文字列が「REC/100 T0 M0」のNC1行オブジェクト22は、その配列要素として、「REC/100」の命令単位オブジェクト23と、「T0」の命令単位オブジェクト23と、「M0」の命令単位オブジェクト23との3つの命令単位オブジェクト23を保有することになる。
このように、1行文字列に含まれる命令個数にかかわらず、命令単位オブジェクト23の自己生成が行える。1行文字列に含まれるNC命令が一つである場合は、自己生成されると、次の繰り返し過程で文字列が0となるため、そこで処理が終了することになる。
【0035】
シミュレーションの実行、つまりオブジェクト群7の生成後のシミュレーションの実行は、オブジェクト群7の生成の完了が管理手段32が認識することで、または管理手段32にオペレータ等が実行の指令を与えることで、管理手段32が実行命令を与えることにより行われる。この実行命令は、NCデータオブジェクト21から、最初のNC1行オブジェクト22に伝えられ、その下位の最初の命令単位オブジェクト23に伝えられる。命令単位オブジェクト23は、実行完了をNC1行オブジェクト22に返し、NC1行オブジェクト22は次の命令単位オブジェクト23に実行命令を伝える。次の命令単位オブジェクト23がない場合は、次のNC1行オブジェクト22に実行命令が伝えられる。このようにして、命令単位オブジェクト23が生成された順に実行命令が伝えられる。
各命令単位オブジェクト23は、実行命令によって、その命令単位オブジェクト23の独自の実行メソッドを実行する。例えば、作画や、現在座標の移動、工具の交換(タレットの割出回転)等を行う。その結果、図3のように、NCデータ6の実行結果の図が画面表示装置8のシミュレーション結果画面11に表示される。オペレータは、この画面表示内容を見て、NCデータ6の不具合を発見することができる。
【0036】
なお、上記の説明では省略したが、より具体的には、例えば各NC1行オブジェクト22は、下位のオブジェクトとして、命令種別基底クラス33a(図5)であるオブジェクトと、その派生クラスとなるいずれかの命令種別のクラス33bをインスタンスとした一つまたは複数の命令単位オブジェクト23を持つものとされる。オブジェクト群の作成時に,命令種別基底クラス33a自体を明示的に作成することはしていないが、派生クラス33bには基底クラスから性質を受け継ぐことを宣言しているので、例えば派生クラスのインスタンスの生成により、基底クラス33aを持つことになる。実行過程では、例えば、まず命令種別基底クラス33a(図5)のオブジェクトに実行命令が伝えられるが、命令種別基底クラス33aは実行メソッドの具体的内容がなく、具体的なシミュレーションの処理は行わない。
【0037】
この加工シミュレーション装置1は、このように、オブジェクト指向を利用した自己生成型とし、命令単位オブジェクト23を自己生成するものとしたため、シミュレーションプログラム5のメンテナンス性に優れ、NCデータ5に対応したNC命令の種別の追加,変更,削除の対応が容易に行える。例えば、NC命令の追加,変更,削除に対応して、命令種別のクラス33bと自己識別関数テーブル42の自己識別関数を追加,変更,削除するだけで、他に影響を与えずに対処することができる。
【0038】
上記の説明は、加工シミュレーション装置1の観点から行ったが、この発明は加工シミュレーションプログラム5の発明としても捕らえることができる。
この加工シミュレーションプログラム5は、加工機械を数値制御する手続き型言語のNCデータ6をシミュレーションする、コンピュータで実行可能なプログラムであって、NCデータ6から、このNCデータ6の所定区分毎の文字列をデータとして持つ複数のNC1行オブジェクト22を生成する手順と、これらのNC1行オブジェクト22の下位のオブジェクトとして、NC1行オブジェクト22の持つNCデータの命令毎のオブジェクトである命令単位オブジェクト23を生成する手順と、生成された各命令単位オブジェクト23に順次実行指令を与える手順とを含む。
上記命令単位オブジェクト23は、自己のNC命令種別のデータと、必要な特有属性データと、上記実行指令に応答して自己のNC命令種別および特有属性データに応じたシミュレーション処理を行う実行メソッドとを有するものである。
命令単位オブジェクト23を生成する手順は、NC命令の種別毎にクラス定義された各々の命令種別クラス33により、上記NC1行オブジェクト22から渡されたNC命令が自己のNC命令の種別に合致するか否かを判断し、合致する場合に自己のクラスのインスタンスとして上記命令単位オブジェクト23を生成する手順とする。
命令単位オブジェクト23を生成する手順は、この実施形態では、NC1行オブジェクト22を生成する手順の途中で行われるが、NC1行オブジェクト22の生成の後に行うようにしても良い。
【0039】
【発明の効果】
この発明の加工シミュレーション装置は、オブジェクト指向を利用した自己生成型のシミュレーション装置とし、命令単位のオブジェクトを自己生成するものとしたため、シミュレーションプログラムのメンテナンス性に優れ、NCデータに対応したNC命令の種別の追加,変更,削除の対応が容易に行える。
パンチプレスのNCデータに対応するものとし、工具種別オブジェクト生成手段とを設けた場合は、種々の工具を持つパンチプレスに対するシミュレーションに対しても、メンテナンス性に優れたものとなる。
この発明の加工シミュレーションプログラムは、オブジェクト指向を利用した自己生成型のシミュレーションプログラムとし、命令単位のオブジェクトを自己生成するものとしたため、メンテナンス性に優れ、NCデータに対応したNC命令の種別の追加,変更,削除の対応が容易に行える。
【図面の簡単な説明】
【図1】この発明の一実施形態にかかるオブェジェクト指向型加工シミュレーション装置とその生成されたオブジェクト群の階層関係を示す概念構成図である。
【図2】同加工シミュレーション装置のハードウェア構成例の概略説明図である。
【図3】同加工シミュレーション装置における画面表示装置の画面例の説明図である。
【図4】同加工シミュレーション装置の管理手段と命令単位オブジェクト生成手段の概念構成のブロック図である。
【図5】同加工シミュレーション装置の命令単位オブジェクト生成手段の概念構成の詳細のブロック図である。
【図6】NC1行オブジェクトの概念構成の説明図である。
【図7】命令単位オブジェクトの概念構成の説明図である。
【図8】同加工シミュレーション装置の全体処理の概略を示す流れ図である。
【図9】そのNC1行オブジェクトの生成過程を示す流れ図である。
【図10】そのNC1行オブジェクトによる命令種別クラスへの自己生成の指令と、その形成されたオブジェクトの保有の処理を示す流れ図である。
【図11】命令種別クラスの自己生成過程の流れ図である。
【図12】自己識別関数テーブルの説明図である。
【図13】1行文字列から自己生成された文字列を引く処理の説明図である。
【図14】パンチプレスの各部の構成および動作の説明図である。
【符号の説明】
1…加工シミュレーション装置
2…コンピュータ
3…加工シミュレーションプログラム
6…NCデータ
7…オブジェクト群
8…画面表示装置
21…NCデータオブジェクト
22…NC1行オブジェクト
23…命令単位オブジェクト
24…工具データオブジェクト
25…工具種別オブジェクト
31…命令単位オブジェクト生成手段
32…管理手段
33…命令種別クラス
33a…命令種別基底クラス
33b…命令種別毎のクラス
34…工具データ抽出手段
35…工具種別オブジェクト生成手段
36…加工情報オブジェクト生成手段
41…NC1行クラス
42…自己識別関数テーブル
Claims (3)
- 加工機械を数値制御する手続き型言語のNCデータをシミュレーションする装置であって、
NCデータの命令毎のオブジェクトである命令単位オブジェクトを生成する命令単位オブジェクト生成手段と、
生成された命令単位オブジェクトに実行指令を与える管理手段とを備え、
上記命令単位オブジェクトは、自己のNC命令種別のデータと、必要な特有属性データと、上記実行指令に応答して自己のNC命令種別および特有属性データに応じたシミュレーション処理を行う実行メソッドとを有するものであり、
上記命令単位オブジェクト生成手段は、NC命令の種別毎にクラス定義された命令種別クラスを有し、これらの命令種別クラスは、渡されたNC命令が自己のNC命令の種別に合致するか否かを判断し、合致する場合に自己のクラスのインスタンスとして上記命令単位オブジェクトを生成するものとした、
オブジェクト指向型加工シミュレーション装置。 - 上記加工機械がパンチプレスであり、上記NCデータに属性データとして記述された工具についてのデータを上記NCデータから抽出する工具データ抽出手段と、抽出された工具データにおける工具の種別毎のオブジェクトである工具種別オブジェクトを生成する工具種別オブジェクト生成手段とを設け、この工具種別オブジェクト生成手段は、その工具種別の工具に関するデータとシミュレーション処理時にその工具を作画する作画メソッドとを有するものであり、上記命令単位オブジェクトのうち、工具命令の命令単位オブジェクトは、実行メソッドにおけるシミュレーション処理に上記工具種別オブジェクトの作画メソッドを用いるものとした請求項1記載のオブジェクト指向型加工シミュレーション装置。
- 加工機械を数値制御する手続き型言語のNCデータをシミュレーションする、コンピュータで実行可能なプログラムであって、
NCデータから、このNCデータの所定区分毎の文字列をデータとして持つ複数のNC1行オブジェクトを生成する手順と、
これらのNC1行オブジェクトの下位のオブジェクトとして、NC1行オブジェクトの持つNCデータの命令毎のオブジェクトである命令単位オブジェクトを生成する手順と、
生成された各命令単位オブジェクトに順次実行指令を与える手順とを含み、
上記命令単位オブジェクトは、自己のNC命令種別のデータと、必要な特有属性データと、上記実行指令に応答して自己のNC命令種別および特有属性データに応じたシミュレーション処理を行う実行メソッドとを有するものであり、
上記命令単位オブジェクトを生成する手順は、NC命令の種別毎にクラス定義された各々の命令種別クラスによって、上記NC1行オブジェクトから渡されたNC命令が自己のNC命令の種別に合致するか否かを判断し、合致する場合に自己のクラスのインスタンスとして上記命令単位オブジェクトを生成する手順とした、
オブジェクト指向型加工シミュレーションプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002331943A JP4085789B2 (ja) | 2002-11-15 | 2002-11-15 | オブジェクト指向型加工シミュレーション装置およびオブジェクト指向型加工シミュレーションプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002331943A JP4085789B2 (ja) | 2002-11-15 | 2002-11-15 | オブジェクト指向型加工シミュレーション装置およびオブジェクト指向型加工シミュレーションプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004164485A JP2004164485A (ja) | 2004-06-10 |
JP4085789B2 true JP4085789B2 (ja) | 2008-05-14 |
Family
ID=32809165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002331943A Expired - Fee Related JP4085789B2 (ja) | 2002-11-15 | 2002-11-15 | オブジェクト指向型加工シミュレーション装置およびオブジェクト指向型加工シミュレーションプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4085789B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103302172B (zh) * | 2013-06-21 | 2015-03-18 | 济南铸造锻压机械研究所有限公司 | 平板冲孔生产线智能适配模具的加工方法及*** |
JP5939213B2 (ja) * | 2013-08-09 | 2016-06-22 | 株式会社安川電機 | ロボット制御装置及びロボット制御方法 |
-
2002
- 2002-11-15 JP JP2002331943A patent/JP4085789B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004164485A (ja) | 2004-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5850535A (en) | Roll-back during regeneration on a computer-aided design system | |
US5794042A (en) | File management apparatus permitting access to portions of a file by specifying a data structure identifier and data elements | |
US6539399B1 (en) | Stand alone data management system for facilitating sheet metal part production | |
CN102269989B (zh) | 基于过程控制标签间关系的用于数据驱动界面的方法及装置 | |
US7159209B1 (en) | Inter-application validation tool for use in enterprise architecture modeling | |
AU4098700A (en) | Circuit arrangement for measuring the resistances of a pressure-sensitive resistance mat | |
JP2000155859A (ja) | 数値解析用メッシュ生成方法およびメッシュ生成装置 | |
JPH0683598A (ja) | ジョブフロー仕様書自動作成方法 | |
CN102597949B (zh) | 计算机辅助设计技术***的方法 | |
US5581676A (en) | Drawing processor and machining program processor for generating a machining program and method therefor | |
US5341507A (en) | Data drive type information processor having both simple and high function instruction processing units | |
JP4085789B2 (ja) | オブジェクト指向型加工シミュレーション装置およびオブジェクト指向型加工シミュレーションプログラム | |
CN116644489A (zh) | 一种三维软件组合孔快速设计的方法、***、装置及存储介质 | |
JP2004094432A (ja) | 制御プログラム作成支援システム及びその支援方法 | |
JP4088760B2 (ja) | 設計作業支援装置 | |
CN112783913B (zh) | 数据库更新方法、装置、设备及存储介质 | |
AU760395B2 (en) | Program reproducing method and device, and medium on which program for program reproduction recording | |
JP3115578B2 (ja) | プログラム開発装置 | |
JP3623248B2 (ja) | 複合加工用自動プログラミング装置 | |
JP2571144B2 (ja) | プログラム開発装置 | |
JP2004310317A (ja) | 業務支援装置 | |
CN117056994B (zh) | 一种大数据建模的数据处理*** | |
CN112764396B (zh) | 一种组态方法和装置 | |
US20040236540A1 (en) | CAD system utilizing network | |
JP2004303181A (ja) | 設計作業支援装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050818 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070816 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070828 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070925 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080129 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080211 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110228 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110228 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120229 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130228 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140228 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |