JP2701003B2 - ソリッドモデル合成装置及びソリッドモデル合成方法 - Google Patents

ソリッドモデル合成装置及びソリッドモデル合成方法

Info

Publication number
JP2701003B2
JP2701003B2 JP6233695A JP23369594A JP2701003B2 JP 2701003 B2 JP2701003 B2 JP 2701003B2 JP 6233695 A JP6233695 A JP 6233695A JP 23369594 A JP23369594 A JP 23369594A JP 2701003 B2 JP2701003 B2 JP 2701003B2
Authority
JP
Japan
Prior art keywords
symbol
group
closed
groups
drawing data
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.)
Expired - Lifetime
Application number
JP6233695A
Other languages
English (en)
Other versions
JPH0896164A (ja
Inventor
雅之 沼尾
宏 増田
裕史 松澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
IBM Japan Ltd
Original Assignee
IBM Japan Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by IBM Japan Ltd filed Critical IBM Japan Ltd
Priority to JP6233695A priority Critical patent/JP2701003B2/ja
Priority to US08/534,418 priority patent/US5684725A/en
Publication of JPH0896164A publication Critical patent/JPH0896164A/ja
Application granted granted Critical
Publication of JP2701003B2 publication Critical patent/JP2701003B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes

Landscapes

  • Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Image Analysis (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ソリッドモデル合成及
びソリッドモデル合成方法に係り、より詳しくは、入力
した3次元形状を表現した図面データに基づいて3次元
形状のソリッドモデルを合成するソリッドモデル合成及
びソリッドモデル合成方法に関する。
【0002】
【従来の技術及び発明が解決しようとする課題】本出願
人は、上面図及び断面図からソリッドモデルを合成する
ソリッドモデル合成装置及びソリッドモデル合成方法を
提案している(特願平5−245384号)。すなわ
ち、上面図及び断面図からソリッドモデルを合成する場
合、まず、上面図上の断面線とそれに対応する断面図か
ら、上面図の3次元式な形状を求める。つまり、上面図
からXY平面上の形を、断面図からZ軸上の属性を求
め、これを合わせることによって、3次元形状を求めて
いる。
【0003】しかしながら、前記ソリッドモデル合成装
置及びソリッドモデル合成方法では、断面図によって断
面情報が与えられていない部分については、類推によっ
てソリッド化していた。そして、閉領域をその構成要素
のダイレクト・マッチングによってグループ化していた
が、角度の異なる閉領域同士のマッチがとれないことが
あった。
【0004】また、本出願人は、図面データを純粋に数
学的に変換して3面図からソリッドモデルを合成するソ
リッドモデル合成装置及びソリッドモデル合成方法を提
案しているが、3面図上で同じ形状部分も各々個別にソ
リッド化しており、ソリッドモデルの合成の処理時間が
長く必要である。
【0005】本発明は、上記事実に鑑み成されたもの
で、図面データから精度のよいソリッドモデルを効率よ
く合成することの可能なソリッドモデル合成装置及びソ
リッドモデル合成方法を提案することを目的とする。
【0006】
【課題を解決するための手段】上記目的達成のため請求
項1記載の発明は、図1に示すように、入力した3次元
形状を表現した図面データに基づいて輪郭線で構成され
る複数の閉領域を検出する閉領域検出手段52と、前記
検出された閉領域に基づいて前記図面データを前記検出
された閉領域毎の図面データの集合である複数の図面デ
ータ群に分類する図面データ群分類手段54と、前記複
数の図面データ群を閉領域の輪郭線を構成する要素を表
す第1の記号及び該要素の接続関係を表す第2の記号の
集合である複数の記号群に変換する記号群変換手段56
と、前記検出された閉領域間の位置情報を検出する位置
情報検出手段58と、前記分類された図面データ群に基
づいて前記複数の閉領域の各々の属性を検出する属性検
出手段60と、前記第1の記号及び前記第2の記号、前
記位置情報及び前記属性の少なくとも1つに基づいて前
記変換された複数の記号群を前記閉領域の種類に応じて
類別する記号群類別手段62と、前記類別された記号群
に基づいて前記検出された閉領域を立体化する立体化手
段64と、前記検出された位置情報に基づいて前記立体
化された閉領域を組み合わせることにより前記3次元形
状のソリッドモデルを合成するソリッドモデル合成手段
66と、を備えている。
【0007】請求項2記載の発明は、図1に示すよう
に、請求項1記載の発明において、前記記号群類別手段
62は、前記第1の記号及び前記第2の記号に基づいて
前記変換された複数の記号群から各々同一の記号群を類
別するようにしている。
【0008】請求項3記載の発明は、図1に示すよう
に、請求項2記載の発明において、前記記号群類別手段
62は、前記第1の記号及び前記第2の記号と前記属性
とに基づいて前記類別された各々同一の記号群から各々
同一の属性の閉領域の記号群を類別するようにしてい
る。
【0009】請求項4記載の発明は、図1に示すよう
に、請求項3記載の発明において、前記記号群類別手段
62は、前記第1の記号及び前記第2の記号、前記位置
情報及び前記属性に基づいて前記類別された各々同一の
属性の閉領域の記号群から各々同一の記号群でかつ各々
同一の属性の閉閉領域を包含する閉領域に対応する記号
群を類別するようにしている。
【0010】請求項5記載の発明は、図1に示すよう
に、請求項2ないし請求項4のいずれか1項に記載の発
明において、前記記号群類別手段62は、前記第1の記
号及び第2の記号で構成された複数の形状パターンを予
め記憶する記憶手段に記憶された該形状パターンと前記
複数の記号群の各々とに基づいて、前記変換された複数
の記号群から各々同一の記号群を類別するようにしてい
る。
【0011】請求項6記載の発明は、図1に示すよう
に、請求項5記載の発明において、前記記号群類別手段
62は、前記記憶された形状パターンと記複数の記号群
の各々とのマッチングを行うことにより、前記変換され
た複数の記号群から各々同一の記号群を類別するように
している。
【0012】請求項7記載の発明は、図1に示すよう
に、請求項6記載の発明において、前記記号群類別手段
62は、前記マッチングを行った後、前記記憶された形
状パターンと一致しない記号群を新たに形状パターンと
して前記記憶手段に記憶するようにしている。
【0013】請求項8記載の発明は、図1に示すよう
に、請求項1ないし請求項7記載のいずれか1項に記載
の発明において、前記属性検出手段60は、前記属性と
して、前記複数の閉領域の各々の面積を検出するように
している。
【0014】請求項9記載の発明は、図1に示すよう
に、請求項1ないし請求項8のいずれか1項に記載の発
明において、前記記号群変換手段56は、前記複数の図
面データ群の各々の図面データ群の各々を閉領域の輪郭
線を構成する要素を表す第1の記号及び該要素の接続関
係を表す第2の記号に変換することにより前記複数の図
面データ群を複数の記号群に変換し、前記変換された複
数の記号群に前記要素の特定の接続関係を表す特定記号
を有する記号群があるか否か判断し、該特定記号を有す
る記号群がある場合には、該特定記号に基づいて該記号
群を複数の記号群に分割するようにしている。
【0015】請求項10記載の発明は、入力した3次元
形状を表現した図面データに基づいて輪郭線で構成され
る複数の閉領域を検出し、前記検出された閉領域に基づ
いて前記図面データを前記検出された閉領域毎の図面デ
ータの集合である複数の図面データ群に分類し、前記複
数の図面データ群を閉領域の輪郭線を構成する要素を表
す第1の記号及び該要素の接続関係を表す第2の記号の
集合である複数の記号群に変換し、前記検出された閉領
域間の位置情報を検出し、前記分類された図面データ群
に基づいて前記複数の閉領域の各々の属性を検出し、前
記第1の記号及び前記第2の記号、前記位置情報及び前
記属性の少なくとも1つに基づいて前記変換された複数
の記号群を前記閉領域の種類に応じて類別し、前記類別
された記号群に基づいて前記検出された閉領域を立体化
し、前記検出された位置情報に基づいて前記立体化され
た閉領域を組み合わせることにより前記3次元形状のソ
リッドモデルを合成するようにしている。
【0016】請求項11記載の発明は、請求項10記載
の発明において、前記第1の記号及び前記第2の記号に
基づいて前記変換された複数の記号群から各々同一の記
号群を類別するようにしている。
【0017】請求項12記載の発明は、請求項11記載
の発明において、前記第1の記号及び前記第2の記号と
前記属性とに基づいて前記類別された各々同一の記号群
から各々同一の属性の閉領域の記号群を類別するように
している。
【0018】請求項13記載の発明は、請求項12記載
の発明において、前記第1の記号及び前記第2の記号、
前記位置情報及び前記属性に基づいて前記類別された各
々同一の属性の閉領域の記号群から各々同一の記号群で
かつ各々同一の属性の閉領域を包含する閉領域の記号群
を類別するようにしている。
【0019】請求項14記載の発明は、請求項11ない
し請求項13のいずれか1項に記載の発明において、前
記第1の記号及び第2の記号で構成された複数の形状パ
ターンを予め記憶し、該記憶された該形状パターンと前
記複数の記号群の各々とに基づいて、前記変換された複
数の記号群から各々同一の記号群を類別するようにして
いる。
【0020】請求項15記載の発明は、請求項14記載
の発明において、前記記憶された形状パターンと記複数
の記号群の各々とのマッチングを行うことにより、前記
変換された複数の記号群から各々同一の記号群を類別す
るようにしている。
【0021】請求項16記載の発明は、請求項15記載
の発明において、前記マッチングを行った後、前記記憶
された形状パターンと一致しない記号群を新たに形状パ
ターンとして記憶するようにしている。
【0022】請求項17記載の発明は、請求項10ない
し請求項16記載の発明において、前記属性として、前
記複数の閉領域の各々の面積を検出するようにしてい
る。
【0023】請求項18記載の発明は、請求項10ない
し請求項17記載の発明において、前記複数の図面デー
タ群の各々の図面データ群の各々を閉領域の輪郭線を構
成する要素を表す第1の記号及び該要素の接続関係を表
す第2の記号に変換することにより前記複数の図面デー
タ群を複数の記号群に変換し、前記変換された複数の記
号群に前記要素の特定の接続関係を表す特定記号を有す
る記号群があるか否か判断し、該特定記号を有する記号
群がある場合には、該特定記号に基づいて該記号群を複
数の記号群に分割するようにしている。
【0024】
【作用】図1に基づいて、請求項1ないし請求項9記載
の発明の作用を説明する。
【0025】請求項1記載の発明では、閉領域検出手段
52は、入力した3次元形状を表現した図面データに基
づいて輪郭線で構成される複数の閉領域を検出する。
【0026】図面データ群分類手段54は、前記検出さ
れた閉領域に基づいて前記図面データを前記検出された
閉領域毎の図面データの集合である複数の図面データ群
に分類する。
【0027】記号群変換手段56は、前記複数の図面デ
ータ群を複数の記号群に変換する。該記号群は第1の記
号及び第2の記号の集合であり、第1の記号は閉領域の
輪郭線を構成する要素を表し、第2の記号は要素の接続
関係を表すものである。
【0028】なお、請求項9記載の発明では、前記複数
の図面データ群の各々の図面データ群の各々を閉領域の
輪郭線を構成する要素を表す第1の記号及び該要素の接
続関係を表す第2の記号に変換することにより前記複数
の図面データ群を複数の記号群に変換し、前記変換され
た複数の記号群に前記要素の特定の接続関係を表す特定
記号を有する記号群があるか否か判断し、該特性記号を
有する記号群がある場合には、該特定記号に基づいて該
記号群を複数の記号群に分割する。
【0029】位置情報検出手段58は、前記検出された
閉領域間の位置情報を検出し、属性検出手段60は、前
記分類された図面データ群に基づいて前記複数の閉領域
の各々の属性を検出する。なお、請求項8記載の発明で
は、前記属性として、前記複数の閉領域の各々の面積を
検出する。
【0030】記号群類別手段62は、前記第1の記号及
び前記第2の記号、前記位置情報及び前記属性の少なく
とも1つに基づいて前記変換された複数の記号群を前記
閉領域の種類に応じて類別する。
【0031】すなわち、例えば、請求項2記載の発明で
は、前記第1の記号及び前記第2の記号に基づいて前記
変換された複数の記号群から各々同一の記号群を類別す
る。
【0032】請求項3記載の発明では、前記第1の記号
及び前記第2の記号と前記属性とに基づいて前記類別さ
れた各々同一の記号群から各々同一の属性の閉領域の記
号群を類別するする。
【0033】請求項4記載の発明では、前記第1の記号
及び前記第2の記号、前記位置情報及び前記属性に基づ
いて前記類別された各々同一の属性の閉領域の記号群か
ら各々同一の記号群でかつ各々同一の属性の閉領域を包
含する閉領域の記号群を類別する。
【0034】ここで、前記変換された複数の記号群から
各々同一の記号群に類別するには、例えば、請求項5記
載の発明のように、前記第1の記号及び第2の記号で構
成された複数の形状パターンを予め記憶する記憶手段に
記憶された該形状パターンと前記複数の記号群の各々と
に基づいて、前記変換された複数の記号群から各々同一
の記号群に類別する。
【0035】また、請求項6記載の発明では、前記記憶
された形状パターンと記複数の記号群の各々とのマッチ
ングを行うことにより、前記変換された複数の記号群か
ら各々同一の記号群に類別する。
【0036】さらに、請求項7記載の発明では、前記マ
ッチングを行った後、前記記憶された形状パターンと一
致しない記号群を新たに形状パターンとして前記記憶手
段に記憶する。
【0037】そして、立体化手段64は、前記類別され
た記号群に基づいて前記検出された閉領域を立体化し、
ソリッドモデル合成手段66は、前記検出された位置情
報に基づいて前記立体化された閉領域を組み合わせるこ
とにより前記3次元形状のソリッドモデルを合成する。
【0038】このように、分類された図面データ群を閉
領域の輪郭線を構成する要素を表す第1の記号及び該要
素の接続関係を表す第2の記号の集合である複数の記号
群に変換し、変換された複数の記号群を前記閉領域の種
類に応じて類別し、類別された記号群に基づいて前記検
出された閉領域を立体化しており、複数の閉領域の各々
の図面データ群が記号群に変換されて閉領域を立体化す
るため、閉領域の形状精度よく立体化でき、また、類別
されたた記号群に基づいて前記検出された閉領域を立体
化すため、個々に図面データから数学的変換により立体
化するのでなく、類別された記号群のうち1つの記号群
を立体化すれば、該類別された記号群の立体化した記号
群以外の他の記号群が該立体化に基づいて立体化するこ
とができるため、ソリッドモデルの合成を効率よく行う
ことができる。
【0039】なお、請求項10ないし請求項18記載の
発明は、請求項1ないし請求項9記載の発明と同様の作
用効果を奏するため、請求項10ないし請求項18記載
の発明の作用の説明は省略する。
【0040】
【実施例】以下、本発明のソリッドモデル合成装置の実
施例を図面を参照して詳細に説明する。
【0041】図2に示すように、ソリッドモデル合成装
置10は、CPU20、システムメモリ22、ワークメ
モリ24、入力装置26、及び表示器28から構成され
ており、それらは、互いにバスを介して接続されてい
る。システムメモリ22には、CPU20が実行する後
述する制御ルーチンが記憶されている。また、キーボー
ド等から構成されている入力装置26から入力された、
各種のデータ、例えば、図15に示すように、3次元の
形状を表現するために記述された工学図面〔正面図(図
15(a))、上面図(図15(b))及び側面図(図
15(c))〕の工学図面データ、例えば、線分及び円
弧データ、図面で立体を表現するときの規則等がワーク
メモリ24に記憶されている。
【0042】次に、本実施例の作用を図3ないし図14
に示した制御ルーチンを参照して説明する。
【0043】まず、図3に示すステップ100で、入力
した工学図面データのうち上面図データに基づいて3次
元形状の輪郭線で構成される複数の閉領域を検出し、検
出された閉領域に基づいて図面データを閉領域毎の図面
データの集合である複数の図面データ群(以下、閉領域
リストという)に分類する処理のためのサブルーチン
(図4及び図5参照)が実行され、次のステップ200
で、ステップ100で検出された閉領域間の位置情報と
しての閉領域の包含(木構造)関係を検出する処理のた
めのサブルーチン(図6参照)が実行される。なお位置
情報とは複数の閉領域の包含関係を意味する。包含関係
は図6に示される手順で、複数の閉領域の木構造が作成
される。この木構造により特定の閉領域が複数の閉領域
とどのような位置関係にあるかがわかる。
【0044】ステップ300で、閉領域リストを閉領域
を構成する輪郭線を表す第1の記号及び該輪郭線の接続
関係を表す第2の記号の集合である複数の記号群に変換
する処理のためのサブルーチン(図7参照)が実行さ
れ、ステップ400で、変換された複数の記号群に輪郭
線の特定の接続関係を表す特定記号(詳細は後述する)
を有する記号群があるか否か判断し、該特性記号を有す
る記号群がある場合には、該特定記号に基づいて該記号
群を複数の記号群に分割する処理のためのサブルーチン
(図8参照)が実行され、ステップ500で、複数の記
号群の各々に基づいて閉領域の形状を検出する処理のた
めのサブルーチン(図9参照)が実行される。
【0045】ステップ600で、閉領域リストに基づい
て閉領域の属性(本実施例では、面積)を検出する処理
のためのサブルーチン(図10参照)が実行される。
【0046】ステップ700で、記号群から同一形状の
閉領域の記号群を類別し、更に、同一形状の閉領域の記
号群から各々同一面積の閉領域の記号群を類別する閉領
域の予備類別の処理のためのサブルーチン(図11及び
図12参照)が実行される。
【0047】ステップ800で、ステップ700で類別
された同一形状でかつ同一面積の閉領域の記号群から、
さらに、同一形状でかつ同一面積の閉領域を包含する閉
領域の記号群を類別する閉領域の本類別の処理のための
サブルーチン(図13参照)が実行される。
【0048】そして、ステップ900で、ソリッドモデ
ルを合成する処理のためのサブルーチン(図14参照)
が実行されて、本処理を終了する。
【0049】次に、ステップ100の詳細(図4及び図
5参照)を説明する。なお、入力した工学図面データに
は、三面図図面の場合には、正面図データ、上面図デー
タ及び側面図データがあり、断面図図面の場合には、平
面図及び断面図があるが、本ルーチンに基づく処理を行
う場合には、入力した図面データのうち上面図または平
面図を用いる。ここで、正面図または平面図には、線
分、円弧データがあり、それらのデータは、線分、円弧
の始点、終点、始点角、終点角、順方向フラグ、逆方向
フラグから構成されている。より詳細に説明すると、入
力変数In は、{E1 、E2 ・・・En }で与えられ、
各々Ei (i=1〜n)は、(VS 、VE、AS
E 、FN 、FR )の組で与えられている。括弧中のパ
ラメータの意味は、図21に示されている。すなわち、
S は始点、VE は終点、AS は始点での接線の角度、
E は終点での接線の角度、FN は順方向フラグ、FR
は、逆方向フラグである。
【0050】図4に示したステップ102で、全ての線
分データ中のフラグに0を代入することにより、線分デ
ータの初期化を行い、また、プログラム変数の初期化も
行う。すなわち、閉領域リストであるR、1つの閉領域
を構成する線分リストであるLをクリアし、変数Eに入
力線分リストの先頭の線分を代入し、変数Vに線分Eの
始点を代入する。ステップ102に示すように、閉領域
リストRは、{L1 、L2 、・・・Lk }で与えられ、
その各々Li が閉領域を構成する線分のリストである。
一方、その各々のLi は、例えば図22に示されるよう
に、{Ei1、E i2、・・・Eil}で与えられる。次のス
テップ104で、VがEの始点であるか否か判断し、始
点である場合には、ステップ106で順方向フラグが0
であるか否か判断し、順方向フラグが0でない場合に
は、ステップ124(図5参照)に進み、順方向フラグ
が0である場合には、ステップ108で順方向フラグを
1にセットしてステップ114に進む。一方、VがEの
始点でない場合には、ステップ110で逆方向フラグが
0であるか否か判断する。この逆方向フラグが0でない
場合には、ステップ124に進み、逆方向フラグが0で
ある場合には、ステップ112で、逆方向フラグを1に
セットしてステップ114に進む。
【0051】ステップ114で、LにEを加える。次の
ステップ116で、VnextをEに関してVと反対側の頂
点と定義し、ステップ118で、Enextを、Vnextを始
点又は終点に持つ線分のうちEからみて時計回り方向に
一番近い線分と定義する。次のステップ120で、Vに
nextを代入し、ステップ122でEにEnextを代入し
て、ステップ104に進む。
【0052】ステップ124(図5参照)で、RにLを
加え、ステップ126で、Lをクリアする。
【0053】次のステップ128で、入力線分リストの
中から順方向又は逆方向のフラグの一方が0のものを検
出し、ステップ130で、順方向又は逆方向フラグが0
の線分リストが存在するか否か判断し、順方向又は逆方
向フラグが0の線分リストが存在すると判断された場合
には、ステップ132で、入力線分リストの中で順方向
又は逆方向のフラグが0の線分データをEとする。次の
ステップ134で、Eの順方向フラグが0か否か判断
し、0である場合には、ステップ138で、Vに始点を
代入してステップ104に進む。一方、順方向フラグが
0でない場合には、Vに終点を代入してステップ104
に進む。一方、ステップ130で、順方向又は逆方向フ
ラグが0の線分リストが存在しないと判断された場合に
は、本制御を終了する。
【0054】これにより、Rに全ての閉領域のリストが
得られる。すなわち、例えば、図16(a)に示すよう
に、上面図の線分を順次辿っていくことにより閉領域L
1〜閉領域L25が閉領域のリストとして得られる。こ
こで、反時計回りのリストは、個々の閉領域を表し、時
計回りのリストは、隣接した閉領域全体を囲む輪郭線を
表す。
【0055】次にステップ200の詳細(図6参照)を
説明する。本処理は、閉領域のリストを包含(親子)関
係によって木構造に変形するものである。
【0056】まず、図6に示すステップ202で、Rを
含む直方体(Boundary Box)を用いて、R
を大きさの順にソートすることにより初期化する。ここ
で、直方体は、Rを構成する線分の頂点のうち、x、y
座標平面上一番左下にある頂点と右上にある頂点を選ぶ
ことによって作ることができる。また、大きさは、直方
体の対角頂点を結ぶ線の長さによって与えられる。ここ
で、Rには、大きい順に閉領域リストR0 、R1 、R2
・・が並んでおり、RTに、木の初期設定としてR0
代入する。また、RXをリストの先頭としてR1 を代入
しておく。さらに、RLを残りの閉領域リストR2 ・・
・であるとする。
【0057】次のステップ204で、RXがRTに包含
されるか否か判断し、包含されると判断した場合には、
ステップ206で、RXをRTの子供として登録する。
一方、RXがRTに包含されないと判断した場合には、
ステップ208で、RXをRTの兄弟として登録する。
次のステップ210で、RLが空になったか否か判断
し、空になっていない場合には、ステップ214で、R
XをRLリストの先頭とし、次のステップ216で、R
Lを、RLからRXを除いたリストとして、ステップ2
04に戻る。
【0058】一方、ステップ210で、RLが空になっ
たと判断した場合には、ステップ212で、全ての子供
リストが処理済みか否か判断し、全ての子供リストにつ
いて処理が済んでいる場合には、ステップ300に進
み、そうでない場合には、ステップ218に進む。ステ
ップ218では、Rを、まだ、未処理のRTの子供のリ
ストとして、次のステップ220で、未処理の子供リス
トを大きさの順にソートする。さらに、ステップ222
で、RTに子供リストの先頭を、RXにリストの2番目
を、RLに残りのリストを代入し、ステップ204に戻
る。
【0059】以上の処理により、閉領域のID、構成要
素IDリスト、従属閉領域IDリストから構成される閉
領域のデータが得られる。閉領域の間の包含関係を従属
閉領域リストに表現されるので、リスト全体では、木構
造を表している。すなわち、例えば、図17に示すよう
に閉領域L1〜閉領域L25の木構造(親子関係)が得
られる。
【0060】次に、ステップ300の詳細(図7参照)
を説明する。本処理では、前述したように、閉領域リス
トを閉領域の輪郭線を構成する要素を表す第1の記号及
び該要素の接続関係を表す第2の記号の集合である複数
の記号群に変換する。
【0061】ここで、第1の記号を説明する。第1の記
号としては、異なる要素に異なる記号を用いている。す
なわち、要素しては、直線、左回りの円弧及び右回りの
円弧があり、該要素には、次表1に示す記号を用いてい
る。
【0062】
【表1】 ここで、本実施例では、一般的な直角投影法に基づく工
学図面を考えた場合、閉領域の輪郭線を構成する要素は
直線及び円弧が殆どであることに鑑み、直線、左回りの
円弧及び右回りの円弧の3種類の要素を用いている。こ
こで、円弧は、前述したように、中心座標、半径、始点
角及び終点角によって表現され、始点角<終点角の場合
に左回りの円弧とし、この逆の場合に右回りとしてい
る。なお、円弧の中心角の最大値は90°である。従っ
て、円は、4個の円弧(中心角が最大値(90°)の円
弧)によって表現される。このように、中心角の最大値
が90°の円弧を用いたのは、前述した工学図面では、
円を表現する他に、角の丸めが4分円の円弧で表現され
ることが多いことに鑑みたからである。
【0063】次に、第2の記号について説明する。第2
の記号しては、異なる接続関係に異なる記号を用いてい
る。この第2の記号は、ある要素と他の要素との接続関
係を、接続点の前後の輪郭線の接線の角度の変化ΔT
(次式(1)から求められる)を次表2に示すように記
号化して、定めている。 ΔT=tan -1Ebegin i+1 −tan -1Eend i ・・・(1) ここで、tan -1Ebegin i+1 は、輪郭線を構成する要素
の始点角θs であり、tan -1Eend i は、前記要素に接
続する他の要素の終点角θe である。
【0064】
【表2】 ここで、ある輪郭線と他の輪郭線との接続点の前後の輪
郭線の接線の角度の変化ΔTを90°を境に記号化して
いるのは、前述した工学図面では、角度が90°で輪郭
線が接続している場合が多いことに鑑みたものである。
すなわち、通常の機械部品は直角をもとに加工、又は、
組み立てられていることが一般的であるからである。
【0065】このような第1の記号及び第2の記号を用
いて、ステップ300では、閉領域リストを記号群に変
換する。
【0066】すなわち、ステップ302では、閉領域リ
ストの各々を識別する変数kを0にセットし、ステップ
304で、変数kを1インクリメントする。ステップ3
06で、変数kで識別される閉領域リストEk を構成す
る図面データを識別する変数iを1にセットし、前記第
1の記号及び第2の記号を格納する格納領域Sk の格納
位置を識別する変数jを0にセットする。
【0067】ステップ310で、変数kで識別される閉
領域リストEk の最終の図面データEk (Ik )を変数
esに格納し、ステップ312で、変数kで識別される
閉領域リストEk のi番目の図面データEk (i)を変
数edに格納する。ここで、Ik は、閉領域リストEk
の要素数を表している。
【0068】ステップ314で、変数jを1インクリメ
ントし、ステップ316で、esとedとの接続関係C
を、前述した式(1)に基づいて検出し、ステップ31
8で、格納領域Sk のj番目の格納位置に該接続関係C
を格納する。
【0069】ステップ320で、変数jを1インクリメ
ントし、ステップ322で、edの要素記号Pを検出
し、ステップ324で、格納領域Sk のj番目の格納位
置に該要素記号Pを格納する。
【0070】ステップ326で、変数iを1インクリメ
ントし、ステップ328で、変数iが変数kで識別され
る閉領域リストEk を構成する図面データの最終の図面
データを識別する番号Ik 以上か否か判断する。変数i
が番号Ik より小さい場合には、未だ接続関係の記号及
び要素記号が検出されていないので、まず、ステップ3
30で、esにedを代入、i番目の図面データE
k (i)をedに代入してステップ314に戻って、以
上の処理(ステップ314〜ステップ328)を繰り返
す。一方、変数iが番号Ik 以上の場合には、変数kで
識別される閉領域リストEk の全ての接続関係の記号及
び要素記号が検出されているので、ステップ334に進
む。
【0071】ステップ344では、変数kが全ての閉領
域リストの個数K以上であるか否か判断する。変数kが
個数Kより小さい場合には、全ての閉領域リストの図面
データについて、未だ接続関係の記号及び要素記号が検
出されていないので、ステップ304に戻って以上の処
理(ステップ304〜ステップ334)を繰り返す。一
方、変数kが個数K以上の場合には、全ての閉領域リス
トの図面データについて、接続関係の記号及び要素記号
が検出されているので、本処理を終了する。
【0072】このように、第1の記号及び第2の記号を
用いて、閉領域リストEk (i)を記号群Sk に変換す
ると、例えば、図16に示した上面図の閉領域L1〜L
25の内、閉領域18の記号群S18(j)は、次のよう
になる。 S18(j)=|>|>|>|>|>|>|T|.|>|
>|.|T このように、記号群Sk (j)を構成するデータは、第
1の記号と第2の記号とが交互に配列したものとなる。
【0073】なお、この段階で得られるデータの種類と
しては、複数の記号群Sk を構成する複数のデータ(第
1の記号及び第2の記号)、該記号群Sk の各々の要素
数(第1の記号の総数)、記号群群Sk の各々に対応す
る閉領域を含む閉領域の記号群Sk のIDである。な
お、記号群のIDは、Sk が対応する。
【0074】次にステップ400の詳細(図8参照)を
説明する。本処理は、前述したように、変換された複数
の記号群に輪郭線の特定の接続関係を表す特定記号Tを
有する記号群があるか否か判断し、該特性記号Tを有す
る記号群がある場合には、該特定記号Tに基づいて該記
号群を複数の記号群に分割するものである。
【0075】ここで、記号Tは、閉領域の輪郭線のある
要素と他の要素との接続関係が、ΔT=πの場合を表す
ものである。すなわち、図16に示すように、輪郭線が
どこにも繋がっておらず輪郭線か折り返している部分Z
1〜Z4を示すものである。このような部分Z1〜Z4
は、2個の領域が3次元的に滑らかに繋がっており、平
面図上で該2個の領域の間に線が記述されていなことが
原因として生ずるものである。そこで、該部分Z1〜Z
4のような接続関係を示す記号Tに基づいて、閉領域を
分割して、2個の領域の間に本来存在する輪郭線(分割
線)を新たに記入するものである。すなわち、まず、ス
テップ402で、初期設定を行う。すなわち、記号群を
識別する変数kを0にセットし、次のステップ403
で、変数kを1インクリメントする。ステップ404で
は、変数kで識別される記号群Sk の記号を識別するた
めの変数jを0にセットし、フラグfを−1にセットす
る。
【0076】ステップ406で、記号群Sk のj番目の
記号Sk (j)が前述したTであるか否か判断する。な
お、現段階は、変数jが0であるので、ステップ406
の判断は否定され、この場合には、ステップ408に進
む。
【0077】ここで、前述したように、記号群Sk は、
第1の記号から始まり、第1の記号と第2の記号とが交
互に配列してなるものであり、第2の記号は、記号群S
k の偶数番目に格納されている。従って、変数jは、0
から始まっているので、ステップ408で、第2の記号
を読み出すため、変数jを2インクリメントする。次の
ステップ410で、記号群Sk の総記号数Jk 以上であ
るか否か判断する。なお、現段階では、変数jは2であ
るので、該判断は否定され、ステップ406に戻り再度
記号群Sk (j)のj番目の記号が前述したTであるか
否か判断する。以上の処理(ステップ406〜ステップ
410)を繰り返すと、ステップ406の判断が肯定さ
れる場合があり、この場合は、ステップ412に進ん
で、フラグfが0以上であるか否か判断する。なお、現
段階では、フラグfは−1にセットされているので、該
判断が否定されて、ステップ414で、変数qを2にセ
ットし、ステップ416で、j番目からq個前の記号
が.であり、かつ、j番目からq個後の記号が.である
か否か判断する。該判断が肯定された場合には、ステッ
プ418で、qを2インクリメントし、ステップ420
で、jとqを加算した値が記号群Sk の総記号数Jk
上であるか否か判断する。該判断が否定された場合に
は、ステップ416に戻り、以上の処理(ステップ41
6〜ステップ420)を繰り返す。
【0078】一方、ステップ416の判断が否定された
場合には、ステップ422で、j番目からq個後の記号
k (j+q)が.であるか否か判断する。該判断が否
定された場合には、ステップ418に進む。一方、該判
断が肯定された場合には、例えば、図16に示したよう
に、閉領域L18の中で、輪郭線がどこにも繋がってお
らず輪郭線か折り返している部分Z1、Z2の2点のう
ち、分割したい領域(Z2→Z1の矢印で示した部分)
に入る始点Z2が検出されたことになるので、ステップ
424で、フラグfを1にセットして、ステップ408
に進む。
【0079】以後ステップ408、410、406を繰
り返すと、変数jで識別される記号群Sk (j)のデー
タがステップ422で検出された2番目のTの記号を識
別することになる。従って、ステップ406の判断が肯
定されて、ステップ412でフラグfが0以上か否か判
断されるが、ステップ424で、フラグfが1にセット
されているので、このT記号は分割したい領域の終点だ
ということが判断され、ステップ426に進む。
【0080】ステップ426では、分割列を抽出する。
すなわち、前述した閉領域L18の記号群S18(i)
は、 S18(j)=|>|>|>|>|>|>|T|.|>|
>|.|T であるので、2つの記号Tの間の記号群を新たな記号群
として抽出する。これはは、記号″T″を記号群″?|
?″で置換することによって得られる、ここで、?|?
の″|″は、記号TとTの間を直線ず結ぶことを示し、
記号″?″は、直線の前後の角度が不明であることを示
す。これにより、記号群S18(i)は、 S18(i)=|>|>|>|>|>|>|?|? となる。また、新たに生成された記号群S26(i)は、 S26(i)=|.|>|>|.|?|? となる。
【0081】そして、ステップ428で、フラグfを−
1にセットして、ステップ408に進む。以上の処理
(ステップ406〜428)を繰り返し、変数kで識別
される記号群Sk (j)の全ての第2の記号について記
号Tの検出及び分割列の抽出の処理を行った場合には、
ステップ410の判断が肯定され、ステップ430で、
変数kが全ての記号群数K以上であるか否か判断し、該
判断が否定された場合には、未だ全ての第2の記号につ
いて記号Tの検出及び分割列の抽出の処理を行っていな
い記号列があるので、ステップ404に戻って、以上の
処理(ステップ404〜ステップ430)の繰り返す。
一方、ステップ430の判断が肯定された場合には、全
ての第2の記号について記号Tの検出及び分割列の抽出
の処理を行っていない記号群がないので、本処理を終了
する。
【0082】このように、例えば、図16に示すよう
に、輪郭線がどこにも繋がっておらず輪郭線か折り返し
ている部分Z1、Z2が検出され、分割列が抽出される
ことにより、図18に示すように、部分Z1、Z2に分
割線Cが引かれることになり、図19に示すように、閉
領域L18が、閉領域L18と閉領域L26とに分割さ
れる。同様に、閉領域L22(図16参照)が、図19
に示すように、閉領域L22と閉領域L27とに分割さ
れる。
【0083】ここで、分割列の抽出について更に説明す
る。図24に示すように、本来的には異なる閉領域X及
び閉領域Rが輪郭線が記述されていないことにより同一
の閉領域となる場合がある。この場合、閉領域Xに対応
する記号群SX は、 SX =T|.|>|>|.|T となり、また、閉領域Rに対応する記号群SR は、 SR =T|>|>|>|>|>|>|T となる。この場合、閉領域とみなして抽出すべき閉領域
は、閉領域Rでなく閉領域Xである。ここで、閉領域X
に対応する記号群SX の記号Tの前後の記号が″.″で
あるのに対し、閉領域Rに対応する記号群SR の記号T
の前後の記号が″>″である。よって、記号Tの前後の
記号が″.″であるか否か判断する(ステップ416)
ことにより、抽出すべき閉領域を検出することかでき
る。このようにして、異なる閉領域が同一となった閉領
域から抽出すべき閉領域が検出され、前記した場合は、
記号群S26(i)が抽出され閉領域L26が抽出され
る。同様に、閉領域L27が抽出される。
【0084】なお、ステップ400の処理を行った後
は、記号群が分割されて新たに記号群が生成される場合
があるので、ステップ400の記号群Sk と区別するた
め、記号群Sk を、以下、記号群SSl と表し、該記号
群SSl の総個数をLとする。
【0085】次に、ステップ500の詳細(図9参照)
を説明する。本処理は、Aho−Corasikのアル
ゴリズムを用いて、前述したように、複数の記号群の各
々に基づいて閉領域の形状を検出すものである。すなわ
ち、ワークメモリ24には、第1の記号及び第2の記号
からなる複数(M個)の形状パターンが記憶されてい
る。そして、複数の記号群SSl の各々とM個の形状パ
ターンとのマッチングをとることにより、記号群SSl
の形状を検出するものである。
【0086】また、ワークメモリ24に記憶されている
M個の形状パターンの各々を識別する変数(形状パター
ンID)をm(1〜M)として、複数の記号群SSl
各々に対応する閉領域の形状パターンのIDを格納する
格納領域をGl とする。
【0087】まず、ステップ502で、初期設定を行
う。すなわち、変数lを1にセットする。ステップ50
4で、l番目の記号群SSl を2つ接続した記号群SS
l ||SSl をテキストデータとしてTXに格納し、ス
テップ506で、記号群SSl||SSl のデータを逆
に配列した記号群を逆のテキストデータとしてRTXに
格納する。
【0088】ステップ510で、テキストデータTXと
形状パターンとのマッチングを行う。該マッチングは、
記憶された形状パターンから有限オートマンを作り出
し、テキストデータTXを1記号ずつ読みながら状態を
遷移させていき、あるノードに辿り着いた時に、該形状
パターンにマッチしたと判定する。マッチングが成功し
た場合には、変数mに形状パターンID(1〜M)が代
入されているとする。該マッチングが成功した場合に
は、ステップ514で、格納領域Gl に変数mの番号を
格納して、ステップ522に進む。
【0089】一方、ステップ510の該マッチングが成
功しなかった場合には、ステップ512で、テキストデ
ータRTXと形状パターンとのマッチングを行う。該マ
ッチングが一致した場合には、ステップ514に進み、
該マッチングが成功しなかった場合には、記号群SSl
と一致する形状パターンがワークメモリ24に記憶され
ていなかったので、ステップ518で、形状パターンを
登録する。すなわち、該記号群SSl をワークメモリ2
4に記憶すると共に記憶した記号群SSl のID(GI
D)をM+1とする。そして、ステップ520で、総個
数Mを1インクリメントし、変数mにMを代入して、ス
テップ514に進み、この記号群の格納領域Gl にMを
代入する。
【0090】ステップ522では、変数lを1インクリ
メントし、ステップ524で、変数lが記号群SSl
総個数L以上か否か判断する。該判断が否定された場合
には、未だ形状パターンとのマッチングを行っていない
記号群SSl があるので、ステップ504に戻って以上
の処理(ステップ504〜ステップ524)を行う。一
方、変数lが記号群SSl の総個数L以上であると判断
された場合には、形状パターンとのマッチングを行って
いない記号群SSl がないので、本処理を終了する。
【0091】このように、記号群が予め記憶された複数
の形状パターンの全てとマッチしていた場合、該記号群
を新たに形状パターンとして登録することから、記憶さ
れた形状パターンとマッチしない新たな記号群にも対処
することができ、マッチングを確実に行うことができ
る。
【0092】次に、ステップ600の詳細(図10)を
説明する。本処理は、閉領域リストEk に基づいて閉領
域の面積を計算するものである。
【0093】まず、ステップ602で、初期設定を行
う。すなわち、閉領域リストEk を識別する変数kを0
にセットし、変数kで識別される閉領域リストEk の1
つの要素のデータを識別する変数iを1にセットする。
ステップ604で、変数kを1インクリメントし、ステ
ップ606で、格納領域aを0にセットする。
【0094】ステップ608で、面積計算を行う。すな
わち、変数kで識別される閉領域リストEk のi番目の
要素のデータに基づいて、該要素の線分と該線分の両端
点V s (始点)、Ve (終点)と原点とを結んだ3角形
の面積を計算し、得られた面積を格納領域aに格納す
る。
【0095】ステップ610で、符号判定を行う。すな
わち、i番目の要素の線分の両端点である始点Vs 及び
終点Ve と原点とを結んだときの角度をそれぞれθs
θeとし、θe −θs が正の値か否か、すなわち、始点
角θs が終点角θe より小さいか否か判断する。θe
θs が正の値である場合には、ステップ614に進み、
θe −θs が負の値である場合には、ステップ612
で、aに−1をかけた値をaとして、ステップ614に
進む。ステップ614で、k番目の閉領域の面積Ak
aの値をたした値をk番目の閉領域の面積Ak とする。
【0096】ステップ616で、変数iを1インクリメ
ントし、ステップ618で、変数iがk番目の閉領域リ
ストEk (i)の輪郭線を構成する総要素数Ik 以上で
あるか否か判断し、変数iが総要素数Ik より小さい場
合には、k番目の閉領域の面積の計算が終わっていない
ので、ステップ606に戻って以上の処理(ステップ6
06〜ステップ618)を繰り返す。一方、変数iが総
要素数Ik 以上の場合には、k番目の閉領域の面積の計
算が終わっているので、ステップ620で、変数kが閉
領域リストの総個数K以上であるか否か判断する。変数
kが総個数Kより小さい場合には、未だ面積計算が終わ
っていない閉領域があるので、ステップ604に戻って
以上の処理(ステップ604〜ステップ620)を繰り
返す。一方、変数kが総個数K以上の場合には、全ての
閉領域について面積計算が終わっているので、本処理を
終了する。
【0097】このように、要素の線分と該線分の両端点
(始点及び終点)と原点とを結んだ3角形の面積を計算
し、始点角が終点角より小さいか否か判断の符号判定を
行って、得られた面積を始点角が終点角より大きい場合
に負の値とし、また、始点角が終点角より小さい場合に
得られた面積を正の値として要素全てに対して得られた
面積を加算するので、閉領域の面積を求めることができ
る。
【0098】次に、ステップ700の詳細(図11参
照)を説明する。本処理は、記号群から同一形状の閉領
域の記号群を類別し、更に、同一形状の閉領域の記号群
から各々同一面積の閉領域の記号群を類別(閉領域の予
備類別)するものである。
【0099】このように、同一の記号群からなる記号群
を更に閉領域が同一面積である記号群に類別するは、同
一の記号群からなる記号群であっても、異なる形状の場
合があるからである。すなわち、例えば、閉領域が円の
場合は、記号群が).).).).で構成され、また、
4角形の場合は、記号群が|>|>|>|>で構成され
るが、それぞれは大きさによる差が表現されていないの
で、このままでは、分類に誤差が生じているからであ
り、また、同一の記号群であっても、面積により区別で
きれば、分類に誤差がなくなるからである。
【0100】まず、ステップ702で、初期設定を行
う。すなわち、格納領域T(t)を識別する変数t、格
納領域U(u)を識別する変数u及び記号群SSl を識
別する変数lをともに0にセットする。
【0101】ステップ704で、変数lを1インクリメ
ントし、ステップ706で、l番目の記号群SS
l (j)がT(t)に格納されていないか否か判断し、
該判断が否定された場合には、l番目の記号列SS
l (j)が既に分類されているので、ステップ704に
戻って、ステップ704及びステップ706を行う。一
方、ステップ706の判断が肯定された場合には、l番
目の記号群l番目の記号列SSl(j)が分類されてい
ないので、ステップ708で、記号群SSl+1 〜SSL
の中でl番目の記号群SSl と同じ形状(同じ記号列)
を有する記号群を検出する。なお、記号群SSl と同じ
形状(同じ記号列)を有する記号群の検出は、記号群S
l に対応する格納領域Gl に格納された形状パターン
のIDと同一のIDを格納しているものを検出すること
により行う。
【0102】ステップ710で、記号群SSl と同じ形
状(同じ記号列)を有する記号群が検出されたか否か判
断し、検出された場合には、ステップ712で、変数t
を1インクリメントし、ステップ714で、検出された
全ての記号群をT(t)に格納して、ステップ720に
進む。一方、検出されなかった場合には、ステップ71
6で、変数tを1インクリメントし、ステップ718
で、記号群SSl (j)のみをT(t)に格納して、ス
テップ720に進む。
【0103】ステップ720では、変数lが記号群の総
個数L以上であるか否か判断し、該判断が否定された場
合には、未だ分類されていない記号群があるので、ステ
ップ704に戻って、以上の処理(ステップ704〜ス
テップ720)を繰り返す。一方、ステップ720の判
断が肯定された場合には、全ての記号群が分類されたこ
とになる。以上の処理(ステップ704〜ステップ72
0)の結果、記号群SS1 〜SSL は、同一形状である
閉領域の記号群のグループ及び各々の異なる閉領域の記
号群のグループに分類されたことになる。一方、同一形
状である閉領域の記号群のグループは、同一の形状のグ
ループであるが、各々の異な面積のものがあるので、以
下、さらに、同一面積の閉領域の記号群のグループと各
々の異なる面積の閉領域の記号群のグループとに分類す
る。
【0104】すなわち、ステップ722で、再度変数t
を0にセットし、ステップ724で、変数tを1インク
リメントする。ステップ726で、T(t)に格納され
た記号群を面積の大きい順にソートして、ステップ72
8(図12参照)に進む。
【0105】ステップ728では、T(t)に格納され
た記号群に同じ面積の記号群があるか否か判断し、該判
断が肯定された場合には、ステップ730で、格納領域
U(u)を識別する変数uを1インクリメントし、ステ
ップ732で、同じ面積の記号群を格納領域U(u)に
格納する。これにより、同一形状でかつ同一の面積の記
号群が1つの格納領域U(u)に格納される。
【0106】ステップ734で、T(t)に格納された
記号群にあまりがないか否か判断し、該判断が否定され
た場合には、ステップ728に戻り、同じ面積の記号群
があるか否か判断し、ある場合には、ステップ730及
びステップ732を行って、同じ面積の記号群を格納領
域U(u)に格納する。
【0107】一方、ステップ728の判断が否定された
場合には、ステップ736で、変数uを1インクリメン
トし、ステップ738で、記号群をU(u)に格納す
る。たこれにより、同一形状であるが、異なる面積の記
号群を1つの1つの格納領域U(u)に格納される。
【0108】ステップ740で、変数tが格納領域数T
(t)の総個数T以上であるか否か判断し、該判断が否
定された場合には、未だ、予備類別されていない格納領
域T(t)があるので、ステップ724に戻って、以上
の処理(ステップ724〜ステップ740)を繰り返
す。一方、ステップ740の判断が否定された場合に
は、全ての格納領域T(t)に格納された記号群につい
て予備類別がされているので、本処理を終了する。
【0109】以上の処理の結果、記号群SS1 〜SSL
は、同一形状でかつ同一面積である、という同値関係で
類別された複数のグループ(第1のグループ)に分けら
れる。このとき、他のどれかの閉領域と、同一形状でか
つ同一面積という同値関係を満たさない閉領域は、単一
の閉領域で1つのグループ(第2のグループ)をなす。
図19においては、閉領域L3、L5、L11、L1
5;閉領域L1、L7、L9、L13;閉領域L17、
L19、L21、L23;閉領域L20、L24;閉領
域L26、L27;閉領域L18、L22;閉領域L2
5がそれぞれ異なるグループを形成する。特に閉領域L
25は、それと同一形状でかつ同一面積という関係で同
値となる閉領域が他にないので、単一で1つのグループ
(第2のグループ)をなしている。
【0110】次に、ステップ800の詳細(図13参
照)を説明する。本処理は、第1のグループに属する記
号群から更に、該グループに属する記号群に対応する閉
領域が同一形状でかつ同一面積の閉領域を子供として持
つ閉領域の記号群を類別するものである。
【0111】まず、ステップ802で、初期設定を行
う。格納領域U(u)を識別する変数u、該変数uで識
別される格納領域U(u)に格納された記号群を識別す
る変数Pを0にセットし、次のステップ804で、変数
uを1インクリメントする。
【0112】ステップ806で、格納領域U(u)は、
複数の記号群を持っているか否か判断する。ここで、第
1のグループに属する記号群は格納領域U(u)に複数
格納されているので、該判断が否定される場合は、格納
領域U(u)に第1のグループに以外のグループに属す
るものなので、ステップ820に進む。
【0113】一方、ステップ806の判断が肯定される
場合は、第1のグループ又は第2のグループに属するも
のなので、この場合には、ステップ808で、格納領域
U(u)に複数格納されている記号群の各々が同一面積
の閉領域の記号群か否か判断し、該判断が否定された場
合には、第2のグループに属するものなので、ステップ
820に進む。一方、ステップ808の判断が肯定され
た場合は、格納領域U(u)には、第1のグループに属
する記号群が格納されているので、ステップ810で、
該複数の記号群の各々を識別する変数pを1インクリメ
ントし、ステップ812で、P番目の記号群のIDをG
pに格納する。ステップ812で、変数pが該格納領域
U(u)に格納された総記号群個数P以上であるか否か
判断し、該判断が否定された場合には、ステップ810
に戻って以上の処理(ステップ810〜ステップ81
4)を繰り返す。これにより、該格納領域U(u)に格
納された全ての記号群のIDがGp〜GPに格納され
る。
【0114】ステップ816で、Gp〜GPに格納され
た記号群のIDにより識別される記号群を親として持つ
記号があるか否か判断することにより、Gp〜GPに格
納された記号群のIDにより識別される記号群が子供を
持つか否か判断する。該ステップ814の判断が否定さ
れた場合には、該記号群に対応する閉領域の全てが他の
閉領域を包含していない場合であり、ステップ820に
進む。
【0115】一方、ステップ816の判断が肯定された
場合には、ステップ818で、子供が全て第1のグルー
プに属するか否か判断する。該判断が肯定された場合に
は、ステップ820に進む。
【0116】以上により、ステップ820に進む場合と
しては、格納領域U(u)に第2のグループに属する記
号群が格納されている場合、格納領域U(u)に第1の
グループに属しかつ子供に対応する閉領域が全て第1の
グループに属する場合である。そして、ステップ820
で、変数yを1インクリメントし、ステップ822で、
これらの記号群のそれぞれを別々に格納領域Y(y)に
格納して、ステップ828に進む。これにより、第2の
グループに属する記号群、第1のグループに属しかつ子
供に対応する閉領域が全て第1のグループに属する記号
群が、それぞれ別々に格納領域Y(y)に格納されて、
分類される。
【0117】一方、ステップ818の判断が否定された
場合には、ステップ824に進む。ここで、ステップ8
16の判断が否定される場合しては、第1のグループに
属する記号群の各々が全て子供を有し、かつ、該子供の
各々が全て第1のグループに属さない場合であるので、
ステップ824で、変数yを1インクリメントし、ステ
ップ826で、格納領域Y(y)のy番目の格納位置に
格納して、ステップ828に進む。
【0118】ステップ828で、変数uが総個数U以上
であるか否か判断し、該判断が否定された場合には、全
ての格納領域U(u)に格納されてた記号群が本類別さ
れていないので、ステップ804に戻って以上の処理
(ステップ804〜ステップ828)を繰り返す。一
方、ステップ828の判断が肯定された場合は、全ての
格納領域U(u)に格納されてた記号群が本類別された
ので、本処理を終了する。
【0119】以上の処理の結果、記号群が、第1のグル
ープに属する記号群の集合から第1のグループに属する
閉領域を子供として持つ閉領域の記号群を類別したこと
になる。例えば、図20に示すように、閉領域F4は、
子供を持たない同一形状の同一面積のグループ、閉領域
F5は、閉領域F4を子供にもつグループ、閉領域F3
は、閉領域F5を子供にもつグループである。
【0120】次にステップ900の詳細(図14参照)
を説明する。まず、ステップ904で、切断面が与えら
れている閉領域の3次元化されたものの配置を行い、ス
テップ906で、切断面が与えられていない領域につい
て、上記のグループ化に基づいて同一グループと認識さ
れたものを、同じように3次元化したものの配置を行
う、そして、ステップ908で、前記のソリッドと後述
するソリッドとを集合演算合成する。これにより、図2
3に示すようにソリッドモデルが合成されることにな
る。すなわち、本実施例では、断面図によって断面情報
に基づいてソリッドモデルを合成する細に、全ての閉領
域の閉領域リストを記号化し、一定の集合に分類してい
るので、断面図によって断面情報が与えられていない部
分についても類推によってソリッド化する場合と比較す
ると、全ての閉領域の形状特徴が得られるので、精度の
よいソリッドモデルを合成することができる。また、全
ての閉領域の閉領域リストを記号化し、全ての閉領域の
形状特徴が得られるので、例えば、図23に示すように
異なる方向からでも認識することの可能なソリッドモデ
ルが合成される。
【0121】以上説明した本実施例によれば、閉領域リ
ストを閉領域の輪郭線を構成する要素を表す記号及び該
要素の接続関係を表す記号の集合である複数の記号群に
変換し、変換された複数の記号群において、パターン・
マッチングの技法を使用して、全ての閉領域を、「輪郭
形状が等しい」という同値関係で複数のグループ(集
合)に類別し、次に、その各々の集合内で、「面積が等
しい」という同値関係で類別することにより、分類され
た集合が得られる。そうして、分類された集合に基づい
て閉領域を立体化するため、同一の集合に属する記号群
に対応する閉領域は、個々に図面データから数学的変換
により立体化するのでなく、同一の集合に属する1つの
記号群を立体化すれば、該集合に属する他の記号群が該
立体化に基づいて立体化することができるため、ソリッ
ドモデルの合成を効率よく行うことができる。
【0122】また、前述した実施例では、記憶された形
状パターンと記号群の各々とのマッチングを行うことか
ら、閉領域の形状を確実に特定することができ、精度の
よいソリッドモデル合成することができる。
【0123】また、記憶された形状パターンと一致しな
い記号群を新たに形状パターンとしてワークメモリ24
に記憶することから、記憶された形状パターンとは異な
る新たな形状の閉領域の形状を特定でき、精度のよいソ
リッドモデル合成することができる。
【0124】また、変換された複数の記号群に前記要素
の特定の接続関係を表す特定記号を有する記号群がある
場合には、該特定記号に基づいて該記号群を複数の記号
群に分割することから、閉領域と記号群とを確実に対応
させることができ、精度のよいソリッドモデルを合成す
ることができる。
【0125】以上説明した実施例では、第1の記号とし
ては、直線、左回りの円弧及び右回りの円弧を表す記号
を用いているが、これに限定するものでなく、例えば、
楕円を表す記号を用いるようにしてもよい。
【0126】例えば、楕円を表す記号としては、長径側
から短径側に反時計回りの記号、長径側から短径側に時
計回りの記号、短径側から長径側に反時計回りの記号、
短径側から長径側に時計回りの記号を用いてもよい。
【0127】また、前述した実施例では、第2の記号し
ては、接続点の前後の輪郭線の接線の角度の変化を90
°を境に記号化しているが、これに限定するものでな
く、例えば、45°等を境に記号化するようにしてもよ
い。
【0128】
【発明の効果】以上説明したように本発明は、分類され
た図面データ群を閉領域の輪郭線を構成する要素を表す
第1の記号及び該要素の接続関係を表す第2の記号の集
合である複数の記号群に変換し、変換された複数の記号
群を前記閉領域の種類に応じて類別し、類別された記号
群に基づいて前記検出された閉領域を立体化しており、
複数の閉領域の各々の図面データ群が記号群に変換され
て閉領域を立体化するため、閉領域の形状精度よく立体
化でき、また、類別された記号群に基づいて前記検出さ
れた閉領域を立体化すため、個々に図面データから数学
的変換により立体化するのでなく、類別され記号群の1
つの記号群を立体化すれば、類別された記号群の立体化
された記号群以外の記号群を該立体化に基づいて立体化
することができるため、ソリッドモデルの合成を効率よ
く行うことができる、という効果を有する。
【図面の簡単な説明】
【図1】請求項1ないし請求項7記載の発明の構成要件
を示した図である。
【図2】本実施例の構成を示したブロック図である。
【図3】本実施例の制御のメインルーチンを示したフロ
ーチャートである。
【図4】本実施例の閉領域リストの作成のためのサブル
ーチンの一部を示したフローチャートである。
【図5】本実施例の閉領域リストの作成のためのサブル
ーチンの残りを示したフローチャートである。
【図6】本実施例の閉領域リストを木構造に変形するた
めのフローチャートである。
【図7】本実施例の記号群変換処理のサブルーチンを示
したフローチャートである。
【図8】本実施例の記号群の分割処理のサブルーチンを
示したフローチャートである。
【図9】本実施例の記号群のマッチング処理のサブルー
チンを示したフローチャートである。
【図10】本実施例の属性計算処理のサブルーチンを示
したフローチャートである。
【図11】本実施例の閉領域の予備分類処理のサブルー
チンの1部を示したフローチャートである。
【図12】本実施例の閉領域の予備分類処理のサブルー
チンの残りを示したフローチャートである。
【図13】本実施例の閉領域の細分類のサブルーチンを
示したフローチャートである。
【図14】本実施例のソリッドモデルの合成のためのサ
ブルーチンを示したフローチャートである。
【図15】入力した工学図面である。
【図16】上面図データから検出した閉領域を示した図
である。
【図17】検出した閉領域の木構造を示した図である。
【図18】記号群を分割して分割線が生成された上面図
である。
【図19】閉領域の予備分類により分類された閉領域を
示した上面図である。
【図20】閉領域の1分類により分類された閉領域を示
した上面図である。
【図21】線分の始点、終点、始点角、終点角、順方向
フラグ、逆方向フラグを示す図である。
【図22】1つの閉領域を構成する線分のリストと、そ
れに対応する閉領域を示す図である。
【図23】合成されたソリッドモデルを示した図であ
る。
【図24】2つの異なる閉領域が同一の閉領域と記述さ
れた図である。
【符号の説明】
20 CPU 22 システムメモリ 24 ワークメモリ 26 入力装置 28 表示装置

