(57)【要約】【課題】    複数の部品からなる工業製品の３次元ＣＡＤデータやＸＶＬデータに基づいて、前記製品のパーツリスト及び三次元イラストレーションの作成を自動的に行える方法及びそのシステムを提供すること。【解決手段】  この目的を達成するため、この発明の主要な観点によれば、パーツリストとそれに対応する分解イラストレーションとからなるパーツカタログを生成する方法であって、  （ａ）パーツリストに基づいて、分解の初期工程に属する部品グループ及び分解の中間工程に属する部品グループに参照番号を振る工程と、（ｂ）前記パーツリストに基づいて分解アルゴリズムを構築する工程と、（ｃ）分解アルゴリズムに基づいて前記参照符号が付された部品及び部品グループを分解限度とする分解イラストレーションを生成し、この分解イラストレーション中の各部品及び部品グループに前記参照符号を表示する、工程と、を有することを特徴とする方法が提供される。
2004109561.tif 000002
【特許請求の範囲】
【請求項１】
パーツリストとそれに対応する分解イラストレーションとからなるパーツカタログを生成する方法であって、
（ａ）パーツリストに基づいて、分解の初期工程に属する部品グループ及び分解の中間工程に属する部品グループに参照番号を振る工程と、
（ｂ）前記パーツリストに基づいて分解アルゴリズムを構築する工程と、
（ｃ）分解アルゴリズムに基づいて前記参照符号が付された部品及び部品グループを分解限度とする分解イラストレーションを生成し、この分解イラストレーション中の各部品及び部品グループに前記参照符号を表示する、工程と、
を有することを特徴とする方法。
【請求項２】
請求項１記載の方法において、
前記部品グループは、１又は２以上の部品からなるアセンブリであることを特徴とする方法。
【請求項３】
請求項１記載の方法において、
前記パーツリストは、部品間の従属関係、部品同士のグループ関係の定義情報であり、工程であるノードと、部品であるリーフとからなる木構造を有し、
前記ノードは、基本工程と、この基本工程内で実行される中間工程とを有し、
前記リーフは、複数の部品若しくは部品群を纏めるための工程用部品グループと、前記各部品若しくは部品群とからなる
ものであることを特徴とする方法。
【請求項４】
請求項１記載の方法において、
前記（ｂ）工程は、
前記分解定義情報に、この分解定義情報に基いて決定された前記基本工程及び中間工程の移動座標系、その座標系に沿った前記部品若しくは部品群及び工程用部品グループの移動位置を付加することで、前記分解アルゴリズムを生成するものである
ことを特徴とする方法。
【請求項５】
請求項４記載の工程アニメーションの自動生成方法において、
前記（ｂ）工程は、
前記移動座標系は、前記基本工程中のベースとなる部品若しくは部品群の座標系を前記基本工程若しくは中間工程の座標系として選択する
ことを特徴とする方法。
【請求項６】
請求項４記載の工程アニメーションの自動生成方法において、
前記（ｂ）工程は、
前記移動位置は、各部品若しくは部品群の形状を、それらの部品若しくは部品群が内接する多角形で近似し、各多角形が所定の割合以上離れるような最小距離に設定するものである
ことを特徴とする方法。
【請求項７】
請求項１記載の方法において、
さらに、
（ｄ）前記分解イラストレーション生成後、分解アルゴリズム及びイラストレーションを修正する工程を含む
ことを特徴とする方法。
【請求項８】
請求項７記載の方法において、
前記（ｄ）工程は、
前記分解定義情報を構成する基本工程、中間工程、及びそれらの工程間をつなぐ工程毎に、部品若しくは部品群の位置、姿勢、若しくはスケールを修正することで、前記分解イラストレーションを修正するものである
ことを特徴とする方法。
【請求項９】
請求項８記載の方法において、
前記（ｄ）工程は、
前記部品若しく部品群の位置、姿勢若しくはスケールを修正させるためのユーザインタフェースを生成して提示するものである
ことを特徴とする方法。
【請求項１０】
請求項８記載の方法において、
前記（ｄ）工程は、
カメラ視点の情報を修正してイラストレーションを修正することを許容するものである
ことを特徴とする方法。
【請求項１１】
請求項８記載の方法において、
前記（ｄ）工程は、
前記分解定義情報を構成する基本工程、中間工程、及びそれらの工程間をつなぐ工程毎に、部品若しくは部品群同士が移動時に干渉するかを判別し、前記工程における部品若しくは部品群の位置、姿勢、若しくはスケールを修正することで、前記分解イラストレーションを修正するものである
ことを特徴とする方法。
【請求項１２】
請求項１１記載の方法において、
前記（ｄ）工程における、前記部品若しくは部品群同士が移動時に干渉するかの判別は、前記部品若しくは部品群と外接する立方体を想定し、それらが干渉するかによって判別するものである
ことを特徴とする方法。
【請求項１３】
請求項１記載の方法において、
前記（ｃ）工程は、分解イラストレーション中の各部品及び部品グループから前記参照符号を表示するための引き出し線を描画する工程を有し、
この工程は、部品及び部品グループの分解前の位置と分解後の位置への移動ベクトルを、視点からの視点ベクトルに垂直な面に投影し、その投影ベクトルを構成する分解成分のうち、短い成分の軸方向へ、参照符号の引き出し線を描画する出し線を移動後のオブジェクトから引き出すものである
ことを特徴とする方法。
【請求項１４】
コンピュータシステムに、パーツリストとそれに対応する分解イラストレーションとからなるパーツカタログを生成させるコンピュータソフトウエアプログラムであって、
記憶媒体と、
前記記憶媒体に格納され、コンピュータシステムに、パーツリストに基づいて分解の初期工程に属する部品グループ及び分解の中間工程に属する部品グループに参照番号を振る処理を実行させる指示手段と、
前記記憶媒体に格納され、コンピュータシステムに、前記パーツリストに基づいて分解アルゴリズムを構築する処理を実行させる指示手段と、
前記記憶媒体に格納され、コンピュータシステムに、分解アルゴリズムに基づいて前記参照符号が付された部品及び部品グループを分解限度とする分解イラストレーションを生成させこの分解イラストレーション中の各部品及び部品グループに前記参照符号を表示させる処理を実行させる指示手段と
を有することを特徴とするコンピュータソフトウエアプログラム。
【請求項１５】
パーツリストとそれに対応する分解イラストレーションとからなるパーツカタログを生成するシステムであって、
パーツリストに基づいて、分解の初期工程に属する部品グループ及び分解の中間工程に属する部品グループに参照番号を振る手段と、
前記パーツリストに基づいて分解アルゴリズムを構築する手段と、
分解アルゴリズムに基づいて前記参照符号が付された部品及び部品グループを分解限度とする分解イラストレーションを生成し、この分解イラストレーション中の各部品及び部品グループに前記参照符号を表示する、手段と、
を有することを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】  この発明は、例えば複数の部品からなる工業製品の３次元ＣＡＤデータやＸＶＬデータに基づいて、製品のパーツカタログを作成する方法及びシステムに関する。
【背景技術】
【０００２】  製造業では製品の組み立て手順や修理のための分解／組立手順を作業者に分かり易く示す必要がある。従来、このような分解組立手順の表示は、パーツカタログと共に、部品の位置関係や組み付け方向を３次元的に表示したイラストを用いるのが一般的である。【０００３】  従来、このようなパーツカタログ及びイラストの作成は以下のような方法で行われている。【０００４】  （１）まずパーツリストを作成し、次いでこのリストに従って技術者やトレーサ等が各部品（塊）に分解したイラストを作成している。【０００５】  （２）まずＣＡＤを使用して分解したイラストを作成し、次いで作成したイラストに手動で番号を振ってパーツリストを作成している。【０００６】  しかし、上記（１）および（２）の何れの方法でも手動の部分が多く煩わしい。また、パーツリストとイラストとの整合性のチェック（特に番号）が煩わしいということがある。この結果、パーツリストとイラストの作成は、一般的に膨大な時間とコストがかかる。【０００７】  本発明は、このような事情に鑑みて成されたもので、例えば複数の部品からなる工業製品の３次元ＣＡＤデータやＸＶＬデータに基づいて、前記製品のパーツリスト及び三次元イラストレーションの作成を自動的に行えるシステム及びそのシステムを提供することを目的とする。【０００８】  なお、本発明の新規性・進歩性を否定するものではないが、関連する先行技術として、以下の文献が挙げられる。
【特許文献１】特開２００２−１４０３７１号（株式会社フジエ）
【特許文献２】特開２００２−５６４０６号（株式会社クライムエヌシーデー）
【発明の開示】
【課題を解決するための手段】
【０００９】  上記目的を達成するため、この発明の主要な観点によれば、パーツリストとそれに対応する分解イラストレーションとからなるパーツカタログを生成する方法であって、（ａ）パーツリストに基づいて、分解の初期工程に属する部品グループ及び分解の中間工程に属する部品グループに参照番号を振る工程と、（ｂ）前記パーツリストに基づいて分解アルゴリズムを構築する工程と、（ｃ）分解アルゴリズムに基づいて前記参照符号が付された部品及び部品グループを分解限度とする分解イラストレーションを生成し、この分解イラストレーション中の各部品及び部品グループに前記参照符号を表示する、工程と、を有することを特徴とする方法が提供される。【００１０】  この発明の１の実施形態によれば、前記部品グループは、１又は２以上の部品からなるアセンブリである。【００１１】  また、別の１の実施形態によれば、前記パーツリストは、部品間の従属関係、部品同士のグループ関係の定義情報であり、工程であるノードと、部品であるリーフからなる木構造を有し、前記ノードは基本工程と、この基本工程内で実行される中間工程とを有し、前記リーフは、複数の部品若しくは部品群を纏めるための工程用部品グループと、前記各部品若しくは部品群とからなるものである。【００１２】  また、前記（ｂ）工程は、前記パーツリストに、このパーツリストに基いて決定された前記基本工程及び中間工程の移動座標系、その座標系に沿った前記部品若しくは部品群及び工程用部品グループの移動位置を付加することで、前記分解アルゴリズムを生成するものである。この場合、前記（ｂ）工程において、前記移動座標系は、前記基本工程中のベースとなる部品若しくは部品群の座標系を前記基本工程若しくは中間工程の座標系として選択する。また、前記（ｂ）工程において、前記移動位置は、各部品若しくは部品群の形状を、それらの部品若しくは部品群が内接する多角形で近似し、各多角形が所定の割合以上離れるような最小距離に設定するものである。【００１３】  また、別の１の実施形態によれば、前記（ｂ）工程は、カメラ視点の情報を付加して前記イラストレーションを生成するものであることが好ましい。【００１４】  また、更なる別の１の実施形態によれば、（ｄ）前記分解イラストレーション生成後、分解アルゴリズム及びイラストレーションを修正する工程をさらに含む。この場合、前記（ｄ）工程は、前記分解定義情報を構成する基本工程、中間工程、及びそれらの工程間をつなぐ工程毎に、部品若しくは部品群の位置、姿勢、若しくはスケールを修正することで、前記分解イラストレーションを修正するものである。また、前記（ｄ）工程は、前記部品若しくは部品群の位置、姿勢若しくはスケールを修正させるためのユーザインタフェースを生成して提示するものである。【００１５】  さらに別の１の実施形態によれば、前記（ｄ）工程は、さらにカメラ視点の情報を修正してイラストレーションを修正することを許容するものである。【００１６】  さらに別の１の実施形態によれば、前記（ｅ）工程は、前記分解定義情報を構成する基本工程、中間工程、及びそれらの工程間をつなぐ工程毎に、部品若しくは部品群同士が移動時に干渉するかを判別し、前記工程に��ける部品若しくは部品群の位置、姿勢、若しくはスケールを修正することで、前記分解イラストレーションを修正するものである。この場合、前記部品若しくは部品群同士が移動時に干渉するかの判別は、前記部品若しくは部品群と外接する多角形を想定し、それらが干渉するかによって判別するものである。【００１７】  なお、この発明の他の特徴と顕著な効果は、以下の発明の実施形態の項および図面を参照することで当業者にとって明らかになる。
【発明を実施するための最良の形態】
【００１８】  以下、この発明をプリンタに提供した実施形態を図面を参照して説明する。【００１９】  まず、図１〜図３を参照して、この発明に係る実施形態の概念を簡単に説明する。【００２０】  図１は、３つの塊（１又は２以上の部品からなる部品のグループ）で構成したプリンタの分解斜視図である。この例では、ベース１００、トップカバー２００及びパネル３００を夫々分解する単位（塊）に設定している。【００２１】  図２は、図１のイラストレーションを生成するためのパーツリストの一例を示す図である。各塊（ＧＰ）には、１又は２以上の構成部品（ＧＲ）及び分解レベル（ＬＥＶＥＬ）が夫々定義されている。【００２２】  図３は、この実施形態に係るコンピュータシステムによって、前記パーツリストから生成された分解アルゴリズムを示す模式図である。図中の「ＢＰ（１）」「ＭＰ（１）」が図２のＬＥＶＥＬ１、２に夫々対応する。【００２３】  さらに、このコンピュータシステムは、３次元グラフィックスデータファイルと、この分解アルゴリズムから、図１に示す分解イラストレーションを生成する。このように、この実施形態のシステムによれば、ユーザがパーツリストを作成するだけで分解された塊のイラストレーションを生成できるようになっている。また、この実施形態では、パーツリストの順に番号を自動付与するようになっている。このことにより、パーツリストの番号と分解イラストレーションの参照符号との間の整合性チェックが不要になる。【００２４】  以下、この発明の実施形態のさらに詳しい構成及び動作を説明する。【００２５】  図４は、この一実施形態に係るシステムを示す概略構成図である。ＣＰＵ１、ＲＡＭ（メモリ）２、入出力インタフェース３等が接続されているバス４に、プログラム格納部５とデータ格納部６とが接続されている。【００２６】  データ格納部６には、分解／組立アニメーションを作成する素材としての３次元データとして、ＸＶＬ形式の３次元グラフィックスデータファイル８が格納されている。また、このデータ格納部６には、分解定義情報１１（パーツリスト）、分解アルゴリズム９、分解アニメーション１０、及び、前記分解イラストレーション７が格納されるようになっている。【００２７】  一方、プログラム格納部５には、この発明に関係する構成のみ説明すると、前記データ格納部６から前記３次元グラフィックスデータファイル８を取得しメモリに格納する３次元データ呼出部１２と、ユーザからの入力に基いて前記製品を部品に分解するための分解定義情報１１（パーツリスト）を生成してメモリに格納する分解定義情報生成部１７と、この分解定義情報に従って前記製品の部品への分解アルゴリズム９を生成しメモリに格納する分解アルゴリズム生成部１３と、前記分解アルゴリズム９に従って前記製品の部品の分解アニメーション１０を生成し出力する分解アニメーション生成部１４と、前記アニメーションの生成後、分解アルゴリズム９を修正し前記分解アニメーション生成部１４に再度アニメーションの生成を行わせる分解アニメーション修正部１５と、分解アニメーションの再生を制御する分解アニメーション再生制御部１６、前記分解定義情報中の各部品郡に参照符号を付与する参照符号付与部���９と、前記分解アルゴリズムにしたがって前記参照符号が付された分解イラストレーションを生成する分解イラストレーション生成部２０と、が格納されている。【００２８】  ここで、前記分解定義情報生成部１７でユーザから受け付ける情報は、部品間の従属関係、部品同士のグループ関係の定義である。そして、この分解定義情報生成部１７で生成する分解定義（パーツリスト）は、後で詳しく説明するように、工程である「ノード」と、部品である「リーフ」からなる木構造を有するものである。また、前記ノードは「基本工程」と、この基本工程内で実行される「中間工程」とを有し、前記リーフは、複数の部品若しくは部品群を纏めるための「工程用部品グループ」と、前記各部品若しくは部品群とからなるものである。【００２９】  以下、この分解定義情報生成の概念を図５以下を参照して説明する。【００３０】  説明を簡単にするため、図５Ａに示すような部品（この実施形態では「グループ」と称される）Ｇ１〜Ｇ４を組み立てて、図５Ｂに示す完成品１８を製造する場合を例にとって説明することとする。この部品Ｇ１〜Ｇ４の組立工程の設計は、後で説明するように、所定のインタフェース（図１８以下に示すような設計画面）を通して行う。【００３１】  図６〜図１３は、それぞれ異なる組立順序を示し、それぞれの場合にどのように組立工程を定義・設計すればよいかを示すものである。【００３２】  図６は、部品Ｇ１に対して部品Ｇ２〜Ｇ４をその順序で順次組みつけていく場合の例である。この場合の組立工程は、図６Ａに示すように表される。この図において、アイコン「○」は基本工程を示すものである。そして、基本工程内の先頭に登録されたグループ（Ｇ１）はアイコン「▽＋下棒」で表され、他の構成要素を組立（分解）する基盤となるグループ（ベースグループ）を表す。このベースグループはアニメーションでは動作しない。【００３３】  ベースグループ以外の組み付け／分解されるグループ（Ｇ２〜Ｇ４）はアイコン「横棒＋▽」で表される。この例では、分解工程は、基本工程（Ｐｒｏｃｅｓｓ−１）とグループのみからなり、前記中間工程はない。すなわち、Ｇ１がベースとなり、Ｇ２〜Ｇ４が組み付けるグループとなる。【００３４】  この工程の構成から、後で説明する工程アニメーションの作成により工程アニメーションを作成すると図６Ｂのように動作するアニメーションが生成される。すなわち、全てのグループＧ１〜Ｇ４が最初から表示され、それが順に組み立てられていく。【００３５】  この場合、各動作のステップと工程の関係は図６Ｃのようになる。【００３６】  一方、図７の例は、基本工程だけでなく中間工程がある例を示すものである。中間工程は基本工程の組み付け、分解するグループなど、基本工程内でさらに工程を分けるために使用する。中間工程に属するグループは図７Ａに示すように「▼」で表される。また、図７Ｂに示すように、中間工程は、閉じているときは「▼＋上下の横棒」で表される。以下、中間工程を利用した場合と、上記基本工程のみの場合との相違を説明する。【００３７】  すなわち、この中間工程を使用することで、複数の構成要素の組立や、分解をまとめてコメント、工数、カスタムプロパティなどの工程と��ての情報を設定することができる。また、工程アニメーションでの表示タイミングを異ならせることが可能になる。この組立工程のアニメーションを再生する場合、前記分解アニメーション再生制御部１６は、中間工程の要素を初期表示せず、中間工程が再生されて始めて表示させる。分解工程では逆に要素は初期状態から表示するが、中間工程の再生が終了すると非表示にするようになっている。【００３８】  図７Ａ、Ｂは中間工程を使って、工程の構成を行った例である。左図の図７Ａでは工程の構成要素が閲覧できるように工程を開いている。この状態では中間工程の構成要素を示すために、上下方向の″＜″及び″＞″という囲み記号が表示される。右図の図７Ｂでは工程を閉じて、各中間工程は上述したように（▼＋上下横棒）で表されている。【００３９】  この例では、前記基本工程Ｐｒｏｃｅｓｓ−１が３つの中間工程Ｐｒｏｃｅｓｓ−２、Ｐｒｏｃｅｓｓ−３及びＰｒｏｃｅｓｓ−４に分割されることになる。この例と、図６の例のアニメーションとの違いは、この例では、図７Ｃに示すように、各グループ（部品）Ｇ２〜Ｇ４が、そのグループを組み付ける段階になってから出現するところである。【００４０】  この例の場合、工程と各動作ステップの関係は図７Ｄに示す表のようになる。【００４１】  次に工程用グループの意義を図８を参照して説明する。【００４２】  図８Ａ〜Ｆは工程用グループを利用して、Ｇ３とＧ４が同時に組み付けられるように工程を構成した例である。３つの工程図は、全て同じ工程を表しているが、図８Ｂでは工程用グループの構成要素が見えないように閉じており、図８Ｃでは各中間工程を閉じている。【００４３】  工程用グループは複数のグループをまとめて１つの組立（分解）単位とするもので、グループの代替として図８Ｂに示すように、「▼」で表される。工程用グループに含まれるグループは図８Ａに示すように「□」で表される。工程用グループを使うことで後で説明する工程アニメーションの作成で複数のグループを同時に移動するというアニメーションを作成することが可能となる。【００４４】  この場合は図８Ｄのようなアニメーションが工程アニメーションの作成で作成されることになる。また、工程と各動作ステップの関連は図８Ｅに示すようになる。【００４５】  一方、図９、図１０は、基本工程の構成要素として基本工程を持つ構成（基本工程のネスト）を作成することで、複数の部品から構成される組立（分解）アニメーションを部品ごとに組立（分解）することを可能とした例である。【００４６】  小部品を組み立てた後に、組みあがったものを大部品に組み付けるといった組立（分解）の手順を表すのに利用する。また、小部品の組立アニメーションは大部品を表示しないといった設定を行うことも可能である。以下では大部品を表示する場合と表示しない場合について、図９及び図１０を用いて、それぞれ説明する。【００４７】  図９Ａはネストした基本工程を利用して、まずＧ２、Ｇ３、Ｇ４で中部品が組みあがった結果が大部品Ｇ１に組みつけられるように工程を構成した例である。アニメーションでは小部品（Ｇ２、Ｇ３、Ｇ４）の組み立て中にも大部品（Ｇ１）が表示される。【００４８】  この場合は図９Ｂのよう���アニメーションが工程アニメーションの作成で作成される。工程と各動作ステップの関係は図９Ｃのようになる。【００４９】  図１０ＡはＧ２、Ｇ３、Ｇ４の組立中にＧ１を表示しないように設定した例である。図９Ａの場合と比較すると、Ｇ２をベースとする工程「Ｐｒｏｃｅｓｓ−２」のアイコンが○と□を重ねたものになる。この場合、工程アニメーションでは小部品（Ｇ２、Ｇ３、Ｇ４）の組み立て中は大部品（Ｇ１）の表示がされない。工程と各動作の関連については前の場合（図９Ｃ）と同じになる。【００５０】  以上のようにユーザが、用意されたインタフェースを通して部品（グループ）、基本工程、中間工程及び工程用グループを指定することで、前記分解定義情報生成部１７がそれに従った前記分解定義情報１１（パーツリスト）を生成し、データ格納部６に格納する。【００５１】  なお、このようなインタフェースを通さず、直接、図２に示すようなパーツリストを分解定義情報として入力するようにしても良い。パーツリストは、ベースプロセス（▽）に属する部品もしくは部品群をレベル１とし、以下従属する１又は２以上の中間プロセス（▼）に属する部品（部品群）をレベル２以下として作成するようにする。例えば、図８の場合には、パーツリストは図８Ｆのようになる。【００５２】  このようにして分解定義情報若しくはパーツリストが用意されたならば、前記参照符号付与部１９が、中間プロセスを構成する部品若しくは部品群に参照符号を付与する。図８Ｆの例では、Ｇ１，Ｇ２及びＧｐ１にそれぞれ参照符号１，２，３‥‥が振られることになる。【００５３】  次に、分解アルゴリズム生成部１３及び分解アニメーション生成部１４の機能及び動作について、図１１のフローチャートに従って説明する。なお、文書中のステップＳ１〜Ｓ１４は、図中の符号Ｓ１〜Ｓ１４に対応する。【００５４】  前記分解アルゴリズム生成部１３及び分解アニメーション生成部１４は、前記分解定義情報１１を取得する（ステップＳ１）と共に、この分解定義情報１１に基づき、前記基本工程、中間工程、及びそれらの工程間をつなぐ工程毎に、各種パラメータ：（１）アニメーションの長さ（移動時間、待ち時間）、（２）始点と終点間の補間システム、（３）分解の移動距離を決定するための分解係数、に基づいて各工程における部品グループ若しくは部品の移動アルゴリズムを生成し、この分解アルゴリズムに従った分解アニメーションを生成する（ステップＳ２〜Ｓ１２）ものである。【００５５】  以下の説明及び図面においては、説明の便宜のため、以下の記号を使用する。【００５６】  すなわち、前記入力データとして、【００５７】（１）３次元グラフィックスデータファイル（ＸＶＬファイル：図４に符号８で示す）【００５８】（２）分解定義情報（図４に符号１１で示す）【００５９】  ＰＰ・・・上位工程【００６０】  ＢＰ・・・基本工程【００６１】  ＭＰ・・・中間工程【００６２】  ＧＰ・・・工程用グループ【００６３】  ＧＲ・・・部品（グループ）【００６４】（３）動画生成用パラメータ（前記分解定義情報１１中に格納される）【００６５】  ｍｔ＿ｌｅｎｇｔｈ・・・移動アニメーションの時間【００６６】  ｍｉ＿ｌｅｎｇｔｈ・・・移動アニメー���ョン間の待ち時間【００６７】  ｐｉ＿ｌｅｎｇｔｈ・・・工程間の待ち時間【００６８】  ｉｎｔｐｌ（Ｎｏｎｅ、Ｘ、Ｙ、Ｚ）・・・アニメーション補間システム【００６９】  ｄｅｃｏｍｐ・・・分解係数【００７０】  ｒｅｕｓｅ・・・再利用【００７１】  を使用する。【００７２】  一方、出力されるデータとして、【００７３】（１）移動アニメーション（図４に符号１０で示す）【００７４】  Ａ＿ＭＴ（Ｍｏｒｔｉｏｎ  Ａｎｉｍａｔｉｏｎ）・・・部品の移動アニメーション【００７５】（２）初期化アニメーション（図４に符号１０で示す）【００７６】  Ａ＿ＪＴ（Ｊｕｍｐ  Ｔｏｐ  Ａｎｉｍａｔｉｏｎ）・・・順再生、工程の開始【００７７】  Ａ＿ＥＲ（Ｅｎｄ  Ｒｅｔｕｒｎ  Ａｎｉｍａｔｉｏｎ）・・・順再生、工程の復帰【００７８】  Ａ＿ＪＥ（Ｊｕｍｐ  Ｅｎｄ  Ａｎｉｍａｔｉｏｎ）・・・逆再生、工程の開始【００７９】  Ａ＿ＴＲ（Ｔｏｐ  Ｒｅｔｕｒｎ  Ａｎｉｍａｔｉｏｎ）・・・逆再生、工程の復帰【００８０】（３）待ち時間アニメーション（図４に符号１０で示す）【００８１】  Ａ＿ＧＩ（Ｇｒｏｕｐ  Ｉｎｔｅｒｖａｌ  Ａｎｉｍａｔｉｏｎ）・・・移動アニメーション間【００８２】  Ａ＿ＰＩ（Ｐｒｏｃｅｓｓ  Ｉｎｔｅｒｖａｌ  Ａｎｉｍａｔｉｏｎ）・・・工程間【００８３】（４）イベント（アニメーション１０中に格納）【００８４】  アニメーションの制御を行うためのもので、役割は２つある。１つは、アニメーション同士を連結させる。もう１つはユーザからの入力を受け付けるという役割である。【００８５】  ＵＥ＿Ｐｌａｙ・・・順再生【００８６】  ＵＥ＿Ｒｅｖｅｒｓｅ・・・逆再生【００８７】  ＵＥ＿Ｐａｕｓｅ・・・一時停止【００８８】  ＵＥ＿Ｎｅｘｔ・・・次の工程の先頭へ移動【００８９】  ＵＥ＿Ｐｒｅｖ・・・前の工程の先頭へ移動【００９０】  ＵＥ＿Ｆｉｒｓｔ・・・初期工程へ移動【００９１】  ＵＥ＿Ｌａｓｔ・・・最終工程へ移動【００９２】  ＵＥ＿Ｐｒｏｃｅｓｓ＿ｎｎｎ・・・工程ｎｎｎへ移動【００９３】  ＵＥ＿Ｏｒｉｇｉｎａｌ・・・工程アニメーション開始前に移動【００９４】  ＵＥ＿Ｆｉｎａｌ・・・工程アニメーション終了後に移動【００９５】  を使用する。【００９６】  まず、前記分解アルゴリズム生成部１３は、前記分解定義情報１１に基いてメモリに図１２に示すような構造（アルゴリズム９）を作成する（ステップＳ３）。すなわち、前記分解アルゴリズム生成部１３は、前記分解定義情報１１中で定義した基本工程／中間工程の構造に基づいて、各部品および工程用グループの分解の基準となる座標系（ＣＲＤ）およびそれに沿った移動方向（ＤＩＲ）の情報を付加する。【００９７】  ＣＲＤは、ＢＰ及びＭＰのみが保持する。ＣＲＤは、基本工程のベースグループの座標系とする。すなわち、この例では、【００９８】  ＣＲＤ［０］は、ＧＲ［０］の座標系、【００９９】  ＣＲＤ［１］は、ＧＲ［１］の座標系、【０１００】  ＣＲＤ［２］は、ＣＲＤ［１］と同じ、【０１０１】  ＣＲＤ［３］は、ＣＲＤ［１］と同じ、【０１０２】  ＣＲＤ［４］は、ＣＲＤ［０］と同じ、【０１０３】  となる。【０１０４】  一方、ＤＩＲは、ＢＰ、ＧＰ、ＧＲが保持する。このＤＩＲは、工程以下の各形状をＢｏｕｎｄｉｎｇ  Ｂｏｘ（形状が内接する立方体：ＢＢ）で近似して、組み付け側と組み付け先の各ＢＢが、指定された割合（分解パラメータｉｎｔｐｌ）以上離れ、かつＢＢの中心同士が最小の距離になるような、分解方向と位置を決定する。【０１０５】  このことによって図１２に示すような構造（分解アルゴリズム９）を生成する。【０１０６】  上の例で、作成された構造をＰＴ（Ｐｒｏｃｅｓｓ  Ｔｒｅｅ）と呼んで以下、分解アニメーション生成部１４による機能、動作を説明する。【０１０７】  まず、前記分解アニメーション生成部１４は、個々の部品の移動アニメーションＡ＿ＭＴを生成する。ＰＴを上からたどってＤＩＲを持つ要素についてＡ＿ＭＴを作成していく。【０１０８】  なお、パラメータｒｅｕｓｅがＯＮである場合は対応要素のアニメーションを入力より探して存在する場合はそれをＡ＿ＭＴとする。【０１０９】  存在しない場合はＣＲＤとＤＩＲからＰＯＳ［０］、ＰＯＳ［１］を生成する（ステップＳ４）。【０１１０】  ＰＯＳ［０］＝要素の現在位置【０１１１】  ＰＯＳ［１］＝ＰＯＳ［０］にＣＲＤ内でのＤＩＲを加えたもの【０１１２】  組立アニメーションの場合はＰＯＳ［１］からＰＯＳ［０］へ移動するアニメーションを作成してＡ＿ＭＴとする（ステップＳ５）。Ａ＿ＭＴのアニメーション時間の長さはパラメータｍｔ＿ｌｅｎｇｔｈとなる。【０１１３】  なお、前記ステップＳ４及びＳ５で、パラメータｉｎｔｐｌにＮＯＮＥ以外の軸が指定されていた場合はベクトルＶＥＣ＝ＰＯＳ［０］−ＰＯＳ［１］を軸に直交する平面に射影した位置を計算する。例えば、以下のようにＰＯＳ［２］を生成する。【０１１４】  ＰＯＳ［２］＝軸を法線と位置ＰＯＳ［１］を通る平面にＰＯＳ［０］を射影した点【０１１５】  この場合はＰＯＳ［１］→ＰＯＳ［２］→ＰＯＳ［０］と移動するアニメーションをＡ＿ＭＴとする。【０１１６】  次に、自動干渉検出がＯＮになっているかを判別し（ステップＳ６）、ＯＮになっている場合には、以下のシステムで前記分解アニメーション修正部１５がアニメーションの修正を行なう。すなわち、分解アニメーション修正部１５は、部品若しくは部品群同士が移動時に干渉するかを判断する機能を有する。この機能は、前記３次元グラフィックスデータに基き、移動させる部品若しくは部品群を囲む立方体に近似する形状を考え、その形状同士が干渉するかによって、部品同士が干渉するかを判断する（ステップＳ７）。そして、それらが干渉しないように、上記（１）〜（３）のパラメータを設定するものである（ステップＳ８）。具体的には、この実施形態では、干渉する幅を求め、その分、初期の部品の位置をずらし、また、ずらす位置に制限がある場合には、干渉幅に基いて部品を回転させるようにする。しかし、このシステムに限定されるものではない。前記パラメータを修正したならば前記ステップＳ４以下を繰り返し、修正後のＡ＿ＭＴを生成する。【０１１７】  そして、ＰＴ中の全てのＡ＿ＭＴを作成するまで上記工程を繰り返す（ステップＳ９）。
例えば図１２のＰＴからは、以下のＡ＿ＭＴが生成される。ＢＰ、ＧＰについてアニメーションを生成すると、移動要素は配下のＧＲ全てとなる。【０１１８】  アニメーション  対応要素    移動要素【０１１９】−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−【０１２０】  Ａ＿ＭＴ［０］    ＧＲ［０］  ＧＲ［０］【０１２１】  Ａ＿ＭＴ［１］    ＢＰ［１］    ＧＲ［１］、ＧＲ［２］、ＧＲ［３］、ＧＲ［４］、ＧＲ［５］、ＧＲ［６］【０１２２】  Ａ＿ＭＴ［２］    ＧＲ［１］    ＧＲ［１］【０１２３】  Ａ＿ＭＴ［３］    ＧＲ［２］    ＧＲ［２］【０１２４】  Ａ＿ＭＴ［４］    ＧＲ［３］    ＧＲ［３］【０１２５】  Ａ＿ＭＴ［５］  ＧＰ［０］    ＧＲ［４］、ＧＲ［５］、ＧＲ［６］【０１２６】  Ａ＿ＭＴ［６］  ＧＲ［７］    ＧＲ［７］【０１２７】  Ａ＿ＭＴ［７］  ＧＲ［８］    ＧＲ［８］【０１２８】  ついで、パラメータｍｉ＿ｌｅｎｇｔｈ、ｐｉ＿ｌｅｎｇｔｈから待ち時間アニメーションＡ＿ＰＩ、Ａ＿ＭＩを生成する（ステップＳ１０）。【０１２９】  また、初期化アニメーションをＡ＿ＭＴから生成する（ステップＳ１１）。そして、以下のように、Ａ＿ＭＴを実行される順に並べていく。【０１３０】  Ａ＿ＭＴ［０］→Ａ＿ＭＴ［２］→Ａ＿ＭＴ［３］→Ａ＿ＭＴ［４］→Ａ＿ＭＴ［５］→Ａ＿ＭＴ［１］→Ａ＿ＭＴ［６］→Ａ＿ＭＴ［７］【０１３１】  並べられたＡ＿ＭＴのアニメーション列をたどっていき、初期化アニメーションを生成・挿入していく。同時にＡ＿ＰＩ、Ａ＿ＭＩも挿入する。以下の規則でアニメーションを生成する（ステップＳ１２）。【０１３２】  ・初期化アニメーション（Ａ＿ＪＴ、Ａ＿ＥＲ、Ａ＿ＴＲ、Ａ＿ＪＥ）はアニメーション列の個々の要素を順次適用しながら生成する。アニメーション列で工程の先頭、末尾に当たる適当な個所に到達したら、その時点での状態をスナップショットして初期化アニメーションを生成する。【０１３３】  ・工程（ＢＰ［０］、ＢＰ［１］、ＭＰ［０］、ＭＰ［１］、ＭＰ［２］）について【０１３４】      −順方向の先頭にはＡ＿ＪＴを生成する。【０１３５】      −順方向の末尾にはＡ＿ＥＲを生成する。【０１３６】      −逆方向の先頭にはＡ＿ＴＲを生成する。【０１３７】      −逆方向の末尾にはＡ＿ＪＥを生成する。【０１３８】  ・移動アニメーション間について【０１３９】  Ａ＿ＪＴ、Ａ＿ＥＲ、Ａ＿ＴＲ、Ａ＿ＪＥを挿入後にＡ＿ＭＴが隣り合う場合はＡ＿ＭＩを挿入する。【０１４０】  ・Ａ＿ＪＴとＡ＿ＪＥの直後にＡ＿ＰＩを挿入する。Ａ＿ＴＲ、Ａ＿ＥＲの直前にＡ＿ＰＩを挿入する。【０１４１】  順方向アニメーション列と逆方向アニメーション列の２つを生成する。以下に順方向アニメーション列の例を挙げる。【０１４２】  Ａ＿ＪＴ［０］→Ａ＿ＰＩ→Ａ＿ＭＴ［０］→Ａ＿ＪＴ［１］→Ａ＿ＰＩ→Ａ＿ＭＴ［２］→Ａ＿ＪＴ［２］→Ａ＿ＰＩ→Ａ＿ＭＴ［３］→Ａ＿ＭＩ→Ａ＿ＭＴ［４］→Ａ＿ＰＩ→Ａ＿ＥＲ［０］→Ａ＿ＪＴ［３］→Ａ＿ＰＩ→Ａ＿ＭＴ［５］→Ａ＿ＰＩ→Ａ＿ＥＲ［１］→Ａ＿ＥＲ［２］→Ａ＿ＰＩ→Ａ＿ＭＴ［１］→Ａ＿ＪＴ［４］→Ａ＿ＰＩ→Ａ＿ＭＴ［６］→Ａ＿ＭＩ→Ａ＿ＭＴ［７］→Ａ＿ＰＩ【０１４３】  ここで、移動アニメーション及び初期化アニメーションの生成は、カメラ視点の情報を付加して生成するものである。このカメラ視点の設定は、この実施形態では、アニメーションの生成を実行した際の視点で行われるが、後で説明するように、工程のアニメーション、工程間を接続する工程のアニメーション毎に指定することができるようになっている。【０１４４】  次に、前記分解アニメーション生成部１４は、アニメーション間の連結を行うイベントを生成する（ステップＳ１３）。順方向アニメーション列、逆方向アニメーション列の各アニメーション毎にイベントを生成する。【０１４５】  アニメーション列のｉ番目の要素をＡＮ［ｉ］とした場合、イベントＥＶ［ｉ］はＡＮ［ｉ］が終了した時点で実行される。ＥＶ［ｉ］は以下の処理を行う。【０１４６】  ｉｆ（アニメーション再生中）【０１４７】  ｛【０１４８】    ｉｆ（順方向再生）【０１４９】      ＡＮ［ｉ＋１］を実行【０１５０】      ｅｌｓｅ  ｉｆ（逆方向再生）【０１５１】      ＡＮ［ｉ−１］を実行【０１５２】      ｝【０１５３】      ｅｌｓｅ【０１５４】      ｛【０１５５】  アニメーション停止【０１５６】      ｝【０１５７】  このようにして生成された分解アニメーションは、前記データ格納部６に出力され格納される（ステップＳ１４）。【０１５８】  このようにアニメーションを生成したならば、前記分解アニメーション再生制御部１６を起動してアニメーションを再生してアニメーションの確認を行うことができる。再生したアニメーションに不具合がある場合には、ユーザは、前記分解アニメーション修正部１５を起動して、アニメーションで不具合のある箇所を修正することができる。【０１５９】  具体的には、ユーザは、基本工程、中間工程、及びそれらの工程間をつなぐ工程を構成するアニメーション毎に、（１）部品若しくは部品群の位置、（２）姿勢、若しくは（３）スケールを修正することで、各工程における移動アニメーションを修正するものである。【０１６０】  また、ユーザは、この修正部１５を起動して、部品若しくは部品群同士が移動時に干渉するかを判断させることができる。この機能は、前述したように、３次元グラフィックスデータに基き、移動させる部品若しくは部品群を囲む立方体に近似する形状を考え、その形状同士が干渉するかによって、部品同士が干渉するかを判断するものである。【０１６１】  また、この実施形態では、さらに前記基本工程若しくは中間工程毎に、カメラ視点の情報を修正してアニメーションを修正する機能も提供する。【０１６２】  次に、前記分解イラストレーション生成部２０の構成及び機能について説明する。【０１６３】  この分解イラストレーション生成部２０は、前記分解アルゴリズム（若しくは修正された分解アルゴリズム）に基づき、前記パーツリストで参照符号が振られた部品若しくは工程用部品グループを分解限度とした分解イラストレーションを生成する。【０１６４】  図１２の分解アルゴリズムの例では、参照符号が付されているのは、ベース工程ＢＰに直接属する部品（ＧＲ）若しくは工程用部品グループ（ＧＰ）である、中間工程（ＭＰ）に直接属する部品若しくは工程用部品グループ（ＧＰ）である。この例では、��Ｒ１，ＧＲ２，ＧＲ３，ＧＰ０，ＧＲ７，ＧＲ８ということになる。【０１６５】  この分解イラストレーション生成部２０は、この分解アルゴリズムを参照し、前記参照符号が付された部品若しくは部品グループを分解限度として、前記分解アニメーション生成部と同じエンジンを用いてそれらの部品グループの分解後の位置を決定し、分解後のイラストレーションを生成する。この分解イラストレーションでは、所定のアルゴリズムにより、図１に示すように、各部品及び工程用部品グループに、前記参照符号が引き出し線と共に記入される。【０１６６】  図３９は、この分解イラストレーション生成部による引き出し線及び参照符号の描画アルゴリズムを説明するための概略図である。【０１６７】  Ａがオブジェクトの移動前の位置、Ａ’が移動後の位置であるとする。この場合、移動ベクトルＡＡ’を，カメラからの視点ベクトルに垂直な面（垂直なＸ軸とＹ軸で規定される）に投影する。そして、投影した移動ベクトル成分の短い方へ引き出し線を描画する。図の場合，投影した移動ベクトルはＹ軸成分のほうが短いので、Ｙ軸方向に引き出し線を移動後のオブジェクトから引き出す。【０１６８】  この図の例では，オブジェクトが単体しかないのでどの方向に対して引き出しても問題ないが、移動ベクトル方向に複数個のオブジェクトを分解した結果に対して、上記アルゴリズムを利用した場合、前記引き出し線及び参照符号が重なることがない．【０１６９】  また、この実施形態では、カメラ視点の情報を修正してこの分解イラストレーションを修正する機能も提供する。【０１７０】  以下、前記分解定義情報（パーツリスト）の生成、これに基づいた分解アルゴリズムの生成、アニメーションの生成及び修正の別の例を図１３に示す電動ノコギリの組み立て工程に適用した場合を例にとって説明する。この電動ノコギリの３次元グラフィックスデータは、ｎｏｋｏｇｉｒｉ．ｘｖ３という名称のＸＶＬファイルとして前記データ格納部６に保存されている。【０１７１】  このＸＶＬファイルには、このノコギリを構成する各部品のグループ構造が格納されており、これを表示すると、図１４のようになる。この実施形態では、この図１４の画面は「グループ編集パネル」と称され、図示しない各種メニューコマンドによって部品のグループ構造を編集することができるように構成されている。【０１７２】  次に、このＸＶＬファイルに基づいて、分解定義情報を生成する。【０１７３】  この分解定義情報を生成するには、まず、どのようにして上記電動ノコギリを分解若しくは組み立てるかを考えておく必要がある。この電動ノコギリの構造は図１５のようになっている。単純な組み立ての手順としては、以下のように、左カバーに部品を組み付けていき、右カバーを閉じるという手順が考えられる。【０１７４】  １．左カバーに可動部品を組み付ける。【０１７５】  ２．モータ、ノブ、スイッチ、電源等を組み付ける。【０１７６】  ３．右カバーを組み付けて、全体を閉じる。【０１７７】  ４．プレートを組み付けて完成する。【０１７８】  ただし、可動部品は複数の部品からなっており、この部品は、ノコギリ全体を組み当てる前に組み立てておく必要がある。そこで手順としては、上記の１���可動部品の組み付けの前に可動部品を組み立てることにする。【０１７９】  分解定義情報の生成は、図１６以下に示す工程編集パネル２１を使用して行う。この実施形態では、この工程編集パネル２１上で工程を作成することで、前述したように前記分解定義情報生成部１７がそれを分解定義情報１１として構成し、前記データ格納部６に格納する。【０１８０】  まず、図１６に示すように、この工程編集パネル２１上部の○ボタン２２をクリックし、パネル２１内の「全体［組立］」２３上でクリックする。そして、「全体［組立］」２３で右クリックし、基本工程の追加を実行する。このことで、図１７に示すように、Ｐｒｏｃｅｓｓ−１という名前の工程２４が生成される。【０１８１】  名前が「Ｐｒｏｃｅｓｓ−１」では分かりにくいので、ノコギリ全体の組み立てを表す工程だと分かる名前にする。「１．Ｐｒｏｃｅｓｓ−１」２４をダブルクリックすると図１８に示す工程のプロパティダイアログ２６が表示される。「ユーザＩＤ」の項目欄に「ノコギリの組み立て」と入力して、工程の名前を変更する。ユーザＩＤを変えた後、ＯＫボタンを押すと工程編集パネル２１上で図１９のように工程名の変更が反映される。【０１８２】  続いて工程に組み立て要素を追加していく。前述では「左カバー」に対して各種部品を組み付けていくことを考えたが、「左カバー」のように、他の部品を組み付けていく基盤となる部品は「ベース部品」と呼ばれ、○のアイコンで表される基本工程の先頭に位置し、「▽＋下縦棒」で表示される。【０１８３】  ついで、次の３つのシステムのいずれかで「ｂｏｄｙ＿１」（左カバー）を工程のベース部品として追加する。【０１８４】  （１）前記「グループ編集パネル」（図１４）で「ｂｏｄｙ＿１」２８を選択する。図２０に示すように、工程編集パネル２１の「▽ボタン」２５をクリックし、「○１ノコギリの組み立て」２４上でクリックする。【０１８５】  （２）前記「グループ編集パネル」で「ｂｏｄｙ＿１」２８を選択し、工程編集パネル２１の「○１ノコギリの組み立て」２４を右クリックして、グループの追加を実行する。【０１８６】  （３）前記「グループ編集パネル」で「ｂｏｄｙ＿１」２８を右クリックして、コピーを実行する。次に工程編集パネル２１の「○１ノコギリの組み立て」２４を右クリックして貼り付けを実行する。【０１８７】  「左カバー」を工程のベースとして追加すると図２０のように「▽ｂｏｄｙ＿１」２８が工程の先頭に加わる。【０１８８】  続いてベース部品に組み付けられる部品を追加していく。最初は「可動部品」である。前記で考えた組み立て手順では、「左カバー」に追加する前に別個に組み立てることにしたので、「可動部品」のための工程を追加する必要がある。【０１８９】  次の２つのシステムのいずれかで基本工程を追加する。【０１９０】  （１）「工程編集パネル」２１上部の「○ボタン」２２をクリックし、「▽ｂｏｄｙ＿１」２８の下部で挿入バーが表示されたところでクリックする。【０１９１】  （２）「▽ｂｏｄｙ＿１」２８を右クリックして基本工程の追加を実行する。【０１９２】  名前は「可動部品」とする。図２１に示すように、「○１．１可動部品」２９が追加されるようになる。【０１９３】  「○１．１可動部品」２９にその構成部品を追加して、「可動部品」を組み立てる工程を作成する必要があるが、ここでは「左カバー」に部品を組み付けていく「○１ノコギリの組み立て」２４の工程を先に完成させることにする。その後で、「○１．１可動部品」２９を設計することにする。【０１９４】  次に「左カバー」に組み付ける「モーター」、「ノブ」、「スイッチ」、「電源」、「右カバー」、「プレート」を「○１ノコギリの組み立て」に追加していく。これらの部品は「可動部品」とは異なって、個別に組み立てる必要のない部品である。そのような部品についてはアイコンが「▼＋上下横棒」の「中間工程」という工程を使う。【０１９５】  次の２つのシステムのいずれかで中間工程を追加する。【０１９６】  （１）「工程編集パネル」２１上部の「▽＋上下横棒」ボタン２７をクリックし、「○１．１可動部品」２９の下部で挿入バーが表示されたところでクリックする。【０１９７】  （２）「○１ノコギリの組み立て」２４を右クリックして中間工程の追加を実行する。【０１９８】  名前は「モータの組み付け」とする。【０１９９】  これにより、図２２のようにアイコン「▼＋下横棒」の「１．２モータの組み付け」３０という中間工程を作成することができる。【０２００】  次に、「１．２モータの組み付け」３０に「モーター」を表す部品（グループ）を追加する。【０２０１】  次の３つのシステムから「ｍｏｔｏｒ２」を追加する。【０２０２】  （１）グループ編集パネル（図１４）で「ｍｏｔｏｒ２」３１を選択する。工程編集パネル２１の「▽ボタン」２５をクリックして、「１．２モータの組み付け」３０をクリックする。【０２０３】  （２）グループ編集パネルで「ｍｏｔｏｒ２」３１を選択し、工程編集パネル２１の「１．２モータの組み付け」３０を右クリックして、グループの追加を実行する。【０２０４】  （３）グループ編集パネルで「ｍｏｔｏｒ２」を右クリックして、コピーを実行する。次に工程編集パネル２１の「１．２モータの組み付け」３０を右クリックして貼り付けを実行する。【０２０５】  図２３のようになる。中間工程に属する部品は、「▽ｂｏｄｙ＿１」とは色が異なり、「▼ｍｏｔｏｒ２」３１のように表現される。同様の手順で「ノブ」、「スイッチ」、「電源」、「右カバー」、「プレート」の組み付ける工程を作成し、最終的に図２４の工程を作成する。【０２０６】  次に、構成要素のないままにしていた「１．１可動部品」を作成する。【０２０７】  「可動部品」の組み立ての流れについて、前記と同様に、「可動部品」を図２５のように分解することで考えてみる。単純な流れとして以下のようにするのが最も簡単そうであると判断できる。【０２０８】  １．「下部部品」をベースとして、「内部部品」のグループを１つずつ順番に組み付けていく。【０２０９】  ２．「上部部品」を組み付ける。「上部部品」は複数のグループから構成されるが、１つの部品と考えてまとめて組み付ける。【０２１０】  ３．「刃」を組み付ける。「刃」も２つのグループから構成されているが、１つの部品と考えてまとめて組み付ける。【０２１１】  この手順に従って、工程を設計してみる。【０２１２】  図２４Ａにお��て、最初にベースとなる「下部部品」を工程編集パネル２１の「○１．１可動部品」２９に追加する。この手順は、「▽ｂｏｄｙ＿１」を作成したときと同様である。【０２１３】  図２４Ｂのように「ｇｅａｒ＿１」３２が追加された工程になる。【０２１４】  次に「内部部品」を取り付ける中間工程（▼＋下横棒）を作成する。以前の作業で作成した中間工程は１つの部品しか持たなかったが、複数の部品を持つこともできる。「内部部品の組み付け」という工程を作成して、「内部部品」を構成する全ての部品を組み付ける工程を作成してみる。【０２１５】  １．「ｇｅａｒ＿１」３２の後に中間工程「１．１．１Ｐｒｏｃｅｓｓ−１」を作成する。【０２１６】  ２．「プロパティ」ダイアログ２６で名前を変更し、「１．１．１内部部品の組み付け」という工程にする。【０２１７】  ３．グループ編集パネルから「内部部品」を構成するグループを選択して、「１．１．１内部部品の組み付け」に追加する。位置関係を考慮して組み付け時に部品が干渉しないように以下の順番でグループを追加していく。【０２１８】  （ア）「ｍｏｔｏｒ＿１」【０２１９】  （イ）「ｇｅａｒｄｒｉｖｅｓｈａｆｔ」【０２２０】  （ウ）「ｒｅｔａｉｎｅｒ」【０２２１】  （エ）「ｒａｋｅｆｌｌｏｗｅｒ」【０２２２】  （オ）「ｃａｍ」【０２２３】  結果として、図２６に示すように、工程が構成される。【０２２４】  次に、「上部部品」及び「刃」を組み付ける工程を作成してみる。「上部部品」、「刃」はともに複数の部品を１つの部品のように扱って組み付けを行う。このようなアセンブリ構造が伴わない場合に、複数の部品（グループ）を１つの部品として扱いたい場合には、アイコン「▽＋上点」、または中間工程に含まれる場合のアイコン「▼＋上点」で表される「工程用グループ」を利用する。【０２２５】  次に、工程用グループを利用して「上部部品」を組み付けるための中間工程を作成してみる。【０２２６】  １．「「▼−上棒」１．１．１内部部品の組み付け」３３の後に図２７に示すように、「「▼＋下棒」１．１．２上部部品の組み付け」３４という中間工程を作成する。【０２２７】  ２．次の２つのシステムのいずれかで工程用グループを作成する。【０２２８】  （１）「工程編集パネル」２１上部の「▽＋上点」ボタン３５をクリックし、「１．１．２上部部品の組み付け」３４上でクリックする。【０２２９】  （２）「１．１．２上部部品の組み付け」３４を右クリックして工程用グループの追加を実行する。「Ｇｒｏｕｐ−１」という工程用グループが配下に作成されるので、「プロパティ」ダイアログ２６で名前を「上部部品」３６に変更する。すると、「「▼＋上点」上部部品」３６と工程編集パネル２１上で表現される。【０２３０】  ３．グループ編集パネル（図１４）で「ａｃｔｕａｔｏｒｂｒａｃｋｅｔ」３７、「ｂｌａｄｅ３」３８、「ｇｅａｒ＿ｕ」３９を選択し、図２７中の「上部部品」３６に追加する。「□」アイコンであらわされる「工程用グループに含まれるグループ」が追加される。【０２３１】  なお、工程用グループ内での順番は部品の組み付け順序とは関係がないので、「ａｃｔｕａｔｏｒｂｒａｃｋｅｔ」、「ｂｌａｄｅ３」、「ｇｅａｒ＿ｕ」をどの順番で追加しても問題はない。【０２３２】  同様に「刃」についても工程用グループを利用し、図２７に４０で示すように工程を作成する。これにより、図２７に示す工程が構成され、工程の設計が終了する。【０２３３】  なお、この場合にも、上記のような工程編集パネルを通さず、直接、図２に示すようなパーツリストを分解定義情報として入力するようにしても良い。パーツリストは、ベースプロセス（▽）に属する部品もしくは部品群をレベル１とし、以下従属する１又は２以上の中間プロセス（▼）に属する部品（部品群）をレベル２以下として作成するようにする。【０２３４】  このようにして分解定義情報若しくはパーツリストが用意されたならば、前記参照符号付与部１９が、中間プロセスを構成する部品若しくは部品群に参照符号をシーケンシャルに付与する。【０２３５】  次に、前記分解アニメーション生成部１４によるアニメーションの生成及び前記分解アニメーション再生制御部１６によるアニメーションの再生について説明する。【０２３６】  上記で設計した工程に基いて、前記分解アニメーション生成部１４が、アニメーションの自動生成を実行する。この実行は、図示しないメニューバーから、「工程アニメーションの作成」コマンドを指定することで開始する。このコマンドを指定すると、図２８に示す工程アニメーションの作成ダイアログボックス４２が表示される。この作成ダイアログボックス４２で、アニメーションの長さ４３、アニメーションの始点と終点の間の補間システム４４、分解係数４５の各種パラメータを確認又は指定し、ＯＫボタンを押すと、前述したシステムにより、工程アニメーションが生成される。【０２３７】  このとき、カメラアニメーションも自動生成されるが、視点は生成時の状態を元にしている。したがって、アニメーション自動作成直前に、図２９のように少し視点を傾けた状態にした後、工程アニメーションを実行することで、この視点での分解アニメーションが生成される。【０２３８】  自動生成したアニメーションを確認するには、例えば、図示しないメニューから、「工程のプレビューモード」を実行する。アニメーション→工程のプレビューモードを実行すると、図３０のようにグラフィックス画面上で自動生成されたアニメーションをプレビューすることができる。【０２３９】  工程アニメーションのプレビューダイアログ４６で「〉」ボタン４７を押すとプレビューパネル４８でアニメーションの再生が開始される。ここで、工程編集パネル２１と工程アニメーションのプレビューダイアログ４６及びプレビューパネル４８は互いに連動していて、工程編集パネル２１で工程を選択すると、その工程のアニメーション開始位置が反映される。また、アニメーションが進行し、工程やグループが切り替わると工程編集パネル２１上でそれらが選択状態となる。【０２４０】  次に、工程アニメーションの編集・再生成について説明する。【０２４１】  自動生成した工程アニメーションをプレビューしてみると干渉している組み立て手順があったりして不自然なところや、もう少し変化をつけてアニメーションをさせたい場合などがある。【０２４２】  例えば、図３１Ａ、図３１Ｂの「電源の組み付け」のアニメーションで��組み付けの途中で部品間での干渉が発生するアニメーションが生成されている。この修正には、前記工程編集パネル２１とアニメーションパネル４９を連動させて修正していく。【０２４３】  図３２のように、工程編集パネル２１とアニメーションパネル４９が共に開いている状態で、工程編集パネル２１の「１．５電源の組み付け」５０の上にある「ｐｏｗｅｒ」５１を選択する。すると、図３２のようにアニメーションパネル４９で電源の組み付けの動きに対応するアニメーションが選択された状態となる。「電源の組み付け」にどのようなアニメーションが生成されたかをアニメーションパネル４９で調べることができる。アニメーションパネル４９では図３３のようになっているので、「〉｜」と「｜〈」でキーフレーム間を移動して、「○」でキーフレームの内容を確認する。以下のように設定されているとする。【０２４４】  ０秒目に自動的に決定された位置（０，１６０．７０４、０）が設定されている。【０２４５】  １秒目に組み付ける位置が設定されている。【０２４６】  ここでは、０秒目の位置を適当な位置に修正すれば、うまく動作しそうである。そこで０秒目で「○」を押してキーフレームの編集を行う。図３４のプロパティダイアログで位置を（０、−３５、−６０）に設定してみると画面上で適当な位置に来ているように見える。そこで、この状態でＯＫボタンを押してキーフレームを変更する。変更後に適当なアニメーションするかをアニメーションパネル４９の「〉」ボタンを押して確認する。【０２４７】  同様の手順で、他の部品の動きを順次編集していく。【０２４８】  次に、「１．１可動部品」が組みあがったあとに「ｂｏｄｙ＿１」に組み付く動作をもう少し複雑な動作にしてみる。「１．１可動部品」全体が「ｂｏｄｙ＿１」に組み付く動作を編集するためには、図３５に示すように、工程編集パネル２１で「１．１可動部品」２９を選択する。そして、アニメーションパネル４９のターゲット５３で「ＡＬＬ  ＧＲＯＵＰ」を選択する。すると、「１．１可動部品」２９に含まれる部品全ての動作を編集できるようになる。【０２４９】  例えば、「１．１可動部品」２９の初期位置（時間０秒目）を「ＡＬＬ  ＧＲＯＵＰ」で編集すると、前記分解アニメーション修正部１５は、前記分解定義情報１１若しくは分解アルゴリズム９に基き、「１．１可動部品」２９の配下の組み付け工程である「１．１．１内部部品の組み付け」５４の組み付けアニメーションも連動して修正するようになっている。【０２５０】  次に、視点の編集について説明する。【０２５１】  上記工程では、「１．１可動部品」２９は少し離れた位置で組み立てられるので「１．１可動部品」２９の組立アニメーションで視点が適当な位置に移動するようにカメラを編集してみる。この場合、工程編集パネル２１で「１．１可動部品」２９の「ｇｅａｒ＿１」５５を選択する。そして、第３３図のように、アニメーションパネル４９のターゲット５３のプルダウンメニューから「ＰｒｏｃＣａｍ−１」を選択して、ボタンでアニメーションに追加する。ボタンを押すと、「ｇｅａｒ＿１」が０秒での位置に移動する。図３６のアニメーションパネル４９で時間０秒目でボタンを押して、視点を編集する���図３７のダイアログが現れるので以下の操作を行う。【０２５２】１．ビュー操作ボタンを押す。【０２５３】２．グラフィックス画面上で視点の位置を調整する。例えば、視点の回転は「ｘキーを押しながらドラッグ」、パンは「ｚキーを押しながらドラッグ」、ズームは「ｃキーを押しながらドラッグ」で行う。【０２５４】３．使用ラジオボタンをＯＮにする。【０２５５】４．図３８のような適当な視点に設定できたらＯＫボタンを押して編集を終了する。【０２５６】「１．１可動部品」の組み付けのあとで、続く「１．２モータの組み付け」などの工程で視点が適当な位置になるように「１．２モータの組み付け」の「ｍｏｔｏｒ２」にも同様の手順でカメラのキーフレームを編集しておく。【０２５７】  個々のアニメーションの編集が終了したら、全体の流れの一貫性をとるためにアニメーションを再生成する必要がある。前記図２８の工程アニメーションの作成ダイアログボックス４２を表示させてアニメーションの作成を行なうが、このとき、「再利用ボタン」５７がチェックされていることに注意する。このボタンがチェックされていると前記で編集したアニメーションを使って再び工程アニメーションを生成する。【０２５８】  工程アニメーションの再生成が終了したら、再度プレビュー操作を行って結果を確認する。自然な流れのアニメーションになっていることが確認できる。【０２５９】  また、分解イラストレーションの作成は、この場合も、修正された分解アルゴリズムを利用して行う。そして、前記中間プロセスを構成する部品もしくは部品群を分解限度とした分解イラストレーションを生成する。【０２６０】  以上説明した構成によれば、従来、工程設計後に全てのアニメーションをユーザが手動で設定する必要があったが、上記工程アニメーションの自動生成機能を利用することで、作業手順を示すアニメーション作成作業を大幅に軽減できる。【０２６１】  なお、この発明は上記１実施形態に限定されるものではなく、発明の要旨を変更しない範囲で種々変形可能である。
【図面の簡単な説明】
【０２６２】［図１］図１は、本発明の実施形態によって作成される分解イラストレーションを示す図である。
［図２］図２は、パーツリストの一例を示す図である。
［図３］図３は、パーツリストから生成した分解アルゴリズムを示す概念図である。
［図４］図４は、本発明の実施形態にシステムの概略構成図である。
［図５Ａ］図５Ａ及び図５Ｂは、分解定義情報生成の概念を示す図である。
［図５Ｂ］図５Ａ及び図５Ｂは、分解定義情報生成の概念を示す図である。
［図６Ａ］図６Ａ〜図６Ｃは、分解定義情報生成の一例を示す図である。
［図６Ｂ］図６Ａ〜図６Ｃは、分解定義情報生成の一例を示す図である。
［図６Ｃ］図６Ａ〜図６Ｃは、分解定義情報生成の一例を示す図である。
［図７Ａ］図７Ａ〜図７Ｄは、分解定義情報生成の一例を示す図である。
［図７Ｂ］図７Ａ〜図７Ｄは、分解定義情報生成の一例を示す図である。
［図７Ｃ］図７Ａ〜図７Ｄは、分解定義情報生成の一例を示す図である。
［図７Ｄ］図７Ａ〜図７Ｄは、分解定義情報生成の一例を示す図である。
［図８］図８Ａ〜図８Ｆは、分解定義情報生成の一例を示す図である。
［図８Ｄ］図８Ａ〜図８Ｆは、分解定義情報生成の一例を示す図である。
［図８Ｅ］図８Ａ〜図８Ｆは、分解定義情報生成の一例を示す図である。
［図８Ｆ］図８Ａ〜図８Ｆは、分解定義情報生成の一例を示す図である。
［図９Ａ］図９Ａ〜図９Ｃは、分解定義情報生成の一例を示す図である。
［図９Ｂ］図９Ａ〜図９Ｃは、分解定義情報生成の一例を示す図である。
［図９Ｃ］図９Ａ〜図９Ｃは、分解定義情報生成の一例を示す図である。
［図１０Ａ］図１０Ａ及び図１０Ｂは、分解定義情報生成の一例を示す図である。
［図１０Ｂ］図１０Ａ及び図１０Ｂは、分解定義情報生成の一例を示す図である。
［図１１］図１１は、分解アルゴリズム及びアニメーション生成を示す工程図である。
［図１２］図１２は分解アルゴリズムを説明するための模式図である。
［図１３］図１３は、一例としての電動ノコギリの３次元グラフィックスデータを示す図である。
［図１４］図１４は、部品の組み立て構成を示すパネルである。
［図１５］図１５は、部品の組立順序の概念を説明するための図である。
［図１６］図１６は、工程編集パネルを利用した工程構造（分解定義情報）の作成を示す図である。
［図１７］図１７は、工程編集パネルを利用した工程構造（分解定義情報）の作成を示す図である。
［図１８］図１８は、工程のプロパティを利用した工程構造（分解定義情報）の作成を示す図である。
［図１９］図１９は、工程編集パネルを利用した工程構造（分解定義情報）の作成を示す図である。
［図２０］図２０は、工程編集パネルを利用した工程構造（分解定義情報）の作成を示す図である。
［図２１］図２１は、工程編集パネルを利用した工程構造（分解定義情報）の作成を示す図である。
［図２２］図２２は、工程編集パネルを利用した工程構造（分解定義情報）の作成を示す図である。
［図２３］図２３は、工程編集パネルを利用した工程構造（分解定義情報）の作成を示す図である。
［図２４Ａ］図２４は、工程編集パネルを利用した工程構造（分解定義情報）の作成を示す図である。
［図２４Ｂ］図２４は、工程編集パネルを利用した工程構造（分解定義情報）の作成を示す図である。
［図２５］図２５は、可動部品の分解工程設計の概念を示す図である。
［図２６］図２６は、工程編集パネルを利用した工程構造（分解定義情報）の作成を示す図である。
［図２７］図２７は、工程編集パネルを利用した工程構造（分解定義情報）の作成を示す図である。
［図２８］図２８は、工程アニメーション作成のためのパラメータの入力システムを示す図である。
［図２９］図２９は、視点を設定するためのシステムを示す図である。
［図３０］図３０は、工程の修正工程を説明するための画面表示例である。
［図３１Ａ］図３１Ａ及び図３１Ｂは、部品の干渉状態を示すための図である。
［図３１Ｂ］図３１Ａ及び図３１Ｂは、部品の干渉状態を示すための図である。
［図３２］図３２は、アニメーションの編集システムの一例を示す図である。
［図３３］図３３は、アニメーションパネルを利用したアニメーション編集システムの一例を示す図である。
［図３４］図３４は、キーフレームプロパティパネルを利用したアニメーション編集システムの一例を示す図である。
［図３５］図３５は、アニメーションの編集システムの一例を示す図である。
［図３６］図３６は、視点の編集システムの一例を示す図である。
［図３７］図３７は、視点の編集システムの一例を示す図である。
［図３８］図３８は、視点の編集システムの一例を示す図である。
［図３９］図３９は、引き出し線を描画するためのアルゴリズムを説明するための図である。
【図１】
2004109561.tif 000003
【図２】
2004109561.tif 000004
【図３】
2004109561.tif 000005
【図４】
2004109561.tif 000006
2004109561.tif 000007
2004109561.tif 000008
2004109561.tif 000009
2004109561.tif 000010
2004109561.tif 000011
2004109561.tif 000012
【図８】
2004109561.tif 000013
2004109561.tif 000014
2004109561.tif 000015
2004109561.tif 000016
2004109561.tif 000017
【図１１】
2004109561.tif 000018
【図１２】
2004109561.tif 000019
【図１３】
2004109561.tif 000020
【図１４】
2004109561.tif 000021
【図１５】
2004109561.tif 000022
【図１６】
2004109561.tif 000023
【図１７】
2004109561.tif 000024
【図１８】
2004109561.tif 000025
【図１９】
2004109561.tif 000026
【図２０】
2004109561.tif 000027
【図２１】
2004109561.tif 000028
【図２２】
2004109561.tif 000029
【図２３】
2004109561.tif 000030
2004109561.tif 000031
2004109561.tif 000032
【図２５】
2004109561.tif 000033
【図２６】
2004109561.tif 000034
【図２７】
2004109561.tif 000035
【図２８】
2004109561.tif 000036
【図２９】
2004109561.tif 000037
【図３０】
2004109561.tif 000038
2004109561.tif 000039
【図３２】
2004109561.tif 000040
【図３３】
2004109561.tif 000041
【図３４】
2004109561.tif 000042
【図３５】
2004109561.tif 000043
【図３６】
2004109561.tif 000044
【図３７】
2004109561.tif 000045
【図３８】
2004109561.tif 000046
【図３９】
2004109561.tif 000047
【国際調査報告】
2004109561.tif 000048
2004109561.tif 000049
2004109561.tif 000050
2004109561.tif 000051