(57)【特許請求の範囲】
【請求項１】
図形処理装置により、曲面により構成される複数の３次元形状の集合演算を実施する方法において、多面体形状より曲面形状を定義する方法を利用し、前記曲面形状を定義する元になった多面体形状に対して集合演算処理手段により集合演算を施し、凹面分割処理手段により前記集合演算の結果である多面体形状の凹面を分割して凸面にしてから、曲面形状生成手段により丸め操作を適用して曲面形状を生成することを特徴とする３次元曲面形状の集合演算方法。
【請求項２】
請求項１において、前記集合演算処理手段は、前記多面体形状の干渉部分をまとめてひとつにした結果の多面体形状を和集合とすることを特徴とする３次元曲面形状の集合演算方法。
【請求項３】
請求項１において、前記集合演算処理手段は、前記多面体形状の干渉部分をひとつの多面体形状から削除した多面体形状を差集合とするであることを特徴とする３次元曲面形状の集合演算方法。
【請求項４】
請求項１において、前記集合演算処理手段は、前記多面体形状の干渉部分からなる多面体形状を積集合とすることを特徴とする３次元曲面形状の集合演算方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、３次元曲面形状の集合演算方法、より詳細には、３次元形状の入力方法、特に、３次元ＣＡＤを用いた３次元曲面形状の入力方法に関する。
【０００２】
【従来の技術】
従来、３次元ＣＡＤシステムを用いた３次元形状のモデリングにおいて、基本形状を組み合わせて新しい形状を定義する方法である集団演算が広く使われている。
集合演算では、３次元形状間の干渉部分を除去してひとつにまとめる和集合、干渉部分をひとつの形状から削除する差集合、干渉部分のみを取り出して新たな形状として定義する積集合がある。
基本形状としては、直方体、円柱、球などの簡単な形状に始まり、より複雑な形状、また、集合演算結果の形状を用いることにより、様々な形状を定義することができる。
曲面形状を定義する方法としては、直接曲面形状を入力するだけでなく、簡単かつ取り扱いの簡単な多面体形状からより複雑な曲面形状を定義する方法が様々に提案されている。
【０００３】
【発明が解決しようとする課題】
しかし、従来手法では、曲面形状に対する集合演算において、曲面が複雑であると干渉計算に時間がかかったり、複雑なため計算に失敗したりという問題がある。
また、計算により求まる干渉線は、数学的な正確を追求すると高次または有理の曲線表現となり、扱いに困ったり、簡単化のため近似を使うとその誤差の扱いが難しいという問題がある。
特に、曲面形状の集合演算結果では、通常、干渉計算前の曲面と干渉線の組により表現されるトリム曲面が使われるが、トリム曲面は、さらに集合演算を実施する場合などにおいて、誤差の扱いや干渉計算に用いた２つの曲面により、１つの曲線が２つの表現方法を持つなどの問題点がある。
【０００４】
本発明は上記の問題点を解決するために、単純な多面体形状より複雑な曲面形状を求める手法を利用して、曲面形状間の集合演算を実施する代わりに、元形状である多面体同士を集合演算し、その結果の多面体形状から曲面形状を求めることにより、複雑な曲面形状の集合演算を高速かつ扱いやすい形状として定義することを目的とする。
【０００５】
なお、ここでは、単純な多面体形状より複雑な曲面形状を生成する手法として丸めを利用する。丸めとは、多面体形状の稜線に対して指定した半径でフィレットを生成する手法であるが、今回用いるのは、「変形対象立体の丸め操作及び逆丸め操作方法を用いたモデリング方法並びに逆丸め操作方法（特願平９−３１４６９７号）」における手法である丸め操作による曲面形状生成手法を利用する。
【０００６】
【課題を解決するための手段】
請求項１の発明は、図形処理装置により、曲面により構成される複数の３次元形状の集合演算を実施する方法において、多面体形状より曲面形状を定義する方法を利用し、前記曲面形状を定義する元になった多面体形状に対して集合演算処理手段により集合演算を施し、凹面分割処理手段により前記集合演算の結果である多面体形状の凹面を分割して凸面にしてから、曲面形状生成手段により丸め操作を適用して曲面形状を生成することを特徴としたものである。
【０００７】
請求項２の発明は、請求項１の発明において、前記集合演算処理手段は、前記多面体形状の干渉部分をまとめてひとつにした結果の多面体形状を和集合とすることを特徴としたものである。
【０００８】
請求項３の発明は、請求項１の発明において、前記集合演算処理手段は、前記多面体形状の干渉部分をひとつの多面体形状から削除した多面体形状を差集合とすることを特徴としたものである。
【０００９】
請求項４の発明は、請求項１の発明において、前記集合演算処理手段は、前記多面体形状の干渉部分からなる多面体形状を積集合とすることを特徴としたものである。
【００１２】
【発明の実施の形態】
図１は、本発明が適用される図形処理／表示装置の構成を示すブロック図で、この装置は、ＣＰＵ１、バス２、メモリ３、外部記憶装置４、入力装置５、表示装置６を備えるコンピュータシステム、および、該コンピュータシステム上で動作するプログラムによって実現される。
【００１３】
図２は、本発明の実施例に係わる３次元ＣＡＤシステムの構成を示す機能ブロック図で、このシステムは、曲面形状生成部１１、集合演算処理部１２、凹面分割処理部１３、入力部１４、形状記憶部１５、表示部１６から構成され、外部装置として、入力装置２１、外部記憶装置（形状データ）２２、表示装置２３等が接続される。
【００１４】
図３は、本発明の一実施例としての曲面形状集合演算の手順を示す図で、以下のＳＴＥＰ１〜ＳＴＥＰ４よりなる。
ＳＴＥＰ１…多面体形状に対して丸め操作を適用することによりそれぞれ曲面形状を生成する。多面体形状（図４（Ａ））と生成した曲面形状（図４（Ｂ））とは組みにしてシステム内に保持しておく。
【００１５】
ＳＴＥＰ２…多面体形同士（図５（Ａ））の和集合演算（図５（Ｂ））を実施する。和集合を実施する前に、曲面形状を一旦削除しておく。
多面体形状同士（図６（Ａ））の差集合演算（図６（Ｂ））を実施する。差集合を実施する前に、曲面形状を一旦削除しておく。
多面体形状同士（図７（Ａ））の積集合演算（図７（Ｂ））を実施する。積集合を実施する前に、曲面形状を一旦削除しておく。
【００１６】
ＳＴＥＰ３…集合演算結果の多面体形状（図８（Ａ））の内、凹面を凸面に分割する（図８（Ｂ））。凹面の凸面分割は、次のようにして行う。
ａ）各面の頂点を調べて、凹の頂点を見つける。
ｂ）凹の頂点を原点とした座標系を定義する。座標系のＺ座標軸は面の法線ベクトルと一致し、座標系のＸ座標軸は凹の角度を２等分した線分と一致するように定義する（図９）。
ｃ）前項にて定義した座標系にて面のすべての頂点の座標を計算する。
ｄ）計算後の頂点座標に関し、そのＸ座標値が０以上、かつ、そのＹ座標値の絶対値が小さいものから順番に頂点を選び、凹の頂点と線分を結んだ場合に、面の稜線と交差しない頂点を選ぶ。
ｅ）前項にて選出した頂点と、凹の頂点との間に稜線を生成し、凹面を２つの面に分割する（図１０）。
ｆ）分割後の両面に対して、以上の処理を再帰的に実施する。
【００１７】
ＳＴＥＰ４…集合演算結果の多面体の凹面を凸面に分割した形状（図１１（Ａ））に対して丸め操作を適用し曲面形状を生成することにより、ＳＴＥＰ１で生成した曲面形状同士の集合演算の形状を得る（図１１（Ｂ））。
【００１８】
【発明の効果】
以上の説明から明らかなように、本発明によると、以下のような効果がある。
複数の曲面形状に対しての任意の集合演算を実行した結果の曲面形状を得ることができる。
【００１９】
複数の曲面形状に対して和集合を実行した結果の曲面形状を得ることができる。
【００２０】
複数の曲面形状に対して差集合を実行した結果の曲面形状を得ることができる。
【００２１】
複数の曲面形状に対して積集合を実行した結果の曲面形状を得ることができる。
【図面の簡単な説明】
【図１】  本発明が適用される図形処理／表示装置の構成を示すブロック図である。
【図２】  本発明の実施例に係わる３次元ＣＡＤシステムの構成を示す機能ブロック図である。
【図３】  本発明の一実施例としての曲面形状集合演算の手順を示す図である。
【図４】  多面体形状より曲面形状生成の実施例を示す図である。
【図５】  多面体形状同士の和集合の実施例を示す図である。
【図６】  多面体形状同士の差集合の実施例を示す図である。
【図７】  多面体形状同士の積集合の実施例を示す図である。
【図８】  凹面を持つ多面体の凹面の凸面分割の実施例を示す図である。
【図９】  凹面の凹頂点における座標系定義の実施例を示す図である。
【図１０】  凹面の凹頂点からの分割の実施例を示す図である。
【図１１】  多面体形状の集合演算結果に丸め操作適用による曲面形状生成の実施例を示す図である。
【符号の説明】
１…ＣＰＵ、２…バス、３…メモリ、４…外部記憶装置、５…入力装置、６…表示装置、１１…曲面形状生成部、１２…集合演算処理部、１３…凹面分割処理部、１４…入力部、１５…形状記憶部、１６…表示部、２１…入力装置、２２…外部記憶装置、２３…表示装置。
【図１】
0003886293.tif 000002
【図２】
0003886293.tif 000003
【図３】
0003886293.tif 000004
【図４】
0003886293.tif 000005
【図５】
0003886293.tif 000006
【図６】
0003886293.tif 000007
【図７】
0003886293.tif 000008
【図８】
0003886293.tif 000009
【図９】
0003886293.tif 000010
【図１０】
0003886293.tif 000011
【図１１】
0003886293.tif 000012