(57)【要約】【課題】正確なオフセット面モデルを作成するための技術を提供する。【解決手段】面モデルからオフセット距離だけオフセットした三次元モデルを作成する装置であって、その面モデルをｘｙｚ空間に配置された基本形状群の集合で記憶する手段と、その面モデルをｘｙｚ空間に配置された微小要素群の集合で近似する数学モデルを記憶する手段と、ｘｙｚ空間において、最寄に位置する微小要素までの距離がオフセット距離に等しい近似オフセット点と、その近似オフセット点から最寄に位置する微小要素を特定して記憶する手段と、その近似オフセット点に対する面モデル上の最寄位置を、特定された微小要素に基づいて面モデル上に仮定する手段と、その仮定された最寄位置と近似オフセット点の位置を初期条件として、面モデルからオフセット距離だけオフセットしたオフセット点の位置を数値計算する手段を備えている。【選択図】図２
2005301545.tif 000002
【特許請求の範囲】
【請求項１】
面モデルからオフセット距離だけオフセットしたオフセット面モデルを作成する三次元モデルの作成装置であって、
その面モデルをｘｙｚ空間に配置された基本形状群の集合で記憶している面モデル記憶手段と、
その面モデルをｘｙｚ空間に配置された微小要素群の集合で近似する数学モデルを記憶している数学モデル記憶手段と、
ｘｙｚ空間において、最寄に位置する微小要素までの距離がオフセット距離に等しい近似オフセット点と、その近似オフセット点から最寄に位置する微小要素を特定して記憶する特定手段と、
その近似オフセット点に対する面モデル上の最寄位置を、その特定された微小要素に基づいて面モデル上に仮定する仮定手段と、
その仮定された最寄位置と近似オフセット点の位置を初期条件として、面モデルからオフセット距離だけオフセットしたオフセット点の位置を数値計算する計算手段と、
を備える三次元モデルの作成装置。
【請求項２】
微小要素毎に、その微小要素が近似している基本形状を対応付けて記憶している手段が付加されていることを特徴とする請求項１の三次元モデルの作成装置。
【請求項３】
前記特定手段は、
ｘｙｚ空間内にｘｙ平面に平行な平面を設定する平面設定手段と、
その設定された平面上の位置から微小要素までの距離だけ、その設定された平面上の位置からｚ軸方向に離れて位置する距離形状モデルをｘｙｚ空間内に配置する手段と、
配置された距離形状モデル群のなかで、その設定された平面上の位置からｚ軸方向に最寄に位置する距離形状モデルまでのｚ軸方向の距離を、その設定された平面上の位置に対応付けて記憶する距離値記憶手段と、
配置された距離形状モデル群のなかで、その設定された平面上の位置からｚ軸方向に最寄に位置する距離形状モデルに対応する微小要素を、その設定された平面上の位置に対応付けて記憶する微小要素記憶手段と、
その距離値記憶手段に記憶されている距離値とオフセット距離値とを比較する距離値比較手段と、
その距離値比較手段の比較結果に基づいて近似オフセット点の位置を特定する近似位置特定手段と、
が付加されていることを特徴とする請求項１または２の三次元モデルの作成装置。
【請求項４】
前記距離値比較手段は、前記距離値記憶手段が距離値を記憶している位置がオフセット面の外側／内側のいずれであるのかを判定し、
前記近似位置特定手段は、前記距離値比較手段が外側と判定した位置と内側と判定した位置を結ぶ線分上に近似オフセット点の位置を特定することを特徴とする請求項３の三次元モデルの作成装置。
【請求項５】
前記計算手段は、前記近似位置特定手段が近似オフセット点の位置を特定した線分上においてオフセット点の位置を数値計算することを特徴とする請求項４の三次元モデルの作成装置。
【請求項６】
面モデルからオフセット距離だけオフセットしたオフセット面モデルを作成する三次元モデルの作成方法であって、
面モデルをｘｙｚ空間に配置された基本形状群の集合で記述するデータを電子計算機に読取り可能に記憶する工程と、
面モデルをｘｙｚ空間に配置された微小要素群の集合で記述するデータを電子計算機に読取り可能に記憶する工程と、
ｘｙｚ空間において、最寄に位置する微小要素までの距離がオフセット距離に等しい近似オフセット点と、その近似オフセット点から最寄に位置する微小要素を、電子計算機に特定させて読取り可能に記憶する工程と、
電子計算機によって、近似オフセット点に対する面モデル上の最寄位置を、特定された微小要素に基づいて面モデル上に仮定する工程と、
電子計算機によって、仮定された最寄位置と近似オフセット点の位置を初期条件として、面モデルからオフセット距離だけオフセットしたオフセット点の位置を数値計算する工程と、
を備える三次元モデルの作成方法。
【請求項７】
面モデルからオフセット距離だけオフセットしたオフセット面モデルを作成する三次元モデルの作成プログラムであって、電子計算機に、
面モデルをｘｙｚ空間に配置された基本形状群の集合で記憶しておく処理と、
面モデルをｘｙｚ空間に配置された微小要素群の集合で近似する数学モデルを記憶しておく処理と、
ｘｙｚ空間において、最寄に位置する微小要素までの距離がオフセット距離に等しい近似オフセット点と、その近似オフセット点から最寄に位置する微小要素を特定して記憶する処理と、
近似オフセット点に対する面モデル上の最寄位置を、特定された微小要素に基づいて面モデル上に仮定する処理と、
仮定された最寄位置と近似オフセット点の位置を初期条件として、面モデルからオフセット距離だけオフセットしたオフセット点の位置を数値計算する処理と、
を少なくとも実行させる三次元モデルの作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、三次元モデルを取り扱うコンピュータ技術に関し、特に元の面モデルから所定距離だけオフセット処理をしたオフセット面モデルを得る際に、元の面モデルを座標空間に配置して、オフセット面モデルの座標位置を決定する技術に関する。
【背景技術】
【０００２】
コンピュータ等を利用して三次元のモデルを作成する技術が普及している。このような三次元モデルを作成する技術は、製造業等においても盛んに利用されており、元の面モデルから所定距離だけオフセットしたオフセット面モデルを作成する技術が必要とされている。
例えば数値制御（ＮＣ）工作機械は、オフセット面モデルを必要とする。ＮＣ工作機械は、工具とワークを予め教示された移動経路に沿って相対移動させることによって、ワークを加工面に加工する。図２７は、例えば３軸制御（工具をｘ−ｙ−ｚ軸の３軸方向に移動できるが、工具を傾けることができないものをいう）のＮＣ工作機械によって、ワークを加工面Ｄに切削加工する様子を示す。図２７に示すように、ボールエンドミル１００が、その刃先面１００ａを加工面Ｄと接する位置関係を保ちながら移動すると、ワークＷは加工面Ｄに加工されることとなる。
ＮＣ工作機械では、工具に基準点を定めておき、工具の位置をその基準点の位置によって定める。図２７に示すように工具がボールエンドミル１００の場合では、球面状の刃先面１００ａの中心点を基準点Ｔと定めることができる。このように工具基準点Ｔを定めると、ワークを加工面Ｄに加工する際の工具基準点Ｔの位置は、面Ｍによって定めることができる。この工具の経路を記述する面Ｍは、加工面Ｄから刃先面１００ａの半径ｒ分だけオフセットしており、加工面Ｄからオフセット距離値ｒだけオフセットしたオフセット面と呼ばれる。
加工面Ｄの形状は、三次元ＣＡＤ（Computer Aided Design）等を用いて作成された曲面モデルで表現される。ＮＣ工作機械を用いてワークを加工面Ｄに加工するためには、その加工面モデルから刃先面半径ｒ分だけオフセットしたオフセット面モデルを作成する必要がある。
【０００３】
オフセット面モデルを作成するためには、加工面モデルを座標空間に配置し、オフセット面モデルの座標位置を求める必要がある。加工面Ｄが式で記述されていれば、ボールエンドミル１００の刃先面１００ａの形状を記述する式と組合せて用い、両者が接するときの工具基準点Ｔの位置を解くことによってオフセット面の位置を求めることができる。
しかしながら、両者が接する工具基準点Ｔのｚ座標を解くと、しばしば複数のｚ座標が計算される。例えば図２８はその一例を示し、複数の解をもたらす加工面Ｄが例示されている。この場合、３つのｚ座標の解が存在する。図２８に示すように、工具基準点Ｔがｚ座標値ｚ２、ｚ３の位置にあるときには、刃先面１００ａが加工面Ｄと交わる関係ともなっている。この交わりを見過ごしてしまい、例えばｚ座標値にｚ２を採用してしまうと、ハッチング部Ｋの領域が過切削されてしまう。
この手法で問題なのは、刃先面１００ａが加工面Ｄに接するときの位置を解くと、刃先面１００ａが加工面Ｄに接すると共に加工面Ｄと交わってしまう位置まで計算されてしまうことにある。即ち、算出された位置は、加工面Ｄのある位置からはオフセット距離ｒだけオフセットしているが、加工面Ｄの他の位置とはオフセット距離ｒよりも近接している場合もあり得ることにある。そして、算出された位置から加工面Ｄまでの距離の計算は、解析的な手法に頼らざるを得ず、算出される解が未知数で存在してしまい、加工面Ｄまでの最短距離がオフセット距離ｒに等しいことを保障することができない。
【０００４】
面モデルを曲面等のままで扱うと、オフセット面の位置を計算したときに、その位置から面モデルまでの最短距離がオフセット距離であることを保障できない。そこで、面モデルを点、線分、平面分等の微小な要素群で離散近似し、面モデルを微小要素群の集合で記述する数学モデルにして扱うことが一般的である。ｘｙｚ空間内の位置から点、線分、平面分等の各微小要素までの距離は一意に求めることができるので、すべての微小要素までの距離を算出し、算出したすべての距離の中から最小値を選択すれば、その位置から数学モデルまでの最短距離を一意に求めることができる。求めた最短距離がオフセット距離ｒに等しい位置を、オフセット面の位置として定めることにより、オフセット面の位置を一意に求めることができる。
本明細書と特許請求の範囲では、面モデルを点群、線分群あるいは平面分群で離散近似したものを、曲面モデルを微小要素群の集合で記述する数学モデルという。
【０００５】
面モデルを微小要素群の集合で離散近似し、その数学モデルからオフセット面モデルを作成する技術が盛んに研究されている。例えば特許文献１には、逆オフセット法と三次元グラフィクス表示技術を組み合わせて利用する方法が開示されている。
逆オフセット法は、工具の刃先面が数学モデルに接触する位置を求めることにかえて、工具形状の上下を反転した仮想反転工具を基準点が数学モデル上に位置するように配置する。このように配置された仮想反転工具形状群は、各近似要素から工具形状分（オフセット距離）だけ離れた位置を示すので、仮想反転工具形状群の最高位置を選択することにより、数学モデルまでの最短距離がオフセット距離に等しい位置を求める手法である。
特許文献１の技術では、微小要素群に配置された仮想反転工具形状群から最高位置を選択する工程を、三次元グラフィクス表示技術の陰面処理を用いて行う技術を提案している。
【特許文献１】特開２００３−２５６０１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
前記したように、面モデルを曲面等のままで扱うと、面モデルからオフセット距離だけオフセットする位置を求めても、その位置から面モデルまでの最短距離がオフセット距離であることを保障できず、例えば前出の過切削の危険性が残ってしまう。
そこで、微小要素群の集合で離散近似した数学モデルを利用する技術が採用されており、この技術を用いれば、最短距離がオフセット距離であることを保証できないという問題を解決することができる。しかしながら、離散近似した数学モデルは、あくまで近似であり、真の面モデルからは誤差が生じてしまう。微小要素群の集合で離散近似した数学モデルから計算したオフセット面の位置はあくまで近似的なものであり、厳密なものではない。
本発明では上記の問題を解決する。本発明によって、面モデルまでの最短距離がオフセット距離と厳密に等しい位置を得ることを可能とし、より正確なオフセット面モデルを作成するための技術を提供する。
【課題を解決するための手段】
【０００７】
本発明は、面モデルからオフセット距離だけオフセットしたオフセット面モデルを作成する三次元モデルの作成装置に具現化することができる。その装置は、その面モデルをｘｙｚ空間に配置された基本形状群の集合で記憶している面モデル記憶手段と、その面モデルをｘｙｚ空間に配置された微小要素群の集合で近似する数学モデルを記憶している数学モデル記憶手段と、ｘｙｚ空間において、最寄に位置する微小要素までの距離がオフセット距離に等しい近似オフセット点と、その近似オフセット点から最寄に位置する微小要素を特定して記憶する特定手段と、その近似オフセット点に対する面モデル上の最寄位置を、特定された微小要素に基づいて面モデル上に仮定する仮定手段と、その仮定された最寄位置と近似オフセット点の位置を初期条件として、面モデルからオフセット距離だけオフセットしたオフセット点の位置を数値計算する計算手段を備えている。
本明細書や請求の範囲では、数学モデルからオフセット距離だけオフセットする点を近似オフセット点と記述することがある。これは、加工面Ｄからオフセット距離だけオフセットするオフセット点と区別することを主たる目的とする表現である。
【０００８】
面モデルが微小要素群の集合で記述されていると、ｘｙｚ空間内の位置から各微小要素までの距離はそれぞれ一意に求めることができる。ｘｙｚ空間内の位置毎に、その位置から各微小要素までの距離をすべて求め、最寄に位置する微小要素までの距離が所望するオフセット距離値と等しい位置を、数学モデルに対する近似オフセット点の位置として定めることができる。ここで定められる近似オフセット点の位置は、従来の技術で定められる近似オフセット点の位置に等しい。
本装置では、それで終わらずに、さらに処理を進めて面モデルから厳密にオフセット距離だけオフセットするオフセット点の位置を計算する。そのために、本装置では、近似オフセット点から最寄に位置する微小要素を特定し、特定された微小要素の位置に基づいて、近似オフセット点に対する面モデル上の最寄位置を仮定する。
【０００９】
面モデルまでの距離がオフセット距離と等しくなる位置は、面モデルを記述する式を用い、解析計算を行うことによって求めることができる。解析計算では計算の初期条件を設定する必要があり、初期条件の一つに対して得られる解は一つである。正しい解を得るためには正しい解に近似する初期条件を与える必要がある。換言すると、十分な精度で初期条件を与えることができれば、得られる解が正しい解であることを保障することが可能となる。
そこで、本装置では、離散近似した数学モデルを利用して得られた近似オフセット点の位置や面モデル上の最寄位置を初期条件にして数値計算を進める。数学モデルを利用して得られた近似オフセット点は、面モデルから厳密にオフセット距離だけオフセットするオフセット点と十分に近接して位置している。また、その近似オフセット点から最寄に位置する微小要素は、オフセット点に対する面モデル上の最寄位置と十分に近接して位置している。これらを初期条件として解析計算を行うことにより、面モデルから厳密にオフセット距離だけオフセットするオフセット点の位置が確実に算出される。算出されたオフセット点の位置に基づいて、より正確なオフセット面を作成することができる。
この装置によれば、面モデルまでの最短距離がオフセット距離と厳密に等しい位置を得ることができ、より正確なオフセット面モデルを作成することができる。
【００１０】
上記の装置において、微小要素毎に、その微小要素が近似している基本形状を対応付けて記憶している手段が付加されていることが好ましい。
それにより、近似オフセット点から最寄に位置する微小要素が特定されたときに、その微小要素が近似している基本形状を特定することができる。近似オフセット点に対する面モデル上の最寄位置を仮定したり、オフセット点に対する面モデル上の位置を計算したりする際に、その基本形状に限定して処理を行うことができ、それらの処理を簡単化することができる。
【００１１】
近年、ＮＣ工作機械は制御軸の多軸化が進められ、３軸制御では加工することができなかった加工面を加工することが可能になってきている。例えば図１に示すように、さらに工具回転軸の方向を変化させられるＮＣ工作機械を用いると、オーバーハングしている面Ｄ１を有するような加工面Ｄを同時に加工することができる。このような加工面Ｄに対するオフセット面Ｍでは、必ずしもｘｙ方向の位置に対してｚ座標値が１価とはならない。図１に示すように、例えばｘｙ位置（ｘｉ，ｙｊ）では、３つのｚ座標値によってオフセット面Ｍの位置を定められなければならない。
数学モデルからオフセット距離だけオフセットする近似オフセット点を求める処理は、従来の技術を利用することができ、ｘｙ位置に対して１価のｚ座標値のみで定められるようなオフセット面であれば、その処理を高速化する技術が多く提供されている。しかしながら、ｘｙ位置に対してｚ座標値が複数存在するようなオフセット面モデルを作成する処理を高速化する技術は提供されておらず、その作成処理には多大の時間とコストが必要となる。
【００１２】
本発明の技術は、この問題に対しても有用な装置を提供する。ｘｙ位置に対してｚ座標値が複数存在するようなオフセット面モデルを作成する際には、ｘｙｚ空間内にｘｙ平面に平行な平面を設定する平面設定手段と、その設定された平面上の位置から微小要素までの距離だけ、その設定された平面上の位置からｚ軸方向に離れて位置する距離形状モデルをｘｙｚ空間内に配置する手段と、配置された距離形状モデル群のなかで、その設定された平面上の位置からｚ軸方向に最寄に位置する距離形状モデルまでのｚ軸方向の距離を、その設定された平面上の位置に対応付けて記憶する距離値記憶手段と、配置された距離形状モデル群のなかで、その設定された平面上の位置からｚ軸方向に最寄に位置する距離形状モデルに対応する微小要素を、その設定された平面上の位置に対応付けて記憶する微小要素記憶手段と、その距離値記憶手段に記憶されている距離値とオフセット距離値とを比較する距離値比較手段と、その距離値比較手段の比較結果に基づいて近似オフセット点の位置を特定する近似位置特定手段を、上記の装置に付加することが有効である。
【００１３】
本発明者が創作した距離形状モデルは、ｘｙｚ空間内の位置から微小要素までの距離だけ、その位置からｚ軸方向に離れて位置する。ｘｙｚ空間内の位置から微小要素までの距離を求めるときに、距離形状モデルをｘｙｚ空間に配置すると、その位置から微小要素までの距離を、その位置から距離形状モデルまでのｚ軸方向の距離によって知ることができる。
微小要素までの距離を求める位置をｘｙｚ空間内に定めると、その位置を基準として各微小要素に対する距離形状モデル群をｘｙｚ空間に配置することができる。微小要素までの距離を求めようとする位置に対し、各微小要素は様々な方向に位置しているが、距離形状モデル群を用いると、各微小要素までの距離をすべてｚ軸方向に表すことができる。配置された距離形状モデル群のｚ軸方向の位置を比較することにより、様々な方向に位置する各微小要素までの距離を比較することができる。
距離形状モデルを配置する際に、ｘｙ平面に平行な平面を定めると、その平面のｚ座標値を基準として、その平面上のすべての位置に対して有効な距離形状モデルを配置することができる。
【００１４】
ｘｙｚ空間に距離形状モデル群を配置し、配置した距離形状モデル群のｚ軸方向の位置を比較する処理は、例えば三次元グラフィクス表示技術等を利用して高速に行うことができ、設定した平面上の位置毎に、ｚ軸方向に最寄に位置する距離形状モデル群までのｚ軸方向の距離を高速に求めることができる。即ち、設定した平面上の位置毎に、最寄に位置する微小要素と、その微小要素までの距離を高速に特定することができる。
設定する平面のｚ座標値を順次変更すれば、ｘｙｚ空間内の位置毎に、最寄に位置する微小要素と、その微小要素までの距離を高速に求めることができる。
ｘｙｚ空間の位置毎に、最寄の微小要素までの距離がわかれば、所望するオフセット距離と比較することで、近似オフセット点の位置を特定することができる。特定された近似オフセット点の位置は、例えばｘｙ方向の位置に対して高さ位置ｚが複数存在することもある。
この装置によっても、面モデルまでの最短距離がオフセット距離と厳密に等しい位置を得ることができ、より正確なオフセット面モデルを作成することができる。特に、従来の技術では近似オフセット点を高速に計算することができなかった面モデル（例えばその数学モデルに対するオフセット面モデルがｘｙ位置に対して複数のｚ座標値で定められるような面モデル）を扱う際に、その処理速度を高めることができる。
【００１５】
さらに上記の装置において、距離値比較手段は、距離値記憶手段が距離値を記憶している位置がオフセット面の外側／内側のいずれであるのかを判定し、近似位置特定手段は、距離値比較手段が外側と判定した位置と内側と判定した位置を結ぶ線分上に近似オフセット点の位置を特定することが好ましい。
最寄の微小要素までの距離がオフセット距離よりも大きい位置では、数学モデルに対してオフセット面よりも外側に位置すると判定できる。最寄の微小要素までの距離がオフセット距離よりも小さい位置では、数学モデルに対してオフセット面よりも内側に位置すると判定できる。内側と判定された位置と外側と判定された位置の間には、数学モデルに対するオフセット面が位置することになるので、それらの位置を結ぶ線分上に近似オフセット点の位置を定めることができる。距離値記憶手段が記憶している距離値とオフセット距離値との大小を判定することによって近似オフセット点の位置を特定することができ、近似オフセット点の位置の特定処理を高速に行うことができる。
【００１６】
近似位置決定手段が、距離値比較手段が外側と判定した位置と内側と判定した位置を結ぶ線分上に近似オフセット点の位置を決定したときは、計算手段はその線分上においてオフセット点の位置を数値計算することが好ましい。オフセット点は、その線分上に位置することが保障されているので、その線分上に限定してオフセット点の位置を計算することによって、オフセット点の位置が確実に得られると共に、オフセット点の位置を計算する処理が簡単化される。
【００１７】
本発明はまた、面モデルからオフセット距離だけオフセットしたオフセット面モデルを作成する新たな三次元モデルの作成方法を提供する。この方法では、面モデルをｘｙｚ空間に配置された基本形状群の集合で記述するデータを電子計算機に読取り可能に記憶する工程と、面モデルをｘｙｚ空間に配置された微小要素群の集合で記述するデータを電子計算機に読取り可能に記憶する工程と、ｘｙｚ空間において、最寄に位置する微小要素までの距離がオフセット距離に等しい近似オフセット点と、その近似オフセット点から最寄に位置する微小要素を、電子計算機に特定させて読取り可能に記憶する工程と、電子計算機によって、近似オフセット点に対する面モデル上の最寄位置を、特定された微小要素に基づいて面モデル上に仮定する工程と、電子計算機によって、仮定された最寄位置と近似オフセット点の位置を初期条件として、面モデルからオフセット距離だけオフセットしたオフセット点の位置を数値計算する工程を備えている。
この方法では、電子計算機の計算能力を十分に活用して、本発明の技術を実施する。この方法では、プログラムされた電子計算機によって、近似オフセット点の位置を特定し、面モデル上の最寄位置を仮定させ、それらを初期条件にしてオフセット点の位置を数値計算させる。
この方法によれば、面モデルまでの最短距離がオフセット距離と厳密に等しい位置を得ることができ、より正確なオフセット面モデルを作成することができる。
【００１８】
本発明によって創作された技術は、面モデルからオフセット距離だけオフセットしたオフセット面モデルを作成する新たな三次元モデルの作成プログラムにも具現化される。このプログラムは、電子計算機に、面モデルをｘｙｚ空間に配置された基本形状群の集合で記憶しておく処理と、面モデルをｘｙｚ空間に配置された微小要素群の集合で近似する数学モデルを記憶しておく処理と、ｘｙｚ空間において、最寄に位置する微小要素までの距離がオフセット距離に等しい近似オフセット点と、その最寄に位置する微小要素を特定して記憶する処理と、近似オフセット点に対する面モデル上の最寄位置を、特定された微小要素に基づいて仮定する処理と、仮定された最寄位置と近似オフセット点の位置を初期条件として、面モデルからオフセット距離だけオフセットしたオフセット点の位置を数値計算する処理を少なくとも実行させる。
このプログラムによれば、電子計算機によって、面モデルまでの最短距離がオフセット距離と厳密に等しい位置を得ることができ、より正確なオフセット面モデルを作成することができる。
【発明の効果】
【００１９】
本発明によると、面モデルまでの最短距離がオフセット距離と厳密に等しい位置を得ることができ、より正確なオフセット面モデルを作成することができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明を具現化した実施例について図面を参照して説明する。最初に実施例の主要な特徴を列記する。
（形態１）：加工面の形状を記述するデータは、外部の三次元ＣＡＤ装置で作成することができる。
（形態２）：加工面の形状を記述するデータは、表現式で記述される基本形状群の集合を記述している。それぞれの基本形状には、識別子が割り当てられている。
（形態３）：三次元モデルの作成装置は、曲面モデルを微小要素群の集合に離散近似した数学モデルを作成することができる。それぞれの微小要素には、識別子が割り当てられている。
（形態４）：三次元モデルの作成装置は、２つの距離値マップを記憶することができる。また、２つの微小要素マップを記憶することができる。
（形態５）：三次元モデルの作成装置は、ｘｙｚ空間を微小な直方体空間に区画し、区画した直方体空間の辺毎に、その辺上に近似オフセット点を配置するか否かを判断する。
（形態６）：三次元モデルの作成装置は、近似オフセット点が配置された直方体空間の辺上に、オフセット点の位置を定める。
【実施例】
【００２１】
本実施例では、５軸制御のＮＣ工作機械の工具の経路を、本発明を利用して作成する手法について説明する。図１に示したように、５軸制御のＮＣ工作機械では、エンドミル１００等の工具の回転軸の方向を可変制御することができる。それにより、図１に示すようなオーバーハングしている加工面Ｄ１を有するような加工面ＤにワークＷを加工することができる。
図１に示すように、５軸制御のＮＣ工作機械では、図２７に示した３軸制御のＮＣ工作機械と同様に、工具に基準点Ｔを定めておき、その基準点Ｔの移動経路によって工具の経路を定めることができる。工具がワークＷを加工面Ｄに加工する時、工具の基準点Ｔは刃先形状分だけ加工面Ｄからオフセットした位置を移動する。例えば工具にボールエンドミル１００を用いる場合、基準点Ｔは刃先面１００ａの半径ｒだけ加工面Ｄからオフセットしている面Ｍ上を移動する。このように、所定の面（例えば加工面Ｄ）から所定の距離（例えば半径ｒ）だけオフセットしている面をオフセット面という。
【００２２】
オフセット面Ｍは三次元モデルで記述することができる。オフセット面Ｍを記述する三次元モデルは、加工面Ｄを記述する三次元の曲面モデルから、オフセット処理を行うことによって作成することができる。本実施例の三次元モデルの作成装置は、教示された三次元モデルから、所定のオフセット距離に基づいてオフセット処理を行い、オフセット面モデルを作成する。
【００２３】
図２に、本実施例の三次元モデルを作成する装置１０の構成を示す。作成装置１０は、データ記憶部３０とプログラム記憶部５０と処理部７０を備えている。作成装置１０はコンピュータ等で構成することができ、データ記憶部３０やプログラム記憶部５０や処理部７０は、コンピュータのハードウェアやソフトウェア等によって構成されている。
【００２４】
データ記憶部３０は、外部から与えられたデータや、処理部７０等が作成したデータ等を記憶する。データ記憶部３０は、曲面モデル記述データ３２と、数学モデル記述データ３４と、識別子対応データ３５と、距離値マップ３６と、微小要素マップ３８と、オフセット面モデル記述データ４０等を記憶することができる。データ記憶部３０は、第１距離値マップ３６ａと第２距離値マップ３６ｂの２つの距離値マップ３６を記憶することができる。また、データ記憶部３０は、第１微小要素マップ３８ａと第２微小要素マップ３８ｂの２つの微小要素マップ３８を記憶することができる。
プログラム記憶部５０は、処理部７０が実行するプログラム等を記憶している。プログラム記憶部５０は、数学モデル作成プログラム５２と、距離形状モデル配置プログラム５４と、デプスバッファ処理プログラム５６と、オフセット面要素選択プログラム５８と、初期条件設定プログラム５９と、オフセット位置探索プログラム６０を記憶している。
処理部７０は、データ記憶部３０に記憶されているデータ等を、プログラム記憶部５０に記憶されているプログラム等を実行して処理し、オフセット面Ｍモデルを記述するオフセット面モデル記述データ４０を作成する。
【００２５】
図３は、本実施例の作成装置１０がオフセット面モデル記述データ４０を作成する処理の流れを示すフローチャートである。以下、図３に示すフローに沿って作成装置１０の処理動作について説明する。
ステップＳ２では、作成装置１０が曲面モデル記述データ３２をデータ記憶部３０に記憶する。曲面モデル記述データ３２は、ＮＣ工作機械に加工させる加工面Ｄを記述しているデータであり、外部の三次元ＣＡＤ（Computer Aided Design）装置等によって作成された三次元ＣＡＤデータである。例えば、曲面モデル記述データ３２は図４に示す加工面Ｄを記述している。曲面モデル記述データ３２は、例えば記録媒体等を介して作成装置１０に教示することができる。
図４に示すように、曲面モデル記述データ３２は、ｘｙｚ空間において複数の基本形状を組合せて加工面Ｄを記述している。基本形状とは、例えば面Ｓや稜線Ｃや頂点Ｖである。面Ｓには、例えば平面、円柱面、球面、自由曲面等が用いられる。それぞれの基本形状は、個々に設定されたパラメータを用いた表現式で記述されている。例えば面Ｓは、面上にパラメータ（ｕ，ｖ）が定められており、曲面表現式Ｓ（ｕ，ｖ）で記述されている。また、稜線Ｃはパラメータｔによって曲線表現式Ｃ（ｔ）で記述されている。
すべての基本形状には、それぞれを識別することが可能な識別子ＩＤが割り当てられている。
【００２６】
ステップＳ４では、数学モデル記述データ３４が作成される。処理部７０は、数学モデル作成プログラム５２を用いて曲面モデル記述データ３２を処理し、数学モデル記述データ３４を作成する。作成された数学モデル記述データ３４は、データ記憶部３０に記憶される。
図５に、加工面Ｄを微小要素群の集合に離散近似した数学モデルＢの一例を示す。数学モデルとは、基本形状群で構成される加工面Ｄを、複数の微小要素群の集合に離散近似したモデルである。図５では、図面の明瞭化を目的として、数学モデルＢの一部にのみ離散近似された様子を示し、微小要素群を拡大して示している。数学モデルＢを構成している微小要素には、微小点Ａや、微小線分Ｈや、微小三角平面Ｕが用いられている。
数学モデル作成プログラム５２は、加工面Ｄを記述する曲面モデルデータ３２を読み取り、加工面Ｄを微小要素群で離散近似して数学モデルＢを作成し、数学モデルＢを記述する数学モデル記述データ３４を作成するプログラムである。また、数学モデル作成プログラム５２は、それぞれの微小要素に識別子ｉｄを割り当て、数学モデル記述データ３４に併せて記述する。曲面モデルを微小要素群の集合に離散近似する手法は数多く公知されており、本実施例の作成装置１０においても、それらの手法を適宜利用することができる。
数学モデル作成プログラム５２は、数学モデル記述データ３４を作成する際に、識別子対応データ３５を作成する。識別子対応データ３５は、数学モデルＢを構成する微小要素群の識別子ｉｄに対応付けて、加工面Ｄを構成する基本形状の識別子ＩＤが記述されるデータである。数学モデルＢを構成する微小要素群のそれぞれは、加工面Ｄを構成する基本形状（面Ｓ、稜線Ｃ、頂点Ｖ）群のいずれかを近似している。識別子対応データ３５では、微小要素群の識別子ｉｄと、その微小要素群が近似した基本形状の識別子ＩＤが対応付けて記述される。作成された識別子対応データ３５は、データ記憶部３０に記憶される。
【００２７】
次のステップＳ６〜Ｓ１２では、処理部７０によって距離値マップ３６と微小要素マップ３８が作成される。処理部７０は、距離形状モデル配置プログラム５４とデプスバッファ処理プログラム５６を用い、数学モデル記述データ３４を処理して、距離値マップ３６と微小要素マップ３８を作成する。作成された距離値マップ３６と微小要素マップ３８は、データ記憶部３０に記憶される。
【００２８】
距離値マップ３６は、ｚ座標値が固定されたｘｙ平面に平行な平面上の位置と、その位置から数学モデルＢまでの最短の距離値とを対応付けて記述している。距離値マップ３６では、ｘｙ平面に平行な平面上において、ｘ方向には間隔Δｘ、ｙ方向には間隔Δｙの格子状に並ぶ位置毎に距離値が記述されている。
微小要素マップ３８は、ｚ座標値が固定されたｘｙ平面に平行な平面上の位置と、その位置から最も近くに位置している微小要素の識別子ｉｄとを対応付けて記述している。微小要素マップ３８では、距離値マップ３６に距離値が記述されている位置毎に、微小要素の識別子ｉｄが記述されている。
【００２９】
図６を参照して、距離値マップ３６について説明する。図６に示すように、ｘｙｚ空間に位置する点Ｐ１（ｘｉ，ｙｊ，ｚｋ）から、数学モデルＢを構成している微小点Ａや微小線分Ｈや微小三角平面Ｕまでの距離ｄは、点Ｐ１と各微小要素について解くことにより、各微小要素について一意に求めることができる。即ち、数学モデルＢを構成している微小要素群の個数と同じだけ距離ｄの値が求められる。求めた距離ｄの値の中で最も小さい値が、点Ｐ１から数学モデルＢまでの最短の距離値となる。距離値マップ３６を作成するためには、ｚ座標値を固定してマップ平面Ｆを定め、マップ平面Ｆ上においてｘ方向には間隔Δｘ、ｙ方向には間隔Δｙの格子状に並ぶ位置毎に、各微小要素までの距離ｄをすべての微小要素について求め、距離ｄの最小値を選択する処理が必要となる。この方法では、距離値マップ３６を作成するための計算処理が煩雑になってしまい、処理に必要な時間も長くなってしまう。本実施例の作成装置１０では、以下に説明する方法によって、この距離値マップ３６の作成処理を簡単化している。
【００３０】
本実施例の作成装置１０では、距離値マップ３６と微小要素マップ３８の作成において、距離形状モデルを利用する。作成装置１０が距離値マップ３６と微小要素マップ３８を作成する方法を説明するに先立ち、図７〜図１４を参照しながら距離形状モデルについて説明する。
図７に距離形状モデルＱの一例を示す。図７に示す距離形状モデルＱについて説明する。図中Ｆは、ｚ座標値がｚｋであるマップ平面である。図中Ａ１は、数学モデルＢを構成している微小点Ａの一つであり、マップ平面Ｆ上に位置している。図中Ｐ１は、マップ平面Ｆ上に位置する点である。ここで図７に示すように、ｚ軸に平行なｄ軸をマップ平面Ｆ上を原点にして定め、ｘｙｄ空間を定義する。図７に示すように、ｘｙｚ空間において座標（ｘｉ，ｙｊ，ｚｋ）の点Ｐ１は、ｘｙｄ空間において座標（ｘｉ，ｙｊ，０）となる。また、ｘｙｚ空間において座標（ｘ１，ｙ１，ｚｋ）の微小点Ａ１は、ｘｙｄ空間において座標（ｘ１，ｙ１，０）となる。点Ｐ１から微小点Ａ１までの距離ｄは、
ｄ２＝（ｘｉ−ｘ１）２＋（ｙｊ−ｙ１）２            ・・・（１）
と表される。ただし、ｄ≧０である。
上記の方程式（１）は、ｘｙｄ空間において微小点Ａ１を頂点とし、中心軸がｄ軸正方向に伸びる直円錐面を表す方程式であって、図７に示す直円錐面モデルＱを記述している。図７に示すようにｘｙｄ空間に直円錐面モデルＱを配置すると、点Ｐ１から微小点Ａ１までの距離ｄは、点Ｐ１から直円錐面モデルＱまでのｄ軸方向の高さ（点Ｒまでの距離）に等しくなる。
このように、微小点Ａ１がマップ平面Ｆ上に位置するとき、図７に示すように直円錐面モデルＱを配置すると、マップ平面Ｆ上の位置（ｘｉ，ｙｊ，ｚｋ）から微小点Ａ１までの距離ｄを、その位置（ｘｉ，ｙｊ，ｚｋ）から直円錐面モデルＱまでのｄ軸方向の高さから知ることができる。
この直円錐面モデルＱのように、マップ平面Ｆ上の各位置から微小要素までの距離ｄを、マップ平面Ｆからのｄ軸方向の高さによって表す形状モデルを距離形状モデルＱという。図７に示すように、微小要素がマップ平面Ｆ上に位置する微小点Ａ１の場合、それに対する距離形状モデルＱは直円錐面の形状モデルとなる。
【００３１】
次に、図８に示す距離形状モデルＱについて説明する。図８には、微小点Ａ１がマップ平面Ｆよりも距離ｄ１だけｄ軸正方向に位置している場合の距離形状モデルＱが示されている。ｘｙｚ空間において座標（ｘ１，ｙ１，ｚｋ＋ｄ１）の微小点Ａ１は、ｘｙｄ空間において座標（ｘ１，ｙ１，ｄ１）となる。点Ｐ１から微小点Ａ１までの距離ｄは、
ｄ２＝（ｘｉ−ｘ１）２＋（ｙｊ−ｙ１）２＋ｄ１２          ・・・（２）
と表される。ただし、ｄ≧０である。
上記の方程式（２）は、ｘｙｄ空間において二葉双曲面の一方を表す方程式であり、図８に示す距離形状モデルＱは二葉双曲面の一方の形状をしている。この距離形状モデルＱは、頂点が微小点Ａ１である。漸近面は微小点Ａ１をマップ平面Ｆ上に投影した点Ａａ１を頂点とし中心軸がｄ軸正方向に伸びる直円錐面である。中心軸はｄ軸正方向に伸びている。図８に示すようにｘｙｄ空間に距離形状モデルＱを配置すると、点Ｐ１から微小点Ａ１までの距離ｄは、点Ｐ１から距離形状モデルＱまでのｄ軸方向の高さ（点Ｒまでの距離）に等しくなる。
図８に示すように、微小要素がマップ平面Ｆよりもｄ１だけｄ軸正方向に位置する微小点Ａの場合、それに対する距離形状モデルＱは二葉双曲面の一方の形状となる。
ここで、二葉双曲面について説明しておく。二葉双曲面とは、双曲線をその２つの焦点を結ぶ直線を回転軸として回転させたときに形成される曲面である。このとき、対をなす双曲線のそれぞれが一つの曲面を形成するので、二葉双曲面は一対の曲面対となる。上記の二葉双曲面の一方という表現は、その一方の曲面を指す。
【００３２】
次に、図９に示す距離形状モデルＱについて説明する。図９は、微小点Ａ１がマップ平面Ｆよりも距離ｄ１だけｄ軸負方向に位置している場合の距離形状モデルＱを示している。ｘｙｚ空間において座標（ｘ１，ｙ１，ｚｋ−ｄ１）の微小点Ａ１は、ｘｙｄ空間において座標（ｘ１，ｙ１，−ｄ１）となる。点Ｐ１から微小点Ａ１までの距離ｄは、
ｄ２＝（ｘｉ−ｘ１）２＋（ｙｊ−ｙ１）２＋ｄ１２          ・・・（３）
と表される。ただし、ｄ≧０である。
上記の方程式（３）は、前出の方程式（２）と同一であり、ｘｙｄ空間において二葉双曲面の一方を表す方程式である。図９に示すように、微小点Ａ１がマップ平面Ｆよりも距離ｄ１だけｄ軸負方向に位置している場合、微小点Ａ１はマップ平面Ｆよりも距離ｄ１だけｄ軸正方向に位置している点Ａ１’と同様に取り扱うことができる。
上述のように、マップ平面Ｆ上の位置から微小点Ａまでの距離ｄは、距離形状モデルＱによって表現することができる。距離形状モデルＱは、マップ平面Ｆに対する微小点Ａの位置関係に基づいて決定することができる。詳しくは、マップ平面Ｆのｚ軸方向の位置と、微小点Ａ１のｚ軸方向の位置関係に基づいて決定することができる。
【００３３】
微小線分Ｈや微小三角平面Ｕの場合、上記を利用してそれらに対する距離形状モデルを決定することができる。微小線分Ｈや微小三角平面Ｕは、微小点Ａの集合とみなすことにより、微小線分Ｈや微小三角平面Ｕに対する距離形状モデルを、微小点Ａ群に対する距離形状モデルＱ群の集合で生成することができる。微小線分Ｈや微小三角平面Ｕを有限個の微小点Ａ群に置き換え、それら微小点Ａ群に対して距離形状モデルＱ群を配置することにより、微小線分Ｈや微小三角平面Ｕに対して距離形状モデルを配置することができる。
しかしながら、上記のように微小線分Ｈや微小三角平面Ｕをさらに点Ａ群で離散化することは、計算処理を煩雑にしてしまうので好ましくない。そこで、本実施例の作成装置１０では、微小線分Ｈや微小三角平面Ｕに対する距離形状モデルを用意し、微小線分Ｈや微小三角平面Ｕに対して直接的に距離形状モデルを配置する。
【００３４】
図１０〜図１３を用いて、数学モデルＢを構成している微小線分Ｈに対する距離形状モデルを説明する。微小線分Ｈに対する距離形状モデルは、微小点Ａに対する距離形状モデルと同様に、マップ平面Ｆとの位置関係に基づいて決定することができる。先に説明したように、マップ平面Ｆの上下方向に対しては対称性が成り立つため（図９参照）、微小線分Ｈとマップ平面Ｆとの位置関係は次のように分類できる。
（位置関係１）線分Ｈの両端が共にマップ平面Ｆ上に位置している。
（位置関係２）線分Ｈの一端のみがマップ平面Ｆ上に位置している。
（位置関係３）線分Ｈの両端が共にマップ平面Ｆ上に位置しておらず、両端が共にマップ平面Ｆに対して同じ側に位置している。
（位置関係４）線分Ｈの両端が共にマップ平面Ｆ上に位置しておらず、両端が互いにマップ平面Ｆに対して反対側に位置している。
以下、上記の分類に従い、線分Ｈに対する距離形状モデルについて順に説明する。
【００３５】
図１０に、微小線分Ｈが（位置関係１）の場合の距離形状モデルＱを示す。ここでいう微小線分Ｈとは、両端点Ａ１、Ａ２の間を結んでいる部分のことを意味し、両端点Ａ１、Ａ２を含んではいない。図１０に示されている距離形状モデルＱには、線分Ｈの両端点Ａ１、Ａ２に対する距離形状モデルは含まれていない。図１１、図１２に示す距離形状モデルＱにおいても同様である。なお、微小線分Ｈの両端点Ａ１、Ａ２は、数学モデルＢを構成している微小点Ａであり、両端点Ａ１、Ａ２に対しては、先に説明した微小点Ａに対する距離形状モデルＱを配置することができる。マップ平面Ｆ上の点Ｐ１から微小線分Ｈまでの距離ｄは、
ｄ２＝｛（ｘ１−ｘ２）（ｙｊ−ｙ２）−（ｙ１−ｙ２）（ｘｉ−ｘ２）｝２
／｛（ｘ１−ｘ２）２＋（ｙ１−ｙ２）２｝                ・・（４）
と表される。ただし、ｄ≧０である。
なお、上記の方程式（４）が成り立つのは、点Ｐ１が範囲Ｎｈ（図中の影付部）内に位置するときのみである。例えば点Ｐ１が範囲Ｎ１内に位置するのであれば、微小線分Ｈよりも端点Ａ１の方が点Ｐ１に近くなる。また点Ｐ１が範囲Ｎ２内に位置するのであれば、微小線分Ｈよりも端点Ａ２の方が点Ｐ１に近くなる。範囲Ｎｈは、線分Ｈに対して垂直方向に位置しているにマップ平面Ｆ上の範囲である。
上記の方程式（４）は、ｘｙｄ空間において直行する２つの平面を表す方程式であり、図１０に示すように微小線分Ｈに対する距離形状モデルＱは直行する２つの平面の形状をしている。この距離形状モデルＱの各平面は微小線分Ｈにおいて直交している。この距離形状モデルＱの一方の端部ｑ１は、微小点Ａ１に対する距離形状モデルＱ１を微小点Ａ１を通る微小線分Ｈに垂直な平面で切断したときの母線である。この距離形状モデルＱの他方の端部ｑ２は、微小点Ａ２に対する距離形状モデルＱ２を微小点Ａ２を通る微小線分Ｈに垂直な平面で切断したときの母線である。端部ｑ１、ｑ２は、それぞれ微小点Ａ１、Ａ２で直交する２線分となり、図１０に示すように、端部ｑ１、ｑ２の平行な線分同士の間を結ぶ２平面が距離形状モデルＱとなる。このように、微小線分Ｈの両端が共にマップ平面Ｆ上に位置している場合、図１０に示すように、微小線分Ｈに対して距離形状モデルＱを配置することができる。
【００３６】
図１１に、微小線分Ｈが（位置関係２）の場合の距離形状モデルＱを示す。図１１に示す微小線分Ｈでは、端点Ａ１がマップ平面Ｆ上に位置しており、端点Ａ２がマップ平面Ｆよりも距離ｄ２だけｄ軸正方向に位置している。図中Ａａ２は、端点Ａ２をマップ平面Ｆへ垂直に投影した点Ａａ２である。図中Ｈａは、線分Ｈをマップ平面Ｆへ垂直に投影した線分Ｈａであり、点Ａ１と点Ａａ２を結ぶ線分である。図中Ａｂ２は、点Ａ２を通り線分Ｈに垂直な平面と、線分Ｈａの延長線との交点である。マップ平面Ｆ上の点Ｐ１から微小線分Ｈまでの距離ｄは、
ｄ２＝［｛（ｘ１−ｘ２）（ｙｊ−ｙ２）−（ｙ１−ｙ２）（ｘｉ−ｘ２）｝２
＋｛（ｘｉ−ｘ２）２＋（ｙｊ−ｙ２）２｝ｄ２２］
／｛（ｘ１−ｘ２）２＋（ｙ１−ｙ２）２＋ｄ２２｝    ・・（５）
と表される。ただし、ｄ≧０である。
なお、上記の方程式（５）が成り立つのは、点Ｐ１が範囲Ｎｈ（図中の影付部）内に位置するときのみである。範囲Ｎｈは、微小線分Ｈに対して垂直方向に位置しているマップ平面Ｆ上の範囲である。
上記の方程式（５）は、ｘｙｄ空間において楕円錐面を表しており、図１１に示すように微小線分Ｈに対する距離形状モデルＱは楕円錐面の一部の形状をしている。この距離形状モデルＱは、頂点を点Ａ１とし、線分Ｈａ方向を楕円軸方向とする楕円錐面の一部である。この距離形状モデルＱの一方の端部ｑ１は、微小点Ａ１に対する距離形状モデルＱ１を、微小点Ａ１を通り線分Ｈａに垂直な平面で切断したときの母線である。この距離形状モデルＱの他方の端部ｑ２は、微小点Ａ２に対する距離形状モデルＱ２を、点Ａｂ２を通り線分Ｈａに垂直な平面で切断したときの切り口であり、双曲線の一方の形状となる。なお、この距離形状モデルＱは、微小点Ａ１と双曲線である端部ｑ２との間の母線で張った線織面となっている。
このように、微小線分Ｈの一端のみがマップ平面Ｆ上に位置している場合、図１１に示すように、微小線分Ｈに対して距離形状モデルＱを配置することができる。
【００３７】
図１２に、微小線分Ｈが（位置関係３）の場合の距離形状モデルＱを示す。図１２に示す微小線分Ｈでは、端点Ａ１がマップ平面Ｆよりも距離ｄ１だけｄ軸正方向に位置しており、端点Ａ２がマップ平面Ｆよりも距離ｄ２だけｄ軸正方向に位置している。図中Ａａ１は、端点Ａ１をマップ平面Ｆへ垂直に投影した点Ａａ１である。図中Ａａ２は、端点Ａ２をマップ平面Ｆへ垂直に投影した点Ａａ２である。図中Ｈａは、線分Ｈをマップ平面Ｆへ垂直に投影した線分Ｈａであり、点Ａａ１と点Ａａ２を結ぶ線分である。図中Ａｂ１は、点Ａ１を通り線分Ｈに垂直な平面と、線分Ｈａの延長線との交点である。図中Ａｂ２は、点Ａ２を通り線分Ｈに垂直な平面と、線分Ｈａとの交点である。図中Ｈｂは、線分Ｈの延長線がマップ平面Ｆと交わる交点Ｈｂである。マップ平面Ｆ上の点Ｐ１から微小線分Ｈまでの距離ｄは、
ｄ２＝［｛（ｘ１−ｘ２）（ｙｊ−ｙ２）−（ｙ１−ｙ２）（ｘｉ−ｘ２）｝２
＋｛（ｄ１−ｄ２）（ｘｊ−ｘ２）＋（ｘ１−ｘ２）ｄ２｝２
＋｛（ｄ１−ｄ２）（ｙｊ−ｙ２）＋（ｙ１−ｙ２）ｄ２｝２］
／｛（ｘ１−ｘ２）２＋（ｙ１−ｙ２）２＋（ｄ１−ｄ２）２｝・・（６）
と表される。ただしｄ≧０である。
なお、上記の方程式（６）が成り立つのは、点Ｐ１が範囲Ｎｈ（図中の影付部）内に位置するときのみである。範囲Ｎｈは、微小線分Ｈに対して垂直方向に位置しているマップ平面Ｆ上の範囲である。
上記の方程式（６）は、ｘｙｄ空間において楕円錐面を表しており、図１２に示すように、微小線分Ｈに対する距離形状モデルＱは楕円錐面の一部の形状をしている。この距離形状モデルＱは、頂点を点Ｈｂとし、線分Ｈａ方向を楕円軸方向とする楕円錐面の一部である。この距離形状モデルＱの一方の端部ｑ１は、微小点Ａ１に対する距離形状モデルＱ１を点Ａｂ１を通る線分Ｈａに垂直な平面で切断したときの切り口であって、双曲線の一方の形状となる。この距離形状モデルＱの他方の端部ｑ２は、微小点Ａ２に対する距離形状モデルＱ２を、点Ａｂ２を通り線分Ｈａに垂直な平面で切断したときの切り口であって、双曲線の一方の形状となる。なお、この距離形状モデルＱは、双曲線の一方である端部ｑ２と双曲線の一方である端部ｑ２との間を楕円錐面の母線で張った線織面となっている。
微小線分Ｈの両端が共にマップ平面Ｆ上に位置しておらず、両端が共にマップ平面Ｆに対して同じ側に位置している場合、図１２に示すように、線分Ｈに対して距離形状モデルＱを配置することができる。
【００３８】
図１３を用いて、微小線分Ｈが（位置関係４）の場合について説明する。図１３に示すように、線分Ｈの端点Ａ１、Ａ２がマップ平面Ｆを挟んで位置しているときは、線分Ｈとマップ平面Ｆとの交点Ａ３によって、線分Ｈを線分Ｈ１と線分Ｈ２の２つの線分に分割して取り扱うことができる。それにより、線分Ｈ１と線分Ｈ２は共に前出の（位置関係２）となり、図１１に示した（位置関係２）の場合の距離形状モデルＱを、それぞれの線分Ｈ１、Ｈ２に対して配置すればよい。なお、図中の点Ａ１’は、マップ平面Ｆに対して点Ａと対称に位置する点である。線分Ｈ１’は、マップ平面Ｆに対して線分Ｈ１と対称に位置する線分である。マップ平面Ｆに対する対称性から、マップ平面Ｆよりもｄ軸負方向に位置する線分Ｈ１に対しては、マップ平面Ｆに対して対称に位置する線分Ｈ１’に対して距離形状モデルＱを配置すればよい。
【００３９】
次に、図１４を用いて微小三角平面Ｕに対する距離形状モデルを説明する。図１４には微小三角平面Ｕに対する距離形状モデルＱが示されている。微小三角平面Ｕは、三頂点をＡ１、Ａ２、Ａ３とし、三辺を線分Ｈ１２、Ｈ２３、Ｈ３１とする三角平面である。ここでいう微小三角平面Ｕとは、三頂点Ａ１、Ａ２、Ａ３と三辺Ｈ１２、Ｈ２３、Ｈ３１に囲まれた平面部分のことを意味し、三頂点Ａ１、Ａ２、Ａ３と三辺Ｈ１２、Ｈ２３、Ｈ３１を含んではいない。即ち、図１４に示されている距離形状モデルＱには、三頂点Ａ１、Ａ２、Ａ３と三辺Ｈ１２、Ｈ２３、Ｈ３１に対する距離形状モデルを含んでいない。微小三角平面Ｕの三頂点Ａ１、Ａ２、Ａ３は、数学モデルＢを構成している微小点Ａである。微小三角平面Ｕの三辺Ｈ１２、Ｈ２３、Ｈ３１は、数学モデルＢを構成している微小線分Ｈである。
図１４中のＡｂ１は、微小点Ａ１を通り微小三角平面Ｕに垂直な直線と、マップ平面Ｆとの交点である。図中Ａｂ２は、微小点Ａ２を通り微小三角平面Ｕに垂直な直線と、マップ平面Ｆとの交点である。図中Ａｂ３は、微小点Ａ３を通り微小三角平面Ｕに垂直な直線と、マップ平面Ｆとの交点である。また、図中ｑ１は、点Ａｂ１を通りマップ平面Ｆに垂直な直線が、微小点Ａ１に対する距離形状モデルＱ１と交わる交点である。図中ｑ２は、点Ａｂ２を通りマップ平面Ｆに垂直な直線が、微小点Ａ２に対する距離形状モデルＱ２と交わる交点である。図中ｑ３は、点Ａｂ３を通りマップ平面Ｆに垂直な直線が、微小点Ａ３に対する距離形状モデルＱ３と交わる交点である。図１４に示すように、微小三角平面Ｕに対する距離形状モデルＱは、三頂点を点ｑ１、点ｑ２、点ｑ３とする三角平面となる。
【００４０】
図１４に示すように、微小三角平面Ｕに対する距離形状モデルＱは、範囲Ｎｕに対してのみ配置される。範囲Ｎｕは、点Ａｂ１、Ａｂ２、Ａｂ３を三頂点とする三角形で囲まれた範囲である。マップ平面Ｆにおいて範囲Ｎｕ以外の範囲に位置する点からは、微小三角平面Ｕまでの距離よりも、微小点Ａ１、Ａ２、Ａ３と微小線分Ｈ１２、Ｈ２３、Ｈ３１のいずれかの方が近くなる。
微小三角平面Ｕに対しては、図１４に示すように距離形状モデルＱを配置することができる。
上記のように、数学モデルＢを構成している各微小要素に対して、それぞれに距離形状モデルＱを定めることができる。数学モデルＢがｘｙｚ空間に配置されたときに、マップ平面Ｆを定めると、数学モデルＢを構成している微小要素に対応する距離形状モデルＱをｘｙｚ空間に配置することができる。マップ平面Ｆ上の各位置から微小要素までの距離ｄは、マップ平面Ｆの各位置から距離形状モデルＱまでのｄ軸方向の高さによって表すことができる。
距離形状モデルＱをｘｙｚ空間に配置する処理では、上記で説明した形状モデル（曲面モデル）をそのまま配置してもよいし、距離形状モデルＱを微小要素群の集合で離散近似して、それらの微小要素群をｘｙｚ空間に配置してもよい。距離形状モデルＱを微小要素群で配置する場合、距離形状モデルＱを構成するすべての微小要素群を配置してもよいし、処理に必要な微小要素群のみを配置してもよい。
【００４１】
以下、再び図３に示すフローに沿って、本実施例の作成装置１０の処理動作について説明を続ける。
ステップＳ６〜Ｓ１４では、上記で説明した距離形状モデルＱを利用して、距離値マップ３６と微小要素マップ３８が作成される。ステップＳ６〜Ｓ１４の処理を、図１５を参照して説明する。
ステップＳ６では、距離形状モデル配置プログラム５４の処理により、マップ平面Ｆのｚ座標値を初期値ｚ＝ｚ０に定められる。それにより、距離値マップ３６と微小要素マップ３８は、ｚ座標がｚ＝ｚ０の平面に対して作成される。図１５に示すように、マップ平面Ｆのｚ座標値が定まると、前出のｄ座標軸が定められてｘｙｄ空間が規定される。
ステップＳ８では、デプスバッファ処理プログラム５６が、第１距離値マップ３６ａと、第１微小要素マップ３８ａに初期値を与える。第１距離値マップ３６ａには十分に大きい距離値が初期値として与えられる。第２微小要素マップ３８ａにはダミーの識別子ｉｄが与えられる。
ステップＳ１０では、距離形状モデル配置プログラム５４の処理により、数学モデルＢを構成する微小要素群の一つに対して、距離形状モデルＱがｘｙｄ空間に配置される。図１５に示すように、例えば微小点Ａ１を選択し、点Ａ１に対する距離形状モデルＱ１を配置する。
ステップＳ１２では、デプスバッファ処理プログラム５６が、マップ平面Ｆの各位置（ｘ，ｙ）について、距離形状モデルＱ１のｄ座標値と、第１距離値マップ３６ａに保持されている距離値とを比較する。距離形状モデルＱ１のｄ座標値の方が小さい位置（ｘ，ｙ）では、第１距離値マップ３６ａに保持している距離値が距離形状モデルＱ１のｄ座標値に書き換えられる。例えば、点Ｐ１の位置（ｘｉ，ｙｊ，ｚ０）では、点Ｒ１のｄ座標値に書き換えられる。なお、点Ｒ１は、距離形状モデルＱ１上に位置しており、点Ｐ１からｄ軸正方向に位置する点である。この説明の流れでは、第１距離値マップ３６ａには十分に大きい初期値が保持されているので、第１距離値マップ３６ａに保持されている距離値（初期値）は、すべて距離形状モデルＱ１のｄ座標値に書き換えられる。
デプスバッファ処理プログラム５６により、第１距離値マップ３６ａに保持されている距離値が書き換えられると、その距離値が書き換えられた位置（ｘ，ｙ，ｚ０）について、第１微小要素マップ３８ａに保持されている識別子ｉｄが、微小点Ａ１の識別子ｉｄに書き換えられる。ここでは、第１距離値マップ３６ａに保持されている距離値（初期値）は、すべて距離形状モデルＱ１のｄ座標値に書き換えられるので、第１微小要素マップ３８ａに保持されているダミーの識別子ｉｄは、すべて微小点Ａ１の識別子ｉｄに書き換えられる。
【００４２】
ステップＳ１４では、上記のステップＳ１０、Ｓ１２の処理が、数学モデルＢを構成するすべての微小要素について行われた否かが判断され、すべての微小要素について行われるまでＳ１０〜Ｓ１４が繰り返される。
ステップＳ１０に戻ると、距離形状モデル配置プログラム５４によって、数学モデルＢを構成する微小要素群の他の一つに対して距離形状モデルＱがｘｙｄ空間に配置される。図１５に示すように、例えば微小点Ａ２に対する距離形状モデルＱ２が配置される。距離形状モデルＱ２が配置されると、デプスバッファ処理プログラム５６によって、マップ平面Ｆの各位置について、距離形状モデルＱ２のｄ座標値と、第１距離値マップ３６ａに保持されている値とが比較される。距離形状モデルＱ２のｄ座標値の方が小さいときには、第１距離値マップ３６ａに保持されている値を距離形状モデルＱ２のｄ座標値に書き換えられる。図１５に示すように、例えば点Ｐ１（ｘｉ，ｙｊ，ｚ０）では、距離形状モデルＱ２のｄ座標値ｄ２よりも、距離形状モデルＱ１のｄ座標値ｄ１の方が小さいので、第１距離値マップ３６ａには距離形状モデルＱ１のｄ座標値が保持される。なお、図中の点Ｒ２は、距離形状モデルＱ２上の点であって、点Ｐ１のｄ軸正方向に位置する点である。
図１５に示すように、距離形状モデルＱ１上において、点Ｐ１とｘｙ方向の位置が等しい点Ｒ１のｄ座標値ｄ１は、点Ｐ１の位置（ｘｉ，ｙｊ，ｚ０）から微小点Ａ１までの距離ｄ１と等しい。また、距離形状モデルＱ２上において、点Ｐ１とｘｙ方向の位置が等しい点Ｒ２のｄ座標値ｄ２は、点Ｐ１の位置（ｘｉ，ｙｊ，ｚ０）から微小点Ａ２までの距離ｄ２と等しい。即ち、点Ｐ１とｘｙ方向の等しい位置において、距離形状モデルＱ１、Ｑ２のｄ座標値を比較することにより、点Ｐ１の位置（ｘｉ，ｙｊ，ｚ０）から微小点Ａ１までの距離ｄ１とＡ２までの距離ｄ２を比較することができる。
【００４３】
第１距離値マップ３６ａで保持されている距離値が、距離形状モデルＱ２のｄ座標値ｄ２へと書き換えられると、第１微小要素マップ３８ａでは、その書き換えられた位置に記述されている識別子ｉｄが、微小点Ａ２の識別子ｉｄに書き換えられる。第１距離値マップ３６ａで保持されている距離値が書き換えられなかった位置では、第１微小要素マップ３８ａに記述されている識別子ｉｄがそのまま保持される。
図１６に示すように、例えば点Ｐ１（ｘｉ，ｙｊ，ｚ０）では、第１距離値マップ３６ａにおいて微小点Ａ１までの距離ｄ１が保持されているので、第１微小要素マップ３８ａには微小点Ａ１の識別子ｉｄが保持される。第１微小要素マップ３８では、マップ平面Ｆの範囲Ｎ１（図中の影付部）内の位置に対して微小点Ａ１の識別子ｉｄが記述され、マップ平面Ｆの範囲Ｎ２内の位置に対して微小点Ａ２の識別子ｉｄが記述される。
【００４４】
上記のステップＳ１０、Ｓ１２の処理は、数学モデルＢを構成している微小要素群のすべてに対して行われる。その結果、第１距離値マップ３６ａには、マップ平面Ｆ上の位置毎に、配置されたすべての距離形状モデルＱ群の中で、最もｄ軸方向下方に位置した距離形状モデルＱのｄ座標値が保持される。それにより、第１距離値マップ３６ａには、マップ平面Ｆ上の位置毎に、その位置から最も近くに位置する微小要素までの距離値ｄが記述される。即ち、第１距離値マップ３６ａには、マップ平面Ｆ上の位置毎に、その位置から数学モデルＢまでの最短の距離値が記述されることになる。
また、第１微小要素マップ３８ａには、マップ平面Ｆ上の位置毎に、その位置から最も近くに位置している微小要素の識別子ｉｄが保持される。
すべての微小要素に対して上記の処理が行われると、ステップＳ１４でイエスとなり、ステップＳ１６に進む。
【００４５】
なお、上記のステップＳ１０、Ｓ１２の処理は、三次元グラフィクス表示技術の陰面消去処理と略同様の処理である。三次元グラフィクス表示技術では、立体を描画するとき等に陰面消去処理が用いられる。この陰面消去処理では、画面を構成するピクセルと一対一で対応する要素からなるデプスバッファと呼ばれる配列を用意しておく。デプスバッファの各要素には値を記述することができ、初期値として例えば十分に大きい値を与えておく。このようなデプスバッファを用意した後に、立体を構成している多角形面を順に描画していく。このとき、画面の各ピクセルに描画される多角形面上の位置について、画面からの奥行き距離（いわゆるデプス値）を計算し、デプスバッファの各要素の値と比較する。計算されたデプス値が、デプスバッファ要素の値よりも小さければ、その計算されたデプス値をデプスバッファ要素に保持し、それに対応するピクセルにその多角形面の色を表示する。逆に、計算されたデプス値が、デプスバッファ要素の値よりも大きければ、デプスバッファ要素の値をそのまま保持し、そのピクセルにはその多角形面の色を表示しない。立体を構成しているすべての多角形面について上記の処理を行うと、その立体を画面の方向から見たときの画像が画面に表示されることになる。三次元グラフィクス表示技術の陰面消去処理と本実施例のステップＳ１２の処理を比較すると、デプスバッファと距離値マップ３６が対応しており、画面に表示される画像と微小要素マップ３８が対応している。
【００４６】
次のステップＳ１６では、マップ平面Ｆのｚ座標が初期値か否かが判別される。マップ平面Ｆのｚ座標が初期値であればステップＳ１８に進み、そうでなければステップＳ３２に進む。ここでは、この説明の流れに従い、ステップＳ１８に進んで説明を続ける。
ステップＳ１８では、マップ平面Ｆのｚ座標値が所定幅Δｚだけ変更され（ｚｋ＋１＝ｚｋ＋Δｚ）、マップ平面Ｆがｚ軸方向に所定量Δｚだけ移動する。ここでは、ｚ座標値がｚ０からｚ１＝ｚ０＋Δｚに変更される。そして、ステップＳ８に戻る。
ステップＳ８に戻ると、再びステップＳ８〜Ｓ１４の処理が行われ、新たに第２距離値マップ３６ｂと第２微小要素マップ３８ｂが作成される。以上の処理により、第１、第２距離値マップ３６ａ、３６ｂの２枚の距離値マップ３６と、第１、第２微小要素マップ３８ａ、３８ｂの２枚の微小要素マップ３８が作成され、データ記憶部３０に記憶される。先のステップＳ１８においてマップ平面のｚ座標が初期値から移動されているので、ステップＳ１６ではノーとなり、ステップＳ３２に進む。
【００４７】
ステップＳ３２〜ステップＳ４２では、処理部７０がオフセット面要素選択プログラム５８、初期条件設定プログラム５９、オフセット位置探索プログラム６０を実行し、オフセット面モデル記述データ４０を作成する。オフセット面モデル記述データ４０は、曲面モデル記述データ３２が記述している加工面Ｄに対して、所定の距離だけオフセットしたオフセット面モデルを記述するデータである。オフセット面モデル記述データ４０は、例えば５軸制御のＮＣ工作機械に教示する工具の経路情報として利用することができる。
ステップＳ３２では、オフセット面要素選択プログラム５８が、第１距離値マップ３６ａと第２距離値マップ３６ｂをｘｙｚ空間に配置する。図１７に示すように、第１、第２距離値マップ３６ａ、３６ｂをｘｙｚ空間に配置すると、第１、第２距離値マップ３６ａ、３６ｂに距離値が記述されている位置を頂点として、微小な直方体空間群を区画することができる。例えば、点Ｐ１〜点Ｐ８の８箇所によって、直方体空間Ｇを区画することができる。第１距離値マップ３６ａのｚ座標値がｚ０であり、第２距離値マップ３６ｂのｚ座標値がｚ１であることから、ｚ座標値がｚ０からｚ１の間のｘｙｚ空間に直方体空間Ｇ群が区画される。なお、ここでいう直方体とは、一頂点から伸びる三辺が互いに直行する六面体を意図しており、立方体（すべての面が等しい正方形である六面体）を含んで意図している。
【００４８】
ステップＳ３４では、オフセット面要素選択プログラム５８が、ｚ座標値がｚ０からｚ１の間のｘｙｚ空間に区画した直方体空間Ｇ群から、１つの直方体空間Ｇを選択する。ここでは、例えば点Ｐ１〜点Ｐ８の８箇所によって区画される直方体空間Ｇを選択したとする。
ステップＳ３６では、図１８に示すように、ステップＳ３４で選択した直方体空間Ｇについて、各頂点位置に記述されている距離値を第１、第２距離値マップ３６ａ、３６ｂから抽出し、抽出した各距離値とオフセット距離とをそれぞれ比較する。図１８中のｄ（Ｐ１）という記述は、位置Ｐ１に対して記述されている距離値を示す。オフセット距離は、例えば工具１００の刃先面１００の半径ｒとすることができる。オフセット距離ｒは、利用者等が適宜設定することができる。
直方体空間Ｇの各頂点位置に対して記述されている距離値が、オフセット距離ｒよりも大きければ、その頂点位置は数学モデルＢに対してオフセット面Ｍよりも外側に位置すると判定できる。逆にその距離値がオフセット距離ｒよりも小さければ、その頂点位置は数学モデルＢに対してオフセット面Ｍよりも内側に位置すると判定できる。図１８では、点Ｐ５の位置の距離値のみがオフセット距離ｒよりも小さく、他の点Ｐ１、Ｐ２、Ｐ３、Ｐ４、Ｐ６、Ｐ７、Ｐ８の位置の距離値はオフセット距離ｒよりも大きい場合を例示している。即ち、直方体空間Ｇの各頂点位置では、点Ｐ５の位置のみがオフセット面Ｍの内側に位置しており（内点）、他の頂点位置はオフセット面Ｍの外側に位置している（外点）と判定できる。
【００４９】
数学モデルに対してオフセット面よりも内側と判定された位置と、数学モデルに対してオフセット面よりも外側と判定された位置の間には、数学モデルに対するオフセット面が位置していることになる。また、区画される直方体空間Ｇは十分に小さいので、共に内側あるいは共に外側と判定された２位置の間には、オフセット面が存在しないと判定することができる。従って、例えば図１８に示す場合では、内点と判定された点Ｐ５と外点と判定された点Ｐ１を結ぶ線分（直方体空間Ｇの辺）ｇ５１上に、オフセット点ｍ５１を仮定することができる。また、内点と判定された点Ｐ５と外点と判定された点Ｐ６を結ぶ線分（直方体空間Ｇの辺）ｇ５６上に、オフセット点ｍ５６を仮定することができる。また、内点と判定された点Ｐ５と外点と判定された点Ｐ７を結ぶ線分（直方体空間Ｇの辺）ｇ５７上に、オフセット点ｍ５７を仮定することができる。なおオフセット点とは、加工面Ｄからオフセット距離ｒだけオフセットする点を意味し、即ち、加工面Ｄまでの最短距離がオフセット距離に等しい点である。仮定したオフセット点ｍ５１、ｍ５６、ｍ５７から、直方体空間Ｇ内に数学モデルに対するオフセット面モデルの一部となるオフセット面要素モデルＭｅを配置することができる。
【００５０】
ｘｙｚ空間に直方体空間Ｇを区画し、８箇所の各頂点位置がオフセット面Ｍの内側に位置しているのか外側に位置しているのかを判定すると、その内外判定の組合せに基づいて直方体空間Ｇの内部にオフセット面Ｍの一部となるオフセット面要素モデルＭｅを配置することができる。図１９に、直方体空間Ｇの各頂点位置の内外判定の組合せと、オフセット面要素モデルＭｅの配置パターンの関係を示す。図１９に示すように、オフセット面要素モデルＭｅの配置パターンは１５通りとなる。図１９に示す直方体空間Ｇ群において、・（黒丸）が付された頂点位置と・（黒丸）が付されていない頂点位置は、直方体空間Ｇ毎に一方が内点を意味しており、他方が外点を意味している。例えば図１９（ａ）の立方格子Ｇは、すべての頂点位置が数学モデルＢに対してオフセット面Ｍの内側に位置している場合と、すべての頂点位置が数学モデルＢに対してオフセット面Ｍの外側に位置している場合を併せて意味している。オフセット面要素選択プログラム５８は、直方体空間Ｇを選択し、その各頂点位置について上述の内外判定を行い、それに対応するオフセット面要素モデルＭｅを配置する。
【００５１】
上述の処理を、ｘｙｚ空間に区画されたすべての直方体空間Ｇに対して行うと、オフセット面要素モデルＭｅをすべての直方体空間Ｇに配置することができ、数学モデルＢからオフセット距離ｒだけオフセットするオフセット面モデルを作成することができる。しかしながら、加工面Ｄを微小要素群の集合で離散近似している数学モデルＢは、あくまで近似であり、真の加工面Ｄとは誤差を含んでいる。従って、数学モデルＢを用いて作成したオフセット面モデルは、あくまで近似的なものであり、加工面Ｄから厳密にオフセット距離ｒだけオフセットするオフセット面Ｍとは誤差を生じている。このステップＳ３６で仮定されたオフセット点ｍ５１、ｍ５６、ｍ５７は、数学モデルＢからオフセット距離ｒだけオフセットする点であり、加工面Ｄから厳密にオフセット距離だけオフセットするものではない。そのことから、仮定されているオフセット点ｍ５１、ｍ５６、ｍ５７は、近似的に定められたオフセット点といえる。
この誤差を低減するためには、加工面Ｄをより多数の微小要素群で細かに離散近似すればよいが、加工面Ｄをいかに細かに離散近似しても、加工面Ｄと数学モデルＢの誤差をなくすことはできない。
本実施例の作成装置１０では、以下に説明するステップＳ３８の処理によって、ステップＳ３６で仮定した近似オフセット点（例えばｍ５１、ｍ５６、ｍ５７）の位置を、加工面Ｄから厳密にオフセット距離ｒだけオフセットする位置に決定する。それにより、オフセット点を頂点とするオフセット面要素モデルＭｅは、加工面Ｄに対してより正確にオフセット距離ｒだけオフセットすることとなる。
【００５２】
ステップＳ３８では、初期条件設定プログラム５９とオフセット位置探索プログラム６０によって、オフセット点の位置が決定される。初期条件設定プログラム５９は、オフセット点の位置を計算するための初期条件を設定するプログラムである。オフセット位置探索プログラム６０は、初期条件設定プログラム５９が設定した初期条件を用いて、オフセット点が加工面Ｄから厳密にオフセット距離ｒだけオフセットするときの位置を解析計算するプログラムである。
図２０は、図３のステップＳ３８における処理の流れを示すフローチャートである。図２０に示すフローに沿って、図３のステップＳ３８における初期条件設定プログラム５９やオフセット位置探索プログラム６０による処理を説明する。
【００５３】
図２０のステップＳ１０２では、初期条件設定プログラム５９によって、このフローでオフセット点の位置を計算する直方体空間Ｇの一辺が選定される。ここでは先のステップＳ３６で、図１８に示したように直方体空間Ｇの各頂点について内外判定がなされ、直方体空間Ｇの辺ｇ５１、ｇ５６、ｇ５７上に近似オフセット点ｍ５１、ｍ５６、ｍ５７が仮定されているものとする。この場合、このステップＳ１０２では、辺ｇ５１、ｇ５６、ｇ５７のいずれかが選択される。以下、例えば辺ｇ５１が選択されたものとして、辺ｇ５１上にオフセット点ｍ５１の位置が計算される場合を説明する。
図２１は、オフセット点ｍ５１の位置が計算されて決定される様子を示す。辺ｇ５１の一方の端点Ｐ１は座標（ｘｉ，ｙｊ，ｚ０）に位置しており、他方の端点Ｐ５は座標（ｘｉ，ｙｊ，ｚ１）に位置している。辺ｇ５１上に位置するオフセット点ｍ５１の座標は、（ｘｉ，ｙｊ，ｚｍ）とおくことができる。
ステップＳ１０４では、ステップＳ１０２で選択された辺の両端点の距離値が、距離値マップ３６から抽出される。この説明の流れでは、辺ｇ５１の両端点Ｐ１，Ｐ５の距離値ｄが抽出される。ここでは、点Ｐ１の距離値がｄ１であって、点Ｐ５の距離値がｄ５であるとする。
ステップＳ１０６では、点Ｐ１の距離値ｄ１とオフセット距離ｒの差分と、点Ｐ２の距離値ｄ２とオフセット距離ｒの差分とが比較され、その差分が小さい方の点が選択される。即ち、よりオフセット面Ｍに近い方の端点が選択される。初期条件設定プログラム５９は、選択した端点をオフセット点ｍ５１の初期位置として設定する。ここでは、点Ｐ１が選択され、オフセット点ｍ５１の初期位置として設定されたものとする。
【００５４】
ステップＳ１０８では、初期条件設定プログラム５９によって、選択された方の点（ここでは点Ｐ１）に対応付けて記述されている微小要素の識別子が、微小要素マップ３８から抽出される。それにより、点Ｐ１に対して最寄に位置する微小要素が特定される。以下、微小要素マップ３８において、点Ｐ１に対して最寄に位置する微小要素をｅ（Ｐ１）と記述する。図２１は、微小要素ｅ（Ｐ１）が微小三角平面Ｕである場合を例示している。点Ｐ１に対応する微小要素ｅ（Ｐ１）は、微小線分Ｈである場合や微小点Ａである場合もある。
ステップＳ１１０では、識別子対応データ３５から、特定した微小要素ｅ（Ｐ１）の識別子ｉｄに対応する基本形状の識別子ＩＤを抽出する。先に説明したように、識別子対応データ３５では、微小要素の識別子ｉｄと、その微小要素が近似している基本形状の識別子ＩＤが対応付けて記述されている。それにより、特定した微小要素ｅ（Ｐ１）が、加工面Ｄを記述している基本形状群のなかで、どの基本形状を離散近似しているのかが特定される。以下、微小要素をｅ（Ｐ１）に対応する基本形状をＥ（Ｐ１）と記述する。初期条件設定プログラム５９は、特定した基本形状Ｅ（Ｐ１）の表現式を曲面モデル記述データ３２から抽出する。図２１は、基本形状Ｅ（Ｐ１）が面Ｓである場合を示している。微小要素ｅ（Ｐ１）に対応する基本形状Ｅ（Ｐ１）は、稜線Ｃである場合や頂点Ｖである場合もある。
ステップＳ１１２では、図２１に示すように、ステップＳ１１０で特定した基本形状Ｅ（Ｐ１）上に、最短距離位置Ｌの初期位置Ｌ０が設定される。最短距離位置Ｌとは、加工面Ｄ上において、オフセット点ｍ５１に対して最短の距離にある位置である。この最短距離位置Ｌとオフセット点ｍ５１との距離がオフセット距離ｒに等しいとき、オフセット点ｍ５１は加工面Ｄからオフセット距離ｒだけオフセットすることとなる。初期条件設定プログラム５９は、微小要素ｅ（Ｐ１）の位置に基づいて、基本形状Ｅ（Ｐ１）上に最短距離位置Ｌの初期位置Ｌ０を設定する。初期条件設定プログラム５９は、設定した初期位置Ｌ０の表現パラメータ（ｕ０，ｖ０）を特定する。
以上のステップＳ１０２〜Ｓ１１２の処理によって、オフセット点ｍ５１の位置を解析計算する際の初期条件が設定される。例えばこの説明の流れでは、オフセット点ｍ５１の位置が辺ｇ５１上に限定され、その初期位置が点Ｐ１の位置に設定される。また、最短距離位置Ｌが、基本形状Ｅ（Ｐ１）上に位置すると限定され、最短距離位置Ｌの初期位置Ｌ０が、微小要素ｅ（Ｐ１）に基づいて基本形状Ｅ（Ｐ１）上に設定される。
【００５５】
微小要素ｅ（Ｐ１）は、点Ｐ１に対して最寄に位置する微小要素であり、点Ｐ１からほぼオフセット距離ｒだけ離れて位置している。従って、微小要素ｅ（Ｐ１）が近似している基本形状Ｅ（Ｐ１）は、点Ｐ１に対して最寄に位置する基本形状であり、点Ｐ１からの最短距離がほぼオフセット距離ｒに等しい。
そのことから、基本形状Ｅ（Ｐ１）は、点Ｐ１の近傍に位置するオフセット点ｍ５１に対しても、最寄に位置する基本形状であると推定できる。従って、オフセット点ｍ５１に対する加工面Ｄ上の最短距離位置Ｌは、基本形状Ｅ（Ｐ１）上に位置していると推定できる。さらに、その最短距離位置Ｌは、微小要素ｅ（Ｐ１）の近傍に位置しているとも推定できる。このことから、初期条件設定プログラム５９は、オフセット点ｍ５１の初期位置や、最短距離位置Ｌの初期位置Ｌ０を、真のオフセット点ｍ５１の位置や最短距離位置Ｌに対して、精度よく設定することができる。
【００５６】
次のステップＳ１１４では、オフセット位置探索プログラム６０による処理が行われる。オフセット位置探索プログラム６０は、初期条件設定プログラム５９が設定した初期条件を用いて、オフセット点の位置を解析計算して求める。
オフセット点の位置は、加工面Ｄ上の最短距離位置Ｌからオフセット点ｍ５１までの距離が、オフセット距離ｒに等しい状態を記述する方程式を、ニュートン・ラプソン法等を用いて解くことによって算出できる。図２１に示すように、初期条件設定プログラム５９によって設定されたオフセット点ｍ５１の初期位置（点Ｐ１）や、最短距離位置Ｌの初期位置Ｌ０は、正しい解に対して十分に精度よく設定されているので、正しいオフセット点ｍ５１の位置や最短距離位置Ｌが一意に算出される。
図２２に、加工面Ｄ上の最短距離位置Ｌからオフセット点ｍ５１までの距離がオフセット距離ｒである状態と、その状態を記述する解析方程式の一例を示す。図２２は、この説明の流れに従い、最短距離位置Ｌが基本形状の面Ｓ上に推定された場合の解析方程式を示している。
図２２中の点ｍａは、辺ｇ５１の延長線とｘｙ平面の交点ｍａ（ｘｉ，ｙｊ，０）である。図中ｚｍは、オフセット点ｍ５１のｚ座標値である。面Ｓは表現式Ｓ（ｕ，ｖ）で記述されている。図中ベクトルＳｕは、面Ｓの最短距離位置Ｌにおけるｕ方向の接線方向ベクトルである。また、図中ベクトルＳｖは、面Ｓの最短距離位置Ｌにおけるｖ方向の接線方向ベクトルである。図中のベクトルｋは、ｚ軸正方向の単位ベクトルである。
オフセット位置探索プログラム６０は、初期条件設定プログラム５９によって設定された初期条件を用い、図２２に示す解析方程式をニュートン・ラプソン法によって解くことにより、オフセット点ｍ５１の位置を算出する。算出されたオフセット点ｍ５１の位置は、加工面Ｄからオフセット距離ｒだけオフセットしている。
【００５７】
図２２に示す解析方程式は、オフセット点ｍ５１に対する最短距離位置Ｌが基本形状の面Ｓ上に推定された場合の解析方程式を示している。初期条件設定プログラム５９が最短距離位置Ｌを基本形状の稜線Ｃ上に推定した場合、オフセット位置探索プログラム６０は、図２３に示す解析方程式を用いることができる。
図２３は、稜線Ｃ上に位置する最短距離位置Ｌからオフセット点ｍ５１までの距離がオフセット距離ｒである状態と、その状態を記述する解析方程式の一例を示している。稜線Ｃは、表現式Ｃ（ｔ）で記述されている。図中のベクトルＣｔは、稜線Ｃの最短距離位置Ｌにおける接線ベクトルである。図中のベクトルｋは、ｚ軸正方向の単位ベクトルである。図２３に示す解析方程式を、初期条件設定プログラムによって設定された初期条件を用い、例えばニュートン・ラプソン法によって解くことにより、オフセット点ｍ５１の位置と最短距離位置Ｌを一意に求めることができる。
【００５８】
また、初期条件設定プログラム５９が最短距離位置Ｌを基本形状の頂点Ｖに推定した場合、オフセット位置探索プログラム６０は、図２４に示す解析方程式を用いることができる。図２４に示す解析方程式を用いることができる。図２４は、頂点Ｖからオフセット点ｍ５１までの距離がオフセット距離ｒである状態と、その状態を記述する解析方程式の一例を示している。頂点Ｖは座標（ｘｖ，ｙｖ，ｚｖ）に位置しており、最短距離位置Ｌの位置は（ｘｖ，ｙｖ，ｚｖ）に定まる。図中Ｖｐ（ｘｖ，ｙｖ，０）は、頂点Ｖからｘｙ平面に下ろした垂線の足の位置である。最短距離位置Ｌが頂点Ｖ上に推定された場合、図２４に示す解析方程式は二次の代数方程式に帰着する。得られた２つの解から初期条件に近い値を選択することにより、オフセット点ｍ５１上の位置を一意に求めることができる。なお、図中の「Ｎｏｎｅ」は「解なし」を意味する。
【００５９】
上述したオフセット点の位置を算出する処理（ステップＳ１０２〜ステップＳ１１４）は、図３のステップＳ３６で仮定されたオフセット点（ここではオフセット点ｍ５１、ｍ５６、ｍ５７）のすべてについて行われる（ステップＳ１１６）。図２０のステップＳ１１６でイエスとなると、図３のステップＳ３８の処理は終了する。
このステップＳ３８の処理（図２０の処理フロー）により、ステップＳ３６で仮定されたオフセット点は、加工面Ｄからオフセット距離ｒだけオフセットする位置に定められる。それにより、ステップＳ３６で配置されたオフセット面要素モデルＭｅは、加工面Ｄに対してより正確にオフセット距離ｒだけオフセットする位置に定められる。
次のステップＳ４０では、決定されたオフセット面要素モデルＭｅが、オフセット面Ｍの三次元モデルの一部としてデータ記憶部３０に記憶され、オフセット面記述データ４０の一部が作成される。
【００６０】
次のステップＳ４２では、上記のステップＳ３４〜Ｓ４０の処理が、区画されたすべての直方体空間Ｇについて行われたのか否かが判断され、すべての直方体空間Ｇに対してステップＳ３４〜Ｓ４０の処理が繰り返される。
図２５は、区画されたすべての直方体空間Ｇについて、オフセット面要素モデルＭｅが配置され、その位置が決定されたのちの様子を模式的に示している。例えば図２５の直方体空間Ｇ１、Ｇ４には、図１９（ａ）に示すオフセット面要素モデルＭｅの配置パターンが適用されている。また、図２の直方体空間Ｇ２、Ｇ３には、図１９（ｃ）に示すオフセット面要素モデルＭｅの配置パターンが適用されている。図２５に示すように、ステップＳ３４〜Ｓ４０の処理が、区画されたすべての直方体空間Ｇについて行われることにより、ｚ座標値がｚ０からｚ１の間のｘｙｚ空間にオフセット面Ｍの三次元モデルが作成される。
【００６１】
次のステップＳ４４では、設定されているマップ平面のｚ座標値が最終値か否かが判断される。このステップＳ４４でイエスとなると、このフローは終了する。このステップＳ４４でノーであれば、ステップＳ１８へ移動する。
ステップＳ１８では、マップ平面Ｆのｚ座標値が所定幅だけ変更され、マップ平面Ｆがｚ座標方向に所定量だけ移動する。ここでは、ｚ座標値がｚ１からｚ２へと変更される。次に、ステップＳ８に戻る。
ステップＳ８に戻ると、データ記憶部３０に記憶されている第１、第２距離値マップ３６ａ、３６ｂの中で先に作成された方のマップのみにおいて、保持している距離値が十分に大きい初期値へと書き換えられる。また同様に、記憶部３０に記憶されている第１、第２微小要素マップ３８ａ、３８ｂの中で先に作成された方のマップのみにおいて、保持している微小要素の識別子がダミーの識別子へと書き換えられる。この説明の流れでは、第１距離値マップ３６ａと第１微小要素マップ３８ａが、それぞれ書き換えられる。一方、第２距離値マップ３６ｂと第２微小要素マップ３８ｂは、そのままデータ記憶部３０に保持される。
ステップＳ１０〜Ｓ１４の処理によって、新たな第１距離値マップ３６ａと第１微小要素マップ３８ａが作成されて記憶部３０に記憶される。
新たな第１距離値マップ３６ａと第１微小要素マップ３８ａが作成されると、ステップＳ１６を経てステップＳ３２へと移動し、ステップＳ３２からステップ４２の処理によって、再び第１、第２距離値マップ３６ａ、３６ｂを用いてオフセット面Ｍの三次元モデルの一部が作成される。ここでは、第１距離値マップ３６ａのｚ座標値がｚ２であり、第２距離値マップ３６ｂのｚ座標値がｚ１であるので、ｚ座標値がｚ１からｚ２の間のｘｙｚ空間にオフセット面Ｍの三次元モデルが作成される。
【００６２】
以降、上記と同様に、ｚ座標値を変更して距離値マップ３６と微小要素マップ３８を作成し、第１、第２距離値マップ３６ａ、３８ａを用いてオフセット面Ｍのモデルの一部を作成する処理を繰り返す。それにより、図２６に示すように、加工面Ｄに対するオフセット面Ｍの三次元モデルがｚ軸方向に沿って順次作成されていく。ｚ座標値が最終値（ステップＳ４２でイエス）となるとフローは終了し、加工面Ｄに対するオフセット面Ｍの三次元モデルの作成が完了する。
【００６３】
以上、本発明の実施形態について詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。本明細書または図面に例示した技術は複数の目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【００６４】
【図１】ｘｙ方向の位置に対して複数のｚ座標値で記述されるオフセット面を示す図
【図２】実施例の三次元モデルの作成装置の構成を示す図
【図３】実施例の三次元モデルの作成装置の処理の流れを示すフローチャート
【図４】曲面モデル記述データが記述している加工面を示す図
【図５】加工面を微小要素の集合で離散近似した数学モデルを示す図
【図６】マップ平面上の位置から微小要素までの距離ｄを示す図
【図７】マップ平面上に位置する微小点に対する距離形状モデルを示す図
【図８】マップ平面の上方に位置する微小点に対する距離形状モデルを示す図
【図９】マップ平面の下方に位置する微小点に対する距離形状モデルを示す図
【図１０】マップ平面上に両端が位置する微小線分に対する距離形状モデルを示す図
【図１１】マップ平面上に一端のみが位置する微小線分に対する距離形状モデルを示す図
【図１２】マップ平面の上方に両端が位置する微小線分に対する距離形状モデルを示す図
【図１３】マップ平面を挟んで両端が位置する微小線分に対する距離形状モデルを示す図
【図１４】微小三角平面に対する距離形状モデルを示す図
【図１５】距離値マップを説明する図
【図１６】微小要素マップを説明する図
【図１７】ｘｙｚ空間に区画される直方体空間を示す図
【図１８】オフセット面要素モデルを配置する様子を説明する図
【図１９】オフセット面要素モデルの配置パターンを示す図
【図２０】オフセット点の位置を決定する様子を説明する図
【図２１】オフセット点の位置を決定する処理の流れを示すフローチャート
【図２２】解析方程式の一例を示す図（最短距離位置が面Ｓ上の場合）
【図２３】解析方程式の一例を示す図（最短距離位置が稜線Ｃ上の場合）
【図２４】解析方程式の一例を示す図（最短距離位置が頂点Ｖ上の場合）
【図２５】ｘｙｚ空間の一部にオフセット面の三次元モデルが作成された様子を示す図
【図２６】ｘｙｚ空間にオフセット面の三次元モデルが作成される様子を示す図
【図２７】ｘｙ方向の位置に対して一つのｚ座標値で記述されるオフセット面を示す図
【図２８】オフセット面のｚ座標値を決定する様子を示す図
【符号の説明】
【００６５】
１０・・三次元モデルの作成装置
３０・・データ記憶部
３２・・曲面モデル記述データ
３４・・数学モデル記述データ
３６・・距離値マップ
３８・・微小要素マップ
５０・・プログラム記憶部
５２・・数学モデル作成プログラム
５４・・距離形状モデル配置プログラム
５６・・デプスバッファ処理プログラム
５８・・オフセット面要素選択プログラム
６０・・オフセット位置探索プログラム
７０・・処理部
Ｄ・・加工面
Ｂ・・数学モデル
Ｖ・・曲面モデルを構成する頂点
Ｃ・・曲面モデルを構成する線分
Ｓ・・曲面モデルを構成する面
Ａ・・数学モデルを構成する微小点
Ｈ・・数学モデルを構成する微小線分
Ｕ・・数学モデルを構成する微小三角平面
Ｌ・・最短距離位置
【図１】
2005301545.tif 000003
【図２】
2005301545.tif 000004
【図３】
2005301545.tif 000005
【図４】
2005301545.tif 000006
【図５】
2005301545.tif 000007
【図６】
2005301545.tif 000008
【図７】
2005301545.tif 000009
【図８】
2005301545.tif 000010
【図９】
2005301545.tif 000011
【図１０】
2005301545.tif 000012
【図１１】
2005301545.tif 000013
【図１２】
2005301545.tif 000014
【図１３】
2005301545.tif 000015
【図１４】
2005301545.tif 000016
【図１５】
2005301545.tif 000017
【図１６】
2005301545.tif 000018
【図１７】
2005301545.tif 000019
【図１８】
2005301545.tif 000020
【図１９】
2005301545.tif 000021
【図２０】
2005301545.tif 000022
【図２１】
2005301545.tif 000023
【図２２】
2005301545.tif 000024
【図２３】
2005301545.tif 000025
【図２４】
2005301545.tif 000026
【図２５】
2005301545.tif 000027
【図２６】
2005301545.tif 000028
【図２７】
2005301545.tif 000029
【図２８】
2005301545.tif 000030