首页 / 专利库 / 数学与统计 / 有限元分析 / Method for displaying scientific graphic

Method for displaying scientific graphic

阅读:503发布:2022-06-23

专利汇可以提供Method for displaying scientific graphic专利检索,专利查询,专利分析的服务。并且PURPOSE: To provide a method for displaying the result of finite element analysis or finite difference analysis with a three dimensions in graphic. CONSTITUTION: A model is displayed in a sectional plane or as a constant-height surface in which a designated value is obtained as a prescribed result. A polygon constituting a cross surface formed by crossing with a polyhedron forming the cutting plane or the constant-height surface and the model is generated, transferred to a polygon processor, and displayed on a raster scanning device. The position of the cutting plane along the normal, or a value obtained as the result on the constant-height surface is changed so that a series of cross surfaces can be generated and displayed. The speed-up of the test of elements for checking the possibility of the crossing with the cutting plane or the constant-height surface can be attained by preliminarily classifying those elements into a zone, and testing only the elements inside the zone for checking the crossing with the cutting plane or the constant-height surface based on the position of each element along the cutting plane normal or the value of the result at the vertex of the element.,下面是Method for displaying scientific graphic专利的具体信息内容。

【特許請求の範囲】
  • 【請求項1】モデルが3次元幾何座標空間内で定義された要素から構成され、前記要素の頂点で変数が定義されている図形表示システムにおいて、前記モデルと、前記変数が一定となるある曲面との交差を決定する方法であって、 前記モデルを形成する各要素を、各ゾーン内で所定の範囲で変化する、前記要素の頂点での前記変数の値に基づいて、前記幾何座標空間内の複数のゾーンのうちの少なくとも1つと関連づける段階と、 前記曲面に沿った前記変数の値に基づいて前記ゾーンのサブセットを選択する段階と、 前記ゾーンのサブセットと関連する要素を試験して、前記曲面と交差する要素を識別する段階と、 前記の識別された要素と前記曲面との交差を生成する段階とを含む方法。
  • 【請求項2】前記変数が第1の変数であり、さらに前記交差における第2の変数を評価する段階を含む、請求項1に記載の方法。
  • 【請求項3】前記交差が、前記の識別された要素の頂点間での補間によって生成される、請求項1に記載の方法。
  • 【請求項4】前記交差が幾何プリミティブによって表され、さらに前記幾何プリミティブを画素イメージに変換する段階を含む、請求項1に記載の方法。
  • 【請求項5】モデルが3次元幾何座標空間内で定義された要素から構成され、前記要素の頂点が辺によって接続されている図形表示システムにおいて、前記モデルとある曲面との交差を決定する方法であって、 前記モデルの各辺に、前記辺と前記曲面の交差が決定されたかどうかを示すフラグを関連づける段階と、 要素の各辺ごとに、モデルの別の要素に関して辺と曲面の交差が決定されたかどうかを確認するために、前記辺に関連するフラグを調べる段階と、 辺と曲面の交差が決定されていないことをフラグが示す場合だけ、そのような交差を決定する段階とを含む方法。
  • 【請求項6】モデルが3次元幾何座標空間内で定義された多面体を含み、前記多面体の頂点が辺によって接続されており、前記各多面体が局所的に定義された1組の面をもつ図形表示システムにおいて、前記多面体の外面を決定する方法であって、 前記モデルの各大域面が1つまたは複数の前記の局所的に定義された面に対応し、リスト内の各エントリが前記面を共有する多面体の数の標識を含む、大域面のリストを作成する段階と、 モデルの各多面体の局所的に定義された各面ごとに、対応するエントリを大域面のリスト内で探索する段階と、 大域面に対応することが判明した局所的に定義された各面ごとに、前記各段階の完了時に、ある大域面を共有する多面体の数の標識が、その大域面が内面であるか外面であるかを示すように、大域面を共有する多面体の数の標識を増分する段階とを含む方法。
  • 【請求項7】モデルが3次元幾何座標空間内で定義された要素から構成され、前記要素の頂点で第1及び第2の結果が定義されており、前記頂点が辺によって接続されており、前記第1の結果が、前記の第1の結果が一定となる等高面を定義し、前記等高面が前記辺に沿った各交点で前記モデルの辺と交差する図形表示システムにおいて、前記等高面に沿って前記モデルを図形表示する方法であって、 前記等高面と交差する前記モデルの要素を決定する段階と、 前記等高面と交差すると決定された各要素ごとに、前記等高面と交差する要素の辺に沿った交点の座標と、前記交点での前記第2の結果の値とを決定する段階と、 前記交点を頂点とし、前記頂点での前記第2の結果の値を定義する、幾何プリミティブを生成する段階と、 前記プリミティブを描出して、前記第1の結果によって定義される等高面内に前記第2の結果を表示する段階とを含む方法。
  • 【請求項8】モデルが3次元幾何座標空間内で定義された少なくとも1つの多面体を含み、前記多面体の面及び頂点が辺によって接続されており、前記辺が前記辺に沿った各交点である曲面と交差し、前記交点が、前記多面体の面を横切って延びる側面をもつ交差ポリラインを定義する、図形表示システムにおいて、前記多面体と前記曲面の交差を図形表示する方法であって、 (a)前記曲面と交差する多面体の第1の辺上で第1の交点を選択する段階と、 (b)前記第1の辺を含む多面体の面上で第2の交点を含む第2の辺を選択する段階と、 (c)前記第1及び第2の交点から前記交差ポリラインの第1の側面を生成する段階と、 (d)交差ポリラインのすべての側面が生成されるまで、前の第2の交点を新しい第1の交点として選択するたびに、段階(a)−(c)を繰り返す段階とを含む方法。
  • 说明书全文

    【発明の詳細な説明】

    【0001】

    【産業上の利用分野】本発明は、科学的図形表示システムに関し、より具体的には、有限要素解析または定差解析の結果を3次元で図形表示するためのシステムに関する。

    【0002】

    【従来の技術及び発明が解決しようとする課題】有限要素法及び定差法は、3次元機械部品の応解析または熱解析、固体物体の周囲または内部での流体流れ解析などの分野で使用されている。 これらの解析技法は、対象とする物体または領域を、全体として当該の物体を形成する多面体(要素と呼ばれる)の集まりとしてモデル化する。 解析中または解析後、すべての多面体のコーナ(ノードまたは頂点と呼ばれる)で結果が生成する。 ノードでの結果の例は、応力、温度、流体速度成分及び流体圧力である。 複雑なモデルでは、多面体の数が数百または数千に達することもある。 ノードの数は、容易に数千になる。 問題は、3次元空間内にあるこれらのノードで生成した結果をどのようにして効率的にかつ対話式に図形表示し解釈するかということである。

    【0003】1つの図形表示技法は、モデルとユーザが定義する平面とを交差させ、結果を交差平面上でカラー・コード化グロー(Gouraud)陰影付き多形として示すものである。 (グロー陰影付けとは、ある多角形のコーナにカラーが与えられている場合、その多角形の内部を、コーナにあるカラーの線形結合であるカラーで塗りつぶす技法である。)通常、平面は対話式に直線経路に沿って平行移動され、平面上で変化する結果が示される。

    【0004】別の有用な技法は、ある解析変数の一定の値を表す、モデル内のすべての点を描くことである。 一般に、これはモデル内部で1つの曲面またはいくつかの非接続曲面を生ずる。 これらの曲面は、等表面または等高面と呼ばれる。 また、1つの解析変数が別の変数の単一の等高面上でどのように変化するかを研究したい場合がある。 これらの等高面の使い方は、以下の状況の下で理解することができる。 ある設計応力レベルにある1つの金属部品内のすべての点を考える。 この等高面は、部品を様々な領域に分割する。 これらの領域のいくつかは、設計応力レベルより下にあり、他の領域はそれより上にある。 このとき、等高面は、どの領域を設計し直さなければならないかに関する視覚的ヒントを設計者に与える。 さらに、等高面の発展を観察(可能な等高値を辿っていって等高面の変形を観察)すれば、問題(特に流体流れの問題)の解を理解するためのヒントがさらに得られる。

    【0005】この種の科学的図形表示システムにおける別の問題は、所与の1組の多面体の外面だけをどのように取り出すかということである。 この情報を取り出すには2つの方法がある。 第1に、陰影付きモデルを示すために、外面を透明に描き、内部の他のすべての面は描かずに済ますことができる。 第2に、そのモデルの外側だけの結果を見たい場合、グロー陰影付きの外面だけを描けばよい。 モデル内部の面のすべての結果は隠れるので、表示の際に考慮する必要がない。

    【0006】

    【課題を解決するための手段】本発明は、その様々な態様において、その頂点で解析結果(たとえば温度または圧力)が定義される多面体または他の要素からなるモデルを表示するための3次元科学的図形表示システムに関する。 モデルは、ある切断平面内で表示され、または所与の結果が指定された値をとる等高面として表示される。 切断平面または等高面とモデルを形成する多面体との交差によって形成される交差表面を構成する多角形が生成され、多角形プロセッサに渡されて、ラスタ・スキャン装置上で描出され表示される。 面の位置をその法線に沿って変えることによって、または等高面に対して結果がとる値を変えることによって、一連の交差表面が生成され表示される。

    【0007】本発明の1つの態様によれば、要素が切断平面または等高面と交差するかどうかの試験は、これらの要素を、切断平面の法線に沿った各要素の位置、またはその要素の頂点での結果の値に基づいてゾーンに事前分類し、あるゾーン内部の要素だけを切断平面または等高面と交差するかどうか試験することによって、スピードアップされる。 本発明の切断平面による態様では、まず元のモデル座標を、切断平面法線がZ軸に平行となる変換されたXYZ座標に変換することによって、ゾーンを定義することが好ましい。 次に、各要素を、その頂点のZ成分に基づいて、1つまたは複数のゾーンと関連づける。

    【0008】ゾーンを定義し、モデルの諸要素をゾーンに割り当てる様々な方法が考えられている。 1つの方法は、各モデルが切断平面の法線に沿った位置の、または所与の結果の値の、所定の範囲を包含するように、ゾーンのサイズをモデルとは独立に定義するものである。 ただし、ゾーン・サイズは図形表示されるモデルに基づくことが好ましい。 したがって、本発明の切断平面による態様では、各ゾーンを、(切断平面法線に平行な変換座標系で)そのモデルの任意の要素の最大Zエクステントに等しいZエクステントをもつように定義する。 次いで要素頂点の最大Z座標と最小Z座標の平均などの適当な頂点統計に基づいて、各要素を単一のゾーンに割り当てる。 同様に、本発明の等高面による態様では、各ゾーンを、そのモデルの任意の要素上での結果の最大範囲に等しい結果変数の範囲をもつように定義する。 次いで、その要素の頂点における結果の値に基づいて、各要素をあるゾーンに割り当てる。

    【0009】このようなゾーン定義割当てシステムのおかげで、切断平面または等高面と交差する要素の探索を、現ゾーン(切断平面位置または結果変数の現在値を包含するゾーン)と2つの隣接するゾーンに限ることが可能である。 実際のモデルは多数の要素層を含む可能性があるので、交差探索を実質的に3つの要素層に限ることができると、探索過程の効率が大きく増大する。 ゾーンに編成されたデータ構造の使用によって、この効率はさらに向上する。 このような場合、現ゾーン及び2つの隣接ゾーン内の要素だけを調べ、それら要素のゾーン割当てを確認するときでもモデルの残りの要素には注意を払わなくてよい。

    【0010】本発明の別の態様によれば、複数の要素が共有する辺に関する交差計算は、辺の大域リストを維持し、モデルの任意の要素について辺と切断平面または等高面との交点が計算された辺にフラグを付けることによって、最小になる。 要素の切断平面または等高面と交差する可能性のある各辺を試験し、交点が計算されていないことをそのフラグが示す辺だけをさらに処理する。 これによっても交差手順の効率が大きく増大する。 というのは、辺は一般に複数の要素によって共有され、そうしなければ各要素ごとに冗長的に処理されるからである。
    この方法は、要素アレイ内の各エントリが、大域辺アレイ内のエントリを指すポインタを含む、データ構造の使用によって容易になり、これによって、いくつかの要素エントリが、交差計算を含めて同じ辺データを共用できるようになる。

    【0011】本発明のさらに別の態様によれば、モデルの所与の面を共有する要素をカウントし、単一の要素だけと関連する面に外面としてフラグを付けることによって、モデルの外面を構成する要素の外面を、代替動作モードで表示できるように識別する。

    【0012】本発明のさらに別の態様は、交点を接続して交差多角形を形成すること、ならびに第1の結果によって定義される等高面上に第2の結果を図形表示することに関する。 より具体的には、以下で説明する。

    【0013】

    【実施例】

    1. 概要 前記のように、本発明は2つの主要な態様を含む。 第1
    の態様では、切断平面をモデルと交差させて、表示すべき交差面を生成する。 第2の態様では、表示される曲面は、モデルを貫通し、所与の結果が一定となる等高面である。 これらの2つの態様の実施は全般的に全く類似しているので、2つの態様を一括して論じ、違いがある場合だけ特記する。

    【0014】ここで検討するモデルの辺の端点は、「ノード」、「頂点」などと呼ばれる。 本明細書では、これらの2つの用語は同義である。 ただし、「要素」という用語は、「多面体」より広い意味をもつ。 要素は、多角形などの平面実体でもよい。 3次元空間内で任意の方向を向いているこのような2次元要素は、タービンの羽根(そのシャフトは多面体によってモデル化される)などの構造物をモデル化するのに有用である。 この場合、主な質問は、モデル化されている2次元要素の表面に沿って結果がどのように変化するかということである。 本明細書で検討する要素は一般に多面体であるが、ゾーン別に分類し交差する辺をフラグ付けするという概念は、3
    次元空間内で任意の方向を向いている多角形などの2次元要素にも適用できることは明らかである。

    【0015】a. 切断平面態様 本発明の1つの態様は、平面(切断平面と呼ばれ、法線によって指定される)を取り、それを切断平面の法線に平行な直線に沿って物体を貫通して掃引する。 すなわち、図1及び図2で、多面体11、12、13を含むモデル10を、切断平面法線15と平行な掃引経路16に沿って移動する切断平面14と交差させる。 次に切断平面14上の補間された結果を、グロー陰影付き多角形として表示する。 (上で述べたように、グロー陰影付き多角形とは、その多角形の内部を、内部の任意の点のカラーがその頂点のカラーの線形結合となるようなカラーで塗りつぶした多角形である。)掃引経路16上の任意の点で、切断平面14上でのモデル10の断面が得られる。 モデル10は多面体からなるので、切断平面14上で生成される断面は多角形である。 したがって、図3
    で、切断平面14は、モデル10を構成する多面体11
    −13と交差し、切断平面内にそれぞれ多角形31、3
    2、33を形成する。

    【0016】次に、図形表示すべき結果の値を、切断平面14内の各多角形頂点と関連づける。 図3に示すように、切断平面14上の多角形31−33の頂点は、多角形11−13の辺を切断平面と交差させることによって得られる。 切断平面14内の多角形頂点に関連する結果の値は、多角形の頂点を作った多面体の辺のノードで得られる結果を補間することによって得られる。

    【0017】したがって、図4に示すように、多面体1
    3の辺AB(図3)と切断平面14との交差は、点Qからなる。 解析結果は、任意の頂点間で線形になると仮定されているので、交点Qに関する結果Rは、端点A及びBでの結果R1及びR2から、標準的技法である線形補間法によって算出する。 各交点Qに関する結果Rをカラー・コード化すると、切断平面14上で各頂点にカラー値をもつ多角形31−33が得られる。 次に、これらの多角形を、当技術分野で周知のやり方でグロー陰影付き多角形として描出する。 モデル10全体を貫通して切断平面14を掃引し、陰影付き多角形カラーを観察することによって、結果を図形表示し解釈することができる。
    図1−4に示した切断平面14は、多面体11−13の面と平行であるが、これは必要条件ではなく、一般に切断平面は任意の方向に向くことができる。

    【0018】b. 等高面態様 本発明の他の態様は、すでに述べたように、所与の結果が一定となる等高面とモデルを形成する多面体との交差を決定するものである。 図5に、結果が所与の値をとる点の連続体を表す理想的な等高面51と、モデル(図示せず)の多面体50との交差を示す。 図5に示すように、等高面51と多面体50の交差52は、一般に曲線線分からなる閉じた曲線52である。 考慮中のモデルでは、結果は多面体50の頂点でだけ定義されるので、理想的な交差52は、等高面51と交差する多面体50の辺上に頂点をもつ閉じたポリライン53で近似される。
    多面体の辺に沿った各交点の位置は、図3及び図4に示した切断平面の場合と同様に、補間によって算出する。
    したがって、図5で端点A及びBをもつ多面体の辺を考えると、結果の値が点AでR1、点BでR2である場合、線分AB上の交点Qの位置は、等高面上の結果の値Rが与えられているものとして、簡単な補間法によって計算される。 一般に、閉じたポリライン53は平面形状ではないので、三角形分割され、すなわち図に示した三角形T1及びT2のようないくつかの三角形に分割され、これらの三角形は陰影付けのために多角形プロセッサに供給される。

    【0019】多くの場合、等高面の軌跡は、等高面上での任意の特定の結果の変動に関係なく、それ自体質問の対象となる。 (等高面を定義する結果は、もちろんその等高面上で一定である。)その他の場合、質問の対象は、第1の結果によって定義された表面上での第2の結果の挙動、たとえば、一定圧力の表面上で温度がどのように変化するか、または逆に一定温度の表面上で圧力がどのように変化するかである。 これは、希望するとき、
    本発明のシステムにおいて、交点(たとえば図5の点Q)の座標だけでなく、等高面を定義する結果以外の選択された結果の値をも評価することによって達成される。 この結果は、切断平面態様の場合と同様に、多角形を定義する頂点データに含まれ、したがって、生成された多角形が、第1の結果によって定義された表面上での第2の結果の値を示すグロー陰影付けによって表示できるようになる。

    【0020】2. 装置 図6に、本発明を実行するために使用される装置をシステム・レベルで示す。 図6に示すように、このシステム60は、参照番号61で一括して示すメイン・プロセッサ及びメモリ(「ホスト/ワークステーション」)を含む。 その中に、図形表示プログラムまたはコード62、
    及びコード62に作用するデータ構造63が存在する。
    プログラム62は、ディスク記憶装置などの適当な2次記憶装置64からの、モデルの幾何データ及びモデルの頂点に関する結果のデータ、ならびにキーボードやダイアル(別個には図示せず)などの入力装置65からのユーザ入力を受け取る。 プログラム62は、2次記憶装置からデータ64を取り出し、以下で説明する方式で、それをプログラムが直接使用できるデータ構造63に変換する。 プログラム62によって生成された多角形データは、GRAPHIGS(IBM社の商標)インターフェースなどの適当なプログラミング・インターフェースを介して線またはバス67上に出力される。

    【0021】多角形データは、座標、及び平面交差の頂点カラーからなる。 等高面態様の場合、多角形データは、等高面の座標と、第1の結果によって定義される表面内で図形表示される第2の結果(もしあれば)の値からなる。 このデータは、線67を介して当技術分野で周知の適当なタイプの多角形プロセッサ68に供給される。 多角形プロセッサ68は、インターフェース66から供給された高準の多角形データを、像の連続する線を走査するCRTディスプレイなどのラスタ・ディスプレイ69上で表示できるタイプの画素データに変換する。 多角形プロセッサ68は、陰影付け及び隠線除去または隠面除去用の適当なグラフィクス・ハードウェアまたはマイクロコードを含む。

    【0022】3. 初期データ a. 形式 図7及び図8は、解析データを記憶装置64に最初に記憶するために使用されるデータ・ファイルの形式を示す。 このデータは、ノード/頂点データ70(図7)及び多面体/要素データ80(図8)からなる。 まず図7
    を参照すると、ノード/頂点データ・ファイル70の先頭に、ノードの総数を示す第1のヘッダ部分71、及び各ノードに関する結果(応力、温度などの量)の数を示す第2のヘッダ部分72がある。 これらのヘッダ部分の後に、大域ノード・エントリ(モデルの各ノードごとにただ1つのエントリがあるという意味で「大域」)がある。 これらの大域ノード・エントリのうちの最初のエントリを図7に詳細に示す。 各ノード・エントリは、固有の大域ノード番号(73)、ノードのx、y、zモデル座標(74)、及び図のエントリ中の結果1(75)と結果2(76)などそのノードに関連する結果からなる。

    【0023】ここで図8を参照すると、多面体/要素データ・ファイル80は、要素の総数を示すヘッダ部分8
    1をもつ。 このヘッダ部分の後に、モデルの各多面体/
    要素ごとに1つずつエントリがある。 これらのエントリのうちの最初のエントリを図8に詳細に示す。 各多面体/要素エントリは、固有の要素番号(82)、要素タイプ(83)、及び特定の要素に対して局所順序付け法(下記参照)で指定された、この要素を構成するノードの大域ノード番号(73)のリスト84を示すフィールドを含む。

    【0024】本明細書で開示するデータ構造では、要素「タイプ」は、単に「六面体」などある要素の特定の名称に反映される面の数ではなく、平面、直線状の辺、頂点の数と接続関係によって決定される、トポロジカルな要素タイプである。 したがって、立方体などあるタイプの六面体は四辺形の面をもつが、2つの四面体を結合することによって形成される別のタイプの六面体は三角形の面をもつことがある。 これらの六面体は、それぞれ別々の要素タイプを表し、本明細で使用するデータ構造では別々のタイプ識別を受け取る。

    【0025】b. トポロジ上の仮定 ここで図9−図13を参照すると、データ・ファイル7
    0及び80は、各要素に関連する面、辺及び頂点のある順序付けがそれらのデータ・ファイル内で指定されているものと仮定されている。 このような局所順序付けのおかげで、頂点同士の接続関係を決定するために頂点の実際の座標を調べる必要なしに、頂点のリストから視察によって面及び辺を生成することができる。 したがって、
    図9に示した六面体を考えると、その六面体を特徴づける大域ノード番号のリスト(84)が図9に示した順序で配列されている場合、それ以上調べずとも、頂点2及び6が辺(この例では辺10)を定義すること、あるいは頂点1、4、8、5(または辺4、9、8、12)が面(この例では面4)を定義することがわかる。 このトポロジ情報は、下記の表1−表5(それぞれ図9−図1
    3に対応する)にも表の形で示されている。 (表1−表5は面及びノードの連結は示さないが、これは図9−図13に示すように局所順序付け方法の一部分である。)
    図9−図13及び表1−表5では5つの要素タイプが示されているが、希望するなら、この図形表示システムで他のトポロジ要素タイプをも定義できることは明らかである。

    【0026】 表1 六面体のトポロジ情報 局所辺を共有 局所面を構成する 局所辺 する局所面 局所面 辺の数 局所辺 −−− −−−−−− −−− −−− −−−−−−− 1 1,5 1 4 1,5, 9,10 2 2,5 2 4 2,6,10,11 3 3,5 3 4 3,7,11,12 4 4,5 4 4 4,8, 9,12 5 1,6 5 4 1,2, 3, 4 6 2,6 6 4 5,6, 7, 8 7 3,6 8 4,6 9 1,4 10 1,2 11 2,3 12 3,4

    【0027】 表2 五面体のトポロジ情報 局所辺を共有 辺の 局所面を構成する 局所辺 する局所面 局所面 局所数 局所辺 −−− −−−−−− −−− −−− −−−−−−− 1 1,5 1 4 1,4,7,8 2 2,5 2 4 2,5,8,9 3 3,5 3 4 3,6,7,9 4 1,4 4 3 4,5,6 5 2,4 5 3 1,2,3 6 3,4 7 1,3 8 1,2 9 2,3

    【0028】 表3 四面体のトポロジ情報 局所辺を共有 局所面を構成する 局所辺 する局所面 局所面 辺の数 局所辺 −−− −−−−−− −−− −−− −−−−−−− 1 1,4 1 3 1,4,5 2 2,4 2 3 2,5,6 3 3,4 3 3 3,4,6 4 1,3 4 3 1,2,3 5 1,2 6 2,3

    【0029】 表4 四辺形のトポロジ情報 局所辺を共有 局所面を構成する 局所辺 する局所面 局所面 辺の数 局所辺 −−− −−−−−− −−− −−− −−−−−−− 1 1 1 4 1,2,3,4 2 1 3 1 4 1

    【0030】 表5 三角形のトポロジ情報 局所辺を共有 局所面を構成する 局所辺 する局所面 局所面 辺の数 局所辺 −−− −−−−−− −−− −−− −−−−−−− 1 1 1 3 1,2,3 2 1 3 1

    【0031】このモデルで行ったもう1つの仮定は、下記の目的のために、モデルの各内面が2つの多面体に共通であり、それ以上の多面体に共通ではないことである。 すなわち、図14で、多面体141及び142は、
    共通面140をもつように示されている。 他方、一般に、1つの辺は3つ以上の多面体によって共有され得る。 すなわち、図15では、辺150は、3つの多面体151、152、153によって共有されている。 このような、多面体と辺の多数対1の関係は、以下で明らかになるように、交差計算には重要である。

    【0032】4. 作業用データ構造 2次記憶装置64に含まれるデータ・ファイル70及び80は、メイン・メモリ内にある作業用データ構造に変換され、これらの作業用データ構造をプログラム62
    (図6)が使用して所望の断面または等高面を生成する。 図16−図18に、それぞれ要素アレイ(「要素構造アレイ」)160、辺アレイ(「辺構造アレイ」)1
    70、及びノード・アレイ(「ノード構造」)180を示す。

    【0033】要素アレイ160(図16)は、モデルの各要素(多面体または多角形)ごとに1つのエントリを含む。 各エントリは、トポロジ要素タイプ(六面体、四面体等)を示す第1部分161、及び辺アレイ170
    (図17)または190(図19)内のその要素の辺を識別するエントリを指すポインタのリスト162を含む。 リスト162内の辺は、図9−図13及び表1−表5に示した局所順序付け方式で配列されており、したがって後述のように視察によって面を所与の辺で識別することができる。

    【0034】1つの可能な辺アレイ170を図17に示す。 この図で、辺アレイ170は、モデルの各大域辺ごとに1つのエントリを含む。 (「大域辺」とは、モデルの特定の多面体ではなくモデル全体に関して定義された辺を意味する。大域辺は、図15に示すように、一般に、いくつかの多面体の局所辺になり得る。)各辺エントリは、ノードのリスト173を、より具体的にはノード・アレイ180内のエントリを指す1対のポインタを含む。 各辺エントリは、その辺と切断平面または等高面との交差が評価されたかどうかを示す交差フラグ17
    1、及び交点が決定された場合にはその交点の座標17
    2をも含む。 交差フラグ171を使用すると、同じ大域辺に関する別の多面体についての交点172が以前に生成されたかどうかを示すので、交差計算がスピードアップされる。

    【0035】図18を参照すると、ノード・アレイ18
    0は、モデルの各大域ノードごとに1つのエントリを含む。 辺アレイ170の場合と同様に、所与の大域ノードは、2つ以上の多面体の局所ノードとなり得る。 ノード・アレイ180内の各エントリは、特定のノードのx、
    y、z座標181と、そのノードに関する計算された結果182(もしあれば)を含む。 各エントリは、辺アレイ170内の、そのノードを共有する辺を指すポインタのリスト183をも含む。

    【0036】好ましい辺アレイ190を図19に示す。
    図19に示すように、好ましい辺アレイ190は、辺アレイ170(図17)の場合と同様に、モデルの各大域辺ごとに1つのエントリを含む。 辺アレイ190内の各エントリは、ノード・アレイ180内の、その辺を共有するノードを指す1対のポインタ191、要素アレイ1
    60内の、その辺を共有する要素を指すポインタのリスト192、辺アレイ170の交差フラグ171と類似の交差フラグ193、及び交点リスト200(図20)内の適当なエントリを指す交差ポインタ194を含む。 図20を参照すると、交差リスト200は、リスト・ヘッダ205と、その後に続く、切断平面または等高面と交差するモデルのそれぞれの辺に対応するリンク201を含む、リンク付きリストを含む。 各リンク201は、辺アレイ190(図19)内の対応するエントリを指す辺ポインタ202、交点(もしあれば)の座標及び結果(203)、及びリスト内の次のリンク201を指す順方向ポインタを含む。 通常通り、零ポインタ(図20では図示せず)はリストの終りを示す。

    【0037】このように交差ポインタ194を使用すると、必要メモリを減らすことができる。 というのは、交差ポインタは、実際の座標よりずっと小さいメモリ空間しか必要としないからであり、モデル内の辺のごく一部分だけが問題の切断平面または等高面と交差するからである。 以下では、辺アレイ170よりも辺アレイ190
    が使用されると仮定する。 ただし、一般に、その代りに辺アレイ170を、交差ポインタではなくその絶対交差値とともに使用することもできる。

    【0038】アレイ160、190、180は、操作開始時に記憶装置64内のファイル70及び80に含まれる初期要素及び頂点データから作成される。 交差リスト200は、特定の切断平面または等高面に関して交差計算が実行されるときに作成される。

    【0039】ゾーン・アレイ(「ゾーン構造アレイ」)
    210と呼ばれる別のアレイを図21に示す。 ゾーン・
    アレイ210は、下記のように、切断平面法線または等高面変数が選択され、モデルの各要素がゾーンに割り当てられたときに作成される。 ゾーン・アレイ210は、
    定義された各ゾーンごとに1つのエントリを含む。 各エントリは、リスト・ヘッダ215、及びそのゾーンに割り当てられた各要素に対応するリンク212からなるリンク付きリストを含む。 各ゾーン用のリスト・ヘッダ2
    15は、図21に示すように、隣接する記憶位置に含まれ、したがって、ゾーン番号をインデックスとして使用することによって特定のリストにアクセスすることができる。 各リンク212は、要素アレイ160(図16)
    内の対応する要素を指す要素ポインタ213、及び連鎖内の次のリンクを指す順方向ポインタ214を含む。 交差リスト200(図20)の場合と同様に、零ポインタ(図21には図示せず)はアレイ210内の特定のリストの終りを示す。

    【0040】5. 操作の一般的シーケンス a. 切断平面態様 図22は、モデルを切断平面内で図形表示するための一般的シーケンスの流れ図を示す。 図形表示すべき各モデルごとに(220)、作業用データ構造160、19
    0、180が、2次記憶装置64内にあるデータ・ファイル70及び80から作成される(221)。 モデルを表示する場合(222)、プログラム62(図6)はまず適当なユーザ入力を待つ(223)。 このようなユーザ入力には、モデルの縮尺変更、または3つの座標軸のうちの1つでの回転(224)、切断平面法線の選択、
    または特定の切断平面のその法線に沿っての移動が含まれる。 特定の切断平面法線を選択すると、モデルのノード座標が変換され、下記のように要素がゾーンに割り当てられる(225)。 たとえば、ダイアルの回転によって特定の切断平面をその法線に沿って移動させると(2
    26及び227)、プログラム62は、切断平面とモデルの間の交差を処理し(228)、多角形データを多角形プロセッサ68(図6)に供給して結果を表示させる(229)。

    【0041】b. 等高面態様 次に図23を参照すると、モデルを等高面に沿って図形表示するための手順は、全般的にモデルを切断平面内で表示するための手順と類似している。 したがって、図2
    3の各段階は、全般的に図22に示した段階と類似しているが、2つの手順の間には大きな違いがいくつかある。 第1に、等高面態様では、新しい切断平面法線ではなく表示すべき新しい結果の選択に応答して(座標変換なしで)ゾーンが作成される(235a−235b)。
    第2に、新しい交差面は、ダイアルの回転に基づく新しい等高値の定義に応答して作成される(237−23
    8)。

    【0042】6. 作業用データ構造の作成 図24に、2次記憶装置64から最初に提供されるデータ・ファイル70及び80からデータ構造160、19
    0、180を作成するための手順をさらに詳しく示す。
    ここで下記のコード・リスト1を参照すると、データ・
    ファイル70内の各ノード・エントリごとに、座標及び結果が、ノード・アレイ180(最初、ノード・アレイは空である)内で作成されたエントリの対応する位置1
    81及び182にロードされ、そのエントリ用のノードを共有する辺のリスト183が空にセットされる(24
    1−242)。 次に、プログラムは、要素ファイル80
    (243)から各エントリを読み出し、それに対応して辺アレイ170または190及び要素アレイ160を修正する(244)。 これは、下記のコード・リスト2及び3により具体的に記述されている。

    【0043】 コード・リスト1 FOR データ・ファイル内の各ノード DO ノード座標及びノードでの結果を読み取る; これを「ノード構造アレイ」にロードする; 「ノード構造アレイ」内の「ノードを共有する辺のリスト」を空にセットする ; END FOR データ・ファイル内の各ノード

    【0044】 コード・リスト2 FOR データ・ファイル内の各要素 DO データ・ファイルからすべての大域ノード識別子を読み取る; FOR 各局所辺 DO 局所辺、ノードA及びノードBに関する大域ノード識別子を得る; IF<ノードA及びノードBをもつ大域辺が存在する>THEN 「要素構造アレイ」内の「辺のリスト」を指す大域辺ポインタを追加する; ELSE 「辺構造アレイ」内で新しい大域辺エントリを作成し、ノードA及びB用のポイ ンタを「ノードのリスト」に入れる;「ノード構造アレイ」内のノードA及びB 用のエントリに進む;ノードA及びB用の「ノードを共有する辺のリスト」を指 す新しい大域辺ポインタを追加する; ENDIF END FOR 各局所辺 END FOR データ・ファイル内の各要素

    【0045】 コード・リスト3 <ノードA及びノードBをもつ大域辺が存在する>試験機能: 「ノード構造アレイ」内のノードAエントリに進む; IF<「ノードを共有する辺のリスト」が空である>THEN 大域辺は存在しない; リターン(偽); ELSE FOR 「ノードを共有する辺のリスト」内の各辺 DO 「辺構造アレイ」からこの辺に関する「ノードのリスト」、たとえばノー ドX 及びノードYを得る; IF<ノードBとノードXが同じである>THEN ノードA及びノードBをもつ大域辺が存在する;現在の辺は「辺構造アレイ」内 の位置を指す; リターン(真); ELSE IF<ノードBとノードYが同じである>THEN ノードA及びノードBをもつ大域辺が存在する;現在の辺は「辺構造アレイ」内 の位置を指す; リターン(真); ENDIF ENDIF END FOR 「辺共有ノードのリスト」内の各辺 大域辺は存在しない; リターン(偽); ENDIF

    【0046】7. ゾーンの定義及び割当て a. 切断平面態様 1. 一般的概要 次にモデルと切断平面との交差を決定するために使用されるゾーン分割技法について説明する。 この図形表示プロセスの意図は、切断平面と、多面体から構成されるモデルとの交差を見つけることである。 潜在的に切断平面と交差する可能性のある多面体だけを迅速に選択できるようにするために、多面体を、ゾーンに分類する。 一般に、ほとんどの多面体は切断平面と交差しないので、モデル内のすべての多面体について交差を試みることは無駄である。

    【0047】図25は、法線252をもつ切断平面25
    1と交差するモデル250に応用した、この技法の一例を示す。 (図25では切断平面251はモデル250から隔置されているが、切断平面251は後で法線252
    の方向にその切断平面がモデルと交差する位置まで移動されると仮定する)。 分類及びゾーン分割を行うために、モデル250のノードの座標を、切断平面法線方向252が新しいZ方向253と平行になるように変換する。 この座標変換によって、モデル250は、図25に示すように、Z最小値(Zmin)及びZ最大値(Zm
    ax)を境界とする。 次に、Z方向を、Z最小値とZ最大値の間のゾーンに分割する。 ゾーンの長さは、多面体のZエクステントの最大値になるようにする。 図25に示した特定の例では、モデル250の最大Zエクステントは、多面体254のZエクステントである。 座標空間をゾーンに分割した後、モデル250の各多面体を、その頂点のZ値に従って、たとえばセントロイドのZ座標に従って、ゾーンの1つに割り当てる。

    【0048】多面体の頂点の変換されたZ座標に基づいて多面体をゾーンに割り当てることによって、切断平面251の特定の位置について、現在のZゾーン内、及び両側のそれぞれ1つの隣接ゾーン内の多面体を試験することで十分である。 したがって、大きなモデルでは、試験すべき多面体の数がかなり減少する。 このようなゾーンへの多面体の割当ては、たとえ切断平面自体をその元の位置に対して平行移動する場合でも、所与の切断平面法線についてただ1度だけ実行する。

    【0049】2. 好ましい実施態様 図26に、モデル座標を変換し、図22に示されたゾーンを作成する段階225をさらに詳しく示す。 切断平面法線が与えられているものとして(260)、プログラム62はまず、元のモデル座標x、y、z(図27)から、Z軸が切断平面法線271(図27)と平行になった変換された座標X、Y、Z(図28)に変換するための変換行列を計算する(261)。 (小文字のx、y、
    zは元のモデル座標を意味し、大文字のX、Y、Zは変換された座標を意味する。 )変換行列T(この行列の要素は図29に示す)の計算は、解析幾何の簡単な演習問題であるので、ここでは説明しない。 変換行列Tにおいて、a1は切断平面法線271のxz座標平面上への射影272とz軸(図27)の間の角度であり、a2は切断平面法線とxz平面の間の角度である。

    【0050】変換行列T(図29)の計算後(26
    1)、モデルのノード座標を変換し、モデルのZ限界を得る(262)。 これは、下記のコード・リスト4により具体的に記述されている。

    【0051】 コード・リスト4 すべてのノードの変換とモデルのZ限界の獲得 FOR データ・ファイル内の各ノード DO データ・ファイルからノード座標を読み取る; この座標に変換を適用する; 変換された座標を「ノード構造アレイ」内に記憶する; IF<第1ノード>THEN Zmax=Zmin=ノードのZ座標; ELSE IF<ZmaxがノードのZ座標より小さい>THEN Zmax=ノードのZ座標; ENDIF IF<ZminがノードのZ座標より大きい>THEN Zmin=ノードのZ座標; ENDIF ENDIF END FOR データ・ファイル内の各ノード

    【0052】上記のリストに詳しく記述するように、2
    次記憶装置64内に維持されているノード・データ・ファイル70内の各ノード・エントリのx、y、z座標を読み取り、図29に示した変換行列を使って変換し、ノード・アレイ180(図18)内の対応するエントリの領域181に記憶する。 この変換には、ノード・アレイ180に記憶されているノード・データではなく、データ・ファイル70に記憶されている元のノード・データを使用する。 というのは、ノード・アレイに記憶されているノード座標は以前に変換されている場合があり、変換を繰り返すと変換されたデータの精度が悪くなる可能性があるからである。 変換されたノード座標がノード・
    アレイ180内にロードされるとき、変換されたZ座標の最大値Zmaxならびに変換されたZ座標の最小値Z
    minのランニング・アカウントが維持される。 この手順の終了時には、モデル全体に対するZ限界値Zmax
    及びZminが得られることになる。

    【0053】この段階の後で(262)、図30に示すように、このモデルを含むXYZ座標空間をゾーンに区分する(263)。 これは、下記のコード・リスト5により具体的に記述されている。

    【0054】 コード・リスト5 ゾーンの作成 FOR 「要素構造アレイ」内の各要素 DO 要素内のノードを得る; ノード中をループする;Z座標を比較し、要素に関するデルタZを得る; IF<第1要素>THEN max_element_deltaZ=deltaZ; ELSE IF<max_element_deltaZがdeltaZより小さい >THEN max_element_deltaZ=deltaZ; ENDIF ENDIF END FOR 「要素構造アレイ」内の各要素 number_of_zones =((Zmax−Zmin)/max_element_deltaZ)+1; FOR 「要素構造アレイ」内の各要素 DO 要素内のノードを得る; ノード中をループし、Z重心(ZCG)を計算する; ZCGに基づいて、要素を「ゾーン構造アレイ」内の適当な位置にある「要素の リスト」に追加する;END FOR 「要素構造アレイ」内の各要素

    【0055】上記のリストに示すように、要素アレイ1
    60(図16)を走査して、各要素の頂点でのZエクステント(デルタZ)を決定する。 その結果、モデル30
    8(図30)内の任意の要素に関する最大Zエクステント(max_element_deltaZ)が得られる。 次に、図30に示すように、XYZ座標空間をゾーン301−307に区分する。 各ゾーン301−307
    は、恐らく最後のゾーン307を除き、モデル308の任意の要素の以前に決定された最大Zエクステント(m
    ax_element_deltaZ)に等しいZエクステントをXYZ座標空間内に有する。 最後のゾーン3
    07は、最大要素エクステント(max_elemen
    t_deltaZ)より小さいZエクステントをもつことがある。 というのは、モデルのZエクステント(Zm
    ax−Zmin)が最大要素エクステントの整数倍でないことがあるからである。 ゾーン301−307は、X
    YZ座標空間内で連続し、隣接する1対のゾーンはZ軸と垂直な平面によって分離される。 ゾーン301−30
    7は、図30では、ZmaxからZminに向かって降順に番号を付けてあるが、これはもちろん全く任意であり、希望するならこれらのゾーンにZminから昇順に番号を付けることもできる。

    【0056】なおコード・リスト5を参照すると、ゾーン301−307をこのようにしてXYZ座標空間内で定義した後、要素アレイ160(図16)を再び走査して、その要素のZ重心(ZCG)を決定する。 便宜上、
    ある特定の要素のZCGは、その要素の最小Z座標と最大Z座標から簡単に誘導でき、すべてのノードについて平均を取る必要はないものとする。 要素のZCGに基づいて、各要素を、ゾーン・アレイ210(図21)の当該の位置で要素のリストに追加する。 これは、別のリンク212を当該のゾーンのリンクの現連結の終り(もしあれば)に追加することによって実行され、新しいリンクは要素アレイ160内の該当する要素を指す要素ポインタ213、及び零を指す順方向ポインタ214を含む。 というのは、この新しいリンクは連鎖内の最後のリンク212だからである。

    【0057】図26に示し、コード・リスト4及び5に詳しく記述した変換及びゾーン作成段階は、切断平面法線が変化したときだけ実行される。 既存の切断平面30
    9(図30)をZ軸に沿って平行移動しても、切断平面法線は同じままなので、追加の変換またはゾーン割当ては不要である。

    【0058】b. 等高面態様 1. 一般的概要 等高面に基づいてモデルを図形表示するために使用されるゾーン分割手順は、言うまでもなくゾーンが定義され、(変換された)z座標ではなく頂点での結果の値に基づいて各要素がゾーンに割り当てられることを除き、
    切断手順と類似している。 1つの可能なゾーン分割及び分類方式を、図31及び図32に示す。 この手順では、
    まずモデルを形成するすべての多面体を調べて、MAX
    (Rmax−Rmin)を決定する。 ここで、Rmax
    及びRminは、1つの多面体内の最大及び最小の解析変数の結果である。 モデル全体のMAX(Rmax−R
    min)値は、このとき各ゾーンに関するスパンとして使用できる。 たとえば、図31では、モデル全体の解析変数の値の範囲は0−32であり、MAX(Rmax−
    Rmin)が5の場合、ゾーンは図に示すように7つのゾーンをもつように定義できる。

    【0059】次に、RmaxとRminの平均(またはその他の、要素頂点における結果の適当な統計)を使って、各多面体を当該のゾーンと関連づける。 上記の切断平面態様の場合と同様に、各多面体はただ1つのゾーンと関連づけられる。 すなわち、図31で、多面体311
    モデルは、頂点Aで最大結果値18、頂点Bで最小結果値14をもつ。 これらの最大結果値と最小結果値の平均は16なので、多面体311は値15と20の間の結果を含むゾーン4に割り当てられる。

    【0060】本発明の切断平面態様でも使用できるゾーン割当ての代替方式を、図33に示す。 この場合、等高面を定義する解析変数または結果の範囲は、この例では0と100の間であり、モデルの特定の要素の解析結果の変動に関係なく、等しいエクステントをもつ複数のゾーンに区分される。 この場合は、10個のゾーンが定義され、ゾーンiは10(i−1)から10iまで延びる。 モデルの各要素は、ただ1つのゾーンに割り当てられるのではなく、その任意の頂点での結果の値が含まれる範囲のすべてのゾーンに割り当てられる。 すなわち、
    図33に示すように、等高面を定義する結果は、多面体331の頂点上で35と60の間、多面体332の頂点上で21と23の間の値をとる。 したがって、多面体3
    31はゾーン4−7のそれぞれに割り当てられ、多面体332はゾーン3にだけ割り当てられる。 この方式では、平均の頂点値に基づいて1つの要素を1つのゾーンにだけ割り当てる方式とは違って、交差する可能性のある多角形を探すために現在のゾーンだけを探索すればよい。

    【0061】2. 好ましい実施態様 等高面を得るための前処理手順は、座標空間が個々の結果変数に基づいて区分され、したがって座標変換は不要なことを除き、一般に切断平面に関する手順と類似している。 下記の図34及びコード・リスト6はモデルの限界を得るための段階235a(図23)をより具体的に記述している。

    【0062】 コード・リスト6 モデルに関する結果の限界の獲得 FOR データ・ファイル内の各ノード DO データ・ファイルから結果の値を読み取る; 結果を「ノード構造アレイ」内に記憶する; IF<第1ノード>THEN Rmax=Rmin=結果の値; ELSE IF<Rmaxがノードの結果の値より小さい>THEN Rmax=ノードの結果の値; ENDIF IF<Rminがノードの結果の値より大きい>THEN Rmin=ノードの結果の値; ENDIF ENDIF END FOR データ・ファイル内の各ノード

    【0063】上記のリストに示すように、2次記憶装置内に維持されたノード・データ・ファイル70(図7)
    内の各ノードごとに、等高面を生成するために使用される結果の値(75−76)をデータ・ファイルから読み取り、ノード・アレイ180(図18)内の対応するエントリの結果の領域182に記憶する。 これが実行されているとき、このモデルについてこれまでに得られた最大結果値Rmax及び最小結果値Rminのランニング・アカウントが維持される。 この手順の終了時には、モデル全体に対する結果の限界Rmax及びRminが得られることになる。

    【0064】段階235aに続くゾーン作成(図23)
    の段階235bは、下記のコード・リスト7により具体的に記述されている。

    【0065】 コード・リスト7 ゾーンの作成 FOR 「要素構造アレイ」内の各要素 DO ノードでの結果を得、deltaRを計算する; IF<第1要素>THEN max_deltaR=deltaR; ELSE IF<max_deltaRがdeltaRより小さい>THEN max_deltaR=deltaR; ENDIF ENDIF END FOR 「要素構造アレイ」内の各辺 number_of_zones =((Rmax−Rmin)/max_deltaR)+1; FOR 「要素構造アレイ」内の各要素 DO 要素内のノードを得る; ノード中をループし、結果の重心(RCG)を計算する; RCGに基づいて、要素を「ゾーン構造アレイ」内の適当な位置で「要素のリス ト」に追加する;END FOR 「要素構造アレイ」内の各要素

    【0066】上記のリストに詳しく記述した手順は、切断平面に関するコード・リスト5に詳しく記述した対応する手順に類似している。 アレイのすべての要素に関する最大結果変動値(max_deltaR)が得られ、
    結果の空間(したがって、座標空間)がゾーン341−
    345に分割されるが(図34)、恐らく最後のゾーン345を除き、各ゾーン内での選択された結果の変動がmax_deltaRになるように分割される。 切断平面態様の場合と同様に、等高面ゾーンは、Rmaxから順に定義される。 ただし、明らかに、希望するなら、これらのゾーンをRminから順に定義することもできる。 切断平面態様の場合と同様に、モデルの要素(図3
    4には図示せず)は、リンク212をゾーン・アレイ2
    10(図21)の当該の連鎖の終りに追加することによって、ゾーンに割り当てられる。

    【0067】モデルに関する結果の限界を得る前処理段階(235a)、及びコード・リスト6及び7に記述したゾーン作成の前処理段階(235b)は、等高面のベースとして選択された個々の結果変数について1度だけ実行すればよい。 これらの前処理段階は、結果変数の値が変化した場合でも、選択された変数(たとえば、圧力と区別された温度)が同じままである限り、再実行する必要はない。

    【0068】8. 交差の手順 a. 切断平面態様 1. 交点の決定 平面とモデルの交差を処理する段階228(図22)を実行する手順を、図35により詳細に示す。 前述のように、xyzモデル座標から変換されたXYZ座標に変換した後、Zの方向は切断平面法線と平行になっている。
    切断平面をその法線と平行な方向に移動して、モデルとの適当な交差を生成する。

    【0069】切断平面とモデルの交差を処理するため、
    ZminとZmaxの間で切断平面位置が与えられているものとすると(350)、プログラム62(図6)はまず、切断平面がどのゾーン(Zone)に属するかを決定する。 これはそのZ位置によって示される(35
    1)。 この決定が行われた後は、プログラム62は(Z
    one−1)、Zone及び(Zone+1)内の要素だけを処理する。 というのは、それらの要素だけが、切断平面と交差する可能性のある要素だからである。 たとえば、図30で、モデル308と交差する切断平面30
    9がゾーン305内にある場合、試験される要素は、ゾーン304、305、306に割り当てられた要素だけである。 これら3つのゾーンだけに属している要素の選択は、ゾーン・アレイ210(図21)の当該のエントリを走査し、これらのエントリ内に含まれるリストが指す要素を処理することによって行う。

    【0070】選択された3つのゾーンの各要素は、図3
    5の段階352に示すように処理される。 まず、要素の各辺を試験して、切断平面309(図30)と交差する可能性を調べる。 交差があった場合、その結果得られた多角形が下記のようにして組み立てられ、この多角形とその頂点のカラーが図形プロセッサ68(図6)に渡され、頂点に指定されたカラーをもつグロー陰影付き多角形が表示される。

    【0071】下記のコード・リスト8は、選択された3
    つのゾーン304−306のうちの1つのゾーンの要素と切断平面309(図30)の交差の手順をより具体的に記述している。

    【0072】 コード・リスト8 (Zone−1),Zone,(Zone+1)内の要素と平面の交差 FOR 要素内の各辺 DO IF<「辺構造アレイ」内でこの辺に関するalready_inter sected_flagがセットされていない>THEN IF<辺のZ座標が平面のZ位置と交差する>THEN 辺と平面を交差させる; 辺を「現Z平面位置に関する交差する辺のリスト」に追加する; 辺のノードでの現在の結果値を得、線形補間して交点での結果値を得る; 補間された結果をRGBカラー値に変換する; 交差座標及びカラー値を記憶する; この辺に関するalready_intersected_flagをセットす る; ENDIF ENDIF END FOR 要素内の各辺

    【0073】上記のリストに記述するように、要素の各辺について、辺アレイ190(図19)の対応するエントリの交差フラグ193を調べて、そのフラグがセットされているかどうかを決定する。 セットされたフラグは、モデルの別の要素に関して辺の交差が以前に計算されていることを示す。 交差フラグがセットされている場合、プログラムは直ちに次の辺に進む。 セットされていない場合、辺の頂点のZ座標を調べて、それらのZ座標が切断平面を跨ぐかどうかを決定する。 この決定は、辺アレイ(図19)内のその辺に関するエントリ内のノードのリスト191が指すノードのZ座標を調べることによって行う。 これらのノードのZ座標が切断平面を跨がない場合は、現在の辺は切断平面と交差しないので、プログラムは次の辺に進む。 跨ぐ場合、その辺と切断平面の交点を決定する。

    【0074】交点は、上で述べたように線形補間によって算出する。 この補間法を図36に示す。 図で、辺36
    0は端点P1及びP2をもつ。 図36に示すように、辺360は、Z座標がZpである切断平面361と交差する。 座標及び結果がP1でX1、Y1、Z1及びR1であり、P2でX2、Y2、Z2及びR2であると仮定すると、交点Iでの補間された座標及び結果XI、YI、
    ZI及びRIは、下記の方程式によって与えられる: t=(Zp−Z1)/(Z2−Z1) (8.1) XI=X1+t(X2−X1) (8.2) YI=Y1+t(Y2−Y1) (8.3) ZI=Zp (8.4) RI=R1+t(R2−R1) (8.5)

    【0075】なおコード・リスト8を参照すると、このようにして(8.1〜8.4)辺360と切断平面36
    1の交点Iの座標を決定した後、辺360が交差する辺のリスト200(図20)に追加される。 これは、辺アレイ190(図19)内の辺360に関するエントリを指す辺ポインタ202を有するリスト200にリンク2
    01を追加することによって行われ、座標及びカラーが部分203に記憶される。 新しく追加されたリンク20
    1は連鎖の最後なので、そのリンクのリスト・ポインタ204は空白を指すようにセットされる。 辺360がリスト200に追加された後、辺360のノードP1及びP2に関する結果R1及びR2が得られ、交点Iでの結果RIが線形補間(8.5)によって得られる。 この補間された結果は、RGBカラー値に変換され、交差座標XI、YI、ZIとともに、新しく追加されたリンク2
    01の部分203に記憶される。 最後に、辺アレイ19
    0(図19)内の辺360に関する交差フラグ193がセットされ、この辺と切断平面361の交差がすでに決定されており、モデルのその他の要素について再計算する必要がないことを示す。

    【0076】切断平面または等高面との交差の可能性を調べるために選択されたゾーン内のすべての要素のすべての辺を試験する方法の代替法として、ゾーン分割手順中に特定の要素について決定された最小値及び最大値(Zmin、Zmax)を保存して、後で交差手順中に使用することができる。 すなわち、特定の要素に関するZmin及びZmaxが現Z値を跨がない場合、その要素は切断平面と交差しなかったとして簡単に拒絶される。 各要素に関するZmin、Zmaxは、要素アレイ160(図16)に、また好ましくはゾーン・アレイ2
    10内の適当なリストの対応するリンク212に記憶することができる。

    【0077】2. 交点の接続 所与の多面体について、辺と切断平面が交差すると、図36に辺360について示すように、切断平面上に点が発生する。 (多面体と切断平面の交差によって形成された)特定の交差多角形を構成する交点が決定された後、
    残りの作業はこれらの点を接続して多面体を作成することである。 すなわち、図37で、多面体370は、切断平面371と交差し、多面体の辺P、Q、R、S上にそれぞれ頂点A、B、C、Dを作る。 この接続方式では、
    これらの頂点を取り、それらを適当に接続して、切断平面内で多角形372を作成する。 この接続方式では、これらの頂点を適切な順序で接続しなければならない。 たとえば、点AとCならびにBとDを接続してはならない。 本発明で使用する接続方式は、基本的に、以下の通りである。 多面体の同じ面に属する2つの点は、接続する。 すなわち、多面体の同じ面の一部分である辺によって生成された2つの点は、接続する。 図37に示した例では、点AとBは、面Uの一部分である辺PとQの交差によって生成され、したがって接続しなければならない。

    【0078】閉じた多角形をつくるのに使用される手順を図37を参照して説明する。 任意の交点、たとえば点Aから出発する。 (点Aは辺Pによって生成されているので)辺Pを含む面、たとえばUを取り上げる。 別の点を生成した面Uの一部分である辺を探す。 ここでは、それは、点Bを生成した辺Qである。 点AとBを接続する。 次に、辺Qの第2の面を取り上げる。 これは面Vである。 出発面Uに達するまで上記の手順を繰り返す。 この手順によって、多角形を非常に迅速に作成することができる。 この手順では、各辺は同じ多面体のちょうど2
    つの面によって共有されると仮定されていることに留意されたい。

    【0079】多面体の辺と切断平面の交差によって作られる交点同士を接続するための上記手順は、下記のコード・リスト9により詳しく記述されている。

    【0080】コード・リスト9 要素内での交差多角形の
    作成(接続方式)要素の辺中をループし、1つの交差された辺、たとえばEを得る;(これが多角形の出発点になる)座標、及び図形プロセッサに送られる多角形データ内の第1の点に関する結果を表すRGBカラーを得る;この辺を共有する局所面、たとえばF1及びF2を得る。 starting_face=F1;curre
    nt_face=F1;current_inters
    ected_edge=E;FOR current_
    face内の各辺 DOIF 辺がcurrent_i
    ntersected_edgeと同じでないDOIF
    <intersection_flagがセットされている>THEN記憶された交差座標及びRGBカラーを得る;この点を多角形点のリストに追加する;curr
    ent_intersected_edge=edg
    e;この辺を共有する要素面、たとえばF3及びF4を得る;IF<current_faceがF3と同じである>THENcurrent_face=F4;EL
    SEcurrent_face=F3;ENDIFIF
    <current_faceがstarting_fa
    ceと同じである>THEN 多角形の作成を終了した;頂点カラー付きの多角形を図形プロセッサに送る;FORループから出る;ENDIFENDIFE
    NDIFEND FOR current_face内の各辺

    【0081】上記のコード・リストに示すように、多角形の点のリストは、交点同士が接続されたとき作成される。 交点がすべてリストに追加されたとき、頂点座標、
    ならびに頂点結果を表す頂点カラーが、多角形プロセッサ68(図6)に送られる。 本明細書ですでに記したように、データ・ファイル、及びデータ・ファイルから生成されたデータ構造内で仮定されている頂点及び辺の局所順序付け配列により、座標データを調べる必要なく、
    視察によって多面体の所与の面を決定することができる。

    【0082】多角形プロセッサ68に渡された頂点データは、変換された座標X、Y、Zを含むが、これはモデルが変換されたZ軸に沿って表示されることを必ずしも意味しない。 この態様ならびに等高面態様では、モデルをその元のサイズ及び方向で、またはユーザ入力に応答して回転及び縮尺変更して表示するための、適当なパラメータが多角形プロセッサ68に渡される。

    【0083】上記の説明では、モデルを形成する多面体及びその他の要素が凸形であると仮定した。 しかし、一般的に、本発明は、凹形要素を含むモデルを図形表示するのにも使用できる。 凹形要素の使用から生ずる厄介な問題は、このような要素と特定の切断平面の交差が、互いに素ないくつかの多角形、あるいは共通の辺または頂点を共有するいくつかの多角形を生ずる可能性があることである。 前記の接続方式を、各要素ごとに交点の数を記録し、どの交点が使用されていないかをフラグ付けすることによって、このようなケースで使用できるように適合させることができる。 交差多角形を形成するためにすべての交点が使用されてしまった場合、その要素についての接続手順は完了する。 そうでない場合、接続手順が再び開始され、残っている未使用の点の1つを出発点として選択して、1つまたは複数の交差多角形を形成するために識別された交点がすべて使用しつくされるまで続行する。

    【0084】b. 等高面態様等高面を作成する段階23
    8(図23)の実行手順を、図38により具体的に示す。 この手順は、結果値によって定義される等高面が関係する点を除き、切断平面態様(図35)の対応する手順と類似している。 図38で、モデル(380)の最小値(Rmin)と最大値(Rmax)(図34)の間の等高値が与えられているものとすると、プログラム62
    (図6)はまず、その等高値が属するゾーン(Zon
    e)を決定する(381)。 この決定の後、プログラムは進んで、(Zone−1)、Zone及び(Zone
    +1)内の要素だけを処理する。 というのは、これらの要素だけが、等高面と交差し得るからである(38
    2)。 これらのゾーン内の各要素ごとに、プログラムは、等高面による交差の可能性を調べるために要素辺を試験する。 交差がある場合、プログラムはその要素内で等高面に対する三角形近似を行い、形成された三角形を図形プロセッサ68に渡して陰影を付ける。 コード・リスト10(これは切断平面態様用のコード・リスト8に類似している)はこの手順を詳しく記述している。

    【0085】コード・リスト10 (Zone−1),Z
    one,(Zone+1)内の要素と等高面の交差 FO
    R 要素内の各辺 DOIF<「辺構造アレイ」内のこの辺に関するalready_inter secte
    d_flagがセットされていない>THENIF<辺の両ノードでの結果が現在の等高値を跨ぐ>THEN補間して交点を得る;辺を「現在の等高値に関する交差する辺のリスト」に追加する;交差座標を記憶する;この辺に関するalready_intersected_
    flagをセットする; ENDIFENDIFE
    ND FOR 要素内の各辺

    【0086】コード・リスト10には示されていないが、各交差について得られ、交差リスト200(図2
    0)の点に記憶されたデータは、その点の座標だけでなく、選択された結果のカラー値をも含むことができる。

    【0087】切断平面態様の場合と同様に、切断平面または等高面との交差の可能性を調べるために選択されたゾーン内のすべての要素のすべての辺を試験する代りに、ゾーン分割手順中に個々の要素について決定された最小値及び最大値(この場合Rmin、Rmax)を、
    後で交差手順中に使用するために保存することができる。 したがって、個々の要素についてのRmin及びR
    maxが現在のR値を跨がない場合、その要素は等高面と交差しなかったとして簡単に拒絶される。 各要素についてのRmin、Rmaxは、要素アレイ160(図1
    6)に、また好ましくはゾーン・アレイ210内の適当なリストの対応するリンク212に記憶することができる。

    【0088】図39は、閉じたポリライン391を形成する等高面(図示せず)による多面体390の交差を示す。 ポリライン391の頂点A、B、C、D、Eは、それぞれ所与の値の等高面に関する多面体390の辺P、
    Q、R、S、Tの補間された交点である。 等高面と多面体390の交差の輪郭の近似は、多面体390の単一の面に属する2つの点を次々に接続することによって得られる。 所与の例では、Aが出発点であるとして、線分A
    B、BC、CD、DE及びEAがポリライン391を形成する。 このポリライン391は一般に平面ではなく、
    多角形プロセッサに供給するために三角形分割される、
    すなわち1つまたは複数の三角形(図40)に分割される。 下記のように、これらの三角形は共通の頂点として出発頂点Aを共有し、ポリライン391を形成する頂点同士の接続と同時に生成されることが好ましい。

    【0089】図41は、等高面態様の接続方式を示す。
    これは、図37に示した切断平面態様の対応する方式と類似している。 この手順は、任意の補間点、たとえば点Aから出発する。 (点Aは辺Pによって生成されるので)辺Pを含む面、たとえばUを取り出す。 面Uの一部分であり別の点を生成した辺を探す。 この場合、それは、点Bを生成した辺Qである。 点AとBを接続する。
    次に、辺Qの第2の面を取り出す。 これは面Vである。
    出発面Uに達するまで上記の手順を繰り返す。 これらの点が接続されるとき、三角形分割(図40)を同時に実行することができる。 この接続手順は、下記のコード・
    リスト11に詳しく記述されている。

    【0090】コード・リスト11 要素内部での三角形分
    割された等高面の作成(接続方式)要素の辺中をループし、1つの交差された辺、たとえばEを得る;(これが出発点になる)この辺を共有する局所面、たとえばF1
    及びF2を得る。 starting_face=F1;
    current_face=F1;current_i
    ntersected_edge=E;number_
    of_points=1;FOR current_f
    ace内の各辺 DOIF<辺がcurrent_in
    tersected_edgeと同じでない>DOIF
    <intersection_flagがセットされている>THEN記憶された交差座標を得る;この点を三角形内の点のリストに追加する;number_of_
    points=number_of_points+
    1;IF<number_of_pointsが3である>THEN三角形を得る;三角形を図形プロセッサに送る;第3の点を第2の点にコピーする;number
    _of_points=2;第1の点はすべての三角形で同じであることに注意する;ENDIFcurren
    t intersected edge=edge;この辺を共有する要素の面、たとえばF3及びF4を得る;IF<current_faceがF3と同じである>THENcurrent_face=F4;ELS
    Ecurrent_face=F3;ENDIFIF<
    current_faceがstarting_fac
    eと同じである>THEN終了した;FORループから出る;ENDIFENDIFENDIFEND FOR
    current_face内の各辺

    【0091】コード・リスト11は、第3点及び後続の各交点について実行される、三角形分割手順に関係する追加の段階を除き、コード・リスト9と類似している。
    等高要素との交差は、上記の切断平面態様の場合と同様に処理できる。

    【0092】9. 外面の決定上述したように、モデルについての外面のリストを維持することによって、モデルを透明に描き、モデルの外面上に結果だけをグロー陰影付きで示すことができる。 外面は、その面を共有する多面体がただ1つである多面体の面として定義される。 モデルの内部では、少なくとも2つの多面体が各面を共有できることに留意されたい(図42)。 このことを利用して、各モデルの前処理段階として外面同士を切り離すことができる。

    【0093】図43及び図44は、前処理段階221
    (図22)または231(図23)中に作成される2つの追加のデータ構造を示す。 まず図43を参照すると、
    大域面アレイ430は、モデルの各大域面ごとに1つのエントリを含む。 (「大域」とは、たとえ同じ大域面が複数の多面体の局所面であっても、アレイの各面ごとに1つのエントリしかないことを意味する。)大域面アレイ430内の各エントリは、トポロジ面タイプ(たとえば、面が三角形、四辺形等)を示す部分431、後述する大域ノード・アレイ内のノードを指すポインタのリスト432、その面を共有する多面体の数の標識433、
    及びその面への法線ベクトルのx、y、z成分434を含む。 図44を参照すると、大域ノード・アレイ440
    はノード・アレイ180とは別物であり、モデルの各ノードごとに1つのエントリを含む。 アレイ440内の各ノード・エントリは、ノード座標(441)、そのノードを共有する面の数(442)、そのノードを共有する面に対応する面アレイ430内のエントリを指すポインタのリスト443、頂点法線フラグ444、及び頂点法線フラグ444がセットされている場合に存在する頂点法線ベクトル445を含む。

    【0094】ノード・アレイ440は、ノード・データ・ファイル70(図7)から比較的簡単に作成される。
    最初、面の数(442)は0にセットされ、面のリスト443は空である。 また、頂点法線フラグ444はリセットされている。 大域面アレイ430は、下記のコード・リスト12に詳しく記述する手順を使用して要素データ・ファイル80(図8)から作成される。

    【0095】コード・リスト12FOR 各多面体 D
    OFOR 多面体の各局所面 DOIF<固有の大域面識別が存在する>THEN大域面識別を得る。 この大域面を共有する要素の数に1を追加する。 ELSE固有の大域面識別を作成し、大域面アレイに追加する。 法線が多面体の外側を指すような面法線を計算する(任意の多面体面を形成するノードの局所順序はわかっていることを思い出されたい);法線を「面構造アレイ」に記憶する;面内の各ノードについて、大域面識別を各ノードの大域面リストに追加する。 ENDIFEND FO
    R 多面体の各局所面END FOR 各多面体FOR
    「面構造アレイ」内の各面 DOIF<面を共有する多面体の数が1に等しい>THENこれは外面である;
    FOR この外面内の各ノード DOノード・アレイに行く;IF<頂点法線フラグがセットされていない>T
    HENLOOPこのノードを共有する面のリスト中を;
    このリスト内の各面に関する「面構造アレイ」に進む;
    この面が外面である場合、面法線を実行中のnode_
    normal_vectorカウントに追加する;EN
    D LOOPnode_normal_vectorカウントを平均する;node_normal_vect
    orを正規化し、それを「ノード構造アレイ」に記憶する; 頂点法線フラグをセットする;ENDIF
    END FOR この外面内の各ノードこの面上の大域ノードをouter_face_polygon_fi
    leに書き込む;この大域ノード及びその頂点法線をv
    ertex_normal_fileに書き込む; E
    NDIFEND FOR「面構造アレイ」内の各面

    【0096】ある面のエントリが面アレイ430に追加されたとき、多面体(433)の数は1にセットされる。 同じ面が後でモデルの別の多面体の局所面であると識別された場合、多面体の数が2に増分され、この面がモデルの内面であることを示す。 この手順の終了時に、
    フィールド433によって示されるように、これらの外面は、面アレイ430を走査してただ1つの多面体によって共有される面を決定することによって識別される。

    【0097】ある外面によって共有される各頂点は、外向き法線ベクトルがその頂点を共有する外面の法線ベクトル(434)の平均として定義できる、モデルの表面上にある外側頂点である。 この外向き法線ベクトルは、
    ノード・アレイ440(図44)内の対応するエントリの領域445に記憶され、頂点法線フラグ444がセットされて、頂点法線が計算されたことを示す。

    【0098】ノード・アレイ440に記憶された法線ベクトルは、多角形プロセッサ68がモデルの外面の照明及び陰影付けのために使用する。 モデルの各外面は、通常通り、その頂点法線に従ってグロー陰影付き多角形として表示される。

    【0099】コード・リスト12で使用される<固有の大域面識別が存在する>試験機能は、下記のコード・リスト13中で定義される。

    【0100】コード・リスト13 <固有の大域面識別が
    存在する>試験機能試験される局所面の(大域)ノードを得る局所面のノード#1に接続された大域面のリストを得るFOR リスト内の各大域面 DO大域面ノードと局所面ノードを比較するIF<ノードが同じである>
    THEN固有の大域面識別が存在する試験機能から出るELSEFORループ内で続行するEND IF<ノードが同じである>END FOR リスト内の各大域面固有の大域面識別は存在しないEND試験機能

    【0101】特定の図形表示システムを示し説明したが、本明細書に記述したシステムの各種の変形は当業者には明らかである。 すなわち、すでに述べたように、モデルの多面体またはその他の要素は凸形であると仮定したが、凹形要素も使用できる。 頭記の特許請求の範囲に含まれる、図示し説明したシステム以外の変形も、当業者には明らかであろう。

    【図面の簡単な説明】

    【図1】切断平面と交差する多面体からなるモデルの透視図である。

    【図2】切断平面に沿って見た、図1に示したモデルの図である。

    【図3】切断平面とモデルの交差によって形成された多角形を示す、図1に示したモデルの別の図である。

    【図4】図1−図3に示した切断平面によって形成される交点を示す図である。

    【図5】等高面とモデルの多面体の交差を示す図である。

    【図6】本発明を実施するために使用できる図形システムの概略図である。

    【図7】本発明で使用する初期ノード・データの形式を示す図である。

    【図8】本発明で使用する初期要素データの形式を示す図である。

    【図9】六面体の面、辺及び頂点を局所的に順序付けるために使用する方式を示す図である。

    【図10】五面体を局所的に順序付ける方式を示す図である。

    【図11】四面体を局所的に順序付ける方式を示す図である。

    【図12】四辺形を局所的に順序付ける方式を示す図である。

    【図13】三角形を局所的に順序付ける方式を示す図である。

    【図14】共通の面を共有する1対の多面体を示す図である。

    【図15】共通の辺を共有するいくつかの多面体を示す図である。

    【図16】本発明で使用するデータ構造の要素アレイを示す図である。

    【図17】本発明で使用する1つのタイプの辺アレイを示す図である。

    【図18】本発明で使用するノード・アレイを示す図である。

    【図19】本発明で使用する別のタイプの辺アレイを示す図である。

    【図20】図19の辺アレイと一緒に使用される交点リストを示す図である。

    【図21】本発明で使用するゾーン・アレイを示す図である。

    【図22】モデルと切断平面を交差させるために使用される本発明の態様の高水準流れ図である。

    【図23】等高面とモデルの多面体を交差させるために使用される本発明の態様の高水準流れ図である。

    【図24】図22及び図23に示した流れ図のデータ構造を作成する段階をより詳細に示す流れ図である。

    【図25】本発明の切断平面態様でモデルのゾーンへの分割を示す図である。

    【図26】本発明の切断平面態様でモデル座標を変換し、ゾーンを作成する手順の流れ図である。

    【図27】切断平面法線のx、y、zモデル座標に対する向きを定義する透視図である。

    【図28】切断平面に対する法線がZ軸に平行である変換された座標系の透視図である。

    【図29】図27に示した元のモデル座標から変換された座標を得るために使用される変換行列の図である。

    【図30】本発明の切断平面態様でゾーンの割当てを示す図である。

    【図31】本発明の等高面態様で多面体とゾーンを関連づける1つの方式を示す図である。

    【図32】図31に示した方式に従って割り当てられたゾーンをさらに処理するための選択を示す図である。

    【図33】本発明の等高面態様で多面体とゾーンを関連づける代替方式を示す図である。

    【図34】本発明の等高面態様でゾーンの定義を示す図である。

    【図35】本発明の切断平面態様で平面とモデルの交差を処理する全段階の流れ図である。

    【図36】本発明の切断平面態様で補間手順を示す図である。

    【図37】本発明の切断平面態様で交点同士を接続する方式を示す図である。

    【図38】本発明の等高面態様で等高面とモデルの交差を処理する段階の流れ図である。

    【図39】等高面と多面体の交差から生ずる交点を示す図である。

    【図40】図39に示した交差によって作成された図形の三角形分割を示す図である。

    【図41】図39及び図40の交点同士を接続する方式を示す図である。

    【図42】多面体の外面、ならびにモデルの別の多面体が共有する内面を示す図である。

    【図43】図42に示したモデルの外面を決定するために使用するデータ構造の面アレイを示す図である。

    【図44】図41に示したモデルの外面を決定するために使用されるノード・アレイを示す図である。

    高效检索全球专利

    专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

    我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

    申请试用

    分析报告

    专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

    申请试用

    QQ群二维码
    意见反馈