以下、図面を参照して、本発明の実施の形態の一例について説明する。
図1は、本発明の実施形態における情報処理装置100のハードウェア構成を示す図である。
情報処理装置100は、パーソナルコンピュータのような装置である。情報処理装置100にインストールされた3次元CADソフトに対する操作をユーザから受け付けることで、設計物の立体形状を示す3次元モデルや、当該3次元モデルから生成された2次元図面を扱うことができる。3次元CADソフトでは、3次元モデルの表示や設計、3次元モデルに対応する2次元図面の出力、出力された2次元図面の編集を行うことができる。また、3次元モデルから生成された2次元図面は、元となる3次元モデルと対応づいている。そのため、3次元モデルで変更を加えた場合、対応する2次元図面は自動的にその変更が反映された状態で表示できる仕組みになっている。3次元モデルと2次元図面の対応づけや操作は、3次元CADソフトに備えられた各種API(Application Programming Interface)によって行うことができる。そのため、2次元図面で選択された線要素が3次元モデルのどの部分に対応するのかは、このAPIが動作することで分かる仕組みになっている。
図1に示すCPU101は、システムバス104に接続される各デバイスやコントローラを統括的に制御する。
また、ROM102あるいは外部メモリ111には、CPU101の制御プログラムであるBIOS(Basic Input / OutputSystem)やオペレーティングシステムプログラム(以下、OS)や、各サーバ或いは各PCの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。RAM103は、CPU101の主メモリ、ワークエリア等として機能する。
CPU101は、処理の実行に際して必要なプログラム等をRAM103にロードして、プログラムを実行することで各種動作を実現するものである。
また、入力コントローラ(入力C)105は、キーボードやマウスといった入力デバイス109からの入力を制御する。
ビデオコントローラ(VC)106は、ディスプレイ110等の表示器への表示を制御する。表示器はCRTや、液晶ディスプレイ等を想定するが、これに限らない。
メモリコントローラ(MC)107は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク(HD)やフレキシブルディスク(FD)或いはPCMCIAカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ111へのアクセスを制御する。
通信I/Fコントローラ(通信I/FC)108は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。
尚、CPU101は、例えばRAM103内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ110上での表示を可能としている。また、CPU101は、ディスプレイ110上の不図示のマウスカーソル等でのユーザ指示を可能とする。
本発明の情報処理装置100が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ111に記録されており、必要に応じてRAM103にロードされることによりCPU101によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ111に格納されている。
次に、情報処理装置100のモジュール構成を示す機能構成図について、図2を用いて説明する。尚、図2のモジュール構成は一例であり、用途や目的に応じて様々な構成例があることは言うまでもない。また、各モジュールは、APIであってもよい。
情報処理装置100の3次元CADソフト200は、CADデータ表示モジュール201、コンポーネント抽出モジュール202、2次元図面生成モジュール203、座標変換モジュール204、規定平面設定モジュール205、対応要素特定モジュール206を備える。
CADデータ表示モジュール201は、情報処理装置100の外部メモリ111等に記憶された3次元モデルや2次元図面をRAM103に読み出し、ディスプレイ110に表示させるためのモジュールである。また、3次元モデルや2次元図面を操作するための各種画面やメニューの表示制御も行う。そして、後述する隠線コントロールツール210の隠線表示制御モジュール214からの要求に応じて、2次元図面上のある投影図の奥行き方向を透過させた場合に隠れている線(以下、隠線)を表示または非表示となるよう制御する。
コンポーネント抽出モジュール202は、3次元モデルを構成するコンポーネントを抽出するためのモジュールである。後述する隠線コントロールツール210の隠線範囲指定モジュール211で2次元図面上において受け付けた選択範囲に基づいて、当該選択範囲の奥行き方向にあるコンポーネントを対応する3次元モデルから抽出する。尚、コンポーネント(部品要素)は、アセンブリを構成するひとつひとつの部品を意味し、同一の部品が複数個アセンブリに含まれる場合でも、それらのコンポーネントは個別のコンポーネントとして識別される。
2次元図面生成モジュール203は、3次元モデルから2次元図面を生成するためのモジュールである。3次元モデルを正面、上面、右側面といった規定平面から見た場合の輪郭線や隠線を2次元の平面に投影し、2次元図面を生成する。生成された2次元図面の各線要素は3次元モデルと対応づいており、後述する対応要素特定モジュール206によって、特定することができる。
座標変換モジュール204は、2次元図面上の座標と、対応する3次元モデルを表示する3次元空間上の座標とを相互に変換するためのモジュールである。後述する隠線範囲指定モジュール211で2次元図面のある範囲が選択された場合、3次元空間上のどの範囲に対応するのかを特定するために、座標変換モジュール204が座標の変換を行う。
規定平面設定モジュール205は、3次元モデルに正面、上面、右側面といった投影図を設定するモジュールである。3次元モデルが表示された3次元空間上に正面、上面、右側面に該当する仮想平面を作成し、それらを規定平面とする。規定平面設定モジュール205で設定された規定平面に基づいて、前述した2次元図面生成モジュール203で対応する投影図が2次元図面上に生成される。
対応要素特定モジュール206は、2次元図面で選択された要素が、対応する3次元モデル上でどこに対応するのか特定するためのモジュールである。また、3次元モデルで選択された要素が、対応する2次元図面上でどこに対応するのかも特定できる。これらの具体的な特定方法は、従来技術であるので説明を省略する。
情報処理装置100の隠線コントロールツール210は、隠線範囲指定モジュール211、深度指定モジュール212、深度位置表示モジュール213、隠線表示制御モジュール214を備える。
隠線範囲指定モジュール211は、2次元図面において隠線の表示制御を行いたい範囲の選択を受け付けるためのモジュールである。マウス等の入力デバイス109からの指示に応じて矩形で範囲選択を受け付ける。選択を受け付けると、選択された矩形の座標値を取得し、前述した座標変換モジュール204に渡す。こうすることで、2次元図面上で選択された矩形の範囲に対応する3次元空間上の箇所を、特定することができる。
深度指定モジュール212は、後述する隠線コントロール画面600に備えられたスライダーに対する操作を受け付けて、2次元図面の奥行き方向である深度の指定を行うためのモジュールである。
深度位置表示モジュール213は、前述した深度指定モジュール212で操作されたスライダーに対応する一時的な仮想平面を3次元空間上に作成し、深度指定モジュール212で指定された奥行き(以下、深度)を3次元空間上で識別表示するためのモジュールである。この仮想平面を見ることにより、3次元空間上でどのくらいの奥行きを指定しているのかを見ながら、スライダーに対する操作を行える。
隠線表示制御モジュール214は、深度指定モジュール212で指定された深度に応じて、前述したコンポーネント抽出モジュール202で抽出されたコンポーネントの表示制御を、前述したCADデータ表示モジュール201に指示するためのモジュールである。隠線コントロール画面600に備えられたスライダーで指定された深度に応じて、隠線の表示または非表示を決定できるので、この指定に応じて、CADデータ表示モジュール201に対して、隠線の表示または非表示するよう指示を送る。
次に、本発明の実施形態における情報処理装置100によって行われる一連の処理について、図3に示すフローチャートを用いて説明する。この処理を情報処理装置100に実行させるためのプログラムは、情報処理装置100にインストールされている3次元CADソフト200の一部、若しくはアドオンプログラムとして用意されていてもよいし、3次元CADソフト200とは別にインストールされたプログラムとして用意されていてもよい。
まず、ステップS301では、情報処理装置100は、ユーザからの指示に応じて3次元CADソフト200を外部メモリ111からRAM103に読み出し、起動させる。
ステップS302では、情報処理装置100の3次元CADソフト200は、ユーザからの指示に応じて3次元CADソフト200上で、3次元モデルから生成された図4に示すような2次元図面を開き、ディスプレイ110に表示させる。2次元図面は、外部メモリ111等の記憶媒体に記憶されており、これらからRAM103に読みだして、3次元CADソフト200上で開く。尚、2次元図面に対応する3次元モデルも、外部メモリ111等の記憶媒体に記憶されている。そのため、2次元図面を開いたときに合わせて対応する3次元モデルも開いてもよい。図4に示す2次元図面400は、正面401、上面402、右側面403といった三面図から構成され、更に等角投影404、分解イメージ405も表示されている。2次元図面400に表示する情報はユーザが設定できる。3次元モデルから2次元図面を生成する際に、規定平面設定モジュール205で3次元空間上に設定された平面に基づいて2次元図面に三面図を投影し、更に等角投影404、分解イメージ405といったような任意の情報も合わせて表示させる。こうすることにより、三面図の理解を助けている。
ステップS303では、情報処理装置100の3次元CADソフト200は、ユーザからの指示に応じて、隠線コントロール画面600(図6参照)を表示するためのコマンドを実行する。当該コマンドは、3次元CADソフト200に備えられたメニューの一つであってもよいし、3次元CADソフト200とは別のプログラムとして動作してもよい。コマンドを実行すると、隠線の制御を行うための隠線コントロール画面600をディスプレイ110に表示させる。
ステップS304では、情報処理装置100は、ユーザからの指示に応じて、隠線の表示制御を行いたい範囲(例えば、図4の選択範囲406)の指定を受け付ける処理を実行する。隠線コントロール範囲受付処理の詳細は、後述する図7に示す。
ステップS305では、情報処理装置100の隠線コントロールツール210は、隠線コントロール画面600に備えられた確定ボタン602が押下されたか否かを判定する。確定ボタン602が押下されたと判定した場合には、ステップS306に処理を進める。確定ボタン602が押下されず、解除ボタン603が押下されたと判定した場合には、ステップS304に処理を戻す。
ステップS306では、情報処理装置100は、ステップS304で指定された選択範囲に応じて対応する3次元モデルからコンポーネントを抽出し、抽出したコンポーネントを隠線コントロール画面600に備えられたコンポーネントリスト606に一覧表示する処理を実行する。コンポーネントリスト表示処理の詳細は、後述する図10に示す。
ステップS307では、情報処理装置100の隠線コントロールツール210は、隠線コントロール画面600に備えられたスライダー(左スライダー604、右スライダー605)、またはチェックボックス607のうち、どちらに対する操作をユーザから受け付けたかを判定する。スライダーに対する操作を受け付けたと判定した場合には、ステップS308に処理を進める。チェックボックス607に対する操作を受け付けたと判定した場合には、ステップS309に処理を進める。
ステップS308では、情報処理装置100は、スライダーの操作に応じて隠線の表示制御を行う処理を実行する。隠線表示コントロール(スライダー)処理の詳細は、後述する図14に示す。
ステップS309では、情報処理装置100は、チェックボックス607に対する操作に応じて隠線の表示制御を行う処理を実行する。隠線表示コントロール(チェックボックス)処理の詳細は、後述する図17に示す。
ステップS310では、情報処理装置100の隠線コントロールツール210は、隠線コントロール画面600に備えられたキャンセルボタン609が押下されたか否かを判定する(取消指示受付手段)。つまり、ステップS308やステップS309において更新された隠線の表示状態を取り消す指示がなされたか否かを判定する。キャンセルボタン609が押下されたと判定した場合には、ステップS311に処理を進める。キャンセルボタン609が押下されなかったと判定した場合には、ステップS312に処理を進める。
ステップS311では、情報処理装置100の隠線コントロールツール210は、ステップS306において生成されたコンポーネントテーブル500(図5参照)の初期隠線表示状態505に基づいて、表示された2次元図面の隠線の表示状態を制御する。初期隠線表示状態505は、ステップS308やステップS309において隠線の表示制御を行う前の表示状態を示すフラグである。キャンセルボタン609が押下されたということは、ステップS308やステップS309で表示制御された隠線を初期状態に戻す必要がある。そのため、初期隠線表示状態505に基づいて、隠線の表示状態を初期状態に戻している。
コンポーネントテーブル500(図5参照)は、NO501、コンポーネント名502、深度座標503、隠線表示状態504、初期隠線表示状態505から構成される。NO501は、コンポーネントテーブル500のレコードを一意に識別するための識別番号である。コンポーネント名502は、3次元モデルを構成するコンポーネントの名称を示す情報である。深度座標503は、当該コンポーネントの奥行きを示す座標値を示す。3次元モデルのX軸とY軸から成る平面であれば、奥行きはZ軸となるので、深度座標503にはZ座標が格納される。一方、3次元モデルのX軸とZ軸から成る平面であれば、奥行きはY軸となるので、深度座標503にはY座標が格納される。更に、3次元モデルのY軸とZ軸から成る平面であれば、奥行きはX軸となるので、深度座標503にはX座標が格納される。隠線表示状態504は、当該コンポーネントの隠線の表示状態を示すフラグである。隠線表示状態504が「0」であれば非表示、「1」であれば表示を示す。初期隠線表示状態505は、当該コンポーネントの隠線の表示制御を行う前の初期状態を示すフラグである。初期隠線表示状態505が「0」であれば非表示、「1」であれば表示を示す。
ステップS312では、情報処理装置100の隠線コントロールツール210は、隠線コントロール画面600に備えられたOKボタン608が押下されたか否かを判定する。OKボタン608が押下されたと判定した場合には、ステップS313に処理を進める。OKボタン608が押下されなかったと判定した場合には、ステップS307に処理を戻す。
ステップS313では、情報処理装置100の3次元CADソフト200は、ステップS303で起動した隠線コントロール画面600を閉じる。また、ユーザからの指示に応じて、ステップS302で開いた2次元図面を閉じ、ステップS301で起動した3次元CADソフトも終了させる。
次に、隠線コントロール範囲受付処理について図7を用いて説明する。この処理を情報処理装置100に実行させるためのプログラムは、情報処理装置100にインストールされている3次元CADソフト200の一部、若しくはアドオンプログラムとして用意されていてもよいし、3次元CADソフト200とは別にインストールされたプログラムとして用意されていてもよい。
まず、ステップS701では、情報処理装置100の隠線コントロールツール210は、ユーザからの指示に応じて、2次元図面を構成する投影図(以下、ビュー)における矩形の範囲選択を受け付ける(範囲指定受付手段)。例えば、図4の選択範囲406に示すような矩形の範囲選択を受け付ける。本実施形態では、矩形の範囲選択を受け付けているが、ビューの選択を受け付けるだけでもよい(投影図選択受付手段)。
ステップS702では、情報処理装置100の3次元CADソフト200は、ステップS701で受け付けた矩形の選択範囲が規定平面であるか否かを判定する。具体的には、規定平面設定モジュール205で設定された平面の投影図上で範囲選択がなされたか否かを判定すればよい。つまり、投影図上で範囲選択がなされていないと、奥行きである深度の算出ができないので、このような判定を行っている。選択範囲が規定平面であると判定された場合には、ステップS703に処理を進める。選択範囲が規定平面でないと判定された場合には、隠線コントロール範囲受付処理を終了する。
ステップS703では、情報処理装置100の隠線コントロールツール210は、ステップS701で受け付けた選択範囲に関する情報を取得し、ビュースケッチテーブル800(図8参照)に格納する。
ビュースケッチテーブル800(図8参照)は、NO801、スケッチ名802、所属ビュー名803、表示平面804、左上座標値805、右下座標値806から構成される。NO801は、選択範囲ごとに一意に割り振られる識別番号である。スケッチ名802は、選択範囲を作成するごとに命名される名前である。所属ビュー名803は、範囲選択されたビューの名前である。表示平面804は、当該ビューが示す規定平面の名前を示す。左上座標値805は、矩形で選択した範囲の左上のX座標とY座標を示す情報である。右下座標値806は、矩形で選択した範囲の右下のX座標とY座標を示す情報である。
ステップS705は、情報処理装置100の隠線コントロールツール210は、隠線コントロール画面600に備えられたリストボックス601に、ステップS701で選択された範囲のスケッチ名802を表示する。図9には、隠線コントロール画面600の画面遷移が示されている。ステップS303で隠線コントロール画面900が表示された初期状態が図9の900に示す状態である。リストボックス601やスライダー、コンポーネントリスト606には何も表示されていない。ここで、ステップS701により2次元図面上で隠線の表示制御をしたい範囲の選択を受け付けると、当該範囲選択に対応するスケッチ名802をリストボックス601に表示する。その表示結果が901に示す通りである。902と903に関する処理の詳細は、後述する。
次に、コンポーネントリスト表示処理について図10を用いて説明する。この処理を情報処理装置100に実行させるためのプログラムは、情報処理装置100にインストールされている3次元CADソフト200の一部、若しくはアドオンプログラムとして用意されていてもよいし、3次元CADソフト200とは別にインストールされたプログラムとして用意されていてもよい。
まず、ステップS1001では、情報処理装置100の3次元CADソフト200は、ステップS302で開いた2次元図面に対応する3次元モデルを3次元CADソフト200上で開く。このとき、開いた3次元モデルを2次元図面とは別の領域に表示させる。2次元図面を表示するウィンドウと、3次元モデルを表示するウィンドウの2つを設けてもよいし、他の方法でもよい。当該3次元モデルは、当該2次元図面を生成した元の3次元モデルである。3次元CADソフト200が3次元モデルと、当該3次元モデルから生成した2次元図面とを対応づけて管理しておき、この管理に基づいてステップS1001で開いている2次元図面に対応する3次元モデルを開けばよい。
ステップS1002では、情報処理装置100の3次元CADソフト200は、ステップS701で受け付けた選択範囲の座標を3次元空間上の座標に変換する。より具体的には、ステップS701で選択された矩形の左上座標値805と右下座標値806を、図11に示す補正テーブル1100の各パラメータを使って3次元空間上の座標値に変換する。補正テーブル1100の補正値X1101と補正値Y1102は、範囲選択された2次元図面上のビューの原点座標と、当該2次元図面に対応する3次元モデルを表示する3次元空間上の原点座標との差が格納されている。補正値X1101と補正値Y1102は、2次元図面上のビューの座標値を3次元空間上の座標値に変換する際のオフセット量を示す。更に、補正テーブル1100は、スケール1103を備える。スケール1103は、3次元モデルに対する2次元図面のビューの縮尺を示す。図13に示すように、2次元図面のビュー上における原点座標と、3次元モデルを表示する3次元空間上における原点座標はそれぞれ異なっている。よって、これらのずれを補正しなければならないので、補正値X1101と補正値Y1102を使用する。補正テーブル1100の各パラメータは、ステップS1002を実行するタイミングで算出して取得してもよいし、図11に示すような補正テーブル1100としてあらかじめ用意されていてもよい。
そして、ビュースケッチテーブル800に格納された選択範囲の左上座標値805と右下座標値806を、補正値X1101と補正値Y1102で座標のずれを修正し、更にスケール1103の逆数を乗算する。例えば、左上座標値805が「(160,220)」で、補正値X1101が「10」、補正値Y1102が「20」の場合、ずれを修正すると「(150,200)」になる。そして、スケール1103が「1/2」なので、その逆数である「2/1」を「(150,200)」に乗算すると、最終的には「(300,400)」となる。これが3次元空間上における、2次元図面上で選択した矩形の選択範囲の左上の座標値である。同様に右下座標値806についても計算すると、「(400,500)」となる。算出された3次元空間上における座標値は、3次元モデルスケッチテーブル1110の左上座標値1113と右下座標値1114に格納する。
3次元モデルスケッチテーブル1110は、NO1111、スケッチ名1112、左上座標値1113、右下座標値1114から構成される。NO1111は、スケッチごとに一意に割り振られる識別番号である。スケッチ名1112は、当該スケッチの名称を示す。左上座標値1113と右下座標値1114は、3次元空間上における、2次元図面上で選択した矩形の選択範囲の左上の座標値と右下の座標値である。
ステップS1003では、情報処理装置100の3次元CADソフト200は、ビュースケッチテーブル800の表示平面804に格納された平面に対して、ステップS1002で算出した座標値である左上座標値1113と右下座標値1114に基づいて、3次元空間上に矩形のスケッチを作成する。
ステップS1004では、情報処理装置100の3次元CADソフト200は、ステップS1003で作成された矩形のスケッチを平面正方向に押し出す。図13に示すような場合には、正面の平面にX軸とY軸に基づく矩形のスケッチを作成しているので、Z軸の正方向に矩形のスケッチを押し出す。押し出す距離は無限とする。押し出したイメージは、図13の下部に示す。
ステップS1005では、情報処理装置100の3次元CADソフト200は、ステップS1004で押し出された空間と干渉するコンポーネントに関する情報を干渉順に取得する。3次元CADソフト200では、一般的に干渉の認識機能が備えられており、この機能によって干渉を識別した順で、干渉したコンポーネントに関する情報の一覧を保持できる。
ステップS1006では、情報処理装置100の3次元CADソフト200は、ステップS1005で取得したコンポーネントに関する情報を干渉順に正方向テーブル1200(図12参照)に格納する。これにより、2次元図面上で選択した範囲に対応する矩形のスケッチの正方向にあるコンポーネントを特定できる。
正方向テーブル1200(図12参照)は、NO1201、コンポーネント名1202、深度座標1203から構成される。NO1201は、レコードを一意に識別するための識別番号である。コンポーネント名1202は、干渉したコンポーネントの名称を示す。深度座標1203は、当該コンポーネントの奥行き方向の座標を示す。X軸とY軸に生成された矩形のスケッチを押し出すことで取得したコンポーネントの深度座標1203は、Z座標である。
次に、ステップS1007は、情報処理装置100の3次元CADソフト200は、ステップS1003で作成された矩形のスケッチを平面負方向に押し出す。ステップS1004では、平面正方向に押し出していたが、逆側である平面負方向に対して押し出しを行う。図13に示すような場合には、正面の平面にX軸とY軸に基づく矩形のスケッチを作成しているので、Z軸の負方向に矩形のスケッチを押し出す。押し出す距離は無限とする。押し出したイメージは、図13の下部に示す。
ステップS1008では、情報処理装置100の3次元CADソフト200は、情報処理装置100は、ステップS1007で押し出された空間と干渉するコンポーネントに関する情報を干渉順に取得する。
ステップS1009では、情報処理装置100の3次元CADソフト200は、ステップS1008で取得したコンポーネントに関する情報を干渉順に負方向テーブル1210(図12参照)に格納する。これにより、2次元図面上で選択した範囲に対応する矩形のスケッチの負方向にあるコンポーネントを特定できる。
負方向テーブル1210(図12参照)は、NO1211、コンポーネント名1212、深度座標1213から構成される。NO1211は、レコードを一意に識別するための識別番号である。コンポーネント名1212は、干渉したコンポーネントの名称を示す。深度座標1213は、当該コンポーネントの奥行き方向の座標を示す。X軸とY軸に生成された矩形のスケッチを押し出すことで取得したコンポーネントの深度座標1213は、Z座標である。
ステップS1010では、情報処理装置100の3次元CADソフト200は、ステップS1003で作成された矩形のスケッチを削除する。尚、矩形のスケッチを削除することで、押し出し空間も削除される。
ステップS1011では、情報処理装置100の隠線コントロールツール210は、ステップS1006で登録された正方向テーブル1200と、ステップS1007で登録された負方向テーブル1210を結合して、図5に示すようなコンポーネントテーブル500を生成する。図12に示すように、正方向テーブル1200のレコードの下に負方向テーブル1210を結合することで、コンポーネントテーブル500を生成する。
ステップS1012では、情報処理装置100の隠線コントロールツール210は、ステップS1011で作成されたコンポーネントテーブル500に登録された各コンポーネントの現在の表示状態を初期隠線表示状態505に格納する。前述した通り、非表示なら「0」、表示なら「1」を格納する。
ステップS1013では、情報処理装置100の3次元CADソフト200は、2次元図面にある隠線のうち、コンポーネントテーブル500に登録されたコンポーネントの隠線をすべて表示する。尚、2次元図面上に存在する隠線をすべて表示するようにしてもよい。ステップS1013では、隠線の表示制御をしやすいように、すべての隠線を一度表示するようにしている。
ステップS1014では、情報処理装置100の隠線コントロールツール210は、隠線コントロール画面600のコンポーネントリスト606に、ステップS1011で作成されたコンポーネントテーブル500に登録されたコンポーネントのコンポーネント名502を表示する。表示順は、コンポーネントテーブル500に登録されたNO501の順とする。つまり、範囲選択を行った2次元図面の手前から奥に並んだ順番でコンポーネントを表示することになる。これにより、コンポーネントの奥行き感がわかりやすくなる。また、コンポーネントリスト606に表示したコンポーネントにはチェックボックス607を設け、すべてチェックをオンの状態にして表示する。図9の902では、コンポーネントリスト606にコンポーネント名502が表示された状態の一例を示している。この隠線コントロール画面600に対して後述するステップS1015とステップS1016の処理を行い、ステップS308の処理を行うことで、図9の903に示すような状態となる。
ステップS1015では、情報処理装置100の隠線コントロールツール210は、隠線コントロール画面600に備えられたスライダー(左スライダー604、右スライダー605)の1目盛あたりの深度の量(奥行きの量)を算出する。具体的には、コンポーネントテーブル500の第1レコードの深度座標503から最終レコードの深度座標503を減算し、これらの深度の絶対値によって、スライダーの最大目盛を決定する。例えば、第1レコードの深度座標503が「150」、最終レコードの深度座標503が「−200」だった場合、「深度の絶対値=150−(−200)=350」となる。つまり、スライダーを端から端まで移動させると、深度を「350」移動させることになる。よって、これに基づいてスライダーの1目盛あたりの移動量として算出する。
ステップS1016では、情報処理装置100の隠線コントロールツール210は、コンポーネントテーブル500の第1レコードの深度座標503の値と同じ3次元空間上の座標位置に、ステップS1003で矩形のスケッチを作成した平面と平行な一時平面Aを作成する(平面設定手段)。また、コンポーネントテーブル500の最終レコードの深度座標503の値と同じ3次元空間上の座標位置にも、ステップS1003で矩形のスケッチを作成した平面と平行な一時平面Bを作成する。作成された一時平面Aと一時平面Bは、それぞれ左スライダー604と右スライダー605と対応づいている。そのため、左スライダー604を移動させると、ステップS1015で算出された1目盛あたりの深度の深さに応じて、対応する一時平面Aが移動する。つまり、スライダーと3次元空間上の平面が対応づいているので、ユーザはスライダーでどのあたりの深度を指定しているのかを確認することができる。
次に、隠線表示コントロール(スライダー)処理について図14を用いて説明する。この処理を情報処理装置100に実行させるためのプログラムは、情報処理装置100にインストールされている3次元CADソフト200の一部、若しくはアドオンプログラムとして用意されていてもよいし、3次元CADソフト200とは別にインストールされたプログラムとして用意されていてもよい。
まず、ステップS1401では、情報処理装置100の隠線コントロールツール210は、マウス等の入力デバイス109で操作されたスライダーは、左スライダー604か右スライダー605かを判定する(奥行き指定手段)。左スライダー604であると判定された場合には、ステップS1402に処理を進める。右スライダー605であると判定された場合には、ステップS1410に処理を進める。
ステップS1402では、情報処理装置100の3次元CADソフト200は、左スライダー604が操作されたので、左スライダー604に対応する、ステップS1016で作成された一時平面Aをスライダーの移動量に合わせて移動させる(平面移動手段)。前述した通り、ステップS1015でスライダーを1目盛移動させた場合の深度の量が算出されている。そのため、スライダーの移動量を検知し、どれくらい移動されたかに応じて、3次元空間上に表示されている一時平面Aを当該一時平面Aの奥行き方向に平行となるよう移動させる。これにより、隠線の表示制御を行いたい深度の指定を行った際に、どのあたりを指定しているのかわかりやすくなる。
ステップS1403では、情報処理装置100の隠線コントロールツール210は、コンポーネントテーブル500に格納されたレコードのうち、後述するステップS1404乃至ステップS1409の処理を実行していないレコードを、コンポーネントテーブル500の上から優先的に参照する。
ステップS1404では、情報処理装置100の隠線コントロールツール210は、コンポーネントテーブル500に格納されたすべてのレコードが、後述するステップS1404乃至ステップS1409の処理を終了したか否かを判定する。すべてのレコードが処理を終了したと判定した場合には、ステップS1418に処理を進める。すべてのレコードが処理を終了していない、つまり未処理のレコードが存在すると判定した場合には、ステップS1405に処理を進める。
ステップS1405では、情報処理装置100の隠線コントロールツール210は、ステップS1402で移動させた一時平面Aの深度座標の方が、参照中のレコードの深度座標503よりも大きいか否かを判定する。左スライダー604よりも手前に存在するコンポーネントは隠線を非表示とし、左スライダー604よりも奥に存在するコンポーネントは隠線を表示するように制御する。そのため、ステップS1402で移動させた一時平面Aの深度座標の方が、参照中のレコードの深度座標503よりも大きいか否か、つまり、参照中のレコードが示すコンポーネントが一時平面Aよりも奥に存在するか否かを判定している。ステップS1402で移動させた一時平面Aの深度座標の方が、参照中のレコードの深度座標503よりも大きいと判定した場合には、ステップS1408に処理を進める。ステップS1402で移動させた一時平面Aの深度座標の方が、参照中のレコードの深度座標503よりも大きいと判定されなかった、つまり、参照中のレコードの深度座標503よりも小さいと判定した場合には、ステップS1406に処理を進める。
ステップS1406では、情報処理装置100の隠線コントロールツール210は、ステップS1403で参照中のレコードの隠線表示状態を非表示にする(部品要素特定手段)。より具体的には、参照中のレコードの隠線表示状態504を「0」に変更する。
ステップS1407では、情報処理装置100の隠線コントロールツール210は、参照中のレコードに対応する、コンポーネントリスト606に表示されたコンポーネントのチェックボックス607をオフに切り替える。こうして、隠線が非表示となっていることを識別表示させる。
一方、ステップS1408では、情報処理装置100の隠線コントロールツール210は、ステップS1403で参照中のレコードの隠線表示状態を表示にする(部品要素特定手段)。より具体的には、参照中のレコードの隠線表示状態504を「1」に変更する。
ステップS1409では、情報処理装置100の隠線コントロールツール210は、参照中のレコードに対応する、コンポーネントリスト606に表示されたコンポーネントのチェックボックス607をオンに切り替える。こうして、隠線が表示となっていることを識別表示させる。このように、ステップS1405乃至ステップS1409の処理を、コンポーネントテーブル500に格納されたすべてのレコードに対して実行し、すべてのレコードに対する処理が終了したら、ステップS1418に処理を進める。
ステップS1401で右スライダー605が操作された場合には、ステップS1410では、情報処理装置100の3次元CADソフト200は、右スライダー605に対応する、ステップS1016で作成された一時平面Bをスライダーの移動量に合わせて移動させる(平面移動手段)。より具体的な処理の詳細はステップS1402と同様であるので省略する。
ステップS1411では、情報処理装置100の隠線コントロールツール210は、コンポーネントテーブル500に格納されたレコードのうち、後述するステップS1412乃至ステップS1417の処理を実行していないレコードを、コンポーネントテーブル500の下から優先的に参照する。
ステップS1412では、情報処理装置100の隠線コントロールツール210は、コンポーネントテーブル500に格納されたすべてのレコードが、後述するステップS1413乃至ステップS1417の処理を終了したか否かを判定する。すべてのレコードが処理を終了したと判定した場合には、ステップS1418に処理を進める。すべてのレコードが処理を終了していない、つまり未処理のレコードが存在すると判定した場合には、ステップS1413に処理を進める。
ステップS1413では、情報処理装置100の隠線コントロールツール210は、ステップS1410で移動させた一時平面Bの深度座標の方が、参照中のレコードの深度座標503よりも小さいか否かを判定する。右スライダー605よりも手前に存在するコンポーネントは隠線を表示とし、右スライダー605よりも奥に存在するコンポーネントは隠線を非表示するように制御する。そのため、ステップS1410で移動させた一時平面Bの深度座標の方が、参照中のレコードの深度座標503よりも小さいか否か、つまり、参照中のレコードが示すコンポーネントが一時平面Bよりも手前に存在するか否かを判定している。ステップS1410で移動させた一時平面Bの深度座標の方が、参照中のレコードの深度座標503よりも小さいと判定した場合には、ステップS1416に処理を進める。ステップS1410で移動させた一時平面Bの深度座標の方が、参照中のレコードの深度座標503よりも小さいと判定されなかった、つまり、参照中のレコードの深度座標503よりも大きいと判定した場合には、ステップS1414に処理を進める。
ステップS1414では、情報処理装置100の隠線コントロールツール210は、ステップS1410で参照中のレコードの隠線表示状態を非表示にする(部品要素特定手段)。より具体的には、参照中のレコードの隠線表示状態504を「0」に変更する。
ステップS1415では、情報処理装置100の隠線コントロールツール210は、参照中のレコードに対応する、コンポーネントリスト606に表示されたコンポーネントのチェックボックス607をオフに切り替える。こうして、隠線が非表示となっていることを識別表示させる。
一方、ステップS1416では、情報処理装置100の隠線コントロールツール210は、ステップS1410で参照中のレコードの隠線表示状態を表示にする(部品要素特定手段)。より具体的には、参照中のレコードの隠線表示状態504を「1」に変更する。
ステップS1417では、情報処理装置100の隠線コントロールツール210は、参照中のレコードに対応する、コンポーネントリスト606に表示されたコンポーネントのチェックボックス607をオンに切り替える。こうして、隠線が表示となっていることを識別表示させる。このように、ステップS1413乃至ステップS1417の処理を、コンポーネントテーブル500に格納されたすべてのレコードに対して実行し、すべてのレコードに対する処理が終了したら、ステップS1418に処理を進める。
ステップS1418では、情報処理装置100の隠線コントロールツール210は、コンポーネントテーブル500に格納されたレコードのうち、ステップS1419乃至ステップS1420の処理が未処理であるレコードを参照する。
ステップS1419では、情報処理装置100の隠線コントロールツール210は、ステップS1418で参照中のレコードの隠線表示状態504を取得する。そして、ステップS1420では、情報処理装置100の3次元CADソフト200は、2次元図面上で参照中のレコードのコンポーネントの表示状態を、ステップS1419で取得した隠線表示状態504に基づいて更新する(表示制御手段)。隠線表示状態504が「1」なら当該コンポーネントの隠線を表示させ、隠線表示状態504が「0」なら当該コンポーネントの隠線を非表示にする。
ステップS1421では、情報処理装置100の隠線コントロールツール210は、コンポーネントテーブル500に格納されたすべてのレコードが、ステップS1418乃至ステップS1420の処理を終了したか否かを判定する。すべてのレコードが処理を終了したと判定した場合には、隠線表示コントロール(スライダー)処理を終了する。すべてのレコードが処理を終了していない、つまり未処理のレコードが存在すると判定した場合には、ステップS1418に処理を戻す。
図15の1500は、2次元図面と、当該2次元図面に対応する3次元モデルを表示し、深度の指定を行っている3次元CADソフト200の画面を示す。画面左側の1501には2次元図面が表示され、画面右側の1502には3次元モデルが表示されている。例えば、この2次元図面上で隠線の表示制御を行いたい範囲の指定を受け付けると、前述した処理によって、隠線コントロール画面600の設定と、1502に表示された3次元モデルにスライダーに対応する一時平面を設定する。尚、本実施形態においては2つのスライダーを用いて深度の指定を行っているが、1つでもよいし、3つでもよい。深度の指定ができればなんでもよい。このように、深度の指定に対応して、当該深度を示す一時平面を3次元空間上で移動させることにより、ユーザがどのあたりの深度を指定しているのかをわかりやすくしている。
更に、図15の1510には、スライダーを操作した場合の2次元図面と3次元モデルの状態遷移を示している。図15の1511は、スライダーが何も操作されていない初期表示状態を示す。この場合には、スライダーが両脇に配置され、コンポーネントリスト606もすべてチェックがオンになっている。つまり、すべての隠線が表示されている状態である。右スライダー605を左に移動させた場合を1512に示す。この場合には、3次元空間に設定された左スライダー604に対応する一時平面Bが1515に示す位置まで移動する。この1515に示す一時平面Bよりも奥にあるコンポーネントの隠線は非表示となるため、図16の1600に示すようにコンポーネントテーブル500の隠線表示状態504を更新し、その結果図15の1513に示すようにチェックボックスがオフとなり、2次元図面は1514に示すような状態となる。
更に左スライダー604を右に移動させた場合を1516に示す。この場合には、3次元空間に設定された右スライダー605に対応する一時平面Aが1519に示す位置まで移動する。この1519に示す一時平面Bよりも手前にあるコンポーネントの隠線は非表示となるため、図16の1610に示すようにコンポーネントテーブル500の隠線表示状態504を更新し、その結果図15の1517に示すチェックボックスが更にオフとなり、2次元図面は1518に示すような状態となる。このように、スライダーで指定された深度に対応する箇所が、2次元図面に対応する3次元モデルの3次元空間上で表示されるので、深度の指定が容易となる。また、どのあたりの深度が指定されているかを見ながら、隠線の表示制御を行うことができるので、ユーザはより直感的に隠線の表示制御を指示することができる。
次に、隠線表示コントロール(チェックボックス)処理について図17を用いて説明する。この処理を情報処理装置100に実行させるためのプログラムは、情報処理装置100にインストールされている3次元CADソフト200の一部、若しくはアドオンプログラムとして用意されていてもよいし、3次元CADソフト200とは別にインストールされたプログラムとして用意されていてもよい。
まず、ステップS1701では、情報処理装置100の隠線コントロールツール210は、チェックボックス607に対する入力指示を受け付けたので、チェックボックス607の表示を切り替える。入力指示がなされたチェックボックス607がオンだった場合にはオフにし、オフだった場合にはオンにする。
ステップS1702では、情報処理装置100の隠線コントロールツール210は、操作のなされたチェックボックス607に対応するコンポーネントの隠線表示状態504を更新する。チェックボックス607がオンにされた場合には、隠線表示状態504に「1」を格納する。チェックボックス607がオフにされた場合には、隠線表示状態504に「0」を格納する。
ステップS1703では、情報処理装置100の3次元CADソフト200は、ステップS1702で更新した隠線表示状態504に応じて、当該コンポーネントの隠線を表示または非表示に制御する。隠線表示状態504に「1」が格納されていれば、当該コンポーネントの隠線を表示するよう制御し、隠線表示状態504に「0」が格納されていれば、当該コンポーネントの隠線を非表示とするよう制御する。このようにして、チェックボックス607に対する入力によっても、隠線の表示制御を行うことができる。
以上説明したように、本実施形態によれば、隠線の表示制御を行う奥行きの指定をユーザから受け付けると、指定された奥行きに応じて、当該奥行き箇所を3次元モデル上で識別表示しつつ、当該奥行きに基づいて抽出されたコンポーネントの隠線を表示制御することが可能となるので、ユーザはユーザが指定した奥行きに対応する箇所を3次元モデル上で閲覧しつつ、容易に隠線の表示制御を行うことのできる効果を奏する。
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、1つの機器からなる装置に適用してもよい。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。