(57)【特許請求の範囲】
【請求項１】
情報処理装置において実行される３次元形状処理方法において、
データ処理部が、トリムされた回転面の形状データの回転面の母線上の所定の点と回転面の軸とが乗る平面を求めるステップと、
データ処理部が、前記平面により前記回転面及び前記回転面上の境界曲線を分割するステップと、
データ処理部が、前記分割された回転面のそれぞれについて、前記平面と前記境界曲線との交点を順次接続することにより閉じたループを形成するステップと、
を有することを特徴とする３次元形状処理方法。
【請求項２】
データ処理部が、前記母線を前記平面に射影した第１の曲線と、該第１の曲線と前記回転面の軸に対して線対称となる第２の曲線を求めるステップを更に有し、
前記閉じたループを形成するステップは、前記第１及び第２の曲線上の前記交点を各曲線に沿って整列し、各曲線上で奇数番目となる交点と偶数番目となる交点を当該曲線で接続することを特徴とする請求項１記載の３次元形状処理方法。
【請求項３】
請求項１又は２に記載の各ステップをコンピュータに実行させるためのプログラムを記憶したことを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、専用の３次元形状処理装置やパーソナルコンピュータなど情報処理装置などで実施される、トリムされている閉じた回転面の曲面処理方法に係わり、特に、他の３次元形状処理システムから得たトリムされている閉じた回転面の３次元形状データを扱えるようにした曲面処理方法に関する。
【０００２】
【従来の技術】
グラフィクス表示装置とコンピュータとを用いたＣＡＤ／ＣＡＭシステムなど３次元形状処理システムでは、従来より、３次元形状を生成したり、生成されている３次元形状を変形させたり、他の３次元形状処理装置などから取得した３次元形状データを用いて３次元形状を生成した際に欠落した形状要素を生成したりしている。なお、３次元形状（３次元立体）とは、例えば境界表現形式のソリッドモデルデータとして生成された形状を指し、その境界表現形式のソリッドモデルとは、稜線や頂点や面というような要素により３次元空間上に閉じた領域を定義し、中身の詰まった立体を表現したものである。
近年、このような３次元形状処理システムにおいては、設計業務などの協業化や分業化の進展と共に、他の３次元形状処理システムから得た３次元形状データを処理するということが広く行われている。ところが、３次元形状処理システムのなかには、図22に示した３次元形状の周面のような閉じた回転面を扱えないものがある。閉じた回転面の縫い目J（回転面の合わさり目，実際に縫い目や合わさり目があるわけではない）の位置における３次元空間上の各点は、図23に示したようなパラメータ空間では（図23において括弧内に示したように、曲面上のすべての位置を２次元座標的なｕ，ｖ二つのパラメータ、例えば、共に０から１までの値で表現している）図24に示すように二つの位置を持つことになるので（図24のパラメータ値は一例である）、実空間（３次元空間）座標値とパラメータ空間の値との対応をとる計算の際に特別な取り扱いが必要になるからである。
このように、計算において特別の扱いが必要であるということは計算コストがかかるということであり、そのため、３次元形状処理システムによっては、閉じた回転面、特にトリムされた回転面には対応せず、自システム内で３次元形状データを生成する場合にはそのような回転面を発生させないようにしている。しかし、ＩＧＥＳ(Initial Graphics Exchange Specification)形式など標準フォーマットを用いたインタフェースにより他の３次元形状処理システムから３次元形状データを取り込む場合はトリムされた閉じた回転面が入力されてしまい、問題が発生してしまう。そのため、３次元形状データを受け取る側の３次元形状処理システムがトリムされた閉じた回転面を扱えない場合は、標準フォーマットを介して３次元形状データを受け取ることができないということになる。
また、従来の技術においては、３次元形状システム間で受け渡しされる外部境界曲線は連続であり且つ閉じていることとＩＧＥＳが規定しているとおりに、受け渡しされる形状データでは連続した一つの外部境界曲線として扱っていても、図25に示すようなトリムされた回転面の外部境界曲線であったりすると、実際の幾何情報は図26に示すような不連続な複数の外部境界曲線から構成されているという問題がある。
【０００３】
【発明が解決しようとする課題】
前記のように、従来の技術においては、３次元形状データを受け取る側の３次元形状処理システムがトリムされた閉じた回転面を扱えない場合、標準フォーマットを介して３次元形状データを受け取ることができないという問題があった。また、受け渡しされる形状データでは連続した一つの外部境界曲線として扱っていても、実際の幾何情報は不連続な複数の外部境界曲線から構成されていて処理することができないという問題があった。
本発明の目的は、このような従来技術の問題を解決し、トリムされている閉じた回転面の３次元形状データを受け取っても容易に処理できるし、その際、連続した一つの外部境界曲線として扱っていても、実際には不連続な複数の外部境界曲線である場合でも処理できるようにした３次元形状処理方法を提供することにある。
【０００４】
【課題を解決するための手段】
前記の課題を解決するために、請求項１記載の発明では、情報処理装置において実行される３次元形状処理方法において、データ処理部が、トリムされた回転面の形状データの回転面の母線上の所定の点と回転面の軸とが乗る平面を求めるステップと、データ処理部が、前記平面により前記回転面及び前記回転面上の境界曲線を分割するステップと、データ処理部が、前記分割された回転面のそれぞれについて、前記平面と前記境界曲線との交点を順次接続することにより閉じたループを形成するステップと、を有することを特徴とする。
また、請求項２記載の方法では、請求項１記載の発明において、データ処理部が、前記母線を前記平面に射影した第１の曲線と、該第１の曲線と前記回転面の軸に対して線対称となる第２の曲線を求めるステップを更に有し、前記閉じたループを形成するステップは、前記第１及び第２の曲線上の前記交点を各曲線に沿って整列し、各曲線上で奇数番目となる交点と偶数番目となる交点を当該曲線で接続することを特徴とする。
また、請求項３記載の発明では、請求項１又は２に記載の各ステップをコンピュータに実行させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体を特徴とする。
【０００６】
【発明の実施の形態】
以下、図面により本発明の実施の形態を詳細に説明する。
図１は本発明の実施の形態を例示する３次元形状処理装置の構成ブロック図である。図示するように、この実施の形態の３次元形状処理装置は、プログラムを記憶するメモリ（例えばＲＡＭ）およびそのプログラムに従って動作するＣＰＵを有して、３次元形状モデルを生成したり、本発明に係わるデータ処理を行ったりするデータ処理部１、マウスやキーボードを有して、必要な指示や情報などを入力する入力装置２、３次元形状モデルなどを表示する表示装置３、３次元形状モデルなどを用紙上に出力するプロッタ４、各種データを一時的に記憶するメモリ（例えばＲＡＭ）５、複数の３次元形状モデルデータ（以下、３次元形状データと略す）やプログラムなどを記憶する外部記憶装置（例えばハードディスク装置）６、着脱可能な記憶媒体を駆動する記憶媒体駆動装置７などを備えている。なお、前記３次元形状データは、点・曲線・曲面などの幾何形状データと、この幾何形状データの相関関係を示す位相データとから成っている。また、記憶媒体駆動装置７は他の３次元形状処理装置などにおいて生成された３次元形状データを入力するためのものであるが、記憶媒体駆動装置７の代わりにデータ通信手段を備え、データ通信手段を介して３次元形状データ（以下、形状データと略す）を入力してもよい。
【０００７】
図２にこの実施の形態の動作フローを示す。以下、図２に従って、この実施例の動作を説明する。
まず、他の３次元形状処理装置などで生成された形状データを記憶媒体駆動装置７により入力し、データ処理部１がその形状データを外部記憶装置６に格納する（Ｓ１）。なお、この形状データ中にはトリムされている閉じた回転面のデータが含まれているものとする。また、回転面は図23に示したようなｕ，ｖ二つのパラメータで表現されているものとする（これをパラメータ空間表現と呼ぶ。なお、図23に示したパラメータ値は一例である）。
その後、データ処理部１は利用者の指示に応じて処理対象の前記形状データを外部記憶装置６から読み出し、読み出した形状データを調べることにより一つの外部境界曲線として与えられているその外部境界曲線が連続か否かを判定する（Ｓ２）。なお、外部境界曲線とは、他の境界曲線によって外側を囲まれていない境界曲線であり、一つの外部境界曲線とは、一つの識別符号を与えられた境界曲線で、一つまたは複数の曲線（直線を含む）から成る。そのデータ構成を図３に示す。図３の例では、一つの外部境界曲線を示す識別符号（図示していない）に続いて、４本の曲線の形状データ（Ａ，Ｂ，Ｃ，Ｄが各形状データを示している）が接続順に並んでいる。例えばスプライン曲線であれば、二つの端点の座標と複数の制御点の座標などが１本の曲線の形状データとして与えられるわけである。したがって、外部境界曲線が連続か否かを判定するには、図３に示したような構成のデータを先頭から順に辿って、各曲線の終点の座標値と次の曲線の始点の座標値とが一致するか否かを判定するのである。
その結果、例えば外部境界曲線が図４に示すように不連続な複数の曲線から成っていてそれらがつながれていなかったならば、外部境界曲線は連続でないと判定される（Ｓ２でNo）。そうすると、データ処理部１は一つの外部境界曲線として与えられた境界曲線の形状データを不連続箇所で分割し、それぞれを独立した境界曲線とする（Ｓ３）。それぞれに異なった識別符号を付与するのである。図５に、これを概念的に示したデータ構成図を示す。
【０００８】
次に、データ処理部１は分割したそれぞれの境界曲線が閉じているか否かを判定する（Ｓ４）。それぞれの境界曲線の始点の座標値と終点の座標値とが一致するか否かを判定するのである。その結果、例えば図４に示した境界曲線Ａ，Ｃは閉じていないと判定され（Ｓ４でNo）、このような場合には、離れている箇所で隣接している両側の境界曲線の幾何情報が共通か否かを確認し、共通であればその幾何情報を用いて閉じた曲線になるように接続する（Ｓ５）。例えば境界曲線Ａ，Ｃが円弧であり、その中心座標および半径が同じであれば、その中心座標および半径の円弧で接続するのであり、この処理により独立させた二つの境界曲線の形状データは一つにまとめられる（図６参照）。
こうして、処理対象の回転面の形状データとして閉じた境界曲線の集合の形状データが得られると、データ処理部１は回転面を周方向に２分割することにより、360度に亘るようなトリムがあっても回転面を構成する個々の曲面が360度に亘らないようにして、その個々の曲面をパラメータ座標系で表現したとき、一つの実座標（３次元空間における座標）が二つの値を持つことがないようにする（Ｓ６）。
【０００９】
一方、ステップＳ２において外部境界曲線が連続であると判定された場合には連続した外部境界曲線を用い、前記と同様の理由から回転面分割処理２を実行する（Ｓ７）。以下、図７に示す動作フローに従って回転面分割処理１（Ｓ６）の動作を説明する。まず、データ処理部１が回転面を２分割する平面Ｐを求める（Ｓ１１）。なお、求める平面は、回転面の母線の中間の点と回転面の軸とが乗る平面とする（図８参照）。母線全体が平面上に乗るとは限らないので、母線の中間の点というように限定している。但し、母線の中間の点が回転面の軸上にある場合には中間の点の代わりに別の所定の点、例えば母線の始点または終点を用いる。続いて、データ処理部１は前記母線を得られた平面上に射影する（Ｓ１２）。つまり、前記母線上のすべての点から平面に垂直に下ろした直線が平面と交わる点を結んだ曲線を求めるのである。それには、例えば母線の各制御点から平面に垂直に下ろした線が平面と交わる点である平面上の制御点を求め、その制御点によって決まる曲線を求めればよい。なお、制御点とは、図２１に示した例で言えばＶ１〜Ｖ４のことであり、これらの制御点によって決まる曲線（図２１に太線示した曲線）上の各座標値はその曲線上の位置によってそれぞれの制御点の座標値の重みを変えるための係数をそれぞれの制御点の座標値に乗じた値を加算して求められる。次に、射影された曲線が得られた平面上の母線として採用可能かどうかを複数のサンプル点について真の値（射影前の母線上のサンプル点を回転面の軸を中心に回転させたときに平面と交わる点の座標値）との誤差を求めることにより検査する。そのため、射影前の母線上のいくつかの点をサンプル点とし、それぞれについて次の処理を行う。まず、サンプル点と回転面の軸との距離、およびそのサンプル点を軸上に射影した点の位置を求める（図９参照）。さらに、平面Ｐ上でサンプル点と同じ軸上射影点を持ち、同じ軸との距離を持つ点を求め（図１０参照）、その点と射影された曲線との距離、つまり誤差を求める。そして、すべてのサンプル点についてこの誤差が許容値以内か否かを判定し、許容値以内であれば射影された曲線を得られた平面上の母線として採用する（Ｓ１２）。それに対して、誤差が許容値を超えていれば射影前の母線を回転面の軸を中心に回転させ、その回転面と前記平面との交線を求め（図１１参照）、その交線を平面に射影した母線として採用する（Ｓ１２）。得られた平面Ｐ上に射影された母線を曲線Ｇ１とし、続いて、曲線Ｇ１を回転面の軸を中心に１８０度回転させた曲線Ｇ２を求める（図１２参照）（Ｓ１３）。このようにして求められた曲線Ｇ２は曲線Ｇ１と共に平面Ｐと回転面とが交わる交線になる。図１３に、回転面上の境界曲線と平面Ｐとが交わって、平面Ｐにより境界曲線の集合が分割される状態を示す。図１３において、黒丸の点は境界曲線と平面Ｐとが交わっている交点を示している。図１４に、分割されたそれぞれの側の境界曲線を示す。平面Ｐと境界曲線との交点は分割前の元の境界曲線が閉じているので偶数個になる（図１４参照）。但し、平面Ｐに境界曲線が接している場合、その接点を交点とはみなさない。さらに、母曲面も平面Ｐで分割する（図１５参照）。
【００１０】
次に、平面Ｐにより分割された一方の回転面側の境界曲線について以下の処理を行う。なお、この境界曲線のなかには、平面Ｐとの交点を持たない境界曲線が閉じた状態のままで含まれる。
まず、データ処理部１は平面Ｐと境界曲線の交点を曲線G1のパラメータ値（例えば曲線G1の始点がパラメータ値0、終点が1.0）順に整列させ、各交点に整列順に番号を付与する（図16参照）。交点が曲線G1上にあるので、このような整列が可能なのである。
続いて、交点に番号１が付与された境界曲線と番号２が付与された境界曲線、番号３が付与された境界曲線と番号４が付与された境界曲線というように奇数番号が付与された境界曲線とそれに続く偶数番号が付与された境界曲線とを曲線G1の一部分を用いてつなぎ、１本の曲線として形状データを入れ替える。例えば番号１と番号２とをつなぎ、番号５と番号６とをつなぐことによってつながった曲線Ｅ，Ｆ，Ｇはつなぐために用いた曲線（G1の一部）を併せて１本の境界曲線として扱うのである（図17参照）。なお、曲線Ｈはこの時点で閉じた境界曲線となる。このように、つなぐ曲線に曲線G1の一部を用いるので、曲線G1をそのパラメータ値で分割することにより、つなぐ曲線の形状データは容易に得られる。また、ループのうち、曲線G1との交点を持たないものを内部境界、その他を外部境界とする。外部境界が複数存在して、且つ内部境界が存在する場合には、その内部境界がどの外部境界の内部にあるかを幾何学的に判断する。また、ある外部境界の内部にある内部境界はその外部境界に属する内部境界とする。
G1側の処理が終わると、G2側も同様に番号を付け、同様に処理すると、境界曲線はすべて閉じたループになる（図18参照）（Ｓ14）。トリム曲面の形状データは、このようにして生成された境界曲線情報と母曲面の情報であるので、それらの組み合わせを作ると、それが分割された一方の曲面の形状データとなる（図19参照）。
さらに、平面Ｐにより分割された他方の回転面についても同様の処理を行い（Ｓ15）、回転面の必要な形状データが揃う（図20参照）。このようにして得られたトリム曲面の和集合はトリム曲面の元の形状データが表していたものと同一となり、全く同じ３次元形状モデルを表していることになる。
【００１１】
また、図２に示した、ステップＳ７の回転面分割処理２では、例えば回転面の縫い目に沿った曲線で境界曲線がつながれている形状データを他の３次元形状処理システムから与えられる。そこで、この実施例では、平面Ｐと回転面との二つの交線G1,G2のうち、例えば交線G2が縫い目の位置に位置付けられるように平面Ｐを求めることにより、境界曲線をつないでループ状にする際、G2側をつながなくてもよいようにする。つまり、曲線G2側では境界曲線が閉じているとみなされるのである。
回転面分割処理２のその他の処理内容は前記した回転面分割処理１（ステップＳ６の処理）と同じである。
なお、前記の説明では、連続した一つの外部境界曲線として与えられたトリムされた回転面の形状データが幾何的に連続していないと判定されたならば、連続した一つの外部境界曲線として与えられた境界曲線の形状データを独立した複数の境界曲線としての形状データに変換するようにしたが、このような変換を行うことなく、その後の処理を行うことも可能である。しかし、独立の複数の境界曲線に変換する方法では、他の３次元形状処理システムへの受け渡しを伴わない内部用に用意した、独立の複数の境界曲線を有する、トリムされた閉じた回転面の形状データを生成する手段を共通に用いることができる。
また、以上の説明は図１に示した３次元形状処理装置を用いた場合で行ったが、本発明によった３次元形状処理方法に従ってプログラミングしたプログラムを例えば着脱可能な記憶媒体に記憶させ、その記憶媒体をそれまで本発明によった３次元形状処理を行えなかったパーソナルコンピュータなど情報処理装置に装着することにより、そのような情報処理装置においても本発明によった３次元形状処理を実現することができる。
【００１２】
【発明の効果】
以上説明したように、本発明の３次元形状処理方法によれば、トリムされた回転面の形状データの回転面の母線上の所定の点と回転面の軸とが乗る平面を求め、求めた平面により回転面及び回転面上の境界曲線を分割し、分割した回転面のそれぞれについて、平面と境界曲線との交点を順次接続することにより閉じたループを形成することで、トリムされている閉じた回転面の３次元形状データを受け取っても容易に処理することが可能になる。
【図面の簡単な説明】
【図１】本発明の実施の形態を示す３次元形状処理装置の構成ブロック図である。
【図２】本発明の実施の形態を示す３次元形状処理方法の動作フロー図である。
【図３】本発明の実施の形態に係わる３次元形状処理方法の説明図である。
【図４】本発明の実施の形態に係わる３次元形状処理方法の他の説明図である。
【図５】本発明の実施の形態を示す３次元形状処理方法の説明図である。
【図６】本発明の実施の形態を示す３次元形状処理方法の他の説明図である。
【図７】本発明の実施の形態を示す３次元形状処理方法の他の動作フロー図である。
【図８】本発明の実施の形態を示す３次元形状処理方法の他の説明図である。
【図９】本発明の実施の形態を示す３次元形状処理方法の他の説明図である。
【図１０】本発明の実施の形態を示す３次元形状処理方法の他の説明図である。
【図１１】本発明の実施の形態を示す３次元形状処理方法の他の説明図である。
【図１２】本発明の実施の形態を示す３次元形状処理方法の他の説明図である。
【図１３】本発明の実施の形態を示す３次元形状処理方法の他の説明図である。
【図１４】本発明の実施の形態を示す３次元形状処理方法の他の説明図である。
【図１５】本発明の実施の形態を示す３次元形状処理方法の他の説明図である。
【図１６】本発明の実施の形態を示す３次元形状処理方法の他の説明図である。
【図１７】本発明の実施の形態を示す３次元形状処理方法の他の説明図である。
【図１８】本発明の実施の形態を示す３次元形状処理方法の他の説明図である。
【図１９】本発明の実施の形態を示す３次元形状処理方法の他の説明図である。
【図２０】本発明の実施の形態を示す３次元形状処理方法の他の説明図である。
【図２１】本発明の実施の形態を示す３次元形状処理方法の他の説明図である。
【図２２】本発明の実施の形態を示す３次元形状処理方法の他の説明図である。
【図２３】本発明の実施の形態を示す３次元形状処理方法の他の説明図である。
【図２４】本発明の実施の形態を示す３次元形状処理方法の他の説明図である。
【図２５】本発明の実施の形態を示す３次元形状処理方法の他の説明図である。
【図２６】本発明の実施の形態を示す３次元形状処理方法の他の説明図である。
【符号の説明】
１  データ処理部
２  入力装置
３  表示装置
４  プロッタ
５  メモリ
６  外部記憶装置
７  記憶媒体駆動装置
【図１】
0004040821.tif 000002
【図２】
0004040821.tif 000003
【図３】
0004040821.tif 000004
【図４】
0004040821.tif 000005
【図５】
0004040821.tif 000006
【図６】
0004040821.tif 000007
【図７】
0004040821.tif 000008
【図８】
0004040821.tif 000009
【図９】
0004040821.tif 000010
【図１０】
0004040821.tif 000011
【図１１】
0004040821.tif 000012
【図１２】
0004040821.tif 000013
【図１３】
0004040821.tif 000014
【図１４】
0004040821.tif 000015
【図１５】
0004040821.tif 000016
【図１６】
0004040821.tif 000017
【図１７】
0004040821.tif 000018
【図１８】
0004040821.tif 000019
【図１９】
0004040821.tif 000020
【図２０】
0004040821.tif 000021
【図２１】
0004040821.tif 000022
【図２２】
0004040821.tif 000023
【図２３】
0004040821.tif 000024
【図２４】
0004040821.tif 000025
【図２５】
0004040821.tif 000026
【図２６】
0004040821.tif 000027