(57)【特許請求の範囲】
【請求項１】
複数のモデルで組み付けられたアセンブリを記憶する記憶装置からいずれかのモデルを選択し、
複数の方向の各々について、前記方向に対向する第１の領域に対し、選択されたいずれかのモデルを前記第１の領域の背景色と異なる色で前記方向から投影することにより、第１の投影画像群を生成するとともに、前記複数の方向の各々について、前記方向に対向する第２の領域であって、前記第１の領域と同サイズの第２の領域に対し、前記いずれかのモデルを前記背景色と異なる色にし前記いずれかのモデル以外の他のモデルを前記背景色と同色にして前記方向から投影することにより、第２の投影画像群を生成し、
生成された第１および第２の投影画像群を、前記複数の方向から選ばれた検証方向が同一である投影画像どうしで比較することにより、前記投影画像どうしの一致度を示すスコアを前記検証方向ごとに算出し、
算出されたスコア群の中で最大スコアとなる投影画像の検証方向の逆方向を、前記アセンブリデータから前記いずれかのモデルを分解する分解方向に決定し、当該分解方向を前記いずれかのモデルに関連付けて前記記憶装置に格納する、
処理をコンピュータに実行させることを特徴とする情報生成プログラム。
【請求項２】
前記いずれかのモデルを前記検証方向から投影した投影画像の外接矩形の形状と、前記投影画像を所定角度回転させた場合の回転後の前記投影画像の外接矩形の形状と、に基づいて、前記いずれかのモデルが回転体であるか否かを判定する処理を前記コンピュータに実行させ、
前記算出する処理は、
前記スコアを前記検証方向ごとに算出し、前記回転体であると判定された場合の検証方向について算出した前記スコアに特定のスコアを加算することにより前記検証方向についてのスコアを更新し、前記回転体であると判定されなかった場合の検証方向について算出した前記スコアを更新しないことを特徴とする請求項１に記載の情報生成プログラム。
【請求項３】
前記いずれかのモデルの検証方向について、前記複数の方向のうち前記いずれかのモデルの前記検証方向以外の２軸の方向の長さが、前記いずれかのモデルの前記検証方向の長さの所定倍であるか否かに基づいて、前記いずれかのモデルが前記検証方向を法線方向とする板形状であるか否かを判定する処理を前記コンピュータに実行させ、
前記算出する処理は、
前記スコアを前記検証方向ごとに算出し、前記いずれかのモデルが前記検証方向を法線方向とする前記板状体であると判定された場合の検証方向について算出した前記スコアに特定のスコアを加算することにより前記検証方向についてのスコアを更新し、前記いずれかのモデルが前記検証方向を法線方向とする前記板状体でないと判定された場合の検証方向について算出した前記スコアを更新しないことを特徴とする請求項１または２に記載の情報生成プログラム。
【請求項４】
前記アセンブリデータから分解順に指定された前記いずれかのモデルについて前記複数の方向から選ばれた検証方向が、前回選択されたモデルに対し決定された分解方向の逆方向と一致するか否かを判定する処理を前記コンピュータに実行させ、
前記算出する処理は、
前記スコアを前記検証方向ごとに算出し、一致すると判定された場合の検証方向について算出した前記スコアに特定のスコアを加算することにより前記検証方向についてのスコアを更新し、一致しないと判定された場合の検証方向について算出した前記スコアを更新しないことを特徴とする請求項１〜３のいずれか一つに記載の情報生成プログラム。
【請求項５】
前記いずれかのモデルを、前記検証方向の逆方向に、前記いずれかのモデルの前記検証方向での長さを超えない所定量移動させ、移動後の前記いずれかのモデルと、前記複数のモデルのうち前記いずれかのモデル以外のモデルと、が干渉するか否かを判定する処理を前記コンピュータに実行させ、
前記算出する処理は、
前記スコアを前記検証方向ごとに算出し、干渉しないと判定された場合の検証方向について算出した前記スコアに特定のスコアを加算することにより前記検証方向についてのスコアを更新し、干渉すると判定された場合の検証方向について算出した前記スコアを更新しないことを特徴とする請求項１〜４のいずれか一つに記載の情報生成プログラム。
【請求項６】
前記いずれかのモデルの分解方向の注視点が同じでかつ方向が異なる視点方向の視点を設定し、前記いずれかのモデルに関連付けて前記記憶装置に格納する処理を前記コンピュータに実行させることを特徴とする請求項１〜５のいずれか一つに記載のプログラム。
【請求項７】
前記いずれかのモデルの前記分解方向の長さに基づいて、前記いずれかのモデルを前記分解方向に移動させる移動量を設定し、前記いずれかのモデルに関連付けて前記記憶装置に格納する処理を前記コンピュータに実行させることを特徴とする請求項１〜６のいずれか一つに記載の情報生成プログラム。
【請求項８】
前記複数のモデルを分解順に指定することにより、指定されたモデルに関連付けられた分解方向に前記指定されたモデルを移動させるアニメーションを再生する処理を前記コンピュータに実行させることを特徴とする請求項１〜５のいずれか一つに記載の情報生成プログラム。
【請求項９】
複数のモデルで組み付けられたアセンブリを記憶する記憶装置からいずれかのモデルを選択し、
複数の方向の各々について、前記方向に対向する第１の領域に対し、選択されたいずれかのモデルを前記第１の領域の背景色と異なる色で前記方向から投影することにより、第１の投影画像群を生成するとともに、前記複数の方向の各々について、前記方向に対向する第２の領域であって、前記第１の領域と同サイズの前記第２の領域に対し、前記いずれかのモデルを前記背景色と異なる色にし前記いずれかのモデル以外の他のモデルを前記背景色と同色にして前記方向から投影することにより、第２の投影画像群を生成し、
生成された第１および第２の投影画像群を、前記複数の方向から選ばれた検証方向が同一である投影画像どうしで比較することにより、前記投影画像どうしの一致度を示すスコアを前記検証方向ごとに算出し、
算出されたスコア群の中で最大スコアとなる投影画像の検証方向の逆方向を、前記アセンブリデータから前記いずれかのモデルを分解する分解方向に決定し、当該分解方向を前記いずれかのモデルに関連付けて前記記憶装置に格納する、
処理をコンピュータが実行することを特徴とする情報生成方法。
【請求項１０】
複数のモデルで組み付けられたアセンブリを記憶する記憶装置からいずれかのモデルを選択する選択手段と、
複数の方向の各々について、前記方向に対向する第１の領域に対し、選択されたいずれかのモデルを前記第１の領域の背景色と異なる色で前記方向から投影することにより、第１の投影画像群を生成するとともに、前記複数の方向の各々について、前記方向に対向する第２の領域であって、前記第１の領域と同サイズの前記第２の領域に対し、前記いずれかのモデルを前記背景色と異なる色にし前記いずれかのモデル以外の他のモデルを前記背景色と同色にして前記方向から投影することにより、第２の投影画像群を生成する生成手段と、
前記生成手段によって生成された第１および第２の投影画像群を、前記複数の方向から選ばれた検証方向が同一である投影画像どうしで比較することにより、前記投影画像どうしの一致度を示すスコアを前記検証方向ごとに算出する算出手段と、
前記算出手段によって算出されたスコア群の中で最大スコアとなる投影画像の検証方向の逆方向を、前記アセンブリデータから前記いずれかのモデルを分解する分解方向に決定し、当該分解方向を前記いずれかのモデルに関連付けて前記記憶装置に格納する決定手段と、
を備えることを特徴とする情報生成装置。
【請求項１１】
複数のモデルで組み付けられたアセンブリからいずれかのモデルを選択し、
前記複数のモデルのうち選択された前記いずれかのモデル以外の他のモデルを投影対象外とし、選択された前記いずれかのモデルを背景色と異なる色で複数の方向から投影することにより第１の投影画像群を生成し、選択された前記いずれかのモデルを前記背景色と異なる色で、かつ前記他のモデルを前記背景色と同じ色で、前記複数の方向から投影することにより第２の投影画像群を生成し、
前記複数の方向の各々において、前記第１の投影画像群と前記第２の投影画像群のうち投影方向が同一である投影画像どうしの一致度を算出し、
前記複数の方向の各々における投影画像どうしの算出した前記一致度に基づき、一の投影方向を特定し、特定した前記投影方向と逆方向を前記アセンブリから前記いずれかのモデルを分解する分解方向に決定する、
処理をコンピュータが実行することを特徴とする情報生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報を生成する情報生成プログラム、情報生成方法、および情報生成装置に関する。
【背景技術】
【０００２】
従来から、３Ｄモデルを使った３Ｄ組立アニメーションを生成する場合、ユーザは、製品を構成するすべての部品に対し、１つずつ動きを定義していく必要がある。たとえば、デジタル家電、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、または複合機等のオフィス機器は、数十から数千、時には数万の部品点数を有する。この製品の組立アニメーションを生成するユーザ作業は、膨大な時間を要する。
【０００３】
そのため、組立アニメーションを自動的に生成する技術がある。３Ｄモデルを使った組立アニメーションの自動作成機能として認知されている従来技術には、（１）１つ１つの部品の動きの定義はユーザが行い、その情報を基にアニメを生成する技術がある。
【０００４】
（１）の従来技術としては、ユーザが設定した分解定義情報に基づき３Ｄモデルに動きを定義する技術（たとえば、下記特許文献１を参照。）がある。また、（１）の従来技術としては、ユーザが設定した組付順序と部品データ、組付方向データを元に動きを定義する技術（たとえば、下記特許文献２を参照。）がある。
【０００５】
上述した（１）の従来技術では、組立アニメーション自体は自動生成されるが、そのアニメーションの元となる部品の抜き方向や移動量等の動きを定義する必要がある。このため、（２）部品の動きの定義自体もシステムが自動設定し、アニメを生成する技術がある。（２）の従来技術としては、干渉チェック技術を用いて、製品を構成する部品の座標系の６軸に対して干渉の発生の有無を検出し、干渉がなければその方向に分解できると解釈して、分解方向が決定できる技術（たとえば、下記特許文献３を参照。）がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４２９１３２１号公報
【特許文献２】特開平８−１０６４８６号公報
【特許文献３】特開平１０−３１２２０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した（２）の従来技術は、干渉チェックをおこなっているため、結果が求まるまでに多くの時間を要する。たとえば、実運用上で使われる製品規模（数万点）になると、干渉結果を抽出するための計算時間が膨大になる。したがって、上述した（２）の従来技術は、結果が抽出できるまで、換言すればアニメーションが生成されるまでに多くの時間を要することになる。
【０００８】
また、上述した（２）の従来技術では、汎用性が低いという問題がある。たとえば、１つの製品の中には、組付時、あるいは、組立の途中で干渉が発生することを前提とした部品が数多くある。また、製品によっては、Ｅリングやクリップ、ネジなどの干渉が発生する部品が７０％以上を含む製品も多い。
【０００９】
Ｅリングやクリップは、軸部品に対し軸部品の軸方向に対し直交方向にはめ込まれる。したがって、軸部品からＥリングやクリップを抜く場合は、Ｅリングやクリップは、軸方向ではなくその直交方向から抜かれることになるため、Ｅリングやクリップは軸部品に干渉してしまうことになる。
【００１０】
また、ネジについては、設計上ネジのネジ軸やネジ穴の内周面にはネジ溝が形成されない場合がある。この場合、ネジ穴の径よりもネジ軸の径を太く（または細く）するなどして、ネジとネジ穴とが干渉するようにしている。このように、部品の大多数を占めるＥリングやクリップ、ネジでは干渉が発生してしまうため、上記（２）の従来技術では、分解できる部品が制限されてしまうという問題がある。
【００１１】
本発明は、上述した従来技術による問題点を解消するため、モデルの分解方向検出の高精度化を図ることができる情報生成プログラム、情報生成方法、および情報生成装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の一側面によれば、複数のモデルで組み付けられたアセンブリを記憶する記憶装置からいずれかのモデルを選択し、選択されたいずれかのモデルについて背景色と異なる色で複数の方向からの第１の投影画像群を生成するとともに、前記いずれかのモデルを前記背景色と異なる色にし前記いずれかのモデル以外の他のモデルを前記背景色と同色にしたときの前記複数の方向からの第２の投影画像群を生成し、生成された第１および第２の投影画像群を、前記複数の方向から選ばれた検証方向が同一である投影画像どうしで比較することにより、前記投影画像どうしの一致度を示すスコアを前記検証方向ごとに算出し、算出されたスコア群の中で最大スコアとなる投影画像の検証方向の逆方向を、前記アセンブリデータから前記いずれかのモデルを分解する分解方向に決定し、当該分解方向を前記いずれかのモデルに関連付けて前記記憶装置に格納する情報生成プログラム、情報生成方法、および情報生成装置が提案される。
【発明の効果】
【００１３】
本発明の一側面によれば、モデルの分解方向検出の高精度化を図ることができるという効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】図１は、本実施の形態にかかる情報生成例を示す説明図である。
【図２】図２は、本実施の形態にかかる情報生成装置への入力データの一例を示す説明図である。
【図３】図３は、図２に示したアセンブリツリー２０２の一例を示す説明図である。
【図４】図４は、アセンブリの一例を示す説明図である。
【図５】図５は、部品情報のデータ構造例を示す説明図である。
【図６】図６は、アセンブリ情報のデータ構造例を示す説明図である。
【図７】図７は、図５および図６に示した相対座標値および相対姿勢を示す説明図である。
【図８】図８は、アセンブリツリー２０２の変換例を示す説明図である。
【図９】図９は、図８の（Ｂ）の製造フロー８０２を親子関係で分解した分解製造フロー９０１〜９０７を示す説明図である。
【図１０】図１０は、ノードのデータ構造例を示す説明図である。
【図１１】図１１は、分解製造フローのリスト構造例を示す説明図である。
【図１２】図１２は、実施の形態にかかる情報生成装置のハードウェア構成例を示すブロック図である。
【図１３】図１３は、情報生成装置１３００の機能的構成例を示すブロック図である。
【図１４】図１４は、回転体の判定例を示す説明図である。
【図１５】図１５は、板状体の判定例を示す説明図である。
【図１６】図１６は、干渉判定例１を示す説明図である。
【図１７】図１７は、干渉判定例２を示す説明図である。
【図１８】図１８は、視点設定例を示す説明図である。
【図１９】図１９は、移動量の設定例を示す説明図である。
【図２０】図２０は、情報生成装置１３００による情報生成処理の詳細な処理手順を示すフローチャートである。
【図２１】図２１は、図２０に示した情報設定処理（ステップＳ２１０１）の詳細な処理手順を示すフローチャートである。
【図２２】図２２は、図２１に示した分解方向検出処理（ステップＳ２１０９）の詳細な処理手順を示すフローチャートである。
【図２３】図２３は、図２２に示したスコア算出処理（ステップＳ２２０９）の詳細な処理手順を示すフローチャートである。
【図２４】図２４は、図２３に示した投影シルエット処理（ステップＳ２３０１）の詳細な処理手順を示すフローチャートである。
【図２５】図２５は、図２３に示した回転体判定処理（ステップＳ２３０３）の詳細な処理手順を示すフローチャートである。
【図２６】図２６は、図２３に示した板状体判定処理（ステップＳ２３０４）の詳細な処理手順を示すフローチャートである。
【図２７】図２７は、図２３に示した分解方向判定処理（ステップＳ２３０５）の詳細な処理手順を示すフローチャートである。
【図２８】図２８は、図２３に示した干渉判定処理（ステップＳ２３０６）の詳細な処理手順を示すフローチャートである。
【図２９】図２９は、図２１に示した視点設定処理（ステップＳ２１１０）の詳細な処理手順を示すフローチャートである。
【図３０】図３０は、図２１に示した移動量設定処理（ステップＳ２１１１）の詳細な処理手順を示すフローチャートである。
【図３１】図３１は、図２０に示した再生処理（ステップＳ２００２）の詳細な処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下に添付図面を参照して、この発明にかかる情報生成プログラム、情報生成方法、および情報生成装置の実施の形態を詳細に説明する。
【００１６】
＜情報生成例＞
図１は、本実施の形態にかかる情報生成例を示す説明図である。図１では、部品データ（以下、単に「部品」）であるシャフト１０２に同じく部品であるＥリング１０１が組み付けられているアセンブリデータ（以下、「アセンブリ」）１０３を例に挙げる。Ｅリング１０１は、シャフト１０２の軸方向（図１中、＋Ｚまたは−Ｚ）から組み付けられたのではなく、軸方向の直交方向である＋Ｘ方向から組み付けられている。Ｅリング１０１は、シャフト１０２への組み付けによりシャフト１０２に干渉している。また、Ｅリング１０１は、シャフト１０２の軸方向（図１中、＋Ｚまたは−Ｚ方向）から分解されるのではなく、軸方向の直交方向である−Ｘ方向から分解される。
【００１７】
この場合、従来の干渉チェックでは計算負荷が高い上に、組付方向（＋Ｘ）や分解方向（−Ｘ）、軸方向（＋Ｚ、−Ｚ）ではＥリング１０１がシャフト１０２と干渉してしまう。このため、情報生成装置は、＋Ｘ〜−Ｚの６方向の各方向について、各方向からのＥリング１０１の投影画像（ａ）〜（ｆ）を生成する。
【００１８】
なお、投影画像（ａ）〜（ｆ）は、所定サイズのビットマップ画像領域（たとえば、２００×２００ピクセル）に対し、所定倍率で投影された画像である。また、ここでは一例として、ビットマップ画像の背景色を黒とし、被写体であるＥリング１０１の色を白とする。なお、色については、背景色と被写体の色とが異なっていればよく、黒と白の組み合わせに限られない。
【００１９】
同様に、情報生成装置は、今度は他の部品を表示させてその色を背景色と同色の黒にして、各方向からのＥリング１０１の投影画像（Ａ）〜（Ｆ）を生成する。投影画像（Ａ）〜（Ｆ）も、投影画像（ａ）〜（ｆ）と同一サイズのビットマップに対し、同一倍率で投影された画像である。
【００２０】
そして、情報生成装置は、両投影画像（ａ）〜（ｆ），（Ａ）〜（Ｆ）について、同一方向からの投影画像同士、たとえば、投影画像の組｛（ａ），（Ａ）｝〜｛（ｆ），（Ｆ）｝ごとに比較する。そして、情報生成装置は、最も一致度が高い、すなわち、一致する白のビット数が最大である組を検出し、その投影画像の組を投影した方向を、組付方向に決定する。図１の場合は、投影画像の組｛（ａ），（Ａ）｝の一致度が最も高いため、Ｅリング１０１の分解の際に障害となる他の部品が存在しない。したがって、＋Ｘ方向が組付方向となり、その逆の−Ｘ方向が分解方向となる。これにより、Ｅリング１０１は、シャフト１０２に対し＋Ｘ方向から組み付けられており、−Ｘ方向へ分解可能である。
【００２１】
このように、本実施の形態にかかる情報生成装置は、部品点数が膨大なＥリング１０１などの部品について従来の干渉チェックでは検出できなかった組付方向や分解方向を検出することができる。また、従来のような干渉チェックをおこなっていないため、情報生成装置は、計算負荷の低減化を図ることができる。また、単純な投影画像の比較で組付方向や分解方向の検出をおこなっているため、情報生成装置は、検出速度の高速化を図ることができる。また、図１では、Ｅリング１０１を例に挙げて説明したが、クリップやネジなど、組付先と干渉する部品についても、情報生成装置は適用できる。したがって、情報生成装置は、対象製品の種類に依存することなく、汎用性の向上を図ることができる。
【００２２】
＜入力データ例＞
図２は、本実施の形態のかかる情報生成装置への入力データの一例を示す説明図である。入力データ２００は、たとえば、３次元ＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）システムから送信されてくるデータである。図２では、例としてマウスについての入力データ２００を示している。
【００２３】
入力データ２００には、情報生成の対象となる対象製品（図２ではマウス）の３次元モデル２０１と、３次元モデル２０１のアセンブリツリー２０２と、が含まれている。アセンブリツリー２０２は、３次元モデル２０１を構成するアセンブリや部品の構成を階層構造化した情報である。
【００２４】
図３は、図２に示したアセンブリツリー２０２の一例を示す説明図である。図３において、トップアセンブリＡ０は、３次元モデル２０１であるマウスを示している。図３の例では、トップアセンブリＡ０は、アセンブリＡ１，Ａ５および部品ｐ１０を有する。また、アセンブリＡ１は、アセンブリＡ２，Ａ３を有する。また、アセンブリＡ２は、部品ｐ１，ｐ２を有する。
【００２５】
また、１つ上の階層のアセンブリを親アセンブリと称す。たとえば、アセンブリＡ２の親アセンブリはアセンブリＡ１である。また、１つ下の階層のアセンブリを子アセンブリと称す。たとえば、アセンブリＡ１の子アセンブリはアセンブリＡ２，Ａ３である。
【００２６】
ここで、アセンブリとは、部品やアセンブリで構成されたモデルである。部品は、これ以上分解できない最小単位のモデルである。したがって、アセンブリや部品を総称してモデルという。以下、図４で具体的に説明する。
【００２７】
図４は、アセンブリの一例を示す説明図である。図４では、アセンブリ４００は、ギア４０１と、軸４０２，４０３が組み合わされたアセンブリ４０４と、を有する。
【００２８】
＜部品情報のデータ構造例＞
図５は、部品情報のデータ構造例を示す説明図である。部品情報５００は、３次元モデル内の各部品が有する情報であり、情報生成装置が入力データ２００を取得すると、情報生成装置が入力データ２００から抽出する情報である。
【００２９】
図５において、部品情報５００は、識別情報項目と、形状情報項目と、相対座標値項目と、相対姿勢項目と、最優先方向項目と、６軸スコア項目と、視点項目と、移動量項目と、を有する。識別情報項目には、部品を一意に特定する識別情報が格納される。図５では、識別情報としてｐｉが格納されている。
【００３０】
形状情報項目は、さらに、ファセット項目とファセットの法線ベクトル項目が含まれている。ファセット項目には、部品のファセット群が格納される。図５では、ｎｉ個のファセットｆｉ−１〜ｆｉ−ｎｉが格納されている。各ファセットｆｉ−１〜ｆｉ−ｎｉは部品を構成する３角形のポリゴンデータであり、この部品のローカル座標系を基準にした３角形の頂点座標値を有する。ファセットの法線ベクトル項目には、ファセットｆｉ−１〜ｆｉ−ｎｉについてのｎｉ個の法線ベクトルｖｉ−１〜ｖｉ−ｎｉが格納されている。
【００３１】
相対座標値項目には、親アセンブリのローカル座標系（親アセンブリがトップアセンブリＡ０の場合はグローバル座標系）での親アセンブリの原点からの相対座標値が格納されている。図５では、相対座標値Ｃｉが格納されている。相対姿勢項目には、親アセンブリのローカル座標系（親アセンブリがトップアセンブリＡ０の場合はグローバル座標系）での親アセンブリの姿勢からの相対姿勢Ｒｉが格納されている。相対姿勢Ｒｉは、たとえば、３×３の行列で表現される。
【００３２】
最優先方向項目には、組付方向項目と分解方向項目とが含まれている。入力データ２００を取得した段階では、組付方向項目および分解方向項目には何も格納されず、図１に示したように、組付方向や分解方向が検出された場合に、検出された方向が格納される。たとえば、図１のＥリング１０１の部品情報５００には、組付方向として「＋Ｘ」、分解方向として「−Ｘ」が格納されることになる。
【００３３】
６軸スコア項目には、ローカル座標系の各軸（＋Ｘｌ〜−Ｚｌ）項目と、グローバル座標系の各軸（＋Ｘｇ〜−Ｚｇ）項目と、が含まれている。入力データ２００を取得した段階では、６軸スコア項目には何も格納されず、６軸スコアが算出されると、算出されたスコアが格納される。６軸スコアは、軸ごとに組付方向としての適性をあらわす指標値である。本例では、スコアが高いほど適性があるものとする。６軸スコアの算出については後述する。
【００３４】
視点項目には、視点座標値が格納される。分解方向にモデルを移動させる場合、分解方向が視点方向に一致していると分解状態のアニメーションを再生しても、分解方向への移動が見えにくい。そのため、視点の位置をずらした視点座標値を格納しておくことで、分解状態のアニメーションの再生の際に視点座標値からの視点方向で表示して視認しやすくする。
【００３５】
＜アセンブリ情報のデータ構造例＞
図６は、アセンブリ情報のデータ構造例を示す説明図である。アセンブリ情報６００は、３次元モデル内の各アセンブリが有する情報であり、入力データ２００を取得すると、情報生成装置が入力データ２００から抽出する情報である。
【００３６】
図６において、アセンブリ情報６００は、識別情報項目と、直下の構成モデル数項目と、親アセンブリの識別情報項目と、相対座標値項目と、相対姿勢項目と、最優先方向項目と、６軸スコア項目と、視点項目と、移動量項目と、を有する。直下の構成モデル数項目および親アセンブリの識別情報項目以外の項目群は、部品情報５００と同一内容であるため、説明を省略する。
【００３７】
直下の構成モデル数項目には、直下の構成モデル数ｍｊが格納される。直下の構成モデル数とは、自身アセンブリの１つ下の階層での構成モデル数である。１つ下の階層であっても、構成モデル以外のモデルはカウントしない。たとえば、図３において、アセンブリＡ３の場合、１つ下の階層には、アセンブリＡ４、部品ｐ１〜ｐ４，ｐ７，ｐ８が存在するが、アセンブリＡ３の１つ下の階層の構成モデルは、アセンブリＡ４，部品ｐ３，ｐ４である。したがって、アセンブリＡ３の場合の直下の構成モデル数ｍｊは、ｍｊ＝３となる。
【００３８】
また、親アセンブリの識別情報項目には、親アセンブリの識別情報Ａｊが格納される。たとえば、アセンブリＡ３の場合、親アセンブリはアセンブリＡ１であるため、親アセンブリの識別情報項目には、Ａ１が格納される。これにより、情報生成装置は、アセンブリごとにどのアセンブリと親子関係があるかを特定することができる。
【００３９】
図７は、図５および図６に示した相対座標値および相対姿勢を示す説明図である。ここでは、モデルＭの相対座標値および相対姿勢について説明する。図７において、Ｘｇ軸、Ｙｇ軸およびＺｇ軸からなるグローバル座標系をＣｇとする。Ｑ０は、グローバル座標系Ｃｇの原点である。グローバル座標系Ｃｇは、図３のトップアセンブリＡ０となるモデルＭ０を定義する空間である。モデルＭ０を構成するファセットの座標値は、原点Ｑ０を基準に設定される。
【００４０】
Ｑ１は、Ｘｌ１軸、Ｙｌ１軸およびＺｌ１軸からなるローカル座標系Ｃｌ１の原点である。ローカル座標系Ｃｌ１は、たとえば、図３のトップアセンブリＡ０を親アセンブリとするアセンブリＡ１となるモデルＭ１を定義する空間である。ローカル座標系Ｃｌ１の原点Ｑ１は、グローバル座標系Ｃｇの原点Ｑ０との相対位置により決定される。モデルＭ１を構成するファセットの座標値は、原点Ｑ１を基準に設定される。また、ローカル座標系Ｃｌ１の相対姿勢Ｒ１は、グローバル座標系ＣｇのモデルＭ０の姿勢からの相対姿勢となる。
【００４１】
Ｑ２は、Ｘｌ２軸、Ｙｌ２軸およびＺｌ２軸からなるローカル座標系Ｃｌ２の原点である。ローカル座標系Ｃｌ２は、たとえば、図３のアセンブリＡ１を親アセンブリとするアセンブリＡ２となるモデルＭ２を定義する空間である。ローカル座標系Ｃｌ２の原点Ｑ２は、ローカル座標系Ｃｌ１の原点Ｑ１との相対位置により決定される。モデルＭ２を構成するファセットの座標値は、原点Ｑ２を基準に設定される。また、ローカル座標系Ｃｌ２の相対姿勢Ｒ２は、ローカル座標系Ｃｌ１のモデルＭ１の姿勢からの相対姿勢となる。
【００４２】
このように、モデルの相対座標値は、親アセンブリの原点からの相対位置で決定された原点を基準に設定され、モデルの姿勢は、親アセンブリの姿勢を基準に設定されることになる。
【００４３】
＜アセンブリツリー２０２の変換例＞
図８は、アセンブリツリー２０２の変換例を示す説明図である。図８の（Ａ）では、図３に示したアセンブリツリー２０２が、等価な製造フロー８０１に変換された状態を示している。製造フロー８０１への変換については手動でも自動でもよい。図８の（Ａ）の製造フロー８０１では、たとえば、部品ｐ７，ｐ８を組み合わせてアセンブリＡ６とし、部品ｐ９とアセンブリＡ６とを組み合わせてアセンブリＡ５とするように、上から下への方向が組付順を示している。したがって、その逆の下から上の方向が分解順を示すことになる。
【００４４】
図８の（Ｂ）の製造フロー８０２では、所望の位置に工程が挿入されている。工程は、ユーザ操作により挿入される。工程は、組付けに必要な作業を示している。たとえば、（Ｂ）において、部品ｐ２については、工程Ｆ２を施し、そのあとで部品ｐ１と組み合わせることで、アセンブリＡ２が得られることになる。
【００４５】
図９は、図８の（Ｂ）の製造フロー８０２を親子関係で分解した分解製造フロー９０１〜９０７を示す説明図である。たとえば、分解製造フロー９０２は、アセンブリＡ２，Ａ３を組み付けてアセンブリＡ１を生成するフローである。また、分解製造フロー９０３は、アセンブリｐ１，ｐ２を組み付けてアセンブリＡ２を生成するフローである。
【００４６】
＜リスト構造＞
つぎに、製造フロー８０２のデータ構造について説明する。本実施の形態では、上述した部品情報５００やアセンブリ情報６００を、一例としてノードを連結したリスト構造で管理する。
【００４７】
図１０は、ノードのデータ構造例を示す説明図である。図１０において、ノードは、ノード番号と、ノード情報と、次ノードへのポインタと、を含む。ノード番号は、組立順を示す番号であり、製造フロー８０２について１から順にナンバリングされる。ノード番号の昇順が組立順となり、その逆順が分解順となる。
【００４８】
また、ノード情報は、モデルの識別情報と、種別フラグと、フロー記号と、工程情報と、を含む。モデルの識別情報とは、ノードに対応する部品またはアセンブリの識別情報である。モデルの識別情報がポインタとなり、部品情報５００やアセンブリ情報６００を指定することができる。
【００４９】
種別フラグとは、ノードが、部品、アセンブリ、工程のどのノードに該当するかを識別するフラグである。たとえば、部品の種別フラグを「０」、アセンブリの種別フラグを「１」、工程の種別フラグを「２」とする。フロー記号は、図８に示した記号である。工程情報とは、ノードの種別が工程である場合、工程の詳細な内容を示す文字列である。当該文字列は、ユーザ操作により入力される。
【００５０】
次ノードへのポインタには、次ノードのノード番号が格納される。これにより、次ノードを指定することができる。また、次ノードからも指定される。次ノードがない場合、当該ノードが最後尾のノードとなるため、「Ｎｕｌｌ」が格納される。
【００５１】
図１１は、分解製造フローのリスト構造例を示す説明図である。図１１に示したリスト構造１１０１は、図９に示した分解製造フロー９０１のリスト構造であり、ノードＮ１〜Ｎ５が連結されている。
【００５２】
＜情報生成装置のハードウェア構成例＞
図１２は、実施の形態にかかる情報生成装置のハードウェア構成例を示すブロック図である。図１２において、情報生成装置は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１２０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１２０３と、磁気ディスクドライブ１２０４と、磁気ディスク１２０５と、光ディスクドライブ１２０６と、光ディスク１２０７と、ディスプレイ１２０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）１２０９と、キーボード１２１０と、マウス１２１１と、スキャナ１２１２と、プリンタ１２１３と、を備えている。また、各構成部はバス１２００によってそれぞれ接続されている。
【００５３】
ここで、ＣＰＵ１２０１は、情報生成装置の全体の制御を司る。ＲＯＭ１２０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ１２０３は、ＣＰＵ１２０１のワークエリアとして使用される。磁気ディスクドライブ１２０４は、ＣＰＵ１２０１の制御にしたがって磁気ディスク１２０５に対するデータのリード／ライトを制御する。磁気ディスク１２０５は、磁気ディスクドライブ１２０４の制御で書き込まれたデータを記憶する。
【００５４】
光ディスクドライブ１２０６は、ＣＰＵ１２０１の制御にしたがって光ディスク１２０７に対するデータのリード／ライトを制御する。光ディスク１２０７は、光ディスクドライブ１２０６の制御で書き込まれたデータを記憶したり、光ディスク１２０７に記憶されたデータをコンピュータに読み取らせたりする。
【００５５】
ディスプレイ１２０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ１２０８は、たとえば、液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００５６】
インターフェース（以下、「Ｉ／Ｆ」と略する。）１２０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク１２１４に接続され、このネットワーク１２１４を介して他の装置に接続される。そして、Ｉ／Ｆ１２０９は、ネットワーク１２１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ１２０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００５７】
キーボード１２１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス１２１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００５８】
スキャナ１２１２は、画像を光学的に読み取り、情報生成装置内に画像データを取り込む。なお、スキャナ１２１２は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）機能を持たせてもよい。また、プリンタ１２１３は、画像データや文書データを印刷する。プリンタ１２１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００５９】
＜情報生成装置の機能的構成例＞
図１３は、情報生成装置１３００の機能的構成例を示すブロック図である。情報生成装置１３００は、記憶部１３０１と、入力部１３０２と、選択部１３０３と、生成部１３０４と、算出部１３０５と、判定部１３０６と、決定部１３０７と、設定部１３０８と、再生部１３０９と、を備えている。
【００６０】
記憶部１３０１は、具体的には、たとえば、図１２に示したＲＯＭ１２０２、ＲＡＭ１２０３、磁気ディスク１２０５、光ディスク１２０７などの記憶装置によりその機能を実現する。また、入力部１３０２〜再生部１３０９は、具体的には、たとえば、図１２に示したＲＯＭ１２０２、ＲＡＭ１２０３、磁気ディスク１２０５、光ディスク１２０７などの記憶装置に記憶されたプログラムをＣＰＵ１２０１に実行させることにより、または、Ｉ／Ｆ１２０９により、その機能を実現する。
【００６１】
入力部１３０２は、データの入力を受け付ける。具体的には、たとえば、図２に示したように、３次元モデル２０１やアセンブリツリー２０２の入力を受け付ける。入力データ２００は、記憶部１３０１に格納される。その後、記憶部１３０１には、図５の部品情報５００、図６のアセンブリ情報６００、図８の（Ｂ）の製造フローや図１１のリスト構造が格納されるものとする。
【００６２】
選択部１３０３は、複数のモデルで組み付けられたアセンブリを記憶する記憶装置からいずれかのモデルを選択する。ここでは、すでに、処理対象となる分解製造フローのリスト構造が指定されているものとする。そして、選択部１３０３は、リスト構造の最後尾のノードから順次モデルを選択することになる。
【００６３】
たとえば、図１１のリスト構造１１０１の場合、選択部１３０３は、最後尾のノードＮ５から順次選択し、部品ｐ１０を選択モデルとして選択し、つぎに、ノードＮ４のアセンブリＡ５を選択モデルとして選択する。つぎのノードＮ３は、工程であるため選択されず、ノードＮ２のアセンブリＡ１が選択されることになる。先頭のノードＮ１まで選択されると、選択すべきモデルがないため、終了する。
【００６４】
生成部１３０４は、第１の領域に対し、選択部１３０３での選択モデルを第１の領域の背景色と異なる色で複数の方向から投影することにより、第１の投影画像群を生成する。具体的には、たとえば、生成部１３０４は、選択モデルについて、そのローカル座標系の６方向（＋Ｘｌ〜−Ｚｌ）とグローバル座標系の６方向（＋Ｘｇ〜−Ｚｇ）の各々の方向から第１の投影画像群を生成する。投影先となる第１の領域とは、たとえば、図１に示した所定サイズのビットマップ画像領域（たとえば、２００×２００ピクセル）である。生成部１３０４は、ローカル座標系とグローバル座標系とが一致する場合は、いずれか一方の座標系の６方向について生成することになる。これにより、同一処理の重複を防止でき、処理の高速化を図ることができる。
【００６５】
ここで、ローカル座標系とグローバル座標系とが一致する場合、図１に示したように、生成部１３０４は、第１の投影画像群として、投影画像（ａ）〜（ｆ）を生成する。この場合、選択モデル（Ｅリング１０１）は背景色（たとえば、黒）と異なる色（白）で投影される。したがって、選択モデルの投影箇所のビットを計数されることになる。なお、ローカル座標系とグローバル座標系とが一致しない場合がある。たとえば、モデルのローカル座標系に対し、グローバル座標系では、斜めに組み付けられている場合などである。このような場合は、第１および第２の投影画像群は、それぞれ１２方向分生成されることになる。
【００６６】
また、生成部１３０４は、第１の領域と同サイズの第２の領域に対し、選択モデルを背景色と異なる色にし、選択モデル以外の他のモデルを背景色と同色にして、複数の方向から投影することにより、第２の投影画像群を生成する。具体的には、たとえば、生成部１３０４は、選択モデルについて、そのローカル座標系の６方向（＋Ｘｌ〜−Ｚｌ）とグローバル座標系の６方向（＋Ｘｇ〜−Ｚｇ）の各々の方向から第２の投影画像群を生成する。投影先となる第２の領域とは、第１の領域と同サイズであり、たとえば、図１に示した所定サイズのビットマップ画像領域（たとえば、２００×２００ピクセル）である。生成部１３０４は、ローカル座標系とグローバル座標系とが一致する場合は、いずれか一方の座標系の６方向について生成することになる。これにより、同一処理の重複を防止でき、処理の高速化を図ることができる。
【００６７】
同様に、ローカル座標系とグローバル座標系とが一致する場合、図１に示したように、生成部１３０４は、第２の投影画像群として、投影画像（Ａ）〜（Ｆ）を生成する。この場合、選択モデル（たとえば、図１のＥリング１０１）は背景色（たとえば、黒）と異なる色（白）で投影され、他のモデル（たとえば、図１のシャフト１０２）は背景色で投影される。したがって、干渉状態の選択モデルの投影箇所のビットが計数されることになる。
【００６８】
算出部１３０５は、生成部１３０４によって生成された第１および第２の投影画像群を、複数の方向から選ばれた検証方向が同一である投影画像どうしで比較することにより、投影画像どうしの一致度を示すスコアを検証方向ごとに算出する。図１を例に挙げて詳細に説明する。なお、ここでは、図１の座標系をローカル座標系として説明する。
【００６９】
複数の方向から選ばれた検証方向とは、図１の場合、＋Ｘ〜−Ｚから順次選ばれる方向である。算出部１３０５は、検証方向が同一である投影画像どうしを比較する。たとえば、算出部１３０５は、検証方向が＋Ｘである場合、投影画像（ａ），（Ａ）を比較し、検証方向が−Ｘである場合、投影画像（ｂ），（Ｂ）を比較する。たとえば、以下のように比較される。
【００７０】
図１において、投影画像（ａ）〜（ｆ）のうち選択モデルであるＥリングの画像を示す白色のビット数の計数結果ＷＢ１を、それぞれ、
ＷＢ１（ａ）＝  ２０００
ＷＢ１（ｂ）＝  ２０００
ＷＢ１（ｃ）＝  ２０００
ＷＢ１（ｄ）＝  ２０００
ＷＢ１（ｅ）＝１３０００
ＷＢ１（ｆ）＝１３０００
とする。
【００７１】
また、図１において、投影画像（Ａ）〜（Ｆ）のうち選択モデルであるＥリングの画像を示す白色のビット数の計数結果ＷＢ２を、それぞれ、
ＷＢ２（Ａ）＝２０００
ＷＢ２（Ｂ）＝１７００
ＷＢ２（Ｃ）＝２０００
ＷＢ２（Ｄ）＝１７００
ＷＢ２（Ｅ）＝９０００
ＷＢ２（Ｆ）＝９５００
とする。
【００７２】
つぎに、算出部１３０５は同一方向どうしでスコアを算出する。一例として、スコアは、下記式（１）により算出される。
【００７３】
スコアＢｐ＝（ＷＢ１／ＷＢ２）×１００・・・（１）
【００７４】
したがって、検証方向ごとのスコアＢｐは以下のようになる。
Ｂｐ（＋Ｘｌ）＝１００
Ｂｐ（−Ｘｌ）＝  ８５
Ｂｐ（＋Ｙｌ）＝１００
Ｂｐ（−Ｙｌ）＝  ８５
Ｂｐ（＋Ｚｌ）＝  ７０
Ｂｐ（−Ｚｌ）＝  ７３
【００７５】
第２の投影画像群は他のモデルとの干渉状態を示しており干渉部分が黒のビットとなるため、スコアＢｐは１００以下の得点となる。第２の投影画像においても干渉状態にならない場合は、最高得点の１００となる。このように、スコアＢｐが高いほど、第１の投影画像における選択モデルの投影箇所（白のビット）と第２の投影画像における選択モデルの投影箇所（白のビット）との一致数が高くなる。換言すれば、一致数が高いということは、その検証方向の逆方向に選択モデルと干渉する箇所が少ないことを意味する。したがって、選択モデルが検証方向の逆方向に抜ける可能性が高くなる。上記の例では、＋Ｘ方向および＋Ｙ方向のスコアＢｐがともに１００であるため、その逆方向である−Ｘ方向または−Ｙ方向に分解できる可能性が高いことを示している。
【００７６】
判定部１３０６は、回転体判定部１３６１と、板状体判定部１３６２と、方向判定部１３６３と、干渉判定部１３６４と、を有する。判定部では、回転体判定部１３６１〜干渉判定部１３６４の判定をおこなうことで、スコアＢｐに対し加点または減点する。なお、回転体判定部１３６１〜干渉判定部１３６４の実行は任意である。たとえば、回転体判定部１３６１〜干渉判定部１３６４のすべてを実行してもよく、また、少なくともいずれか１つを実行してもよい。また、いずれも実行しなくてもよい。
【００７７】
まず、回転体判定部１３６１について説明する。回転体判定は、組立の実業務において「回転体の形状を持つモデルの組付方向は、回転軸方向から組み付ける割合が高い」ことからスコアＢｐの加点条件として実行される。もし、選択モデルが検証方向から見たときに回転体であると判定された場合は、現在の視点方向である検証方向は、回転軸方向となる。以下、回転体の判定内容について説明する。
【００７８】
回転体判定部１３６１は、選択モデルを検証方向から投影した投影画像の外接矩形の形状と、投影画像を所定角度回転させた場合の回転後の投影画像の外接矩形の形状と、に基づいて、選択モデルが回転体であるか否かを判定する。
【００７９】
具体的には、たとえば、回転体判定部１３６１は、検証方向の座標系で選択モデルのバウンディングボックスを計算する。検証方向の座標系とは、検証方向が＋Ｘｌ〜−Ｚｌの場合は選択モデルのローカル座標系であり、検証方向が＋Ｘｇ〜−Ｚｇの場合は選択モデルのグローバル座標系である。また、バウンディングボックスは選択モデルの外接直方体である。
【００８０】
回転体判定部１３６１は、検証方向に直交する２軸からなる投影面に、バウンディングボックスを投影することで、投影画像を生成する。たとえば、検証方向が＋Ｘｌの場合、回転体判定部１３６１は、＋Ｘｌに直交する＋Ｙ，＋Ｚからなる投影面にバウンディングボックスを投影する。ここで、回転体判定部１３６１は、バウンディングボックスの投影画像の縦の長さをＶ、横の長さをＨとし、縦横比Ｖ／Ｈを求める。
【００８１】
回転体判定部１３６１は、バウンディングボックスとともに投影された選択モデルの投影画像を、当該投影画像の中心を回転中心にして、０度、１５度、３０度、４５度半時計回り（時計回りでもよい）に回転させた回転後の選択モデルの投影画像を生成する。ここでは、１５度刻みで３回回転させているが、ユーザは、刻み角度や回転回数は任意に設定することができる。
【００８２】
選択モデルの投影画像が回転させられると、選択モデルを外接するバウンディングボックスの投影画像の縦Ｖおよび横Ｈも変化する。回転による縦横比Ｖ／Ｈの変化が許容範囲である場合、選択モデルは回転体であると判定される。
【００８３】
図１４は、回転体の判定例を示す説明図である。（Ａ）は、選択モデルの投影画像が正方形の例であり、（Ｂ）は、選択モデルの投影画像が５角形の例であり、（Ｃ）は、選択モデルの投影画像が正８角形の例である。
【００８４】
（Ａ）および（Ｃ）は、それぞれの回転角度において縦横比Ｖ／Ｈが１．０であるため、選択モデルは回転体と判定される。これに対し、（Ｂ）は、回転角度が１５度、３０度、４５度のときに、許容範囲（１．０±０．０５）の範囲外になるため、選択モデルは回転体でないと判定される。なお、本例では、回転角度が１５度、３０度、４５度のいずれも許容範囲外の場合、選択モデルは回転体でないと判定したが、少なくともいずれか１つでも許容範囲外の場合に選択モデルは回転体でないと判定してもよい。
【００８５】
回転体であると判定された場合は、算出部１３０５は、選択モデルの加点スコアＡＰ１をスコアＢｐに加算することになる。
【００８６】
つぎに、板状体判定部１３６２について説明する。板状体判定は、組立の実業務において「組付時の支持（アームで掴む）や、位置合わせの観点からも、板面の法線方向が望ましい」ため、実行される。以下、板状体の判定内容について説明する。
【００８７】
板状体判定部１３６２は、選択モデルの検証方向の長さと、複数の方向のうち検証方向およびその逆方向以外の方向の長さと、に基づいて、選択モデルが検証方向に組み付けられる板状体であるか否かを判定する。具体的には、たとえば、板状体判定部１３６２は、検証方向の座標系での選択モデルのバウンディングボックスを計算する。
【００８８】
そして、板状体判定部１３６２は、検証方向の座標系で定義される３軸方向におけるバウンディングボックスの長さを求める。そして、板状体判定部１３６２は、検証方向以外の２軸の方向の長さが、検証方向の長さの所定倍（たとえば、２０倍）であるか否かを判定する。所定倍以上であれば、選択モデルは板状体と判定される。
【００８９】
図１５は、板状体の判定例を示す説明図である。図１５において、Ｂは選択モデルのバウンディングボックスであり、Ｄ（ｊ）は検証方向である。また、Ｌ１〜Ｌ３は、検証方向Ｄ（ｊ）の座標系での軸方向でのバウンディングボックスＢの長さである。Ｌ１は、検証方向Ｄ（ｊ）の長さである。この場合、Ｌ２、Ｌ３がＬ２の所定倍以上の長さであれば、バウンディングボックスＢの算出元の選択モデルは板状体と判定される。
【００９０】
板状体であると判定された場合は、算出部１３０５は、加点スコアＡＰ２をスコアＢｐに加算することになる。
【００９１】
つぎに、方向判定部１３６３について説明する。方向判定については、「組付け作業」と考えると、同一の組付方向が連続していた方が好ましく、組付先のモデルの無駄な回転や反転を控える方に加点するという考え方から加点処理として実行される。したがって、方向判定部１３６３は、前回の選択モデルで決定された分解方向を、前回の選択モデルの部品情報５００またはアセンブリ情報６００から確認する。そして、検証方向と逆方向である場合、算出部１３０５は、加点スコアＡＰ３をスコアＢｐに加算することになる。
【００９２】
つぎに、干渉判定部１３６４について説明する。干渉判定は、干渉の発生自体が、組付の可否、または分解の可否の直接の要因とはならないが、分解方向の決定精度を高めるための処理として実行される。特に、干渉判定は、工業製品内に多く使われるＥリング１０１やカーテンレールのスライド部品のように、モデル形状が凹形状である場合に有効である。このような形状のモデルが、リングの軸方向に分解する（または軸方向から組み付ける）ように見えても、実際の組立では軸に垂直方向へ抜く（または垂直方向から組み付けられる）モデルである場合、抜き方向（分解方向）の決定精度を高めることができる。以下、干渉判定内容について説明する。
【００９３】
干渉判定部１３６４は、選択モデルを、検証方向の逆方向に、検証モデルの検証方向での長さを超えない所定量移動させることにより、移動前後で干渉するか否かを判定する。具体的には、たとえば、干渉判定部１３６４では、検証方向の座標系での選択モデルのバウンディングボックスを求める。つぎに、干渉判定部１３６４は、バウンディングボックスからパラメタ群（高さ、幅、奥行き）を計算する。そして、干渉判定部１３６４は、パラメタ群のうち検証方向と同一方向のパラメタの値の長さの１／４または１／２だけ、検証方向とは逆方向となる分解方向に選択モデルを移動させる。干渉判定部１３６４は、移動前の選択モデルと移動後の選択モデルとで干渉チェックを実行する。
【００９４】
図１６は、干渉判定例１を示す説明図である。図１６では、選択モデルとしてＥリング１０１を例に挙げて説明している。図１６では、検証方向Ｄ（ｊ）の逆方向に、検証方向と同一方向のパラメタの値Ｌの１／２を移動させた例である。また、図１６中、Ｂ１は移動前のバウンディングボックス、Ｂ２は移動後のバウンディングボックス、Ｍ１は移動前の選択モデル、Ｍ２は移動後の選択モデルである。また、Ｍ０は、選択モデルＭの組付先のモデルである。
【００９５】
（Ａ）の場合、選択モデルＭ１を検証方向Ｄ（ｊ）の逆方向に移動させると、選択モデルＭ１，Ｍ２は干渉しない。したがって、検証方向Ｄ（ｊ）のスコアＢｐに加点スコアＡＰ４が加点されることになる。一方、（Ｂ）の場合、選択モデルＭ１を検証方向Ｄ（ｊ）の逆方向に移動させると、選択モデルＭ１，Ｍ２は干渉する。したがって、検証方向Ｄ（ｊ）のスコアＢｐに加点スコアＡＰ４が加点されないことになる。
【００９６】
図１７は、干渉判定例２を示す説明図である。図１７では、選択モデルとしてＯリングを例に挙げて説明している。図１７では、Ｏリングであるため、検証方向Ｄ（ｊ）がどの向きであっても、選択モデルＭ１を検証方向Ｄ（ｊ）の逆方向に移動させると、選択モデルＭ１，Ｍ２は干渉する。したがって、検証方向Ｄ（ｊ）のスコアＢｐに加点スコアＡＰ４が加点されないことになる。
【００９７】
干渉判定部１３６４では、従来の干渉チェックのように微小量移動させる都度干渉チェックするのではなく、一律に一定量移動させて移動前後のモデルどうしで干渉判定をおこなうため、干渉判定処理の簡略化を図ることができる。また、移動量を、検証モデルの検証方向での長さを超えない所定量、たとえば、検証方向Ｄ（ｊ）の長さの１／２や１／４としている。したがって、干渉判定部１３６４は、Ｅリング１０１やクリップなどの非環状部品が組付先と干渉しない状態を検出することができる。すなわち、干渉判定部１３６４は、選択モデルが非環状部品である場合に、どの方向から組み付けられ、または、どの方向へ分解されるかを特定することができる。
【００９８】
干渉判定部１３６４で干渉していないと判定された場合は、算出部１３０５は、加点スコアＡＰ４をスコアＢｐに加算することになる。
【００９９】
決定部１３０７は、算出部１３０５によって算出されたスコア群の中で最大スコアとなる投影画像の検証方向の逆方向を、アセンブリデータから選択モデルを分解する分解方向に決定し、当該分解方向を選択モデルに関連付けて記憶部１３０１に格納する。具体的には、たとえば、決定部１３０７は、ローカル座標系の６方向およびグローバル座標系の６方向の計１２方向から得られたスコアＢｐのうち、最大スコアとなる投影画像を投影した検証方向の逆方向を、分解方向に決定する。決定部１３０７は、また、最大スコアとなる投影画像を投影した検証方向を、組付方向に決定する。決定部１３０７は、決定された分解方向および組付方向を、選択モデルの部品情報５００またはアセンブリ情報６００の最優先方向項目に保存する。
【０１００】
設定部１３０８は、視点設定部１３８１と移動量設定部１３８２とを有する。視点設定部１３８１は、選択モデルの分解方向の注視点が同じでかつ方向が異なる視点方向の視点を設定し、選択モデルに関連付けて記憶部１３０１に格納する。分解方向からの視点では、奥行き方向にモデルが移動するため、アニメーションとしては分かり辛い。そのため、視点設定部１３８１は、たとえば、天頂角と方位角をそれぞれ所定角度（たとえば３０度）傾けた位置の座標値を視点として、部品情報５００またはアセンブリ情報６００の視点項目に保存する。
【０１０１】
図１８は、視点設定例を示す説明図である。図１８において、Ｍは対象とするモデル、Ｐｃは視点、Ｐｐは注視点、Ｄ-は決定部１３０７で決定されたモデルＭの分解方向、Ｄｃは変更後の視点方向である。視点設定部１３８１では、注視点Ｐｐはそのままにし、視点位置だけ変更した視点方向Ｄｃを設定する。（Ａ）は、視点設定前の状態である。（Ｂ）は、水平角θ分、視点Ｐｃを注視点Ｐｐを中心に旋回させた状態を示している。（Ｃ）は、（Ｂ）の状態から天頂角φ分、視点Ｐｃを注視点Ｐｐを中心に旋回させた状態を示している。
【０１０２】
なお、視点設定部１３８１での設定では、水平角θ分の旋回だけでもよく、頂点角φ分の旋回だけでもよい。また、視点方向を回転軸とする回転角分の旋回をしてもよい。また、これら旋回に限らず、視点Ｐｃを平行移動させることとしてもよい。視点設定部１３８１は、このようにして視点を設定することで、アニメーション再生のときの見易さの向上を図ることができる。
【０１０３】
移動量設定部１３８２は、選択モデルの分解方向の長さに基づいて、選択モデルを分解方向に移動させる移動量を設定し、選択モデルに関連付けて記憶装置に格納する。具体的には、たとえば、移動量設定部１３８２は、選択モデルの分解方向の座標系で選択モデルのバウンディングボックスのパラメタ群（高さ、幅、奥行き）を計算する。そして、移動量設定部１３８２は、パラメタ群のうち選択モデルの分解方向と同一方向となるパラメタの値を所定倍（たとえば３倍）して、移動量に設定する。
【０１０４】
図１９は、移動量の設定例を示す説明図である。図１９において、Ｍ０が組付先のモデルであり、Ｍ１が選択モデルである。図１９では、選択モデルＭ１のバウンディングボックスにおける分解方向の長さを２００とする。この場合、たとえば、２００×３＝６００が移動量となる。このように、選択モデルの分解方向と同一方向となるパラメタの値を所定倍して移動量を設定することで、アセンブリから選択モデルが十分離されるため、分解されたことを容易に視認することができる。
【０１０５】
＜情報生成処理＞
図２０は、情報生成装置１３００による情報生成処理の詳細な処理手順を示すフローチャートである。情報生成装置１３００は、情報設定処理（ステップＳ２００１）と、再生処理（ステップＳ２００２）とを実行する。情報設定処理（ステップＳ２００１）では、選択モデルごとに分解方向および組付方向、視点、移動量が設定され、再生処理（ステップＳ２００２）では、情報設定処理（ステップＳ２００１）で設定された情報を用いて分解アニメーションを再生する。組付アニメーションの再生も実行してもよい。なお、情報設定処理（ステップＳ２００１）の詳細は図２１で説明し、再生処理（ステップＳ２００２）の詳細は図３１で説明する。
【０１０６】
図２１は、図２０に示した情報設定処理（ステップＳ２１０１）の詳細な処理手順を示すフローチャートである。まず、情報生成装置１３００は、対象アセンブリが指定されるのを待ち受ける（ステップＳ２１０１：Ｎｏ）。たとえば、情報生成装置１３００は、製造フローの中から対象アセンブリがユーザ操作により指定されるのを待ち受ける。
【０１０７】
対象アセンブリが指定された場合（ステップＳ２１０１：Ｙｅｓ）、情報生成装置１３００は、対象アセンブリの直下の階層のモデル数Ｎを検出する（ステップＳ２１０２）。具体的には、たとえば、対象アセンブリのアセンブリ情報６００における直下の構成モデル数項目に格納されている値を抽出する。この値が、対象アセンブリについての分解製造フロー内のモデル数と一致することになる。
【０１０８】
つぎに、情報生成装置１３００は、記憶装置に記憶されている分解製造フロー群から対象アセンブリの分解製造フローを特定し、そのリスト構造を取得する（ステップＳ２１０３）。たとえば、対象アセンブリがＡ０の場合、図９の分解製造フロー９０１に対応するリスト構造１１０１（図１１）を取得する。
【０１０９】
そして、情報生成装置１３００は、カウンタのインデックスｉをｉ＝１とし（ステップＳ２１０４）、ｉ＞Ｎであるか否かを判断する（ステップＳ２１０５）。すなわち、情報生成装置１３００が、取得したリスト構造内のモデルをすべて選択したか否かを判断することになる。
【０１１０】
ｉ＞Ｎでない場合（ステップＳ２１０５：Ｎｏ）、情報生成装置１３００は、対象アセンブリのリスト構造の未選択ノードのうち最後尾のノードを選択する（ステップＳ２１０６）。ノードの選択順は任意でもよいが、最後尾のノードから選択することで、製造フローにおいて最後に組み付けられたモデルから順に選択することができる。
【０１１１】
そして、情報生成装置１３００は、選択ノードから種別フラグを抽出し（ステップＳ２１０７）、選択ノードがモデルであるか否かを判断する（ステップＳ２１０８）。種別フラグが「０」または「１」であればモデル、「２」は工程であるため、モデルではない。
【０１１２】
このあと、選択ノードがモデルでないと判断された場合（ステップＳ２１０８：Ｎｏ）、ステップＳ２１１２に移行する。一方、選択ノードがモデルであると判断された場合（ステップＳ２１０８：Ｙｅｓ）、情報生成装置１３００は、分解方向検出処理（ステップＳ２１０９）、視点設定処理（ステップＳ２１１０）、移動量設定処理（ステップＳ２１１１）を実行し、ステップＳ２１１２に移行する。
【０１１３】
分解方向検出処理（ステップＳ２１０９）は、モデルであると判断された選択ノード、すなわち、選択モデルの分解方向を検出する処理である。詳細は、図２２で説明する。視点設定処理（ステップＳ２１１０）は、選択モデルの視点を設定する処理である。詳細は、図２９で説明する。また、移動量設定処理（ステップＳ２１１１）は、選択モデルの移動量を設定する処理である。詳細は、図３０で説明する。
【０１１４】
ステップＳ２１１２では、カウンタのインデックスｉをインクリメントして（ステップＳ２１１２）、ステップＳ２１０５に戻る。そして、ステップＳ２１０５において、ｉ＞Ｎと判断された場合（ステップＳ２１０５：Ｙｅｓ）、図２０に示した再生処理（ステップＳ２００２）に移行することになる。このように、情報設定処理（ステップＳ２００１）によれば、選択モデルごとに分解方向および組付方向、視点、移動量を設定することができる。
【０１１５】
図２２は、図２１に示した分解方向検出処理（ステップＳ２１０９）の詳細な処理手順を示すフローチャートである。図２１において、まず、情報生成装置１３００は、スコアＢｐ、加点スコアＡＰ１〜ＡＰ４を初期化（＝０）し（ステップＳ２２０１）、選択モデルのローカル座標系を取得する（ステップＳ２２０２）。また、情報生成装置１３００は、選択モデルのグローバル座標系を取得する（ステップＳ２２０３）。ローカル座標系およびグローバル座標系については、図７に示した手法で求められる。
【０１１６】
つぎに、情報生成装置１３００は、取得したローカル座標系とグローバル座標系が一致するか否かを判断する（ステップＳ２２０４）。一致する場合（ステップＳ２２０４：Ｙｅｓ）、情報生成装置１３００は、検証すべき方向群をローカル座標系の正負の軸方向である６方向（＋Ｘｌ〜−Ｚｌ）に決定して（ステップＳ２２０５）、ステップＳ２２０７に移行する。一方、不一致の場合（ステップＳ２２０４：Ｎｏ）、情報生成装置１３００は、検証すべき方向群を、ローカル座標系およびグローバル座標系のそれぞれの正負の軸方向である１２方向（＋Ｘｌ〜−Ｚｌ、＋Ｘｇ〜−Ｚｇ）に決定する（ステップＳ２２０６）。そして、ステップＳ２２０７に移行する。
【０１１７】
このあと、情報生成装置１３００は、検証方向のインデックスｊをｊ＝１とし（ステップＳ２２０７）、検証方向Ｄ（ｊ）を設定する（ステップＳ２２０８）。ここで、検証方向Ｄ（ｊ）については、ステップＳ２２０５で６方向になった場合は、６方向（＋Ｘｌ〜−Ｚｌ）の中から設定され、ステップＳ２２０６で１２方向になった場合は、１２方向（＋Ｘｌ〜−Ｚｌ、＋Ｘｇ〜−Ｚｇ）の中から設定される。
【０１１８】
そして、情報生成装置１３００は、スコア算出処理を実行する（ステップＳ２２０９）。スコア算出処理（ステップＳ２２０９）は、検証方向Ｄ（ｊ）ごとに、その逆方向が選択モデルの分解方向であるかを示すスコアＢｐを算出する処理である。スコア算出処理（ステップＳ２２０９）の詳細については図２３で説明する。
【０１１９】
スコア算出処理（ステップＳ２２０９）のあと、情報生成装置１３００は、算出されたスコアＢｐを保存する（ステップＳ２２１０）。たとえば、選択モデルが部品であり、検証方向Ｄ（ｊ）が「＋Ｘｌ」の場合は、選択モデルの部品情報５００における６軸スコア項目の＋Ｘｌ項目に、算出されたスコアＢｐを保存する。また、選択モデルがアセンブリであり、検証方向Ｄ（ｊ）が「＋Ｘｇ」の場合は、選択モデルのアセンブリ情報６００における６軸スコア項目の＋Ｘｇ項目に、算出されたスコアＢｐを保存する。
【０１２０】
この後、情報生成装置１３００は、ｊ＞Ｍであるか否かを判断する（ステップＳ２２１１）。Ｍは検証すべき方向群の数である。たとえば、ステップＳ２２０５で６方向になった場合は、Ｍ＝６、ステップＳ２２０６で１２方向になった場合は、Ｍ＝１２である。
【０１２１】
ｊ＞Ｍでない場合（ステップＳ２２１１：Ｎｏ）、検証していない方向があるため、情報生成装置１３００は、ｊをインクリメントし（ステップＳ２２１２）、スコアＢｐを初期化して（ステップＳ２２１３）、ステップＳ２２０８に戻る。一方、ｊ＞Ｍである場合（ステップＳ２２１１：Ｙｅｓ）、情報生成装置１３００は、Ｍ個の方向のスコア群の中から最高得点のスコアを特定し、そのスコアを得た方向（組付方向）の逆方向を分解方向に決定する（ステップＳ２２１４）。そして、部品情報５００またはアセンブリ情報６００の最優先方向項目に、分解方向と組付方向を保存する。このあと、視点設定処理（ステップＳ２１１０）に移行することになる。
【０１２２】
図２３は、図２２に示したスコア算出処理（ステップＳ２２０９）の詳細な処理手順を示すフローチャートである。まず、情報生成装置１３００は、投影シルエット処理を実行する（ステップＳ２３０１）。投影シルエット処理（ステップＳ２３０１）は、図１および算出部１３０５で説明したように、スコアＢｐを算出する処理である。投影シルエット処理（ステップＳ２３０１）の詳細については図２４で説明する。
【０１２３】
投影シルエット処理（ステップＳ２３０１）のあと、情報生成装置１３００は、投影シルエット処理（ステップＳ２３０１）で算出されたスコアＢｐがしきい値以上であるか否かを判断する（ステップＳ２３０２）。本例では、スコアＢｐの上限が１００であるため、一例としてしきい値を５０とする。スコアＢｐがしきい値以上である場合（ステップＳ２３０２：Ｙｅｓ）、情報生成装置１３００は、回転体判定処理（ステップＳ２３０３）、板状体判定処理（ステップＳ２３０４）、分解方向判定処理（ステップＳ２３０５）、干渉判定処理（ステップＳ２３０６）を実行することで、スコアＢｐを更新する（ステップＳ２３０７）。この後、ステップＳ２２１０に移行する。
【０１２４】
一方、スコアＢｐがしきい値以上でない場合（ステップＳ２３０２：Ｎｏ）、その方向の逆方向からは分解できないと判断する。そのため、回転体判定処理（ステップＳ２３０３）〜干渉判定処理（ステップＳ２３０６）を実行せずに、ステップＳ２２１０に移行する。
【０１２５】
図２４は、図２３に示した投影シルエット処理（ステップＳ２３０１）の詳細な処理手順を示すフローチャートである。まず、情報生成装置１３００は、描画作業領域となるビットマップの背景色、たとえば、黒に設定する（ステップＳ２４０１）。つぎに、情報生成装置１３００は、対象アセンブリのうち選択モデルを背景色とは異なる特定の色、たとえば、白で表示する（ステップＳ２４０２）。このとき、選択モデル以外のモデルは非表示にする。
【０１２６】
そして、情報生成装置１３００は、検証方向Ｄ（ｊ）を視点方向とし、描画作業領域に選択モデルが収まる倍率で、選択モデルを描画作業領域に投影する（ステップＳ２４０３）。このあと、情報生成装置１３００は、投影箇所である選択モデルの特定の色（白）のビット数ＷＢ１をカウントする（ステップＳ２４０４）。
【０１２７】
つぎに、情報生成装置１３００は、対象アセンブリを表示させ（ステップＳ２４０５）、選択モデルを特定の色（白）、それ以外のモデルを背景色（黒）にして、ステップＳ２４０３と同一倍率で選択モデルを描画作業領域に投影する（ステップＳ２４０６）。そして、情報生成装置１３００は、特定色で投影されたビット数ＷＢ２をカウントする（ステップＳ２４０７）。このあと、情報生成装置１３００は、上述した式（１）により、スコアＢｐを算出して（ステップＳ２４０８）、一時的にメモリに保存する（ステップＳ２４０９）。このあと、ステップＳ２３０２に移行してしきい値以上か否かが判断される。
【０１２８】
図２５は、図２３に示した回転体判定処理（ステップＳ２３０３）の詳細な処理手順を示すフローチャートである。まず、情報生成装置１３００は、加点スコアＡＰ１を初期化し（ステップＳ２５０１）、検証方向Ｄ（ｊ）の座標系での選択モデルのバウンディングボックスを生成する（ステップＳ２５０２）。つぎに、情報生成装置１３００は、検証方向Ｄ（ｊ）を除く２軸からなる投影面にバウンディングボックスを投影する（ステップＳ２５０３）。そして、情報生成装置１３００は、投影画像を、０度、１５度、３０度、４５度回転させた４つの投影画像の縦Ｖ×横Ｈの縦横比Ｖ／Ｈを求める（ステップＳ２５０４）。
【０１２９】
このあと、情報生成装置１３００は、回転角度ごとの縦横比により、検証方向Ｄ（ｊ）からみて選択モデルが回転体であるか否かを判定する（ステップＳ２５０５）。回転体である場合（ステップＳ２５０５：Ｙｅｓ）、情報生成装置１３００は、スコアＢｐに加点スコアＡＰ１を加算することで、スコアＢｐを更新し（ステップＳ２５０６）、板状体判定処理（ステップＳ２３０４）に移行する。一方、回転体でない場合（ステップＳ２５０５：Ｎｏ）、加点スコアＡＰ１を加算せずに板状体判定処理（ステップＳ２３０４）に移行する。
【０１３０】
図２６は、図２３に示した板状体判定処理（ステップＳ２３０４）の詳細な処理手順を示すフローチャートである。まず、情報生成装置１３００は、加点スコアＡＰ２を初期化し（ステップＳ２６０１）、検証方向Ｄ（ｊ）の座標系での選択モデルのバウンディングボックスを生成する（ステップＳ２６０２）。つぎに、情報生成装置１３００は、図１５に示したように、選択モデルが板状体であるか否かを判定する（ステップＳ２６０３）。
【０１３１】
板状体である場合（ステップＳ２６０３：Ｙｅｓ）、情報生成装置１３００は、スコアＢｐに加点スコアＡＰ２を加算することで、スコアＢｐを更新し（ステップＳ２６０４）、分解方向判定処理（ステップＳ２３０５）に移行する。一方、板状体でない場合（ステップＳ２６０３：Ｎｏ）、加点スコアＡＰ２を加算せずに分解方向判定処理（ステップＳ２３０５）に移行する。
【０１３２】
図２７は、図２３に示した分解方向判定処理（ステップＳ２３０５）の詳細な処理手順を示すフローチャートである。まず、情報生成装置１３００は、加点スコアＡＰ３を初期化し（ステップＳ２７０１）、１つ前の選択モデルの分解方向を取得する（ステップＳ２７０２）。そして、情報生成装置１３００は、検証方向Ｄ（ｊ）と逆方向であるか否かを判定する（ステップＳ２７０３）。
【０１３３】
逆方向である場合（ステップＳ２７０３：Ｙｅｓ）、情報生成装置１３００は、スコアＢｐに加点スコアＡＰ３を加算することで、スコアＢｐを更新し（ステップＳ２７０４）、干渉判定処理（ステップＳ２３０６）に移行する。一方、逆方向でない場合（ステップＳ２７０３：Ｎｏ）、加点スコアＡＰ３を加算せずに干渉判定処理（ステップＳ２３０６）に移行する。
【０１３４】
図２８は、図２３に示した干渉判定処理（ステップＳ２３０６）の詳細な処理手順を示すフローチャートである。まず、情報生成装置１３００は、加点スコアＡＰ４を初期化し（ステップＳ２８０１）、検証方向Ｄ（ｊ）の座標系での選択モデルのバウンディングボックスを生成する（ステップＳ２８０２）。つぎに、情報生成装置１３００は、バウンディングボックスについて、検証方向Ｄ（ｊ）の座標系の３軸方向のパラメタ群（高さ、幅、奥行き）を算出する（ステップＳ２８０３）。
【０１３５】
そして、情報生成装置１３００は、検証方向Ｄ（ｊ）の逆方向に、当該逆方向のパラメタの値の１／２だけ、バウンディングボックスを移動させる（ステップＳ２８０４）。そして、情報生成装置１３００は、移動前後の選択モデルを比較して干渉が発生しているか否かを判定する（ステップＳ２８０５）。干渉が発生していない場合（ステップＳ２８０５：Ｎｏ）、情報生成装置１３００は、スコアＢｐに加点スコアＡＰ４を加算することで、スコアＢｐを更新し（ステップＳ２８０６）、ステップＳ２３０７に移行する。一方、干渉が発生した場合（ステップＳ２８０５：Ｙｅｓ）、加点スコアＡＰ４を加算せずにステップＳ２３０７に移行する。
【０１３６】
図２９は、図２１に示した視点設定処理（ステップＳ２１１０）の詳細な処理手順を示すフローチャートである。まず、情報生成装置１３００は、選択モデルの分解方向を取得し（ステップＳ２９０１）、注視点（画面中心）は動かさず、天頂角と方位角をそれぞれ所定角度傾けた位置を視点に設定する（ステップＳ２９０２）。そして、情報生成装置１３００は、視点の座標値を保存する（ステップＳ２９０３）。たとえば、選択モデルが部品の場合は、選択モデルの部品情報５００の視点項目に視点の座標値を保存し、選択モデルがアセンブリの場合は、選択モデルのアセンブリ情報６００の視点項目に視点の座標値を保存する。このあと、移動量設定処理（ステップＳ２１１１）に移行する。
【０１３７】
図３０は、図２１に示した移動量設定処理（ステップＳ２１１１）の詳細な処理手順を示すフローチャートである。まず、情報生成装置１３００は、選択モデルの分解方向を取得し（ステップＳ３００１）、検証方向Ｄ（ｊ）の座標系での選択モデルのバウンディングボックスを生成する（ステップＳ３００２）。
【０１３８】
つぎに、情報生成装置１３００は、バウンディングボックスについて、検証方向Ｄ（ｊ）の座標系の３軸方向のパラメタ群（高さ、幅、奥行き）を算出する（ステップＳ３００３）。そして、情報生成装置１３００は、パラメタ群のうち分解方向に一致する方向のパラメタの値を所定倍することで、移動量を設定する（ステップＳ３００４）。このあと、ステップＳ２１１２に移行する。
【０１３９】
図３１は、図２０に示した再生処理（ステップＳ２００２）の詳細な処理手順を示すフローチャートである。まず、情報生成装置１３００は、カウンタのインデックスｉをｉ＝１とし（ステップＳ３１０１）、ｉ＞Ｎであるか否かを判断する（ステップＳ３１０２）。すなわち、情報生成装置１３００が、取得したリスト構造内のモデルをすべて再生したか否かを判断することになる。
【０１４０】
ｉ＞Ｎでない場合（ステップＳ３１０２：Ｎｏ）、情報生成装置１３００は、対象アセンブリのリスト構造の未選択ノード群のうち最後尾のノードを選択する（ステップＳ３１０３）。そして、情報生成装置１３００は、選択ノードから種別フラグを抽出し（ステップＳ３１０４）、選択ノードがモデルであるか否かを判断する（ステップＳ３１０５）。種別フラグが「０」または「１」であればモデル、「２」は工程であるため、モデルではない。
【０１４１】
このあと、選択ノードがモデルでないと判断された場合（ステップＳ３１０５：Ｎｏ）、ステップＳ３１０７に移行する。一方、選択ノードがモデルであると判断された場合（ステップＳ３１０５：Ｙｅｓ）、情報生成装置１３００は、選択モデルの分解アニメーションを再生する（ステップＳ３１０６）。たとえば、選択モデルが部品であれば、部品情報５００の分解方向、視点、移動量を読み出して、分解アニメーションを再生する。また、選択モデルがアセンブリであれば、アセンブリ情報６００の分解方向、視点、移動量を読み出して、分解アニメーションを再生する。
【０１４２】
このあと、ステップＳ３１０７でｉをインクリメントし（ステップＳ３１０７）、ステップＳ３１０２に戻る。ステップＳ３１０２において、ｉ＞Ｎである場合（ステップＳ３１０２：Ｙｅｓ）、一連の処理を終了する。
【０１４３】
このように、本実施の形態によれば、部品点数が膨大なＥリング１０１などのモデルについて従来の干渉チェックでは検出できなかった組付方向や分解方向を検出することができる。したがって、アニメーション再生に用いる方向の検出の高精度化を図ることができる。また、従来のような干渉チェックをおこなっていないため、計算負荷の低減化を図ることができる。また、単純な投影画像の比較で組付方向や分解方向の検出をおこなっているため、検出速度の高速化を図ることができる。また、どのようなモデルに対しても方向検出をおこなうことができるため、対象製品の種類に依存することなく、汎用性の向上を図ることができる。
【０１４４】
また、本実施の形態にかかる情報生成装置は、製造フローが過去の組立データを元にフローの作成者が検討した組立順に並べられている特性を利用することで、製造フローから３Ｄアニメーションを自動生成する。これにより、自動的に動きを定義する部品の順序を製造フローから特定することができる。また、従来の分解する部品の順序をランダムに検証する干渉チェックで用いられる手法と比べて、結果が求まるまでの計算時間の短縮化を図ることができる。さらに、想定した組立順にそって自動生成されたアニメーションを見ることで、ユーザは、組立順そのものが想定した順序になっているかを視覚的に判断できるようになる。
【０１４５】
また、本実施の形態にかかる情報生成装置は、干渉チェックを使わないロジックを採用したことにより、干渉チェックのロジックを使っては不可能であった、「３Ｄモデルを使った分解アニメーション」を自動生成することができる。また、どのようなモデル形状でも短時間の処理で、かつ、精度が高い。
【０１４６】
また、本実施の形態にかかる情報生成装置は、モデル点数が多くなればなるほどアニメーション作成にかかる時間の短縮化を図ることができる。また、本実施の形態にかかる情報生成装置は、従来のような計算負荷のかかる干渉チェックを実行しないため、干渉チェックが動作しない低スペックのコンピュータでも分解方向や組付方向を検出することができる。
【０１４７】
また、本実施の形態にかかる情報生成装置は、組立順として複数の候補があった場合に、その場でアニメーションを生成して、それぞれの候補に対してアニメーションを生成することができる。したがって、ユーザは、生成されたアニメーションを比較することで、「各々アニメーションの動きをみてどの組立順がよさそうか」といったチェックをおこなうことができる。
【０１４８】
また、本実施の形態にかかる情報生成装置は、検討して定義された組立て順に沿って、組立３Ｄアニメーションが直ぐに作成できるので、ユーザは、組立て順自体の誤りを３Ｄアニメーションを作って視覚的に確認することができる。これにより、組立て順の誤りを直ぐに修正することができる。
【０１４９】
また、本実施の形態にかかる情報生成装置は、分解方向や組付方向を特定するにあたり、複数の方式や条件を設定してスコアを算出することで、ある方式による判定での誤検出防止や、様々な角度からの検証によって総合的にシステムが判断できるようになる。したがって、より高精度な分解方向が検出できるようになる。
【０１５０】
また、本実施の形態にかかる情報生成装置では、ユーザは、加点スコアＡＰ１〜ＡＰ４のウェイトをユーザが任意に設定し、製品ごとの特徴に応じたカスタマイズすることが可能となる。たとえば、製品特徴にあわせて加点スコアＡＰ１〜ＡＰ４の値を増減することができる。また、必要に応じて少なくともいずれか一つの判定処理をはずすことで、製品の特徴に応じて分解方向を検出することができる。
【０１５１】
また、アニメーションが動いている状態だけでなく、よく確認したい等、アニメーションを停止した状態でも、該当部品がどこからどの方向へ組みつけられるか、組付方向を視覚的に確認する場合がある。このような場合、組付け先のモデルから選択モデルを分解するときに、分解方向を示す矢印を表示することで、分解アニメーションをわかりやすくすることができる。
【０１５２】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１５３】
（付記１）複数のモデルで組み付けられたアセンブリを記憶する記憶装置からいずれかのモデルを選択し、
第１の領域に対し、選択されたいずれかのモデルを前記第１の領域の背景色と異なる色で複数の方向から投影することにより第１の投影画像群を生成するとともに、前記第１の領域と同サイズの第２の領域に対し、前記いずれかのモデルを前記背景色と異なる色にし前記いずれかのモデル以外の他のモデルを前記背景色と同色にして前記複数の方向から投影することにより第２の投影画像群を生成し、
生成された第１および第２の投影画像群を、前記複数の方向から選ばれた検証方向が同一である投影画像どうしで比較することにより、前記投影画像どうしの一致度を示すスコアを前記検証方向ごとに算出し、
算出されたスコア群の中で最大スコアとなる投影画像の検証方向の逆方向を、前記アセンブリデータから前記いずれかのモデルを分解する分解方向に決定し、当該分解方向を前記いずれかのモデルに関連付けて前記記憶装置に格納する、
処理をコンピュータに実行させることを特徴とする情報生成プログラム。
【０１５４】
（付記２）前記いずれかのモデルを前記検証方向から投影した投影画像の外接矩形の形状と、前記投影画像を所定角度回転させた場合の回転後の前記投影画像の外接矩形の形状と、に基づいて、前記いずれかのモデルが回転体であるか否かを判定する処理を前記コンピュータに実行させ、
前記算出する処理は、
前記回転体であると判定された場合の検証方向についてのスコアを更新することを特徴とする付記１に記載の情報生成プログラム。
【０１５５】
（付記３）前記いずれかのモデルの前記検証方向の長さと、前記複数の方向のうち前記検証方向およびその逆方向以外の方向の長さと、に基づいて、前記いずれかのモデルが前記検証方向に組み付けられる板状体であるか否かを判定する処理を前記コンピュータに実行させ、
前記算出する処理は、
前記板状体であると判定された場合の検証方向についてのスコアを更新することを特徴とする付記１または２に記載の情報生成プログラム。
【０１５６】
（付記４）前記アセンブリデータから分解順に指定された前記いずれかのモデルについて前記複数の方向から選ばれた検証方向が、前回選択されたモデルに対し決定された分解方向の逆方向と一致するか否かを判定する処理を前記コンピュータに実行させ、
前記算出する処理は、
一致すると判定された場合の検証方向についてのスコアを更新することを特徴とする付記１〜３のいずれか一つに記載の情報生成プログラム。
【０１５７】
（付記５）前記いずれかのモデルを、前記検証方向の逆方向に、前記いずれかのモデルの前記検証方向での長さを超えない所定量移動させることにより、移動前後で干渉するか否かを判定する処理を前記コンピュータに実行させ、
前記算出する処理は、
干渉しないと判定された場合の検証方向についてのスコアを更新することを特徴とする付記１〜４のいずれか一つに記載の情報生成プログラム。
【０１５８】
（付記６）前記いずれかのモデルの前記分解方向の注視点が同じでかつ方向が異なる視点方向の視点を設定し、前記いずれかのモデルに関連付けて前記記憶装置に格納する処理を前記コンピュータに実行させることを特徴とする付記１〜５のいずれか一つに記載のプログラム。
【０１５９】
（付記７）前記いずれかのモデルの前記分解方向の長さに基づいて、前記いずれかのモデルを前記分解方向に移動させる移動量を設定し、前記いずれかのモデルに関連付けて前記記憶装置に格納する処理を前記コンピュータに実行させることを特徴とする付記１〜６のいずれか一つに記載の情報生成プログラム。
【０１６０】
（付記８）前記複数のモデルを分解順に指定することにより、指定されたモデルに関連付けられた分解方向に前記指定されたモデルを移動させるアニメーションを再生する処理を前記コンピュータに実行させることを特徴とする付記１〜５のいずれか一つに記載の情報生成プログラム。
【０１６１】
（付記９）前記複数のモデルを分解順に指定することにより、指定されたモデルに関連付けられた分解方向に前記指定されたモデルを移動させ、かつ、前記指定されたモデルに関連付けられた視点から前記注視点への方向で表示させるアニメーションを再生する処理を前記コンピュータに実行させることを特徴とする付記６に記載の情報生成プログラム。
【０１６２】
（付記１０）前記複数のモデルを分解順に指定することにより、指定されたモデルに関連付けられた分解方向に、設定された移動量分、前記指定されたモデルを移動させるアニメーションを再生する処理を前記コンピュータに実行させることを特徴とする付記６に記載の情報生成プログラム。
【０１６３】
（付記１１）複数のモデルで組み付けられたアセンブリを記憶する記憶装置からいずれかのモデルを選択し、
第１の領域に対し、選択されたいずれかのモデルを前記第１の領域の背景色と異なる色で複数の方向から投影することにより第１の投影画像群を生成するとともに、前記第１の領域と同サイズの第２の領域に対し、前記いずれかのモデルを前記背景色と異なる色にし前記いずれかのモデル以外の他のモデルを前記背景色と同色にして前記複数の方向から投影することにより第２の投影画像群を生成し、
生成された第１および第２の投影画像群を、前記複数の方向から選ばれた検証方向が同一である投影画像どうしで比較することにより、前記投影画像どうしの一致度を示すスコアを前記検証方向ごとに算出し、
算出されたスコア群の中で最大スコアとなる投影画像の検証方向の逆方向を、前記アセンブリデータから前記いずれかのモデルを分解する分解方向に決定し、当該分解方向を前記いずれかのモデルに関連付けて前記記憶装置に格納する、
処理をコンピュータが実行することを特徴とする情報生成方法。
【０１６４】
（付記１２）複数のモデルで組み付けられたアセンブリを記憶する記憶装置からいずれかのモデルを選択する選択手段と、
第１の領域に対し、前記選択手段によって選択されたいずれかのモデルを前記第１の領域の背景色と異なる色で複数の方向から投影することにより第１の投影画像群を生成するとともに、前記第１の領域と同サイズの第２の領域に対し、前記いずれかのモデルを前記背景色と異なる色にし前記いずれかのモデル以外の他のモデルを前記背景色と同色にして前記複数の方向から投影することにより第２の投影画像群を生成する生成手段と、
前記生成手段によって生成された第１および第２の投影画像群を、前記複数の方向から選ばれた検証方向が同一である投影画像どうしで比較することにより、前記投影画像どうしの一致度を示すスコアを前記検証方向ごとに算出する算出手段と、
前記算出手段によって算出されたスコア群の中で最大スコアとなる投影画像の検証方向の逆方向を、前記アセンブリデータから前記いずれかのモデルを分解する分解方向に決定し、当該分解方向を前記いずれかのモデルに関連付けて前記記憶装置に格納する決定手段と、
を備えることを特徴とする情報生成装置。
【符号の説明】
【０１６５】
１３００  情報生成装置
１３０１  記憶部
１３０２  入力部
１３０３  選択部
１３０４  生成部
１３０５  算出部
１３０６  判定部
１３０７  決定部
１３０８  設定部
１３０９  再生部
１３６１  回転体判定部
１３６２  板状体判定部
１３６３  方向判定部
１３６４  干渉判定部
１３８１  視点設定部
１３８２  移動量設定部
【図１】
0005899792.tif 000002
【図２】
0005899792.tif 000003
【図３】
0005899792.tif 000004
【図４】
0005899792.tif 000005
【図５】
0005899792.tif 000006
【図６】
0005899792.tif 000007
【図７】
0005899792.tif 000008
【図８】
0005899792.tif 000009
【図９】
0005899792.tif 000010
【図１０】
0005899792.tif 000011
【図１１】
0005899792.tif 000012
【図１２】
0005899792.tif 000013
【図１３】
0005899792.tif 000014
【図１４】
0005899792.tif 000015
【図１５】
0005899792.tif 000016
【図１６】
0005899792.tif 000017
【図１７】
0005899792.tif 000018
【図１８】
0005899792.tif 000019
【図１９】
0005899792.tif 000020
【図２０】
0005899792.tif 000021
【図２１】
0005899792.tif 000022
【図２２】
0005899792.tif 000023
【図２３】
0005899792.tif 000024
【図２４】
0005899792.tif 000025
【図２５】
0005899792.tif 000026
【図２６】
0005899792.tif 000027
【図２７】
0005899792.tif 000028
【図２８】
0005899792.tif 000029
【図２９】
0005899792.tif 000030
【図３０】
0005899792.tif 000031
【図３１】
0005899792.tif 000032