(57)【要約】【課題】オブジェクトの確認がより容易となるように、補助情報を配置するための技術を提供する。【解決手段】オブジェクト２０の輪郭線２０ａから一定距離、離れた位置に、注記２５の配置用のグリッド６１を複数、設定し、各注記２５を、その注記２５の基準位置との距離が最小のグリッド６１に割り当てる。その結果、同一のグリッド６１に複数の注記２５が割り当てられた場合、全体として、基準位置とグリッド６１間の距離の増大を抑える形で、１つ以上の注記２５を同一のグリッド６１の近傍のグリッド６１に割り当てる展開を行う。その展開により、注記２５の重複が発生した場合、重複が発生した２つの注記群のうちの少なくとも一方を、各注記群を構成する注記の数を用いて計算する移動量だけ移動させる。そのようにして、最終的に、１つのグリッド６１に１つの注記２５を割り当てる。【選択図】図１７
2015088057.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
画面に表示させるオブジェクトの輪郭に基づき、前記オブジェクトの外側に、前記オブジェクトに対応付けられた補助情報の配置候補とする候補位置を複数、設定し、
前記補助情報毎に、前記補助情報に前記候補位置を割り当て、
前記割り当てに従って前記候補位置に配置した前記補助情報を前記オブジェクトと共に表示する、
処理を実行させることを特徴とする表示プログラム。
【請求項２】
前記補助情報を、前記補助情報と、前記補助情報に設定された基準位置とを結ぶ引出線と共に表示させる、
ことを特徴とする請求項１記載の表示プログラム。
【請求項３】
前記候補位置は、前記オブジェクトの輪郭から所定の距離、離して設定する、
ことを特徴とする請求項１、または２記載の表示プログラム。
【請求項４】
前記基準位置は、前記オブジェクトを構成するポリゴン面上に設定される、
ことを特徴とする請求項２記載の表示プログラム。
【請求項５】
前記補助情報に割り当てる前記候補位置は、前記基準位置と前記候補位置の距離を基に決定する、
ことを特徴とする請求項２記載の表示プログラム。
【請求項６】
前記補助情報毎に、前記基準位置と各候補位置間の距離を計算し、該計算した距離を基に、前記各候補位置のなかから前記補助情報に割り当てる第１の候補位置を選択し、
前記補助情報を複数、割り当てた前記第１の候補位置が存在する場合に、前記第１の候補位置を含む複数の候補位置を対象範囲にして、前記複数の補助情報をそれぞれ異なる候補位置に割り当てる展開を行う、
ことを特徴とする請求項５記載の表示プログラム。
【請求項７】
前記展開は、各補助情報とそれぞれ割り当てられる候補位置の間の距離の全体における増分を最小にする形で行う、
ことを特徴とする請求項６記載の表示プログラム。
【請求項８】
前記展開によりそれぞれ異なる候補位置が割り当てられた前記補助情報によって構成される補助情報群に、他の１つ以上の補助情報によって構成される他の補助情報群と重複する候補位置が割り当てられている場合、前記補助情報群、及び前記他の補助情報群のうちの少なくとも一方の割り当てを、前記補助情報群、及び前記他の補助情報群をそれぞれ構成する前記補助情報の数を用いて計算する移動量分、全体を移動させる、
ことを特徴とする請求項６、または７記載の表示プログラム。
【請求項９】
表示対象とするオブジェクトの表示データ、及び前記オブジェクトに対応付けられた表示用の補助情報を複数、格納した記憶部と、
表示させる前記オブジェクトの輪郭に基づき、前記オブジェクトの外側に、前記補助情報の配置候補とする候補位置を複数、設定する設定部と、
前記補助情報毎に、前記補助情報に前記候補位置を割り当てる割当部と、
前記割当部による割り当て結果に従って、前記補助情報の配置を前記候補位置に決定する配置部と、
を有することを特徴とする補助情報自動配置装置。
【請求項１０】
前記補助情報は、表示対象となる文字情報と、前記文字情報に対応付けられた前記オブジェクト上の位置である基準位置を表す位置情報とを含む、前記文字情報と前記基準位置とを結ぶ引出線を表示可能な情報である、
ことを特徴とする請求項９記載の補助情報自動配置装置。
【請求項１１】
前記設定部は、前記候補位置を、前記オブジェクトの輪郭から所定の距離、離して設定する、
ことを特徴とする請求項９記載の補助情報自動配置装置。
【請求項１２】
前記設定部は、前記候補位置間の距離を、前記文字情報を表示するサイズを基に変更する、
ことを特徴とする請求項１１記載の補助情報自動配置装置。
【請求項１３】
前記割当部は、前記基準位置と前記候補位置の距離を基に、前記補助情報に前記候補位置を割り当てる、
ことを特徴とする請求項９記載の補助情報自動配置装置。
【請求項１４】
前記割当部は、
前記補助情報毎に、前記基準位置と各候補位置間の距離を計算し、前記距離を計算した候補位置のなかで前記距離が最小となる第１の候補位置に前記補助情報を割り当てる第１の割当部と、
前記補助情報を複数、割り当てた前記第１の候補位置が存在する場合に、前記第１の候補位置を含む複数の候補位置を対象範囲にして、前記複数の補助情報をそれぞれ異なる候補位置に割り当てる展開を行う第２の割当部と、
を有することを特徴とする請求項９、または１３記載の補助情報自動配置装置。
【請求項１５】
前記第２の割当部は、前記展開を、各補助情報とそれぞれ割り当てられる候補位置の間の距離の全体における増分を最小にする形で行う、
ことを特徴とする請求項１４記載の補助情報自動配置装置。
【請求項１６】
前記割当部は、更に、
前記展開によりそれぞれ異なる候補位置が割り当てられた前記補助情報によって構成される補助情報群に、他の１つ以上の補助情報によって構成される他の補助情報群と重複する候補位置が割り当てられている場合、前記補助情報群、及び前記他の補助情報群のうちの少なくとも一方の割り当てを、前記補助情報群、及び前記他の補助情報群をそれぞれ構成する前記補助情報の数を用いて計算する移動量分、全体を移動させる第３の割当部、
を有することを特徴とする請求項１４、または１５記載の補助情報自動配置装置。
【請求項１７】
コンピュータに、
画面に表示させるオブジェクトの輪郭に基づき、前記オブジェクトの外側に、前記オブジェクトに対応付けられた補助情報の配置候補とする候補位置を複数、設定させ、
前記補助情報毎に、前記補助情報に前記候補位置を割り当てさせ、
前記割り当てに従って前記補助情報の配置を前記候補位置に決定させる、
ことを特徴とする補助情報自動配置方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表示対象とするオブジェクトと共に、そのオブジェクトについての補助情報を表示するための技術に関する。
【背景技術】
【０００２】
現在、各種設計にＣＡＤ（Computer Aided Design）が広く用いられている。このＣＡＤは、コンピュータ（情報処理装置）の処理能力を利用し、設計者が設計をより容易に行えるように支援する。そのため、ＣＡＤを用いることにより、設計者は設計をより短時間に行えるようになる。
【０００３】
ＣＡＤは、設計結果を画面上に表示させることができる。設計結果、つまり設計対象は、通常、一つの部品か、或いは複数の部品を備えたモジュール、若しくは製品等である。ここでは、設計結果、つまり表示対象を「オブジェクト」と総称する。
【０００４】
オブジェクトは、設計者以外の人に分かりやすいようにすることが求められる場合がある。そのため、ＣＡＤでは、オブジェクトの各部の機能、用途、或いは役割等を容易に把握できるように、補助情報を表示できるようになっているのが普通である。補助情報を表示させることにより、複数の部品を備えたオブジェクトでは、各部品を容易に把握できるようにすることができる。通常、補助情報は、バルーン内に配置される文字情報として表示される。
【０００５】
補助情報を必要とする箇所（位置）、及びその補助情報の内容は、設計者等によって指定されるのが普通である。それにより、設計者等は、必要と思われる箇所毎に、必要と思われる補助情報を設定することができる。補助情報が必要として設定された箇所（位置）は以降、「基準位置」と表記する。
【０００６】
補助情報（バルーン）の配置は、自動的に決定させることができるようになっている。従来、補助情報を配置する位置は、その補助情報の基準位置を含む箇所の輪郭に隣り合う位置、或いはオブジェクトを配置する画面上の予め設定した位置としている。しかし、そのような従来の配置方法では、以下のような問題がある。
【０００７】
先ず、輪郭に隣り合う位置に補助情報を配置する場合、オブジェクトの一部が、配置する補助情報によって視認できなくなる可能性がある。複数の部品を含むオブジェクトでは、配置する補助情報によって、オブジェクトの一部が視認できなくなる可能性が極めて高い。オブジェクトを確認しようとする人にとっては、一部が視認できなくなることは望ましくない。
【０００８】
画面上の予め設定した位置に補助情報を配置する方法では、その位置は、オブジェクトの一部を視認できなくなることがないように、その画面の端とするのが普通である。そのため、オブジェクトの一部が視認できなくなることは回避できたとしても、基準位置と補助情報の間の距離は大きくなりやすい。基準位置と補助情報の間の距離が大きくなるほど、基準位置と補助情報の対応関係が分かり難くなり、オブジェクトの確認に要する時間はより長くなる。このことから、補助情報の配置では、オブジェクトの確認を容易に行えるようにするうえで、オブジェクトの一部を視認できなくなることを回避すると共に、基準位置と補助情報の間の距離をより小さくすることも重要と思われる。
【０００９】
従来技術としては、他に、補助情報の配置を決定した後、その補助情報が画面内に収まるか否かを確認し、画面内に収まらない補助情報を、画面内に収まる位置に再配置するものがある。その補助情報の再配置は、補助情報を不適切な位置に移動させることに相当する。そのため、この従来技術による再配置方法では、基準位置と補助情報の対応関係はより分かり難くさせることになる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００１−４３２５４号公報
【特許文献２】特開２０１１−４３９３４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
１側面では、本発明は、オブジェクトの確認がより容易となるように、補助情報を配置するための技術を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明を適用した１システムは、表示対象とするオブジェクトの表示データ、及びオブジェクトに対応付けられた表示用の補助情報を複数、格納した記憶部と、表示させるオブジェクトの輪郭に基づき、オブジェクトの外側に、補助情報の配置候補とする候補位置を複数、設定する設定部と、補助情報毎に、補助情報に候補位置を割り当てる割当部と、割当部による割り当て結果に従って、補助情報の配置を候補位置に決定する配置部と、を有する。
【発明の効果】
【００１３】
本発明を適用した場合には、オブジェクトの確認がより容易となるように、補助情報を配置することができる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態による補助情報自動配置装置である注記自動配置装置の機能構成例を説明する図である。
【図２】本実施形態による注記の自動配置結果例を表す図である。
【図３】オブジェクトの設計データの構成例を説明する図である。
【図４】注記データ群の構成例を説明する図である。
【図５】視点の変更に伴う注記の配置の変化例を説明する図である。
【図６】オフセット輪郭線例を表す図である。
【図７】オフセット輪郭線の作成方法例を説明する図である。
【図８】オフセット輪郭線上に設定されるグリッド例を説明する図である。
【図９】各注記の距離が最小のグリッド例を説明する図である。
【図１０】距離による各グリッドへの注記の割り当て例を説明する図である。
【図１１】重複している注記の展開例を説明する図である。
【図１２】グリッド番号が６のグリッドに重複している注記の評価値の算出例を説明する図である。
【図１３】グリッド番号が７のグリッドに重複している注記の評価値の算出例を説明する図である。
【図１４】展開によるグリッドの重複の解消方法例を説明する図である。
【図１５】展開による注記の重複の別の解消方法例を説明する図である。
【図１６】視点の変更に伴う各グリッドへの注記の割り当て結果例を説明する図である。
【図１７】視点の変更に伴う自動配置により表示される注記例を説明する図である。
【図１８】注記自動配置処理のフローチャートである。
【図１９】オフセット輪郭線作成処理のフローチャートである。
【図２０】グリッド抽出処理のフローチャートである。
【図２１】重複部分注記展開処理のフローチャートである。
【図２２】展開時重複注記最適化処理のフローチャートである。
【図２３】本実施形態による補助情報自動配置装置である注記自動配置装置として使用可能な情報処理装置の構成例を表す図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
図１は、本実施形態による補助情報自動配置装置である注記自動配置装置の機能構成例を説明する図である。本実施形態による補助情報自動配置装置である注記自動配置装置１は、補助情報として注記の配置を自動的に決定するものである。
【００１６】
この注記自動配置装置１には、図１に表すように、データ入力部２、外部記憶装置３、及び表示装置４が接続されている。注記自動配置装置１は、システム制御部１１、データ管理部１２、表示データ制御部１３、画像データ処理部１４、及び注記位置算出部１５を備えている。
【００１７】
図２は、本実施形態による注記の自動配置結果例を表す図である。図１の説明を行う前に、注記自動配置装置１が補助情報として表示する注記２５、及び注記２５の配置の決定方法について具体的に説明する。
【００１８】
図２において、２０は例えばＣＡＤを用いた設計結果として表示されるオブジェクトである。注記２５は、そのオブジェクト２０、或いは構成要素（例えば部品）等の説明のために用いられる補助情報であり、オブジェクト２０と共に表示対象となる。その注記２５は、図２に表すように、文字情報が挿入された注記本体２６、及び注記本体２６に付された引出線２７を有する。引出線２７は、注記２５と対応付けられた基準位置２８と注記本体２６とを結ぶ線である。
【００１９】
図２に表すオブジェクト２０は、ポインティングデバイスであるマウスの設計結果である。各注記２５の注記本体２６に文字情報として表記の「１」〜「１２」の数字は、オブジェクト（マウス）２０を構成する部品に割り当てられた番号を表している。具体的には、「１」はロアカバー、「２」及び「３」はＬＥＤ（Light Emitting Diode）、「４」及び「５」はマイクロスイッチ、「６」〜「８」はボタンスイッチ、「９」はハウジング、「１０」はポインタスティック、「１１」及び「１２」は検知シャフト、をそれぞれ表している。
【００２０】
各注記本体２６は、オブジェクト２０の輪郭から配置資源として設定する位置（点。以降「グリッド」と表記）の何れかに、重複しないように配置される。グリッドは、オブジェクト２０の輪郭を基準にする形で設定する。それにより、各注記本体２６は、オブジェクト２０の一部を隠すことなく、オブジェクト２０の輪郭からの距離が狭い範囲内に収まる位置に配置される。
【００２１】
注記本体２６に割り当てるグリッドは、その注記本体２６と基準位置２８との間の距離、及び引出線２７の交差を考慮して決定される。それにより、各注記本体２６には、基準位置２８との距離がより小さくなるように、また、引出線２７が交差しないように、グリッドが割り当てられる。
【００２２】
そのようにして、本実施形態では、注記本体２６と基準位置（部品、等）２８との間の対応関係がより分かりやすいように、注記本体２６の配置を自動的に決定し、注記２５を表示させる。このため、オブジェクト２０を確認する人にとっては、その確認をより迅速、且つ容易に行うことができる。
【００２３】
図１に表す注記自動配置装置１は、図２に表すような注記２５の表示を行うことができる。そのために、図１に表す各構成要素１１〜１５は、以下のような機能を備えている。
【００２４】
データ入力部２は、オペレータが各種指示、及び各種データ入力等に用いられる。データ入力部２を用いて入力可能なデータには、オブジェクト２０の表示データ（例えば設計結果を表す設計データ）３ａ、及び各注記２５の設定内容を表す注記データ群３ｂが含まれる。
【００２５】
システム制御部１１は、注記自動配置装置１全体を制御する。データ入力部２から表示データ３ａ、或いは注記データ群３ｂが入力された場合、システム制御部１１は、入力されたデータをデータ管理部１２に渡し、データ管理部１２に外部記憶装置３に格納させる。オブジェクト２０は、１つの部品か、或いは複数の部品を備えた製品、若しくはモジュール等である。ここでは、オブジェクト２０は複数の部品を備えた製品と想定する。表示データ３ａとしては、オブジェクト２０の設計データ、例えばオブジェクト２０を構成する各部品の形状、及び配置等を表す部品データ群と想定する。
【００２６】
図３は、オブジェクトの設計データの構成例を説明する図であり、図４は、注記データ群の構成例を説明する図である。
【００２７】
オブジェクト２０の設計データ、つまり部品データ群３ａは、オブジェクト２０を構成する部品毎に、その部品データがまとめられたものである。各部品データは、識別情報と、属性情報とに大別される。図３にデータ名として表記の「部品データ１」は、識別情報の例を表している。属性情報には、部品の面、稜線、或いは頂点などを表す形状情報、その部品の配置（位置、角度、等）を表す配置情報等が含まれる。オブジェクト２０を表示するための画像データ（ビットマップデータ）は、属性情報から、各部品の形状、位置関係、等を特定し、生成することができる。
【００２８】
注記データ群３ｂを構成する各注記データは、図４に表すように、識別情報と、属性情報とに大別される。図４にデータ名として表記の「注記データ５」は、識別情報の例を表している。属性情報には、注記座標情報、注記サイズ情報、及び文字情報、等が含まれる。注記座標情報は、注記本体２６の座標情報、基準位置２８、つまり引出線２７の一方の端の位置を指定する座標情報、を含む。注記サイズ情報は、注記本体２６の大きさを表す。
【００２９】
データ管理部１２は、部品情報管理部１２ａ、及び注記情報管理部１２ｂを備える。部品情報管理部１２ａは、部品データ群３ａの外部記憶装置３への格納、及び外部記憶装置３に格納されている部品データ群３ａの更新、等を行う。注記情報管理部１２ｂは、注記データ単位で外部記憶装置３への格納、及び外部記憶装置３に格納されている注記データの更新、等を行う。
【００３０】
各注記２５の文字情報、及び基準位置の指定は、オペレータ（設計者、等）に行わせるようになっている。そのため、外部記憶装置３への注記データ群３ｂの格納、及び注記データ群３ｂの更新は、通常、注記データ単位で行われる。
【００３１】
画像データ処理部１４は、２Ｄ３Ｄデータ変換部１４ａ、輪郭線抽出部１４ｂ、及び２Ｄデータ加工部１４ｃを備え、主にオブジェクト２０に係わる画像データの処理を行う。
【００３２】
部品データ群３ａを構成する各部品データの形状情報は、３次元の形状を表している。３次元の形状を表す形状情報とすることにより、任意の視点（ビュー）でオブジェクト２０の２次元形状を表示させることができる。２Ｄ３Ｄデータ変換部１４ａは、部品毎に、形状情報から２次元形状を表す画像データを生成する。２Ｄデータ加工部１４ｃは、各部品の配置情報を用いて、部品毎に生成された画像データを加工し、オブジェクト２０の２次元の画像データ（ビットマップデータ）を生成する。
【００３３】
輪郭線抽出部１４ｂは、２Ｄ加工部１４ｃが生成した画像データから、オブジェクト２０の輪郭線を抽出する。抽出された輪郭線は、画像データ処理部１４から注記位置算出部１５に渡される。
【００３４】
システム制御部１１は、オペレータが視点の変更を指示する毎に、画像データ処理部１４の２Ｄ３Ｄデータ変換部１４ａ、及び２Ｄデータ加工部１４ｃに処理を行わせる。それにより、オペレータが指定した視点でオブジェクト２０を表示させる。
【００３５】
図５は、視点の変更に伴う注記の配置の変化例を説明する図である。図５に表記の「Ａ」〜「Ｈ」は、各注記２５に設定された文字情報例を表している。ここでは、便宜的に、「Ａ」〜「Ｈ」は各注記２５を区別するために用いることとする。それにより、例えば文字情報として「Ａ」が表記されている注記２５は、「Ａの注記２５」等と表現する。
【００３６】
図２に表すように、各注記２５は、引出線２７の交差を避けるように配置される。基準位置２８の指定は、表示させたオブジェクト２０上の位置の指定により行えるようになっており、指定された基準位置は、形状情報が表す何れかのポリゴン面上の位置となる。そのため、視点の変更に伴い、各注記２５の基準位置２８の位置関係が変化し、その位置関係の変化により、各注記２５の配置も変化する。各注記２５の配置の変化に伴い、引出線２７の交差も発生する。
【００３７】
このようなことから、注記２５の自動配置は、初めて注記２５を表示させる場合の他に、視点を変更した場合にも必要となる。それにより、本実施形態では、オペレータによる指示に従い、注記２５の自動配置を行うようにしている。輪郭線抽出部１４ｂによる輪郭線の抽出は、オペレータの指示に従ったシステム制御部１１の制御により行われる。
【００３８】
注記位置算出部１５は、各注記２５の自動配置を行い、各注記２５を表示させる位置を決定する。注記位置算出部１５は、注記−グリッド距離算出部１５ａ、重複注記展開部１５ｂ、展開時重複注記最適化部１５ｃ、注記配置部１５ｄ、及びオフセット輪郭線作成部１５ｅを備えており、各部１５ａ〜１５ｄは、それぞれ以下のような機能を有する。
【００３９】
オフセット輪郭線作成部１５ｅは、輪郭線抽出部１４ｂが抽出した輪郭線の外側に、その輪郭線を用いて別の輪郭線（以降「オフセット輪郭線」と表記）を作成する。
【００４０】
図６は、オフセット輪郭線例を表す図であり、図７は、オフセット輪郭線の作成方法例を説明する図である。
【００４１】
図６に表すように、オフセット輪郭線６０は、オブジェクト２０の輪郭線２０ａに沿った形状である。このオフセット輪郭線６０は、図７に表すように、オブジェクト２０の輪郭線２０ａ上に沿って、その輪郭線２０ａ上に中心を有する円７１を描き、描いた円７１の外側に接する線を特定することで作成される。それにより、オフセット輪郭線６０は基本的に、オブジェクト２０の輪郭線２０ａから円７１の半径だけ離れた線となっている。
【００４２】
オフセット輪郭線作成部１５ｅは、オフセット輪郭線６０を作成した後、図８に表すように、そのオフセット輪郭線６０上にグリッド６１を設定する。このグリッド６１は、上記のように、注記本体２６を配置するうえでの資源であり、注記本体２６は何れかのグリッド６１上に配置される。グリッド６１の設定は、オフセット輪郭線６０上の任意の点を１番目のグリッド６１として設定し、オフセット輪郭線６０上、一定距離、離れた点を２番目のグリッド６１として設定する。そのようにして、オフセット輪郭線作成部１５ｅは、オフセット輪郭線６０上、既に設定したグリッド６１から一定距離、離れた点をグリッド６１として順次、設定する。図８に表記の「１」〜「１７」は、グリッド６１の設定された順序と共に、各グリッド６１に識別用に割り当てられたグリッド番号を表している。グリッド６１毎に作成されるグリッドデータは、例えばグリッド番号、及び座標情報を含むデータである。
【００４３】
注記−グリッド距離算出部１５ａは、注記２５毎に、その基準位置２８と各グリッド６１間の距離を算出し、算出した距離が最小のグリッド６１を配置候補として割り当てる。
【００４４】
図９は、各注記の距離が最小のグリッド例を説明する図であり、図１０は、距離による各グリッドへの注記の割り当て例を説明する図である。図９、及び図１０は、図５に表すようにオブジェクト２０の視点が変更された場合を例にとっている。図９、及び図１０において、「１」〜「１７」はグリッド番号、「Ａ」〜「Ｈ」は注記２５の文字情報、をそれぞれ表している。
【００４５】
図９に表す例では、Ｂ〜Ｄの３つの注記２５の基準位置２８との距離は、グリッド番号が６のグリッド６１で最小であり、Ｅ〜Ｇの３つの注記２５の基準位置２８との距離は、グリッド番号が７のグリッド６１で最小であることを表している。それにより、図１０に表すように、グリッド番号が６のグリッド６１には、Ｂ〜Ｄの３つの注記２５が割り当てられ、グリッド番号が７のグリッド６１には、Ｅ〜Ｇの３つの注記２５が割り当てられている。
【００４６】
注記本体２６の視認性が低下することから、同一のグリッド６１に複数の注記２５を割り当てる重複は望ましくない。同一のグリッド６１における注記２５の重複を解消するために、本実施形態では、重複注記展開部１５ｂ、及び展開時重複注記最適化部１５ｃを設けている。
【００４７】
重複注記展開部１５ｂは、注記２５が重複しているグリッド６１毎に、そのグリッド６１を中心とする複数のグリッド６１を想定し、重複している注記２５を展開する。その展開は、複数のグリッド６１にそれぞれ１対１に割り当てるのが最適な注記２５の並びを特定することで行われる。
【００４８】
図１１は、重複している注記の展開例を説明する図である。図９、及び図１０に表す例では、グリッド番号が６のグリッド６１には、Ｂ〜Ｄの３つの注記２５が割り当てられている。このことから、グリッド番号が５〜７のグリッド６１を想定し、Ｂ〜Ｄの３つの注記２５は、グリッド番号が５〜７の各グリッド６１にそれぞれ１対１に割り当てるのが最適な並びに展開される。図１１は、Ｂ〜Ｄの注記２５が、グリッド番号が５〜７の各グリッド６１にそれぞれ割り当てるように展開されていることを表している。同様に、図１１は、Ｅ〜Ｇの注記２５が、グリッド番号が６〜８の各グリッド６１にそれぞれ割り当てるように展開されていることを表している。
【００４９】
注記２５が重複しているグリッド６１を中心として、そのグリッド６１の前後方向（グリッド番号が小さい方向が前方向である）でそれぞれ想定するグリッド６１の数は、重複している注記２５の数を２で割った値の小数点以下を切り捨てて得られる整数としている。そのため、重複している注記２５の数が３であった場合、注記２５が重複しているグリッド６１、及びそのグリッド６１の前後に位置する各１つのグリッド６１の計３つのグリッド６１が想定される。
【００５０】
重複注記展開部１５ｂは、重複している注記２５の展開時の並びを、以下の式により求める評価値αを用いて決定する。
α＝Σ（番号／距離）÷Σ（１／距離）    ・・・（１）
【００５１】
ここで、番号は、例えばグリッド番号が最小のグリッド６１を１として、グリッド番号の大きさを表す整数である。その次にグリッド番号が大きいグリッド６１の番号は２である。
【００５２】
式（１）により算出される評価値αは、小さくなるほど、グリッド番号がより小さいグリッド６１を割り当てるのが望ましいことを表している。そのため、重複している注記２５の適切な並びは、評価値αの大きさから決定することができる。
【００５３】
図１２は、グリッド番号が６のグリッドに重複している注記の評価値の算出例を説明する図である。図１３は、グリッド番号が７のグリッドに重複している注記の評価値の算出例を説明する図である。
【００５４】
図１２（ａ）において、最上行に表記の「５」〜「７」は、グリッド番号を表している。その下の行に表記の「１」〜「３」は、式（１）で用いられる番号を表している。図１２（ｂ）及び図１２（ｃ）の最上行に表記の「１」〜「３」も式（１）で用いられる番号を表している。図１２（ａ）に表記の「Ｂ」〜「Ｄ」は、注記２５の文字情報を表している。
【００５５】
図１２（ａ）では、各注記２５と各グリッド６１間の距離の例を表している。図１２（ｂ）では、各注記２５と各グリッド６１間で算出される番号／距離の値を表している。図１２（ｃ）では、各注記２５と各グリッド６１間で算出される１／距離の値を表している。図１２（ｄ）では、図１２（ｂ）、及び図１２（ｃ）の算出結果を用いて得られる各注記２５の評価値αを表している。
【００５６】
図１２（ｄ）に表すように、評価値αの大小関係は、Ｂの注記２５＜Ｃの注記２５＜Ｄの注記２５、となっている。そのため、グリッド番号が６のグリッド６１に重複しているＢ〜Ｄの注記２５の並びは、図１１に表すように決定される。グリッド番号が７のグリッド６１に重複しているＥ〜Ｇの注記２５の並びは、図１３（ａ）〜図１３（ｄ）から、図１１に表すように決定される。
【００５７】
図１１に表す例では、重複している注記２５の展開により、グリッド番号が６、及び７の２つのグリッド６１で重複が生じている。そのため、注記２５の展開結果は、重複注記展開部１５ｂから展開時重複注記最適化部１５ｃに出力される。
【００５８】
展開時重複注記最適化部１５ｃは、グリッド６１への注記２５の割り当てが最適となるように、注記２５の展開によるグリッド６１の重複を解消させる。その重複の解消は、グリッド番号が小さいグリッド６１側に対応付けた注記群Ｘ、及びその注記群Ｘよりもグリッド番号がより大きいグリッド６１側に位置する注記群Ｙの２つの注記群を処理対象として行われる。重複の解消のために、注記群Ｘは、グリッド番号がより小さいグリッド６１に対応付ける方向（前方向）に移動され、注記群Ｙは、その逆方向（後方向）に移動される。
【００５９】
図１４は、展開によるグリッドの重複の解消方法例を説明する図である。この図１４では、A〜Hの注記２５のなかのB〜Dの注記２５、及びE〜Gの注記２５が図１１に表すように展開された場合を例にとって、グリッド６１の重複の解消の仕方を表している。
【００６０】
図１４（ａ）は、B〜Dの注記２５、及びE〜Gの注記２５を展開した後の状態を表している。ここでは、Ｂ〜Ｄの注記２５は注記群Ｘ、Ｅ〜Ｇの注記２５は注記群Ｙとして扱われる。
【００６１】
重複している注記群Ｘ、及び注記群Ｙは、重複部分が無くなるように、グリッド６１単位の移動量が計算される。図１４（ｂ）は、各移動量の計算結果、及び各移動量の計算に用いられる各種値を表している。図１４（ｂ）において、「Ｓｘ」は注記群Ｘの前方向の移動量、「Ｓｙ」は注記群Ｙの後方向の移動量を表している。「Ｘｎ」及び「Ｙｎ」は、注記群Ｘ及びＹを構成する注記数、「Ｘｃ」及び「Ｙｃ」は、注記群Ｘ及びＹの重心位置、「ＸＹｇ」は注記群Ｘと注記群Ｙとで重複している重複グリッド数を表している。「ＸＹｃ」は、注記群Ｘと注記群Ｙを想定した重心位置を表している。「Ｅｘ」及び「Ｅｙ」は、注記群Ｘ及びＹの正規化した単位移動量を表している。
【００６２】
注記群Ｘ（及びＹ）の重心位置Ｘｃ（及びＹｃ）は、以下の式により計算される。
Ｘｃ＝Σ（グリッド番号×注記数）／Σ（注記数）    ・・・（２）
【００６３】
重心位置ＸＹｃは
ＸＹｃ＝（Ｘｃ・Ｘｎ＋Ｙｃ・Ｙｎ）／（Ｘｎ＋Ｙｎ）    ・・・（３）
により計算される。
【００６４】
単位移動量Ｅｘ及びＥｙは
Ｅｘ＝ＡＢＳ（Ｘｃ−ＸＹｃ）／Ｘｎ    ・・・（４）
Ｅｙ＝ＡＢＳ（Ｙｃ−ＸＹｃ）／Ｙｎ    ・・・（５）
により計算される。式（４）及び（５）中の「ＡＢＳ」は、絶対値を求める関数を表している。
【００６５】
移動量Ｓｘ、及びＳｙは、式（４）及び（５）により得られた単位移動量Ｅｘ及びＥｙを用いて、以下の式により計算される。
Ｓｘ＝ＲＯＵＮＤ（Ｅｘ／（Ｅｘ＋Ｅｙ）・（ＸＹｇ））    ・・・（６）
Ｓｙ＝ＲＯＵＮＤ（Ｅｙ／（Ｅｘ＋Ｅｙ）・（ＸＹｇ））    ・・・（７）
ここで、「ＲＯＵＮＤ」は四捨五入を求める関数を表している。
【００６６】
図１４（ｂ）では、注記群Ｘ及びＹの注記数Ｘｎ及びＹｎ、重心位置Ｘｃ及びＹｃ、並びに重複グリッド数ＸＹｇの各例を入力値として表記している。重心位置ＸＹｃ、単位移動量Ｅｘ及びＥｙの各例を計算途中値として表記している。計算結果として、移動量Ｓｘ及びＳｙの各例を表記している。
【００６７】
図１４（ｂ）に表すように、移動量Ｓｘ及びＳｙは共に１となっている。そのため、図１４（ｃ）に表すように、注記群Ｘは前方向に１グリッド６１分、移動され、注記群Ｙは後方向に１グリッド６１分、移動される。その移動は、注記群Ｘ及びＹ共に、各注記２５へのグリッド６１の割り当てを全体的に変更する操作に相当する。
【００６８】
各注記群Ｘ及びＹの移動量Ｓｘ及びＳｙ分の移動に伴い、重複は解消され、別の注記２５、或いは注記群との間に新たな重複は生じない。そのため、図１４（ｄ）に表すように、各注記２５に割り当てるグリッド６１が確定する。それにより、各グリッド６１への注記２５の割り当て結果は、図１６に表すようになり、各注記２５は、グリッド番号が２、４〜９、及び１７のグリッド６１の何れかに割り当てられる。
【００６９】
図１５は、展開による注記の重複の別の解消方法例を説明する図である。
グリッド６１が重複している注記群は３つ以上の場合がある。図１５は、３つの注記群が同じグリッド６１を重複している場合を例にとって、グリッド６１の重複の解消の仕方を表している。
【００７０】
図１５（ａ）は、距離による割り当ての結果、グリッド番号が３、７、１０及び１２の４つのブロック７１でそれぞれ４つ、３つ、５つ、及び９つの注記２５の重複が発生し、各グリッド６１で注記２５の展開を行った後の状態を表している。
【００７１】
注記群が３つ以上、存在する場合、本実施形態では、グリッド番号が小さいグリッド６１が対応付けられている注記群から順次、処理するようにしている。それにより、図１４（ａ）に表すように、最初は、グリッド番号が３のグリッド６１での重複による展開で得られた注記群が注記群Ｘ、グリッド番号が７のグリッド６１での重複による展開で得られた注記群が注記群Ｙとして扱われる。
【００７２】
このとき、注記群Ｘと注記群Ｙとでは、グリッド６１の重複はない。しかし、注記群Ｘと注記群Ｙは接している。そのため、図１５（ｂ）に表すように、注記群Ｘと注記群Ｙは１つの注記群Ｘとしてまとめられ、グリッド番号が１０のグリッド６１での重複による展開で得られた注記群が新たに注記群Ｙとして扱われる。図１５（ｃ）には、図１４（ｂ）と同様に、注記群Ｘ及びＹの注記数Ｘｎ及びＹｎ、重心位置Ｘｃ及びＹｃ、並びに重複グリッド数ＸＹｇの各例を入力値として表記している。重心位置ＸＹｃ、単位移動量Ｅｘ及びＥｙの各例を計算途中値として表記している。計算結果として、移動量Ｓｘ及びＳｙの各例を表記している。
【００７３】
注記群Ｘと注記群Ｙが接していない場合、それらはまとめられず、注記群Ｙが新たに注記群Ｘとして扱われることとなる。新たな注記群Ｘとグリッド６１が重複している注記群が存在しない場合、後方向側に存在する注記群が次の注記群Ｘの候補となる。
【００７４】
図１５（ｂ）に表す状態では、注記群Ｘと注記群Ｙは、１グリッド６１だけ重複している。注記群Ｘの注記数は７であるのに対し、注記群Ｙの注記数は５である。その注記数の違いから、図１５（ｃ）に表すように、注記群Ｘの移動は行われず、注記群Ｙのみ１グリッド６１分、後方向に移動されている。
【００７５】
図１５（ｃ）に表すように、式（６）及び（７）により計算される移動量Ｓｘ及びＳｙの値は、注記数が多い注記群のほうが小さくなる。これは、注記数が多い程、注記群を移動させることに伴う注記本体２６と基準位置２８の間の距離、つまり引出線２７の長さの全体的な増分が大きくなるからである。式（６）及び（７）を用いて移動量Ｓｘ及びＳｙを計算することにより、各引出線２７が長くなるのをより抑えるように、注記２５をグリッド６１に割り当てることができる。
【００７６】
注記群Ｙの移動後、図１５（ｄ）に表すように、注記群Ｘと注記群Ｙは１つの注記群Ｘとしてまとめられ、グリッド番号が１２のグリッド６１での重複による展開で得られた注記群が新たに注記群Ｙとして扱われる。図１５（ｅ）には、図１５（ｃ）と同様に、注記群Ｘ及びＹの注記数Ｘｎ及びＹｎ、重心位置Ｘｃ及びＹｃ、並びに重複グリッド数ＸＹｇの各例を入力値として表記している。重心位置ＸＹｃ、単位移動量Ｅｘ及びＥｙの各例を計算途中値として表記している。計算結果として、移動量Ｓｘ及びＳｙの各例を表記している。
【００７７】
移動量Ｓｘ及びＳｙの計算結果に従い、注記群Ｘは前方向に２グリッド６１分、移動され、注記群Ｙは後方向に４グリッド６１分、移動される。その結果、計２１の注記２５は、図１５（ｆ）に表すように、グリッド番号が１〜２０、及び２５のグリッド６１に割り当てられることとなる。
【００７８】
展開時重複注記最適化部１５ｃは、上記のように、注記２５の展開によるグリッド６１の重複を解消させ、各注記２５を割り当てるグリッド６１を決定する。注記配置部１５ｄは、各注記２５の配置を、その注記２５が割り当てられたグリッド６１の座標に設定する。その設定は、注記２５とその注記２５が割り当てられたグリッド６１の対応関係をデータとして保持させても良いが、各注記データの属性情報に含まれる注記座標情報を更新することで行っても良い。ここでは便宜的に、注記２５の配置の設定は、注記データの属性情報に含まれる注記座標情報を更新することで行うと想定する。
【００７９】
注記２５へのグリッド６１の割り当て結果に従った設定により、図５に表すような配置で表示されていた各注記２５は、図１７に表すような配置で新たに表示されることとなる。図５、及び図１７に表すように、新たに配置が決定された各注記２５は、注記本体２６と基準位置２８の対応関係が容易に視認できるように表示されている。その結果、オブジェクト２０の確認も容易に行うことができる。
【００８０】
注記２５の表示用のビットマップデータは、例えばオブジェクト２０と同様に、画像データ処理部１４にて作成される。つまり、画像データ処理部１４は、１画面分のビットマップデータを作成し、作成したビットマップデータをシステム制御部１１に出力する。そのビットマップデータがシステム制御部１１、データ管理部１２、及び表示データ制御部１３を介して表示装置４に出力されることにより、図５、及び図１７に表すような画像が表示装置４上に表示される。
【００８１】
図２３は、本実施形態による補助情報自動配置装置である注記自動配置装置として使用可能な情報処理装置の構成例を表す図である。ここで図２３を参照し、注記自動配置装置１として使用可能な情報処理装置の構成例について詳細に説明する。
【００８２】
この情報処理装置は、図２３に表すように、ＣＰＵ（Central Processing Unit）８１、ＲＯＭ（Read Only Memory）８２、メモリ（メモリモジュール）８３、ＮＩＣ（Network Interface Card）８４、ハードディスク装置（ＨＤ）８５、キーボード８６、ポインティングデバイス（ＰＤ）８７、表示装置８８、及びコントローラ８９を備えている。
【００８３】
この構成は１例であり、注記自動配置装置（補助情報自動配置装置）1として使用可能な情報処理装置の構成は、図２３に表すような構成例に限定されない。例えばキーボード８６、ポインティングデバイス８７、及び表示装置８８は、構成要素として備えている必要はなく、必要に応じて接続できるようになっていても良い。
【００８４】
ＲＯＭ８２は、ＢＩＯＳ（Basic Input/Output System）を格納したメモリである。このＢＩＯＳは、ＣＰＵ８１によってメモリ８３に読み出され実行される。ハードディスク装置８５には、ＯＳ（Operating System）、及び上記のように注記２５の自動配置を行えるＣＡＤソフトウェアが格納されている。ＣＰＵ８１は、ＢＩＯＳの起動が完了した後、コントローラ８９を介してハードディスク装置８５からＯＳ、及びＣＡＤソフトウェアを読み出して実行することができる。ＮＩＣ８４を介した通信は、ＯＳの起動によって可能となる。
【００８５】
ＣＡＤソフトウェアは、ハードディスク装置８５以外のストレージ、或いは記録媒体に格納しても良い。ストレージ、或いは記録媒体は、ＮＩＣ８４がネットワークを介して通信可能な外部装置がアクセス可能なものであっても良い。このことから、ＣＡＤソフトウェアは、外部装置から受信しても良い。
【００８６】
上記のような構成の情報処理装置では、キーボード８６、ポインティングデバイス８７、及びＮＩＣ８４はデータ入力部２として用いることができる。表示装置４は、表示装置８８に相当する。しかし、表示装置４は、ＮＩＣ８４を介して接続可能な外部装置に搭載、或いは接続された表示装置であっても良い。それにより、ＮＩＣ８４、及びコントローラ８９は、表示データ制御部１３として機能させることができる。
【００８７】
外部記憶装置３は、ハードディスク装置８５である。しかし、外部記憶装置３は、ＮＩＣ８４を介して接続可能な外部装置に搭載、或いは接続された記憶装置であっても良い。
【００８８】
システム制御部１１、データ管理部１２、画像データ処理部１４、及び注記位置算出部１５は、ＣＰＵ８１がＣＡＤソフトウェアを実行することで実現される。このことから、外部記憶装置３がハードディスク装置８５であり、そのハードディスク装置８５にＣＡＤソフトウェアが格納されていると想定した場合、実現に少なくとも必要な構成要素は、ＣＰＵ８１、ＲＯＭ８２、メモリ８３、ハードディスク装置８５、及びコントローラ８９となる。
【００８９】
図１８は、注記自動配置処理のフローチャートである。この注記自動配置処理は、ＣＰＵ８１がＣＡＤソフトウェアを実行している状況下であった場合に、オペレータがキーボード８６、或いはポインティングデバイス８７等を操作し、注記２５の自動配置を指示したことを契機に実行される。上記のような注記２５の自動配置は、ＣＰＵ８１がこの注記自動配置処理を実行することで実現される。次に図１８を参照し、この注記自動配置処理について詳細に説明する。
【００９０】
先ず、ＣＰＵ８１は、表示させているオブジェクト２０の輪郭線２０ａを抽出し、抽出した輪郭線２０ａを用いてオフセット輪郭線６０を作成するオフセット輪郭線作成処理を実行する（Ｓ１）。次に、ＣＰＵ８１は、作成したオフセット輪郭線６０上から、登録すべきグリッド６１を抽出して登録するグリッド抽出処理を実行する（Ｓ２）。
【００９１】
グリッド抽出処理の実行後、ＣＰＵ８１は、注記２５毎に、その注記２５の基準位置２８とグリッド６１との間の距離から、グリッド６１への注記２５の割り当てを行う（Ｓ３）。各注記２５へのグリッド６１を割り当てた後、ＣＰＵ８１は、同一のグリッド６１に重複して割り当てられている注記２５を展開する重複部分注記展開処理を実行する（Ｓ４）。その後はＳ５に移行する。
【００９２】
Ｓ５では、ＣＰＵ８１は、注記２５の展開により得られた注記群間のグリッド６１の重複を解消させ、注記２５のグリッド６１への割り当てを最適化する展開時重複注記最適化処理を実行する。次にＣＰＵ８１は、展開時重複注記最適化処理により確定した注記２５のグリッド６１への割り当て結果に従い、各注記２５の配置を決定して表示させる（Ｓ６）。その後、この注記自動配置処理が終了する。
【００９３】
図２、及び図１７に表す注記２５の表示例は、注記自動配置処理を実行することで実現される。そのため、オペレータは、随時、注記自動配置処理の実行を指示することにより、注記２５を最適な状態で表示させることができる。
【００９４】
以降は、上記注記自動配置処理内でサブルーチン処理として実行される各種処理について、図１９〜図２２を参照して詳細に説明する。
【００９５】
図１９は、上記Ｓ１として実行されるオフセット輪郭線作成処理のフローチャートである。始めに図１９を参照し、オフセット輪郭線作成処理について詳細に説明する。図１に表すオフセット輪郭線作成部１５ｅの一部、及び画像データ処理部１４は、ＣＰＵ８１がこのオフセット輪郭線作成処理を実行することで実現される。
【００９６】
先ず、ＣＰＵ８１は、外部記憶装置３から部品データ群である設計データ３ａを取得する（Ｓ１１）。次にＣＰＵ８１は、オブジェクト２０の視点（ビュー）に合わせて、各部品データが表す３次元形状データを２次元形状（投影図）データに変換する（Ｓ１２）。ＣＰＵ８１は、部品間の位置関係を反映させて、変換した２次元形状データを更にビットマップデータに変換する（Ｓ１３）。
【００９７】
Ｓ１３で得られるビットマップデータは、オブジェクト２０を表す表示データである。ＣＰＵ８１は、ビットマップデータが表すオブジェクト２０の輪郭線２０ａを特定し、特定した輪郭線２０ａ上の点を抽出する（Ｓ１４）。このとき、抽出した点は、円７１の中心として用いられる。
【００９８】
次にＣＰＵ８１は、外部記憶装置３から注記データ群３ｂを取得する（Ｓ１５）。ＣＰＵ８１は、視点に合わせて、注記データ群３ｂを構成する注記データ毎に、属性情報中の注記本体２６の座標情報を２次元の座標情報に変換する（Ｓ１６）。
【００９９】
続いて、ＣＰＵ８１は、注記データ群３ｂを構成する各注記データを参照して、注記サイズ情報が表す最大の注記サイズを特定し、特定した最大の注記サイズの値を用いて、注記間オフセット値を計算する（Ｓ１７）。
【０１００】
この注記間オフセット値は、後述するように、グリッド６１間に設ける距離として用いられる値である。そのため、注記間オフセット値としては、最大サイズの注記本体２６を隣り合うグリッド６１に配置したとしても、注記本体２６が重ならないようにするうえで必要な距離以上の値を設定しなければならない。このことから、注記間オフセット値の計算に最大の注記サイズの値が用いられる。
【０１０１】
ＣＰＵ８１は、次に、計算した注記間オフセット値を直径とする円７１を、Ｓ１４で抽出した輪郭線２０ａ上の各点を中心にして描く（Ｓ１８）。続いて、ＣＰＵ８１は、Ｓ１３で得られたビットマップイメージに、描いた円７１を重ね合わせ、円７１の外側に接する線をオフセット輪郭線６０として作成する（Ｓ１９）。
【０１０２】
次にＣＰＵ８１は、作成したオフセット輪郭線６０上の点を抽出する（Ｓ２０）。抽出した点は、例えば設計で用いる座標（図１９中「実サイズ座標」と表記）上でオフセット輪郭線６０を表現するために用いられる。ＣＰＵ８１は、抽出した点毎に、その点の座標を実サイズ座標に戻し、戻した実サイズ座標上の各点の位置を表す座標データを保存する（Ｓ２１）。そのようにしてオフセット輪郭線６０のデータを保存した後、このオフセット輪郭線作成処理が終了する。
【０１０３】
図２０は、上記Ｓ２として実行されるグリッド抽出処理のフローチャートである。次に、図２０を参照し、グリッド抽出処理について詳細に説明する。図１に表すオフセット輪郭線作成部１５ｅの一部は、ＣＰＵ８１がこのグリッド抽出処理を実行することで実現される。
【０１０４】
先ず、ＣＰＵ８１は、作成したオフセット輪郭線６０上の任意の点を選び、グリッド番号が１のグリッド６１として登録する（Ｓ３１）。その登録後、ＣＰＵ８１は、処理ループＬ３０を実行する。
【０１０５】
この処理ループＬ３０は、オフセット輪郭線６０上で対象とする位置（点）を移動させながら、既に登録したグリッド７１との距離が上記注記間オフセット値を超えている位置をグリッド６１として登録するための処理ループである。
【０１０６】
処理ループＬ３０では、ＣＰＵ８１は、最初に、オフセット輪郭線６０上の対象とする位置を予め設定された距離だけ移動させる。その移動を行った後、ＣＰＵ８１は、移動後の位置と既に登録している全グリッド６１との間の距離が注記間オフセット値を超えているか否か判定する（Ｓ３２）。全ての距離が注記間オフセット値を超えている場合、Ｓ３２の判定はＹｅｓとなる。そのため、ＣＰＵ８１は、移動後の位置を新たにグリッド６１として登録する（Ｓ３３）。その登録後、処理ループＬ３０内の一連の処理が終了する。一方、何れかの距離が注記間オフセット値以下となっていた場合、Ｓ３２の判定はＮｏとなり、ここで処理ループＬ３０内の一連の処理が終了する。
【０１０７】
処理ループＬ３０内の一連の処理が終了すると、ＣＰＵ８１は、例えば移動させている位置がグリッド番号１のグリッド６１の点を通過したか否かの判定を行う。その位置がグリッド番号１のグリッド６１の点を通過することは、登録すべきグリッド６１は全て登録したことを意味する。それにより、その判定結果がＹｅｓとなった場合、処理ループＬ３０が終了し、グリッド抽出処理も終了する。その判定結果がＮｏとなった場合、登録すべきグリッド６１が残っている可能性が存在することから、処理ループＬ３０の実行が継続される。
【０１０８】
図２１は、図１８に表す注記自動配置処理内でＳ４として実行される重複部分注記展開処理のフローチャートである。次に図２１を参照し、重複部分注記展開処理について詳細に説明する。図１に表す重複注記展開部１５ｂは、ＣＰＵ８１がこの重複部分注記展開処理を実行することで実現される。
【０１０９】
この重複部分注記展開処理では、処理ループＬ４０が実行され、その処理ループＬ４０の終了に伴い、この重複部分注記展開処理が終了する。この処理ループＬ４０は、対象とするグリッド６１を変更しながら、対象とするグリッド６１での注記２５の重複の有無を確認し、重複している注記２５の展開を行うための処理ループである。それにより、対象とするグリッド６１が無くなった場合に、この処理ループＬ４０は終了する。
【０１１０】
処理ループＬ４０では、対象とするグリッド６１を選択した後、ＣＰＵ８１は、選択したグリッド６１で注記２５が複数、登録されているか否か判定する（Ｓ４１）。現在、対象としているグリッド６１に複数の注記２５が割り当てられていた場合、Ｓ４１の判定はＹｅｓとなって処理ループＬ４５に移行する。対象としているグリッド６１に割り当てられている注記２５の数が１以下であった場合、Ｓ４１の判定はＮｏとなり、ここで処理ループＬ４０内の一連の処理が終了する。
【０１１１】
処理ループＬ４５は、対象とするグリッド６１に割り当てられている注記２５毎に、対象とするグリッド６１を中心とする複数のグリッド６１を想定し、式（１）を用いて評価値αを求めるための処理ループである。それにより、処理ループＬ４５は、対象とする注記２５が無くなることで終了し、Ｓ４３に移行することとなる。
【０１１２】
この処理ループＬ４５では、対象とする注記２５を選択した後、ＣＰＵ８１は、式（１）を用いて、その対象とする注記２５の評価値αを算出する（Ｓ４２）。その評価値αの算出により、この処理ループＬ４５内の処理が終了する。
【０１１３】
重複している全ての注記２５の評価値αを算出することで処理ループＬ４５が終了すると、ＣＰＵ８１は、Ｓ４３に移行して、評価値αの大きい順に、対象とするグリッド６１を中心とする複数のグリッド６１に対応付ける注記２５の並びを決定する。その注記２５の並びを決定した後、処理ループＬ４０内の一連の処理が終了する。
【０１１４】
図２２は、図１８に表す注記自動配置処理内でＳ５として実行される展開時重複注記最適化処理のフローチャートである。最後に図２２を参照し、展開時重複注記最適化処理について詳細に説明する。図１に表す展開時重複注記最適化部１５ｃは、ＣＰＵ８１がこの展開時重複注記最適化処理を実行することで実現される。
【０１１５】
この展開時重複注記最適化処理では、処理ループＬ５０が実行され、その処理ループＬ５０の終了に伴い、この展開時重複注記最適化処理が終了する。この処理ループＬ５０は、対象とする注記２５、或いは注記群を変更しながら、グリッド６１が重複する他の注記２５、或いは注記群が存在するか否かを確認し、グリッド６１の重複を解消させるための処理ループである。上記のように、グリッド６１の重複の解消は、注記２５のグリッド６１への割り当てが最適となるように行われる。対象とする注記２５，或いは注記群は、グリッド番号が小さいグリッド６１側としていることから、注記群Ｘとして扱われる。他の注記２５、或いは注記群は注記群Ｙとして扱われる。
【０１１６】
処理ループＬ５０では、対象とする注記２５、或いは注記群を選択した後、ＣＰＵ８１は、選択した注記２５、或いは注記群よりも後方向に考慮すべき別の注記２５、或いは注記群（図２２中「対象データ」と表記）が存在するか否か判定する（Ｓ５１）。後方向上、考慮すべき別の注記２５、或いは注記群が存在する場合、Ｓ５１の判定はＹｅｓとなってＳ５２に移行する。後方向に考慮すべき別の注記２５、及び注記群の何れも存在しない場合、Ｓ５１の判定はＮｏとなり、ここで処理ループＬ５０内の一連の処理が終了する。
【０１１７】
Ｓ５２では、ＣＰＵ８１は、後方向上、考慮すべき別の注記２５、或いは注記群を注記群Ｙとし、対象とする注記２５、或いは注記群は注記群Ｘとする。次にＣＰＵ８１は、注記群Ｘと注記群Ｙの注記２５を配置するグリッド６１が重なっているか否か判定する（Ｓ５３）。１つ以上のグリッド６１が重なっている場合、Ｓ５３の判定はＹｅｓとなってＳ５４に移行する。重なっているグリッド６１が存在しない場合、Ｓ５３の判定はＮｏとなってＳ５９に移行する。
【０１１８】
Ｓ５４では、ＣＰＵ８１は、式（６）及び（７）を用いて、注記群Ｘ及びＹの移動量Ｓｘ及びＳｙを計算する。次に、ＣＰＵ８１は、求めた移動量Ｓｘに応じて、注記群Ｘを前方に移動させる（Ｓ５５）。ＣＰＵ８１は、同様に、求めた移動量Ｓｙに応じて、注記群Ｙを後方に移動させる（Ｓ５６）。
【０１１９】
Ｓ５５、及びＳ５６の実行により、注記群Ｘ及びＹのうちの少なくとも一方は、グリッド６１の重なりが解消されるように移動する。このことから、ＣＰＵ８１は、注記群Ｘ及びＹを一つにまとめ（Ｓ５７。図１４（ｂ）→図１４（ｃ）、及び図１５（ｂ）→図１５（ｄ）等）、一つにまとめた注記群を注記群Ｘとする（Ｓ５８）。その後、上記Ｓ５２に戻る。それにより、図１５（ｂ）、或いは図１５（ｄ）に表すような状態に対応する。
【０１２０】
上記Ｓ５３の判定がＮｏとなって移行するＳ５９では、注記群Ｘと注記群Ｙとが接しているか否か判定する。それらが接している場合（例えば図１５（ａ）に表すような状態）、Ｓ５９の判定はＹｅｓとなってＳ６０に移行する。それらが接していない場合、つまりそれらが離れている場合、Ｓ５９の判定はＮｏとなり、ここで処理ループＬ５０内の一連の処理が終了する。
【０１２１】
Ｓ６０では、ＣＰＵ８１は、注記群Ｘ及びＹを一つにまとめ、一つにまとめた注記群を注記群Ｘとする。その後、上記Ｓ５２に戻る。
【０１２２】
なお、本実施形態では、注記間オフセット値は注記本体２６の最大サイズを用いて決定しているが、別の情報を注記間オフセット値の決定に反映させても良い。別の情報としては、例えば注記２５の数、基準位置２８の密集度、等が考えられる。これは、注記２５の数が多くなるほど、より多くのグリッド６１を登録可能なオフセット輪郭線６０を作成しなければならないからである。また、基準位置２８が狭い範囲内に多く設定されていた場合、その範囲に近い部分のオフセット輪郭線６０に登録されているグリッド６１に全ての注記２５を割り当てるのが困難となることが考えられる。このようなことから、注記２５の数、基準位置２８の密集度、等を注記間オフセット値の決定に反映させるようにしても良い。
【０１２３】
オフセット輪郭線６０は、一つのみ作成しているが、状況に応じて、複数のオフセット輪郭線６０を作成するようにしても良い。これは、大きいサイズの注記本体２６を表示する場合であっても、引出線２７の長さを全体的により短くして、注記５を確認するうえでの視認性の低下を抑制するためである。
【０１２４】
大きいサイズの注記本体２６を表示する場合、注記間オフセット値も大きくしなければならず、引出線２７の長さは長くなりやすい。このことから、注記間オフセット値が異なる例えば２つのオフセット輪郭線６０を作成し、注記本体２６のサイズの大きさに応じて、注記２５に割り当てるグリッド６１を２つのオフセット輪郭線６０上の何れかのグリッド６１と限定するようにしても良い。そのように複数のオフセット輪郭線６０を作成する場合、注記本体２６のサイズが小さい注記２５ほど、注記間オフセット値の小さいオフセット輪郭線６０上のグリッド７１を割り当てるのが望ましい。
【０１２５】
オフセット輪郭線６０の形状は、オブジェクト２０の形状に依存する。オブジェクト２０に凹部が存在する場合、オフセット輪郭線６０にもオブジェクト２０に向かって凸となっている凹部が発生する。オフセット輪郭線６０上の凹部は、引出線２７を交差させる、引出線２７が結ばれた注記本体２６を分かり難くする、といった不具合を発生させやすい。これは、引出線２７がオフセット輪郭線６０を横切るグリッド６１に注記２５を割り当てる場合がある、１点から複数のグリッド６１にそれぞれ配置する注記本体２６と１つの基準位置を結ぶ線の傾きが狭い範囲内に収まる場合がある、といった理由からである。このことから、必要に応じて、例えばオブジェクト２０の凹部、及びその周辺に設定された基準位置２８の数、或いは／及び、基準位置２８の分布等に応じて、オフセット輪郭線６０に対し、凹部の形状を平滑化する操作を行うようにしても良い。
【０１２６】
また、本実施形態では、式（１）を用いて算出される評価値αに従い、注記２５の展開を行うようにしているが、注記２５の展開は、式（１）とは異なる式を用いて算出される評価値を用いて行うようにしても良い。移動量Ｓｘ及びＳｙの算出方法、等についても、本実施形態に限定されるものではない。
【０１２７】
また、本実施形態では、各注記２５の配置の決定の他に、配置を決定した各注記２５の表示も行うようになっている。しかし、注記自動配置装置には、注記２５を表示する機能を搭載しなくとも良い。つまり、注記自動配置装置は、例えばオブジェクト２０、及び注記２５を表示する他の装置からの要求により、注記２５の配置を決定し、決定した配置を出力する装置として実現させても良い。決定した配置を反映させた注記データ群３ｂは、ネットワーク、或いは記録媒体等を用いて出力させれば良い。
【０１２８】
上記以外にも、様々な変形を行うことができる。
【符号の説明】
【０１２９】
１    注記自動配置装置
２    データ入力部
３    外部記憶装置
３ａ    設計データ
３ｂ    注記データ群
４    表示装置
１１    システム制御部
１２    データ管理部
１２ａ    部品情報管理部
１２ｂ    注記情報管理部
１３    表示データ制御部
１４    画像データ処理部
１４ａ    ２Ｄ３Ｄデータ変換部
１４ｂ    輪郭線抽出部
１４ｃ    ２Ｄデータ加工部
１５    注記位置算出部
１５ａ    注記−グリッド距離算出部
１５ｂ    重複注記展開部
１５ｃ    添加時重複注記最適化部
１５ｄ    注記配置部
１５ｅ    オフセット輪郭線作成部
２０    オブジェクト
２０ａ    輪郭線
２５    注記
２６    注記本体
２７    引出線
２８    基準位置
６０    オフセット輪郭線
６１    グリッド
【図１】
2015088057.tif 000003
【図３】
2015088057.tif 000004
【図４】
2015088057.tif 000005
【図１２】
2015088057.tif 000006
【図１３】
2015088057.tif 000007
【図１４】
2015088057.tif 000008
【図１５】
2015088057.tif 000009
【図１８】
2015088057.tif 000010
【図１９】
2015088057.tif 000011
【図２０】
2015088057.tif 000012
【図２１】
2015088057.tif 000013
【図２２】
2015088057.tif 000014
【図２３】
2015088057.tif 000015
【図２】
2015088057.tif 000016
【図５】
2015088057.tif 000017
【図６】
2015088057.tif 000018
【図７】
2015088057.tif 000019
【図８】
2015088057.tif 000020
【図９】
2015088057.tif 000021
【図１０】
2015088057.tif 000022
【図１１】
2015088057.tif 000023
【図１６】
2015088057.tif 000024
【図１７】
2015088057.tif 000025