JPH096991A - 有限要素分割モデルから辺,面,要素を抽出する方法及びその装置 - Google Patents
有限要素分割モデルから辺,面,要素を抽出する方法及びその装置Info
- Publication number
- JPH096991A JPH096991A JP7153277A JP15327795A JPH096991A JP H096991 A JPH096991 A JP H096991A JP 7153277 A JP7153277 A JP 7153277A JP 15327795 A JP15327795 A JP 15327795A JP H096991 A JPH096991 A JP H096991A
- Authority
- JP
- Japan
- Prior art keywords
- segment
- elements
- index value
- list
- segments
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Length Measuring Devices By Optical Means (AREA)
- Processing Or Creating Images (AREA)
Abstract
素を抽出することが出来、輪郭線が忠実に表示できるよ
うにする、またモデル中の任意の点を内含する要素を高
速に抽出する方法及びその装置を提供することを目的と
する。 【構成】 各要素と該要素を構成する節点とが対応して
記憶されている場合に、1つの辺,面または要素を1つ
のセグメントと見なして、有限要素分割モデルから前記
セグメントを抽出する際に、前記セグメントに対して前
記セグメントを構成する節点の組み合わせを特徴付ける
指標値をつけ、同じ指標値を持つセグメントの情報が連
続に並んだセグメントリスト(図5の(a))と、前記
指標値とセグメントリスト上の位置とを関連づける指標
テーブル(図5の(b))とを作成し、前記セグメント
リストと指標テーブルとに基づいて、同じ指標値を持つ
セグメントを抽出して、節点情報を得るようにした。
Description
素解析等に使用する有限要素分割モデルから特定の辺,
面または有限要素(ここではこれらを総称し、セグメン
トと呼ぶ)を抽出する際に有用なものであり、有限要素
分割モデルの輪郭線,表面,重複要素の抽出、モデル中
で隣接している要素の抽出、モデル中の任意点に対して
それを内含する要素の抽出等に利用できる有限要素分割
モデルから辺,面,要素を抽出する方法及びその装置に
関するものである。
分法,有限要素法,境界要素法等の数値解析が頻繁に行
われるようになった。これらの数値解析法では、一般に
解析モデルを多数の有限要素に分割した有限要素分割モ
デルが使用される(ここでは、有限差分法,有限要素
法,境界要素法等に使用する分割モデルをまとめて有限
要素分割モデルと呼ぶ)。最近では計算機性能の向上に
より、3次元要素分割モデルが一般的に使用されてい
る。
する際に、モデルの表面を抽出することが多々ある。こ
れはすべての要素を表示すると時間がかかることによる
ものであり、3次元モデルをソリッドとして表示するか
わりに、表面だけを隠面処理して表示することにより時
間短縮をはかろうとするものである。一般に有限要素モ
デルの表面は、複数の要素に共有されない面(フリーフ
ェイスと呼ぶ)と同一であり、従って表面の抽出は本フ
リーフェイスの抽出によってなされる。
線を表示することも多い。ここで輪郭線とはモデル表面
の稜線であり、細かくは要素の辺(要素を構成する面の
境界線)から構成されるものである。これは表示を表面
だけを用いて行うよりも更に簡略化したものであり、n
個の要素からなる3次元モデルの場合、単純に考えれば
その表面の数はnの平方根、輪郭線の数はnの3乗根の
オーダーとなる。一般に輪郭線は、複数の要素に共有さ
れない辺(フリーエッジ)によって代用される。
表示を行えることであり、視点位置を決定するための試
行錯誤の段階における表示等において有効である。ま
た、時系列の解析結果のアニメーション表示において
は、短時間に何枚もの図を表示する必要があるが、これ
を表面、輪郭線を用いることで短時間に行えるようにし
たという例もある(特開平4−346178号)。
れる要素の不整合、例えば、要素の抜け(分割モデルが
要素で完全に満たされていない)、浮き節点(要素の辺
上に節点がある)、節点の重複(同一点に節点が2つ以
上ある)等の発見にも使用される。これは輪郭線を表示
して、モデルの内部に存在する輪郭線を調べることにな
ってなされる。本来、輪郭線は分割モデルの表面だけに
表示されるものであるが、これらの不整合により輪郭線
がモデルの内部に生じるからである。
抽出して表示する計算機システムのブロック図を示す。
図中、符号161は表示部であり、162は中央処理装
置(CPU)、163はメモリ、164はデータの入力
部である。通常164からデータを入力し、162,1
63を用いて処理を行い、結果を161に表示する。な
お、163−1はセグメントリスト,163−2は指標
テーブルであり、163−3は指標値カウンタである。
なお、163−4は要素テーブルであるが、これは後述
する本発明の実施例のためのものであり、従来の技術に
属するものではない。
面、フリーエッジは要素の辺からなるものであり、これ
らの面,辺は共に要素を構成する部品と考えることがで
きる。そこで、ここではこれらの部品をまとめてセグメ
ントと呼ぶことにする。フリーフェイス,フリーエッジ
等のセグメントは、複数の要素に共有されているセグメ
ントを除去するという方法によって抽出することができ
る。本共有セグメントを高速に除去する方法としては、
様々なアルゴリズムが考案されており、以下のようなも
のがある。
の領域ごとに分割・グループ化するものである。すなわ
ち、モデルを包含する1つの直方体領域を想定し、その
領域をいくつかの部分領域に分ける。そして、各部分領
域ごとにその内部及び境界上の要素をグループ化する。
セグメントが共有されているかどうかの判定を行う際に
は、同じ領域内(同じグループ)の要素のセグメントの
みを対象とする。本方法は、要素が領域内に均一に分散
している場合には効果があるが、一部分に集中している
ような場合には効果が小さいため、一般的にはあまり用
いられない。
間を減らす工夫である。本方法は、“中田他:3次元分
割図作成アルゴリズムの改良、日本シミュレーション学
会第9回シミュレーション・テクノロジー・コンファレ
ンス,61頁−64頁(1990)”に、高速にフリー
フェイスを抽出する方法として述べられているものであ
り、1回のチェックに要する時間を短縮したものであ
る。すなわち、セグメントを構成する節点番号の最大値
をそのセグメントの指標とし、共有されているかどうか
の判定の際に、その指標が一致しない場合には即座に同
一ではないと判定する。しかし、本方法もチェック回数
を減らすということに関しては対処がなされておらず、
あまり用いられていない。
メントを構成する節点の和を指標とし、チェックを行う
際には同一の指標を持つセグメントだけをチェックする
ものである。本方法のアルゴリズムは、特開平4−34
6178号にフリーフェイス,フリーエッジを抽出する
方法として記載されており、容易にプログラミングでき
ること、効果が分割状態に依存しないことから、広く使
用されている。
21に従って複数の要素に共有されないセグメントを抽
出する過程を説明する。複数の要素に共有されないセグ
メントの抽出に先だって、まずセグメントリストと指標
テーブルとを作成する(ステップB701,B70
2)。セグメントリストと指標テーブルとを次に説明す
る。
登録したものであり、図22の(a)に示すように、リ
スト番号とセグメント節点列との2つの項目からなる。
ここで、リスト番号は1から始まる連続な整数値であ
り、本リストの行番号を表す番地である。セグメント節
点列は各セグメントを構成する節点の番号を並べたもの
である。従って、図22の(a)のセグメントリストで
はセグメントを各要素ごとに独立に登録する。従って、
本リストの行数は次式(1)となる。
数、elemは要素数である。
指標値とリスト番号列との2つからなる。指標値の項は
セグメントの指標値に対応するもので、1から始まる連
続な整数値であり、本テーブルの行番号を表す番地であ
る。リスト番号列は、セグメントリストのリスト番号を
示すものである。リスト番号列は、同じ指標値を持つセ
グメントの数だけ用意しておく必要がある。セグメント
の指標値がわかれば、本テーブルを用いてその指標値を
持つセグメントがセグメントリストのどこに(何番地)
登録されているかを知ることができる。本テーブルの行
は、指標値がとる可能な値の数だけ用意しておかなくて
はならない。セグメントを構成する節点番号の和の最大
は、次式(2)である。
構成する節点の数である。
1のステップB701でセグメントリストを作成する。
これは各要素のセグメントをセグメントリストに順に登
録していくことによって行う。次に、ステップB702
で、ステップB701で作成したセグメントリストの個
々のセグメントの指標値を求め、指標テーブルの該当す
る指標値の行にセグメントリストにおけるリスト番号を
登録する。以上で、セグメントリストと指標テーブルと
の作成を完了する。
の抽出は、ここで作成した指標テーブルのリスト番号列
から同じ節点からなるセグメントを除去することによっ
て行われる。ステップB703〜ステップB706は同
じ節点からなるセグメントの除去を行う過程である。ま
ず、ステップB703にて除去対象とする指標値(k)
を設定する。そして指標テーブルのk行目に登録されて
いるセグメントの数を調べ、1つ以下ならばそのセグメ
ントは複数の要素に共有されていないと判定し、ステッ
プSB706へ行く。同じ指標値を持つセグメント数が
2つ以上存在したならば、ステップB705でk行目の
セグメントの中で同一のもの(同じ節点の組み合わせか
らなるセグメント)を指標テーブルから除去する。以上
述べたように各セグメントを構成する節点はリスト番号
列に対応したセグメントリストのリスト番号を参照する
ことによって得ることができ、ステップB705の処理
はここで得た節点番号を比較することによって行う。
指標値について行ったことを確認する。全指標値のチェ
ックが完了していなければ、ステップB703に戻って
次の指標値のチェックに移る。全指標値のチェックが完
了していれば、複数の要素に共有されているセグメント
の除去処理を完了する。その時に指標テーブル中に残っ
ているセグメントが複数の要素に共有されていないセグ
メントである。
ェイスを抽出する場合を例にあげて、具体的に説明す
る。図23は2つの3次元要素からなる分割モデルであ
る。図中、黒丸は節点を示し、近傍の番号は節点番号を
示す(以後同様)。要素E1は節点1−2−3−4、要
素E2は節点3−1−4−5からなる4面体要素であ
る。要素E1は節点1−2−3,1−4−2,2−4−
3,3−4−1、要素E2は節点3−1−4,3−5−
1,1−5−4,4−5−3のそれぞれ4つの面からな
る。
る過程を、図21の流れに沿って説明する。 (1)ステップB701では、まず、要素E1の面の構
成節点を順に図22の(a)のリストに登録する。本操
作を要素E2の面についても行うことにより、図24の
(a)のセグメントリスト(面リスト)を得る。
で得た面リストの各面の指標値(面を構成する節点の番
号の和)をそれぞれ計算し、指標テーブルのその指標値
の行に面リストのリスト番号をそれぞれ登録する。すべ
ての面を登録することにより図24の(b)を得る。 (3)ステップB703,B704,B705では、指
標テーブルから、重複した(同じ節点番号からなる)面
を示すリスト番号を除去する。これは同じ指標値をもつ
面(指標テーブルの同じ行)の中で同じ節点の組み合わ
せからなるものを除去することによって行う。本例では
指標値8,9以外については、すべて登録されている面
が1つ以下であることから何も行わない。指標値8,9
はそれぞれ2つの面が登録されていることから、2つの
面の節点番号を調べ(それぞれリスト番号4,5および
3,6を参照する)、2つの面が同一であるかどうかを
チェックする。その結果、指標値8の2つの面が共に節
点1,3,4で構成されていることから2つの面は同一
であると判定し、リスト番号4,5を指標テーブルから
除去する。
面(リスト番号1,2,3,6,7,8の面)がフリー
フェイスである。要素分割モデルからフリーエッジを抽
出するには、以上のフリーフェイス抽出過程における面
を辺に単純に置き換えるだけでよい。次に、図23の分
割モデルからフリーエッジを抽出する過程を説明する。
ず、要素E1の辺の構成節点を順に図22の(a)のリ
ストに登録する。本操作を要素E2の辺についても行う
ことにより、図25の(a)のセグメントリスト(辺リ
スト)を得る。 (2)次に、ステップB702では、本リストの各辺の
指標値(辺を構成する節点の番号の和)をそれぞれ計算
し、指標テーブルの対応する行に辺リストのリスト番号
をそれぞれ登録する。すべての辺を登録することによ
り、図25の(b)を得る。
05では、本指標テーブルから、同じ辺を示すリスト番
号を除去する。本例では指標値3,8,9については登
録されている辺が1つ以下であることから何も行わな
い。指標値4,5,6,7はそれぞれ2つ以上の辺が登
録されていることから、それぞれの指標値内で辺の節点
番号を調べ、重複した辺があるかどうかをチェックす
る。その結果、指標値4,7の2つの辺および指標値5
の2つの辺(リスト番号6,8)が同一であると判定さ
れ、これらのリスト番号を指標テーブルから除去する。
(リスト番号1,2,4,10,12,11の辺)がフ
リーエッジである。図26はここで抽出されたフリーエ
ッジを描画したものである。なお、図26中の破線は図
23で破線で示されていたものをそのまま表示したもの
である。また、要素分割モデル中に存在する点につい
て、点がどの要素の内部に位置しているかを知る必要が
しばしばある。これは、その点における場を計算する場
合等に生じるものであり、点を含む要素を抽出すること
により、その要素の解析結果から容易にその点の場を計
算することができる。
全ての要素を対象にして内含するかどうかをチェックす
ることにより行っていた。その結果、最悪の場合には、
要素数だけのチェックを必要としていた。n個の要素か
らなる分割モデルの場合、本チェック回数の平均はn/
2である。
方法で用いられていたセグメントリストと指標テーブル
とは、データの持ち方に無駄が多くメモリを無駄に消費
してしまうという欠点があった。以下、この欠点につい
て説明する。まず、セグメントリストでは各セグメント
に対してセグメントを構成する節点の数だけメモリを必
要とした。例えば図24の(a)の面リストの場合、1
つのセグメントに対して3つの整数値(節点番号)を登
録する必要がある。従って、セグメントを構成する節点
の数が多い場合には大量のメモリが必要となっていた。
また、計算機の都合上、一般に各セグメントごとに用意
しておくメモリは同じである必要がある。従って、セグ
メントごとに節点の数が異なる場合には、その最大の数
にあわせてメモリを用意しておく必要があった。その結
果、最大の節点数よりも少ない節点で構成されるセグメ
ントに対しては、メモリが無駄になっていた。
して登録されるセグメントの数が予めわからないため、
全指標値に対して常に大きめのメモリを用意しておく必
要があった。例えば図24の(b)の例では1つの指標
値に5つのリスト番号まで登録できるように準備してい
たが、実際には最大でも2つ(指標値8,9)しか用い
られていない。また、同図からわかるように、各指標値
に登録されるセグメントの数は異なる。それに対して、
セグメントの場合と同様に、全指標値に対して用意して
おくメモリは同じである必要がある。従って、対応する
セグメントが少ない指標値についてはメモリが無駄にな
る。
消費した。その結果、大規模なモデル(要素数の多いモ
デル)の場合には膨大なメモリを必要とし、少量のメモ
リしか搭載されていない計算機では処理できなかった。
次に、例えば、6面体要素からなる100万要素、10
0万節点の分割モデルについて、フリーフェイスを抽出
する際に、従来のセグメントリストと指標テーブルとが
使用するメモリを計算し、このことを具体的に説明す
る。
する。各要素を構成する面は4辺形であるため、セグメ
ント情報は1セグメント当たり、4整数分(1整数当た
り4バイトとすると16バイト必要、以下同様)のメモ
リを必要とする。リストの行数は、1要素が6つの面か
らなることから、式(1)を用いて600万行である。
従って、セグメントリストに要するメモリは96M(1
6×600万)バイトである。
計算する。発明者の経験から、一般に1つの分割モデル
中で同じ指標値を持つセグメントの個数は最大8〜10
個であるとわかっている。そこで、本テーブルで、同じ
指標値を持つセグメント(面)を10個まで登録できる
ようにすると、1指標値当たりの使用メモリは40バイ
ト(4バイト×10個)となる。テーブルの行数は、式
(2)から約400万(正確には(400万−3))行
である。従って、指標テーブルに要するメモリは約16
0M(40×400万)バイトである。
合計256Mバイト(96M+160M)となる。この
メモリ容量は現在の計算機をもってしても大容量であ
り、一般的な計算機では処理が不可能である。また、従
来の指標テーブルでは同じ指標値をもつセグメントの数
が制限範囲を越えた場合には対応できなかった。例え
ば、図24の(b)の例では同じ指標値を持つセグメン
トが6つ以上になると対応できなかった。このことは、
上で同じ指標値を持つセグメントの個数は最大8〜10
個であるといったことと矛盾するが、上で説明したのは
あくまでも一般的な話であり、10以上になることもあ
りえることに基づく。
して表示する方法には、本来輪郭線として表示されるべ
きなのに表示されない場合があるという欠点があった。
例えば図26に示した輪郭線には、節点1−4,4−
3,3−1からなる線もこれらの線がモデルの稜線であ
ることから表示されるべきなのに表示されていない。ま
た、従来の点を内含する要素を抽出する方法では、各要
素について点を内含するかどうかのチェックを行わなけ
ればならず、点が大量にある場合には抽出のために長時
間を要していた。
を目的になされたものであり、少量のメモリしか搭載さ
れていない計算機でも大規模な分割モデルからセグメン
トを抽出することが出来、輪郭線が忠実に表示できるよ
うにする、またモデル中の任意の点を内含する要素を高
速に抽出する有限要素分割モデルから辺,面,要素を抽
出する方法及びその装置を提供することを目的とする。
に、本発明の有限要素分割モデルから辺,面,要素を抽
出する方法は、各要素と該要素を構成する節点とが対応
して記憶されている場合に、1つの辺,面または要素を
1つのセグメントと見なして、有限要素分割モデルから
前記セグメントを抽出する際に、前記セグメントに対し
て前記セグメントを構成する節点の組み合わせを特徴付
ける指標値をつけ、同じ指標値を持つセグメントの情報
が連続に並んだセグメントリストと、前記指標値と前記
セグメントリスト上の位置とを関連づける指標テーブル
とを作成し、前記セグメントリストと前記指標テーブル
とに基づいて、同じ指標値を持つセグメントを抽出し
て、抽出されたセグメントを構成する節点情報を得るよ
うにしたことを特徴とする。
る情報は、各セグメントを有する要素を特定する第1識
別子と、該セグメントが前記要素の何番目のセグメント
であるかを示す第2識別子とで表現される。また、前記
セグメントリストに記憶されるセグメントは、前記指標
値の大きい順または小さい順に並ぶ。また、前記第1識
別子に1つの要素を構成するセグメントの数以上の所定
の整数値を乗じ、これに前記第2識別子を加えることに
より、前記第1及び第2識別子を1つの整数値として記
憶する。また、前記指標テーブルの各指標値の情報は、
該指標値に該当するセグメントの個数と該セグメントが
記憶されるセグメントリストの先頭を指すポインタとで
表現される。また、前記ポインタに10以上の整数値を
乗じ、これに前記セグメントの個数を加えることによ
り、前記個数及びポインタを1つの整数値として記憶す
る。
点からなるセグメントから構成される複数の要素を隣接
要素として抽出する。更に、前記同一の節点からなるセ
グメントを前記セグメントリストから除去することによ
り、前記セグメントリストには重複のないセグメントだ
けが残るようにする。又、本発明の有限要素分割モデル
から要素を抽出する方法は、有限要素分割モデル中の1
点Pe を内含する要素を抽出する方法であって、ある要
素E0 に内含されている既知の点P0 を始点として、2
点Pe とP0 を結ぶ線分と交差する要素E0 の面F0 を
求め、要素E0 と面F0 を境界にして隣接する要素E1
を求め、2点Pe とP0 を結ぶ線分と交差する要素E1
のF0 以外の面F1 を求め、該面F1 で要素E1 と隣接
する要素E2 を求めるという処理を繰り返し、隣接する
要素を辿っていくことにより、点Pe を内含する要素を
抽出することを特徴とする。
抽出する方法は、3次元有限要素モデルからフリーフェ
イスを抽出し、該フリーフェイスを膜状要素の2次元要
素とみなして、隣接する2次元要素を抽出し、隣接する
2次元要素のなす角度θを求め、角度θの値が、許容値
をδとすると、0≦θ<(π−δ)、または(π+δ)
<θ<2πであるとき、前記2つの2次元要素の境界線
を輪郭線として抽出することを特徴とする。更に、抽出
したフリーフェイスに膜状要素の2次元要素からなる3
次元形状の分割モデルを加えて、隣接する2次元要素を
抽出し、角度θの値が、許容値をδとすると、δ≦θ<
(π−δ)、または(π+δ)<θ<2π−δであると
き、前記2つの2次元要素の境界線を輪郭線として抽出
する。
面,要素を抽出する装置は、各要素と該要素を構成する
節点とを対応して記憶する手段と、1つの辺,面または
要素を1つのセグメントと見なして、前記セグメントに
対して前記セグメントを構成する節点の組み合わせを特
徴付ける指標値をつける手段と、同じ指標値を持つセグ
メントの情報が連続に並んだセグメントリストと、前記
指標値と前記セグメントリスト上の位置とを関連づける
指標テーブルとを作成する手段と、前記セグメントリス
トと前記指標テーブルとに基づいて、同じ指標値を持つ
セグメントを抽出して、前記各要素と該要素を構成する
節点との対応に基づいて、抽出されたセグメントを構成
する節点情報を得る手段とを備えることを特徴とする。
る情報は、各セグメントを有する要素を特定する第1識
別子と、該セグメントが前記要素の何番目のセグメント
であるかを示す第2識別子とで表現される。また、前記
セグメントリストに記憶されるセグメントは、前記指標
値の大きい順または小さい順に並ぶ。また、前記第1識
別子に1つの要素を構成するセグメントの数以上の所定
の整数値を乗じ、これに前記第2識別子を加えることに
より、前記第1及び第2識別子を1つの整数値として記
憶する。また、前記指標テーブルの各指標値の情報は、
該指標値に該当するセグメントの個数と該セグメントが
記憶されるセグメントリストの先頭を指すポインタとで
表現される。また、前記ポインタに10以上の整数値を
乗じ、これに前記セグメントの個数を加えることによ
り、前記個数及びポインタを1つの整数値として記憶す
る。
セグメントは構成する節点の数に関わらず要素番号と局
所セグメント番号との2つで表現される。また、指標テ
ーブルも同一の指標値を持つセグメントの数に関わらず
該当数と先頭リスト番号との2つで表現される。その結
果、セグメントリスト,指標テーブル中で、それぞれ1
セグメント,1指標値当たりに消費されるメモリはそれ
ぞれ整数2つ分となり、メモリを有効に使えるようにな
る。また、輪郭線はフリーフェイス間の稜線として抽出
されることから、すべての輪郭線がもれなく抽出される
ようになる。また、点を内含する要素の抽出は、隣接す
る要素を辿っていくことにより、ほぼ直線的に検索を進
めて目的とする要素に到達できるようになり、短時間で
目的とする要素に行き着く。
る。図20に有限要素分割モデルからフリーフェイス,
フリーエッジを抽出して表示する計算機システムのブロ
ック図を示す。図中、161は有限要素分割モデルある
いは抽出されたフリーフェイス,フリーエッジを表示す
る表示部であり、162は演算・制御用の中央処理装置
(CPU)、163は補助記憶用のRAMであり、セグ
メントリストを記憶するセグメントリスト領域163−
1,指標テーブルを記憶する指標テーブル領域163−
2,指標値のカウント値を記憶する指標値カウンタ領域
163−3,各要素を定義する節点の列を記憶する要素
テーブル領域163−4を含む。164は有限要素分割
モデルのデータあるいは指示命令を入力する入力部、1
65はCPU162の処理手順を格納するROMであ
る。通常、入力部164からデータ及び指示を入力し、
指示に対応してROM165に格納された手順に従いC
PU162で有限要素分割モデルからのフリーフェイ
ス,フリーエッジの抽出を行い、結果を表示部161に
表示する。
る複数の要素に共有されないセグメントを抽出する処理
の流れを、図5に本実施例で作成するセグメントリスト
と指標テーブルとの形式を示す。本実施例では、セグメ
ントリストを図5の(a)に示すようにリスト番号,要
素番号及び局所セグメント番号の3項目で構成する。本
リストは、リストに登録されるセグメントの順序及びリ
スト内でのセグメントの表現法を除いては、従来のセグ
メントリストと同じである。従って、本リストの行数は
式(1)となる。以下に、本リストと従来のリストとの
違いを説明する。
(従来と同じセグメントを構成する節点番号の和)が同
じものが連続のリスト番号に登録されているようにす
る。例えば、リスト番号に対してセグメントは指標値の
小さい順に登録されるようにする。また、本リストでは
1つのセグメントを要素番号と局所セグメント番号の2
つで表現する。このことについて詳しく説明する。一般
に要素分割モデルの要素を構成する節点番号の列は、要
素形状に対応して予め定められた一定の規定に従ってメ
モリ登録される。従って、要素内のすべてのセグメント
について、セグメントを構成する節点の組み合わせはメ
モリに登録されている節点番号列から一義的に決定され
る。そこで、予め各要素形状に対してすべてのセグメン
トに番号(局所セグメント番号と呼ぶ)を振っておけ
ば、そのセグメント番号からそのセグメントを構成する
節点列を一義的に求めることができる。
説明する。図6は節点n1 〜n6 からなる3角柱形状を
した要素である。本3角柱要素において、常に節点はメ
モリにn1 −n2 −n3 −n4 −n5 −n6 の順に登録
されるものとする。すなわち、節点は底面の3角形、上
面の3角形の順に登録され、1番目と4番目に登録され
る節点は1本の辺でつながっている。また、底面と上面
で節点のまわる(登録される)方向は同じである。する
と、本要素を構成する面は図7の(a)に示した5つで
ある。そこで、5つの面に対して図7の(a)に示した
ような1〜5の面番号を振る。図6に図7の(a)で割
り振った5つの面の番号を示す。
考えると、図7の(a)の各面はメモリ上でn1 〜n6
に対応した場所に登録されている節点から構成される面
とみなすことができる。例えば、面番号1はメモリ上で
1〜3番目に登録されている節点から構成される面とみ
なすことができる。従って、どのような3角柱要素に対
しても面番号を指定することによって、その面を構成す
る節点の組み合わせを一義的に求めることができる。
的なセグメントに対しても同じである。図7の(b)に
3角柱要素を構成する辺の節点列を示し、各辺に振った
辺番号を図6に示す。例えば、辺番号1はメモリ上で、
1,2番目に登録されている節点(n1 ,n2 )から構
成される辺を示す。以上のように、すべてのセグメント
は、そのセグメントを持つ要素番号と局所セグメント番
号とを用いて表現でき、2つのデータからセグメントを
構成する節点を求めることができる。すなわち、どのよ
うなセグメントに対しても、セグメントリスト中ではこ
のような2つのデータを登録しておくだけで十分であ
る。
ついて説明する。指標テーブルは図5の(b)に示すよ
うに、指標値,該当数,先頭リスト番号の3つの項目か
らなる。ここで、指標値は従来と同様に1から始まる連
続的な整数値であり、本テーブルの行番号を示す番地と
して使用する。また、番地をセグメントの指標値と対応
させる。従って、本テーブルの必要とする行数は従来と
同じ(2)式で与えられる。本実施例では、本テーブル
に各指標値を持つセグメントの数(該当数)と、及び指
標値に対応するセグメントリストの最初の番地を指す先
頭リスト番号とを登録する。
る.以下の説明中で括弧内は図5との対応を示す。すで
に述べたように、本実施例のセグメントリスト中では、
同じ指標値をもつセグメントは連続のリスト番号に並ん
で登録されている。そして、本指標テーブルの該当数と
先頭リスト番号とは、各指標値を持つセグメントの数と
そのセグメントが登録されているリストの先頭の行番号
とを指す。従って、本セグメントリストと指標テーブル
とを使用することで、あるセグメントが与えられたと
き、そのセグメントと同じ指標値を持つセグメントを容
易に検索することができる。
点から指標値を計算し(=3とする)、指標テーブルの
その指標値の行を参照する。そして、そのセグメントと
同じ指標値を持つセグメントの数(該当数=2)と先頭
リスト番号(=1)を得る。次に、その先頭リスト番号
(=1)からそれに続く該当数の数(=2)だけの行の
セグメントリストを参照することで、個々のセグメント
がわかる。なお、ここでわかる個々のセグメントは、要
素番号と局所セグメント番号という形式で与えられる。
しかし、これは上で説明したように、メモリ上に登録さ
れている要素を構成する節点番号の列と、局所セグメン
ト番号の割り振り方を参照することで、容易にセグメン
トを構成する節点番号の列に変換することができる。
ーブルとを作成する手順およびそれらを使用して複数の
要素に共有されないセグメントを抽出する処理の流れを
説明する。まず、図1のステップA101〜A103で
セグメントリストと指標テーブルを作成する。ステップ
A101の詳細を図2に示す。ステップA101の処理
は、各指標値を持つセグメントがそれぞれいくつあるか
を求め、指標テーブルの各指標値の該当数の項にその値
を登録するものである。本処理では、まずステップA1
11で、指標テーブルの該当数の項をすべて零にする。
次に、ステップA112でセグメントの設定を行い、ス
テップA113で各セグメントについて指標値を計算す
る(=kとする)。その計算毎に対応する指標値の該当
数の値(Mk)をステップA114にて新しい値(旧値
よりも1つ大きい値、すなわち(Mk+1))に更新す
ることによって行う。
す。ステップA101の処理で各指標値を持つセグメン
トの数がわかったので、本処理では各セグメントがセグ
メントテーブルに連続して(空行なく)登録されるよう
にその先頭リスト番号を計算する。図3は、セグメント
リスト中でセグメントが指標値の小さい順に並ぶように
する手順である。ステップA121〜A126の処理に
よって、指標テーブルのk行目の先頭リスト番号とし
て、1〜(k−1)行目の該当数の加算値(すべてを足
し合わせた数)に1を加えた値がステップA123にて
登録される。
す。ここでは、ステップA101〜A102で作成した
指標テーブルを使用してセグメントリストを作成する。
リスト作成にあたって、指標テーブルの各指標値にそれ
ぞれカウンタを用意し、ステップA131ですべてのカ
ウンタを零に初期化しておく。次に、ステップA13
2,A133で、各要素のセグメントについて指標値を
計算し(=kとする)、ステップA134で指標テーブ
ルとカウンタとからその指標値の先頭リスト番号(L
k )およびカウンタ値(Mk )を得る。ステップA13
5では、その先頭リスト番号にカウンタ値を加えた番地
のセグメントリストの行(Lk +Mk 行目)にそのセグ
メントの要素番号と局所セグメント番号とを登録する。
その後、ステップA136で指標値kのカウンタの値
(Mk )は1つ大きい値(Mk +1)に更新する。
は、セグメントリストの1行目から空行なく指標値の小
さい順に並ぶ。なお、ここでは各指標値に対して新たに
カウンタ用のメモリを設けたが、これは指標テーブルの
該当数のメモリを一時的に代用してもよい。すなわち、
まずステップA131にて指標テーブルの該当数の項を
すべて零に初期化し、以後ステップA132〜A137
の処理では、本該当数の項を上記カウンタとして用い
る。ステップA132,A133の指標値計算後、ステ
ップA134では指標テーブルのk行目のカウンタ値
(該当数の項の値Mk )と先頭リスト番号(Lk )を得
る。ステップA135では、先頭リスト番号にカウンタ
値を加えた番地のセグメントリストの行(Lk +Mk 行
目)にセグメントを登録する。次に、ステップA136
で、セグメントを登録するたびにカウンタ値(該当数の
項の値)に1を加算して更新する。なお、カウンタ値
は、すべてのセグメントを登録した段階で、ステップA
131で初期化する前の該当数の値と同じとなる。従っ
て、このように該当数のメモリを一時的にカウンタとし
て代用しても、該当数を復元するための後処理は不要で
ある。該当数のメモリをカウンタとして代用することに
より、使用するメモリをセグメントリストと指標テーブ
ルとだけにすることができ、メモリの節約をはかること
ができる。
い順に並べたが、大きい順に並べてもよい。これは指標
テーブルの先頭リスト番号を作成する過程(図3)で、
該当数の値を指標値が最大の行から小さい方に順に加算
することによって達成される。具体的には図3のステッ
プA121の処理中で、“k←(2)式の計算値”と
し、ステップA122を“k←(k−1)”、ステップ
A126を“k>1”とすればよい。
ーブルとを用いて、複数の要素に共有されないセグメン
トを抽出する過程を説明する。本過程は、図1のステッ
プA104〜A107に示される。以下本図に従って説
明する。まず、ステップA104でチェックの対象とす
る指標値(kとする)を設定する。そして、ステップA
105にて指標テーブルのk行目の該当数をチェック
し、1つ以下なスば本指標値を持つセグメント中に同じ
ものはないと判定し、なにも行わずステスプA107の
処理に移る。2つ以上の該当するセグメントがあるなら
ば、指標スーブルから先頭リスト番号(Lk )と該当数
(Mk )を得る。そして、セグメントリストのLk 行目
から始まるMk 行のセグメント間で重複するものがない
かを、構成する節点を比較することでチェックする。
06にてセグメントリストからその重複するセグメント
を両者とも除去する。除去はセグメントリスト中の該当
する要素番号を零や負の数等、要素番号としてありえな
い数値に更新することによって行う。ステップA104
〜A106の操作をすべての指標値に対して終了したか
を、ステップA107でチェックし、終了していなけれ
ばステップA104に戻って処理を繰返し、抽出過程が
完了するまで行う。本過程終了後、セグメントリスト中
で妥当な要素番号を持つセグメントが、複数の要素に共
有されないセグメントである。
トを抽出する過程を、実際の簡単な要素分割モデルから
フリーフェイスを抽出する過程を例にとって説明する。
図8は、従来技術の項で説明に用いたのと同じ、2つの
4面体要素からなる分割モデルである。ここで各要素を
構成する節点はそれぞれ次のようにメモリ上に登録され
ているものとする。
る。すなわち1〜3番目に登録されている節点のまわり
方が、その方向に右ネジを回したときネジが要素の重心
方向に向かうようになっている。
要素E1の場合を例にとり、次のように定義する。 面1:節点1−2−3 (指標値:6(=1+2+
3)) 面2:節点1−4−2 (指標値:7) 面3:節点2−4−3 (指標値:9) 面4:節点3−4−1 (指標値:8) すると、要素E2を構成する面の面番号との関係は次の
ようになる。
成節点列からE1を構成する各面の節点の組み合わせを
作成したのと全く同様に作成したものである。例えば面
1の節点はメモリ上の1〜3番目の節点番号を順に並べ
たものである。図8に各面番号を要素E1のものについ
ては数字を丸で囲んで、要素E2については四角で囲ん
で示した。
(面)リストと指標テーブルとを図9に示す。本リスト
とテーブルを作成する手順を以下に説明する。 (1)指標テーブルの該当数の項を作成する(図2)。
ステップA111にて、まず指標テーブルの該当数の項
をすべて零に初期化する。次に、ステップA113にて
要素E1の面1の指標値を計算し(=6)、ステップA
114にて、指標テーブルの6行目の該当数の値を1つ
大きい値(1←0+1)に更新する。要素E1,E2の
すべての面について更新を完了することにより、図9の
(b)の該当数の値を得る。
を作成する(図3)。これは指標値の小さい順に該当数
を加算して、指標テーブルのk行目に1〜(k−1)行
目の該当数の加算値(すべてを足し合わせた値)を登録
する。本処理により図9の(b)の先頭リスト番号の値
を得る。 (3)面リストを作成する(図4)。本処理では、まず
ステップA131で指標テーブルの該当数(カウンタと
して用いる)をすべて零に初期化する。次に、ステップ
A133で要素E1の面1から順に指標値を計算し、そ
の値からステップA134で先頭リスト番号とカウンタ
値(該当数の項の値)とを参照し、ステップA135に
て該当する面リストの項に面を登録する。例えば、要素
E1の面1の指標値は6であることから、指標テーブル
の6行目の先頭リスト番号(=1)およびカウンタ値
(=0)を参照し、面リストの1(=1+0)行目に、
本面(要素E1の面番号1)を登録する。登録後、ステ
ップ136では、本指標値のカウンタ値は古い値に1を
加えた値に更新する。ここでは、指標テーブル6行目の
カウンタ値(該当数の値)を零から1に更新する。本操
作をすべてのセグメントに対して行うことにより図9の
(a)の面リストを得る。
ーフェイスを抽出する。本処理は、ここで作成した面リ
ストから複数の要素に共有されている面を除去すること
によって行う。以下にその手順を示す。 (4)ステップA104で、指標値1をチェック対象と
して設定する(図1)。
07,A151では、指標テーブルの1行目を参照し、
該当数の項の値が零であることから、なにも行わず次の
指標値の設定に移る。 (6)指標値2〜7についても、該当セグメントは1以
下であることからなにも行わない。
する。 (8)ステップA105で指標テーブルの8行目を参照
し、該当数が2であることから、2つの面について重複
を調べる。まず、指標テーブルの先頭リスト番号(=
3)を参照し、その番号から対応する面リストの3行目
と4行目(該当数が2であることから2行)を参照す
る。これによって、要素E1の面4と要素E2の面1が
指標値8に対応した面であることがわかる。要素番号と
面番号を構成する節点番号に変換し(本変換が容易に行
えることは既に説明済み)、共に節点1,3,4からな
っていることがわかる。そこでこれらの面はフリーフェ
イスではないので、面リストから除去する。具体的には
面リストの3,4行目の要素番号の項を零にする。
ェックする。指標値9は該当する面が2つ(要素E1の
面3と要素E2の面2)あるが、構成する節点番号が異
なる。その他の指標値は該当数がすべて1以下であるこ
とがわかる。その結果除去される面はない。 以上の処理の結果、図9の(a)の面リストから3,4
行目を除いた面がフリーフェイスとして抽出される。
モデルから、フリーエッジを抽出する例について説明す
る。まず、各要素を構成する辺の番号を図10に示す。
図中、要素E1,E2の局所辺番号をそれぞれ数字を
丸、四角で囲んで示した。ここで、各要素の辺番号と構
成節点とは、フリーフェイス抽出の場合と同様に、メモ
リ上の構成節点列から規則的につけたものである。各要
素の辺を構成する節点番号と各辺の指標値とは、次の通
りである。
と指標テーブルとを図11に示す。本リストとテーブル
とを作成する手順を以下に説明する。本手順は、フリー
フェイス抽出の際のリストとテーブルの作成処理とほぼ
同様である。
る(図2)。まず、ステップA111にて、指標テーブ
ルの該当数の項をすべて零に初期化する。ステップA1
13では、要素E1の辺1の指標値を計算し(=3)、
ステップA114にて、指標テーブルの3行目の該当数
の値を1つ大きい値(1←0+1)に更新する。要素E
1,E2のすべての辺について更新を完了することによ
り、図11の(b)の該当数の値を得る。
成する(図3)。指標値の小さい順に該当数を加算し
て、指標テーブルのk行目に1〜(k−1)行目の該当
数の加算値(すべてを足し合わせた値)を登録する。本
処理により、図11の(b)の先頭リスト番号の値を得
る。 (3)辺リストを作成する(図4)。まず、ステップA
131にて、指標テーブルの該当数(カウンタとして用
いる)をすべて零に初期化する。ステップA133で、
要素E1の辺1から順に指標値を計算し、その指標値か
ら、ステップA134では、先頭リスト番号とカウンタ
値(該当数の項の値)を参照し、ステップ135で、該
当する面リストの項に面を登録する。例えば、要素E1
の辺1の指標値は3であることから、指標テーブルの3
行目の先頭リスト(=1)およびカウンタ値(=0)を
参照し、面リストの1(=1+0)行目に、本辺(要素
E1の辺番号1)を登録する。ステップA135の登録
後、ステップA136で本指標値のカウンタ値(該当数
の項の値)は古い値に1を加えた値に更新する。ここで
は、指標テーブル3行目のカウンタ値(該当数)を零か
ら1に更新する。本操作をすべてのセグメントに対して
行うことにより図11の(a)のリストを得る。
ーエッジを抽出する。本処理は、ここで作成した辺リス
トから複数の要素に共有されている辺を除去することに
よって行う。以下にその手順を示す。 (4)指標値1をチェック対象として設定する(図1ス
テップA104)。 (5)ステップA105,A152,A107,A15
1では、指標テーブルの1行目を参照し、該当数の項の
値が零であることから、なにも行わず次の指標値の設定
に移る。
メントは1以下であることからなにも行わない。 (7)指標値4をチェック対象として設定する。 (8)ステップA105で指標テーブルの4行目を参照
し、該当数が2であることから、2つの辺について重複
を調べることにする。まず、指標テーブルの先頭リスト
番号(=2)を参照し、その番号に対応する面リストの
2行目と3行目(該当数が2であることから2行)を参
照する。これによって、要素E1の辺3と要素E2の辺
1とが本指標値に対応した面であることがわかる。要素
番号と辺番号を構成する節点番号に変換し、共に節点
1,3からなっていることがわかる。そこで、これらの
辺はフリーエッジではないので、辺リストから除去す
る。具体的には辺リストの2,3行目の要素番号を零に
する。
ックする。その結果、辺リストのリスト番号5,6,
9,10が除去される。 以上の処理の結果、図11の(a)の辺リストにおける
1,4,7,8,11,12行の辺がフリーエッジとし
て抽出される。なお以上の処理では、セグメントリスト
中でセグメントを要素番号と局所セグメント番号との2
つの整数値で表現し、1つのセグメントに対して2整数
分のメモリを使用した。しかし、これは1つのメモリで
済ませることが可能である。すなわち局所セグメント番
号は必ず1つの要素を構成するセグメントの数以下とな
る。そこでセグメントを次式(3)のSGで表現して登
録する。
である。なお、本表現から要素番号とセグメント番号に
は、次式によって戻すことができる。 要素番号=SG/(α+1) (4) セグメント番号=MOD(SG、(α+1)) (5) (SGを(α+1)で割った剰余) ここで、式(4)の要素番号は右辺の計算値の小数点以
下を切り捨てた整数値である。
いる場合には、形状によりセグメントの数が異なる。こ
のような場合にはその最大値をαとすればよい。また、
以上の説明ではセグメント番号を1番から始めたが、こ
れを0から始めてもよい。こうすることにより式(3)
乃至(5)における(α+1)はαになる。
現することにより、セグメントリストが使用するメモリ
は半分になる。これと同様に指標テーブルの該当数と先
頭リスト番号も1つの整数値で表すことができる。発明
者の経験によれば、通常の分割モデルにおいて同一の指
標値の持つセグメントは10個以下である。すなわち、
該当数は10以下の整数値となり、該当数と先頭リスト
番号とを(6)式のADで表現することができる。
該当数と先頭リスト番号には、次式によって戻すことが
できる。 先頭リスト番号=AD/β (7) 該当数=MOD(AD、β);(ADをβで割った余剰) (8) ここで、式(7)の先頭リスト番号は右辺の計算値の小
数点以下を切り捨てた整数値である。
スト番号とを1つの整数値で表現することにより、使用
するメモリは更に減る。従来技術の課題でとりあげた、
6面体要素からなる100万要素、100万節点の分割
モデルからフリーフェイスを抽出する場合について、本
方法を用いた場合の所要メモリを計算してみる。
セグメント当たりのセグメント情報が1整数分(4バイ
ト)、リストの行数が従来と同じ600万行であること
から24M(4×600万)バイトである。また、指標
テーブルが必要とするメモリは、1指標値当たりの使用
メモリが4バイト、テーブルの行数が従来と同じ約40
0万行であることから、約16M(4×400万)バイ
トである。
合計40Mバイト(24M+16M)となる。このメモ
リ容量は、現在の計算機をもってすれば十分対応可能な
値であり、一般的な計算機でも処理が可能である。なお
ここでは、3次元分割モデルからフリーフェイス,フリ
ーエッジを抽出するに場合について説明したが、本方法
は2次元モデルからフリーエッジを抽出する際にも同様
に適用することができ、また一般的なセグメントを抽出
する方法として使用することができる。
から複数の要素に共有されるセグメントを除去すること
によって、フリーフェイス,フリーエッジ等の複数の要
素に共有されないセグメントを抽出した。一方、実施例
1で除去した複数の要素に共有されているセグメント
は、そのセグメントによって複数の要素が隣接している
ことを意味する。そこで本実施例では、実施例1で作成
したセグメントリストと指標テーブルとを利用して、隣
接する要素を抽出する方法について説明する。
とは、図1のステップA101〜A103で作成したも
のと同じなので作成方法の説明を省略し、ここでは隣接
する要素を抽出する方法だけを説明する。図12に隣接
する要素を抽出する処理の流れを示す。本処理はセグメ
ントリストと指標テーブルとを作成した後に行うもので
ある。
る要素を抽出したいのかをステップA801にて設定す
る。ここで、要素を要素番号(Ei とする)で、セグメ
ントを局所セグメント番号(Li とする)で指定する。
なお、局所セグメント番号とは実施例1で説明した要素
内でのセグメントの番号である。そして、ステップA8
02にてセグメントLi の指標値(Mi とする)を計算
する。次に、ステップA803にて、指標テーブルのM
i 行目を参照し、該当数が1ならば、ステップA806
で要素Ei のセグメントLi で隣接している要素はな
い。該当数が2以上ならば、実施例1で説明したのと同
様な方法で本セグメントと同じ節点からなるセグメント
を検索する。もし要素Ei のセグメントLi 以外に同一
のセグメントがなければ、ステップA806で隣接要素
はないとする。あれば、そのセグメントを持っている要
素が隣接要素である。
体的に説明する。図13は3つの4面体要素からなる分
割モデルである。本分割モデルは図23の分割モデルに
節点5−1−4−6からなる要素E3を付加したもので
ある。要素E1,E2の局所番号は図8に示した通りで
あり、要素E3の面は次の通りである。括弧内は各面の
指標値である。
る要素を抽出する場合を説明する。
リストと図14の(b)に示す指標テーブルとを作成す
る。本リストとテーブルは、図1のステップA101〜
A103の処理で作成されるものであり、その作成法は
省略する。リストとテーブルを作成後、以下の処理を行
う。 (1)図12のステップA802では、要素E3の面番
号1の指標値を計算する。指標値は10である。
10行目を参照する。 (3)ステップA804では、該当数が2で先頭リスト
番号が7であることから、面リストの7,8行目を参照
し、本指標値を持つ面が要素E2の面番号3と要素E3
の面番号1であることがわかる。そこで、これらの要素
番号と面番号の情報を面を構成する節点番号に変換し
て、2つの面が同一であるかをステップA805にて検
査する。検査の結果2つの面は同一である(共に節点
1,4,5からなる)ことがわかり、隣接する要素とし
てE2が抽出される。
ぞれ局所面番号3,1でお互いに隣接していることがわ
かった。以上の説明からわかるように、本方法は基本的
に実施例1で説明したセグメントリストと指標テーブル
とを用いたセグメントの抽出方法を応用したものであ
る。セグメントリストと指標テーブルとは短時間で作成
することができることから、本方法によれば高速に隣接
する要素を抽出することができる。
について述べたが、これはその他のセグメントで隣接し
てもよい。例えば辺,節点で隣接している(辺,節点を
共有している)場合についても、図12の操作で同様に
抽出を行うことができる。ただし辺,節点の場合には、
分割モデルの構造上、ステップA805においては複数
個の隣接する要素が抽出される。
を抽出する方法について述べた。ここで抽出した隣接要
素を用いれば、分割モデル中の任意の点について、その
点を内含する要素を容易に抽出することが可能である。
本実施例では実施例2で説明した隣接要素をこのよう
な、点を含む要素の抽出に適用した例について説明す
る。
e を含む要素を抽出する場合を例に説明する。なお、図
13中で点Pe は要素E3に内含されている。以下、図
15に従って処理の流れを説明する。 (1)図15のステップB101では、どの要素に内含
されているかが既にわかっている点P0 を設定し、その
要素番号をiとする。図13では要素E1の重心をP0
とした。従って図15中でiは1である。
Ei(E1)に内含されているかどうかをチェックする。
本チェックは以下の手順で容易に行うことができる。ま
ず、要素Ei を構成する1つの面Fn の法線ベクトルA
を計算する。本法線ベクトルは次式(9)によって計算
される。 Ax= (y1-y3)(z2-z3)-(y2-y3)(z1-z3) Ay= (z1-z3)(x2-x3)-(z2-z3)(x1-x3) Az= (x1-x3)(y2-y3)-(x2-x3)(y1-y3) (9) ここで、Ax ,Ay ,Az は法線ベクトルの成分、(x
1 ,y1 ,z1 ),(x2 ,y2 ,z2 ),(x3 ,y
3 ,z3 )は面Fn を構成する3つの節点の座標値であ
る。3つの節点の順番は実施例1で述べたように、メモ
リに登録された節点番号から規則的に作成したものとす
る。3つの節点の順番をこのようにすることにより、本
法線ベクトルは、要素Ei に対して同じ方向を向く。例
えば図13において、各面の法線ベクトルはすべての要
素の重心方向を向く。そこで、ここでは点Pe が、各面
に対して法線方向を基準にしたときにどちら側に位置し
ているかを調べることにより、内含をチェックする。
z)に点Pe の座標値を代入し、Vを計算する。 V =Ax(x-x1)+Ay(y-y1)+Az(z-z1) (10) ここで、V>0ならば、点Pe は面Fn に対してその法
線方向側に位置し、V<0ならば、法線方向と反対側に
位置していることを意味する(V=0ならば面上の点で
ある。例えば図13の場合、V>0ならば要素の重心方
向、V<0ならば要素の外方向に点Pe は位置している
ことを意味する。そこで、Vを要素を構成するすべての
面について計算し、すべての面について点Pe が要素の
重心側に位置している場合に、点Pe は要素Ei に内含
されているとする。1つ以上の面について要素の外側に
位置しているならば、内含していないとする。
素Ei に内含されていないならば、線分P0 Pe と交差
する要素Ei の面(面番号Lk とする)を求める。図1
3の場合、線分P0 Pe は要素E1の面3−1−4と点
P1 で交差している。交差する面の抽出は、要素Ei の
面の内から2点P0 ,Pe がそれぞれ面をはさんで異な
る側にあるものを選択することによって行う。これは式
(10)に、点P0 ,Pe の座標値を代入しそれぞれの
Vを計算し、2つのVの値の符号が異なる面を選択すれ
ばよい。Pe が要素Ei に内含されていないならば、必
ず線分P0 Peと交差する(2点P0 ,Pe が異なる側
にある)面が存在する。
Lk で隣接している要素を求める(Ej とする)。これ
は実施例2で説明した方法で行う。図13ではEj はE
2である。 (5)ステップB105で、ここで求めた隣接要素Ej
にEi を置き換えて、再び点Pe が要素Ei(E2)に内
含されるかどうかをステップB102でチェックする。
内含されていなければ再びステップB103にて、線分
P0 Pe と交差する要素Ei(E2)の面を求める。ただ
し、ステップB103を2回目以降実行する場合は、前
回求めた面を求める面の対象から外す。例えば、図13
において要素E2の面のうち面3−1−4はステップB
103の1回目の実行で求められたので外し、面1−4
−5を得る。
を、要素Ei が点Pe を内含するようになるまで繰り返
す。図13では、要素E2の面1−4−5の隣接要素と
して要素E3を得、要素E3が点Pe を内含する。この
ように本方法によれば、分割モデル中の適当な点(ここ
では点P0 )を始点として、隣接する要素を辿ることに
より、目的とする点Pe を内含する要素を抽出すること
ができる。なお、発明者の経験から、隣接する要素を辿
っていく本方法によれば、辿る経路はほぼ直線的であ
り、比較的早く目的とする要素に到達することがわかっ
ている。すなわち、n個の要素からなる分割モデルの場
合、約nの3乗根の要素について内含のチェックを行え
ば、目的とする要素にたどりつく。
数の点がモデル中にあるような場合には、前に抽出した
点を始点として次の点を抽出するとよい。これは、点が
曲線上に乗って順に並んでいるような場合に、隣接する
要素を辿っていく道のりが短くて済み効率的だからであ
る。 (実施例4)従来はフリーエッジを輪郭線の代用として
使用した。ここでは、実施例2で説明した隣接する要素
を求める方法を利用して、フリーフェイスのなす角度か
ら輪郭線を求める方法について説明する。
フェイスは、2次元要素(膜状要素)からなる。そこ
で、抽出した各フリーフェイスに対してそれぞれ隣接す
る2次元要素を求め、その隣接する2つのフリーフェイ
スのなす角度を計算することにより、その稜線(2つの
要素の境界線)を輪郭線として登録するかどうかを判定
する。本輪郭線を抽出する過程を図16に示し、以下本
図に従って処理過程を説明する。
てフリーフェイスを抽出する。本処理は実施例1で既に
説明したので、ここでは説明を省略する。次に、ステッ
プB202で、抽出したフリーフェイスを2次元要素と
みなして、辺リストと指標テーブルとを作成する。本リ
ストとテーブルを作成する方法も実施例1と同様であ
る。次に、ステップB203〜B208にて、フリーフ
ェイスの1つ(Ei とする)について、そのフリーフェ
イスの1つの辺(Lj とする)を境界にして隣接するフ
リーフェイスを抽出する。本処理は実施例2で図12に
示した方法で行うものであり、図中、ステップB203
とB204はステップA801に対応し、ステップB2
05〜B208はステップA802〜A805にそれぞ
れ順に対応する。
リーフェイスを抽出した後、両者のなす角度(θとす
る)をステップB209で計算する。本角度の計算は両
者の法線ベクトルをそれぞれ求め、その法線ベクトルの
なす角度を計算することによって求めることができる。
そして法線ベクトルのなす角度がπにほぼ等しければ、
2つの面がほぼ1平面上にあることを意味するので何も
行わない。それ以外ならば、両面が隣接している辺Lj
を輪郭線としてステップB212で登録する。図16に
おいては、角度θがほぼπに等しいかどうかを、許容値
δを用いて比較している。なお、ステップB207,B
208において、該当数が1つまたは隣接フリーフェイ
スがないと判定された場合には、本フリーフェイスの辺
Lj は端部の辺であると判定し、辺Lj を輪郭線として
登録する。本操作を全フリーフェイスのすべての辺につ
いて実行することにより、すべての輪郭線を抽出でき
る。
デルを用いて具体的に説明する。なお、図17のモデル
は図23と同じである。 (1)実施例1で説明した方法で、図16のステップB
201で、次の6つの面をフリーフェイスとして抽出す
る。そして各フリーフェイスに対して、新たに2次元要
素としての要素番号をつける(F1〜F6とする)。
セグメントリストと指標テーブルとをステップB202
で作成する。ここでは、要素F1,F2の局所セグメン
ト番号(辺番号)を以下のように定義し、図17に各要
素の辺番号をそれぞれ数字を丸、四角で囲んで示した。
作成したセグメントテーブルを図18に示す。なお、図
18には要素F1,F2に関係した一部分だけを記載し
た。
る要素を、ステップB203〜B208で求める。その
結果、要素F2が抽出される。
を計算する。本角度の計算は次のように行う。まず、2
つの面の法線ベクトル(図17中のベクトルA1 ,A
2 )を計算する。法線ベクトルA1 ,A2 は、前出の式
(9)によって計算される。実施例3で述べたように、
2次元要素(フリーフェイス)を構成する節点番号の順
番に規則性を持たせれば、本法線ベクトルは2次元要素
の元となる3次元要素に対して同じ方向を向く。例えば
図17において、すべての2次元要素の法線ベクトル
は、要素を構成する節点の順番に右ネジを回したときネ
ジの進む方向を向き、それは元の3次元要素(4面体要
素)の重心方向である。このことは、法線ベクトルがす
べて、モデルの表面においてモデルの内側を向くことを
示す。
なす角度が、要素F1とF2とのなす角度θとなる。こ
れは次式(11)によって計算される。
しなくても問題がないことは、図16のステップB20
9の判定条件からわかる。
ら、ステップB212で要素F1の辺1を輪郭線として
登録する。 (5)前記の(3),(4)項の操作を全ての要素のす
べての辺について行う(ステップB210,B21
1)。その結果、本例では全ての要素の全ての辺が輪郭
線として抽出される。
ている。すなわち各辺は、辺を境界線として持つ隣接す
る2つの要素でそれぞれ登録される。この重複は、各辺
について既に輪郭線として登録されたかどうかをフラグ
を設けてチェックすることで容易に回避することができ
る。ここでは、3次元要素からなる分割モデルから輪郭
線を抽出する場合について説明した。しかし、これは2
次元要素(膜状要素)からなる3次元形状のモデルの場
合についても適用可能である。すなわち、図16におけ
る抽出したフリーフェイスの代わりに本2次元要素(膜
状要素)を使用すればよい。なおこの場合は、ステップ
B209において角度θの判定としてθが零に近い場合
にも輪郭線として登録しないようにする必要がある。す
なわち、ステップB209の条件に代えて、次式(1
2)を満たすとき、隣接する2次元要素の境界線を輪郭
線として登録する。
たように、モデルに対して法線方向を統一できるのに対
して(上記例ではモデルの内側に向くように統一し
た)、一般的な2次元要素の場合は統一できないことに
よるものである。また、式(12)を判定条件に用いて
輪郭線を抽出する方法は、3次元要素と2次元要素が混
在したモデルについても同様に適用できる。すなわち、
まず3次元要素からフリーフェイスを抽出し、抽出した
フリーフェイスに2次元要素を加えて、全体を2次元要
素とみなして処理を行えばよい。
容値δの値は、 π/180≦δ≦π/18 (13) とすることで、ほとんどの分割モデルに対して妥当な輪
郭線を抽出できることがわかっている。そこで、本許容
値δは、デフォルト値として式(13)の範囲の値を設
定しておき、プログラム使用中に、ユーザが任意の値に
変更できるようにするとよい。ユーザが任意に変更でき
るようにすることにより、どのようなモデルに対しても
妥当な輪郭線を抽出できるようになる。
全セグメントから複数の要素に共有されるセグメントを
とり除くことにより、複数の要素に共有されないセグメ
ントを抽出した。本方法を応用すれば、分割モデルから
複数の要素に共有されるセグメントも容易に抽出するこ
とができる。そしてこれはセグメントを要素自身に置き
換えることにより重複した要素も容易に抽出できる。重
複した要素を抽出することは、分割モデルのチェック、
または表示のための前処理として有効である。例えば実
施例4において、輪郭線は2度重複して登録されること
を述べた。そこで、本輪郭線を描画する前に重複するも
のを抽出し、1つにまとめれば同じ線を2度書きするこ
となく表示することができる。ここでは、このような重
複した要素を抽出して1つにまとめる方法について説明
する。
めの処理の流れは図1とほぼ同様である。すなわち、図
1におけるセグメントリストを要素リストにし、要素番
号だけを登録するようにする。また、ステップA106
において、該当する要素リストから重複する要素を除去
して重複をなくす。ステップA107で、すべての指標
値についてチェックを終了後、要素リストに残った要素
が重複していない要素である。
同一の要素E3を付加したモデルについて行った場所に
ついて具体的に説明する。 (1)ステップA101〜A103によって、要素リス
トと指標テーブルとを作成する。作成したリストとテー
ブルを図19に示す。指標値は要素を構成する節点の番
号の和であり、要素リストには要素番号だけを登録して
いる。
2を設定した場合には、該当数が1以下であることから
なにも行われない(ステップA104,A105,A1
52)。 (3)チェック対象の指標値として13をステップA1
04で設定する。ステップA105では、該当数が2で
あることから、要素リストの2,3行目の要素について
節点を比較する。その結果、この2つは同一であること
が判明し、ステップA106で、2つのうちいずれかを
要素リストから除去する(ここではE3を除去)。
クを行うが該当数が零であることから何も行われない。 以上の結果、要素E1とE2とが重複した要素を1つに
まとめた結果として要素リストに残る。ここでは、重複
した要素を1つにまとめることにより、すべて重複しな
い要素として結果を求めたが、本方法を用いることによ
り、重複する要素の抽出、重複していない要素の抽出等
も容易に行えることは明かである。
限要素法及び境界要素法に使用される要素について説明
したが、本発明はこれらと同様な構造を有するデータに
対して適用しうることは明らかである。また、本発明
は、複数の機器から構成されるシステムに適用しても、
1つの機器から成る装置に適用しても良い。また、本発
明はシステム或は装置にプログラムを供給することによ
って達成される場合にも適用できることは言うまでもな
い。
によれば、少量のメモリしか搭載されていない計算機で
も大規模な分割モデルからセグメントを抽出することが
出来、輪郭線が忠実に表示できるようにする、またモデ
ル中の任意の点を内含する要素を高速に抽出する有限要
素分割モデルから辺,面,要素を抽出する方法及びその
装置を提供できる。
る。本発明によれば、セグメントリストに必要なメモリ
を1セグメント当たり1整数分で済ますことができた。
また指標テーブルについても同様に1指標値当たり1整
数分でよくなった。その結果全体として使用メモリを大
幅に削減でき、メモリをあまり搭載していない計算機で
も、大規模な分割モデルからセグメントを抽出できるよ
うになった。例えば、6面体要素からなる100万要
素、100万節点の分割モデルからフリーフェイスを抽
出するために、従来は256Mバイトのメモリを要して
いたが、本発明により40Mバイトで済むようになっ
た。
セグメントの数が多い場合も問題がなくなった。これ
は、式(6)のβをあらかじめ大きめに設定しておくこ
とで、容易に対応できるからである。また、本発明によ
れば、分割モデルから隣接する要素を、検索対象を同一
の指標値を持つセグメントに限定することにより、非常
に高速に抽出できるようになった。
ば、分割モデル中に存在する点を内含する要素も高速に
抽出できる。これは高速に隣接する要素を抽出できるこ
とから、目的となる要素に向かって、モデル中を高速に
ほぼ直線的に突き進んで検索を行うことができるように
なったことによるものである。n個の要素からなる分割
モデルの場合、従来n/2回の内含チェックを行ってい
たものが、nの3乗根の回数で済むようになった。
れるようにもなった。この忠実性は、輪郭線を、隣接す
るフリーフェイス間の角度から求めるようにしたことに
起因する。例えば、図19のモデルに対して、従来は図
22で示したフリーエッジを輪郭線として表示していた
が、本発明により図22における線分1−4,1−3,
3−1も輪郭線として抽出できるようになった。また本
高速性は隣接するフリーフェイスを高速に求めることが
できるようになったことに起因する。
した要素を高速に抽出することもできるようになった。
ある。
ある。
ある。
の形式である。
る。
る。
処理を説明するための図である。
処理を説明するための図である。
的処理を説明するための図である。
的処理を説明するための図である。
的処理を説明するための図である。
的処理を説明するための図である。
ある。
ある。
ック図である。
ルとの形式を示す図である。
ある。
的処理を説明するための図である。
的処理を説明するための図である。
の図である。
Claims (27)
- 【請求項1】 有限要素分割モデルから辺,面,要素を
抽出する方法であって、 各要素と該要素を構成する節点とが対応して記憶されて
いる場合に、1つの辺,面または要素を1つのセグメン
トと見なして、有限要素分割モデルから前記セグメント
を抽出する際に、 前記セグメントに対して前記セグメントを構成する節点
の組み合わせを特徴付ける指標値をつけ、 同じ指標値を持つセグメントの情報が連続に並んだセグ
メントリストと、前記指標値と前記セグメントリスト上
の位置とを関連づける指標テーブルとを作成し、 前記セグメントリストと前記指標テーブルとに基づい
て、同じ指標値を持つセグメントを抽出して、抽出され
たセグメントを構成する節点情報を得るようにしたこと
を特徴とする有限要素分割モデルから辺,面,要素を抽
出する方法。 - 【請求項2】 前記セグメントリストに記憶される情報
は、各セグメントを有する要素を特定する第1識別子
と、該セグメントが前記要素の何番目のセグメントであ
るかを示す第2識別子とで表現されることを特徴とする
請求項1記載の有限要素分割モデルから辺,面,要素を
抽出する方法。 - 【請求項3】 前記セグメントリストに記憶されるセグ
メントは、前記指標値の大きい順または小さい順に並ぶ
ことを特徴とする請求項1記載の有限要素分割モデルか
ら辺,面,要素を抽出する方法。 - 【請求項4】 前記第1識別子に1つの要素を構成する
セグメントの数以上の所定の整数値を乗じ、これに前記
第2識別子を加えることにより、前記第1及び第2識別
子を1つの整数値として記憶することを特徴とする請求
項2記載の有限要素分割モデルから辺,面,要素を抽出
する方法。 - 【請求項5】 前記指標テーブルの各指標値の情報は、
該指標値に該当するセグメントの個数と該セグメントが
記憶されるセグメントリストの先頭を指すポインタとで
表現されることを特徴とする請求項1記載の有限要素分
割モデルから辺,面,要素を抽出する方法。 - 【請求項6】 前記ポインタに10以上の整数値を乗
じ、これに前記セグメントの個数を加えることにより、
前記個数及びポインタを1つの整数値として記憶するこ
とを特徴とする請求項5記載の有限要素分割モデルから
辺,面,要素を抽出する方法。 - 【請求項7】 前記セグメントリストと前記指標テーブ
ルとは、各セグメントの指標値に基づいて各指標値のセ
グメント個数を求め、求めた個数を指標値の小さい順ま
たは大きい順に加算していくことにより前記ポインタを
求め、前記ポインタをもとに各セグメントの情報を前記
セグメントリストに登録していくという手順で作成され
ることを特徴とする請求項5記載の有限要素分割モデル
から辺,面,要素を抽出する方法。 - 【請求項8】 更に、抽出したセグメントの内、同一の
節点からなるセグメントから構成される複数の要素を隣
接要素として抽出することを特徴とする請求項1記載の
有限要素分割モデルから辺,面,要素を抽出する方法。 - 【請求項9】 更に、前記同一の節点からなるセグメン
トをセグメントリストから除去することにより、セグメ
ントリストには重複のないセグメントだけが残るように
することを特徴とする請求項1記載の有限要素分割モデ
ルから辺,面,要素を抽出する方法。 - 【請求項10】 前記セグメントが有限要素分割モデル
を構成する面であって、前記セグメントリストには複数
の要素を構成しないフリーフェイスが残るようにするこ
とを特徴とする請求項9記載の有限要素分割モデルから
辺,面,要素を抽出する方法。 - 【請求項11】 前記セグメントが有限要素分割モデル
を構成する辺であって、前記セグメントリストには複数
の要素を構成しないフリーエッジが残るようにすること
を特徴とする請求項9記載の有限要素分割モデルから
辺,面,要素を抽出する方法。 - 【請求項12】 有限要素分割モデル中の1点Pe を内
含する要素を抽出する方法であって、 ある要素E0 に内含されている既知の点P0 を始点とし
て、2点Pe とP0 を結ぶ線分と交差する要素E0 の面
F0 を求め、 要素E0 と面F0 を境界にして隣接する要素E1 を求
め、 2点Pe とP0 を結ぶ線分と交差する要素E1 のF0 以
外の面F1 を求め、 該面F1 で要素E1 と隣接する要素E2 を求めるという
処理を繰り返し、 隣接する要素を辿っていくことにより、点Pe を内含す
る要素を抽出することを特徴とする有限要素分割モデル
から要素を抽出する方法。 - 【請求項13】 前記隣接する要素の抽出では、 各要素と該要素を構成する節点とが対応して記憶されて
いる場合に、1つの辺,面または要素を1つのセグメン
トと見なして、前記セグメントに対して前記セグメント
を構成する節点の組み合わせを特徴付ける指標値をつ
け、 同じ指標値を持つセグメントの情報が連続に並んだセグ
メントリストと、前記指標値と前記セグメントリスト上
の位置とを関連づける指標テーブルとを作成し、 前記セグメントリストと前記指標テーブルとに基づい
て、同じ指標値を持つセグメントを抽出して、抽出され
たセグメントを構成する節点情報を得て、 抽出したセグメントの内、同一の節点からなるセグメン
トから構成される複数の要素を隣接要素とすることを特
徴とする請求項12記載の有限要素分割モデルから要素
を抽出する方法。 - 【請求項14】 3次元有限要素モデルからフリーフェ
イスを抽出し、 該フリーフェイスを膜状要素の2次元要素とみなして、
隣接する2次元要素を抽出し、 隣接する2次元要素のなす角度θを求め、 角度θの値が、許容値をδとすると、0≦θ<(π−
δ)、または(π+δ)<θ<2πであるとき、前記2
つの2次元要素の境界線を輪郭線として抽出することを
特徴とする有限要素分割モデルから辺を抽出する方法。 - 【請求項15】 更に、抽出したフリーフェイスに膜状
要素の2次元要素からなる3次元形状の分割モデルを加
えて、隣接する2次元要素を抽出し、 角度θの値が、許容値をδとすると、δ≦θ<(π−
δ)、または(π+δ)<θ<2π−δであるとき、前
記2つの2次元要素の境界線を輪郭線として抽出するこ
とを特徴とする請求項14記載の有限要素分割モデルか
ら辺を抽出する方法。 - 【請求項16】 許容値δの値を、デフォルト値とし
て、π/180≦δ≦π/18と設定しておき、 プログラム使用中にはユーザが任意に指定できるように
することを特徴とする請求項14または15記載の有限
要素分割モデルから辺を抽出する方法。 - 【請求項17】 前記フリーフェイスの抽出では、 各要素と該要素を構成する節点とが対応して記憶されて
いる場合に、1つの辺を1つのセグメントと見なして、
前記セグメントに対して前記セグメントを構成する節点
の組み合わせを特徴付ける指標値をつけ、 同じ指標値を持つセグメントの情報が連続に並んだセグ
メントリストと、前記指標値と前記セグメントリスト上
の位置とを関連づける指標テーブルとを作成し、 前記セグメントリストと前記指標テーブルとに基づい
て、同じ指標値を持つセグメントを抽出して、抽出され
たセグメントを構成する節点情報を得て、 同一の節点からなるセグメントを前記セグメントリスト
から除去することにより、前記セグメントリストに残っ
た面をフリーフェイスとすることを特徴とする請求項1
4記載の有限要素分割モデルから辺を抽出する方法。 - 【請求項18】 前記隣接する2次元要素の抽出では、 各要素と該要素を構成する節点とが対応して記憶されて
いる場合に、1つの面を1つのセグメントと見なして、
前記セグメントに対して前記セグメントを構成する節点
の組み合わせを特徴付ける指標値をつけ、 同じ指標値を持つセグメントの情報が連続に並んだセグ
メントリストと、前記指標値と前記セグメントリスト上
の位置とを関連づける指標テーブルとを作成し、 前記セグメントリストと前記指標テーブルとに基づい
て、同じ指標値を持つセグメントを抽出して、抽出され
たセグメントを構成する節点情報を得て、 抽出したセグメントの内、同一の節点からなるセグメン
トから構成される複数の要素を隣接面とすることを特徴
とする請求項14または15記載の有限要素分割モデル
から辺を抽出する方法。 - 【請求項19】 有限要素分割モデルから辺,面,要素
を抽出する装置であって、 各要素と該要素を構成する節点とを対応して記憶する手
段と、 1つの辺,面または要素を1つのセグメントと見なし
て、前記セグメントに対して前記セグメントを構成する
節点の組み合わせを特徴付ける指標値をつける手段と、 同じ指標値を持つセグメントの情報が連続に並んだセグ
メントリストと、前記指標値と前記セグメントリスト上
の位置とを関連づける指標テーブルとを作成する手段
と、 前記セグメントリストと前記指標テーブルとに基づい
て、同じ指標値を持つセグメントを抽出して、前記各要
素と該要素を構成する節点との対応に基づいて、抽出さ
れたセグメントを構成する節点情報を得る手段とを備え
ることを特徴とする有限要素分割モデルから辺,面,要
素を抽出する装置。 - 【請求項20】 前記セグメントリストに記憶される情
報は、各セグメントを有する要素を特定する第1識別子
と、該セグメントが前記要素の何番目のセグメントであ
るかを示す第2識別子とで表現されることを特徴とする
請求項19記載の有限要素分割モデルから辺,面,要素
を抽出する装置。 - 【請求項21】 前記セグメントリストに記憶されるセ
グメントは、前記指標値の大きい順または小さい順に並
ぶことを特徴とする請求項19記載の有限要素分割モデ
ルから辺,面,要素を抽出する装置。 - 【請求項22】 前記第1識別子に1つの要素を構成す
るセグメントの数以上の所定の整数値を乗じ、これに前
記第2識別子を加えることにより、前記第1及び第2識
別子を1つの整数値として記憶することを特徴とする請
求項20記載の有限要素分割モデルから辺,面,要素を
抽出する装置。 - 【請求項23】 前記指標テーブルの各指標値の情報
は、該指標値に該当するセグメントの個数と該セグメン
トが記憶されるセグメントリストの先頭を指すポインタ
とで表現されることを特徴とする請求項19記載の有限
要素分割モデルから辺,面,要素を抽出する装置。 - 【請求項24】 前記ポインタに10以上の整数値を乗
じ、これに前記セグメントの個数を加えることにより、
前記個数及びポインタを1つの整数値として記憶するこ
とを特徴とする請求項23記載の有限要素分割モデルか
ら辺,面,要素を抽出する装置。 - 【請求項25】 前記セグメントリストと前記指標テー
ブルとを作成する手段は、 各セグメントの指標値に基づいて各指標値のセグメント
個数を求める手段と、 求めた個数を指標値の小さい順または大きい順に加算し
ていくことにより前記ポインタを求める手段と、 前記ポインタをもとに各セグメントの情報を前記セグメ
ントリストに登録していく手段とを備えることを特徴と
する請求項5記載の有限要素分割モデルから辺,面,要
素を抽出する装置。 - 【請求項26】 更に、抽出したセグメントの内、同一
の節点からなるセグメントから構成される複数の要素を
隣接要素として抽出する手段を備えることを特徴とする
請求項19記載の有限要素分割モデルから辺,面,要素
を抽出する装置。 - 【請求項27】 更に、前記同一の節点からなるセグメ
ントを前記セグメントリストから除去する除去手段を備
えることにより、前記セグメントリストには重複のない
セグメントだけが残るようにすることを特徴とする請求
項19記載の有限要素分割モデルから辺,面,要素を抽
出する装置。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP15327795A JP3624015B2 (ja) | 1995-06-20 | 1995-06-20 | 有限要素分割モデルから辺,面,要素を抽出する方法及びその装置 |
| EP96302918A EP0740273B1 (en) | 1995-04-27 | 1996-04-25 | Method and apparatus for processing finite element meshing model |
| GB9608563A GB2300287B (en) | 1995-04-27 | 1996-04-25 | Method and apparatus for processing finite element meshing model |
| US08/637,372 US5819070A (en) | 1995-04-27 | 1996-04-25 | Method and apparatus for processing finite element meshing model |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP15327795A JP3624015B2 (ja) | 1995-06-20 | 1995-06-20 | 有限要素分割モデルから辺,面,要素を抽出する方法及びその装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH096991A true JPH096991A (ja) | 1997-01-10 |
| JP3624015B2 JP3624015B2 (ja) | 2005-02-23 |
Family
ID=15558957
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP15327795A Expired - Fee Related JP3624015B2 (ja) | 1995-04-27 | 1995-06-20 | 有限要素分割モデルから辺,面,要素を抽出する方法及びその装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3624015B2 (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009123000A (ja) * | 2007-11-15 | 2009-06-04 | Fujitsu Ltd | 有限要素法解析における要素のグループ化方法及びプログラム |
| JP2019207663A (ja) * | 2018-05-30 | 2019-12-05 | 富士通株式会社 | 解析モデル表示処理プログラム、解析モデル表示処理方法および情報処理装置 |
| CN116402988A (zh) * | 2023-05-11 | 2023-07-07 | 北京冰河起源科技有限公司 | 三维模型处理方法、装置及存储介质 |
-
1995
- 1995-06-20 JP JP15327795A patent/JP3624015B2/ja not_active Expired - Fee Related
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009123000A (ja) * | 2007-11-15 | 2009-06-04 | Fujitsu Ltd | 有限要素法解析における要素のグループ化方法及びプログラム |
| JP2019207663A (ja) * | 2018-05-30 | 2019-12-05 | 富士通株式会社 | 解析モデル表示処理プログラム、解析モデル表示処理方法および情報処理装置 |
| CN116402988A (zh) * | 2023-05-11 | 2023-07-07 | 北京冰河起源科技有限公司 | 三维模型处理方法、装置及存储介质 |
| CN116402988B (zh) * | 2023-05-11 | 2023-12-19 | 北京冰河起源科技有限公司 | 三维模型处理方法、装置及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP3624015B2 (ja) | 2005-02-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2690110B2 (ja) | 走査変換方法 | |
| US7348975B2 (en) | Applications of interval arithmetic for reduction of number of computations in ray tracing problems | |
| EP3002732A2 (en) | Method and apparatus for generating and traversing acceleration structure | |
| CN110838129A (zh) | 基于倾斜摄影测量的三维建筑物模型轮廓特征线提取方法 | |
| US11238649B2 (en) | Method and system for hybrid modeling using geometric facets | |
| US5819070A (en) | Method and apparatus for processing finite element meshing model | |
| JP3988925B2 (ja) | 混合格子型解適合格子法を用いた数値解析装置 | |
| US20180018818A1 (en) | Method for Immediate Boolean Operations Using Geometric Facets | |
| BRPI0720987A2 (pt) | Processo e aparelho para traçar raio multinível | |
| De Cougny et al. | Parallel three-dimensional mesh generation | |
| JPH04277792A (ja) | 大規模並列アーキテクチャによる3次元物体の表示・操作システム及び方法 | |
| CN109614522A (zh) | 一种基于八叉并运用于web的非结构化网格切割方法 | |
| JP7591153B2 (ja) | 空間2タプルの決定方法、装置、コンピュータ装置及び記憶媒体 | |
| CN112269848B (zh) | 一种众包轨迹数据融合方法及装置 | |
| CN104809760A (zh) | 基于深度优先策略的地理空间三维外轮廓自动构建方法 | |
| CN111400969B (zh) | 一种非结构直角网格加速生成方法 | |
| CN110162903B (zh) | 一种基于格网并行的城市建筑迎风面密度计算方法及系统 | |
| CN112121435B (zh) | 游戏寻路方法、装置、服务器和存储介质 | |
| JP3624015B2 (ja) | 有限要素分割モデルから辺,面,要素を抽出する方法及びその装置 | |
| CN114861970A (zh) | 有限资源下大规模图的全源最短路径分治求解方法 | |
| CN101297325A (zh) | 用于降低计算次数的区间算法在射线跟踪问题中的应用 | |
| CN116608846A (zh) | 一种道路路网生成方法、系统、电子设备及存储介质 | |
| JP2005056288A (ja) | 混合格子型解適合格子法を用いた数値解析装置 | |
| CN118135145B (zh) | 一种建筑物白模构建方法及装置 | |
| CN116030190B (zh) | 一种基于点云与目标多边形的目标三维模型生成方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040726 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040921 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20041115 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041129 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081203 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091203 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091203 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101203 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111203 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121203 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131203 Year of fee payment: 9 |
|
| LAPS | Cancellation because of no payment of annual fees |