(57)【要約】【課題】  図面の内容を付加的に示すオブジェクトの重なりを容易に回避すること。【解決するための手段】  図面の内容を付加的に示すオブジェクトの位置に基づき、オブジェクトの重なりを特定し、特定された重なりのあるオブジェクトであって、前記オブジェクトに係る複数の属性に基づき決定された優先度の低いオブジェクトを移動するよう制御する。  また、図面の内容を付加的に示すオブジェクトで表示する値の表示領域を用いて、他のオブジェクトの表示領域と重なるか否かを判定し、図面の内容を付加的に示すオブジェクトで表示する値の表示領域を用いて、他のオブジェクトの引き出し線と重なるか否かを判定し、重なり結果に従って、前記オブジェクトを移動するように制御する。【選択図】図３
2019008667.tif 000002
【特許請求の範囲】
【請求項１】
図面の内容を付加的に示すオブジェクトを表示する情報処理装置のプログラムであって、
前記情報処理装置を、
前記オブジェクトの位置に基づき、オブジェクトの重なりを特定する特定手段と、
前記特定手段で特定された重なりのあるオブジェクトであって、前記オブジェクトに係る複数の属性に基づき決定された優先度の低いオブジェクトを移動するよう制御する移動制御手段
として機能させるためのプログラム。
【請求項２】
前記移動制御手段により制御したオブジェクトを識別表示する識別表示手段
として機能させることを特徴とする請求項１に記載のプログラム。
【請求項３】
前記識別表示手段で表示したオブジェクトの識別表示を解除する解除手段
として機能させることを特徴とする請求項２に記載のプログラム。
【請求項４】
前記複数の属性による重み付けに基づき、各オブジェクトの優先度を決定する優先度決定手段
として機能させ、
前記移動制御手段は、前記優先度決定手段により決定した優先度に従って、優先度の低いオブジェクトを移動するよう制御することを特徴とする請求項１乃至３のいずれか１項に記載のプログラム。
【請求項５】
図面の位置を基に設定された領域を用いて、前記オブジェクトの位置する領域を決定する領域決定手段
として機能させ、
前記複数の属性による重み付けは、前記領域決定手段で決定した領域に係る情報と、オブジェクトの種別に係る情報に基づき決定され、
前記優先度決定手段は、領域に係る情報と、オブジェクトの種別に係る情報に基づいて決定された重み付けにより、各オブジェクトの優先度を決定することを特徴とする請求項４に記載のプログラム。
【請求項６】
前記複数の属性による重み付けは、更にオブジェクトで表示する値に基づき決定され、
前記優先度決定手段は、領域に係る情報と、オブジェクトの種別に係る情報と、オブジェクトで表示する値とに基づいて決定された重み付けにより、各オブジェクトの優先度を決定することを特徴とする請求項５に記載のプログラム。
【請求項７】
複数の種別のうちいずれかの種別を有する図面の内容を付加的に示すオブジェクトを複数表示する情報処理装置のプログラムであって、
前記情報処理装置を、
前記オブジェクトで表示する値の表示領域を用いて、他のオブジェクトの表示領域と重なるか否かを判定する第１の重なり判定手段と、
前記オブジェクトで表示する値の表示領域を用いて、他のオブジェクトの引き出し線と重なるか否かを判定する第２の重なり判定手段と、
前記第１の重なり判定手段と前記第２の重なり判定手段との重なり結果に従って、前記オブジェクトを移動するように制御する移動制御手段
として機能させるためのプログラム。
【請求項８】
図面の内容を付加的に示すオブジェクトを表示する情報処理装置であって、
前記オブジェクトの位置に基づき、オブジェクトの重なりを特定する特定手段と、
前記特定手段で特定された重なりのあるオブジェクトであって、前記オブジェクトに係る複数の属性に基づき決定された優先度の低いオブジェクトを移動するよう制御する移動制御手段と
を備えることを特徴とする情報処理装置。
【請求項９】
複数の種別のうちいずれかの種別を有する図面の内容を付加的に示すオブジェクトを、複数表示する情報処理装置であって、
前記オブジェクトで表示する値の表示領域を用いて、他のオブジェクトの表示領域と重なるか否かを判定する第１の重なり判定手段と、
前記オブジェクトで表示する値の表示領域を用いて、他のオブジェクトの引き出し線と重なるか否かを判定する第２の重なり判定手段と、
前記第１の重なり判定手段と前記第２の重なり判定手段との重なり結果に従って、前記オブジェクトを移動するように制御する移動制御手段と
を備えることを特徴とする情報処理装置。
【請求項１０】
図面の内容を付加的に示すオブジェクトを表示する情報処理装置の処理方法であって、
前記オブジェクトの位置に基づき、オブジェクトの重なりを特定する特定ステップと、
前記特定ステップで特定された重なりのあるオブジェクトであって、前記オブジェクトに係る複数の属性に基づき決定された優先度の低いオブジェクトを移動するよう制御する移動制御ステップと
を含むことを特徴とする処理方法。
【請求項１１】
複数の種別のうちいずれかの種別を有する図面の内容を付加的に示すオブジェクトを、複数表示する情報処理装置の処理方法であって、
前記オブジェクトで表示する値の表示領域を用いて、他のオブジェクトの表示領域と重なるか否かを判定する第１の重なり判定ステップと、
前記オブジェクトで表示する値の表示領域を用いて、他のオブジェクトの引き出し線と重なるか否かを判定する第２の重なり判定ステップと、
前記第１の重なり判定ステップと前記第２の重なり判定ステップとの重なり結果に従って、前記オブジェクトを移動するように制御する移動制御ステップと
を含むことを特徴とする処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
ＣＡＤのオブジェクトの移動制御に関するプログラム、情報処理装置とその処理方法。
【背景技術】
【０００２】
従来から、ＣＡＤにおいて二次元の図面上で寸法が重ならないように制御する技術が開示されている（例えば、特許文献１）。
【０００３】
この技術は、図形の端線を基準線とし、基準線を開始線として、図形の端点を図形の外形線から識別し、寸法を作成する。また、寸法値を表す数字フォントのサイズに応じて寸法線の配置位置を調整している。特に同一の種別（水平寸法など）における調整を行っている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１８５１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、図面においては、寸法線だけでなく、引き出し線を用いて図面に注記（アノテートともいう）を付すことが多くある。
【０００６】
この注記は、ユーザがコマンドやテンプレートを使って、引き出し線とテキストを付すことがある。例えば、テンプレート（穴と引き出し線とテキストを生成するコマンドをまとめたもの）を用いた場合、単純に図面上に配置されてしまうため、他の注記（アノテート）と重なりが発生してしまう。仮に、初めは重なっていない場合でも、ユーザが微調整をする際に、他の注記と重なりがでてきてしまうことが発生してしまうという問題があった。例えば、３次元モデルを変更した場合に対応する２次元図面上も更新がされ、アノテートに重なりができてしまうという問題があった
従って、最終的に重ならないようにユーザが手作業で修正する必要があり、修正に手間がかかるという問題があった。
【０００７】
特に、ＣＡＤのアプリケーションでは、寸法をつける際には他の寸法と重ならないように制御して表示する機能はあるが、ユーザが任意に実行したＣＡＤアプリケーションのコマンドにより付された注記については適応されないという問題があった。
【０００８】
そこで、本発明の目的は、図面の内容を付加的に示すオブジェクトの重なりを容易に回避する仕組みを提供することである。
【課題を解決するための手段】
【０００９】
本発明の目的を達成するための図面の内容を付加的に示すオブジェクトを表示する情報処理装置であって、前記オブジェクトの位置に基づき、オブジェクトの重なりを特定する特定手段と、前記特定手段で特定された重なりのあるオブジェクトであって、前記オブジェクトに係る複数の属性に基づき決定された優先度の低いオブジェクトを移動するよう制御する移動制御手段とを備えることを特徴とする。
【００１０】
また、複数の種別のうちいずれかの種別を有する図面の内容を付加的に示すオブジェクトを、複数表示する情報処理装置であって、前記オブジェクトで表示する値の表示領域を用いて、他のオブジェクトの表示領域と重なるか否かを判定する第１の重なり判定手段と、前記オブジェクトで表示する値の表示領域を用いて、他のオブジェクトの引き出し線と重なるか否かを判定する第２の重なり判定手段と、前記第１の重なり判定手段と前記第２の重なり判定手段との重なり結果に従って、前記オブジェクトを移動するように制御する移動制御手段とを備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、図面の内容を付加的に示すオブジェクトの重なりを容易に回避することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態におけるＣＡＤシステム１００の一例を示す構成図である。
【図２】情報処理装置１０１及びサーバ１０２のハードウェア構成の一例を示す構成図である。
【図３】情報処理装置１０１の機能構成の一例を示す構成図である。
【図４】重なり制御処理における全体の処理を示すフローチャートである。
【図５】アノテートの情報取得処理の詳細を示すフローチャートである。
【図６】アノテート１の情報を取得する際の概念を示す図である。
【図７】重なり制御プログラムが管理するメモリ上の記憶領域（アノテート情報記憶領域）の一例を示す図である。
【図８】すべてのアノテートの種別、座標値を記憶したアノテート情報記憶領域の一例を示す図である。
【図９】アノテートの重み付け処理の詳細を示すフローチャートである。
【図１０】判定領域の設定の一例を示すイメージ図である。
【図１１】各判定領域におけるアノテートの位置を示すイメージ図である。
【図１２Ａ】重み付けの設定テーブルの一例を示す図である。
【図１２Ｂ】重み付けしたアノテート情報記憶領域の一例を示す図である。
【図１３】アノテートの重なり回避処理の詳細を示すフローチャートである。
【図１４】矩形領域同士の重なりを示す概念図である。
【図１５】矩形領域と引き出し線の重なりを示す概念図である。
【図１６】アノテートの移動処理の概略を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、本発明の実施の形態の一例について説明する。
【００１４】
図１は、本発明のＣＡＤシステム１００のシステム構成の一例を示す図である。本発明のＣＡＤシステム１００は、情報処理装置１０１、サーバ１０２が設置されており、それら装置はＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のネットワーク１０３を介して相互にデータ通信可能に接続されている。図１のネットワーク１０３上に接続される各種端末あるいはサーバの構成は一例であり、用途や目的に応じて様々な構成例があることは言うまでもない。
【００１５】
情報処理装置１０１は、オペレーティングシステム上でＣＡＤアプリケーションと重なり制御プログラムを実行する装置である。ＣＡＤアプリケーションと重なり制御プログラムは後述する図２のＲＯＭ２０２または外部メモリ２１１に記憶されており、ユーザからの指示に応じて、ＣＰＵ２０１がＲＡＭ２０３に読み出して各種動作を行う。すなわち、２次元図面（設計図）を表示するアプリケーションとオペレーティングシステムを有する情報処理装置の一例を示す。
【００１６】
オペレーティングシステムは、情報処理装置１０１を動作させるための基本的なアプリケーションである。オペレーティングシステム上でＣＡＤアプリケーションや重なり制御プログラム、その他各種プログラムを動作させることができる。
【００１７】
ＣＡＤアプリケーションは、ユーザからの操作に応じて、設計物の立体形状を示す３次元モデルの作成や構築、また３次元モデルに基づく２次元図面の作成を行う。
【００１８】
重なり制御プログラムは、表示された２次元図面に配置されている注記（アノテート）情報をＣＡＤアプリケーションから取得する。この取得には、重なり制御プログラムがＣＡＤアプリケーションのＡＰＩを実行して取得する。取得した注記（アノテート）情報をもとに、注記（アノテート）の移動する位置を決定し、ＣＡＤアプリケーションのＡＰＩを用いて、注記（アノテート）の重なりがなくなるまで移動させる。
【００１９】
このように、重なり制御プログラムは、ＣＡＤアプリケーションに備えられた各種ＡＰＩを用いて指示を出力することが可能なプログラムである。重なり制御プログラムは、ＣＡＤアプリケーションのアドオン（アドイン）であることが望ましい。
【００２０】
サーバ１０２は、情報処理装置１０１で作成された各種データ（３次元モデルや２次元図面）を記憶管理する装置である。サーバ１０２にはファイル管理アプリケーションが動作している。
【００２１】
尚、情報処理装置１０１が、サーバ１０２の構成を含んでもよいし、サーバ１０２が情報処理装置１０１の構成を含んでもよい。また、本実施形態においては、情報処理装置１０１に各種データが記憶され、ユーザからの操作によって動作させる形態に基づいて説明を行う。
【００２２】
図２は、本発明の実施形態における各種端末のハードウェア構成を示す図である。
【００２３】
ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。
【００２４】
また、ＲＯＭ２０２あるいは外部メモリ２１１（記憶）には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  ＯｕｔｐｕｔＳｙｓｔｅｍ）やオペレーティングシステムプログラム（以下、ＯＳ）や、各サーバ或いは各ＰＣの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。
【００２５】
ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＡＭ２０３にロードして、プログラムを実行することで各種動作を実現するものである。
【００２６】
また、入力コントローラ（入力Ｃ）２０５は、キーボード２０９や不図示のマウス等のポインティングデバイスからの入力を制御する。
【００２７】
ビデオコントローラ（ＶＣ）２０６は、ＣＲＴディスプレイ（ＣＲＴ）２１０等の表示器への表示を制御する。表示器はＣＲＴだけでなく、液晶ディスプレイでも構わない。これらは必要に応じて管理者が使用するものである。
【００２８】
メモリコントローラ（ＭＣ）２０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）やフロッピーディスク（登録商標  ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ２１１へのアクセスを制御する。
【００２９】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）２０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。
【００３０】
尚、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ＣＲＴ２１０上での表示を可能としている。また、ＣＰＵ２０１は、ＣＲＴ２１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００３１】
本発明の情報処理装置１０１が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０３にロードされることによりＣＰＵ２０１によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ２１１に格納されている。
【００３２】
次に、情報処理装置１０１の機能部を示す機能構成図について、図３を用いて説明する。
【００３３】
情報処理装置１０１は、図面の内容を付加的に示すオブジェクトを表示する情報処理装置であり、重なり制御プログラム３１０により情報処理装置の各手段として機能させることができる。
【００３４】
特定部３０１は、前記オブジェクトの位置に基づき、オブジェクトの重なりを特定する機能部である。
【００３５】
移動制御部３０２は、前記特定部で特定された重なりのあるオブジェクトであって、前記オブジェクトに係る複数の属性に基づき決定された優先度の低いオブジェクトを移動するよう制御する機能部である。
【００３６】
識別表示部３０３は、前記移動制御部により制御したオブジェクトを識別表示する機能部である。
【００３７】
解除部３０４は、前記識別表示部で表示したオブジェクトの識別表示を解除する機能部である。
【００３８】
優先度決定部３０５は、前記複数の属性による重み付けに基づき、各オブジェクトの優先度を決定する機能部である。
【００３９】
また、移動制御部３０２は、前記優先度決定部により決定した優先度に従って、優先度の低いオブジェクトを移動するよう制御する機能部である。
【００４０】
領域決定部３０６は、図面の位置を基に設定された領域を用いて、前記オブジェクトの位置する領域を決定する機能部である。
【００４１】
前記複数の属性による重み付けは、前記領域決定部で決定した領域に係る情報と、オブジェクトの種別に係る情報に基づき決定される。
【００４２】
また、優先度決定部３０５は、領域に係る情報と、オブジェクトの種別に係る情報に基づいて決定された重み付けにより、各オブジェクトの優先度を決定する機能部である。
【００４３】
前記複数の属性による重み付けは、更にオブジェクトで表示する値に基づき決定される。
【００４４】
また、優先度決定部３０５は、領域に係る情報と、オブジェクトの種別に係る情報と、オブジェクトで表示する値とに基づいて決定された重み付けにより、各オブジェクトの優先度を決定する機能部である。
【００４５】
また、情報処理装置１０１は、複数の種別のうちいずれかの種別を有する図面の内容を付加的に示すオブジェクトを複数表示する情報処理装置と言い換えることができる。この情報処理装置として動作する場合は以下の機能部を有する。
【００４６】
第１の重なり判定部３０７は、前記オブジェクトで表示する値の表示領域を用いて、他のオブジェクトの表示領域と重なるか否かを判定する機能部である。
【００４７】
第２の重なり判定部３０８は、前記オブジェクトで表示する値の表示領域を用いて、他のオブジェクトの引き出し線と重なるか否かを判定する機能部である。
【００４８】
また、移動制御部３０２は、前記第１の重なり判定部と前記第２の重なり判定部による重なり結果に従って、前記オブジェクトを移動するように制御する機能部である。
【００４９】
次に、図４〜図１６を用いて、本実施形態における詳細な処理について説明する。
【００５０】
図４は、重なり制御処理における全体の処理を示すフローチャートである。
【００５１】
なお、各ステップの処理は、各装置のＣＰＵ２０１が実行する。
【００５２】
ステップＳ４０１では、サーバ１０２又は、情報処理装置に格納されている２次元図面をＣＡＤアプリケーションが表示する。２次元図面は、３次元モデルから生成した三面図（正面図、上面図、側面図を含む図）を用いるものとする。この三面図は、正面図、上面図、側面図がそれぞれ別のビューで管理されているものとする。
【００５３】
ステップＳ４０２では、重なり制御プログラムを起動する。重なり制御プログラムを起動することで重なり回避処理が実行される。なお、重なり制御プログラムを起動し、ユーザからの所定の条件や実行ボタンの押下後に重なり回避処理が実行される構成であってもよいことは言うまでもない。
【００５４】
ステップＳ４０３では、最初のビューを取得する。例えば、正面図のビュー情報（ビューの識別情報）を取得する。このビュー情報はＣＡＤアプリケーションのＡＰＩを用いて取得することが可能である。
【００５５】
ステップＳ４０４では、取得したビュー情報をもとにアノテート情報を取得する。アノテートとは図面上に付されている引き出し線、注記、注釈、寸法のオブジェクトである。アノテート情報の取得には、ＣＡＤアプリケーションのＡＰＩを用いて取得することが可能である。なお、ステップＳ４０４の処理については、図５を用いて後述する。
【００５６】
ステップＳ４０５では、ステップＳ４０４で取得したアノテート情報に対して、アノテートの位置や種別や値の情報を基に重み付けを実施する。ステップＳ４０５の処理については、図９を用いて後述する。
【００５７】
ステップＳ４０６では、重なっているアノテートを特定して、アノテートの重み付けに従ってアノテートを移動させる（重なり回避処理）。ステップＳ４０６の処理については、図１３を用いて後述する。
【００５８】
ステップＳ４０７では、現在処理しているビューが最後のビューか否かを判定する。最後のビューである場合には、ステップＳ４０９へ処理を移す。最後のビューでない場合（他のビューがある場合）には、ステップＳ４０８へ処理を移す。
【００５９】
ステップＳ４０８では、処理していない次のビューを取得する。ビューの情報はステップＳ４０３と同様に取得することができる。
【００６０】
ステップＳ４０９では、移動したアノテートの識別表示を行う。具体的には、アノテート情報記憶領域を用いて、移動したレコードについて移動フラグを付し、この移動フラグのあるアノテートについて任意に設定した色「例えば赤」で表示するように、ＣＡＤアプリケーションのＡＰＩを用いて実行し、図面上で変更箇所がわかるように表示する。
【００６１】
ステップＳ４０９は、移動制御されたオブジェクトを識別表示する処理と言い換えることが可能である。
【００６２】
ステップＳ４１０では、重なり制御プログラムのダイアログで重なり回避処理の完了指示をするとステップＳ４０９で識別表示したアノテートを基の色に戻すように制御する。識別表示ＯＦＦ（識別表示解除）して、最終の２次元図面を確定する。
【００６３】
ステップＳ４１０は、識別表示したオブジェクトの識別表示を解除する処理と言い換えることが可能である。
【００６４】
次にステップＳ４０４の処理を、図５のフローチャート、図６、図７、図８の例を用いて説明する。図５は、アノテートの情報取得処理の詳細を示すフローチャートである。
【００６５】
ステップＳ５０１では、処理対象のビュー（図６の６０１）の最初の処理対象のアノテートを特定する情報（例えば、ターゲットとなるアノテートのハンドル）を取得する。アノテートを特定する情報はＣＡＤアプリケーションのＡＰＩを利用することで取得することができる。なお、本実施形態では、処理対象のアノテートを特定する情報を取得して、その後にＣＡＤアプリケーションのＡＰＩを用いて種別等を取得する構成としたが、アノテート情報を構造体として一括して取得する構成であってもよい。
【００６６】
図６の６０２を例にすると、アノテート１を取得する。図６はアノテート１の情報を取得する際の概念を示す図である。また、図７は、図６に対応する記憶領域を示す図である。
【００６７】
ステップＳ５０２では、取得したアノテートを特定する情報を用いて、処理対象のアノテートの種別を取得する。この種別の取得もＣＡＤアプリケーションのＡＰＩを用いて取得する。図６の６０２のアノテート１では「水平」の種別が取得される。この取得された種別を図７の重なり制御プログラムが管理するメモリ上の記憶領域（アノテート情報記憶領域）７０１に記憶する。種別を記憶した例が７０２である。不図示であるがアノテートの識別情報（アノテートＩＤ）なども合わせて管理されるものとする。
【００６８】
ステップＳ５０３では、取得したアノテートを特定する情報を用いて、アノテートのテキスト（値）の座標を取得する。この座標の取得もＣＡＤアプリケーションのＡＰＩを用いて取得する。具体的にはテキストを囲う矩形の左下と右上の座標値を取得し、記憶する。座標を記憶した例が７０３である。
【００６９】
ステップＳ５０４では、取得したアノテートを特定する情報を用いて、最初の処理対象の引き出し線を特定する情報（例えば、ターゲットとなる引き出し線のハンドル）を取得する。図６の６０４の引き出し線１が処理対象の引き出し線となる。引き出し線を特定する情報はＣＡＤアプリケーションのＡＰＩを利用することで取得することができる。アノテート１の場合、引き出し線が３つあるため、３つの引き出し線に対して処理が繰り返される。
【００７０】
なお、引き出し線についても、複数の引き出し線の情報をまとめた構造体で一括して取得する構成であってもよい。
【００７１】
ステップＳ５０５では、引き出し線を特定する情報を用いて、対象の引き出し線の始点と終点の座標を取得し、記憶する。記憶した例が７０４である。引き出し線の始点と終点の座標はＣＡＤアプリケーションのＡＰＩを利用することで取得することができる。
【００７２】
ステップＳ５０６では、最後の引き出し線か否かを判定する。最後の引き出し線の場合には、ステップＳ５０８へ処理を移す。最後の引き出し線でない場合（残りの引き出し線がある場合）には、ステップＳ５０７へ処理を移す。
【００７３】
ステップＳ５０７では、取得したアノテートを特定する情報を用いて、次の引き出し線の情報を取得し、ステップＳ５０５の処理を繰り返す。図６の６０５と６０６の引き出し線２と引き出し線３が処理対象の引き出し線となる。引き出し線の始点と終点の座標を繰り返し取得し、記憶した例が、図７の７０５と７０６である。７０６はすべての引き出し線の始点と終点の座標を記憶した場合の例である。
【００７４】
ステップＳ５０８では、最後のアノテートか否かを判定する。最後のアノテートの場合には、処理を終了する。最後のアノテートでない場合（他のアノテートがある場合）には、ステップＳ５０９に処理を移す。
【００７５】
ステップＳ５０９では、次のアノテートを特定する情報を取得し、各アノテートの種別、座標値を取得して、記憶する。すべてのアノテートの種別、座標値を記憶した例（アノテート情報記憶領域）が、図８の８０１である。また、８０１は、８０２の図面のアノテート（レコードＮｏ  １〜８）の情報が８０１に記憶されている例で、図５の処理の完了時の例である。
【００７６】
なお、各レコードは、ＣＡＤアプリケーションがアンリしているアノテートの識別情報（アノテートＩＤ）と対応付いて管理されているものとする。
【００７７】
次にステップＳ４０５の処理を、図９のフローチャート、図１０、図１１、図１２Ａ、図１２Ｂの例を用いて説明する。図９は、アノテートの重み付け処理の詳細を示すフローチャートである。
【００７８】
ステップＳ９０１では、対象のビューのモデルの表示領域を取得する。図１１の例を参照すると、「５」の領域の座標が取得できる。座標は、ＣＡＤアプリケーションのＡＰＩを用いて取得することができる。本実施形態では、各ビューに対応する３次元モデルを保持する構成となっており、３次元モデルから高さ、幅、奥行きを特定することで現在表示している図面の領域（囲う枠）を特定することができる。なお、３次元モデルから特定せずに、処理対象のビューの２次元図面から直接領域を特定する構成であってもよい。
【００７９】
ステップＳ９０２では、アノテートを移動させる際に用いる判定領域を設定する。具体的には、図１０を参照すると、ＣＡＤアプリケーションから「５」の領域（モデルを囲う矩形領域）の四隅の座標が取得されるため、四隅から延長線を引いた９個の領域を座標領域として定義する。各領域の優先順位は以下となる「５＞８＞４＞６＞２＞７＞９＞１＞３」。「５」の優先度が一番高いのは、重なっているアノテートを移動させる際に、モデルに重ならないように移動することが望ましいためである。この優先順位は、後述のステップＳ９０４で用いる。
【００８０】
以降は、各アノテートの優先度を決定するために、各要素の設定を行う処理である。ここで要素について説明する。図１２Ａの１２００のように、第１要素は［領域の重み付け］。第２要素は［寸法種別の重み付け］、第３要素は［アノテートの値による重み付け］となる。また、第２要素の［寸法種別の重み付け］には、重み付けテーブル１２１０を用いて決定する。
【００８１】
ステップＳ９０３では、記憶領域に記憶したアノテート（例えば、レコードＮｏ．１）の情報を取得する。
【００８２】
ステップＳ９０４では、第１要素の設定を行う。具体的には、処理対象のアノテートの２点座標（座標点１＆２）を用いて判定領域のどの領域に位置するかを決定する（図１０、図１１を参照）。
【００８３】
ステップＳ９０４は、図面の位置を基に設定された領域を用いて、オブジェクトの位置する領域を決定する処理と言い換えることが可能である。
【００８４】
図１１は、各領域におけるアノテートの位置を示す図である。なお、図１１の１１０１の例のように、座標点が複数の領域にまたがっている場合は、「５」にまたがる場合には「５」と設定する。一方、１１０２の例のように座標点が複数の領域にまたがっている場合は、領域の序列に従って最も低い序列の領域を位置する領域として設定する。すなわち、「５」の領域にまたがる場合には「５」、「５」以外の領域にまたがる場合には、一番序列の低い領域を設定する。
【００８５】
なお、領域の設定は、これに限ることなく、重なっている領域面積がより広いほうを設定する領域として設定してもよい。
【００８６】
ステップＳ９０５では、第２要素の設定を行う。具体的には、重み付けテーブル１２１０を用いて、処理対象のアノテートの種別に対応する重み付けを決定する。
【００８７】
ステップＳ９０６では、第３要素の設定を行う。具体的には、アノテートの表示内容（寸法値等）に基づいて設定する。例えば、処理対象のアノテートが寸法だった場合、値に−１を乗算した値を設定する。また、処理対象のアノテートがテキスト（種別：注記）だった場合、そのテキスト文字数を設定する（例えば、図１２Ｂの１２２０のレコードＮｏ．８）。
【００８８】
なお、本実施形態においては、水平寸法や累進寸法は値の小さいアノテートが重い。直径寸法や角度寸法は値の大きいアノテートが重い。また、注記はテキスト文字数の多いアノテートが重く優先度が高いものとなる。
【００８９】
また、第１の要素と第２の要素を用いて優先度を決定して移動することで一部は重なり回避することも可能であるが、第３の要素を用いて優先度を決定して重なり回避することでより容易に効率的に重なり回避することができる。
【００９０】
すなわち、前記複数の属性による重み付けは、前記領域決定により決定した領域に係る情報と、オブジェクトの種別に係る情報に基づき決定される。そして、複数の属性による重み付けは、更にオブジェクトで表示する値に基づき決定される。
【００９１】
ステップＳ９０７では、最後のアノテートか否かを判定する。最後のアノテートの場合には、ステップＳ９０９に処理を移す。最後のアノテートでない場合（他のアノテートがある場合）には、ステップＳ９０８に処理を移す。
【００９２】
ステップＳ９０８では、記憶領域に記憶した次のアノテート（例えば、レコードＮｏ．２以降）の情報を取得して、重み付けの処理（要素設定）を繰り返す。
【００９３】
すべてのアノテートの重み付けの処理（要素設定）が終了した際の例が、図１２Ｂの１２２０で、１２２１が重み付けした例である。なお、１２２０は重み付けによるソート前の例である。
【００９４】
ステップＳ９０９では、１２２１の重み付けの情報を用いてソートする。ソートした結果の例（ソート後の例）が図１２Ｂの１２３０である。本実施形態では、第１の要素、第２の要素、第３の要素の順にソートがされる。
【００９５】
ステップＳ９０９は、複数の属性による重み付けに基づき、各オブジェクトの優先度を決定する処理と言い換えることが可能である。
【００９６】
次にステップＳ４０６の処理を、図１３のフローチャート、図１４、図１５、図１６の例を用いて説明する。図１３は、アノテートの重なり回避処理の詳細を示すフローチャートである。
【００９７】
ステップＳ１３０１では、ソート後のアノテート情報記憶領域から２つ目のレコードの情報を取得する（処理レコードの情報取得）。１つ目のレコードは、一番優先度の高いレコード（アノテート）であるため移動しないことから２つ目のレコードから処理をスタートするものとする。
【００９８】
ステップＳ１３０２では、比較対象となる１つ目のレコードの情報を取得する（比較レコードの情報取得）。
【００９９】
ステップＳ１３０３では、上位の比較レコードである（優先度の高いアノテート）の矩形領域に、処理レコードの矩形領域（座標点１＆２）が重なるか否かを判定する。重なる場合には、処理レコードのアノテート（優先度の低いアノテート）を移動させるべく、ステップＳ１３０４へ処理を移す。重ならない場合には、ステップＳ１３０７へ処理を移す。
【０１００】
なお、矩形領域に引き出し線が重なりについては、ステップＳ１３１１で後述する。
【０１０１】
ステップＳ１３０３は、図面の内容を付加的に示すオブジェクトで表示する値の表示領域を用いて、他のオブジェクトの表示領域と重なるか否かを判定する第１の重なり判定処理の一例を示すステップである。
【０１０２】
矩形領域の重なりの詳細を図１４を用いて説明する。図１４は、矩形領域同士の重なりを示す概念図である。
【０１０３】
図１４の１４００と１４１０の例は、矩形領域が重なる例を示している。具体的には、レコードの座標点ＸＹである「１」「２」と、異なるレコードの座標点ＸＹである「３」「４」の比較によって重なりを判定する。「Ｘ１≦Ｘ３≦Ｘ２、且つＹ１≦Ｙ３≦Ｙ２」もしくは「Ｘ１≦Ｘ４≦Ｘ２、且つＹ１≦Ｙ４≦Ｙ２」のいずれかを満たす場合は重なるものとなる。
【０１０４】
ステップＳ１３０４では、処理レコードのアノテートを所定方向に、所定距離移動させる。水平寸法は鉛直方向に移動させる。鉛直寸法は水平方向に移動させる。累進寸法は累進方向に移動させる。その他は円状の任意角度（４５度など）に移動させる。
【０１０５】
より具体的には、アノテートの移動は種別によって移動方法を制限するものとする。
１．水平寸法の場合
・移動方向は鉛直方向とする
・移動の向きは判定領域の中心から放射方向とする
・一度に移動する距離は任意の設定値に依る
２．鉛直寸法の場合
・移動方向は水平方向とする
・移動の向きは判定領域の中心から放射方向とする
・一度に移動する距離は任意の設定値に依る
３．半径寸法／注記の場合
・移動方向は移動前の位置から同心円状の位置とする
・一度に加算する同心円の半径は任意の設定値に依る
・同心円状の位置については一定の回転角（３０度ずつ）に依る
【０１０６】
ステップＳ１３０４は、第１の重なり判定処理と第２の重なり判定処理との重なり結果に従って、オブジェクトを移動するように制御する移動制御処理の一例を示すステップである。
【０１０７】
ステップＳ１３０５では、移動後のアノテート（処理レコードのアノテート）の座標点をＣＡＤアプリケーションから取得する。
【０１０８】
ステップＳ１３０６では、移動後のアノテート（処理レコードのアノテート）の引き出し線の情報をＣＡＤアプリケーションから取得する。ステップＳ１３０２に処理を移し、所定距離を移動させた際に比較レコードのアノテーションと重なるかを再度判定する。
【０１０９】
なお、ステップＳ１３０５とステップＳ１３０６で取得した情報を用いて、レコードの情報（座標）を更新する。
【０１１０】
ステップＳ１３０７では、比較レコードは処理レコードの直前のレコードかを判定する。すなわち処理レコードより優先度の高い比較レコードがあるか否かを判定する。優先度の高い比較レコードがある場合には、ステップＳ１３０８へ処理を移し、優先度の高い比較レコードがない場合にはステップＳ１３１０へ処理を移す。
【０１１１】
ステップＳ１３０８では、次の比較レコード（優先度の高いアノテート）を取得して、ステップＳ１３０３へ処理を移し、矩形領域の重なりを判定する。
【０１１２】
次に、すべてのレコードを対象に矩形領域と引き出し線との重なり判定を行うためステップＳ１３０９以降の処理を実行する。なお、いずれかのアノテートの引き出し線と重なっていた場合は回避対象として、処理レコードのアノテートを移動する処理となる。
【０１１３】
ステップＳ１３０９では、１つ目のレコード（比較レコード）を取得する。例えば、アノテート情報記憶領域１２３０のレコードＮｏ．１の情報を取得する。
【０１１４】
ステップＳ１３１０では、処理レコードと比較レコードが同じレコードか否かを判定する。同じレコードの場合には、ステップＳ１３１２へ処理を移す。同じレコードでない場合には、ステップＳ１３１１へ処理を移す。
【０１１５】
ステップＳ１３１１では、処理レコードの矩形領域と、比較レコードの引き出し線と重なるか否かを判定する。引き出し線と重なる場合には、ステップＳ１３０４へ処理を移す。引き出し線と重ならない場合には、ステップＳ１３１１へ処理を移す。
【０１１６】
ステップＳ１３１１は、図面の内容を付加的に示すオブジェクトで表示する値の表示領域を用いて、他のオブジェクトの引き出し線と重なるか否かを判定する第２の重なり判定処理の一例を示すステップである。
【０１１７】
矩形領域と引き出し線の重なりの詳細を図１５を用いて説明する。図１５は、矩形領域と引き出し線の重なりを示す概念図である。
【０１１８】
図１５の１５００と１５１０の例は、矩形領域と引き出し線が重なる例を示している。具体的には、レコードの座標点ＸＹである「１」「２」から一時的に算出する「３」「４」を用いた矩形の線分（「１」「４」、「４」「２」、「２」「３」、「３」「１」）と、異なるレコードの引き出し線ＸＹである線分ａｂ、ｃｄ、ｂｄとの比較によって交点の有無を判定し、交点がある場合は重なるものとなる。
【０１１９】
なお、ステップＳ１３０４のアノテートの移動の詳細については、後述の図１６にて説明する。
【０１２０】
ステップＳ１３１２では、最後の比較レコードか否かを判定する。最後の比較レコードの場合には、ステップＳ１３１４へ処理を移し、最後の比較レコードでない場合（他の比較レコードが存在する場合）には、ステップＳ１３１３へ処理を移す。
【０１２１】
ステップＳ１３１３では、次の比較レコードをアノテート情報記憶領域から取得し、引き出し線との重なりがあるかを判定する処理を繰り返す。
【０１２２】
ステップＳ１３１４では、当該処理レコードに対する処理中にアノテート情報記憶領域の更新が発生したか否かを判定する。更新が発生した場合には、処理をはじめに戻し、重なり回避処理を繰り返す。更新が発生していない場合には、処理を終了する。
【０１２３】
なお、図１３では、処理レコードと比較レコードを用いて、１つずつ比較をして図面上でアノテートを移動させるようにしたが、この処理手順に限定されるものではない。例えば、先に重なりがあるアノテートを特定しておき、重なりのあるアノテート同士の比較により移動させる。また、移動させたのちに、再度、先に重なりがあるアノテートを特定して、重なりのあるアノテート同士の比較により移動させることを繰り返してもよい。
【０１２４】
なお、ステップＳ１３０３とステップ１３１１の処理をまとめて、オブジェクトの位置に基づき、オブジェクトの重なりを特定する処理と言い換えることが可能である。
【０１２５】
ステップＳ１３０４の処理は、特定された重なりのあるオブジェクトであって、オブジェクトに係る複数の属性に基づき決定された優先度の低いオブジェクトを移動するよう制御する処理と言い換えることが可能である。また、ステップＳ９０９により決定した優先度に従って、優先度の低いオブジェクトを移動するよう制御する処理と言い換えることが可能である。
【０１２６】
ステップＳ１３０４におけるアノテートの移動について、図１６を用いて説明する。図１６はアノテートの移動処理の概略を示す図である。
【０１２７】
１６００では、鉛直寸法の寸法値が「３０」「１００」のアノテートが重なっている状態であり、「１００」の引き出し線と「３０」の矩形領域が重なっている状態である。図１２Ｂの１２３０を参照すると、「３０」はレコードＮｏ．１で、「１００」はレコードＮｏ．２であり、優先度の低い「１００」をモデルから離れるように移動する。移動する距離は、「１００」の矩形領域が、「３０」の引き出し線の座標の外にくるまで水平方向に所定値分ずらす処理を繰り返す。なお、「３０」の引き出し線の座標の外になる距離を先に算出して、その距離分ずらすようにしてもよい。１６０２の矢印は移動方向を示すものである。
【０１２８】
１６１０では、水平寸法の寸法値が「７８」「２５０」のアノテートが重なっている状態であり、「７８」の引き出し線と「２５０」の矩形領域が重なっている状態である。図１２Ｂの１２３０を参照すると、「７８」はレコードＮｏ．５で、「２５０」はレコードＮｏ．６であり、優先度の低い「２５０」をモデルから離れるように移動する。移動する距離は、「２５０」の矩形領域が、「７８」の引き出し線の座標の外にくるまで鉛直方向に所定値分ずらす処理を繰り返す。なお、「７８」の引き出し線の座標の外になる距離を先に算出して、その距離分ずらすようにしてもよい。１６１２の矢印は移動方向を示すものである。
【０１２９】
１６２０では、鉛直寸法の寸法値が「２０」と水平寸法の寸法値が「２５０」のアノテートが重なっている状態であり、「２５０」の引き出し線と「２０」の矩形領域が重なっている状態である。図１２Ｂの１２３０を参照すると、「２５０」はレコードＮｏ．６で、「２０」はレコードＮｏ．８であり、優先度の低い「２０」をモデルから離れるように移動する。移動する距離は、「２０」の矩形領域が、「２５０」の引き出し線の座標の外にくるまで水平方向に所定値分ずらす処理を繰り返す。なお、「２５０」の引き出し線の座標の外になる距離を先に算出して、その距離分ずらすようにしてもよい。１６２２の矢印は移動方向を示すものである。
【０１３０】
１６３０では、半径寸法の寸法値が「φ３０」と注記の値「注記：ＸＸＸＸＸＸＸ」のアノテートが重なっている状態であり、「φ３０」の矩形領域と「注記：ＸＸＸＸＸＸＸ」の矩形領域が重なっている状態である。図１２Ｂの１２３０を参照すると、「φ３０」はレコードＮｏ．４で、「注記：ＸＸＸＸＸＸＸ」はレコードＮｏ．７であり、優先度の低い「注記：ＸＸＸＸＸＸＸ」をモデルから離れるように移動する。移動する距離は、「注記：ＸＸＸＸＸＸＸ」の矩形領域が、「φ３０」の矩形領域の座標の外にくるまでの距離である。また、「注記：ＸＸＸＸＸＸＸ」の矩形領域の中心として、同心円上の所定の角度（例えば、優先度の低い判定領域側である左上４５度）の方向に所定値分ずらす処理を繰り返す。なお、「φ３０」の矩形領域の座標の外になる距離を先に算出して、その距離分・所定の角度方向にずらすようにしてもよい。１６３２の矢印は移動方向を示すものである。
【０１３１】
上述した移動は一例であり、この移動処理に限定されるものではないことは言うまでもない。また、移動には、ＣＡＤアプリケーションのＡＰＩを用いて移動制御させ、図面上でアノテートの位置を変える処理を行うものとする。モデルの図面にアノテーションが重ならないようにするため、モデルの枠（図１０の領域「５」）の外向きに移動するように制御することが望ましい。
【０１３２】
以上説明したように、本実施形態によれば、図面の内容を付加的に示すオブジェクトの重なりを容易に回避することができる。また、容易に回避することができるため、重なりのチェックを効率化することができる。移動したオブジェクトを識別表示させるため、より効率化につながる。
【０１３３】
オブジェクトの表示する値の表示領域を用いて重なり判定することで、異なる種別のオブジェクトであっても容易に重なり回避を行うことが可能である。
【０１３４】
なお、本実施形態では、同一種別のオブジェクトの重なりを回避することに加え、異なる種別のオブジェクト同士でも重なりを容易に回避することができる。
【０１３５】
また、オブジェクトの位置する領域（判定領域）と、オブジェクトの種別又は／及びオブジェクトの内容（値）により、優先度を決定して移動することができ、ユーザが所望する箇所に移動させることができる。
【０１３６】
更に、モデルの枠を特定して、その枠の外側に重なるオブジェクトを移動させることでより見栄えの良い図面を作成することができる。
【０１３７】
ＣＡＤの世界においては、まず３次元モデルを作成する。そして、特に日本の習慣では３次元モデルをそのまま用いずに、３次元モデルから２次元図面データを作成する。３次元モデルから２次元図面データを作成する機能は各ＣＡＤアプリケーションには備わっているのが通常であり、３次元モデルと作成された２次元図面データは対応付いて管理される。２次元図面データを作成したのち、２次元図面データを用いてレビュー（関係者による詳細検討）がなされるが、レビューにより仕様変更がなされることがある。そのため仕様変更内容に基づいて、オペレーターが３次元モデル上でモデルの形状等の仕様を変更する。この場合、３次元モデルの形を変更することで先に作成された２次元図面データにも自動的に反映されるが、ＣＡＤアプリケーションは形状等をアップデータするだけであり、付加されたアノテートの重なりまでチェックすることがなく、アノテートが重なるといった事態が発生する。このような形態より効果を得ることが可能な仕組みである。
【０１３８】
本実施形態は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、１つの機器からなる装置に適用してもよい。
【０１３９】
なお、本実施形態は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【０１４０】
したがって、本実施形態の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１４１】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【０１４２】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【０１４３】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本実施形態のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【０１４４】
また、本実施形態のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１４５】
また、本実施形態のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１４６】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１４７】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【０１４８】
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１４９】
１００  ＣＡＤシステム
１０１  情報処理装置
１０２  サーバ
１０３  ネットワーク
２０１  ＣＰＵ
３００  ＣＡＤアプリケーション
３１０  重なり制御プログラム
【図１】
2019008667.tif 000003
【図２】
2019008667.tif 000004
【図３】
2019008667.tif 000005
【図４】
2019008667.tif 000006
【図５】
2019008667.tif 000007
【図６】
2019008667.tif 000008
【図７】
2019008667.tif 000009
【図８】
2019008667.tif 000010
【図９】
2019008667.tif 000011
【図１０】
2019008667.tif 000012
【図１１】
2019008667.tif 000013
【図１２Ａ】
2019008667.tif 000014
【図１２Ｂ】
2019008667.tif 000015
【図１３】
2019008667.tif 000016
【図１４】
2019008667.tif 000017
【図１５】
2019008667.tif 000018
【図１６】
2019008667.tif 000019