Claims (18)

    (57)【特許請求の範囲】
  1. 【請求項1】 入力した3次元形状を表現した図面デー
    タに基づいて輪郭線で構成される複数の閉領域を検出す
    る閉領域検出手段と、 前記検出された閉領域に基づいて前記図面データを前記
    検出された閉領域毎の図面データの集合である複数の図
    面データ群に分類する図面データ群分類手段と、 前記複数の図面データ群を閉領域の輪郭線を構成する要
    素を表す第1の記号及び該要素の接続関係を表す第2の
    記号の集合である複数の記号群に変換する記号群変換手
    段と、 前記検出された閉領域間の位置情報を検出する位置情報
    検出手段と、 前記分類された図面データ群に基づいて前記複数の閉領
    域の各々の属性を検出する属性検出手段と、 前記第1の記号及び前記第2の記号、前記位置情報及び
    前記属性の少なくとも1つに基づいて前記変換された複
    数の記号群を前記閉領域の種類に応じて類別する記号群
    類別手段と、 前記類別された記号群に基づいて前記検出された閉領域
    を立体化する立体化手段と、 前記検出された位置情報に基づいて前記立体化された閉
    領域を組み合わせることにより前記3次元形状のソリッ
    ドモデルを合成するソリッドモデル合成手段と、 を備えたソリッドモデル合成装置。
  2. 【請求項2】 前記記号群類別手段は、前記第1の記号
    及び前記第2の記号に基づいて前記変換された複数の記
    号群から各々同一の記号群を類別することを特徴とする
    請求項1記載のソリッドモデル合成装置。
  3. 【請求項3】 前記記号群類別手段は、前記第1の記号
    及び前記第2の記号と前記属性とに基づいて前記類別さ
    れた各々同一の記号群から各々同一の属性の閉領域の記
    号群を類別することを特徴とする請求項2記載のソリッ
    ドモデル合成装置。
  4. 【請求項4】 前記記号群類別手段は、前記第1の記号
    及び前記第2の記号、前記位置情報及び前記属性に基づ
    いて前記類別された各々同一の属性の閉領域の記号群か
    ら各々同一の記号群でかつ各々同一の属性の閉領域を包
    含する閉領域に対応する記号群を類別ことを特徴とする
    請求項3記載のソリッドモデル合成装置。
  5. 【請求項5】 前記記号群類別手段は、前記第1の記号
    及び第2の記号で構成された複数の形状パターンを予め
    記憶する記憶手段に記憶された該形状パターンと前記複
    数の記号群の各々とに基づいて、前記変換された複数の
    記号群から各々同一の記号群を類別することを特徴とす
    る請求項2ないし請求項4のいずれか1項に記載のソリ
    ッドモデル合成装置。
  6. 【請求項6】 前記記号群類別手段は、前記記憶された
    形状パターンと記複数の記号群の各々とのマッチングを
    行うことにより、前記変換された複数の記号群から各々
    同一の記号群を類別することを特徴とする請求項5記載
    のソリッドモデル合成装置。
  7. 【請求項7】 前記記号群分類手段は、前記マッチング
    を行った後、前記記憶された形状パターンと一致しない
    記号群を新たに形状パターンとして前記記憶手段に記憶
    することを特徴とする請求項6記載のソリッドモデル合
    成装置。
  8. 【請求項8】 前記属性検出手段は、前記属性として、
    前記複数の閉領域の各々の面積を検出することを特徴と
    する請求項1ないし請求項7記載のソリッドモデル合成
    装置。
  9. 【請求項9】 前記記号群変換手段は、 前記複数の図面データ群の各々の図面データ群の各々を
    閉領域の輪郭線を構成する要素を表す第1の記号及び該
    要素の接続関係を表す第2の記号に変換することにより
    前記複数の図面データ群を複数の記号群に変換し、前記
    変換された複数の記号群に前記要素の特定の接続関係を
    表す特定記号を有する記号群があるか否か判断し、該特
    定記号を有する記号群がある場合には、該特定記号に基
    づいて該記号群を複数の記号群に分割することを特徴と
    する請求項1ないし請求項8のいずれか1項に記載のソ
    リッドモデル合成装置。
  10. 【請求項10】 入力した3次元形状を表現した図面デ
    ータに基づいて輪郭線で構成される複数の閉領域を検出
    し、 前記検出された閉領域に基づいて前記図面データを前記
    検出された閉領域毎の図面データの集合である複数の図
    面データ群に分類し、 前記複数の図面データ群を閉領域の輪郭線を構成する要
    素を表す第1の記号及び該要素の接続関係を表す第2の
    記号の集合である複数の記号群に変換し、 前記検出された閉領域間の位置情報を検出し、 前記分類された図面データ群に基づいて前記複数の閉領
    域の各々の属性を検出し、 前記第1の記号及び前記第2の記号、前記位置情報及び
    前記属性の少なくとも1つに基づいて前記変換された複
    数の記号群を前記閉領域の種類に応じて類別し、 前記類別された記号群に基づいて前記検出された閉領域
    を立体化し、 前記検出された位置情報に基づいて前記立体化された閉
    領域を組み合わせることにより前記3次元形状のソリッ
    ドモデルを合成するソリッドモデル合成方法。
  11. 【請求項11】 前記第1の記号及び前記第2の記号に
    基づいて前記変換された複数の記号群から各々同一の記
    号群を類別することを特徴とする請求項10記載のソリ
    ッドモデル合成方法。
  12. 【請求項12】 前記第1の記号及び前記第2の記号と
    前記属性とに基づいて前記類別された各々同一の記号群
    から各々同一の属性の閉領域の記号群を類別することを
    特徴とする請求項11記載のソリッドモデル合成方法。
  13. 【請求項13】 前記第1の記号及び前記第2の記号、
    前記位置情報及び前記属性に基づいて前記類別された各
    々同一の属性の閉領域の記号群から各々同一の記号群で
    かつ各々同一の属性の閉領域を包含する閉領域の記号群
    を類別するすることを特徴とする請求項12記載のソリ
    ッドモデル合成方法。
  14. 【請求項14】 前記第1の記号及び第2の記号で構成
    された複数の形状パターンを予め記憶し、該記憶された
    該形状パターンと前記複数の記号群の各々とに基づい
    て、前記変換された複数の記号群から各々同一の記号群
    を類別することを特徴とする請求項11ないし請求項1
    3のいずれか1項に記載のソリッドモデル合成方法。
  15. 【請求項15】 前記記憶された形状パターンと記複数
    の記号群の各々とのマッチングを行うことにより、前記
    変換された複数の記号群から各々同一の記号群を類別す
    ることを特徴とする請求項14記載のソリッドモデル合
    成方法。
  16. 【請求項16】 前記マッチングを行った後、前記記憶
    された形状パターンと一致しない記号群を新たに形状パ
    ターンとして記憶することを特徴とする請求項15記載
    のソリッドモデル合成方法。
  17. 【請求項17】 前記属性として、前記複数の閉領域の
    各々の面積を検出することを特徴とする請求項10ない
    し請求項16記載のソリッドモデル合成方法。
  18. 【請求項18】 前記複数の図面データ群の各々の図面
    データ群の各々を閉領域の輪郭線を構成する要素を表す
    第1の記号及び該要素の接続関係を表す第2の記号に変
    換することにより前記複数の図面データ群を複数の記号
    群に変換し、前記変換された複数の記号群に前記要素の
    特定の接続関係を表す特定記号を有する記号群があるか
    否か判断し、該特定記号を有する記号群がある場合に
    は、該特定記号に基づいて該記号群を複数の記号群に分
    割することを特徴とする請求項10ないし請求項17の
    いずれか1項に記載のソリッドモデル合成方法。
