(57)【要約】【課題】高価な干渉チェックを行わなくても他の機械要素との干渉を避けながら限界値直前まで工具ユニットを移動させることが可能な技術を提供する。【解決手段】工作機械は、ワークを加工する工具ユニットＴＵ１が設けられる刃物台１０と、ＮＣプログラムＰ２に記述される複数のコマンドＣＭ１に従って工具ユニットＴＵ１の動作を制御する動作制御手段Ｕ１と、設定された進入禁止範囲Ａ１への工具ユニットＴＵ１の進入を禁止する移動制限手段Ｕ２とを備えている。複数のコマンドＣＭ１には、工具ユニットＴＵ１の移動可能範囲に入っている機械要素Ｅ１との干渉が避けられる工具ユニットＴＵ１の位置の限界値ＬＭ１を計算して進入禁止範囲Ａ１として設定するための限界値設定コマンドＣＭ２が含まれている。動作制御手段Ｕ１は、ＮＣプログラムＰ２から限界値設定コマンドＣＭ２を読み出したとき、限界値ＬＭ１を計算して進入禁止範囲Ａ１として設定する。【選択図】図１０
2015210585.tif 000002
【特許請求の範囲】
【請求項１】
ワークを加工する工具ユニットが設けられる刃物台と、
数値制御プログラムに記述される複数のコマンドに従って前記工具ユニットの動作を制御する動作制御手段と、
設定された進入禁止範囲への前記工具ユニットの進入を禁止する移動制限手段とを備え、
前記複数のコマンドには、前記工具ユニットの移動可能範囲に入っている機械要素との干渉が避けられる前記工具ユニットの位置の限界値を計算して前記進入禁止範囲として設定するための限界値設定コマンドが含まれ、
前記動作制御手段は、前記数値制御プログラムから前記限界値設定コマンドを読み出したとき、前記限界値を計算して前記進入禁止範囲として設定することを特徴とする工作機械。
【請求項２】
前記刃物台は、前記機械要素に対して移動可能に設けられ、
前記動作制御手段は、前記数値制御プログラムから前記限界値設定コマンドを読み出したとき、前記刃物台の位置に基づいて前記限界値を計算して前記進入禁止範囲として設定することを特徴とする請求項１に記載の工作機械。
【請求項３】
前記工具ユニットの少なくとも一部は、前記刃物台に対して旋回可能に設けられ、
前記動作制御手段は、前記数値制御プログラムから前記限界値設定コマンドを読み出したとき、前記機械要素との干渉が避けられる前記工具ユニットの旋回位置の限界値を計算して前記進入禁止範囲として設定することを特徴とする請求項１又は請求項２に記載の工作機械。
【請求項４】
自らの軸方向へ移動可能であるとともに該軸方向へ挿入されたワークを解放可能に把持する主軸と、
該主軸で把持されるワークを前記軸方向へ摺動可能に支持するガイドブッシュとを備え、
前記機械要素は、前記ガイドブッシュであり、
前記動作制御手段は、前記数値制御プログラムから前記限界値設定コマンドを読み出したとき、前記ガイドブッシュとの干渉が避けられる前記工具ユニットの位置の限界値を計算して前記進入禁止範囲として設定することを特徴とする請求項１〜請求項３のいずれか一項に記載の工作機械。
【請求項５】
前記複数のコマンドには、前記刃物台を含む所定系統における前記軸方向への移動の指令対象を前記主軸に設定する主軸設定コマンドと、該主軸設定コマンドによる設定が解除されるコマンドとが含まれ、
前記動作制御手段は、前記数値制御プログラムから前記限界値設定コマンドを読み出したとき、前記所定系統における前記軸方向への移動の指令対象が前記主軸に設定されている場合に前記限界値を計算して前記進入禁止範囲として設定し、前記主軸設定コマンドによる設定が解除されている場合に前記工具ユニットの移動を制限することを特徴とする請求項４に記載の工作機械。
【請求項６】
ワークを加工する工具ユニットが設けられる刃物台を備える工作機械のための解釈実行プログラムであって、
数値制御プログラムに記述される複数のコマンドに従って前記工具ユニットの動作を制御する動作制御機能と、
設定された進入禁止範囲への前記工具ユニットの進入を禁止する移動制限機能とをコンピューターに実現させ、
前記複数のコマンドには、前記工具ユニットの移動可能範囲に入っている機械要素との干渉が避けられる前記工具ユニットの位置の限界値を計算して前記進入禁止範囲として設定するための限界値設定コマンドが含まれ、
前記動作制御機能は、前記数値制御プログラムから前記限界値設定コマンドを読み出したとき、前記限界値を計算して前記進入禁止範囲として設定することを特徴とする解釈実行プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークを加工する工具ユニットが設けられる刃物台を備える工作機械、及び、該工作機械のための解釈実行プログラムに関する。
【背景技術】
【０００２】
上記工作機械として、内部記憶装置に記憶されているＮＣ（Numerical Control；数値制御）プログラムを実行してワークを加工するＮＣ旋盤（数値制御旋盤）等が知られている。このＮＣ旋盤として、正面主軸と背面主軸（対向主軸）との間にガイドブッシュが配置された主軸移動型ＮＣ旋盤等が知られている。この主軸移動型ＮＣ旋盤は、例えば、正面主軸で把持したワークをガイドブッシュで支持して刃物台の正面加工工具で加工し、正面加工後のワークを背面主軸で把持して刃物台の背面加工工具で加工する。加工工具は、刃物台に対して取り付けられる工具ユニットに設けられる。
【０００３】
特許文献１には、５軸横形マシニングセンタでワークを加工するＮＣ工作機械を用いた加工方法が示されている。この加工方法では、ＮＣ加工プログラムを作成するためにＣＡＤ・ＣＡＭ装置内で加工曲面を平均傾き角度θだけ仮想的に傾けてワークと工具系との干渉チェックの演算を行っている。従って、ＮＣ加工プログラムは、ワークと工具系との干渉チェックの後に作成される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３１１６１２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＮＣプログラムを作成するプログラマーは、工具ユニットと他の機械要素との干渉を避けるようにＮＣプログラムを作成する必要がある。しかし、ワークの軸方向へ移動可能なタレット刃物台に対して旋回可能に取り付けた工具ユニットの正面加工工具によりワークを加工するような場合、ＮＣプログラムの各ステップで干渉をチェックするのは大変な作業となる。
【０００６】
上記のような場合、ガイドブッシュに対して前記軸方向におけるタレット刃物台の位置が所定範囲内にあるときに工具ユニットの旋回範囲をガイドブッシュ側とならない−90°〜＋90°に制限することが考えられる。しかし、このように旋回範囲を制限すると、ガイドブッシュと干渉しない範囲内で工具ユニットを−90°よりも小さい旋回位置や＋90°よりも大きい旋回位置にしてワークを加工することができない。
【０００７】
また、上記のような場合、ＮＣ装置に三次元干渉チェック機能を設けることが考えられる。この三次元干渉チェック機能は、ガイドブッシュや工具ユニットに円筒や直方体等の簡単な形状の三次元データを付与し、これらの三次元データに基づいてＮＣプログラムの実行によりガイドブッシュと工具ユニットとが干渉するか否かを判断するものである。しかし、三次元干渉チェック機能をＮＣ装置に設けると、工作機械の原価が上がってしまう。
【０００８】
尚、特許文献１に記載の加工方法は、ワークと工具系との干渉をチェックしているだけであり、刃物台に設けられる工具ユニットと他の機械要素との干渉をチェックしていない。また、特許文献１に記載の加工方法は、ＮＣ加工プログラムを作成する前に干渉チェックを行っており、ＮＣ加工プログラムの実行時に干渉をチェックしている訳ではない。
【０００９】
上述した問題は、タレット刃物台に旋回可能な工具ユニットが取り付けられたＮＣ旋盤に限らず、種々の工作機械について同様に存在する。
【００１０】
本発明は、高価な干渉チェックを行わなくても他の機械要素との干渉を避けながら限界値直前まで工具ユニットを移動させることが可能な技術を提供する目的を有している。
【課題を解決するための手段】
【００１１】
本発明の工作機械は、ワークを加工する工具ユニットが設けられる刃物台と、
数値制御プログラムに記述される複数のコマンドに従って前記工具ユニットの動作を制御する動作制御手段と、
設定された進入禁止範囲への前記工具ユニットの進入を禁止する移動制限手段とを備え、
前記複数のコマンドには、前記工具ユニットの移動可能範囲に入っている機械要素との干渉が避けられる前記工具ユニットの位置の限界値を計算して前記進入禁止範囲として設定するための限界値設定コマンドが含まれ、
前記動作制御手段は、前記数値制御プログラムから前記限界値設定コマンドを読み出したとき、前記限界値を計算して前記進入禁止範囲として設定する、態様を有する。
【００１２】
さらに、本発明は、上述した各手段に対応した機能をコンピューターに実現させる解釈実行プログラム、この解釈実行プログラムを記録したコンピューター読み取り可能な媒体、上述した各手段に対応した工程を含む解釈実行方法、等に適用可能である。
【発明の効果】
【００１３】
請求項１，６に係る発明によれば、高価な干渉チェックを行わなくても他の機械要素との干渉を避けながら限界値直前まで工具ユニットを移動させることが可能な技術を提供することができる。
請求項２に係る発明では、刃物台が他の機械要素に対して移動可能である場合に限界値直前まで工具ユニットを移動させる好適な工作機械を提供することができる。
請求項３に係る発明では、少ないメモリー領域で限界値直前まで工具ユニットを移動させることが可能となる。
請求項４に係る発明では、限界値直前まで工具ユニットを移動させることが可能な主軸移動型旋盤を提供することができる。
請求項５に係る発明では、工具ユニットと他の機械要素との干渉を避ける好適な主軸移動型旋盤を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】工作機械の例を模式的に示す図である。
【図２】工作機械の電気回路構成の例を模式的に示すブロック図である。
【図３】旋回ユニットの例を示す図である。
【図４】（ａ），（ｂ）は旋回ユニットの動作例を模式的に示す図である。
【図５】（ａ），（ｂ）は旋回ユニットの旋回可能範囲を求める例を模式的に示す図である。
【図６】（ａ）〜（ｃ）はストロークリミット機能の例を模式的に示す図である。
【図７】主軸設定コマンド及び主軸設定解除コマンドの構成例を模式的に示す図である。
【図８】主軸設定コマンド及び主軸設定解除コマンドによる系統の例を模式的に示す図である。
【図９】系統毎に複数のコマンドで記述される数値制御プログラムの例を模式的に示す図である。
【図１０】限界値設定コマンド実行時の処理例を示すフローチャートである。
【図１１】変形例に係る工作機械を模式的に示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態を説明する。むろん、以下の実施形態は本発明を例示するものに過ぎず、実施形態に示す特徴の全てが発明の解決手段に必須になるとは限らない。
【００１６】
（１）本発明に含まれる技術の概要：
まず、図１〜１０を参照して本発明に含まれる技術の概要を説明する。図１等ではＮＣ（数値制御）旋盤１を工作機械の例として示している。尚、図１〜１０は模式的に示す図であり、各図は整合していないことがある。
【００１７】
本技術の工作機械は、ワークＷ１を加工する工具ユニットＴＵ１が設けられる刃物台１０と、ＮＣ（数値制御）プログラムＰ２に記述される複数のコマンドＣＭ１に従って前記工具ユニットＴＵ１の動作を制御する動作制御手段Ｕ１と、設定された進入禁止範囲Ａ１への前記工具ユニットＴＵ１の進入を禁止する移動制限手段Ｕ２とを備えている。前記複数のコマンドＣＭ１には、前記工具ユニットＴＵ１の移動可能範囲に入っている機械要素Ｅ１（例えばガイドブッシュ４０）との干渉が避けられる前記工具ユニットＴＵ１の位置の限界値（リミット値）ＬＭ１を計算して前記進入禁止範囲Ａ１として設定するための限界値設定コマンドＣＭ２（例えば図９に示すM168コマンド）が含まれている。前記動作制御手段Ｕ１は、前記ＮＣプログラムＰ２から前記限界値設定コマンドＣＭ２を読み出したとき、図１０に例示するように前記限界値ＬＭ１を計算して前記進入禁止範囲Ａ１として設定する。
【００１８】
また、本技術は、ワークＷ１を加工する工具ユニットＴＵ１が設けられる刃物台１０を備える工作機械のための解釈実行プログラムであって、ＮＣプログラムＰ２に記述される複数のコマンドＣＭ１に従って前記工具ユニットＴＵ１の動作を制御する動作制御機能と、設定された進入禁止範囲Ａ１への前記工具ユニットＴＵ１の進入を禁止する移動制限機能とをコンピューターに実現させる。前記動作制御機能は、前記ＮＣプログラムＰ２から前記限界値設定コマンドＣＭ２を読み出したとき、前記限界値ＬＭ１を計算して前記進入禁止範囲Ａ１として設定する。
【００１９】
例えば、タレットがＺ３軸方向へ移動可能であって、このタレットに取り付けられる工具ユニット（ＴＵ２）の旋回部ＴＵ２ａが図４（ａ）に示すようにＢ３軸を中心として旋回可能である場合を想定する。上記限界値設定コマンドＣＭ２が無い場合、工具ユニット（ＴＵ２）がガイドブッシュ４０に近いときに旋回部ＴＵ２ａが90°を超えて旋回するとガイドブッシュ４０と干渉する可能性がある。この干渉を避けるためにプログラマーがＮＣプログラムの各ステップで干渉をチェックしようとすると、大変な作業となってしまう。ここで、ガイドブッシュ４０に対してＺ３軸方向におけるタレットの位置が所定範囲内にあるときに旋回部ＴＵ２ａの旋回範囲をガイドブッシュ側とならない−90°〜＋90°に制限することを想定する。この場合、ガイドブッシュ４０と干渉しない範囲内で旋回部ＴＵ２ａを−90°よりも小さい旋回位置や＋90°よりも大きい旋回位置にしてワークＷ１を加工することができない。また、ＮＣ装置に三次元干渉チェック機能を設けることは、大幅なコストアップとなってしまう。
【００２０】
一方、本技術では、ＮＣプログラムＰ２から限界値設定コマンドＣＭ２が読み出されたとき、機械要素Ｅ１との干渉が避けられる工具ユニットＴＵ１の位置の限界値ＬＭ１が計算されて進入禁止範囲Ａ１として設定され、この設定された進入禁止範囲Ａ１への工具ユニットＴＵ１の進入が禁止される。従って、本技術は、高価な干渉チェックを行わなくても他の機械要素との干渉を避けながら限界値直前まで工具ユニットを移動させることが可能である。
【００２１】
ここで、上記刃物台には、タレット、くし形刃物台、等が含まれる。図１等に示す刃物台１０の概念には、くし形刃物台１１、背面加工用刃物台１２、及び、タレット１３が含まれる。
上記工具ユニットは、少なくとも一部が刃物台に対して移動可能に設けられてもよいし、刃物台に対して移動不能に固定されてもよい。工具ユニットの少なくとも一部が移動可能であることには、工具ユニットの少なくとも一部が旋回可能であることが含まれる。工具ユニットの少なくとも一部が移動可能に設けられる場合の刃物台は、他の機械要素に対して移動可能に設けられてもよいし、他の機械要素に対して移動不能に固定されてもよい。尚、工具ユニットの少なくとも一部が他の機械要素に対して移動可能に設けられることには、工具ユニットの少なくとも一部が刃物台に対して移動可能に設けられることの他、刃物台が他の機械要素に対して移動可能に設けられることにより工具ユニットが他の機械要素に対して近接及び離隔可能に設けられることも含まれる。
上記機械要素には、ワークの軸方向へワークを摺動可能に支持するガイドブッシュ、ワークを解放可能に把持する主軸、等が含まれる。図１等に示す主軸３０の概念には、正面主軸３１及び背面主軸（対向主軸）３２が含まれる。
上記限界値には、工具ユニットの旋回位置、Ｘ軸位置（Ｘ軸方向における位置）、Ｙ軸位置（Ｙ軸方向における位置）、Ｚ軸位置（Ｚ軸方向における位置）、等が含まれる。尚、Ｘ軸方向はＸ１軸方向、Ｘ２軸方向及びＸ３軸方向を総称し、Ｙ軸方向はＹ１軸方向、Ｙ２軸方向及びＹ３軸方向を総称し、Ｚ軸方向はＺ１軸方向、Ｚ２軸方向及びＺ３軸方向を総称する。
【００２２】
ところで、前記刃物台１０が前記機械要素Ｅ１に対して移動可能に設けられる場合、前記動作制御手段Ｕ１は、前記ＮＣプログラムＰ２から前記限界値設定コマンドＣＭ２を読み出したとき、前記刃物台１０の位置（例えばＺ３軸における位置）に基づいて前記限界値ＬＭ１を計算して前記進入禁止範囲Ａ１として設定してもよい。この場合、限界値設定コマンド読み出し時に刃物台１０の位置に基づいて限界値ＬＭ１が計算されて進入禁止範囲Ａ１として設定される。従って、本態様は、刃物台が他の機械要素に対して移動可能である場合に限界値直前まで工具ユニットを移動させるのに好適である。
【００２３】
前記工具ユニットの少なくとも一部が前記刃物台１０に対して旋回可能に設けられる場合、前記動作制御手段Ｕ１は、前記ＮＣプログラムＰ２から前記限界値設定コマンドＣＭ２を読み出したとき、前記機械要素Ｅ１との干渉が避けられる前記工具ユニット（ＴＵ２）の旋回位置の限界値ＬＭ１（例えば図１０に示すＢ３−，Ｂ３＋）を計算して前記進入禁止範囲Ａ１として設定してもよい。この場合、限界値設定コマンド読み出し時に工具ユニット（ＴＵ２）の旋回位置の限界値ＬＭ１が計算されて進入禁止範囲Ａ１として設定される。尚、工具ユニットの旋回位置の概念には、図３に示す旋回部ＴＵ２ａの旋回位置が含まれる。
【００２４】
タレット１３のＺ軸位置を細かく制御すると、機械要素Ｅ１と干渉しない工具ユニット（ＴＵ２）の旋回角度の限界値が細かく変わってしまう。Ｚ軸上の位置毎に旋回角度の限界値を情報テーブルとして保持しようとすると、大容量のメモリー領域が必要となり、工作機械が高価になってしまう。一方、本技術の上記態様は、旋回角度の限界値ＬＭ１が計算されて進入禁止範囲Ａ１として設定されるので、少ないメモリー領域で限界値直前まで工具ユニットを旋回させることが可能となる。
尚、上記態様には、工具ユニットの一部のみ（例えば図３に示す旋回部ＴＵ２ａ）が旋回可能に設けられることと、工具ユニットの全体が旋回可能に設けられることと、の両方が含まれる。
【００２５】
本工作機械は、自らの軸方向（Ｚ軸方向）へ移動可能であるとともに該軸方向（Ｚ軸方向）へ挿入されたワークＷ１を解放可能に把持する主軸３０と、該主軸３０で把持されるワークＷ１を前記軸方向（Ｚ軸方向）へ摺動可能に支持するガイドブッシュ４０とを備えてもよい。前記機械要素Ｅ１は、前記ガイドブッシュ４０でもよい。前記動作制御手段Ｕ１は、前記ＮＣプログラムＰ２から前記限界値設定コマンドＣＭ２を読み出したとき、前記ガイドブッシュ４０との干渉が避けられる前記工具ユニットＴＵ１の位置の限界値ＬＭ１を計算して前記進入禁止範囲Ａ１として設定してもよい。すなわち、限界値設定コマンド読み出し時、ガイドブッシュ４０との干渉が避けられる工具ユニットＴＵ１の位置の限界値ＬＭ１が計算されて進入禁止範囲Ａ１として設定される。本態様は、簡単な処理で限界値の設定を変えることができるので、主軸移動型旋盤として好適である。
【００２６】
前記複数のコマンドＣＭ１には、前記刃物台１０を含む所定系統（例えば図８に示す系統３）における前記軸方向（Ｚ軸方向）への移動の指令対象を前記主軸３０に設定する主軸設定コマンドＣＭ３（例えば図９に示すM133コマンド）と、該主軸設定コマンドＣＭ３による設定が解除されるコマンド（主軸設定解除コマンドＣＭ４）とが含まれてもよい。前記動作制御手段Ｕ１は、前記ＮＣプログラムＰ２から前記限界値設定コマンドＣＭ２を読み出したとき、前記所定系統（系統３）における前記軸方向（Ｚ軸方向）への移動の指令対象が前記主軸３０に設定されている場合に前記限界値ＬＭ１を計算して前記進入禁止範囲Ａ１として設定し、前記主軸設定コマンドＣＭ３による設定が解除されている場合に前記工具ユニットＴＵ１の移動を制限してもよい。刃物台１０を含む所定系統（系統３）における軸方向（Ｚ軸方向）への移動の指令対象が主軸３０に設定されている場合、前記所定系統における指令によっては刃物台１０及び工具ユニットＴＵ１が軸方向（Ｚ３軸方向）へ移動し難い。これらが軸方向へ移動しなければ、工具ユニットＴＵ１の位置の限界値ＬＭ１が進入禁止範囲Ａ１として設定されることにより、この設定が変更されるまで適切な限界値ＬＭ１が設定されたままとなる。一方、前記主軸設定コマンドによる設定が解除されている場合、前記所定系統における指令によって刃物台１０及び工具ユニットＴＵ１が軸方向（Ｚ３軸方向）へ移動する可能性がある。工具ユニットＴＵ１が軸方向へ移動して機械要素Ｅ１に近くなれば機械要素Ｅ１と干渉する可能性が生じるので、工具ユニットＴＵ１の移動が制限されることにより、工具ユニットＴＵ１と機械要素Ｅ１との干渉が避けられる。従って、本態様は、工具ユニットと他の機械要素との干渉を避ける好適な主軸移動型旋盤を提供することができる。
【００２７】
（２）工作機械及び解釈実行プログラムの具体例：
図１は、本技術の工作機械の具体例であるＮＣ旋盤１を模式的に示している。このＮＣ旋盤１は、複数の主軸３０（正面主軸３１と背面主軸３２）、ガイドブッシュ４０、複数の刃物台１０（くし形刃物台１１と背面加工用刃物台１２とタレット１３）、及び、ＮＣ装置７０を備えている。
【００２８】
正面主軸３１は、Ｚ１軸方向へ挿入された円柱状（棒状）のワークＷ１を解放可能に把持し、ワークＷ１の長手方向に沿う回転軸ＡＸ１（図８参照）を中心としてワークＷ１をＣ１軸周りに回転させる。正面主軸３１は、図示しない正面主軸台テーブルに設けられ、Ｚ１軸方向（自らの軸方向）へ移動可能とされている。ガイドブッシュ４０は、正面主軸３１を貫通した長手状のワークＷ１をＺ１軸方向へ摺動可能に支持し、正面主軸３１と同期してＣ１軸周りに回転駆動される。背面主軸３２は、Ｚ２軸方向へ挿入された正面加工後のワークＷ１を解放可能に把持し、正面主軸の回転軸ＡＸ１に沿う回転軸ＡＸ２（図８参照）を中心として正面加工後のワークＷ１をＣ２軸周りに回転させる。背面主軸３２は、図示しない背面主軸台テーブルに設けられ、Ｚ２軸方向（自らの軸方向）及びＸ２軸方向へ移動可能とされている。
【００２９】
刃物台１０は、いずれも、ワークＷ１を加工する工具ユニットＴＵ１が取り付けられている。工具ユニットＴＵ１は、工具Ｔ１を有し、回転ドリルのように回転する工具を有するユニットもあれば、回転不能に固定された工具を有するユニットもある。また、工具ユニットＴＵ１には、刃物台１０に対して所定の軸（図１ではＢ３軸）を中心として旋回可能な工具ユニット（ＴＵ２）もあれば、旋回不能に固定されたユニットもある。尚、旋回可能な工具ユニットを旋回ユニットとも呼ぶことにし、図１等では旋回ユニットに設けられた工具に符号Ｔ２を付している。
【００３０】
くし形刃物台１１は、ワークＷ１の正面加工と背面加工の両方が可能であり、複数の工具Ｔ１がＺ１軸方向と直交する方向（図１ではＹ１軸方向）へ並べられている。くし形刃物台１１は、図示しないくし形刃物台テーブルに設けられ、Ｘ１軸方向及びＹ１軸方向へ移動可能とされている。背面加工用刃物台１２は、ワークＷ１の背面加工用の刃物台であり、複数の工具Ｔ１がＺ２軸方向と直交する方向へ並べられている。背面加工用刃物台１２は、図示しない背面加工用刃物台テーブルに設けられ、Ｙ２軸方向へ移動可能とされている。タレット１３は、ワークＷ１の正面加工と背面加工の両方が可能であり、複数の工具ユニットＴＵ１が割り出し軸ＡＸ３（図８参照）を中心として放射状に取り付けられている。タレット１３は、図示しないタレットテーブルに設けられ、割り出し軸ＡＸ３を中心として旋回可能であり、Ｘ３軸方向、Ｙ３軸方向及びＺ３軸方向へ移動可能とされている。従って、タレット１３は、機械要素Ｅ１であるガイドブッシュ４０に対して移動可能に設けられている。
【００３１】
なお、Ｘ１，Ｘ２，Ｘ３軸方向はＸ軸という制御軸に沿った同じ向きの方向であり、Ｙ１，Ｙ２，Ｙ３軸方向はＹ軸という制御軸に沿った同じ方向であり、Ｚ１，Ｚ２，Ｚ３軸方向はＺ軸という制御軸に沿った同じ向きの方向である。Ｘ軸とＹ軸とＺ軸とは、互いに直交する方向とされている。
ＮＣ装置７０は、正面主軸３１、ガイドブッシュ４０、背面主軸３２、くし形刃物台１１、背面加工用刃物台１２、タレット１３、等のＮＣ旋盤１の各部の動作を制御する。
【００３２】
図２に示すＮＣ旋盤１は、ＮＣ装置７０に、操作パネル８０、刃物台駆動部１４〜１６、ユニット旋回駆動部２１，２３、工具回転駆動部２４〜２６、主軸駆動部３３，３４、等が接続されている。ＮＣ装置７０は、ＣＰＵ（Central Processing Unit）７１に、ＲＯＭ（Read Only Memory）７２及びＲＡＭ（Random Access Memory）７３からなる半導体メモリー、図示しない時計回路やインターフェイス（Ｉ／Ｆ）、等が接続されたコンピューターとされている。ＲＯＭ７２に書き込まれた解釈実行プログラムＰ１、並びに、ＲＡＭ７３に記憶される限界値ＬＭ１及びＮＣプログラムＰ２の詳細は、後述する。
【００３３】
操作パネル８０は、入力部８１及び表示部８２を備え、ＮＣ装置７０のユーザーインターフェイスとして機能する。入力部８１は、例えば、オペレーターから操作入力を受け付けるためのボタンやタッチパネルから構成される。表示部８２は、例えば、オペレーターから操作入力を受け付けた各種設定の内容やＮＣ旋盤１に関する各種情報を表示するディスプレイで構成される。オペレーターは、操作パネル８０や外部コンピューターＰＣ１を用いてＮＣプログラムＰ２をＲＡＭ７３に記憶させることが可能である。
【００３４】
くし形刃物台駆動部１４は、ＮＣ装置７０の制御に従ってくし形刃物台１１をＸ１方向及びＹ１方向へ移動させる。ユニット旋回駆動部２１は、くし形刃物台１１に取り付けられた旋回ユニットＴＵ２の旋回部をＮＣ装置７０の制御に従って旋回させる。工具回転駆動部２４は、前記旋回ユニットＴＵ２を含む工具ユニットＴＵ１の回転工具を回転させる。尚、旋回ユニットを取り付けたくし形刃物台を備える工作機械の具体例は、後述する。
【００３５】
背面加工用刃物台駆動部１５は、ＮＣ装置７０の制御に従って背面加工用刃物台１２をＹ２方向へ移動させる。工具回転駆動部２５は、背面加工用刃物台１２に設けられた回転工具を回転させる。
【００３６】
タレット駆動部１６は、ＮＣ装置７０の制御に従ってタレット１３を旋回させたり、Ｘ３方向、Ｙ３方向及びＺ３方向へ移動させたりする。ユニット旋回駆動部２３は、タレット１３に取り付けられた旋回ユニットＴＵ２の旋回部ＴＵ２ａ（図３参照）をＮＣ装置７０の制御に従ってＢ３軸を中心として旋回させる。ユニット旋回部ＴＵ２ａを旋回させる構造には、例えば、タレット１３の旋回位置を割り出すための割り出し駆動軸と同軸上に設けたユニット旋回用駆動軸からの回転駆動力を旋回ユニットＴＵ２の旋回軸ＴＵ２ｄ（図３参照）に伝達する構造を用いることができる。工具回転駆動部２６は、前記旋回ユニットＴＵ２を含む工具ユニットＴＵ１の回転工具を回転させる。回転工具を回転させる構造には、例えば、タレット１３の旋回位置を割り出すための割り出し駆動軸と同軸上に設けた工具回転用駆動軸からの回転駆動力を回転工具用の回転軸（例えば図３に示す回転軸ＴＵ２ｆ）に伝達する構造を用いることができる。
【００３７】
正面主軸駆動部３３は、ＮＣ装置７０の制御に従って正面主軸３１をＣ１軸周りに回転させたり、Ｚ１方向へ移動させたりする。背面主軸駆動部３４は、ＮＣ装置７０の制御に従って背面主軸３２をＣ２軸周りに回転させたり、Ｘ２方向及びＺ２方向へ移動させたりする。
【００３８】
本ＮＣ旋盤１は、ＮＣプログラムに記述される複数のコマンドに従って工具ユニットＴＵ１の動作を制御する動作制御手段Ｕ１を備える。工具ユニットＴＵ１として、タレット１３に取り付けられる旋回ユニットＴＵ２を例にとって動作を説明することにする。
【００３９】
図３は、旋回ユニットの例を示している。図３に示す旋回ユニットＴＵ２は、旋回部ＴＵ２ａ、タレット１３への取付部ＴＵ２ｂ、旋回軸ＴＵ２ｄが設けられた旋回軸挿入部ＴＵ２ｃ、回転軸ＴＵ２ｆが設けられた回転軸挿入部ＴＵ２ｅ、複数の回転工具Ｔ２、を備えている。取付部ＴＵ２ｂは、タレット１３に対して移動不能に固定される。旋回軸挿入部ＴＵ２ｃはタレット１３の図示しない旋回軸挿入穴に挿入され、旋回軸ＴＵ２ｄはタレット１３の図示しない旋回駆動軸から旋回駆動力を伝達される。旋回軸ＴＵ２ｄが回転することにより、旋回部ＴＵ２ａが旋回する。回転軸挿入部ＴＵ２ｅは、タレット１３の図示しない回転軸挿入穴に挿入され、回転軸ＴＵ２ｆはタレット１３の図示しない回転駆動軸から回転駆動力を伝達される。回転軸ＴＵ２ｆが回転することにより、複数の回転工具Ｔ２が回転する。
尚、以下の説明において、旋回ユニットＴＵ２の旋回は旋回部ＴＵ２ａの旋回を意味する。
【００４０】
図４（ａ）は、Ｂ３軸を中心とした旋回角度が０°であってガイドブッシュ４０に対して所定の近接位置Ｐ１にある旋回ユニットＴＵ２の旋回部ＴＵ２ａを実線で示している。旋回ユニットＴＵ２は、タレット１３とともにＺ３軸方向へ移動可能である。図４（ａ）では、360°旋回してもガイドブッシュ４０に接触しない所定の離隔位置Ｐ２にあるユニット旋回部ＴＵ２ａを二点鎖線で示している。また、近接位置Ｐ１にあるユニット旋回部ＴＵ２ａが90°及び−90°に旋回した様子も二点鎖線で示している。尚、ＮＣ装置７０の内部処理では、−90°を360−90＝270°に置き換えている。
【００４１】
近接位置Ｐ１にあるユニット旋回部ＴＵ２ａは、90°を超えて旋回したり−90°を超えて旋回したりすると、ガイドブッシュ４０に接触してしまう。従って、ガイドブッシュ４０は、旋回ユニットＴＵ２の移動可能範囲に入っている機械要素Ｅ１である。旋回ユニットＴＵ２の旋回範囲を−90°〜＋90°に制限すれば、近接位置Ｐ１以遠において旋回ユニットＴＵ２とガイドブッシュ４０とが干渉しないことになる。しかし、図４（ｂ）に示すように旋回ユニットＴＵ２が近接位置Ｐ１から少し遠い位置Ｐ３にある場合にガイドブッシュ４０と干渉しない範囲内で旋回部ＴＵ２ａをガイドブッシュ側に旋回させてワークを加工することができないことになる。尚、図４（ｂ）は、前記位置Ｐ３にある旋回部ＴＵ２ａが120°及び−120°（内部処理では240°）に旋回した様子を二点鎖線で示している。
【００４２】
タレット１３のＺ３軸位置を0.1mm単位で制御すると、ガイドブッシュ４０と干渉しない旋回ユニットＴＵ２の旋回角度の限界値が細かく変わってしまう。Ｚ３軸上の位置毎に旋回角度の限界値を情報テーブルとして保持しようとすると、多くのメモリー領域が必要となり、機械が高価になってしまう。一方で、ＮＣ装置に三次元干渉チェック機能を設けても、機械が高価になってしまう。
本ＮＣ旋盤１は、正面主軸と背面主軸との間にガイドブッシュが配置された主軸移動型旋盤であるので、ガイドブッシュ４０がＺ軸方向へ移動しない。また、タレット１３のＺ３軸位置が割り出されるとワークをＺ軸方向へ移動させるためには正面主軸３１をＺ１軸方向へ移動させるのが通常であるため、旋回ユニットＴＵ２とガイドブッシュ４０とのＺ軸上の位置は変わらないのが通常である。そこで、図９に示すように、ＮＣプログラムＰ２に記述可能なM168コマンド（限界値設定コマンドＣＭ２）を設け、必要に応じてワークをＺ１軸方向へ移動させて旋回ユニットＴＵ２で加工する際に旋回部ＴＵ２ａを限界値直前までガイドブッシュ側に旋回可能にしている。
【００４３】
まず、図５（ａ），（ｂ）を参照して、タレット１３に取り付けられた旋回ユニットＴＵ２の旋回位置の限界値ＬＭ１を求める例を説明する。図５（ａ），（ｂ）では、ユニット旋回部ＴＵ２ａを模式的に矩形で示している。ここで、旋回部ＴＵ２ａの旋回中心に符号Ｂ３を付し、Ｚ軸上のタレット１３の基準位置に符号Ｚ０を付している。長さＷは旋回部ＴＵ２ａの幅の半分、すなわち、Ｚ軸方向における旋回中心からの最大長さを示し、高さＨはＺ軸及びＢ３軸と直交する方向における旋回中心からの最大長さを示し、Ｂ軸角度βはＺ軸からの旋回角度90°を示している。長さＷ、高さＨ及び旋回角度は、例えば図２に示すＲＡＭ７３に格納される。距離αは、基準位置Ｚ０からのガイドブッシュ４０のＺ軸位置を示す正の値であり、例えば図２に示すＲＯＭ７２に書き込まれる。距離Ｚｂは、基準位置Ｚ０からの旋回中心のＺ軸位置を示す正の値であり、例えば図２に示すＲＡＭ７３に格納される。
【００４４】
図５（ａ）に示す状態から図５（ｂ）に示すようにタレット１３が基準位置Ｚ０から−Ｚ３側へ距離Ｚｍ離れたときのユニット旋回部ＴＵ２ａの旋回可能な最大角度βを求めることにする。距離Ｚｍは、基準位置Ｚ０からのタレット１３のＺ軸機械位置に相当する正の値であり、例えば図２に示すＲＡＭ７３に格納される。旋回部ＴＵ２ａの旋回半径Ｒ、すなわち、旋回中心から旋回部ＴＵ２ａの最も遠い部分までの距離は、√（Ｈ2＋Ｗ2）で表される。ここで、旋回半径Ｒを表す線分と高さＨを表す線分とのなす角度をθ１、旋回半径Ｒを表す線分とＺ軸とのなす角度をθ２とすると、角度θ１，θ２は、以下の通りとなる。
θ１＝ASIN（Ｗ／√（Ｈ2＋Ｗ2））  …（１）
θ２＝ACOS（（Ｚｍ＋Ｚｂ＋α）／√（Ｈ2＋Ｗ2））  …（２）
ここで、「ASIN」はアークサインを求める逆三角関数であり、「ACOS」はアークコサインを求める逆三角関数であり、「√」は平方根を求める関数である。上記式（１）のアークサインの引数部分Ｗ／√（Ｈ2＋Ｗ2）は、性質上、０よりも大きく１よりも小さくなる。上記式（２）はガイドブッシュ４０と旋回ユニットＴＵ２とが干渉することが前提であるため、以下の条件が成り立つときに上記式（２）を用いることにする。
（Ｚｍ＋Ｚｂ＋α）／√（Ｈ2＋Ｗ2）＜１  …（３）
【００４５】
Ｂ３軸を中心とする旋回可能な最大角度β（90°≦β＜180°）は、上記式（１），（２）を用いて以下のように表される。
β＝180−θ１−θ２
＝180−ASIN（Ｗ／√（Ｈ2＋Ｗ2））
−ACOS（（Ｚｍ＋Ｚｂ＋α）／√（Ｈ2＋Ｗ2））  …（４）
最大角度βは、ガイドブッシュ４０に対して移動するタレット１３のＺ軸機械位置Ｚｍに基づいて求められる。Ｚ軸機械位置Ｚｍが小さいときには最大角度βが小さく、Ｚ軸機械位置Ｚｍが大きくなると上記不等式（３）が成立する範囲内で最大角度βが大きくなる。
本ＮＣ旋盤１は、ＮＣプログラム実行時にM168コマンドを読み込んだとき、上記式（５）を用いて最大角度β（β＞０）を求め、旋回ユニットＴＵ２の進入禁止範囲を設定することにしている。
【００４６】
図６（ａ）〜（ｃ）は、移動制限手段Ｕ２によるストロークリミット機能（移動制限機能）の例を模式的に示している。図６（ａ）では、Ｚ３軸とＸ３軸とに刃物台のストロークリミットを設ける例を示している。図６中、Zmin，Zmax，Xmin，Xmaxは機械の制約による刃物台の移動の限界位置を示し、Zminは−Ｚ３方向への移動の限界位置、Zmaxは＋Ｚ３方向への移動の限界位置、Xminは−Ｘ３方向への移動の限界位置、Xmaxは＋Ｘ３方向への移動の限界位置、を示している。限界位置Zmin，Zmax，Xmin，Xmaxで囲まれた矩形の外側に付したハッチングは、機械の制約による進入禁止範囲を示している。刃物台の位置の限界値Ｚ−，Ｚ＋，Ｘ−，Ｘ＋は、本技術の限界値ＬＭ１に相当し、限界位置Zmin，Zmax，Xmin，Xmaxの範囲内でＲＡＭ７３に格納される。従って、Zmax＞Ｚ＋＞Ｚ−＞Zmin、及び、Xmax＞Ｘ＋＞Ｘ−＞Xminの関係が成り立つ。ストロークリミット機能は、工具ユニットを含む刃物台の位置（ｚ，ｘとする。）が限界値Ｚ−，Ｚ＋，Ｘ−，Ｘ＋に設定された進入禁止範囲Ａ１、すなわち、Ｚ−≦ｚ≦Ｚ＋且つＸ−≦ｘ≦Ｘ＋とならないように動作を制御する機能を意味する。
【００４７】
旋回ユニットＴＵ２の旋回位置にストロークリミット機能（限界値をＢ３＋，Ｂ３−とする。）を設ける場合、上記式（４）を用いて求めた最大角度β（β＞０）をそのまま限界値Ｂ３−とし、360−βを限界値Ｂ３＋にする。従って、ＲＡＭ７３に格納される限界値Ｂ３−，Ｂ３＋は、タレット１３のＺ３軸位置に応じて変わる。例えば、β＝90°である場合、Ｂ３−＝90°、Ｂ３＋＝270°となるので、図６（ｂ）に示すようにユニット旋回部ＴＵ２ａが進入禁止範囲90°〜270°に入らないように旋回部ＴＵ２ａの旋回が制御される。β＝120°であれば、Ｂ３−＝120°、Ｂ３＋＝240°となるので、図６（ｃ）に示すように旋回部ＴＵ２ａが進入禁止範囲120°〜240°に入らないように旋回部ＴＵ２ａの旋回が制御される。
【００４８】
ところで、本ＮＣ旋盤１は、移動制御の対象に複数の主軸３０とガイドブッシュ４０と複数の刃物台１０があるので、移動制御が複数の系統に分けられている。図７は、各系統の制御対象を設定するM131コマンド及びM133コマンドの構成例を模式的に示している。図８は、M131コマンド及びM133コマンドにより設定される系統の例を模式的に示している。ここで、M133コマンドは、タレット１３を含む系統３（所定系統）におけるＺ軸方向への移動の指令対象を正面主軸３１に設定する主軸設定コマンドＣＭ３である。M131コマンドは、M133コマンドによる設定が解除される主軸設定解除コマンドＣＭ４である。
【００４９】
図７に示すM131コマンドが読み込まれると、図８に二点鎖線の囲みで示すM131モードとなる。このM131モードでは、各系統の各軸の指令は、以下の意味となる。
［系統１の場合］
（Ｘ指令）くし形刃物台１１のＸ１軸方向への移動を意味する指令
（Ｙ指令）くし形刃物台１１のＹ１軸方向への移動を意味する指令
（Ｚ指令）正面主軸３１のＺ１軸方向への移動を意味する指令
（Ｃ指令）正面主軸３１のＣ１軸周りの移動（回転軸ＡＸ１を中心とする回転移動）を意味する指令
［系統２の場合］
（Ｘ指令）背面主軸３２のＸ２軸方向への移動を意味する指令
（Ｙ指令）背面加工用刃物台１２のＹ２軸方向への移動を意味する指令
（Ｚ指令）背面主軸３２のＺ２軸方向への移動を意味する指令
（Ｃ指令）背面主軸３２のＣ２軸周りの移動（回転軸ＡＸ２を中心とする回転移動）を意味する指令
［系統３の場合］
（Ｘ指令）タレット１３のＸ３軸方向への移動を意味する指令
（Ｙ指令）タレット１３のＹ３軸方向への移動を意味する指令
（Ｚ指令）タレット１３のＺ３軸方向への移動を意味する指令
（Ｃ指令）指令不可
【００５０】
また、図７に示すM133コマンドが読み込まれると、図８に実線の囲みで示すM133モードとなる。このM133モードでは、各系統の各軸の指令は、以下の意味となる。
［系統１の場合］
（Ｘ指令）くし形刃物台１１のＸ１軸方向への移動を意味する指令
（Ｙ指令）くし形刃物台１１のＹ１軸方向への移動を意味する指令
（Ｚ指令）指令不可
（Ｃ指令）指令不可
［系統２の場合］
（Ｘ指令）背面主軸３２のＸ２軸方向への移動を意味する指令
（Ｙ指令）背面加工用刃物台１２のＹ２軸方向への移動を意味する指令
（Ｚ指令）背面主軸３２のＺ２軸方向への移動を意味する指令
（Ｃ指令）背面主軸３２のＣ２軸周りの移動を意味する指令
［系統３の場合］
（Ｘ指令）タレット１３のＸ３軸方向への移動を意味する指令
（Ｙ指令）タレット１３のＹ３軸方向への移動を意味する指令
（Ｚ指令）正面主軸３１のＺ１軸方向への移動を意味する指令
（Ｃ指令）正面主軸３１のＣ１軸周りの移動を意味する指令
（Ｚ３指令）タレット１３のＺ３軸方向への移動を意味する指令
【００５１】
以上より、M131モードからM133モードに切り換わると、系統２の指令内容は変わらないが、正面主軸３１のＺ１軸方向への移動及びＣ１軸周りの移動を指令する系統が系統１から系統３に変わり、Ｚ指令ではタレット１３をＺ３軸方向へ移動させることができなくなる。すなわち、M133モードは系統３におけるＺ軸方向への移動の指令対象が正面主軸３１に設定されていることを意味し、M131モードはM133コマンドによる設定が解除されて系統３におけるＺ軸方向への移動の指令対象が正面主軸３１でないことを意味する。
尚、上記の例ではＺ３指令という特別な指令によってタレット１３をＺ３軸方向へ移動させることが可能であるが、本技術にはＺ３指令が無くてもよい。
【００５２】
図９は、系統毎に複数のコマンドＣＭ１で記述されるＮＣプログラムＰ２の例を模式的に示している。図２に示す解釈実行プログラムＰ１は、ＮＣプログラムＰ２の各コマンドＣＭ１を解釈して実行する機能をＮＣ装置７０に実現させる。この機能には、動作制御機能と移動制限機能が含まれる。図９に示す系統１，３のＮＣプログラムＰ２には、初回のM131コマンドの後からワークの正面加工を行って最後のM131コマンドの後でワークを突っ切ることが記述されている。系統２のＮＣプログラムは、図示を省略しているが、例えば、ワークの背面加工を行って製品の排出及び取り上げを行うことが記述される。
【００５３】
図９中、「ｘ」は０〜９のいずれか一つの数字を表している。例えば、「Oxxxx」は、ＮＣプログラムの頭に記述されるプログラム番号を意味する。主軸設定解除コマンドＣＭ４である「M131」は、系統間の待ち合わせを要する待ち合わせコマンドであり、系統１，３の両方に記述される。M131コマンドが読み込まれると、正面主軸３１のＺ１軸及びＣ１軸の位置を系統１で制御することになる。「M3Sxxxx」は、正面主軸３１を回転速度xxxx（rpm）で回転させることを意味する。系統１の「T1xxx」はくし形刃物台１１の工具のいずれかを選択することを意味し、系統３の「T3xxx」はタレット１３の工具のいずれかを選択することを意味する。「G0」は早送りを意味し、系統１の「G0X40.0Y0.0Z-0.5」はくし形刃物台１１をＸ１軸40.0及びＹ１軸0.0の位置へ早送りし正面主軸３１をＺ軸-0.5の位置へ早送りすることを意味する。「G1」は直線補間送りを意味する。系統３の「Z-60.0」は、タレット１３をＺ３軸-60.0の位置に割り出すことを意味する。
【００５４】
主軸設定コマンドＣＭ３である「M133」は、系統間の待ち合わせを要する待ち合わせコマンドであり、系統１，３の両方に記述される。M133コマンドが読み込まれることにより、正面主軸３１のＺ１軸方向への移動及びＣ１軸周りの移動を指令する系統が系統１から系統３に変わる。M133モードに設定されると、系統３における指令によってはタレット１３及び旋回ユニットＴＵ２がＺ３軸方向へ移動し難い。これらがＺ３軸方向へ移動しなければ、旋回ユニットＴＵ２の旋回位置の限界値が進入禁止範囲Ａ１として設定されることにより、この設定が変更されるまで適切な限界値ＬＭ１が設定されたままとなる。
【００５５】
系統３の「M168」は、ガイドブッシュ４０（機械要素Ｅ１）との干渉が避けられる旋回ユニットＴＵ２の位置の限界値ＬＭ１を計算して進入禁止範囲Ａ１として設定するための限界値設定コマンドＣＭ２である。M168コマンドは、タレット１３の旋回ユニットＴＵ２とガイドブッシュ４０との干渉を避けて旋回ユニットＴＵ２を限界値直前まで旋回可能にするためのコマンドであるため、M133モードでのみ用いられる。M131モードでM168コマンドがあると、アラームとなってＮＣ旋盤１の動作が停止する。「B120.0」は、タレット１３の旋回ユニットＴＵ２をＢ３軸120.0の旋回位置にすることを意味する。「M99」は、サブプログラムを終了することを意味する。
尚、系統３において工具選択コマンド「T3xxx」が読み込まれると、ユニット旋回部ＴＵ２ａの進入禁止範囲Ａ１の設定がデフォルト値（Ｂ３−＝90°、Ｂ３＋＝270°）に戻される。
【００５６】
以下、図１０を参照してＮＣ旋盤１の動作を説明する。
図１０は、ＮＣ装置７０で行われるM168コマンド実行時の処理例を示している。このM168コマンド処理は、解釈実行プログラムＰ１がコンピューター（ＮＣ装置７０）に実現させる動作制御機能により行われる。従って、M168コマンド処理を行うＮＣ装置７０は、各種駆動部１４〜１６，２１，２３〜２６，３３，３４とともに動作制御手段Ｕ１を構成する。
【００５７】
ＮＣプログラムＰ２からM168コマンド（限界値設定コマンドＣＭ２）が読み込まれると、ＮＣ装置７０は、まず、このM168コマンドをM133モードで読み込んだか否かを判断する（ステップＳ１０２。以下、「ステップ」の記載を省略。）。図９に示す「M168」が「M133」の前に記述されていると仮定すると、M168コマンドがM131モードで読み込まれることになる。この場合、ＮＣ装置７０は、表示部８２等の出力部からアラームを出力して各種駆動部の動作を停止させ（Ｓ１０４）、M168コマンド処理を終了させる。従って、旋回ユニットＴＵ２の旋回（移動）も制限される。M131モードである場合、系統３における指令によってタレット１３及び旋回ユニットＴＵ２がＺ３軸方向へ移動する可能性がある。旋回ユニットＴＵ２がＺ３軸方向へ移動してガイドブッシュ４０に近くなればガイドブッシュ４０と干渉する可能性が生じるので、旋回ユニットＴＵ２の移動が制限されることにより、旋回ユニットＴＵ２とガイドブッシュ４０との干渉が避けられる。
【００５８】
以下、図５も参照する。図９に示すようにM168コマンドがM133モードで読み込まれる場合、系統３における指令によってはタレット１３及び旋回ユニットＴＵ２がＺ３軸方向へ移動し難い。これらがＺ３軸方向へ移動しなければ、旋回ユニットＴＵ２の旋回位置の限界値が進入禁止範囲Ａ１として設定されることにより、この設定が変更されるまで適切な限界値が設定されたままとなる。この場合、ＮＣ装置７０は、タレット１３のＺ軸機械位置Ｚｍ（Ｚｍ＞０）、及び、ガイドブッシュ４０のＺ軸位置α（α＞０）を例えばＲＡＭ７３又はＲＯＭ７２から取得する（Ｓ１０６）。Ｓ１０８では、ユニット旋回部ＴＵ２ａにおける幅の半分値（長さＷ）、該ユニット旋回部ＴＵ２ａの高さＨ、及び、Ｂ３軸の旋回中心のＺ軸位置Ｚｂを例えばＲＡＭ７３から取得する。Ｓ１１０では、角度θ２を求める上記式（２）のアークサインの引数部分｛（Ｚｍ＋Ｚｂ＋α）／√（Ｈ2＋Ｗ2）｝が１以上であるか否かを判断する。この引数部分が１以上である場合、上記式（２）で角度θ２を求めることができないが、そもそもガイドブッシュ４０と旋回ユニットＴＵ２とが干渉しない。そこで、条件成立時、ＮＣ装置７０は、旋回ユニットＴＵ２におけるＢ３軸旋回角度の進入禁止範囲の設定を無効にし（Ｓ１１６）、M168コマンド処理を終了させる。この場合、旋回ユニットＴＵ２は、Ｂ３軸周りに360°旋回可能となる。
【００５９】
Ｓ１１０で条件不成立時、ＮＣ装置７０は、上記式（４）を用いてＢ３軸を中心とする旋回可能な最大角度βを計算する（Ｓ１１２）。最後に、ＮＣ装置７０は、求めた最大角度βに基づいてガイドブッシュ４０との干渉が避けられる旋回ユニットＴＵ２の旋回位置の限界値Ｂ３−，Ｂ３＋を決定し、これらの限界値Ｂ３−，Ｂ３＋をＲＡＭ７３に格納して（Ｓ１１４）、M168コマンド処理を終了させる。限界値Ｂ３−，Ｂ３＋をＲＡＭ７３に格納することは、限界値Ｂ３−，Ｂ３＋を進入禁止範囲Ａ１として設定することを意味する。このようにして、ＮＣプログラムＰ２からM168コマンドが読み出されたとき、系統３におけるＺ軸方向への移動の指令対象が正面主軸３１に設定されるM133モードである場合に限界値Ｂ３−，Ｂ３＋が計算されて進入禁止範囲Ａ１として設定される。限界値Ｂ３−，Ｂ３＋は、ガイドブッシュ４０に対して移動するタレット１３のＺ軸機械位置Ｚｍに基づいて求められ、Ｚ軸機械位置Ｚｍが小さければ限界値Ｂ３−は小さく、Ｚ軸機械位置Ｚｍが大きくなると｛（Ｚｍ＋Ｚｂ＋α）／√（Ｈ2＋Ｗ2）｝＜１の範囲内で限界値Ｂ３−は大きくなる。
【００６０】
例えば、Ｚ３軸上でタレット１３がガイドブッシュ４０に近くてβ＝90°となれば、図６（ｂ）で示したようにＢ３−＝90°、及び、Ｂ３＋＝270°が設定される。この場合、ＮＣ装置７０の移動制限手段Ｕ２は、ＲＡＭ７３から限界値である90°及び270°を読み出し、進入禁止範囲90°〜270°への旋回ユニットＴＵ２の旋回（進入）を禁止する。また、この状態よりもタレット１３がＺ３軸上でガイドブッシュ４０から離れてβ＝120°となれば、図６（ｃ）で示したようにＢ３−＝120°、及び、Ｂ３＋＝240°が設定される。この場合、ＮＣ装置７０の移動制限手段Ｕ２により進入禁止範囲120°〜240°への旋回ユニットＴＵ２の旋回（進入）が禁止される。
尚、系統３におけるＺ軸方向への移動の指令対象が正面主軸３１に設定されていないM131モードである場合には、アラームにより旋回ユニットＴＵ２の旋回（移動）が制限される。
【００６１】
以上説明したように、進入禁止範囲の設定は、情報テーブルではなく刃物台の位置等に応じた計算値に従って行われる。また、進入禁止範囲の設定のために高価な三次元干渉チェック機能を設ける必要も無い。従って、本技術は、高価な干渉チェックを行わなくても他の機械要素との干渉を避けながら限界値直前まで工具ユニットを移動させることが可能である。
【００６２】
（３）変形例：
本発明は、様々な変形例が考えられる。
例えば、ＮＣプログラムを実行する工作機械は、ＮＣ旋盤以外の数値制御工作機械でもよい。
上述した各ステップの順番は、適宜、変更可能である。例えば、Ｓ１０６のタレットのＺ軸機械位置Ｚｍ及びガイドブッシュのＺ軸位置αの取得は、Ｓ１０８の処理後に行われてもよい。
【００６３】
本技術を適用可能な刃物台は、タレット以外にも、くし形刃物台や背面加工用刃物台等でもよい。図１１は、変形例に係るＮＣ旋盤（工作機械）１を模式的に示している。このＮＣ旋盤１は、複数の主軸３０（正面主軸３１と背面主軸３２）、ガイドブッシュ４０、複数の刃物台１０（くし形刃物台１１と背面加工用刃物台１２）、及び、ＮＣ装置７０を備えている。本変形例のくし形刃物台１１は、Ｘ１軸方向及びＹ１軸方向へ移動可能とされ、工具Ｔ２（例えば回転工具）を有する旋回ユニットＴＵ２が取り付けられている。この旋回ユニットＴＵ２の旋回部は、くし形刃物台１１に対してＹ１軸に沿った所定の回転軸を中心として旋回可能とされている。尚、図１１では、旋回の制御軸をＢ軸と表している。くし形刃物台１１の移動、及び、旋回ユニットＴＵ２の旋回部の旋回は、図２で示したＮＣ装置７０、くし形刃物台駆動部１４、及び、ユニット旋回駆動部２１と同様の構成要素を用いて制御することができる。
くし形刃物台１１に設けられた旋回ユニットＴＵ２の工具Ｔ２でワークＷ１の正面加工を行う場合、くし形刃物台１１のＸ１軸位置に応じてガイドブッシュ４０との干渉が避けられる旋回ユニットＴＵ２の旋回位置の限界値が変わる可能性がある。そこで、ＮＣ装置７０は、くし形刃物台１１のＸ１軸位置に基づいて例えば逆三角関数を用いて旋回ユニットＴＵ２の旋回位置の限界値を計算して進入禁止範囲として設定してもよい。
【００６４】
本技術を適用可能な他の機械要素Ｅ１は、ガイドブッシュ４０以外にも、主軸等でもよい。例えば、Ｚ２軸方向へ移動しない背面主軸３２に把持されたワークの背面加工をタレット１３の旋回ユニットＴＵ２の工具Ｔ２で行う場合、タレット１３のＺ３軸位置に応じて背面主軸３２との干渉が避けられる旋回ユニットＴＵ２の旋回位置の限界値が変わる可能性がある。そこで、ＮＣ装置７０は、タレット１３のＺ３軸位置に基づいて例えば逆三角関数を用いて旋回ユニットＴＵ２の旋回位置の限界値を計算して進入禁止範囲として設定してもよい。
【００６５】
尚、ＮＣプログラムを記述するコマンドに主軸設定コマンドや主軸設定解除コマンドが含まれていなくても、高価な干渉チェック無しに限界値直前まで工具ユニットを移動可能にする効果が得られる。
【００６６】
（４）結び：
以上説明したように、本発明によると、種々の態様により、高価な干渉チェックを行わなくても他の機械要素との干渉を避けながら限界値直前まで工具ユニットを移動させることが可能な技術等を提供することができる。むろん、従属請求項に係る構成要件を有しておらず独立請求項に係る構成要件のみからなる技術でも、上述した基本的な作用、効果が得られる。
また、上述した実施形態及び変形例の中で開示した各構成を相互に置換したり組み合わせを変更したりした構成、公知技術並びに上述した実施形態及び変形例の中で開示した各構成を相互に置換したり組み合わせを変更したりした構成、等も実施可能である。本発明は、これらの構成等も含まれる。
【符号の説明】
【００６７】
１…数値制御旋盤（工作機械）、
１０…刃物台、１１…くし形刃物台、１２…背面加工用刃物台、１３…タレット、
３０…主軸、３１…正面主軸、３２…背面主軸、４０…ガイドブッシュ、
７０…数値制御装置、
Ａ１…進入禁止範囲、
ＣＭ１…コマンド、ＣＭ２…限界値設定コマンド、
ＣＭ３…主軸設定コマンド、ＣＭ４…主軸設定解除コマンド、
Ｅ１…機械要素、
ＬＭ１…限界値、Ｐ１…解釈実行プログラム、Ｐ２…数値制御プログラム、
Ｔ１，Ｔ２…工具、ＴＵ１，ＴＵ２…工具ユニット、
Ｕ１…動作制御手段、Ｕ２…移動制限手段、
Ｗ１…ワーク。
【図１】
2015210585.tif 000003
【図２】
2015210585.tif 000004
【図３】
2015210585.tif 000005
【図４】
2015210585.tif 000006
【図５】
2015210585.tif 000007
【図６】
2015210585.tif 000008
【図７】
2015210585.tif 000009
【図８】
2015210585.tif 000010
【図９】
2015210585.tif 000011
【図１０】
2015210585.tif 000012
【図１１】
2015210585.tif 000013