以下、図面を参照して、本発明の実施の形態の一例について説明する。
図1は、本発明のCADデータ管理システムのシステム構成の一例を示す図である。本発明のCADデータ管理システムは、情報処理装置101、サーバ102が設置されており、それら装置はLAN(Local Area Network)等のネットワークを介して相互にデータ通信可能に接続されている。図1のネットワーク上に接続される各種端末あるいはサーバの構成は一例であり、用途や目的に応じて様々な構成例があることは言うまでもない。
情報処理装置101は、3次元CADアプリケーションを実行する情報処理装置である。この情報処理装置101の3次元CADアプリケーションで作成された3次元CADデータ(CADデータ)はサーバ102で記憶管理される。本実施例における3次元CADデータとは、3次元CADモデルを構成する設計部品であり、更に当該3次元CADデータを構成する3次元CADデータに対する親子関係(以下、参照関係)が記憶されているデータである。尚、本実施例では3次元CADデータを元に説明するが、参照関係を持つデータ構造であれば、3次元CADデータでなくともよい。
サーバ102は、情報処理装置101で作成された各種データを記憶管理するサーバ装置である。
尚、情報処理装置101が、サーバ102の構成を含んでもよいし、サーバ102が情報処理装置101の構成を含んでもよい。また、本実施例においては、情報処理装置101に各種データが記憶され、ユーザからの操作によって動作させることとする。
図2は、本発明の実施形態における各種端末のハードウェア構成を示す図である。
CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。
また、ROM202あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / OutputSystem)やオペレーティングシステムプログラム(以下、OS)や、各サーバ或いは各PCの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。RAM203は、CPU201の主メモリ、ワークエリア等として機能する。
CPU201は、処理の実行に際して必要なプログラム等をRAM203にロードして、プログラムを実行することで各種動作を実現するものである。
また、入力コントローラ(入力C)205は、キーボード209や不図示のマウス等のポインティングデバイスからの入力を制御する。
ビデオコントローラ(VC)206は、CRTディスプレイ(CRT)210等の表示器への表示を制御する。表示器はCRTだけでなく、液晶ディスプレイでも構わない。これらは必要に応じて管理者が使用するものである。
メモリコントローラ(MC)207は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク(HD)やフロッピーディスク(登録商標 FD)或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュメモリ等の外部メモリ211へのアクセスを制御する。
通信I/Fコントローラ(通信I/FC)208は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。
なお、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、CRT210上での表示を可能としている。また、CPU201は、CRT210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
本発明の情報処理装置101が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ211に記録されており、必要に応じてRAM203にロードされることによりCPU201によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ211に格納されている。
次に、情報処理装置101及びサーバ102のモジュール構成を示す機能構成図について、図3を用いて説明する。尚、図3の各種端末あるいはサーバのモジュール構成は一例であり、用途や目的に応じて様々な構成例があることは言うまでもない。
情報処理装置101は、基準データ指定受付モジュール301、関連データ特定モジュール302、不要データ取り除きモジュール303、画面表示モジュール304、3次元CADデータ取得モジュール305を備える。
基準データ指定受付モジュール301は、不要な3次元CADデータを抽出するために基準となる3次元CADデータの指定を受け付けるモジュールである。
関連データ特定モジュール302は、基準データ指定受付モジュール301によって指定を受け付けた基準データに関連する3次元CADデータを特定するモジュールである。
不要データ取り除きモジュール303は、基準データ指定受付モジュール301と関連データ特定モジュール302によって特定された3次元CADデータ以外の3次元CADデータを別フォルダに移動させるモジュールである。
画面表示モジュール304は、ユーザからの指示に従って、各種画面を表示させるためのモジュールである。
3次元CADデータ取得モジュール305は、外部メモリ211等に記憶された3次元CADデータを取得するためのモジュールである。
サーバ102は、3次元CADデータ記憶モジュール306を備える。
3次元CADデータ記憶モジュール306は、3次元CADデータと、当該3次元CADデータと関連する3次元CADデータへの参照先を記憶する(CADデータ記憶手段)。3次元CADデータ記憶モジュール306は、情報処理装置101に備えられてもよい。この場合、サーバ102は不要となる。尚、本実施例では、3次元CADデータ記憶モジュール306は、情報処理装置101に備えられているものとする。また、3次元CADデータの参照先は3次元CADデータ内に記憶されているものであるが、これに限らない。例えば、参照先に関する情報がテーブルとして記憶されていてもよい。
次に、本発明の実施例における情報処理装置101によって行われる処理について、図4に示すフローチャートを用いて説明する。尚、S101乃至S106の各ステップは、情報処理装置101におけるCPU201の制御の下、処理が行われる。
尚、この処理を情報処理装置101に実行させるためのプログラムは、情報処理装置101にインストールされている3次元CADアプリケーションの一部、若しくはアドオンプログラムとして用意されていてもよいし、3次元CADアプリケーションとは別にインストールされたプログラムとして用意されていてもよい。
図4に示す処理を行う際には、情報処理装置101のCPU201は、情報処理装置101で作成された3次元CADデータを3次元CADアプリケーションで閲覧可能な状態にある。本発明では、これらの3次元CADデータから不要な3次元CADデータを抽出し、任意のフォルダへ既存フォルダ構成を維持しながら移動させる。
まず、ステップS101では、情報処理装置101は、不要な3次元CADデータを抽出するべく、参照関係を確認する基準となる3次元CADデータを選択する処理を行う。基準データ選択処理の詳細は後述する図5に示す。
ステップS102では、情報処理装置101は、据置対象選択画面800(図8参照)に備えられた検索ボタン802が押下されたか否かを判定する。押下されたと判定された場合には、ステップS103へ処理を進め、押下されたと判定できなかった場合には、検索ボタンが押下されるまで待機する。据置対象選択画面800は、ユーザからの指示に従って、不要な3次元CADデータを検索するための基準となる3次元CADデータ(以下、基準データ)の指定を受け付ける画面である。基準データからの参照関係をたどることで、必要な3次元CADデータを確認し、参照関係を持たない3次元CADデータを抽出することができる。また、基準データと参照関係のある3次元CADデータと参照関係のあるデータを更にたどることで、より正確な要不要判断を行うことができる。
ステップS103では、情報処理装置101は、ステップS202において選択されたフォルダ以下、全てのデータ領域に対して該当する3次元CADデータを取得し、参照関係テーブル1400(図14参照)の状態フラグ1401に「4」を格納し、3次元CADデータ名1402に取得した3次元CADデータのファイル名を格納し、3次元CADデータファイルパス1403に取得した3次元CADデータのファイルパスを格納する。格納結果としては、図17の参照関係テーブル1701に示す通りとなる。
参照関係テーブル1400(図14参照)は、3次元CADデータの状態を示す状態フラグ1401、3次元CADデータのファイル名を示す3次元CADデータ名1402、3次元CADデータのファイルパスを示す3次元CADデータファイルパス1403、3次元CADデータと参照関係にある3次元CADデータのファイル名を示す参照先データ名1404、参照先データ名1404が示す3次元CADデータのファイルパスを示す参照先データファイルパス1405から構成される(3次元CADデータ記憶手段)。尚、テーブルの構成はこれに限らない。状態フラグ1401には「1」「2」「3」「4」の4つのフラグが格納され、「1」は、ユーザから基準データとして選択されたことを示し、「2」は、基準データと参照関係があると判定されたこと(以下、参照関係あり)を示し、「3」は、基準データと参照関係がない3次元CADデータだが、当該3次元CADデータには参照関係のある3次元CADデータが存在すること(以下、不要参照関係あり)を示し、「4」は、基準データと参照関係がない、または未処理のデータであることを示す。状態フラグ1401に格納する情報はこれに限らない。
ステップS104では、情報処理装置101は、参照関係テーブル1400に記憶された3次元CADデータの参照先に関する情報を取得する。具体的には、参照関係テーブル1400に格納された3次元CADデータの情報から、3次元CADデータのCADデータテーブル1900(図19参照)を読み込み、CADデータテーブル1900に記憶された参照先を取得し、参照関係テーブル1400に格納する。CADデータテーブル1900から取得した参照先の3次元CADデータのファイル名である参照先データ名1903を参照先データ名1404に格納し、当該3次元CADデータのファイルパスである参照先データファイルパス1904を参照先データファイルパス1405に格納する。
CADデータテーブル1900(参照情報、図19参照)は、3次元CADデータのファイル名を示す3次元CADデータ名1901、3次元CADデータのファイルパスを示す3次元CADデータファイルパス1902、3次元CADデータと参照関係にある3次元CADデータのファイル名を示す参照先データ名1903、参照先データ名1903が示す3次元CADデータのファイルパスを示す参照先データファイルパス1904から構成される。CADデータテーブル1900は、3次元CADデータごとに、当該3次元CADデータ内に記憶されている情報だが、情報処理装置101またはサーバ102等のRAM203やROM202、外部メモリ211に記憶されていてもよい。また、図19に示す参照先データファイルパス1904は相対パスが格納されているが、絶対パスでもよい。
尚、3次元CADデータには、複数の参照先が存在する場合がある。これは1つの3次元CADデータが複数の部品(3次元CADデータ)から構成されているためである。例えば、本実施例における3次元CADデータ親子関係1510(図15参照)では、「Top.SLDASM」という3次元モジュールは「part1.SLDPRT」と「SubAssy1.SLDASM」の2つの3次元モジュールから構成されている。この場合には、参照関係テーブル1400に格納された参照元の3次元CADデータのレコードを構成数分だけ増やし、参照先の3次元CADデータごとに格納する。格納結果としては、図17の参照関係テーブル1702に示す通りとなる。
ステップS105では、情報処理装置101は、後述するステップS206において選択された基準データと参照関係のある3次元CADデータを検索する処理を行う。参照関係チェック処理の詳細は図6に示す。
ステップS106では、情報処理装置101は、後述するステップS206において選択された基準データと参照関係のない3次元CADデータを表示し、ユーザからの指示により移動させる3次元CADデータの選択を受け付け、移動させる処理を行う。不要データ移動処理の詳細は図7に示す。
次に、不要な3次元CADデータを抽出するべく、参照関係を確認する基準となる3次元CADデータを選択する処理について図5を用いて説明する。尚、S201乃至S207の各ステップは、情報処理装置101におけるCPU201の制御の下、処理が行われる。
まず、ステップS201では、情報処理装置101は、CRT210上に据置対象選択画面800(図8参照)を表示させ、ユーザからの操作を受け付ける。
ステップS202では、情報処理装置101は、ステップS201において表示された据置対象選択画面800に備えられた検索元ボタン801の押下を検知すると、基準データとする3次元CADデータが含まれるフォルダを選択するためのフォルダ選択画面900(図9参照)をCRT210上に表示させる。フォルダ選択画面900においてフォルダが選択されると、選択されたフォルダを参照する。
ステップS203では、情報処理装置101は、ステップS202において選択されたフォルダに3次元CADデータが存在するか否かを判定する。3次元CADデータが存在すると判定された場合には、ステップS204へ処理を進め、3次元CADデータが存在すると判定できなかった場合には、フォルダの再選択を促す旨のエラーメッセージを表示させ、ステップS202に処理を戻す。
ステップS204では、情報処理装置101は、ステップS202において選択されたフォルダに存在する3次元CADデータを取得し、参照関係テーブル1400の状態フラグ1401に「4」を格納し、3次元CADデータ名1402に取得した3次元CADデータのファイル名を格納し、3次元CADデータファイルパス1403に取得した3次元CADデータのファイルパスを格納する。
例えば、本実施例では、フォルダ構成1500(図15参照)に示すようなフォルダ構成となっている。ここで、ステップS202において、「C:¥User1¥」内に存在する「Temp1」フォルダが選択された場合、「Temp1」フォルダ内の「Top.SLDASM」と「Top.SLDDRW」の2つの3次元CADデータが取得される。この「Top.SLDASM」と「Top.SLDDRW」のファイル名を参照関係テーブル1400の3次元CADデータ名1402に格納し、それぞれのファイルパスを3次元CADデータファイルパス1403に格納する。また、状態フラグ1401には未処理を示す「4」を格納する。格納後は図16の参照関係テーブル1601に示す通りとなる。
ステップS205では、情報処理装置101は、ステップS204において参照関係テーブル1400に格納された3次元CADデータに関する各種情報を図10に示すように据置対象選択画面800に表示する。
ステップS206では、情報処理装置101は、ステップS205において表示された据置対象選択画面800において基準データの選択を受け付ける(基準データ指定受付手段)。具体的には、据置対象選択画面800に備えられた基準データ選択チェックボックス1001(図10参照)へのチェックを受け付ける。本実施例では基準データは1つだけ選択されるが、複数選択できてもよい。
ステップS207では、情報処理装置101は、ステップS206において選択を受け付けた3次元CADデータの状態フラグ1401を「1」に更新する。これにより、基準データとして選択されたことを記憶する。
例えば、図10においてはユーザからの操作に従って、基準データとする3次元CADデータの「Top.SLDASM」にチェックがなされる。これにより、参照関係テーブル1400の当該レコードの状態フラグ1401に「1」が格納され、基準データとして選定される。更新後は図16の参照関係テーブル1602に示す通りとなる。3次元CADデータ親子関係1510で示すと、「Top.SLDASM」が基準データとして選択されたことになる。
次に、ステップS206において選択された基準データと参照関係のある3次元CADデータを検索する処理について図6を用いて説明する。尚、S301乃至S312の各ステップは、情報処理装置101におけるCPU201の制御の下、処理が行われる。
まず、ステップS301及びステップS302において、基準データの参照先と参照元の3次元CADデータを特定し、参照関係ありとする処理を行う。
ステップS301では、情報処理装置101は、基準データの参照先または参照元である3次元CADデータを参照関係テーブル1400から検索し、特定する。具体的には、状態フラグ1401が「1」となっているレコードを参照関係テーブル1400から検索し、当該レコードの参照先データ名1404と参照先データファイルパス1405を取得する。この組み合わせと3次元CADデータ名1402と3次元CADデータファイルパス1403の組み合わせが一致するレコードを検索し、一致するレコードを特定する。これにより、基準データとして選択された3次元CADデータの参照先(つまり、基準データの参照先)を特定することができる。また、基準データの3次元CADデータ名1402と3次元CADデータファイルパス1403の組み合わせと、参照先データ名1404と参照先データファイルパス1405の組み合わせが一致するレコードを検索し、一致するレコードを特定する。これにより、基準データを参照先としている3次元CADデータ(つまり、基準データの参照元)を特定することができる。
ステップS302では、情報処理装置101は、ステップS301において特定されたレコードの状態フラグ1401を「2」に更新する(関連データ特定手段)。つまり、ステップS301において特定されたレコードの3次元CADデータは、基準データの参照先または参照元であるので、参照関係がある。よって、参照関係ありを示す「2」を状態フラグ1401に格納する。
例えば、3次元CADデータ親子関係1510で示すと、基準データとして選択された「Top.SLDASM」の参照先は、「part1.SLDPRT」と「SubAssy1.SLDASM」である。また、「Top.SLDASM」の参照元は「Top.SLDDRW」である。つまり、「part1.SLDPRT」と「SubAssy1.SLDASM」と「Top.SLDDRW」は、参照関係があるので、不要なデータではない。つまり、これらを関係ありとして参照関係テーブル1400に格納しておく。
次に、ステップS303乃至ステップS307において、ステップS302で参照関係ありとされた3次元CADデータの参照先または参照元の3次元CADデータを特定し、参照関係ありとする処理を行う。
ステップS303では、情報処理装置101は、ステップS302において参照関係ありとなっている3次元CADデータの参照先と参照元を検索し、特定する。具体的には、状態フラグ1401が「2」となっているレコードを参照関係テーブル1400から検索し、当該レコードの参照先データ名1404と参照先データファイルパス1405を取得する。この組み合わせと3次元CADデータ名1402と3次元CADデータファイルパス1403の組み合わせが一致するレコードを検索し、一致するレコードを特定する。これにより、参照関係ありとされた3次元CADデータの参照先を特定することができる。また、状態フラグが「2」となっているレコードの3次元CADデータ名1402と3次元CADデータファイルパス1403の組み合わせと、参照先データ名1404と参照先データファイルパス1405の組み合わせが一致するレコードを検索し、一致するレコードを特定する。これにより、参照関係ありとされた3次元CADデータの参照元を特定することができる。つまり、参照関係ありとなっている3次元CADデータの更に先の参照先と参照元を検索して、特定する。
ステップS304では、情報処理装置101は、ステップS303において参照先または参照元の3次元CADデータが特定できたか否かを判定する。参照先または参照元の3次元CADデータが特定できた場合には、ステップS305へ処理を進め、参照先または参照元の3次元CADデータが特定できなかった場合には、ステップS307へ処理を進める。
ステップS305では、情報処理装置101は、ステップS303において特定された参照先または参照元の3次元CADデータのレコードの状態フラグ1401に「4」が格納されているか否かを判定する。「4」が格納されていると判定した場合には、ステップS306へ処理を進め、「4」が格納されていると判定できなかった場合には、ステップS303へ処理を戻す。
ステップS306では、情報処理装置101は、ステップS303において特定された参照先または参照元の3次元CADデータのレコードの状態フラグ1401に「2」を格納する(関連データ特定手段)。つまり、参照関係ありとする。これにより、参照関係ありとされた3次元CADデータから紐づく3次元CADデータはすべて参照関係ありとする。ステップS306の処理終了後、ステップS303へ処理を戻し、参照関係テーブル1400にある未処理のレコードに対して、参照先または参照元がなくなるまでステップS303乃至ステップS306の処理を繰り返す。1つの3次元CADデータに複数の参照先または参照元がある場合でも同様である。
ステップS307では、情報処理装置101は、参照関係テーブル1400のレコードのうち、状態フラグに「2」が格納されたレコードすべてに対して、ステップS303乃至ステップS306の処理が行われたか否かを判定する。ステップS303乃至ステップS306の処理が行われたと判定した場合には、ステップS308へ処理を進め、ステップS303乃至ステップS306の処理が行われたと判定できなかった場合には、ステップS303へ処理を戻す。
例えば、3次元CADデータ親子関係1510で示すと、基準データとして選択された「Top.SLDASM」の参照先または参照元は、「part1.SLDPRT」と「SubAssy1.SLDASM」と「Top.SLDDRW」である。この3つの参照先または参照元を見ると、まず「SubAssy1.SLDASM」の参照先は、「sub−part1.SLDPRT」である。また、「part1.SLDPRT」は、「part1.SLDDRW」の参照元である。つまり、「sub−part1.SLDPRT」と「part1.SLDDRW」は、参照関係があるので、不要なデータではない。つまり、これらを関係ありとして参照関係テーブル1400に格納しておく。格納後は図18の参照関係テーブル1801に示す通りとなる。特に、本発明では、「part1.SLDPRT」のように、3次元CADデータの使いまわしをしていたとしても、使いまわしていた先の参照関係まで見て参照関係ありとするので、確実に不要な3次元CADデータを抽出することができる。
次に、ステップS308乃至ステップS312において、ステップS302及びステップS306で参照関係ありとされた3次元CADデータ以外の3次元CADデータの参照先または参照元の3次元CADデータを特定し、基準データからは参照関係がないので不要だが参照関係ありとする処理を行う。これにより、基準データから参照関係がないと判断された3次元CADデータ同士で参照関係を保持していた場合でも、参照関係を維持して移動させることができる。
ステップS308では、情報処理装置101は、参照関係テーブル1400で参照関係なしとなっている3次元CADデータの参照先と参照元を検索し、特定する。具体的には、状態フラグ1401が「4」となっているレコードを参照関係テーブル1400から検索し、当該レコードの参照先データ名1404と参照先データファイルパス1405を取得する。この組み合わせと3次元CADデータ名1402と3次元CADデータファイルパス1403の組み合わせが一致するレコードを検索し、一致するレコードを特定する。これにより、参照関係なしとされた3次元CADデータの参照先を特定することができる。また、状態フラグが「4」となっているレコードの3次元CADデータ名1402と3次元CADデータファイルパス1403の組み合わせと、参照先データ名1404と参照先データファイルパス1405の組み合わせが一致するレコードを検索し、一致するレコードを特定する。これにより、参照関係なしとされた3次元CADデータの参照元を特定することができる。つまり、参照関係なしとなっている3次元CADデータの参照先と参照元を検索して、特定する。
ステップS309では、情報処理装置101は、ステップS308において参照先または参照元の3次元CADデータが特定できたか否かを判定する。参照先または参照元の3次元CADデータが特定できた場合には、ステップS310へ処理を進め、参照先または参照元の3次元CADデータが特定できなかった場合には、ステップS312へ処理を進める。
ステップS310では、情報処理装置101は、ステップS308において特定された参照先または参照元の3次元CADデータのレコードの状態フラグ1401に「4」が格納されているか否かを判定する。「4」が格納されていると判定した場合には、ステップS311へ処理を進め、「4」が格納されていると判定できなかった場合には、ステップS308へ処理を戻す。
ステップS311では、情報処理装置101は、ステップS308において特定された参照先または参照元の3次元CADデータのレコードの状態フラグ1401に「3」を格納する。つまり、基準データからは参照関係がないので不要だが参照関係あり(不要参照関係あり)とする。これにより、参照関係なしとされた3次元CADデータから紐づく3次元CADデータはすべて不要参照関係ありとする。ステップS311の処理終了後、ステップS308へ処理を戻し、参照先または参照元がなくなるまでステップS308乃至ステップS311の処理を繰り返す。
ステップS312では、情報処理装置101は、参照関係テーブル1400のレコードのうち、状態フラグに「4」が格納されたレコードすべてに対して、ステップS308乃至ステップS311の処理が行われたか否かを判定する。ステップS308乃至ステップS311の処理が行われたと判定した場合には、参照関係チェック処理を終了し、ステップS308乃至ステップS311の処理が行われたと判定できなかった場合には、ステップS308へ処理を戻す。
例えば、3次元CADデータ親子関係1510で示すと、基準データとして選択された「Top.SLDASM」、参照関係ありとされた「Top.SLDDRW」、「part1.SLDPRT」、「SubAssy1.SLDASM」、「sub−part1.SLDPRT」、「part1.SLDDRW」、これら6つの3次元CADデータ以外の3次元CADデータが基準データとは参照関係がない。つまり、基準データから見ると移動させてもよい3次元CADデータである。しかし、参照関係がない3次元CADデータ同士が参照関係を保持している場合があり、単純に移動させてしまうと、その組み合わせの構造が崩れてしまう。これを防ぐためにも、参照関係がない3次元CADデータ同士の参照関係を検索する。3次元CADデータ親子関係1510では、「SubAssy2.SLDASM」と「sub−part2.SLDPRT」に参照関係がある。つまり、このどちらか片方だけを移動させると構造が崩れてしまうので、参照関係テーブル1400の「SubAssy2.SLDASM」と「sub−part2.SLDPRT」のレコードに不要参照関係ありを格納する。格納後は図18の参照関係テーブル1802に示す通りとなる。
次に、ステップS206において選択された基準データと参照関係のない3次元CADデータを表示し、ユーザからの指示により移動させる3次元CADデータの選択を受け付け、移動させる処理について図7を用いて説明する。尚、S401乃至S408の各ステップは、情報処理装置101におけるCPU201の制御の下、処理が行われる。
ステップS401では、情報処理装置101は、参照関係テーブル1400の状態フラグ1401が「3」または「4」のレコードを取得し、3次元CADデータ名1402と3次元CADデータファイルパス1403を移動対象選択画面1100(図11参照)の表示欄1103に格納して、CRT210上に表示させる(不要データ選択受付手段)。また、ユーザからの各種操作を受け付ける。移動先ボタン1101の押下を検知した場合には、不要データの移動先の指定を受け付け、また、不要データチェックボックス1104へのチェックを受け付ける。
ステップS402では、情報処理装置101は、不要データチェックボックス1104へのチェックを受け付けた3次元CADデータに不要参照関係があるかどうかを判定する。具体的には、チェックが行われた3次元CADデータの状態フラグ1401に「3」が格納されているか否かを判定する。「3」が格納されていると判定した場合には、ステップS403へ処理を進め、「3」が格納されていると判定できなかった場合には、ステップS404へ処理を進める。
ステップS403では、情報処理装置101は、ステップS401において移動対象として指定された3次元CADデータと参照関係のある3次元CADデータに関してもチェックを入れる。具体的には、不要データチェックボックス1104にチェックがなされた3次元CADデータの参照先データ名1404と参照先データファイルパス1405に値が格納されているのであれば、その参照先を特定し、当該特定された3次元CADデータの不要データチェックボックス1104にチェックを入れる。不要データチェックボックス1104にチェックがなされた3次元CADデータの参照先データ名1404と参照先データファイルパス1405に値が格納されていなかった場合には、チェックがなされた3次元CADデータ名1402と3次元CADデータファイルパス1403の組み合わせと、参照先データ名1404と参照先データファイルパス1405の組み合わせが一致するレコードを検索し、チェックがなされた3次元CADデータの参照元を特定する。特定された参照元の3次元CADデータの不要データチェックボックス1104にチェックを入れる。また、どちらの場合も更にそのレコードの参照先または参照元がある場合には、参照先または参照元がなくなるまで当該レコードを特定し、不要データチェックボックス1104にチェックを入れる。
図12に示す移動対象選択画面1100では、例えば「SubAssy2.SLDASM」にチェックが入れられた場合、「SubAssy2.SLDASM」の参照先である「sub−part2.SLDPRT」にもチェックが入る。これにより、不要だが参照関係のあるものは、その構造を崩さずに移動させることができる。また、チェックが外された場合には、「SubAssy2.SLDASM」と「sub−part2.SLDPRT」の両方のチェックが外れる。
ステップS404では、情報処理装置101は、移動対象選択画面1100に備えられた移動ボタン1105が押下されたか否かを判定する。移動ボタン1105が押下されたと判定された場合には、ステップS405へ処理を進め、移動ボタン1105が押下されたと判定できなかった場合には、移動ボタン1105が押下されるまで待機する。
ステップS405では、情報処理装置101は、CRT210上に移動対象確定画面1300(図13参照)を表示する。移動対象確定画面1300は、チェックがなされた3次元CADデータを本当に移動させてよいのか最終確認する画面である。
ステップS406では、情報処理装置101は、移動対象確定画面1300に備えられたOKボタン1301が押下されたのか否かを判定する。OKボタン1301が押下されたと判定した場合には、ステップS407へ処理を進め、OKボタン1301が押下されたと判定できなかった場合には、OKボタン1301が押下されるまで待機する。
ステップS407では、情報処理装置101は、移動対象選択画面1100においてチェックがなされた3次元CADデータを取得する。具体的には、チェックがなされた3次元CADデータの3次元CADデータ名1402と3次元CADデータファイルパス1403から、3次元CADデータを取得し、RAM203に記憶する。
ステップS408では、情報処理装置101は、ステップS407において取得した3次元CADデータをユーザによって指定されたフォルダに移動させる(不要データ移動手段)。尚、移動は同一の記憶媒体内に限らない。移動の際には、フォルダの構造を崩さずに移動させる。具体的には、移動する3次元CADデータの3次元CADデータファイルパス1403の階層構造を崩さずに移動させる。例えば、「SubAssy2.SLDASM」と不要参照関係にある「sub−part2.SLDPRT」を「C:¥User1¥Temp2¥」に移動させる場合、「SubAssy2.SLDASM」と「sub−part2.SLDPRT」はどちらも3次元CADデータファイルパス1403は「C:¥User1¥Temp1¥Sub2¥」に存在する。お互いの相対的な保存場所の関係(相対パス)が崩れてしまうと、子データが参照できなくなってしまうので、移動させる場合には、階層構造を維持させるため、どちらも「C:¥User1¥Temp2¥Sub2¥」というフォルダに移動させる。この場合、「Sub2」というフォルダが「Temp2」というフォルダ内に存在しないため、新規に作成する。これにより、不要であるが参照関係を保持する3次元CADデータであっても、構造を崩さずに移動させることができる。移動が終了次第、不要データ移動処理を終了する。
次に、第二の実施例について説明する。前述の実施例では、図15の通り基準データとして「Top.SLDASM」を選択すると、当該基準データとは関連のない「SubAssy2.SLDASM」、「sub−part2.SLDPRT」、「temp−part1.SLDPRT」、「temp−sub−part1.SLDPRT」の4つの3次元CADデータが抽出された。しかし、ユーザとしては「part1.SLDDRW」も不要なデータであり、移動すべきである。だが、「part1.SLDDRW」は、基準データと関連する「part1.SLDPRT」を参照しているので、安易に移動させることができない。移動させてしまうと、「part1.SLDDRW」と「part1.SLDPRT」から成る3次元モデルが崩れてしまうからである。
第二の実施例では、不要データが基準データを参照している場合であっても、不要データが構成する3次元モデルを崩すことなく、フォルダ移動させる仕組みについて説明する。具体的には、指定フォルダから不要データを移動させる場合に、不要データを通常の移動(指定フォルダから削除して移動)、基準データと関連するデータはコピーして移動(指定フォルダにも残して移動)させる。
まず、前述の実施例における図4のフローチャートは、第二の実施例においても同様であるので説明を省略する。
次に、不要な3次元CADデータを抽出するべく、参照関係を確認する基準となる3次元CADデータを選択する処理について図20を用いて説明する。尚、S201乃至S207、S501及びS502の各ステップは、情報処理装置101におけるCPU201の制御の下、処理が行われる。
ステップS201及びステップS202は、前述した図5に示すステップS201及びステップS202と同様であるので説明を省略する。
ステップS501では、情報処理装置101は、ステップS202において選択されたフォルダに図面データが存在するか否かを判定する。図面データが存在すると判定された場合には、ステップS502へ処理を進め、図面データが存在すると判定できなかった場合には、フォルダの再選択を促す旨のエラーメッセージを表示させ、ステップS202に処理を戻す。第二の実施例では後述する関連する3次元CADデータの検索を簡易化するため、設計物を構成する最上位の図面データを選択するようにしている。前述した実施例の通り、3次元CADデータ(図面データ、アセンブリデータ、部品データ)であってもよい。尚、図面データは設計物全体をまとめるための3次元CADデータであり、部品データを管理するアセンブリデータや、3次元モデルの各パーツを示す部品データなどの際上位を管理するためのデータである。
ステップS502では、情報処理装置101は、ステップS202において選択されたフォルダに存在する図面データを取得し、参照関係テーブル1400の状態フラグ1401に「4」を格納し、3次元CADデータ名1402に取得した3次元CADデータのファイル名を格納し、3次元CADデータファイルパス1403に取得した3次元CADデータのファイルパスを格納する。
第二の実施例においても、フォルダ構成1500(図15参照)に示すようなフォルダ構成となっているものとして説明する。ステップS202において、「C:¥User1¥」内に存在する「Temp1」フォルダが選択された場合、「Temp1」フォルダ内の「Top.SLDASM」と「Top.SLDDRW」の2つの3次元CADデータがあるが、図面データである「Top.SLDDRW」が取得される。この「Top.SLDDRW」のファイル名を参照関係テーブル1400の3次元CADデータ名1402に格納し、それぞれのファイルパスを3次元CADデータファイルパス1403に格納する。また、状態フラグ1401には未処理を示す「4」を格納する。格納後は図23の参照関係テーブル2301に示す通りとなる。尚、前述した実施例とは異なり、第二の実施例では参照関係テーブルに間接関連フラグ2302が追加されている。これは、後述する間接参照関係ありとされた場合のフラグを格納する項目である。
ステップS205乃至ステップS207は、前述した図5のステップS205乃至ステップS207と同様であるので、説明を省略する。
第二の実施例においては、据置対象選択画面800でユーザからの操作に従って、基準データとする図面データの「Top.SLDDRW」にチェックがなされる。これにより、参照関係テーブル1400の当該レコードの状態フラグ1401に「1」が格納され、基準データとして選定される。更新後は図23の参照関係テーブル2303に示す通りとなる。
次に、ステップS206において選択された基準データと参照関係のある3次元CADデータを検索する処理について図21を用いて説明する。尚、S601乃至S613の各ステップは、情報処理装置101におけるCPU201の制御の下、処理が行われる。
ステップS601の実行前では、ステップS103において指定されたフォルダに記憶された3次元CADデータがすべて取得され、参照関係テーブル1400に格納される。格納後は、図24の参照関係テーブル2401に示す通りとなる。また、ステップS104において取得した3次元CADデータの参照先を取得して参照関係テーブル1400に格納する。よって、格納後は図24の参照関係テーブル2403に示す通りとなる。ステップS103及びステップS104の処理の詳細については前述の通りである。
まず、ステップS601及びステップS602において、基準データの参照先の3次元CADデータを特定し、直接参照関係ありとする処理を行う。
ステップS601では、情報処理装置101は、基準データの参照先である3次元CADデータを参照関係テーブル1400から検索し、特定する。具体的には、状態フラグ1401が「1」となっているレコードを参照関係テーブル1400から検索し、当該レコードの参照先データ名1404と参照先データファイルパス1405を取得する。この組み合わせと3次元CADデータ名1402と3次元CADデータファイルパス1403の組み合わせが一致するレコードを検索し、一致するレコードを特定する。これにより、基準データとして選択された図面データの参照先(つまり、基準データの参照先)を特定することができる。
ステップS602では、情報処理装置101は、ステップS601において特定されたレコードの状態フラグ1401を「2」に更新する(関連データ特定手段)。つまり、ステップS601において特定されたレコードの3次元CADデータは、基準データの参照先であるので、参照関係がある。よって、参照関係あり(以下、直接参照関係あり)を示す「2」を状態フラグ1401に格納する。
前述した実施例では、「2」は参照関係ありを示すフラグであったが、第二の実施例では基準データが構成する3次元モデルに含まれる3次元CADデータであった場合には「2」(「直接参照関係あり」)とする。後述するが、基準データとは関連しないが、直接参照関係ありの3次元CADデータを参照しているものについては、「間接参照関係あり」とする。つまり「直接参照関係あり」は、基準データが構成する3次元モデルに含まれる3次元CADデータであって、「間接参照関係あり」は、基準データが構成する3次元モデルには含まれないが、参照先が当該3次元モデルに含まれる場合を指す。
次に、ステップS603乃至ステップS607において、ステップS602で直接参照関係ありとされた3次元CADデータの参照先の3次元CADデータを特定し、直接参照関係ありとする処理を行う。
ステップS603では、情報処理装置101は、ステップS602において直接参照関係ありとなっている3次元CADデータの参照先を検索し、特定する。具体的には、状態フラグ1401が「2」となっているレコードを参照関係テーブル1400から検索し、当該レコードの参照先データ名1404と参照先データファイルパス1405を取得する。この組み合わせと3次元CADデータ名1402と3次元CADデータファイルパス1403の組み合わせが一致するレコードを検索し、一致するレコードを特定する。これにより、直接参照関係ありとされた3次元CADデータの参照先を特定することができる。
ステップS604では、情報処理装置101は、ステップS603において参照先の3次元CADデータが特定できたか否かを判定する。参照先の3次元CADデータが特定できた場合には、ステップS605へ処理を進め、参照先の3次元CADデータが特定できなかった場合には、ステップS607へ処理を進める。
ステップS605では、情報処理装置101は、ステップS603において特定された参照先の3次元CADデータのレコードの状態フラグ1401に「4」が格納されているか否かを判定する。「4」が格納されていると判定した場合には、ステップS606へ処理を進め、「4」が格納されていると判定できなかった場合には、ステップS607へ処理を進める。
ステップS606では、情報処理装置101は、ステップS603において特定された参照先の3次元CADデータのレコードの状態フラグ1401に「2」を格納する(関連データ特定手段)。つまり、直接参照関係ありとする。これにより、直接参照関係ありとされた3次元CADデータの参照先である3次元CADデータはすべて直接参照関係ありとする。ステップS606の処理終了後、ステップS607へ処理を進める。
ステップS607では、情報処理装置101は、参照関係テーブル1400のレコードのうち、状態フラグに「2」が格納されたレコードすべてに対して、ステップS603乃至ステップS606の処理が行われたか否かを判定する。つまり、直接関係ありとされた3次元CADデータの参照先がすべて処理されたか判定することになる。ステップS603乃至ステップS606の処理が行われたと判定した場合には、ステップS608へ処理を進め、ステップS603乃至ステップS606の処理が行われたと判定できなかった場合には、ステップS603へ処理を戻す。処理結果は、図25の参照関係テーブル2501に示す通りとなる。
次に、ステップS608乃至ステップS613において、ステップS602及びステップS606で直接参照関係ありとされた3次元CADデータ以外の3次元CADデータの参照先の3次元CADデータを特定し、「間接参照関係あり」または「不要参照関係あり」とする処理を行う。
ステップS608では、情報処理装置101は、参照関係テーブル1400で参照関係なしとなっている3次元CADデータの参照先を検索し、特定する。具体的には、状態フラグ1401が「4」となっているレコードを参照関係テーブル1400から検索し、当該レコードの参照先データ名1404と参照先データファイルパス1405を取得する。この組み合わせと3次元CADデータ名1402と3次元CADデータファイルパス1403の組み合わせが一致するレコードを検索し、一致するレコードを特定する。これにより、参照関係なしとされた3次元CADデータの参照先を特定することができる。
ステップS609では、情報処理装置101は、ステップS608において参照先の3次元CADデータが特定できたか否かを判定する。参照先の3次元CADデータが特定できた場合には、ステップS610へ処理を進め、参照先の3次元CADデータが特定できなかった場合には、ステップS613へ処理を進める。
ステップS610では、情報処理装置101は、ステップS608において特定された参照先の3次元CADデータのレコードの状態フラグ1401に「2」が格納されているか否かを判定する。「2」が格納されていると判定した場合には、ステップS611へ処理を進め、「2」が格納されていると判定できなかった場合には、ステップS612へ処理を進める。
ステップS611では、情報処理装置101は、ステップS608において検索対象となった3次元CADデータ(参照元)と、検索した結果特定された3次元CADデータ(参照先)とを間接参照関係ありとする。具体的には、双方の3次元CADデータのレコードの間接関連フラグ2302に「1」を格納する。例えば、「part1.SLDDRW」の参照先をステップS608で検索すると、「part1.SLDPRT」が特定される。この2つは参照関係にあるが、一方は不要データ、もう一方は直接関係ありのデータである。不要データをフォルダ移動させてしまうと、参照構造が崩れてしまうので、ここで双方に間接参照ありのフラグを立てておく。
ステップS612では、情報処理装置101は、ステップS608において特定された参照先の3次元CADデータのレコードの状態フラグ1401に「3」を格納する。つまり、基準データからは参照関係がないので不要だが参照関係あり(不要参照関係あり)とする。これにより、参照関係なしとされた3次元CADデータから紐づく3次元CADデータはすべて不要参照関係ありとする。
ステップS613では、情報処理装置101は、参照関係テーブル1400のレコードのうち、状態フラグに「4」が格納されたレコードすべてに対して、ステップS608乃至ステップS612の処理が行われたか否かを判定する。ステップS608乃至ステップS612の処理が行われたと判定した場合には、参照関係チェック処理を終了し、ステップS608乃至ステップS612の処理が行われたと判定できなかった場合には、ステップS608へ処理を戻す。
間接参照関係や不要参照関係のフラグ処理を行うと、図25に示す参照関係テーブル2502に示す通りとなる。第二の実施例においては、「part1.SLDPRT」と「part1.SLDDRW」が間接参照関係あり、「SubAssy2.SLDASM」と「sub−part2.SLDPRT」が不要参照関係ありである。
第二の実施例の直接参照関係、間接参照関係、不要参照関係のフラグ管理や関係の求め方はあくまで一例であり、他の方法であってもよい。前述の実施例も含め、3次元CADデータ同士の参照関係を求めるロジックはこれに限らない。
次に、ステップS206において選択された基準データと参照関係のない3次元CADデータを表示し、ユーザからの指示により移動させる3次元CADデータの選択を受け付け、移動させる処理について図22を用いて説明する。尚、S701乃至S716の各ステップは、情報処理装置101におけるCPU201の制御の下、処理が行われる。
ステップS701では、情報処理装置101は、参照関係テーブル1400の状態フラグ1401が「3」または「4」または間接関連フラグ2302が「1」のレコードを取得し、3次元CADデータ名1402と3次元CADデータファイルパス1403を移動対象選択画面1100(図11参照)の表示欄1103に格納して、CRT210上に表示させる(不要データ選択受付手段)。また、ユーザからの各種操作を受け付ける。移動先ボタン1101の押下を検知した場合には、不要データの移動先の指定を受け付け、また、不要データチェックボックス1104へのチェックを受け付ける。
ステップS402では、情報処理装置101は、不要データチェックボックス1104へのチェックを受け付けた3次元CADデータに不要参照関係があるかどうかを判定する。具体的には、チェックが行われた3次元CADデータの状態フラグ1401に「3」が格納されているか否かを判定する。「3」が格納されていると判定した場合には、ステップS704へ処理を進め、「3」が格納されていると判定できなかった場合には、ステップS703へ処理を進める。
ステップS703では、情報処理装置101は、不要データチェックボックス1104へのチェックを受け付けた3次元CADデータに間接参照関係があるかどうかを判定する。具体的には、チェックが行われた3次元CADデータの間接関連フラグ2302に「1」が格納されているか否かを判定する。「1」が格納されていると判定した場合には、ステップS704へ処理を進め、「1」が格納されていると判定できなかった場合には、ステップS705へ処理を進める。
ステップS704では、情報処理装置101は、ステップS701において移動対象として指定された3次元CADデータと不要参照関係または間接参照関係のある3次元CADデータに関してもチェックを入れる。具体的には、不要データチェックボックス1104にチェックがなされた3次元CADデータの参照先データ名1404と参照先データファイルパス1405に値が格納されているのであれば、その参照先を特定し、当該特定された3次元CADデータの不要データチェックボックス1104にチェックを入れる。不要データチェックボックス1104にチェックがなされた3次元CADデータの参照先データ名1404と参照先データファイルパス1405に値が格納されていなかった場合には、チェックがなされた3次元CADデータ名1402と3次元CADデータファイルパス1403の組み合わせと、参照先データ名1404と参照先データファイルパス1405の組み合わせが一致するレコードを検索し、チェックがなされた3次元CADデータの参照元を特定する。特定された参照元の3次元CADデータの不要データチェックボックス1104にチェックを入れる。また、どちらの場合も更にそのレコードの参照先または参照元がある場合には、参照先または参照元がなくなるまで当該レコードを特定し、不要データチェックボックス1104にチェックを入れる。
移動対象選択画面1100では、例えば「part1.SLDDRW」にチェックが入れられた場合、「part1.SLDDRW」の参照先である「part1.SLDPRT」にもチェックが入る。これにより、不要だが参照関係のあるものは、その構造を崩さずに移動させることができる。また、チェックが外された場合には、「Spart1.SLDDRW」と「part1.SLDPRT」の両方のチェックが外れる。
ステップS705では、情報処理装置101は、移動対象選択画面1100に備えられた移動ボタン1105が押下されたか否かを判定する。移動ボタン1105が押下されたと判定された場合には、ステップS706へ処理を進め、移動ボタン1105が押下されたと判定できなかった場合には、移動ボタン1105が押下されるまで待機する。
ステップS706では、情報処理装置101は、CRT210上に移動対象確定画面1300(図13参照)を表示する。移動対象確定画面1300は、チェックがなされた3次元CADデータを本当に移動させてよいのか最終確認する画面である。
ステップS707では、情報処理装置101は、移動対象確定画面1300に備えられたOKボタン1301が押下されたのか否かを判定する。OKボタン1301が押下されたと判定した場合には、ステップS708へ処理を進め、OKボタン1301が押下されたと判定できなかった場合には、OKボタン1301が押下されるまで待機する。
ステップS708では、情報処理装置101は、移動対象選択画面1100においてチェックがなされた3次元CADデータを取得する。具体的には、チェックがなされた3次元CADデータの3次元CADデータ名1402と3次元CADデータファイルパス1403から、3次元CADデータを取得し、RAM203に記憶する。
ステップS709では、情報処理装置101は、不要データチェックボックス1104へのチェックを受け付けた3次元CADデータに不要参照関係があるかどうかを判定する。具体的には、チェックが行われた3次元CADデータの状態フラグ1401に「3」が格納されているか否かを判定する。「3」が格納されていると判定した場合には、ステップS710へ処理を進め、「3」が格納されていると判定できなかった場合には、ステップS711へ処理を進める。
ステップS710では、情報処理装置101は、ステップS708において取得した3次元CADデータをユーザによって指定されたフォルダに移動させる(不要データ移動手段)。この際、フォルダの構造を崩さずに移動させる。ステップS710における移動は、元のフォルダにデータを残さず移動させる。つまり、指定されたフォルダに3次元CADデータを移動させて、元のフォルダの当該データは削除する。カットアンドペーストと同様の動作を行う。移動が終了次第、不要データ移動処理を終了する。
ステップS711では、情報処理装置101は、不要データチェックボックス1104へのチェックを受け付けた3次元CADデータに間接参照関係があるかどうかを判定する。具体的には、チェックが行われた3次元CADデータの間接関連フラグ2302に「1」が格納されているか否かを判定する。「1」が格納されていると判定した場合には、ステップS712へ処理を進め、「1」が格納されていると判定できなかった場合には、ステップS716へ処理を進める。
ステップS712では、情報処理装置101は、不要データチェックボックス1104へのチェックを受け付け、間接参照関係がありとなっている3次元CADデータのうち、さらに直接参照関係もありとなっている3次元CADデータを特定する。具体的には、チェックが行われた3次元CADデータの状態フラグ1401に「2」が格納されている3次元CADデータを特定する。ここでは、ステップS701において「part1.SLDPRT」、「part1.SLDDRW」等が表示されており、「part1.SLDDRW」が選択された場合に基づいて説明する。ユーザによって「part1.SLDDRW」が選択されると、ステップS704において間接参照関係のある「part1.SLDPRT」にもチェックがなされる。この2つを移動しようとした場合に、ステップS712では、この2つの状態フラグ1401を見る。この場合、「part1.SLDPRT」の状態フラグ1401に「2」が格納されている(つまり、直接参照関係がある)ので、これが特定される。
ステップS713では、情報処理装置101は、ステップS712において特定された3次元CADデータを複製して、指定フォルダに移動させる。つまり、ステップS712において特定された3次元CADデータは直接参照関係があるので、基準データと共に3次元モデルを構成するデータである。よって、他フォルダにカットアンドペーストによって移動させてしまうと、3次元モデルの一部を構成する3次元CADデータがなくなってしまうので、構造を維持できなくなってしまう。これを防ぐために、直接参照関係のある3次元CADデータを移動させる場合には、カットアンドペーストで移動させるのではなく、コピーアンドペーストで移動させる。これにより、元のフォルダにも3次元CADデータを残すことができる。尚、移動させたあとのフォルダ構造については、移動前のフォルダ構造を崩さずに移動させる。これについては、前述の通りである。
ステップS714では、情報処理装置101は、ステップS713において移動された3次元CADデータを任意のファイル名に書き換える(ファイル名変更手段)。ファイル名についてはユーザが指定する形式でも、自動的に決まったファイル名に書き換えてもよい。リネームの方法については特に問わない。ファイル名を書き換えることによって、本来複数存在するべきではない3次元CADデータを混同させないようにしている。3次元CADデータは、最終的にPDM(Product Data Management)システム等に取り込み、一元的に管理することになる。よって、同じファイル名の3次元CADデータが複数存在することは管理上、好ましくない。よって、第二の実施例ではステップS713においてコピーアンドペーストで移動された3次元CADデータのファイル名を書き換えることによって、誤認混同を防いでいる。
ステップS715では、情報処理装置101は、ステップS712において特定されなかった3次元CADデータを指定フォルダに移動させる。ステップS712において特定されなかったということは、直接参照関係のある3次元CADデータではないので、通常のカットアンドペーストで移動させても問題はない。よって、ステップS713のコピーアンドペーストではなく、カットアンドペーストによって、ユーザから指定されたフォルダに移動させる。ステップS715の移動についても、ステップS713において移動した3次元CADデータと同様に、フォルダ構造を崩さずに移動させる。
図26は、ステップS712乃至ステップS715の処理内容を示す模式図である。「part1.SLDPRT」と「part1.SLDDRW」を別フォルダに移動しようとした場合に、「part1.SLDPRT」は基準データと共に3次元モデルを構成するので、直接参照関係がある。よって、このまま現在のフォルダに残しておかないと、「part1.SLDPRT」が参照できなくなってしまい、3次元モデルの構造が崩れてしまう。しかし、「part1.SLDDRW」は当該3次元モデルを構成しない不要なデータであるので、この点を気にする必要はない。2つの3次元CADデータにはこのような違いがあるため、不要なデータである「part1.SLDDRW」を移動する場合にはカットアンドペースト(ステップS710や後述するステップS716と同様に削除して移動)し、直接参照関係がある「part1.SLDPRT」を移動する場合にはコピーアンドペースト(複製して移動)を行う。
この際に前述の通り、フォルダ構成を崩さずに移動させる。2つの3次元CADデータは、「C:¥User1¥Temp1¥Sub1¥」という階層のフォルダに記憶されている。移動先としてユーザから「C:¥User1¥Temp2¥」というフォルダを指定された場合であっても、フォルダ構造を維持し、「C:¥User1¥Temp2¥Sub1¥」というフォルダに移動する。
元々同じフォルダに格納されていている場合は以上の通りだが、参照関係がある3次元CADデータ同士が別々のフォルダに格納されている場合もある。例えば、「SubAssy1.SLDASM」と「temp−part1.SLDPRT」が参照関係を構築しており、不要参照関係であった場合を想定する。この場合、子データである「SubAssy1.SLDASM」が参照している「temp−part1.SLDPRT」は、図15のフォルダ構成1500に示す通り、「SubAssy1.SLDASM」が記憶された場所から上位フォルダの「Temp1」内の「Sub1」フォルダに格納されている。つまり、この相対的な階層の位置関係を崩さずに移動させる必要がある。よって移動後は、「SubAssy1.SLDASM」が「C:¥User1¥Temp2¥Sub2¥」、「temp−part1.SLDPRT」が「C:¥User1¥Temp2¥Sub1¥」に格納される。それぞれ「Temp2」内の「Sub1」と「Sub2」のフォルダ内に記憶されることになる。これらの移動処理はステップS715に限らない。他の移動処理においても同様である。
ステップS716では、情報処理装置101は、不要参照関係もなく、直接参照関係もない3次元CADデータをユーザから指定されたフォルダに移動させ、元のデータを削除する。つまり、カットアンドペーストを行う。
第二の実施例では、以上の処理によって、不要データとして抽出された間接参照関係がある3次元CADデータを移動する場合には、直接参照関係のある3次元CADデータをコピーアンドペーストで移動させ、そうでない3次元CADデータをカットアンドペーストで移動させることで、3次元モデルの構成を崩すことなく、移動させている。また、コピーアンドペーストで移動させた3次元CADデータはリネームすることで、管理上の不都合も解消している。
以上説明したように、本実施形態によれば、基準データとして選択された3次元CADデータと参照関係のある3次元CADデータだけでなく、更に参照関係のある3次元CADデータの参照先または参照元を検索することで、確実に不要なデータを抽出することができる。また、不要なデータ同士の参照関係も確認するため、構造を崩さずに移動させることができる。
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、1つの機器からなる装置に適用してもよい。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。