JP6233695A 1994-09-28 1994-09-28 ソリッドモデル合成装置及びソリッドモデル合成方法 Expired - Lifetime JP2701003B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP6233695A JP2701003B2 (ja) 1994-09-28 1994-09-28 ソリッドモデル合成装置及びソリッドモデル合成方法
US08/534,418 US5684725A (en) 1994-09-28 1995-09-27 Solid model synthesis system and solid model synthesis method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6233695A JP2701003B2 (ja) 1994-09-28 1994-09-28 ソリッドモデル合成装置及びソリッドモデル合成方法

Publications (2)

Publication Number Publication Date
JPH0896164A JPH0896164A (ja) 1996-04-12
JP2701003B2 true JP2701003B2 (ja) 1998-01-21

Family

ID=16959106

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6233695A Expired - Lifetime JP2701003B2 (ja) 1994-09-28 1994-09-28 ソリッドモデル合成装置及びソリッドモデル合成方法

Country Status (2)

Country Link
US (1) US5684725A (ja)
JP (1) JP2701003B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3184785B2 (ja) * 1997-07-23 2001-07-09 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 三次元形状モデル送信方法及び装置、三次元形状モデル圧縮方法及び装置、三次元形状モデル表示方法及び装置
JP3854033B2 (ja) * 2000-03-31 2006-12-06 株式会社東芝 機構シミュレーション装置及び機構シミュレーションプログラム
US6606528B1 (en) 2000-06-21 2003-08-12 The Boeing Company Method for creating computer-aided design (CAD) solid models from numerically controlled (NC) machine instructions
US20040054509A1 (en) * 2002-09-12 2004-03-18 Breit Stephen R. System and method for preparing a solid model for meshing
JP5103955B2 (ja) * 2007-03-09 2012-12-19 富士通株式会社 画像検索方法、装置およびプログラム
JP6810349B2 (ja) * 2016-12-20 2021-01-06 富士通株式会社 画像生成プログラム、画像生成方法および画像生成装置
EP3578932A1 (de) * 2018-06-07 2019-12-11 Bizerba SE & Co. KG Wäge-fördervorrichtung

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5467293A (en) * 1993-07-01 1995-11-14 Electronic Data Systems Corporation System and method for associative solid sectioning during drafting of geometric models

