(57)【特許請求の範囲】
【請求項１】
加工物の上面の加工経路と加工物の下面の加工経路とが異なる加工物の形状データを作成もしくは読み込んで上下の加工経路の要素を対応させ、上下の加工経路を要素単位で補間しながら加工を行うＮＣデータを生成する機能を備えたＮＣ自動プログラミング装置において、
上側または下側の加工経路の１要素を任意に選択すると共に前記１要素に対応させる他側の面の加工経路を複数の要素で選択する手段と、
前記複数の要素における各要素の加工経路の長さに対応させて前記１要素を前記複数の要素の数で複数に分割する手段とを備えたことを特徴とするＮＣ自動プログラミング装置。
【請求項２】
加工物の上面の加工経路と加工物の下面の加工経路とが異なる加工物の形状データを作成もしくは読み込んで上下の加工経路の要素を対応させ、上下の加工経路を要素単位で補間しながら加工を行うＮＣデータを生成する機能を備えたＮＣ自動プログラミング装置において、
上側または下側の加工経路の１要素を任意に選択すると共に前記１要素に対応させる他側の面の加工経路を複数の要素で選択する手段と、
前記１要素を前記複数の要素の数で複数に等分割する手段とを備えたことを特徴とするＮＣ自動プログラミング装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＮＣ自動プログラミング装置の改良に関する。
【０００２】
【従来の技術】
上面の加工経路と下面の加工経路とが異なる加工物の形状データを作成もしくは読み込んで上下の加工経路の要素を対応させ、上下の加工経路を要素単位で補間しながら外周部の加工を行うＮＣデータを生成する機能を備えたＮＣ自動プログラミング装置が既に公知であり、ワイヤ放電加工機または５軸以上の送り軸を備えた工作機械等のＮＣデータの作成に利用されている。
【０００３】
この種のＮＣ自動プログラミング装置におけるＮＣデータ生成機能のアルゴリズムは、概念的に、図１のフローチャートによって示すことができる。いま仮に図６に示すような上面側加工経路ＰＴ１と下面側加工経路ＰＴ２とを備えた加工物のＣＡＤデータがあったとする。
【０００４】
この形状データに対して従来のＮＣ自動プログラミング装置によりＮＣデータの生成処理を実行させたとすると、ＮＣ自動プログラミング装置は、まず、初期化された指標ｉの値に基いて上面側加工経路ＰＴ１と下面側加工経路ＰＴ２の加工開始点Ｐ０，Ｑ０の座標値、つまり、各々の加工経路における最初の要素の始点の座標値を読み込んで始点記憶レジスタＲＰＳ，ＲＱＳに記憶し（ステップＴ１〜ステップＴ３）、更に、指標ｉの値を１インクリメントして、上面側加工経路ＰＴ１と下面側加工経路ＰＴ２における次の点Ｐ１，Ｑ１の座標値、要するに、各々の加工経路における最初の要素の終点の座標値を読み込んで、終点記憶レジスタＲＰＥ，ＲＱＥに記憶する（ステップＴ４〜ステップＴ７）。
【０００５】
ここで、ＮＣ自動プログラミング装置は上面側加工経路ＲＰＳ〜ＲＰＥ間の一要素分の移動量と下面側加工経路ＲＱＳ〜ＲＱＥ間の一要素分の移動量とを求め、ワイヤまたは工具が上面側加工経路ＰＴ１をＲＰＳからＲＰＥまで移動する間に該ワイヤまたは工具が下面側加工経路ＰＴ２をＲＱＳからＲＱＥまで移動するような移動指令を求め、この移動指令を加工プログラムの一部としてメモリに追加記憶する（ステップＴ８〜ステップＴ１０）。そして、ＮＣ自動プログラミング装置は、現時点における終点記憶レジスタＲＰＥ，ＲＱＥの内容を上面側加工経路ＰＴ１と下面側加工経路ＰＴ２における次の要素の始点として始点記憶レジスタＲＰＳ，ＲＱＳに更新記憶し、次の一要素分の移動量の算出に備える（ステップＴ１１）。
【０００６】
以下、最後の要素の終点となる加工終了点に対する処理が完了するまでの間、指標ｉの値を次々と歩進して前記と同様の処理を繰り返して行く結果、最終的には、上面側加工経路ＰＴ１を構成する１つ１つの要素と下面側加工経路ＰＴ２を構成する１つ１つの要素とが、加工開始点を基準として、例えば、上面側加工経路ＰＴ１の第１要素と下面側加工経路ＰＴ２の第１要素、また、上面側加工経路ＰＴ１の第２要素と下面側加工経路ＰＴ２の第２要素・・・というように、逐次端から一対一の関係で対応づけられて行くことになる。
【０００７】
従って、図６に示すように上面側加工経路ＰＴ１と下面側加工経路ＰＴ２とが単純なオフセット関係となっているような場合はよいが、例えば、図７に示すように、上面側加工経路の１つの要素に対応させて下面側加工経路の複数の要素を加工したいといった場合に問題が生じることになる。
【０００８】
図７の例では上面側加工経路の１つの円弧要素Ｐi 〜Ｐi+1 に対して下面側加工経路の３つの直線要素Ｑi 〜Ｑi+1 ，Ｑi+1 〜Ｑi+2 ，Ｑi+2 〜Ｑi+3 を対応させて加工を行おうとする場合について示しており、当然、このような加工に際しては、下面側加工経路の複数の要素で形成される一連の輪郭、例えば、図７における３つの直線要素で形成される折れ線と上面側加工経路の１つの円弧要素との間を滑らかに補間して加工する必要があるが、このまま前述のアルゴリズムを適用してＮＣ自動プログラミング装置にＮＣデータの生成処理を実行させると、図７に一点鎖線で示すように、上面側加工経路の１つの円弧要素Ｐi 〜Ｐi+1 と下面側加工経路の１つの直線要素Ｑi 〜Ｑi+1 とが一対一に対応してしまうので、設計者が意図したものとは全く異なる加工物が生成されてしまうことになる。
【０００９】
これは、既に述べた通り、上面側加工経路を構成する１つ１つの要素と下面側加工経路を構成する１つ１つの要素とが、加工開始点を基準として端から順に一対一の関係で対応づけられて行くからである。
【００１０】
更に、上面側加工経路のＰi+1 点以降の要素と下面側加工経路のＱi+1 点以降の要素との間で、上面側加工経路Ｐi 〜Ｐi+1 と共に加工すべきである直線要素Ｑi+1 〜Ｑi+2 ，Ｑi+2 〜Ｑi+3 に相当する２要素分の対応ずれが定常的に発生することになるので、図７に一点鎖線で示すようなコーナー部の加工異常にとどまらず、加工物全体がでたらめに切り刻まれるということにもなり兼ねない。
【００１１】
そこでこのような問題を回避するためには、複数の要素に対応させるべき１つの要素の側、つまり、図７の例では上面側加工経路の円弧要素Ｐi 〜Ｐi+1 の側を、これに対応する下面側加工経路の要素の数に合わせて複数に分割することで、前述のような対応ずれを防止する必要がある。要するに、図７の例では２つの挿入点α，βを円弧要素Ｐi 〜Ｐi+1 の経路上に挿入して円弧要素Ｐi 〜Ｐi+1 を３つの区間に分割することで形状データを修正することになるのだが、この挿入点の位置を求めて形状データに修正を加えるための格別の手段といったものはこれまで提供されていず、全ての演算処理や修正作業はオペレータ自らが行わなければならず、作業に手間取るという問題があった。
【００１２】
【発明が解決しようとする課題】
本発明の目的は、前記従来技術の欠点を解消し、上下の加工経路の要素を一対多に対応させて加工を行うような場合でも、面倒な演算処理や形状データの修正作業をオペレータ自らが行う必要がなく、輪郭加工のためのＮＣデータを簡単に生成することのできるＮＣ自動プログラミング装置を提供することにある。
【００１３】
【課題を解決するための手段】
本発明は、加工物の上面の加工経路と加工物の下面の加工経路とが異なる加工物の形状データを作成もしくは読み込んで上下の加工経路の要素を対応させ、上下の加工経路を要素単位で補間しながら加工を行うＮＣデータを生成する機能を備えたＮＣ自動プログラミング装置において、上側または下側の加工経路の１要素を任意に選択すると共に前記１要素に対応させる他側の面の加工経路を複数の要素で選択する手段と、前記複数の要素における各要素の加工経路の長さに対応させて前記１要素を前記複数の要素の数で複数に分割する手段とを備えたことを特徴とする構成により前記目的を達成した。
【００１４】
また、上側または下側の加工経路の１要素を任意に選択すると共に前記１要素に対応させる他側の面の加工経路を複数の要素で選択する手段と、前記１要素を前記複数の要素の数で複数に等分割する手段とを備えたことを特徴とする構成により同様の目的を達成した。
【００１５】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を説明する。図８は本発明を適用した一実施形態のＮＣ自動プログラミング装置の要部を示すブロック図である。１はマイクロプロセッサ（以下、ＣＰＵという）、６は該ＮＣ自動プログラミング装置の起動プログラムを格納したＲＯＭ、８は各種の制御プログラムやシステムプログラム等を保存したハードディスク、７は演算や表示処理の過程で利用されるデータ等を一時記憶するＲＡＭ、９はフロッピーディスク１０に記憶された加工形状のデータおよび加工プログラム等の読み込みや新たなデータの書き込みに使用されるディスクドライブユニット、３はキーボード、２はグラフィックディスプレイ、４はカーソルの移動や要素選択操作等のためのマウスであり、これらの各要素はバス５を介してＣＰＵ１に接続されている。
【００１６】
このＮＣ自動プログラミング装置は、ＣＡＤ／ＣＡＭに要求される各種の機能、例えば、キーボード３やマウス４を利用した入力操作によって加工形状の形状データを作成するための形状入力機能や、作成された加工形状や指定された工具および切削条件、更には、指定された加工順序等に従って一連の加工プログラムを自動作成するための自動プログラミング機能、また、加工プログラムを自動作成しながら、もしくは、作成済みの加工プログラムを走らせながらシミュレーションを行って、工具経路や工具位置を描画する描画機能等を従来のＮＣ自動プログラミング装置と同様に備え、これを実現するためのシステムプログラムはハードディスク８に格納されている。これらの各種機能の選択は、マウス４でグラフィックディスプレイ２上のカーソルを移動させ、メニュー表示から対応するメニュー項目を選択することで行う。
【００１７】
なお、図８では専らＮＣ自動プログラミング装置に要求される各種の機能を実現するための構成要素について示しており、ＮＣ工作機械の駆動制御に関連する部分については記載を省略している。
【００１８】
図２ないし図５はワイヤ放電加工機または５軸以上の送り軸を備えた工作機械等のために該ＮＣ自動プログラミング装置のＣＡＤ機能で作成された上下の加工経路の輪郭に対し、加工経路の要素を一対多で対応させて加工を行う場合の編集処理の概略を示すフローチャートである。
【００１９】
以下、加工物の上下の加工経路の輪郭が従来と同様にして予めＮＣ自動プログラミング装置のＣＡＤ機能により作成されているものとして、本実施形態に固有の編集処理について説明する。また、加工経路の輪郭の説明については図７の事例をそのまま流用するものとし、グラフィックディスプレイ２には既に図７に示すような上下の加工経路が表示されているものとする。
【００２０】
この編集処理は、上下の加工経路の要素を一対多に対応させて加工を行うような場合にのみ利用するものであり、形状データの作成後、オペレータが編集処理の実行を選択しない場合、つまり、図２におけるステップＳ１の判別結果が偽となった場合には、この段階で作成されている形状データに対し、そのまま図１に示す従来処理が行われ、上面側加工経路を構成する１つ１つの要素と下面側加工経路を構成する１つ１つの要素とが加工開始点を基準として端から順に一対一の関係で対応づけられ、上下の加工経路を要素単位で補間しながら外周部の加工を行うＮＣデータが自動的に生成される。
【００２１】
一方、上下の加工経路の要素を一対多に対応させて加工を行う必要がある場合、オペレータは、まず、編集実行キーを操作して、ＣＰＵ１にステップＳ２以降の処理を実行させることになる。
【００２２】
編集処理を開始したＣＰＵ１は、まず、１つの要素を選択する側の輪郭（本実施形態では上側輪郭とする）から１つの要素を選択する旨のメッセージをグラフィックディスプレイ２上に表示して（ステップＳ２）、オペレータによるマウスクリック操作を待つ待機状態に入る（ステップＳ３）。そして、オペレータがマウスクリックによる選択操作を実施して上側輪郭から１つの要素を選択すると、ＣＰＵ１は、マウスクリックの実施された位置に最も近接する上側加工経路の一要素の始点（Ｕｊ，Ｖｊ）とその終点（Ｕｊ＋１，Ｖｊ＋１）を識別し（ステップＳ４）、各点の座標を始点記憶レジスタＲＰＳおよび終点記憶レジスタＲＰＥに記憶する（ステップＳ５）
図７の例では下側加工経路の複数の要素を対応させる上側加工経路の１つの要素としてＰｉ〜Ｐｉ＋１の要素が選択されるので、結果的に、始点記憶レジスタＲＰＳには図７の（Ｕｉ，Ｖｉ）の座標値が、また、終点記憶レジスタＲＰＥには図７の（Ｕｉ＋１，Ｖｉ＋１）の座標値が記憶されることになる。
【００２３】
次いで、ＣＰＵ１は、上面側加工経路ＲＰＳ〜ＲＰＥ間の一要素分の移動量（道程）を求め（ステップＳ６）、その値を移動量記憶レジスタＳに保存し（ステップＳ７）、選択した輪郭（上側輪郭）の１つの要素に対応させるべき他方の輪郭（下側輪郭）の要素を複数選択する旨のメッセージをグラフィックディスプレイ２上に表示し（ステップＳ８）、指標ｍおよび積算値記憶レジスタΣＳｍの値を零に初期化して（ステップＳ９，ステップＳ１０）、オペレータがマウスクリックによって下側輪郭の要素を選択するか（ステップＳ１１）、または、オペレータが選択終了キーを操作するのを待つ待機状態に入る（ステップＳ１２）。
【００２４】
ここで、オペレータが前記と同様にマウスクリック操作を実施して下側輪郭の一要素を選択すると、ＣＰＵ１は、指標ｍの値を１インクリメントして要素選択数の値を更新し（ステップＳ１４）、マウスクリックの実施された位置に最も近接する下側加工経路の一要素の始点（Ｘｋ，Ｙｋ）とその終点（Ｘｋ＋１，Ｙｋ＋１）を識別し（ステップＳ１５）、各点の座標を始点記憶レジスタＲＱＳ（ｍ）および終点記憶レジスタＲＱＥ（ｍ）に記憶して（ステップＳ１６）、下面側加工経路ＲＱＳ（ｍ）〜ＲＱＥ（ｍ）間の一要素分の移動量を求め（ステップＳ１７）、その値を移動量記憶レジスタＳ（ｍ）に保存すると共に（ステップＳ１８）、積算値記憶レジスタΣＳｍに移動量Ｓ（ｍ）の値を加算記憶する（ステップＳ１９）。
【００２５】
以下、オペレータがマウスクリック操作を実施して下側輪郭の一要素を選択する度に前記と同様にしてステップＳ１４〜ステップＳ１９の処理が繰り返し実行される。
【００２６】
図７の例では上側輪郭の１つの要素に対応させるべき下側輪郭の要素がＱi 〜Ｑi+1 ，Ｑi+1 〜Ｑi+2 ，Ｑi+2 〜Ｑi+3 の３要素であるので、前述したステップＳ１４〜ステップＳ１９の処理は全部で３回実行されることになる。なお、加工開始点からの経路に沿ってＱi 〜Ｑi+1 ，Ｑi+1 〜Ｑi+2 ，Ｑi+2 〜Ｑi+3 の順で要素を選択する必要はなく、例えば、Ｑi+1 〜Ｑi+2 ，Ｑi 〜Ｑi+1 ，Ｑi+2 〜Ｑi+3 の順でもＱi+2 〜Ｑi+3 ，Ｑi 〜Ｑi+1 ，Ｑi+1 〜Ｑi+2 の順でもよく、これら３つの要素が選択される限り選択操作の順列は問わない。
【００２７】
ここでは図７の事例を参考にして説明を進めているので、選択する要素数は３つということになるが、実際には、２つ以上であれば幾つの要素を選択してもよい。
【００２８】
結果的に、移動量記憶レジスタＳ（ｍ）には第ｍ回目のクリック操作で選択された下側輪郭の一要素の移動量が記憶され、また、始点記憶レジスタＲＱＳ（ｍ）および終点記憶レジスタＲＱＥ（ｍ）には第ｍ回目のクリック操作で選択された下側輪郭の一要素の始点と終点とが記憶されることになる。当然、積算値記憶レジスタΣＳｍに記憶される値は、第１回目に選択された一要素の移動量，第２回目に選択された一要素の移動量，・・・，第ｍ回目に選択された一要素の移動量の総和が記憶される。
【００２９】
そして、上側輪郭の１つの要素に対応させるべき下側輪郭の要素の選択操作を全て済ませたオペレータが選択終了キーを操作すると、ＣＰＵ１は指標ｎの値を１に初期化し（ステップＳ１３）、第ｎ番目に選択された下側輪郭の一要素の始点の座標値を始点記憶レジスタＲＱＳ（ｎ）から読み込むと共に（ステップＳ２０）、指標ｒの値を１に初期化し（ステップＳ２１）、第ｒ番目に選択された下側輪郭の一要素の終点の座標値を終点記憶レジスタＲＱＥ（ｒ）から読み込み（ステップＳ２２）、両者が一致するか否かを判別する（ステップＳ２３）。当然、同じ要素の始点と終点とは一致しないので、ステップＳ２３における最初の判別結果（要するにｎ＝ｒ＝１の場合）は必然的に偽となる。
【００３０】
そこで、ＣＰＵ１は指標ｒの値を１インクリメントし（ステップＳ２４）、その値が要素選択数ｍの値を越えているか否かを判別する（ステップＳ２５）。そして、ｒの値が要素選択数ｍを越えていなければ、ＣＰＵ１は、更新された指標ｒの値に基いて再び第ｒ番目に選択された下側輪郭の一要素の終点の座標値を終点記憶レジスタＲＱＥ（ｒ）から読み込み（ステップＳ２２）、その値が第ｎ番目に選択された下側輪郭の一要素の始点の座標値ＲＱＳ（ｎ）と一致するか否かを判別する（ステップＳ２３）。
【００３１】
ここで、第ｎ番目に選択された下側輪郭の一要素の始点の座標値ＲＱＳ（ｎ）が第ｒ番目に選択された下側輪郭の一要素の終点の座標値ＲＱＥ（ｒ）と一致すれば、第ｎ番目に選択された下側輪郭の一要素が加工開始点からの経路上で最も最初の位置に位置する選択要素ではないことが判明するので、ＣＰＵ１は、指標ｎの値を１インクリメントし（ステップＳ２６）、更新された指標ｎの値に基いて再び第ｎ番目に選択された下側輪郭の一要素の始点の座標値ＲＱＳ（ｎ）を読み込み（ステップＳ２０）、第ｎ番目に選択された下側輪郭の一要素が加工開始点からの経路上で最も最初の位置に位置する選択要素となり得るかどうかを、前記と同様、ステップＳ２１〜ステップＳ２５のループ処理で判定する。
【００３２】
結果的に、加工開始点からの経路上で最も最初の位置に位置する選択要素となる選択要素は、如何なる選択要素の終点座標とも一致しない始点座標を有する選択要素、つまり、ステップＳ２５の判別結果が真となる選択要素である。当然、この選択要素は第ｎ回目の選択操作で選ばれた選択要素でもある。
【００３３】
図７の例では選択要素Ｑi 〜Ｑi+1 の終点がＱi+1 、選択要素Ｑi+1 〜Ｑi+2 の終点がＱi+2 、選択要素Ｑi+2 〜Ｑi+3 の終点がＱi+3 であるから、これらの終点のいずれとも異なる始点を有する選択要素Ｑi 〜Ｑi+1 が加工開始点からの経路上で最も最初の位置に位置する選択要素である。
【００３４】
このようにして加工開始点からの経路上で最も最初の位置に位置する選択要素を検出したＣＰＵ１は、指標ｗの値を１に初期化した後（ステップＳ２７）、加工開始点からの経路上で第ｗ番目の位置に位置する一選択要素、つまり、第ｎ回目の選択操作で選ばれた選択要素に対応する移動量を移動量記憶レジスタＳ（ｎ）から読み込み（ステップＳ２８）、その選択要素の移動量Ｓ（ｎ）が全ての選択要素の移動量の総和、つまり、積算値記憶レジスタΣＳｍの値に対して占める割合を求め、その割合をレジスタＺ（ｗ）に記憶する（ステップＳ２９）。
【００３５】
従って、図７の例では加工開始点からの経路上で第１番目の位置に位置する選択要素Ｑi 〜Ｑi+1 が下側輪郭における全ての選択要素の移動量の総和ΣＳｍの値に対して占める移動量の割合がレジスタＺ（１）に記憶されることになる。
【００３６】
次いで、ＣＰＵ１は加工開始点からの経路上で第ｗ番目の位置に位置する一選択要素、つまり、第ｎ回目の選択操作で選ばれた選択要素に対応する終点の座標値を終点記憶レジスタＲＱＥ（ｎ）から読み込むと共に（ステップＳ３０）、指標ｒの値を再び１に初期化し（ステップＳ３１）、第ｒ番目に選択された下側輪郭の一要素に対応する始点の座標値を始点記憶レジスタＲＱＳ（ｒ）から読み込んで（ステップＳ３２）、両者が一致するか否かを判別する（ステップＳ３３）。そして、両者が一致しない場合は指標ｒの値を１インクリメントし（ステップＳ３４）、更新された指標ｒの値に基いて再び第ｒ番目に選択された下側輪郭の一要素に対応する始点の座標値を始点記憶レジスタＲＱＳ（ｒ）から読み込み（ステップＳ３２）、その値が第ｎ番目に選択された下側輪の一郭要素、つまり、加工開始点からの経路上で第ｗ番目の位置に位置する下側輪郭の一要素の終点の座標値ＲＱＥ（ｎ）と一致するか否かを判別する（ステップＳ３３）。
【００３７】
下側輪郭の要素の選択数ｍが２以上である限り、加工開始点からの経路上で最も最初の位置に位置する一選択要素の終点の座標値と一致する始点を備えた選択要素は、選択されたｍ個の下側輪郭要素の中に必ず存在するので、少なくとも、ｗ＝１の場合においては、ステップＳ３２〜ステップＳ３４の処理を繰り返し実行する間に、ステップＳ３３の判別結果が必ず真となる。
【００３８】
そこで、加工開始点からの経路上で第ｗ番目の位置に位置する選択要素、要するに、第ｎ番目に選択された下側輪郭要素の終点の座標値と一致する始点ＲＱＳ（ｒ）を備えた下側輪郭要素を検出したＣＰＵ１は、指標ｗの値を１インクリメントし（ステップＳ３５）、加工開始点からの経路上で第ｗ番目の位置に位置する選択要素、要するに、第ｒ回目の選択操作で選択された選択要素に対応する移動量を移動量記憶レジスタＳ（ｒ）から読み込み（ステップＳ３６）、その選択要素の移動量Ｓ（ｒ）が下側輪郭における全ての選択要素の移動量の総和ΣＳｍの値に対して占める割合を求め、その割合をレジスタＺ（ｗ）に記憶する（ステップＳ３７）。
【００３９】
図７の例では加工開始点からの経路上で最も最初の位置に位置する選択要素、つまり、ｗ＝１の選択要素はＱi 〜Ｑi+1 であり、その終点と一致する座標値Ｑi+1 を始点として備えた下側輪郭要素Ｑi+1 〜Ｑi+２がステップＳ３２〜ステップＳ３４の処理で検出される。その後、指標ｗの値が直ちに１インクリメントされるので、結果的に、選択要素Ｑi+1 〜Ｑi+２は加工開始点からの経路上で第２番目に位置する選択要素として認識され、レジスタＺ（２）には、加工開始点からの経路上で第２番目の位置に位置する選択要素Ｑi+1 〜Ｑi+２の移動量が下側輪郭における全ての選択要素の移動量の総和ΣＳｍの値に対して占める割合が記憶されることになる。
【００４０】
次いで、ＣＰＵ１は指標ｗの値が要素選択数ｍの値に達しているか否か、要するに、ｍ個の選択要素の各々に対し、その移動量が移動量の総和に対して占める割合を算出するための処理が全て行われているか否かを判別する（ステップＳ３８）。そして、移動量の占める割合を求めていない選択要素がまだあって指標ｗの値がｍの値に達していなければ、ＣＰＵ１は、指標ｎに指標ｒの値を置換し（ステップＳ３９）、第ｎ回目の選択操作で選択された選択要素、要するに、加工開始点からの経路上で第ｗ番目の位置に位置する一選択要素の終点に対応する座標値を終点記憶レジスタＲＱＥ（ｎ）から読み込み（ステップＳ３０）、以下、前記と同様の処理を繰り返し実行して、加工開始点からの経路上で前記第ｗ番目の位置に位置する選択要素に続く加工経路下流側の次の一選択要素に対応する指標ｒの値を特定し（ステップＳ３１〜ステップＳ３４）、指標ｗの値を１インクリメントして（ステップＳ３５）、加工開始点からの経路上で第ｗ番目の位置に位置する次の一選択要素に対応する移動量を移動量記憶レジスタＳ（ｒ）から読み込み（ステップＳ３６）、その一選択要素の移動量Ｓ（ｒ）が下側輪郭における全ての選択要素の移動量の総和ΣＳｍの値に対して占める割合を求め、その割合をレジスタＺ（ｗ）に記憶する（ステップＳ３７）。
【００４１】
図７の例では加工開始点からの経路上で第２番目の位置に位置する選択要素、つまり、ｗ＝２の選択要素はＱi+1 〜Ｑi+2 であり、その終点と一致する座標値Ｑi+2 を始点として備えた下側輪郭要素Ｑi+2 〜Ｑi+3 がステップＳ３２〜ステップＳ３４の処理で検出され、その後、指標ｗの値が直ちに１インクリメントされるので、結果的に、選択要素Ｑi+2 〜Ｑi+3 は加工開始点からの経路上で第３番目の位置に位置する選択要素として認識され、レジスタＺ（３）には、加工開始点からの経路上で第３番目の位置に位置する選択要素Ｑi+2 〜Ｑi+3 の移動量が下側輪郭における全ての選択要素の移動量の総和ΣＳｍの値に対して占める割合が記憶されることになる。
【００４２】
ここでは選択要素が３つである図７の事例を参考にして説明を進めているのでｗ＝３となった段階でステップＳ３８の判別結果が偽となり、ステップＳ３０〜ステップＳ３８およびステップＳ３９のループ処理が終了するが、既に述べた通り、実際には２つ以上であれば幾つの要素を選択しても良く、結果的に、選択要素の選択順序とは関わりなく、加工開始点からの経路上で上流側に位置する選択要素の側から順に、ｗ＝１，ｗ＝２，ｗ＝３，・・・の各ｗ番目の位置に位置する一選択要素の移動量が下側輪郭における全ての選択要素の移動量の総和に対して占める割合が求められ、その値がレジスタＺ（ｗ）に順次格納されて行くことになる。当然、選択要素数ｍの値が４であれば３回，選択要素数ｍの値が５であれば４回，・・・と、前述したステップＳ３０〜ステップＳ３８およびステップＳ３９のループ処理が繰り返される。
【００４３】
従って、既に述べた通り、上側輪郭の１つの要素に対応させるべき下側輪郭の要素の各々をオペレータが予め加工経路に沿って順番に上流側からマウスクリックして選択するといった必要性は全くない。
【００４４】
そして、最終的に、加工開始点からの経路上ｗ＝１〜ｍ番目の全ての選択要素の各々が下側輪郭における全ての選択要素の移動量の総和に対して占める割合の各々が求められ、ステップＳ３８の判別結果が偽となると、ＣＰＵ１は指標ｒの値を再び１に初期化し（ステップＳ４０）、割合積算値記憶レジスタΣＺｗの値を０に初期化して（ステップＳ４１）、加工開始点からの経路上で第ｒ番目の位置に位置する一選択要素に対応する割合の値Ｚ（ｒ）を読み込み（ステップＳ４２）、割合積算値記憶レジスタΣＺｗに加算記憶し（ステップＳ４３）、上面側の選択要素である加工経路ＲＰＳ〜ＲＰＥ間の移動軌跡上において、ＲＰＳを始点として、ＲＰＳ〜ＲＰＥ間の移動量に対する移動量の割合がΣＺｗとなる移動位置の座標〔Ｕ（ｒ），Ｖ（ｒ）〕を求め、その位置に一要素の終点および始点となる点のデータを挿入して、ＲＰＳ〜ＲＰＥ間の軌跡を分割する（ステップＳ４４）。
【００４５】
移動位置の座標〔Ｕ（ｒ），Ｖ（ｒ）〕はΣＺｗの値および加工経路ＲＰＳ〜ＲＰＥ間の移動量Ｓと軌跡の方程式により算出することができる。
【００４６】
ｒ＝１の段階では割合積算値記憶レジスタΣＺｗの値が０に初期化されており、レジスタＺ（ｒ）には加工開始点からの経路上で第１番目の位置に位置する下面側の一選択要素Ｑi 〜Ｑi+1 の割合が記憶されているので、図７の例では、選択要素Ｑi 〜Ｑi+1 ，選択要素Ｑi+1 〜Ｑi+2 ，選択要素Ｑi+2 〜Ｑi+3 の経路長の総和に対して選択要素Ｑi 〜Ｑi+1 が占める割合に比例して、例えば、図７における点αの座標値〔Ｕ（１），Ｖ（１）〕が加工経路ＲＰＳ〜ＲＰＥ間の移動軌跡上の分割点として挿入されることになる。
【００４７】
次いで、ＣＰＵ１は指標ｒの値を１インクリメントし（ステップＳ４５）、指標ｒの値が要素選択数ｍの値よりも小さいか否かを判別するが（ステップＳ４６）、指標ｒの値が要素選択数ｍの値よりも小さければ、ＣＰＵ１は、更新された指標ｒの値に基き、再び加工開始点からの経路上で第ｒ番目の位置に位置する一選択要素に対応する割合の値Ｚ（ｒ）を読み込み（ステップＳ４２）、割合積算値記憶レジスタΣＺｗに加算記憶し（ステップＳ４３）、上面側の選択要素である加工経路ＲＰＳ〜ＲＰＥ間の移動軌跡上において、ＲＰＳを始点として、ＲＰＳ〜ＲＰＥ間の移動量に対する移動量の割合がΣＺｗとなる移動位置の座標〔Ｕ（ｒ），Ｖ（ｒ）〕を求め、その位置に一要素の終点および始点となる点のデータを挿入して、ＲＰＳ〜ＲＰＥ間の軌跡を更に分割する（ステップＳ４４）。
【００４８】
ｒ＝２の段階では選択要素Ｑi 〜Ｑi+1 が選択要素Ｑi 〜Ｑi+1 ，選択要素Ｑi+1 〜Ｑi+2 ，選択要素Ｑi+2 〜Ｑi+3 の経路長の総和に対して占める割合が積算値記憶レジスタΣＺｗに既に記憶されており、更に、この値にレジスタＺ（ｒ）に記憶されている加工開始点からの経路上で第２番目の位置に位置する下面側の一選択要素の割合が加算記憶されることになるので、図７の例では、選択要素Ｑi 〜Ｑi+1 ，選択要素Ｑi+1 〜Ｑi+2 ，選択要素Ｑi+2 〜Ｑi+3 の経路長の総和に対して選択要素Ｑi 〜Ｑi+1 とＱi+1 〜Ｑi+2 の和が占める割合に比例して、例えば、図７における点βの座標値〔Ｕ（２），Ｖ（２）〕が加工経路ＲＰＳ〜ＲＰＥ間の移動軌跡上の分割点として新たに挿入されることになる。
【００４９】
最終的に、ｒ＝ｍとなって下面側の選択要素の各々が占める割合が全て加算されれば、ΣＺｗの値は必然的に１となり、ステップＳ４４の処理で算出される移動位置の座標〔Ｕ（ｍ），Ｖ（ｍ）〕の値が加工経路ＲＰＳ〜ＲＰＥの終点座標ＲＰＥと一致することになるで、実際にステップＳ４２〜ステップＳ４４の処理を実施して〔Ｕ（ｍ），Ｖ（ｍ）〕の値を求める必要はない。この実施形態ではこの点を考慮し、ステップＳ４６における判別基準をｒ＜ｍとし、ｒ＝ｍの際の演算処理は非実行としている。
【００５０】
以上の処理により、加工開始点からの経路上で第１番目に位置する下面側の選択要素が下面側選択要素の移動量の総和に対して占める割合，第２番目の位置に位置する下面側の選択要素が下面側選択要素の移動量の総和に対して占める割合，・・・，第ｍ番目（最後）の位置に位置する下面側の選択要素が下面側選択要素の移動量の総和に対して占める割合の各々に比例して、上面側の選択要素ＲＰＳ〜ＲＰＥ間の移動軌跡が座標値〔Ｕ（１），Ｖ（１）〕，〔Ｕ（２），Ｖ（２）〕，・・・，〔Ｕ（ｍ−１），Ｖ（ｍ−１）〕によってＺ（１）：Ｚ（２）：・・・：Ｚ（ｍ）の比率で分割されることになる。
【００５１】
以降の処理に関しては図１に示す従来例と全く同様であり、上面側加工経路を構成する１つ１つの要素と下面側加工経路を構成する１つ１つの要素とが加工開始点を基準として端から順に一対一の関係で対応づけられ、上下の加工経路を要素単位で補間しながら外周部の加工を行うＮＣデータが自動的に生成されてゆくことになるが、下面側の選択要素の選択個数に合わせて本来単一である上面側の選択要素の側を複数に分割するようにしているので、上下の加工経路の対応関係を各位置において常に適確な状態に保って上下の加工経路を補間しながら外周部の加工を行うＮＣデータを作成することができるようになる。
【００５２】
つまり、図７における点α〔Ｕ（１），Ｖ（１）〕と点β〔Ｕ（２），Ｖ（２）〕は、図１の処理においては、加工開始点から数えてi+1 番目の座標値とi+2 番目の座標値として扱われ、編集処理前の上面側加工経路の選択要素の終点Ｐi+1 が第i+1+2 番目の座標値として扱われるということである。要するに、選択要素数がｍであれば、編集処理前の上面側加工経路の選択要素の終点Ｐi+1 が第(m-1)+1 番目の座標値として扱われるわけで、図７の例では(m-1) の値が２になっているということである。
【００５３】
以上、１つの実施形態として、上面側の加工経路の一要素に対応させる下面側の加工経路の要素の長さの割合に比例させて上面側の加工経路の要素を分割する場合について述べたが、ラフな加工のためのＮＣデータを生成するのであれば、必ずしも厳密な比例関係を保つ必要はなく、単に、上面側の加工経路の一要素を下面側の加工経路の要素の選択数で均等に分割してしまっても構わない。
【００５４】
このような処理を行うのであれば、ステップＳ１〜ステップＳ９，ステップＳ１１〜ステップＳ１２，ステップＳ１４，ステップＳ４０〜ステップＳ４１およびステップＳ４３〜ステップＳ４６の処理のみを実施すればよい。但し、この場合、ステップＳ４２に変わる処理としてＺ（ｒ）←１／ｍの演算処理を行う必要がある。無論、同じ演算を繰り返す必要はないのでステップＳ４６からの復帰先はＺ（ｒ）←１／ｍの演算処理とステップＳ４３の処理との間でよい。
【００５５】
要するに、下面側の加工経路の選択要素数ｍを把握して、上面側の選択要素ＲＰＳ〜ＲＰＥ間の移動軌跡上にＳ／ｍの移動量の刻み幅で〔ｍ−１〕個の分割点を挿入するだけのことである。
【００５６】
この場合は必ずしも円滑な加工が行われるとは限らないが、少なくとも上下面の加工要素の数だけは一致させることができるので、対応位置のずれによって図７に一点鎖線で示すような異常加工が行われることだけは確実に防止することができる。
【００５７】
【発明の効果】
本発明によれば、上側または下側の加工経路の１要素を任意に選択し、これに対応させて加工を行うべき他側の面の加工経路の要素を複数選択するだけで、自動プログラミング装置が前記１要素を自動的に分割して上下の加工経路の対応関係を再定義するので、オペレータが面倒な演算処理や形状データの修正作業を行わなくても、上下の要素の対応関係が一対多となるような場合の外周輪郭加工のためのＮＣデータを簡単に生成させることができる。
【図面の簡単な説明】
【図１】ＮＣ自動プログラミング装置におけるＮＣデータ生成機能のアルゴリズムを概念的に示すフローチャートである。
【図２】本発明の一実施形態における編集処理の概略を示すフローチャートである。
【図３】編集処理の概略を示すフローチャートの続きである。
【図４】編集処理の概略を示すフローチャートの続きである。
【図５】編集処理の概略を示すフローチャートの続きである。
【図６】加工物の上面側加工経路の要素と下面側加工経路の要素とが単純な一対一の関係にある場合の要素間の対応づけを示す概念図である。
【図７】上面側加工経路の１つの要素に対応させて下面側加工経路の複数の要素を加工する必要がある場合の要素間の対応づけを示す概念図である。
【図８】本発明の一実施形態におけるＮＣ自動プログラミング装置を示すブロック図である。
【符号の説明】
１  ＣＰＵ
２  グラフィックディスプレイ
３  キーボード
４  マウス
５  バス
６  ＲＯＭ
７  ＲＡＭ
８  ハードディスク
９  ディスクドライブユニット
１０  フロッピーディスク
【図１】
0003545547.tif 000002
【図２】
0003545547.tif 000003
【図３】
0003545547.tif 000004
【図４】
0003545547.tif 000005
【図５】
0003545547.tif 000006
【図６】
0003545547.tif 000007
【図７】
0003545547.tif 000008
【図８】
0003545547.tif 000009