(57)【特許請求の範囲】
【請求項１】
複数の線要素を含むデータを記憶する記憶手段を備える情報処理装置で実行可能なプログラムであって、
前記情報処理装置を、
前記記憶手段に記憶された前記複数の線要素から、線要素の選択を受け付ける選択受付手段と、
前記選択受付手段によって選択を受け付けた前記線要素と交わる線要素を一部とする、閉領域の外形線を特定する外形線特定手段と、
前記選択受付手段によって選択を受け付けた前記線要素と他の線要素とが交差する交点と、前記線要素の端点とを特定する点特定手段として機能させ、
前記外形線特定手段は、前記点特定手段で特定された前記交点のうち隣接する２つの交点の間の第一の点と、前記点特定手段で特定された前記端点と当該端点に最も近い交点との間の第二の点とをそれぞれ起点として走査をすることで閉領域の外形線を抽出すること
を特徴とするプログラム。
【請求項２】
前記外形線特定手段は、前記第一の点と前記第二の点とをそれぞれ起点とした共通の抽出方法を用いて閉領域の外形線を抽出することを特徴とする請求項１に記載のプログラム。
【請求項３】
前記外形線特定手段は、前記選択受付手段で選択を受け付けた前記線要素の少なくとも一部を含む閉領域の外形線も前記閉領域の外形線として特定することを特徴とする請求項１または２に記載のプログラム。
【請求項４】
前記外形線特定手段で特定した外形線で構成される閉領域を識別表示する表示制御手段を更に備えることを特徴とする請求項１乃至３のいずれか１項に記載のプログラム。
【請求項５】
複数の線要素を含むデータを記憶する記憶手段を備える情報処理装置であって、
前記記憶手段に記憶された前記複数の線要素から、線要素の選択を受け付ける選択受付手段と、
前記選択受付手段によって選択を受け付けた前記線要素と交わる線要素を一部とする、閉領域の外形線を特定する外形線特定手段と、
前記選択受付手段によって選択を受け付けた前記線要素と他の線要素とが交差する交点と、前記線要素の端点とを特定する点特定手段とを備え、
前記外形線特定手段は、前記点特定手段で特定された前記交点のうち隣接する２つの交点の間の第一の点と、前記点特定手段で特定された前記端点と当該端点に最も近い交点との間の第二の点とをそれぞれ起点として走査をすることで閉領域の外形線を抽出すること
を特徴とする情報処理装置。
【請求項６】
複数の線要素を含むデータを記憶する記憶手段を備える情報処理装置の制御方法であって、
前記情報処理装置が、
前記記憶手段に記憶された前記複数の線要素から、線要素の選択を受け付ける選択受付工程と、
前記選択受付工程によって選択を受け付けた前記線要素と交わる線要素を一部とする、閉領域の外形線を特定する外形線特定工程と、
前記選択受付工程によって選択を受け付けた前記線要素と他の線要素とが交差する交点と、前記線要素の端点とを特定する点特定工程とを備え、
前記外形線特定工程は、前記点特定工程で特定された前記交点のうち隣接する２つの交点の間の第一の点と、前記点特定工程で特定された前記端点と当該端点に最も近い交点との間の第二の点とをそれぞれ起点として走査をすることで閉領域の外形線を抽出すること
を特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＡＤデータの領域特定に関し、特に複数の線要素からなる領域の特定を支援する情報処理装置、情報処理装置の制御方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、製品の設計を行う際には、正投影法によって正面、平面、右側面から見た場合の製品の形状を設計図に記載して設計が行われていた。情報処理技術の発達により、このような製品の設計は、ＣＡＤ（ｃｏｍｐｕｔｅｒ  ａｉｄｅｄ  ｄｅｓｉｇｎ）システム（特に２次元ＣＡＤ）によって、情報処理装置内で設計が可能となっている。
【０００３】
特に２次元ＣＡＤデータを扱うＣＡＤアプリケーションでは、直線や円弧といった線要素がいくつも組み合わせることで、１つの図面を表現している。よって、線要素によって構成される閉じられた領域（閉領域）は、その閉領域を構成する線要素を特定することではじめてその閉領域が特定できるような仕組みとなっている。
【０００４】
特に、鍛造工程を必要とする製造現場において、鍛造荷重を計算するため製品のパーチ面（型鍛造品の上下の金型の合わせ面のこと）の面積を算出する必要がある。２次元ＣＡＤデータからパーチ面の面積を算出する場合、２次元ＣＡＤデータ上の閉領域の面積の算出を行うことになる。閉領域を構成する要素は一見すると、ある程度の長さを持った直線や円弧の組み合わせに見えるものの、実際は作業の過程においてＣＡＤの仕様やデータ変換の過程により、線要素が細分化されている場合がある。このような細分化された微細な要素によって閉じられた領域は図面上に数多く存在し、またその閉領域を構成している線要素は時に数百以上の線要素にも上るため、それらすべてを手作業で１つずつ選択して閉領域を特定するのは非常に困難な作業となっている。
【０００５】
例えば下記の特許文献１には円弧を含むような設計図の図形データから、近似する図形を使用せずに自動的に面積を算出する仕組みが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平６−２７４６２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＣＡＤアプリケーションには、基本機能として、指定閉領域の面積を自動算出する機能は備わっている。しかしながら、その機能を使用するために閉領域を構成する線要素を、目視かつ手動にてもれなく一つ一つ選択する必要がある。
【０００８】
閉領域面積の算出を実行するにあたって、閉領域を構成する線要素の総数が数百を超える場合、その構成要素の選択作業量は作業者にとって大きな負担であり、微細な線要素の選択作業効率（速さと正確さ）には熟練者と一般作業者とで隔たりがある。さらに、その基本機能では処理を実行しなければ計算可能（選択した線要素にて閉領域が構成可能）であるかどうかを識別する機能が備わっていないにもかかわらず、一度実行すると選択した要素が開放されてしまうため、再度全ての作業を繰り返さなければならなくなり、作業ロスの一因となっている。
【０００９】
そこで、本発明の目的は、データ上の閉領域を構成する外形線を容易に特定することの可能な仕組みを提供することである。
【課題を解決するための手段】
【００１０】
上記の目的を達成するために、本発明のプログラムは、複数の線要素を含むデータを記憶する記憶手段を備える情報処理装置で実行可能なプログラムであって、前記情報処理装置を、前記記憶手段に記憶された前記複数の線要素から、線要素の選択を受け付ける選択受付手段と、前記選択受付手段によって選択を受け付けた前記線要素と交わる線要素を一部とする、閉領域の外形線を特定する外形線特定手段と、前記選択受付手段によって選択を受け付けた前記線要素と他の線要素とが交差する交点と、前記線要素の端点とを特定する点特定手段として機能させ、前記外形線特定手段は、前記点特定手段で特定された前記交点のうち隣接する２つの交点の間の第一の点と、前記点特定手段で特定された前記端点と当該端点に最も近い交点との間の第二の点とをそれぞれ起点として走査をすることで閉領域の外形線を抽出することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、データ上の閉領域を構成する外形線を容易に特定することの可能な仕組みを提供することのできる効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態におけるＣＡＤシステム１００の一例を示す構成図である。
【図２】図１に示す情報処理装置１０１及びサーバ１０２のハードウェア構成の一例を示す構成図である。
【図３】図１に示す情報処理装置１０１及びサーバ１０２のモジュール構成の一例を示す構成図である。
【図４】本発明の実施形態における一連の処理の流れを示すフローチャートである。
【図５】図４のステップＳ１０６におけるポイント位置確定処理の詳細を示すフローチャートである。
【図６】図４のステップＳ１０７における対象閉領域抽出処理の詳細を示すフローチャートである。
【図７】図４のステップＳ１１３における最大閉領域特定処理の詳細を示すフローチャートである。
【図８】情報処理装置１０１に記憶された各種テーブル構成の一例を示す構成図である。
【図９】本実施例における２次元ＣＡＤデータ例と、特定したいターゲット範囲例を示す模式図である。
【図１０】図９に示す２次元ＣＡＤデータ例において、範囲選択された場合の一例を示す模式図である。
【図１１】図９に示す２次元ＣＡＤデータ例において、非対象要素が選択された場合の一例を示す模式図である。
【図１２】図９に示す２次元ＣＡＤデータ例において、複数の閉領域が抽出された場合の一例を示す模式図である。
【図１３】本実施例における閉領域選択ダイアログ１３００の一例を示す構成図である。
【図１４】本実施例における開始点要素選択ダイアログ１４００の一例を示す模式図である。
【図１５】図９に示す２次元ＣＡＤデータ例において、非対象要素の端点、交点、中点を示す模式図である。
【図１６】本実施例における閉領域の確定プロセスの一例を示す模式図である。
【図１７】本実施例における閉領域の確定プロセスの一例を示す模式図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、本発明の実施の形態の一例について説明する。
【００１４】
図１は、本発明のＣＡＤシステム１００のシステム構成の一例を示す図である。本発明のＣＡＤシステム１００は、情報処理装置１０１、サーバ１０２が設置されており、それら装置はＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のネットワーク１０３を介して相互にデータ通信可能に接続されている。図１のネットワーク１０３上に接続される各種端末あるいはサーバの構成は一例であり、用途や目的に応じて様々な構成例があることは言うまでもない。
【００１５】
情報処理装置１０１は、２次元ＣＡＤアプリケーションを実行する装置である。２次元ＣＡＤアプリケーションは後述する図２のＲＯＭ２０２または外部メモリ２１１に記憶されており、設計者（以下、ユーザ）からの指示に応じて、ＣＰＵ２０１がＲＡＭ２０３に読み出して各種動作を行う。
【００１６】
２次元ＣＡＤアプリケーションは、ユーザからの操作に応じて、設計物の平面形状を示す２次元ＣＡＤデータの作成を行う。本実施例においては、２次元ＣＡＤアプリケーションで作成された２次元ＣＡＤデータに基づいて立体データを作成する。尚、２次元ＣＡＤデータはサーバ１０２の外部メモリ２１１に記憶されても、情報処理装置１０１の外部メモリ２１１に記憶されてもよい。本実施例では、情報処理装置１０１の外部メモリ２１１に記憶されているものとして、以下説明を行う。
【００１７】
サーバ１０２は、情報処理装置１０１で作成された各種データを記憶管理する装置である。２次元ＣＡＤデータは、複数のユーザによって作成される場合があり、その場合には１つのサーバ１０２に各ユーザの情報処理装置１０１で作成された２次元ＣＡＤデータを一元管理する。
【００１８】
尚、情報処理装置１０１が、サーバ１０２の構成を含んでもよいし、サーバ１０２が情報処理装置１０１の構成を含んでもよい。また、本実施例においては、情報処理装置１０１に各種データが記憶され、ユーザからの操作によって動作させる形態に基づいて説明を行う。
【００１９】
図２は、本発明の実施形態における各種端末のハードウェア構成を示す図である。
【００２０】
ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。
【００２１】
また、ＲＯＭ２０２あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ(Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  ＯｕｔｐｕｔＳｙｓｔｅｍ)やオペレーティングシステムプログラム（以下、ＯＳ）や、各サーバ或いは各ＰＣの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。
【００２２】
ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＡＭ２０３にロードして、プログラムを実行することで各種動作を実現するものである。
【００２３】
また、入力コントローラ（入力Ｃ）２０５は、キーボード２０９や不図示のマウス等のポインティングデバイスからの入力を制御する。
【００２４】
ビデオコントローラ（ＶＣ）２０６は、ＣＲＴディスプレイ（ＣＲＴ）２１０等の表示器への表示を制御する。表示器はＣＲＴだけでなく、液晶ディスプレイでも構わない。これらは必要に応じて管理者が使用するものである。
【００２５】
メモリコントローラ（ＭＣ）２０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）やフロッピーディスク（登録商標  ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ２１１へのアクセスを制御する。
【００２６】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）２０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。
【００２７】
尚、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ＣＲＴ２１０上での表示を可能としている。また、ＣＰＵ２０１は、ＣＲＴ２１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００２８】
本発明の情報処理装置１０１が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０３にロードされることによりＣＰＵ２０１によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ２１１に格納されている。
【００２９】
次に、情報処理装置１０１及びサーバ１０２のモジュール構成を示す機能構成図について、図３を用いて説明する。尚、図３の各種端末あるいはサーバのモジュール構成は一例であり、用途や目的に応じて様々な構成例があることは言うまでもない。
【００３０】
情報処理装置１０１は、ＣＡＤデータ記憶モジュール３０１、画面表示モジュール３０２、テーブル管理モジュール３０３、閉領域特定モジュール３０４、面積計算モジュール３０５を備える。
【００３１】
ＣＡＤデータ記憶モジュール３０１は、２次元ＣＡＤアプリケーションによって作成された２次元ＣＡＤデータを記憶するモジュールである。ＣＡＤデータ記憶モジュール３０１によって記憶された２次元ＣＡＤデータは、情報処理装置１０１の外部メモリ２１１等に記憶され、必要に応じて、ＣＡＤデータ記憶モジュール３０１によって読みだされる。
【００３２】
画面表示モジュール３０２は、各種情報を情報処理装置１０１のＣＲＴ２１０に表示させるためのモジュールである。画面表示モジュール３０２は各種画面を表示させ、必要に応じてユーザからの選択や入力を受け付ける。また、２次元ＣＡＤデータを表示させ、必要に応じて識別可能に表示させる。
【００３３】
テーブル管理モジュール３０３は、後述する図８の各種テーブルの記憶や更新等を行うためのモジュールである。各種テーブルは、外部メモリ２１１に記憶され、必要に応じてＲＡＭ２０３に読み出す。
【００３４】
閉領域特定モジュール３０４は、２次元ＣＡＤデータによって表現される線要素で構成される閉じられた領域である閉領域（平面領域）を特定するためのモジュールである。当該閉領域を特定するために後述する端点や交点、中点を特定して、それらに基づいて閉領域を囲む線要素である外形線を特定し、閉領域を抽出する。
【００３５】
面積計算モジュール３０５は、閉領域の面積を計算するためのモジュールである。本実施例では、面積の計算方法については、従来技術を利用するものとする。
【００３６】
サーバ１０２は、ＣＡＤデータ記憶モジュール３０７を備える。ＣＡＤデータ記憶モジュール３０７は、前述した情報処理装置１０１のＣＡＤデータ記憶モジュール３０１と同様である。情報処理装置１０１に２次元ＣＡＤデータを記憶管理させる場合には情報処理装置１０１のＣＡＤデータ記憶モジュール３０１を利用し、サーバ１０２に２次元ＣＡＤデータを記憶管理させる場合にはサーバ１０２のＣＡＤデータ記憶モジュール３０７を利用する。本実施例では、情報処理装置１０１のＣＡＤデータ記憶モジュール３０１を利用するものとして説明を行う。
【００３７】
次に、本発明の実施例における情報処理装置１０１によって行われる一連の処理について、図４に示すフローチャートを用いて説明する。尚、Ｓ１０１乃至Ｓ１１８の各ステップは情報処理装置１０１におけるＣＰＵ２０１の制御の下、処理が行われる。
【００３８】
尚、この処理を情報処理装置１０１に実行させるためのプログラムは、情報処理装置１０１にインストールされている２次元ＣＡＤアプリケーションの一部、若しくはアドオンプログラムとして用意されていてもよいし、２次元ＣＡＤアプリケーションとは別にインストールされたプログラムとして用意されていてもよい。
【００３９】
まず、ステップＳ１０１では、情報処理装置１０１はユーザによる２次元ＣＡＤアプリケーションの操作により、任意の２次元ＣＡＤデータを読み込み、２次元ＣＡＤアプリケーションに表示する。本実施例では、図９に示す２次元ＣＡＤデータ（以下、モデルＡ）を用いて以下説明を行う。
【００４０】
ステップＳ１０２では、情報処理装置１０１は、ユーザによる閉領域計算プログラムの起動指示を受け付けると、外部メモリ２１１から閉領域計算プログラムを読み出して起動する。
【００４１】
ステップＳ１０３では、情報処理装置１０１は、ユーザからのＫＢ２０９による操作により、ユーザが閉領域計算の対象としたい閉領域を含む大まかな範囲を選択する。そして、選択された範囲に含まれる線要素を候補要素としてそれぞれ閉領域候補要素テーブル８００のＮｏ８０１、要素ＩＤ８０２、要素タイプ８０３に登録する。この際、候補要素と非対象要素を区別するため、判別フラグ８０４を用意し本ステップの段階では０を登録する。図１０は、図９に示すモデルＡを矩形選択範囲１００１で選択した場合を示す。線要素のうち、破線で表現されている線が選択された線要素である。
【００４２】
閉領域候補要素テーブル８００（図８参照）は、一意に割り振られるＮｏ８０１、線要素ごとに２次元ＣＡＤアプリケーションによって割り振られた要素ＩＤ８０２、当該線要素が直線なのか円弧なのかを示す要素タイプ８０３、後述する非対象要素であるか否かを示す判別フラグ８０４から構成される。判別フラグは、「１」が格納されていると非対象要素である。
【００４３】
ステップＳ１１７では、情報処理装置１０１は、抽出したい閉領域をまたぐ線要素である非対象要素の選択の解除をするか否かを判定する。具体的には、非対象要素の選択の解除が行える機能の実行命令がなされたか否かで判定する。抽出したい閉領域は複数の閉領域の組み合わせであることが多い。複数の閉領域から成る閉領域は、閉領域同士の境界には線要素がまたがっているはずである。よって、この線要素の選択を解除することで当該線要素が含まれる閉領域を複数抽出するようにすれば、ユーザの手間を軽減できる。非対象要素の選択をすると判定された場合には、ステップＳ１０４に処理を進め、そうでない場合には、ステップＳ１０５に処理を進める。
【００４４】
ステップＳ１０４では、情報処理装置１０１は、ステップＳ１０３で選択した線要素のうち、大きな閉領域を分断している線要素をユーザによる任意選択によって受け付ける（選択受付手段）。そして、選択された線要素の判別フラグ８０４を「１」に変更する。非対象要素の解除が指示されると、画面上では図１１に示すような状態になる。破線で示されている線要素が非対象要素として選択を解除された線要素である。
【００４５】
ステップＳ１０５では、情報処理装置１０１は、非対象要素があるか否かを判定する。具体的には、閉領域候補要素テーブル８００の判別フラグ８０４の値に「１」があるか否かで判定する。非対象要素があると判定された場合には、ステップＳ１０６に処理を進め、非対象要素がない場合には、ステップＳ１１１に処理を進める。
【００４６】
ステップＳ１０６では、情報処理装置１０１は、ポイント位置特定処理を行う。ポイント位置特定処理は、ステップＳ１０４で選択された非対象要素の端点と、当該非対象要素と他の線要素とが重なる交点の２つに基づいて、端点から交点または交点から交点までの真ん中の点である中点を特定する処理である。ポイント位置特定処理の詳細は、後述する図５に示す。
【００４７】
ステップＳ１０７では、情報処理装置１０１は、対象閉領域抽出処理を行う（特定手段）。対象閉領域抽出処理は、ステップＳ１０６で特定された中点に基づいて、非対象要素が含まれる閉領域の抽出を行う。対象閉領域抽出処理の詳細は、後述する図６に示す。
【００４８】
ステップＳ１０８では、情報処理装置１０１は、ステップＳ１０７で抽出された対象閉領域があるか否かを判定する。具体的には、ステップＳ１０７で作成される閉領域の面積テーブル８５０にレコードが存在するかどうかにより判定する。閉領域が存在すると判定された場合には、ステップＳ１０９に処理を進め、そうでない場合には、選択された非対象要素が含まれる閉領域が存在しない旨をユーザに通知し、本一連の処理を終了する。
【００４９】
面積テーブル８５０（図８参照）は、一意に割り振られるＮｏ８５１、ステップＳ１０７において抽出された閉領域に対して割り振られた要素ＩＤ８５２、当該閉領域の面積を示す面積８５３から構成される。ステップＳ１０７において抽出された閉領域の面積を格納するためのテーブルとなっている。
【００５０】
ステップＳ１０９では、情報処理装置１０１は、ステップＳ１０７にて抽出した閉領域を面積テーブル８５０よりレコードを取得し、算出対象とする閉領域を選択するための閉領域選択ダイアログ１３００（図１３参照）で一覧表示する（表示手段）。この画面に表示する閉領域は、図１２に示すように各閉領域に対して番号が振られ、当該番号に対応するように該当閉領域一覧１３０１に表示を行う。
【００５１】
ステップＳ１１８では、情報処理装置１０１は、閉領域選択ダイアログ１３００の該当閉領域一覧１３０１に表示された閉領域がユーザから選択され、計算ボタン１３０３が押下されたか否かを判定する。つまり、ユーザが求める閉領域の選択を閉領域選択ダイアログ１３００で受け付け、計算ボタンを押下することで、複数の閉領域の面積の計算を行うことができるようになっている。計算ボタン１３０３が押下されたと判定された場合には、ステップＳ１１０に処理を進め、そうでない場合には、計算ボタン１３０３が押下されるまで待機する。
【００５２】
ステップＳ１１０では、情報処理装置１０１は、ステップＳ１０９で選択された閉領域の面積を合計し、面積合計値１３０４に表示する（面積計算手段）。この合計面積は面積テーブル８５０より該当レコードの面積８５３を基に算出する。ＯＫボタン１３０５の押下を受け付けると、処理をステップＳ１１５に進める。
【００５３】
一方、ステップＳ１０５で、非対象要素が選択されていないと判定した場合、ステップＳ１１１に処理を進める。つまり、ステップＳ１０３において範囲選択された線要素が構成する最も大きな閉領域（最大閉領域）を特定するために、ステップＳ１１１乃至ステップＳ１１４の処理を行う。
【００５４】
ステップＳ１１１では、情報処理装置１０１は、ステップＳ１０３で範囲選択された線要素のうち、最大閉領域を特定するための開始点となる線要素の選択を開始点要素選択ダイアログ１４００（図１４参照）で受け付ける。具体的には、ステップＳ１０３で範囲選択した矩形の開始点（マウスカーソルのドラッグ選択開始点）から、最も近い位置の線要素の順に最大閉領域候補テーブル８６０（図８参照）にＮｏ８６１、要素ＩＤ８６２、要素タイプ８６３を登録する。この登録したデータを、矩形開始点の座標値から最も近い位置の順に表示し、開始点要素選択ダイアログ１４００上でユーザからの選択を受け付ける。本実施例では、範囲詮索された矩形の開始点から近い順に線要素を抽出しているが、線要素が抽出できれば、これに限らない。表示についても、線要素が選択できればよい。開始点要素選択ダイアログ１４００で線要素が選択された場合には、対応する線要素を２次元ＣＡＤデータ上で識別可能にハイライト表示する。次へボタン１４０３の押下を検知するとステップＳ１１２に処理を進める。
【００５５】
最大閉領域候補テーブル８６０（図８参照）は、一意に割り振られるＮｏ８６１、閉領域を構成する線要素の要素ＩＤ８０２を格納する要素ＩＤ、当該線要素が直線なのか円弧なのかを示す要素タイプ８６３から構成される。
【００５６】
ステップＳ１１２では、情報処理装置１０１は、ステップＳ１１１にて選択された線要素の両端のうち、矩形開始点から近い方の端点の座標値と、その線要素と交差する要素との交点の座標値とを、２次元ＣＡＤアプリケーションにてそれぞれ取得する。取得した座標値を、端点は端点テーブル８１０（図８参照）のＮｏ８１１と要素ＩＤ８１２とＸ座標８１３とＹ座標８１４に格納し、また交点は基準点として基準点テーブル８４０（図８参照）のＮｏ８２１と要素ＩＤ８２２とＸ座標８２３とＹ座標８２４に格納する。基準点とは、最大閉領域を特定する際のゴール地点である。
【００５７】
端点テーブル８１０（図８参照）は、一意に割り振られるＮｏ８１１、端点ごとに２次元ＣＡＤアプリケーションによって割り振られた要素ＩＤ８１２、当該端点のＸ座標とＹ座標を示すＸ座標８１３、Ｙ座標８１４から構成される。
【００５８】
また、基準点テーブル８４０は、一意に割り振られる８４１、基準点ごとに２次元ＣＡＤアプリケーションによって割り振られた要素ＩＤ８４２、当該基準点のＸ座標とＹ座標を示すＸ座標８４３、Ｙ座標８４４から構成される。
【００５９】
次に、ステップＳ１１３では、情報処理装置１０１は、最大閉領域特定処理を行う。ステップＳ１１２で特定した基準点に基づいて最大閉領域を特定し、面積の算出を行う。最大閉領域特定処理の詳細は、後述する図７に示す。
【００６０】
ステップＳ１１４では、情報処理装置１０１は、ステップＳ１０８と同様に閉領域が存在するか否かを判定する。閉領域が存在する場合には、ステップＳ１１５に処理を進め、存在しなかった場合には、閉領域が存在しない旨をユーザに通知し、本一連の処理を終了する。
【００６１】
ステップＳ１１５では、情報処理装置１０１は、特定した閉領域に対してハッチング表示を施す。ハッチング表示とは、ある面を斜線や特定の模様で埋めることを言う。特定した閉領域が識別可能に表示できるのであれば、ハイライト表示でもよいし、他の表示方法でもよい。
【００６２】
ステップＳ１１６では、情報処理装置１０１は、ステップＳ１１５で閉領域の面積の算出対象となっている閉領域をハッチング表示にて明示した画面に重ねて、面積の算出結果の値を画面上に表示する。こうすることで、閉領域の特定を容易にし、更に当該閉領域の面積を計算して表示させることができる。
【００６３】
次に、ポイント位置特定処理について図５を用いて説明する。尚、Ｓ２０１乃至Ｓ２０６の各ステップは情報処理装置１０１おけるＣＰＵ２０１の制御の下、処理が行われる。
【００６４】
尚、この処理を情報処理装置１０１に実行させるためのプログラムは、情報処理装置１０１にインストールされている２次元ＣＡＤアプリケーションの一部、若しくはアドオンプログラムとして用意されていてもよいし、２次元ＣＡＤアプリケーションとは別にインストールされたプログラムとして用意されていてもよい。
【００６５】
ステップＳ２０１では、情報処理装置１０１は、ステップＳ１０４にて選択された非対象要素を閉領域候補要素テーブル８００の判別フラグ８０４に基づいて、特定する。
【００６６】
ステップＳ２０２では、情報処理装置１０１は、ステップＳ２０１で特定された非対象要素の両端点の座標値を２次元ＣＡＤアプリケーションに表示されている２次元ＣＡＤデータ上より取得し、端点テーブル８１０（図８参照）のＮｏ８１１、要素ＩＤ８１２、Ｘ座標８１３、Ｙ座標８１４に格納する。
【００６７】
ステップＳ２０３では、情報処理装置１０１は、非対象要素となっている線要素と当該非対象要素とは他の線要素との交点があるか否かを判定する。交点があると判定された場合には、ステップＳ２０４に処理を進め、そうでない場合には、ステップＳ２０６に処理を進める。の座標値を２次元ＣＡＤアプリケーションにて算出し、記憶する。
【００６８】
ステップＳ２０４では、情報処理装置１０１は、ステップＳ２０３で特定された交点の座標値を２次元ＣＡＤアプリケーションで算出し、算出された交点の座標値を交点テーブル８２０（図８参照）のＮｏ８２１、要素ＩＤ８２２、Ｘ座標８２３、Ｙ座標８２４に格納する。
【００６９】
交点テーブル８２０（図８参照）は、一意に割り振られるＮｏ８２１、交点ごとに２次元ＣＡＤアプリケーションによって割り振られた要素ＩＤ８２２、当該交点のＸ座標とＹ座標を示すＸ座標８２３、Ｙ座標８２４から構成される。
【００７０】
ステップＳ２０５では、情報処理装置１０１は、ステップＳ２０４で取得した交点の座標値をもとに、両端点と交点との中点、交点と交点との中点を２次元ＣＡＤアプリケーションで算出し、中点テーブル８３０（図８参照）のＮｏ８３１、要素ＩＤ８３２、Ｘ座標８３３、Ｙ座標８３４に格納する。また、中点を算出する際に参照した端点と交点の要素ＩＤをレコード毎に要素ＩＤａ８３５、要素ＩＤｂ８３６に格納する。このとき両端点と交点との中点の場合は、判別フラグ８３７の値を「０」にし、交点と交点との中点の場合は、同値を「１」で格納する。本実施例におけるモデルＡの非対象要素に対して端点、交点、中点を特定すると、図１５に示すような部分が該当する。非対象要素の両端が端点、他の線要素と交差する点が交点、端点と端点または端点と交点の間に位置する点が中点である。
【００７１】
中点テーブル８３０（図８参照）は、一意に割り振られるＮｏ８３１、中点ごとに２次元ＣＡＤアプリケーションによって割り振られる要素ＩＤ８３２、当該中点のＸ座標とＹ座標を示すＸ座標８３３、Ｙ座標８３４、中点を構成する端点と交点、または交点と交点の要素ＩＤを格納する要素ＩＤａ８３５、要素ＩＤｂ８３６、中点を構成するのが端点と交点なのか、交点と交点なのかを示す判別フラグ８３７から構成される。
【００７２】
ステップＳ２０６では、情報処理装置１０１は、閉領域候補要素テーブル８００の判別フラグの値を参照して、未処理のレコードがあるか否かを判定する。未処理のレコードがあると判定された場合には、ステップＳ２０１に処理を戻し、ない場合にはポイント位置特定処理を終了し、呼び出し元に処理を戻す。これらの処理によって、選択された非対象要素の端点と交点と中点を特定し、後述する図６の対象閉領域抽出処理の準備を行う。
【００７３】
次に、対象閉領域抽出処理について図６を用いて説明する。尚、Ｓ３０１乃至Ｓ３１０の各ステップは情報処理装置１０１おけるＣＰＵ２０１の制御の下、処理が行われる。
【００７４】
尚、この処理を情報処理装置１０１に実行させるためのプログラムは、情報処理装置１０１にインストールされている２次元ＣＡＤアプリケーションの一部、若しくはアドオンプログラムとして用意されていてもよいし、２次元ＣＡＤアプリケーションとは別にインストールされたプログラムとして用意されていてもよい。
【００７５】
ステップＳ３０１では、情報処理装置１０１は、ステップＳ２０５で取得した中点を中点テーブル８３０より取得する。対象閉領域抽出処理では、この中点を基に閉領域を抽出する。閉領域の抽出は閉領域を構成する外周の線要素を、基準点テーブル８４０の基準点に基づいて走査することで抽出する。基準点からの走査方法は、スタート点である中点が端点と交点の中点である場合と、交点と交点の中点である場合の２つがある。以下、まずは図１６に示す端点と交点の中点をスタート点とする場合を例にとって説明を行っていく。
【００７６】
ステップＳ３０２では、情報処理装置１０１は、ステップＳ３０１で取得した中点から走査をスタートし、最初に見つかった交点を走査のゴール点である基準点に決定する。具体的には、まず中点テーブル８３０より取得した中点の判別フラグ８３７が「０」である場合、つまり端点と交点の中点である場合には、図１６の＜ステップ１＞に示すように、取得した中点から端点とは反対の方向、つまりは交点の座標（中点テーブル８３０の要素ＩＤａ８３５、要素ＩＤｂ８３６を交点テーブル８２０と突き合わせた結果の座標値）に向かって走査を開始する。そして、最初に遭遇した交点を基準点に決定し、基準点テーブル８４０のＮｏ８４１、要素ＩＤ８４２、Ｘ座標８４３、Ｙ座標８４４に格納する。
【００７７】
ステップＳ３０３では、情報処理装置１０１は、基準点まで走査してきた線要素から反時計回り（左回り）で次の走査対象である線要素を探し、該当する線要素に走査する。次に走査すべき線要素の候補がいくつか存在する場合は、走査してきた方向から左方向へ走査の進路をとる。この左方向というのは、走査してきた線要素から左回りで角度を測定したときに最も角度が大きくなる線要素を左方向の線要素とする。走査候補が円弧の場合は交点からの接線に基づいて角度を判断する。また、２つの円弧に正接な接線と、走査してきた直線とが一致してしまう場合がある。こうなると、２つの円弧の接線と走査してきた直線との角度は同じであるので判断ができない。よって、この場合には、円弧の向きが左回りか右回りかの情報を２次元ＣＡＤアプリケーションより取得することでより左方向に向かう線要素を選択する。
【００７８】
図１６の＜ステップ１＞を例にとって説明すると、ステップＳ３０１で取得された中点から走査をスタートし、最初の交点である基準点に到着する。ここは十字路となっているが、走査してきた線要素から左回りで最も角度が大きくなる線要素は上方向に伸びる線要素であるので、この線要素に沿って走査を再開する。
【００７９】
ステップＳ３０４では、情報処理装置１０１は、到達した点が交点なのか、端点なのか、基準点なのかを判定する。まず到達した点の座標値が基準点かどうかを基準点テーブル８４０に登録されている座標値を参照して判定する。次に基準点でなかった場合に、到達した点から次に走査すべき線要素が存在するかどうかによって、交点なのか端点なのかを判定する。基準点であると判定された場合には、ステップＳ３０６に処理を進め、交点であると判定された場合には、ステップＳ３０３に処理を戻し、端点であると判定された場合には、ステップＳ３０５に処理を進める。
【００８０】
尚、交点だと判定した場合、閉領域を構成する要素として辿ってきた線要素を図８の閉領域構成要素テーブル８８０のＮｏ８８１、要素ＩＤ８８２、要素タイプ８８３に格納し、次に走査すべき線要素を走査対象要素テーブル８９０のＮｏ８９１、要素ＩＤ８９２、要素タイプ８９３、交点Ｎｏ８９４に格納する。この走査対象要素テーブル８９０の交点Ｎｏ８９４には、同じ交点から延びる走査対象の線要素に対しては同じ番号を振ることで、グルーピングしておく。走査対象要素テーブル８９０は、端点で行き止まりになった場合に１つ前の交点に戻って、走査を再開するためのテーブルである。よって、再開する候補となる線要素は１つの交点ごとにグルーピングしておく必要がある。
【００８１】
閉領域構成要素テーブル８８０（図８参照）は、一意に割り振られるＮｏ８８１、閉領域を構成する線要素の要素ＩＤ８０２を格納する要素ＩＤ８８２、当該線要素が直線なのか、円弧なのかを示す要素タイプ８８３から構成される。
【００８２】
また、走査対象要素テーブル８９０（図８参照）は、一意に割り振られるＮｏ８９１、走査対象候補である線要素の要素ＩＤ８０２を格納する要素ＩＤ８９２、当該線要素が直線なのか、円弧なのかを示す要素タイプ８９３、走査対象の線要素を抽出した交点ごとに割り振られる交点Ｎｏ８９４、当該交点のＸ座標とＹ座標を示す交点Ｘ座標８９５、交点Ｙ座標８９６から構成される。
【００８３】
ステップＳ３０５では、情報処理装置１０１は、端点であると判定されたので、別の走査線があるか否かを判定する。具体的には、走査対象要素テーブル８９０を参照して、当該端点に到達する前に格納された交点から伸びる他の線要素がないか判定する。要は、走査してきた線要素を交点まで逆走して、そこから更に走査を再開できる線要素があるか否かを判定するということである。別の走査線があると判定された場合には、ステップＳ３０３に処理を戻し、そうでない場合には、ステップＳ３１０に処理を進める。
【００８４】
このようにステップＳ３０３乃至ステップＳ３０５を繰り返して、ゴールである基準点まで走査を行う。基準点まで到達すれば、１つの閉領域が完成する。尚、本実施例ではこのような走査方法で閉領域を特定しているが、これに限らない。
【００８５】
図１６の＜ステップ２＞を例にとって説明する。基準点から次の交点に到達すると、ステップＳ３０３における判定の結果、走査の進行方向を上方向にとる。直進方向に走査が進むと今回の場合は端点に到達する。端点は次に走査を進める方向が存在しないため、処理をステップＳ３０５に進め、１つ前の交点から進行可能な他の線要素があるかどうか判定する。走査対象要素テーブル８９０には、当該１つ前の交点から進行可能な線要素の情報が格納されているので、当該交点に向かって走査する。
【００８６】
次に図１６の＜ステップ３＞に説明を移す。交点に到達したところで処理をステップＳ３０３に戻し、次の走査要素を前述した条件に基づいて判断し、次の走査方向に走査する。＜ステップ３＞に示すように、円弧の部分を進むことになる。そして、次に走査するべき線要素がなくなるか、または基準点の交点に戻ってくるまで処理を繰り返すと、本実施例におけるモデルＡでは、図１６の＜ステップ４＞に示すような閉領域を抽出する。
【００８７】
次に、図１７を用いて、交点と交点の中点をスタート点とする場合を例にとって説明を行う。ステップＳ３０２では、中点テーブル８３０より取得した中点が交点と交点の中点だった場合、図１７の＜ステップ１＞のように取得した中点から双方向へそれぞれ走査を開始し、双方向それぞれについて最初の交点を基準点に決定する。その後の処理は前述した同様の処理を繰り返し、閉領域を確定する。こちらの閉領域は、端点と交点の中点をスタート点とした場合とは異なり、図１７の＜ステップ２＞に示すような閉領域が抽出される。つまり、スタート点が異なると抽出される閉領域も異なることになる。
【００８８】
ステップＳ３０６では、情報処理装置１０１は、ステップＳ３０４の処理にて、基準点に戻ってきたと判定すると、２次元ＣＡＤアプリケーションにより、図８の閉領域構成要素テーブル８８０に格納された線要素に基づいて構成される閉領域の面を作成する。
【００８９】
ステップＳ３０７では、情報処理装置１０１は、ステップＳ３０６で作成された閉領域の面に基づいて、２次元ＣＡＤアプリケーションの機能により面積を算出する（面積計算手段）。
【００９０】
ステップＳ３０８では、情報処理装置１０１は、ステップＳ３０７で算出された閉領域の面積が既に面積テーブル８５０に格納済みであるか否かを判定する。つまり、二重登録しないための処理である。面積テーブル８５０に格納済みであると判定された場合には、ステップＳ３１０に処理を進め、そうでない場合には、ステップＳ３０９に処理を進める。
【００９１】
ステップＳ３０９では、情報処理装置１０１は、面積テーブル８５０のＮｏ８５１と要素ＩＤ８５２と面積８５３に作成した閉領域の面積を格納する。
【００９２】
ステップＳ３１０では、情報処理装置１０１は、未処理の他の中点（スタート点）があるか否かを判定する。本実施例におけるモデルＡでは、端点と交点の中点が２つ、交点と交点の中点が１つ存在するため、これらすべてについてステップＳ３０１乃至ステップＳ３０９の処理を行う。未処理の他の中点があると判定された場合には、ステップＳ３０１に処理を戻して新しい中点を取得し、すべて処理したと判定された場合には、閉領域抽出処理を終了し、呼び出し元に処理を戻す。
【００９３】
次に、最大閉領域特定処理について図７を用いて説明する。尚、Ｓ４０１乃至Ｓ４０７の各ステップは情報処理装置１０１おけるＣＰＵ２０１の制御の下、処理が行われる。
【００９４】
尚、この処理を情報処理装置１０１に実行させるためのプログラムは、情報処理装置１０１にインストールされている２次元ＣＡＤアプリケーションの一部、若しくはアドオンプログラムとして用意されていてもよいし、２次元ＣＡＤアプリケーションとは別にインストールされたプログラムとして用意されていてもよい。
【００９５】
ステップＳ４０１では、情報処理装置１０１は、ステップＳ１１２で端点テーブル８１０に格納された端点を取得する。
【００９６】
ステップＳ４０２では、情報処理装置１０１は、ステップＳ１１２で格納された基準点を基準点テーブル８４０から取得する。
【００９７】
ステップＳ４０３乃至ステップＳ４０７は、前述したステップＳ３０３乃至ステップＳ３０７と同様であるので説明を省略する。複数の閉領域が存在する可能性のある対象閉領域特定処理とは異なり、最大となる閉領域のみを算出するため、図７のステップＳ４０１からステップＳ４０７までの処理フローには複数の閉領域をテーブルへ登録するフローは存在しない。ステップＳ４０７にて最大閉領域の面積が確定するか、若しくは走査の途中にて閉領域が確定されなかった場合に最大閉領域確定処理を終了する。
【００９８】
以上、説明したように、本実施形態によれば、２次元図面上で特定したい閉領域をまたぐ線要素を指定することで、指定された線要素が含まれる閉領域を特定することが可能となるので、効率的にユーザが望む閉領域を特定できる。
【００９９】
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、１つの機器からなる装置に適用してもよい。
【０１００】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【０１０１】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１０２】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【０１０３】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【０１０４】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【０１０５】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１０６】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１０７】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１０８】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【０１０９】
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１１０】
１００  ＣＡＤシステム
１０１  情報処理装置
１０２  サーバ
１０３  ネットワーク
２０１  ＣＰＵ
２０２  ＲＡＭ
２０３  ＲＯＭ
２０４  システムバス
２０５  入力コントローラ
２０６  ビデオコントローラ
２０７  メモリコントローラ
２０８  通信Ｉ／Ｆ（インターフェース）コントローラ
２０９  入力装置
２１０  ディスプレイ装置
２１１  外部メモリ
【図１】
0005982812.tif 000002
【図２】
0005982812.tif 000003
【図３】
0005982812.tif 000004
【図４】
0005982812.tif 000005
【図５】
0005982812.tif 000006
【図６】
0005982812.tif 000007
【図７】
0005982812.tif 000008
【図８】
0005982812.tif 000009
【図９】
0005982812.tif 000010
【図１０】
0005982812.tif 000011
【図１１】
0005982812.tif 000012
【図１２】
0005982812.tif 000013
【図１３】
0005982812.tif 000014
【図１４】
0005982812.tif 000015
【図１５】
0005982812.tif 000016
【図１６】
0005982812.tif 000017
【図１７】
0005982812.tif 000018