(57)【特許請求の範囲】
【請求項１】
自由曲面を扱うことができる３次元形状処理システムの曲面処理方法であって、処理対象のトリムされている自由曲面が閉じているか否かを判定し、閉じていると判定したならば、閉じていない曲面に変換すると共に、トリム領域が閉じた縫い目の部分をまたいでいるか否かを判定し、またいでいると判定したならば、トリム領域が縫い目をまたがないように処理対象の自由曲面を変換することを特徴とする３次元形状処理方法。
【請求項２】
請求項１記載の３次元形状処理方法において、トリム領域が縫い目をまたいでいると判定したならば、処理対象の自由曲面と同じ形状で同じ位置にあるもう一つの自由曲面を生成し、前記処理対象の自由曲面を、縫い目の位置で前記二つの自由曲面を接続した曲面に変換することを特徴とする３次元形状処理方法。
【請求項３】
自由曲面を扱うことができる３次元形状処理システムの曲面処理方法であって、処理対象のトリムされている自由曲面が閉じているか否かを判定する第1の工程と、前記第1の工程において閉じていると判定した場合にトリム領域が閉じた縫い目の部分をまたいでいるか否かを判定する第２の工程と、前記第２の工程においてトリム領域が縫い目をまたいでいると判定した場合に処理対象の自由曲面と同じ形状で同じ位置にあるもう一つの自由曲面を生成し、前記処理対象の自由曲面と生成した自由曲面とを接続した曲面に変換する第３の工程と、前記第３の工程により前記処理対象の自由曲面と生成した自由曲面とを接続した曲面、または前記第２の工程においてトリム領域が縫い目をまたいでいないと判定した場合の前記処理対象の自由曲面からトリム領域を含む必要な部分だけを取り出す第４の工程と、を備えることを特徴とする３次元形状処理方法。
【請求項４】
プログラムを記憶した記憶媒体であって、請求項１乃至請求項３の何れか一項に記載の３次元形状処理方法に従ってプログラミングしたプログラムを記憶させた構成にしたことを特徴とする記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、専用の３次元形状処理装置やパーソナルコンピュータなど情報処理装置などで実施される、トリムされている閉じた自由曲面の３次元形状処理方法に係わり、特に、トリムされている閉じた自由曲面を扱えない３次元形状処理システムであっても他の３次元形状処理システムから得たトリムされている閉じた自由曲面の３次元形状データを扱えるようにした３次元形状処理方法に関する。
【０００２】
【従来の技術】
従来より、グラフィクス表示装置とコンピュータとを用いたＣＡＤ／ＣＡＭシステムなど３次元形状処理システムでは、３次元形状を生成したり、生成されている３次元形状を変形させたり、他の３次元形状処理装置などから取得した３次元形状データを用いて３次元形状を生成した際に欠落した形状要素を生成したり、３次元形状上で様々な判定を行ったりしている。なお、３次元形状（３次元立体）とは、例えば境界表現形式のソリッドモデルデータとして生成された形状を指し、その境界表現形式のソリッドモデルとは、稜線や頂点や面というような要素により３次元空間上に閉じた領域を定義し、中身の詰まった立体を表現したものである。
近年、このような３次元形状処理システムにおいては、設計業務などの協業化や分業化の進展と共に、他の３次元形状処理システムから得た３次元形状データを処理するということが広く行われている。ところが、３次元形状処理システムのなかには、図９に示した３次元形状の周面のような閉じた自由曲面を扱えないものがある。閉じた自由曲面の縫い目（図９にｖ方向の太線で示した曲面の合わさり目，実際に縫い目や合わさり目があるわけではない）の位置における３次元空間上の各点は、図10に示したようなパラメータ空間では｛図示したように、曲面上のすべての位置を２次元座標的なｕ，ｖ二つのパラメータ（図10において括弧内に示している、共に０から１までの値）で表現している｝図11に示すように縫い目の各部に対して二つの位置｛例えば、位置（０，０）と位置（１，０）、位置（０，１）と（１，１）｝を持つことになるので（図11のパラメータ値は一例である）、実空間（３次元空間）座標値とパラメータ空間の値との対応をとる計算の際に特別な取り扱いが必要になるからである。
【０００３】
さらに、閉じた曲面の縫い目をまたいでいるトリム領域（与えられた自由曲面から切り出される有効領域とか前記曲面から切り捨てられる有効でない領域）がある場合には、このトリム領域がパラメータ空間上で二つの領域に分かれて存在することになり、パラメータ空間の座標値（ｕ軸，ｖ軸共、０から１までの値である）を利用する計算においては、同様に特別の扱いが必要になる。一つであるべきトリム領域が分かれている（切れている）と、トリム領域を扱う際、曲面上をパラメータで連続的に辿る処理を行うとき、縫い目の部分で辿れなくなってしまうというようなことがあるからである。
このように、計算において特別の扱いが必要であるということは計算コストがかかるということであり、そのため、３次元形状処理システムによっては、閉じた自由曲面には対応せず、自システム内で３次元形状データを生成する場合には閉じた自由曲面を発生させないようにしている。しかし、標準フォーマットを用いたインタフェースにより他の３次元形状処理システムから３次元形状データを取り込む場合は閉じた自由曲面が入力されてしまい、問題が発生してしまう。そのため、３次元形状データを受け取る側の３次元形状処理システムが閉じた自由曲面を扱えない場合は、ＩＧＥＳ(Initial Graphics Exchange Specification)形式など標準フォーマットを介して３次元形状データを受け取ることができないということになる。
自由曲面がトリムされていない場合には予め例えば図12に示すように分割を行うことで（図12の例では点線で３分割している。なお、実践は縫い目である）閉じられた状態を回避して対応することもできたが、トリムされている場合は分割することもできない。曲面の分割する部分がトリム領域と干渉する場合、分割された領域毎に新たなトリム領域を求めねばならず、そのため、計算コストが大きくなるからである。また、形状によっては、正しく処理できない場合もあった。
【０００４】
【発明が解決しようとする課題】
前記のように、従来技術においては、トリムされている閉じた自由曲面を含む３次元形状データの処理が困難であるという問題があった。また、トリム領域が自由曲面の縫い目をまたいでいる場合の処理はさらに困難であった。
本発明の課題は、このような従来技術の問題を解決し、トリムされている閉じた自由曲面の処理、さらには、トリム領域が自由曲面を閉じた縫い目の箇所にある場合の自由曲面の処理を容易に実現することができる３次元形状の曲面処理方法を提供することにある。
【０００５】
【課題を解決するための手段】
前記の課題を解決するために、請求項１記載の発明では、自由曲面を扱うことができる３次元形状処理システムの曲面処理方法であって、処理対象のトリムされている自由曲面が閉じているか否かを判定し、閉じていると判定したならば、閉じていない曲面に変換すると共に、トリム領域が閉じた縫い目の部分をまたいでいるか否かを判定し、またいでいると判定したならば、トリム領域が縫い目をまたがないように処理対象の自由曲面を変換する方法にした。
また、請求項２記載の発明では、請求項１記載の発明において、トリム領域が縫い目をまたいでいると判定したならば、処理対象の自由曲面と同じ形状で同じ位置にあるもう一つの自由曲面を生成し、前記処理対象の自由曲面を、縫い目の位置で前記二つの自由曲面を接続した曲面に変換する方法にした。
また、請求項３記載の発明では、自由曲面を扱うことができる３次元形状処理システムの曲面処理方法であって、処理対象のトリムされている自由曲面が閉じているか否かを判定する第１の工程と、前記第1の工程において閉じていると判定した場合にトリム領域が閉じた縫い目の部分をまたいでいるか否かを判定する第２の工程と、前記第２の工程においてトリム領域が縫い目をまたいでいると判定した場合に処理対象の自由曲面と同じ形状で同じ位置にあるもう一つの自由曲面を生成し、前記処理対象の自由曲面と生成した自由曲面とを接続した曲面に変換する第３の工程と、前記第３の工程により前記処理対象の自由曲面と生成した自由曲面とを接続した曲面、または前記第２の工程においてトリム領域が縫い目をまたいでいないと判定した場合の前記処理対象の自由曲面からトリム領域を含む必要な部分だけを取り出す第４の工程と、を備えるようにした。
また、請求項４記載の発明では、プログラムを記憶した記憶媒体であって、請求項１乃至請求項３の何れか一項に記載の３次元形状処理方法に従ってプログラミングしたプログラムを記憶させたプログラムに構成にした。
【０００６】
前記のような手段にしたので、請求項１記載の発明では、閉じていると判定したならば、トリム領域が閉じた縫い目の部分をまたいでいるか否かを判定し、またいでいると判定したならば、トリム領域が縫い目をまたがないように処理対象の自由曲面を変換する。
請求項２記載の発明では、請求項１記載の発明において、トリム領域が縫い目をまたいでいると判定したならば、処理対象の自由曲面と同じ形状で同じ位置にあるもう一つの自由曲面を生成し、前記処理対象の自由曲面を、前記二つの自由曲面を縫い目の位置で接続した曲面に変換する。
請求項３記載の発明では、トリムされている閉じた自由曲面の処理、さらには、トリム領域が自由曲面を閉じた縫い目の箇所にある場合の自由曲面の処理を容易に実現する。
請求項４記載の発明では、請求項１、請求項２、または請求項３記載の３次元形状処理方法に従ってプログラミングしたプログラムが例えば着脱可能な記憶媒体に記憶される。
【０００７】
【発明の実施の形態】
以下、図面により本発明の実施の形態を詳細に説明する。
図１は本発明の一実施形態を示す３次元形状処理装置の構成ブロック図である。図示したように、この実施形態の３次元形状処理装置は、プログラムを記憶するメモリ（例えばＲＡＭ）およびそのプログラムに従って動作するＣＰＵを有して、３次元形状モデルを生成したり、本発明に係わるデータ処理を行ったりするデータ処理部１、マウスやキーボードを有して、必要な指示や情報などを入力する入力装置２、３次元形状モデルなどを表示する表示装置３、３次元形状モデルなどを用紙上に出力するプロッタ４、各種データを一時的に記憶するメモリ（例えばＲＡＭ）５、複数の３次元形状モデルデータ（以下、３次元形状データと略す）やプログラムなどを記憶する外部記憶装置（例えばハードディスク装置）６、着脱可能な記憶媒体を駆動する記憶媒体駆動装置７などを備えている。なお、前記３次元形状データは、点・曲線・曲面などの幾何形状データと、この幾何形状データの相関関係を示す位相データとから成っている。また、記憶媒体駆動装置７は他の３次元形状処理装置などにおいて生成された３次元形状データを入力するためのものであるが、記憶媒体駆動装置７の代わりにデータ通信手段を備え、データ通信手段を介して３次元形状データを入力してもよい。
【０００８】
図２に、本発明の一実施形態の動作フローを示す。以下、図２などに従って、この実施形態の動作を説明する。
まず、他の３次元形状処理装置などで生成された３次元形状データを記憶媒体駆動装置７により入力し、データ処理部１がその３次元形状データを外部記憶装置６に格納する（ステップＳ１）。また、データ処理部１はその３次元形状データ中にトリムされている（与えられた自由曲面から一部だけを有効領域として切り出したり、逆に一部を切り捨てたりする）閉じた自由曲面があるか否かを判定する（ステップＳ２）。なお、閉じた自由曲面とは、例えば図９に示したような筒状の３次元形状の周面である。また、自由曲面は図10に示したようなｕ，ｖ二つのパラメータで表現されているものとする（これをパラメータ空間表現と呼ぶ。なお、図10に示したパラメータ値は一例である）。以下に、自由曲面が閉じているか否かを調べる方法を示す。
【０００９】
（１）まず、ｕ方向について調べる。なお、自由曲面のｕ方向の両端は図３に示すように曲線（太く示した曲線）を成している。
（２）この両端の曲線が同一形状且つ同一位置であると判断された場合、曲面は閉じているとする。なお、二つの曲線が同一か否かは、取得している３次元形状データを調べ、両端の曲線、つまりｕの値が一定（例えば、ｕの値が０とか１）の等パラメータ曲線が同じデータであるか否かにより判断する。
（３）前記（２）のように、全く同じデータでなくても、つまり二つの曲線の両端点および数個のサンプル点が所定値以下の微少な差しか持たない場合も、同一形状であると判断する。
（４）ｖ方向についても、同様にして調べる。
この結果、ｕ方向もｖ方向も閉じていないと判定したならば（ステップＳ２でNo）、曲面の修正を行う必要がないので、この動作フローから抜ける。また、トリムがないと判定した場合も（ステップＳ２でNo）この動作フローから抜ける。
それに対して、トリムされている自由曲面のｕ方向またはｖ方向が閉じていると判定したならば（ステップＳ２でYes）、データ処理部１は曲面中のトリム領域が縫い目（曲面の両端の合わさった部分）をまたいでいるか否かを次のようにして判定する（ステップＳ３）。
（１）パラメータ空間表現でのトリム境界曲線（トリム領域を囲む境界曲線）を用いて判定する。
（２）図４において、４辺形はパラメータ空間表現での自由曲面の範囲を示し、ハッチされた部分がトリム領域（例えば有効領域として切り出す領域）を示す。
図４(a)は自由曲面の閉じた部分である縫い目をまたいでいない状態、図４(b)は縫い目をまたいでいる状態である。このような図から明らかなように、例えば縫い目がｕ方向にある場合、パラメータ空間表現でのトリム領域のｕ方向最大値が自由曲面の範囲の最大値より大きいか否かにより、トリム領域が縫い目をまたいでいるか否かを判定することができる。
【００１０】
こうして、トリム領域が縫い目をまたいでいると判定したならば（ステップＳ３でYes）、データ処理部１は図５に示すように処理対象である前記自由曲面Ａと同じ形状を持つもう一つの自由曲面Ｂを生成する（ステップＳ４）。なお、図５は二つの自由曲面Ａ、Ｂの断面である。実際には、二つの自由曲面は全く一致している。したがって、例えばｕ方向に閉じている場合、それぞれの自由曲面のｕ方向の各最大値および各最小値を結んで成るそれぞれの等パラメータ曲線は一致している。また、図５において、符号ｊは縫い目を示している。
そこで、自由曲面Ａのｕ方向の最大値および自由曲面Ｂのｕ方向の最小値の等パラメータ曲線の場所で自由曲面Ａと自由曲面Ｂとを接続した新しい自由曲面をつくる（図６参照）（ステップＳ５）。なお、図６において、黒丸は接続点を示している。自由曲面Ａのｕ方向パラメータの最小値をU0、最大値をU1とすると、接続後の自由曲面は、ｕ方向パラメータの最小値がU0、最大値が２×U1−U0である曲面となる。この新しい自由曲面におけるトリム領域を図７に示す。
トリム領域が有効領域（切り出す領域）で、したがって、他の領域が不要である場合は、続いて、必要部分のみを取り出す。トリム領域のｕパラメータの最大値と最小値を求めて自由曲面のそのｕ方向についての必要部分だけを取り出すのである（図８参照）（ステップＳ６）。
それに対して、ステップＳ３においてトリム領域が縫い目をまたがっていないと判定したならば（ステップＳ３でNo）、直ちにステップＳ６へ進み、トリム領域が有効領域で、したがって、他の領域が不要である場合、必要部分のみを取り出す。
以上、図１に示した構成の３次元形状処理装置の場合で説明したが、このような本発明によった３次元形状処理方法に従ってプログラミングしたプログラムを例えば着脱可能な記憶媒体に記憶させ、その記憶媒体をそれまで本発明によった曲面処理を行えなかったパーソナルコンピュータなど情報処理装置に装填することにより、そのような情報処理装置においても本発明によった曲面処理を行うことが可能になる。
【００１１】
【発明の効果】
以上説明したように、本発明によれば、請求項１記載の発明では、閉じていると判定したならば、閉じていない曲面に変換すると共に、トリム領域が閉じた縫い目の部分をまたいでいるか否かを判定し、またいでいると判定したならば、トリム領域が縫い目をまたがないように処理対象の自由曲面を変換するので、トリムされている閉じた自由曲面を含む３次元形状データが与えられても容易に処理することができると共に、トリムされている閉じた自由曲面を含む３次元形状データが与えられ、そのトリム領域が自由曲面を閉じた縫い目の箇所にある場合でも容易に処理することができる。
また、請求項２記載の発明では、請求項１記載の発明において、トリム領域が縫い目をまたいでいると判定したならば、処理対象の自由曲面と同じ形状で同じ位置にあるもう一つの自由曲面を生成し、前記処理対象の自由曲面が、縫い目の位置で前記二つの自由曲面を接続した曲面に変換するので、縫い目をまたがず且つ閉じていない曲面に容易に変換することができる。
また、請求項３記載の発明によれば、トリムされている閉じた自由曲面の処理、さらには、トリム領域が自由曲面を閉じた縫い目の箇所にある場合の自由曲面の処理を容易に実現することができる。
また、請求項４記載の発明では、請求項１乃至請求項３の何れか一項に記載の３次元形状処理方法に従ってプログラミングしたプログラムを例えば着脱可能な記憶媒体に記憶させることができるので、その記憶媒体をそれまで請求項１、請求項２、または請求項３記載の発明によった曲面処理を行えなかったパーソナルコンピュータなど情報処理装置に装填することにより、そのような情報処理装置においても請求項１乃至３記載の発明の効果を得ることができる。
【図面の簡単な説明】
【図１】本発明の一実施形態を示す３次元形状処理装置の構成ブロック図である。
【図２】本発明の一実施形態を示す３次元形状処理方法の動作フロー図である。
【図３】本発明の一実施形態を示す３次元形状処理方法の説明図である。
【図４】本発明の一実施形態を示す３次元形状処理方法の他の説明図である。
【図５】本発明の一実施形態を示す３次元形状処理方法の他の説明図である。
【図６】本発明の一実施形態を示す３次元形状処理方法の他の説明図である。
【図７】本発明の一実施形態を示す３次元形状処理方法の他の説明図である。
【図８】本発明の一実施形態を示す３次元形状処理方法の他の説明図である。
【図９】本発明および従来技術に係わる３次元形状処理方法の説明図である。
【図１０】本発明および従来技術に係わる３次元形状処理方法の他の説明図である。
【図１１】本発明および従来技術に係わる３次元形状処理方法の他の説明図である。
【図１２】従来技術の一例を示す３次元形状処理方法の説明図である。
【符号の説明】
１  データ処理部
２  入力装置
３  表示装置
４  プロッタ
５  メモリ
６  外部記憶装置
７  記憶媒体駆動装置
【図１】
0004005282.tif 000002
【図２】
0004005282.tif 000003
【図３】
0004005282.tif 000004
【図４】
0004005282.tif 000005
【図５】
0004005282.tif 000006
【図６】
0004005282.tif 000007
【図７】
0004005282.tif 000008
【図８】
0004005282.tif 000009
【図９】
0004005282.tif 000010
【図１０】
0004005282.tif 000011
【図１１】
0004005282.tif 000012
【図１２】
0004005282.tif 000013