(57)【要約】【課題】ＮＣシミュレータによる、削り込みまたは削り残しの確認をすることなく、工具経路を作成する。【解決手段】曲面切削加工の際の工具の移動する経路である工具経路のデータを作成するＣＡＭ装置における工具経路作成方法であって、前記ＣＡＭ装置が、加工対象物の外形の形状データを異なるオフセット量でオフセットした曲線である第１の曲線ＰＡ（ｔ）および第２の曲線Ｐ（ｔ）を算出し、前記第１の曲線ＰＡ（ｔ）上の任意の点である第１の点ＰＡ０を算出し、前記第１の点ＰＡ０から、前記第２の曲線Ｐ（ｔ）に接する直線５０２を算出し、前記直線５０２が前記第１の曲線ＰＡ（ｔ）と交わる点である第２の点ＰＡ１を算出し、前記第１の点ＰＡ０と、前記第２の点ＰＡ１とを結んだ直線５０２を算出することによって、工具経路を作成することを特徴とする【選択図】図５
2007200121.tif 000002
【特許請求の範囲】
【請求項１】
曲面切削加工の際の工具の移動する経路である工具経路のデータを作成するＣＡＭ装置における工具経路作成方法であって、
前記ＣＡＭ装置が、
加工対象物の外形の形状データを、前記形状データが保持されている記憶装置から読み取り、
前記読み取った形状データを基に、前記形状データにより特定される形状に沿った曲線を算出し、
前記曲線を異なるオフセット量でオフセットした第１の曲線および第２の曲線を算出し、
前記第１の曲線上の任意の点である第１の点を算出し、
前記第１の点から、前記第２の曲線に接する直線を算出し、
前記直線が前記第１の曲線と交わる点である第２の点を算出し、
前記第１の点と、前記第２の点とを結んだ直線を算出することによって、前記工具経路を作成することを特徴とする工具経路作成方法。
【請求項２】
前記第２の曲線とは、前記オフセット量が０である曲線であり、
前記第１の曲線とは、前記第２の曲線とは異なるオフセット量で前記形状データをオフセットした曲線であることを特徴とする請求項１に記載の工具経路作成方法。
【請求項３】
前記ＣＡＭ装置が、
前記作成した工具経路を前記工具の半径分オフセットした直線を算出することを特徴とする請求項２に記載の工具経路作成方法。
【請求項４】
前記ＣＡＭ装置が、
前記第1の点の算出、前記第２の点の算出、前記第1の点と前記第２の点とを結んだ前記直線の算出および前記工具経路を工具の半径分オフセットした直線の算出を、少なくとも２回繰り返し、
複数の前記工具の半径分オフセットした直線間を補間処理することによって、前記複数の工具の半径分オフセットした直線を結ぶことを特徴とする請求項３に記載の工具経路作成方法。
【請求項５】
前記第１の曲線とは、前記工具の半径の値であるオフセット量で前記形状データをオフセットした曲線であり、
前記第２の曲線とは、前記工具の半径の値より大きなオフセット量で前記第1の曲線をオフセットした曲線であることを特徴とする請求項１に記載の工具経路作成方法。
【請求項６】
前記ＣＡＭ装置が、
前記第１の曲線および前記第２の曲線を算出する前に、前記形状データにおける曲線の曲率方向ベクトルを算出し、
前記曲率方向ベクトルを基に、前記形状データの凹と凸との境目を検出することを特徴とする請求項１に記載の工具経路作成方法。
【請求項７】
請求項１から請求項６に記載の工具経路作成方法を、コンピュータに実行させることを特徴とする工具経路作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御（ＮＣ：Numerical Control）装置用データを作成するためのＣＡＭ（Computer Aided Manufacturing）装置に係り、特に、工具を目標の経路に沿って移動させるための工具経路を作成する技術に関する。
【背景技術】
【０００２】
従来、ＮＣ加工は、一般に以下のような手順によって行われる。
まず、ＣＡＭ装置が、ＣＡＤ（Computer Aided Design）で作成した加工形状データを読み取る。そして、ＣＡＭ装置が、加工形状データに対する加工対象部位の指定を行い、工具、削り残し量、加工速度などの諸元設定を行った後、これらの設計条件を基に、工具経路を作成する。次に、ＣＡＭ装置が、この工具経路を数値制御装置が実行可能な形式であるＮＣデータに変換する。続いて、数値制御装置が、このＮＣデータを読み取り、加工機のテーブルや回転軸への命令に変換した後、曲面加工装置が、この命令に従って加工機のテーブルや回転軸を動作させることにより、ＮＣ加工が実行される。
【０００３】
ここで、工具経路とは、工具の移動位置を表すもので、テーブルのみが移動する加工機の場合は工具先端の回転中心位置を順番に繋いだ折線のデータで表現し、テーブルの他に回転軸が回転する加工機の場合は工具先端の回転中心位置と工具軸の方向を順番に繋いだ折線のデータで表現する。
【０００４】
また、工具経路は、加工機のテーブルや回転軸を動作させるＮＣデータを作成するための基準データであることから、加工物を表す形状との関係を考慮しないと、加工後の形状が目標寸法に対し小さくなったり（削り込み）、大きくなったり（削り残し）する。
削り残しは、次工程で切削または研磨を行うことで対処できるが、削り込みは次工程で対処することが難しいので十分注意して排除する必要がある。
【０００５】
図１１は、工具にボールエンドミルを用いたときの削り込みや削り残しを説明するための図であり、（ａ）は、加工面が凸状態時を示し、（ｂ）は、加工面が凹状態時を示す。
最初に、図１１（ａ）を用いて、工具経路の作成手順を説明する。
（１）まず、ＣＡＭ装置が、加工物の表面（加工面）１１０１ａに点１１０２ａおよび点１１０３ａを算出する。点１１０２ａおよび点１１０３ａは、工具が加工物に接触する点であり、工具接触点という。
（２）次に、ＣＡＭ装置が、工具接触点１１０２ａと工具接触点１１０３ａにおける法線１１０４ａおよび法線１１０５ａを算出し、法線方向に工具（ボールエンドミル）１１０６ａの半径だけオフセットした点１１０７ａおよび点１１０８ａを作る。
ここで、点１１０７ａおよび点１１０８ａは、工具刃先の回転中心であり、工具中心点という。
そして、実際の加工では、（１），（２）の手順で作成した工具中心点１１０７ａと工具中心点１１０８ａとを結ぶ直線１１０９ａに従って工具１１０６ａが移動する。この場合、直線１１０９ａが、工具経路となる。
【０００６】
図１１（ｂ）のように、加工面１１０１ｂが凹の場合でも、図１１（ａ）と同様にして、工具経路１１０９ｂが算出される。
【０００７】
従って、工具１１０６ａ，１１０６ｂが移動したときに加工物を削り取る部分は、工具１１０６ａ，１１０６ｂが直線１１０９ａ，１１０９ｂに従って移動したときの包絡面になる。図１１（ａ）において、包絡面は、包絡面の輪郭を表す直線１１１０ａで図示している。また、図１１（ｂ）に示すように加工面１１０１ｂが凹の場合の包絡面は、は直線１１１０ｂで包絡面の輪郭を表している。
図１１（ａ），（ｂ）で図示するように、加工面が凸の場合は加工面１１０１ａに対して包絡面１１１０ａ、すなわち工具経路１１０９ａが直線であるため削り込みが生じ、加工面が凹の場合は加工面１１０１ｂに対し包絡面１１１０ｂ、すなわち工具経路１１０９ｂが直線であるため削り残しが生じる。
削り込みや削り残しの量は、工具１１０６ａ，１１０６ｂの半径や工具接触点１１０２ａ，１１０３ａ，１１０２ｂ，１１０３ｂ間の凹凸の大きさで変化する。切削加工では工具１１０６ａ，１１０６ｂの半径を変えるには工具１１０６ａ，１１０６ｂを交換するしかないが、工具自動交換装置を用意したとしても工具交換に時間がかかることから頻繁に工具を交換することは効率的ではない。
【０００８】
このような削り込みや削り残しの量を小さくする技術として、加工面の凹凸状態により２つの工具接触点間距離を小さくする方法で対処する方法が提示されている（例えば、特許文献１参照）。
【０００９】
図１２は、従来における加工面を、オフセットした場合の工具経路を説明するための図であり、（ａ）は、加工面が凸状態時を示し、（ｂ）は、加工面が凹状態時を示す。
また、削り込み位置や削り込み量が工具接触点間の凹凸の大きさで変化するので、このような変化に対処するため、ＮＣデータを検査するためのシステム（ＮＣシミュレータ）を用いて削り込みを確認する。そして、確認の結果、削り込みが生じる場合は、図１２に示すように、加工面を削り込み量分だけオフセットし、このオフセットを施したオフセット形状１２０１ａ，１２０１ｂから工具経路１２０２ａ，１２０２ｂを再度作成し、そしてＮＣシミュレータで再度削り込み確認する、という過程を繰り返すことで、削り込みの無い工具経路を完成させていた。なお、削り込みの確認の際のオフセット量は、経験的に求められることが多い。
また、削り残しの確認も、削り込みの確認と同様の方法によって行われる。
【非特許文献１】日経ＣＧ編著、ＣＡＤの基礎知識、日経ＢＰ社、１９９４年８月、ｐ．２７１〜２７５、図７．２６〜図７．３１
【特許文献１】特開平１０−６９３１１号公報（第２頁〜第３頁、図２４）
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、特許文献１に記載されているように、工具接触点の間隔を狭めることで、削り込み量や削り残し量を少なくすることができるが、削り込みや削り残しが無くなるわけではないので、オフセットの工程と、ＮＣシミュレータによる削り込みや削り残しの確認が無くなるわけではない。
さらに、工具接触点の間隔を狭めれば工具経路に用いる工具中心点の数が増大するため、工具移動時における工具の加速／減速箇所が増大し、その結果、加工時間が増大するといった問題がある。またＮＣデータの量が増加するためＮＣデータの数値制御装置への転送時間が増大し、その結果加工機が実際に切削している時間が低下するといった問題がある。
【００１１】
また、工具接触点の間隔を狭めることで、工具中心点が多くなった場合、ＮＣシミュレータにおけるＮＣシミュレーション時間、形状オフセット時間、工具経路作成時間が増大するため、削り込みまたは削り残しを最小にするまでの時間が増大することとなる。その結果、ＮＣデータ作成までの時間が増大するため加工装置動作までの待ち時間増大、ＮＣデータ作成作業者の作業時間増などの問題が生じる。
【００１２】
前記課題に鑑みて、本発明は、ＮＣシミュレータによる、削り込みまたは削り残しの確認をすることなく、工具経路を作成することを目的とする。
【課題を解決するための手段】
【００１３】
前記課題を解決するために、本発明は、曲面切削加工の際の工具の移動する経路である工具経路のデータを作成するＣＡＭ装置における工具経路作成方法であって、前記ＣＡＭ装置が、加工対象物の外形の形状データを、前記形状データが保持されている記憶装置から読み取り、前記読み取った形状データを基に、前記形状データにより特定される形状に沿った曲線を算出し、前記曲線を異なるオフセット量でオフセットした第１の曲線および第２の曲線を算出し、前記第１の曲線上の任意の点である第１の点を算出し、前記第１の点から、前記第２の曲線に接する直線を算出し、前記直線が前記第１の曲線と交わる点である第２の点を算出し、前記第１の点と、前記第２の点とを結んだ直線を算出することによって、前記工具経路を作成することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、ＮＣシミュレータによる、削り込みまたは削り残しの確認をすることなく、工具経路を作成することができる。
【発明を実施するための最良の形態】
【００１５】
次に、本発明の実施形態について、適宜図面を参照しながら詳細に説明する。
【００１６】
［ＣＡＭシステムの構成］
図１は、本実施形態に係るＣＡＭシステムの構成例を示すブロック図である。
本実施形態におけるＣＡＭシステムは、ＣＡＤデータである曲面データを作成するＣＡＤ装置２、曲面データを記憶する記憶装置３、曲面データを基に工具が移動する経路（工具経路）を作成し、作成した工具経路をＮＣデータに変換するＣＡＭ装置１、切削などの曲面加工を行う曲面加工装置５を、ＮＣデータに従って数値制御する数値制御装置４および曲面加工装置５からなる。
【００１７】
ＣＡＤ装置２は、上位計算機（例えば、ＰＣ（Personal Computer））などで稼動し、仕上り形状のデータ（ＣＡＤデータ）である曲面データを作成し、記憶装置３にこの曲面データを格納する。
なお、本実施形態では、曲面データや、後記するオフセットした曲面データを「曲面」と記載することとする。また、同様に、曲面を基に算出される曲線データや、後記するオフセットした曲線データなどを「曲線」と記載することとする。
【００１８】
また、数値制御装置４において、曲面加工装置５の工具位置を決定する座標系は、少なくとも互いに直交するＸ，Ｙ，Ｚの基本３軸を持つ。
【００１９】
［ＣＡＭ装置１の構成］
ＣＡＭ装置１は、データを処理する処理部１１を含んで構成される。
そして、処理部１１は、記憶装置３から曲面データを読み込む曲面データ読取部１１２、曲面データにおける加工部位を設定する加工部位設定部１１３、工具の種類を選択・設定する工具種設定部１１４、工具経路のパターンである経路パターンを設定する経路パターン設定部１１５、切削に使用する工具の回転数、工具移動速度などの諸元、および削り残し量を設定する諸元設定・削り残し量設定部１１６、各設定部によって設定された設定条件と、曲面データを基に工具経路を作成する工具経路作成部１１１、作成した工具経路に対して補正が必要な場合、工具経路に対して経路補正処理を行う経路補正部１１７、および作成した工具経路あるいは経路補正処理を行った工具経路をＮＣデータに変換するＮＣデータ変換部１１８とから構成される。
【００２０】
［工具経路作成部の構成］
さらに、工具経路作成部１１１は、曲面上に曲線を算出する曲線算出部１１１１、曲線の曲率の大きさと方向を表す曲率方向ベクトルを算出し、この曲率方向ベクトルを基に曲線の凹凸が反転する箇所（凹凸反転部）の探索・算出、さらに曲線と曲面の位置関係を基に、該当する曲線が凸か凹かの判定などを行う曲率反転探索・判定部１１１２、曲率が反転している箇所が存在すると判定された場合、曲率が反転している箇所である凹凸反転部で曲線を分割する曲線分割部１１１３、工具設定部において、設定された工具が、フラットエンドミルであるか否かなどを判定する工具判定部１１１４、曲線を曲面の法線方向に削り残し量（取代）だけオフセットした曲線を作成する取代オフセット部１１１５、曲線とオフセットした曲線との間で、工具経路となる折線の頂点を探索して折線を作成する折線作成部１１１６、折線作成部１１１６が作成した折線を工具半径分オフセットした際に生じる折線の断絶部を補間する経路補間部１１１７、曲線が凹の場合、エンドミルが２点で曲線に接する位置である接触点を探索するエンドミル接触探索部１１１８、曲線が凹形状の場合、曲線をエンドミルの工具半径だけオフセットした曲線を作成する凹工具別オフセット部１１１９とから構成される。
【００２１】
ＣＡＭ装置１における各部は、ＣＰＵ（Central Processing Unit），ＲＡＭ（Random Access Memory），ＲＯＭ（Read Only Memory），ＨＤＤ（Hard Disk Drive）、入出力インタフェースなどを備えるコンピュータにおいて、例えばＨＤＤまたはＲＯＭに格納されているプログラムがＲＡＭに展開され、ＲＡＭに展開されたプログラムをＣＰＵが実行することで、具現化される。
【００２２】
（全体処理）
次に、図１を参照しつつ、図２に沿って、ＣＡＭシステムにおけるＮＣデータ作成の処理の流れを説明する。
図２は、本実施形態に係るＣＡＭシステムにおけるＮＣデータ作成の処理の流れを示すフローである。
まず、ＣＡＤ装置２によって、曲面加工に必要なＣＡＤデータである曲面データが作成される曲面データ作成処理が行われる（Ｓ１０１）。そして、ＣＡＤ装置２は、作成した曲面データを記憶装置３に送り、記憶装置３が曲面データを記憶することによって曲面データ記憶処理が行われる（Ｓ１０２）。
曲面データには、例えば、階数、ノット数、制御点数、ノット列、制御点列からなるＢ−スプライン曲面形式などがある。Ｂ−スプライン曲面形式において、制御点数とノット数の間に、制御点数＝ノット数―階数なる関係があるので制御点数またはノット数のどちらか一方を曲面データに保存してもよい。なお、本明細書では曲面データはＢ−スプライン曲面形式を中心に記載するが、球面や円筒面などの他の形式であってもよい。
【００２３】
次に、ＣＡＭ装置１の曲面データ読取部１１２が、記憶装置３から曲面データを読み取る曲面データ読取処理を行う（Ｓ１０３）。
そして、加工部位設定部１１３が、図示しない入力部を介して、曲面加工装置５で加工する加工部位を曲面データに設定する加工部位設定処理が行われる（Ｓ１０４）。続いて、工具種設定部１１４が、加工に使用する工具の種類を選択・設定する工具種選択・設定処理が行われ（Ｓ１０５）、経路パターン設定部１１５が、工具を一方向に動かす／往復で動かす／螺旋状に動かすなどの選択・設定をおこなうことによって、工具経路のパターンである経路パターンの設定を行う経路パターン設定処理を行う（Ｓ１０６）。
次に、諸元設定・削り残し量設定部１１６が、切削に使用する工具の回転速度、工具移動速度などの諸元、および加工面に対する削り残し量が最大となる、つまり加工部位と工具経路との差が最大となる点における削り残し量を設定する諸元設定・削り残し量設定処理を行う（Ｓ１０７）。ここで、この削り残し量は加工面が凹か凸かの状態に応じて別々に設定してもよい。
【００２４】
そして、工具経路作成部１１１は、ステップＳ１０４、ステップＳ１０５、ステップＳ１０６およびステップＳ１０７において設定した設定条件を取得し、取得した設定条件に従い、曲面データ読取部１１２から曲面データを取得し、この曲面データの加工部位を限定し、設定した工具の種類、経路パターンおよび削り残し量に従い、工具経路を作成する工具経路作成処理を行う（Ｓ１０８）。工具経路の作成には、前記した設定条件の他に、諸元設定・削り残し量設定部１１６で指定した工具回転数や工具移動速度が用いられる。
次に、作成した工具経路に関して、補正が必要な場合、経路補正部１１７が、作成した工具経路の補正をおこなう経路補正処理を行う（Ｓ１０９）。
補正が必要な工具経路とは工具経路が閉じるようなケースである。このようなケースでは、工具経路の開始点と終了点が一致しない。そのため、開始点に一致するよう工具経路を補正する。
以上のように経路補正処理を行うことにより、工具経路が閉じるケースでも削り込みが生じない、あるいは削り残しが最小となる工具経路を作成することができる。
【００２５】
次に、ＮＣデータ変換部１１８が、工具経路作成部１１１で作成した工具経路や工具回転数および工具移動速度に従って、数値制御装置４が読み取り可能なＮＣデータに変換する（Ｓ１１０）。ＮＣデータは、例えばＧコードが利用される。
そして、ＣＡＭ装置１が、変換したＮＣデータを数値制御装置４に送り、数値制御装置４は、曲面加工装置５をＮＣデータに従って数値制御することにより、曲面加工が行われる（Ｓ１１１）。
【００２６】
［工具経路作成］
次に、図１および図２を参照しつつ、図３に沿って工具経路作成処理（図２のステップＳ１０８）の詳細を説明する。
図３は、工具経路作成処理の流れを示すフローである。
まず、工具経路作成部１１１の曲線算出部１１１１が、曲面データの曲面上の曲線を算出する曲線算出処理を行う（Ｓ２０１）。曲線は、加工部位に従って限定した曲面上に、ステップＳ１０６で設定した経路パターンに従って作成される。曲線算出処理の詳細は、後記する。
次に、曲率反転探索・判定部１１１２が、ステップＳ２０１で作成した曲線上の各位置における曲率方向ベクトルを算出し、この曲率方向ベクトルが反転する箇所、すなわち曲線の凹凸が反転する箇所（凹凸反転部）を探索・算出する曲率反転探索処理を行う（Ｓ２０２）。曲率反転探索処理の詳細は、図４を参照して後記する。
そして、曲率反転探索・判定部１１１２が、ステップＳ２０２の結果、曲線上に凹凸反転部が存在するか否かを判定する（Ｓ２０３）。
ステップＳ２０３の結果、凹凸反転部が曲線上に存在する場合（Ｓ２０３→Ｙｅｓ）、ステップＳ２０２で、算出された凹凸反転部の座標を曲線分割部１１１３に送る。そして、曲線分割部１１１３は、凹凸反転部で曲線を分割し（Ｓ２０４）、ステップＳ２０２の処理に戻る。
【００２７】
ステップＳ２０３の結果、凹凸反転部が曲線上に存在しない場合（Ｓ２０３→Ｎｏ）、曲率反転探索・判定部１１１２が、ステップＳ２０２、ステップＳ２０３、ステップＳ２０４で分割した曲線と曲面の位置関係を基に、該当する曲線が凸か凹かを判定する（Ｓ２０５）。分割した曲線と曲面の位置関係を求める方法は、例えば、分割した曲線の始点と終点を結ぶ直線を作り、この直線上で始点および終点を含まない点（例えば、直線の中間点）が、曲面より上にあるか／下にあるかを判定し、点が曲面より下にある場合が凸、点が上にある場合が凹などとする方法が知られている。
【００２８】
（曲線が凸の場合）
ステップＳ２０５の判定の結果、該当する曲線が凸であると判定された場合（Ｓ２０５→凸）、ステップＳ２０６に処理を進める。
ステップＳ２０６では、取代オフセット部１１１５が、曲線を曲面の法線方向に削り残し量だけオフセットした曲線を作成する凸取代オフセット処理を行う（Ｓ２０６）。凸取代オフセット処理の詳細は、図５を参照して後記する。
次に、取代オフセット部１１１５は、オフセットした曲線を折線作成部１１１６に送り、折線作成部１１１６は、曲線とオフセットした曲線との間で、工具経路を構成する折線の頂点を探索し、当該頂点を結ぶことで折線を作成する凸折線作成処理を行う（Ｓ２０７）。凸折線作成処理の詳細は、図５を参照して後記する。
【００２９】
そして、工具判定部１１１４が、工具種設定部１１４から、図２のステップＳ１０５で選択・設定した工具の種類を取得し、当該工具の種類がフラットエンドミルか否かを判定する（Ｓ２０８）。
ステップＳ２０８の結果、ステップＳ１０５で選択・設定された工具の種類が、フラットエンドミルではないと判定されたとき（Ｓ２０８→Ｎｏ）、折線作成部１１１６が、作成した折線を工具半径分オフセットした後、経路補間部１１１７にオフセットした折線を送る。そして、経路補間部１１１７が、ボールエンドミルにおける経路補間処理を行う（Ｓ２０９）。ボールエンドミルにおける経路補間処理の詳細は、図５および図６を参照して後記する。
【００３０】
ステップＳ２０８の結果、ステップＳ１０５で選択・設定された工具の種類が、フラットエンドミルであると判定されたとき（Ｓ２０８→Ｙｅｓ）、折線作成部１１１６が、作成した折線を工具半径分オフセットした後、経路補間部１１１７にオフセットした折線を送る。
そして、経路補間部１１１７が、フラットエンドミルにおける経路補間処理を行う（Ｓ２１０）。フラットエンドミルにおける工具経路補間処理の詳細は、図５および図６を参照して後記する。
【００３１】
（曲線が凹の場合）
ステップＳ２０５の処理に戻り、ステップＳ２０５の判定の結果、該当する曲線が凹であると判定された場合（Ｓ２０５→凹）、ステップＳ２１１に処理を進める。
ステップＳ２１１では、工具判定部１１１４が、工具種設定部１１４から、ステップＳ１０５で選択・設定した工具の種類を取得し、当該工具の種類がフラットエンドミルか否かを判定する。
【００３２】
（曲線が凹：ボールエンドミル）
ステップＳ２１１の結果、ステップＳ１０５で選択・設定された工具の種類が、フラットエンドミルではないと判定されたとき（ステップＳ２１１→Ｎｏ）、ステップＳ２１２に処理を進める。
ステップＳ２１２では、エンドミル接触探索部１１１８が、ボールエンドミルが２点以上で曲線に接触する位置（重複接触点）を算出するボールエンドミルにおけるエンドミル接触探索処理を行う（Ｓ２１２）。ボールエンドミルにおけるエンドミル接触探索処理の詳細は、図７を参照して後記する。
そして、曲線をボールエンドミルの工具半径分だけオフセットした曲線を作成する凹工具別オフセット処理を行う（Ｓ２１３）。なお、ステップＳ２１２の結果、ボールエンドミルにおける重複接触点が存在する場合、エンドミル接触探索部１１１８が、算出した重複接触点を、凹工具別オフセット部１１１９へ送り、凹工具別オフセット部１１１９が、送られた重複接触点を用いた上で、曲線をボールエンドミルの工具半径分だけオフセットした曲線を作成する凹工具別オフセット処理を行う。凹工具別オフセット処理の詳細は、図７を参照して後記する。
【００３３】
次に、凹工具別オフセット部１１１９が、オフセットした曲線を取代オフセット部１１１５に送り、取代オフセット部１１１５は、送られたオフセットした曲線を曲面の法線方向に削り残し量だけオフセットした曲線をボールエンドミルに対して作成する凹取代オフセット処理を行う（Ｓ２１４）。凹取代オフセット処理の詳細は、図７を参照して後記する。
そして、取代オフセット部１１１５は、自身が作成した曲線を、曲線算出部１１１１が作成した曲線と、凹工具別オフセット部１１１９が作成した曲線と共に折線作成部１１１６に送り、折線作成部１１１６は、工具別オフセット部が作成した曲線と、取代オフセット部１１１５が作成した曲線とを基に、ボールエンドミルにおける工具経路を構成する折線の頂点を探索し、当該頂点を結んで折線を作成する凹折線作成処理を行う（Ｓ２１５）。そして、折線作成部１１１６は、作成した折れ線の頂点を繋ぐことで工具経路を作成する。なお、ボールエンドミルにおける凹折線作成処理の詳細は、図７を参照して後記する。
【００３４】
（曲線が凹：フラットエンドミル）
ステップＳ２１１の結果、ステップＳ１０５で選択・設定された工具の種類が、フラットエンドミルであると判定されたとき（ステップＳ２１１→Ｙｅｓ）、ステップＳ２１６に処理を進める。
ここで、曲線が凹で、かつ工具がフラットエンドミルである場合の工具経路作成の手順（Ｓ２１６〜Ｓ２１９）は、ボールエンドミルの場合とほぼ同様なので、ボールエンドミルの場合との相違は、図９および図１０を参照して後記することとし、ここでは省略する。
【００３５】
以下、各処理に関する詳細な説明を、適宜図面を参照しながら説明する。
【００３６】
（曲線算出処理）
ここで、曲線算出部１１１１が行う曲線算出（図３のステップＳ２０１）の処理について、説明する。
曲線は、例えば非特許文献１の第２６９頁〜第２７１頁、図７．２５に記載の方法で作成することとし、本明細書では説明を省略する。ここでは、曲線Ｐ（ｔ）を曲面Ｓ（ｕ，ｖ）の上の曲線（以下、曲面上の曲線という：請求項における第２の曲線）にする方法を説明する。
なお、Ｐ（ｔ）、Ｓ（ｕ，ｖ）などは、それぞれ曲線や曲線を表す式である。その他の、後記するＰＡ（ｔ）や、Ｎ（ｔ）なども同様に式である。
【００３７】
最初に、曲面形式について説明する。
曲面は、２つの媒介変数（ｕ，ｖ）を与えたときに一つの曲面Ｓ（ｕ，ｖ）が決定するよう式１で表現する。記憶装置３（図１参照）には式１を計算するのに必要なｕ方向階数ｋ、ｕ方向制御点数Ｚ、ｖ方向階数ｌ、ｖ方向制御点数Ｍ、（ｕ方向制御点数＋ｕ方向階数）個のスカラ量からなるｕ方向ノット列、（ｖ方向制御点数＋ｖ方向階数）個のスカラ量からなるｖ方向ノット列、（ｕ方向制御点数×ｖ方向制御点数）個のベクトル量からなる制御点Ｑｉｊ、（ｕ方向制御点数×ｖ方向制御点数）個のスカラ量からなる重みｗｉｊのデータで格納されている。
【００３８】
【数１】
2007200121.tif 000003
【００３９】
式１において、ｕ方向およびｖ方向のＢスプライン関数Ｎｉ，ｋ（ｕ）、Ｎｊ，ｌ（ｖ）は式２の再帰式で算出する。
【００４０】
【数２】
2007200121.tif 000004
【００４１】
曲面上の曲線は、空間に定義した曲線の上に点を作成し、点を曲面に投影することで記述する。より詳細に言えば、媒介変数ｔを与えたときに曲線Ｐ（ｔ）が決定する場合、Ｐ（ｔ）と、曲面Ｓ（ｕ，ｖ）の関係を式３で拘束し、Ｐ（ｔ）の媒介変数ｔに対応するＳ（ｕ，ｖ）の媒介変数（ｕ，ｖ）を決定する。
【００４２】
【数３】
2007200121.tif 000005
【００４３】
計算機を用いて実装するには、式３から式４に示す近似式を作る。式４は、（ｘ、ｙ、ｚ）の３成分を持つベクトルであることから、変数が２つで、式が３本であり解けない。そこで、式４を式５に示すように各偏微分方向成分に分解して更新量（δｕ、δｖ）を算出する。その後、収束計算の初期値（ｕ０、ｖ０）に（δｕ、δｖ）を加算して式５を繰り返す。このようにして変数ｔに対応する（ｕ、ｖ）を算出する。
【００４４】
【数４】
2007200121.tif 000006
【００４５】
【数５】
2007200121.tif 000007
【００４６】
式４および式５において、Ｓｕ（ｕ，ｖ）は曲面Ｓ（ｕ，ｖ）の媒介変数ｕに関する１回微分、Ｓｖ（ｕ，ｖ）は曲面Ｓ（ｕ，ｖ）の媒介変数ｖに関する１回微分である。
式５により、Ｐ（ｔ）から（ｕ（ｔ），ｖ（ｔ））を求める。後記するが、凸折線作成処理（Ｓ２０７）、エンドミル接触探索処理（Ｓ２１２，Ｓ２１６）、凹折線作成処理（Ｓ２１５，Ｓ２１９）などにおいても収束計算をおこなうため、（ｕ（ｔ），ｖ（ｔ））のｔに関する１回微分（ｕｔ（ｔ），ｖｔ（ｔ））、ｔに関する２回微分（ｕｔｔ（ｔ），ｖｔｔ（ｔ））も求める必要がある。
最初にｔに関する１回微分の算出法について式６を用いて説明する。
【００４７】
【数６】
2007200121.tif 000008
【００４８】
曲線Ｐ（ｔ）が、曲面Ｓ（ｕ，ｖ）の上にあるとき、曲線Ｐ（ｔ）の媒介変数ｔにおける１回微分Ｐｔ（ｔ）は式３の両辺をｔで微分し、式６のようになる。
式６において、ｕｔは、曲線Ｐ（ｔ）を曲面の媒介変数u，ｖで表した（ｕ（ｔ），ｖ（ｔ））の内ｕ（ｔ）の媒介変数ｔにおける１回微分、ｖｔはｖ（ｔ）の媒介変数ｔにおける１回微分である。
計算機を用いて実装するには、式５と同様に各偏微分方向成分に分解し式７を得る。
【００４９】
【数７】
2007200121.tif 000009
【００５０】
式７の連立一次方程式を解くことでｔに関する１回微分（ｕｔ（ｔ），ｖｔ（ｔ））を算出する。
【００５１】
次にｔに関する２回微分の算出法について式８を用いて説明する。
曲線Ｐ（ｔ）が、曲面Ｓ（ｕ，ｖ）の上にあるとき、曲線Ｐ（ｔ）の媒介変数ｔにおける２回微分Ｐｔｔ（ｔ）は、式６の両辺をｔで微分し、式８のようになる。
【００５２】
【数８】
2007200121.tif 000010
【００５３】
式８において、ｕｔｔは曲面上の曲線（ｕ（ｔ），ｖ（ｔ））の内ｕ（ｔ）の媒介変数ｔにおける２回微分、ｖｔｔはｖ（ｔ）の媒介変数ｔにおける２回微分である。また、Ｓｕｕ（ｕ，ｖ）は曲面Ｓ（ｕ，ｖ）の媒介変数ｕに関する２回微分、Ｓｕｖ（ｕ，ｖ）は曲面Ｓ（ｕ，ｖ）の媒介変数ｕに関し１回微分した後に媒介変数ｖに関し１回微分した量、Ｓｖｖ（ｕ，ｖ）は曲面Ｓ（ｕ，ｖ）の媒介変数ｖに関する２回微分である。
【００５４】
計算機を用いて実装するには、式５と同様に各偏微分方向成分に分解し式９を得る。
【００５５】
【数９】
2007200121.tif 000011
【００５６】
式９の連立一次方程式を解くことでｔに関する２回微分（ｕｔｔ（ｔ），ｖｔｔ（ｔ））を算出する。
式５、式７および式９を実行するプログラムを計算機に実装することにより、曲面上の曲線算出部１１１１が曲線Ｐ（ｔ）に対応する曲面上の曲線（ｕ（ｔ），ｖ（ｔ））、曲面上の曲線におけるｔに関する１回微分（ｕｔ（ｔ），ｖｔ（ｔ））、曲面上の曲線におけるｔに関する２回微分（ｕｔｔ（ｔ），ｖｔｔ（ｔ））を求める。
【００５７】
（曲率反転探索処理）
次に、図１を参照しつつ、図４に沿って曲率反転探索・判定部１１１２による曲率反転探索処理（図３のステップＳ２０２）の説明を行う。
図４は、曲率反転探索処理を説明するための図である。
曲率反転探索処理は、図４のように曲線Ｐ（ｔ）が、凹と凸との合成となっているような場合、曲率反転探索・判定部１１１２が、曲線Ｐ（ｔ）を基に、曲率方向ベクトルを算出し、算出した曲率方向ベクトルを基に、凹部と凸部の境目である凹凸反転部４０１を探索する処理である。
【００５８】
以下、曲率反転探索処理を具体的に説明する。
曲線Ｐ（ｔ）が滑らかに変化する場合、曲率方向ベクトルが反転する境目で曲率方向ベクトルが０になる。また、曲線Ｐ（ｔ）が滑らかでない変化をする場合、例えば、２つの円弧を接続した場合は、曲率方向ベクトルが反転する境目において、前の円弧と先の円弧の曲率方向ベクトルが逆方向を向く。
この性質を利用し、凹凸反転部４０１の探索は、曲率方向ベクトルが０になる点を算出する、または、曲線Ｐ（ｔ）の接続点で前後の曲線の曲率方向ベクトルを算出し、２つの曲率方向ベクトルの内積が負になる点を算出すれば良い。
式１０は、凹凸反転部４０１の探索で利用する曲率方向ベクトルの算出式である。
【００５９】
【数１０】
2007200121.tif 000012
【００６０】
（曲線が凸の場合）
次に、図５および図６に沿って、図３のステップＳ２０６〜Ｓ２１０の処理（以降、凸時折線化処理と記載する）を説明する。
図５は、凸時折線化処理を説明する図であり、（ａ）は、凸取代オフセット処理を、（ｂ）は、凸折線作成処理を、（ｃ）は、作成した折線を工具半径分オフセットする処理を説明するための図である。
【００６１】
（凸取代オフセット処理）
まず、図１を参照しつつ、図５（ａ）に沿って、取代オフセット部１１１５による凸取代オフセット処理の説明を行う。
取代オフセット部１１１５は、曲線Ｐ（ｔ）を曲面の法線方向Ｎ（ｔ）に図２のステップＳ１０７で設定した削り残し量ｄだけオフセットした曲線ＰＡ（ｔ）（請求項における第１の曲線）を作成する。曲線ＰＡ（ｔ）は式１１で記述する。
【００６２】
【数１１】
2007200121.tif 000013
【００６３】
（凸折線作成処理）
次に、図１を参照しつつ、図５（ｂ）に沿って、折線作成部１１１６による凸折線作成処理（図３のステップＳ２０７）を説明する。
折線作成部１１１６は、曲線Ｐ（ｔ）（第２の曲線）と曲線ＰＡ（ｔ）（第１の曲線）との間で、曲線Ｐ（ｔ）に接触する直線が曲線ＰＡ（ｔ）と交差する点ＰＡｎ（ｎは、正の整数）を順番に探索する。
具体的には、まず折線作成部１１１６が、曲線Ｐ（ｔ）上の任意の点Ｐ０を定める。次に、折線作成部１１１６は、点Ｐ０において、曲線Ｐ（ｔ）と接する接線５０１を算出する。次に、折線作成部１１１６は、接線５０１が、曲線ＰＡ（ｔ）（第１の曲線）と交差する点ＰＡ０（請求項における第１の点）を算出する。そして、折線作成部１１１６は、点ＰＡ０を通り、かつ曲線Ｐ（ｔ）（第２の曲線）と接する接線５０２（請求項における第２の曲線に接する直線）を算出する。そして、折線作成部１１１６は、接線５０２が曲線ＰＡ（ｔ）と交差する点ＰＡ１（請求項における第２の点）を算出する。以下、同様の処理を行って、点ＰＡ２，ＰＡ３・・・を算出することによって、ＰＡｎを探索する。この、点ＰＡ０，ＰＡ１，ＰＡ２・・・が、作成する折線の頂点となる。
そして、折線作成部１１１６は、算出した点ＰＡ０，ＰＡ１，ＰＡ２・・・を結ぶことによって、折線を作成する。
なお、本実施形態では、最初に指定した点Ｐ０を、曲線Ｐ（ｔ）上の点であるとしたが、これに限らず曲線ＰＡ（ｔ）の任意の点としてもよい。
【００６４】
以下、数式を用いて、折線の頂点を算出し、探索する方法を説明する。
【００６５】
【数１２】
2007200121.tif 000014
【００６６】
式１２は、曲線Ｐ（ｔ）上の接線が、曲線ＰＡ（ｔ）と交差する点を探索をするための式である。
式１２において、ＰＡｔ（ｔ）はＰＡ（ｔ）のｔに関する１回微分、ＰＡｔｔ（ｔ）はＰＡ（ｔ）のｔに関する２回微分、Ａ１，Ｂ１，Ｃ１は説明をわかりやすくするため置き換えた変数である。
式１２において、更新量δｔを求めるために算出式を２回微分まで近似することにより、探索する点の候補を２個まで算出できる。この方法により曲線Ｐ（ｔ）上の接線が曲線ＰＡ（ｔ）と交差する点が複数ある場合、詳細に探索できる。
式１３は、曲線ＰＡ（ｔ）と交差する点から出発した直線が曲線Ｐ（ｔ）に接する点を探索をするための式である。
【００６７】
【数１３】
2007200121.tif 000015
【００６８】
式１３において、ＰＡ０はＰＡ（ｔ）上で接線が交差する点、Ａ２，Ｂ２，Ｃ２は説明をわかりやすくするため置き換えた変数である。
式１３において、更新量δｔを求めるために算出式を２回微分まで近似することにより、探索する点の候補を２個まで算出できる。この方法により接触点が複数ある場合により詳細に探索できる。
【００６９】
（作成した折線を工具半径分オフセットする処理）
次に、図１を参照しつつ、図５（ｃ）に沿って、折線作成部が、作成した折線を工具半径分オフセットする処理を説明する。
実際のＮＣ加工における工具の移動経路は、工具の中心の軌跡として表されるため、折線作成部１１１６が作成した折線を、工具半径分オフセットする必要がある。
そこで、折線作成部１１１６は、図５（ｃ）に示すように、折線のオフセットを行う。しかしながら、作成した折線を単純にオフセットすると、図５（ｃ）のように、折線の断絶部５０３が生じてしまう。そこで、この断絶部５０３を補間するため、経路補間部１１１７による経路補間処理が行われる。
【００７０】
（経路補間処理：ボールエンドミル）
図６は、経路補間部による経路補間処理の説明を行うための図であり、（ａ）は、ボールエンドミルの場合、（ｂ）は、フラットエンドミルの場合を示す図である。
最初に、図６（ａ）に沿って、ボールエンドミルにおける経路の補間方法を説明する。
図６（ａ）において、Ｐ１は、Ｐ０を通る曲線Ｐ（ｔ）上の接線と曲線ＰＡ（ｔ）とが交差する点、Ｐ０，Ｐ２は、接線が曲線Ｐ（ｔ）と接する点、（接点）であり、Ｎ０、Ｎ１、Ｎ２は点Ｐ０、Ｐ１、Ｐ２における曲面の法線である。
接点の場合、工具中心点は曲面の法線方向にボールエンドミルの半径Ｒ１だけオフセットした点を作る。例えば、Ｐ０、Ｐ２では式１４とする。
【００７１】
【数１４】
2007200121.tif 000016
【００７２】
交差する点の場合、工具中心点は隣接する点の法線との関係で定める。例えば、Ｐ１では式１５のうち、いずれか一方を使えばよい。
【００７３】
【数１５】
2007200121.tif 000017
【００７４】
式１４および式１５で作成した点を繋いだ折線をボールエンドミルの工具経路とすることによりボールエンドミルの移動により作成される包絡面が加工面に接するように工具経路を作成できる。すなわち、図５（ｃ）で説明したオフセットした折線の断絶部５０３が補間される。そのため、加工面が凸の場合に削り込むことがなく、最大で削り残し量ｄだけ加工面を削り残すことができる工具経路が、断絶することなく作成される。
【００７５】
（経路補間処理：フラットエンドミル）
次に、図６（ｂ）に沿って、フラットエンドミルにおける経路の補間方法を説明する。
図６（ｂ）において、Ｐ０、Ｐ２は曲線Ｐ（ｔ）との接触点、Ｐ１は曲線ＰＡ（ｔ）上の交差する点、Ｎ０，Ｌ、Ｎ１，Ｌは点Ｐ０、Ｐ１における逆切削方向ベクトルを示す。Ｎ１，Ｒ、Ｎ２，Ｒは、点Ｐ１、Ｐ２における切削方向のベクトルである。
フラットエンドミルの工具経路は、接点から交差する点へ向かうベクトルとフラットエンドミルの工具軸方向Ｌとの方向関係、もしくは交差する点から接点へ向かうベクトルとフラットエンドミルの工具軸方向Ｌとの方向関係で作成方法を変更する。この変更を行わないとフラットエンドミルにより加工面を削り込んでしまう。
【００７６】
例えば、接点Ｐ０から交差する点Ｐ１へ移動する場合、フラットエンドミルの工具軸方向Ｌとベクトル（Ｐ１−Ｐ０）の間で内積を作成し、式１６に示すように内積が正のときに工具中心点を逆切削方向にフラットエンドミルの半径Ｒ１だけ平行移動した点を作る。
【００７７】
【数１６】
2007200121.tif 000018
【００７８】
また、交差する点Ｐ１から接点Ｐ２へ移動する場合、式１７に示すように内積が負なので切削方向にフラットエンドミルの半径Ｒ１だけオフセットした点を作る。
【００７９】
【数１７】
2007200121.tif 000019
【００８０】
式１６および式１７で作成した点を繋いだ折線をフラットエンドミルの工具経路とすることにより、フラットエンドミルの移動により作成される包絡面が加工面に接するように工具経路を作成できる。そのため、加工面が凸の場合に削り込むことがなく、最大で削り残し量ｄだけ加工面を削り残すことができる。
【００８１】
なお、フラットエンドミルの外周部に小半径Ｒがついた工具（ラジアルエンドミル）では、小半径Ｒ分だけ式１４および式１５で作成した後、工具径−小半径Ｒ分だけ式１６および式１７で作成すればラジアルエンドミルの工具経路が作成できる。
【００８２】
このように加工面、すなわち曲線Ｐ（ｔ）の接線を工具先端の軌跡とする工具経路を作成することで、削り込みを生じない工具経路を作成することが可能となり、ＮＣシミュレータによる削り込みの確認工程が不要となる。
【００８３】
（凹時折線化処理）
次に、図７〜図１１に沿って、図３のステップＳ２１２〜Ｓ２１９の処理（以降、凹時折線化処理と記載する）の説明を行う。
凹時折線化処理は、工具によって処理が変わるため、図７と図８とを用いてボールエンドミルにおける凹時折線化処理を説明し、図９と図１０とを用いてフラットエンドミルにおける凹時折線化処理を説明する。
【００８４】
（凹時折線化処理：ボールエンドミル）
まず、図７および図８に沿って、ボールエンドミルにおける凹時折線化処理（図３のステップＳ２１２からステップＳ２１５）の説明を行う。
図７は、ボールエンドミルにおける凹時折線化処理を説明するための図であり、（ａ）は、エンドミル接触探索処理を、（ｂ）は、凹工具別オフセット処理を、（ｃ）は、凹取代オフセット処理を、（ｄ）は、凹折線作成処理を説明するための図である。
【００８５】
（エンドミル接触探索処理）
図７（ａ）を参照して、エンドミル接触探索部１１１８によるエンドミル接触探索処理（図３のステップＳ２１２）の説明を行う。
【００８６】
工具がボールエンドミルの場合、曲線Ｐ（ｔ）を工具半径だけ曲面の法線方向にオフセットした曲線７０１，７０２を作成し、このオフセットした曲線７０１，７０２が自己交差する点（重複接触点）７０３を探索する。
【００８７】
以下、ボールエンドミルにおけるエンドミル接触探索処理を、数式を用いて説明する。
式１８はその探索方法を示す式、および計算機に実装するときの式である。
【００８８】
【数１８】
2007200121.tif 000020
【００８９】
式１８において、Ｎ（ｔ）は、曲線Ｐ（ｔ）における曲面Ｓ（ｕ（ｔ），ｖ（ｔ））の法線、Ｎ（ｕ）は、曲線Ｐ（ｕ）における曲面Ｓ（ｕ（ｕ），ｖ（ｕ））の法線である。また、Ｎｔ（ｔ）は、法線Ｎ（ｔ）の媒介変数ｔ関する１回微分、Ｎｔｔ（ｔ）は、法線Ｎ（ｔ）の媒介変数ｔに関する２回微分、Ｎｕ（ｕ）は法線Ｎ（ｕ）の媒介変数ｕに関する１回微分、Ｎｕｕ（ｕ）は、法線Ｎ（ｕ）の媒介変数ｕに関する２回微分、Ｒ１は、ボールエンドミルの半径、Ａ３，Ｂ３，Ｃ３は説明をわかりやすくするため置き換えた変数である。
【００９０】
オフセット曲線に対し初期値（ｔ０，ｕ０）を与え、式１８に従って収束計算を実行することで自己交差する点を探索する。
式１９は、曲面Ｓ（ｕ（ｔ），ｖ（ｔ））の法線Ｎ（ｔ）、法線の媒介変数ｔによる１回微分Ｎｔ（ｔ）、法線の媒介変数ｔによる２回微分Ｎｔｔ（ｔ）を求めるための式である。なお、法線の媒介変数ｕによる２回微分は、式１９でｔをｕと置き換えればよい。
【００９１】
【数１９】
2007200121.tif 000021
【００９２】
式１９において、Ａは、曲面Ｓ（ｕ，ｖ）におけるｕ方向微分Ｓｕ（ｕ，ｖ）とｖ方向微分Ｓｖ（ｕ，ｖ）の外積、Ａｔは、外積Ａのｔに関する１回微分、Ａｔｔは、外積Ａのｔに関する２回微分、Ｓｕｕｕ（ｕ，ｖ）は曲面Ｓ（ｕ，ｖ）の媒介変数ｕに関する３回微分、Ｓｕｕｖ（ｕ，ｖ）は曲面Ｓ（ｕ，ｖ）の媒介変数ｕに関する２回微分の媒介変数ｖに関する１回微分、Ｓｕｖｖ（ｕ，ｖ）は曲面Ｓ（ｕ，ｖ）の媒介変数ｕに関する１回微分の媒介変数ｖに関する２回微分、Ｓｖｖｖ（ｕ，ｖ）は曲面Ｓ（ｕ，ｖ）の媒介変数ｖに関する３回微分である。
【００９３】
（凹工具別オフセット処理）
ここで、図８に沿ってボールエンドミルによる工具別オフセット方法の詳細を説明する。
図８は、ボールエンドミルにおける工具別オフセット方法の詳細を説明する図である。
図８において、Ｐ（ｔ）はオフセット前の曲線、Ｎ（ｔ）は、Ｐ（ｔ）における曲面の法線、Ｒ１はボールエンドミルの半径である。
ボールエンドミルの工具半径だけオフセットした曲線の作成方法は、式２０に従っておこなう。
【００９４】
【数２０】
2007200121.tif 000022
【００９５】
式２０において、ＰＢ（ｔ）はオフセット後の曲線（請求項における第１の曲線）である。
式２０において、曲率反転探索・判定部１１１２が、凹凸反転部４０１（図４参照）、またはエンドミル接触探索部１１１８が、重複接触点７０３（図７（ａ）参照）を見つけていた場合、ボールエンドミルが加工面を削り込む部分のオフセット線を除外した曲線をオフセットした曲線とする処理をおこなう。
【００９６】
このような処理を行った結果、図７（ｂ）のように、曲線Ｐ（ｔ）において、工具の半径分オフセットを行った曲線ＰＢ（ｔ）が算出される。なお、説明の便宜上、図７（ｂ），（ｃ），（ｄ）は、図７（ａ）より曲線をゆるいカーブにしている。
【００９７】
（凹取代オフセット処理）
次に、図７（ｃ）に沿って、取代オフセット部１１１５による凹取代オフセット処理の説明を行う。
取代オフセット部１１１５は、凹工具別オフセット処理で作成した曲線ＰＢ（ｔ）を曲面の法線方向Ｎ（ｔ）にステップＳ１０７で設定した削り残し量ｄだけオフセットした曲線ＰＣ（ｔ）（請求項における第２の曲線）を作成する。
【００９８】
以下、ボールエンドミルにおける凹取代オフセット処理を、数式を用いて説明する。
【００９９】
【数２１】
2007200121.tif 000023
【０１００】
式２１においてｄは削り残し量である。
このようにボールエンドミルにおける取代オフセット部１１１５は、凹工具別オフセット部１１１９で作成した曲線ＰＢ（ｔ）を曲面の法線方向Ｎ（ｔ）に削り残し量ｄだけオフセットする。
【０１０１】
（凹折線作成処理）
次に、図７（ｄ）に沿って、凹折線作成処理の説明を行う。
工具が、ボールエンドミルの場合、折線作成部１１１６が、曲線ＰＢ（ｔ）と曲線ＰＣ（ｔ）との間で、曲線ＰＣ（ｔ）に接触する直線が曲線ＰＢ（ｔ）と交差する点ＰＢｎ（ｎは、正の整数）を順番に探索する。
具体的には、まず折線作成部１１１６が、曲線ＰＣ（ｔ）上の任意の点ＰＣ０を定める。次に、折線作成部１１１６は、点ＰＣ０において、曲線ＰＣ（ｔ）と接する接線７０４を算出する。次に、折線作成部１１１６は、接線７０４が、曲線ＰＢ（ｔ）（第１の曲線）と交差する点ＰＢ０（請求項における第１の点）を算出する。そして、折線作成部１１１６は、点ＰＢ０を通り、かつ曲線ＰＣ（ｔ）（第２の曲線）と接する接線７０５（請求項における第２の曲線に接する直線）を算出する。そして、折線作成部１１１６は、接線７０５が曲線ＰＢ（ｔ）と交差する点ＰＢ１（請求項における第２の点）を算出する。以下、同様の処理を行って、点ＰＢ２，ＰＢ３・・・を算出し、探索する。この、点ＰＢ０，ＰＢ１，ＰＢ２・・・が、作成する折線の頂点となる。
そして、折線作成部１１１６は、算出した点ＰＢ０，ＰＢ１，ＰＢ２・・・を結ぶことによって、折線を作成する。
求めた折線は、工具の中心が通る経路となっているので、凸時のように経路補間処理をおこなう必要がない。
なお、本実施形態では、最初に指定した点ＰＣ０を、曲線ＰＣ（ｔ）上の点であるとしたが、これに限らず曲線ＰＢ（ｔ）の任意の点としてもよい。
【０１０２】
以下、ボールエンドミルにおける凹折線作成処理を、数式を用いて説明する。
式２２は、曲線ＰＣ（ｔ）の接線が、曲線ＰＢ（ｔ）と交差する点の探索をするための式である。式２２において、Ａ４，Ｂ４，Ｃ４は説明をわかりやすくするため置き換えた変数である。但し、式２２では曲線ＰＢ（ｔ）およびＰＣ（ｔ）を展開した形式で記述している。
【０１０３】
【数２２】
2007200121.tif 000024
【０１０４】
式２３は、交差する点を通り曲線ＰＣ（ｔ）に接触する点の探索をするための式である。式２３において、Ａ５，Ｂ５，Ｃ５は説明をわかりやすくするため置き換えた変数である。但し、式２３では曲線ＰＢ（ｔ）およびＰＣ（ｔ）を展開した形式で記述している。
【０１０５】
【数２３】
2007200121.tif 000025
【０１０６】
このように、工具半径分オフセットした曲線ＰＢ（ｔ）からさらに削り残し量分だけオフセットした曲線ＰＣ（ｔ）の接線に沿って、工具中心点が動くよう工具経路を作成することにより、削り残しが最小限となる工具経路を作成することができる。これにより、ＮＣシミュレータによる削り残しの確認工程が不要となる。
【０１０７】
（凹時折線化処理：フラットエンドミル）
次に、図９および図１０に沿って、フラットエンドミルにおける凹時折線化処理（図３のステップＳ２１６〜Ｓ２１９）の説明を行う。
図９は、フラットエンドミルにおける凹時折線化処理を説明するための図であり、（ａ）は、エンドミル接触探索処理を、（ｂ）は、凹工具別オフセット処理を、（ｃ）は、凹取代オフセット処理を、（ｄ）は、凹折線作成処理を説明するための図である。
【０１０８】
（エンドミル接触探索処理）
まず、図９（ａ）を参照して、エンドミル接触探索部１１１８によるエンドミル接触探索処理（図３のステップＳ２１６）の説明を行う。
工具がフラットエンドミルの場合、曲線Ｐ（ｔ）の逆進行方向に工具半径だけオフセットした曲線９０１と進行方向に工具半径だけオフセットした曲線９０２を作成し、２つのオフセットした曲線９０１，９０２が交差する点（重複接触点）９０３を探索する。
【０１０９】
以下、フラットエンドミルにおけるエンドミル接触探索処理を、数式を用いて説明する。
式２４はその探索方法を示す式、および計算機に実装するときの式である。
【０１１０】
【数２４】
2007200121.tif 000026
【０１１１】
式２４において、Ｍ（ｔ）は、曲線Ｐ（ｔ）における曲面Ｓ（ｕ（ｔ），ｖ（ｔ））の切削方向、Ｍ（ｕ）は、位置Ｐ（ｕ）における曲面Ｓ（ｕ（ｕ），ｖ（ｕ））の切削方向、Ｒ１はフラットエンドミルの半径、Ａ６，Ｂ６，Ｃ６は説明をわかりやすくするため置き換えた変数である。
曲線Ｐ（ｔ）をオフセットした曲線に対し初期値（ｔ０，ｕ０）を与え、式２４に従って収束計算を実行することで交差する点を探索する。
式２５は、式２４で用いた切削方向Ｍ（ｔ）の算出方法を示す式である。Ｍ（ｕ）に関しては媒介変数ｔをｕと置き換えて式２５を使用すればよい。
【０１１２】
【数２５】
2007200121.tif 000027
【０１１３】
式２５において、Ｂは曲線Ｐｔ（ｔ）の１回微分Ｐｔ（ｔ）、Ｂｔは曲線Ｐｔ（ｔ）の２回微分Ｐｔｔ（ｔ）、Ｂｔｔは曲線Ｐｔ（ｔ）の３回微分Ｐｔｔｔ（ｔ）である。
【０１１４】
（凹工具別オフセット処理）
ここで、図１０に沿ってフラットエンドミルによるオフセット方法を説明する。
図１０は、フラットエンドミルにおける工具別オフセット方法の詳細を説明する図である。
図１０においてＰ（ｔ）はオフセット前の曲線、Ｍ（ｔ）は切削方向、Ｒ１はフラットエンドミルの半径である。
フラットエンドミルの工具半径だけオフセットした曲線の作成方法は、式２６に従っておこなう。
【０１１５】
【数２６】
2007200121.tif 000028
【０１１６】
また式２６において、ＰＢ（ｔ）はオフセット後の曲線（請求項における第１の曲線）である。
式２６において、オフセット方向の正負は重複接触点９０３の前後で決定する。これは重複接触点９０３より先での削り込みを防ぐためである。なお、重複接触点９０３は、エンドミル接触探索部１１１８が式２４に従って算出した点を使用する。
【０１１７】
このような処理を行った結果、図９（ｂ）のように、曲線Ｐ（ｔ）において、工具の半径分オフセットを行った曲線ＰＢ（ｔ）が算出される。なお、説明の便宜上、図９（ｂ），（ｃ），（ｄ）は、図９（ａ）より曲線をゆるいカーブにしている。
【０１１８】
なお、フラットエンドミルの外周部に小半径Ｒがついた工具（ラジアルエンドミル）では、小半径Ｒ分だけ式２０で作成した後、工具径−小半径Ｒ分だけ式２６で作成すればラジアルエンドミルのオフセットが作成できる。
【０１１９】
（凹取代オフセット処理）
次に、図９（ｃ）に沿って、取代オフセット部１１１５による凹取代オフセット処理の説明を行う。
取代オフセット部１１１５は、凹工具別オフセット処理で作成した曲線ＰＢ（ｔ）を曲面の法線方向Ｎ（ｔ）に削り残し量ｄだけオフセットした曲線ＰＣ（ｔ）（請求項における第２の曲線）を作成する。
【０１２０】
以下、フラットエンドミルにおける凹取代オフセット処理を、数式を用いて説明する。
【０１２１】
【数２７】
2007200121.tif 000029
【０１２２】
このような処理により、フラットエンドミルの場合は曲線ＰＢ（ｔ）を、削り残し量ｄだけオフセットした曲線ＰＣ（ｔ）（請求項における第２の曲線）を作成する。
【０１２３】
（凹折線作成処理）
次に、図９（ｄ）に沿って、凹折線作成処理の説明を行う。
工具が、フラットエンドミルの場合、ボールエンドミルの場合と異なる部分は、曲線ＰＢ（ｔ）とＰＣ（ｔ）を作成する部分だけである。
具体的には、まず折線作成部１１１６が、曲線ＰＣ（ｔ）上の任意の点ＰＣ０を定める。次に、折線作成部１１１６は、点ＰＣ０において、曲線ＰＣ（ｔ）と接する接線９０４を算出する。次に、折線作成部１１１６は、接線９０４が、曲線ＰＢ（ｔ）（第１の曲線）と交差する点ＰＢ０（請求項における第１の点）を算出する。そして、折線作成部１１１６は、点ＰＢ０を通り、かつ曲線ＰＣ（ｔ）（第２の曲線）と接する接線９０５（請求項における第２の曲線に接する直線）を算出する。そして、折線作成部１１１６は、接線９０５が曲線ＰＢ（ｔ）と交差する点ＰＢ１（請求項における第２の点）を算出する。以下、同様の処理を行って、点ＰＢ２，ＰＢ３・・・を算出し、探索する。この、点ＰＢ０，ＰＢ１，ＰＢ２・・・が、作成する折線の頂点となる。ただし、処理を行っているうちに、エンドミル接触探索処理で算出した、重複接触点９０３（図９（ａ）参照）にぶつかったときは、その時点において、ＰＣ０を新たに求め、同様の処理を繰り返す。
そして、折線作成部１１１６は、算出した点ＰＢ０，ＰＢ１，ＰＢ２・・・を結ぶことによって、折線を作成する。
なお、本実施形態では、最初に指定した点ＰＣ０を、曲線ＰＣ（ｔ）上の点であるとしたが、これに限らず曲線ＰＢ（ｔ）の任意の点としてもよい。
【０１２４】
以下、フラットエンドミルにおける凹折線作成処理を、数式を用いて説明する。
式２８は、曲線ＰＣ（ｔ）の接触線が、曲線ＰＢ（ｔ）と交差する点を探索するための式である。但し、式２８では曲線ＰＢ（ｔ）およびＰＣ（ｔ）を展開した形式で記述している。式２８において、Ａ７，Ｂ７，Ｃ７は説明をわかりやすくするため置き換えた変数である。
【０１２５】
【数２８】
2007200121.tif 000030
【０１２６】
式２９は、交差する点を通り曲線ＰＣ（ｔ）に接触する点を探索するための式である。但し、式２９では曲線ＰＢ（ｔ）およびＰＣ（ｔ）を展開した形式で記述している。そして式２９において、Ａ８，Ｂ８，Ｃ８は説明をわかりやすくするため置き換えた変数である。
【０１２７】
【数２９】
2007200121.tif 000031
【０１２８】
このように、工具半径分オフセットした曲線ＰＢ（ｔ）からさらに削り残し量分だけオフセットした曲線ＰＣ（ｔ）の接線に沿って、工具中心点が動くよう工具経路を作成することにより、削り残しが最小限となる工具経路を作成することができる。これにより、ＮＣシミュレータによる削り残しの確認工程が不要となる。
【０１２９】
（効果）
本発明によれば、接触点の間隔を狭めることなく工具移動により加工形状を削り込むことを無くすことができるので、工具経路に用いる点の数が減少し、その結果工具移動時の加速／減速時間が減少するため、加工時間の短縮が可能になる。また、ＮＣデータ量が減少するためＮＣデータ転送時間を縮小できる。その結果、曲面加工装置５（図１参照）が実際に切削する時間を大きくできる。また、ＮＣシミュレータを用いた削り込みまたは削り残しの確認過程を排除できることから、ＮＣシミュレータを省略することができ、ＮＣデータ作成までの時間を減少させ、曲面加工装置５動作までの待ち時間減少、ＮＣデータ作成作業者の作業時間を少なくすることが可能になる。その結果、加工工数を削減できる。
【図面の簡単な説明】
【０１３０】
【図１】本実施形態に係るＣＡＭシステムの構成例を示すブロック図である。
【図２】本実施形態に係るＣＡＭシステムにおけるＮＣデータ作成の処理の流れを示すフローである。
【図３】工具経路作成の処理の流れを示すフローである。
【図４】曲率反転探索処理を説明するための図である。
【図５】凸時折線化処理を説明する図であり、（ａ）は、凸取代オフセット処理を、（ｂ）は、凸折線作成処理を、（ｃ）は、作成した折線を工具半径分オフセットする処理を説明するための図である。
【図６】経路補間部による経路補間処理の説明を行うための図であり、（ａ）は、ボールエンドミルの場合、（ｂ）は、フラットエンドミルの場合を示す図である。
【図７】ボールエンドミルにおける凹時折線化処理を説明するための図であり、（ａ）は、エンドミル接触探索処理を、（ｂ）は、凹工具別オフセット処理を、（ｃ）は、凹取代オフセット処理を、（ｄ）は、凹折線作成処理を説明するための図である。
【図８】ボールエンドミルにおける工具別オフセット方法の詳細を説明する図である。
【図９】フラットエンドミルにおける凹時折線化処理を説明するための図であり、（ａ）は、エンドミル接触探索処理を、（ｂ）は、凹工具別オフセット処理を、（ｃ）は、凹取代オフセット処理を、（ｄ）は、凹折線作成処理を説明する図である。
【図１０】フラットエンドミルにおける工具別オフセット方法の詳細を説明する図である。
【図１１】工具にボールエンドミルを用いたときの削り込みや削り残しを説明するための図であり、（ａ）は、加工面が凸状態時を示し、（ｂ）は、加工面が凹状態時を示す。
【図１２】従来における加工面を、オフセットした場合の工具経路を説明するための図であり、（ａ）は、加工面が凸状態時を示し、（ｂ）は、加工面が凹状態時を示す。
【符号の説明】
【０１３１】
１      ＣＡＭ装置
２      ＣＡＤ装置
３      記憶装置
４      数値制御装置
５      曲面加工装置
１１    処理部
１１１  工具経路作成部
１１２  曲面データ読取部
１１３  加工部位設定部
１１４  工具種設定部
１１５  経路パターン設定部
１１６  諸元設定・削り残し量設定部
１１７  経路補正部
１１８  ＮＣデータ変換部
１１１１  曲線算出部
１１１２  曲率反転探索・判定部
１１１３  曲線分割部
１１１４  工具判定部
１１１５  取代オフセット部
１１１６  折線作成部
１１１７  経路補間部
１１１８  エンドミル接触探索部
１１１９  凹工具別オフセット部
【図１】
2007200121.tif 000032
【図２】
2007200121.tif 000033
【図３】
2007200121.tif 000034
【図４】
2007200121.tif 000035
【図５】
2007200121.tif 000036
【図６】
2007200121.tif 000037
【図７】
2007200121.tif 000038
【図８】
2007200121.tif 000039
【図９】
2007200121.tif 000040
【図１０】
2007200121.tif 000041
【図１１】
2007200121.tif 000042
【図１２】
2007200121.tif 000043