(57)【特許請求の範囲】
【請求項１】
数値制御装置の可動領域設定方法において、
可動領域の境界形状を構成するすべての直線あるいは円を入力するステップと、
前記直線あるいは円で分割される２平面のいずれが可動領域かを指定するステップと、
制御対象可動部の現在位置が指定された可動領域に属するか否かを判定するステップと、
前記可動部の補間後の位置が指定された可動領域に属するか否かを判定するステップと、
前記可動部の現在位置および補間後の位置のいずれも前記可動領域に属する場合は前記可動部の移動を実行するステップと、
前記可動部の現在位置が可動領域に属し前記可動部の補間後の位置が可動領域に属さない場合、前記直線あるいは円迄の移動を実行するステップと、
を有することを特徴とする可動領域設定方法。
【請求項２】
前記可動部の現在位置が前記可動領域に属さず前記可動部の補間後の位置が前記可動領域に属する場合は、前記可動部の移動を実行するステップを有する請求項１記載の可動領域設定方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、制御対象可動部の移動領域あるいは禁止領域等の領域を指定する方法に関する。
【０００２】
【従来の技術】
一般に、旋盤やマシニングセンタ等の工作機械のテーブルや刃物台などの動きを制御して機械加工を行わせる数値制御装置等においては、制御対象可動部の移動位置を数値データとして指定したり、移動限界を数値データとして指定することにより、加工領域の設定や他の機械部材との干渉防止、あるいは可動部材の暴走防止等を行っている。
【０００３】
従来、この制御対象可動部の移動位置や移動限界の指定においては、機械座標、機械原点、プログラム座標、加工原点等の座標データの他に、制御対象可動部の移動位置あるいは移動限界についての位置情報を数値データとして正確に定義し、この数値データを用いて加工プログラム等の作業指示を行うプログラムの作成を行っている。
【０００４】
【発明が解決しようとする課題】
しかしながら、前記の従来の制御対象可動部の移動に関する領域を指定する方法においては、制御対象可動部の移動位置あるいは移動限界についての位置情報を数値データとして正確に定義する必要から、多くの演算作業量を要するという問題点がある。
【０００５】
また、この制御対象可動部の移動に関する領域指定における作業量の増大により、そのデータを用いて形成される領域加工等の作業プログラムの作成のための作業量が膨大となり、領域加工等の作業の効率が低下するという２次的な問題点も発生することになる。
【０００６】
そこで、本発明は前記した従来の領域の指定方法の問題点を解決し、制御対象可動部の移動位置あるいは移動限界についての位置情報を数値データとして厳密に定義する作業を行うことなく、制御対象可動部の移動領域あるは禁止領域の領域指定を容易に行うことを目的とする。
【０００７】
【課題を解決するための手段】
本発明は、前記目的を達成するために、数値制御装置の可動領域設定方法において、可動領域の境界形状を構成するすべての直線あるいは円を入力するステップと、前記直線あるいは円で分割される２平面のいずれが可動領域かを指定するステップと、制御対象可動部の現在位置が指定された可動領域に属するか否かを判定するステップと、前記可動部の補間後の位置が指定された可動領域に属するか否かを判定するステップと、前記可動部の現在位置および補間後の位置のいずれも前記可動領域に属する場合は前記可動部の移動を実行するステップと、前記可動部の現在位置が可動領域に属し前記可動部の補間後の位置が可動領域に属さない場合、前記直線あるいは円迄の移動を実行するステップとを有することを特徴とするものである。
【０００８】
さらに、前記可動部の現在位置が前記可動領域に属さず前記可動部の補間後の位置が前記可動領域に属する場合は、前記可動部の移動を実行するステップを有するようにした。
【００１１】
【作用】
本発明によれば、前記構成とすることによって、可動領域の境界形状を構成するすべての直線あるいは円を入力し、入力された直線あるいは円で分割される２平面のいずれが可動領域かを指定することにより、可動領域を指定することができる。
【００１２】
そして、制御対象可動部の現在位置が指定された可動領域に属するか否かを判定するとともに、前記可動部の補間後の位置が指定された可動領域に属するか否かを判定し、前記可動部の現在位置および補間後の位置のいずれも前記可動領域に属する場合は前記可動部の移動を実行する。また、前記可動部の現在位置が可動領域に属し前記可動部の補間後の位置が可動領域に属さない場合には、前記直線あるいは円迄の移動を実行するようにした。
【００１３】
さらには、前記可動部の現在位置が前記可動領域に属さず前記可動部の補間後の位置が前記可動領域に属する場合には、前記可動部の移動を実行する。
【００１４】
【実施例】
以下、本発明の実施例を図を参照しながら詳細に説明するが、本発明は実施例に限定されるものではない。
【００１５】
〔本発明の実施例の構成〕
図１は本発明の実施例の円による領域を指定する設定画面を説明する図であり、図２は本発明の実施例の直線による領域を指定する設定画面を説明する図であり、図３は本発明の実施例の円弧による領域を指定する設定画面を説明する図である。
【００１６】
本発明の実施例における領域指定においては、円による領域の指定、直線による領域の指定、あるいは円弧による領域の指定等の基本的な図形による領域指定を用いて行われる。
【００１７】
円による領域の指定においては、例えば円の中心座標と円の半径を入力することにより円を定義し、その円の内側あるいは外側を指定することにより領域の指定を行う。また、直線による領域の指定においては、例えば２点の座標の入力あるいは１点の座標と線分の角度の入力によって直線を定義し、その直線の上下あるいは左右を指定することにより領域の指定を行う。また、円弧による領域の指定においては、例えば円弧の中心座標と円弧の半径を入力することにより円弧を定義し、その円弧の中心点と同じ側あるいは反対側を指定することにより領域の指定を行う。
【００１８】
また、その他の領域は、前記した円による領域の指定、直線による領域の指定、あるいは円弧による領域の指定等の基本的な図形を組み合わせることによって領域指定を行うことができる。例えば、３角形の領域は３本の直線による領域を組み合わせることにより可能である。
【００１９】
本発明の実施例においては、この領域の指定をＣＲＴ等の表示指定画面により行う。図１〜図３にはその表示指定画面の一実施例を示している。図の表示指定画面では、現在指定している形状を表示する部分と、制御対象可動部の現在位置を示す部分と、指定中の図形を表示する部分と、その指定中の図形を定義するデータの表示部分と、指定図形の何れの領域を制御対象可動部の移動領域あるは禁止領域とするかを設定する部分を有している。
【００２０】
そして、この表示指定画面の制御対象可動部の現在位置を示す部分には、制御対象可動部を図示していない制御装置からの位置データにより現在位置の表示が行われ、その他の部分については、図示していない入力装置からの入力値に応じて表示が行われる。
【００２１】
以下、本発明の実施例の円による領域の指定、直線による領域の指定、あるいは円弧による領域の指定の基本的な図形による領域指定を図１〜図３を用いて説明する。
【００２２】
（円による領域の指定）
図１は、本発明の実施例の領域指定に用いるＣＲＴ等の表示指定画面において、円による領域を指定する指定画面を示している。図１においては、現在指定中の領域の形状が円であることが例えばタイトル表示によって示され、制御対象可動部の現在位置はＸ軸，Ｙ軸，およびＺ軸の座標データで示され、現在指定している形状が円の図形形状で示され、その円の中心の座標データがＩ，Ｊの値で、円の半径がＲの値で示されている。また、円の内側を禁止領域とすることがリミット区域において、移動領域と禁止領域の選択によって示されている。
【００２３】
なお、この現在指定している円の図形形状については、円の中心の座標データＩ，Ｊの値と、円の半径Ｒの値を入力して、その値に従って内部処理により図形を指定画面に表示することができる。なお、前記図形形状の指定において、工具の直径φを設定し、その工具の直径φを考慮して行うこともできる。
【００２４】
（直線による領域の指定）
図２は、本発明の実施例の領域指定に用いるＣＲＴ等の表示指定画面において、直線による領域を指定する指定画面を示している。図２においては、現在指定中の領域の形状が直線であることが例えばタイトル表示によって示され、制御対象可動部の現在位置は前記円による領域指定と同様にＸ軸，Ｙ軸，およびＺ軸の座標データで示され、現在指定している形状が直線の図形形状で示され、その直線の始点及び終点の座標データがＸ１，Ｙ１およびＸ２，Ｙ２により、あるいはその直線の始点の座標データＸ１，Ｙ１および方向を示す角度Ａによって示されている。なお、この直線は、前記２点あるいは１点と角度により定められる線分を両方向に延長したものとして設定される。また、φは、工具の直径を設定するものである。
【００２５】
また、直線の上側を禁止領域とすることがリミット区域において、移動領域と禁止領域の選択によって示されている。なお、この実施例では、指定画面を正面に見て直線の上側あるいは下側によりリミット区域を指定しているが、指定画面を正面に見て直線の右側あるいは左側によりリミット区域を指定することも可能である。この現在指定している直線円の図形形状については、直線の始点及び終点の座標データがＸ１，Ｙ１およびＸ２，Ｙ２により、あるいはその直線の始点の座標データＸ１，Ｙ１および方向を示す角度Ａと工具の直径φを入力して、その値に従って内部処理により図形を指定画面に表示することができる。
【００２６】
（円弧による領域の指定）
図３は、本発明の実施例の領域指定に用いるＣＲＴ等の表示指定画面において、円弧による領域を指定する指定画面を示している。図３においては、現在指定中の領域の形状が円弧であること例えばタイトル表示によってが示され、制御対象可動部の現在位置は前記円及び直線の場合と同様にＸ軸，Ｙ軸，およびＺ軸の座標データで示され、現在指定している形状が円弧の図形形状で示され、その円弧の中心の座標データがＩ，Ｊの値で、円弧の半径がＲの値で示されている。また、円弧の中心が存在する側を禁止領域とすることがリミット区域において、移動領域と禁止領域の選択によって示されている。
【００２７】
この現在指定している円弧の図形形状については、円弧の中心の座標データＩ，Ｊの値と、円弧の半径Ｒの値とを入力して、その値に従って内部処理により図形を指定画面に表示することができる。なお、前記図形形状の指定において、工具の直径φを設定し、その工具の直径φを考慮して行うこともできる。また、指定画面中に円弧の中心を表示できない場合には、仮の中心を表示することもできる。
【００２８】
また、前記円による領域の指定、直線による領域の指定、あるいは円弧による領域の指定において、制御対象可動部の移動領域あるは禁止領域のリミット区域の区別を、指定画面において、色、模様、あるいは点滅表示等の表示手法により行うこともできる。
【００２９】
（本発明の実施例の数値制御装置の構成）
次に、本発明の実施例を使用することができる数値制御装置の構成について、図４のブロック構成図を用いて説明する。なお、本発明の使用はこの数値制御装置に限定されるものではなく、他の領域指定を行う手段を有する装置に適用することができるものである。
【００３０】
図４において、プロセッサ１１は、ＲＯＭ１２に格納されたシステムプログラムに従って数値制御装置全体を制御する。このＲＯＭ１２のシステムプログラムによって実行されるソフトウエアは、図形記憶、補間等の機能を有している。このＲＯＭ１２には、ＥＰＲＯＭあるいはＥＥＰＲＯＭが使用される。ＲＡＭ１３にはＳＲＡＭ等が使用され、入出力信号等の一時的なデータが格納される。不揮発性メモリ１４には図示されないバッテリによってバックアップされたＣＭＯＳが使用される。また、不揮発性メモリ１４には電源切断後も保存すべきパラメータ、加工プログラム等の各種データ等が格納される。
【００３１】
グラフィック制御回路１５はガイダンス情報や入力された指定形状等を表示可能な信号に変換し、表示装置１６に与える。表示装置１６にはＣＲＴあるいは液晶表示装置が使用される。軸制御回路１８（３軸分）は、プロセッサ１１からの補間パルスＣＰを含む軸の移動指令を受けて、この軸の移動指令をサーボアンプ１９（３軸分）に出力制御する。サーボアンプ１９はこの移動指令を受け、工作機械２０の図示されないサーボモータを駆動する。なお、工作機械２０はこのサーボモータの他に、移動指令を行なうために操作する機械操作盤４０を備えている。これらの構成要素はバス３０によって互いに接続されている。
【００３２】
ＰＭＣ（プログラマブル・マシン・コントローラ）２２は加工プログラムの実行時に、バス３０を経由してＴ機能信号（工具選択指令）等を受け取る。そして、この信号をシーケンス・プログラムで処理して、動作指令として信号を出力し、工作機械２０を制御する。また、工作機械２０から状態信号を受け、シーケンス処理を行い、バス３０を経由してプロセッサ１１に必要な入力信号を転送する。
【００３３】
なお、バス３０には、さらにシステムプログラム等によって機能が変化するソフトウエアキー２３が接続されている。そのソフトウエアキー２３は、前記表示装置１６、キーボード１７とともに、ＣＲＴ／ＭＤＩユニット２５に設けられる。
【００３４】
〔実施例の作用〕
次に、本発明の実施例の作用について説明する。
【００３５】
（領域の指定）
はじめに、前記円、直線、あるいは円弧の指定基本図形を組み合わせることにより種々の領域の指定を行なう場合について説明する。
【００３６】
（例１）図５および図６は、直線の領域を組み合わせることにより領域を指定する場合であり、図５はその指定画面を示し、図６はその領域指定の指定条件を示すものである。
【００３７】
図５において、領域は３本の直線Ｌ１，Ｌ２，およびＬ３により領域を指定しており、この３本の直線により７つの領域Ｐ１〜Ｐ７に分割されている。ここで、例えば領域Ｐ１は、直線Ｌ１，Ｌ２，およびＬ３に対して全てその上側にある領域として設定され、この領域Ｐ１中の任意の点を座標（ｘ，ｙ）によって表すと、同じｘ座標に対する直線Ｌ１，Ｌ２，およびＬ３のＹ座標の値は、それぞれＹ１，Ｙ２，Ｙ３となる。そして、点（ｘ，ｙ）が領域Ｐ１中にある条件は、図６に示すように直線Ｌ１に対してはｙ＞Ｙ１、直線Ｌ２に対してはｙ＞Ｙ２、直線Ｌ３に対してはｙ＞Ｙ３の不等式が全て満足するときである。
【００３８】
同様にして、他の領域Ｐ２〜Ｐ７においても、図６に示すような条件により領域の指定を行うことができる。
【００３９】
なお、ｘ座標に対する直線Ｌ１，Ｌ２，およびＬ３のＹ座標の値は、例えばそれぞれの直線Ｌ１，Ｌ２，およびＬ３を表す式にｘ座標を代入することにより求めることができるものであるが、この領域指定における不等式の条件式の演算は、プロセッサ１１において行なうことができる。
【００４０】
なお、前記領域指定において、直線Ｌ１〜Ｌ３により区切られて形成される全ての領域Ｐ１〜Ｐ７について図６に示すような領域指定の条件を設定する必要はなく、必要とする領域にのみ条件を入力してその領域のみの指定を行なうことができる。
【００４１】
（例２）図７および図８は、直線の領域と円の領域を組み合わせることによって、領域を指定する場合であり、図７はその指定画面を示し、図８はその領域指定の指定条件を示すものである。
【００４２】
図７において、領域は１本の直線Ｌおよび半径Ｒの１つの円Ｃにより領域を指定しており、この１本の直線と１つの円により４つの領域Ｐ１１〜Ｐ１４に分割されている。ここで、例えば領域Ｐ１１は、直線Ｌに対して下側であり、かつ円Ｃの外側にある領域として設定される。また、領域Ｐ１２は、直線Ｌに対して下側であり、かつ円Ｃの内側にある領域として設定され、この領域Ｐ１２中の任意の点を座標（ｘ，ｙ）によって表すと、同じｘ座標に対する直線ＬのＹ座標の値はＹとなる。また、この座標（ｘ，ｙ）の円Ｃの中心（Ｉ，Ｊ）との距離ｄはｄ＝（（ｘ−Ｉ）２  ＋（ｙ−Ｊ）２  ）１／２  となる。そして、点（ｘ，ｙ）が領域Ｐ１２中にある条件は、図８に示すように直線Ｌに対してはｙ＜Ｙ、円Ｃに対してはｄ＜Ｒの条件が全て満足するときである。
【００４３】
同様にして、他の領域Ｐ１１，Ｐ１３，Ｐ１４においても、図８に示すように直線Ｌに対する不等式の条件と円Ｃに対する不等式の条件により領域の指定を行うことができる。
【００４４】
なお、この領域の指定の条件式は、直線や円の定義式に応じて異なる形態の式によって表されることは明らかである。
【００４５】
また、前記領域指定において、直線Ｌ及び円Ｃにより区切られて形成される全ての領域Ｐ１１〜Ｐ１４について、図８に示すような領域指定の条件を設定する必要はなく、必要とする領域にのみ条件を入力してその領域のみの指定を行なうことができる。
【００４６】
（領域における移動制御）
次に、前記した本発明の領域指定の方法によって指定した移動領域あるいは禁止領域等の領域を用いて、制御対象可動部の移動の制御について図９〜図１６を用いて説明する。
【００４７】
図９は、本発明の実施例の指定領域での制御対象可動部の移動制御を説明するフローチャートであり、図１０，１１，１２は移動指令が禁止領域から移動領域への脱出可能な方向か否かの判定を行なうフローチャートであり、図１３〜図１６は移動指令が禁止領域から移動領域への脱出可能な方向か否かの判定を説明する図である。
【００４８】
はじめに、図９のフローチャートを用いて、指定領域での制御対象可動部の移動制御をステップＳに従って説明する。
【００４９】
ステップＳ１：はじめに、領域指定において制御対象可動部の移動が禁止されている禁止領域が指定されているかの判定を行なう。
【００５０】
あらかじめ、表示装置１６に表示された指定画面の表示状態を参照しながら、キーボード１７等により領域の指定を行うと、この指定された領域のデータは不揮発性メモリ１４に記憶される。プロセッサ１１はこの不揮発性メモリ１４を呼び出して、禁止領域の有無の判定を行なう。
【００５１】
ステップＳ２：前記ステップＳ１の判定において、禁止領域が指定されている場合には、プロセッサ１１は制御対象可動部の現在位置を検出し、その位置データを取得してＲＡＭ１３等のメモリに記憶する。
【００５２】
ステップＳ３：プロセッサ１１は、制御対象可動部の目標位置のデータを不揮発性メモリ１４を呼び出して求め、前記ステップＳ２で取得した現在位置とこの制御対象可動部の目標位置との間における数値制御装置の補間処理を行い、パルスモータを駆動するためのパルス計算を行ない、ＲＡＭ１３等のメモリに記憶する。
【００５３】
ステップＳ４：次に、プロセッサ１１はＲＡＭ１３等のメモリに記憶されている現在位置の位置データを呼出し、不揮発性メモリ１４等のメモリに記憶されている禁止領域のデータにより、その制御対象可動部の現在位置が禁止領域内か否かの判定を行なう。この判定は、禁止領域を指定している不等式等の条件式に制御対象可動部が現在存在する位置の位置データを適用することによって、行なうことができる。
【００５４】
ステップＳ５：前記ステップＳ４の判定の結果、制御対象可動部の現在位置が禁止領域内でなく移動領域である場合には、プロセッサ１１は、ＲＡＭ１３等のメモリに記憶されている制御対象可動部の目標位置のデータを読み出し、補間後の制御対象可動部の位置が禁止領域内か否かの判定を行なう。この判定においては、禁止領域を指定している不等式等の条件式に、補間後の制御対象可動部の位置データを適用することによって、行なうことができる。
【００５５】
ステップＳ６：前記ステップＳ５の判定の結果、補間後の制御対象可動部の位置が禁止領域内となる場合には、現在位置と補間後の位置とを結ぶ線上において領域境界までのパルスを計算する。このパルス計算により、制御対象可動部を禁止領域に入る直前の領域の境界部分までの移動を行なわせるパルス信号を得ることができる。
【００５６】
ステップＳ７：前記ステップＳ６の工程で求めた補間パルスを出力する。このパルス出力により、制御対象可動部を禁止領域に入る直前の領域の境界部分までの移動させることができる。
【００５７】
ステップＳ１０，７：また、前記ステップＳ１の判定において、制御対象可動部の移動が禁止された禁止領域が指定されていない場合には、制御対象可動部の移動領域における制限が存在しないため、補間処理を行って移動のためのパルス計算を行い、ステップＳ７においてその補間パルスを出力する。この補間パルスの出力により、制御対象可動部は目的とする移動位置への移動が行なわれる。
【００５８】
ステップＳ８：前記ステップＳ４の判定において、制御対象可動部の現在位置が禁止領域内である場合には、そのとき指令されている移動指令の方向に向かって制御対象可動部を移動させた場合に、制御対象可動部が禁止領域から移動領域に入るか否かの判定を行なう。そのために、移動指令の方向が制御対象可動部を禁止領域から脱出させる方向か否かの判定を行なう。
【００５９】
移動指令の方向が制御対象可動部を禁止領域から脱出させる方向である場合には、前記ステップＳ３の工程で計算したパルスを用い、ステップＳ７においてパルス出力を行い移動を実行する。
【００６０】
なお、この移動指令の方向の判定については、後述する（移動指令の方向判定）の項において図１０〜図１６を用いて説明する。
【００６１】
ステップＳ９：前記ステップＳ８の判定において、移動指令の方向が制御対象可動部を禁止領域から脱出させる方向でない場合には、前記ステップＳ３の工程で計算した補間パルスをクリアして処理を終了する。
【００６２】
（移動指令の方向判定）
次に、前記ステップＳ８における移動指令の方向を調べ、その移動方向が制御対象可動部を禁止領域から移動領域へ移動させるものか否かの判定を行なう。
【００６３】
以下、領域指定が円の場合に適用されるフローの一実施例と、領域指定が直線の場合の場合に適用されるフローの一実施例、および領域が円、直線、および円弧の場合に適用されるフローの一実施例について説明する。
【００６４】
（１）はじめに、領域指定が円の場合で、領域の外側が禁止領域である場合に適用したフローの一実施例について、図１０のフローチャートを用いて、ステップＳの１０番台の符号を用いて説明する。
【００６５】
ステップＳ１１：移動指令および補間パルスに基づき、制御対象可動部のある時点における移動位置を求める。
【００６６】
ステップＳ１２：前記ステップＳ１１で求めた制御対象可動部の移動位置と円の中心との間のある時点での距離ｄｉ  と、次の時点での距離ｄｉ＋１  を求める。これにより微小時間での制御対象可動部の移動状態を検出することができる。
【００６７】
ステップＳ１３：前記ステップＳ１２で求めたある時点の距離ｄｉ  と、次の時点での距離ｄｉ＋１  とを比較し、制御対象可動部が円の中心方向に進んでいるか否かの判定を行なう。
【００６８】
ステップＳ１４：ある時点の距離ｄｉ  が次の時点での距離ｄｉ＋１  よりも大きくなる場合には、制御対象可動部は円の中心方向から遠ざかる方向に進んでいるため、前記ステップＳ３において求めた補間パルスをクリアして移動を行なわない。この工程は図９の前記ステップＳ９に対応するものである。
【００６９】
ステップＳ１５：ある時点の距離ｄｉ  が次の時点での距離ｄｉ＋１  よりも小さくなる場合には、制御対象可動部は円の中心方向に近づく方向に進んでいる。そこで、補間パルスを出力して移動を行う。この工程は図９の前記ステップＳ７に対応するものである。
【００７０】
ステップＳ１６：さらにステップＳ１１からステップＳ１３の工程を繰り返して、制御対象可動部が円内に侵入する補間パルス数を求める。この制御対象可動部が円内に侵入したか否かの判定は、距離ｄｉ＋１  と円の半径Ｒとの大きさの比較により行なわれる。
【００７１】
前記フローの例を図１４および図１５に示す領域指定が円の場合の移動指令の方向判定を説明する図を用いて説明する。
【００７２】
例えば、図１４は円の内側を移動領域とし外側を禁止領域としたときに、移動指令の方向が禁止領域から移動領域に脱出する方向である場合を示したものである。移動指令の移動方向を破線により示しており、この破線は円と交差している。ここで、移動の軌跡上の点と円の中心との距離ｄは、移動に応じて順に小さくなり、ある時点において円周上に到達する。この到達点は領域の境界に対応するものであり、さらに移動することにより禁止領域から移動領域に脱出することができる。
【００７３】
また、図１５は図１４と同様に、円の内側を移動領域とし外側を禁止領域としたときに、移動指令の方向が禁止領域から移動領域に脱出する方向である場合を示したものであるが、図示するように破線で示す移動方向と円とは交差していない。ここで、移動の軌跡上の点と円の中心との距離ｄは、移動に応じて順に小さくなるが、ある時点を通過すると以後はその距離ｄが増加する。したがって、この移動指令による移動では、禁止領域から移動領域に脱出することはできない。そして、円の中心に最も接近する時点において停止することになる。
【００７４】
（２）次に、領域指定が直線の場合で、領域の外側が禁止領域である場合に適用したフローの一実施例について、図１１のフローチャートを用いて、ステップＳの２０番台の符号を用いて説明する。
【００７５】
ステップＳ２１：移動指令および補間パルスに基づき、制御対象可動部のある時点における移動位置を求める。
【００７６】
ステップＳ２２：前記ステップＳ１１で求めた制御対象可動部の移動位置と直線とのある時点での距離ｄｉ  と、次の時点での距離ｄｉ＋１  を求める。これにより微小時間での制御対象可動部の移動状態を検出することができる。なお、この直線との距離は、点から直線への法線の長さを求めることにより得られる。
【００７７】
ステップＳ２３：前記ステップＳ２２で求めたある時点の距離ｄｉ  と、次の時点での距離ｄｉ＋１  とを比較し、制御対象可動部が直線に接近する方向に進んでいるか否かの判定を行なう。
【００７８】
ステップＳ２４：ある時点の距離ｄｉ  が次の時点での距離ｄｉ＋１  よりも小さくなる場合には、制御対象可動部は直線から遠ざかる方向に進んでいるため、前記ステップＳ２３において求めた補間パルスをクリアして移動を行なわない。この工程は図９の前記ステップＳ９に対応するものである。
【００７９】
ステップＳ２５：ある時点の距離ｄｉ  が次の時点での距離ｄｉ＋１  よりも大きくなる場合には、制御対象可動部は直線に近づく方向に進んでいる。そこで、補間パルスを出力する。この工程は図９の前記ステップＳ７に対応するものである。
【００８０】
ステップＳ２６：さらにステップＳ２１からステップＳ２３の工程を繰り返して、制御対象可動部が直線と交差する補間パルス数を求める。この制御対象可動部が移動領域内に侵入したか否かの判定は、距離ｄｉ＋１  が０となるか否かの比較により行われる。
【００８１】
前記フローの例を、図１６に示す領域指定が直線の場合の移動指令の方向判定を説明する図を用いて説明する。
【００８２】
例えば、図１６は直線の上側を移動領域とし下側を禁止領域としたときに、移動指令の方向が禁止領域から移動領域に脱出する方向である場合を示したものである。移動指令の移動方向を破線により示しており、この破線は直線と交差している。ここで、移動の軌跡上の点と直線との距離ｄは、移動に応じて順に小さくなり、ある時点において直線と交差する。この交点は領域の境界に対応するものであり、さらに移動することにより禁止領域から移動領域に脱出することができる。
【００８３】
なお、図１６において、破線の移動方向を逆方向にとると、移動の軌跡上の点と直線との距離ｄは、移動に応じて順に大きくなり、この移動指令による移動では、禁止領域から移動領域に脱出することはできない。
【００８４】
（３）次に、領域指定が円、直線、あるいは円弧の場合に適用されるフローの一実施例について、図１３の移動指令が禁止領域から移動領域に脱出することがでるかの説明図、および図１２のフローチャートを用いて、ステップＳの３０番台の符号を用いて説明する。
【００８５】
ステップＳ３１：移動指令および補間パルスに基づき、移動方向の延長上に領域指定の境界があるか否かを判定する。この判定においては、円、直線、あるいは円弧と移動方向の直線との交点の有無を判定することにより行なわれる。
【００８６】
ステップＳ３２：次に、移動方向の初期位置と前記ステップＳ３１の工程で求めた交点とによりベクトルｕを求める。例えば、図１３において、初期位置から交点を結ぶベクトルｕを太い実線により示している。
【００８７】
ステップＳ３３：さらに、移動指令の移動方向の単位ベクトルｖを求め、この単位ベクトルｖと前記ステップＳ３２のベクトルｕとの内積を求める。
【００８８】
ステップＳ３４：前記ステップＳ３３で求めた内積の値の正負を判定する。これにより移動方向と、初期位置から交点への方向の関係を判定することができる。つまり、内積が正の場合には、移動方向は初期位置から交点への方向と同じであり、一方、内積が負の場合には、移動方向は初期位置から交点への方向と逆方向である。
【００８９】
ステップＳ３５：内積が負の場合には、移動方向は初期位置から交点への方向と逆方向であるため、補間パルスをクリアして移動を行なわない。この工程は図９の前記ステップＳ９に対応するものである。
【００９０】
ステップＳ３６：内積が正の場合には、移動方向は初期位置から交点への方向と同じであるため、補間パルスを出力する。この工程は図９の前記ステップＳ７に対応するものである。
【００９１】
（実施例の工作機械への適用例）
次に、本発明の実施例を工作機械に適用した場合を説明する。
【００９２】
はじめに、直線の領域を指定した場合の例について、図１７を用いて説明する。図において、ＸＹ座標軸平面上には、指定領域として直線１１０によりその上側を禁止領域に指定している。この直線１１０は、例えば不揮発性メモリ１４に記憶しておき、プロセッサ１１によって呼び出し可能となっている。また、工具１１１はその中心が位置Ｑ１にあり、工具１１３はその中心が位置Ｑ３にある。
【００９３】
このとき、工作機械２０の機械操作盤４０において並行移動を選択し、ジョグ送りあるいはハンドル送りを行なう。これにより、工具１１０は直線１１０と平行に方向１１１ａあるいは方向１１１ｂに移動する。
【００９４】
また、工作機械２０の機械操作盤４０において垂直移動を選択し、ジョグ送りあるいは手動パルス発生器４１によりハンドル送りを行なうと、直線１１０に対して法線方向に方向１１３ａあるいは方向１１３ｂに移動する。
【００９５】
なお、この工具の移動は、所定の座標値の入力により補間パルスの出力を停止する機能を付加することも可能である。
【００９６】
また、図１８を用いて、円弧の領域を指定した場合の例について説明する。図において、ＸＹ座標軸平面上には、指定領域として円弧１２０によりその上側を禁止領域に指定している。この円弧１２０は、例えば不揮発性メモリ１４に記憶しておき、プロセッサ１１によって呼び出し可能となっている。また、工具１２１はその中心が位置Ｑ５にあり、工具１２２はその中心が位置Ｑ６にある。
【００９７】
このとき、工作機械２０の機械操作盤４０において並行移動を選択し、ジョグ送りあるいは手動パルス発生器４１によりハンドル送りを行なう。これにより、工具１２１は円弧１２０と一定の間隔を保持して方向１２１ａあるいは方向１２１ｂに移動する。この場合の一定間隔は、工具の位置１２１と円弧１２０との間の法線成分である。
【００９８】
また、工作機械２０の機械操作盤４０において垂直移動を選択し、ジョグ送りあるいはハンドル送りを行なうと、円弧１２０に対して法線方向に方向１２２ａあるいは方向１２２ｂに移動する。
【００９９】
（本発明の実施例の効果）
前記構成によって、実施例においては、直線、円、あるい円弧の基本的な指定形状によって、加工領域を容易に設定することができる。
【０１００】
（変形例）
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形が可能であり、それらを本発明の範囲から排除するものではない。
【０１０１】
前記実施例においては、円による領域指定、直線による領域指定、あるいは円弧による領域指定、およびそれらの領域の組み合わせにより、制御対象可動部の移動領域あるは禁止領域の領域指定を行っているが、複数の直線の組み合わせによる多角形の領域指定においては、あらかじめ多角形の領域を設定しておき、その多角形の領域を用いて領域指定を行うこともできる。
【０１０２】
また、使用頻度等の必要に応じて円、直線、円弧等の基本図形を組み合わせた図形を設定しておくことも可能である。
【０１０３】
【発明の効果】
以上説明したように、本発明によれば、制御対象可動部の移動位置あるいは移動限界についての位置情報を数値データとして厳密に定義することなく、制御対象可動部の移動領域あるは禁止領域の領域指定を容易に行うことができる。
【図面の簡単な説明】
【図１】本発明の実施例の円による領域を指定する設定画面を説明する図である。
【図２】本発明の実施例の直線による領域を指定する設定画面を説明する図である。
【図３】本発明の実施例の円弧による領域を指定する設定画面を説明する図である。
【図４】本発明の実施例を使用することができる数値制御装置のブロック構成図である。
【図５】直線の領域を組み合わせることにより領域を指定する指定画面である。
【図６】直線の領域を組み合わせることにより領域を指定する指定条件を示す表である。
【図７】円の領域を組み合わせることにより領域を指定する指定画面である。
【図８】円の領域を組み合わせることにより領域を指定する指定条件を示す表である。
【図９】本発明の実施例の指定領域での制御対象可動部の移動制御を説明するフローチャートである。
【図１０】本発明の移動指令が禁止領域から移動領域への脱出可能な方向か否かの判定を行なうフローチャートである。
【図１１】本発明の移動指令が禁止領域から移動領域への脱出可能な方向か否かの判定を行なうフローチャートである。
【図１２】本発明の移動指令が禁止領域から移動領域への脱出可能な方向か否かの判定を行なうフローチャートである。
【図１３】本発明の移動指令が禁止領域から移動領域への脱出可能な方向か否かの判定を説明する図である。
【図１４】本発明の移動指令が禁止領域から移動領域への脱出可能な方向か否かの判定を説明する図である。
【図１５】本発明の移動指令が禁止領域から移動領域への脱出可能な方向か否かの判定を説明する図である。
【図１６】本発明の移動指令が禁止領域から移動領域への脱出可能な方向か否かの判定を説明する図である。
【図１７】本発明の直線の領域指定を工作機械に適用した場合を説明する図である。
【図１８】本発明の円の領域指定を工作機械に適用した場合を説明する図である。
【符号の説明】
１１  プロセッサ
１２  ＲＯＭ
１３  ＲＡＭ
１４  不揮発性メモリ
１５  グラフィック制御回路
１６  表示装置
１７  キーボード
１８  軸制御回路
１９  サーボアンプ
２０  工作機械
２２  ＰＭＣ
２３  ソフトウエアキー
２５  ＣＲＴ／ＭＤＩユニット
３０  バス
４０  機械操作盤
【図１】
0003574462.tif 000002
【図２】
0003574462.tif 000003
【図３】
0003574462.tif 000004
【図４】
0003574462.tif 000005
【図５】
0003574462.tif 000006
【図６】
0003574462.tif 000007
【図７】
0003574462.tif 000008
【図８】
0003574462.tif 000009
【図９】
0003574462.tif 000010
【図１０】
0003574462.tif 000011
【図１１】
0003574462.tif 000012
【図１２】
0003574462.tif 000013
【図１３】
0003574462.tif 000014
【図１４】
0003574462.tif 000015
【図１５】
0003574462.tif 000016
【図１６】
0003574462.tif 000017
【図１７】
0003574462.tif 000018
【図１８】
0003574462.tif 000019