(57)【要約】【課題】３次元モデルの輪郭線を任意の平面に投影する際に、容易に輪郭線を構成する線要素同士を接続させることの可能な仕組みを提供すること【解決手段】３次元モデルの輪郭線をユーザから選択された任意の平面に投影し、投影された輪郭線を構成する線要素の端点が、当該線要素とは異なる他の線要素の端点と接続されているか否かを確認する。接続されていない場合には、接続されていない線要素の端点を他の線要素の端点と接続するよう、一致拘束をかけて、線要素同士を接続させる。【選択図】図８
2015069546.tif 000002
【特許請求の範囲】
【請求項１】
３次元モデルを管理する情報処理装置であって、
前記３次元モデルの輪郭線を任意の平面に投影するよう制御する投影制御手段と、
前記投影制御手段で投影した輪郭線を構成する線要素であって、他の線要素と接続されていない線要素を特定する特定手段と、
前記特定手段で特定された線要素を他の線要素と接続するよう制御する接続制御手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記情報処理装置は、
前記接続制御手段で接続された線要素が構成する輪郭線に基づいて、当該輪郭線が構成する閉領域の面積を算出する面積算出手段を更に備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記投影制御手段は、ユーザから選択された複数の平面のそれぞれに対して、前記３次元モデルの輪郭線を投影するよう制御することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記接続制御手段は、前記特定手段で特定された線要素を他の線要素と接続するよう、一致拘束を実行するよう制御することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記情報処理装置は、
前記接続制御手段で接続された線要素が構成する輪郭線に基づいて、当該輪郭線の幅を算出する幅算出手段を更に備えることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記幅算出手段は、前記接続制御手段で接続された線要素が構成する輪郭線より外側に直線を作成し、当該輪郭線と当該直線が接した位置に基づいて、当該輪郭線の幅を算出することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
３次元モデルを管理する情報処理装置の制御方法であって、
前記情報処理装置の投影制御手段は、前記３次元モデルの輪郭線を任意の平面に投影するよう制御する投影制御ステップと、
前記情報処理装置の特定手段が、前記投影制御ステップで投影した輪郭線を構成する線要素であって、他の線要素と接続されていない線要素を特定する特定ステップと、
前記情報処理装置の接続制御手段が、前記特定ステップで特定された線要素を他の線要素と接続するよう制御する接続制御ステップと
を備えることを特徴とする情報処理装置の制御方法。
【請求項８】
３次元モデルを管理する情報処理装置の制御方法を実行可能なプログラムであって、
前記情報処理装置を、
前記３次元モデルの輪郭線を任意の平面に投影するよう制御する投影制御手段と、
前記投影制御手段で投影した輪郭線を構成する線要素であって、他の線要素と接続されていない線要素を特定する特定手段と、
前記特定手段で特定された線要素を他の線要素と接続するよう制御する接続制御手段
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元モデルの輪郭線を２次元図面に投影した際に、当該輪郭線が連続した線要素とならない現象を防止することの可能な情報処理装置、その制御方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、パーソナルコンピュータ等の情報処理装置を用いて製品等の設計を行うＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）アプリケーションが存在する。ＣＡＤアプリケーションは、従来の正面図、平面図、側面図等の２次元図面で設計を行う２次元ＣＡＤアプリケーションと、３次元モデルで設計を行う３次元ＣＡＤアプリケーションの２種類に分別される。
【０００３】
特に３次元ＣＡＤアプリケーションでは、ユーザが従来の２次元図面で設計を行うことが多いため、３次元モデルから２次元図面に変換して、作業を行うための機能が備えられている。２次元図面を用いた作業の中では、例えば、任意視点からの３次元モデルのシルエット形状の面積や、概形の寸法を測定する作業がある。製品の金型の見積もりを作成する際に、こういった面積等の情報が必要になってくるため、３次元モデルから２次元図面に変換し、３次元モデルをある方向から見た場合の概形の面積や寸法を測定している。
【０００４】
これらの具体的な測定方法としては、３次元モデルの輪郭線を任意の平面に投影し、輪郭線の閉領域から、３次元ＣＡＤアプリケーションの機能で面積や寸法を算出する方法が一般的である。この方法では、３次元モデルの輪郭線を任意の平面に投影すると、複数の線要素から構成される輪郭線となる。これは、３次元モデルには奥行きがあり、輪郭線として抽出される３次元モデルのエッジが手前と奥とで複数存在することや、３次元ＣＡＤアプリケーションがあくまで３次元モデルを扱うものであって、２次元図面を扱うことに関しては不得手であることから、このような現象が発生している。よって、ユーザは輪郭線を構成する線要素を手作業で１本ずつ選択した後、選択した線要素が構成する閉領域の面積を算出している。
【０００５】
このような手間を解消するため、下記の特許文献１では、任意の平面に投影した輪郭線を自動的に１つの線要素として特定するための仕組みが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平７−２４９０５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
前述した通り、３次元ＣＡＤアプリケーションには、基本機能として、指定された閉領域の面積を自動的に算出する機能が備わっているが、算出対象は線要素で構成され、且つ閉領域となっている必要がある。
【０００８】
しかしながら、３次元ＣＡＤアプリケーションの仕様やデータ変換の過程によって、変換された輪郭線は、一見すると閉領域に見えるものの線要素の間に、微小な隙間が発生し、閉領域とならない場合がある。よって、算出対象が閉領域でない場合、線要素を目視かつ手動にて修正する必要がある。算出対象の線要素の総数が数百を超える場合や、線要素間に１ミリメートル以下の微小な隙間が発生した場合、その選択作業や探索作業はユーザにとって大きな負担となってしまう問題があった。
【０００９】
そこで、本発明の目的は、任意の平面に投影された３次元モデルの輪郭線を構成する線要素同士を容易に接続させることの可能な仕組みを提供することである。
【課題を解決するための手段】
【００１０】
上記の目的を達成するために、本発明の情報処理装置は、３次元モデルを管理する情報処理装置であって、前記３次元モデルの輪郭線を任意の平面に投影するよう制御する投影制御手段と、前記投影手段で投影した輪郭線を構成する線要素であって、他の線要素と接続されていない線要素を特定する特定手段と、前記特定手段で特定された線要素を他の線要素と接続するよう制御する接続制御手段とを備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、任意の平面に投影された３次元モデルの輪郭線を構成する線要素同士を容易に接続させることが可能となるので、接続されていない線要素を探す必要がなくなり、ユーザの手間を軽減することができる効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態における３次元ＣＡＤシステム１００の一例を示す構成図である。
【図２】情報処理装置１０１及びサーバ１０２のハードウェア構成の一例を示す構成図である。
【図３】情報処理装置１０１の機能構成の一例を示す機能構成図である。
【図４】本発明の実施形態における一連の処理の流れを示すフローチャートである。
【図５】本発明の実施形態における３次元モデル５００の一例を示す図である。
【図６】概形測定画面６００の画面構成の一例を示す図である。
【図７】３次元モデル５００を任意の平面に投影した場合のイメージを示す図である。
【図８】輪郭線修正処理の詳細を示すフローチャートである。
【図９】端点座標情報テーブル９００のテーブル構成の一例を示す図である。
【図１０】接続されていない線要素に対して一致拘束を実行する場合のイメージを示す図である。
【図１１】幅算出処理の詳細を示すフローチャートである。
【図１２】幅算出処理で幅を算出する場合のイメージを示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
【００１４】
図１は、本発明の３次元ＣＡＤシステム１００のシステム構成の一例を示す図である。本発明の３次元ＣＡＤシステム１００は、情報処理装置１０１、サーバ１０２が設置されており、それら装置はＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のネットワーク１０３を介して相互にデータ通信可能に接続されている。図１のネットワーク１０３上に接続される各種端末あるいはサーバの構成は一例であり、用途や目的に応じて様々な構成例があることは言うまでもない。
【００１５】
情報処理装置１０１は、オペレーティングシステム上で３次元ＣＡＤアプリケーションと概形測定プログラムを実行する装置である。３次元ＣＡＤアプリケーションと概形測定プログラムは後述する図２のＲＯＭ２０２または外部メモリ２１１に記憶されており、ユーザからの指示に応じて、ＣＰＵ２０１がＲＡＭ２０３に読み出して各種動作を行う。
【００１６】
３次元ＣＡＤアプリケーションは、ユーザからの操作に応じて、設計物の立体形状を示す３次元モデルの作成や構築、また３次元モデルに基づく２次元図面の作成を行う。３次元ＣＡＤアプリケーションは、様々なＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を備えており、後述する概形測定プログラムからの指示に応じてＡＰＩを実行し、必要に応じてその結果を概形測定プログラムに返すことができる。
【００１７】
概形測定プログラムは、３次元ＣＡＤアプリケーションに表示された３次元モデルを任意の平面の２次元図面に投影した場合の面積や幅を算出するべく、３次元ＣＡＤアプリケーションのＡＰＩに指示を出し、その結果を表示するためのプログラムである。概形測定プログラムは、３次元ＣＡＤアプリケーションのアドオンであってもよいし、別個の独立したプログラムであってもよい。
【００１８】
サーバ１０２は、情報処理装置１０１で作成された各種データを記憶管理する装置である。３次元モデルは、複数のユーザによって作成される場合があり、その場合には１つのサーバ１０２に各ユーザの情報処理装置１０１で作成された３次元モデルを一元管理する。
【００１９】
尚、情報処理装置１０１が、サーバ１０２の構成を含んでもよいし、サーバ１０２が情報処理装置１０１の構成を含んでもよい。また、本実施例においては、情報処理装置１０１に各種データが記憶され、ユーザからの操作によって動作させる形態に基づいて説明を行う。
【００２０】
図２は、本発明の実施形態における各種端末のハードウェア構成を示す図である。
【００２１】
ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。
【００２２】
また、ＲＯＭ２０２あるいは外部メモリ２１１（記憶手段）には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  ＯｕｔｐｕｔＳｙｓｔｅｍ）やオペレーティングシステムプログラム（以下、ＯＳ）や、各サーバ或いは各ＰＣの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。
【００２３】
ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＡＭ２０３にロードして、プログラムを実行することで各種動作を実現するものである。
【００２４】
また、入力コントローラ（入力Ｃ）２０５は、キーボードや不図示のマウス等のポインティングデバイス等の入力デバイス２０９からの入力を制御する。
【００２５】
ビデオコントローラ（ＶＣ）２０６は、ディスプレイ２１０等の表示器への表示を制御する。表示器の種類はＣＲＴや、液晶ディスプレイを想定するが、これに限らない。
【００２６】
メモリコントローラ（ＭＣ）２０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）やフレキシブルディスク（ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ２１１へのアクセスを制御する。
【００２７】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）２０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。
【００２８】
尚、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ２１０上での表示を可能としている。また、ＣＰＵ２０１は、ディスプレイ２１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００２９】
本発明の情報処理装置１０１が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０３にロードされることによりＣＰＵ２０１によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ２１１に格納されている。
【００３０】
次に、情報処理装置１０１の機能構成を示す機能構成図について、図３を用いて説明する。尚、図３の機能構成は一例であり、用途や目的に応じて様々な構成例があることは言うまでもない。
【００３１】
情報処理装置１０１は、記憶部３０１、表示制御部３０２を備える。記憶部３０１は、ＲＡＭ２０３や外部メモリ２１１に相当し、情報処理装置１０１で扱う各種データを記憶する。本実施形態では特に、３次元ＣＡＤアプリケーションで表示する３次元モデルや２次元図面、後述する端点座標情報テーブル９００（図９参照）を記憶する。
【００３２】
表示制御部３０２は、記憶部３０１に記憶された各種データをディスプレイ２１０に表示するための制御部である。後述する３次元モデル制御部３１１や画面表示制御部３２１からの指示に応じて、ディスプレイ２１０に各種データを表示する。
【００３３】
また、前述した通り、情報処理装置１０１には、３次元ＣＡＤアプリケーション３１０と、概形測定プログラム３２０がインストールされている。３次元ＣＡＤアプリケーション３１０は、３次元モデル制御部３１１、３次元モデル投影部３１２、輪郭線取得部３１３、一致拘束制御部３１４、直線作成部３１５、交点特定部３１６、面積算出部３１７を備えている。これらは、ＡＰＩとして３次元ＣＡＤアプリケーション３１０に備えている。
【００３４】
３次元モデル制御部３１１は、記憶部３０１で記憶された３次元モデルをＲＡＭ２０３に読み出し、ユーザから指示された３次元ＣＡＤアプリケーション３１０の機能に応じて、３次元モデルの作成、編集、削除等を実行する。
【００３５】
３次元モデル投影部３１２は、３次元モデルを任意の平面（例えば、正面、平面、右側面等）に投影し、２次元図面を生成する。本実施形態では、３次元モデルの輪郭線を任意の平面に投影するものとするが、３次元モデルの各種線要素を投影するようにしてもよい。
【００３６】
輪郭線取得部３１３は、後述する輪郭線取得指示部３２３からの指示に応じて、３次元モデル投影部３１２に３次元モデルの輪郭線を任意の平面に投影するよう制御し、投影された輪郭線を取得して、輪郭線取得指示部３２３に渡す。
【００３７】
本実施形態における輪郭線は、複数の線要素（直線や曲線）から構成されている。これは、３次元モデルには奥行きがあり、エッジが手前と奥とで複数あることから、輪郭線が重複してしまうためである。あるいは、３次元モデル投影部３１２の投影のロジックによって、輪郭線が１本に繋がらないためである。また、投影する３次元モデルや投影する角度によっては、この複数の線要素の間に微小な隙間が発生してしまい、輪郭線が閉領域を構成していない場合がある。本願発明では、この隙間を自動的に修復し、面積を算出するものである。
【００３８】
一致拘束制御部３１４は、後述する一致拘束指示部３２５からの指示に応じて、後述する線要素検査部３２４で接続されていないと判定された線要素同士に、一致拘束を実行する。一致拘束とは、同一の平面や同一の軸に、面やエッジ、線要素等を拘束するものである。拘束された要素は、その拘束した平面や軸からは移動させることができなくなる。本実施形態では、特に、２次元図面における線要素の端点を、当該線要素とは異なる線要素の端点に拘束させる。こうすることで、前述した微小な隙間を埋める。
【００３９】
直線作成部３１５は、後述する直線作成指示部３２６からの指示に応じて、投影した任意の平面上に幅を算出するための基準となる直線の線要素を、指定された位置に作成する。実際に平面上に直線の線要素を作成してしまってもよいし、仮想的に作成してもよい。
【００４０】
交点特定部３１６は、後述する交点取得部３２７からの指示に応じて、直線作成部３１５で作成された直線が、投影された平面にある輪郭線に接触しているか否かを特定する。直線作成部３１５で作成される直線は、直線作成指示部３２６から指示された位置に作成される。この作成する位置は、輪郭線よりも外側に作成され、交点特定部３１６で接触していない場合には、直線を更に輪郭線に近づけて交点を特定する。つまり、輪郭線の外側から徐々に輪郭線に直線を近づけていくことになる。こうして接触した位置が輪郭線の最も外側である。この交点の特定を輪郭線の上下左右で行った結果、輪郭線に接触した直線の座標値を用いて、後述する幅算出部３２８で輪郭線の幅や高さを算出する。
【００４１】
面積算出部３１７は、後述する面積算出指示部３２９からの指示に応じて、一致拘束制御部３１４で線要素同士が接続された輪郭線が構成する閉領域の面積を算出する。閉領域の面積の算出方法は、従来技術を用いるため、説明を省略する。本実施形態では、前述した通り、微小な隙間を一致拘束によって埋めるため、線要素の位置が変わることになる。しかし、発生する隙間は１ミリメートル以下の微小な隙間であるため、多少位置が変わったとしても、誤差の範囲内である。例えば、輪郭線が構成する閉領域の面積を用いて金型の見積もりを出す場合、厳密な面積までは求められないため、このような誤差が発生していても問題はない。
【００４２】
また、概形測定プログラム３２０は、画面表示制御部３２１、入力受付部３２２、輪郭線取得指示部３２３、線要素検査部３２４、一致拘束指示部３２５、直線作成指示部３２６、交点取得部３２７、幅算出部３２８、面積算出指示部３２９を備えている。
【００４３】
画面表示制御部３２１は、ユーザからの操作を受け付けるための各種画面の表示制御を行う。例えば、後述する概形測定画面６００（図６参照）である。また、概形測定プログラム３２０で実行された結果を概形測定画面６００に表示する。
【００４４】
入力受付部３２２は、入力デバイス２０９を通じて、ユーザから文字入力やボタン押下を受け付ける。
【００４５】
輪郭線取得指示部３２３は、概形測定画面６００を通じてユーザから選択された平面に対して、３次元モデルの輪郭線を投影することで、複数の線要素から成る２次元図面の輪郭線を取得するよう、輪郭線取得部３１３に対して指示をする。そして、指示によって輪郭線取得部３１３で取得した輪郭線を受け取る。
【００４６】
線要素検査部３２４は、輪郭線取得指示部３２３で取得した輪郭線を構成する線要素を検査し、隙間を発生させている線要素を探索する。本実施形態では、線要素の端点が他の線要素の端点と接続されているかどうかで、隙間がないかどうかを探索する。検査の方法はこれに限らない。
【００４７】
一致拘束指示部３２５は、線要素検査部３２４で隙間を発生させている線要素が見つかった場合に、隙間を埋めるべく、一致拘束制御部３１４に一致拘束の指示を出す。例えば、線要素検査部３２４で見つかった隙間を構成する線要素の端点を、当該端点と最も近接する線要素の端点に対して、一致拘束をかける。
【００４８】
直線作成指示部３２６は、任意の平面に投影された輪郭線の幅を算出する基準となる直線を作成するよう、直線作成部３１５に指示を出す。この指示を出す際に、どの位置に直線を作成するのかも合わせて指示する。
【００４９】
交点取得部３２７は、直線作成指示部３２６で指示された直線が輪郭線と接触しているかどうか、また接触している場合にはその交点の座標値を取得するよう、交点特定部３１６に指示を出す。そして、指示によって交点特定部３１６で特定した交点の座標値を受け取る。
【００５０】
幅算出部３２８は、交点取得部３２７で取得した座標値に基づいて、輪郭線の幅を算出する。算出する対象は幅に限らず、高さでもよい。
【００５１】
面積算出指示部３２９は、一致拘束指示部３２５の指示により、隙間を埋めた輪郭線が構成する閉領域の面積を算出するよう、面積算出部３１７に指示を出す。そして、指示によって算出された面積を面積算出部３１７から受け取る。
【００５２】
次に、本発明の実施形態における情報処理装置１０１によって行われる一連の処理について、図４に示すフローチャートを用いて説明する。
【００５３】
尚、図４に示す処理を行う際には、情報処理装置１０１のＣＰＵ２０１は、ユーザからの指示に応じて３次元ＣＡＤアプリケーション３１０が起動されており、３次元モデルを操作可能な状態であるものとして、以下、説明を行う。
【００５４】
まず、ステップＳ４０１では、情報処理装置１０１のＣＰＵ２０１は、ユーザによる３次元ＣＡＤアプリケーション３１０の操作により、任意の３次元モデルを外部メモリ２１１等からＲＡＭ２０３に読み出し、３次元ＣＡＤアプリケーション３１０の３次元モデル制御部３１１によって、ディスプレイ２１０に表示する。本実施形態においては、図５に示す３次元モデル５００が表示されたものとして、以下、説明を行う。
【００５５】
ステップＳ４０２では、情報処理装置１０１のＣＰＵ２０１は、ユーザによる概形測定プログラム３２０の起動指示を受け付けると、外部メモリ２１１から概形測定プログラム３２０をＲＡＭ２０３に読み出して起動する。起動すると、画面表示制御部３２１によって、図６に示すような概形測定画面６００をディスプレイ２１０に表示する。概形測定画面６００は、ステップＳ４０１で読み出した３次元モデルの幅や面積の算出指示をユーザから受け付けて、その結果を表示するための画面である。概形測定画面６００の構成は一例であり、これに限らない。
【００５６】
ステップＳ４０３では、情報処理装置１０１のＣＰＵ２０１は、入力受付部３２２によって、３次元モデル５００の輪郭線を投影する任意の平面と、幅を算出する際に使用するトレランスの入力を概形測定画面６００において受け付ける。本実施形態におけるトレランスとは、幅を算出する際に用いるパラメータである。詳細は、図１１で後述する。平面の選択は、概形測定画面６００のチェックボックス６０３で選択を受け付け、トレランスの入力は、トレランス入力欄６０１で入力を受け付ける。そして、入力が完了した後、選択された平面の面積や幅の算出の指示を、計算ボタン６０５の押下によって受け付ける。計算ボタン６０５が押下されると、ステップＳ４０４に処理を進める。尚、終了ボタン６０６が押下されると、概形測定画面６００を閉じて、本一連の処理を終了する。
【００５７】
ステップＳ４０４では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ４０３においてユーザから選択を受け付けた平面の数を取得し、変数Ｉに格納する。変数Ｉは、後述するステップＳ４０５乃至ステップＳ４１１のループ処理における、終了条件として用いられる変数である。
【００５８】
ステップＳ４０５では、情報処理装置１０１のＣＰＵ２０１は、変数Ｊに「１」を格納し、ステップＳ４０４にて取得した変数Ｉと変数Ｊとを比較する。変数Ｊは、ステップＳ４０６乃至ステップＳ４１０で各種処理が実行されるとインクリメントされる変数である。つまり、ステップＳ４０６乃至ステップＳ４１０で各種処理が終了した平面数を示す。そのため、変数Ｉと変数Ｊが一致する場合には、ユーザから選択されたすべての平面に対する各種処理が終了したと判断できる。選択した全ての平面の測定が終了した場合は、ステップＳ４１１へ処理を進め、測定が終了していない平面が残っている場合は、ステップＳ４０６へ処理を進める。
【００５９】
ステップＳ４０６では、情報処理装置１０１のＣＰＵ２０１は、輪郭線取得指示部３２３からの指示に応じて、３次元モデル投影部３１２によって３次元モデル５００の輪郭線を、ユーザから選択された未測定の平面に投影する（投影制御手段）。例えば、図７の７００に示すように、３次元モデル５００を表示している３次元空間上の平面に対して法線ベクトルの方向に３次元モデル５００の輪郭線を投影することになる。その結果、図７では、７０１に示すような輪郭線が投影されることになる。尚、投影する平面は、ユーザから選択された平面のうち、未測定の平面であれば、どの平面でもよい。
【００６０】
ステップＳ４０７では、情報処理装置１０１のＣＰＵ２０１は、輪郭線取得部３１３によって、ステップＳ４０６において投影された輪郭線を取得し、輪郭線取得指示部３２３に渡す。基本的に３次元ＣＡＤアプリケーション３１０には、投影された輪郭線に含まれる線要素同士の微小な隙間を検出する機能を備えていないため、３次元ＣＡＤアプリケーション３１０で取得した輪郭線の隙間を概形測定プログラム３２０が検出する。
【００６１】
ステップＳ４０８では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ４０７において取得した輪郭線に含まれる微小な隙間を修正する処理を行う。輪郭線修正処理の詳細は、後述する図８に示す。
【００６２】
ステップＳ４０９では、情報処理装置１０１のＣＰＵ２０１は、面積算出指示部３２９によって、ステップＳ４０８において修正した輪郭線から構成される閉領域の面積を算出するよう、面積算出部３１７に指示を出す（面積算出手段）。そして、面積算出部３１７は、指示された閉領域の面積を、ステップＳ４０８で隙間なく接続された線要素から構成される輪郭線に基づいて算出し、その結果を面積算出指示部３２９に渡す。面積の算出方法は従来技術を用いるため、説明を省略する。
【００６３】
ステップＳ４１０では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ４０８において修正した輪郭線から幅を算出する処理を行う。幅算出処理の詳細は、後述する図１１に示す。
【００６４】
ステップＳ４１１では、情報処理装置１０１のＣＰＵ２０１は、変数Ｊをインクリメントし、ステップＳ４０５に処理を戻す。
【００６５】
ステップＳ４１２では、情報処理装置１０１のＣＰＵ２０１は、画面表示制御部３２１によって、ステップＳ４０９とステップＳ４１０において算出した測定結果を概形測定画面６００に表示する。面積表示欄６０４には、選択された平面ごとに算出された面積を表示し、幅表示欄６０２には、選択された平面ごとに算出された輪郭線の幅を表示する。幅表示欄６０２に表示される幅は、選択される平面に応じて、表示の有無が決まる。例えば、正面だけが選択されていた場合、正面はＸ軸とＹ軸とから成る面であるので、正面図に投影された輪郭線から算出可能な幅は、Ｘ方向幅とＹ方向幅だけである。つまり、幅表示欄６０２のＸ方向幅とＹ方向幅には算出された幅が表示され、Ｚ方向幅には何も表示されない。Ｚ方向幅にも表示を行う場合には、Ｚ軸から成る面も選択しなければならない。また、例えば正面と平面の２つが選択された場合、正面と平面の両方でＸ方向幅が算出されることになるが、基本的に同じ３次元モデルを投影しているのであれば、幅が異なることはないので、どちらの面のＸ方向幅を用いてもよい。Ｙ方向幅とＺ方向幅についても同様である。終了ボタン６０６が押下されると、本一連の処理を終了する。
【００６６】
次に、輪郭線修正処理について図８を用いて説明する。輪郭線修正処理では、前述したステップＳ４０７で取得した輪郭線の構成する線要素のうちの１つを取得し、どの線要素の端点とも接続されていない端点を持つ線要素であるかどうかを判定する。そして、接続されていない線要素であれば、その線要素の端点を、当該端点と最も近い端点に対して一致拘束をかけて、隙間を埋める。このような処理をすべての線要素に対して実行し、輪郭線に隙間がないようにする。以下、この処理について説明を行う。
【００６７】
まず、ステップＳ８０１では、情報処理装置１０１のＣＰＵ２０１は、輪郭線を構成する線要素の数を変数Ａに格納する。変数Ａは、後述するステップＳ８１１で終了条件として使用する。また、変数Ｃｎｔに「１」を格納する。変数Ｃｎｔは、輪郭線を構成する線要素の数だけ、後述するステップＳ８０５乃至ステップＳ８１１を実行するために使用するカウンタ変数である。
【００６８】
ステップＳ８０２では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ４０７で取得した輪郭線を構成するすべての線要素の始点と終点とを示す座標値を取得する。線要素の始点と終点とは、線要素の両端点である。どちらの端点が始点なのか終点なのかは特に問わない。
【００６９】
ステップＳ８０３では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ８０２において取得したすべての線要素の始点と終点の座標値を、図９に示す端点座標情報テーブル９００に格納する。端点座標情報テーブル９００は、情報処理装置１０１の記憶部３０１に記憶されているテーブルである。端点座標情報テーブル９００は、線要素ごとに始点９０１と終点９０２を備えている。始点９０１と終点９０２は、それぞれ線要素のＸ座標とＹ座標を格納する項目である。この始点９０１と終点９０２のＸ座標とＹ座標とに、ステップＳ８０２で取得した座標値を線要素ごとに格納する。
【００７０】
ステップＳ８０４では、情報処理装置１０１のＣＰＵ２０１は、輪郭線を構成する線要素のうち、後述するステップＳ８０５乃至ステップＳ８１１を未実行の線要素を１つ取得し、取得した線要素の始点９０１と終点９０２の座標値を端点座標情報テーブル９００から取得する。以下、ステップＳ８０５乃至ステップＳ８０８の各処理は、始点９０１と終点９０２の両端点に対して実行される。
【００７１】
ステップＳ８０５では、情報処理装置１０１のＣＰＵ２０１は、線要素検査部３２４によって、ステップＳ８０４において取得した座標値と同じ座標値を持つ線要素を端点座標情報テーブル９００から検索する。つまり、ステップＳ８０４で取得した線要素と接続されている、他の線要素があるか否かを検索している。更に換言すれば、投影した輪郭線を構成する線要素であって、他の線要素と接続されていない線要素を特定している。
【００７２】
ステップＳ８０６では、情報処理装置１０１のＣＰＵ２０１は、線要素検査部３２４によって、ステップＳ８０５での検索結果に一致した線要素があるか否かを判定する。つまり、ステップＳ８０４で取得した線要素の端点がどの線要素とも接続されていないのか、それともいずれかの線要素と接続されているのかを特定することにより、判定する（特定手段）。一致した線要素がある場合、ステップＳ８０９へ処理を進め、一致した線要素が無い場合は、ステップＳ８０７へ処理を進める。
【００７３】
ステップＳ８０７では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ８０４で取得した線要素の端点と一致する端点を持つ線要素がなかった、つまりどの線要素とも接続されていない端点を持つ線要素であることがわかったので、ステップＳ８０６で接続されていないと判定された線要素の端点の座標値から最短距離となる端点を持つ線要素を、端点座標情報テーブル９００から検索する。微小な隙間が発生している場合、その隙間を発生させている２つの端点があるはずである。この２つの端点を接続すればよいため、最短距離となる端点、つまり隙間を発生させているもう片方の端点を端点座標情報テーブル９００から検索している。
【００７４】
ステップＳ８０８では、情報処理装置１０１のＣＰＵ２０１は、一致拘束指示部３２５によって、ステップＳ８０７にて該当した線要素の端点と、ステップＳ８０６にて接続されていないと判定された線要素の端点とを接続するよう、一致拘束制御部３１４に対して一致拘束の指示を出す（接続制御手段）。一致拘束制御部３１４は、その指示を受け取ると、この２つの端点に対して一致拘束をかける。
【００７５】
一致拘束は、この２つの端点を持つ線要素同士を移動させて一致させてもよいし、片方の線要素を移動させて２つの端点を一致させてもよい。移動させる場合には、この２つの端点の反対側の端点を固定し、固定した端点を中心として回転するように移動させる。図１０に一致拘束の例を示す。図１０の線要素１００１と線要素１００２の端点を接続したい場合、この２つの線要素の端点に対して一致拘束をかけることになる。この場合、線要素１００１と線要素１００２の接続したい端点とは反対側の端点を固定し、端点同士を接続するように移動（回転）させることになる。つまり、線要素１００１は、線要素１００２に向かって反時計回りに移動し、線要素１００２は、線要素１００１に向かって時計回りに移動する。そして、この２つの線要素の端点が一致する箇所で停止し、端点同士を接続する。このようにすることで、隙間を発生させている線要素同士を接続することができる。本実施形態の接続方法はあくまで一例であり、接続されていない２つの端点を結ぶ線要素を新たに作成してもよいし、接続されていない端点を持つ線要素の寸法を変えることで接続するようにしてもよい。
【００７６】
ステップＳ８０９では、情報処理装置１０１のＣＰＵ２０１は、変数Ｃｎｔをインクリメントする。つまり、両端点が接続された線要素が１つ増えたことを示す。
【００７７】
ステップＳ８１０では、情報処理装置１０１のＣＰＵ２０１は、変数Ｃｎｔと変数Ａとを比較し、一致するか否かを判定する。つまり、輪郭線を構成するすべての線要素に対して、ステップＳ８０４乃至ステップＳ８１０が実行されたか否かを判定する。比較した結果が一致した場合、輪郭線修正処理を終了し、一致しない場合は、ステップＳ８０４からステップＳ８１０の処理を繰り返す。
【００７８】
以上のようにすることで、ステップＳ４０７で取得した輪郭線を構成するすべての線要素に対して、他の線要素と接続されていないかを特定させ、そして接続されていない場合には、他の線要素と接続するように一致拘束をかけるので、微小な隙間がなくなり、１つに連なる輪郭線ができあがる。
【００７９】
次に、幅算出処理について図１１を用いて説明する。幅算出処理は、ステップＳ４０６で所定の平面に投影された輪郭線の幅や高さを算出するための処理である。正面に投影された輪郭線であれば、Ｘ軸方向とＹ軸方向、平面に投影された輪郭線であれば、Ｘ軸方向とＺ軸方向、右側面に投影された輪郭線であれば、Ｙ軸方向とＺ軸方向の幅が算出される。以下、この説明を行う。
【００８０】
まず、ステップＳ１１０１では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ４０８において輪郭線修正処理が行われた輪郭線を取得する。
【００８１】
ステップＳ１１０２では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ４０２において入力を受け付けた、測定のトレランスを取得し、変数ｊに格納する。後述するステップＳ１１０３乃至ステップＳ１１０６で、直線を作成し、作成した直線が輪郭線と接しているかどうかを特定する。直線が輪郭線に接するまで、ステップＳ１１０３乃至ステップＳ１１０６を繰り返すのだが、この時、繰り返す度に、直線を輪郭線に近づけていく。前述したトレランスは、この輪郭線に直線を近づけていく際の距離の間隔を示している。すなわち、トレランスが示す値の距離だけ、直線を輪郭線に近づけていくことになる。よって、トレランスの値を小さくすればするほど、測定の精度が向上する。その反面、トレランスの値が小さすぎると、直線が輪郭線に接触するまで何度も直線を作成することになるので、測定に時間がかかる。よって、誤差として許容する範囲でトレランスを設定するのがよい。
【００８２】
以下、ステップＳ１１０３乃至ステップＳ１１０６は、輪郭線の上下左右いずれかの方向に直線を作成し、輪郭線へ近づけていく処理である。
【００８３】
ステップＳ１１０３では、情報処理装置１０１のＣＰＵ２０１は、直線を作成するスタート地点の座標値の基となる値を変数ｉに格納する。図１２に示すように、投影された輪郭線の外側から直線を近づけていくことになる。変数ｉはこのスタート地点の座標値を示すことになる。例えば、図１２は正面の投影図であるので、直線１２０１であれば、Ｘ座標の「−１０００」、直線１２０２であれば、Ｘ座標の「１０００」、直線１２０３であれば、Ｙ座標の「１０００」、直線１２０４であれば、Ｙ座標の「−１０００」といった値が格納される。それぞれ絶対値として「１０００」という値を挙げたが、特にこれに限らない。輪郭線よりも外側であれば、どの位置をスタート地点としてもよい。そして、後述するステップＳ１１０５で、後述するステップＳ１１０４で作成した直線と輪郭線とから成る交点が発生していると確認された場合には、ステップＳ１１０３乃至ステップＳ１１０６のループ処理を抜けて、ステップＳ１１０７に処理を進める。そうでない場合には、ステップＳ１１０４に処理を進める。
【００８４】
ステップＳ１１０４では、情報処理装置１０１のＣＰＵ２０１は、直線作成指示部３２６によって、輪郭線の幅を測定するための基準となる直線を、輪郭線が投影された平面に作成するよう、直線作成部３１５に指示を出す。直線作成部３１５はその指示に基づいて、直線を作成する。作成する位置は、変数ｉの値に基づく。例えば、直線１２０１または直線１２０２を作成する場合には、座標値が（ｉ，０）となる直線を作成し、直線１２０３または直線１２０４を作成する場合には、座標値が（０，ｉ）となる直線を作成する。
【００８５】
ステップＳ１１０５では、情報処理装置１０１のＣＰＵ２０１は、交点取得部３２７によって、ステップＳ１１０１で取得した輪郭線と、ステップＳ１１０４で作成した直線の交点を取得するべく、交点特定部３１６に指示を出す。交点特定部３１６は指示を受け付けると、輪郭線と直線の交点が発生しているか否かを確認する。交点が発生していれば、その交点の座標値を交点取得部３２７に返す。交点が発生していない場合には、交点が発生していない旨を交点取得部３２７に返す。
【００８６】
ステップＳ１１０６では、情報処理装置１０１のＣＰＵ２０１は、変数ｉに変数ｊを加算する。つまり、変数ｉに設定されたトレランスの値を加算する。こうすることで、次にステップＳ１１０４が実行されるときには、トレランスの値だけ加算されているので、トレランスの値だけ輪郭線に直線を近づけることができる。そして、ステップＳ１１０３に処理を戻し、ステップＳ１１０５の処理の結果、交点が発生したか否かを確認する。交点が発生していれば、前述した通り、ステップＳ１１０７に処理を進める。
【００８７】
ステップＳ１１０７では、情報処理装置１０１のＣＰＵ２０１は、幅算出部３２８によって、ステップＳ１１０５において取得した交点の座標値に基づいて、ステップＳ１１０１で取得した輪郭線の幅を算出する（幅算出手段）。ステップＳ１１０３乃至ステップＳ１１０６の各処理によって、輪郭線と直線が接触した上下左右の交点の座標値が取得できるので、左右の座標の差の絶対値と、上下の座標の差の絶対値でそれぞれの幅（高さを含む）が算出できる。こうして算出された幅の値を、前述した概形測定画面６００の幅表示欄６０２に表示させることで、ユーザに３次元モデルのＸ軸方向、Ｙ軸方向、Ｚ軸方向の幅を提示することができる。
【００８８】
以上説明したように、本実施形態によれば、任意の平面に投影された３次元モデルの輪郭線を構成する線要素同士を容易に接続させることが可能となるので、接続されていない線要素を探す必要がなくなり、ユーザの手間を軽減することができる効果を奏する。
【００８９】
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、１つの機器からなる装置に適用してもよい。
【００９０】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【００９１】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００９２】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００９３】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【００９４】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【００９５】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００９６】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００９７】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００９８】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【００９９】
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１００】
１００  ３次元ＣＡＤシステム
１０１  情報処理装置
１０２  サーバ
１０３  ネットワーク
２０１  ＣＰＵ
２０２  ＲＡＭ
２０３  ＲＯＭ
２０４  システムバス
２０５  入力コントローラ
２０６  ビデオコントローラ
２０７  メモリコントローラ
２０８  通信Ｉ／Ｆ（インターフェース）コントローラ
２０９  入力装置
２１０  ディスプレイ
２１１  外部メモリ
【図１】
2015069546.tif 000003
【図２】
2015069546.tif 000004
【図３】
2015069546.tif 000005
【図４】
2015069546.tif 000006
【図５】
2015069546.tif 000007
【図６】
2015069546.tif 000008
【図７】
2015069546.tif 000009
【図８】
2015069546.tif 000010
【図９】
2015069546.tif 000011
【図１０】
2015069546.tif 000012
【図１１】
2015069546.tif 000013
【図１２】
2015069546.tif 000014