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