説明

情報生成プログラム、情報生成方法、および情報生成装置

【課題】モデルの分解方向検出の高精度化を図ること。
【解決手段】+X〜−Zの6方向の各方向について、各方向からのEリング101の投影画像(a)〜(f)を生成する。投影画像(a)〜(f)は、所定サイズのビットマップに対し、所定倍率で投影される。他の部品を表示させてその色を背景色と同色の黒にして、各方向からのEリング101の投影画像(A)〜(F)を生成する。投影画像(A)〜(F)も、投影画像(a)〜(f)と同一サイズのビットマップに対し、同一倍率で投影される。両投影画像(a)〜(f),(A)〜(F)について、同一方向からの投影画像どうしで比較する。そして、一致する白のビット数が最大である組を検出し、その投影画像の組を投影した方向を、組付方向に決定する。図1の場合は、+X方向が組付方向となり、その逆の−X方向が分解方向となる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報を生成する情報生成プログラム、情報生成方法、および情報生成装置に関する。
【背景技術】
【0002】
従来から、3Dモデルを使った3D組立アニメーションを生成する場合、ユーザは、製品を構成するすべての部品に対し、1つずつ動きを定義していく必要がある。たとえば、デジタル家電、PC(Personal Computer)、または複合機等のオフィス機器は、数十から数千、時には数万の部品点数を有する。この製品の組立アニメーションを生成するユーザ作業は、膨大な時間を要する。
【0003】
そのため、組立アニメーションを自動的に生成する技術がある。3Dモデルを使った組立アニメーションの自動作成機能として認知されている従来技術には、(1)1つ1つの部品の動きの定義はユーザが行い、その情報を基にアニメを生成する技術がある。
【0004】
(1)の従来技術としては、ユーザが設定した分解定義情報に基づき3Dモデルに動きを定義する技術(たとえば、下記特許文献1を参照。)がある。また、(1)の従来技術としては、ユーザが設定した組付順序と部品データ、組付方向データを元に動きを定義する技術(たとえば、下記特許文献2を参照。)がある。
【0005】
上述した(1)の従来技術では、組立アニメーション自体は自動生成されるが、そのアニメーションの元となる部品の抜き方向や移動量等の動きを定義する必要がある。このため、(2)部品の動きの定義自体もシステムが自動設定し、アニメを生成する技術がある。(2)の従来技術としては、干渉チェック技術を用いて、製品を構成する部品の座標系の6軸に対して干渉の発生の有無を検出し、干渉がなければその方向に分解できると解釈して、分解方向が決定できる技術(たとえば、下記特許文献3を参照。)がある。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特許第4291321号公報
【特許文献2】特開平8−106486号公報
【特許文献3】特開平10−312208号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上述した(2)の従来技術は、干渉チェックをおこなっているため、結果が求まるまでに多くの時間を要する。たとえば、実運用上で使われる製品規模(数万点)になると、干渉結果を抽出するための計算時間が膨大になる。したがって、上述した(2)の従来技術は、結果が抽出できるまで、換言すればアニメーションが生成されるまでに多くの時間を要することになる。
【0008】
また、上述した(2)の従来技術では、汎用性が低いという問題がある。たとえば、1つの製品の中には、組付時、あるいは、組立の途中で干渉が発生することを前提とした部品が数多くある。また、製品によっては、Eリングやクリップ、ネジなどの干渉が発生する部品が70%以上を含む製品も多い。
【0009】
Eリングやクリップは、軸部品に対し軸部品の軸方向に対し直交方向にはめ込まれる。したがって、軸部品からEリングやクリップを抜く場合は、Eリングやクリップは、軸方向ではなくその直交方向から抜かれることになるため、Eリングやクリップは軸部品に干渉してしまうことになる。
【0010】
また、ネジについては、設計上ネジのネジ軸やネジ穴の内周面にはネジ溝が形成されない場合がある。この場合、ネジ穴の径よりもネジ軸の径を太く(または細く)するなどして、ネジとネジ穴とが干渉するようにしている。このように、部品の大多数を占めるEリングやクリップ、ネジでは干渉が発生してしまうため、上記(2)の従来技術では、分解できる部品が制限されてしまうという問題がある。
【0011】
本発明は、上述した従来技術による問題点を解消するため、モデルの分解方向検出の高精度化を図ることができる情報生成プログラム、情報生成方法、および情報生成装置を提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明の一側面によれば、複数のモデルで組み付けられたアセンブリを記憶する記憶装置からいずれかのモデルを選択し、選択されたいずれかのモデルについて背景色と異なる色で複数の方向からの第1の投影画像群を生成するとともに、前記いずれかのモデルを前記背景色と異なる色にし前記いずれかのモデル以外の他のモデルを前記背景色と同色にしたときの前記複数の方向からの第2の投影画像群を生成し、生成された第1および第2の投影画像群を、前記複数の方向から選ばれた検証方向が同一である投影画像どうしで比較することにより、前記投影画像どうしの一致度を示すスコアを前記検証方向ごとに算出し、算出されたスコア群の中で最大スコアとなる投影画像の検証方向の逆方向を、前記アセンブリデータから前記いずれかのモデルを分解する分解方向に決定し、当該分解方向を前記いずれかのモデルに関連付けて前記記憶装置に格納する情報生成プログラム、情報生成方法、および情報生成装置が提案される。
【発明の効果】
【0013】
本発明の一側面によれば、モデルの分解方向検出の高精度化を図ることができるという効果を奏する。
【図面の簡単な説明】
【0014】
【図1】図1は、本実施の形態にかかる情報生成例を示す説明図である。
【図2】図2は、本実施の形態にかかる情報生成装置への入力データの一例を示す説明図である。
【図3】図3は、図2に示したアセンブリツリー202の一例を示す説明図である。
【図4】図4は、アセンブリの一例を示す説明図である。
【図5】図5は、部品情報のデータ構造例を示す説明図である。
【図6】図6は、アセンブリ情報のデータ構造例を示す説明図である。
【図7】図7は、図5および図6に示した相対座標値および相対姿勢を示す説明図である。
【図8】図8は、アセンブリツリー202の変換例を示す説明図である。
【図9】図9は、図8の(B)の製造フロー802を親子関係で分解した分解製造フロー901〜907を示す説明図である。
【図10】図10は、ノードのデータ構造例を示す説明図である。
【図11】図11は、分解製造フローのリスト構造例を示す説明図である。
【図12】図12は、実施の形態にかかる情報生成装置のハードウェア構成例を示すブロック図である。
【図13】図13は、情報生成装置1300の機能的構成例を示すブロック図である。
【図14】図14は、回転体の判定例を示す説明図である。
【図15】図15は、板状体の判定例を示す説明図である。
【図16】図16は、干渉判定例1を示す説明図である。
【図17】図17は、干渉判定例2を示す説明図である。
【図18】図18は、視点設定例を示す説明図である。
【図19】図19は、移動量の設定例を示す説明図である。
【図20】図20は、情報生成装置1300による情報生成処理の詳細な処理手順を示すフローチャートである。
【図21】図21は、図20に示した情報設定処理(ステップS2101)の詳細な処理手順を示すフローチャートである。
【図22】図22は、図21に示した分解方向検出処理(ステップS2109)の詳細な処理手順を示すフローチャートである。
【図23】図23は、図22に示したスコア算出処理(ステップS2209)の詳細な処理手順を示すフローチャートである。
【図24】図24は、図23に示した投影シルエット処理(ステップS2301)の詳細な処理手順を示すフローチャートである。
【図25】図25は、図23に示した回転体判定処理(ステップS2303)の詳細な処理手順を示すフローチャートである。
【図26】図26は、図23に示した板状体判定処理(ステップS2304)の詳細な処理手順を示すフローチャートである。
【図27】図27は、図23に示した分解方向判定処理(ステップS2305)の詳細な処理手順を示すフローチャートである。
【図28】図28は、図23に示した干渉判定処理(ステップS2306)の詳細な処理手順を示すフローチャートである。
【図29】図29は、図21に示した視点設定処理(ステップS2110)の詳細な処理手順を示すフローチャートである。
【図30】図30は、図21に示した移動量設定処理(ステップS2111)の詳細な処理手順を示すフローチャートである。
【図31】図31は、図20に示した再生処理(ステップS2002)の詳細な処理手順を示すフローチャートである。
【発明を実施するための形態】
【0015】
以下に添付図面を参照して、この発明にかかる情報生成プログラム、情報生成方法、および情報生成装置の実施の形態を詳細に説明する。
【0016】
<情報生成例>
図1は、本実施の形態にかかる情報生成例を示す説明図である。図1では、部品データ(以下、単に「部品」)であるシャフト102に同じく部品であるEリング101が組み付けられているアセンブリデータ(以下、「アセンブリ」)103を例に挙げる。Eリング101は、シャフト102の軸方向(図1中、+Zまたは−Z)から組み付けられたのではなく、軸方向の直交方向である+X方向から組み付けられている。Eリング101は、シャフト102への組み付けによりシャフト102に干渉している。また、Eリング101は、シャフト102の軸方向(図1中、+Zまたは−Z方向)から分解されるのではなく、軸方向の直交方向である−X方向から分解される。
【0017】
この場合、従来の干渉チェックでは計算負荷が高い上に、組付方向(+X)や分解方向(−X)、軸方向(+Z、−Z)ではEリング101がシャフト102と干渉してしまう。このため、情報生成装置は、+X〜−Zの6方向の各方向について、各方向からのEリング101の投影画像(a)〜(f)を生成する。
【0018】
なお、投影画像(a)〜(f)は、所定サイズのビットマップ画像領域(たとえば、200×200ピクセル)に対し、所定倍率で投影された画像である。また、ここでは一例として、ビットマップ画像の背景色を黒とし、被写体であるEリング101の色を白とする。なお、色については、背景色と被写体の色とが異なっていればよく、黒と白の組み合わせに限られない。
【0019】
同様に、情報生成装置は、今度は他の部品を表示させてその色を背景色と同色の黒にして、各方向からのEリング101の投影画像(A)〜(F)を生成する。投影画像(A)〜(F)も、投影画像(a)〜(f)と同一サイズのビットマップに対し、同一倍率で投影された画像である。
【0020】
そして、情報生成装置は、両投影画像(a)〜(f),(A)〜(F)について、同一方向からの投影画像同士、たとえば、投影画像の組{(a),(A)}〜{(f),(F)}ごとに比較する。そして、情報生成装置は、最も一致度が高い、すなわち、一致する白のビット数が最大である組を検出し、その投影画像の組を投影した方向を、組付方向に決定する。図1の場合は、投影画像の組{(a),(A)}の一致度が最も高いため、Eリング101の分解の際に障害となる他の部品が存在しない。したがって、+X方向が組付方向となり、その逆の−X方向が分解方向となる。これにより、Eリング101は、シャフト102に対し+X方向から組み付けられており、−X方向へ分解可能である。
【0021】
このように、本実施の形態にかかる情報生成装置は、部品点数が膨大なEリング101などの部品について従来の干渉チェックでは検出できなかった組付方向や分解方向を検出することができる。また、従来のような干渉チェックをおこなっていないため、情報生成装置は、計算負荷の低減化を図ることができる。また、単純な投影画像の比較で組付方向や分解方向の検出をおこなっているため、情報生成装置は、検出速度の高速化を図ることができる。また、図1では、Eリング101を例に挙げて説明したが、クリップやネジなど、組付先と干渉する部品についても、情報生成装置は適用できる。したがって、情報生成装置は、対象製品の種類に依存することなく、汎用性の向上を図ることができる。
【0022】
<入力データ例>
図2は、本実施の形態のかかる情報生成装置への入力データの一例を示す説明図である。入力データ200は、たとえば、3次元CAD(Computer Aided Design)システムから送信されてくるデータである。図2では、例としてマウスについての入力データ200を示している。
【0023】
入力データ200には、情報生成の対象となる対象製品(図2ではマウス)の3次元モデル201と、3次元モデル201のアセンブリツリー202と、が含まれている。アセンブリツリー202は、3次元モデル201を構成するアセンブリや部品の構成を階層構造化した情報である。
【0024】
図3は、図2に示したアセンブリツリー202の一例を示す説明図である。図3において、トップアセンブリA0は、3次元モデル201であるマウスを示している。図3の例では、トップアセンブリA0は、アセンブリA1,A5および部品p10を有する。また、アセンブリA1は、アセンブリA2,A3を有する。また、アセンブリA2は、部品p1,p2を有する。
【0025】
また、1つ上の階層のアセンブリを親アセンブリと称す。たとえば、アセンブリA2の親アセンブリはアセンブリA1である。また、1つ下の階層のアセンブリを子アセンブリと称す。たとえば、アセンブリA1の子アセンブリはアセンブリA2,A3である。
【0026】
ここで、アセンブリとは、部品やアセンブリで構成されたモデルである。部品は、これ以上分解できない最小単位のモデルである。したがって、アセンブリや部品を総称してモデルという。以下、図4で具体的に説明する。
【0027】
図4は、アセンブリの一例を示す説明図である。図4では、アセンブリ400は、ギア401と、軸402,403が組み合わされたアセンブリ404と、を有する。
【0028】
<部品情報のデータ構造例>
図5は、部品情報のデータ構造例を示す説明図である。部品情報500は、3次元モデル内の各部品が有する情報であり、情報生成装置が入力データ200を取得すると、情報生成装置が入力データ200から抽出する情報である。
【0029】
図5において、部品情報500は、識別情報項目と、形状情報項目と、相対座標値項目と、相対姿勢項目と、最優先方向項目と、6軸スコア項目と、視点項目と、移動量項目と、を有する。識別情報項目には、部品を一意に特定する識別情報が格納される。図5では、識別情報としてpiが格納されている。
【0030】
形状情報項目は、さらに、ファセット項目とファセットの法線ベクトル項目が含まれている。ファセット項目には、部品のファセット群が格納される。図5では、ni個のファセットfi−1〜fi−niが格納されている。各ファセットfi−1〜fi−niは部品を構成する3角形のポリゴンデータであり、この部品のローカル座標系を基準にした3角形の頂点座標値を有する。ファセットの法線ベクトル項目には、ファセットfi−1〜fi−niについてのni個の法線ベクトルvi−1〜vi−niが格納されている。
【0031】
相対座標値項目には、親アセンブリのローカル座標系(親アセンブリがトップアセンブリA0の場合はグローバル座標系)での親アセンブリの原点からの相対座標値が格納されている。図5では、相対座標値Ciが格納されている。相対姿勢項目には、親アセンブリのローカル座標系(親アセンブリがトップアセンブリA0の場合はグローバル座標系)での親アセンブリの姿勢からの相対姿勢Riが格納されている。相対姿勢Riは、たとえば、3×3の行列で表現される。
【0032】
最優先方向項目には、組付方向項目と分解方向項目とが含まれている。入力データ200を取得した段階では、組付方向項目および分解方向項目には何も格納されず、図1に示したように、組付方向や分解方向が検出された場合に、検出された方向が格納される。たとえば、図1のEリング101の部品情報500には、組付方向として「+X」、分解方向として「−X」が格納されることになる。
【0033】
6軸スコア項目には、ローカル座標系の各軸(+Xl〜−Zl)項目と、グローバル座標系の各軸(+Xg〜−Zg)項目と、が含まれている。入力データ200を取得した段階では、6軸スコア項目には何も格納されず、6軸スコアが算出されると、算出されたスコアが格納される。6軸スコアは、軸ごとに組付方向としての適性をあらわす指標値である。本例では、スコアが高いほど適性があるものとする。6軸スコアの算出については後述する。
【0034】
視点項目には、視点座標値が格納される。分解方向にモデルを移動させる場合、分解方向が視点方向に一致していると分解状態のアニメーションを再生しても、分解方向への移動が見えにくい。そのため、視点の位置をずらした視点座標値を格納しておくことで、分解状態のアニメーションの再生の際に視点座標値からの視点方向で表示して視認しやすくする。
【0035】
<アセンブリ情報のデータ構造例>
図6は、アセンブリ情報のデータ構造例を示す説明図である。アセンブリ情報600は、3次元モデル内の各アセンブリが有する情報であり、入力データ200を取得すると、情報生成装置が入力データ200から抽出する情報である。
【0036】
図6において、アセンブリ情報600は、識別情報項目と、直下の構成モデル数項目と、親アセンブリの識別情報項目と、相対座標値項目と、相対姿勢項目と、最優先方向項目と、6軸スコア項目と、視点項目と、移動量項目と、を有する。直下の構成モデル数項目および親アセンブリの識別情報項目以外の項目群は、部品情報500と同一内容であるため、説明を省略する。
【0037】
直下の構成モデル数項目には、直下の構成モデル数mjが格納される。直下の構成モデル数とは、自身アセンブリの1つ下の階層での構成モデル数である。1つ下の階層であっても、構成モデル以外のモデルはカウントしない。たとえば、図3において、アセンブリA3の場合、1つ下の階層には、アセンブリA4、部品p1〜p4,p7,p8が存在するが、アセンブリA3の1つ下の階層の構成モデルは、アセンブリA4,部品p3,p4である。したがって、アセンブリA3の場合の直下の構成モデル数mjは、mj=3となる。
【0038】
また、親アセンブリの識別情報項目には、親アセンブリの識別情報Ajが格納される。たとえば、アセンブリA3の場合、親アセンブリはアセンブリA1であるため、親アセンブリの識別情報項目には、A1が格納される。これにより、情報生成装置は、アセンブリごとにどのアセンブリと親子関係があるかを特定することができる。
【0039】
図7は、図5および図6に示した相対座標値および相対姿勢を示す説明図である。ここでは、モデルMの相対座標値および相対姿勢について説明する。図7において、Xg軸、Yg軸およびZg軸からなるグローバル座標系をCgとする。Q0は、グローバル座標系Cgの原点である。グローバル座標系Cgは、図3のトップアセンブリA0となるモデルM0を定義する空間である。モデルM0を構成するファセットの座標値は、原点Q0を基準に設定される。
【0040】
Q1は、Xl1軸、Yl1軸およびZl1軸からなるローカル座標系Cl1の原点である。ローカル座標系Cl1は、たとえば、図3のトップアセンブリA0を親アセンブリとするアセンブリA1となるモデルM1を定義する空間である。ローカル座標系Cl1の原点Q1は、グローバル座標系Cgの原点Q0との相対位置により決定される。モデルM1を構成するファセットの座標値は、原点Q1を基準に設定される。また、ローカル座標系Cl1の相対姿勢R1は、グローバル座標系CgのモデルM0の姿勢からの相対姿勢となる。
【0041】
Q2は、Xl2軸、Yl2軸およびZl2軸からなるローカル座標系Cl2の原点である。ローカル座標系Cl2は、たとえば、図3のアセンブリA1を親アセンブリとするアセンブリA2となるモデルM2を定義する空間である。ローカル座標系Cl2の原点Q2は、ローカル座標系Cl1の原点Q1との相対位置により決定される。モデルM2を構成するファセットの座標値は、原点Q2を基準に設定される。また、ローカル座標系Cl2の相対姿勢R2は、ローカル座標系Cl1のモデルM1の姿勢からの相対姿勢となる。
【0042】
このように、モデルの相対座標値は、親アセンブリの原点からの相対位置で決定された原点を基準に設定され、モデルの姿勢は、親アセンブリの姿勢を基準に設定されることになる。
【0043】
<アセンブリツリー202の変換例>
図8は、アセンブリツリー202の変換例を示す説明図である。図8の(A)では、図3に示したアセンブリツリー202が、等価な製造フロー801に変換された状態を示している。製造フロー801への変換については手動でも自動でもよい。図8の(A)の製造フロー801では、たとえば、部品p7,p8を組み合わせてアセンブリA6とし、部品p9とアセンブリA6とを組み合わせてアセンブリA5とするように、上から下への方向が組付順を示している。したがって、その逆の下から上の方向が分解順を示すことになる。
【0044】
図8の(B)の製造フロー802では、所望の位置に工程が挿入されている。工程は、ユーザ操作により挿入される。工程は、組付けに必要な作業を示している。たとえば、(B)において、部品p2については、工程F2を施し、そのあとで部品p1と組み合わせることで、アセンブリA2が得られることになる。
【0045】
図9は、図8の(B)の製造フロー802を親子関係で分解した分解製造フロー901〜907を示す説明図である。たとえば、分解製造フロー902は、アセンブリA2,A3を組み付けてアセンブリA1を生成するフローである。また、分解製造フロー903は、アセンブリp1,p2を組み付けてアセンブリA2を生成するフローである。
【0046】
<リスト構造>
つぎに、製造フロー802のデータ構造について説明する。本実施の形態では、上述した部品情報500やアセンブリ情報600を、一例としてノードを連結したリスト構造で管理する。
【0047】
図10は、ノードのデータ構造例を示す説明図である。図10において、ノードは、ノード番号と、ノード情報と、次ノードへのポインタと、を含む。ノード番号は、組立順を示す番号であり、製造フロー802について1から順にナンバリングされる。ノード番号の昇順が組立順となり、その逆順が分解順となる。
【0048】
また、ノード情報は、モデルの識別情報と、種別フラグと、フロー記号と、工程情報と、を含む。モデルの識別情報とは、ノードに対応する部品またはアセンブリの識別情報である。モデルの識別情報がポインタとなり、部品情報500やアセンブリ情報600を指定することができる。
【0049】
種別フラグとは、ノードが、部品、アセンブリ、工程のどのノードに該当するかを識別するフラグである。たとえば、部品の種別フラグを「0」、アセンブリの種別フラグを「1」、工程の種別フラグを「2」とする。フロー記号は、図8に示した記号である。工程情報とは、ノードの種別が工程である場合、工程の詳細な内容を示す文字列である。当該文字列は、ユーザ操作により入力される。
【0050】
次ノードへのポインタには、次ノードのノード番号が格納される。これにより、次ノードを指定することができる。また、次ノードからも指定される。次ノードがない場合、当該ノードが最後尾のノードとなるため、「Null」が格納される。
【0051】
図11は、分解製造フローのリスト構造例を示す説明図である。図11に示したリスト構造1101は、図9に示した分解製造フロー901のリスト構造であり、ノードN1〜N5が連結されている。
【0052】
<情報生成装置のハードウェア構成例>
図12は、実施の形態にかかる情報生成装置のハードウェア構成例を示すブロック図である。図12において、情報生成装置は、CPU(Central Processing Unit)1201と、ROM(Read Only Memory)1202と、RAM(Random Access Memory)1203と、磁気ディスクドライブ1204と、磁気ディスク1205と、光ディスクドライブ1206と、光ディスク1207と、ディスプレイ1208と、I/F(Interface)1209と、キーボード1210と、マウス1211と、スキャナ1212と、プリンタ1213と、を備えている。また、各構成部はバス1200によってそれぞれ接続されている。
【0053】
ここで、CPU1201は、情報生成装置の全体の制御を司る。ROM1202は、ブートプログラムなどのプログラムを記憶している。RAM1203は、CPU1201のワークエリアとして使用される。磁気ディスクドライブ1204は、CPU1201の制御にしたがって磁気ディスク1205に対するデータのリード/ライトを制御する。磁気ディスク1205は、磁気ディスクドライブ1204の制御で書き込まれたデータを記憶する。
【0054】
光ディスクドライブ1206は、CPU1201の制御にしたがって光ディスク1207に対するデータのリード/ライトを制御する。光ディスク1207は、光ディスクドライブ1206の制御で書き込まれたデータを記憶したり、光ディスク1207に記憶されたデータをコンピュータに読み取らせたりする。
【0055】
ディスプレイ1208は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ1208は、たとえば、液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【0056】
インターフェース(以下、「I/F」と略する。)1209は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク1214に接続され、このネットワーク1214を介して他の装置に接続される。そして、I/F1209は、ネットワーク1214と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F1209には、たとえばモデムやLANアダプタなどを採用することができる。
【0057】
キーボード1210は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス1211は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【0058】
スキャナ1212は、画像を光学的に読み取り、情報生成装置内に画像データを取り込む。なお、スキャナ1212は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ1213は、画像データや文書データを印刷する。プリンタ1213には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【0059】
<情報生成装置の機能的構成例>
図13は、情報生成装置1300の機能的構成例を示すブロック図である。情報生成装置1300は、記憶部1301と、入力部1302と、選択部1303と、生成部1304と、算出部1305と、判定部1306と、決定部1307と、設定部1308と、再生部1309と、を備えている。
【0060】
記憶部1301は、具体的には、たとえば、図12に示したROM1202、RAM1203、磁気ディスク1205、光ディスク1207などの記憶装置によりその機能を実現する。また、入力部1302〜再生部1309は、具体的には、たとえば、図12に示したROM1202、RAM1203、磁気ディスク1205、光ディスク1207などの記憶装置に記憶されたプログラムをCPU1201に実行させることにより、または、I/F1209により、その機能を実現する。
【0061】
入力部1302は、データの入力を受け付ける。具体的には、たとえば、図2に示したように、3次元モデル201やアセンブリツリー202の入力を受け付ける。入力データ200は、記憶部1301に格納される。その後、記憶部1301には、図5の部品情報500、図6のアセンブリ情報600、図8の(B)の製造フローや図11のリスト構造が格納されるものとする。
【0062】
選択部1303は、複数のモデルで組み付けられたアセンブリを記憶する記憶装置からいずれかのモデルを選択する。ここでは、すでに、処理対象となる分解製造フローのリスト構造が指定されているものとする。そして、選択部1303は、リスト構造の最後尾のノードから順次モデルを選択することになる。
【0063】
たとえば、図11のリスト構造1101の場合、選択部1303は、最後尾のノードN5から順次選択し、部品p10を選択モデルとして選択し、つぎに、ノードN4のアセンブリA5を選択モデルとして選択する。つぎのノードN3は、工程であるため選択されず、ノードN2のアセンブリA1が選択されることになる。先頭のノードN1まで選択されると、選択すべきモデルがないため、終了する。
【0064】
生成部1304は、第1の領域に対し、選択部1303での選択モデルを第1の領域の背景色と異なる色で複数の方向から投影することにより、第1の投影画像群を生成する。具体的には、たとえば、生成部1304は、選択モデルについて、そのローカル座標系の6方向(+Xl〜−Zl)とグローバル座標系の6方向(+Xg〜−Zg)の各々の方向から第1の投影画像群を生成する。投影先となる第1の領域とは、たとえば、図1に示した所定サイズのビットマップ画像領域(たとえば、200×200ピクセル)である。生成部1304は、ローカル座標系とグローバル座標系とが一致する場合は、いずれか一方の座標系の6方向について生成することになる。これにより、同一処理の重複を防止でき、処理の高速化を図ることができる。
【0065】
ここで、ローカル座標系とグローバル座標系とが一致する場合、図1に示したように、生成部1304は、第1の投影画像群として、投影画像(a)〜(f)を生成する。この場合、選択モデル(Eリング101)は背景色(たとえば、黒)と異なる色(白)で投影される。したがって、選択モデルの投影箇所のビットを計数されることになる。なお、ローカル座標系とグローバル座標系とが一致しない場合がある。たとえば、モデルのローカル座標系に対し、グローバル座標系では、斜めに組み付けられている場合などである。このような場合は、第1および第2の投影画像群は、それぞれ12方向分生成されることになる。
【0066】
また、生成部1304は、第1の領域と同サイズの第2の領域に対し、選択モデルを背景色と異なる色にし、選択モデル以外の他のモデルを背景色と同色にして、複数の方向から投影することにより、第2の投影画像群を生成する。具体的には、たとえば、生成部1304は、選択モデルについて、そのローカル座標系の6方向(+Xl〜−Zl)とグローバル座標系の6方向(+Xg〜−Zg)の各々の方向から第2の投影画像群を生成する。投影先となる第2の領域とは、第1の領域と同サイズであり、たとえば、図1に示した所定サイズのビットマップ画像領域(たとえば、200×200ピクセル)である。生成部1304は、ローカル座標系とグローバル座標系とが一致する場合は、いずれか一方の座標系の6方向について生成することになる。これにより、同一処理の重複を防止でき、処理の高速化を図ることができる。
【0067】
同様に、ローカル座標系とグローバル座標系とが一致する場合、図1に示したように、生成部1304は、第2の投影画像群として、投影画像(A)〜(F)を生成する。この場合、選択モデル(たとえば、図1のEリング101)は背景色(たとえば、黒)と異なる色(白)で投影され、他のモデル(たとえば、図1のシャフト102)は背景色で投影される。したがって、干渉状態の選択モデルの投影箇所のビットが計数されることになる。
【0068】
算出部1305は、生成部1304によって生成された第1および第2の投影画像群を、複数の方向から選ばれた検証方向が同一である投影画像どうしで比較することにより、投影画像どうしの一致度を示すスコアを検証方向ごとに算出する。図1を例に挙げて詳細に説明する。なお、ここでは、図1の座標系をローカル座標系として説明する。
【0069】
複数の方向から選ばれた検証方向とは、図1の場合、+X〜−Zから順次選ばれる方向である。算出部1305は、検証方向が同一である投影画像どうしを比較する。たとえば、算出部1305は、検証方向が+Xである場合、投影画像(a),(A)を比較し、検証方向が−Xである場合、投影画像(b),(B)を比較する。たとえば、以下のように比較される。
【0070】
図1において、投影画像(a)〜(f)のうち選択モデルであるEリングの画像を示す白色のビット数の計数結果WB1を、それぞれ、
WB1(a)= 2000
WB1(b)= 2000
WB1(c)= 2000
WB1(d)= 2000
WB1(e)=13000
WB1(f)=13000
とする。
【0071】
また、図1において、投影画像(A)〜(F)のうち選択モデルであるEリングの画像を示す白色のビット数の計数結果WB2を、それぞれ、
WB2(A)=2000
WB2(B)=1700
WB2(C)=2000
WB2(D)=1700
WB2(E)=9000
WB2(F)=9500
とする。
【0072】
つぎに、算出部1305は同一方向どうしでスコアを算出する。一例として、スコアは、下記式(1)により算出される。
【0073】
スコアBp=(WB1/WB2)×100・・・(1)
【0074】
したがって、検証方向ごとのスコアBpは以下のようになる。
Bp(+Xl)=100
Bp(−Xl)= 85
Bp(+Yl)=100
Bp(−Yl)= 85
Bp(+Zl)= 70
Bp(−Zl)= 73
【0075】
第2の投影画像群は他のモデルとの干渉状態を示しており干渉部分が黒のビットとなるため、スコアBpは100以下の得点となる。第2の投影画像においても干渉状態にならない場合は、最高得点の100となる。このように、スコアBpが高いほど、第1の投影画像における選択モデルの投影箇所(白のビット)と第2の投影画像における選択モデルの投影箇所(白のビット)との一致数が高くなる。換言すれば、一致数が高いということは、その検証方向の逆方向に選択モデルと干渉する箇所が少ないことを意味する。したがって、選択モデルが検証方向の逆方向に抜ける可能性が高くなる。上記の例では、+X方向および+Y方向のスコアBpがともに100であるため、その逆方向である−X方向または−Y方向に分解できる可能性が高いことを示している。
【0076】
判定部1306は、回転体判定部1361と、板状体判定部1362と、方向判定部1363と、干渉判定部1364と、を有する。判定部では、回転体判定部1361〜干渉判定部1364の判定をおこなうことで、スコアBpに対し加点または減点する。なお、回転体判定部1361〜干渉判定部1364の実行は任意である。たとえば、回転体判定部1361〜干渉判定部1364のすべてを実行してもよく、また、少なくともいずれか1つを実行してもよい。また、いずれも実行しなくてもよい。
【0077】
まず、回転体判定部1361について説明する。回転体判定は、組立の実業務において「回転体の形状を持つモデルの組付方向は、回転軸方向から組み付ける割合が高い」ことからスコアBpの加点条件として実行される。もし、選択モデルが検証方向から見たときに回転体であると判定された場合は、現在の視点方向である検証方向は、回転軸方向となる。以下、回転体の判定内容について説明する。
【0078】
回転体判定部1361は、選択モデルを検証方向から投影した投影画像の外接矩形の形状と、投影画像を所定角度回転させた場合の回転後の投影画像の外接矩形の形状と、に基づいて、選択モデルが回転体であるか否かを判定する。
【0079】
具体的には、たとえば、回転体判定部1361は、検証方向の座標系で選択モデルのバウンディングボックスを計算する。検証方向の座標系とは、検証方向が+Xl〜−Zlの場合は選択モデルのローカル座標系であり、検証方向が+Xg〜−Zgの場合は選択モデルのグローバル座標系である。また、バウンディングボックスは選択モデルの外接直方体である。
【0080】
回転体判定部1361は、検証方向に直交する2軸からなる投影面に、バウンディングボックスを投影することで、投影画像を生成する。たとえば、検証方向が+Xlの場合、回転体判定部1361は、+Xlに直交する+Y,+Zからなる投影面にバウンディングボックスを投影する。ここで、回転体判定部1361は、バウンディングボックスの投影画像の縦の長さをV、横の長さをHとし、縦横比V/Hを求める。
【0081】
回転体判定部1361は、バウンディングボックスとともに投影された選択モデルの投影画像を、当該投影画像の中心を回転中心にして、0度、15度、30度、45度半時計回り(時計回りでもよい)に回転させた回転後の選択モデルの投影画像を生成する。ここでは、15度刻みで3回回転させているが、ユーザは、刻み角度や回転回数は任意に設定することができる。
【0082】
選択モデルの投影画像が回転させられると、選択モデルを外接するバウンディングボックスの投影画像の縦Vおよび横Hも変化する。回転による縦横比V/Hの変化が許容範囲である場合、選択モデルは回転体であると判定される。
【0083】
図14は、回転体の判定例を示す説明図である。(A)は、選択モデルの投影画像が正方形の例であり、(B)は、選択モデルの投影画像が5角形の例であり、(C)は、選択モデルの投影画像が正8角形の例である。
【0084】
(A)および(C)は、それぞれの回転角度において縦横比V/Hが1.0であるため、選択モデルは回転体と判定される。これに対し、(B)は、回転角度が15度、30度、45度のときに、許容範囲(1.0±0.05)の範囲外になるため、選択モデルは回転体でないと判定される。なお、本例では、回転角度が15度、30度、45度のいずれも許容範囲外の場合、選択モデルは回転体でないと判定したが、少なくともいずれか1つでも許容範囲外の場合に選択モデルは回転体でないと判定してもよい。
【0085】
回転体であると判定された場合は、算出部1305は、選択モデルの加点スコアAP1をスコアBpに加算することになる。
【0086】
つぎに、板状体判定部1362について説明する。板状体判定は、組立の実業務において「組付時の支持(アームで掴む)や、位置合わせの観点からも、板面の法線方向が望ましい」ため、実行される。以下、板状体の判定内容について説明する。
【0087】
板状体判定部1362は、選択モデルの検証方向の長さと、複数の方向のうち検証方向およびその逆方向以外の方向の長さと、に基づいて、選択モデルが検証方向に組み付けられる板状体であるか否かを判定する。具体的には、たとえば、板状体判定部1362は、検証方向の座標系での選択モデルのバウンディングボックスを計算する。
【0088】
そして、板状体判定部1362は、検証方向の座標系で定義される3軸方向におけるバウンディングボックスの長さを求める。そして、板状体判定部1362は、検証方向以外の2軸の方向の長さが、検証方向の長さの所定倍(たとえば、20倍)であるか否かを判定する。所定倍以上であれば、選択モデルは板状体と判定される。
【0089】
図15は、板状体の判定例を示す説明図である。図15において、Bは選択モデルのバウンディングボックスであり、D(j)は検証方向である。また、L1〜L3は、検証方向D(j)の座標系での軸方向でのバウンディングボックスBの長さである。L1は、検証方向D(j)の長さである。この場合、L2、L3がL2の所定倍以上の長さであれば、バウンディングボックスBの算出元の選択モデルは板状体と判定される。
【0090】
板状体であると判定された場合は、算出部1305は、加点スコアAP2をスコアBpに加算することになる。
【0091】
つぎに、方向判定部1363について説明する。方向判定については、「組付け作業」と考えると、同一の組付方向が連続していた方が好ましく、組付先のモデルの無駄な回転や反転を控える方に加点するという考え方から加点処理として実行される。したがって、方向判定部1363は、前回の選択モデルで決定された分解方向を、前回の選択モデルの部品情報500またはアセンブリ情報600から確認する。そして、検証方向と逆方向である場合、算出部1305は、加点スコアAP3をスコアBpに加算することになる。
【0092】
つぎに、干渉判定部1364について説明する。干渉判定は、干渉の発生自体が、組付の可否、または分解の可否の直接の要因とはならないが、分解方向の決定精度を高めるための処理として実行される。特に、干渉判定は、工業製品内に多く使われるEリング101やカーテンレールのスライド部品のように、モデル形状が凹形状である場合に有効である。このような形状のモデルが、リングの軸方向に分解する(または軸方向から組み付ける)ように見えても、実際の組立では軸に垂直方向へ抜く(または垂直方向から組み付けられる)モデルである場合、抜き方向(分解方向)の決定精度を高めることができる。以下、干渉判定内容について説明する。
【0093】
干渉判定部1364は、選択モデルを、検証方向の逆方向に、検証モデルの検証方向での長さを超えない所定量移動させることにより、移動前後で干渉するか否かを判定する。具体的には、たとえば、干渉判定部1364では、検証方向の座標系での選択モデルのバウンディングボックスを求める。つぎに、干渉判定部1364は、バウンディングボックスからパラメタ群(高さ、幅、奥行き)を計算する。そして、干渉判定部1364は、パラメタ群のうち検証方向と同一方向のパラメタの値の長さの1/4または1/2だけ、検証方向とは逆方向となる分解方向に選択モデルを移動させる。干渉判定部1364は、移動前の選択モデルと移動後の選択モデルとで干渉チェックを実行する。
【0094】
図16は、干渉判定例1を示す説明図である。図16では、選択モデルとしてEリング101を例に挙げて説明している。図16では、検証方向D(j)の逆方向に、検証方向と同一方向のパラメタの値Lの1/2を移動させた例である。また、図16中、B1は移動前のバウンディングボックス、B2は移動後のバウンディングボックス、M1は移動前の選択モデル、M2は移動後の選択モデルである。また、M0は、選択モデルMの組付先のモデルである。
【0095】
(A)の場合、選択モデルM1を検証方向D(j)の逆方向に移動させると、選択モデルM1,M2は干渉しない。したがって、検証方向D(j)のスコアBpに加点スコアAP4が加点されることになる。一方、(B)の場合、選択モデルM1を検証方向D(j)の逆方向に移動させると、選択モデルM1,M2は干渉する。したがって、検証方向D(j)のスコアBpに加点スコアAP4が加点されないことになる。
【0096】
図17は、干渉判定例2を示す説明図である。図17では、選択モデルとしてOリングを例に挙げて説明している。図17では、Oリングであるため、検証方向D(j)がどの向きであっても、選択モデルM1を検証方向D(j)の逆方向に移動させると、選択モデルM1,M2は干渉する。したがって、検証方向D(j)のスコアBpに加点スコアAP4が加点されないことになる。
【0097】
干渉判定部1364では、従来の干渉チェックのように微小量移動させる都度干渉チェックするのではなく、一律に一定量移動させて移動前後のモデルどうしで干渉判定をおこなうため、干渉判定処理の簡略化を図ることができる。また、移動量を、検証モデルの検証方向での長さを超えない所定量、たとえば、検証方向D(j)の長さの1/2や1/4としている。したがって、干渉判定部1364は、Eリング101やクリップなどの非環状部品が組付先と干渉しない状態を検出することができる。すなわち、干渉判定部1364は、選択モデルが非環状部品である場合に、どの方向から組み付けられ、または、どの方向へ分解されるかを特定することができる。
【0098】
干渉判定部1364で干渉していないと判定された場合は、算出部1305は、加点スコアAP4をスコアBpに加算することになる。
【0099】
決定部1307は、算出部1305によって算出されたスコア群の中で最大スコアとなる投影画像の検証方向の逆方向を、アセンブリデータから選択モデルを分解する分解方向に決定し、当該分解方向を選択モデルに関連付けて記憶部1301に格納する。具体的には、たとえば、決定部1307は、ローカル座標系の6方向およびグローバル座標系の6方向の計12方向から得られたスコアBpのうち、最大スコアとなる投影画像を投影した検証方向の逆方向を、分解方向に決定する。決定部1307は、また、最大スコアとなる投影画像を投影した検証方向を、組付方向に決定する。決定部1307は、決定された分解方向および組付方向を、選択モデルの部品情報500またはアセンブリ情報600の最優先方向項目に保存する。
【0100】
設定部1308は、視点設定部1381と移動量設定部1382とを有する。視点設定部1381は、選択モデルの分解方向の注視点が同じでかつ方向が異なる視点方向の視点を設定し、選択モデルに関連付けて記憶部1301に格納する。分解方向からの視点では、奥行き方向にモデルが移動するため、アニメーションとしては分かり辛い。そのため、視点設定部1381は、たとえば、天頂角と方位角をそれぞれ所定角度(たとえば30度)傾けた位置の座標値を視点として、部品情報500またはアセンブリ情報600の視点項目に保存する。
【0101】
図18は、視点設定例を示す説明図である。図18において、Mは対象とするモデル、Pcは視点、Ppは注視点、D-は決定部1307で決定されたモデルMの分解方向、Dcは変更後の視点方向である。視点設定部1381では、注視点Ppはそのままにし、視点位置だけ変更した視点方向Dcを設定する。(A)は、視点設定前の状態である。(B)は、水平角θ分、視点Pcを注視点Ppを中心に旋回させた状態を示している。(C)は、(B)の状態から天頂角φ分、視点Pcを注視点Ppを中心に旋回させた状態を示している。
【0102】
なお、視点設定部1381での設定では、水平角θ分の旋回だけでもよく、頂点角φ分の旋回だけでもよい。また、視点方向を回転軸とする回転角分の旋回をしてもよい。また、これら旋回に限らず、視点Pcを平行移動させることとしてもよい。視点設定部1381は、このようにして視点を設定することで、アニメーション再生のときの見易さの向上を図ることができる。
【0103】
移動量設定部1382は、選択モデルの分解方向の長さに基づいて、選択モデルを分解方向に移動させる移動量を設定し、選択モデルに関連付けて記憶装置に格納する。具体的には、たとえば、移動量設定部1382は、選択モデルの分解方向の座標系で選択モデルのバウンディングボックスのパラメタ群(高さ、幅、奥行き)を計算する。そして、移動量設定部1382は、パラメタ群のうち選択モデルの分解方向と同一方向となるパラメタの値を所定倍(たとえば3倍)して、移動量に設定する。
【0104】
図19は、移動量の設定例を示す説明図である。図19において、M0が組付先のモデルであり、M1が選択モデルである。図19では、選択モデルM1のバウンディングボックスにおける分解方向の長さを200とする。この場合、たとえば、200×3=600が移動量となる。このように、選択モデルの分解方向と同一方向となるパラメタの値を所定倍して移動量を設定することで、アセンブリから選択モデルが十分離されるため、分解されたことを容易に視認することができる。
【0105】
<情報生成処理>
図20は、情報生成装置1300による情報生成処理の詳細な処理手順を示すフローチャートである。情報生成装置1300は、情報設定処理(ステップS2001)と、再生処理(ステップS2002)とを実行する。情報設定処理(ステップS2001)では、選択モデルごとに分解方向および組付方向、視点、移動量が設定され、再生処理(ステップS2002)では、情報設定処理(ステップS2001)で設定された情報を用いて分解アニメーションを再生する。組付アニメーションの再生も実行してもよい。なお、情報設定処理(ステップS2001)の詳細は図21で説明し、再生処理(ステップS2002)の詳細は図31で説明する。
【0106】
図21は、図20に示した情報設定処理(ステップS2101)の詳細な処理手順を示すフローチャートである。まず、情報生成装置1300は、対象アセンブリが指定されるのを待ち受ける(ステップS2101:No)。たとえば、情報生成装置1300は、製造フローの中から対象アセンブリがユーザ操作により指定されるのを待ち受ける。
【0107】
対象アセンブリが指定された場合(ステップS2101:Yes)、情報生成装置1300は、対象アセンブリの直下の階層のモデル数Nを検出する(ステップS2102)。具体的には、たとえば、対象アセンブリのアセンブリ情報600における直下の構成モデル数項目に格納されている値を抽出する。この値が、対象アセンブリについての分解製造フロー内のモデル数と一致することになる。
【0108】
つぎに、情報生成装置1300は、記憶装置に記憶されている分解製造フロー群から対象アセンブリの分解製造フローを特定し、そのリスト構造を取得する(ステップS2103)。たとえば、対象アセンブリがA0の場合、図9の分解製造フロー901に対応するリスト構造1101(図11)を取得する。
【0109】
そして、情報生成装置1300は、カウンタのインデックスiをi=1とし(ステップS2104)、i>Nであるか否かを判断する(ステップS2105)。すなわち、情報生成装置1300が、取得したリスト構造内のモデルをすべて選択したか否かを判断することになる。
【0110】
i>Nでない場合(ステップS2105:No)、情報生成装置1300は、対象アセンブリのリスト構造の未選択ノードのうち最後尾のノードを選択する(ステップS2106)。ノードの選択順は任意でもよいが、最後尾のノードから選択することで、製造フローにおいて最後に組み付けられたモデルから順に選択することができる。
【0111】
そして、情報生成装置1300は、選択ノードから種別フラグを抽出し(ステップS2107)、選択ノードがモデルであるか否かを判断する(ステップS2108)。種別フラグが「0」または「1」であればモデル、「2」は工程であるため、モデルではない。
【0112】
このあと、選択ノードがモデルでないと判断された場合(ステップS2108:No)、ステップS2112に移行する。一方、選択ノードがモデルであると判断された場合(ステップS2108:Yes)、情報生成装置1300は、分解方向検出処理(ステップS2109)、視点設定処理(ステップS2110)、移動量設定処理(ステップS2111)を実行し、ステップS2112に移行する。
【0113】
分解方向検出処理(ステップS2109)は、モデルであると判断された選択ノード、すなわち、選択モデルの分解方向を検出する処理である。詳細は、図22で説明する。視点設定処理(ステップS2110)は、選択モデルの視点を設定する処理である。詳細は、図29で説明する。また、移動量設定処理(ステップS2111)は、選択モデルの移動量を設定する処理である。詳細は、図30で説明する。
【0114】
ステップS2112では、カウンタのインデックスiをインクリメントして(ステップS2112)、ステップS2105に戻る。そして、ステップS2105において、i>Nと判断された場合(ステップS2105:Yes)、図20に示した再生処理(ステップS2002)に移行することになる。このように、情報設定処理(ステップS2001)によれば、選択モデルごとに分解方向および組付方向、視点、移動量を設定することができる。
【0115】
図22は、図21に示した分解方向検出処理(ステップS2109)の詳細な処理手順を示すフローチャートである。図21において、まず、情報生成装置1300は、スコアBp、加点スコアAP1〜AP4を初期化(=0)し(ステップS2201)、選択モデルのローカル座標系を取得する(ステップS2202)。また、情報生成装置1300は、選択モデルのグローバル座標系を取得する(ステップS2203)。ローカル座標系およびグローバル座標系については、図7に示した手法で求められる。
【0116】
つぎに、情報生成装置1300は、取得したローカル座標系とグローバル座標系が一致するか否かを判断する(ステップS2204)。一致する場合(ステップS2204:Yes)、情報生成装置1300は、検証すべき方向群をローカル座標系の正負の軸方向である6方向(+Xl〜−Zl)に決定して(ステップS2205)、ステップS2207に移行する。一方、不一致の場合(ステップS2204:No)、情報生成装置1300は、検証すべき方向群を、ローカル座標系およびグローバル座標系のそれぞれの正負の軸方向である12方向(+Xl〜−Zl、+Xg〜−Zg)に決定する(ステップS2206)。そして、ステップS2207に移行する。
【0117】
このあと、情報生成装置1300は、検証方向のインデックスjをj=1とし(ステップS2207)、検証方向D(j)を設定する(ステップS2208)。ここで、検証方向D(j)については、ステップS2205で6方向になった場合は、6方向(+Xl〜−Zl)の中から設定され、ステップS2206で12方向になった場合は、12方向(+Xl〜−Zl、+Xg〜−Zg)の中から設定される。
【0118】
そして、情報生成装置1300は、スコア算出処理を実行する(ステップS2209)。スコア算出処理(ステップS2209)は、検証方向D(j)ごとに、その逆方向が選択モデルの分解方向であるかを示すスコアBpを算出する処理である。スコア算出処理(ステップS2209)の詳細については図23で説明する。
【0119】
スコア算出処理(ステップS2209)のあと、情報生成装置1300は、算出されたスコアBpを保存する(ステップS2210)。たとえば、選択モデルが部品であり、検証方向D(j)が「+Xl」の場合は、選択モデルの部品情報500における6軸スコア項目の+Xl項目に、算出されたスコアBpを保存する。また、選択モデルがアセンブリであり、検証方向D(j)が「+Xg」の場合は、選択モデルのアセンブリ情報600における6軸スコア項目の+Xg項目に、算出されたスコアBpを保存する。
【0120】
この後、情報生成装置1300は、j>Mであるか否かを判断する(ステップS2211)。Mは検証すべき方向群の数である。たとえば、ステップS2205で6方向になった場合は、M=6、ステップS2206で12方向になった場合は、M=12である。
【0121】
j>Mでない場合(ステップS2211:No)、検証していない方向があるため、情報生成装置1300は、jをインクリメントし(ステップS2212)、スコアBpを初期化して(ステップS2213)、ステップS2208に戻る。一方、j>Mである場合(ステップS2211:Yes)、情報生成装置1300は、M個の方向のスコア群の中から最高得点のスコアを特定し、そのスコアを得た方向(組付方向)の逆方向を分解方向に決定する(ステップS2214)。そして、部品情報500またはアセンブリ情報600の最優先方向項目に、分解方向と組付方向を保存する。このあと、視点設定処理(ステップS2110)に移行することになる。
【0122】
図23は、図22に示したスコア算出処理(ステップS2209)の詳細な処理手順を示すフローチャートである。まず、情報生成装置1300は、投影シルエット処理を実行する(ステップS2301)。投影シルエット処理(ステップS2301)は、図1および算出部1305で説明したように、スコアBpを算出する処理である。投影シルエット処理(ステップS2301)の詳細については図24で説明する。
【0123】
投影シルエット処理(ステップS2301)のあと、情報生成装置1300は、投影シルエット処理(ステップS2301)で算出されたスコアBpがしきい値以上であるか否かを判断する(ステップS2302)。本例では、スコアBpの上限が100であるため、一例としてしきい値を50とする。スコアBpがしきい値以上である場合(ステップS2302:Yes)、情報生成装置1300は、回転体判定処理(ステップS2303)、板状体判定処理(ステップS2304)、分解方向判定処理(ステップS2305)、干渉判定処理(ステップS2306)を実行することで、スコアBpを更新する(ステップS2307)。この後、ステップS2210に移行する。
【0124】
一方、スコアBpがしきい値以上でない場合(ステップS2302:No)、その方向の逆方向からは分解できないと判断する。そのため、回転体判定処理(ステップS2303)〜干渉判定処理(ステップS2306)を実行せずに、ステップS2210に移行する。
【0125】
図24は、図23に示した投影シルエット処理(ステップS2301)の詳細な処理手順を示すフローチャートである。まず、情報生成装置1300は、描画作業領域となるビットマップの背景色、たとえば、黒に設定する(ステップS2401)。つぎに、情報生成装置1300は、対象アセンブリのうち選択モデルを背景色とは異なる特定の色、たとえば、白で表示する(ステップS2402)。このとき、選択モデル以外のモデルは非表示にする。
【0126】
そして、情報生成装置1300は、検証方向D(j)を視点方向とし、描画作業領域に選択モデルが収まる倍率で、選択モデルを描画作業領域に投影する(ステップS2403)。このあと、情報生成装置1300は、投影箇所である選択モデルの特定の色(白)のビット数WB1をカウントする(ステップS2404)。
【0127】
つぎに、情報生成装置1300は、対象アセンブリを表示させ(ステップS2405)、選択モデルを特定の色(白)、それ以外のモデルを背景色(黒)にして、ステップS2403と同一倍率で選択モデルを描画作業領域に投影する(ステップS2406)。そして、情報生成装置1300は、特定色で投影されたビット数WB2をカウントする(ステップS2407)。このあと、情報生成装置1300は、上述した式(1)により、スコアBpを算出して(ステップS2408)、一時的にメモリに保存する(ステップS2409)。このあと、ステップS2302に移行してしきい値以上か否かが判断される。
【0128】
図25は、図23に示した回転体判定処理(ステップS2303)の詳細な処理手順を示すフローチャートである。まず、情報生成装置1300は、加点スコアAP1を初期化し(ステップS2501)、検証方向D(j)の座標系での選択モデルのバウンディングボックスを生成する(ステップS2502)。つぎに、情報生成装置1300は、検証方向D(j)を除く2軸からなる投影面にバウンディングボックスを投影する(ステップS2503)。そして、情報生成装置1300は、投影画像を、0度、15度、30度、45度回転させた4つの投影画像の縦V×横Hの縦横比V/Hを求める(ステップS2504)。
【0129】
このあと、情報生成装置1300は、回転角度ごとの縦横比により、検証方向D(j)からみて選択モデルが回転体であるか否かを判定する(ステップS2505)。回転体である場合(ステップS2505:Yes)、情報生成装置1300は、スコアBpに加点スコアAP1を加算することで、スコアBpを更新し(ステップS2506)、板状体判定処理(ステップS2304)に移行する。一方、回転体でない場合(ステップS2505:No)、加点スコアAP1を加算せずに板状体判定処理(ステップS2304)に移行する。
【0130】
図26は、図23に示した板状体判定処理(ステップS2304)の詳細な処理手順を示すフローチャートである。まず、情報生成装置1300は、加点スコアAP2を初期化し(ステップS2601)、検証方向D(j)の座標系での選択モデルのバウンディングボックスを生成する(ステップS2602)。つぎに、情報生成装置1300は、図15に示したように、選択モデルが板状体であるか否かを判定する(ステップS2603)。
【0131】
板状体である場合(ステップS2603:Yes)、情報生成装置1300は、スコアBpに加点スコアAP2を加算することで、スコアBpを更新し(ステップS2604)、分解方向判定処理(ステップS2305)に移行する。一方、板状体でない場合(ステップS2603:No)、加点スコアAP2を加算せずに分解方向判定処理(ステップS2305)に移行する。
【0132】
図27は、図23に示した分解方向判定処理(ステップS2305)の詳細な処理手順を示すフローチャートである。まず、情報生成装置1300は、加点スコアAP3を初期化し(ステップS2701)、1つ前の選択モデルの分解方向を取得する(ステップS2702)。そして、情報生成装置1300は、検証方向D(j)と逆方向であるか否かを判定する(ステップS2703)。
【0133】
逆方向である場合(ステップS2703:Yes)、情報生成装置1300は、スコアBpに加点スコアAP3を加算することで、スコアBpを更新し(ステップS2704)、干渉判定処理(ステップS2306)に移行する。一方、逆方向でない場合(ステップS2703:No)、加点スコアAP3を加算せずに干渉判定処理(ステップS2306)に移行する。
【0134】
図28は、図23に示した干渉判定処理(ステップS2306)の詳細な処理手順を示すフローチャートである。まず、情報生成装置1300は、加点スコアAP4を初期化し(ステップS2801)、検証方向D(j)の座標系での選択モデルのバウンディングボックスを生成する(ステップS2802)。つぎに、情報生成装置1300は、バウンディングボックスについて、検証方向D(j)の座標系の3軸方向のパラメタ群(高さ、幅、奥行き)を算出する(ステップS2803)。
【0135】
そして、情報生成装置1300は、検証方向D(j)の逆方向に、当該逆方向のパラメタの値の1/2だけ、バウンディングボックスを移動させる(ステップS2804)。そして、情報生成装置1300は、移動前後の選択モデルを比較して干渉が発生しているか否かを判定する(ステップS2805)。干渉が発生していない場合(ステップS2805:No)、情報生成装置1300は、スコアBpに加点スコアAP4を加算することで、スコアBpを更新し(ステップS2806)、ステップS2307に移行する。一方、干渉が発生した場合(ステップS2805:Yes)、加点スコアAP4を加算せずにステップS2307に移行する。
【0136】
図29は、図21に示した視点設定処理(ステップS2110)の詳細な処理手順を示すフローチャートである。まず、情報生成装置1300は、選択モデルの分解方向を取得し(ステップS2901)、注視点(画面中心)は動かさず、天頂角と方位角をそれぞれ所定角度傾けた位置を視点に設定する(ステップS2902)。そして、情報生成装置1300は、視点の座標値を保存する(ステップS2903)。たとえば、選択モデルが部品の場合は、選択モデルの部品情報500の視点項目に視点の座標値を保存し、選択モデルがアセンブリの場合は、選択モデルのアセンブリ情報600の視点項目に視点の座標値を保存する。このあと、移動量設定処理(ステップS2111)に移行する。
【0137】
図30は、図21に示した移動量設定処理(ステップS2111)の詳細な処理手順を示すフローチャートである。まず、情報生成装置1300は、選択モデルの分解方向を取得し(ステップS3001)、検証方向D(j)の座標系での選択モデルのバウンディングボックスを生成する(ステップS3002)。
【0138】
つぎに、情報生成装置1300は、バウンディングボックスについて、検証方向D(j)の座標系の3軸方向のパラメタ群(高さ、幅、奥行き)を算出する(ステップS3003)。そして、情報生成装置1300は、パラメタ群のうち分解方向に一致する方向のパラメタの値を所定倍することで、移動量を設定する(ステップS3004)。このあと、ステップS2112に移行する。
【0139】
図31は、図20に示した再生処理(ステップS2002)の詳細な処理手順を示すフローチャートである。まず、情報生成装置1300は、カウンタのインデックスiをi=1とし(ステップS3101)、i>Nであるか否かを判断する(ステップS3102)。すなわち、情報生成装置1300が、取得したリスト構造内のモデルをすべて再生したか否かを判断することになる。
【0140】
i>Nでない場合(ステップS3102:No)、情報生成装置1300は、対象アセンブリのリスト構造の未選択ノード群のうち最後尾のノードを選択する(ステップS3103)。そして、情報生成装置1300は、選択ノードから種別フラグを抽出し(ステップS3104)、選択ノードがモデルであるか否かを判断する(ステップS3105)。種別フラグが「0」または「1」であればモデル、「2」は工程であるため、モデルではない。
【0141】
このあと、選択ノードがモデルでないと判断された場合(ステップS3105:No)、ステップS3107に移行する。一方、選択ノードがモデルであると判断された場合(ステップS3105:Yes)、情報生成装置1300は、選択モデルの分解アニメーションを再生する(ステップS3106)。たとえば、選択モデルが部品であれば、部品情報500の分解方向、視点、移動量を読み出して、分解アニメーションを再生する。また、選択モデルがアセンブリであれば、アセンブリ情報600の分解方向、視点、移動量を読み出して、分解アニメーションを再生する。
【0142】
このあと、ステップS3107でiをインクリメントし(ステップS3107)、ステップS3102に戻る。ステップS3102において、i>Nである場合(ステップS3102:Yes)、一連の処理を終了する。
【0143】
このように、本実施の形態によれば、部品点数が膨大なEリング101などのモデルについて従来の干渉チェックでは検出できなかった組付方向や分解方向を検出することができる。したがって、アニメーション再生に用いる方向の検出の高精度化を図ることができる。また、従来のような干渉チェックをおこなっていないため、計算負荷の低減化を図ることができる。また、単純な投影画像の比較で組付方向や分解方向の検出をおこなっているため、検出速度の高速化を図ることができる。また、どのようなモデルに対しても方向検出をおこなうことができるため、対象製品の種類に依存することなく、汎用性の向上を図ることができる。
【0144】
また、本実施の形態にかかる情報生成装置は、製造フローが過去の組立データを元にフローの作成者が検討した組立順に並べられている特性を利用することで、製造フローから3Dアニメーションを自動生成する。これにより、自動的に動きを定義する部品の順序を製造フローから特定することができる。また、従来の分解する部品の順序をランダムに検証する干渉チェックで用いられる手法と比べて、結果が求まるまでの計算時間の短縮化を図ることができる。さらに、想定した組立順にそって自動生成されたアニメーションを見ることで、ユーザは、組立順そのものが想定した順序になっているかを視覚的に判断できるようになる。
【0145】
また、本実施の形態にかかる情報生成装置は、干渉チェックを使わないロジックを採用したことにより、干渉チェックのロジックを使っては不可能であった、「3Dモデルを使った分解アニメーション」を自動生成することができる。また、どのようなモデル形状でも短時間の処理で、かつ、精度が高い。
【0146】
また、本実施の形態にかかる情報生成装置は、モデル点数が多くなればなるほどアニメーション作成にかかる時間の短縮化を図ることができる。また、本実施の形態にかかる情報生成装置は、従来のような計算負荷のかかる干渉チェックを実行しないため、干渉チェックが動作しない低スペックのコンピュータでも分解方向や組付方向を検出することができる。
【0147】
また、本実施の形態にかかる情報生成装置は、組立順として複数の候補があった場合に、その場でアニメーションを生成して、それぞれの候補に対してアニメーションを生成することができる。したがって、ユーザは、生成されたアニメーションを比較することで、「各々アニメーションの動きをみてどの組立順がよさそうか」といったチェックをおこなうことができる。
【0148】
また、本実施の形態にかかる情報生成装置は、検討して定義された組立て順に沿って、組立3Dアニメーションが直ぐに作成できるので、ユーザは、組立て順自体の誤りを3Dアニメーションを作って視覚的に確認することができる。これにより、組立て順の誤りを直ぐに修正することができる。
【0149】
また、本実施の形態にかかる情報生成装置は、分解方向や組付方向を特定するにあたり、複数の方式や条件を設定してスコアを算出することで、ある方式による判定での誤検出防止や、様々な角度からの検証によって総合的にシステムが判断できるようになる。したがって、より高精度な分解方向が検出できるようになる。
【0150】
また、本実施の形態にかかる情報生成装置では、ユーザは、加点スコアAP1〜AP4のウェイトをユーザが任意に設定し、製品ごとの特徴に応じたカスタマイズすることが可能となる。たとえば、製品特徴にあわせて加点スコアAP1〜AP4の値を増減することができる。また、必要に応じて少なくともいずれか一つの判定処理をはずすことで、製品の特徴に応じて分解方向を検出することができる。
【0151】
また、アニメーションが動いている状態だけでなく、よく確認したい等、アニメーションを停止した状態でも、該当部品がどこからどの方向へ組みつけられるか、組付方向を視覚的に確認する場合がある。このような場合、組付け先のモデルから選択モデルを分解するときに、分解方向を示す矢印を表示することで、分解アニメーションをわかりやすくすることができる。
【0152】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0153】
(付記1)複数のモデルで組み付けられたアセンブリを記憶する記憶装置からいずれかのモデルを選択し、
第1の領域に対し、選択されたいずれかのモデルを前記第1の領域の背景色と異なる色で複数の方向から投影することにより第1の投影画像群を生成するとともに、前記第1の領域と同サイズの第2の領域に対し、前記いずれかのモデルを前記背景色と異なる色にし前記いずれかのモデル以外の他のモデルを前記背景色と同色にして前記複数の方向から投影することにより第2の投影画像群を生成し、
生成された第1および第2の投影画像群を、前記複数の方向から選ばれた検証方向が同一である投影画像どうしで比較することにより、前記投影画像どうしの一致度を示すスコアを前記検証方向ごとに算出し、
算出されたスコア群の中で最大スコアとなる投影画像の検証方向の逆方向を、前記アセンブリデータから前記いずれかのモデルを分解する分解方向に決定し、当該分解方向を前記いずれかのモデルに関連付けて前記記憶装置に格納する、
処理をコンピュータに実行させることを特徴とする情報生成プログラム。
【0154】
(付記2)前記いずれかのモデルを前記検証方向から投影した投影画像の外接矩形の形状と、前記投影画像を所定角度回転させた場合の回転後の前記投影画像の外接矩形の形状と、に基づいて、前記いずれかのモデルが回転体であるか否かを判定する処理を前記コンピュータに実行させ、
前記算出する処理は、
前記回転体であると判定された場合の検証方向についてのスコアを更新することを特徴とする付記1に記載の情報生成プログラム。
【0155】
(付記3)前記いずれかのモデルの前記検証方向の長さと、前記複数の方向のうち前記検証方向およびその逆方向以外の方向の長さと、に基づいて、前記いずれかのモデルが前記検証方向に組み付けられる板状体であるか否かを判定する処理を前記コンピュータに実行させ、
前記算出する処理は、
前記板状体であると判定された場合の検証方向についてのスコアを更新することを特徴とする付記1または2に記載の情報生成プログラム。
【0156】
(付記4)前記アセンブリデータから分解順に指定された前記いずれかのモデルについて前記複数の方向から選ばれた検証方向が、前回選択されたモデルに対し決定された分解方向の逆方向と一致するか否かを判定する処理を前記コンピュータに実行させ、
前記算出する処理は、
一致すると判定された場合の検証方向についてのスコアを更新することを特徴とする付記1〜3のいずれか一つに記載の情報生成プログラム。
【0157】
(付記5)前記いずれかのモデルを、前記検証方向の逆方向に、前記いずれかのモデルの前記検証方向での長さを超えない所定量移動させることにより、移動前後で干渉するか否かを判定する処理を前記コンピュータに実行させ、
前記算出する処理は、
干渉しないと判定された場合の検証方向についてのスコアを更新することを特徴とする付記1〜4のいずれか一つに記載の情報生成プログラム。
【0158】
(付記6)前記いずれかのモデルの前記分解方向の注視点が同じでかつ方向が異なる視点方向の視点を設定し、前記いずれかのモデルに関連付けて前記記憶装置に格納する処理を前記コンピュータに実行させることを特徴とする付記1〜5のいずれか一つに記載のプログラム。
【0159】
(付記7)前記いずれかのモデルの前記分解方向の長さに基づいて、前記いずれかのモデルを前記分解方向に移動させる移動量を設定し、前記いずれかのモデルに関連付けて前記記憶装置に格納する処理を前記コンピュータに実行させることを特徴とする付記1〜6のいずれか一つに記載の情報生成プログラム。
【0160】
(付記8)前記複数のモデルを分解順に指定することにより、指定されたモデルに関連付けられた分解方向に前記指定されたモデルを移動させるアニメーションを再生する処理を前記コンピュータに実行させることを特徴とする付記1〜5のいずれか一つに記載の情報生成プログラム。
【0161】
(付記9)前記複数のモデルを分解順に指定することにより、指定されたモデルに関連付けられた分解方向に前記指定されたモデルを移動させ、かつ、前記指定されたモデルに関連付けられた視点から前記注視点への方向で表示させるアニメーションを再生する処理を前記コンピュータに実行させることを特徴とする付記6に記載の情報生成プログラム。
【0162】
(付記10)前記複数のモデルを分解順に指定することにより、指定されたモデルに関連付けられた分解方向に、設定された移動量分、前記指定されたモデルを移動させるアニメーションを再生する処理を前記コンピュータに実行させることを特徴とする付記6に記載の情報生成プログラム。
【0163】
(付記11)複数のモデルで組み付けられたアセンブリを記憶する記憶装置からいずれかのモデルを選択し、
第1の領域に対し、選択されたいずれかのモデルを前記第1の領域の背景色と異なる色で複数の方向から投影することにより第1の投影画像群を生成するとともに、前記第1の領域と同サイズの第2の領域に対し、前記いずれかのモデルを前記背景色と異なる色にし前記いずれかのモデル以外の他のモデルを前記背景色と同色にして前記複数の方向から投影することにより第2の投影画像群を生成し、
生成された第1および第2の投影画像群を、前記複数の方向から選ばれた検証方向が同一である投影画像どうしで比較することにより、前記投影画像どうしの一致度を示すスコアを前記検証方向ごとに算出し、
算出されたスコア群の中で最大スコアとなる投影画像の検証方向の逆方向を、前記アセンブリデータから前記いずれかのモデルを分解する分解方向に決定し、当該分解方向を前記いずれかのモデルに関連付けて前記記憶装置に格納する、
処理をコンピュータが実行することを特徴とする情報生成方法。
【0164】
(付記12)複数のモデルで組み付けられたアセンブリを記憶する記憶装置からいずれかのモデルを選択する選択手段と、
第1の領域に対し、前記選択手段によって選択されたいずれかのモデルを前記第1の領域の背景色と異なる色で複数の方向から投影することにより第1の投影画像群を生成するとともに、前記第1の領域と同サイズの第2の領域に対し、前記いずれかのモデルを前記背景色と異なる色にし前記いずれかのモデル以外の他のモデルを前記背景色と同色にして前記複数の方向から投影することにより第2の投影画像群を生成する生成手段と、
前記生成手段によって生成された第1および第2の投影画像群を、前記複数の方向から選ばれた検証方向が同一である投影画像どうしで比較することにより、前記投影画像どうしの一致度を示すスコアを前記検証方向ごとに算出する算出手段と、
前記算出手段によって算出されたスコア群の中で最大スコアとなる投影画像の検証方向の逆方向を、前記アセンブリデータから前記いずれかのモデルを分解する分解方向に決定し、当該分解方向を前記いずれかのモデルに関連付けて前記記憶装置に格納する決定手段と、
を備えることを特徴とする情報生成装置。
【符号の説明】
【0165】
1300 情報生成装置
1301 記憶部
1302 入力部
1303 選択部
1304 生成部
1305 算出部
1306 判定部
1307 決定部
1308 設定部
1309 再生部
1361 回転体判定部
1362 板状体判定部
1363 方向判定部
1364 干渉判定部
1381 視点設定部
1382 移動量設定部

