以下、図面を参照して、本発明の実施の形態の一例について説明する。
図1を参照して、本発明のPC100とソフトウェアの関係の一例について説明する。
本発明における情報処理装置であるPC100には、CADソフトウェア101(以下、CADソフト101)と、部品組立ツール102、表計算ソフト103、寸法チェックツール104、寸法一括変更ツール105が記憶・インストールされている。
CADソフト101は、PC100の外部メモリや、不図示のサーバ装置の外部メモリに記憶されているCADファイルを読み込んで、メモリ上に展開し、表示画面に読み込んだCADファイルのイメージを展開することが可能である。当該サーバ装置とは例えばLAN(ローカルエリアネットワーク)で通信可能に接続されているものとする。以下、実施形態の説明においては、CADファイルはPC100内の所定の記憶領域に記憶されているものとする。
部品組立ツール102は、表計算ソフト103において入力され、記憶されている部品の識別情報及び寸法の値に応じて、当該寸法の部品をCADソフト101に生成させ、3DCAD(3次元CAD)のモデル(部品)を表示する表示部に生成した部品を配置・表示させるツールである。また、部品を分割(ブロック割)する位置を決定するための情報が、表計算ソフトにおいて当該部品に対応して入力されている場合は、当該部品を分割する分割位置を決定して、分割位置を示す平面(ブロック割平面)を3次元モデル上に生成して配置するための制御を行う。
寸法チェックツール104は、表計算ソフト103の寸法変更前のファイルと変更後のファイルを比較・チェックするツールである。寸法一括変更ツール105は、表計算ソフト103の寸法変更前のファイルと変更後のファイルを比較し、寸法の値が異なる部品の寸法を一括で変更するツールである。また、部品を分割(ブロック割)する位置を決定するための情報が、表計算ソフトにおいて当該部品に対応して入力されている場合は、当該部品を分割する分割位置を決定して、分割位置を示す平面(ブロック割平面)を3次元モデル上に生成して配置するための制御を行う。以上が図1の説明である。
以下、図2を用いて、図1に示したPC100に適用可能な情報処理装置のハードウェア構成について説明する。
図2において、201はCPUで、システムバス204に接続される各デバイスやコントローラを統括的に制御する。また、ROM202あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、各サーバ或いは各PCの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。
203はRAMで、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をROM202あるいは外部メモリ211からRAM203にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。
また、205は入力コントローラで、キーボード(KB)209や不図示のマウス等のポインティングデバイス等からの入力を制御する。206はビデオコントローラで、CRTディスプレイ(CRT)210等の表示器への表示を制御する。なお、図2では、CRT210と記載しているが、表示器はCRTだけでなく、液晶ディスプレイ等の他の表示器であってもよい。これらは必要に応じて管理者が使用するものである。
207はメモリコントローラで、ブートプログラム,各種のアプリケーション,フォントデータ,ユーザファイル,編集ファイル,各種データ等を記憶するハードディスク(HD)や、フレキシブルディスク(FD)、或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ211へのアクセスを制御する。
208は通信I/Fコントローラで、ネットワークを介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いた通信等が可能である。
なお、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、CRT210上での表示を可能としている。また、CPU201は、CRT210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
本発明を実現するための後述する各種プログラムは、外部メモリ211に記録されており、必要に応じてRAM203にロードされることによりCPU201によって実行されるものである。さらに、上記プログラムの実行時に用いられる定義ファイル及び各種情報テーブル等も、外部メモリ211に格納されており、これらについての詳細な説明も後述する。以上が図2の説明である。
次に図3を参照して、本発明の実施形態におけるPC100の機能構成の一例について説明する。
CADファイル読込部311は、PC100の記憶部に記憶されているCADファイルを読み込んでメモリ上に展開する処理部である。
分割情報取得部321は、表計算ソフト103において入力・記憶された部品の識別情報と、当該部品の分割情報を取得する取得部である。表計算ソフト103において入力・記憶された情報とは、例えば図7の表計算ファイル720に示す情報であり、PC100の外部メモリに記憶されている。分割情報とは、例えばブロック割情報729Aのことである。
No721は、表計算ファイル720における各レコードのレコードNo(識別情報)である。タイプ723は、後述する表計算ソフト103の寸法入力画面においてユーザから選択・入力されたモデルタイプである。ファイル名702は、当該タイプ723のタイプのテンプレートモデル(モデルのテンプレートファイル)が、CADソフト101の管理下の所定のアセンブリ直下のフォルダにコピーされリネームされたファイルのファイル名である。当該コピー処理・リネーム処理は、テンプレートモデルそのものを編集させないために実行する処理である。テンプレートモデルの詳細については後述する。
モデル位置、寸法A726、寸法B727は、後述する図9の寸法入力画面において入力されたモデル位置の値、モデルの寸法値である。モデル同士の距離728は、新たに配置する部品Model01Aと既に配置されている部品Model01との間の距離を示す。詳細は図9の説明で後述する。
ブロック割情報729Aは、BlockNoと分割距離から構成される。分割距離は、ブロック割平面を配置する位置、つまり部品を分割する位置を決定するための情報である。例えば、図7によれば、図21に示すようなモデルの基準面Aから100mm離れた位置をBlock1の名称のブロック割平面の位置として決定し、当該Block1のブロック割平面の位置から更に300mm離れた位置をBlock2の名称のブロック割平面の位置として決定することとなる。BlockNoは、ブロック割り平面により分割される各ブロックの名称であり、分割距離に基づいて生成するブロック割平面の名称である。ブロック割情報729Aの表計算ソフト103の画面上の表示例を図20の2001及び2002に示す。
面積情報729Bは、表面積、天井面、底面、側面(面の識別情報)の項目から構成されている。面積情報729Bは、モデル全体の表面積、天井面の面積、底面の面積、側面の面積をそれぞれ記憶する項目である。詳細は図20の説明で後述する。面積情報729Bの表計算ソフト103の画面上の表示例を図20の2003に示す。以上が図7の表計算ファイル720の説明である。
図3の説明に戻る。分割可否判定部322は、分割情報取得部321で取得した情報に基づいて部品を分割可能か判定する。例えば、ブロック割情報729Aの分割距離の合計値がモデルの直径と一致する場合に、分割距離が適切に入力されていると判断し、分割可能であると判定する。分割位置決定部323は、分割情報取得部321で取得した情報に基づいて、3次元モデルを分割する位置を決定する決定部である。
分割平面生成指示部324は、324で決定した分割位置にモデルを分割すること、及び分割する位置を示す分割平面(実施形態ではブロック割平面と記載)を生成するよう、CADソフト101に指示する。また分割平面識別表示指示部325は、生成した分割平面を識別表示するよう指示する指示部である。
分割平面生成指示受付部312は、分割平面生成指示部324からの指示を受け付け、分割平面生成部313が分割平面を指示された部品ファイル上の位置に生成する。また、分割平面識別表示指示受付部314は、分割平面識別表示指示部325からの指示を受け付け、分割平面識別表示部315が、分割平面を指示された部品ファイル上でユーザが確認可能なように識別表示する(例えば分割平面の「表示/非表示」の設定を、「表示」に設定する。)
モデル方向取得指示部326は、CADソフト101に対して、CADソフト上のモデルの方向の情報を要求する。例えば、部品を参照しているアセンブリ(例えば部品を参照している912に入力されたアセンブリ)が規定している空間のX、Y、Z軸方向を基準に、部品がどの軸の方向に何度回転しているかの情報(部品の3次元空間上の向きの情報)を要求する。モデル方向取得指示受付部316は、モデル方向取得指示部326からの指示を受け付け、モデル方向送信部317がモデルの3次元空間上における方向を部品組立ツール102に送信する。モデル方向取得部327は、モデル方向送信部317により送信されたモデルの方向の情報を取得する。
面積情報取得指示部328は、部品の表面積の情報をCADソフト101に要求する。面積情報取得指示受付部318は当該要求を受け付け、面積情報送信部319は、モデルの各面の面積の表面積の情報を部品組立ツール102に送信する。面積情報取得部329は、当該面積情報を取得し、面積情報表示制御部330は、取得した各面の面積情報及び部品の表面の総面積を表示画面に表示するよう制御する。例えば表計算ソフトに対して、当該面積の情報を表示するよう指示する。以上が図3の説明である。
なお、本実施形態においては、ブロック割平面(分割平面)を配置するモデルは、外部メモリに記憶された3次元モデルのテンプレートが(所定の記憶領域にコピーされて)、寸法変更され3次元空間上に配置されるものとする。また、表計算ファイル上で、当該配置された部品の後ろに記載されている部品を、当該配置された部品の後ろにつなげて組み立てるため、当該配置された部品の一部と合致させて順々に配置していく。合致の処理に際しては、予めテンプレートのモデルに記憶されているモデルの参照平面(例:図11の1100)同士を合致させる。
モデル自体の面ではなく参照平面を用いる理由を以下に記載する。一般のCADソフトにおいて参照平面は、例えば図10で後述するCADソフト101のアセンブリ表示部1012等に、図8の810に示すようなツリー構造上に表示可能な、モデル自体の面とは異なる独自の面として管理されている(当該ツリーにおいて参照平面はモデルの下位階層にモデルとは別の単位で表示することができる)。CADソフト101にとっての外部のツールである部品組立ツール102等のツールにとっても、実際の3次元モデル上の面を3次元空間上の座標を細かに指定して特定・選択するよりも、例えば参照平面の名称等を使って、モデルから独立して管理されている参照平面を合致させたい面として選択・特定した方が処理が容易である。また、3次元モデルを回転、移動、変形すれば変化してしまう3次元モデル自体の面の座標を使うよりも、基本的に変化しない参照平面の識別情報を使って面を特定する方が、面の特定が容易であり、確実である。例えば、雛形のモデルごとに参照平面を作成しておき、当該参照平面の識別情報を部品組立ツールで記憶・管理しておけば、当該参照平面の識別情報を使って、CADソフト101上で展開されている3次元モデルの参照平面を選択可能である。あとは選択した参照平面同士を合致させるようCADソフト101に指示すればよい。以上説明したように、本実施形態においては、部品の組立に用いる面の特定を容易にするために参照平面を用いる。
本実施形態における、3次元モデル(部品)のテンプレート(雛形)の例を図7のテンプレートモデル情報700に示す。テンプレートモデル情報700におけるモデルIDは、テンプレートモデル情報700上でのモデルの識別情報である。ファイル名702は、テンプレートモデルのファイル名である。タイプ703は、テンプレートモデルのモデルタイプを示す。ファイル名とモデルタイプは1対1で対応付けて記憶されているものとする。例えば、モデルタイプ703=「直線」のモデルは、Model01.partのみである。また、モデルタイプ703=「曲線」のモデルは、Model02.partのみであるものとする。図13の1300にモデルタイプ703=「直線」のテンプレートモデルの一例を示す。また、モデルタイプ703=「曲線」のテンプレートモデルの一例を示す。1301、1302、1311、1312において点線で示す面は、各モデルのファイルに記憶されている参照平面である。
フォルダパス704は、当該テンプレートモデルが記憶されているPC100の外部メモリ上の保存場所を示す。
テンプレートモデルの所定の面には予め参照平面が作成・設定されているものとする。参照平面は、当該参照平面が参照しているモデル上の面と同じ位置・方向で作成・設定されている所定の大きさの面である。テンプレートモデル上に作成された参照平面の情報を参照平面情報710に示す。
参照平面情報710は、テンプレートモデルごとに、テンプレートモデル情報700と対応付けてPC100の外部メモリに記憶されている。参照平面ID711は、参照平面情報710のテーブルにおける各参照平面の識別情報である。参照先712は、当該参照平面が参照している、当該参照平面の位置の基準となる位置/X,Y,Z、向き/X,Y,Zが記憶されている。
寸法A713は、参照平面の寸法である。本実施形態においては、全てのテンプレートモデルの参照平面の寸法は同じであるものとする。位置714、向き715は、参照平面の(CADにおける3次元空間上の)位置と向きを示す。当該位置と向きは、参照先712の位置、向きと同じ位置・同じ向きが設定されているものとする。以上が図7のテンプレートモデル情報及び参照平面情報の説明である。
なお、CADソフト101において配置された後のモデルの情報は配置済みモデル情報730に示すテーブル(PC100のメモリに記憶する)で記憶・管理する。モデルID731、ファイル名732、タイプ733、フォルダパス734については表計算ファイル720の説明で前述したとおりである。フォルダパス734は対象レコードのファイル名のモデルが記憶されている場所を示す。位置735、向き736は、CADにおける3次元空間上の配置後のモデルの位置・向きを示す。以上が図7の配置済みモデル情報730の説明である。
<第1の実施形態>
まず、本発明の実施例におけるPC100によって行われる処理について、図4に示すフローチャートを用いて説明する。尚、図4の各ステップはPC100におけるCPU201が、PC100にインストールされたCADソフト101、部品組立ツール102、表計算ソフト103等の機能を用いて実行するものとする。
表計算ソフト103は、図9に示す寸法入力画面900を表示する。そして、レコードが空の表計算ファイル720をメモリ上に生成して記憶する。当該寸法入力画面に表示するファイル(表計算ファイル720)を開く操作をユーザから受け付けた場合には当該操作に従って指定された表計算ファイル720の情報を読み出してメモリ上空の表計算ファイル720に上書きして記憶し、寸法入力画面900に当該読み出した表計算ファイル720の値を表示する。
なお、本実施形態においては、表計算ソフト103は、自身が起動したタイミングで不図示のツールを起動させ、当該ツールが表計算ソフト103のファイルの読込み、展開の状態を監視し、ユーザから特に表計算ファイル720を開く指示を受け付けなかった場合には空の表計算ファイル720を、ユーザから表計算ファイル720を開く指示を受け付けた場合には当該指示に応じて開いた表計算ファイル720を(開いた時点での表計算ファイルの値を)、後に編集後の値と変更前の値とを比較するために用いる比較基準情報としてメモリに記憶する処理を行う。
表計算ソフト103は、当該寸法入力画面900において部品の識別情報と、当該識別情報の示す部品の寸法の入力を受け付ける(ステップS401)。ここでは部品の識別情報の1つであるタイプの入力(選択)を、モデルタイプ入力受付部905において受け付けるものとする。入力を受け付けた情報はメモリ上に記憶する。なお、本実施形態においては、当該寸法入力画面900における各行のレコードの入力操作が、モデルの組立順序の指定操作にあたる。組立順序は、行Noが若い順(上から順)であるものとする。2行目のレコードの入力を受け付ける=当該レコードに入力した情報の示すモデルを2番目に組み立てる(CADソフト101において配置・表示する)部品とする組立順序の指定を受け付けたと判断する。ここで図9の寸法入力画面900について説明する。
図9は、表計算ソフト103の表示する画面であり、部品(モデル)の選択(指定)、寸法の入力を受け付ける寸法入力画面900、寸法入力画面920の一例を示す図である。寸法入力画面900と寸法入力画面920の構成は同じだが、入力されている情報が異なる。具体的には、寸法入力画面920にはJointXX(接続部/ロフト)の行のレコードがない。
つまり、寸法入力画面900に入力されている情報によれば、2つのモデルの間に接続部が作成され(例:図12の1200)、寸法入力画面920に入力されている情報によれば、2つのモデルが直接接触する(接続部を挟まない)配置、組立が行われる(例:図15)。
寸法入力画面において選択・指定されるモデルの情報は予めPC100の外部メモリに記憶されている(図7のテンプレートモデル情報)。寸法入力画面900において入力を受け付けた情報はメモリ上に記憶する。また、所定のユーザ操作がされた場合、寸法入力画面900において入力を受け付けた情報を別途表計算ファイル720としてメモリ上に記憶する。
図5の説明で後述する部品の組立処理において、部品組立ツール102は寸法入力画面900において入力された情報を上の行から順に参照して、上の行の部品から順に配置・組み立てる処理を行う。
モデルタイプ入力受付部905は、外部メモリに記憶されている3Dモデルのテンプレート(図7のテンプレートモデル情報/テンプレートモデル)のタイプ(図7の703)の選択(指定)・入力を受け付ける受付部である。モデルタイプ入力受付部905の列のセルがクリックされると、テンプレートモデル情報700のタイプ703を選択可能に表示する。
ファイル名表示部904は、モデルタイプ入力受付部905で入力を受け付けたモデルの、3D空間への配置後のファイル名を表示する表示部である。具体的には、テンプレートモデルを、当該モデルを配置する対象のアセンブリ(アセンブリ名入力受付部912で入力を受け付けたアセンブリ)の直下のフォルダにコピーした後の、当該アセンブリに挿入したファイルのファイル名である。詳細については図5の説明で後述する。
また、モデルタイプ入力受付部905では、テンプレートモデルのタイプ(図7の703)以外に、「接続部」というタイプを選択可能に表示する。タイプ=接続部とは、直前の順番(順序)のモデル(例えば900におけるModel01)と、当該接続部の直後のモデル(例えば900におけるModel01A)とを接続する仮想の部品のタイプを示す。当該接続部の一例を図12に示す。
モデルイメージ表示部906はモデルタイプ入力受付部905で入力された3Dモデルを示す画像を表示する表示部である。具体的には、タイプ703と当該タイプ703のモデルのイメージ(画像)のファイル名及び保存パスを対応付けたテーブルを外部メモリに記憶しておき、モデルタイプ入力受付部905でモデルタイプの選択を受け付けたことを検知した表計算ソフト103が当該テーブルを参照して、モデルタイプ入力受付部905で入力されたタイプに対応する対応する画像を読み出して表示する。
寸法A入力受付部908、寸法B入力受付部909は、モデル上の所定の面の寸法をどの値に変更するかの入力(変更後の寸法の入力)を受け付ける受付部である。例えば配管のモデル場合、入口または出口になりうる開口部の寸法の入力を受け付ける。なお、本実施形態においては、モデルのタイプ=「直線」の場合は、寸法AのY,Z(幅、高さ)=寸法BのY,Zであり、Xは直線の奥行きを示すため、寸法Bは入力不可とする。具体的には、部品組立ツール102が、モデルのタイプ=「直線」が選択された場合は、寸法Bは入力できないように寸法B入力受付部909をグレーアウトし、寸法A入力受付部908に対して値を入力可能に表示する。寸法とモデルとの関係は図13に示す。
モデル位置入力受付部907は、「接続部」に対して入力される値である。モデル位置入力受付部907に入力された値は、図14の1400〜1420に示すように、寸法入力画面900における「接続部」前後のモデル同士の距離(例:図9におけるModel01とModel01Aとの間の距離)を指定する値である。なお、部品同士のX軸方向の距離は、寸法A入力受付部908において入力を受け付けたX軸の値の分だけ離すものとする(つまり、寸法A入力受付部908において入力を受け付けたX軸の値は、接続部の長さの値である)。当該X,Y,Zの値が入力されると、当該X,Y,Zの値をメモリ上の表計算ファイル720に記憶・更新する。
「モデル作成」ボタン901は、寸法入力画面900において入力を受け付けた寸法のモデルをCADソフト101上で生成するためのモデル作成画面を表示するためのボタンである。「寸法チェック」ボタン902は、寸法入力画面900において表示されている情報を、別途保存されていた表計算ファイルを読み出すことで表示していた場合に、当該ファイルを読み出した(開いた)当初からどのセルの値が変更されたかをチェックする寸法チェックツール104を起動するためのボタンである。
「寸法変更」ボタン903は、CADソフト101において生成・配置(組立)済みのモデルの寸法を、寸法入力画面900において入力されている寸法に一括で変更する寸法一括変更ツール105を起動するためのボタンである。以上が図9の説明である。
図4の説明に戻る。ステップS402では、表計算ソフト103はユーザからの操作指示を受け付け(ステップS402)、当該受け付けた指示が「モデル作成」ボタン901の押下か、「寸法チェック」ボタン902又は「寸法変更」ボタン903の押下か判定する(ステップS403)。
受け付けた操作指示が「寸法チェック」ボタン902又は「寸法変更」ボタン903の押下の場合には処理をステップS416に移行する。ステップS416の寸法チェック及び寸法一括変更の処理については図6の説明で後述する。
受け付けた操作指示が「モデル作成」ボタン901の押下であると判定された場合、部品組立ツール102を起動する。具体的には、PC100の所定の記憶領域に記憶されている「部品組立ツール.exe」のファイルを指定してツールを起動する(ステップS404/ステップS405)。
部品組立ツール102は、表計算ソフト103がメモリ上に保持している、表計算ソフト103が開いているファイルの情報を読み込む。つまり、図9に示す寸法入力画面で入力され表示されているモデルタイプの情報とモデル位置、寸法A、寸法Bの情報を取得して、寸法入力画面における行Noが若い順に(上の行から順に)並べたリストを生成して、メモリ上に記憶する(ステップS406)。例えば図7の表計算ファイル720のようなリストを生成・記憶する。
部品組立ツール102は、当該リストに記憶された情報の最上位のレコードを処理対象のモデルの情報として取得して(ステップS407)、当該情報のモデルタイプ=接続部か判定する(ステップS408/タイプ判定手段に該当)。接続部である場合は処理をステップS410に移行し、モデルタイプが接続部でない場合は処理をステップS409に移行する。例えば、図9の900において表示しているファイルを読み込んだ場合は、Model01のタイプは接続部ではないため、処理をステップS409に移行する。
ステップS409では、部品組立ツール102は、図5に示す部品組立処理を実行する。
ここで図5を参照して、本発明の実施形態における部品組立処理の流れについて説明する。図5の各処理は、PC100のCPU201が、部品組立ツール102及びCADソフト101の機能を用いて実行するものとする。
部品組立ツール102は、図10に示すモデル作成画面を表示する(ステップS501)。当該画面においては、ステップS407で取得したレコードのレコードNoをレコードNo表示部1005に表示し、当該レコードのモデルタイプをモデルタイプ表示部1006に表示する(ステップS501)。
ここで図10に示すモデル作成画面について説明する。図10によれば、モデル作成画面は、「部品挿入」ボタン1001、「部品確定」ボタン1002、「次へ」ボタン1003、「終了」ボタン1004、レコードNo表示部1005、モデルタイプ表示部1006、ファイル名表示部1007、ルート方向変更指示受付部1008、入口面選択受付部1009、出口面選択受付部1010、部品方向変更指示受付部1011などから構成されている。また、CADソフト101は、アセンブリ表示部1012、モデル表示部1013を備えるモデル表示画面を表示している。
「部品挿入」ボタン1001は、モデルをCADソフト101においてモデル表示部に仮配置(仮組立)するためのボタンである。仮配置とは、CADソフト101のモデル表示部1013にモデルが配置されるものの、まだモデルの位置・角度が固定(確定)されていない状態である。固定(確定)がされる前に、例えばモデル作成画面が閉じられた場合、未確定の(仮配置中の)モデルは、モデル表示部1013から削除する。
「部品挿入」ボタン1001の押下を受け付けることで部品組立ツール102は、モデルタイプ表示部1006に表示されている、処理中のモデルのモデルタイプに対応するモデル(テンプレートモデル情報700におけるファイル名702のモデル)をメモリ上にコピーしてファイル名を変更し、図9のアセンブリ名入力受付部912において入力されているアセンブリ直下の所定のフォルダに当該モデルのファイルを保存する。そしてCADソフト101に、当該保存したモデルのファイルを読み込む(所定のアセンブリにおいて参照させる)よう指示し、読み込ませることで当該モデルをCADソフトのモデル表示部1013に配置(仮配置)する。
「部品確定」ボタン1002は、仮配置したモデルの配置の確定(組立の確定)をするためのボタンである。「部品確定」ボタン1002が押下された場合、部品組立ツール102は、部品の配置を確定すべく、CADソフト101に対して配置しているモデルの情報を固定(合致)させるよう指示する。「次へ」ボタン1003は、配置確定した、処理中のモデルの次のモデルを読み込んでモデル作成画面に表示するためのボタンである(例えば図9の920におけるModel01を配置確定した後、Model02を読み込む)。
「終了」ボタン1004は、当該モデル作成画面を閉じてモデル作成を終了するためのボタンである。レコードNo表示部1005、モデルタイプ表示部1006は、S407で取得したモデル作成画面で作成するモデル(後述するルート方向変更指示受付部1008、入口面選択受付部1009、出口面選択受付部1010、部品方向変更指示受付部1011で、入口・出口の面、ルートの方向、部品自体の配置の方向を変更・決定するモデル)のレコードNo、モデルタイプを表示する表示部である。
ルート方向変更指示受付部1008は、所定の軸方向に対してモデルを180度回転させる操作を受け付ける受付部である。どの軸方向を用いてモデルの回転を行うかは、ルート方向の記載の横に配置している矢印ボタンでX軸、Y軸、Z軸を順次選択する。回転する方向はプラス、マイナスのラジオボタンにチェックを入れることで指定し、方向変更を行う。
入口面選択受付部1009・出口面選択受付部1010は、モデルにおける参照平面の内どの面を入口面(直前の部品の出口面と繋げる/合致させる面)にし、モデルにおける参照平面の内どの面を出口面(直後の部品の入口面と繋げる/合致させる面)にするかを特定する選択操作を受け付ける。具体的には、入口面の記載の横に配置されている矢印のボタンの押下を受け付けることで、仮配置したモデルの参照平面の内1つを選択し、選択中の面を入口面として当該参照平面の識別情報をメモリに記憶する。また、出口面の記載の横に配置されている矢印のボタンの押下を受け付けることで、仮配置したモデルの参照平面の内1つを選択し、選択中の面を出口面として当該参照平面の識別情報をメモリに記憶する。
部品方向変更指示受付部1011は、部品の配置方向を特定するための入力受付部である。具体的には、部品方向の記載の横に配置されている矢印のボタンの押下を受け付けることで、仮配置されている部品の方向を変更する。
アセンブリ表示部1012は、モデル表示部1013に表示するモデルの構成を表示する表示部である。以上が図10の説明である
図5の説明に戻る。部品組立ツール102は、ユーザからの操作指示を受け付け(ステップS502)、受け付けた操作が「部品挿入」ボタン1001の押下か判定する(ステップS503)。「部品挿入」ボタン1001の押下を受け付けた場合は処理をステップS504に移行する。受け付けた操作が、「部品挿入」ボタン1001の押下でない場合は処理をステップS513に移行する。
ステップS504において、部品組立ツール102は、ステップS407で取得した処理対象のモデルのレコードの寸法A、寸法Bを取得し、取得した寸法をCADソフトに作成依頼する寸法として決定する(ステップS504)。そして、読込み中のレコードのモデルタイプに対応するファイル名を取得して、当該ファイル名のファイルを、アセンブリ名入力受付部912に入力されているアセンブリ直下の所定のフォルダにコピーし、所定のルールに基づいてファイル名を変更する(ステップS505)。
部品組立ツール102は、当該モデルのCADソフト101におけるモデル表示部1013上の配置位置を決定する(ステップS506)。処理対象のモデルが、最初に配置するモデルである場合は、所定の位置(例えばX,Y,Z=0,0,0)を配置位置として決定する。2番目以降に配置するモデルの場合には、直前のモデルの出口面の位置に、処理対象のモデルの入口面が合わさる位置を処理対象のモデルの配置位置として決定する。なお、後述する出口面、入口面の選択はモデルの配置後(仮配置後)に可能となる。処理対象のモデルを最初に配置する際は、当該モデルにおいてデフォルトで設定されている入口面を、配置済みのモデルの出口面に合わせるように配置するものとする。
部品組立ツール102は、決定した配置位置に当該コピーしたファイル(モデル)を配置(仮配置)するよう指示し(ステップS507/配置制御手段に該当)、当該指示を受け付けたCADソフト101が指示された位置に指示されたファイルのモデルを配置する(ステップS508、S509)。具体的には、部品組立ツール102は、アセンブリ名入力受付部912に入力されている名称のアセンブリを、コピーしたモデルを参照するよう更新する指示をCADソフト101に送信し、当該指示を受けたCADソフト101が、対象のアセンブリを開いて、当該コピーしたファイルを当該アセンブリの参照ファイルとしてメモリ上に記憶する(例えば図8の構成情報800をメモリに記憶する)。そしてCADソフト101が当該アセンブリを最新の状態で読み込んで、モデル配置後の画面である図10の1020を表示する。また、配置済みモデル情報730をメモリ上に生成し、配置したモデルの各情報を配置済みモデル情報730に追加して記憶する。
ここで図8を参照して本発明の実施形態における構成情報800(アセンブリ)の構成の一例について説明する。
No801は、アセンブリのレコードNoである。レベル802は、アセンブリの構成の階層レベルである。トップアセンブリ(例:TopAssy)がレベル1、その直下の情報とし参照されている部品、サブアセンブリ(例:DuctAssy)がレベル2、当該サブアセンブリが参照している部品(例:Model01)がレベル3というように、当該階層レベルは部品、アセンブリごとに記憶されている。フォルダパス803は、ファイル名804に示す、TopAssyまたはDuctAssy等のサブアセンブリが参照している参照先のファイルの保存パスである。親子関係805は、該当レコードのファイルの親(直上)にある、当該ファイルを参照しているアセンブリのファイル名を格納する。種類806は、各レコードのファイルの種類が、アセンブリなのか、部品(モデル)なのか、仮想部品(部品(仮想)/仮想モデル)なのかを示す。
ここでいう仮想部品(仮想モデル)とは、Model01.partのようにモデル単体でファイル化されているモデルではなく、アセンブリの中にその位置、形状の情報が格納された、CADソフト101の接続部作成のコマンドで作成された部品であることを示す。アセンブリでは、当該仮想部品は800に示す通り1つの部品として記憶管理される。構成情報800のアセンブリ構成をツリー状にした図をアセンブリ構成810に示す。CADソフト101は当該アセンブリ構成810を、アセンブリ表示部1012に表示する。以上が図8の説明である。
図5の説明に戻る。部品組立ツール102は、仮配置したモデルの寸法を、ステップS504で決定した寸法に変更するようCADソフト101に指示し(ステップS510/寸法変更制御手段に該当)、当該指示を受け付けたCADソフト101が、指示された寸法にモデルの寸法を変更する(ステップS511、S512)。部品組立ツール102は、ステップS510の後、処理をステップS501に戻して次の操作を受け付けるまで待機する。以上がモデルの仮配置の処理である。
一方、ステップS513では、部品組立ツール102は、受け付けた操作指示がモデルの回転操作(部品方向変更指示受付部1011(矢印ボタン)の押下、又は、ルート方向変更指示受付部1008におけるラジオボタンの押下)を受け付けたか判定する(ステップS513)。回転操作を受け付けた場合、押下を受け付けた矢印のボタン、またはラジオボタンに対応する方向に仮配置済みのモデルを回転させるようCADソフト101に指示する(ステップS514)。CADソフト101は当該指示を受け付け(ステップS515)、指示された方向にモデルを回転する(ステップS516)。
受け付けた操作が回転操作でない場合には、受け付けた操作が出口面の選択操作か判定する(ステップS517)。具体的には、出口面の記載の横に配置されている矢印ボタンの押下を検知した場合に出口面の選択操作を受け付けたと判定する。矢印ボタンの押下を受け付けた場合、受け付けた矢印ボタンの方向に応じたモデル上の参照平面を特定し、特定した参照平面の識別情報を出口面としてメモリに記憶する(ステップS518)。例えば図7の入口面・出口面情報740中の、選択された参照平面の出口面744の値を1に更新する。当該入口面・出口面情報740は予めPC100の外部メモリに、部品組立ツール102が参照可能に記憶されている。部品ID741は部品の識別情報であり、参照平面IDは部品ID741の部品における参照平面の識別情報である。入口面743、出口面744はそれぞれ、いずれの参照平面が入口面、出口面として選択されたかを示す。値が1の場合に、入口面、出口面として選択されたことを示し、値が0の場合は入口面、出口面として選択されていないことを示す。
部品組立ツール102は、当該出口面として特定した参照平面を仮配置済みのモデル上で選択状態にすべく、当該参照平面の選択指示をCADソフト101に送信する。CADソフト101は当該指示を受け付けて、指示された参照平面を選択状態にして出口面として選択・設定中である旨を識別表示する(ステップS519)。例えば選択された参照平面の線分を青色に変更する処理を行う。出口面の選択をした画面の例を図11の1100に示す。
受け付けた操作が出口面の選択操作でない場合には、受け付けた操作が入口面の選択操作か判定する(ステップS520)。具体的には、入口面の記載の横に配置されている矢印ボタンの押下を検知した場合に入口面の選択操作を受け付けたと判定する。矢印ボタンの押下を受け付けた場合、受け付けた矢印ボタンの方向に応じたモデル上の参照平面を特定し、特定した参照平面の識別情報を入口面としてメモリに記憶する(ステップS521)。例えば入口面・出口面情報740中の、選択された参照平面の入口面743の値を1に更新する。そして、当該特定した参照平面を仮配置済みのモデル上で選択状態にすべく、当該参照平面の選択指示をCADソフト101に送信する。CADソフト101は当該指示を受け付けて、指示された参照平面を選択状態にして入口面として選択・設定中である旨を識別表示する(ステップS522)。例えば選択された参照平面の線分の色を赤色に変更する処理を行う。入口面の選択をした画面の例を図11の1100に示す。また、入口面が選択された場合、部品組立ツール102は、当該新たに選択された入口面の位置・向きを、表計算ファイル720における直前のモデルの出口面の位置、向きに合わせるようにモデルの位置・向きを変更する処理を行う。具体的には、新たに入口面として選択された参照平面の位置・向きを、直前のモデルの出口面の参照平面の位置・向きに合わせるようにCADソフト101に指示する。CADソフト101が当該指示を受け付けて、受け付けた指示に応じてモデルの位置・向きを変更し、新たに選択された入口面を当該出口面に合わせて表示する。
受け付けた操作が入口面の選択操作でない場合には、受け付けた操作がモデルの配置確定の操作(配置を完了させる操作)か判定する(ステップS523)。当該モデルの配置の確定処理とは、仮配置中のモデルの入口面をメモリ上のリスト(表計算ファイル720の情報)における当該モデルの直前のレコードのモデルの出口面と合致させる指示をする操作である。具体的には、図10の「部品確定」ボタン1002の押下を受け付けた場合に、モデルの配置確定の操作を受け付けたと判定する。
モデルの配置確定の操作を受け付けた場合、部品組立ツール102は、仮配置中のモデルの入口面と、既に配置確定されている、メモリ上のリスト(表計算ファイル720の情報)の直前のレコードのモデルの出口面と合致させるようCADソフト101に指示する(ステップS524/合致制御手段に該当)。
CADソフト101は当該指示を受け付け(ステップS525)、受け付けた指示に応じて2つの面を合致させる(ステップS526)。結果、入口面と出口面それぞれと同じ位置にある部品の面同士が合わさる(組み立てられる)。モデルタイプ=「直線」のモデルと、モデルタイプ=「曲線」のモデルの参照平面を合致させて組み立てた例を図15に示す。図15における1501が、それぞれのモデルの入口面・出口面に指定され、合致させた参照平面である。
CADソフト101は、ステップS526の合致の処理が完了したことを部品組立ツール102に通知する(ステップS532)。部品組立ツール102は当該通知を受け付けると(ステップS533)、図18に示すブロック割平面の作成処理を実行する(ステップS524)。
ここで図18を参照して、本発明の実施形態における、ブロック割平面の作成処理の流れについて説明する。
部品組立ツール102は、ブロック割平面作成処理をする対象の部品を特定する。ここでは、ステップS526で、直前に配置された部品との合致処理を完了した新たな部品を、ブロック割平面を作成する(配置する)部品として特定する(ステップS1801)。
部品組立ツール102は、特定した部品に既にブロック割平面が配置されているかを判定する(ステップS1802)。具体的には、対象の部品のモデルを開いているCADソフト101に当該モデルに記憶されているフィーチャの一覧を要求し、要求に応じてCADソフト101から返信されてきたフィーチャ一覧(フィーチャ名一覧1910)の中に、ブロック割平面があるか判定する。なお、フィーチャはモデルを構成する情報の1つとして、図19に示すようにモデル(モデル情報1900/項目の内容は配置済みモデル情報730と同じであるため説明を割愛する)と対応付けて外部メモリに記憶されている、部品の内部情報の1つである。実際にはフィーチャの参照する面や線分等がフィーチャごとに対応付けて記憶されているが、本実施形態の説明においては不要なため記載を省略する。
ステップS1802では、部品組立ツール102は、CADソフト101から取得したフィーチャ名一覧1910の中に、メモリ上に展開されている表計算ファイル720上においてステップS1801で特定した部品に対応付けられているブロック割平面の名称(BlockNo)があるか判定する。表計算ファイル720は図7に図示している通りである。
ブロック割平面が既にある場合には(ステップS1802でYES)処理をステップS1803に移行し、ブロック割平面がない場合には(ステップS1802でNO)処理をステップS1806に移行する。
ステップS1803において、部品組立ツール102は、部品上に既に存在するブロック割平面を削除するようCADソフト101に指示する(ステップS1803)。新たにブロック割平面を作成するにあたり、既存のブロック割平面が邪魔なため、ブロkkう有り平面の配置状態を一度リセットすることが目的である。
CADソフト101は当該指示を受け付け(ステップS1804)、受け付けた指示に従って、ステップS1801で特定した部品のブロック割平面を、部品の内部に記憶されているフィーチャ一覧から削除する(ステップS1805)。そして、当該削除の処理が完了したことを部品組立ツール102に通知する。当該通知を受け付けた部品組立ツール102は、ステップS1801で特定した部品を、ファイル名を用いて、メモリ上に展開している表計算ファイルから検索して特定する。そして、特定した部品のファイル名に対応するブロック割情報729A(ブロック割平面の配置位置、つまり、部品を分割する分割位置を決定するための情報)を取得する(ステップS1806)。
そして、ブロック割情報が適切か判定する(ステップS1807)。具体的には、分割
距離の項目に記憶されている値の合計が、モデルの直径と一致するか判定する。例えば図7の場合、100mm+300mm+200mm=600mmの値が寸法A713のXXmmと一致するか判定する。一致する場合は適切にブロック割のための分割距離が入力されていると判断し、ブロック割情報が適切であると判定する。ブロック割情報が適切な場合は、ステップS1806で取得したブロック割情報729Aに基づいて、図21でいうBlock1の平面とBlock2の平面の位置(例えば、面Aの中心点から部品の寸法Aの示すX方向100mm離れた位置をBlock1のブロック割平面の中心位置とする。(当該中心位置に面Aと平行なBlock1のブロック割平面を生成することとなる))をブロック割平面の配置位置として決定して、ステップS1808に処理を移行する。不適切な場合は不図示のエラー画面を表示して処理を終了する。
部品組立ツール102は、決定したブロック割平面の位置に新たなブロック割平面を作成するよう、CADソフト101に指示する(ステップS1808/分割平面生成制御手段の一例)。このとき、作成指示する各ブロック割平面の位置に対応付けて、各ブロック割平面の名前も合わせて指示する。例えば、BlockNoに記載差入れているカンマで区切られている値を、図21に示す関係になるように各ブロック割平面の名前とするよう指示する。
CADソフト101は当該指示を受け付け(ステップS1809)、当該指示に従って、ステップS1801で特定された部品上の(3次元モデルのCADファイル上の)、指示された位置に、指示された名前のブロック割平面を生成する(ステップS1810/例えば図21)。そして、当該ブロック割平面の作成が完了した旨を部品組立ツール102に通知する。
通知を受け付けた部品組立ツール102は、ステップS1809で作成指示した全てのブロック割平面の表示設定について、表示設定が「非表示にする」なっている場合は、表示設定を「表示する」に変更するよう指示する(ステップS1811/識別表示制御手段の一例)。つまり、ブロック割平面がCADソフト101の操作者であるユーザに見えるように、(非表示の設定の参照平面と区別するように)表示設定を変更する制御を行う。
CADソフト101は当該指示を受け付け(ステップS1812)、当該指示に従って対象のブロック割平面の表示設定を「表示する」に変更する(ステップS1813)。そして、当該表示設定の変更が完了した旨を部品組立ツール102に通知する。
上述したようにブロック割平面の表示設定を、ブロック割平面が見えるように変更することで、3次元モデルの表示画面上で、どの位置で部品を分割するかをユーザに容易に確認させることができるようなる。
通知を受け付けた部品組立ツール102は、CADソフト101に対して、CADファイルの再構成を指示する(ステップS1814)。ここでいう再構成とは、更新された(ブロック割平面が挿入された)部品の上位にあたる、図5のS508で開いたアセンブリファイルの参照している下位のファイル(例えばブロック割平面が挿入された部品)の再読込みを行わせる処理である。再読込みをさせることで、最新の状態の部品(ブロック割平面が挿入された部品)を読み込ませることができ、当該アセンブリファイルを開いているCADソフト101の画面において、ブロック割平面が挿入された更新後の部品を表示させることができる。
CADソフト101は当該指示を受け付け(ステップS1815)、更新された部品を参照しているアセンブリの参照の更新(参照している部品の再読込み)を行う(ステップS1816)。
CADソフト101は、当該再構成の処理を完了したことを部品組立ツール102に通知する。部品組立ツール102は、当該通知を受け付けてステップS1817の処理を実行する。
部品組立ツール102は、ブロック割平面を挿入した部品(3次元モデル)の表面積の情報、座標系の情報を、CADソフト101に要求する(ステップS1817)。CADソフト101は当該要求を受け付け(ステップS1818)、対象の部品(3次元モデル)の表面積(各面の面積の情報)を計測する。また、座標系の情報(部品自体の向き(X軸、Y軸、Z軸方向)が、CADソフト101のモデル表示部1013の向き(X軸、Y軸、Z軸方向)に対してどのような方向を向いているかを示す情報/例えば配置済みモデル情報730の向き736の情報)を取得して、これらの表面積、座標系の情報を部品組立ツール102に送信する(ステップS1819)。なお、本実施形態においては、部品は90度方向にのみ回転可能であるため、向き736の示す値は0°、90°、180°、270°のみである。
部品組立ツール102は部品の表面積の情報(各面の面積の情報)、座標系の情報を受信する(ステップS1820)。そして、受信した座標系の情報を特定し(ステップS1821)、当該座標系の情報から、部品のどの面が、モデル表示部1013で回転された結果どの方向の面に見えているかを特定する(ステップS1822)。つまり、部品にとっての天井面が、部品がZ軸方向に180°回転されることにより、ユーザに底面として見られていることを特定し、モデルにとってのZ寸法のプラス方向にある面が、底面であることを決定する(識別情報決定手段の一例)。回転前後の天井面、側面、底面の遷移の例を図24に示す。図24は、モデルを、X軸を基準に(時計回りに)90°回転、180°回転させた場合の図例である。
部品組立ツール102は、部品の各面の面積の値を、ステップS1822で特定した、部品にとっての各面が(部品の回転により)実際にはどの面として表示されているかの情報に応じて、回転後のどの面の識別情報(天井面、底面、側面等)に対応付けてどの面積を表計算ファイルに挿入して記憶するかを決定し(面積決定手段の一例)、決定した面に対応付けて決定した面積の値を表示するよう表計算ソフト103に指示する(ステップS1823/面積表示制御の一例)。例えば、図20の面積表示部2003に示すように、各面の面積を各面に対応する入力欄に入力するよう指示する。例えば部品がX軸を基準として90°回転している場合、部品にとっての天井面及び底面が側面に、部品にとっての右側面が底面に、部品にとっての左側面が天井面になる。なお、図20に示す表面積(図7の729Bにおける表面積)の値は、各面の合計値である、部品の表面の総面積である。
表計算ソフト103は当該指示を受け付け(ステップS1824)、当該指示に従って図7の729Bに各面の面積を記憶して、図20の2010に示すように、各面の面積を表示部に入力して表示する(ステップS1825)。以上が図18の説明である。
図18の処理によれば、部品リスト内の情報に応じて、3次元モデルの分割位置を示す識別情報を適切に表示する仕組みを提供することができる。
例えば、部品の分割位置を示すブロック割平面を適切に配置、表示することができる。
図5の説明に戻る。ステップS502で受け付けた操作がモデルの配置確定の操作でない場合(ステップS523でNO)、受け付けた操作が次のモデルの読込み操作か判定する(ステップS527)。具体的には、「次へ」ボタン1003の押下を受け付けた場合に、次のモデルの読込み操作を受け付けたと判定する。次のモデルの読込み操作を受け付けた場合、処理を図4のステップS407に移行して、未処理のレコードの内、最上位のレコードを取得する。
受け付けた操作が次のモデルの読込み操作でない場合、受け付けた操作がモデル作成画面の終了操作か判定する(ステップS528)。具体的には、「終了」ボタン1004の押下を受け付けた場合に、モデル作成画面の終了操作を受け付けたと判定する。受け付けた操作がモデル作成画面の終了操作でない場合、処理をステップS501に戻して次の操作があるまで待機する。受け付けた操作がモデル作成画面の終了操作である場合、未確定の、仮配置中のモデルを削除するようCADソフト101に指示する(ステップS529)。
CADソフト101は当該指示を受け付け(ステップS530)、仮配置中のモデルを削除する(ステップS531)。以上が図5の説明である。
図4の説明に戻る。部品組立ツール102は、ステップS409の処理実行後、図4の処理を終了する。一方、ステップS408において、ステップS407で取得したレコードのモデルタイプが接続部である場合、ステップS407で取得したレコードの次のレコードの情報(モデルタイプ、寸法等)を取得し(ステップS410)、取得したレコードのタイプのモデルを取得した寸法でCADソフト101において配置する処理を行う(ステップS411)。当該モデルの配置処理は、ステップS409で説明した図5の処理とほぼ同一である。一部処理が異なるため、以下、異なる処理について説明する。
ステップS411では、ステップS501〜S505の処理実行後、ステップS506において、メモリ上のリスト(表計算ファイル720に相当)の処理中のレコード(例:Model01A)の直前のレコード(タイプ=接続部のレコード/JointXX)のモデル位置のY,Z値、処理中のレコードの寸法A726のX値を取得し、取得したX,Y,Zの値を、2つ前のレコード(Model01)との間の距離として特定し、Model01から当該X,Y,Zの距離分離れた位置をModel01Aの配置位置として決定・記憶し、部品の配置処理を行う。部品組立ツール102は、ステップS507〜S526を実行する。配置後の部品、例えばModel01Aの配置の様子を図11の1120に示す。
部品組立ツール102は、図5のステップS527で次のモデルの読込み操作を受け付けたと判定した場合に、部品組立ツール102は、処理を図4のステップS412に移行する。また、ステップS411では、図5のステップS529で未確定のモデルの削除指示を行った後、図5及び図4の処理を終了するものとする。以上がステップS411における部品配置処理の説明である。
部品組立ツール102は、ステップS412で接続部の作成する基準となる面の寸法・位置を特定する(ステップS412)。具体的には、ステップS411で配置が確定したモデルの入口面と、当該モデルの直前のレコードのモデルの出口面の位置、寸法を特定して、接続部中の2面を、当該入口面・出口面とそれぞれ位置にある同じ寸法の面(例えば図12における1201の面と1202の面)に決定する。
部品組立ツール102は、当該特定した面と同じ寸法の面を、特定した入口面・出口面の位置に備える接続部の仮想モデルを生成するようCADソフト101に指示する(ステップS413/接続部作成制御)。
CADソフト101は、当該指示を受け付け(ステップS414)、受け付けた指示に応じて接続部のモデル(JointXX)を生成してモデル表示部1013に配置する(ステップS415)。接続部のモデル(JointXX)の配置の様子を図12の1200に示す。以上が図4の説明である。
次に図6を参照して、図4のステップS416で実行する、寸法チェック及び寸法一括変更の処理の流れについて説明する。
表計算ソフト103は、ステップS402で受け付けた操作指示が「寸法チェック」ボタン902の押下か、「寸法変更」ボタン903の押下かを判定する(ステップS601)。「寸法チェック」ボタン902の押下の操作である場合、処理をステップS602に移行する。「寸法変更」ボタン903の押下操作である場合、処理をステップS608に移行する。
表計算ソフト103は、ステップS602で、寸法チェックツール104を起動する処理をする(ステップS601)。具体的には、PC100の所定の記憶領域に記憶されている「寸法チェックツール.exe」のファイルを指定してツールを起動する(ステップS602)。当該起動処理の対象となった寸法チェックツール104が起動し(ステップS603)、メモリ上記に記憶されている現在の表計算ファイル720の情報(つまり、現在寸法入力画面900に入力・表示されている値)と、ステップS401で記憶した比較基準情報とを取得して各項目の値を比較し、値が異なる項目(表計算ソフト103において表示されている寸法入力画面900において現在の値と比較基準情報の値が異なるセル)を特定する(ステップS604)。どの項目がどのセルに対応するか特定するための情報は、別途メモリに記憶されているものとする。
寸法チェックツール104は、当該値が異なるセルの値を識別可能に表示するよう表計算ソフト103に指示する(ステップS605)。具体的には、当該値が異なるセルの識別番号と当該識別番号の示すセルの背景色を変更する指示を表計算ソフト103に対して送信する。
表計算ソフト103は当該識別表示の指示を受け付け(ステップS606)、指示されたセルの色を所定の色(例えば赤色)に変更することで、表計算ファイル720が開かれてから値が変更された項目、その値を識別表示する(ステップS607)。
また、表計算ソフト103は、ステップS402で受け付けた操作指示が「寸法変更」ボタン903の押下であると判定した場合、ステップS608で、寸法一括変更ツール105の起動処理を実行する(ステップS608)。具体的には、PC100の所定の記憶領域に記憶されている「寸法一括変更ツール.exe」のファイルを指定してツールを起動する。
当該起動処理の対象となった寸法一括変更ツール105が起動し(ステップS609)、メモリ上記に記憶されている現在の表計算ファイル720の各モデルの寸法A、寸法Bの値(つまり、現在寸法入力画面900に入力・表示されている寸法の値)と、配置済みモデル情報730の値の各モデルの寸法の値を比較して、寸法の値が異なるモデルのファイル名、及び現在の表計算ファイル720における寸法の値を特定する(ステップS610)。
寸法一括変更ツール105は、ステップS610で特定したファイル名の全てのモデルの寸法を、ステップS610で特定した各モデルに対応する現在の寸法入力画面900における寸法に変更する指示をCADソフト101に送信する(ステップS611)。
CADソフト101は当該指示を受信し(ステップS612)、指示されたモデルの寸法を指示された寸法に変更・更新する処理を行う(ステップS613)。そして、当該寸法変更・更新の処理が完了すると、当該寸法変更・更新の処理が完了した旨を寸法一括変更ツール105に通知する(ステップS615)。寸法一括変更ツール105は当該通知を受け付ける(ステップS615)。そして、ブロック割平面の作成処理を実行する(ステップS616)。具体的には、図18で説明において部品組立ツール102が実行するものとして説明した処理(S1808、S1814、S1817、S1820〜S1823の処理)を寸法変更ツールが代替して実行する。また、寸法変更ツールの指示に応じて、図10で表計算ソフト103、CADソフト101がそれぞれ実行するもとして説明した処理を、表計算ソフト103、CADソフト101がそれぞれ実行する。以上が図6の説明である。
これにより、寸法変更のタイミングでも、部品リスト内の情報に応じて、3次元モデルの分割位置を示す識別情報を適切に表示する仕組みを提供することができる。
例えば、部品の分割位置を示すブロック割平面を適切に配置、表示することができる。
以上説明したように、本実施形態によれば、部品のリストの順序に応じて、3次元部品の組み立てを簡易に実現できる。
また、部品リスト内の情報に応じて、3次元モデルの分割位置を示す識別情報を適切に表示する仕組みを提供することができる。
<第2の実施形態>
第2の実施形態では、例えば、組み立てるモデルの径(出口面と入口面の寸法)が一致しているか容易に確認可能することを目的とする。
具体的には、図5のステップS504の直後、又は/及び、図6のステップS605の処理の直後に図16の処理を実行することで、当該モデルの径のチェック及びチェック結果のユーザへの通知を行う。
以下、図16、図17を参照して、本発明の第2の実施形態について説明する。第2の実施形態においては、第1の実施形態と共通の処理については説明を省略する。
ステップS504の直後に図16の処理を実行する場合、ステップS1601において部品組立ツール102は、寸法入力画面900に入力・表示されている値を記憶したメモリ上のリスト(表計算ファイル720)を取得して、処理中レコードの直前のレコードを特定し(ステップS1601)、特定した直前のレコードのモデルの出口面である参照平面と一致する面(出口面である参照平面と同じ位置にあり、同じ向きである直前のレコードの部品上の面)と、処理中のレコードのモデル(ステップS504で寸法を決定したモデル)の入口面である参照平面に一致する面(入口面である参照平面と同じ位置にあり、同じ向きである処理中のレコードの部品上の面)の寸法をそれぞれ取得する(ステップS1602)。
具体的には、部品組立ツール102がCADソフト101に対して、前記直前のレコードのモデルの識別情報、当該モデルにおける出口面である参照平面の識別情報を通知することで、当該出口面と同じ位置、向きにある当該モデルの面の寸法を要求する。CADソフト101が当該要求に応じて対象の面の寸法をモデルのファイルの内部情報から読み出して、部品組立ツール102に返信する。部品組立ツール102はこれを受信することで、前記直前のレコードの部品上の出口面(参照平面)に一致する面の寸法を取得する。また、部品組立ツール102がCADソフト101に対して、処理中のレコードのモデルの識別情報、当該モデルにおける入口面である参照平面の識別情報を通知することで、当該入口面と同じ位置、向きにある当該モデルの面の寸法を要求する。CADソフト101が当該要求に応じて対象の面の寸法をモデルのファイルの内部情報から読み出して、部品組立ツール102に返信する。部品組立ツール102はこれを受信することで、処理中のレコードの部品上の入口面(参照平面)に一致する面の寸法を取得する。
部品組立ツール102は取得したそれぞれの面の径(寸法)が適切か判定し(ステップS1603/寸法判定手段に該当)、適切な場合は図16の処理を終了して、処理を図5のステップS505に進める。径が適切な場合とは、例えば、2つの面の径(寸法)が一致している場合である。
例えばステップS1603で、それぞれの面の径(寸法)が一致していないと判定された場合は、当該径が一致していないモデルの寸法値を識別表示するよう表計算ソフト103に指示する(当該寸法の入力されているセルの識別番号と識別表示の指示を送信する表示制御に該当/ステップS1604)。
当該指示を受け付けた表計算ソフト103は(ステップS1606)、当該指示に応じて対象のセルの値を識別表示する。例えば、対象のセルの背景色を赤色に変更する。セルの背景色変更の例を図17の1700の1701、1702に示す。その後処理を終了する。
また、部品組立ツール102は、例えばステップS1603で、それぞれの面の径(寸法)が一致していないと判定した場合、当該径が一致していないモデルの寸法値を識別表示するようCADソフト101に指示する、識別表示の制御を行う(ステップS1605)。つまり、当該径が一致していない面と同じ位置にある参照平面(ステップS1602でCADソフト101に問合せを行った参照平面)の識別情報をCADソフト101に通知し、且つ、当該参照平面の線分の色を所定の色に変更するようCADソフト101に指示する。当該指示を受け付けたCADソフト101は(ステップS1606)、当該指示に応じて対象の参照平面の線分の色を所定の色(例えば赤色)に変更する処理を行う(ステップS1607)。参照平面の色変更の表示例を図17の1710の1711に示す。また、部品組立ツール102は、図17の1712に示すような、2つのモデルの径が不一致である旨を通知する通知画面を表示画面に表示する。以上が図5のステップS504の直後に図16の処理を実行する場合の説明である。
図6のステップS605の直後に図16の処理を実行する実施例について説明する。ステップS605の直後に図16の処理を実行する場合、上述した図16の説明において部品組立ツール102が実行していた処理と同じ処理(ステップS1601〜S1605)を寸法チェックツール104が実行する。ステップS1602による面の寸法の取得は、寸法チェックツール104とCADソフト101の間で実行する。また、ステップS1603で径が一致していると判定された場合には、図16の処理を終了するものとする。
なお、通知画面1712の表示は、1700に示す表計算ソフトにおけるセルの背景色変更と共に行うようにしてもよい。以上が図16の説明である。
以上説明したように、組み立てるモデルの径(出口面と入口面の寸法)が一致しているか容易に確認可能することができる。
<第3の実施形態>
第3の実施形態では、部品を分割する基準値の情報を用いて、部品の分割位置を容易に決定することができる仕組みを提供することを目的とする。
例えば、部品リストの中から、分割にかかる位置の情報を特定できない場合に、部品を分割する基準値の情報を用いて、部品の分割位置を容易に決定する。
具体的には、図18のステップS1807で、ブロック割情報が適切でないと判定された場合に、図22の処理を実行することで、部品を分割する基準値の情報を用いて、ブロック割平面を挿入して表示する位置を自動で決定する。
以下、図22を参照して、本発明の第3の実施形態について説明する。第3の実施形態においては、第1の実施形態、第2の実施形態と共通の処理については説明を省略する。
部品組立ツール102は、ステップS1807でブロック割情報が適切でないと判定された場合に、ステップS2201の処理を実行する。
部品組立ツール102は、ステップS2201において、ステップS1801で特定した部品の重量及び寸法の値をCADソフト101に要求する(ステップS2201)。なお、寸法の値は寸法A726から取得するようにしてもよい。
CADソフト101は当該要求を受け付け(ステップS2202)、部品の材質と寸法から、当該部品の総重量を算出する(ステップS2203)。そして、当該部品の重量と寸法を部品組立ツール102に送信する(ステップS2204)。
部品組立ツール102は、部品の重量及び寸法を受信して、メモリ上に記憶する(ステップS2205/総重量取得手段の一例)。ここでは、部品は直方体の形状をしており、重量の比率は部品の端から端まで均等であるものとする。つまり、10kgの重量の部品を均等な寸法で2つに分割した場合、分割後の各部品の重量は50kgずつとなるものとする。また、部品の寸法は、部品の各辺の長さ、つまり、部品のX,Y、Zの直径を取得する(直径取得手段の一例)。
部品組立ツール102は、PC100の外部メモリに予め記憶されている部品の分割の基準値を取得する。当該基準値は、例えば、3次元モデルに基づいて実物の部品を製造した後、当該部品を使用する地点に当該部品をトラック等で運搬する際に、トラック等で効率よく部品を運搬するため、適切な大きさ、重さになるように部品を分割するための基準値であり、重さの基準値、寸法の基準値がそれぞれ記憶されている(基準値記憶手段の一例)。
部品組立ツール102は、まず、寸法(部品の大きさ)の基準値に従って、分割位置を仮決定する。例えば、図23に示すように、部品の寸法A(大きさ)のXが5m、Yが2m、Zが2mの部品であって、大きさの基準値が各軸について2m以内、と記憶されている場合、X軸方向を向いた1つの面を基準面として、部品の端(基準面の位置)から2mの位置にブロック割平面1、そこからさらに2m離れた位置をブロック割平面2の位置として仮決定する(ステップS2207)。
部品組立ツール102は、仮決定した位置で部品を分割した場合、分割後の各部品の大きさが、大きさの基準値以内になっているか判定する(ステップS2208)。基準値以内になっている場合は処理をステップS2209に進める。基準値より大きい部品がある場合には、ブロック割平面の位置の間隔を、所定の割合分小さくする。例えば、ステップS2207に処理を戻し、当該間隔を25%小さくし、1.5m間隔で分割するようにブロック割平面の位置を再度仮決定して、処理を再度ステップS2208に進める。
ステップS2209において、部品組立ツール102は、分割した後の各部品の重量が、重量の基準値以下か判定する(ステップS2209)。例えば、ステップS2205で受信した部品の総重量と、ブロック割平面を配置する位置として仮決定した位置に基づいて、分割後の各部品の重量を算出する。例えば、図23に示す部品の場合、Xの寸法5mを、2:2:1の割合で分割している。よって、例えば部品の重量が50kgの場合、それぞれ分割後の部品の重量は20kg、20kg、10kgとなる。これら全ての部品の重量が、重さの基準値以下か判定する。上記の例によれば、基準値が20kg以下と記憶されている場合は基準値以下となっているため、処理をステップS2210に移行する。仮に基準値が10kg以下だった場合、処理をステップS2207に戻して、例えばブロック割平面の位置の間隔を所定の割合分(例:25%)小さく設定して、再度処理をステップS2208に進める。
ステップS2210で、部品組立ツール102は、ステップS2209で重量の基準値をクリアしていると判定された分割位置(図23によれば、2000mm、2000m、1000mm)の値を、図7の729Aの分割距離の値にすることを決定し(ステップS2210)、分割距離に基づいて生成するブロック割平面の名称を決定して、当該分割距離の値と当該ブロック割平面の名称(BlockNo)を表計算ファイルに入力するよう、表計算ソフト103に指示する(ステップS2211)。
表計算ソフト103は当該指示を受け付け(ステップS2212)、受け付けた指示に従って、メモリ上に展開中の表計算ファイルの対象部品の729A、729B(図7)にそれぞれ、ブロック割平面の名称(BlockNo)、分割距離(2000mm、2000m、1000mm)、各面積の値を挿入して記憶する(ステップS2213)。
そして、当該記憶の処理が完了した旨を部品組立ツールに通知する(ステップS2214)。部品組立ツール102は当該通知を受け付けると(ステップS2215)、処理を図18のステップS1807に移行して、図22の処理を終了する。
図22の処理によれば、部品を分割する基準値の情報を用いて、部品の分割位置を容易に決定することができる仕組みを提供することができる。
例えば、部品リストの中から、分割にかかる位置の情報を特定できない場合に、部品を分割する基準値の情報を用いて、部品の分割位置を容易に決定することができる。
なお、上述した第3の実施形態においては、図22において、部品組立ツール102が、ステップS2201、S2205〜S2211、S2215の処理を実行するものとしたが、これは図18においてステップS1801の処理を部品組立ツール102開始している場合である。図18の処理において、ステップS1801の処理を寸法一括変更ツールが開始している場合は、ステップS2201、S2205〜S2211、S2215の処理は部品組立ツール102の代わりに寸法一括変更ツールが実行するものとする。
以上説明したように、本発明によれば、部品のリストの順序に応じて、3次元部品の組み立てを簡易に実現できる。
また、部品リスト内の情報に応じて、3次元モデルの分割位置を示す識別情報を適切に表示する仕組みを提供することができる。
また、図4のステップS410で次のモデルのレコードが未記載の場合は、部品組立ツールは、接続部を接続する先がないため、不図示のエラー画面を表示して次のレコードを入力するようユーザに促すようにしてもよい。
尚、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、1つの機器からなる装置に適用してもよい。
例えば、部品組立ツール102、表計算ソフト103、寸法チェックツール104、寸法一括変更ツール105が1つのツールとして記憶され、当該1つのツールが、各ツールが実行するものとして上述した各図の処理を実行するように構成してもよい。また、これらのツールのうち任意のツールが1つのツールとして記憶され、当該1つのツールが、当該任意のツールが実行するものとして上述した各図の処理を実行するように構成してもよい。
例えば、不図示のサーバ装置にCADファイルを記憶させ、PC100に記憶されているCADソフト101がネットワークを介して当該CADファイルをサーバから取得・読込、展開するようにしてもよい。また、CADソフト101と部品組立ツール102が一体であってもよい。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
尚、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。
即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。