(57)【要約】【課題】表示が不要な稜線か否かを判別して、表示不要な稜線を表示させないようにできる稜線表示方法を提供する。【解決手段】３次元形状モデル中の稜線について、表示不要な稜線か否かを判別できる稜線表示方法において、当該稜線の両側の曲面とも平面であり（Ｓ１で「はい」）、それぞれの法線ベクトルが所定精度内で一致している場合（Ｓ２で「はい」）、または、当該稜線の両側の曲面とも円柱面であり（Ｓ３で「はい」）、それぞれの半径値と軸が所定精度内で一致している場合（Ｓ４、５で「はい」）、または、当該稜線の両側の曲面とも円錐面であり（Ｓ６で「はい」）、それぞれの頂点座標とテーパ角度と軸ベクトルが所定精度内で一致している場合（Ｓ７、８、９で「はい」）、または、当該稜線の両側の曲面とも球面であり（Ｓ１０で「はい」）、それぞれの中心座標と半径値が所定精度内で一致している場合（Ｓ１１、１２で「はい」）、その稜線を表示が不要な稜線とする（Ｓ１３）。【選択図】      図６
2004192073.tif 000002
【特許請求の範囲】
【請求項１】
３次元形状モデル中の稜線について、表示が不要な稜線か否かを判別することができる稜線表示方法において、当該稜線の両側の曲面が二つとも平面であり、それぞれの法線ベクトルが所定精度内で一致している場合、または、当該稜線の両側の曲面が二つとも円柱面であり、それぞれの半径値と軸が所定精度内で一致している場合、または、当該稜線の両側の曲面が二つとも円錐面であり、それぞれの頂点座標とテーパ角度と軸ベクトルが所定精度内で一致している場合、または、当該稜線の両側の曲面が二つとも球面であり、それぞれの中心座標と半径値が所定精度内で一致している場合、その稜線を表示が不要な稜線と判別することを特徴とする稜線表示方法。
【請求項２】
３次元形状モデル中の稜線について、表示が不要な稜線か否かを判別することができる稜線表示方法または請求項１記載の稜線表示方法において、稜線表示の必要・不要を管理する管理データのデータ構造は、表示が必要な稜線の数と不要な稜線の数をそれぞれ有し、稜線インデックスリストの先頭から表示の必要な稜線インデックスが連続して全て並び、続けて、表示の不要な稜線インデックスが連続して全て並んだ構成であることを特徴とする稜線表示方法。
【請求項３】
３次元形状モデル中の稜線について、表示が不要な稜線か否かを判別することができる稜線表示方法または請求項１記載の稜線表示方法において、稜線表示の必要・不要を管理する管理データのデータ構造は、表示が必要な稜線の数と不要な稜線の数をそれぞれ有し、稜線インデックスリストの先頭から表示の不要な稜線インデックスが連続して全て並び、続けて、表示の必要な稜線インデックスが連続して全て並んだ構成であることを特徴とする稜線表示方法。
【請求項４】
請求項２または請求項３記載の稜線表示方法において、前記データ構造の管理データを保存しておくことを特徴とする稜線表示方法。
【請求項５】
請求項２、請求項３、または請求項４記載の稜線表示方法において、前記稜線インデックスリスト中の、表示が必要な稜線インデックス群の先頭から表示が必要な稜線の数分の稜線インデックスの指し示す稜線のみを表示することを特徴とする稜線表示方法。
【請求項６】
請求項２または請求項３記載の稜線表示方法において、前記データ構造のデータをネットワークを介して送信または受信することを特徴とする稜線表示方法。
【請求項７】
情報処理装置上で実行されるプログラムにおいて、請求項１乃至請求項６のいずれか１項に記載の稜線表示方法によった稜線表示を実行させるようにプログラミングされていることを特徴とするプログラム。
【請求項８】
プログラムを記憶した記憶媒体において、請求項７記載のプログラムを記憶したことを特徴とする記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、専用の３次元形状処理装置や汎用の情報処理装置上で実行される３次元形状モデル表示方法に係わり、特に、３次元形状モデル中の稜線について、その稜線のデータとしてその特徴データを持たない場合に、表示が不要な稜線かどうか、むしろ表示することが適切でない稜線かどうかを判別し、判別結果に従って稜線を表示させたり表示させなかったりすることができる稜線表示方法に関する。
【０００２】
【従来の技術】
近年、３次元ＣＡＤ／ＣＡＭ／ＣＧシステムなど３次元形状処理システムの普及により、デザイン・設計・製造部門などにおいて３次元形状データの利用者層が拡大し、デザイン・設計・設計シミュレーション・組み立て性の検証など様々な局面で３次元形状データを有効活用する機会が増えている。そのような状況のなかで、現場には、性能や機能の違いにより多くの種類の３次元形状処理システムが存在し、部門間はもちろん、一つの組織で複数種類の３次元形状処理システムを使うことも少なくなく、そのような異なった種類の３次元形状処理システム間で３次元形状データのやりとりをすることも少なくない。
ところで、一般的な３次元ＣＡＤシステムなど３次元形状処理システムでは、３次元形状モデルの表面を成す複数の面、および面と面の境界を表す稜線などによって３次元形状モデルが構成され、面や稜線の表示結果から３次元形状モデルの特徴を知ることができる。
しかし、異なる３次元形状処理システム間でデータをやりとりすると、３次元形状処理システムごとの面の表現形式の違いにより、ある３次元形状処理システムにおいては境界稜線の表示がなかった箇所に（図９（ａ）参照）別の３次元形状処理システムにおいては境界稜線が表示される場合がある（図９（ｂ）参照）。このように、３次元形状処理システムによっては３次元形状モデルの形状の特徴を表現しない稜線が表示されてしまうのである。また、同一の形状を異なった種類の３次元形状処理システムで扱った際にそれぞれの稜線の表示結果が異なるという問題もある。
【０００３】
【発明が解決しようとする課題】
前記したように、従来、３次元形状処理システムによっては形状の特徴を表現しない稜線が表示されてしまうという問題があったが、これまで、このような問題が解決されていなかった。
本発明の目的は、このような従来技術の問題を解決することにあり、具体的には、３次元形状モデルの形状の特徴を表現しない稜線かどうかを判別して、そのような稜線を表示させないようにしたり、異なる３次元形状処理システム間における３次元形状モデルの稜線表示の差異をなくしたりできる稜線表示方法を提供することにある。
【０００４】
【課題を解決するための手段】
前記の課題を解決するために、請求項１記載の発明では、３次元形状モデル中の稜線について、表示が不要な稜線か否かを判別することができる稜線表示方法において、当該稜線の両側の曲面が二つとも平面であり、それぞれの法線ベクトルが所定精度内で一致している場合、または、当該稜線の両側の曲面が二つとも円柱面であり、それぞれの半径値と軸が所定精度内で一致している場合、または、当該稜線の両側の曲面が二つとも円錐面であり、それぞれの頂点座標とテーパ角度と軸ベクトルが所定精度内で一致している場合、または、当該稜線の両側の曲面が二つとも球面であり、それぞれの中心座標と半径値が所定精度内で一致している場合、その稜線を表示が不要な稜線と判別する構成にした。
また、請求項２記載の発明では、３次元形状モデル中の稜線について、表示が不要な稜線か否かを判別することができる稜線表示方法または請求項１記載の稜線表示方法において、稜線表示の必要・不要を管理する管理データのデータ構造は、表示が必要な稜線の数と不要な稜線の数をそれぞれ有し、稜線インデックスリストの先頭から表示の必要な稜線インデックスが連続して全て並び、続けて、表示の不要な稜線インデックスが連続して全て並んだ構成にした。
【０００５】
また、請求項３記載の発明では、３次元形状モデル中の稜線について、表示が不要な稜線か否かを判別することができる稜線表示方法または請求項１記載の稜線表示方法において、稜線表示の必要・不要を管理する管理データのデータ構造は、表示が必要な稜線の数と不要な稜線の数をそれぞれ有し、稜線インデックスリストの先頭から表示の不要な稜線インデックスが連続して全て並び、続けて、表示の必要な稜線インデックスが連続して全て並んだ構成にした。
また、請求項４記載の発明では、請求項２または請求項３記載の発明において、前記データ構造の管理データを保存しておく構成にした。
また、請求項５記載の発明では、請求項２、請求項３、または請求項４記載の発明において、前記稜線インデックスリスト中の、表示が必要な稜線インデックス群の先頭から表示が必要な稜線の数分の稜線インデックスの指し示す稜線のみを表示する構成にした。
また、請求項６記載の発明では、請求項２または請求項３記載の発明において、前記データ構造のデータをネットワークを介して送信または受信する構成にした。
また、請求項７記載の発明では、情報処理装置上で実行されるプログラムにおいて、請求項１乃至請求項６のいずれか１項に記載の稜線表示方法によった稜線表示を実行させるようにプログラミングされている構成にした。
また、請求項８記載の発明では、プログラムを記憶した記憶媒体において、請求項７記載のプログラムを記憶した。
【０００６】
【発明の実施の形態】
以下、図面により本発明の実施の形態を詳細に説明する。
図１は本発明の一実施例を示す情報処理装置の構成ブロック図である。図示したように、この情報処理装置は、プログラムに従って本発明に係わる処理を実行するＣＰＵ１、メモリ（例えばＲＡＭ）２、稜線を含む３次元形状モデルなどを表示する表示装置３、補助記憶装置（例えばハードディスク記憶装置）４、通信処理部５などを備え、前記メモリ２には、どのような稜線かを判別する判別プログラム、その判別結果に従って稜線表示をおこなう表示プログラム、および稜線表示のための管理データの一部などを記憶する。また、補助記憶装置４には、前記管理データの一部を含む各種管理データおよび前記プログラムを含む各種プログラム（図示していない）を記憶（保存）しておく。
このような構成で、この実施例の情報処理装置は、いくつかの前提に基づいて、稜線の表示の必要・不要を判定し、判定結果に応じて表示する。以下、前提を示す。
（１）この実施例で扱う曲線および曲面は一般的な３次元ＣＡＤシステムなど３次元形状処理システムで扱えるものであり、その３次元形状処理システムにおいては、曲面の情報は面情報の一つとして保持され、曲線の情報は稜線情報の一つとして保持されているものとする。
（２）３次元ＣＡＤシステムなどにおいて扱う３次元形状モデルでは、面の境界に必ず稜線が存在するので、曲面の境界を表す曲線を得ることができるものとする。
（３）この実施例で扱う曲面の代表的なものとしては、平面、円柱面、円錐面、球面などがあり、それぞれ以下の情報を取得可能とする。
平面：法線ベクトル（Ｎ＝［ｘ、ｙ、ｚ］）
円柱面：通過点（Ｐ＝［ｓ、ｔ、ｕ］）、半径値（ｒ）、軸ベクトル（Ｎ＝［ｘ、ｙ、ｚ］）
円錐面：頂点座標（Ｏ＝［ｓ、ｔ、ｕ］）、テーパ角度（Ａ）、軸ベクトル（Ｎ＝［ｘ、ｙ、ｚ］）
球面：中心座標（Ｃ＝［ｓ、ｔ、ｕ］）、半径値（ｒ）
平面の例を図２、円柱面の例を図３、円錐面の例を図４、球面の例を図５に示す。
（４）軸の一致は、軸１と軸２が通過点Ｐ１＝［ｓ１、ｔ１、ｕ１］、Ｐ２＝［ｓ２、ｔ２、ｕ２］と軸ベクトルＮ１＝［ｘ１、ｙ１、ｚ１］、Ｎ２＝［ｘ２、ｙ２、ｚ２］で表されるとき、ｊ、ｋを実数とすると、
ｘ１×ｊ＝ｘ２
ｙ１×ｊ＝ｙ２
ｚ１×ｊ＝ｚ２
であり、かつ、
ｓ１＋ｋ×ｘ１＝ｓ２
ｔ１＋ｋ×ｙ１＝ｔ２
ｕ１＋ｋ×ｚ１＝ｕ２
の場合とする。
（５）３次元ＣＡＤシステムなど３次元形状処理システムにおいては、曲面の情報を扱う上で二つの値の差が極めて小さい場合に一致しているとみなせる精度が存在し、このことを「精度内で一致している」と表すものとする。
【０００７】
以下、図６に示した動作フロー図に従って、稜線が表示不要の稜線かどうか、つまり、稜線が３次元形状モデルの形状の特徴を表現しない稜線かどうかを判別する動作フローを説明する。
この実施例では、まず、稜線両側の曲面が二つとも平面であるか否かを判定し（Ｓ１）、二つとも平面である場合（Ｓ１で「はい」）、それぞれの法線ベクトルが精度内で一致しているか否かを判定する（Ｓ２）。そして、精度内で一致しているならば（Ｓ２で「はい」）、表示が不要な稜線とする（Ｓ１３）。
一方、ステップＳ１において、そうでないならば（Ｓ１で「いいえ」）、稜線両側の曲面が二つとも円柱面であるか否かを判定し（Ｓ３）、二つとも円柱面である場合（Ｓ３で「はい」）、それぞれの半径値が精度内で一致しており（Ｓ４で「はい」）、かつ、軸が精度内で一致しているならば（Ｓ５で「はい」）、表示が不要な稜線とする（Ｓ１３）。
また、ステップＳ３において、そうでないならば（Ｓ３で「いいえ」）、稜線両側の曲面が二つとも円錐面であるか否かを判定し（Ｓ６）、二つとも円錐面である場合（Ｓ６で「はい」）、それぞれの頂点座標が精度内で一致しており（Ｓ７で「はい」）、かつ、テーパ角度が精度内で一致しており（Ｓ８で「はい」）、かつ、軸ベクトルが精度内で一致しているならば（Ｓ９で「はい」）、表示が不要な稜線とする（Ｓ１３）。
また、ステップＳ６において、そうでないならば（Ｓ６で「いいえ」）、稜線両側の曲面が二つとも球面であるか否かを判定し（Ｓ１０）、二つとも球面である場合（Ｓ１０で「はい」）、それぞれの中心座標が精度内で一致しており（Ｓ１１で「はい」）、かつ、半径値が精度内で一致しているならば（Ｓ１２で「はい」）、表示が不要な稜線とする（Ｓ１３）。
それに対して、前記において、精度内で一致していないと判定された場合（Ｓ２で「いいえ」、Ｓ４で「いいえ」、Ｓ５で「いいえ」、Ｓ７で「いいえ」、Ｓ８で「いいえ」、Ｓ９で「いいえ」、Ｓ１１で「いいえ」、Ｓ１２で「いいえ」）、または、ステップＳ１０においてそうでない場合（Ｓ１０で「いいえ」）、表示が必要な稜線と判断してこの動作フローを終了させる。
こうして、この実施例によれば、３次元形状モデルの形状の特徴を表現しない稜線、つまり表示不要の稜線を判別して、そのような稜線を表示しないようにすることができる。
【０００８】
また、この実施例では、図６の動作フローに示したようにして判別した、稜線表示の要否判別結果を管理データとして保存しておくことが可能である。図７に、このような管理データのデータ構造を示す。図示したように、稜線表示の要否を管理する管理データのデータ構造は、表示が必要な稜線の数ｎ１と不要な稜線の数ｎ２を管理データ中の所定箇所にそれぞれ保持しておき、管理データ中の稜線インデックスリスト（図７参照）において、表示が必要な稜線インデックスを先頭から連続させて全て並べ、続けて、表示が不要な稜線インデックスを連続させて全て並べる構成である。なお、前記において、各稜線インデックスは各稜線情報へのポインタである。この実施例では、このような管理データを補助記憶装置４に例えば個々の３次元形状モデルの形状データに対応づけてファイルとして保存しておくとともに、必要に応じてメモリ２に読み出す。
これにより、一度、図６に示したような表示要否判別をおこなえば、その後、指定の３次元形状モデルを表示させる際、表示要否判別をおこなうことなく適切な稜線表示をおこなうことができる。
なお、前記において、稜線表示の要否を管理する管理データのデータ構造は、表示が必要な稜線の数と不要な稜線の数をそれぞれ有し、稜線インデックスリストの先頭から表示の不要な稜線インデックスが連続して全て並び、続けて、表示の必要な稜線インデックスが連続して全て並んだ構成でもよい。
【０００９】
図８に、表示の要否判別を稜線毎に逐次調べることなく不要な稜線を表示しない稜線表示の動作フローを示す。以下、この動作フローを説明する。
この実施例では、３次元形状モデルを表示するに際して、まず、メモリ２の所定領域に設けたカウンタｉを０に初期化する（Ｓ２１）。そして、当該３次元形状モデルに対応づけられた、例えば図７に示したような管理データをメモリ２に読み出し、個々の稜線を表示するとき、その管理データを参照して、稜線インデックスリストの冒頭の稜線から表示を開始し、カウンタｉが表示の必要な稜線の数ｎより小さい場合（Ｓ２２で「はい」）、インデックスｉの稜線を表示する（Ｓ２３）。
続いて、カウンタｉを１増加させ（Ｓ２４）、再びステップＳ２２から繰り返す。そして、カウンタｉが表示の必要な稜線の数ｎに達すると（Ｓ２２で「いいえ」）、この動作フローを終了させる。
こうして、このような構成では、稜線表示の要否判定を表示のたびごとに各稜線について逐次調べることなく表示不要な稜線を表示しないようにすることができる。
また、前記したデータ構造の管理データを通信処理部５およびネットワークを介して送信または受信する構成も可能である。このような構成では、３次元形状データをネットワークなどを介して複数の３次元形状システム間でやり取りする場合、前記管理データを他の３次元形状処理システムへ与えることにより他の３次元形状処理システムで稜線表示の要否を調べることなく表示不要な稜線を表示しないようにすることができるし、他の３次元形状処理システムから前記管理データを得ることにより当該３次元形状処理システムで稜線表示の要否を調べることなく表示不要な稜線を表示しないようにすることができる。
以上、本発明の一実施例を説明したが、説明したような稜線表示方法に従ってプログラミングしたプログラムを着脱可能な記憶媒体に記憶し、その記憶媒体をこれまで本発明によった稜線表示をおこなえなかったパーソナルコンピュータなど情報処理装置に装着することにより、または、そのようなプログラムをネットワークを介してそのような情報処理装置へ転送することにより、そのような情報処理装置においても本発明によった稜線表示をおこなうことができる。
また、汎用の情報処理装置の場合で説明したが、本発明によった稜線表示は専用の３次元形状処理装置にも同様にして実施することができる。
【００１０】
【発明の効果】
以上説明したように、本発明によれば、請求項１記載の発明では、３次元形状モデル中の稜線について、表示が不要な稜線かどうかを判別する際、当該稜線の両側の曲面が二つとも平面であり、それぞれの法線ベクトルが所定精度内で一致している場合、または、当該稜線の両側の曲面が二つとも円柱面であり、それぞれの半径値と軸が所定精度内で一致している場合、または、当該稜線の両側の曲面が二つとも円錐面であり、それぞれの頂点座標とテーパ角度と軸ベクトルが所定精度内で一致している場合、または、当該稜線の両側の曲面が二つとも球面であり、それぞれの中心座標と半径値が所定精度内で一致している場合、その稜線は表示が不要な稜線と判別されるので、不要で不自然なそのような場合の稜線表示がおこなわれないようにできるし、異なる３次元形状処理システム間における３次元形状モデルの稜線表示の差異をなくすることができる。
また、請求項２記載の発明では、３次元形状モデル中の稜線について、稜線表示の必要・不要を管理する管理データのデータ構造が、表示の必要な稜線の数と不要な稜線の数をそれぞれ有し、稜線インデックスリストの先頭から表示の必要な稜線インデックスが連続して全て並び、続けて、表示の不要な稜線インデックスが連続して全て並んだ構成であるので、簡単なデータ構造で、不要で不自然な稜線表示を防止することができるし、異なる３次元形状処理システムにおける３次元形状モデルの稜線表示結果の差異をなくすることができる。
また、請求項３記載の発明では、３次元形状モデル中の稜線について、稜線表示の必要・不要を管理する管理データのデータ構造が、表示の必要な稜線の数と不要な稜線の数をそれぞれ有し、稜線インデックスリストの先頭から表示の不要な稜線インデックスが連続して全て並び、続けて、表示の必要な稜線インデックスが連続して全て並んだ構成であるので、同様に簡単なデータ構造で、不要で不自然な稜線表示を防止することができるし、異なる３次元形状処理システムにおける３次元形状モデルの稜線表示結果の差異をなくすることができる。
また、請求項４記載の発明では、請求項２または請求項３記載の発明において、前記データ構造の管理データを保存しておくことができるので、一度、表示要否判別をおこなえば、その後、指定の３次元形状モデルを表示させる際、表示要否判別をおこなうことなく適切な稜線表示をおこなうことができる。
【００１１】
また、請求項５記載の発明では、請求項２、請求項３、または請求項４記載の発明において、稜線インデックスリスト中の、表示が必要な稜線インデックス群の先頭から表示が必要な稜線の数分の稜線インデックスの指し示す稜線のみを表示するので、表示の際の制御が簡単であり、したがって、応答性も良くなる。
また、請求項６記載の発明では、請求項２または請求項３記載の発明において、前記データ構造の管理データをネットワークを介して送信または受信することができるので、３次元形状データをネットワークなどを介して複数の３次元形状システム間でやり取りする場合、その管理データを他の３次元形状処理システムへ与えることにより他の３次元形状処理システムで稜線表示の要否を調べることなく表示不要な稜線を表示しないようにすることができるし、他の３次元形状処理システムからその管理データを得ることにより当該３次元形状処理システムで稜線表示の要否を調べることなく表示不要な稜線を表示しないようにすることができる。
また、請求項７記載の発明では、請求項１乃至請求項６のいずれか１項に記載の稜線表示方法によった稜線表示を実行させるようにプログラミングされているプログラムを情報処理装置上で実行させることができるので、情報処理装置を用いて請求項１乃至請求項６のいずれか１項に記載の発明の効果を得ることができる。
また、請求項８記載の発明では、請求項７記載のプログラムを着脱可能な記憶媒体に記憶することができるので、その記憶媒体をこれまで請求項１乃至請求項６のいずれか１項に記載の発明によった稜線表示をおこなえなかったパーソナルコンピュータなど情報処理装置に装着することにより、そのような情報処理装置においても請求項１乃至請求項６のいずれか１項に記載の発明の効果を得ることができる。
【図面の簡単な説明】
【図１】本発明の一実施例を示す情報処理装置の構成ブロック図である。
【図２】本発明の稜線表示方法に係わる説明図である。
【図３】本発明の稜線表示方法に係わる他の説明図である。
【図４】本発明の稜線表示方法に係わる他の説明図である。
【図５】本発明の稜線表示方法に係わる他の説明図である。
【図６】本発明の一実施例を示す稜線表示方法の動作フロー図である。
【図７】本発明の一実施例を示す稜線表示方法のデータ構成図である。
【図８】本発明の一実施例を示す稜線表示方法の他の動作フロー図である。
【図９】従来技術の一例を示す稜線表示方法の表示図である。
【符号の説明】
１  ＣＰＵ
２  メモリ
３  表示装置
４  補助記憶装置
５  通信処理部
【図１】
2004192073.tif 000003
【図２】
2004192073.tif 000004
【図３】
2004192073.tif 000005
【図４】
2004192073.tif 000006
【図５】
2004192073.tif 000007
【図６】
2004192073.tif 000008
【図７】
2004192073.tif 000009
【図８】
2004192073.tif 000010
【図９】
2004192073.tif 000011