(57)【特許請求の範囲】
【請求項１】
コンピュータを、
アセンブリを構成する部品データ群の中から円柱形状を有する部品データと円筒形状または円筒の穴形状（以下、「円筒／穴形状」という）を有する部品データとを選択する選択手段、
前記選択手段によって選択された一対の部品データの配置位置と前記円柱形状の軸と前記円筒／穴形状の軸とに基づいて、前記一対の部品データが関節を構成する部品データ対であるか否かを判断する判断手段、
前記判断手段によって判断された判断結果に基づいて、前記一対の部品データのうち少なくともいずれか一方の部品データを他方の部品データの軸に対して回転するように見える関節動作が描画可能な関節属性を前記一対の部品データに設定する設定手段、
として機能させることを特徴とする関節認識プログラム。
【請求項２】
前記判断手段は、
前記円柱形状の軸と前記円筒／穴形状の軸とが同軸上にあり、かつ、前記円柱形状の少なくともいずれか一端が前記円筒／穴形状の両端の間に位置する場合、前記一対の部品データが関節を構成する部品データ対であると判断することを特徴とする請求項１に記載の関節認識プログラム。
【請求項３】
前記設定手段は、
前記一対の部品データのうち前記円柱形状を有する部品データが、前記円筒／穴形状を有する部品データにおける前記円筒／穴形状の軸周りに回転する関節属性を設定することを特徴とする請求項１または２に記載の関節認識プログラム。
【請求項４】
コンピュータを、
部品をあらわすＣＡＤデータから前記部品を構成する形状の一部または全部を特徴付けるデータ構造を有するフィーチャを抽出する抽出手段、
前記抽出手段によって抽出されたフィーチャのデータ構造に基づいて、前記フィーチャの特徴を、円柱形状、円筒形状、円筒の穴形状、またはいずれにも該当しない形状の中から決定する決定手段、
前記決定手段によって前記フィーチャの特徴が前記円柱形状、前記円筒形状、または前記円筒の穴形状に決定された場合、当該形状の両端の配置位置を算出する算出手段、
前記決定手段によって決定された前記フィーチャの特徴と前記算出手段によって算出された配置位置とを前記フィーチャごとに関連付けることにより、前記フィーチャを構成要素とする部品データを生成する生成手段、
前記生成手段によって生成された部品データを、当該部品データに関節属性を設定するコンピュータに出力する出力手段、
として機能させることを特徴とする部品データ生成プログラム。
【請求項５】
アセンブリを構成する部品データ群の中から円柱形状を有する部品データと円筒形状または円筒の穴形状（以下、「円筒／穴形状」という）を有する部品データとを選択する選択手段と、
前記選択手段によって選択された一対の部品データの配置位置と前記円柱形状の軸と前記円筒／穴形状の軸とに基づいて、前記一対の部品データが関節を構成する部品データ対であるか否かを判断する判断手段と、
前記判断手段によって判断された判断結果に基づいて、前記一対の部品データのうち少なくともいずれか一方の部品データを他方の部品データの軸に対して回転するように見える関節動作が描画可能な関節属性を前記一対の部品データに設定する設定手段と、
を備えることを特徴とする関節認識装置。
【請求項６】
制御手段および記憶手段を備えるコンピュータが、
前記制御手段により、前記記憶手段に記憶されているアセンブリを構成する部品データ群の中から円柱形状を有する部品データと円筒形状または円筒の穴形状（以下、「円筒／穴形状」という）を有する部品データとを選択する選択工程と、
前記制御手段により、前記選択工程によって選択された一対の部品データの配置位置と前記円柱形状の軸と前記円筒／穴形状の軸とに基づいて、前記一対の部品データが関節を構成する部品データ対であるか否かを判断する判断工程と、
前記制御手段により、前記判断工程によって判断された判断結果に基づいて、前記一対の部品データのうち少なくともいずれか一方の部品データを他方の部品データの軸に対して回転するように見える関節動作が描画可能な関節属性を前記一対の部品データに設定して、前記記憶手段に記憶する設定工程と、
を実行することを特徴とする関節認識方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、アセンブリを構成する部品データ群の中から関節に該当する部品データを認識する関節認識プログラム、関節認識装置、および関節認識方法に関し、また、このような部品データを生成する部品データ生成プログラム、部品データ生成装置、および部品データ生成方法に関する。
【背景技術】
【０００２】
特許文献１には、可動部分が動く状況をオペレータが容易に確認できるように表示するツールおよび可動部分に関しての入力を受け付けることが開示されている。また、特許文献２には、リンクおよび関節を有する機械の機構をシミュレーションする技術が開示してある。
【０００３】
【特許文献１】特開２００５−２８４３９３号公報
【特許文献２】特許第３３６１００７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
一般に、設計対象となる製品には、ローラやローラを軸支するシャフトなどの関節構造が多数設けられている。たとえば、プリンタやデジタルカメラ、車のエンジンを例に挙げると、全部品数（約１００００〜２００００個）の２０〜３０％が関節構造に相当する。上述した特許文献１および特許文献２の従来技術では、関節構造の設定は、オペレータの操作によってしなければならない。
【０００５】
すなわち、シミュレーションの実行に先立って、どの部品とどの部品とが関連をして動作する関節構造かという判断と、この判断された関節構造について、どのような動作が可能かといったパラメータの設定とを、オペレータが手動操作によりおこなわなければならないという問題があった。
【０００６】
したがって、シミュレーションに先立ってオペレータが関節構造の設定を手動操作でおこなうと、オペレータの作業負担が増大するという問題があった。また、オペレータへの依存度が高いと、関節構造なのに非関節構造と設定してしまったり、非関節構造なのに関節構造と設定してしまう設定ミスが発生する。
【０００７】
これにより、誤った関節構造に基づくシミュレーションが実行されると、正常に駆動するはずの箇所が駆動しなかったり、駆動してはいけない箇所が駆動してしまうという誤ったシミュレーション結果による設計ミスが発生するという問題があった。同様に、本来干渉しないはずの箇所が干渉したり、干渉するはずだった箇所が干渉しなかったりするという誤ったシミュレーション結果による設計ミスが発生するという問題があった。このように、作業負担が増大することにより設計作業に時間がかかり、また、設計ミスが生じると手戻りが発生するため、設計期間の長期化を招くという問題があった。
【０００８】
この発明は、上述した従来技術による問題点を解消するため、オペレータの設計負担の軽減と、シミュレーション結果の信頼性の向上とを図ることにより、設計期間の短縮化を図ることができるプログラム、装置、および方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、第１のプログラム、装置、および方法は、アセンブリを構成する部品データ群の中から円柱形状を有する部品データと円筒形状または円筒の穴形状（以下、「円筒／穴形状」という）を有する部品データとを選択し、選択された一対の部品データの配置位置と前記円柱形状の軸と前記円筒／穴形状の軸とに基づいて、前記一対の部品データが関節を構成する部品データ対であるか否かを判断し、判断結果に基づいて、前記一対の部品データのうち少なくともいずれか一方の部品データを他方の部品データの軸に対して回転するように見える関節動作が描画可能な関節属性を前記一対の部品データに設定することを要件とする。第１のプログラム、装置、および方法によれば、関節属性を自動設定することができる。
【００１０】
また、第２のプログラム、装置、および方法は、部品をあらわすＣＡＤデータから前記部品を構成する形状の一部または全部を特徴付けるデータ構造を有するフィーチャを抽出し、抽出されたフィーチャのデータ構造に基づいて、前記フィーチャの特徴を、円柱形状、円筒形状、円筒の穴形状、またはいずれにも該当しない形状の中から決定し、前記フィーチャの特徴が前記円柱形状、前記円筒形状、または前記円筒の穴形状に決定された場合、当該形状の両端の配置位置を算出し、決定された前記フィーチャの特徴と前記算出手段によって算出された配置位置とを前記フィーチャごとに関連付けることにより、前記フィーチャを構成要素とする部品データを生成し、生成された部品データを、当該部品データに関節属性を認識するコンピュータに出力することを要件とする。第２のプログラム、装置、および方法によれば、関節属性を自動設定するための部品データを自動生成することができる。
【発明の効果】
【００１１】
このプログラム、装置、および方法によれば、オペレータの設計負担の軽減と、シミュレーション結果の信頼性の向上とを図ることにより、設計期間の短縮化を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１２】
以下に添付図面を参照して、このプログラム、装置、および方法の好適な実施の形態を詳細に説明する。まず、本実施の形態の概要について説明する。本実施の形態では、２つの部品データの形状の関係（円柱と円筒）、配置位置関係（重なり具合）、各軸の位置関係（同軸上にあるか）を元に、２つの部品データが関節構造であるか否かを判断し、関節構造と判断された２つの部品データに関節属性を自動設定する。これにより、オペレータの設計負担の軽減を実現する。
【００１３】
図１は、部品データの一例を示す説明図である。（Ａ）は円柱形状の部品データ１０１であり、（Ｂ）は円筒形状の部品データ１０２である。柱形状または筒形状の部品データは、軸（の情報）を有する。部品データ１０１は軸１０１Ａを有し、部品データ１０２は軸１０２Ａを有する。
【００１４】
図２は、図１に示した部品データ対のアセンブリ状態を示す説明図である。部品データ１０１と部品データ１０２とは、その配置位置に基づいてアセンブリされる。部品データ１０１と部品データ１０２の場合、部品データ１０１が部品データ１０２の中空部に嵌合するようにアセンブリされる。そして、軸１０１Ａと軸１０２Ａとが同軸上にあれば、部品データ１０１と部品データ１０２は、関節構造２００となる。部品データ１０１と部品データ１０２には、関節属性が設定される。
【００１５】
図２に示した例では、部品データ１０２に相当する部品（ローラ）が部品データ１０１に相当する部品（シャフト）を回転軸として回転する。部品データ１０１のように、回転軸となる部品をベース部品と呼び、部品データ１０２のように、回転する部品を駆動部品と呼ぶ。
【００１６】
この場合の関節属性として、部品データ１０１に対しては、回転パラメータを付与せず、部品データ１０２に対しては、軸１０２Ａ周り（図２中、点線矢印方向）に回転する回転パラメータが付与される。これにより、オペレータがマウスなどの入力装置を用いて点線矢印方向にドラッグすると、画面上において、その方向に部品データ１０２が軸１０２Ａ周りに回転するように見える。この回転動作自体は、従来技術の項で説明したような既存のツールで実行することができる。
【００１７】
（設計支援システムのシステム構成）
図３は、本実施の形態の設計支援システム３００のシステム構成図である。図３において、設計支援システム３００は、３次元ＣＡＤ３０１とシミュレータ３０２とを含む構成である。３次元ＣＡＤ３０１は、オペレータの操作により設計対象のＣＡＤデータ３２０を作成する機能を有する。特に、本実施の形態では、３次元ＣＡＤ３０１は、図１に示したような部品データを自動生成する部品データ生成機能３１１を有する。これにより部品データ群からなる設計対象のアセンブリ情報３０３を出力する。
【００１８】
また、シミュレータ３０２は、アセンブリを構成する部品データを元に、動作シミュレーションを実行する機能を有する。特に、本実施の形態では、シミュレータ３０２は、図２に示したような関節属性を自動設定する関節認識機能３１２を有する。これにより、図２に示したような関節動作が可能となる。なお、３次元ＣＡＤ３０１とシミュレータ３０２は別々の装置でもよく、一体型でもよい。
【００１９】
（コンピュータのハードウェア構成）
図４は、実施の形態にかかるコンピュータ（３次元ＣＡＤ３０１またはシミュレータ３０２）のハードウェア構成を示すブロック図である。図４において、コンピュータは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）４０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）４０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）４０３と、磁気ディスクドライブ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）４０４と、磁気ディスク（Ｈａｒｄ  Ｄｉｓｋ）４０５と、光ディスクドライブ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）４０６と、着脱可能な記録媒体の一例としての光ディスク（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）４０７と、ディスプレイ４０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）４０９と、キーボード４１０と、マウス４１１と、スキャナ４１２と、プリンタ４１３と、を備えている。また、各構成部はバス４００によってそれぞれ接続されている。
【００２０】
ここで、ＣＰＵ４０１は、コンピュータの全体の制御を司る。ＲＯＭ４０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ４０３は、ＣＰＵ４０１のワークエリアとして使用される。磁気ディスクドライブ４０４は、ＣＰＵ４０１の制御にしたがって磁気ディスク４０５に対するデータのリード／ライトを制御する。磁気ディスク４０５は、磁気ディスクドライブ４０４の制御で書き込まれたデータを記憶する。
【００２１】
光ディスクドライブ４０６は、ＣＰＵ４０１の制御にしたがって光ディスク４０７に対するデータのリード／ライトを制御する。光ディスク４０７は、光ディスクドライブ４０６の制御で書き込まれたデータを記憶したり、光ディスク４０７に記憶されたデータをコンピュータに読み取らせたりする。
【００２２】
ディスプレイ４０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ４０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００２３】
インターフェース（以下、「Ｉ／Ｆ」と略する。）４０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク４１４に接続され、このネットワーク４１４を介して他の装置に接続される。そして、Ｉ／Ｆ４０９は、ネットワーク４１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ４０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００２４】
キーボード４１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス４１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００２５】
スキャナ４１２は、画像を光学的に読み取り、コンピュータ内に画像データを取り込む。なお、スキャナ４１２は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）機能を持たせてもよい。また、プリンタ４１３は、画像データや文書データを印刷する。プリンタ４１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００２６】
（３次元ＣＡＤ３０１からの出力情報）
つぎに、３次元ＣＡＤ３０１からの出力情報について説明する。３次元ＣＡＤ３０１では、設計対象のＣＡＤデータを、シミュレータ３０２に読み込ませることが可能なファセットと呼ばれる３角形パッチデータ（ポリゴン）に変換する。
【００２７】
図５は、ＣＡＤデータとファセットとの関係を示す説明図である。ＣＡＤデータ５００から、ＣＡＤデータ５００により特定される部品表面をポリゴン化したファセット集合５０１が抽出される。各ファセットは３角形パッチデータである。ここで、ファセットｆに着目する。ファセットｆは、３つの頂点ｖ１〜ｖ３の頂点座標（ｘ１，ｙ１，ｚ１）〜（ｘ３，ｙ３，ｚ３）を有する。また、ファセットｆは、法線ベクトルＮＬを有する。
【００２８】
図６は、ファセット情報を示す説明図である。ファセット情報６００において、各ファセットｆｉは、３つの頂点ｖｉ＿１〜ｖｉ＿３の頂点座標（不図示）と、法線ベクトルＮＬｉを有する。ファセット集合は、従来と同様、シミュレータ３０２に出力される。
【００２９】
つぎに、フィーチャについて説明する。ファセット情報６００がＣＡＤデータにより特定される部品表面をポリゴン化したデータ群であるのに対し、フィーチャは、形状の特徴となる要素を抽出した情報である。フィーチャには、フィーチャ種ごとに特徴となる要素が異なる。
【００３０】
図７は、フィーチャ種テーブルを示す説明図である。フィーチャ種テーブル７００において、フィーチャ種は、４種類存在する。Ｔｙｐｅ１がスイープ突起、Ｔｙｐｅ２がスイープ穴、Ｔｙｐｅ３が回転突起、Ｔｙｐｅ４が回転穴である。以下、スイープ型と回転型に分けて説明する。
【００３１】
図８は、スイープ型を示す説明図である。図８において、（Ａ）は、断面が矩形のスイープ型を示す。縦Ｄ１、横Ｄ２の矩形Ｓ１を矢印方向にＤ３だけスイープすることで、四角柱のフィーチャとなる。このフィーチャに、突起属性が付与されていると、Ｔｙｐｅ１となり、穴属性が付与されていると、Ｔｙｐｅ２となる。
【００３２】
（Ｂ）は、断面が円のスイープ型を示す。半径ｒの円Ｓ２を矢印方向にＤ４だけスイープすることで、円柱のフィーチャとなる。このフィーチャに、突起属性が付与されていると、Ｔｙｐｅ１となり、穴属性が付与されていると、Ｔｙｐｅ２となる。
【００３３】
図９は、回転型を示す説明図である。縦Ｄ５、横Ｄ６の矩形Ｓ３をｒ離れた軸Ａ周りに回転角θ分回転させることで、円筒のフィーチャとなる。このフィーチャに、突起属性が付与されていると、Ｔｙｐｅ３となり、穴属性が付与されていると、Ｔｙｐｅ４となる。
【００３４】
Ｔｙｐｅ１とＴｙｐｅ３はともに突起であるため、単独のフィーチャで部品データとなることが可能である。一方、Ｔｙｐｅ２とＴｙｐｅ４はともに穴であるため、それ自体単独のフィーチャで存在できず、Ｔｙｐｅ１またはＴｙｐｅ３のフィーチャと結合する必要がある。
【００３５】
図１０は、フィーチャの合成を示す説明図である。部品データＰは、Ｔｙｐｅ１（スイープ突起）のフィーチャＦａとＴｙｐｅ２（スイープ穴）のフィーチャＦｂとの合成（論理積）により得られる。部品データＰはフィーチャＦｂに相当する円柱状の穴が開いている角筒となる。
【００３６】
図１１は、ＣＡＤデータとフィーチャとファセットとの対応関係を示すテーブルの説明図である。テーブル１１００において、ＣＡＤデータＣＰｊは、形状の特徴要素となるフィーチャと、部品データにより特定される部品を簡略化したファセットと対応する。たとえば、ＣＡＤデータＣＰ１は、単一のフィーチャＦ１に対応する。また、ＣＡＤデータＣＰ１の外形はファセットｆ１〜ｆ１０によりポリゴン化されている。また、ＣＡＤデータＣＰ２は、フィーチャＦ２＿１，Ｆ２＿２の合成フィーチャに対応する。また、ＣＡＤデータＣＰ２の外形はファセットｆ１１〜ｆ３０によりポリゴン化されている。なお、ＣＡＤデータＣＰｊと後述する部品データＰｊとは一対一に対応する。すなわち、ＣＡＤデータＣＰｊのシミュレータ３０２に与えられる部品データは、部品データＰｊとなる。
【００３７】
図１２は、図１１に示した各フィーチャのデータ構造を示す説明図である。各フィーチャは、フィーチャ種、幾何形状、断面情報、スイープ量、回転情報により特定される。幾何形状は、フィーチャの幾何学的な形状を特定する。具体的には、たとえば、フィーチャの形状が柱形状、筒形状、軸の有無、突起／穴…など、フィーチャの形状を認識するための情報である。この幾何形状から、フィーチャが図７に示したＴｙｐｅ１〜Ｔｙｐｅ４のうちどのＴｙｐｅに該当するかを判断することができる。なお、幾何形状のうち、ハッチングが施されていない幾何形状は、フィーチャに実体があることを示す「突起（タイプ）」をあらわしており、ハッチングが施されている幾何形状は、フィーチャに実体がないことを示す「穴（タイプ）」をあらわしている。
【００３８】
断面情報は、断面形状（多角形、円）と形状寸法（多角形の場合は縦横などの辺長、円の場合は半径）を有する。スイープ量は、フィーチャ種がＴｙｐｅ１またはＴｙｐｅ２のときのスイープする量である。スイープする方向も含めてもよい。回転情報は、軸方向と距離と回転角を有する。軸方向は、断面を回転させる回転軸の方向である。距離は、回転軸と断面との間隔である。回転角は、断面を回転軸周りに回転させる回転角である。
【００３９】
（出力情報の具体例）
つぎに、出力情報の具体例について説明する。図１３は、アセンブリ空間内の部品データを示す説明図である。各部品データＰ１〜Ｐ５は、アセンブリ空間内における配置情報Ｍ１〜Ｍ５を有する。配置情報Ｍ１〜Ｍ５とは、たとえば、部品データＰ１〜Ｐ５の配置座標（図中●で表記）と、部品データの向きをあらわす情報（図中の座標系）である。向きをあらわす情報は、たとえば、回転行列によりあらわすことができる。この配置情報Ｍ１〜Ｍ５にしたがってアセンブルすると、部品データＰ１〜Ｐ５を組み合わせたアセンブリＡ１が生成される。
【００４０】
図１４−１〜図１４−５は、部品データを示す説明図である。図１４−１は、部品データＰ１を示している。（Ａ）は部品データＰ１の斜視図、（Ｂ）は部品データＰ１の側面図を示している。部品データＰ１は、単一のフィーチャＦ１により構成されている。部品データＰ１は円形の断面Ｓ１を始点座標（図中○で表記）からｙ軸方向に１４５［ｍｍ］スイープしたフィーチャＦ１である。
【００４１】
図１４−２は、部品データＰ２を示している。（Ａ）は部品データＰ２の斜視図、（Ｂ）は部品データＰ２の側面図、（Ｃ）はフィーチャの合成を示している。部品データＰ２は、Ｔｙｐｅ１（スイープ突起）のフィーチャＦ２＿１とＴｙｐｅ２（スイープ穴）のフィーチャＦ２＿２の合成フィーチャである。フィーチャＦ２＿１は円形の断面Ｓ２＿１を始点座標（図中○で表記）からｙ軸方向に１０［ｍｍ］スイープしたフィーチャである。フィーチャＦ２＿２は円形の断面Ｓ２＿２を始点座標（図中○で表記）からｙ軸方向に１０［ｍｍ］スイープしたフィーチャである。
【００４２】
図１４−３は、部品データＰ３を示している。（Ａ）は部品データＰ３の斜視図、（Ｂ）は部品データＰ３の側面図、（Ｃ）はフィーチャの合成を示している。部品データＰ３は、Ｔｙｐｅ１（スイープ突起）のフィーチャＦ３＿１とＴｙｐｅ２（スイープ穴）のフィーチャＦ３＿２の合成フィーチャである。フィーチャＦ３＿１は円形の断面Ｓ３＿１を始点座標（図中○で表記）からｙ軸方向に１０［ｍｍ］スイープしたフィーチャである。フィーチャＦ３＿２は円形の断面Ｓ３＿２を始点座標（図中○で表記）からｙ軸方向に１０［ｍｍ］スイープしたフィーチャである。
【００４３】
図１４−４は、部品データＰ４を示している。（Ａ）は部品データＰ４の斜視図、（Ｂ）は部品データＰ４の側面図、（Ｃ）はフィーチャの合成を示している。部品データＰ４は、Ｔｙｐｅ１（スイープ突起）のフィーチャＦ４＿１とＴｙｐｅ１（スイープ突起）のフィーチャＦ４＿２の合成フィーチャである。フィーチャＦ４＿１は円形の断面Ｓ４＿１を始点座標（図中○で表記）からｙ軸方向に１４５［ｍｍ］スイープしたフィーチャである。フィーチャＦ４＿２は矩形の断面Ｓ４＿２を始点座標（図中○で表記）からｙ軸方向に２５［ｍｍ］スイープしたフィーチャである。
【００４４】
図１４−５は、部品データＰ５を示している。（Ａ）は部品データＰ５の斜視図、（Ｂ）は部品データＰ５の側面図、（Ｃ）はフィーチャの合成を示している。部品データＰ５は、Ｔｙｐｅ１（スイープ突起）のフィーチャＦ５＿１とＴｙｐｅ２（スイープ穴）のフィーチャＦ５＿２の合成フィーチャである。フィーチャＦ５＿１は円形の断面Ｓ５＿１を始点座標（図中○で表記）からｙ軸方向に２５［ｍｍ］スイープしたフィーチャである。フィーチャＦ５＿２は円形の断面Ｓ５＿２を始点座標（図中○で表記）からｙ軸方向に２５［ｍｍ］スイープしたフィーチャである。
【００４５】
（始点座標と終点座標の求め方）
ここで、図１４−１〜図１４−５に示した始点座標と終点座標の求め方について説明する。図１５は、スイープ型の場合の始点座標と終点座標の求め方を示す説明図である。図１５に示したフィーチャＦａは、断面Ｓａをｘ軸方向に距離ｄ分スイープしたフィーチャである。始点ｓｐは断面Ｓａの中心に位置し、その始点座標は（ｘ，ｙ，ｚ）である。終点ｅｐの終点座標は始点ｓｐをｘ軸方向に距離ｄ分スイープしたときの座標（ｘ＋ｄ，ｙ，ｚ）となる。
【００４６】
図１６は、回転型の場合の始点座標と終点座標の求め方を示す説明図である。図１６に示したフィーチャＦｂは、断面Ｓｂをｚ軸と同方向の回転軸Ａｂの軸周りに回転角θ分回転させたフィーチャとなる。まず、断面Ｓｂの頂点ａ〜ｄから回転軸Ａｂに対して垂線を引く。その交点をｐａ〜ｐｄとする。各交点ｐａ〜ｐｄから２つ取り出して、すべての組み合わせの交点間距離を算出する。交点間距離が最大となる一対の交点をそれぞれ始点と終点にする。図１６の場合は、交点ｐａと交点ｐｄの交点間距離が最大となるため、交点ｐａが始点（終点）となり、交点ｐｄが終点（始点）となる。
【００４７】
図１７−１〜図１７−５は、部品データＰ１〜Ｐ５の部品情報ＰＩ１〜ＰＩ５を示す説明図である。図１７−１〜図１７−５において、部品情報ＰＩ１〜ＰＩ５は、それぞれ形状情報を有する。形状情報とは、部品データＰ１〜Ｐ５の形状の特徴要素であるフィーチャと部品データＰ１〜Ｐ５の外形をポリゴン化したファセットを有する。たとえば、部品情報ＰＩ２においては、部品データＰ２の合成元であるフィーチャＦ２＿１，Ｆ２＿２を有する。具体的には、図１２に示したフィーチャＦ２＿１，Ｆ２＿２の項目のデータを保持する。
【００４８】
また、図６に示したファセットｆ１１〜ｆ３０のファセット情報６００（頂点座標、法線ベクトル）も有する。また、軸／穴フラグは、そのフィーチャが軸なのか穴なのかを識別するフラグである。フラグの設定については後述する。始点座標および終点座標は、図１６または図１７に示した求め方により算出する。
【００４９】
図１８は、３次元ＣＡＤ３０１から最終的に出力されるアセンブリ情報３０３を示す説明図である。アセンブリ情報３０３は、アセンブリごとに、部品データ群を有する。アセンブリを構成する部品データ群は、部品名、配置情報および部品情報により特定される。たとえば、アセンブリＡ１については、５個の部品データＰ１〜Ｐ５の部品データ群からなり、それぞれの部品データＰ１〜Ｐ５の配置情報はＭ１〜Ｍ５であり（図１３を参照）、部品情報はＰＩ１〜ＰＩ５である（図１７−１〜図１７−５を参照）。
【００５０】
（３次元ＣＡＤ３０１の機能的構成）
図１９は、３次元ＣＡＤ３０１の機能的構成を示すブロック図である。３次元ＣＡＤ３０１は、ＣＡＤデータ作成部１９０１と、ファセット生成部１９０２と、フィーチャ生成部１９０３と、抽出部１９０４と、決定部１９０５と、算出部１９０６と、部品データ生成部１９０７と、出力部１９０８と、を含む構成である。これら制御部（ＣＡＤデータ作成部１９０１〜出力部１９０８）は、具体的には、たとえば、図４に示したＲＯＭ４０２、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶領域に記憶されたプログラムをＣＰＵ４０１に実行させることにより、または、Ｉ／Ｆ４０９により、その機能を実現する。
【００５１】
ＣＡＤデータ作成部１９０１は、マウスなどの入力装置をオペレータが操作することで、ＣＡＤデータを作成する機能を有する。ＣＡＤデータ作成部１９０１は、具体的には、たとえば、ＣＡＤデータ作成機能のほか、ＣＡＤデータの編集機能、設計対象モデルの寸法や断面形状の入力条件の制御機能、ＣＡＤ全般の制御機能、ＣＡＤデータの管理機能を有する。これらは、一般的な３次元ＣＡＤ３０１が備える機能である。作成されたＣＡＤデータは、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶領域に記憶される。
【００５２】
ファセット生成部１９０２は、ＣＡＤデータからファセットを生成する機能を有する。具体的には、たとえば、図５に示したように、ＣＡＤデータをファセットに変換して、図６に示したようなファセット情報６００を生成する。ファセット生成部１９０２も、一般的な３次元ＣＡＤ３０１が備える機能である。生成されたファセット情報６００は、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶領域に記憶される。
【００５３】
フィーチャ生成部１９０３は、ＣＡＤデータからフィーチャを生成する機能を有する。具体的には、図７〜図１２に示した処理を実行する。たとえば、図１１に示したフィーチャのデータ構造を生成する。フィーチャ生成部１９０３も、一般的な３次元ＣＡＤ３０１が備える機能である。生成されたフィーチャは、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶領域に記憶される。抽出部１９０４、決定部１９０５、算出部１９０６、および部品データ生成部１９０７は、図３に示した部品データ生成機能３１１に相当する機能である。
【００５４】
抽出部１９０４は、部品をあらわすＣＡＤデータから部品を構成する形状の一部または全部を特徴付けるデータ構造を有するフィーチャを抽出する機能を有する。具体的には、フィーチャ生成部１９０３によって生成されたフィーチャを抽出する。フィーチャの中には、立方体や角柱、円柱、角筒、円筒のようにそれ自体で部品全体をあらわすフィーチャや、柱の穴形状、筒の穴形状のようにそれ自体では部品にはならず、立方体や角柱、円柱、角筒、角柱など実体のあるフィーチャと合成することで部品全体をあらわすフィーチャが存在するが、ここでは、いずれのフィーチャも抽出する。抽出されたフィーチャは、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶領域に記憶される。
【００５５】
決定部１９０５は、抽出部１９０４によって抽出されたフィーチャのデータ構造に基づいて、フィーチャの特徴を、円柱形状、円筒形状、円筒の穴形状、またはいずれにも該当しない他の形状の中から決定する機能を有する。具体的には、たとえば、フィーチャが、部品の断面を押し出す突起タイプであり、かつ、断面が円である場合、フィーチャの特徴を円柱形状に決定する（Ｔｙｐｅ１に該当）。
【００５６】
さらに、フィーチャが、部品の断面を押し出す穴タイプのフィーチャであり、かつ、断面が円である場合、フィーチャの特徴を円筒の穴形状に決定する（Ｔｙｐｅ２に該当）。また、部品の断面が円以外の図形である場合、フィーチャの特徴のいずれにも該当しない他の形状に決定する（Ｔｙｐｅ１〜Ｔｙｐｅ４のいずれにも該当しない）。
【００５７】
また、フィーチャが、部品の断面を特定の回転軸周りに回転させる突起タイプであり、かつ、断面と特定の回転軸とが交差する場合、フィーチャの特徴を円柱形状に決定する（Ｔｙｐｅ３に該当）。また、フィーチャが、部品の断面を特定の回転軸周りに回転させる突起タイプであり、かつ、断面と特定の回転軸とが交差しない場合、フィーチャの特徴を円筒形状に決定する（Ｔｙｐｅ３に該当）。さらに、フィーチャが、部品の断面を特定の回転軸周りに回転させる穴タイプである場合、フィーチャの特徴を円筒の穴形状に決定する（Ｔｙｐｅ４に該当）。なお、決定結果は、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶領域に記憶される。
【００５８】
算出部１９０６は、決定部１９０５によって、フィーチャの特徴が円柱形状、円筒形状、または円筒の穴形状に決定された場合（Ｔｙｐｅ１〜Ｔｙｐｅ４に該当）、当該形状の両端の配置位置を算出する機能を有する。具体的には、図１２に示したフィーチャのデータ構造を用いて、図１４−１〜図１４−５、図１５、図１６に示したように、両端位置を算出する。一方、決定部１９０５によって、いずれにも該当しない他の形状（たとえば、角柱、角筒、角筒の穴形状）に決定された場合、両端位置を算出しない。これにより、無駄な計算処理を回避でき、計算負荷の低減および計算速度の向上を図ることができる。なお、算出結果は、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶領域に記憶される。
【００５９】
部品データ生成部１９０７は、決定部１９０５によって決定されたフィーチャの特徴と算出部１９０６によって算出された配置位置とをフィーチャごとに関連付けることにより、フィーチャを構成要素とする部品データを生成する機能を有する。具体的には、たとえば、図１７−１〜図１７−５に示したように、部品ごとに部品情報ＰＩ１〜ＰＩ５を生成して、図１８に示したように、配置情報Ｍ１〜Ｍ５と対応付けがされたアセンブリ情報３０３を生成する。生成されたアセンブリ情報３０３は、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶領域に記憶される。
【００６０】
出力部１９０８は、部品データ生成部１９０７によって生成されたアセンブリ情報３０３を出力する機能を有する。出力部１９０８による出力形式としては、ディスプレイへの表示、記憶領域への記憶、シミュレータ３０２など外部装置への送信がある。ディスプレイへの表示により、ＣＡＤデータ３２０やアセンブリ情報３０３を視認することができる。また、記憶領域への記憶により、ＣＡＤデータ３２０やアセンブリ情報３０３を保存しておくことができ、再度呼び出すことができる。
【００６１】
また、外部装置への送信により、外部装置で利用することができる。たとえば、部品情報ＰＩ１〜ＰＩ５には、部品ごとにファセット情報６００が含まれている。したがって、シミュレータ３０２は、アセンブリ情報３０３を受信すると、部品情報ＰＩ１〜ＰＩ５に含まれているファセット情報６００を用いて通常どおりシミュレーションを実行することができる。
【００６２】
（アセンブリ情報生成処理手順）
図２０は、３次元ＣＡＤ３０１におけるアセンブリ情報生成処理手順を示すフローチャートである。図２０において、３次元ＣＡＤ３０１は、未処理のＣＡＤデータがあるか否かを判断する（ステップＳ２００１）。未処理のＣＡＤデータがある場合（ステップＳ２００１：Ｙｅｓ）、未処理のＣＡＤデータを１つ選択する（ステップＳ２００２）。そして、ファセット生成部１９０２によりファセット情報６００を生成するとともに、フィーチャ生成部１９０３によりフィーチャを生成する（ステップＳ２００３）。
【００６３】
このあと、部品データ生成処理を実行して（ステップＳ２００４）、ステップＳ２００１に戻る。ステップＳ２００１において、未処理のＣＡＤデータがない場合（ステップＳ２００１：Ｎｏ）、アセンブリ情報３０３を出力する（ステップＳ２００５）。つぎに、図２０に示した部品データ生成処理の詳細な処理手順について説明する。
【００６４】
図２１は、部品データ生成処理の詳細な処理手順を示すフローチャートである。図２１において、未処理のフィーチャがあるか否かを判断する（ステップＳ２１０１）。未処理のフィーチャがある場合（ステップＳ２１０１：Ｙｅｓ）、未処理のフィーチャを１つ選択する（ステップＳ２１０２）。そして、決定部１９０５により、フィーチャ種を判断する（ステップＳ２１０３）。フィーチャ種が回転型、すなわち、Ｔｙｐｅ３またはＴｙｐｅ４である場合（ステップＳ２１０３：回転型）、図２２に移行する。
【００６５】
また、フィーチャ種がスイープ型、すなわち、Ｔｙｐｅ１またはＴｙｐｅ２である場合（ステップＳ２１０３：スイープ型）、断面種を判断する（ステップＳ２１０４）。断面種が円である場合（ステップＳ２１０４：円）、フィーチャ種が突起タイプ（Ｔｙｐｅ１、Ｔｙｐｅ３）か穴タイプ（Ｔｙｐｅ２、Ｔｙｐｅ４）かを判断する（ステップＳ２１０５）。突起タイプである場合（ステップＳ２１０５：突起）、軸／穴フラグを“０”（軸）に設定して（ステップＳ２１０６）、ステップＳ２１０８に移行する。一方、穴タイプである場合（ステップＳ２１０５：穴）、軸／穴フラグを“１”（穴）に設定して（ステップＳ２１０７）、ステップＳ２１０８に移行する。
【００６６】
ステップＳ２１０８では、算出部１９０６により、始点座標と終点座標を算出する（ステップＳ２１０８）。このあと、軸／穴フラグ、始点座標および終点座標を、図１７−１〜図１７−５に示したように、部品情報に追加して（ステップＳ２１０９）、ステップＳ２１０１に戻る。また、ステップＳ２１０４において、断面種が円以外の図形である場合（ステップＳ：円以外）、ステップＳ２１０１に戻る。
【００６７】
同様に、ステップＳ２１０３において、フィーチャ種が回転型でもスイープ型でもない場合（ステップＳ２１０３：それ以外）、ステップＳ２１０１に戻る。ステップＳ２１０１において、未処理のフィーチャがない場合（ステップＳ２１０１：Ｎｏ）、図１１に示したテーブルを参照して、部品ごとにファセット情報６００とリンクをとることで、アセンブリ情報３０３を生成する（ステップＳ２１１０）。そして、ステップＳ２００５に移行する。つぎに、図２２に示した処理手順について説明する。
【００６８】
図２２は、部品データ生成処理の詳細な処理手順を示すフローチャートである。図２２において、フィーチャ種が回転型、すなわち、Ｔｙｐｅ３またはＴｙｐｅ４である場合（ステップＳ２１０３：回転型）、フィーチャ種が回転突起であるか否かを判断する（ステップＳ２２０１）。回転突起でない場合（ステップＳ２２０１：Ｎｏ）、図１２に示した軸／穴フラグを“１”（穴）に設定して（ステップＳ２２０２）、ステップＳ２２０５に移行する。
【００６９】
一方、回転突起である場合（ステップＳ２２０１：Ｙｅｓ）、フィーチャを構成する回転軸と断面との交差があるか否かを判断する（ステップＳ２２０３）。交差しない場合（ステップＳ２２０３：Ｎｏ）、回転軸と断面との間には間隔があるため、回転軸周りに回転すると、円柱状の穴を持つ円筒となる。したがって、軸／穴フラグを“１”に設定して（ステップＳ２２０２）、ステップＳ２２０５に移行する。
【００７０】
一方、交差する場合（ステップＳ２２０３：Ｙｅｓ）、回転軸と断面との間には間隔がないため、回転軸周りに回転しても穴が生じない。したがって、軸／穴フラグを“０”に設定して（ステップＳ２２０４）、ステップＳ２２０５に移行する。ステップＳ２２０５では、算出部１９０６により、始点座標と終点座標を算出する（ステップＳ２２０５）。そして、図２１のステップＳ２１０９に移行する。
【００７１】
（シミュレータ３０２の機能的構成）
図２３は、シミュレータ３０２の機能的構成を示すブロック図である。シミュレータ３０２は、選択部２３０１と、判断部２３０２と、設定部２３０３と、表示制御部２３０４と、受付部２３０６と、を含む構成である。これら制御部（選択部２３０１〜表示制御部２３０４）は、具体的には、たとえば、図４に示したＲＯＭ４０２、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶領域に記憶されたプログラムをＣＰＵ４０１に実行させることにより、または、Ｉ／Ｆ４０９により、その機能を実現する。
【００７２】
選択部２３０１は、アセンブリを構成する部品データ群の中から円柱形状を有する部品データと円筒形状または円筒の穴形状（以下、「円筒／穴形状」という）を有する部品データとを選択する機能を有する。具体的には、３次元ＣＡＤ３０１から得られたアセンブリ情報３０３から円柱形状を有する部品データと円筒／穴形状の部品データを抽出する。選択された部品データは、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶領域に記憶される。
【００７３】
判断部２３０２は、選択部２３０１によって選択された一対の部品データの配置位置と円柱形状の軸と円筒／穴形状の軸とに基づいて、一対の部品データが関節を構成する部品データ対（関節構造）であるか否かを判断する機能を有する。具体的には、円柱形状の軸と円筒／穴形状の軸とが同軸上にあり、かつ、円柱形状の少なくともいずれか一端が円筒／穴形状の両端の間に位置する場合、一対の部品データが関節を構成する部品データ対であると判断する。この判断は、たとえば、判断に先立って、部品データごとに、軸形状リストと穴形状リストを作成する。
【００７４】
図２４は、軸形状リストを示す説明図であり、図２５は、穴形状リストを示す説明図である。軸形状リスト２４００には、部品データを構成するフィーチャに軸／穴フラグ“０”が設定されている部品データの始点座標および終点座標が記録されている。同様に、穴形状リスト２５００には、部品データを構成するフィーチャに軸／穴フラグ“１”が設定されている部品データの始点座標および終点座標が記録されている。
【００７５】
たとえば、部品データＰ１は、軸／穴フラグが“０”であるため、その始点座標および終点座標が軸形状リスト２４００に記録される。また、部品データＰ２は、フィーチャＦ２＿１の軸／穴フラグは“０”であり、フィーチャＦ２＿２の軸／穴フラグは“１”であるため、軸形状リスト２４００および穴形状リスト２５００の両方に、始点座標および終点座標が記録される。
【００７６】
そして、軸形状リスト２４００と穴形状リスト２５００を用いて、一対の部品データが関節を構成する部品データ対であるか否かを判断する。具体的には、軸形状リスト２４００と穴形状リスト２５００からそれぞれ部品データを選び、それぞれの始点座標と終点座標との位置関係から、関節構造となるか否かを判断する。
【００７７】
図２６−１〜図２６−３は、関節構造の判断例を示す説明図である。図２６−１〜図２６−３において、黒丸（●）は、軸形状リスト２４００から選ばれた部品データＰａの始点／終点であり、白丸（○）は、穴形状リスト２５００から選ばれた部品データＰｂの始点／終点である。
【００７８】
図２６−１は、部品データＰａの外側に部品データＰｂが配置される例である。図２６−２は、部品データＰｂの内側に部品データＰａが配置される例である。図２６−３は、部品データＰａと部品データＰｂとが交互に重なっている例である。
【００７９】
なお、部品データＰａの始点および終点を結ぶ線分上に、部品データＰｂの始点および終点が存在するか否か、または、部品データＰｂの始点および終点を結ぶ線分上に、部品データＰａの始点および終点が存在するか否かの判断は、以下のようにおこなう。
【００８０】
図２７は、２点間に存在する点を示す説明図である。２点ａ，ｂ間の線分上に点ｃが位置するか否かの判定は、以下のように実行する。
（１）点ａと点ｂを結ぶベクトルＶａｂと点ａと点ｃとを結ぶベクトルＶａｃとの外積を求める。
（２）（１）の外積が０でない場合、点ｃは線分ａｂ上に存在しない。
（３）（１）の外積が０である場合、ベクトルＶｃａとベクトルＶｃｂの内積を求める。
（４）（３）の内積が０以上の場合、点ｃは線分ａｂ上にない。それ以外の場合、点ｃは線分ａｂ上に存在する。このような判断をおこなうことで、同軸情報リスト２８００が生成される。
【００８１】
図２８は、同軸情報リスト２８００を示す説明図である。図２８では、図１３のアセンブリＡ１において、部品データＰ１が軸部品、部品データＰ２が穴部品として、関節構造を構成する。同様に、部品データＰ１が軸部品、部品データＰ３が穴部品として、関節構造を構成する。また、部品データＰ４が軸部品、部品データＰ５が穴部品として、関節構造を構成する。
【００８２】
また、図２３において、設定部２３０３は、判断部２３０２によって判断された判断結果に基づいて、関節属性を一対の部品データに設定する機能を有する。具体的には、たとえば、同軸情報リスト２８００で軸部品と穴部品の関係にある部品データ対に対して、関節属性を設定する。関節属性とは、一対の部品データのうち少なくともいずれか一方の部品データを他方の部品データの軸に対して回転するように見える関節動作が描画可能なパラメータである。
【００８３】
たとえば、軸部品に対しては、回転パラメータを付与せず、穴部品に対しては、軸部品の軸周りに回転する回転パラメータを付与する。また、これとは逆に、穴部品に対しては、回転パラメータを付与せず、軸部品に対しては、穴部品の軸周りに回転する回転パラメータを付与することとしてもよい。さらに、軸部品に対しては、穴部品の軸周りに回転する回転パラメータを付与するとともに、穴部品に対しては、軸部品の軸周りに回転する回転パラメータを付与することもできる。いずれの関節属性を設定するかは、初期設定により決めておくことができる。なお、判断部２３０２の判断結果は、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶領域に記憶される。
【００８４】
表示制御部２３０４は、設定部２３０３によって関節属性が設定された部品データに関する情報を表示画面２３０５に表示させる機能を有する。具体的には、たとえば、関節属性が付与された部品データ対を含むアセンブリを表示画面２３０５に表示する。このとき表示される部品データの形状は、アセンブリ情報３０３に含まれているファセットにより表示される。
【００８５】
これにより、オペレータがマウスなどの入力装置を用いて回転パラメータが付与された一方の部品データを、関節構造における他方の部品データの軸の回転方向にドラッグすると、画面上において、その方向に一方の部品データが軸周りに回転するように見える。この回転動作自体は、従来技術の項で説明したような既存のツールで実行することができる。
【００８６】
また、表示制御部２３０４は、関節属性が設定された部品データに関する情報として、関節属性の一覧情報を表示する。これにより、どの部品データ対に関節属性が自動設定されたかをオペレータは確認することができる。また、この一覧情報は、関節属性の消去指定を受付可能な情報とすることができる。
【００８７】
図２９は、関節属性の一覧情報を示す説明図である。図２９では、例として、軸部品に対しては、回転パラメータを付与せず、穴部品に対しては、軸部品の軸周りに回転する回転パラメータを付与している。したがって、この一覧情報２９００では、図２８に示した同軸情報リスト２８００中、軸部品となった部品データＰ１，Ｐ４は、回転しない「ベース部品」となり、穴部品となった部品データＰ２，Ｐ３，Ｐ５は、回転駆動する「駆動部品」となる。また、設定解除項目２９０１のチェックボックス２９０２〜２９０４にチェックを入れ、ＯＫボタン２９０５を押すと、その部品データ対の関節属性が解除される。
【００８８】
図３０は、設定解除入力時の関節属性の一覧情報２９００を示す説明図である。図３０では、チェックボックス２９０３にチェックが入力されている。したがって、ＯＫボタン２９０５を押すことにより、部品データＰ１，Ｐ３の関節属性が解除される。したがって、部品データＰ３は、部品データＰ１の軸周りに回転駆動する回転動作の描画はできなくなる。
【００８９】
（シミュレータ３０２による関節属性設定処理手順）
図３１は、シミュレータ３０２による関節属性設定処理手順を示すフローチャートである。図３１において、３次元ＣＡＤ３０１からアセンブリ情報３０３を取得する（ステップＳ３１０１）。そして、取得されたアセンブリ情報３０３内の各アセンブリについて、形状リスト作成処理を実行する（ステップＳ３１０２）。この形状リスト作成処理により、図２４および図２５に示した軸形状リスト２４００および穴形状リスト２５００が作成される。つぎに、関節構造判断処理（ステップＳ３１０３）および関節属性設定処理（ステップＳ３１０４）を実行する。
【００９０】
図３２は、形状リスト作成処理の詳細な処理手順を示すフローチャートである。図３２において、まず、アセンブリ情報３０３の中に、未処理のアセンブリがあるか否かを判断する（ステップＳ３２０１）。未処理のアセンブリがある場合（ステップＳ３２０１：Ｙｅｓ）、未処理のアセンブリを１つ選択する（ステップＳ３２０２）。そして、選択されたアセンブリの中に、未処理の部品データがあるか否かを判断する（ステップＳ３２０３）。未処理の部品データがある場合（ステップＳ３２０３：Ｙｅｓ）、未処理の部品データを１つ選択する（ステップＳ３２０４）。
【００９１】
そして、選択された部品データが軸であるか穴であるかを判断する（ステップＳ３２０５）。具体的には、選択部品データの軸／穴フラグで判断する。軸／穴フラグが“０”であるフィーチャを含む場合（ステップＳ３２０５：Ｙｅｓ）、軸形状リスト２４００に選択部品データを軸部品として追加して（ステップＳ３２０６）、ステップＳ３２０３に戻る。軸／穴フラグが“１”であるフィーチャを含む場合（ステップＳ３２０５：Ｎｏ）、穴形状リスト２５００に選択部品データを穴部品として追加して（ステップＳ３２０７）、ステップＳ３２０３に戻る。
【００９２】
なお、選択部品データが、軸／穴フラグが“０”であるフィーチャと軸／穴フラグが“１”であるフィーチャの合成フィーチャである場合、軸形状リスト２４００および穴形状リスト２５００の両リストに選択部品データを追加して（ステップＳ３２０６、ステップＳ３２０７）、ステップＳ３２０３に戻る。
【００９３】
ステップＳ３２０３において、未処理の部品データがない場合（ステップＳ３２０３：Ｎｏ）、ステップＳ３２０１に戻る。ステップＳ３２０１において、未処理のアセンブリがない場合（ステップＳ３２０１：Ｎｏ）、関節構造判断処理（ステップＳ３１０３）に移行する。
【００９４】
図３３は、関節構造判断処理の詳細な処理手順を示すフローチャートである。図３３において、まず、軸形状リスト２４００に未処理の項目があるか否かを判断する（ステップＳ３３０１）。未処理の項目がある場合（ステップＳ３３０１：Ｙｅｓ）、軸形状リスト２４００の未処理の項目を１つ選択する（ステップＳ３３０２）。そして、穴形状リスト２５００に未処理の項目があるか否かを判断する（ステップＳ３３０３）。
【００９５】
未処理の項目がある場合（ステップＳ３３０３：Ｙｅｓ）、穴形状リスト２５００の未処理の項目を１つ選択する（ステップＳ３３０４）。そして、選択項目間の部品が一致するか否かを判断する（ステップＳ３３０５）。一致する場合（ステップＳ３３０５：Ｙｅｓ）、軸形状リスト２４００からの選択部品データと穴形状リスト２５００からの選択部品データとが同一部品データとなるため、ステップＳ３３０３に戻る。
【００９６】
一方、不一致である場合（ステップＳ３３０５：Ｎｏ）、同軸上に存在するか否かを判断する（ステップＳ３３０６）。具体的には、図２６−１〜図２６−３および図２７で説明した処理をおこなって判断する。同軸上に存在しないと判断された場合（ステップＳ３３０６：Ｎｏ）、ステップＳ３３０３に戻る。一方、同軸上に存在すると判断された場合（ステップＳ３３０６：Ｙｅｓ）、同軸情報リスト２８００に両選択部品データを追加して（ステップＳ３３０７）、ステップＳ３３０３に戻る。
【００９７】
ステップＳ３３０３において、未処理の項目がない場合（ステップＳ３３０３：Ｎｏ）、ステップＳ３３０１に戻る。ステップＳ３３０１において、未処理の項目がない場合（ステップＳ３３０１：Ｎｏ）、関節属性設定処理（ステップＳ３１０４）に移行する。
【００９８】
図３４は、関節属性設定処理（ステップＳ３１０４）の詳細な処理手順を示すフローチャートである。図３４において、同軸情報リスト２８００に未処理の項目があるか否かを判断する（ステップＳ３４０１）。未処理の項目がある場合（ステップＳ３４０１：Ｙｅｓ）、未処理の項目を１つ選択する（ステップＳ３４０２）。そして、選択項目の軸部品及び穴部品に対して、関節属性を設定して（ステップＳ３４０３）、ステップＳ３４０１に戻る。
【００９９】
ステップＳ３４０１において、未処理の項目がない場合（ステップＳ３４０１：Ｎｏ）、出力処理を実行する（ステップＳ３４０４）。具体的には、たとえば、図２９に示した関節属性の一覧情報を表示する。これにより、一連の処理を終了する。なお、図３０に示したように設定解除入力が受け付けられると、その部品データ対については、関節属性が解除される。このあと、ファセットにより部品データが３次元的に描画され、関節属性が設定された部品データについては回転動作の描画処理が実行される。
【０１００】
このように、本実施の形態では、関節属性を自動設定することができるため、オペレータの設計負担の軽減と、シミュレーション結果の信頼性の向上とを図ることにより、設計期間の短縮化を図ることができる。また、ファセットの生成やフィーチャの生成については既存のツールをそのまま使用することができるため、汎用性のあるツールとして提供することができる。したがって、すでに、ファセットの生成機能やフィーチャの生成機能を有する３次元ＣＡＤ３０１についても適用することができる。
【０１０１】
なお、本実施の形態で説明した方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な媒体であってもよい。
【０１０２】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１０３】
（付記１）コンピュータを、
アセンブリを構成する部品データ群の中から円柱形状を有する部品データと円筒形状または円筒の穴形状（以下、「円筒／穴形状」という）を有する部品データとを選択する選択手段、
前記選択手段によって選択された一対の部品データの配置位置と前記円柱形状の軸と前記円筒／穴形状の軸とに基づいて、前記一対の部品データが関節を構成する部品データ対であるか否かを判断する判断手段、
前記判断手段によって判断された判断結果に基づいて、前記一対の部品データのうち少なくともいずれか一方の部品データを他方の部品データの軸に対して回転するように見える関節動作が描画可能な関節属性を前記一対の部品データに設定する設定手段、
として機能させることを特徴とする関節認識プログラム。
【０１０４】
（付記２）前記判断手段は、
前記円柱形状の軸と前記円筒／穴形状の軸とが同軸上にあり、かつ、前記円柱形状の少なくともいずれか一端が前記円筒／穴形状の両端の間に位置する場合、前記一対の部品データが関節を構成する部品データ対であると判断することを特徴とする付記１に記載の関節認識プログラム。
【０１０５】
（付記３）前記設定手段は、
前記一対の部品データのうち前記円柱形状を有する部品データが、前記円筒／穴形状を有する部品データにおける前記円筒／穴形状の軸周りに回転する関節属性を設定することを特徴とする付記１または２に記載の関節認識プログラム。
【０１０６】
（付記４）前記設定手段は、
前記一対の部品データのうち前記円筒／穴形状を有する部品データが、前記円柱形状を有する部品データにおける前記円柱形状の軸周りに回転する関節属性を設定することを特徴とする付記１または２に記載の関節認識プログラム。
【０１０７】
（付記５）前記設定手段は、
前記一対の部品データのうち前記円柱形状を有する部品データが、前記円筒／穴形状を有する部品データにおける前記円筒／穴形状の軸周りに回転するとともに、前記一対の部品データのうち前記円筒／穴形状を有する部品データが、前記円柱形状を有する部品データにおける前記円柱形状の軸周りに回転する関節属性を設定することを特徴とする付記１または２に記載の関節認識プログラム。
【０１０８】
（付記６）前記コンピュータを、
前記設定手段によって前記関節属性が設定された部品データに関する情報を表示画面に表示させる表示制御手段として機能させることを特徴とする付記１〜５のいずれか一つに記載の関節認識プログラム。
【０１０９】
（付記７）前記コンピュータを、
前記設定手段によって前記一対の部品データに設定された関節属性の消去指定を受付可能な情報を表示画面に表示させる表示制御手段、
前記表示制御手段によって前記表示画面に表示された情報に対して、前記関節属性の消去を受け付ける受付手段として機能させ、
前記設定手段は、
前記受付手段によって消去が受け付けられた前記一対の部品データの関節属性を消去することを特徴とする付記１〜５のいずれか一つに記載の関節認識プログラム。
【０１１０】
（付記８）前記コンピュータを、
部品をあらわすＣＡＤデータから前記部品を構成する形状の一部または全部を特徴付けるデータ構造を有するフィーチャを抽出する抽出手段、
前記抽出手段によって抽出されたフィーチャのデータ構造に基づいて、前記フィーチャの特徴を、前記円柱形状、前記円筒／穴形状、またはいずれにも該当しない他の形状の中から決定する決定手段、
前記決定手段によって前記フィーチャの特徴が前記円柱形状または前記円筒／穴形状に決定された場合、当該形状の両端の配置位置を算出する算出手段、
前記決定手段によって決定された前記フィーチャの特徴と前記算出手段によって算出された配置位置とを前記フィーチャごとに関連付けることにより、前記フィーチャを構成要素とする部品データを生成する生成手段として機能させ、
前記選択手段は、
前記アセンブリのうち前記生成手段によって生成された部品データの中から、前記特徴が円柱形状のフィーチャを含む部品データと、前記特徴が前記円筒／穴形状のフィーチャを含む部品データとを選択し、
前記判断手段は、
前記選択手段によって選択された前記円柱形状のフィーチャを含む部品データにおける前記円柱形状の両端の配置位置および前記円柱形状の軸と、前記選択手段によって選択された前記円筒／穴形状のフィーチャを含む部品データにおける前記円筒／穴形状の両端の配置位置および前記円筒／穴形状の軸と、に基づいて、前記一対の部品データが関節を構成する部品データ対であるか否かを判断することを特徴とする付記１〜７のいずれか一つに記載の関節認識プログラム。
【０１１１】
（付記９）前記決定手段は、
前記フィーチャが、前記部品の断面を押し出す突起タイプであり、かつ、前記断面が円である場合、前記フィーチャの特徴を前記円柱形状に決定し、
前記算出手段は、
前記決定手段によって前記フィーチャの特徴が前記円柱形状に決定された場合、当該形状の両端の配置位置を算出し、
前記円柱形状と前記算出手段によって算出された前記円柱形状の配置位置とを関連付けることにより、前記フィーチャを構成要素とする部品データを生成することを特徴とする付記８に記載の関節認識プログラム。
【０１１２】
（付記１０）前記決定手段は、
前記フィーチャが、前記部品の断面を押し出す穴タイプのフィーチャであり、かつ、前記断面が円である場合、前記フィーチャの特徴を前記円筒の穴形状に決定し、
前記算出手段は、
前記決定手段によって前記フィーチャの特徴が前記円筒の穴形状に決定された場合、当該形状の両端の配置位置を算出し、
前記円筒／穴形状と前記算出手段によって算出された前記円筒の穴形状の配置位置とを関連付けることにより、前記フィーチャを構成要素とする部品データを生成することを特徴とする付記８に記載の関節認識プログラム。
【０１１３】
（付記１１）前記決定手段は、
前記部品の断面が円以外の図形である場合、前記フィーチャの特徴を前記いずれにも該当しない他の形状に決定し、
前記算出手段は、
前記決定手段によって前記フィーチャの特徴が前記他の形状に決定された場合、前記フィーチャの配置位置を算出しないことを特徴とする付記９または１０に記載の関節認識プログラム。
【０１１４】
（付記１２）前記決定手段は、
前記フィーチャが、前記部品の断面を特定の回転軸周りに回転させる突起タイプであり、かつ、前記断面と前記特定の回転軸とが交差する場合、前記フィーチャの特徴を前記円柱形状に決定し、
前記算出手段は、
前記決定手段によって前記フィーチャの特徴が前記円柱形状に決定された場合、当該形状の両端の配置位置を算出し、
前記円柱形状と前記算出手段によって算出された前記円柱形状の配置位置とを関連付けることにより、前記フィーチャを構成要素とする部品データを生成することを特徴とする付記８に記載の関節認識プログラム。
【０１１５】
（付記１３）前記決定手段は、
前記フィーチャが、前記部品の断面を特定の回転軸周りに回転させる穴タイプであり、かつ、前記断面と前記特定の回転軸とが交差しない場合、前記フィーチャの特徴を前記円筒形状に決定し、
前記算出手段は、
前記決定手段によって前記フィーチャの特徴が前記円筒形状に決定された場合、当該形状の両端の配置位置を算出し、
前記円筒形状と前記算出手段によって算出された前記円筒形状の配置位置とを関連付けることにより、前記フィーチャを構成要素とする部品データを生成することを特徴とする付記８に記載の関節認識プログラム。
【０１１６】
（付記１４）前記決定手段は、
前記フィーチャが、前記部品の断面を特定の回転軸周りに回転させる穴タイプである場合、前記フィーチャの特徴を前記円筒の穴形状に決定し、
前記算出手段は、
前記決定手段によって前記フィーチャの特徴が前記円筒の穴形状に決定された場合、当該形状の両端の配置位置を算出し、
前記円筒／穴形状と前記算出手段によって算出された前記円筒の穴形状の配置位置とを関連付けることにより、前記フィーチャを構成要素とする部品データを生成することを特徴とする付記８に記載の関節認識プログラム。
【０１１７】
（付記１５）コンピュータを、
部品をあらわすＣＡＤデータから前記部品を構成する形状の一部または全部を特徴付けるデータ構造を有するフィーチャを抽出する抽出手段、
前記抽出手段によって抽出されたフィーチャのデータ構造に基づいて、前記フィーチャの特徴を、円柱形状、円筒形状、円筒の穴形状、またはいずれにも該当しない形状の中から決定する決定手段、
前記決定手段によって前記フィーチャの特徴が前記円柱形状、前記円筒形状、または前記円筒の穴形状に決定された場合、当該形状の両端の配置位置を算出する算出手段、
前記決定手段によって決定された前記フィーチャの特徴と前記算出手段によって算出された配置位置とを前記フィーチャごとに関連付けることにより、前記フィーチャを構成要素とする部品データを生成する生成手段、
前記生成手段によって生成された部品データを、当該部品データに関節属性を設定するコンピュータに出力する出力手段、
として機能させることを特徴とする部品データ生成プログラム。
【０１１８】
（付記１６）前記決定手段は、
前記フィーチャが、前記部品の断面を押し出す突起タイプであり、かつ、前記断面が円である場合、前記フィーチャの特徴を前記円柱形状に決定し、
前記算出手段は、
前記決定手段によって前記フィーチャの特徴が前記円柱形状に決定された場合、当該形状の両端の配置位置を算出し、
前記円柱形状と前記算出手段によって算出された前記円柱形状の配置位置とを関連付けることにより、前記フィーチャを構成要素とする部品データを生成することを特徴とする付記１５に記載の部品データ生成プログラム。
【０１１９】
（付記１７）前記決定手段は、
前記フィーチャが、前記部品の断面を押し出す穴タイプのフィーチャであり、かつ、前記断面が円である場合、前記フィーチャの特徴を前記円筒の穴形状に決定し、
前記算出手段は、
前記決定手段によって前記フィーチャの特徴が前記円筒の穴形状に決定された場合、当該形状の両端の配置位置を算出し、
前記円筒／穴形状と前記算出手段によって算出された前記円筒の穴形状の配置位置とを関連付けることにより、前記フィーチャを構成要素とする部品データを生成することを特徴とする付記１５に記載の部品データ生成プログラム。
【０１２０】
（付記１８）前記決定手段は、
前記部品の断面が円以外の図形である場合、前記フィーチャの特徴を前記いずれにも該当しない他の形状に決定し、
前記算出手段は、
前記決定手段によって前記フィーチャの特徴が前記他の形状に決定された場合、前記フィーチャの配置位置を算出しないことを特徴とする付記１６または１７に記載の部品データ生成プログラム。
【０１２１】
（付記１９）前記決定手段は、
前記フィーチャが、前記部品の断面を特定の回転軸周りに回転させる突起タイプであり、かつ、前記断面と前記特定の回転軸とが交差する場合、前記フィーチャの特徴を前記円柱形状に決定し、
前記算出手段は、
前記決定手段によって前記フィーチャの特徴が前記円柱形状に決定された場合、当該形状の両端の配置位置を算出し、
前記円柱形状と前記算出手段によって算出された前記円柱形状の配置位置とを関連付けることにより、前記フィーチャを構成要素とする部品データを生成することを特徴とする付記１５に記載の部品データ生成プログラム。
【０１２２】
（付記２０）前記決定手段は、
前記フィーチャが、前記部品の断面を特定の回転軸周りに回転させる突起タイプであり、かつ、前記断面と前記特定の回転軸とが交差しない場合、前記フィーチャの特徴を前記円筒形状に決定し、
前記算出手段は、
前記決定手段によって前記フィーチャの特徴が前記円筒形状に決定された場合、当該形状の両端の配置位置を算出し、
前記円筒形状と前記算出手段によって算出された前記円筒形状の配置位置とを関連付けることにより、前記フィーチャを構成要素とする部品データを生成することを特徴とする付記１５に記載の部品データ生成プログラム。
【０１２３】
（付記２１）前記決定手段は、
前記フィーチャが、前記部品の断面を特定の回転軸周りに回転させる穴タイプである場合、前記フィーチャの特徴を前記円筒の穴形状に決定し、
前記算出手段は、
前記決定手段によって前記フィーチャの特徴が前記円筒の穴形状に決定された場合、当該形状の両端の配置位置を算出し、
前記円筒の穴形状と前記算出手段によって算出された前記円筒の穴形状の配置位置とを関連付けることにより、前記フィーチャを構成要素とする部品データを生成することを特徴とする付記１５に記載の部品データ生成プログラム。
【０１２４】
（付記２２）アセンブリを構成する部品データ群の中から円柱形状を有する部品データと円筒形状または円筒の穴形状（以下、「円筒／穴形状」という）を有する部品データとを選択する選択手段と、
前記選択手段によって選択された一対の部品データの配置位置と前記円柱形状の軸と前記円筒／穴形状の軸とに基づいて、前記一対の部品データが関節を構成する部品データ対であるか否かを判断する判断手段と、
前記判断手段によって判断された判断結果に基づいて、前記一対の部品データのうち少なくともいずれか一方の部品データを他方の部品データの軸に対して回転するように見える関節動作が描画可能な関節属性を前記一対の部品データに設定する設定手段と、
を備えることを特徴とする関節認識装置。
【０１２５】
（付記２３）部品をあらわすＣＡＤデータから前記部品を構成する形状の一部または全部を特徴付けるデータ構造を有するフィーチャを抽出する抽出手段と、
前記抽出手段によって抽出されたフィーチャのデータ構造に基づいて、前記フィーチャの特徴を、円柱形状、円筒形状、円筒の穴形状、またはいずれにも該当しない形状の中から決定する決定手段と、
前記決定手段によって前記フィーチャの特徴が前記円柱形状、前記円筒形状、または前記円筒の穴形状に決定された場合、当該形状の両端の配置位置を算出する算出手段と、
前記決定手段によって決定された前記フィーチャの特徴と前記算出手段によって算出された配置位置とを前記フィーチャごとに関連付けることにより、前記フィーチャを構成要素とする部品データを生成する生成手段と、
前記生成手段によって生成された部品データを、当該部品データに関節属性を設定するコンピュータに出力する出力手段と、
を備えることを特徴とする部品データ生成装置。
【０１２６】
（付記２４）制御手段および記憶手段を備えるコンピュータが、
前記制御手段により、前記記憶手段に記憶されているアセンブリを構成する部品データ群の中から円柱形状を有する部品データと円筒形状または円筒の穴形状（以下、「円筒／穴形状」という）を有する部品データとを選択する選択工程と、
前記制御手段により、前記選択工程によって選択された一対の部品データの配置位置と前記円柱形状の軸と前記円筒／穴形状の軸とに基づいて、前記一対の部品データが関節を構成する部品データ対であるか否かを判断する判断工程と、
前記制御手段により、前記判断工程によって判断された判断結果に基づいて、前記一対の部品データのうち少なくともいずれか一方の部品データを他方の部品データの軸に対して回転するように見える関節動作が描画可能な関節属性を前記一対の部品データに設定して、前記記憶手段に記憶する設定工程と、
を実行することを特徴とする関節認識方法。
【０１２７】
（付記２５）制御手段および記憶手段を備えるコンピュータが、
前記制御手段により、前記記憶手段に記憶されている部品をあらわすＣＡＤデータから前記部品を構成する形状の一部または全部を特徴付けるデータ構造を有するフィーチャを抽出する抽出工程と、
前記制御手段により、前記抽出工程によって抽出されたフィーチャのデータ構造に基づいて、前記フィーチャの特徴を、円柱形状、円筒形状、円筒の穴形状、またはいずれにも該当しない形状の中から決定する決定工程と、
前記制御手段により、前記決定工程によって前記フィーチャの特徴が前記円柱形状、前記円筒形状、または前記円筒の穴形状に決定された場合、当該形状の両端の配置位置を算出する算出工程と、
前記制御手段により、前記決定工程によって決定された前記フィーチャの特徴と前記算出工程によって算出された配置位置とを前記フィーチャごとに関連付けることにより、前記フィーチャを構成要素とする部品データを生成して、前記記憶手段に記憶する生成工程と、
前記制御手段により、前記生成工程によって生成された部品データを、当該部品データに関節属性を設定するコンピュータに出力する出力工程と、
を実行することを特徴とする部品データ生成方法。
【図面の簡単な説明】
【０１２８】
【図１】部品データの一例を示す説明図である。
【図２】図１に示した部品データ対のアセンブリ状態を示す説明図である。
【図３】本実施の形態の設計支援システムのシステム構成図である。
【図４】実施の形態にかかるコンピュータ（３次元ＣＡＤまたはシミュレータ）のハードウェア構成を示すブロック図である。
【図５】ＣＡＤデータとファセットとの関係を示す説明図である。
【図６】ファセット情報を示す説明図である。
【図７】フィーチャ種テーブルを示す説明図である。
【図８】スイープ型を示す説明図である。
【図９】回転型を示す説明図である。
【図１０】フィーチャの合成を示す説明図である。
【図１１】ＣＡＤデータとフィーチャとファセットとの対応関係を示すテーブルの説明図である。
【図１２】図１１に示した各フィーチャのデータ構造を示す説明図である。
【図１３】アセンブリ空間内の部品データを示す説明図である。
【図１４−１】部品データを示す説明図（その１）である。
【図１４−２】部品データを示す説明図（その２）である。
【図１４−３】部品データを示す説明図（その３）である。
【図１４−４】部品データを示す説明図（その４）である。
【図１４−５】部品データを示す説明図（その５）である。
【図１５】スイープ型の場合の始点座標と終点座標の求め方を示す説明図である。
【図１６】回転型の場合の始点座標と終点座標の求め方を示す説明図である。
【図１７−１】部品データの部品情報を示す説明図（その１）である。
【図１７−２】部品データの部品情報を示す説明図（その２）である。
【図１７−３】部品データの部品情報を示す説明図（その３）である。
【図１７−４】部品データの部品情報を示す説明図（その４）である。
【図１７−５】部品データの部品情報を示す説明図（その５）である。
【図１８】３次元ＣＡＤから最終的に出力されるアセンブリ情報を示す説明図である。
【図１９】３次元ＣＡＤの機能的構成を示すブロック図である。
【図２０】３次元ＣＡＤにおけるアセンブリ情報生成処理手順を示すフローチャートである。
【図２１】部品データ生成処理の詳細な処理手順を示すフローチャートである。
【図２２】部品データ生成処理の詳細な処理手順を示すフローチャートである。
【図２３】シミュレータの機能的構成を示すブロック図である。
【図２４】軸形状リストを示す説明図である。
【図２５】穴形状リストを示す説明図である。
【図２６−１】関節構造の判断例を示す説明図（その１）である。
【図２６−２】関節構造の判断例を示す説明図（その２）である。
【図２６−３】関節構造の判断例を示す説明図（その３）である。
【図２７】２点間に存在する点を示す説明図である。
【図２８】同軸情報リストを示す説明図である。
【図２９】関節属性の一覧情報を示す説明図である。
【図３０】設定解除入力時の関節属性の一覧情報を示す説明図である。
【図３１】シミュレータによる関節属性設定処理手順を示すフローチャートである。
【図３２】形状リスト作成処理の詳細な処理手順を示すフローチャートである。
【図３３】関節構造判断処理の詳細な処理手順を示すフローチャートである。
【図３４】関節属性設定処理の詳細な処理手順を示すフローチャートである。
【符号の説明】
【０１２９】
３００  設計支援システム
３０２  シミュレータ
７００  フィーチャ種テーブル
１１００  テーブル
１９０１  ＣＡＤデータ作成部
１９０２  ファセット生成部
１９０３  フィーチャ生成部
１９０４  抽出部
１９０５  決定部
１９０６  算出部
１９０７  部品データ生成部
１９０８  出力部
２３０１  選択部
２３０２  判断部
２３０３  設定部
２３０４  表示制御部
２３０６  受付部
２４００  軸形状リスト
２５００  穴形状リスト
２８００  同軸情報リスト
２９００  一覧情報
【図１】
0005018595.tif 000002
【図２】
0005018595.tif 000003
【図３】
0005018595.tif 000004
【図４】
0005018595.tif 000005
【図５】
0005018595.tif 000006
【図６】
0005018595.tif 000007
【図７】
0005018595.tif 000008
【図８】
0005018595.tif 000009
【図９】
0005018595.tif 000010
【図１０】
0005018595.tif 000011
【図１１】
0005018595.tif 000012
【図１２】
0005018595.tif 000013
【図１３】
0005018595.tif 000014
【図１４−１】
0005018595.tif 000015
【図１４−２】
0005018595.tif 000016
【図１４−３】
0005018595.tif 000017
【図１４−４】
0005018595.tif 000018
【図１４−５】
0005018595.tif 000019
【図１５】
0005018595.tif 000020
【図１６】
0005018595.tif 000021
【図１７−１】
0005018595.tif 000022
【図１７−２】
0005018595.tif 000023
【図１７−３】
0005018595.tif 000024
【図１７−４】
0005018595.tif 000025
【図１７−５】
0005018595.tif 000026
【図１８】
0005018595.tif 000027
【図１９】
0005018595.tif 000028
【図２０】
0005018595.tif 000029
【図２１】
0005018595.tif 000030
【図２２】
0005018595.tif 000031
【図２３】
0005018595.tif 000032
【図２４】
0005018595.tif 000033
【図２５】
0005018595.tif 000034
【図２６−１】
0005018595.tif 000035
【図２６−２】
0005018595.tif 000036
【図２６−３】
0005018595.tif 000037
【図２７】
0005018595.tif 000038
【図２８】
0005018595.tif 000039
【図２９】
0005018595.tif 000040
【図３０】
0005018595.tif 000041
【図３１】
0005018595.tif 000042
【図３２】
0005018595.tif 000043
【図３３】
0005018595.tif 000044
【図３４】
0005018595.tif 000045