(57)【要約】【課題】非切削軸移動と同時動作を可能とするコードを自動的に挿入することができるＮＣプログラム作成装置を提供する。【解決手段】新コード設置部１３は、ＮＣプログラム１００中において、非切削軸移動コードＧ００，Ｇ３０の前後にて、判定部１２により標準コードＭ０３，Ｍ０６，Ｍ１０が有ると判定された場合に、標準コードＭ０３，Ｍ０６，Ｍ１０に換えて、非切削軸移動コードＧ００，Ｇ３０の前に標準コードＭ０３，Ｍ０６，Ｍ１０に対応する同時動作コードＭ１０３，Ｍ８０５，Ｍ１１０を配置すると共に、非切削軸移動コードＧ００，Ｇ３０の後に標準コードＭ０３，Ｍ０６，Ｍ１０による規定の動作のうち少なくとも同時動作コードＭ１０３，Ｍ８０５，Ｍ１１０による動作以外の動作を実行するコードを配置する。【選択図】図２
2015172867.tif 000002
【特許請求の範囲】
【請求項１】
工作機械のＮＣプログラムを作成するＮＣプログラム作成装置であって、
規定の動作を実行すると共に非切削軸移動と同時の動作を規制する標準コード、及び、前記標準コードに対応する同時動作コードであって前記標準コードによる動作の一部を実行すると共に非切削軸移動と同時の動作を許容する前記同時動作コードを記憶する記憶部と、
ＮＣプログラム中において、非切削状態での駆動軸の移動の開始及び前記駆動軸が指令位置に到達したことの確認を行う非切削軸移動コードの前後にて、前記標準コードの有無を判定する判定部と、
前記判定部により前記標準コードが有ると判定された場合に、前記標準コードに換えて、前記非切削軸移動コードの前に前記標準コードに対応する前記同時動作コードを配置すると共に、前記非切削軸移動コードの後に前記標準コードによる規定の動作のうち少なくとも前記同時動作コードによる動作以外の動作を実行するコードを配置する新コード設置部と、
を備えるＮＣプログラム作成装置。
【請求項２】
前記標準コードは、主軸回転数の変更動作の開始、及び、前記主軸回転数が指令値に到達したことの確認を行う主軸回転コードであり、
前記主軸回転コードに対応する前記同時動作コードは、前記主軸回転数の変更動作の開始を行う主軸回転開始コードであり、
前記新コード設置部は、
前記主軸回転コードが前記非切削軸移動コードの前に存在する場合に、前記主軸回転コードを削除し且つ前記非切削軸移動コードの前に前記主軸回転開始コードを挿入し、
前記非切削軸移動コードの後であり切削軸移動コードの前に前記主軸回転数が指令値に到達したことの確認を行うコードを挿入する、
請求項１に記載のＮＣプログラム作成装置。
【請求項３】
前記標準コードは、主軸回転数の変更動作の開始、及び、前記主軸回転数が指令値に到達したことの確認を行う主軸回転コードであり、
前記主軸回転コードに対応する前記同時動作コードは、前記主軸回転数の変更動作の開始を行う主軸回転開始コードであり、
前記新コード設置部は、前記主軸回転コードが前記非切削軸移動コードの後であり切削軸移動コードの前に前記主軸回転コードが存在する場合に、前記非切削軸移動コードの前に前記主軸回転開始コードを挿入する、
請求項１に記載のＮＣプログラム作成装置。
【請求項４】
前記標準コードは、シャッター開、工具交換及びシャッター閉の順に動作するＡＴＣコードであり、
前記ＡＴＣコードに対応する前記同時動作コードは、前記シャッター開を行うシャッター開コードであり、
前記新コード設置部は、前記ＡＴＣコードが前記非切削軸移動コードの後に存在する場合に、前記非切削軸移動コードの前に前記シャッター開コードを挿入する、
請求項１に記載のＮＣプログラム作成装置。
【請求項５】
前記標準コードは、支持テーブルに対してアンクランプ状態の回転テーブルのクランプ動作の開始、及び、前記回転テーブルがクランプ状態となったことの確認を行うクランプコードであり、
前記クランプコードに対応する前記同時動作コードは、前記回転テーブルのクランプ動作の開始を行うクランプ開始コードであり、
前記新コード設置部は、
前記クランプコードが前記非切削軸移動コードの前に存在する場合に、前記クランプコードを削除し且つ前記非切削軸移動コードの前に前記クランプ開始コードを挿入し、
前記非切削軸移動コードの後であり切削軸移動コードの前に前記クランプコードによる規定の動作のうち少なくとも前記クランプ開始コードによる動作以外の動作を実行するコードを挿入する、
請求項１に記載のＮＣプログラム作成装置。
【請求項６】
前記新コード設置部は、対話型プログラミングにより前記コードの配置又は挿入が選択された場合に、前記コードを配置又は挿入する、
請求項１〜５の何れか一項に記載のＮＣプログラム作成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＮＣプログラム作成装置に関するものである。
【背景技術】
【０００２】
工作機械を動作するためのＮＣプログラムは、シーケンスプログラムであるため、ある処理が完了すると、次の処理に移行するという動作を行う。例えば、主軸回転数を指令値に変更した後に切削を開始する場合には、主軸回転コードＭ０３の後に、切削開始位置を指令位置とする非切削軸移動コードＧ００が配置され、その後に切削軸移動コードＧ０１が配置される。
【０００３】
また、工具交換動作は、主軸が規定位置に非切削状態で移動した後に行われる。そのため、非切削軸移動コードＧ３０（又はＧ００）の後に、工具交換コードＭ０６が配置される。工具交換コードは、シャッター開、工具交換動作及びシャッター閉の一連動作を行うコードである。
【０００４】
また、回転テーブルの位相割出を行った後に切削を開始する場合には、回転テーブルのアンクランプ、位相割出、クランプの順にコードが配置され、その後に非切削軸移動コードＧ００が配置され、その後に切削軸移動コードＧ０１が配置される。なお、ＮＣプログラムに関することが、例えば、特許文献１，２に記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１１２２１７号公報
【特許文献２】特開２０１３−１１４４２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のとおり、非切削軸移動コードによる実行は、主軸回転数の変更動作、工具交換一連動作、回転テーブルのクランプの前後に、非同時に行われる。少なくとも一部において同時に行うことができれば、当然に加工サイクルタイムが短縮される。
【０００７】
本発明は、非切削軸移動と同時動作を可能とするコードを自動的に挿入することができるＮＣプログラム作成装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
（請求項１）本発明に係るＮＣプログラム作成装置は、工作機械のＮＣプログラムを作成するＮＣプログラム作成装置であって、規定の動作を実行すると共に非切削軸移動と同時の動作を規制する標準コード、及び、前記標準コードに対応する同時動作コードであって前記標準コードによる動作の一部を実行すると共に非切削軸移動と同時の動作を許容する前記同時動作コードを記憶する記憶部と、ＮＣプログラム中において、非切削状態での駆動軸の移動の開始及び前記駆動軸が指令位置に到達したことの確認を行う非切削軸移動コードの前後にて前記標準コードの有無を判定する判定部と、前記判定部により前記標準コードが有ると判定された場合に、前記標準コードに換えて、前記非切削軸移動コードの前に前記標準コードに対応する前記同時動作コードを配置すると共に、前記非切削軸移動コードの後に前記標準コードによる規定の動作のうち少なくとも前記同時動作コードによる動作以外の動作を実行するコードを配置する新コード設置部とを備える。
これにより、同時動作コードを自動的に配置することが可能となる。このようなＮＣプログラムが自動的に作成されるため、ＮＣプログラムの作成時間の短縮が図られ、且つ、加工サイクルタイムの短縮が図られる。
【０００９】
上記手段に係るＮＣプログラム作成装置の好適な実施態様について以下に説明する。すなわち、上記手段に係るＮＣプログラム作成装置は、以下の好適な態様に限定されるものではない。
【００１０】
（請求項２）前記標準コードは、主軸回転数の変更動作の開始、及び、前記主軸回転数が指令値に到達したことの確認を行う主軸回転コードであり、前記主軸回転コードに対応する前記同時動作コードは、前記主軸回転数の変更動作の開始を行う主軸回転開始コードであり、前記新コード設置部は、前記主軸回転コードが前記非切削軸移動コードの前に存在する場合に、前記主軸回転コードを削除し且つ前記非切削軸移動コードの前に前記主軸回転開始コードを挿入し、前記非切削軸移動コードの後であり切削軸移動コードの前に前記主軸回転数が指令値に到達したことの確認を行うコードを挿入するようにしてもよい。
上記により、ＮＣプログラムにおいて主軸回転コードが非切削軸移動コードの前に存在する場合に、主軸回転数の変更動作と非切削軸移動とを同時に行うＮＣプログラムが自動的に作成される。
【００１１】
（請求項３）また、前記標準コードは、主軸回転数の変更動作の開始、及び、前記主軸回転数が指令値に到達したことの確認を行う主軸回転コードであり、前記主軸回転コードに対応する前記同時動作コードは、前記主軸回転数の変更動作の開始を行う主軸回転開始コードであり、前記新コード設置部は、前記主軸回転コードが前記非切削軸移動コードの後であり切削軸移動コードの前に前記主軸回転コードが存在する場合に、前記非切削軸移動コードの前に前記主軸回転開始コードを挿入するようにしてもよい。
上記により、ＮＣプログラムにおいて主軸回転コードが非切削軸移動コードの後に存在する場合に、主軸回転数の変更動作と非切削軸移動とを同時に行うＮＣプログラムが自動的に作成される。
【００１２】
（請求項４）また、前記標準コードは、シャッター開、工具交換及びシャッター閉の順に動作するＡＴＣコードであり、前記ＡＴＣコードに対応する前記同時動作コードは、前記シャッター開を行うシャッター開コードであり、前記新コード設置部は、前記ＡＴＣコードが前記非切削軸移動コードの後に存在する場合に、前記非切削軸移動コードの前に前記シャッター開コードを挿入するようにしてもよい。
上記により、工具交換一連動作のうちシャッター開の動作と非切削軸移動とを同時に行うＮＣプログラムが自動的に作成される。
【００１３】
（請求項５）また、前記標準コードは、支持テーブルに対してアンクランプ状態の回転テーブルのクランプ動作の開始、及び、前記回転テーブルがクランプ状態となったことの確認を行うクランプコードであり、前記クランプコードに対応する前記同時動作コードは、前記回転テーブルのクランプ動作の開始を行うクランプ開始コードであり、前記新コード設置部は、前記クランプコードが前記非切削軸移動コードの前に存在する場合に、前記クランプコードを削除し且つ前記非切削軸移動コードの前に前記クランプ開始コードを挿入し、前記非切削軸移動コードの後であり切削軸移動コードの前に前記クランプコードによる規定の動作のうち少なくとも前記クランプ開始コードによる動作以外の動作を実行するコードを挿入するようにしてもよい。
上記により、回転テーブルの位相割出一連動作のうちクランプ動作と非切削軸移動とを同時に行うＮＣプログラムが自動的に作成される。
【００１４】
（請求項６）また、前記新コード設置部は、対話型プログラミングにより前記コードの配置又は挿入が選択された場合に、前記コードを配置又は挿入するようにしてもよい。作業者が、対話型プログラミングにより、コードの配置又は挿入を選択することが可能となる。コードの配置又は挿入が選択された場合には、自動的に当該コードが配置又は挿入される。従って、作業者の意志を考慮しながら、所望のＮＣプログラムが作成される。
【図面の簡単な説明】
【００１５】
【図１】本実施形態のＮＣプログラム作成装置のブロック図を示す。
【図２】図１の判定部及び新コード設置部の第一処理を示すフローチャートである。
【図３】図２における入力された編集前のＮＣプログラムを示す。
【図４】図２における編集後のＮＣプログラムを示す。
【図５】図２における入力された他の編集前のＮＣプログラムを示す。
【図６】図３及び図５に示す編集前のＮＣプログラムと図４に示す編集後のＮＣプログラムの異なる部分における実行時間を示す。
【図７】図１の判定部及び新コード設置部の第二処理を示すフローチャートである。
【図８】図７における編集後のＮＣプログラムを示す。
【図９】図３に示す編集前のＮＣプログラムと図８に示す編集後のＮＣプログラムの異なる部分における実行時間を示す。
【図１０】図１の判定部及び新コード設置部の第三処理を示すフローチャートである。
【図１１】図１０における入力された編集前のＮＣプログラムを示す。
【図１２】図１０における編集後のＮＣプログラムを示す。
【図１３】図１１に示す編集前のＮＣプログラムと図１２に示す編集後のＮＣプログラムの異なる部分における実行時間を示す。
【発明を実施するための形態】
【００１６】
（１．ＮＣプログラム作成装置の構成）
本発明の第一実施形態のＮＣプログラム作成装置１０について説明する。ＮＣプログラム作成装置１０は、工作機械のＮＣプログラムを作成する装置である。ＮＣプログラム作成装置１０は、図１に示すように、予め生成されたＮＣプログラム１００を入力し、当該ＮＣプログラム１００を編集する装置である。ＮＣプログラム作成装置１０は、記憶部１１と、判定部１２と、新コード設置部１３とを備える。
【００１７】
記憶部１１は、図１に示すように、複数の標準コードと、各標準コードに対応する複数の同時動作コードとを記憶する。標準コードは、規定の動作を実行すると共に、非切削軸移動と同時の動作を規制するコードである。標準コードは、Ｍ０３、Ｍ０６、Ｍ１０を例に挙げる。
【００１８】
Ｍ０３は、主軸回転数の変更動作の開始、及び、主軸回転数が指令値に到達したことの確認を行う主軸回転コードである。Ｍ０６は、シャッター開、工具交換及びシャッター閉の順に動作するＡＴＣコードである。Ｍ１０は、支持テーブルに対してアンクランプ状態の回転テーブルのクランプ動作の開始、及び、回転テーブルがクランプ状態となったことの確認を行うクランプコードである。
【００１９】
同時動作コードは、対応する標準コードによる動作の一部を実行すると共に、非切削軸移動と同時の動作を許容するコードである。標準コードＭ０３，Ｍ０６，Ｍ１０に対応する同時標準コードは、Ｍ１０３、Ｍ８０５、Ｍ１１０である。
【００２０】
Ｍ１０３は、主軸回転コードに対応し、主軸回転数の変更動作の開始を行う主軸回転開始コードである。Ｍ８０５は、ＡＴＣコードに対応し、シャッター開を行うシャッター開コードである。Ｍ１１０は、クランプコードに対応し、回転テーブルのクランプ動作の開始を行うクランプ開始コードである。
【００２１】
なお、切削軸移動コードは、切削状態での駆動軸の移動の開始、及び、駆動軸が指令位置に到達したことの確認を行うコードである。切削軸移動コードは、Ｇ０１、Ｇ０２、Ｇ０３などである。また、非切削軸移動コードは、非切削状態での駆動軸の移動の開始、及び、駆動軸が指令位置に到達したことの確認を行うコードである。非切削軸移動コードは、Ｇ００、Ｇ３０などである。
【００２２】
判定部１２は、入力されるＮＣプログラム１００中において、非切削軸移動コードの前後にて標準コードの有無を判定する。ここで、非切削軸移動コードの前後は、非切削軸移動コードのブロックの１又は複数のブロック前、又は、非切削軸移動コードのブロックの１又は複数のブロック後を意味する。
【００２３】
新コード設置部１３は、判定部１２により標準コードが有ると判定された場合に、標準コードに換えて、非切削軸移動コードの前に標準コードに対応する同時動作コードを配置すると共に、非切削軸移動コードの後に前記標準コードを配置する。
【００２４】
（２．Ｍ０３に対する第一処理の説明）
次に、標準コードＭ０３の場合に関して、判定部１２及び新コード設置部１３の第一処理について、図２〜図６を参照して説明する。図２に示すように、判定部１２がＮＣプログラム１００を入力する（Ｓ１）。続いて、判定部１２が、ＮＣプログラム１００中において、主軸回転コードＭ０３の位置を検出する（Ｓ２）。続いて、判定部１２が、Ｍ０３の位置が非切削軸移動コードＧ００，Ｇ３０の前に存在するか否かを判定する（Ｓ３）。
【００２５】
続いて、判定部１２によってＭ０３がＧ００又はＧ３０の前に存在すると判定された場合に（Ｓ３：Ｙｅｓ）、新コード設置部１３が、Ｍ０３を削除し、Ｍ０３の存在していた位置に主軸回転開始コードＭ１０３を挿入する（Ｓ４）。すなわち、新コード設置部１３は、Ｍ０３をＭ１０３に置換する。続いて、新コード設置部１３は、Ｇ００又はＧ３０と切削軸移動コードＧ０１の間に、主軸回転数が指令値に到達したことの確認を行うコードを挿入し（Ｓ６）、処理を終了する。ここで、主軸回転数が指令値に到達したことの確認を行うコードは、主軸回転コードＭ０３を用いることもできるし、Ｍ０３以外の専用コードを用いることもできる。本実施形態においては、当該コードには、Ｍ０３が適用される。
【００２６】
一方、判定部１２によってＭ０３がＧ００又はＧ３０の前に存在しないと判定された場合に（Ｓ３：Ｎｏ）、新コード設置部１３が、Ｇ００又はＧ３０の前にＭ１０３を挿入し（Ｓ５）、処理を終了する。つまり、新コード設置部１３は、Ｍ０３を初期の位置に配置したままとする。従って、ここでのＭ０３は、主軸回転数が指令値に到達したことの確認を行うコードとして機能する。この他に、新コード設置部１３は、Ｇ００又はＧ３０の後に存在するＭ０３を、主軸回転数が指令値に到達したことの確認を行う専用のコードに置換してもよい。
【００２７】
判定部１２が図３に示すＮＣプログラム１０１を入力する場合に、図２に示す処理を実行することにより、図４に示すＮＣプログラム２０１が作成される。この場合は、図２のＳ４、Ｓ６が実行される。また、判定部１２が図５に示すＮＣプログラム１０２を入力する場合にも、図４に示すＮＣプログラム２０１が作成される。この場合は、図２のＳ５が実行される。
【００２８】
図３に示すように、第一の編集前のＮＣプログラム１０１は、主軸回転コードＭ０３による主軸回転数の変更動作を開始し、且つ、主軸回転数が指令値に到達したことの確認を行った後に（図３のＡ参照）、非切削軸移動コードＧ００による非切削状態での駆動軸の移動を開始する。さらに、第一の編集前のＮＣプログラム１０１は、非切削軸移動コードＧ００により、駆動軸が指令位置に到達したことの確認を行う。その後に、第一の編集前のＮＣプログラム１０１は、切削軸移動コードＧ０１による切削状態での駆動軸の移動を開始する。
【００２９】
図５に示すように、第二の編集前のＮＣプログラム１０２は、非切削軸移動コードＧ００による非切削状態での駆動軸の移動を開始し、且つ、駆動軸が指令位置に到達したことの確認を行った後に、主軸回転コードＭ０３による主軸回転数の変更動作を開始する（図５のＡ参照）。さらに、第二の編集前のＮＣプログラム１０２は、主軸回転コードＭ０３により、主軸回転数が指令値に到達したことの確認を行う。その後に、第二の編集前のＮＣプログラム１０２は、切削軸移動コードＧ０１による切削状態での駆動軸の移動を開始する。
【００３０】
一方、図４に示すように、編集後のＮＣプログラム２０１は、主軸回転開始コードＭ１０３による主軸回転数の変更動作を開始すると同時に（図４のＡ１参照）、非切削軸移動コードＧ００による非切削状態での駆動軸の移動を開始する。つまり、主軸回転数の変更動作と、非切削状態での駆動軸の移動とが、同時に行われる。続いて、両者の動作のうち遅い方が終了すると、主軸回転コードＭ０３が実行される（図４のＡ２参照）。ここでの主軸回転コードＭ０３は、主軸回転コードＭ０３による動作のうち主軸回転開始コードＭ１０３による動作以外の動作を行うコードとして機能する。つまり、ここでの主軸回転コードＭ０３は、主軸回転数が指令値に到達したことの確認を行うコードとして機能する。その後に、編集後のＮＣプログラム２０１は、切削軸移動コードＧ０１による切削状態での駆動軸の移動を開始する。
【００３１】
編集前後のＮＣプログラム１０１，１０２，２０１の実行時間を比較すると、図６に示すように、編集後のＮＣプログラム２０１との実行時間は、編集前のＮＣプログラム１０１，１０２の実行時間より短くなる。これは、編集後のＮＣプログラム２０１がＭ１０３とＧ００とを同時に実行するためである。以上より、同時動作コードを自動的に配置することが可能となる。従って、加工サイクルタイムの短縮を図ることができるＮＣプログラム２０１が自動的に作成される。そのため、ＮＣプログラム２０１の作成時間の短縮が図られ、且つ、加工サイクルタイムの短縮が図られる。
【００３２】
（３．Ｍ０６に対する第二処理の説明）
次に、標準コードＭ０６の場合に関して、判定部１２及び新コード設置部１３の第二処理について、図７〜図９を参照して説明する。図７に示すように、判定部１２がＮＣプログラム１００を入力する（Ｓ１１）。続いて、判定部１２が、ＮＣプログラム１００中において、ＡＴＣコードＭ０６の位置を検出する（Ｓ１２）。続いて、判定部１２が、Ｍ０６の位置が非切削軸移動コードＧ００，Ｇ３０の後に存在するか否かを判定する（Ｓ１３）。
【００３３】
続いて、判定部１２によってＭ０６がＧ００，Ｇ３０の後に存在すると判定された場合に（Ｓ１３：Ｙｅｓ）、新コード設置部１３が、Ｇ００，Ｇ３０の前にシャッター開コードＭ８０５を挿入し（Ｓ１４）、処理を終了する。つまり、新コード設置部１３は、Ｍ０６を初期の位置に配置したままとする。ここでのＭ０６は、Ｍ０６による動作のうちＭ８０５による動作以外の動作を行うコードとして機能する。すなわち、ここでのＭ０６は、工具交換及びシャッター閉の順に動作するコードとして機能する。この他に、新コード設置部１３は、Ｍ０６を、工具交換及びシャッター閉の順に動作する専用のコードに置換してもよい。一方、判定部１２によってＭ０６がＧ００，Ｇ３０の後に存在しないと判定された場合に（Ｓ１３：Ｎｏ）、新コード設置部１３は何の処理をすることなく処理を終了する。
【００３４】
判定部１２が図３に示すＮＣプログラム１０１を入力する場合に、図７に示す処理を実行することにより、図８に示すＮＣプログラム２０２が作成される。ここで、図３に示すように、第一の編集前のＮＣプログラム１０１は、非切削軸移動コードＧ３０による非切削状態での駆動軸の移動を開始し、駆動軸が工具交換位置（指令原点）に到達したことの確認を行う。続いて、第一の編集前のＮＣプログラム１０１は、ＡＴＣコードＭ０６によるシャッター開、工具交換及びシャッター閉の動作を順に行う（図３のＢ参照）。
【００３５】
一方、図８に示す編集後のＮＣプログラム２０２は、シャッター開コードＭ８０５によるシャッター開の動作を開始すると同時に（図８のＢ１参照）、非切削軸移動コードＧ３０による駆動軸の移動を開始する。つまり、工具交換一連動作のうちシャッター開の動作と、非切削状態での駆動軸の移動とが、同時に行われる。続いて、両者の動作の遅い方が終了すると、ＡＴＣコードＭ０６が実行される（図８のＢ２参照）。ここで、シャッター開の動作は既に実行されるため、ここでのＡＴＣコードＭ０６は、Ｍ０６による動作のうちシャッター開の動作以外の動作、すなわち工具交換及びシャッター閉の動作を行うコードとして機能する。
【００３６】
編集前後のＮＣプログラム１０１，２０２の実行時間を比較すると、図９に示すように、編集後のＮＣプログラム２０２との実行時間は、編集前のＮＣプログラム１０１の実行時間より短くなる。これは、編集後のＮＣプログラム２０２がＭ８０５（Ｍ０６の一部の動作）とＧ３０とを同時に実行するためである。以上より、同時動作コードを自動的に配置することが可能となる。従って、加工サイクルタイムの短縮を図ることができるＮＣプログラム２０２が自動的に作成される。そのため、ＮＣプログラム２０２の作成時間の短縮が図られ、且つ、加工サイクルタイムの短縮が図られる。
【００３７】
（４．Ｍ１０に対する第三処理の説明）
次に、標準コードＭ１０の場合に関して、判定部１２及び新コード設置部１３の第三処理について、図１０〜図１３を参照して説明する。図１０に示すように、判定部１２がＮＣプログラム１００を入力する（Ｓ２１）。続いて、判定部１２が、ＮＣプログラム１００中において、回転テーブルのクランプコードＭ１０の位置を検出する（Ｓ２２）。続いて、判定部１２が、Ｍ１０の位置が直動軸に関する非切削軸移動コードＧ００，Ｇ３０の前に存在するか否かを判定する（Ｓ２３）。直動軸に関する非切削軸移動コードＧ００，Ｇ３０は、位相割出を行うための回転テーブルの非切削軸移動コードＧ００を含まない。
【００３８】
続いて、判定部１２によってＭ１０がＧ００又はＧ３０の前に存在すると判定された場合に（Ｓ２３：Ｙｅｓ）、新コード設置部１３が、Ｍ１０を削除し、Ｍ１０の存在していた位置にクランプ開始コードＭ１１０を挿入する（Ｓ２４）。すなわち、新コード設置部１３は、Ｍ１０をＭ１１０に置換する。続いて、新コード設置部１３は、Ｇ００又はＧ３０と切削軸移動コードＧ０１の間に、クランプコードＭ１０による動作のうち少なくともクランプ開始コードＭ１１０による動作以外の動作を実行するコードを挿入し（Ｓ２５）、処理を終了する。
【００３９】
ここで、クランプコードＭ１０による規定の動作のうち少なくともクランプ開始コードＭ１１０による動作以外の動作を実行するコードは、Ｍ１０を用いることもできるし、Ｍ１０以外の専用コードを用いることもできる。本実施形態においては、当該コードには、Ｍ１０が適用される。
一方、判定部１２によってＭ１０がＧ００又はＧ３０の前に存在しないと判定された場合には（Ｓ２３：Ｎｏ）、処理を終了する。
【００４０】
図１１に示すように、編集前のＮＣプログラム１０３は、アンクランプコードＭ１１による回転テーブルのアンクランプ動作を実行し、続いて非切削軸移動コードＧ００による回転テーブルの位相割出を実行する。編集前のＮＣプログラム１０３は、位相割出を完了した後に、クランプコードＭ１０による回転テーブルのクランプ動作を実行し、続いて非切削軸移動コードＧ００により非切削状態での駆動軸の移動を開始する。続いて、編集前のＮＣプログラム１０３は、非切削軸移動コードＧ００により駆動軸が指令位置に到達したことの確認を行った後に、切削軸移動コードＧ０１による切削状態での駆動軸の移動を開始する。
【００４１】
一方、図１２に示すように、編集後のＮＣプログラム２０３は、位相割出を完了した後に、クランプ開始コードＭ１１０によるクランプ動作を開始すると同時に（図１２のＣ１参照）、非切削軸移動コードＧ００による非切削状態での駆動軸の移動を開始する。つまり、回転テーブルの位相割出一連動作のうちクランプ動作と、非切削状態での駆動軸の移動とが、同時に行われる。続いて、両者の動作のうち遅い方が終了すると、クランプコードＭ１０が実行される（図１２のＣ２参照）。ここでのクランプコードＭ１０は、クランプコードＭ１０による動作のうちクランプ開始コードＭ１１０による動作以外の動作を行うコードとして機能する。つまり、ここでのクランプコードＭ１０は、回転テーブルがクランプ状態になったことの確認を行うコードとして機能する。その後に、編集後のＮＣプログラム２０３は、切削軸移動コードＧ０１による切削状態での駆動軸の移動を開始する。
【００４２】
編集前後のＮＣプログラム１０３，２０３の実行時間を比較すると、図１３に示すように、編集後のＮＣプログラム２０３との実行時間は、編集前のＮＣプログラム１０３の実行時間より短くなる。これは、編集後のＮＣプログラム２０３がＭ１１０とＧ００とを同時に実行するためである。以上より、同時動作コードを自動的に配置することが可能となる。従って、加工サイクルタイムの短縮を図ることができるＮＣプログラム２０３が自動的に作成される。そのため、ＮＣプログラム２０３の作成時間の短縮が図られ、且つ、加工サイクルタイムの短縮が図られる。
【００４３】
上記第一の処理から第三の処理は、それぞれ別々に実行したが、全ての処理が複合的に実行されるようにしてもよい。この場合、例えば、判定部１２及び新コード設置部１３が、編集前のＮＣプログラム１０１（図３に示す）に対して第一の処理と第三の処理とを実行すると、編集後のＮＣプログラムは、主軸回転開始コードＭ１０３及びシャッター開コードＭ８０５が適宜の位置に挿入される。
【００４４】
（その他）上記実施形態においては、非切削軸移動と同時動作を可能とするコードを自動的に挿入した。このようにコードを自動的に挿入することを対話型プログラミングにより選択可能としてもよい。画面に表示されるメニュー及び項目に対して、作業者が入力することで、作業者によるプログラム修正が無くなり、容易にＮＣプログラムが作成可能となる。つまり、作業者の意志を考慮しながら、所望のＮＣプログラムが作成される。
【符号の説明】
【００４５】
１０：プログラム作成装置、  １１：記憶部、  １２：判定部、  １３：新コード設置部、  １００：ＮＣプログラム、  １０１，１０２，１０３：編集前のＮＣプログラム、  ２０１，２０２，２０３：編集後のＮＣプログラム、  Ｇ００，Ｇ３０：非切削軸移動コード、  Ｇ０１：切削軸移動コード、  Ｍ０３：主軸回転コード（標準コード）、  Ｍ０６：工具交換コード（標準コード）、  Ｍ１０：クランプコード（標準コード）、  Ｍ１０３：主軸回転開始コード（同期動作コード）、  Ｍ１１０：クランプ開始コード（同期動作コード）、  Ｍ８０５：シャッター開コード（同期動作コード）
【図１】
2015172867.tif 000003
【図２】
2015172867.tif 000004
【図３】
2015172867.tif 000005
【図４】
2015172867.tif 000006
【図５】
2015172867.tif 000007
【図６】
2015172867.tif 000008
【図７】
2015172867.tif 000009
【図８】
2015172867.tif 000010
【図９】
2015172867.tif 000011
【図１０】
2015172867.tif 000012
【図１１】
2015172867.tif 000013
【図１２】
2015172867.tif 000014
【図１３】
2015172867.tif 000015