Also Published As

Publication number Publication date
JPH0896164A (ja) 1996-04-12
US5684725A (en) 1997-11-04

Similar Documents

Publication Publication Date Title
Edelsbrunner et al. Morse-Smale complexes for piecewise linear 3-manifolds
CN103400372B (zh) 一种基于Reeb图描述的三维拓扑信息提取方法
US5668939A (en) Method and apparatus for rendering a solid three dimensional model from two dimensional input information including closed region recognizing and three dimensional rendering
EP0637001A2 (en) Solid model synthesizer and synthesizing method
Tanase et al. Polygon decomposition based on the straight line skeleton
JP2701003B2 (ja) ソリッドモデル合成装置及びソリッドモデル合成方法
JP4973447B2 (ja) 差異強調プログラム、差異強調処理方法及び差異強調処理装置
CN112346409B (zh) 一种快速判断点云包含问题的方法
US5771045A (en) Method for polygon decomposition
JP2785776B2 (ja) 図形整形装置
JP2660490B2 (ja) 図面候補線分抽出装置、図面候補線分抽出方法、ソリッド・モデル合成装置及びソリッド・モデル合成方法
JP2010211629A (ja) 情報処理装置及び情報処理方法
JP6833150B1 (ja) 加工プログラム検索装置および加工プログラム検索方法
JP2006277718A (ja) 高速画像探索方法
JP3185342B2 (ja) 図形パターンデータ処理方法
JP3635734B2 (ja) 三次元多関節構造体形状生成方法
Yazgan et al. A Partition Based Method for Spectrum-Preserving Mesh Simplification
JP2000222449A (ja) 図形処理方法
JP2644812B2 (ja) 記号認識方法
Edelsbrunner et al. Morse complexes for piecewise linear 3-manifolds
JPH01193973A (ja) 3次元形状の干渉チェック方法
JPH03271871A (ja) 線分データ処理方式
JP2002007506A (ja) マイナスサイジング処理方法とコンピュータに実行させるためのプログラムを格納したコンピュータが読み取り可能な記憶媒体
JPH07262407A (ja) 2次元図面から3次元データを生成する方法
Kyriazis et al. Identifying features by slicing point clouds