検証対象の三次元モデルが有する平面に設けられ、前記平面に穴の入り口または突起のベースを形成する稜線の形状を判断する形状判断部と、前記三次元モデルの中から、前記形状判断部により判断された前記稜線の形状の少なくとも一部に一致する稜線を有する図形を抽出する抽出部と、抽出した図形の種別に応じて前記平面の法線ベクトルの方向と比較する比較用ベクトルを作成する作成部と、前記法線ベクトルと前記比較用ベクトルの角度に応じて、前記抽出部が抽出した図形が穴を形成する図形か突起を形成する図形かを判断する判断部と、を有することを特徴とする設計支援装置。前記形状判断部が、前記稜線が形成する図形が円であると判断した場合、前記作成部は、前記抽出部が抽出した図形が円筒か円錐かを判断し、円筒である場合は、前記円の中心から前記平面に設けられた稜線に対向する対向稜線が形成する円の中心への前記比較用ベクトルを作成することを特徴とする請求項1記載の設計支援装置。前記抽出部は、前記三次元モデルの中から、前記対向稜線の形状に一致する、前記平面に設けられた稜線以外の稜線を有する図形または平面を抽出することを特徴とする請求項2記載の設計支援装置。前記判断部は、前記抽出部が前記平面に設けられた稜線以外の稜線を有する図形を抽出した場合、抽出した前記図形が穴を形成する図形か突起を形成する図形かを判断することを特徴とする請求項3記載の設計支援装置。前記形状判断部が、前記稜線が形成する図形が円であると判断した場合、前記作成部は、前記抽出部が抽出した図形が円筒か円錐かを判断し、円錐である場合は、前記円の中心から前記円錐の頂点への前記比較用ベクトルを作成することを特徴とする請求項1記載の設計支援装置。前記判断部は、前記法線ベクトルと前記比較用ベクトルの角度が0°である場合は、前記抽出部が抽出した図形が突起を形成する面を含む図形であると判断することを特徴とする請求項1ないし5のいずれかに記載の設計支援装置。前記判断部は、前記法線ベクトルと前記比較用ベクトルの角度が180°である場合は、前記抽出部が抽出した図形が穴を形成する面を含む図形であると判断することを特徴とする請求項1ないし6のいずれかに記載の設計支援装置。前記形状判断部が、前記平面に設けられた稜線が形成する図形が円弧と直線を含むと判断した場合、前記抽出部は、前記円弧および前記直線それぞれに一致する稜線を有する図形を抽出することを特徴とする請求項1記載の設計支援装置。前記作成部は、前記抽出部が抽出した図形で共通する稜線を抽出し、抽出した前記稜線を、前記図形が形成する穴または突起の深さ方向の稜線であると特定することを特徴とする請求項8記載の設計支援装置。前記抽出部は、当該抽出部が抽出した図形の、前記平面と対向する稜線の形状に一致する対向平面を抽出し、前記作成部は、前記平面に設けられた稜線の任意の点から、前記対向平面に設けられた稜線の任意の点に向かう前記比較用ベクトルを作成することを特徴とする請求項8または9に記載の設計支援装置。前記判断部は、前記法線ベクトルと前記比較用ベクトルの角度の絶対値が90°未満である場合は、前記抽出部が抽出した図形が突起を形成する面を含む図形であると判断することを特徴とする請求項8ないし10のいずれかに記載の設計支援装置。前記判断部は、前記法線ベクトルと前記比較用ベクトルの角度の絶対値が90°以上である場合は、前記抽出部が抽出した図形が穴を形成する面を含む図形であると判断することを特徴とする請求項8ないし10のいずれかに記載の設計支援装置。前記三次元モデルの平面を形成する稜線を、前記稜線が形成する図形の形状に応じて複数のグループに分別する分別部と、前記複数のグループのうち、前記稜線で囲まれる図形の面積が最大以外のグループを、前記平面で穴または突起を形成する稜線のグループであると判断するグループ判断部と、をさらに有することを特徴とする請求項1ないし12のいずれかに記載の設計支援装置。コンピュータが、検証対象の三次元モデルが有する平面に設けられ、前記平面に穴の入り口または突起のベースを形成する稜線の形状を判断し、前記三次元モデルの中から、判断された前記稜線の形状の少なくとも一部に一致する稜線を有する図形を抽出し、抽出した図形の種別に応じて前記平面の法線ベクトルの方向と比較する比較用ベクトルを作成し、前記法線ベクトルと前記比較用ベクトルの角度に応じて、前記抽出した図形が穴を形成する図形か突起を形成する図形かを判断する、ことを特徴とする設計支援方法。コンピュータに、検証対象の三次元モデルが有する平面に設けられ、前記平面に穴の入り口または突起のベースを形成する稜線の形状を判断し、前記三次元モデルの中から、判断された前記稜線の形状の少なくとも一部に一致する稜線を有する図形を抽出し、抽出した図形の種別に応じて前記平面の法線ベクトルの方向と比較する比較用ベクトルを作成し、前記法線ベクトルと前記比較用ベクトルの角度に応じて、前記抽出した図形が穴を形成する図形か突起を形成する図形かを判断する、処理を実行させることを特徴とする設計支援プログラム。例えば、他のCADシステムで使用する際に穴属性情報が付加された穴形状情報を変換すると、穴属性情報がうまく変換できずに消失したり、穴形状情報と穴属性情報の整合がとれなくなったりする場合がある。この場合、穴の属性が特定できなくなるという問題があった。また、穴属性情報の消失を抑制するためCADシステム毎に穴属性情報を作成すると、メインテナンス費用がかかるという問題があった。本発明はこのような点に鑑みてなされたものであり、三次元モデルが有する図形が穴か突起かを特定する設計支援装置、設計支援方法および設計支援プログラムを提供することを目的とする。上記目的を達成するために、開示の設計支援装置が提供される。この設計支援装置は、形状判断部と、抽出部と、作成部と、判断部とを有している。形状判断部は、検証対象の三次元モデルが有する平面に設けられ、平面に穴の入り口または突起のベースを形成する稜線の形状を判断する。抽出部は、三次元モデルの中から、形状判断部により判断された稜線の形状の少なくとも一部に一致する稜線を有する図形を抽出する。作成部は、抽出した図形の種別に応じて平面の法線ベクトルの方向と比較する比較用ベクトルを作成する。判断部は、法線ベクトルと比較用ベクトルの角度に応じて、抽出部が抽出した図形が穴を形成する図形か突起を形成する図形かを判断する。三次元モデルが有する図形が穴か突起かを特定することができる。以下、実施の形態の設計支援装置を、図面を参照して詳細に説明する。<第1の実施の形態>図1は、第1の実施の形態の設計支援装置を示す図である。第1の実施の形態の設計支援装置コンピュータ1は、三次元モデル格納部1aと、形状判断部1bと、抽出部1cと、作成部1dと、判断部1eと、グループ情報作成部1fと、表示部1gとを有している。三次元モデル格納部1aには、穴または突起以下、穴/突起と表記の情報を抽出する対象の三次元モデルが格納されている。なお、図1では、設計支援装置1が三次元モデル格納部1aを有する場合を図示しているが、三次元モデル格納部1aは、設計支援装置1の外部に設けられていてもよい。形状判断部1bは、三次元モデルが有する平面に設けられ、平面に穴の入り口または突起のベースを形成する稜線の形状を判断する。図1では、三次元モデルが有する平面2を図示している。形状判断部1bは、平面2に設けられた稜線2aの形状を円であると判断する。抽出部1cは、三次元モデルの中から、形状判断部1bにより判断された稜線の形状の少なくとも一部に一致する稜線を有する図形を抽出する。図1では、円を形成する稜線2aに一致する稜線3aを有する円筒3を抽出する。作成部1dは、抽出した図形の種別に応じて平面の法線ベクトルV1の方向と比較する比較用ベクトルを作成する。図1では、抽出した図形が円筒3であるため、稜線3aが形成する円の中心から稜線3aに対向する稜線3bが形成する円の中心への比較用ベクトルV2を作成する。なお、円筒以外の比較用ベクトルの作成方法は、第2の実施の形態にて詳述する。判断部1eは、法線ベクトルV1と比較用ベクトルV2の角度に応じて、抽出部1cが抽出した図形が穴を形成する図形か突起を形成する図形かを判断する。図1では、法線ベクトルV1と比較用ベクトルV2の角度は180°ベクトルの方向が反対であるため、判断部1eは、円筒3が、穴を形成する図形であると判断する。なお、図示していないが、法線ベクトルV1と比較用ベクトルの角度が0°ベクトルの方向が一致である場合、判断部1eは、抽出部1cが抽出した図形が、突起を形成する図形であると判断する。設計支援装置1によれば、三次元モデルが有する図形の形状に基づいて穴情報を抽出しているため、他のCADシステムから変換した三次元モデルに予め付加された穴/突起情報の有無に関わらず、穴/突起の種別および数を特定することができる。また、抽出部1cは、抽出した図形が円筒3であるため、円筒3の稜線3aと反対側の稜線3bに一致する稜線を有する他の図形または平面が存在すると判断する。このため、抽出部1cは、稜線3bの形状に一致する、平面2に設けられた稜線3a以外の稜線を有する図形または平面を抽出する。図1では、稜線3bの形状に一致する稜線4aを有するテーパ状円筒4を抽出する。作成部1dおよび判断部1eは、テーパ状円筒4に対し、円筒3と同様の処理を行う。すなわち、作成部1dは、稜線4aが形成する円の中心から稜線4aに対向する稜線4bが形成する円の中心への比較用ベクトルV3を作成する。判断部1eは、法線ベクトルV1と比較用ベクトルV3の角度に応じて、抽出部1cが抽出した図形が穴を形成する図形か突起を形成する図形かを判断する。図1では、法線ベクトルV1と比較用ベクトルV3の角度は180°ベクトルの方向が反対であるため、判断部1eは、テーパ状円筒4が、穴を形成する図形であると判断する。また、抽出部1cは、今回抽出した図形がテーパ状円筒4であるため、テーパ状円筒4の稜線4aと反対側の稜線4bに一致する稜線を有する他の図形または平面が存在すると判断する。このため、抽出部1cは、稜線4bの形状に一致する、稜線4a以外の稜線を有する図形または平面を抽出する。図1では、稜線4bの形状に一致する稜線5aを有する平面5を抽出する。グループ情報作成部1fは、1つの穴または突起を形成する図形および平面をグループ化したグループ情報を作成する。図1では、グループ情報の一例であるグループ情報テーブル1f1を示している。グループ情報テーブル1f1には、円筒の情報、テーパ状円筒の情報および平面情報の欄が設けられている。円筒の情報の欄には、円筒3の側面を識別する面のID、円筒であることを識別する円筒および円筒3が穴であることを示す穴が設定されている。テーパ状円筒の情報の欄には、テーパ状円筒4の側面を識別する面のID、テーパ状円筒であることを識別するテーパ状円筒およびテーパ状円筒4が穴であることを示す穴が設定されている。平面情報の欄には、平面2を識別する上面のIDおよび平面5を識別する下面のIDが設定されている。表示部1gは、グループ情報作成部1fが作成したグループ情報に基づいて、三次元モデルが有する穴や突起の数、および穴や突起の種類を示す情報を設計支援装置1が接続されたモニタ図示せずに表示する。三次元モデルが有する穴や突起の数、および穴や突起の種類を示す情報を表示することにより、設計者は、三次元モデルが有する穴や突起の数、および穴や突起の種類を示す情報を容易に把握することができる。従って、設計者は、目視により穴や突起の数を把握したり、目視により穴や突起の種類を把握したりする工数を削減することができる。また、設計者は、目視により穴や突起の数を数えたり、目視により穴や突起の種類を把握したりすることにより生ずる数え間違いや、把握ミスを抑制することができる。なお、設計支援装置1は、グループ情報テーブル1f1をモニタに表示するようにしてもよい。グループ情報テーブル1f1を表示することにより、設計者は、穴を形成する円筒や、円錐の種別を容易に把握することができる。なお、形状判断部1b、抽出部1c、作成部1d、判断部1e、グループ情報作成部1fおよび表示部1gは、設計支援装置1が有するCPUCentralProcessingUnitが備える機能により実現することができる。また、三次元モデル格納部1aは、設計支援装置1が有するRAMRandomAccessMemoryやハードディスクドライブHDDHardDiskDrive等が備える情報記憶領域により実現することができる。以下、実施の形態の設計支援装置をより具体的に説明する。<第2の実施の形態>図2は、第2の実施の形態の設計支援装置のハードウェアの一構成例を示す図である。設計支援装置10は、CPU201によって装置全体が制御されている。CPU201には、バス208を介してRAM202と複数の周辺機器が接続されている。RAM202は、設計支援装置10の主記憶装置として使用される。RAM202には、CPU201に実行させるOSOperatingSystemのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM202には、CPU201による処理に使用する各種情報が格納される。バス208に接続されている周辺機器としては、ハードディスクドライブ203、グラフィック処理装置204、入力インタフェース205、ドライブ装置206、および通信インタフェース207がある。ハードディスクドライブ203は、内蔵したディスクに対して、磁気的に情報の書き込みおよび読み出しを行う。ハードディスクドライブ203は、設計支援装置10の二次記憶装置として使用される。ハードディスクドライブ203には、OSのプログラム、アプリケーションプログラム、および各種情報が格納される。なお、二次記憶装置としては、フラッシュメモリ等の半導体記憶装置を使用することもできる。グラフィック処理装置204には、モニタ204aが接続されている。グラフィック処理装置204は、CPU201からの命令に従って、画像をモニタ204aの画面に表示させる。モニタ204aとしては、CRTCathodeRayTubeを用いた液晶表示装置等が挙げられる。入力インタフェース205には、キーボード205aとマウス205bとが接続されている。入力インタフェース205は、キーボード205aやマウス205bから送られてくる信号をCPU201に送信する。なお、マウス205bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボール等が挙げられる。ドライブ装置206は、例えば、光の反射によって読み取り可能なように情報が記録された光ディスクや、USBUniversalSerialBusメモリ等の持ち運び可能な記録媒体に記録された情報の読み取りを行う。例えば、ドライブ装置206が光学ドライブ装置である場合、レーザ光等を利用して、光ディスク200に記録された情報の読み取りを行う。光ディスク200には、Blu-ray登録商標、DVDDigitalVersatileDisc、DVD-RAM、CD-ROMCompactDiscReadOnlyMemory、CD-RRecordable/RWReWritable等が挙げられる。通信インタフェース207は、ネットワーク209に接続されている。通信インタフェース207は、ネットワーク209を介して、他のコンピュータまたは通信機器との間で情報の送受信を行う。以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。このようなハードウェア構成の設計支援装置10内には、以下のような機能が設けられる。図3は、第2の実施の形態の設計支援装置の機能を示すブロック図である。設計支援装置10は、3Dモデル格納部11と、3D面分類部12と、3D面情報格納部13と、平面内稜線情報分類部14と、平面詳細情報格納部15と、穴/突起情報作成部16と、穴/突起面グループ情報格納部17と、穴/突起特定部18と、穴/突起情報表示部19とを有している。3Dモデル格納部11は、穴/突起情報を作成する3Dモデルを記憶する。3D面分類部12は、3Dモデルを構成する面情報を取得する。そして、3D面分類部12は取得した面情報を3D面情報格納部13に格納する。平面内稜線情報分類部14は、平面内の稜線情報を分類する。そして、平面内稜線情報分類部14は、分類した平面内の稜線情報を平面詳細情報格納部15に格納する。穴/突起情報作成部16は、1つの穴または突起を形成する1つ、または複数の面を互いに関連づけてグループ化した穴/突起面グループ情報フォーマットを作成する。そして、穴/突起情報作成部16は、作成した穴/突起面グループ情報フォーマットを穴/突起面グループ情報格納部17に格納する。穴/突起特定部18は、穴/突起の種類を特定する。穴/突起情報表示部19は、穴/突起特定部18が特定した穴/突起情報を出力する。以下、各機能について詳しく説明する。3D面分類部12は、3D面抽出部12aと、面形状分類部12bと、面情報作成部12cとを有している。図4は、3D面分類部の処理を説明する図である。図4には、3Dモデル格納部11に記憶されている3Dモデル11aを図示している。3D面抽出部12aは、3Dモデル11aを形成する全ての面を抽出する。面の抽出は、例えば従来公知の3DCADの機能を使用する。図4に示す3Dモデル11aには、穴または突起を形成する複数の面が含まれている。例えば、円平面111a、円柱面112a、ドーナツ状平面113aおよび、円柱面114aにより、平面115a、116a間を貫通する1つの穴が形成されている。また、円平面117a、円柱面118a、円平面119aにより、平面120a、116a間を貫通する1つの穴が形成されている。また、3Dモデル11aには、円環面121a等も含まれている。面形状分類部12bは、3D面抽出部12aが3Dモデルから抽出した、穴または突起を形成する面を、円形関連面、一般平面、その他の面の情報に分類する。図5は、円形関連面を説明する図である。なお、面形状分類部12bは、形状判断部の一例である。面形状分類部12bは、円柱面、円弧面、円錐面A、円錐面B、円環面、円平面、ドーナツ状平面を円形関連面と定義する。それぞれの面の判定方法は以下による。面形状分類部12bは、図5aに示すように、表面が円柱形状で、2つの円稜線円形稜線22a、22bにより形成されている面21を円柱面であると判定する。面21の表面が円柱形状であることは、3DCADの機能により判別することができる。面形状分類部12bは、図5bに示すように、表面が円柱形状で、2つの円弧稜線23a、23bおよび、2つの直線稜線23c、23dにより形成されており、円弧稜線23a、23bと直線稜線23c、23dの交点での、互いの稜線間の角度が90度である面23を円弧面と判定する。面形状分類部12bは、図5cに示すように、表面が円錐形状で、2つの円稜線25、26により形成されている面24を円錐面Aと判定する。なお、面24の表面が円錐形状であることは3DCADの機能により判別することができる。面形状分類部12bは、図5dに示すように、表面が円錐形状で、1つの円稜線28により形成されている面27を円錐面Bと判定する。面形状分類部12bは、図5eに示すように、表面が円環面形状で、2つの円稜線29a、29bにより形成されている面29を円環面と判定する。なお、面29の表面が円環面形状であることは3DCADの機能により判別することができる。面形状分類部12bは、図5fに示すように、表面が平面で、1つの円稜線30aにより形成されている面30を円平面と判定する。なお、面30の表面が平面形状であることは3DCADの機能により判別することができる。面形状分類部12bは、図5gに示すように、表面が平面で、中心座標が同じ2つの円稜線31a、31bにより形成されている面31をドーナツ状平面と判定する。なお、面を形成する稜線の抽出、および、稜線種類の判別は、3DCADの機能を使用する。また、面形状分類部12bは、円形関連面以外の平面を一般平面と定義する。なお、3Dモデルから抽出した面が平面か否かの判別は、3DCADの機能を使用する。また、面形状分類部12bは、円形関連面、および、一般平面以外の面を、その他の面と定義する。面情報作成部12cは、面形状分類部12bが円形関連面と判定した面に関する円形関連面情報フォーマットを作成する。また、面情報作成部12cは、面形状分類部12bが一般平面と判定した面に関する平面情報フォーマットを作成する。さらに面情報作成部12cは、面形状分類部12bがその他の面と判定した面に関するその他の面情報フォーマットを作成する。図6および図7は、円形関連面情報フォーマットを説明する図である。図6および図7に示す各円形関連面情報フォーマットは、円形関連面の情報を設定するフォーマットである。図6aに示す円形関連面情報フォーマット41は、円柱面の情報を設定するフォーマットである。円形関連面情報フォーマット41には、円柱面のID識別情報、面の種類、円稜線1のID、円稜線2のID、円柱の直径および円柱の高さが設定される。図6aに示す円柱面の場合、円形関連面情報フォーマット41には、面21のID、円柱面、円稜線22aのID、円稜線22bのID、円稜線22a、22bが形成する円柱の直径および円稜線22a、22bそれぞれが形成する円の中心間の直線距離が設定される。図6bに示す円形関連面情報フォーマット42は、円錐面Aの情報を設定するフォーマットである。円形関連面情報フォーマット42には、面のID、面の種類、円稜線1のID、円稜線2のID、円稜線1の直径、円稜線2の直径および円柱の高さが設定される。図6bに示す円錐面の場合、面24のID、円錐面A、円稜線25のID、円稜線26のID、円稜線25が形成する円の直径、円稜線26が形成する円の直径および円稜線25、26それぞれが形成する円の中心間の直線距離が設定される。図6cに示す円形関連面情報フォーマット43は、円弧面の情報を設定するフォーマットである。円形関連面情報フォーマット43には、面のID、面の種類、円弧稜線1のID、円弧稜線2のID、直線稜線1のID、直線稜線2のID、円弧面の直径および円弧面の高さが設定される。図6cに示す円弧面の場合、面23のID、円弧面、円弧稜線23aのID、円弧稜線23bのID、直線稜線23cのID、直線稜線23dのID、円弧面23の直径および直線稜線23cまたは直線稜線23dの長さが設定される。図6dに示す円形関連面情報フォーマット44は、円錐面Bの情報を設定するフォーマットである。円形関連面情報フォーマット44には、面のID、面の種類、円稜線1のID、頂点のID、円稜線1の直径、および円錐の高さが設定されている。図6dに示す円錐面Bの場合、面27のID、円錐面B、円稜線28のID、頂点27aのID、円稜線28が形成する円の直径、円稜線28が形成する円の中心から頂点27aまでの直線距離が設定される。図7aに示す円形関連面情報フォーマット45は、円環面の情報を設定するフォーマットである。円形関連面情報フォーマット45には、面のID、面の種類、円稜線1のID、円稜線2のID、円稜線1の直径、円稜線2の直径および円柱の高さが設定される。図7aに示す円環面の場合、面29のID、円環面、円稜線29aのID、円稜線29bのID、円稜線29aが形成する円の直径、円稜線29bが形成する円の直径および円稜線29a、29bそれぞれが形成する円の中心間の直線距離が設定される。図7bに示す円形関連面情報フォーマット46は、円平面の情報を設定するフォーマットである。円形関連面情報フォーマット46には、面のID、面の種類、円稜線1のIDが設定されている。図7bに示す円平面の場合、面30のID、円平面、円稜線30aのIDが設定される。図7cに示す円形関連面情報フォーマット47は、ドーナツ状平面の情報を設定するフォーマットである。円形関連面情報フォーマット47には、面のID、面の種類、円稜線1のID、円稜線2のID、円稜線1の直径、および円稜線2の直径が設定される。図7cに示すドーナツ状平面の場合、面31のID、ドーナツ状平面、円稜線31aのID、円稜線31bのID、円稜線31aが形成する円の直径、円稜線31bが形成する円の直径が設定される。なお、円形関連面情報フォーマット41~47に設定する情報は、3DCADの機能を使用することにより取得することができる。図8は、平面情報フォーマットおよびその他の面情報フォーマットを説明する図である。平面情報フォーマット48は、面のIDと面を形成する稜線のIDを有している。図8aに示す平面の場合、面32のID、稜線33のID、稜線34のID、稜線35のID、稜線36のID、稜線37のID、稜線38のID、稜線39のIDが設定される。この際、直線の稜線には、直線稜線であることを識別する情報が付加される。その他の面情報フォーマット49は、面のIDを有している。図8bに示す平面の場合、面40のIDが設定される。再び図3に戻って説明する。3D面情報格納部13は、円形関連面情報格納部13aと、平面情報格納部13bと、その他の面情報格納部13cとを有している。面情報作成部12cは、作成した円形関連面情報フォーマットを、円形関連面情報格納部13aに格納する。作成した平面情報フォーマットを、平面情報格納部13bに格納する。作成したその他の面情報フォーマットを、その他の面情報格納部13cに格納する。平面内稜線情報分類部14は、グループ分類部14aと、平面詳細情報作成部14bとを有している。グループ分類部14aは、平面情報格納部13bに格納されている平面情報フォーマットに含まれる稜線のIDを、平面の外形を形成する稜線のグループ外形形成稜線グループと、平面内で穴/突起形状を形成する稜線のグループ穴/突起形成稜線グループに分類する。図9は、グループの分類を説明する図である。まず、グループ分類部14aは、平面情報フォーマットの平面内の稜線を複数のグループに分類する。具体的には、グループ分類部14aは、平面情報内の稜線の中から、端点始点または終点座標が同じ稜線を接続していくと、これらの稜線で囲まれた1つの領域が形成される。グループ分類部14aは、これらの稜線を1つのグループに分類する。図9に示す平面50は、平面情報フォーマットにより具現される平面の一例を示している。この平面50において、稜線51は、端点55で稜線52に接続されている。稜線52は、端点56で稜線53に接続されている。稜線53は、端点57で稜線54に接続されている。稜線54は、端点58で稜線51に接続されている。これらの稜線51~54で、囲まれた1つの領域が形成される。グループ分類部14aは、これらの稜線51~54を1つのグループG1に分類する。グループ分類部14aは、円稜線等に関しては、円稜線1つで囲まれた領域を形成しているため、円稜線それぞれを、1つのグループに分類する。図9では、稜線59、60、61は円稜線であり、稜線59、60、61で囲まれた1つの領域を形成している。このため、グループ分類部14aは、稜線59、60、61それぞれをグループG2、G3、G4に分類する。同様に他の稜線もグループ化すると、図9に示す平面50は6個の稜線グループG1~G6に分類される。次に、グループ分類部14aは、分類された稜線グループで形成される領域の面積を取得する。そして、グループ分類部14aは、領域の面積が最大の稜線を外形形成稜線グループと判断する。また、グループ分類部14aは、外形形成稜線グループ以外の稜線グループを穴/突起形成稜線グループと判断する。図9に示す例では、グループ分類部14aは、グループG1を外形形成稜線グループと判断する。グループ分類部14aは、グループG1以外のグループG2~G6を穴/突起形成稜線グループと判断する。平面詳細情報作成部14bは、グループ分類部14aが分類した稜線グループの情報を含む平面詳細情報フォーマットを作成する。図10は、平面詳細情報フォーマットを説明する図である。平面詳細情報フォーマット71には、平面のID、外形形成稜線グループのIDリスト、穴/突起形成稜線グループのリストの欄が設けられている。平面のIDの欄には、平面を識別するIDが設定される。例えば、図9に示す平面50であれば、平面50のIDが設定される。外形形成稜線グループのIDリストの欄には、外形形成稜線グループを形成する稜線のIDおよび稜線の種別がリスト化されて設定される。例えば、図9に示す平面50であれば、グループG1を形成する稜線51~54のIDがリスト化されて設定される。また、稜線51~54が直線稜線であることが設定される。穴/突起形成稜線グループのリストの欄には、穴/突起形成稜線グループを形成する稜線のIDおよび稜線の種別がリスト化されて設定される。例えば、図9に示す平面50であれば、グループG2~G6を形成する稜線のIDがリスト化されてそれぞれ設定される。また、グループG2~G4が円稜線であり、グループG5、G6が直線稜線であることが設定される。平面詳細情報作成部14bは、変換した平面詳細情報フォーマット71を、平面詳細情報格納部15に格納する。平面内稜線情報分類部14は、平面情報格納部13bに格納されている全ての平面情報フォーマットについて、平面詳細情報フォーマットを作成し、平面詳細情報格納部15に格納する。再び図3に戻って説明する。穴/突起情報作成部16は、穴/突起形成稜線抽出部16aと、穴/突起形成稜線グループ単位情報格納部16bと、外形のみ平面情報格納部16cと、穴/突起面抽出部16dとを有している。穴/突起形成稜線抽出部16aは、平面詳細情報格納部15に格納されている平面詳細情報フォーマットを、穴/突起形成稜線グループ単位の情報以下、穴/突起形成稜線グループ単位情報と言うに変換する。図11は、穴/突起形成稜線グループ単位情報を説明する図である。図11には、平面詳細情報フォーマット71および穴/突起形成稜線抽出部16aが平面詳細情報フォーマット71を変換した穴/突起形成稜線グループ単位情報71a~71eを図示している。穴/突起形成稜線グループ単位情報71aには、穴/突起形成稜線グループを形成する稜線のIDのリストと、その稜線が含まれる平面のIDとが関連づけられている。例えば、図9に示す平面50の平面詳細情報フォーマット71を変換した穴/突起形成稜線グループ単位情報71aには、グループG2と平面50のIDとが関連づけられている。穴/突起形成稜線グループ単位情報71bには、グループG3と平面50のIDとが関連づけられている。穴/突起形成稜線グループ単位情報71cには、グループG4と平面50のIDとが関連づけられている。穴/突起形成稜線グループ単位情報71dには、グループG5と平面50のIDとが関連づけられている。穴/突起形成稜線グループ単位情報71eには、グループG6と平面50のIDとが関連づけられている。穴/突起形成稜線抽出部16aは、変換した穴/突起形成稜線グループ単位情報71a~71eを、穴/突起形成稜線グループ単位情報格納部16bに格納する。また、穴/突起形成稜線抽出部16aは、平面詳細情報格納部15に格納されている平面詳細情報フォーマット72、73についても、それぞれ穴/突起形成稜線グループ単位情報に変換する。そして、穴/突起形成稜線抽出部16aは、変換した穴/突起形成稜線グループ単位情報を、穴/突起形成稜線グループ単位情報格納部16bに格納する。また、穴/突起形成稜線抽出部16aは、平面詳細情報格納部15に格納されている平面詳細情報フォーマットに、穴/突起形成稜線グループのリストが存在しない場合、外形のみの平面詳細情報フォーマットと判断する。図12は、平面詳細情報フォーマットを説明する図である。図12に示す平面詳細情報フォーマット74には、平面詳細情報フォーマット71とは異なり、穴/突起形成稜線グループのリストが存在しない。この平面詳細情報フォーマット74は、平面に穴または突起を形成する稜線が存在しないことを示している。穴/突起形成稜線抽出部16aは、穴/突起形成稜線グループのリストが存在しない平面詳細情報フォーマット74を、外形のみの平面に関するフォーマットであると判断し、外形のみ平面情報格納部16cに格納する。穴/突起面抽出部16dは、穴/突起形成稜線グループ単位情報格納部16bに格納された穴/突起形成稜線グループ単位情報に含まれる稜線が形成する図形の形状に応じて、1つの穴/突起を形成する面の情報がグループ化された穴/突起面グループ情報フォーマットを作成する。そして、穴/突起面抽出部16dは、作成した穴/突起面グループ情報フォーマットを、穴/突起面グループ情報格納部17に格納する。なお、穴/突起面抽出部16dは、抽出部、作成部および判断部の一例である。以下、穴/突起形成稜線グループ単位情報格納部16bに格納された穴/突起形成稜線グループ単位情報に円稜線が1つだけ含まれている場合の穴/突起面抽出部16dの処理を処理1において説明する。また、穴/突起形成稜線グループ単位情報格納部16bに格納された穴/突起形成稜線グループ単位情報に含まれる稜線が、複数の円弧、直線で形成されている場合の穴/突起面抽出部16dの処理を処理2において説明する。<処理1>穴/突起面抽出部16dは、穴/突起形成稜線グループ単位情報格納部16bに格納された穴/突起形成稜線グループ単位情報に円稜線が1つだけ含まれている場合、以下の処理1-1~処理1-3を実行する。以下、穴/突起形成稜線グループ単位情報に円稜線が1つだけ含まれている場合、この1つの円稜線を穴/突起面抽出用円稜線と言う。また、穴/突起面抽出用円稜線を含む平面を穴/突起面抽出用基準平面と言う。図13は、穴/突起面抽出用円稜線および穴/突起面抽出用基準平面を説明する図である。図13に示す穴/突起形成稜線グループ単位情報71aのグループ1に含まれる稜線のIDリストには、円を形成する稜線64のIDのみが格納されているものとする。また、穴/突起形成稜線グループ単位情報71aの稜線が含まれる平面のIDには、平面65のIDが格納されているものとする。穴/突起形成稜線グループ単位情報71aに円稜線が1つだけ含まれているので、穴/突起面抽出部16dは、処理1を実行する。以下、稜線64を、穴/突起面抽出用円稜線64と言う。また、穴/突起面抽出用円稜線64を含む平面65が穴/突起面抽出用基準平面となる。以下、平面65を穴/突起面抽出用基準平面65と言う。<処理1-1>穴/突起面抽出部16dは、穴/突起面抽出用円稜線64のIDと同じ稜線のIDを含む円形関連面情報フォーマットを、円形関連面情報格納部13aから抽出する。<処理1-2>穴/突起面抽出部16dは、円形関連面情報格納部13aから抽出した円形関連面情報フォーマットにより具現される円形関連面が、穴形状を形成するのか、突起形状を形成するのかを判断する。この判断を行う際に、穴/突起面抽出部16dは、穴/突起面抽出用円稜線のIDと同じ稜線のIDを含む円形関連面情報フォーマットが、円柱面、円錐面A、円環面または、円錐面Bのどのフォーマットであるかを判断する。具体的には、穴/突起面抽出部16dは、円形関連面情報格納部13aから抽出した円形関連面情報フォーマットに含まれる円稜線のIDの数が2つで、かつ、2つの円稜線中心座標が異なっている条件を満たすか否かを判断する。そして、条件を満たす場合、穴/突起面抽出部16dは、抽出した円形関連面情報フォーマットは、円柱面、円錐面Aまたは円環面のフォーマットであると判断する。他方、条件を満たさない場合、穴/突起面抽出部16dは、円形関連面情報格納部13aから抽出した円形関連面情報フォーマットに含まれる円稜線のIDの数が1つであるか否かを判断する。そして、条件を満たす場合、穴/突起面抽出部16dは、抽出した円形関連面情報フォーマットは、円錐面Bのフォーマットであると判断する。穴/突起面抽出用円稜線のIDと同じ稜線のIDを含む円形関連面情報フォーマットの円形関連面の種別の判断が終わると、穴/突起面抽出部16dは、判断したフォーマットの円形関連面が、穴形状を形成するのか、突起形状を形成するのかを判断する。円形関連面情報フォーマットが、円柱面、円錐面Aまたは円環面のフォーマットであると判断した穴/突起面抽出部16dは、円中心間ベクトルを作成する。この円中心間ベクトルは、円形関連面情報フォーマットに含まれる2つの円稜線のうち、穴/突起面抽出用円稜線の中心から、穴/突起面抽出用円稜線ではない稜線の中心に向かうベクトルである。そして、穴/突起面抽出部16dは、作成した円中心間ベクトルと、穴/突起面抽出用基準平面の法線ベクトルの方向が一致するか否かを判断する。そして、穴/突起面抽出部16dは、判断結果に基づいて、円形関連面情報格納部13aから抽出した円形関連面情報フォーマットの円形関連面が、穴形状を形成するのか、突起形状を形成するのかを判断する。また、抽出された円形関連面が円錐面Bであると判断した穴/突起面抽出部16dは、穴/突起面抽出用円稜線の中心から円錐面Bの頂点にベクトルを作成する。そして、穴/突起面抽出部16dは、作成したベクトルと、穴/突起面抽出用基準平面法線ベクトルの方向が一致するか否かを判断する。そして、穴/突起面抽出部16dは、判断結果に基づいて、円形関連面情報格納部13aから抽出した円形関連面情報フォーマットの円錐面Bが、穴形状を形成するのか、突起形状を形成するのかを判断する。図14は、円形関連面情報フォーマットの円形関連面が、穴形状を形成するのか、突起形状を形成するのかを判断する処理を説明する図である。図14aは、穴/突起面抽出部16dが抽出した、穴/突起面抽出用円稜線64と同じIDを持つ稜線を含む円形関連面情報フォーマット41により具現される円柱面66を示している。ここで、穴/突起面抽出用円稜線64のIDと、円稜線67aのIDが一致するものとする。穴/突起面抽出部16dは、抽出した円形関連面情報フォーマット41に含まれる円形関連面の円稜線のIDの数が2つで、かつ、2つの円稜線中心座標が異なっている条件を満たすか否かを判断すると、条件を満たしている。従って、穴/突起面抽出部16dは、円稜線67a、67bのうち、穴/突起面抽出用円稜線64の中心から、穴/突起面抽出用円稜線64のIDに一致しない円稜線67bの中心にベクトルV11を作成する。そして、穴/突起面抽出部16dは、作成したベクトルV11と、穴/突起面抽出用基準平面65の法線ベクトルV12の方向が一致するか否かを判断する。穴/突起面抽出部16dは、作成したベクトルV11と、穴/突起面抽出用基準平面65の法線ベクトルV12の方向が一致しないと判断する。次に、穴/突起面抽出部16dは、作成したベクトルV11と、穴/突起面抽出用基準平面65の法線ベクトルV12の、逆方向が一致するか否かを判断する。穴/突起面抽出部16dは、作成したベクトルV11と、穴/突起面抽出用基準平面65の法線ベクトルV12の逆方向が一致すると判断する。従って、穴/突起面抽出部16dは、円柱面66は、穴形状を形成する面であると判断する。また、図示していないが、穴/突起面抽出部16dは、作成したベクトルと、穴/突起面抽出用基準平面65の法線ベクトルV12の方向が一致する場合、抽出した円形関連面情報フォーマットの円形関連面が、突起形状を形成すると判断する。なお、図14aでは、円柱面について説明したが、円錐面A、円環面についても円柱面と同様の方法で判断することができる。図14bは、穴/突起面抽出部16dが抽出した、穴/突起面抽出用円稜線64と同じIDを持つ稜線を含む円形関連面情報フォーマット44により具現される円錐面68円錐面Bを示している。ここで、穴/突起面抽出用円稜線64のIDと、円稜線69のIDが一致するものとする。穴/突起面抽出部16dは、抽出した円形関連面情報フォーマットが円錐面Bである場合は、穴/突起面抽出用円稜線64の中心から円錐面68の頂点68aに作成したベクトルV13と穴/突起面抽出用基準平面65の法線ベクトルV12の方向が一致するか否かを判断する。穴/突起面抽出部16dは、作成したベクトルV13と、穴/突起面抽出用基準平面65の法線ベクトルV12の方向が一致すると判断する。従って、穴/突起面抽出部16dは、円錐面68は、突起形状を形成する面であると判断する。また、図示していないが、穴/突起面抽出部16dは、作成したベクトルと、穴/突起面抽出用基準平面65の法線ベクトルV12の逆方向が一致する場合、円形関連面情報格納部13aから抽出した円形関連面情報フォーマットの円形関連面が、穴形状止まり穴、ダボ等を形成すると判断する。<処理1-3>穴/突起面抽出部16dは、抽出した円形関連面情報フォーマットに含まれる円稜線のIDの数が2つの場合、この円形関連面は、以後、旧円形関連面と言う穴/突起面抽出部16dは、旧円形関連面情報フォーマットの2つ円稜線のうち穴/突起面抽出用円稜線のIDに一致しない円稜線を、新たな穴/突起面抽出用円稜線に設定する。そして、穴/突起面抽出部16dは、処理1-1~処理1-3を繰り返し実行し、新たな円形関連面の抽出と、穴形状、突起形状のどちらを形成する円形関連面かの判断を行う。図15は、処理1-1~処理1-3の繰り返しを説明する図である。穴/突起面抽出部16dは、旧円形関連面情報フォーマット41に含まれる2つの円稜線のうち穴/突起面抽出用円稜線64のIDに一致しない円稜線67bを新たな穴/突起面抽出用円稜線に設定する。以下、新たに設定した穴/突起面抽出用円稜線を、穴/突起面抽出用円稜線67bと言う。図15aは、穴/突起面抽出部16dが抽出した、穴/突起面抽出用円稜線67bと同じIDを持つ稜線を含む円形関連面情報フォーマット42により具現される円錐面81円錐面Aを示している。ここで、穴/突起面抽出用円稜線67bのIDと、円稜線82aのIDが一致するものとする。穴/突起面抽出部16dは、新たに抽出した円形関連面情報フォーマット42に含まれる円形関連面の円稜線のIDの数が2つで、かつ、2つの円稜線の中心座標が異なっている条件を満たすか否かを判断すると、条件を満たしている。従って、穴/突起面抽出部16dは、円稜線82a、82bのうち、穴/突起面抽出用円稜線67bの中心から、穴/突起面抽出用円稜線67bのIDに一致しない円稜線82bの中心にベクトルV14を作成する。そして、穴/突起面抽出部16dは、作成したベクトルV14と、穴/突起面抽出用基準平面65の法線ベクトルV12の方向が一致するか否かを判断する。穴/突起面抽出部16dは、作成したベクトルV14と、穴/突起面抽出用基準平面65の法線ベクトルV12の方向が一致しないと判断する。次に、穴/突起面抽出部16dは、作成したベクトルV14と、穴/突起面抽出用基準平面65の法線ベクトルV12の、逆方向が一致するか否かを判断する。穴/突起面抽出部16dは、作成したベクトルV14と、穴/突起面抽出用基準平面65の法線ベクトルV12の逆方向が一致すると判断する。従って、穴/突起面抽出部16dは、円錐面81は、穴形状を形成する面であると判断する。図15bは、穴/突起面抽出部16dが抽出した、穴/突起面抽出用円稜線67bと同じIDを持つ稜線を含む円形関連面情報フォーマット44により具現される円錐面83円錐面Bを示している。ここで、穴/突起面抽出用円稜線67bのIDと、円稜線84のIDが一致するものとする。穴/突起面抽出部16dは、新たに抽出した円形関連面情報フォーマットが円錐面Bである場合は、穴/突起面抽出用円稜線67bの中心から円錐面83の頂点83aに作成したベクトルV15と穴/突起面抽出用基準平面65の法線ベクトルV12の方向が一致するか否かを判断する。穴/突起面抽出部16dは、作成したベクトルV15と、穴/突起面抽出用基準平面65の法線ベクトルV12の方向が一致しないと判断する。次に、穴/突起面抽出部16dは、作成したベクトルV15と、穴/突起面抽出用基準平面65の法線ベクトルV12の、逆方向が一致するか否かを判断する。穴/突起面抽出部16dは、作成したベクトルV15と、穴/突起面抽出用基準平面65の法線ベクトルV12の逆方向が一致すると判断する。従って、穴/突起面抽出部16dは、円錐面83は、穴形状を形成する面であると判断する。穴/突起面抽出部16dは、図14および図15に示す方法を、繰り返し実行する。そして、穴/突起面抽出部16dは、穴/突起面抽出用円稜線を持つ円形関連面情報フォーマットが円形関連面情報格納部13aに存在しない場合、図14および図15に示す方法で抽出した円形関連面情報フォーマットを1つのグループに関連づける。そして、関連づけた円形関連面情報フォーマットを、穴/突起面グループ情報格納部17に格納する。また、穴/突起面抽出用円稜線情報が、穴/突起形成稜線グループ単位情報格納部16bに格納された穴/突起を形成する稜線のIDリストに存在する場合貫通丸穴、貫通さら穴等も、図14および図15に示す方法で抽出した円形関連面情報フォーマットに基づいて、穴/突起面グループ情報フォーマットを作成する。そして、作成した穴/突起面グループ情報フォーマットを、穴/突起面グループ情報格納部17に格納する。図16は、穴/突起面グループ情報フォーマットを説明する図である。穴/突起面グループ情報フォーマット17aは、穴/突起を形成する円形関連面グループの情報を格納する円形関連面グループ情報格納領域170aと、穴/突起を形成する平面の情報を格納する平面情報格納領域170bとを有している。円形関連面グループ情報格納領域170aには、円形関連面グループを構成する全ての円形関連面の情報以下、円形関連面グループ情報と言うが、円形関連面を抽出した順番に設定される。図16に示す円形関連面グループ情報格納領域170aには、円柱面66の円形関連面グループ情報171aと、円錐面81円錐面Aの円形関連面グループ情報172aとが設定されている。円形関連面グループ情報171aは、円柱面66のID、面の種類を示す円柱面、円柱の直径、円柱の高さおよび穴であることを示す穴の情報を有している。また、円形関連面グループ情報172aは、円錐面81のID、面の種類を示す円錐面A、円稜線82aが形成する円の直径、円稜線82bが形成する円の直径および穴であることを示す穴の情報を有している。なお、円平面等、穴か突起かの判断ができない場合は、穴または突起を示す欄には不要が設定される。平面情報格納領域170bには、円形関連面グループを構成する全ての平面情報が設定される。図16に示す平面情報173aは、穴/突起面抽出用基準平面65のIDおよび穴の終端となる面85のIDを有している。なお、止まり穴、ダボ等、下側の平面が存在しない場合は、無しが設定される。<処理2>前述したように、穴/突起面抽出部16dは、穴/突起形成稜線グループ単位情報格納部16bに格納された穴/突起形成稜線グループ単位情報に含まれる稜線が、複数の円弧、直線で形成されている場合、以下の処理2-1~処理2-8を実行する。<処理2-1>穴/突起面抽出部16dは、以下の条件1~条件5の全てを満たす稜線のIDリストを含む穴/突起形成稜線グループ単位情報は、長円形状、または、R円弧半径付き多角形状の稜線に関する穴/突起形成稜線グループ単位情報と判断する。条件1穴/突起形成稜線グループ単位情報の稜線のIDリストにより特定される円弧と直線の数が同じ。条件2全ての円弧の半径、中心角が同じ。条件3各円弧の始点、終点に接続する稜線が直線。条件4所定の円弧以下、第1の円弧と言うの終点に接続する直線に、始点が接続する円弧以下、第2の円弧と言うが存在する。条件5第1の円弧の終点でのベクトル、第2の円弧の始点でのベクトル、第1の円弧の終点から第2の円弧の始点へのベクトルの方向が一致。なお、円弧の始点、終点でのベクトルは、3DCADの機能を使用して取得する。以下、長円形状、または、R付き多角形状の稜線のIDリストを初期稜線IDリストと言う。図17および図18は、初期稜線IDリストの判断方法を説明する図である。図17に示す稜線90は、穴/突起形成稜線グループ単位情報に含まれる1つの穴/突起形成稜線グループに含まれる稜線のIDリストにより具現される稜線を示している。稜線90は、長円形状をなしている。なお、図17に示す稜線90は、長円形状の円弧部分と直線部分を分離して示している。稜線90の円弧の数は、2つ、また、稜線90の直線の数は、2つであり、上記条件1は満たしている。また、円弧91を第1の円弧に設定し、円弧92を第2の円弧に設定すると、円弧91の半径と円弧92の半径は等しい。また、円弧91の中心角と円弧92の中心角は、180°である。従って、上記条件2を満たしている。また、円弧91の始点91aおよび終点91bには、直線である稜線93、94が接続されている。また、円弧92の始点92aおよび終点92bには、直線である稜線94、93が接続されている。従って、上記条件3を満たしている。また、円弧91の終点91bに接続する稜線94に、始点92aが接続する円弧92が存在する。また、円弧92の終点92bに接続する稜線93に、始点91aが接続する円弧91が存在する。このため、上記条件4を満たしている。また、円弧91の終点91bでのベクトルV16、円弧92の始点92aでのベクトルV17、および円弧91の終点91bから円弧92の始点92aへのベクトルの向きが同じ、かつ、円弧92の終点92bでのベクトルV19、円弧91の始点91aでのベクトルV20、および円弧92の終点92bから円弧91の始点91aへのベクトルV21の向きが同じである。このため、上記条件5を満たしている。図18に示す稜線100は、穴/突起形成稜線グループ単位情報に含まれる1つの穴/突起形成稜線グループに含まれる稜線のIDリストにより具現される稜線を示している。稜線100は、R付き四角形状をなしている。なお、図18に示す稜線100は、四角形状の円弧部分と直線部分を分離して示している。稜線100の円弧の数は、4つ、また、稜線100の直線の数は、4つであり、上記条件1は満たしている。また、円弧101、102、103、104の半径はそれぞれ等しい。また、円弧101、102、103、104の中心角は、それぞれ90°で等しい。従って、上記条件2は満たしている。また、円弧101、102、103、104それぞれの始点および終点には、直線である稜線が接続されている。従って、上記条件3を満たしている。また、円弧101を第1の円弧に設定し、円弧102を第2の円弧に設定すると、円弧101の終点101aに接続する直線105と、円弧101の終点101a以外の点で円弧の始点と接続する円弧102が存在する。なお、円弧102と円弧103の関係、円弧103と円弧104の関係、および円弧104と円弧101の関係も同様である。従って、上記条件4は満たしている。また、円弧101の終点101aでのベクトルV22、円弧102の始点102aでのベクトルV23、および円弧101の終点101aから円弧102の始点102aへのベクトルV24の向きが同じである。なお、円弧102と円弧103の関係、円弧103と円弧104の関係、および円弧104と円弧101の関係も同様である。従って、上記条件5は満たしている。<処理2-2>穴/突起面抽出部16dは、以下の条件6~条件7の全てを満たす稜線のIDリストを含む穴/突起形成稜線グループ単位情報は、多角形状の稜線に関する穴/突起形成稜線グループ単位情報と判断する。条件6稜線の全てが直線。条件7各交点から、交点に接続する2つの直線の交点とは別の端点にそれぞれ作成した2つのベクトル間の角度が、180°―360°÷稜線数に一致する。なお、角度はベクトルの内積を活用することにより求めることができる。また、穴/突起面抽出部16dは、各直線の長さを比較し、全ての直線の長さが同じ場合、正多角形の稜線に関する穴/突起形成稜線グループ単位情報と判断する。図19は、四角形状の稜線に関する穴/突起形成稜線グループ単位情報を説明する図である。図19に示す稜線111~114は、穴/突起形成稜線グループ単位情報に含まれる1つの穴/突起形成稜線グループに含まれる稜線のIDリストにより具現される稜線を示している。稜線111~114の全てが直線である。このため、上記条件6を満たしている。また、稜線111の稜線112との交点P1から、稜線111の交点P1とは別の端点P2へのベクトルV25と、稜線112の稜線111との交点P1から、稜線112の交点P1とは別の端点P3へのベクトルV26との間の角度は、90°=180°―360°÷4である。このため、上記条件7を満たしている。<処理2-3円形関連面および平面の抽出>穴/突起面抽出部16dは、処理2-1の条件を満たした穴/突起形成稜線グループ単位情報に含まれる円弧稜線のIDに一致するIDを持つ稜線の円形関連面情報フォーマットを、円形関連面情報格納部13aから抽出する。また、穴/突起面抽出部16dは、処理2-1の条件を満たした穴/突起形成稜線グループ単位情報に含まれる稜線のIDリスト内の直線稜線のIDに一致するIDを持つ稜線の平面詳細情報フォーマットを、外形のみ平面情報格納部16cから抽出する。図20は、稜線のIDリスト内の円弧稜線を持つ円形関連面の抽出を説明する図である。図20aに示す稜線121は、処理2-1の条件を満たす穴/突起形成稜線グループ単位情報に含まれる稜線のIDリストにより具現された稜線を示している。この稜線121を含む平面120が穴/突起面抽出用基準平面となる。また、円弧面122、123は、穴/突起面抽出部16dにより抽出された、処理2-1の条件を満たす稜線のIDリスト内の円弧のIDに一致するIDを持つ円形関連面情報フォーマットにより具現される円形関連面を示している。また、図20bに示す平面124、125は、穴/突起面抽出部16dにより抽出された、処理2-1の条件を満たした稜線のIDリスト内の直線稜線のIDに一致するIDを持つ平面詳細情報フォーマットにより具現される、外形のみで形成される平面を示している。<処理2-4平面の法線ベクトル間の角度を計算>穴/突起面抽出部16dは、処理2-3で抽出した各平面の法線ベクトルと、穴/突起面抽出用基準平面の法線ベクトル間の角度を計算する。なお、角度はベクトルの内積を活用する。また、穴/突起面抽出部16dは、計算した各角度をチェックする。図21は、穴/突起面抽出用基準平面と、抽出した平面の角度チェックを説明する図である。図21に示す平面131、132、133、134は、外形のみ平面情報格納部16cから抽出した平面詳細情報フォーマットにより具現される、外形のみで形成される平面を示している。また、穴/突起面抽出用基準平面135は、処理2-2の条件を満たす穴/突起形成稜線グループ単位情報に含まれる稜線のIDリストにより具現された稜線を含む平面を示している。各平面131、132、133、134の法線ベクトルV31、V32、V33、V34と、穴/突起面抽出用基準平面135の法線ベクトルV35間の角度は、それぞれ90°である。<処理2-5穴/突起の深さ/高さ方向の稜線を特定>穴/突起面抽出部16dは、処理2-3で抽出した各面円形関連面、平面の全ての直線稜線から、重複する各面間で共通の稜線を抽出することで、穴/突起の深さおよび高さ方向の稜線を特定する。また、穴/突起面抽出部16dは、抽出した稜線の長さをチェックする。図22は、抽出した面間で重複する稜線の抽出、および、重複する稜線の長さチェックを説明する図である。図22aには、処理2-3にて抽出した円弧面円形関連面122、123および平面124、125を図示している。穴/突起面抽出部16dは、重複する稜線として、円弧面122の紙面手前側の直線稜線122aと平面124の直線稜線124aを抽出する。円弧面122の紙面奥側の直線稜線122bと平面125の直線稜線125aを抽出する。円弧面123の紙面手前側の直線稜線123aと平面124の直線稜線124bを抽出する。円弧面123の紙面手前側の直線稜線123bと平面125の直線稜線125bを抽出する。穴/突起面抽出部16dは、重複する稜線の長さは全て同じであると判断する。なお、重複する稜線の長さは、3DCADの機能を使用して取得する。また、図22bには、処理2-3にて抽出した平面131、132、133、134を図示している。穴/突起面抽出部16dは、重複する稜線として、平面131の紙面手前側の直線稜線131aと平面132の直線稜線132aを抽出する。平面131の紙面奥側の直線稜線131bと平面134の直線稜線134aを抽出する。平面133の紙面手前側の直線稜線133aと平面132の直線稜線132bを抽出する。平面133の紙面手前側の直線稜線133bと平面134の直線稜線134bを抽出する。穴/突起面抽出部16dは、重複する稜線の長さは全て同じであると判断する。<処理2-6>穴/突起面抽出部16dは、処理2-3で抽出した円形関連面情報フォーマットおよび平面詳細情報フォーマットの全ての直線稜線から、処理2-1の初期稜線IDリスト、および、処理2-5で抽出した重複する稜線を除外することで、穴/突起面抽出用基準平面とは反対側の面の穴/突起用稜線の候補を特定する。図23は、穴/突起面抽出用基準平面とは反対側の面の穴/突起用稜線の抽出を説明する図である。穴/突起面抽出部16dは、円弧面122の初期稜線122cおよび直線稜線122a、122bを、円弧面122の円形関連面情報フォーマットから除外する。円弧面123の初期稜線123cおよび直線稜線123a、123bを、円弧面123の円形関連面情報フォーマットから除外する。平面124の初期稜線124cおよび直線稜線124a、124bを、平面124の平面詳細情報フォーマットから除外する。平面125の初期稜線125cおよび直線稜線125a、125bを、平面125の平面詳細情報フォーマットから除外する。この処理により、円弧面122の円形関連面情報フォーマットには、稜線122dのIDが残る。円弧面123の円形関連面情報フォーマットには、稜線123dのIDが残る。平面124の平面詳細情報フォーマットには、直線稜線124dのIDが残る。平面125の平面詳細情報フォーマットには、直線稜線125dのIDが残る。<処理2-7>穴/突起面抽出部16dは、処理2-6で特定した、穴/突起面抽出用基準平面とは反対側の穴/突起用稜線の候補を持つ平面を、穴/突起形成稜線グループ単位情報格納部16b、または、外形のみ平面情報格納部16cから抽出する。図24は、穴/突起面抽出用基準平面とは反対側の平面の抽出を説明する図である。図24aは、穴/突起面抽出用基準平面とは反対側の穴/突起用稜線の候補を持つ平面を、穴/突起形成稜線グループ単位情報格納部16bから抽出した一例を示している。穴/突起面抽出部16dは、円形関連面情報フォーマットに残った稜線122d、123d、および直線稜線124d、125dそれぞれのIDに一致するIDを持つ稜線126a、126b、126c、126dを含む穴/突起形成稜線グループ単位情報を特定する。そして、穴/突起面抽出部16dは、特定した穴/突起形成稜線グループ単位情報に含まれる平面126を抽出する。図24bは、穴/突起面抽出用基準平面とは反対側の穴/突起用稜線の候補を持つ平面を、外形のみ平面情報格納部16cから抽出した一例を示している。穴/突起面抽出部16dは、円形関連面情報フォーマットに残った稜線122d、123d、および直線稜線124d、125dそれぞれのIDに一致するIDを持つ稜線127a、127b、127c、127dを含む平面詳細情報フォーマットを特定する。そして、穴/突起面抽出部16dは、特定した平面詳細情報フォーマットに含まれる平面127を抽出する。<処理2-8>穴/突起面抽出部16dは、穴/突起面抽出用基準平面上で、初期稜線IDリスト内の任意の端点から、処理2-7で抽出した穴/突起面抽出用基準平面とは反対側の面の穴/突起用稜線候補内の任意の端点に作成したベクトルと、穴/突起面抽出用基準平面の法線ベクトル間の角度を算出する。穴/突起面抽出部16dは、-90°<ベクトル間の角度<90°の場合は、処理2-3で抽出した円形関連面または平面が、突起を形成する面であると判断する。また、穴/突起面抽出部16dは、算出した結果、-90°≧ベクトル間の角度≧90°の場合は、処理2-3で抽出した円形関連面または平面が、穴を形成する面であると判断する。図25は、穴または突起を判断する方法を説明する図である。穴/突起面抽出部16dは、穴/突起面抽出用基準平面120上で、初期稜線IDリストに含まれるIDにより具現される稜線121bの端点から、穴/突起面抽出用基準平面とは反対側の面126の稜線126dの端点にベクトルV41を作成する。そして、穴/突起面抽出部16dは、作成したベクトルV41と、穴/突起面抽出用基準平面の法線ベクトルV42間の角度を算出する。穴/突起面抽出部16dは、算出した結果に応じて円弧面122、123が突起を形成する面か穴を形成する面かを判断する。<処理2-9>穴/突起面抽出部16dは、処理2-1~処理2-7にて抽出した穴/突起を形成する面に、処理2-8の判断結果を関連づけた穴/突起面グループ情報フォーマットを作成する。そして、穴/突起面抽出部16dは、作成した穴/突起面グループ情報フォーマットを、穴/突起面グループ情報格納部17に格納追加する。図26は、穴/突起面グループ情報フォーマットを説明する図である。穴/突起面グループ情報フォーマット17bは、穴/突起形成面情報格納領域170c、穴/突起詳細情報格納領域170dおよび平面情報格納領域170eを有している。穴/突起形成面情報格納領域170cには、処理2-3にて抽出した穴/突起面を形成する全ての円形関連面および平面の情報以下、穴/突起形成面グループ情報と言うが設定される。図25に示す穴/突起形成面情報格納領域170cには、円弧面122の穴/突起形成面グループ情報171bと、平面124の穴/突起形成面グループ情報172bとが設定されている。穴/突起形成面グループ情報171bは、円弧面122のID、面の種類を示す円弧面、および円弧面の直径の情報を有している。また、穴/突起形成面グループ情報172bは、平面124のID、および面の種類を示す平面の情報を有している。なお、円弧面123および平面125の穴/突起形成面グループ情報も、円弧面122、平面124の情報と同様に設定されるが、紙面の都合上、図示を省略している。穴/突起詳細情報格納領域170dには、処理2-9にて判断した突起を形成する面または穴を形成する面の情報、および処理2-5にて抽出した重複する稜線の長さの情報が設定される。以下、これら2つの情報をまとめて穴/突起詳細情報と言う。図25に示す穴/突起詳細情報格納領域170dには、穴/突起詳細情報173bが設定されている。この穴/突起詳細情報173bには、処理2-9にて判断した、穴であることを示す穴が設定されている。また、処理2-5にて抽出した、重複する稜線の長さ2.4mmが設定されている。平面情報格納領域170eには、穴/突起面抽出用基準平面のIDおよび穴/突起面抽出用基準平面とは反対側の面に関する情報以下、穴/突起平面情報と言うが設定される。図25に示す平面情報格納領域170eには、穴/突起平面情報174bが設定されている。この穴/突起平面情報174bは、穴/突起面抽出用基準平面120のID、平面126のIDおよび平面126が、穴/突起を形成する稜線に接続されていることを示す情報を有している。なお、下面が、外形を形成する稜線である場合は、下面の情報の欄には、外形を形成する稜線に接続されていることを示す情報が設定される。再び図3に戻って説明する。穴/突起特定部18は、穴形状別面構成データベース格納部18aと、穴/突起名称特定部18bとを有している。図27は、穴形状別面構成データベース格納部に格納されている情報を示す図である。図27に示す穴形状別面構成データベース181aには、穴形状別に、形状毎の面構成情報と、面の寸法情報が記載されている。例えば、すきま穴-M2ねじの呼び径は、直径が2.4mmの1つの円柱面で構成されている。また、さら穴-M2は、円の直径が2.4mmの円柱面と、両端部の円の直径がそれぞれ2.4mm、4.8mmの円錐面とで構成されている。穴/突起名称特定部18bは、穴/突起形成稜線グループ単位情報格納部16bに格納されている穴/突起面グループ情報フォーマットと、穴形状別面構成データベース181aの情報から穴/突起の種類を特定する。図16に示す穴/突起面グループ情報フォーマット17aを例にとる。円形関連面グループ情報171aの円柱の直径が、2.4mmであり、円形関連面グループ情報172aの円錐面Aの2つの円稜線により形成される円の直径がそれぞれ2.4mm、4.8mmであれば、穴/突起面グループ情報フォーマット17aが示す穴は、さら穴-M2であることが特定できる。そして、穴/突起名称特定部18bは、穴/突起種類別に3Dモデルの穴数を示す穴数情報を作成する。穴/突起情報表示部19は、穴/突起名称特定部18bが作成した穴数情報をモニタ204aに出力する。図28は、穴/突起情報表示部が出力した穴数情報の一例を示す図である。図28に示す穴数情報管理テーブル19aの横方向の欄には、穴/突起の種類および穴の径を識別する情報が設定されている。また、縦方向の欄には、3Dモデルを識別する情報が設定されている。例えば、モデルAとすきま穴の重なる部分には2が格納されている。これは、モデルAに設けられたすきま穴の数が2つであることを示している。以下、前述した設計支援装置10の処理を、フローチャートを用いて説明する。図29は、設計支援装置の全体処理を示すフローチャートである。[ステップS1]設計支援装置10は、設計者による対象モデルの指定を受け付ける。その後、ステップS2に遷移する。[ステップS2]設計支援装置10は、円形関連面情報格納部13aを初期化する。その後、ステップS3に遷移する。[ステップS3]設計支援装置10は、平面情報格納部13bを初期化する。その後、ステップS4に遷移する。[ステップS4]設計支援装置10は、その他の面情報格納部13cを初期化する。その後、ステップS5に遷移する。[ステップS5]設計支援装置10は、平面詳細情報格納部15を初期化する。その後、ステップS6に遷移する。[ステップS6]設計支援装置10は、穴/突起形成稜線グループ単位情報格納部16bを初期化する。その後、ステップS7に遷移する。[ステップS7]設計支援装置10は、穴/突起面グループ情報格納部17を初期化する。その後、ステップS8に遷移する。[ステップS8]3D面分類部12は、3Dモデルを形成する面情報を、円形関連面、一般平面、およびその他の面に分類する。その後、ステップS9に遷移する。[ステップS9]平面内稜線情報分類部14は、平面情報内に稜線情報を分類する。その後、ステップS10に遷移する。[ステップS10]穴/突起情報作成部16は、穴/突起面の情報を作成する。その後、ステップS11に遷移する。[ステップS11]穴/突起特定部18は、穴/突起面の種類を特定する。その後、ステップS12に遷移する。[ステップS12]穴/突起情報表示部19は、穴数情報をモニタ204aに表示する。その後、図29に示す処理を終了する。以上で、図29に示す処理の説明を終了する。なお、ステップS2~S7の処理の順番は、図示のものに限定されない。図30は、3D面分類部の処理を示すフローチャートである。[ステップS21]3D面抽出部12aは、3Dを形成している全ての面を3Dモデルから抽出する。その後、ステップS22に遷移する。[ステップS22]面形状分類部12bは、ステップS21にて抽出した面を1つ選択する。その後、ステップS23に遷移する。[ステップS23]面形状分類部12bは、ステップS22にて選択した面が、平面か否かを判断する。ステップS22にて選択した面が、平面であると判断した場合ステップS23のYes、ステップS24に遷移する。ステップS22にて選択した面が、平面ではないと判断した場合ステップS23のNo、ステップS31に遷移する。[ステップS24]面形状分類部12bは、ステップS22にて選択した平面に含まれる稜線を抽出する。その後、ステップS25に遷移する。[ステップS25]面形状分類部12bは、ステップS24にて抽出した面が、1つの円稜線のみで形成されている平面か否か、すなわち、円平面か否かを判断する。ステップS24にて抽出した面が、円平面であると判断した場合ステップS25のYes、ステップS29に遷移する。ステップS24にて抽出した面が、円平面ではないと判断した場合ステップS25のNo、ステップS26に遷移する。[ステップS26]面形状分類部12bは、ステップS24にて抽出した面が、中心座標が同じ2つの円稜線で形成されている平面か否か、すなわち、ドーナツ状平面か否かを判断する。ステップS24にて抽出した面が、ドーナツ状平面であると判断した場合ステップS26のYes、ステップS29に遷移する。ステップS24にて抽出した面が、ドーナツ状平面ではないと判断した場合ステップS26のNo、ステップS27に遷移する。[ステップS27]面情報作成部12cは、ステップS22にて選択した面について一般平面リストを作成する。その後、ステップS28に遷移する。[ステップS28]面情報作成部12cは、ステップS27にて作成した一般平面リストを平面情報格納部13bに格納する。その後、ステップS36に遷移する。[ステップS29]面情報作成部12cは、ステップS22にて選択した面について円形関連面リストを作成する。その後、ステップS30に遷移する。[ステップS30]面情報作成部12cは、ステップS26にて作成した円形関連面リストを円形関連面情報格納部13aに格納する。その後、ステップS36に遷移する。[ステップS31]面形状分類部12bは、ステップS22にて選択した面が、円柱面、円弧面、円錐面または円環面のうちのいずれか1つか否かを判断する。ステップS22にて選択した面が、円柱面、円弧面、円錐面または円環面のうちのいずれか1つであると判断した場合ステップS31のYes、ステップS32に遷移する。ステップS22にて選択した面が、円柱面、円弧面、円錐面または円環面のいずれにも該当しないと判断した場合ステップS31のNo、ステップS34に遷移する。[ステップS32]面情報作成部12cは、ステップS22にて選択した面についての円形関連面リストを作成する。その後、ステップS33に遷移する。[ステップS33]面情報作成部12cは、ステップS32にて作成した円形関連面リストを円形関連面情報格納部13aに格納する。その後、ステップS36に遷移する。[ステップS34]面情報作成部12cは、ステップS22にて選択した面についてその他の面リストを作成する。その後、ステップS35に遷移する。[ステップS35]面情報作成部12cは、ステップS34にて作成したその他の面リストをその他の面情報格納部13cに格納する。その後、ステップS36に遷移する。[ステップS36]3D面抽出部12aは、ステップS21にて抽出した全ての面について、ステップS23~S35の処理が終了したか否かを判断する。ステップS21にて抽出した全ての面について、ステップS23~S35の処理が終了した場合ステップS36のYes、図30に示す処理を終了する。ステップS21にて抽出した全ての面について、ステップS23~S35の処理が終了していない場合ステップS36のNo、ステップS22に遷移し、ステップS22以降の処理を引き続き行う。以上で、図30に示す処理の説明を終了する。次に、グループ分類部14aの領域面積の取得処理を説明する。図31は、グループ分類部の領域面積の取得処理を示すフローチャートである。[ステップS41]グループ分類部14aは、平面情報格納部13bに格納されている平面情報フォーマットに設定された稜線のグループで形成される面を作成する。その後、ステップS42に遷移する。[ステップS42]グループ分類部14aは、ステップS41にて作成した面の面積を取得する。その後、ステップS43に遷移する。[ステップS43]グループ分類部14aは、ステップS41にて作成した面を削除する。その後、図31に示す処理を終了する。以上で、図31に示す処理の説明を終了する。次に、平面内稜線情報分類部14の処理を説明する。図32および図33は、平面内稜線情報分類部の処理を示すフローチャートである。[ステップS51]グループ分類部14aは、平面情報格納部13bに格納されている平面情報フォーマット1つを取り出す。その後、ステップS52に遷移する。[ステップS52]グループ分類部14aは、面積最大値を代入するパラメータXを宣言する。パラメータXの初期値は0に設定する。その後、ステップS53に遷移する。[ステップS53]グループ分類部14aは、処理対象の稜線以下、処理対象稜線と言うのIDを一時記憶する処理対象稜線のIDリストを初期化する。その後、ステップS54に遷移する。[ステップS54]グループ分類部14aは、外形形成稜線グループを一時記憶する外形形成稜線グループリストを初期化する。その後、ステップS55に遷移する。[ステップS55]グループ分類部14aは、穴/突起形成用稜線グループを一時記憶する穴/突起形成用稜線グループリストを初期化する。その後、ステップS56に遷移する。[ステップS56]グループ分類部14aは、処理対象稜線のIDを一時保管する稜線ID一時保管リストを初期化する。その後、ステップS57に遷移する。[ステップS57]グループ分類部14aは、ステップS51にて取り出した平面詳細情報フォーマットに設定されている最初一番上の稜線のIDにより特定される稜線を処理対象稜線に設定する。その後、ステップS58に遷移する。[ステップS58]グループ分類部14aは、A処理を行って、ステップS57にて選択した稜線を含む稜線により、1つの囲まれた領域を形成する稜線グループを作成する。その後、ステップS59に遷移する。なお、A処理は、図9にて説明した処理を実行する処理である。A処理の内容については後に詳述する。[ステップS59]グループ分類部14aは、A処理を行った結果、稜線ID一時保管リストに稜線のIDが存在するか否かを判断する。稜線ID一時保管リストに稜線のIDが存在する場合ステップS59のYes、ステップS60に遷移する。稜線ID一時保管リストに稜線のIDが存在しない場合ステップS59のNo、ステップS66に遷移する。[ステップS60]グループ分類部14aは、稜線ID一時保管リスト内の稜線のIDにより特定される稜線で囲まれる面積を取得する。その後、ステップS61に遷移する。[ステップS61]グループ分類部14aは、ステップS60にて取得した面積の値が、パラメータXより大きいか否かを判断する。ステップS60にて取得した面積の値が、パラメータXより大きい場合ステップS61のYes、ステップS62に遷移する。ステップS60にて取得した面積の値が、パラメータX以下である場合ステップS61のNo、ステップS65に遷移する。[ステップS62]グループ分類部14aは、パラメータXに関連づけられていた稜線グループを構成する稜線のIDを、穴/突起形成用稜線グループと判断する。そして、判断した稜線グループを構成する稜線のIDを、穴/突起形成用稜線グループリストに追加する。その後、ステップS63に遷移する。[ステップS63]グループ分類部14aは、パラメータXに関連づけられていた稜線グループを、ステップS57にて選択した稜線グループに置き換える。この処理により、今回ステップS57にて選択した稜線グループが、パラメータXの稜線グループに関連づけられる。その後、ステップS64に遷移する。[ステップS64]グループ分類部14aは、パラメータXを、今回ステップS57にて選択した稜線グループの面積の値ステップS60にて取得に置き換える。その後、ステップS66に遷移する。[ステップS65]グループ分類部14aは、A処理にて得られた稜線グループを穴/突起形成用稜線グループと判断する。そして、穴/突起形成用稜線グループを構成する稜線のIDを、穴/突起形成用稜線グループリストに追加する。その後、ステップS66に遷移する。[ステップS66]グループ分類部14aは、ステップS51にて取り出した平面情報フォーマット内に未選択の稜線のIDが存在するか否かを判断する。ステップS51にて取り出した平面情報フォーマット内に未選択の稜線のIDが存在する場合ステップS66のYes、ステップS57に遷移し、未選択の稜線のIDを1つ選択する。そして、選択したIDにより特定される稜線を処理対象稜線に設定し、ステップS58以降の処理を引き続き行う。ステップS51にて取り出した平面情報フォーマット内に未選択の稜線のIDが存在しない場合ステップS66のNo、ステップS67に遷移する。[ステップS67]平面詳細情報作成部14bは、穴/突起形成用稜線グループリストに追加された稜線グループを構成する稜線のIDに基づいて、平面詳細情報フォーマットを作成する。その後、ステップS68に遷移する。[ステップS68]平面詳細情報作成部14bは、ステップS67にて作成した平面詳細情報フォーマットを、平面詳細情報格納部15に格納する。その後、ステップS69に遷移する。[ステップS69]グループ分類部14aは、平面情報格納部13bに格納されている全ての平面情報フォーマットについてステップS52~S68の処理が終了したか否かを判断する。平面情報格納部13bに格納されている全ての平面情報フォーマットについてステップS52~S68の処理が終了した場合ステップS69のYes、図32および図33に示す処理を終了する。平面情報格納部13bに格納されている全ての平面情報フォーマットについてステップS52~S68の処理が終了していない場合ステップS69のNo、ステップS51に遷移して、未処理の平面情報フォーマットについて、ステップS51以降の処理を引き続き行う。以上で、図32および図33に示す処理の説明を終了する。次に、ステップS58のA処理を説明する。図34および図35は、A処理を示すフローチャートである。[ステップS58a]グループ分類部14aは、処理対象稜線の座標を代入する初期座標を宣言する。初期座標の初期値は0に設定する。その後、ステップS58bに遷移する。[ステップS58b]グループ分類部14aは、処理対象稜線の座標を代入する接続座標を宣言する。接続座標の初期値は0に設定する。その後、ステップS58cに遷移する。[ステップS58c]グループ分類部14aは、稜線ID一時保管リストに処理対象稜線のIDを追加する。その後、ステップS58dに遷移する。[ステップS58d]グループ分類部14aは、平面情報フォーマットから処理対象稜線のIDを除外する。その後、ステップS58eに遷移する。[ステップS58e]グループ分類部14aは、処理対象稜線が、1つの領域を形成している稜線か否かを判断する。処理対象稜線が、1つの領域を形成している稜線である場合ステップS58eのYes、A処理を終了する。処理対象の稜線が、1つの領域を形成している稜線ではない場合ステップS58eのNo、ステップS58fに遷移する。[ステップS58f]グループ分類部14aは、処理対象の稜線の始点座標を初期座標に設定する。その後、ステップS58gに遷移する。[ステップS58g]グループ分類部14aは、処理対象の稜線の終点座標を接続座標に設定する。その後、ステップS58hに遷移する。[ステップS58h]グループ分類部14aは、接続座標と同じ始点座標を持つ稜線のIDが、ステップS51にて取り出した平面情報フォーマット内に存在するか否かを判断する。接続座標と同じ始点座標を持つ稜線のIDが、ステップS51にて取り出した平面情報フォーマット内に存在する場合ステップS58hのYes、ステップS58iに遷移する。接続座標と同じ始点座標を持つ稜線のIDが、ステップS51にて取り出した平面情報フォーマット内に存在しない場合ステップS58hのNo、ステップS58kに遷移する。[ステップS58i]グループ分類部14aは、接続座標と同じ始点座標を持つ稜線を処理対象稜線に設定する。その後、ステップS58jに遷移する。[ステップS58j]グループ分類部14aは、処理対象稜線の終点座標を接続座標に設定する。その後、ステップS58pに遷移する。[ステップS58k]グループ分類部14aは、接続座標と同じ終点座標を持つ稜線のIDが、ステップS51にて取り出した平面情報フォーマット内に存在するか否かを判断する。接続座標と同じ終点座標を持つ稜線のIDが、ステップS51にて取り出した平面情報フォーマット内に存在する場合ステップS58kのYes、ステップS58mに遷移する。接続座標と同じ終点座標を持つ稜線のIDが、ステップS51にて取り出した平面情報フォーマット内に存在しない場合ステップS58kのNo、ステップS58rに遷移する。[ステップS58m]グループ分類部14aは、接続座標と同じ終点座標を持つ稜線を処理対象稜線に設定する。その後、ステップS58nに遷移する。[ステップS58n]グループ分類部14aは、処理対象稜線の始点座標を接続座標に設定する。その後、ステップS58pに遷移する。[ステップS58p]グループ分類部14aは、稜線ID一時保管リストに処理対象稜線のIDを追加する。その後、ステップS58qに遷移する。[ステップS58q]グループ分類部14aは、ステップS51にて取り出した平面情報フォーマットから処理対象稜線のIDを除外する。その後、ステップS58hに遷移する。[ステップS58r]グループ分類部14aは、接続座標が初期座標に一致するか否かを判断する。接続座標が初期座標に一致する場合ステップS58rのYes、A処理を終了する。接続座標が初期座標に一致しない場合ステップS58rのNo、ステップS58sに遷移する。[ステップS58s]グループ分類部14aは、稜線ID一時保管リストをクリアする。その後、A処理を終了する。以上で、図34および図35に示す処理の説明を終了する。図36は、平面情報フォーマットを穴/突起形成稜線グループに変換する処理を示すフローチャートである。[ステップS71]穴/突起形成稜線抽出部16aは、平面詳細情報格納部15に格納されている平面詳細情報フォーマットを1つ選択する。その後、ステップS72に遷移する。[ステップS72]穴/突起形成稜線抽出部16aは、ステップS71にて選択した平面詳細情報フォーマットに穴/突起形成稜線グループが存在するか否かを判断する。ステップS71にて選択した平面詳細情報フォーマットに穴/突起形成稜線グループが存在する場合ステップS72のYes、ステップS73に遷移する。ステップS71にて選択した平面詳細情報フォーマットに穴/突起形成稜線グループが存在しない場合ステップS72のNo、ステップS78に遷移する。[ステップS73]穴/突起形成稜線抽出部16aは、ステップS71にて選択した平面詳細情報フォーマットに含まれる平面のIDを取得する。その後、ステップS74に遷移する。[ステップS74]穴/突起形成稜線抽出部16aは、穴/突起形成稜線グループが有する稜線のIDリストを1つ選択する。その後、ステップS75に遷移する。[ステップS75]穴/突起形成稜線抽出部16aは、ステップS73にて取得した平面のIDにステップS74にて選択した稜線のIDリストを関連づけた、穴/突起形成稜線グループ単位情報を作成する。その後、ステップS76に遷移する。[ステップS76]穴/突起形成稜線抽出部16aは、ステップS75にて作成した穴/突起形成稜線グループ単位情報を、穴/突起形成稜線グループ単位情報格納部16bに格納する。その後、ステップS77に遷移する。[ステップS77]穴/突起形成稜線抽出部16aは、未処理の稜線のIDリストがステップS71にて選択した平面詳細情報フォーマットに存在するか否かを判断する。未処理の稜線のIDリストがステップS71にて選択した平面詳細情報フォーマットに存在する場合ステップS77のYes、ステップS74に遷移し、ステップS74以降の処理を引き続き行う。未処理の稜線のIDリストがステップS71にて選択した平面詳細情報フォーマットに存在しない場合ステップS77のNo、ステップS79に遷移する。[ステップS78]穴/突起形成稜線抽出部16aは、ステップS71にて選択した平面詳細情報フォーマットを、外形のみ平面情報格納部16cに格納する。その後、ステップS79に遷移する。[ステップS79]穴/突起形成稜線抽出部16aは、平面詳細情報格納部15に格納されている全ての平面詳細情報フォーマットについてステップS72~S78の処理が終了したか否かを判断する。平面詳細情報格納部15に格納されている全ての平面詳細情報フォーマットについてステップS72~S78の処理が終了した場合ステップS79のYes、図36に示す処理を終了する。平面詳細情報格納部15に格納されている全ての平面詳細情報フォーマットについてステップS72~S78の処理が終了していない場合ステップS79のNo、ステップS71に遷移し、未選択の平面詳細情報フォーマットを1つ選択する。そして、ステップS72以降の処理を引き続き行う。以上で、図36に示す処理の説明を終了する。図37は、穴/突起を形成する面情報を抽出する処理を示すフローチャートである。[ステップS81]穴/突起面抽出部16dは、円形関連面グループ情報を一時的に記憶する第1の記憶部202aを初期化する。この第1の記憶部202aは、例えばRAM202の記憶領域の一部で形成することができる。[ステップS82]穴/突起面抽出部16dは、穴/突起形成稜線グループ単位情報格納部16bに格納されている穴/突起形成稜線グループ単位情報の1つを選択する。そして、選択した穴/突起形成稜線グループ単位情報に含まれる穴/突起形成稜線グループを、処理対象稜線グループに設定する。その後、ステップS83に遷移する。[ステップS83]穴/突起面抽出部16dは、ステップS82にて設定した処理対象稜線グループを含む穴/突起形成稜線グループ単位情報を、穴/突起形成稜線グループ単位情報格納部16bから削除する。その後、ステップS84に遷移する。[ステップS84]穴/突起面抽出部16dは、処理対象稜線グループが含まれている穴/突起形成稜線グループ単位情報の、稜線が含まれる平面のIDにより特定される平面の法線ベクトルを取得する。その後、ステップS85に遷移する。[ステップS85]穴/突起面抽出部16dは、処理対象稜線グループが含まれている穴/突起形成稜線グループ単位情報に基づいて、処理対象稜線グループ内の稜線数が1、かつ、稜線の種類が円か否かを判断する。処理対象稜線グループ内の稜線数が1、かつ、稜線の種類が円である場合ステップS85のYes、ステップS86に遷移する。処理対象稜線グループ内の稜線数が1ではない、または、稜線の種類が円ではない場合ステップS85のNo、ステップS89に遷移する。[ステップS86]穴/突起面抽出部16dは、パラメータとして穴/突起面抽出用円稜線を用意する。穴/突起面抽出用円稜線の初期値は0に設定する。その後、ステップS87に遷移する。[ステップS87]穴/突起面抽出部16dは、穴/突起面抽出用円稜線に処理対象稜線グループ内の稜線を設定する。その後、ステップS88に遷移する。[ステップS88]穴/突起面抽出部16dは、B処理を行う。なお、B処理は、図13~図16にて説明した処理である。B処理の内容は後に詳述する。B処理が終了すると、ステップS92に遷移する。[ステップS89]穴/突起面抽出部16dは、パラメータとして穴/突起面抽出用円弧稜線を用意する。穴/突起面抽出用円弧稜線の初期値は0に設定する。その後、ステップS90に遷移する。[ステップS90]穴/突起面抽出部16dは、パラメータとして穴/突起面抽出用直線稜線を用意する。穴/突起面抽出用直線稜線の初期値は0に設定する。その後、ステップS91に遷移する。[ステップS91]穴/突起面抽出部16dは、C処理を行う。なお、C処理は、図17~図19にて説明した処理である。C処理の内容は、後に詳述する。C処理が終了すると、ステップS92に遷移する。[ステップS92]穴/突起面抽出部16dは、穴/突起形成稜線グループ単位情報格納部16b内に未処理のステップS82~S91の処理を行っていない穴/突起形成稜線グループ単位情報が存在するか否かを判断する。未処理の穴/突起形成稜線グループ単位情報が存在する場合ステップS92のYes、ステップS82に遷移する。そして、未処理の穴/突起形成稜線グループ単位情報を選択し、ステップS83以降の処理を引き続き行う。未処理の穴/突起形成稜線グループ単位情報が存在しない場合ステップS92のNo、図37に示す処理を終了する。以上で、図37に示す処理の説明を終了する。次にステップS88のB処理を説明する。図38および図39は、B処理を示すフローチャートである。[ステップS88a]穴/突起面抽出部16dは、円形関連面情報格納部13a内に穴/突起面抽出用円稜線のIDに一致する稜線のIDを含む円形関連面情報フォーマットが存在するか否かを判断する。穴/突起面抽出用円稜線のIDに一致する稜線のIDを含む円形関連面情報フォーマットが存在する場合ステップS88aのYes、ステップS88bに遷移する。穴/突起面抽出用円稜線のIDに一致する稜線のIDを含む円形関連面情報フォーマットが存在しない場合ステップS88aのNo、ステップS88tに遷移する。[ステップS88b]穴/突起面抽出部16dは、穴/突起面抽出用円稜線のIDに一致する稜線のIDを含む円形関連面情報フォーマットに含まれる円稜線の数が2であるか否かを判断する。円形関連面情報フォーマットに含まれる円稜線の数が2である場合ステップS88bのYes、ステップS88cに遷移する。円形関連面情報フォーマットに含まれる円稜線の数が2ではない場合ステップS88bのNo、ステップS88kに遷移する。[ステップS88c]穴/突起面抽出部16dは、穴/突起面抽出用円稜線のIDに一致する稜線のIDを含む円形関連面情報フォーマットを構成する円形関連面が、円柱面、円錐面A、または円環面か否かを判断する。円形関連面が、円柱面、円錐面A、または円環面のいずれかである場合ステップS88cのYes、ステップS88dに遷移する。円形関連面が、円柱面、円錐面A、円環面のいずれにも該当しない場合ステップS88cのNo、ステップS88gに遷移する。[ステップS88d]円柱面、円錐面Aまたは円環面のフォーマットであると判断した穴/突起面抽出部16dは、円形関連面情報フォーマットに含まれる2つの円稜線のうち、穴/突起面抽出用円稜線の中心から、穴/突起面抽出用円稜線ではない稜線の中心に円中心間ベクトルを作成する。その後、ステップS88eに遷移する。[ステップS88e]穴/突起面抽出部16dは、穴/突起面抽出用基準平面の法線ベクトルと円中心間ベクトルとを比較して、ステップS88cにて判断した円形関連面が、穴/突起のいずれを形成している面かを判断する。その後、ステップS88fに遷移する。[ステップS88f]穴/突起面抽出部16dは、ステップS88eにて判断した情報等を含む円柱面、円錐面Aまたは円環面の円形関連面グループ情報を作成する。その後、ステップS88hに遷移する。[ステップS88g]穴/突起面抽出部16dは、ドーナツ状平面の円形関連面グループ情報を作成する。その後、ステップS88hに遷移する。[ステップS88h]穴/突起面抽出部16dは、ステップS88fまたはステップS88gにて作成した円形関連面グループ情報を、ステップS81にて用意した第1の記憶部202aに記憶する。その後、ステップS88iに遷移する。[ステップS88i]穴/突起面抽出部16dは、穴/突起面抽出用円稜線を、対象面内の穴/突起面抽出用円稜線とは別の円稜線に置き換える。その後、ステップS88jに遷移する。[ステップS88j]穴/突起面抽出部16dは、ステップS88iにて置き換えられた旧穴/突起面抽出用円稜線のIDに一致する稜線のIDを含む円形関連面情報フォーマットを、円形関連面情報格納部13aから除外する。その後、ステップS88aに遷移する。[ステップS88k]穴/突起面抽出部16dは、穴/突起面抽出用円稜線のIDに一致する稜線のIDを含む円形関連面情報フォーマットに含まれる円稜線の数が1か否かを判断する。円形関連面情報フォーマットに含まれる円稜線の数が1である場合ステップS88kのYes、ステップS88mに遷移する。円形関連面情報フォーマットに含まれる円稜線の数が1ではない場合ステップS88kのNo、ステップS88wに遷移する。[ステップS88m]穴/突起面抽出部16dは、穴/突起面抽出用円稜線のIDに一致する稜線のIDを含む円形関連面情報フォーマットを構成する円形関連面が、円錐面Bか否かを判断する。円形関連面が円錐面Bである場合ステップS88mのYes、ステップS88nに遷移する。円形関連面が円錐面Bではない場合ステップS88mのNo、ステップS88qに遷移する。[ステップS88n]穴/突起面抽出部16dは、円錐面Bのフォーマットであると判断した穴/突起面抽出部16dは、円形関連面情報フォーマットに含まれる、円錐面Bの円稜線の中心から、円錐面Bの頂点への円中心間ベクトルを作成する。その後、ステップS88oに遷移する。[ステップS88o]穴/突起面抽出部16dは、法線ベクトルと円中心間ベクトルを比較して、ステップS88cにて判断した円形関連面が、穴/突起のいずれを形成している面かを判断する。その後、ステップS88pに遷移する。[ステップS88p]穴/突起面抽出部16dは、円錐面Bの円形関連面グループ情報を作成する。その後、ステップS88rに遷移する。[ステップS88q]穴/突起面抽出部16dは、円平面の円形関連面グループ情報を作成する。その後、ステップS88rに遷移する。[ステップS88r]穴/突起面抽出部16dは、ステップS88pまたはステップS88qにて作成した円形関連面グループ情報を第1の記憶部202aに記憶する。その後、ステップS88sに遷移する。[ステップS88s]穴/突起面抽出部16dは、穴/突起面抽出用円稜線のIDに一致する稜線のIDを含む円形関連面情報フォーマットを円形関連面情報格納部13aから除外する。その後、ステップS88vに遷移する。[ステップS88t]穴/突起面抽出部16dは、穴/突起形成稜線グループ単位情報格納部16bに格納されている穴/突起形成稜線グループ単位情報に穴/突起面抽出用円稜線が存在するか否かを判断する。穴/突起形成稜線グループ単位情報に穴/突起面抽出用円稜線が存在する場合ステップS88tのYes、ステップS88uに遷移する。穴/突起形成稜線グループ単位情報に穴/突起面抽出用円稜線が存在しない場合ステップS88tのNo、ステップS88wに遷移する。[ステップS88u]穴/突起面抽出部16dは、穴/突起形成稜線グループ単位情報格納部16bから穴/突起面抽出用円稜線のIDに一致するIDを有する穴/突起形成稜線グループ単位情報を除外する。その後、ステップS88vに遷移する。[ステップS88v]穴/突起面抽出部16dは、第1の記憶部202aに記憶されている円形関連面グループ情報を用いて穴/突起面グループ情報フォーマット17aを作成する。そして、穴/突起面抽出部16dは、作成した穴/突起面グループ情報フォーマット17aを穴/突起面グループ情報格納部17に格納する。その後、図38および図39に示す処理を終了する。[ステップS88w]穴/突起面抽出部16dは、第1の記憶部202aを初期化する。その後、図38および図39に示す処理を終了する。以上で、図38および図39に示す処理の説明を終了する。次に、ステップS91のC処理を説明する。図40は、C処理を示すフローチャートである。[ステップS91a]穴/突起面抽出部16dは、穴/突起形成面グループ情報、穴/突起詳細情報および穴/突起平面情報を一時的に記憶する第1の記憶部202aを初期化する。その後、ステップS91bに遷移する。[ステップS91b]穴/突起面抽出部16dは、ステップS82にて選択された穴/突起形成稜線グループ単位情報に含まれる稜線のIDリストにより特定される稜線が、円弧と直線の組合せであり、かつ、円弧の数が直線の数に等しいか否かを判断する。稜線が、円弧と直線の組合せであり、かつ、円弧の数が直線の数に等しい場合ステップS91bのYes、ステップS91cに遷移する。稜線が、円弧と直線の組合せではない、または、円弧の数が直線の数に等しくない場合ステップS91bのNo、ステップS91jに遷移する。[ステップS91c]穴/突起面抽出部16dは、ステップS82にて選択された穴/突起形成稜線グループ単位情報に含まれる稜線のIDリストにより特定される稜線の全ての円弧の半径が同じ、かつ中心角が同じか否かを判断する。ステップS82にて選択された穴/突起形成稜線グループ単位情報に含まれる稜線のIDリストにより特定される稜線の全ての円弧の半径が同じ、かつ中心角が同じである場合ステップS91cのYes、ステップS91dに遷移する。ステップS82にて選択された穴/突起形成稜線グループ単位情報に含まれる稜線のIDリストにより特定される稜線の全ての円弧の半径が同じ、かつ中心角が同じではない場合ステップS91cのNo、図40に示す処理を終了する。[ステップS91d]穴/突起面抽出部16dは、ステップS82にて選択された穴/突起形成稜線グループ単位情報に含まれる稜線のIDリストにより特定される全ての円弧稜線を穴/突起面抽出用円弧稜線情報に追加する。その後、ステップS91eに遷移する。[ステップS91e]穴/突起面抽出部16dは、穴/突起面抽出用円弧稜線情報内の円弧を1つ選択する。そして、穴/突起面抽出部16dは、選択した円弧を第1の円弧に設定する。その後、ステップS91fに遷移する。[ステップS91f]穴/突起面抽出部16dは、第1の円弧の終点に接続する直線を取得する。その後、ステップS91gに遷移する。[ステップS91g]穴/突起面抽出部16dは、第1の円弧の終点に接続する直線が存在するか否かを判断する。第1の円弧の終点に接続する直線が存在する場合ステップS91gのYes、ステップS91hに遷移する。第1の円弧の終点に接続する直線が存在しない場合ステップS91gのNo、C処理を終了する。[ステップS91h]穴/突起面抽出部16dは、第1の円弧の終点に接続する直線に、始点で接続する第2の円弧を取得する。その後、ステップS91iに遷移する。[ステップS91i]穴/突起面抽出部16dは、ステップS82にて選択された穴/突起形成稜線グループ単位情報に含まれる稜線のIDリストにより特定される全ての円弧稜線についてステップS91e~S91hの処理を行ったか否かを判断する。ステップS82にて選択された穴/突起形成稜線グループ単位情報に含まれる稜線のIDリストにより特定される全ての円弧稜線についてステップ91f~91hの処理を行った場合ステップS91iのYes、ステップS91sに遷移する。ステップS82にて選択された穴/突起形成稜線グループ単位情報に含まれる稜線のIDリストにより特定される全ての円弧稜線についてステップ91f~91hの処理を行っていない場合、ステップS91eに遷移し、未選択の円弧稜線を選択し、ステップS91f以降の処理を引き続き行う。[ステップS91j]穴/突起面抽出部16dは、ステップS82にて選択された穴/突起形成稜線グループ単位情報に含まれる稜線のIDリストにより特定される稜線が全て直線か否かを判断する。ステップS82にて選択された穴/突起形成稜線グループ単位情報に含まれる稜線のIDリストにより特定される稜線が全て直線である場合ステップS91jのYes、ステップS91kに遷移する。ステップS82にて選択された穴/突起形成稜線グループ単位情報に含まれる稜線のIDリストにより特定される稜線が全て直線ではない場合ステップS91jのNo、C処理を終了する。[ステップS91k]穴/突起面抽出部16dは、ステップS91m~S91rの処理にて使用する交点リストを初期化する。その後、ステップS91mに遷移する。[ステップS91m]穴/突起面抽出部16dは、ステップS82にて選択された穴/突起形成稜線グループ単位情報に含まれる稜線のIDリストにより特定される全ての稜線間の交点の情報以下、交点情報と言うを交点リストに追加する。その後、ステップS91nに遷移する。[ステップS91n]穴/突起面抽出部16dは、交点リストに追加された交点情報を1つ選択する。その後、ステップS91oに遷移する。[ステップS91o]穴/突起面抽出部16dは、ステップS91nにて選択した交点情報に含まれる交点に接続する直線を取得する。その後、ステップS91pに遷移する。[ステップS91p]穴/突起面抽出部16dは、各直線の交点から各直線の交点とは別の端点へのベクトルを取得する。その後、ステップS91qに遷移する。[ステップS91q]穴/突起面抽出部16dは、ベクトル間の角度が、180°-360°/全稜線数に一致するか否かを判断する。ベクトル間の角度が、180°-360°/全稜線数に一致する場合ステップS91qのYes、ステップS91rに遷移する。ベクトル間の角度が、180°-360°/全稜線数に一致しない場合ステップS91qのNo、C処理を終了する。[ステップS91r]穴/突起面抽出部16dは、交点リストに追加された全ての交点情報を選択したか否かを判断する。交点リストに追加された全ての交点情報を選択した場合ステップS91rのYes、ステップS91sに遷移する。交点リストに追加された全ての交点情報を選択していない場合ステップS91rのNo、ステップS91nに遷移し、未選択の交点情報を選択する。そして、ステップS91o以降の処理を引き続き行う。[ステップS91s]穴/突起面抽出部16dは、穴/突起面グループ情報フォーマット17bを作成するD処理を行う。D処理が終了すると、C処理を終了する。以上で、図40に示す処理の説明を終了する。次に、ステップS91sのD処理を説明する。図41は、D処理を示すフローチャートである。なお、D処理は、図20~図26にて説明した処理である。[ステップS91sa]穴/突起面抽出部16dは、円形関連面情報格納部13aから、ステップS82にて選択された穴/突起形成稜線グループ単位情報に含まれる稜線のIDリストにより特定される稜線を持つ円形関連面情報フォーマットを抽出する。その後、ステップS91sbに遷移する。[ステップS91sb]穴/突起面抽出部16dは、外形のみ平面情報格納部16cから、ステップS82にて選択された穴/突起形成稜線グループ単位情報に含まれる稜線のIDリストにより特定される稜線を持つ平面詳細情報フォーマットを抽出する。その後、ステップS91scに遷移する。[ステップS91sc]穴/突起面抽出部16dは、初期稜線IDリストに含まれるIDの数が、ステップS91sa~S91sbにて抽出した各フォーマットの面のIDの数に一致するか否かを判断する。初期稜線IDリストに含まれるIDの数が、ステップS91saおよびステップS91sbにて抽出した各フォーマットの面のIDの数に一致する場合ステップS91scのYes、ステップS91sdに遷移する。初期稜線IDリストに含まれるIDの数が、抽出した面のIDの数に一致しない場合ステップS91scのNo、D処理を終了する。[ステップS91sd]穴/突起面抽出部16dは、穴/突起面抽出用基準平面とステップS91cにて抽出した平面詳細情報フォーマットにより特定される平面間の角度が90°か否かを判断する。穴/突起面抽出用基準平面と抽出した平面詳細情報フォーマットにより特定される平面間の角度が90°である場合ステップS91sdのYes、ステップS91seに遷移する。穴/突起面抽出用基準平面と抽出した平面詳細情報フォーマットにより特定される平面間の角度が90°ではない場合ステップS91sdのNo、D処理を終了する。[ステップS91se]穴/突起面抽出部16dは、ステップS91saおよびステップS91sbにて抽出した各フォーマットの稜線のIDリストの全ての直線稜線のうち、重複するIDを有する直線稜線のID1つまたは複数を抽出する。また、抽出した直線稜線の長さも抽出する。その後、ステップS91sfに遷移する。[ステップS91sf]穴/突起面抽出部16dは、ステップS91seで抽出した重複する直線稜線のIDから、初期稜線IDリストに含まれるIDと重複する直線稜線のIDを除外する。その後、ステップS91sgに遷移する。[ステップS91sg]穴/突起面抽出部16dは、ステップS91sfにて重複する稜線を除外した初期稜線IDリストに含まれるIDに一致するIDが、穴/突起形成稜線グループ単位情報格納部16bに格納されている穴/突起形成稜線グループ単位情報に存在するか否かを判断する。初期稜線IDリストに含まれるIDに一致するIDが、穴/突起形成稜線グループ単位情報格納部16bに格納されている穴/突起形成稜線グループ単位情報に存在する場合ステップS91sgのYes、ステップS91siに遷移する。初期稜線IDリストに含まれるIDに一致するIDが、穴/突起形成稜線グループ単位情報格納部16bに格納されている穴/突起形成稜線グループ単位情報に存在しない場合ステップS91sgのNo、ステップS91shに遷移する。[ステップS91sh]穴/突起面抽出部16dは、ステップS91sfにて重複する稜線を除外した初期稜線IDリストに含まれるIDに一致するIDが、外形のみ平面情報格納部16cに格納されている平面詳細情報フォーマットに存在するか否かを判断する。初期稜線IDリストに含まれるIDに一致するIDが、外形のみ平面情報格納部16cに格納されている平面詳細情報フォーマットに存在する場合ステップS91shのYes、ステップS91siに遷移する。初期稜線IDリストに含まれるIDに一致するIDが、外形のみ平面情報格納部16cに格納されている平面詳細情報フォーマットに存在しない場合ステップS91shのNo、D処理を終了する。[ステップS91si]穴/突起面抽出部16dは、初期稜線IDリスト内の任意の端点から、穴/突起面抽出用基準平面とは反対側の面の穴/突起用稜線候補内の任意の端点にベクトルを作成する。その後、ステップS91sjに遷移する。[ステップS91sj]穴/突起面抽出部16dは、ステップS91siにて作成したベクトルと、穴/突起面抽出用基準平面の法線ベクトル間の角度を算出することにより、ステップS91saまたはステップS91sbにて抽出したフォーマットの円形関連面または平面が、穴を形成する面か突起を形成する面かを判断する。その後、ステップS91skに遷移する。[ステップS91sk]穴/突起面抽出部16dは、ステップS91sgにて一致したIDが穴/突起形成稜線グループ単位情報に存在する場合、その一致したIDを含む穴/突起平面情報を作成する。また、ステップS91shにて一致したIDが平面詳細情報フォーマットに存在する場合、その一致したIDを含む穴/突起平面情報を作成する。そして、ステップS91seにて抽出した直線稜線のIDに基づき穴/突起形成面グループ情報を作成する。さらに、ステップS91seにて抽出した直線稜線の長さに基づいて、穴/突起詳細情報を作成する。そして、穴/突起面抽出部16dは、穴/突起面グループ情報フォーマット17bを作成する。その後、ステップS91smに遷移する。[ステップS91sm]穴/突起面抽出部16dは、ステップS91skにて作成した穴/突起面グループ情報フォーマット17bを穴/突起面グループ情報格納部17に格納する。その後、D処理を終了する。以上で、図41に示す処理の説明を終了する。以上述べたように、設計支援装置10によれば、穴/突起情報作成部16が、平面詳細情報フォーマットに基づき穴/突起面グループ情報フォーマットを作成するようにした。そして、穴/突起名称特定部18bが穴数情報を作成するようにした。穴/突起情報作成部16および穴/突起名称特定部18bの処理により、設計支援装置10は、穴/突起の種類および穴/突起の数を正確に、かつ、自動で特定することができる。従って、設計者自身が穴/突起の種類および穴/突起の数を数える手間を省略することができる。また、設計者自身が穴/突起の種類および穴/突起の数を数えることによる、数え間違いを抑制することができる。また、あるCADアプリケーションで作成された三次元モデルのデータを他のCADアプリケーションで使用する際に変換した場合に、三次元モデルに付加された穴/突起面の穴数情報が消失してしまう場合がある。この場合にも、設計支援装置10が穴数情報を作成することができるため、設計者は、設計者自身が穴/突起の種類および穴/突起の数を数える手間を省略することができる。なお、設計支援装置10が行った処理が、複数の装置によって分散処理されるようにしてもよい。例えば、1つの装置が、平面詳細情報フォーマットを作成し、他の装置が、その平面詳細情報フォーマットを用いて穴/突起面グループ情報フォーマットを作成し、穴数情報をモニタ204aに出力するようにしてもよい。以上、本発明の設計支援装置、設計支援方法および設計支援プログラムを、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。また、本発明は、前述した各実施の形態のうちの、任意の2以上の構成特徴を組み合わせたものであってもよい。なお、上記の処理機能は、コンピュータによって実現することができる。その場合、設計支援装置1、10が有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記憶装置には、ハードディスクドライブ、フレキシブルディスクFD、磁気テープ等が挙げられる。光ディスクには、DVD、DVD-RAM、CD-ROM/RW等が挙げられる。光磁気記録媒体には、MOMagnetoOpticaldisk等が挙げられる。プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD-ROM等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。また、上記の処理機能の少なくとも一部を、DSPDigitalSignalProcessor、ASICApplicationSpecificIntegratedCircuit、PLDProgrammableLogicDevice等の電子回路で実現することもできる。以上の第1~第2の実施の形態に関し、さらに以下の付記を開示する。付記1検証対象の三次元モデルが有する平面に設けられ、前記平面に穴の入り口または突起のベースを形成する稜線の形状を判断する形状判断部と、前記三次元モデルの中から、前記形状判断部により判断された前記稜線の形状の少なくとも一部に一致する稜線を有する図形を抽出する抽出部と、抽出した図形の種別に応じて前記平面の法線ベクトルの方向と比較する比較用ベクトルを作成する作成部と、前記法線ベクトルと前記比較用ベクトルの角度に応じて、前記抽出部が抽出した図形が穴を形成する図形か突起を形成する図形かを判断する判断部と、を有することを特徴とする設計支援装置。付記2前記形状判断部が、前記稜線が形成する図形が円であると判断した場合、前記作成部は、前記抽出部が抽出した図形が円筒か円錐かを判断し、円筒である場合は、前記円の中心から前記平面に設けられた稜線に対向する対向稜線が形成する円の中心への前記比較用ベクトルを作成することを特徴とする付記1記載の設計支援装置。付記3前記抽出部は、前記三次元モデルの中から、前記対向稜線の形状に一致する、前記平面に設けられた稜線以外の稜線を有する図形または平面を抽出することを特徴とする付記2記載の設計支援装置。付記4前記判断部は、前記抽出部が前記平面に設けられた稜線以外の稜線を有する図形を抽出した場合、抽出した前記図形が穴を形成する図形か突起を形成する図形かを判断することを特徴とする付記3記載の設計支援装置。付記5前記判断部は、前記抽出部が抽出した図形が、円錐であると判断した場合、抽出した全ての図形をグループ化した情報を作成することを特徴とする付記3記載の設計支援装置。付記6前記判断部は、前記抽出部が平面を抽出した場合、抽出した全ての図形をグループ化した情報を作成することを特徴とする付記3記載の設計支援装置。付記7前記形状判断部が、前記稜線が形成する図形が円であると判断した場合、前記作成部は、前記抽出部が抽出した図形が円筒か円錐かを判断し、円錐である場合は、前記円の中心から前記円錐の頂点への前記比較用ベクトルを作成することを特徴とする付記1記載の設計支援装置。付記8前記判断部は、前記法線ベクトルと前記比較用ベクトルの角度が0°である場合は、前記抽出部が抽出した図形が突起を形成する面を含む図形であると判断することを特徴とする付記1ないし7のいずれかに記載の設計支援装置。付記9前記判断部は、前記法線ベクトルと前記比較用ベクトルの角度が180°である場合は、前記抽出部が抽出した図形が穴を形成する面を含む図形であると判断することを特徴とする付記1ないし7のいずれかに記載の設計支援装置。付記10前記形状判断部が、前記平面に設けられた稜線が形成する図形が円弧と直線を含むと判断した場合、前記抽出部は、前記円弧および前記直線それぞれに一致する稜線を有する図形を抽出することを特徴とする付記1記載の設計支援装置。付記11前記作成部は、前記抽出部が抽出した図形で共通する稜線を抽出し、抽出した前記稜線を、前記図形が形成する穴または突起の深さ方向の稜線であると特定することを特徴とする付記10記載の設計支援装置。付記12前記抽出部は、当該抽出部が抽出した図形の、前記平面と対向する稜線の形状に一致する対向平面を抽出し、前記作成部は、前記平面に設けられた稜線の任意の点から、前記対向平面に設けられた稜線の任意の点に向かう前記比較用ベクトルを作成することを特徴とする付記10または11に記載の設計支援装置。付記13前記判断部は、前記法線ベクトルと前記比較用ベクトルの角度の絶対値が90°未満である場合は、前記抽出部が抽出した図形が突起を形成する面を含む図形であると判断することを特徴とする付記10ないし12のいずれかに記載の設計支援装置。付記14前記判断部は、前記法線ベクトルと前記比較用ベクトルの角度の絶対値が90°以上である場合は、前記抽出部が抽出した図形が穴を形成する面を含む図形であると判断することを特徴とする付記10ないし12のいずれかに記載の設計支援装置。付記15前記三次元モデルの平面を形成する稜線を、前記稜線が形成する図形の形状に応じて複数のグループに分別する分別部と、前記複数のグループのうち、前記稜線で囲まれる図形の面積が最大以外のグループを、前記平面で穴または突起を形成する稜線のグループであると判断するグループ判断部と、をさらに有することを特徴とする付記1ないし14のいずれかに記載の設計支援装置。付記16コンピュータが、検証対象の三次元モデルが有する平面に設けられ、前記平面に穴の入り口または突起のベースを形成する稜線の形状を判断し、前記三次元モデルの中から、判断された前記稜線の形状の少なくとも一部に一致する稜線を有する図形を抽出し、抽出した図形の種別に応じて前記平面の法線ベクトルの方向と比較する比較用ベクトルを作成し、前記法線ベクトルと前記比較用ベクトルの角度に応じて、前記抽出した図形が穴を形成する図形か突起を形成する図形かを判断する、ことを特徴とする設計支援方法。付記17コンピュータに、検証対象の三次元モデルが有する平面に設けられ、前記平面に穴の入り口または突起のベースを形成する稜線の形状を判断し、前記三次元モデルの中から、判断された前記稜線の形状の少なくとも一部に一致する稜線を有する図形を抽出し、抽出した図形の種別に応じて前記平面の法線ベクトルの方向と比較する比較用ベクトルを作成し、前記法線ベクトルと前記比較用ベクトルの角度に応じて、前記抽出した図形が穴を形成する図形か突起を形成する図形かを判断する、処理を実行させることを特徴とする設計支援プログラム。