【特許請求の範囲】
【請求項1】
複数のモデルで組み付けられたアセンブリを記憶する記憶装置からいずれかのモデルを選択し、
第1の領域に対し、選択されたいずれかのモデルを前記第1の領域の背景色と異なる色で複数の方向から投影することにより第1の投影画像群を生成するとともに、前記第1の領域と同サイズの第2の領域に対し、前記いずれかのモデルを前記背景色と異なる色にし前記いずれかのモデル以外の他のモデルを前記背景色と同色にして前記複数の方向から投影することにより第2の投影画像群を生成し、
生成された第1および第2の投影画像群を、前記複数の方向から選ばれた検証方向が同一である投影画像どうしで比較することにより、前記投影画像どうしの一致度を示すスコアを前記検証方向ごとに算出し、
算出されたスコア群の中で最大スコアとなる投影画像の検証方向の逆方向を、前記アセンブリデータから前記いずれかのモデルを分解する分解方向に決定し、当該分解方向を前記いずれかのモデルに関連付けて前記記憶装置に格納する、
処理をコンピュータに実行させることを特徴とする情報生成プログラム。
【請求項2】
前記いずれかのモデルを前記検証方向から投影した投影画像の外接矩形の形状と、前記投影画像を所定角度回転させた場合の回転後の前記投影画像の外接矩形の形状と、に基づいて、前記いずれかのモデルが回転体であるか否かを判定する処理を前記コンピュータに実行させ、
前記算出する処理は、
前記回転体であると判定された場合の検証方向についてのスコアを更新することを特徴とする請求項1に記載の情報生成プログラム。
【請求項3】
前記いずれかのモデルの前記検証方向の長さと、前記複数の方向のうち前記検証方向およびその逆方向以外の方向の長さと、に基づいて、前記いずれかのモデルが前記検証方向に組み付けられる板状体であるか否かを判定する処理を前記コンピュータに実行させ、
前記算出する処理は、
前記板状体であると判定された場合の検証方向についてのスコアを更新することを特徴とする請求項1または2に記載の情報生成プログラム。
【請求項4】
前記アセンブリデータから分解順に指定された前記いずれかのモデルについて前記複数の方向から選ばれた検証方向が、前回選択されたモデルに対し決定された分解方向の逆方向と一致するか否かを判定する処理を前記コンピュータに実行させ、
前記算出する処理は、
一致すると判定された場合の検証方向についてのスコアを更新することを特徴とする請求項1〜3のいずれか一つに記載の情報生成プログラム。
【請求項5】
前記いずれかのモデルを、前記検証方向の逆方向に、前記いずれかのモデルの前記検証方向での長さを超えない所定量移動させることにより、移動前後で干渉するか否かを判定する処理を前記コンピュータに実行させ、
前記算出する処理は、
干渉しないと判定された場合の検証方向についてのスコアを更新することを特徴とする請求項1〜4のいずれか一つに記載の情報生成プログラム。
【請求項6】
前記いずれかのモデルの分解方向の注視点が同じでかつ方向が異なる視点方向の視点を設定し、前記いずれかのモデルに関連付けて前記記憶装置に格納する処理を前記コンピュータに実行させることを特徴とする請求項1〜5のいずれか一つに記載のプログラム。
【請求項7】
前記いずれかのモデルの前記分解方向の長さに基づいて、前記いずれかのモデルを前記分解方向に移動させる移動量を設定し、前記いずれかのモデルに関連付けて前記記憶装置に格納する処理を前記コンピュータに実行させることを特徴とする請求項1〜6のいずれか一つに記載の情報生成プログラム。
【請求項8】
前記複数のモデルを分解順に指定することにより、指定されたモデルに関連付けられた分解方向に前記指定されたモデルを移動させるアニメーションを再生する処理を前記コンピュータに実行させることを特徴とする請求項1〜5のいずれか一つに記載の情報生成プログラム。
【請求項9】
複数のモデルで組み付けられたアセンブリを記憶する記憶装置からいずれかのモデルを選択し、
第1の領域に対し、選択されたいずれかのモデルを前記第1の領域の背景色と異なる色で複数の方向から投影することにより第1の投影画像群を生成するとともに、前記第1の領域と同サイズの第2の領域に対し、前記いずれかのモデルを前記背景色と異なる色にし前記いずれかのモデル以外の他のモデルを前記背景色と同色にして前記複数の方向から投影することにより第2の投影画像群を生成し、
生成された第1および第2の投影画像群を、前記複数の方向から選ばれた検証方向が同一である投影画像どうしで比較することにより、前記投影画像どうしの一致度を示すスコアを前記検証方向ごとに算出し、
算出されたスコア群の中で最大スコアとなる投影画像の検証方向の逆方向を、前記アセンブリデータから前記いずれかのモデルを分解する分解方向に決定し、当該分解方向を前記いずれかのモデルに関連付けて前記記憶装置に格納する、
処理をコンピュータが実行することを特徴とする情報生成方法。
【請求項10】
複数のモデルで組み付けられたアセンブリを記憶する記憶装置からいずれかのモデルを選択する選択手段と、
第1の領域に対し、前記選択手段によって選択されたいずれかのモデルを前記第1の領域の背景色と異なる色で複数の方向から投影することにより第1の投影画像群を生成するとともに、前記第1の領域と同サイズの第2の領域に対し、前記いずれかのモデルを前記背景色と異なる色にし前記いずれかのモデル以外の他のモデルを前記背景色と同色にして前記複数の方向から投影することにより第2の投影画像群を生成する生成手段と、
前記生成手段によって生成された第1および第2の投影画像群を、前記複数の方向から選ばれた検証方向が同一である投影画像どうしで比較することにより、前記投影画像どうしの一致度を示すスコアを前記検証方向ごとに算出する算出手段と、
前記算出手段によって算出されたスコア群の中で最大スコアとなる投影画像の検証方向の逆方向を、前記アセンブリデータから前記いずれかのモデルを分解する分解方向に決定し、当該分解方向を前記いずれかのモデルに関連付けて前記記憶装置に格納する決定手段と、
を備えることを特徴とする情報生成装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate