(57)【特許請求の範囲】
【請求項１】
数値制御工作機械に取り付けられた工具を、互いに直交するｘ軸、ｙ軸、ｚ軸で定められるｘｙｚ座標系において、ｘｙ平面の経路に沿って移動させてｚ軸方向に工作物を加工する際に、工具の逆形状分膨らませた工具経路面を生成するための工具経路面計算方法であって、
処理部は、加工対象物の多面体モデル情報と工具形状情報とを入力し、記憶部に記憶するステップと、
処理部は、多面体モデルの各要素に対して、逆工具の掃引形状を構成する各形状要素を配置するステップと、
処理部は、配置された各形状要素に対して、ユニークなＩＤ番号、ユニークな色情報、形状要素の幾何情報を記憶部に記憶するステップと、
処理部は、入力された逆工具の掃引形状を構成する形状要素に基づき、ｘｙ平面上の直交格子を通過するｚ軸に平行な直線と、該掃引形状の最上面との交点のｚ座標値である格子状の点群の座標データを出力するグラフィックスハードウェアの隠面消去処理を用いて、配置された形状要素の位置をｘ軸方向にｘｙ平面上の直交格子の分割より細かく分割した所定距離だけずらし、そこからｚ軸に平行にのびる半直線と掃引形状の最上面の交点を計算する処理を繰り返し、最上面の断面線をｘ軸方向に細かく分割した座標データを含む点列データを求め、それを記憶部に記憶するステップと、
処理部は、グラフィックスハードウェアの隠面消去処理を用いて、配置された形状要素の位置をｙ軸方向にｘｙ平面上の直交格子の分割より細かく分割した所定距離だけずらし、そこからｚ軸に平行にのびる半直線と掃引形状の最上面の交点を計算する処理を繰り返し、最上面の断面線をｙ軸方向に細かく分割した座標データを含む点列データを求め、それを記憶部に記憶するステップと、
処理部は、ｘｙ平面、ｙｚ平面、ｚｘ平面上の３つの直交格子に基づいて空間を立方体の集積へ分割するステップと、
処理部は、記憶部に記憶された点列データを参照し、ｘｙ平面上の格子線のうち、それぞれ、切断面のｘｙ平面への投影に対応するｘ軸及びｙ軸に平行な直線上に直交格子より稠密な点を等間隔に配置し、配置された点からｚ軸に平行にのびる半直線群と、逆工具の掃引形状の最上面の交点を計算し、得られた交点を順に接続していくことにより、逆工具の掃引形状の最上面のｚｘ平面に平行な面におけるｘ軸方向の断面線及びｙｚ平面に平行な面におけるｙ軸方向の断面線をそれぞれ計算し、分割された各立方体のｘ軸に平行な辺とｘ軸方向の断面線との交点及びｙ軸に平行な辺とｙ軸方向の断面線とを求めることで、各立方体の各辺と掃引形状の最上面の交点を算出するステップと、
処理部は、算出された交点の情報に基づいて、各立方体の頂点が工具経路面の上下のどちらに存在するかを求めることで、マーチングキューブ法により、立方体の８個の頂点を、工具経路面の上側に存在する頂点と、下側に存在する頂点とに分類することで得られたパターンにしたがって、立方体内部に工具経路面を表す三角形を配置するステップと、
処理部は、各立方体内部に配置された三角形群を、掃引形状の最上面として出力部に出力又は記憶部に記憶するステップと、
を含む工具経路面計算方法。
【請求項２】
前記各形状要素を配置するステップは、
処理部は、工具形状情報がボールエンドミルの場合には、多角形モデルの要素としての、頂点、辺、多角形のそれぞれに対応して、形状要素として球面、円筒形、厚板形状を配置することを特徴とする請求項１に記載の工具経路面計算方法。
【請求項３】
前記各形状要素を配置するステップは、
処理部は、工具形状情報がフラットエンドミルの場合には、多角形モデルの要素としての、辺、多角形のそれぞれに対応して、形状要素として斜円筒形と厚板形状を配置することを特徴とする請求項１に記載の工具経路面計算方法。
【請求項４】
前記グラフィックスハードウェアの隠面消去処理は、
処理部は、逆工具の掃引形状を構成する形状要素から、形状要素の下向きの部分や他の形状要素の内部に包含されている部分等の掃引形状の最上面に関与しない部分を予め除去するステップと、
処理部は、除去されずに残った形状を多面体化するステップと、
処理部は、配置された各形状要素に対する、ユニークなＩＤ番号、ユニークな色情報、形状要素の幾何情報を記憶部から読み取り、各形状要素を構成する多角形に対する色情報をグラフィックスハードウェアへ渡すステップと、
グラフィックスハードウェアは、処理部から受けた色情報に基づき、デプスバッファによる隠面消去処理を用いて、各点における掃引形状の最上面の高さを表すデプス値と、各点における色情報を得て、得られたデプス値と色情報を処理部へ渡すステップと、
処理部は、グラフィックハードウェアから受けた各点の座標データとデプス値に基づいて、掃引形状の最上面を示す工具経路面の点列データを生成するステップと、
処理部は、色情報の基づき、記憶部を参照して、最上面の各点に対応する形状要素のＩＤ及び幾何情報を得て、各点の座標データと幾何情報に従い、各点における法線方向を求めるステップと、
処理部は、工具経路面の点群の座標データとその法線又は接線情報を出力するステップとを含む請求項１に記載の工具経路面計算方法。
【請求項５】
処理部は、得られた工具経路面に基づき、工具経路を求めるステップをさらに備えた請求項１又は４に記載の工具経路面計算方法。
【請求項６】
処理部は、工具経路面及び／又は工具経路を表示するステップをさらに備えた請求項１又は４に記載の工具経路面計算方法。
【請求項７】
数値制御工作機械に取り付けられた工具を、互いに直交するｘ軸、ｙ軸、ｚ軸で求められるｘｙｚ座標系において、ｘｙ平面の経路に沿って移動させてｚ軸方向に工作物を加工する際に、工具の逆形状分膨らませた工具経路面を生成するための工具経路面計算プログラムであって、
処理部は、加工対象物の多面体モデル情報と工具形状情報とを入力し、記憶部に記憶するステップと、
処理部は、多面体モデルの各要素に対して、逆工具の掃引形状を構成する各形状要素を配置するステップと、
処理部は、配置された各形状要素に対して、ユニークなＩＤ番号、ユニークな色情報、形状要素の幾何情報を記憶部に記憶するステップと、
処理部は、入力された逆工具の掃引形状を構成する形状要素に基づき、ｘｙ平面上の直交格子を通過するｚ軸に平行な直線と、該掃引形状の最上面との交点のｚ座標値である格子状の点群の座標データを出力するグラフィックスハードウェアの隠面消去処理を用いて、配置された形状要素の位置をｘ軸方向にｘｙ平面上の直交格子の分割より細かく分割した所定距離だけずらし、そこからｚ軸に平行にのびる半直線と掃引形状の最上面の交点を計算する処理を繰り返し、最上面の断面線をｘ軸方向に細かく分割した座標データを含む点列データを求め、それを記憶部に記憶するステップと、
処理部は、グラフィックスハードウェアの隠面消去処理を用いて、配置された形状要素の位置をｙ軸方向にｘｙ平面上の直交格子の分割より細かく分割した所定距離だけずらし、そこからｚ軸に平行にのびる半直線と掃引形状の最上面の交点を計算する処理を繰り返し、最上面の断面線をｙ軸方向に細かく分割した座標データを含む点列データを求め、それを記憶部に記憶するステップと、
処理部は、ｘｙ平面、ｙｚ平面、ｚｘ平面上の３つの直交格子に基づいて空間を立方体の集積へ分割するステップと、
処理部は、記憶部に記憶された点列データを参照し、ｘｙ平面上の格子線のうち、それぞれ、切断面のｘｙ平面への投影に対応するｘ軸及びｙ軸に平行な直線上に直交格子より稠密な点を等間隔に配置し、配置された点からｚ軸に平行にのびる半直線群と、逆工具の掃引形状の最上面の交点を計算し、得られた交点を順に接続していくことにより、逆工具の掃引形状の最上面のｚｘ平面に平行な面におけるｘ軸方向の断面線及びｙｚ平面に平行な面におけるｙ軸方向の断面線をそれぞれ計算し、分割された各立方体のｘ軸に平行な辺とｘ軸方向の断面線との交点及びｙ軸に平行な辺とｙ軸方向の断面線とを求めることで、各立方体の各辺と掃引形状の最上面の交点を算出するステップと、
処理部は、算出された交点の情報に基づいて、各立方体の頂点が工具経路面の上下のどちらに存在するかを求めることで、マーチングキューブ法により、立方体の８個の頂点を、工具経路面の上側に存在する頂点と、下側に存在する頂点とに分類することで得られたパターンにしたがって、立方体内部に工具経路面を表す三角形を配置するステップと、
処理部は、各立方体内部に配置された三角形群を、掃引形状の最上面として出力部に出力又は記憶部に記憶するステップと、
をコンピュータに実行させるための工具経路面計算プログラム。
【請求項８】
前記グラフィックスハードウェアの隠面消去処理は、
処理部は、逆工具の掃引形状を構成する形状要素から、形状要素の下向きの部分や他の形状要素の内部に包含されている部分等の掃引形状の最上面に関与しない部分を予め除去するステップと、
処理部は、除去されずに残った形状を多面体化するステップと、
処理部は、配置された各形状要素に対する、ユニークなＩＤ番号、ユニークな色情報、形状要素の幾何情報を記憶部から読み取り、各形状要素を構成する多角形に対する色情報をグラフィックスハードウェアへ渡すステップと、
グラフィックスハードウェアは、処理部から受けた色情報に基づき、デプスバッファによる隠面消去処理を用いて、各点における掃引形状の最上面の高さを表すデプス値と、各点における色情報を得て、得られたデプス値と色情報を処理部へ渡すステップと、
処理部は、グラフィックハードウェアから受けた各点の座標データとデプス値に基づいて、掃引形状の最上面を示す工具経路面の点列データを生成するステップと、
処理部は、色情報の基づき、記憶部を参照して、最上面の各点に対応する形状要素のＩＤ及び幾何情報を得て、各点の座標データと幾何情報に従い、各点における法線方向を求めるステップと、
処理部は、工具経路面の点群の座標データとその法線又は接線情報を出力するステップ
をコンピュータに実行させるための請求項７に記載の工具経路面計算プログラム。
【請求項９】
数値制御工作機械に取り付けられた工具を、互いに直交するｘ軸、ｙ軸、ｚ軸で求められるｘｙｚ座標系において、ｘｙ平面の経路に沿って移動させてｚ軸方向に工作物を加工する際に、工具の逆形状分膨らませた工具経路面を生成するための工具経路面計算プログラムを記録したコンピュータ読み取り可能な記録媒体であって、
処理部は、加工対象物の多面体モデル情報と工具形状情報とを入力し、記憶部に記憶するステップと、
処理部は、多面体モデルの各要素に対して、逆工具の掃引形状を構成する各形状要素を配置するステップと、
処理部は、配置された各形状要素に対して、ユニークなＩＤ番号、ユニークな色情報、形状要素の幾何情報を記憶部に記憶するステップと、
処理部は、入力された逆工具の掃引形状を構成する形状要素に基づき、ｘｙ平面上の直交格子を通過するｚ軸に平行な直線と、該掃引形状の最上面との交点のｚ座標値である格子状の点群の座標データを出力するグラフィックスハードウェアの隠面消去処理を用いて、配置された形状要素の位置をｘ軸方向にｘｙ平面上の直交格子の分割より細かく分割した所定距離だけずらし、そこからｚ軸に平行にのびる半直線と掃引形状の最上面の交点を計算する処理を繰り返し、最上面の断面線をｘ軸方向に細かく分割した座標データを含む点列データを求め、それを記憶部に記憶するステップと、
処理部は、グラフィックスハードウェアの隠面消去処理を用いて、配置された形状要素の位置をｙ軸方向にｘｙ平面上の直交格子の分割より細かく分割した所定距離だけずらし、そこからｚ軸に平行にのびる半直線と掃引形状の最上面の交点を計算する処理を繰り返し、最上面の断面線をｙ軸方向に細かく分割した座標データを含む点列データを求め、それを記憶部に記憶するステップと、
処理部は、ｘｙ平面、ｙｚ平面、ｚｘ平面上の３つの直交格子に基づいて空間を立方体の集積へ分割するステップと、
処理部は、記憶部に記憶された点列データを参照し、ｘｙ平面上の格子線のうち、それぞれ、切断面のｘｙ平面への投影に対応するｘ軸及びｙ軸に平行な直線上に直交格子より稠密な点を等間隔に配置し、配置された点からｚ軸に平行にのびる半直線群と、逆工具の掃引形状の最上面の交点を計算し、得られた交点を順に接続していくことにより、逆工具の掃引形状の最上面のｚｘ平面に平行な面におけるｘ軸方向の断面線及びｙｚ平面に平行な面におけるｙ軸方向の断面線をそれぞれ計算し、分割された各立方体のｘ軸に平行な辺とｘ軸方向の断面線との交点及びｙ軸に平行な辺とｙ軸方向の断面線とを求めることで、各立方体の各辺と掃引形状の最上面の交点を算出するステップと、
処理部は、算出された交点の情報に基づいて、各立方体の頂点が工具経路面の上下のどちらに存在するかを求めることで、マーチングキューブ法により、立方体の８個の頂点を、工具経路面の上側に存在する頂点と、下側に存在する頂点とに分類することで得られたパターンにしたがって、立方体内部に工具経路面を表す三角形を配置するステップと、
処理部は、各立方体内部に配置された三角形群を、掃引形状の最上面として出力部に出力又は記憶部に記憶するステップと、
をコンピュータに実行させる工具経路面計算プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１０】
前記グラフィックスハードウェアの隠面消去処理は、
処理部は、逆工具の掃引形状を構成する形状要素から、形状要素の下向きの部分や他の形状要素の内部に包含されている部分等の掃引形状の最上面に関与しない部分を予め除去するステップと、
処理部は、除去されずに残った形状を多面体化するステップと、
処理部は、配置された各形状要素に対する、ユニークなＩＤ番号、ユニークな色情報、形状要素の幾何情報を記憶部から読み取り、各形状要素を構成する多角形に対する色情報をグラフィックスハードウェアへ渡すステップと、
グラフィックスハードウェアは、処理部から受けた色情報に基づき、デプスバッファによる隠面消去処理を用いて、各点における掃引形状の最上面の高さを表すデプス値と、各点における色情報を得て、得られたデプス値と色情報を処理部へ渡すステップと、
処理部は、グラフィックハードウェアから受けた各点の座標データとデプス値に基づいて、掃引形状の最上面を示す工具経路面の点列データを生成するステップと、
処理部は、色情報の基づき、記憶部を参照して、最上面の各点に対応する形状要素のＩＤ及び幾何情報を得て、各点の座標データと幾何情報に従い、各点における法線方向を求めるステップと、
処理部は、工具経路面の点群の座標データとその法線又は接線情報を出力するステップ
をコンピュータに実行させるための、請求項９に記載の工具経路面計算プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、工具経路計算方法、工具経路計算プログラムを記録したコンピュータ読み取り可能な記録媒体及び工具経路計算装置に係り、特に、数値制御工作機械に取り付けられた工具を経路に沿って移動させて工作物を加工する際に、工具の逆形状分膨らませた工具経路面（工具参照面）を生成する工具経路計算方法、工具経路面計算プログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【０００２】
【従来の技術】
プラスチックやダイキャスト製品の製造に用いられる金型は、エンドミル工具を用いたＮＣ（Ｎｕｍｅｒｉｃａｌ  Ｃｏｎｔｒｏｌ）切削加工により製作される。金型加工では深く彫り込むことが多いため、剛性に優れた３軸制御の工作機械の利用が一般的である。ＮＣ切削加工では、切削工具は膨大な回数の微小な直線移動を繰り返しおこない、素形材から少しずつ不要部を除去していく。複雑な工具経路の計算には、高速な計算機を用いても数十分の処理時間を要するため、その高速化が待望されている。工具経路を計算する際には、工具が金型の内部へ削り込む、ガウジ（Ｇｏｕｇｅ）とよばれる問題に注意する必要がある。
【０００３】
図２９は、金型加工における削り込みの一例を示す説明図であり、金型表面の曲率半径が切削工具（例えば、ボールエンドミル）の半径よりも小さくなる部分で発生する、削り込みの一例を示している。すなわち、製品表面との接触を保ちつつ、図中の左から右へ移動するボールエンドミルは、金型表面の曲率半径が工具半径よりも小さくなる部分（図中、斜線で示したガウジング領域）において、このガウジング領域との接触を見逃すと、そのまま金型製品の内側へ削り込んでしまう。市販の工具経路の計算プログラムは、その処理時間のほとんどを、ガウジ防止のために費やしている。
金型の表面を切削工具の逆形状分膨らませた工具経路面（工具参照面）を生成し、工具が常にその上側を移動するように経路を生成すれば、ガウジの問題を完全に解決できる。本発明は、この工具経路面（工具参照面）を精密かつ高速に計算するコンピュータプログラムに関するものである。この技術を用いると、複雑な金型を加工するための工具経路を、ごく短時間で計算することが可能になる。
【０００４】
【発明が解決しようとする課題】
工具経路面は、金型の表面に沿って工具の逆形状を縦横に滑らせた時の、掃引形状の上面に相当する。ＣＳＧや境界表現法などの、立体形状の厳密なモデリング技術では、掃引形状を得る手続きは非常に複雑なものになる。そのためＮＣ切削加工の分野では、掃引形状の上面を近似的に計算する、逆オフセット法がよく用いられる。この手法では、工具の回転軸方向をｚ軸とする座標系を考え、そのｘｙ平面上に十分に細かい直交格子を用意する。そして各格子点からｚ軸に平行な直線を伸ばし、掃引形状の最上面との交点を計算することで、掃引形状の上面を覆う稠密な点群を得る。最後に点群の隙間を多角形で補間することで、工具経路面を表す多面体を生成する。逆オフセット法は、処理が単純なためプログラム化が容易であり、計算も安定している。既にこの技術を利用した工具経路の計算法が数多く提案されており、実用システムも開発されている。われわれが発明した、グラフィックスハードウェアを用いる計算手法は特に高速であり、複数のベンダーがこの技術の商品化に着手している（特開２００１−２４２９１９  等参照）。
【０００５】
一般に、金型には凹凸が複雑に入り組んだ形状が多い。このような形状の壁の部分は、等高線状の経路にそって切削工具を移動させると美しく仕上げることができる。逆オフセット法では、工具経路面を覆う点群をｘｙ平面上の格子に基づいて計算するので、点群はｘ軸方向とｙ軸方向に均一な間隔で配置される。そのため、工具経路面がｚ軸方向に大きく変化する壁形状では、隣接する点間の距離が広がり、点群から多面体を生成すると、計算結果に許容できないほど大きな誤差を生じることがある。また垂直な壁のｘ軸方向とｙ軸方向の形状変化は、格子間隔ごとに離散的に記録されるため、素朴な方法で多面体化すると、工具経路面に不自然な折れ曲がりが生じてしまうことがある。
【０００６】
前者の課題は、格子の間隔を十分に小さいものへ変更すれば解決できる。しかし、間隔を１／ｎにすると格子の総数がｎ２倍に増加するため、今度は処理の手間と記憶容量に負荷を生じる。ｚ軸方向の変化が激しい部分の格子だけを選択的に精密化する方法もあるが、既存手法は決して高速とはいえない。また格子間隔を小さくしても、縦壁に生じる不自然な折れ曲がりは解消できない。そのため、従来、逆オフセット法は、等高線加工のための工具径路生成には利用することが困難であった。
本発明は、以上の点に鑑み、３軸の数値制御（ＮＣ）工作機械用の工具経路を計算する際に、切削工具の製品への削り込みを防止するために生成された、製品の形状を工具の逆形状分膨らませた曲面である高精度な工具経路面を、グラフィックスハードウェアの機能を用いて高速且つ高精度に計算することを目的とする。
【０００７】
また、本発明は、空間を微小な立方体の集積へ分割し、各立方体の辺と工具経路面の交差の分類に基づいて、工具経路面を精密に近似する多面体を計算する工具経路計算方法、工具経路計算プログラム及びそのプログラムを記録した記録媒体を提供することを目的とする。また、本発明は、ｘｙ平面上の直交格子をｚ軸方向へ立ち上げたものに相当する、ｘｙ平面に垂直な平面群で工具経路面を切断し、その断面図に基づいて立方体の辺と工具経路面の交点を効率的に計算する工具経路計算方法、工具経路計算プログラム及びそのプログラムを記録した記録媒体を提供することを目的とする。本発明は、グラフィックスハードウェアの機能を用いて、断面図の輪郭線上の点を高速かつ高密度にサンプリングする工具経路計算方法、工具経路計算プログラム及びそのプログラムを記録した記録媒体を提供することを目的とする。さらに、本発明は、グラフィックスハードウェアの機能を用いて、サンプリングされた点における輪郭線の接線方向を正確に計算し、その情報に基づいて断面図を高精度化する工具経路計算方法、工具経路計算プログラム及びそのプログラムを記録した記録媒体を提供することを目的とする。
【０００８】
【課題を解決するための手段】
本発明の解決手段によると、
数値制御工作機械に取り付けられた工具を経路に沿って移動させて工作物を加工する際に、工具の逆形状分膨らませた工具経路面を生成するための工具経路面計算プログラムであって、
処理部は、加工対象物の多面体モデル情報と工具形状情報とを入力し、記憶部に記憶するステップと、
処理部は、多面体モデルの各要素に対して、逆工具の掃引形状を構成する各形状要素を配置するステップと、
処理部は、配置された各形状要素に対して、ユニークなＩＤ番号、ユニークな色情報、形状要素の幾何情報を記憶部に記憶するステップと、
処理部は、入力された逆工具の掃引形状を構成する形状要素に基づき、該掃引形状の最上面を覆う格子状の点群の座標データと、その点における最上面の法線又は接線データを出力するグラフィックスハードウェアの隠面消去処理を用いて、配置された形状要素の位置をｘ軸方向に所定距離だけずらしつつ該処理を繰り返し、最上面の断面線をｘ軸方向に細分割した座標データと法線又は接線データとを含む点列データを求め、それを記憶部に記憶するステップと、
処理部は、グラフィックスハードウェアの隠面消去処理を用いて、配置された形状要素の位置をｙ軸方向に所定距離だけずらしつつ該処理を繰り返し、最上面の断面線をｙ軸方向に細分割した座標データと法線又は接線データとを含む点列データを求め、それを記憶部に記憶するステップと、
処理部は、求められた隣接する点列データの法線又は接線データに基づき、断面線の折れ曲がり点を検出し、検出された折れ曲がり点の点列データを断面線の点列データへ挿入して記憶部に記憶するステップと、
処理部は、格子状の点群に従い、空間を立方体の集積へ分割するステップと、処理部は、記憶部に記憶された点列データを参照し、逆工具の掃引形状の最上面のｘ軸方向の断面線及びｙ軸方向の断面線と、分割された各立方体の各辺との交点を算出するステップと、
処理部は、算出された交点の情報に基づいて、各立方体の頂点が工具経路面の上下のどちらに存在するかを求めることで、マーチングキューブ法により立方体内部に三角形を配置するステップと、
処理部は、各立方体内部に配置された三角形群を、掃引形状の最上面として出力部に出力又は記憶部に記憶するステップと
を含む工具経路面計算方法、これら各ステップをコンピュータに実行させるための工具経路面計算プログラム及び工具経路面計算プログラムを記録したコンピュータ読み取り可能な記録媒体が提供される。
【０００９】
また、本発明において、前記グラフィックスハードウェアの隠面消去処理は、処理部は、逆工具の掃引形状を構成する形状要素から、形状要素の下向きの部分や他の形状要素の内部に包含されている部分等の掃引形状の最上面に関与しない部分を予め除去するステップと、
処理部は、除去されずに残った形状を多面体化するステップと、
処理部は、配置された各形状要素に対する、ユニークなＩＤ番号、ユニークな色情報、形状要素の幾何情報を記憶部から読み取り、各形状要素を構成する多角形に対する色情報をグラフィックスハードウェアへ渡すステップと、
グラフィックスハードウェアは、処理部から受けた色情報に基づき、デプスバッファによる隠面消去処理を用いて、各点における掃引形状の最上面の高さを表すデプス値と、各点における色情報を得て、得られたデプス値と色情報を処理部へ渡すステップと、
処理部は、グラフィックハードウェアから受けた各点の座標データとデプス値に基づいて、掃引形状の最上面を示す工具経路面の点列データを生成するステップと、
処理部は、色情報の基づき、記憶部を参照して、最上面の各点に対応する形状要素のＩＤ及び幾何情報を得て、各点の座標データと幾何情報に従い、各点における法線方向を求めるステップと、
処理部は、工具経路面の点群の座標データとその法線又は接線情報を出力するステップ
を含むようにすることができる。
【００１０】
また、本発明において、前記折れ曲がり点を断面線の点列データへ挿入して記憶部に記憶するステップは、
処理部は、記憶部を参照し、断面線を表す座標データと、各点における工具経路面の法線又は接線データを読み取るステップと、
処理部は、各断面線上の連続する２点について、ふたつの接線又は法線方向が所定値より大きく異なる場合には、２点の間で断面線が折れ曲がり点を有すると判断し、
処理部は、新しい折れ曲がり点を計算し、それを点列データに追加するステップと、
処理部は、更新された点列データと、更新後の点列の長さを示すデータを記憶又は出力するステップと
を含むようにすることができる。
【００１１】
【発明の実施の形態】
１．本発明の関連技術
本実施の形態では、本発明者が以前発明した、「工具参照面計算法、工具参照面計算プログラムを記録したコンピュータ読み取り可能な記録媒体及び工具参照面計算装置（発明者：乾正知）特願２０００−０５６８４３」の機能を用いている。ここでは、本発明の関連する技術について述べる。
１−１．工具経路面（工具参照面）
図１は、金型加工で用いられるエンドミルの種類（（ａ）ボールエンドミル、（ｂ）フラットエンドミル、（ｃ）ラウンドエンドミル）と、それらの工具経路点（工具参照点）（Ｃｕｔｔｅｒ  ｒｅｆｅｒｅｎｃｅ  ｐｏｉｎｔ）の位置を示す図である。
金型加工では、先端の切刃が半球形のボールエンドミルを利用することが多いが、作業効率が重視される粗加工ではフラットエンドミルを、またなだらかな曲面形状の加工では、フラットエンドミルの周囲に円環状の切刃が取り付けられた、ラウンドエンドミルを用いることもある。３軸のＮＣ切削加工では、これらのエンドミルの位置を代表する点（以後、この点を工具経路点（工具参照点）（Ｃｕｔｔｅｒ  ｒｅｆｅｒｅｎｃｅ  ｐｏｉｎｔ）とよぶ）の移動経路を工作機械の制御装置へ与え、希望する形状を削り出す。ボールエンドミルでは、工具経路点（工具参照点）として切刃の中心点を用いることが一般的である。一方フラットエンドミルでは工具先端の中心点を、またラウンドエンドミルでは工具先端の中心点から、円環状の切刃の半径分内側の点を工具経路点（工具参照点）として用いることが多い。
【００１２】
図２は、製品表面を滑るボールエンドミルの参照点の描く工具経路面（工具参照面）（ａ）と、工具の逆形状の参照点が製品表面を滑る時の掃引形状（ｂ）の幾何学的な関係を示す説明図である。
ボールエンドミルが金型製品の表面を縦横に滑るとき、ボールエンドミルの工具経路点（工具参照点）の軌跡の描く面の様子を、図２（ａ）に太線で示した。この面を工具経路面（工具参照面）（Ｃｕｔｔｅｒ  ｒｅｆｅｒｅｎｃｅ  ｓｕｒｆａｃｅ）とよぶ。工具経路面（工具参照面）が得られれば、ボールエンドミルを、その参照点が常にこの面の上側に存在するように移動させることで、削り込みを生じない工具経路を高速に計算できる。
【００１３】
工具経路面（工具参照面）は以下の手順で計算できる。まず、ボールエンドミルを、工具経路点（工具参照点）を中心に１８０度回転させた逆形状を得る。次にこの逆形状を、図２（ｂ）に示すように、その参照点が常に製品の表面（Ｄｅｓｉｇｎｅｄ  ｓｕｒｆａｃｅ）に存在するように保ちつつ縦横に移動させ、その掃引形状を生成する。このとき掃引形状の最上面が工具経路面（工具参照面）に対応する。なお、この計算法は、フラットエンドミルやラウンドエンドミルを用いた切削加工にも適用できる。
図３は、製品表面を滑るフラットエンドミルの参照点の描く工具経路面（工具参照面）（ａ）と、工具の逆形状の参照点が製品表面を滑る時の掃引形状（ｂ）の幾何的な関係を示す説明図である。図３（ａ）には、フラットエンドミルを用いて製品表面を切削するときの、工具経路点（工具参照点）の軌跡の描く面の様子を示した。また同図（ｂ）には、フラットエンドミルの逆形状を考え、その参照点が製品表面を縦横に滑るときの、掃引形状の状態を示した。
【００１４】
同様に、図４は、製品表面を滑るラウンドエンドミルの参照点の描く工具経路面（工具参照面）（ａ）と、工具の逆形状の参照点が製品表面を滑る時の掃引形状（ｂ）の幾何的な関係を示す説明図である。
いずれの場合も、工具経路面（工具参照面）と掃引形状の最上面が同一形状になっていることが分かる。したがって工具経路面（工具参照面）を得るためには、工具の逆形状の掃引形状を計算し、その最上面を選択する処理をおこなえばよい。
つぎに、図５は、半径ｒのボールエンドミルの逆形状の表面にそって、半径Ｒ−ｒのフラットエンドミルの逆形状を滑らせた様子（ａ）、半径ｒのボールエンドミルの逆形状の掃引形状を計算し、さらにその上面にそって半径Ｒ−ｒのフラットエンドミルの逆形状を滑らせた結果（ｂ）を示す説明図である。
軸部の半径Ｒ、円環状の切刃の半径ｒのラウンドエンドミルの逆形状は、半径Ｒ−ｒのフラットエンドミルの逆形状を、半径ｒの細いボールエンドミルの表面にそって滑らせたときの、掃引形状と見なすことができる（図５（ａ）参照）。したがってラウンドエンドミルの逆形状の掃引形状（図４（ｂ）参照）は、半径ｒのボールエンドミルの逆形状を、金型表面にそって滑らせ掃引形状を生成し、次に得られた形状の最上面にそって、半径Ｒ−ｒのフラットエンドミルの逆形状を滑らせることで計算できる（図５（ｂ）参照）。ラウンドエンドミルの逆形状は、半径ｒのボールエンドミルの逆形状を、半径Ｒ−ｒのフラットエンドミルの逆形状にそって滑らせたときの掃引形状とも見なせるので、逆の手順でもラウンドエンドミルの逆形状の掃引形状は計算できる。このような理由から、以後は、ボールエンドミルとフラットエンドミルの逆形状の掃引形状を計算する実施の形態に議論を限定するが、これに限定されず適宜応用することができる。
【００１５】
１−２．逆オフセット法
掃引形状の計算は、立体モデリングの分野での古典的な問題であり、既に幾つかの計算法が開発されている。しかしこれらの従来手法は、いずれも処理時間や安定性に課題があり、一般に、金型のような複雑な形状の表面を移動する立体に適用することが難しい。われわれは、逆オフセット法による工具経路面（工具参照面）の近似的な計算技術と、３次元グラフィックスハードウェアを利用した処理技術を組み合わせることで、工具経路面（工具参照面）を安定かつ高速に計算するアルゴリズムを発明し、その特許を出願した。以下の議論では、加工対象の製品の形状が多面体であることを仮定する。ただし、各辺の左右に１枚ずつ多角形が接続している、通常の閉じた多面体だけでなく、辺の左または右のどちらか一方にしか多角形が接続していない、「開いた」形状を許す。任意の曲面形状は、希望する精度でこのような多面体として近似表現できる。曲面形状を多面体化する技術は、コンピュータグラフィックスの分野においてよく研究されており、幾つかの高速なアルゴリズムが既に知られている。
【００１６】
半径ｒのボールエンドミルによる切削加工の場合、工具経路面（工具参照面）にあたる掃引形状の上面は、ボールエンドミルの逆形状の上端の、半球形の切刃の移動により生成される。そこで工具の逆形状の代わりに、切刃と同一半径の球を、その中心が常に製品表面に存在するように滑らせた時の掃引形状の計算を考える。製品が多面体形状のとき、球の掃引形状は、多面体の頂点、辺、多角形を、以下の手順で球面、円筒形、厚板形状に置き換えた時の、これらの和形状となる。
図６は、球の掃引形状を構成する、球面（ａ）、円筒形（ｂ）、厚板形状（ｃ）の例を示す説明図である。
［頂点］  その頂点ｖを中心とする、半径ｒの球面に置き換える（図６（ａ）参照）。
［辺］  その辺ｅを中心軸とする、半径ｒの円筒形に置き換える（同図（ｂ）参照）。
［多角形］  その多角形ｆを中心とする、厚さ２ｒの厚板形状に置き換える（同図（ｃ）参照）。
【００１７】
一方、半径ｒフラットエンドミルによる切削加工の場合、工具経路面（工具参照面）にあたる掃引形状の上面は、フラットエンドミルの逆形状の上端の、円板状の切刃の移動により生成される。製品が多面体形状のとき、円板の掃引形状は、多面体の辺と多角形を、以下の手順で斜円筒形と厚板形状に置き換えた時の、これらの和形状となる。
図７は、円板の掃引形状を構成する、斜円筒形（ａ）と厚板形状（ｂ）の例を示す説明図である。
［辺］  その辺ｅの両端の頂点に与えられた、半径ｒの２枚の水平な円板を結ぶ斜円筒形に置き換える（図７（ａ）参照）。
［多角形］  多角形ｆの周囲の全頂点に、半径ｒの水平な円板を配置し、多角形を水平に移動させ、全ての円板の外周と接するように位置決めする。このような位置は二ヶ所考えられる。そこで、各場所に配置された２枚の多角形に挟まれた領域に対応する厚板形状を生成し、多角形ｆをこの厚板形状に置き換える（同図（ｂ）参照）。
複雑な金型形状を精密に多面体化した場合、その多角形数はしばしば数万から数十万枚となる。辺や頂点の数も多角形数に比例するので、上述した手法による掃引形状の計算では、膨大な数の球面、円筒形、厚板形状などの集合演算を繰り返すことになり、実用的ではない。逆オフセット法は、工具経路面（工具参照面）として最終的に必要となるのが、掃引形状の最上面だけであることに着目し、以下の手順で処理することで、工具経路面（工具参照面）の効率的かつ安定な計算を実現する。
【００１８】
図８は、ボールエンドミル加工用の工具経路面（工具参照面）を得るために、球の掃引形状を構成する球面、円筒形、厚板形状と、格子の中心を通過するｚ軸に平行な直線の交差を調べ、最も上側の交点を選択する様子を示す図である。また、図９は、フラットエンドミル加工用の工具経路面（工具参照面）を得るために、円板の掃引形状を構成する斜円筒形や厚板形状と、格子の中心を通過するｚ軸に平行な直線の交差を調べ、最も上側の交点を選択する様子を示す図である。まず処理の基準となる直交座標系を、そのｚ軸がエンドミルの回転軸の上向き方向と一致するように与える（図８、図９参照）。基準座標系のｘｙ平面上に、ｘ軸とｙ軸に平行かつ等間隔な直交格子を、これから計算する掃引形状の、ｘｙ平面への投影を覆うように生成する。なお、ボールエンドミル加工の場合も、フラットエンドミル加工の場合も、掃引形状の投影図形は、製品形状の投影図形をエンドミルの半径分膨らませたものに相当するので、この膨らんだ図形を覆うように直交格子を生成すればよい。格子の間隔ｗを小さくするほど精密な計算が可能になるが、必要な記憶容量が膨大なものになる。工具経路面（工具参照面）を計算する場合には、格子の総数が１，０００×１，０００個程度になるように、格子間隔を調整する場合が多い。
【００１９】
次に各格子点を通過するｚ軸に平行な直線を考え、この直線と掃引形状を構成する全ての形状要素の交差を調べる。例えば、ボールエンドミル加工用の工具経路面（工具参照面）を計算する場合には、各格子点を通過する直線と、頂点に配置された球面、辺に配置された円筒形、多角形に配置された厚板形状の交差を調べる。そして図８に示すように、最も上側の交点、すなわちｚ座標値が最大の交点を選択する。フラットエンドミル加工用に工具経路面（工具参照面）を計算する場合も、図９に示すように、各直線と、辺に配置された斜円筒形および多角形に配置された厚板形状の交差を調べ、最も上側の交点を選択する。これらの処理を全ての格子について繰り返すと、工具経路面（工具参照面）を覆う、格子状に配置された稠密な点群を得ることができる。
各格子のマス目の角にあたる隣接する４個の点を選び、それらを頂点とする２枚の三角形を定義する。
この処理を全てのマス目について繰り返すと、隙間無く敷き詰められた工具経路面（工具参照面）を表す三角形群を得ることができる。
【００２０】
１−３．３次元グラフィックスハードウェアの利用
逆オフセット法では、各格子点を通過するｚ軸に平行な直線と、掃引形状を構成する球面や円筒形などとの交点計算を、格子と形状要素の全ての組み合わせについて繰り返す必要がある。われわれの発明した手法は、３次元グラフィックスハードウェアの隠面消去機能を利用することで、この処理を高速化する。３次元コンピュータグラフィックスでは、他の面に隠されて観察者から見えない隠面を消去した画像を生成するために、デプスバッファを用いる。
図１０は、デプスバッファの利用による、二つの立方体の隠面を消去した画像の生成例を示す図である。図示のように配置された２個の立方体を図の左側から観察した画像を、平行投影により画面へ描く場合を例に、この技術を説明する。まず、処理の基準となる座標系を、画面上の任意の位置に、そのｘ軸とｙ軸が画面を構成するピクセルの格子と平行になるように、またｚ軸の方向が観察者の視線方向と逆向きになるように与える。また各ピクセルと１対１に対応する要素からなる、デプスバッファと呼ばれる配列を用意し、その全要素に初期値として十分に小さな数値を与えておく。以上の準備の後、立方体を構成する多角形を、平行投影により順に画面へ描画していく。その際に、画面の各ピクセルへ投影される多角形上の点のｚ座標値を計算し、対応するデプスバッファ要素の値（これをデプス値とよぶ）と比較する。もしもｚ座標値がデプス値よりも大きいときには、ピクセルを多角形の色で染め、そのｚ座標値を新しいデプス値として記録する。この処理を全ての多角形について繰り返すと、デプスバッファの各要素には、視点に最も近い多角形上の点のｚ座標値が格納される。また各ピクセルには、その点の色が染められることになり、結果として隠面を消去した画像が画面に描かれる。この図の例では、○印をつけたピクセルには点ｐ３の色が染められ、対応するデプスバッファ要素には、この点のｚ座標値がデプス値として格納される。
観察者の視線方向を、エンドミルの回転軸の下向き方向に定め、画面のピクセル群をｘｙ平面上の直交格子と対応付けると、
・全ての格子点について、そこを通過するｚ軸に平行な直線と、球や円板の掃引形状の最上面の交点を計算すること（図８、図９参照）、及び、
・掃引形状を構成する全ての形状要素（球面、円筒形、厚板形状など）を平行投影した画像を、デプスバッファを用いて描くこと（図１０参照）、
は、幾何的に等価な処理となる。全ての形状要素を描き終えたとき、デプスバッファの各要素には、対応する直線と掃引形状の最も上側の交点のｚ座標値がデプス値として格納されているので、工具経路面（工具参照面）を表す点群を容易に得ることができる。市販されている多くのグラフィックスボードは、デプスバッファを用いた多面体の隠面消去処理を、ハードウェアで直接実行する機能を備えている。したがって掃引形状を構成する球面や円筒形などを適切に多面体近似し、得られた多角形群を平行投影した画像をハードウェアの機能を用いて描画することで、工具経路面（工具参照面）を高速に計算できる。なお、３次元グラフィックス表示装置は、今後の高速化が最も期待されている半導体デバイスなので、その機能を利用することで処理を将来さらに高速化できる。
【００２１】
２．工具経路計算
本発明は、上述した技術を発展させ、逆オフセット法の弱点とされてきた、工具経路面の壁形状での精度低下を解消することを主な目的としている。
２−１．逆オフセット法の高精度化
図１１は、急峻な壁形状における逆オフセット法により得られた点群の分布を示す説明図である。図１１（ａ）は、Ａ方向から眺めた様子であり、壁面において理想的な工具経路面と計算結果の間に大きな誤差が生じている。図１１（ｂ）は、Ｂ方向から眺めた様子であり、ｘ方向のなだらかな変化が表現できず、不自然な折れ曲がりが生じている。
逆オフセット法は、直交格子の各マス目をｚ軸方向に引き伸ばした細長い直方体で空間を分割し、その縦方向の辺と逆工具の掃引形状の最上面の交点を計算し多面体化することで、工具経路面を表現する（後述の図１２（ａ）参照）。この手法では、工具経路面の特に「壁」にあたる形状を正確に表現できない。図１１に、壁形状の近傍における、格子から垂直に伸びる直線群と工具経路面の交点の様子を示した。工具経路面が水平かつ滑らかな部分（図中の上側や下側の水平な面）では、交点間の距離は格子間隔程度なので、それらの間を多角形で補間しても、加工に十分な精度が得られる。しかし、工具経路面がｚ軸方向に大きく変化する急峻な壁形状では、隣接する交点間の距離が広がるため、補間後の形状に大きな誤差を生じてしまう場合がある（図１１（ａ）参照）。また、この方法では、水平方向の形状変化を格子間隔ごとに離散的に記録するので、壁の部分のｘ軸やｙ軸方向のなだらかな形状変化を表現できず、不自然な折れ曲がりが生じてしまう場合がある（図１１（ｂ）参照。）。これらの理由から、逆オフセット法で計算された工具経路面は、壁形状を切削加工するための（例えば等高線状の）工具経路の生成には不適当な場合があるとされてきた。
【００２２】
そこで、本実施の形態では、工具経路面を、ｘｙ平面上の格子だけでなく、ｙｚ平面上の格子やｚｘ平面上の格子も利用して計算するように逆オフセット法を拡張することで、これらの課題を解決する。ｘｙ平面上の格子と同様に、ｙｚ平面上にｙ軸とｚ軸に平行かつ等間隔な直交格子を、またｚｘ平面上にｚ軸とｘ軸に平行な直交格子を用意する。このとき３つの格子の間で、格子間隔が等しくなるように、また格子線の配置にずれが生じないように注意する。ｘｙ平面、ｙｚ平面、そしてｚｘ平面上の３つの格子を用いて逆オフセット法を行うことは、空間を各格子のマス目に基づく、互いに直交する３本の直方体の積に相当する微小な立方体で分割し、立方体の１２本の辺と掃引形状の最上面の交点を計算し工具経路面を表現することと、幾何的に等価である。
図１２は、従来の逆オフセット法（ａ）と、本実施の形態の逆オフセット法（ｂ）の比較図である。ここでは、ｘｙ平面上の格子のみに基づく従来の逆オフセット法（ａ）と、ｘｙ平面上の格子以外に、ｙｚ平面とｚｘ平面上の二つの格子も利用する新しい逆オフセット法（ｂ）の違いを示した。本実施の形態による新しい逆オフセット法では、従来の方法とは異なり、工具経路面を構成する交点群の隣接する２点は、必ず同じ立方体上に存在するので、それらの間の距離は、工具経路面の形状によらず、立方体の各辺の長さで定められる一定値以下となる。本実施の形態では、工具経路面のｘ軸方向やｙ軸方向の形状変化も正確に記録できるので、従来の手法よりもはるかに高精度な計算が可能になる。
空間を分割する微小な立方体の各辺と、掃引形状の最上面の交点が得られれば、一般にマーチングキューブ法とよばれるアルゴリズムにより、立方体の内部に工具経路面の一部を表す三角形群を与えることができる。この処理を全ての立方体について繰り返せば、工具経路面を微小な三角形の集合により近似表現できる。立方体の各辺と掃引形状の最上面がたかだか一点で交差することを仮定すると、その情報に基づいて、各辺の両端の頂点が工具経路面の上下どちらに存在するか決められる。そこで立方体の８個の頂点を、工具経路面の上側に存在する頂点と、下側に存在する頂点とに分類する。
【００２３】
図１３は、微小な立方体と逆工具の掃引形状の最上面の間に生じ得る交差パターンを示す図である。分類パターンは、２８＝２５６  通り考えられるが、対象性を考慮するとパターンを図に示した２０通りに削減できる。なお、マーチングキューブ法の原論文では、例えばパターンＤとＥを同じと見なすことで１５パターンとしているが、本実施の形態では面の向きを考慮して、これらを別パターンとして扱う。この図では、工具経路面の上側に位置する頂点を白色で、また下側に位置する頂点を黒色で示している。マーチングキューブ法は、このパターンにしたがって、立方体の内部に工具経路面を表す三角形を配置する。立方体の辺が、工具経路面と複数回交差する場合には、交差回数が偶数回のときには「交差なし」と考え、また交差回数が奇数回の時には「１点で交差」と見なせば、矛盾なく処理を進められる。
なお、本実施の形態と部分的に似た表現を採用している研究に、韓国ＫＡＩＳＴのＣｈｏｉらの提案したＥＺ−ｍａｐ法がある。彼らの論文（Ｓｃｕｌｐｔｕｒｅｄ  Ｓｕｒｆａｃｅ  Ｍａｃｈｉｎｉｎｇ、  Ｔｈｅｏｒｙ  ａｎｄ  Ａｐｐｌｉｃａｔｉｏｎｓ、  Ｂ．Ｋ．Ｃｈｏｉ  ａｎｄ  Ｒ．Ｂ．Ｊｅｒａｒｄ、Ｋｌｕｗｅｒ  Ａｃａｄｅｍｉｃ  Ｐｒｅｓｓ、１９９８）では、本実施の形態と同様に断面線を計算し、それをＮＣ加工命令生成に利用することを提案しているが、断面線の高速かつ高精度な計算法は議論していない。また、この技術とマーチングキューブ法を結合することで、高精度な工具経路面を計算する手法も提案していない。一方、わが国では、藤尾らがＢｏｕｎｄａｒｙ−Ｍａｐ表現という名称で、マーチングキューブ法を利用した製品形状の表現法を提案しているが、彼らの研究では、逆オフセット法との結合は考えられていない（Ｂｏｕｎｄａｒｙ−Ｍａｐデータ構造に基づくＣＡＤ／ＣＡＭシステムの開発、藤尾、柳下、鈴木、精密工学会誌、Ｖｏｌ．６６、Ｎｏ．７、２０００）。
【００２４】
２−２．断面線に基づく交点の算出
上述した技術により、工具経路面を精密に多面体化するためには、３つの直交格子に基づいて定義される微小な立方体の１２本の辺と、逆工具の掃引形状の最上面の交点を計算する必要がある。その一つの手法として、各辺を含む直線と最上面の交点を計算し、得られた点の座標から、辺と最上面の交差を判定するアルゴリズムが考えられる。１２本の辺のうち、ｚ軸に平行な４本の辺については、各辺を含むｚ軸に平行な直線と最上面の交点はたかだか１点であり、その座標値の決定プロセスは従来の逆オフセット法と全く同じなので、グラフィックスハードウェアの隠面消去機能を用いた高速な計算法が利用できる。しかし、残りのｘ軸やｙ軸と平行な８本の辺の場合には、これらを含むｘ軸やｙ軸に平行な直線と掃引形状の最上面は複数の箇所で交差する場合があるので、隠面消去機能を用いた計算法は、そのままでは適用できない。
そこで、本実施の形態では、ｙｚ平面やｚｘ平面に平行な面を用いて掃引形状の最上面を切断し、次にその断面線を利用して、ｘ軸やｙ軸に平行な辺と最上面の交点を計算する手法を用いる。すなわち、立方体の１２本の辺のうち、ｙ軸に平行な４本の辺と最上面の交点は、これらの辺を含むｙｚ平面に平行な面を用いて最上面を切断し、その断面線を得ることができれば、これと辺の交差を調べることで容易に算出できる。このことを、以下に図を用いて示す。
【００２５】
図１４は、掃引形状の断面線に基づいて工具経路面と立方体の各辺の交点を計算した例を示す図である。例えばｙ軸に平行な２本の辺ｅ３やｅ１１と最上面の交点は、これらの辺と隣接する立方体の面を含むｙｚ平面に平行な面を用いて最上面を切断し、その断面線（図中の灰色の曲線）とｅ３やｅ１１の位置関係を調べることで計算できる（図では、断面線はｅ３とのみ交差している）。ｅ３もｅ１１もともに水平な線分なので、これらと断面線の交差の確認や交点の計算は簡単である。ｙ軸に平行な残りの二辺ｅ１やｅ９と最上面の交点も、これらと隣接する面を含む平面を用いて最上面の断面線を計算すれば、その結果から容易に求められる。同様に、ｘ軸に平行な４本の辺ｅ０、ｅ２、ｅ８、ｅ１０と掃引形状の最上面との交点も、これらの辺を含むｚｘ平面に平行な面を用いて最上面を切断し、その断面線（図中の黒色の曲線）と各辺の位置関係を調べることで計算できる。断面線を得ることができれば、ｚ軸に平行な４本の辺と最上面との交点も容易に計算できるので、マーチングキューブ法を適用するために必要な情報は全て得られることになる。
【００２６】
２−３．グラフィックスハードウェアによる断面線の算出
上述したような、微小な立方体の面のうち、ｚｘ平面に平行な面で掃引形状の最上面を切断した場合の断面線は、以下の手順で計算できる。
まずｘｙ平面上の格子線のうち、切断面のｘｙ平面への投影に対応するｘ軸に平行な直線を選び、この直線上に十分に稠密な点を等間隔に配置する。次に、配置された点からｚ軸に平行にのびる半直線群と、逆工具の掃引形状の最上面の交点を計算する。得られた交点を順に接続していくと、それがこの切断面による最上面の断面線となる。ｙｚ平面に平行な面による断面線も、その面のｘｙ平面への投影に対応するｙ軸に平行な格子線を選択し、その上に稠密に配置された点からｚ軸に平行にのびる半直線群と最上面の交点を計算し、それらを接続することで計算できる。
さらに、精密な断面線を計算するためには、ｘｙ平面上のｘ軸やｙ軸に平行な直線上に配置される点
の間隔を、十分に小さなものにする必要がある。本実施の形態では、断面線計算のために配置される点の間隔を、ｘｙ平面上のもとの直交格子の間隔の１／ｍ（例えば、ｍは８〜１０程度）に設定した。後述する断面線の精密化技術を併用すると、この程度の間隔でｚ軸に平行な半直線と最上面の交点を計算しプロットすれば、十分な精度の断面線を得ることができる。
【００２７】
図１５は、隠面消去機能を用いた断面線の算出についての説明図である。この図は、ｘｙ平面上のｘ軸やｙ軸に平行な格子線上に配置された、断面線計算用の点群を見下ろした様子を示したものである。先に我々発明した、前述の隠面消去機能を利用した逆オフセット法の計算技術（例えば、特願２０００−０５６８４３参照）を用いると、ちょうど格子上に位置する点（図では白丸で示した）からｚ軸に平行にのびる半直線と、掃引形状の最上面との交点は高速に計算できる。しかしそれ以外の点（図では黒四角で示した）については、対応する交点をハードウェアで直接計算することはできない。この点は、掃引形状を構成する図形要素（球面、円筒形、厚板形状など）の位置を微小量ずらしてから、逆オフセット処理することで解決できる。ここで、［ｉ、ｊ］格子から（ｄｘ、０、０）ずれた位置にある点（図中に黒い大きな矢印で指示した）について、そこからｚ軸に平行にのびる半直線と掃引形状の最上面の交点を計算する場合を考える。掃引形状を構成する全ての図形要素を（−ｄｘ、０、０）移動させると、この点はちょうど［ｉ、ｊ］格子の上へ移動するので、この点からのびる半直線と最上面の交点は、隠面消去機能を用いて高速に計算できる。そこで計算後に、得られた交点を移動前の点に対応するものとして記録する。このとき同時に、図中に複数の灰色の他の小さな矢印で指示した点についても交点が計算される。図形の移動や隠面消去の再実行は、グラフィックスハードウェアにより高速に行われるので、これらに伴う処理時間の増加はごくわずかである。同様の処理を、残りの点についても繰り返すことで、全ての断面線についてプロットすべき交点の位置を高速に計算できる。
【００２８】
２−４．断面線の精度向上
ここでは、前節に示した手法により計算される断面線の精度を、さらに向上させる技術について述べる。
図１６は、断面線上の隣接した２点を通過する接線に基づく折れ曲がり点の導出についての説明図である。以下に、正しい断面線が、この図に示すような折れ曲がりを持つ場合を考える。
断面線上の点をプロットする際に、折れ曲がりが生じている点とは異なる点を用いると、それらを接続することで得られる断面線と正しい断面線の間に、誤差が生じてしまう。プロットされた点における断面線の接線方向を得ることができれば、その情報に基づいて折れ曲がり点を計算し、その点を加えて断面線をプロットしなおすことで、この点を解決できる。断面線上の隣接した二つのプロット点における接線方向が、ある閾値よりも大きく異なるときには、２点の間のどこかで折れ曲がりが生じていると考える。その場合には各プロット点を通過する接線を計算し、それらの交点を正しい折れ曲がり点と考え断面線を補正する。なお、隣接するプロット点間の距離は十分に小さくすることで、このようにして補正した折れ曲がり点は、正確な折れ曲がり点に非常に近くすることができる。断面線上のプロットされた点における接線方向は、この点における掃引形状の最上面の法線方向が得られれば、この法線方向と切断面の法線方向（ｙｚ平面に平行な切断面の場合ｘ軸方向、ｘｚ平面に平行な切断面の場合ｙ軸方向）の外積として容易に計算できる。
つぎに、プロットされた点における最上面の法線方向を、グラフィックスハードウェアの機能を用いて計算する手法について述べる。隠面消去機能を用いた逆オフセット法では、例えばボールエンドミル加工の場合、球の掃引形状を構成する球面と円筒形、そして厚板形状を多面体近似し、それらの画像を描画することで工具経路面を得る。そこで球面、円筒形、厚板形状のそれぞれにユニークなＩＤ番号を付与し、それをインデックスとして、それぞれの幾何情報（例えば球面の場合、中心の座標と半径）を予め記録しておく。次に、付与された各ＩＤに対してユニークな色を割り当てる。３次元コンピュータグラフィックスでは、例えば、色を２４〜３２ビットで表現するので、１００万通り以上の割り当てが可能である。逆オフセット処理の際には、掃引形状を構成する球面や円筒形、厚板形状を、それぞれのＩＤの対応する色を用いて着色し描画する。これらの図形の隠面を消去した画像を描き終えた時、画面の各ピクセルには、掃引形状の最上面を構成する球や円筒形、そして厚板形状のＩＤを表す色が染められている。そこで断面線上の点をプロットするために、各ピクセルに対応するデプス値を取得する際、その色も調べ対応する球面、円筒形、厚板形状のＩＤを取得する。このＩＤから記録してある幾何情報を検索し、プロットする点の法線方向を計算する。なお、法線方向を計算する代わりに接線方向について計算してもよい。
【００２９】
３．ハードウェアの構成
図１７は、本実施の形態に関するハードウェアの構成図である。
このハードウェアは、中央処理装置である処理部（ＣＰＵ）１と、データを入力する入力部２と、入力されたデータを記憶する記憶部３と、出力部４と、３次元グラフィックス表示部５とを有する。また、ＣＰＵ１、入力部２、記憶部３、出力部４及び３次元グラフィックス表示部（グラフィックスハードウェア）５は、スター又はバス等の適宜の接続手段で接続されている。
３次元グラフィックス表示部５はデプスバッファを含み、上述の隠面消去の画像をこのデプスバッファを用いることにより生成するハードウェアの装置である。３次元グラフィックス表示部５は、ハードウェア処理により高速にデプスバッファ処理を行うことができる。また、３次元グラフィックス表示部５は、例えば、ボード、カード又は他の装置として構成され、ＣＰＵ１等と一体に構成されていても、別個の構成であってもよい。出力部４は、３次元グラフィックス表示部５で生成され、フレームバッファへ描画された隠面消去の画像をディスプレイ上に表示する又は他の装置に出力する装置である。なお、出力部４は、バスに直接接続されるように構成することもできる。
【００３０】
４．処理アルゴリズムの流れついて
添付したフローチャートは、われわれの発明した高精度な工具経路面の計算手順をまとめたものである。このフローチャートは、二つのサブルーチン（サブルーチンＡとＢ）とメインルーチンに分けて記述されている。なお、以下のフローチャートでは、法線方向のデータを用いているが、その代わりに接線方向のデータを用いるようにしても良い。
４−１．サブルーチンＡ
図１８に、サブルーチンＡについてのフローチャートを示す。
このサブルーチンは、逆工具の掃引形状を構成する形状要素群（ボールエンドミル加工の場合には、球面、円筒形、厚板形状、フラットエンドミル加工の場合には、斜円筒形と厚板形状）を入力すると、グラフィックスハードウェア（３次元グラフィックス表示部）５の隠面消去機能を用いて、掃引形状の最上面を格子状に覆う点群の座標値と、それらの点における最上面の法線方向を出力する。このサブルーチンの処理の基本的な部分は、既に出願済みの技術を用いており、特願２０００−５６８４３に記載された内容がここに引用され組み見込まれることができる。
【００３１】
以下に、図を参照して各ステップの処理について説明する。
ステップＳ１００：  処理部１は、逆工具の掃引形状を構成する形状要素群の入力を行う。処理部１は、この情報を記憶部３から読み出すことができる。また、これらの情報を、必要に応じて入力部２や他の記録媒体、外部装置等から入力しても良い。
ステップＳ１０１：  処理部１は、入力された形状要素から、明らかに掃引形状の最上面に関与しない部分を予め除去する。具体的には、例えば、形状要素の下向きの部分や、他の形状要素の内部に包含されている部分を検出し取り除く。
ステップＳ１０２：  処理部１は、除去されずに残った形状を多面体化する。
ステップＳ１０３：  処理部１は、予め形状要素にはＩＤ番号が付与されており、グラフィックスハードウェア（３次元グラフィックス表示部）５の処理に対応して、各ＩＤにはユニークな色が割り当ててある。またＩＤをキーとして、各形状要素の幾何情報がデータベースに格納されている。この割り当てられている色を用いて、（多面体化された）各形状要素を構成する多角形を着色する。着色された多角形のデータを、グラフィックスハードウェア５へ渡す。
ステップＳ１０４：  グラフィックスハードウェア５は、ｘｙ平面上の直交格子と１対１に対応する要素からなる、デプスバッファを用意する。着色した多角形群をｚ軸の正方向から観察した画像を、平行投影により画面へ描画する。グラフィックスハードウェア５の隠面消去機能が、自動的にデプスバッファの内容を更新する。
ステップＳ１０５：  グラフィックスハードウェア５は、全ての多角形を描き終えたとき、デプスバッファの各デプス値は、対応する格子を通過するｚ軸に平行な直線と掃引形状の、最も上側の交点のｚ座標値を表している。また各ピクセルの色は、これらの点の対応する形状要素のＩＤを表している。得られた全てのデプス値とピクセルの色データを、処理部１側のソフトウェアの処理へ渡す。
ステップＳ１０６：  処理部１は、グラフィックスハードウェア５から直交格子の位置情報（座標データ）とデプス値を受信して、位置情報（座標データ）とデプス値に基づいて掃引形状の最上面を覆う稠密な点群を生成する。
ステップＳ１０７：  処理部１は、色データから最上面を覆う各点の対応する形状要素のＩＤを決定し、それを検索キーとしてデータベースから形状要素の幾何情報を得る。点の座標値と得られた幾何情報から、各点における正規化された法線方向を決定する。
ステップＳ１０８：  処理部１は、掃引形状の最上面を格子状に覆う点群の座標値とその法線方向を出力する。
【００３２】
４−２．サブルーチンＢ
図１９に、サブルーチンＢについてのフローチャートを示す。
このサブルーチンは、逆工具の掃引形状の最上面の、ｎ列分の断面線（折れ線）を表すｍ＊ｎ個の点列データと、各点における最上面の（正規化された）法線方向のデータを入力すると、断面線上の折れ曲がり点を検出し、その点を断面線の点列データへ挿入し出力するものである。なお、ここで、折れ曲がり点の個数は最大ｋ個を想定している。新たに検出された折れ曲がり点の挿入方法としては、より効率的な技術も考えられるが、ここでは理解しやすさを優先して記述した。
以下に、図を参照して各ステップの処理について説明する。
ステップＳ２００：  処理部１は、断面線を表す点列データ  ｓｅｃ［ｎ］［ｍ＊ｎ＋ｋ］［３］  と、各点における面の正規化された法線方向を表す  ｎｒｍｌ［ｎ］［ｍ＊ｎ＋ｋ］［３］入力する。または、処理部１は、これらデータを記憶部３から読み出す。この例では、断面線はｎ列分が記録されており、各列のデータはｍ＊ｎ個の点からなる。ただし、以下の処理で、最大ｋ個の点が新たに挿入される可能性があるので、その分記憶領域が記憶部３に余分に確保されている。
法線方向の記憶領域も同様に定義されている。
ステップＳ２０１：  処理部１は、ローカル変数ｉを０に初期化する。ｉが０からｎ−１になるまでｉを増やしながら、各列の断面線に対して、以下の処理を繰り返す。
ステップＳ２０２：  処理部１は、ローカル変数ｊを０に初期化する。ｊが０から  ｆｉｎａｌ−２  になるまでｊを増やしながら、各折れ線上の連続する２点について、以下の処理を繰り返す。ｆｉｎａｌは最初ｍ＊ｎに設定されている。
ステップＳ２０３：  処理部１は、座標  ｓｅｃ［ｉ］［ｊ］  と法線方向  ｎｒｍｌ［ｉ］［ｊ］  から、  ｓｅｃ［ｉ］［ｊ］  における接線ｔａｎ０を得る。処理部１は、同様に  ｓｅｃ［ｉ］［ｊ＋１］  と  ｎｒｍｌ［ｉ］［ｊ＋１］  から、  ｓｅｃ［ｉ］［ｊ＋１］  における接線ｔａｎ１を得る。
ステップＳ２０４：  処理部１は、二つの接線ｔａｎ０とｔａｎ１の方向が大きく異なる場合には、２点  ｓｅｃ［ｉ］［ｊ］  と  ｓｅｃ［ｉ］［ｊ＋１］の間で、断面線が折れ曲がりを有すると考える。処理部１は、この新しい折れ曲がり点を格納する場所を記憶部３内に得るために、  ｓｅｃ［ｉ］［ｊ＋１］以降の点列データを、ｓｅｃ［ｉ］［ｊ＋２］  以降へ格納しなおす。同様に、処理部１は、  ｎｒｍｌ［ｉ］［ｊ＋１］  以降の法線データを、記憶部３のｎｒｍｌ［ｉ］［ｊ＋２］  へ格納しなおす。
ステップＳ２０５：  処理部１は、接線ｔａｎ０とｔａｎ１の交点として、新しい折れ曲がり点を計算し、これを  ｓｅｃ［ｉ］［ｊ＋１］  へ格納する。
ステップＳ２０６：  処理部１は、点列データが１個増えたので、その分だけｊとｆｉｎａｌと増やす。
ステップＳ２０７：  処理部１は、更新された点列データｓｅｃと、更新後の点列の長さを示すｆｉｎａｌを出力する。
【００３３】
４−３．メインルーチン
図２０及び図２１に、メインルーチンについてのフローチャート（１）及び（２）を示す。
以下に、図を参照して各ステップの処理について説明する。
ステップＳ３００：  処理部１は、入力部２からの指示により又は記憶部３に記憶されたデータを読み出すことにより、加工対象物の多面体モデルの情報、工具形状の情報（工具のタイプや切刃の形状など）、逆オフセット法のために用意する直交格子の分割数ｎを入力する。さらに、処理部１は、断面線を得るために格子を再分割する数ｍと、各断面線を精密化するために挿入する点の数の上限ｋを入力又は読み出す。処理部１は、以下のステップのように、断面線を計算する際には、精度を上げるために、格子の分割よりもｍ倍細かな分割で、断面線上の点をプロットする。また、処理部１は、以下のステップのように、各断面線を精密化するために、最大ｋ個の断面線の折れ曲がりを検出し、そこに新しい点を挿入する。
ステップＳ３０１：  処理部１は、工具の軸方向をｚ軸とする座標系を用意し、ｘｙ平面上に、逆オフセット後のモデルの投影図形を覆うように、ｎ×ｎサイズの直交格子を生成する。
ステップＳ３０２：  処理部１は、ｙｚ平面やｚｘ平面上に、ｘｙ平面上の格子のマスのサイズｄや位置に整合的で、逆オフセット後の多面体モデルの投影図形を覆う直交格子を生成する。
ステップＳ３０３、Ｓ３０４：  処理部１は、記憶部３に、ｘ軸方向とｙ軸方向のそれぞれについて断面線上の点列の座標を記録するために、領域ｘｓｅｃとｙｓｅｃを確保する。また、処理部１は、記憶部３に、各点における逆工具の掃引形状の法線方向を記録するために、領域ｘｎｒｍｌとｙｎｒｍｌを確保する。前述のように、断面線はｎ列分が記録され、各列のデータはｍ＊ｎ個の点からなる。断面線の精密化処理で、最大ｋ個の点が新たに挿入される可能性があるので、記憶部３にその分の記憶領域が余分に確保されている。
ステップＳ３０５、Ｓ３０６：  処理部１は、逆工具の掃引形状を定義するために、多面体モデルの各頂点、辺、多角形に形状要素を配置する。具体的には、例えば、工具形状がボールエンドミルの場合には、頂点、辺、多角形のそれぞれに球面、円筒形、厚板形状を配置し、一方、フラットエンドミルの場合には、辺と多角形に斜円筒形と厚板形状を配置する。
ステップＳ３０７、Ｓ３０８：  処理部１は、配置された各形状要素（球、円筒形、厚板形状などの各要素）にユニークなＩＤ番号を与える。次にそのＩＤをインデックスとして用いて、形状要素の幾何情報（球面、円筒形、厚板形状、斜円筒形、厚板形状、等）をデータベースへ記録する。さらに各ＩＤに１対１に対応する色を割り当てる。
ステップＳ３０９：  処理部１は、カウンタｉｉを０に初期化し、カウンタｉｉを一つずつ増やしながら、これがｍと等しくなるまで、ステップＳ３１０〜Ｓ３１３までの処理を繰り返し実行する。この繰り返し処理により、ｘ軸方向のｎ列分の断面線群が得られる。
ステップＳ３１０、  Ｓ３１１、  Ｓ３１２、  Ｓ３１３：  処理部１は、配置された形状要素の位置を  ［（−ｄ／ｍ）＊ｉｉ、０、０］  だけずらした上で、サブルーチンＡを起動する。すると、掃引形状の最上面を覆う格子状の点群が  ［（−ｄ／ｍ）＊ｉｉ、０、０］  だけずれた位置に得られるので、処理部１は、これらの座標を  ［（ｄ／ｍ）＊ｉｉ、０、０］  ずらし、正しい位置に修正する。その上で、格子［ｉ、ｊ］に対応する点の座標を、記憶部３の  ｘｓｅｃ［ｊ］［ｍ＊ｉ＋ｉｉ］  へ格納する処理を、全ての点について繰り返す。サブルーチンＡは、得られた点群における最上面の法線方向もリターンするので、処理部１は、座標値と同様に、格子［ｉ、ｊ］に対応する法線方向を、記憶部３の  ｘｎｒｍｌ［ｊ］［ｍ＊ｉ＋ｉｉ］  へ格納する処理を、全ての法線方向について繰り返す。
ステップＳ３１４：  処理部１は、カウンタｉｉを０に初期化し、カウンタｉｉを一つずつ増やしながら、これがｍと等しくなるまで、ステップＳ３１５〜Ｓ３１８までの処理を繰り返し実行する。この繰り返し処理により、今度はｙ軸方向のｎ列分の断面線群が得られる。
ステップＳ３１５、Ｓ３１６、Ｓ３１７、Ｓ３１８：  処理部１は、実質的な処理の内容は、ステップＳ３１０〜Ｓ３１３と同じだが、今度はｙ軸にそって図形をずらしてからサブルーチンＡを起動する。処理部１は、サブルーチンＡにより得られた、掃引形状の最上面を覆う格子状の点群と法線方向を、［ｉ、ｊ］格子に対応する点の座標が記憶部３の  ｙｓｅｃ［ｉ］［ｍ＊ｊ＋ｉｉ］  に、またその点における法線方向が記憶部３の  ｙｎｒｍｌ［ｉ］［ｍ＊ｊ＋ｉｉ］  に格納されるように、処理を繰り返す。
ステップＳ３１９、Ｓ３２０：  処理部１は、サブルーチンＢを起動して、断面線ｘｓｅｃとｙｓｅｃを精密化する。即ち、処理部１は、折れ曲がり点を検出し、その点を点列データに挿入するように記憶部３に記憶する。
ステップＳ３２１：  処理部１は、ｘｙ平面、ｙｚ平面、ｚｘ平面上の三つの格子に基づいて、空間を微小な立方体の集積へ分割する。
ステップＳ３２２：  処理部１は、記憶部３に記憶された掃引形状の最上面のｘ軸方向の断面線ｘｓｅｃと、ｙ軸方向の断面線ｙｓｅｃに基づいて、最上面と各立方体の１２本の辺との交点を算出する。
ステップＳ３２３：  処理部１は、交点の情報に基づいて、マーチングキューブ法により、立方体内部に微小な三角形を配置する。
ステップＳ３２４：  処理部１は、全立方体内部に配置された三角形群を、掃引形状の最上面（工具経路面）として出力部４に出力する。また、処理部１は、このデータを記憶部３に記憶する。
なお、処理部１は、初期データ、処理により求められた中間データまたは最終データ等を適宜記憶部３に記憶し、そこから読み出し、出力部４に出力するようにしてもよい。また、処理部１は、得られた工具経路面に基づき、工具経路を求めるステップをさらに含んでも良い。さらに、処理部１は、工具経路面及び／又は工具経路を表示するステップをさらに含むようにしても良い。
【００３４】
５．実例と評価
本実施の形態の有効性を検証するために、グラフィックスハードウェアの隠面消去機能を利用して、高精度の工具経路面を計算するプログラムを作成し、計算実験をおこなった。
計算には、格子の総数が１，０００×１，０００になるように調整した直交格子を用いた。利用した計算機は、Ｐｅｎｔｉｕｍ  ＩＶ（商標）（１．７ＧＨｚ）をＣＰＵとする、主記憶２ＧＢのパーソナルコンピュータである。このコンピュータには、ＧｅＦｏｒｃｅ３  Ｔｉ５００とよばれる３次元グラフィックス表示のための専用ハードウェアが備えられている。描画する多角形の形状を、ＯｐｅｎＧＬとよばれるライブラリの仕様にしたがってプログラムに記述すると、デプスバッファを用いた隠面消去をハードウェアで実行する機械語コードを、コンパイラが自動生成する。
図２２は、３０，５２８枚の多角形からなる多面体の一例を示す図である。
図２３に、図１７に示した多角形数３０，５２８枚の多面体を、半径１ｍｍのボールエンドミルを用いて切削加工するために、従来の逆オフセット法を用いて工具経路面を計算した結果を示す。
図２４は、通常の逆オフセット法の処理結果を部分拡大した画像の一例を示す図である。この図は図１８の縦壁の部分を拡大表示したものである。壁に垂直な「折れ曲がり」が生じており、工具経路面の精度が不十分であることが分かる。図２５は、本実施の形態による高精度な逆オフセット法の処理結果を部分拡大した画像の一例を示す図である。この図は、同じ切削工具のための工具経路面を、今回提案した高精度な逆オフセット法を用いて計算した結果を示す。従来の方法による結果とは異なり、縦壁の部分から折れ曲がりが消えている。また、この図では、誤差に埋もれて観察することができなかった微細な凹凸が現れていることから、はるかに高精度な工具経路面が得られていることが分かる。
図２６は、高精度な逆オフセット法により得られた工具経路面を用いて計算した、等高線状の工具経路の一例を示す図である。図２７は、高精度な工具経路面に基づいて計算された、等高線状の工具経路を用いた切削加工シミュレーションの結果の一例を示す図である。このような加工シミュレーションの画像から、削り込みの生じない適切な工具経路が生成されていることが分かる。
図２８は、従来の逆オフセット法により得られた工具経路面を用いて工具経路を計算し、切削加工シミュレーションを行った結果の一例を示す図である。二つのシミュレーション結果の比較から、本実施の形態による新しい逆オフセット法に基づく工具経路のほうが、製品の縦壁部分をはるかに美しく仕上げられることが分かる。
以上のように、本実施の形態により得られる高精度な工具経路面を用いて、金型の壁面を等高線状に切削する工具経路を計算する実験的なプログラムを開発した。等高線状の工具経路は、工具経路面をｘｙ平面に平行な面で切断し断面線を得る処理を、切断面の高さを変えながら繰り返しおこなうことで計算できる。各断面線の計算は、工具経路面を覆う微小な三角形と切断面の交線を得る処理と、得られた微小な交線を接続し１本の曲線にまとめる処理に分けられる。われわれの発明した新しい逆オフセット法では、工具経路面を構成する三角形群は、空間を分割するｘ、ｙ、ｚ軸に平行な微小な立方体の内部に定義されている。この立方体の情報を用いると、以下の理由から断面線の計算を高速化できる。
・切断面の高さから、この面と交差する立方体を予め絞り込むことができる。絞り込まれた立方体の内部に格納されている三角形だけが、切断面と交差し得る。
・ある立方体の内部の三角形が切断面と交差するとき、立方体間の隣接関係を用いることで、得られた交線と接続し得る交線を含む立方体を絞り込める。
なお、本発明では、工具は、ボールエンドミル、フラットエンドミル及びラウンドエンドミルに限らず、切削工具、型どり用工具等の適宜の工具が使用可能であり、また、掃引形状は球面及び円筒形に限らず工具の先端形状により楕円面、多角形面、凹凸面など適宜の形状のものなどにも使用できる。また、工作物は金型に限らず、プラスチック、金属等の各材料の様々な工作物にも本発明を適用することが可能である。上述の説明では、主に、必要な又は全デプスデータ、必要な又は全多角形データを処理部と３次元グラフィックス表示部等に入力又は出力しているが、必要な又は全ての各データに限らず、一部の各データをやりとりするようにしても良い。さらには、表面の近似として多面体及び多角形として三角形を例に説明したが、これに限らず適宜の多角形を用いることができる。
本発明の工具経路計算方法又は工具経路計算装置・システムは、その各手順をコンピュータに実行させるための工具経路計算プログラム、工具経路計算プログラムを記録したコンピュータ読み取り可能な記録媒体、工具経路計算プログラムを含みコンピュータの内部メモリにロード可能なプログラム製品、そのプログラムを含むサーバ等のコンピュータ、等により提供されることができる。
【００３５】
【発明の効果】
本発明によると、以上のように、３軸の数値制御（ＮＣ）工作機械用の工具経路を計算する際に、切削工具の製品への削り込みを防止するために生成された、製品の形状を工具の逆形状分膨らませた曲面である高精度な工具経路面を、グラフィックスハードウェアの機能を用いて高速且つ高精度に計算することができる。
また、本発明によると、空間を微小な立方体の集積へ分割し、各立方体の辺と工具経路面の交差の分類に基づいて、工具経路面を精密に近似する多面体を計算することができる。また、本発明によると、ｘｙ平面上の直交格子をｚ軸方向へ立ち上げたものに相当する、ｘｙ平面に垂直な平面群で工具経路面を切断し、その断面図に基づいて立方体の辺と工具経路面の交点を効率的に計算することができる。本発明によると、グラフィックスハードウェアの機能を用いて、断面図の輪郭線上の点を高速かつ高密度にサンプリングすることができる。さらに、本発明によると、グラフィックスハードウェアの機能を用いて、サンプリングされた点における輪郭線の接線方向を正確に計算し、その情報に基づいて断面図を高精度化することができる。
【図面の簡単な説明】
【図１】（ａ）は、金型加工で用いられるボールエンドミルとその工具参照点の位置を示し、（ｂ）は、同じくフラットエンドミルとその工具参照点の位置を示し、（ｃ）は、同じくラウンドエンドミルとその工具参照点の位置を示す説明図。
【図２】（ａ）は、製品表面を滑るボールエンドミルの参照点の描く工具参照面を示し、（ｂ）は、工具の逆形状の参照点が製品表面を滑る時の掃引形状を示す説明図。
【図３】（ａ）は、製品表面を滑るフラットエンドミルの参照点の描く工具参照面を示し、（ｂ）は、工具の逆形状の参照点が製品表面を滑る時の掃引形状を示す説明図。
【図４】（ａ）は、製品表面を滑るラウンドエンドミルの参照点の描く工具参照面を示し、（ｂ）は、工具の逆形状の参照点が製品表面を滑る時の掃引形状を示す説明図。
【図５】（ａ）は、半径（ｒ）のボールエンドミルの逆形状の表面にそって、半径（Ｒ−ｒ）のフラットエンドミルの逆形状を滑らせた様子を示し、（ｂ）は、半径（ｒ）のボールエンドミルの逆形状の掃引形状を計算し、さらにその上面にそって半径（Ｒ−ｒ）のフラットエンドミルの逆形状を滑らせた結果を示す説明図。
【図６】（ａ）は、ボールエンドミルによる切削加工での、球の掃引形状を構成する、球面を示し、同じく（ｂ）は、円筒形を示し、同じく（ｃ）は、厚板形状の一例を示す図。
【図７】（ａ）は、フラットエンドミルによる切削加工での、円板の掃引形状を構成する、斜円筒形を示し、同じく（ｂ）は、厚板形状の一例を示す図。
【図８】ボールエンドミル加工用の工具参照面を得るために、球の掃引形状を構成する球面、円筒形、厚板形状と、格子の中心を通過するＺ軸に平行な直線の交差を調べ、最も上側の交点を選択する様子を示す図。
【図９】フラットエンドミル加工用の工具参照面を得るために、円板の掃引形状を構成する斜円筒形や厚板形状と、格子の中心を通過するＺ軸に平行な直線の交差を調べ、最も上側の交点を選択する様子を示す図。
【図１０】デプスバッファの利用による二つの立方体の隠面消去画像の説明図。
【図１１】急峻な壁形状における逆オフセット法により得られた点群の分布を示す説明図。
【図１２】従来の逆オフセット法（ａ）と、本実施の形態の逆オフセット法（ｂ）の比較図。
【図１３】微小な立方体と逆工具の掃引形状の最上面の間に生じ得る交差パターンを示す図。
【図１４】掃引形状の断面線に基づいて工具経路面と立方体の各辺の交点を計算した例を示す図。
【図１５】隠面消去機能を用いた断面線の算出についての説明図。
【図１６】断面線上の隣接した２点を通過する接線に基づく折れ曲がり点の導出についての説明図。
【図１７】本発明に関するハードウェアの構成図。
【図１８】サブルーチンＡについてのフローチャート。
【図１９】サブルーチンＢについてのフローチャート。
【図２０】メインルーチンについてのフローチャート（１）。
【図２１】メインルーチンについてのフローチャート（２）。
【図２２】３０，５２８枚の多角形からなる多面体の一例を示す図。
【図２３】前図に示した多面体を、半径１ｍｍのボールエンドミルで切削加工する場合の工具経路面の一例を示す図。
【図２４】通常の逆オフセット法の処理結果を部分拡大した画像の一例を示す図。
【図２５】本実施の形態による高精度な逆オフセット法の処理結果を部分拡大した画像の一例を示す図。
【図２６】高精度な逆オフセット法により得られた工具経路面を用いて計算した、等高線状の工具経路の一例を示す図。
【図２７】高精度な工具経路面に基づいて計算された、等高線状の工具経路を用いた切削加工シミュレーションの結果の一例を示す図。
【図２８】従来の逆オフセット法により得られた工具経路面を用いて工具経路を計算し、切削加工シミュレーションを行った結果の一例を示す図。
【図２９】金型加工における削り込みの一例を示す図。
【符号の説明】
１  処理部
２  入力部
３  記憶部
４  出力部
５  ３次元グラフィックス表示部（グラフィックスハードウェア）
【図１】
0003792584.tif 000002
【図２】
0003792584.tif 000003
【図３】
0003792584.tif 000004
【図４】
0003792584.tif 000005
【図５】
0003792584.tif 000006
【図６】
0003792584.tif 000007
【図７】
0003792584.tif 000008
【図８】
0003792584.tif 000009
【図９】
0003792584.tif 000010
【図１０】
0003792584.tif 000011
【図１１】
0003792584.tif 000012
【図１２】
0003792584.tif 000013
【図１３】
0003792584.tif 000014
【図１４】
0003792584.tif 000015
【図１５】
0003792584.tif 000016
【図１６】
0003792584.tif 000017
【図１７】
0003792584.tif 000018
【図１８】
0003792584.tif 000019
【図１９】
0003792584.tif 000020
【図２０】
0003792584.tif 000021
【図２１】
0003792584.tif 000022
【図２２】
0003792584.tif 000023
【図２３】
0003792584.tif 000024
【図２４】
0003792584.tif 000025
【図２５】
0003792584.tif 000026
【図２６】
0003792584.tif 000027
【図２７】
0003792584.tif 000028
【図２８】
0003792584.tif 000029
【図２９】
0003792584.tif 000030