(57)【特許請求の範囲】
【請求項１】
３次元モデルに含まれる形状を他の形状に置き換えることで新たな３次元モデルを作成し、当該新たな３次元モデルにおいて発生したフィーチャーの参照関係の異常の修復作業を支援するための情報処理装置であって、
置き換え後の３次元モデルに含まれるフィーチャーのうち、前記置き換えによって参照先の要素が不明となったフィーチャーを取得する第１の取得手段と、
置き換え前の３次元モデルに含まれるフィーチャーのうち、前記第１の取得手段で取得した前記置き換え後のフィーチャーに対応する前記置き換え前のフィーチャーを取得する第２の取得手段と、
前記置き換え前の３次元モデルに含まれる要素のうち、前記第２の取得手段で取得したフィーチャーの参照先の要素を特定する特定手段と、
前記置き換え後の３次元モデルに含まれる要素のうち、前記特定手段で特定した要素に近似する位置の要素を抽出する抽出手段と、
前記抽出手段で抽出した要素を、前記第１の取得手段で取得したフィーチャーの参照先の要素の候補として表示する表示制御手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記表示制御手段は、前記特定手段で特定した要素を識別表示した前記置き換え前の３次元モデルと、前記抽出手段で抽出した要素を識別表示した前記置き換え後の３次元モデルとを比較表示することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置は、
前記抽出手段で抽出された要素と接する要素を選択する選択手段を更に備え、
前記表示制御手段は、前記選択手段で選択された要素を、前記第１の取得手段で取得したフィーチャーの参照先の要素の候補として更に表示することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記表示制御手段は、ユーザからの指示に応じて、前記抽出手段で抽出した要素を前記置き換え後の３次元モデルにおいて表示または非表示に切り替えることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記他の形状は、前記３次元モデルを作成した３次元ＣＡＤアプリケーションとは異なる３次元ＣＡＤアプリケーションで作成された形状であることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
３次元モデルに含まれる形状を他の形状に置き換えることで新たな３次元モデルを作成し、当該新たな３次元モデルにおいて発生したフィーチャーの参照関係の異常の修復作業を支援するための情報処理装置の制御方法であって、
前記情報処理装置の第１の取得手段が、置き換え後の３次元モデルに含まれるフィーチャーのうち、前記置き換えによって参照先の要素が不明となったフィーチャーを取得する第１の取得ステップと、
前記情報処理装置の第２の取得手段が、置き換え前の３次元モデルに含まれるフィーチャーのうち、前記第１の取得ステップで取得したフィーチャーに対応するフィーチャーを取得する第２の取得ステップと、
前記情報処理装置の特定手段が、前記置き換え前の３次元モデルに含まれる要素のうち、前記第２の取得ステップで取得したフィーチャーの参照先の要素を特定する特定ステップと、
前記情報処理装置の抽出手段が、前記置き換え後の３次元モデルに含まれる要素のうち、前記特定ステップで特定した要素に近似する要素を抽出する抽出ステップと、
前記情報処理装置の表示制御手段が、前記抽出ステップで抽出した要素を、前記第１の取得ステップで取得したフィーチャーの参照先の要素の候補として表示する表示制御ステップと
を備えることを特徴とする情報処理装置の制御方法。
【請求項７】
３次元モデルに含まれる形状を他の形状に置き換えることで新たな３次元モデルを作成し、当該新たな３次元モデルにおいて発生したフィーチャーの参照関係の異常の修復作業を支援するための情報処理装置の制御方法を実行可能なプログラムであって、
前記情報処理装置を、
置き換え後の３次元モデルに含まれるフィーチャーのうち、前記置き換えによって参照先の要素が不明となったフィーチャーを取得する第１の取得手段と、
置き換え前の３次元モデルに含まれるフィーチャーのうち、前記第１の取得手段で取得したフィーチャーに対応するフィーチャーを取得する第２の取得手段と、
前記置き換え前の３次元モデルに含まれる要素のうち、前記第２の取得手段で取得したフィーチャーの参照先の要素を特定する特定手段と、
前記置き換え後の３次元モデルに含まれる要素のうち、前記特定手段で特定した要素に近似する要素を抽出する抽出手段と、
前記抽出手段で抽出した要素を、前記第１の取得手段で取得したフィーチャーの参照先の要素の候補として表示する表示制御手段
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元ＣＡＤデータの作成する技術に関し、特に、ある３次元ＣＡＤアプリケーションで作成した３次元ＣＡＤデータを他の３次元ＣＡＤアプリケーションで編集する際に起こりうる不具合の修復を支援するための技術に関する。
【背景技術】
【０００２】
設計（モデリング）に３次元ＣＡＤアプリケーション用いる場合において、３次元ＣＡＤアプリケーションごとの特徴として意匠設計（以降、上流設計という）や機械設計（以降、下流設計という）などそれぞれ秀でた機能に違いがあるため、上流設計と下流設計それぞれにおいて異なる３次元ＣＡＤアプリケーションを用いることがある。当然３次元ＣＡＤアプリケーションが異なればデータ形式も異なる。そのため、上流設計用３次元ＣＡＤアプリケーションで作成したモデルデータを下流設計用３次元ＣＡＤアプリケーションでそのまま読み込むことは困難である。しかし、３次元ＣＡＤアプリケーションが一般的にＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）機能として有している共通ファイル（Ｐａｒａｓｏｌｉｄなど）を介することにより上流設計でモデリングを行った形状そのものは下流設計で用いる３次元ＣＡＤアプリケーションで取り込むことができる。更に、価格面で比較した場合に上流設計で用いる３次元ＣＡＤアプリケーションの方が下流設計で用いる３次元ＣＡＤアプリケーションよりも高価である場合が多いため、コスト管理の観点からも２種類以上の３次元ＣＡＤアプリケーションを一連の設計に用いることが一般的に行われている。
【０００３】
しかし共通ファイルとして出力することにより、それまでの工程でモデルリングされた３次元形状（以降、ソリッド形状という）そのものは下流設計へ引き継ぐことが可能であるが、ＣＡＤデータに保存されたパラメトリック情報（形状に指定された幾何拘束や寸法拘束など）は引き継ぐことができない。そのため下流設計ではパラメトリック機能を有する３次元ＣＡＤアプリケーションにおいて、他の３次元ＣＡＤアプリケーションで作成された３次元ＣＡＤデータ（以降、外部データという）を、参照情報などを持たない単純なソリッド形状として取り込み、取り込んだソリッド形状に対してモデリングを行うということが行われている。
【０００４】
パラメトリック情報が引き継がれない具体例として、図２２は上流設計用３次元ＣＡＤアプリケーションの操作画面イメージであるが、図２２の左部には形状を構成するパラメトリック情報が保持されていることが確認できる。次に図２３では、図２２のＣＡＤデータを外部データとして下流設計用３次元ＣＡＤアプリケーションに取り込んだ際の操作画面イメージであり、図２３の左部には図２２で確認されたようなパラメトリック情報が保持されていない。このことが共通ファイルを介することによるパラメトリック情報の欠損である。しかし、図２２と図２３の形状が同等であることは容易に確認できる。
【０００５】
また、図２３の形状に対して下流設計用３次元ＣＡＤアプリケーションで設計情報を追加することができる。図２４に示す通り、左部では図２３と比較して設計情報が追加されていることが確認でき、また右部のモデル形状においてもモデル面オフセット（モデル形状で指定された面を任意の距離だけ離れた座標へコピーする類の処理で、以降、設計情報１とする）や穴形状作成（以降、設計情報２とする）といった設計情報の追加による変化が見て取れる。
【０００６】
ところで、このような下流設計において取り込んだ形状のエッジ・面（総じてエンティティと呼ぶ）を参照情報としてモデリングを行った状態のモデルに対して、上流設計で行われたデザイン変更などの理由から最初に取り込んだソリッド形状を、ある程度類似のソリッド形状と置き換える場合がある。例えば上流設計で新たに形状が作成された場合、以前に取り込んだ上流設計の形状に対して行った下流設計と、同等の設計を行わなくてはならないが、パラメトリック機能を有する３次元ＣＡＤアプリケーションの特性としてソリッド形状を置き換えることにより、それまでに下流設計で行ったモデリング情報を置き換え後の形状へ継承することができるため、はじめからモデリングし直す作業を回避できる。
【０００７】
例えば、図２５の上部の形状は図２２及び図２３と同一の形状であり、図２５の下部の形状は図２２の形状をもとに下流設計で変更が加えられた形状の一例である。上下の形状は多少異なるものの、類似の形状であること判断して差し支えない。この図２５の下部の類似形状に対して図２４で示される下流設計情報を引き継がせることができる。
【０００８】
しかしながら、ソリッド形状を置き換えると３次元ＣＡＤアプリケーションが記憶しているエンティティの内部ＩＤ情報はリセットされるため、モデリングに用いた参照情報の関連付けが不明な状態になってしまい、モデリングの各所に再生不能状態（エラー）が発生してしまう。置き換え前後の形状はある程度類似したものを用いるため、３次元ＣＡＤアプリケーションの機能によりある程度の参照情報は自動的に更新され、一部のエラーについては解消される場合もある。
【０００９】
例えば、図２４で示される下流設計情報を図２５の下部の形状へ引き継がせた結果である図２６と、図２４を比較すると、それぞれの左部で確認される下流設計情報の数に違いは認められないが、図２６の左部に表示される設計情報の一部ではエンティティの内部ＩＤがリセットされた影響を受けてエラーが表示されており、図２６の右部に表示されるモデル形状では図２４で確認されるような設計情報１が認められない。一方、設計情報２については図２６においてもエラーは表示されておらず、またモデル形状においても図２４と同等の部分に引き継がれていることが認められる。設計情報２については、３次元ＣＡＤアプリケーションの機能によって参照情報が自動的に更新された例である。このように図２４で保持している設計情報１、２そのものは図２６へ引き継がれているが、設計情報の内部で保持している参照情報については関連付けが不明な状態になるものと自動的に関連付けされるものとがあり、結果として再生可能なものと再生不能なものとに分かれて引き継がれることになる。
【００１０】
しかしこのような３次元ＣＡＤアプリケーションによって自動的に参照情報が更新される機能によって解消できるエラーはごくわずかであり、大多数の関連付けが不明な参照情報については作業者が置き換え前のデータと置き換え後のデータを画面上で切り替えながら、目視で該当する参照情報を選別し、手動で参照情報の再設定を行うことによってエラーを修復しなければならない。
【００１１】
この参照情報の再設定は、時としてはじめからモデリングし直す場合と略同様の作業を要する場合もあるため、作業者にとってはとても負担の大きいものとなる。また、この作業を行うためには置き換え前のデータに対する理解等、作業者としての熟練度が求められるため、人材育成に多大なコストが必要となる。
【００１２】
そこで、特許文献１では、パラメトリック機能によってモデリングされた３次元ＣＡＤモデルに対して、加えられたパラメトリック機能にもとづく変更によってそれまで成立していた参照関係や寸法などが欠損し、その結果生じてしまった形状のエラーを修復するために、変更以前のモデルの参照関係や寸法などを抽出し、エラーの生じたモデルとの差分に基づいた形状の再生手順を表示することによって再生作業の効率化を図るという技術が開示されている。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００２−２１５６９６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
特許文献１に開示されている技術では確かに、再生の手順を示すことにより、ユーザにより３次元ＣＡＤデータの欠損情報の修復を容易にすることについては効果があるが、しかし、再度修復作業を１から行わなければならないという問題は残ってしまっている。
【００１５】
欠損してしまった参照情報が示す参照先は、当然３次元ＣＡＤデータ中に存在しているので、ユーザにその情報を示すことができれば、当然作業効率も上がり、作業時間を短縮できることが想定される。
【００１６】
本発明の目的は、３次元モデルに含まれる形状を他の形状に置き換えた場合に参照先の要素が不明となるフィーチャーの新たな参照先の候補を提示することの可能な仕組みを提供することである。
【課題を解決するための手段】
【００１７】
上記の目的を達成するために、本発明の情報処理装置は、３次元モデルに含まれる形状を他の形状に置き換えることで新たな３次元モデルを作成し、当該新たな３次元モデルにおいて発生したフィーチャーの参照関係の異常の修復作業を支援するための情報処理装置であって、置き換え後の３次元モデルに含まれるフィーチャーのうち、前記置き換えによって参照先の要素が不明となったフィーチャーを取得する第１の取得手段と、置き換え前の３次元モデルに含まれるフィーチャーのうち、前記第１の取得手段で取得した前記置き換え後のフィーチャーに対応する前記置き換え前のフィーチャーを取得する第２の取得手段と、前記置き換え前の３次元モデルに含まれる要素のうち、前記第２の取得手段で取得したフィーチャーの参照先の要素を特定する特定手段と、前記置き換え後の３次元モデルに含まれる要素のうち、前記特定手段で特定した要素に近似する位置の要素を抽出する抽出手段と、前記抽出手段で抽出した要素を、前記第１の取得手段で取得したフィーチャーの参照先の要素の候補として表示する表示制御手段とを備えることを特徴とする。
【００１８】
上記の目的を達成するために、本発明の制御方法は、３次元モデルに含まれる形状を他の形状に置き換えることで新たな３次元モデルを作成し、当該新たな３次元モデルにおいて発生したフィーチャーの参照関係の異常の修復作業を支援するための情報処理装置の制御方法であって、前記情報処理装置の第１の取得手段が、置き換え後の３次元モデルに含まれるフィーチャーのうち、前記置き換えによって参照先の要素が不明となったフィーチャーを取得する第１の取得ステップと、前記情報処理装置の第２の取得手段が、置き換え前の３次元モデルに含まれるフィーチャーのうち、前記第１の取得ステップで取得したフィーチャーに対応するフィーチャーを取得する第２の取得ステップと、前記情報処理装置の特定手段が、前記置き換え前の３次元モデルに含まれる要素のうち、前記第２の取得ステップで取得したフィーチャーの参照先の要素を特定する特定ステップと、前記情報処理装置の抽出手段が、前記置き換え後の３次元モデルに含まれる要素のうち、前記特定ステップで特定した要素に近似する要素を抽出する抽出ステップと、前記情報処理装置の表示制御手段が、前記抽出ステップで抽出した要素を、前記第１の取得ステップで取得したフィーチャーの参照先の要素の候補として表示する表示制御ステップとを備えることを特徴とする。
【００１９】
上記の目的を達成するために、本発明のプログラムは、３次元モデルに含まれる形状を他の形状に置き換えることで新たな３次元モデルを作成し、当該新たな３次元モデルにおいて発生したフィーチャーの参照関係の異常の修復作業を支援するための情報処理装置の制御方法を実行可能なプログラムであって、前記情報処理装置を、置き換え後の３次元モデルに含まれるフィーチャーのうち、前記置き換えによって参照先の要素が不明となったフィーチャーを取得する第１の取得手段と、置き換え前の３次元モデルに含まれるフィーチャーのうち、前記第１の取得手段で取得したフィーチャーに対応するフィーチャーを取得する第２の取得手段と、前記置き換え前の３次元モデルに含まれる要素のうち、前記第２の取得手段で取得したフィーチャーの参照先の要素を特定する特定手段と、前記置き換え後の３次元モデルに含まれる要素のうち、前記特定手段で特定した要素に近似する要素を抽出する抽出手段と、前記抽出手段で抽出した要素を、前記第１の取得手段で取得したフィーチャーの参照先の要素の候補として表示する表示制御手段として機能させることを特徴とする。
【発明の効果】
【００２０】
本発明によれば、外部データ取り込み時のデータ修復作業の作業時間の短縮が見込めるという効果を得られるとともに、非熟練者であっても熟練者と略同様の精度でのエラー修復作業を行うことが可能となる。
【図面の簡単な説明】
【００２１】
【図１】本発明の３次元ＣＡＤデータ作成システムの構成の一例を示す図である。
【図２】図１のクライアント装置１０２−１、１０２−２として適用可能なコンピュータのハードウェア構成の一例を示す図である。
【図３】クライアント装置１０２−１によって行われる、データ修復処理の一例を示すフローチャートである。
【図４】図３のステップＳ３０７の面設定処理の詳細を示すフローチャートである。
【図５】図１０の正接選択ボタン１００７の押下指示を受け付けることでＣＰＵ２０１が実行する正接面選択処理の詳細を示すフローチャートである。
【図６】図１０の正接選択ボタン１００８の押下指示を受け付けることでＣＰＵ２０１が実行する隣接面選択処理の詳細を示すフローチャートである。
【図７】図３のステップＳ３０８のエッジ設定処理の詳細を示すフローチャートである。
【図８】図１３の正接選択ボタン１３０７の押下指示を受け付けることでＣＰＵ２０１が実行する正接エッジ選択処理の詳細を示すフローチャートである。
【図９】図１０の可視変更ボタン１００９等の押下指示を受け付けることでＣＰＵ２０１が実行する可視変更処理の詳細を示すフローチャートである。
【図１０】参照面選択画面１０００の一例を示す図である。
【図１１】面設定−隣接面画面１１００の一例を示す図である。
【図１２】エッジ設定（個別）画面１２００の一例を示す図である。
【図１３】エッジ設定画面１３００の一例を示す図である。
【図１４】参照元面テーブルの一例を示す図である。
【図１５】正接面テーブルの一例を示す図である。
【図１６】サブ正接面テーブルの一例を示す図である。
【図１７】既定面テーブルの一例を示す図である。
【図１８】隣接面テーブルの一例を示す図である。
【図１９】初期隣接面テーブルの一例を示す図である。
【図２０】グループＮｏテーブルの一例を示す図である。
【図２１】サブ隣接面テーブルの一例を示す図である。
【図２２】上流設計において設計されたＣＡＤデータの一例を示す模式図である。
【図２３】上流設計において設計されたＣＡＤデータを下流設計において取り込んだＣＡＤデータの一例を示す模式図である。
【図２４】上流設計において設計されたＣＡＤデータを下流設計において取り込み、設計情報を追加したＣＡＤデータの一例を示す模式図である。
【図２５】上流設計において設計されたＣＡＤデータを下流設計において取り込み、設計情報を追加したＣＡＤデータの一例を示す模式図である。
【図２６】上流設計において設計されたＣＡＤデータを下流設計において取り込み、設計情報を追加し、更に上流設計において新たに設計されたＣＡＤデータに置き換えたＣＡＤデータの一例を示す模式図である。
【図２７】ステップＳ４０１における処理の一例を示す模式図である。
【図２８】ステップＳ４０２における処理の一例を示す模式図である。
【図２９】ステップＳ４０３における処理の一例を示す模式図である。
【図３０】ステップＳ４０３における処理の一例を示す模式図である。
【図３１】ステップＳ４０４における処理の一例を示す模式図である。
【図３２】ステップＳ４０８における処理の一例を示す模式図である。
【図３３】ステップＳ５１０における処理の一例を示す模式図である。
【図３４】正接面選択処理の処理結果の一例を示す模式図である。
【図３５】隣接面選択処理が開始する際に正接面選択処理で選択された面と選択されなかった面の一例を示す模式図である。
【図３６】ステップＳ６０１における処理の一例を示す模式図である。
【図３７】ステップＳ６１３における処理の一例を示す模式図である。
【図３８】初期選択面に隣接する非選択隣接面のうち選択グループ１に割り当てられなかった面と、この非選択隣接面に連なる隣接面が選択グループに割り当てられた際の一例を示す模式図である。
【図３９】隣接面選択処理の処理結果の一例を示す模式図である。
【発明を実施するための形態】
【００２２】
以下、図面を参照して、本発明の実施の形態の一例について説明する。
【００２３】
図１は、本発明の３次元ＣＡＤデータ作成システムのシステム構成の一例を示す。図中、１０１は管理サーバであって、本システムで取り扱う３次元ＣＡＤデータ（３次元ＣＡＤモデルということもある）を管理するサーバ装置である。１０２−１、１０２−２はクライアント装置であって（以下、まとめてクライアント装置１０２とする）、３次元ＣＡＤアプリケーションがインストールされており、３次元ＣＡＤデータの作成を行うために設計者が使用する情報処理装置である。また、作成された３次元ＣＡＤデータは管理サーバ１０１で記憶管理されることになる。尚、クライアント装置１０２−１と１０２−２には、異なる３次元ＣＡＤアプリケーションがインストールされており、クライアント装置１０２−１で作成された３次元ＣＡＤデータをクライアント装置１０２−２で編集したり、クライアント装置１０２−２で作成された３次元ＣＡＤデータをクライアント装置１０２−１で編集したりすることが行われる。
【００２４】
１０３は、管理サーバ１０１、クライアント装置１０２−１、クライアント装置１０２−２をそれぞれ相互に通信可能に接続するための、例えばＬＡＮ（Local Area Network）等のネットワークである。
【００２５】
図２は、図１のクライアント装置１０２−１、及び１０２−２として適用可能な情報処理装置のハードウェアの構成の一例を示す模式図である。
【００２６】
ＣＰＵ２０１は、システムバス２０４に接続される後述の各デバイスやコントローラを統括的に制御する。また、ＲＯＭ２０３あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Basic Input / Output System）やオペレーティングシステムプログラム（以下、ＯＳ）や、各サーバ或いは各ＰＣの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。ＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。
【００２７】
ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＡＭ２０２にロードして、プログラムを実行することで各種動作を実現するものである。また、入力コントローラ（入力Ｃ）２０５は、キーボードやポインティングデバイス等で構成される入力装置２０９からの入力を制御する。ビデオコントローラ（ＶＣ）２０６は、ディスプレイ装置２１０等の表示装置への表示を制御する。ディスプレイ装置２１０は、例えばＣＲＴディスプレイや液晶ディスプレイ等で構成される。
【００２８】
メモリコントローラ（ＭＣ）２０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）やフロッピーディスク（登録商標  ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュメモリ等の外部メモリ２１１へのアクセスを制御する。
【００２９】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）２０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。
【００３０】
なお、ＣＰＵ２０１は、例えばＲＡＭ２０２内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ装置２１０上での表示を可能としている。また、ＣＰＵ２０１は、ディスプレイ装置２１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００３１】
本発明のクライアント装置１０２−１の各種処理を実行するために用いられるプログラムは外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０２にロードされることによりＣＰＵ２０１によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ２１１に格納されている。
【００３２】
次に、図３を参照して、クライアント装置１０２−１によって行われるデータ修復処理の概要について説明する。尚、この処理をクライアント装置１０２−１に実行させるためのプログラムは、クライアント装置１０２−１にインストールされている３次元ＣＡＤアプリケーションの一部、若しくはアドオンプログラムとして用意されており、当該プログラムの制御に従って、後述する各ステップにおける処理をクライアント装置１０２−１のＣＰＵ２０１は行うことになる。
【００３３】
このフローに示す処理を行う際には、クライアント装置１０２−１のＣＰＵ２０１は、クライアント装置１０２−２で作成された３次元ＣＡＤデータのうち、変更前の３次元ＣＡＤデータ（モデルＡとする）とモデルＡの一部の取り込み形状を他の取り込み形状に置き換えることで作成した３次元ＣＡＤデータ（モデルＢとする）を、３次元ＣＡＤアプリケーションで閲覧可能な状態にある。本発明では、モデルＡの取り込み形状とは異なる取り込み形状を用いることで作成したモデルＢで参照エラーが発生した場合に、取り込み形状の変更前のモデルＡでの参照関係を利用することで、モデルＢで参照先を特定できなくなってしまったフィーチャーの参照先候補を探索する。
【００３４】
まず、ＣＰＵ２０１は、モデルＢに含まれる１つめのフィーチャー（３次元ＣＡＤで個々の形状を形作る要素単位）情報を選択する（ステップＳ３０１）。尚、ここで、モデルＢに含まれるフィーチャーを選択する際に、あらかじめ決められているルールに従って選択しても、設計者の入力装置２０９操作に基づく指示により選択しても、勿論構わない。
【００３５】
そして、３次元ＣＡＤプログラムにより実現される判定機能により、選択したフィーチャーにエラーが含まれているかを判定する（ステップＳ３０２）。そして、ＣＰＵ２０１は、エラーが含まれていると判定した場合（ステップＳ３０２でＹＥＳ）には、処理をステップＳ３０３に、エラーが含まれていないと判定した場合（ステップＳ３０２でＮＯ）には、処理をステップＳ３１１に進めることになる。
【００３６】
ステップＳ３０２で、エラーが含まれていると判定した場合には、ＣＰＵ２０１は、ステップＳ３０１で選択したフィーチャーに含まれているエラーのエラータイプを取得する（ステップＳ３０３）。尚、本データ修復処理は、全てのエラーに対して対応することは必ずしも想定しておらず、頻出するエラータイプに対してその修復を支援することを想定するものである。
【００３７】
そして、その後、ＣＰＵ２０１は、ステップＳ３０３で取得したエラータイプが本処理でデータ修復が可能な（対応可能な）エラータイプであるかの判定を行う（ステップＳ３０４）。この判定処理でＣＰＵ２０１が対応可能なエラータイプであると判定した場合には（ステップＳ３０４でＹＥＳ）、処理をステップＳ３０５に、対応していないエラータイプであると判定した場合には（ステップＳ３０４でＮＯ）、処理をステップＳ３１０に進める。
【００３８】
ステップＳ３０４でＣＰＵ２０１がＹＥＳと判定した場合には、その後、修復処理実行時に３次元ＣＡＤアプリケーションの制御に従いＣＰＵ２０１が行う３次元ＣＡＤデータの再計算処理の負荷を抑えるために、３次元ＣＡＤデータ内の有効とされているフィーチャーのうち、処理中のフィーチャー形成に影響を及ぼさないフィーチャーを無効化する（ステップＳ３０５）。
【００３９】
そして、その後、ステップＳ３０３で取得したエラータイプに基づいて、データ修復のために必要な設定要素が「面」であるか、それともエッジであるかの判定を行う（ステップＳ３０６：面選択？）。ＣＰＵ２０１が「面」であると判定した場合（ステップＳ３０６でＹＥＳ）、処理をステップＳ３０７に進め、面設定処理を行う。この処理の詳細については、図４を参照して後述する。
【００４０】
一方、ステップＳ３０６でＣＰＵ２０１が「エッジ」であると判定した場合には（ステップＳ３０６でＮＯ）、処理をステップＳ３０８に進め、エッジ設定処理を行う。この処理の詳細については、図７を参照して後述する。
【００４１】
ステップＳ３０７若しくはステップＳ３０８の処理終了後、ＣＰＵ２０１は、ステップＳ３０３で取得したエラータイプのエラーが修復されているかを判定する（ステップＳ３０９）。そして、エラーが修復されていると判定した場合には（ステップＳ３０９でＹＥＳ）、処理をステップＳ３０２に進め、ステップＳ３０１で選択したフィーチャーにまだエラーが残っているかを判定し、エラーが残っていると判定した場合には、ステップＳ３０２でＮＯと判定する、即ち当該フィーチャーのエラーが全て修復されたと判定するまで上記のステップＳ３０２から３０９の処理を繰り返すことになる。
【００４２】
ステップＳ３０２の判定処理で、ステップＳ３０１で取得したフィーチャーにエラーが含まれないと判定した場合には（ステップＳ３０３からの処理でエラーを修復し終えた場合も含む）、処理をステップＳ３１１に進め、ステップＳ３０５で無効化したフィーチャーの解除が必要であるかを判定する。この判定処理では、ステップＳ３０５で無効化したフィーチャーが存在する場合には、解除が必要であるとの判定をＣＰＵ２０１は行うことになる。一方、ステップＳ３１１でＮＯと判定した場合には、処理をステップＳ３１３に進める。
【００４３】
ステップＳ３１１の判定処理でＹＥＳと判定した場合には、その後、ステップＳ３０５で無効化したフィーチャーを有効に戻す再計算範囲限定解除処理を行うことになる（ステップＳ３１２）。ステップＳ３１２の処理終了後、ステップＳ３０１に処理を進め、次に処理対象とするフィーチャーを新たに選択し、ステップＳ３０２以降の処理を繰り返すことになる。
【００４４】
ステップＳ３０９の判定処理で修復が完了しなかったと判定した場合には、処理をステップＳ３１０に進め、本フローチャートで示す修復処理を中断するかの判定を行う。この判定処理は、クライアント装置１０２−１を操作する設計者の入力装置２０９の操作により入力される指示に従って判定することになる。中断すると判定した場合には本処理を終了する。
【００４５】
ステップＳ３１０の判定処理で、中断指示を受け付けていないと判定した場合には処理をステップＳ３１３に進め、エラー修復処理をしたフィーチャーが最終フィーチャーであるかを判定する。
【００４６】
その後、ステップＳ３１３で最終フィーチャーであると判定した場合には本処理を終了する。一方で、最終フィーチャーではないと判定した場合には、処理をステップＳ３０１に進め、新たにフィーチャーを選択して、上述の処理を繰り返すことになる。以上がクライアント装置１０２−１により行われるデータ修復処理の説明である。
【００４７】
次に、図４を参照して、図３のステップＳ３０７の面設定処理の詳細について説明する。本処理をクライアント装置１０２−１に実行させるためのプログラムは、３次元ＣＡＤアプリケーションの一部、若しくはアドオンプログラムとして用意されており、本処理を実行する際には、ＣＰＵ２０１は、当該プログラムをＲＡＭ２０２にロードし、その制御に従って本処理を行うことなる。
【００４８】
まず、ＣＰＵ２０１は、モデルＢのうち、ステップＳ３０１で選択されたフィーチャーに対応するモデルＡ中のフィーチャー（設計情報１）の参照先として設定されている面の一覧を３次元ＣＡＤアプリケーションのＡＰＩを用いて取得し、取得した面にモデルＡ中で割り当てられている内部ＩＤ（以降、面ＩＤ）を図１４に示す参照元面テーブルへ登録する（ステップＳ４０１）。図２７に示す面は、設計情報１の参照先として参照元テーブルへ登録される面である。
【００４９】
図１４の参照元面テーブルについて説明する。面ＩＤとは前述のとおりである。測定座標とは参照元面テーブルに登録された面上の座標である。法線ベクトルとは面上の測定座標における法線ベクトルである。ベクトル符号とは面上において測定座標が面の表であるか裏であるかの符号である。基点とは測定座標、法線ベクトル、ベクトル符号もとに導き出される座標点であり、モデルＢに配置する無限長の円筒空間の開始座標である。近似面ＩＤとはモデルＢに配置された無限長の円筒空間に位置する面のうち最も基点に近い座標に位置する面に割り当てられたモデルＢ上における内部ＩＤである。対応するフィーチャーを取得する際には、例えば、ステップＳ３０１で選択したフィーチャーの名称と同一の名称を有するモデルＡ中のフィーチャーを取得するなどの方法を用いるが、方法はこれに限られるわけではない。
【００５０】
ステップ４０１で取得した面のうち、未処理の面の１つを処理対象の面として取得する（参照先取得：ステップＳ４０２）。例えば参照元面テーブルのレコードＮｏが１のものから昇順に処理フラグが０のレコードを対象として取得するものとし、例えば図２８に示す面が選ばれたものとする。その後、３次元ＣＡＤアプリケーションのＡＰＩを用いて処理中の面を囲む空間座標（バウンディングボックス、例えば図２９に示すような図２８に示す面を囲む直方体空間）を取得し、次にその空間の中心座標を算出し（例えば図２９で示す直方体空間の中心座標）、この中心座標にもっとも近い面上の座標点を特定する。取得した座標点を参照元面テーブルの測定座標へ登録する。続いてその座標点における面の法線ベクトルとベクトル符号（面の表側か裏側のいずれの方向であるか）を前述同様に３次元ＣＡＤアプリケーションのＡＰＩを用いて取得し、法線ベクトル、ベクトル符号として参照元面テーブルへ登録する。続いて法線ベクトルにベクトル符号と任意の乗数を演算した値と面上の座標点とを加算し、基点を設定して参照元面テーブルへ登録する（参照先情報抽出：ステップＳ４０３）。最後にこの基点から面に向かって任意の半径による無限長の円筒空間を導き出す。図３０は図２９にもとづいた無限長の円筒空間を示す一例である。
【００５１】
その後、ステップＳ４０３で導出した円筒空間をモデルＢに配置し（例えば図３１が示すように図３０で示される円筒空間がモデルＢ中の同一座標空間にて定義される）、円筒空間と重なる面があれば、その中で最も基点に近い位置で重なる面（例えば図３１が示すモデル形状において変色している面）を取得する。続いて取得した面に割り当てられたモデルＢ中における内部ＩＤを取得し、参照元面テーブルへ近似面ＩＤとして登録する。なお、該当する面が取得できなかった場合（例えば円筒空間内にモデル上の面が存在しない）には近似面ＩＤへＮｕｌｌを登録する（近似面選択：ステップＳ４０４）。
【００５２】
ステップＳ４０５では、ＣＰＵ２０１は、ステップＳ４０４の近似面選択処理で最も基点に近い位置で重なる面を取得できたか（参照元面テーブルの近似面がＮｕｌｌか否か）を判定する（面選択可能？：ステップＳ４０５）。そして、取得できなかったと判定（Ｎｕｌｌ）した場合には（ステップＳ４０５でＮＯ）、処理をステップＳ４０２に進め、ステップＳ４０１で取得した面のうち、まだステップＳ４０２からＳ４０４の処理を終了していない参照元面テーブル中の次のレコードＮｏの面を処理対象の面として新たに取得し、ステップＳ４０２からＳ４０４の処理を当該新たに取得した処理対象の面に対して行うことになる。
【００５３】
一方、ステップＳ４０５の処理で、取得できたと判定（Ｎｏｔ  Ｎｕｌｌ）した場合には、ＣＰＵ２０１は、モデルＢの処理中のフィーチャーの参照先候補として設定する面である選択面の一覧に取得した面を追加記録することにより、ＲＡＭ２０２上に記憶されている選択面一覧情報を更新する（ステップＳ４０６）。
【００５４】
そして、その後、ステップＳ４０１で取得した全ての面に対して上記のステップＳ４０２からステップＳ４０６に示す一連の処理を行ったか（処理中のレコードＮｏが末尾であるか）を判定する（ステップＳ４０７）。全ての面に対して行っていないと判定した場合には、処理をステップＳ４０２に進め、未処理の面に対しての処理を行うことになる。
【００５５】
ステップＳ４０７の判定処理で、ＹＥＳと判定した場合には、本システムのＲＡＭ２０２上の選択面一覧情報にモデルＢ中のフィーチャーの参照先候補である面として格納された全ての面（参照元面テーブルの全レコードにおける近似面ＩＤに該当する全てのモデルＢ中の面）をモデルＢ上で選択した状態にして不図示の３次元ＣＡＤデータ表示画面に表示する（ステップＳ４０８）。図３２はステップＳ４０８までの処理で取得された面をモデルＢ中で選択状態にした際の一例であるが、図２７で選択されている面の領域と比較すると未選択の領域が確認できる。また、モデルＡの面の一覧（ステップＳ４０１で取得）についてもモデルＡ上で選択した状態にして、不図示の３次元ＣＡＤデータ表示画面の表示領域に表示する。このときに、モデルＡ、モデルＢともに、選択されている面と、選択されていない面とを識別可能に表示することになる。このステップにおいて、ＣＰＵ２０１はモデルＡ、モデルＢを表示するための不図示の３次元ＣＡＤデータ表示画面とともに、図１０に示す参照面選択画面１０００がディスプレイ装置２１０に表示されることになる。
【００５６】
図１０を参照して、参照面選択画面の構成について説明する。図１０に示す参照面選択画面１０００には、モデルＡ表示ボタン１００１、モデルＢ表示ボタン１００２、選択面一覧表示部１００３、更新ボタン１００４、リセットボタン１００５、設定ボタン１００６、正接選択ボタン１００７、隣接選択ボタン１００８、可視変更ボタン１００９が用意されている。
【００５７】
モデルＡ表示ボタン１００１が押下されると、不図示の３次元ＣＡＤデータ表示画面に表示されているモデルＡとモデルＢのうち、モデルＡを最前面に表示する制御をＣＰＵ２０１が行う。モデルＢ表示ボタン１００２が押下されると、不図示の３次元ＣＡＤデータ表示画面に表示されているモデルＡとモデルＢのうち、モデルＢを最前面に表示する制御をＣＰＵ２０１が行う。
【００５８】
選択面一覧表示部１００３には、３次元ＣＡＤデータ表示画面にモデルＡが最前面に表示されている場合にはモデルＡでの選択面が、モデルＢが最前面に表示されている場合にはモデルＢでの選択面が表示される。
【００５９】
更新ボタン１００４が押下指示されると、ＣＰＵ２０１は、その時点でモデルＢ上において選択されている面を選択面一覧表示部１００３に設定する。尚、この処理はモデルＢが最前面に表示されている場合にのみ行われることになる。
【００６０】
リセットボタン１００５が押下指示されると、ＣＰＵ２０１は、この画面を介した操作指示による選択面変更をリセットし、当該参照面選択画面１０００が表示された際の面の選択状態に戻す処理を行う。モデルＢが最前面に表示されている際に、設定ボタン１００６が押下されると、選択面一覧表示部１００３に表示されている選択面を参照先面として設定し、本画面の表示を終了する。
【００６１】
正接選択ボタン１００７が押下指示されると、ＣＰＵ２０１は、図５に示す正接面選択処理を行う。この正接面選択処理の詳細については後述する。隣接選択ボタン１００８が押下指示されると、ＣＰＵ２０１は、図６に示す隣接面選択処理を行う。この隣接面選択処理の詳細については後述する。可視変更ボタン１００９が押下指示されると、ＣＰＵ２０１は、図９に示す可視選択処理を行う。この可視選択処理の詳細については後述する。
【００６２】
設計者は、参照面選択画面１０００を介して操作指示を入力することによって選択された面を非選択（除外）への切り替えや、新たに別の面を選択された一覧に追加することができる。また、ＣＰＵ２０１に対して、後述する正接選択処理、隣接選択処理、及び可視選択処理の実行指示を入力することが可能となる。以上が、図１０の参照面選択画面１０００の説明である。
【００６３】
図４の説明に戻る。ステップＳ４０８で表示される参照面選択画面１０００を介した操作指示に基づいて参照先面として選択された面で選択面の一覧を更新する（ステップＳ４０９）。以上が、図３のステップＳ３０７の面設定処理の詳細な説明である。
【００６４】
次に、図５を参照して、図４のステップＳ４０８で表示される参照面選択画面１０００の正接選択ボタン１００７の押下指示を受け付けることでＣＰＵ２０１が実行する正接面選択処理の詳細について説明する。本処理をクライアント装置１０２−１に実行させるためのプログラムは、３次元ＣＡＤアプリケーションの一部、若しくはアドオンプログラムとして用意されており、本処理を実行する際には、ＣＰＵ２０１は、当該プログラムをＲＡＭ２０２にロードし、その制御に従って本処理を行うことなる。
【００６５】
まず、ステップＳ５０１において、ＣＰＵ２０１は、図１０の選択面一覧表示部１００３に表示されている面の情報を取得する。なお、ここでの初期状態は図３２の状態と仮定する。図１５に示す正接面テーブルが作成されていない場合にはこれを作成し、ステップＳ４０９終了後の参照元面テーブルより近似面ＩＤがＮｕｌｌでないレコードを対象として取得し、近似面ＩＤの値を正接面テーブルの選択面ＩＤへ登録する。その後、選択した面のうち、全ての隣接する面に対する本処理による正接面選択処理をまだ終了していない面を１つ選択する。この場合では正接面テーブルにおいてレコードＮｏが１のものから昇順に処理フラグが０のレコードを対象として選択面ＩＤを取得する（ステップＳ５０２）。
【００６６】
そして、ステップＳ５０２で取得した面について、隣接する面が存在するかを３次元ＣＡＤアプリケーションのＡＰＩを用いて判定する（ステップＳ５０３）。隣接面が存在すると判定した場合には（ステップＳ５０３でＹＥＳ）、処理をステップＳ５０４に進め、当該面に隣接する面の一覧を取得し、図１６に示すサブ正接面テーブルにそれぞれの面に割り当てられたモデルＢ中の内部ＩＤを隣接面ＩＤとして登録する。サブ正接面テーブルについて説明する。隣接面ＩＤは正接面テーブルで処理中の面に隣接する面のモデルＢ中における内部ＩＤである。一方、隣接面がないと判定した場合には（ステップＳ５０３でＮＯ）、処理をステップＳ５１０に進める。
【００６７】
ステップＳ５０４の処理終了後、ＣＰＵ２０１は、ステップＳ５０４で取得した面のうち１つの面（サブ正接面テーブルにおいてレコードＮｏが１から昇順に取得される隣接面ＩＤに相当）を取得する（ステップＳ５０５）。そして取得した面が、ステップＳ５０２で取得した選択面と正接の関係になっているかを３次元ＣＡＤアプリケーションのＡＰＩを用いて判定する（ステップＳ５０６）。正接であると判定した場合には、ステップＳ５０４で取得した面が既に選択面一覧に含まれるかを判定する。例えば正接面テーブルの全レコードの選択面ＩＤを対象として処理中の隣接面ＩＤをもとに一致検索を行い、選択面として正接面テーブルに登録済みであるかを判定する（ステップＳ５０７）。処理中の隣接面が正接面テーブルに含まれていないと判定した場合には、選択面一覧情報にステップＳ５０４で取得した面を追加し、選択面一覧情報を更新する。具体的には正接面テーブルの末尾へ処理中の隣接面を新規レコードとして追加し、サブ正接面テーブルの隣接面ＩＤを正接面テーブルの選択面ＩＤへ登録する。正接面テーブルへ隣接面ＩＤを登録した場合にはサブ正接面テーブルを削除し、処理をステップＳ５０１に進める。（ステップＳ５０８）。
【００６８】
ここで新たに正接面を選択面一覧に追加することにより、新たに選択面として追加された面に対しても、正接する面があるかを判定し、正接面があった場合には当該面を選択面として追加する処理が行われることになる。そして、ステップＳ５０８の処理終了後、処理をステップＳ５０１に移行し、更新された選択面一覧を取得しなおし、ステップＳ５０２以降の処理を行うことになる。ステップＳ５０８を経由してステップＳ５０２以降の処理を行う際には、処理中の正接面テーブルレコードＮｏが引き継がれる。
【００６９】
ステップＳ５０６でＮＯと判定した場合、若しくはステップＳ５０７でＹＥＳ（処理中の隣接面が正接面テーブルへ登録済み）と判定した場合には、ＣＰＵ２０１は、処理をステップＳ５０９に進め、ステップＳ５０４で取得した隣接面のうち、まだステップＳ５０５で取得されていない面が存在するかを判定する。具体的には処理中のサブ正接面テーブルレコードが末尾であるかによって判定する。（隣接面残あり？）。存在すると判定した場合、この場合では処理中のサブ正接面テーブルレコードが末尾でない場合（ステップＳ５０９でＹＥＳ：隣接面あり）には、処理をステップＳ５０５に進め、まだ取得していない隣接面を１つ選択（サブ正接面レコードのレコードに対して昇順に取得）し、ステップＳ５０６以降の処理を行う。上記ステップＳ５０５からステップＳ５０８までの処理を、ステップＳ５０９でＮＯ（隣接面残なし）と判定する（具体的には処理中のサブ正接面テーブルレコードが末尾である場合）まで行うことになる。
【００７０】
ステップＳ５０９で未処理の隣接面が存在しない（隣接面残なし）と判定した場合には、ＣＰＵ２０１はサブ正接面テーブルを削除し、正接面テーブルにて処理中のレコードについて処理フラグの値を１へ変更し、処理をステップＳ５１０に進め、選択面（正接面テーブルのレコード）のうち、まだステップＳ５０２以降の処理を行っていない面があるか（選択面残あり）を判定する。具体的には正接面テーブルにて処理中のレコードが末尾であるかを判定する。ステップＳ５１０の判定処理で、選択面残があると判定した場合には、ステップＳ５０２に処理を戻し、まだステップＳ５０３以降の処理を行っていない選択面を（正接面テーブル上のレコードに対して昇順に）取得し後続する処理を行う。上記の処理を選択面残がないとＣＰＵ２０１が判定するまで繰り返すことになる。
【００７１】
一方、レコードが末尾である場合には正接面テーブルに登録される選択面ＩＤにもとづいてモデルＢ上の該当面を全て選択状態にし、選択面一覧表示部１００３の表示内容を更新して処理を終了する。図３３に示すのは図２７に対して正接面選択処理によって新たに選択対象となる面と選択対象とならない面の一例である。また図３４に示すのは図３３が示す正接面選択処理によって選択する面が、ステップＳ４０８までに選択された面に追加された場合の一例である。以上が、正接面選択処理の説明である。
【００７２】
次に、図６を参照して、図４のステップＳ４０８で表示される参照面選択画面１０００の隣接選択ボタン１００８の押下指示を受け付けることでＣＰＵ２０１が実行する隣接面選択処理の詳細について説明する。本処理をクライアント装置１０２−１に実行させるためのプログラムは、３次元ＣＡＤアプリケーションの一部、若しくはアドオンプログラムとして用意されており、本処理を実行する際には、ＣＰＵ２０１は、当該プログラムをＲＡＭ２０２にロードし、その制御に従って本処理を行うことなる。ここでは図２７と比較して図３４では選択されなかった面に対して隣接面選択処理を行う具体例にもとづいて説明する。図３５に示すのは隣接面選択処理で扱うモデルＢ中の具体的な部位と、正接面選択処理では選択されなかった面の一例である。
【００７３】
まず、ＣＰＵ２０１は、隣接選択ボタン１００８の押下指示を受け付けると、押下指示を受け付けた際に参照先面として選択されている面（図３５に示す選択状態の面全て）の一覧を取得し、図１７に示す既定面テーブルを作成して取得した面のモデルＢ中における面ＩＤを既定面テーブルの選択面ＩＤへ登録する。同時に図１８に示す隣接面テーブルを作成する。ここで隣接面テーブルについて説明する。選択面ＩＤはモデルＢ中における面ＩＤである。グループＮｏは隣接面選択処理における隣接面のグループＮｏであり、グループリスト表示部１１０３に表示される際のＮｏである。レコード登録時のグループＮｏ初期値は０である。次に取得した面から設計者による入力装置２０９操作に従って初期選択面として設定する任意の面の指定を受け付ける（ステップＳ６０１）。図３６に示すのは既定面から任意の面の指定を受けつけた際の一例である。
【００７４】
そしてその後、ステップＳ６０１で初期設定面に設定した面に選択状態になっていない隣接面があるか（非選択隣接面あり）を判定する。具体的にはステップＳ６０１で取得した初期設定面に対して隣接面があるかを３次元ＣＡＤアプリケーションのＡＰＩを用いて判定し、隣接面があると判定した場合には隣接面の一覧を同様の手段によって取得する。続いて図１９に示す初期隣接面テーブルを作成し、取得した隣接面に対してモデルＢ中で割り当てられている面ＩＤを初期隣接面テーブルの初期隣接面ＩＤへ登録する。既定面テーブル及び隣接面テーブルの選択面ＩＤを対象として初期隣接面テーブルのレコードＮｏが１のものから昇順に初期隣接面ＩＤをもとにして一致検索を行い、既定面テーブルもしくは隣接面テーブルのいずれかへ登録済みであるかを判定する（ステップＳ６０２）。
【００７５】
ステップＳ６０２の判定処理の結果、非選択隣接面が存在すると判定した場合、つまり前述の処理における結果として既定面テーブル及び隣接面テーブルのいずれにおいても指定の初期隣接面が未登録であった場合には（ステップＳ６０２でＹＥＳ）、一致検索処理を中断して処理をステップＳ６０３へ進める。また、処理中の隣接面が全て既定面テーブルもしくは隣接面テーブルいずれかへ登録済みの場合には非選択隣接面なしと判定し、初期隣接面テーブルを削除して処理をステップＳ６１４へ進める。
【００７６】
ステップＳ６０２の判定処理の結果、非選択隣接面が存在すると判定した場合にはその非選択隣接面情報（具体的には初期隣接面ＩＤ）を取得したうえで初期隣接面テーブルを削除し（ステップＳ６０３）、取得した非選択隣接面を新たな選択グループとして隣接面テーブルに追加する（ステップＳ６０４）。ここで具体的な選択グループの作成手順を説明する。まずステップＳ６０３で取得した面ＩＤを新規レコードとして隣接面テーブルの選択面ＩＤへ登録する。次にテーブル内のグループＮｏの最大値を取得した結果に１を加算した値を新たな選択グループの管理Ｎｏとして、登録したレコードのグループＮｏへ登録する。尚、この選択グループには、本処理で隣接面の選択処理を行う対象となる面が含まれることになる。
【００７７】
そして、ステップＳ６０４で作成した選択グループに含まれる面（選択グループ面という）を取得する（ステップＳ６０５）。具体的にはステップＳ６０４で作成したグループＮｏに該当するレコードを隣接面テーブルより抽出し、図２０に示すグループＮｏテーブルを作成して登録する。ここでグループＮｏテーブルについて説明する。隣接面ＩＤは隣接面がモデルＢ中で割り当てられる面ＩＤである。グループＮｏは処理中の選択グループに割り当てた管理Ｎｏである。そして、ステップＳ６０５で取得した面のうち１つを取得する。例えばグループＮｏテーブルにおいてレコードＮｏが１のものから昇順に隣接面ＩＤを取得する（ステップＳ６０６）。そしてステップＳ６０６で取得した選択グループ面に隣接面があるかを判定する。具体的には３次元ＣＡＤアプリケーションのＡＰＩを用いて隣接面の有無の確認を行う（ステップＳ６０７）。ステップＳ６０７の判定処理で、ＣＰＵ２０１が隣接面があると判定した場合には処理をステップＳ６０８へ進め、３次元ＣＡＤアプリケーションのＡＰＩを用いて隣接面の一覧を取得し、図２１に示すサブ隣接面テーブルを作成するとともに、取得した隣接面それぞれの面ＩＤをサブ隣接面ＩＤとして登録する（ステップＳ６０８）。一方、隣接面がないと判定した場合には（ステップＳ６０７でＮＯ）、処理をステップＳ６１３に進める。
【００７８】
その後、ステップＳ６０８で取得した隣接面のうち１つの面を処理対象として取得（例えばレコードＮｏが１のものから昇順にサブ隣接面ＩＤを取得）し（ステップＳ６０９）、その面が既に参照先面として選択されているかを判定する。具体的には処理中のサブ隣接面ＩＤをもとにして既定面テーブルを対象として一致検索を行い、既定面テーブルに登録済みであった場合には選択済みと判定して処理をステップＳ６１２へ進める。一方、既定面テーブルに未登録であった場合には引き続き隣接面テーブルを対象として一致検索を行う。隣接面テーブルに登録済みであった場合には選択済みと判定して処理をステップＳ６１２へ進める。一方、隣接面テーブルにも未登録であった場合には選択済みでないと判定して処理をステップＳ６１１へ進める（ステップＳ６１０）。
【００７９】
ステップＳ６１０の判定処理で選択されていない（ＮＯ）と判定した場合には、隣接面テーブルへ当該隣接面を登録することにより選択グループに追加して、選択グループを更新する。具体的には処理中のサブ隣接面ＩＤを隣接面テーブルの選択面ＩＤへ登録し、処理中のグループＮｏテーブルのグループＮｏを隣接面テーブルのグループＮｏへ登録する。続いてグループＮｏテーブル及びサブ隣接面テーブルを削除する（ステップＳ６１１）。その後処理をステップＳ６０５に進め、更新された隣接面テーブルにもとづいてステップＳ６０５の処理を行うことで選択グループ面を取得しなおし、ステップＳ６０６以降の処理を行う。
【００８０】
ステップＳ６１０の判定処理で既に選択されていると判定した場合には（ステップＳ６１０でＹＥＳ）、処理をステップＳ６１２に進め、ステップＳ６０８で取得した隣接面のうち、まだステップＳ６１０の選択済み判定処理を行っていない隣接面があるかを判定する。（ステップＳ６１２）。この判定処理で隣接面がある（隣接面残あり）と判定した場合（具体的には処理中のサブ隣接面テーブル上のレコードが末尾でない場合）には（ステップＳ６１２でＹＥＳ）、処理をステップＳ６０９に進め、未処理の隣接面を取得し、ステップＳ６１０の判定処理を行うことになる。
【００８１】
ステップＳ６０７の判定処理で隣接面がないと判定した場合（ステップＳ６０７でＮＯ）、若しくは、ステップＳ６１２の判定処理でＮＯ（隣接面残なし）と判定した場合（具体的には処理中のサブ隣接面テーブル上のレコードが末尾である場合）には、サブ隣接面テーブルを削除して処理をステップＳ６１３に進める。
選択グループ面（グループＮｏテーブルに登録済みの面）のうち、隣接面に対するステップＳ６０６からの処理を終了していない選択グループ面があるかを判定する。具体的には処理中のグループＮｏテーブルにおけるレコードがテーブルの末尾であれば選択グループ面残なしとし、末尾でなければ選択グループ面残ありと判定する。まだ処理を終了していない選択グループ面があると判定した場合には（ステップＳ６１３でＮＯ）、処理をステップＳ６０６に進め、全ての選択グループ面に対する処理を終了したと判定した場合には、グループＮｏテーブルを削除したのち処理をステップＳ６０２に進める（ステップＳ６１３）。図３７に示すのは、ステップＳ６０１で設定した初期選択面に隣接する非選択隣接面と、この非選択隣接面に連なる隣接面が選択グループに割り当てられた際の一例である。具体的には、既定面に囲まれた面領域において、初期選択面に隣接する非選択隣接面に連なる面が選択されることになる。
【００８２】
そして、上記のステップＳ６０３からステップＳ６１３の処理をステップＳ６０２で非選択隣接面がない（ＮＯ）と判定するまで繰り返すことになる。図３８に示すのは、ステップＳ６０１で設定した初期選択面に隣接する非選択隣接面のうち選択グループ１に割り当てられなかった面と、この非選択隣接面に連なる隣接面が選択グループに割り当てられた際の一例である。ここでは選択グループ２として隣接面テーブルへ登録されることになる。
【００８３】
ステップＳ６０２の判定処理で非選択隣接面がないとＣＰＵ２０１が判定した場合には、処理をステップＳ６１４に移行し、この図に示す処理で選択グループが作成されたかを判定する。具体的な判定に隣接面テーブルにおいてレコードが登録されている場合をＹＥＳとし、隣接面テーブルにレコードが登録されていない場合をＮＯとする（ステップＳ６１４）。選択面グループが作成されたと判定した場合には（ステップＳ６１４でＹＥＳ）、ステップＳ４０８で選択された面の一覧に後述する面設定−隣接面画面１１００の操作にもとづいた隣接面テーブルに登録されているレコードの選択面ＩＤに該当するモデルＢ中の面を追加する（ステップＳ６１５）。このとき、図１１に示す面設定−隣接面画面がディスプレイ装置２１０上に表示されることになる。以上が、図６の隣接面選択処理の詳細な説明である。ここで図３９に示すのは、図３８に示す隣接面選択処理の結果をモデルＢへ反映した場合における面の選択状態の一例である。
【００８４】
次に、図１１を参照して、図６のステップＳ６１５で表示される、面設定−隣接面画面の構成について説明する。図１１に示す面設定−隣接面画面１１００には、モデルＡ表示ボタン１１０１、モデルＢ表示ボタン１１０２、グループリスト表示部１１０３、選択グループ表示部１１０４、追加ボタン１１０５、削除ボタン１１０６、反映ボタン１１０７が用意されている。
【００８５】
モデルＡ表示ボタン１１０１が押下されると、不図示の３次元ＣＡＤデータ表示画面に表示されているモデルＡとモデルＢのうち、モデルＡを最前面に表示する制御をＣＰＵ２０１が行う。モデルＢ表示ボタン１２０２が押下されると、不図示の３次元ＣＡＤデータ表示画面に表示されているモデルＡとモデルＢのうち、モデルＢを最前面に表示する制御をＣＰＵ２０１が行う。尚、モデルＡが最前面に表示されている場合には、図４のステップＳ４０１で取得した面を選択状態にてモデルＡを表示し、後述するグループリスト表示部１１０３、選択グループ表示部１１０４を空欄にする。また、モデルＢを最前面に表示するには、選択グループ表示部１１０４に表示されているグループに含まれている面を選択状態にしてモデルＢを表示する。
【００８６】
グループリスト表示部１１０３には、図６のステップＳ６１５で取得したグループを表示する。ただし、モデルＢが最前面に表示されている状態でのみ表示されることになる。  選択グループ表示部１１０４には、グループリスト表示部１１０３に表示されているグループのうち、ユーザの操作により指定を受け付けたグループが表示される。
【００８７】
追加ボタン１１０５は、グループリスト表示部１１０３に表示されているグループのうち、選択状態のグループを選択グループ表示部１１０４に追加するためのボタンである。削除ボタン１１０６は、選択グループ表示部１１０４に表示されているグループのうち、選択状態のグループを選択グループ表示部１１０４から削除するためのボタンである。
【００８８】
反映ボタン１１０７が押下されると、ＣＰＵ２０１は、選択グループ表示部１１０４に表示されているグループに含まれる面を参照先面として設定し、本画面を非表示にする。
以上が、図１１の面設定−隣接面画面１１００の説明である。
【００８９】
次に、図７を参照して、図３のステップＳ３０８のエッジ設定処理の詳細について説明する。本処理をクライアント装置１０２−１に実行させるためのプログラムは、３次元ＣＡＤアプリケーションの一部、若しくはアドオンプログラムとして用意されており、本処理を実行する際には、ＣＰＵ２０１は、当該プログラムをＲＡＭ２０２にロードし、その制御に従って本処理を行うことなる。
【００９０】
まず、ＣＰＵ２０１は、モデルＢのうち、ステップＳ３０１で選択されたフィーチャーに対応するモデルＡ中のフィーチャーの参照先として設定されているエッジの一覧を取得する（ステップＳ７０１）。対応するフィーチャーを取得する際には、例えば、ステップＳ３０１で選択したフィーチャーの名称と同一の名称を有するモデルＡ中のフィーチャーを取得するなどの方法を用いるが、方法はこれに限られるわけではない。
【００９１】
その後、ステップＳ７０１で取得したエッジのうち、未処理のエッジの１つを処理対象のエッジとして取得する（参照先取得：ステップＳ７０２）。その後、ステップＳ７０２で取得した処理中のエッジを構成する面（上位２つ）をＣＡＤアプリケーションの機能を利用して取得する（ステップＳ７０３：構成面一覧取得）。
【００９２】
その後、ステップＳ７０３で取得した面のうち、未処理の面の１つを処理対象面として取得する（構成面取得：ステップＳ７０４）。そして、ステップＳ７０４で処理対象の面として取得したエッジの構成面を囲む空間座標（バウンディングボックス）を取得し、次にその空間の中心座標を算出し、この中心座標にもっとも近い面上の座標点を特定する。続いて受け取った座標点における面の法線ベクトルとベクトル符号（面の表側か裏側のいずれの方向であるか）を取得し、法線ベクトルにベクトル符号と任意の乗数を演算した値と面上の座標点とを加算し、基点を設定する。最後にこの基点から面に向かって任意の半径による無限長の円筒空間を導き出す（構成面情報抽出：ステップＳ７０５）。
【００９３】
ステップＳ７０５の処理で導出した円筒空間をモデルＢに配置し、円筒空間と重なる面があれば、その中で最も基点に近い位置で重なる面を取得する（近似面取得：ステップＳ７０６）。
【００９４】
ステップＳ７０６の処理終了後、ＣＰＵ２０１は、ステップＳ７０６の近似面取得処理で面を取得できたかを判定する（近似面選択可能？：ステップＳ７０７）。取得できたと判定した場合には、取得した面のエッジの一覧を、フィーチャーの参照先候補となるエッジとしてＲＡＭ２０２上に格納する。また、既に格納されているエッジが別の面の処理によって格納される際には、そのエッジを共通エッジとして格納することになる（選択エッジ一覧更新：ステップＳ７０８）。ステップＳ７０８の処理終了後、ステップＳ７０３で取得した構成面のうち、まだ処理が終わっていない構成面があるかを判定する（構成面残あり？：ステップＳ７０９）。まだ処理が終わっていない構成面があると判定した場合には、処理をステップＳ７０４に進め、まだ処理が終わっていない構成面を取得し、ステップＳ７０５以降の処理を行う。
【００９５】
一方、ステップＳ７０９の判定処理で、未処理の構成面がないと判定した場合には（ステップＳ７０９でＮＯ）、その後、処理をステップＳ７１０に進め、ＲＡＭ２０２上に共通エッジが格納されている場合、共通エッジの一つをモデルＢ上で選択した状態にして表示する。共通エッジが格納されていない場合、格納されたエッジの一つをモデルＢ上で選択した状態にして、不図示の３次元ＣＡＤデータ表示画面に表示する。また、ステップ５０２で処理対象のエッジとして選択したモデルＡに含まれるエッジを、モデルＡ上で選択した状態にして不図示の３次元ＣＡＤデータ表示画面に表示する。
【００９６】
設計者は、本ステップで表示される画面に対する操作によって、格納された共通・非共通エッジの一覧から任意のエッジを選択することができ、ＣＰＵ２０１は選択されたエッジＩＤを受け取って、３次元ＣＡＤアプリケーションが提供する不図示の３次元ＣＡＤデータ表示画面に該当エッジを選択状態にして表示する。設計者は前記画面に対する入力装置２０９からの操作指示を行うことで、任意のエッジを選択状態にするための指示をＣＰＵ２０１に対して入力することができる。以上の操作にもとづいてエッジが選択された状態で操作者からの情報更新の指示を受け取ることにより、選択されたエッジを更新エッジとして格納する。尚、このステップにおいて、３次元ＣＡＤアプリケーションが提供する画面には、モデルＡ及びモデルＢの形状を表示するための画面とともに、図１２に示すエッジ設定（個別）画面が表示されることになる。
【００９７】
図１２を参照して、エッジ設定（個別）画面の構成について説明する。図１２に示すエッジ設定（個別）画面１２００には、モデルＡ表示ボタン１２０１、モデルＢ表示ボタン１２０２、選択エッジ候補一覧表示部１２０３、可視変更ボタン１２０４、選択ボタン１２０５が用意されている。
【００９８】
モデルＡ表示ボタン１２０１が押下されると、不図示の３次元ＣＡＤデータ表示画面に表示されているモデルＡとモデルＢのうち、モデルＡを最前面に表示する制御をＣＰＵ２０１が行う。モデルＢ表示ボタン１２０２が押下されると、不図示の３次元ＣＡＤデータ表示画面に表示されているモデルＡとモデルＢのうち、モデルＢを最前面に表示する制御をＣＰＵ２０１が行う。
【００９９】
選択エッジ候補一覧表示部１２０３には、ステップＳ７１０で受け取ったエッジが表示される。操作者が選択エッジ候補一覧表示部１２０３の画面上でいずれかのエッジ名をポインティングデバイス操作することにより、３次元ＣＡＤデータ表示画面で当該エッジが選択状態になる。また、３次元ＣＡＤデータ表示画面のエッジ上で同様の操作を行ってもよい。なお、この処理は、モデルＢが最前面に表示されている場合にのみ有効となる。
【０１００】
可視変更ボタン１２０４が押下指示されると、ＣＰＵ２０１は、図９に示す可視選択処理を行う。この可視選択処理の詳細については後述する。選択ボタン１２０５が押下されると、３次元ＣＡＤデータ表示画面で選択状態となっているエッジを参照先エッジとして設定し、本画面の表示を終了する。以上が、図１２のエッジ設定（個別）画面の説明である。
【０１０１】
図７の説明に戻る。ステップＳ７１０の処理後、全ての参照先にエッジに対する処理が終了したかを判定し、全ての参照先エッジに対する処理が終了していないと判定した場合には（ステップＳ７１１でＮＯ）、ステップＳ７０２に処理を進め、未処理の参照先エッジを取得し、取得した参照先エッジに対して後続の処理を行うことになる。一方、全参照先エッジに対する処理が終了したと判定した場合には（ステップＳ７１１でＹＥＳ）、処理をステップＳ７１２に進め、ステップＳ７１０で格納された全ての選択エッジをモデルＢ上で選択した状態にして、不図示の３次元ＣＡＤデータ表示画面に表示する。また、モデルＡのエッジの一覧についてもモデルＡ上で選択した状態にして、不図示の３次元ＣＡＤデータ表示画面に表示する。設計者は、本ステップで表示される画面に対する操作によって選択されたエッジを非選択（除外）への切り替えや、新たに別のエッジを選択された一覧に追加することができる。尚、このステップにおいて、３次元ＣＡＤアプリケーションが提供する画面には、モデルＡ及びモデルＢの形状を表示するための画面とともに、図１３に示すエッジ設定画面が表示されることになる。
【０１０２】
図１３を参照して、エッジ設定画面の構成について説明する。図１３に示すエッジ設定画面１３００には、モデルＡ表示ボタン１３０１、モデルＢ表示ボタン１３０２、選択エッジ一覧表示部１３０３、更新ボタン１３０４、リセットボタン１３０５、設定ボタン１３０６、正接選択ボタン１３０７、可視変更ボタン１３０８が用意されている。
【０１０３】
モデルＡ表示ボタン１３０１が押下されると、不図示の３次元ＣＡＤデータ表示画面に表示されているモデルＡとモデルＢのうち、モデルＡを最前面に表示する制御をＣＰＵ２０１が行う。モデルＢ表示ボタン１３０２が押下されると、不図示の３次元ＣＡＤデータ表示画面に表示されているモデルＡとモデルＢのうち、モデルＢを最前面に表示する制御をＣＰＵ２０１が行う。
【０１０４】
選択エッジ一覧表示部１３０３には、３次元ＣＡＤデータ表示画面にモデルＡが最前面に表示されている場合にはモデルＡでの選択エッジが、モデルＢが最前面に表示されている場合にはモデルＢでの選択エッジが表示される。
【０１０５】
更新ボタン１３０４が押下指示されると、ＣＰＵ２０１は、その時点でモデルＢ上において選択されているエッジを選択エッジ一覧表示部１３０３に設定する。尚、この処理はモデルＢが最前面に表示されている場合にのみ行われることになる。
【０１０６】
リセットボタン１３０５が押下指示されると、ＣＰＵ２０１は、この画面を介した操作指示による選択面変更をリセットし、当該エッジ設定画面１３００が表示された際のエッジの選択状態に戻す処理を行う。モデルＢが最前面に表示されている際に、設定ボタン１３０６が押下されると、選択エッジ一覧表示部１３０３に表示されているエッジを参照先エッジとして設定し、本画面の表示を終了する。
【０１０７】
正接選択ボタン１３０７が押下指示されると、ＣＰＵ２０１は、図８に示す正接エッジ選択処理を行う。この正接エッジ選択処理の詳細については後述する。可視変更ボタン１３０８が押下指示されると、ＣＰＵ２０１は、図９に示す可視選択処理を行う。この可視選択処理の詳細については後述する。
【０１０８】
設計者は、エッジ設定画面１３００を介して操作指示を入力すること操作によって選択されたエッジを非選択（除外）への切り替えや、新たに別のエッジを選択エッジ一覧に追加することができる。また、ＣＰＵ２０１に対して、後述する正接選択処理、及び可視選択処理の実行指示を入力することが可能となる。以上が、図１３のエッジ設定画面１３００の説明である。
【０１０９】
図７の説明に戻る。ステップＳ７１２の処理終了後、ステップＳ７１２で表示されるエッジ設定画面１３００を介した操作指示に基づいて参照先エッジとして選択されたエッジで参照先エッジの一覧を更新する（ステップＳ７１３）。以上が、図３のステップＳ３０８のエッジ設定処理の詳細な説明である。
【０１１０】
次に、図８を参照して、図７のステップＳ７１２で表示されるエッジ設定画面１３００の正接選択ボタン１３０７の押下指示を受け付けることでＣＰＵ２０１が実行する正接エッジ選択処理の詳細について説明する。本処理をクライアント装置１０２−１に実行させるためのプログラムは、３次元ＣＡＤアプリケーションの一部、若しくはアドオンプログラムとして用意されており、本処理を実行する際には、ＣＰＵ２０１は、当該プログラムをＲＡＭ２０２にロードし、その制御に従って本処理を行うことなる。
【０１１１】
まず、ステップＳ８０１において、ＣＰＵ２０１は、図１３の選択エッジ一覧表示部１３０３に表示されているエッジの情報を取得する。その後、取得したエッジのうち、本処理による隣接する全てのエッジに対する正接判定処理を終了していないエッジを１つ選択する（ステップＳ８０２）。
【０１１２】
そして、ステップＳ８０２で取得したエッジについて、隣接するエッジが存在するかを判定する（ステップＳ８０３）。隣接エッジが存在すると判定した場合には（ステップＳ８０３でＹＥＳ）、処理をステップＳ８０４に進め、当該エッジに隣接するエッジの一覧を取得する。一方、隣接エッジがないと判定した場合には（ステップＳ８０３でＮＯ）、処理をステップＳ８１０に進める。
【０１１３】
ステップＳ８０４の処理終了後、ＣＰＵ２０１は、ステップＳ８０４で取得したエッジのうち１つのエッジを取得する（ステップＳ８０５）。そして取得したエッジが、ステップＳ８０２で取得した選択エッジと正接の関係になっているかを判定する（ステップＳ８０６）。正接であると判定した場合には、ステップＳ８０４で取得したエッジが既に選択エッジ一覧に含まれるかを判定する（ステップＳ８０７）。含まれていないと判定した場合には、選択エッジ一覧情報にステップＳ８０４で取得したエッジを追加し、選択エッジ一覧情報を更新する（ステップＳ８０８）。ここで新たに正接エッジを選択エッジ一覧に追加することにより、新たに選択エッジとして追加されたエッジに対しても、正接するエッジがあるかを判定し、正接エッジがあった場合には当該エッジを選択エッジとして追加する処理が行われることになる。そして、ステップＳ８０８の処理後、処理をステップＳ８０１に戻し、更新された選択エッジ一覧を取得しなおし、ステップＳ８０２以降の処理を行う。
【０１１４】
ステップＳ８０６でＮＯと判定した場合、若しくは、ステップＳ８０７でＹＥＳと判定した場合には、ＣＰＵ２０１は、処理をステップＳ８０９に進め、ステップＳ８０４で取得した隣接エッジのうち、まだステップＳ８０５で取得されていないエッジが存在するかを判定する（隣接エッジ残あり？）。存在すると判定した場合（ステップＳ８０９でＹＥＳ：隣接エッジあり）には、処理をステップＳ８０５に進め、まだ取得していない隣接エッジを１つ選択し、ステップＳ８０６以降の処理を行う。そして、上記ステップＳ８０５からステップＳ８０８までの処理を、ステップＳ８０９でＮＯ（隣接エッジなし）と判定するまで行うことになる。
【０１１５】
ステップＳ８０９で未処理の隣接エッジが存在しない（隣接エッジなし）と判定した場合には、ＣＰＵ２０１は、処理をステップＳ８１０に進め、選択エッジのうち、まだステップＳ８０２以降の処理を終了していないエッジがあるか（選択エッジ残あり？）を判定する。ステップＳ８１０の判定処理で、選択エッジ残があると判定した場合には、ステップＳ８０２に処理を戻し、隣接する全てのエッジに対してまだステップＳ８０３以降の処理を終了していない選択エッジを取得し、後続する処理を行う。そして、上記の処理を選択エッジ残なしとＣＰＵ２０１が判定するまで繰り返すことになる。以上が、正接エッジ選択処理の説明である。
【０１１６】
以上の説明では、図４のステップＳ４０１で取得した面に隣接する面や正接する面を参照先エンティティとして自動的に選択する処理や、図７のステップＳ７０１で取得したエッジに正接するエッジを参照先エンティティとして選択する例について述べたが、参照先エンティティの選択方法としてはこれに限られず、例えば、不図示の３次元ＣＡＤデータ表示画面に表示されているモデルＢに含まれる各エンティティに対するポインティングデバイス操作によって、選択状態を切り替える（選択状態→非選択状態、非選択状態→選択状態）等の手法を合わせて採用しても勿論構わない。
【０１１７】
次に、図９を参照して、図１０の参照面選択画面１０００の可視変更ボタン１００９、図１２のエッジ設定（個別）画面１２００の可視変更ボタン１２０４、図１３のエッジ設定画面１３００の可視変更ボタン１３０８の押下指示を受け付けた場合にＣＰＵ２０１が実行する可視変更処理の詳細について説明する。尚、この処理をクライアント装置１０２−１に実行させるためのプログラムは、クライアント装置１０２−１にインストールされている３次元ＣＡＤアプリケーションの一部、若しくはアドオンプログラムとして用意されており、当該プログラムの制御に従って、後述する各ステップにおける処理をクライアント装置１０２−１のＣＰＵ２０１は行うことになる。
【０１１８】
この処理を行う目的としては、例えば、フィーチャーの参照先候補として選択されている面やエッジ等のエンティティに対応するオブジェクト（選択オブジェクト）のみを表示状態にし、それ以外を非表示状態にしたり、参照先候補として選択されているエンティティに対応するオブジェクト以外を半透明表示にしたりと表示状態を切り替える等を行うことにより、不図示の３次元ＣＡＤデータ表示画面に表示されているモデルＢの各オブジェクトに対するポインティングデバイス操作による参照先エンティティとして選択されているエンティティに対応するオブジェクト（面、エッジ）の選択／非選択の操作をより容易にすることにある。
【０１１９】
例えば、選択状態のオブジェクトを非選択状態に切り替えるには、選択されていないオブジェクトが非表示状態のほうが操作を行いやすい。また、選択状態になっているオブジェクトが他のオブジェクトに隠れてしまい確認できない場合などは、非選択状態のオブジェクトを半透明状態で表示することにより、選択オブジェクトの視認性を向上させ、その付近のオブジェクトに対するポインティングデバイス操作による選択／非選択の操作が行いやすくなるという効果が期待できる。
【０１２０】
まず、ＣＰＵ２０１は、モデルＢ上で選択されている面、エッジを構成するソリッド及びサーフェス（以下総じてオブジェクト）の一覧を取得する（ステップＳ９０１）。その後、モデルＢ上に存在するオブジェクトの一覧を取得する（ステップＳ９０２）。
【０１２１】
その後、ＣＰＵ２０１は、ステップＳ９０２で取得したオブジェクトのうち、未処理のオブジェクトの１つを処理対象オブジェクトとして取得する（ステップＳ９０３）。そして、その後、ステップＳ９０３で取得した処理対象オブジェクトとステップＳ９０１で取得した選択オブジェクト一覧とを照合することにより、ステップＳ９０３で取得したオブジェクトが選択状態のオブジェクトかの判定を行う（ステップＳ９０４）。ステップＳ９０４の判定処理で選択オブジェクトではないと判定した場合（ステップＳ９０４でＮＯ）、可視変更対象とし当該オブジェクトを変更リストに追加することで変更リストを更新する（ステップＳ９０５）。
【０１２２】
ステップＳ９０４の判定処理でＮＯと判定した場合、若しくはステップＳ９０５の処理終了後、ステップ９０２で受け取ったオブジェクトの一覧において未処理のものが無いかの判定を行う（ステップＳ９０６）。ステップ９０６の判定処理で未処理のものは無いと判定した場合（ステップＳ９０６でＮＯ）本システムのメモリ上に格納された全てのオブジェクトの可視を変更するウィンドウを表示する。このウィンドウに対する操作者の操作にもとづき、変更リストに追加されたオブジェクトの非表示切り替えや、操作者が指定する任意の透明度への表示変更を行う（ステップＳ９０７）。以上が、可視変更処理の説明である。このような表示制御を行うことで、ポインティングデバイス操作によるオブジェクトの選択をより容易に行うことが可能となる。
【０１２３】
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、１つの機器からなる装置に適用してもよい。
【０１２４】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図３から図９に示すフローチャートに対応したプログラム）を、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【０１２５】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１２６】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【０１２７】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【０１２８】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【０１２９】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１３０】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１３１】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１３２】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【０１３３】
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１３４】
１０１  管理サーバ
１０２−１、１０２−２  クライアント装置
１０３  ＬＡＮ
２０１  ＣＰＵ
２０２  ＲＡＭ
２０３  ＲＯＭ
２０４  システムバス
２０５  入力コントローラ
２０６  ビデオコントローラ
２０７  メモリコントローラ
２０８  通信Ｉ／Ｆ（インターフェース）コントローラ
２０９  入力装置
２１０  ディスプレイ装置
２１１  外部メモリ
【図１】
0005644452.tif 000002
【図２】
0005644452.tif 000003
【図３】
0005644452.tif 000004
【図４】
0005644452.tif 000005
【図５】
0005644452.tif 000006
【図６】
0005644452.tif 000007
【図７】
0005644452.tif 000008
【図８】
0005644452.tif 000009
【図９】
0005644452.tif 000010
【図１０】
0005644452.tif 000011
【図１１】
0005644452.tif 000012
【図１２】
0005644452.tif 000013
【図１３】
0005644452.tif 000014
【図１４】
0005644452.tif 000015
【図１５】
0005644452.tif 000016
【図１６】
0005644452.tif 000017
【図１７】
0005644452.tif 000018
【図１８】
0005644452.tif 000019
【図１９】
0005644452.tif 000020
【図２０】
0005644452.tif 000021
【図２１】
0005644452.tif 000022
【図２２】
0005644452.tif 000023
【図２３】
0005644452.tif 000024
【図２４】
0005644452.tif 000025
【図２５】
0005644452.tif 000026
【図２６】
0005644452.tif 000027
【図２７】
0005644452.tif 000028
【図２８】
0005644452.tif 000029
【図２９】
0005644452.tif 000030
【図３０】
0005644452.tif 000031
【図３１】
0005644452.tif 000032
【図３２】
0005644452.tif 000033
【図３３】
0005644452.tif 000034
【図３４】
0005644452.tif 000035
【図３５】
0005644452.tif 000036
【図３６】
0005644452.tif 000037
【図３７】
0005644452.tif 000038
【図３８】
0005644452.tif 000039
【図３９】
0005644452.tif 000040