(57)【要約】【課題】３次元のＣＡＤの分解図の作成を支援することが可能になる。【解決手段】分解の対象アセンブリに含まれる複数の部品のうちの１つの部品が選択される。３次元ＣＡＤ表示装置１００は、選択された部品単体を複数の方向に投影した第一の投影図群と対象アセンブリを複数の方向に投影した第二の投影図群とを生成する。例えば３次元ＣＡＤ表示装置１００は、第一の投影図群と第二の投影図群との間で、投影方向が同一であって、部品の形状又は面積の類似度が最も高い投影方向を特定する。３次元ＣＡＤ表示装置１００は、分解画像ｉｍｇを表示する際のアセンブリと取り出した部品との間の距離を部品の大きさに応じた距離に基づいて設定する。３次元ＣＡＤ表示装置１００は、対象アセンブリから選択された部品を取り出した分解画像ｉｍｇを表示する際に、特定した投影方向とは逆の方向に、取り出した部品を配置する。【選択図】図１
2015088034.tif 000002
【特許請求の範囲】
【請求項１】
アセンブリに含まれる複数の部品のうちの１つの部品が選択されると、
選択された前記部品単体を複数の方向に投影した第一の投影図群と、前記アセンブリを複数の方向に投影した第二の投影図群との間で、投影方向が同一であって、前記部品の形状又は面積の類似度が最も高い投影方向を特定し、
前記アセンブリから前記部品を取り出した分解画像を表示する際に、特定した前記投影方向とは逆の方向に、取り出した前記部品を配置する、
処理をコンピュータに実行させる３次元ＣＡＤ表示プログラム。
【請求項２】
前記分解画像の表示の際に、前記アセンブリと、取り出した前記部品との間の距離を前記部品の大きさに応じた距離に設定する、
処理を前記コンピュータに実行させる請求項１記載の３次元ＣＡＤ表示プログラム。
【請求項３】
アセンブリに含まれる複数の部品のうちの１つの部品が選択されると、
選択された前記部品単体を複数の方向に投影した第一の投影図群と、前記アセンブリを複数の方向に投影した第二の投影図群との間で、投影方向が同一であって、前記部品の形状又は面積の類似度が最も高い投影方向を特定し、
前記アセンブリから前記部品を取り出した分解画像を表示する際に、特定した前記投影方向とは逆の方向に、取り出した前記部品を配置する、
処理をコンピュータが実行する３次元ＣＡＤ表示方法。
【請求項４】
アセンブリに含まれる複数の部品のうちの１つの部品が選択されると、選択された前記部品単体を複数の方向に投影した第一の投影図群と、前記アセンブリを複数の方向に投影した第二の投影図群との間で、投影方向が同一であって、前記部品の形状又は面積の類似度が最も高い投影方向を特定し、前記アセンブリから前記部品を取り出した分解画像を表示する際に、特定した前記投影方向とは逆の方向に、取り出した前記部品を配置する制御部、
を有する３次元ＣＡＤ表示装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元ＣＡＤ表示装置、３次元ＣＡＤ表示方法、および３次元ＣＡＤ表示プログラムに関する。
【背景技術】
【０００２】
従来、３次元ＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）において、アセンブリの組立または分解手順が定められている場合、アセンブリから分解手順により選択した部品を分解する分解方向を決定し、決定した分解方向に基づいて組立手順のアニメーションを生成する技術が公知である（例えば、以下特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−８９１０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来、たとえばアセンブリの分解手順を決定するためにアセンブリの分解図を作成する場合等に、作成者の操作量が多くなり、分解図の作成が困難であるという問題点がある。
【０００５】
１つの側面では、本発明は、３次元ＣＡＤの分解図の作成を支援することが可能になる３次元ＣＡＤ表示装置、３次元ＣＡＤ表示方法、および３次元ＣＡＤ表示プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一側面によれば、アセンブリに含まれる複数の部品のうちの１つの部品が選択されると、選択された前記部品単体を複数の方向に投影した第一の投影図群と、前記アセンブリを複数の方向に投影した第二の投影図群との間で、投影方向が同一であって、前記部品の形状又は面積の類似度が最も高い投影方向を特定し、前記アセンブリから前記部品を取り出した分解画像を表示する際に、特定した前記投影方向とは逆の方向に、取り出した前記部品を配置する３次元ＣＡＤ表示装置、３次元ＣＡＤ表示方法、および３次元ＣＡＤ表示プログラムが提案される。
【発明の効果】
【０００７】
本発明の一態様によれば、３次元ＣＡＤの分解図の作成を支援することが可能になる。
【図面の簡単な説明】
【０００８】
【図１】図１は、本発明にかかる３次元ＣＡＤ表示装置による一動作例を示す説明図である。
【図２】図２は、分解図例と分解手順書および組立手順書の作成例を示す説明図である。
【図３】図３は、３次元ＣＡＤ表示装置１００のハードウェア構成例を示すブロック図である。
【図４】図４は、３次元ＣＡＤ表示装置１００の機能的構成例を示すブロック図である。
【図５】図５は、３次元の対象アセンブリ例とアセンブリツリー４３１例とを示す説明図である。
【図６】図６は、アセンブリ例を示す説明図である。
【図７】図７は、部品データ４３２の記憶内容例を示す説明図である。
【図８】図８は、アセンブリデータ４３３のデータ構造例を示す説明図である。
【図９】図９は、相対座標および相対姿勢を示す説明図である。
【図１０】図１０は、投影図によるスコア付け例を示す説明図である。
【図１１】図１１は、回転体の判定例を示す説明図である。
【図１２】図１２は、板状体の判定例を示す説明図である。
【図１３】図１３は、移動量の設定例を示す説明図である。
【図１４】図１４は、製造フローデータ４３４例を示す説明図である。
【図１５】図１５は、製造フロー画面例を示す説明図である。
【図１６】図１６は、３次元ＣＡＤ表示装置１００による３次元ＣＡＤ表示処理手順例を示すフローチャートである。
【図１７】図１７は、図１６に示した分解方向検出処理の詳細な説明を示すフローチャートである。
【図１８】図１８は、図１７に示した投影シルエット処理の詳細な説明を示すフローチャートである。
【図１９】図１９は、図１７に示した回転体判定処理の詳細な説明を示すフローチャートである。
【図２０】図２０は、図１７に示した板状体判定処理の詳細な説明を示すフローチャートである。
【図２１】図２１は、図１６に示した移動量設定処理の詳細な説明を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照して、本発明にかかる３次元ＣＡＤ表示装置、３次元ＣＡＤ表示方法、および３次元ＣＡＤ表示プログラムの実施の形態を詳細に説明する。
【００１０】
図１は、本発明にかかる３次元ＣＡＤ表示装置による一動作例を示す説明図である。３次元ＣＡＤ表示装置１００は、シミュレーション空間上に配置されたアセンブリの分解図の作成を支援するコンピュータである。また、３次元ＣＡＤ表示装置１００は、シミュレーション空間上に配置されたアセンブリの組立手順書や分解手順書などの作成を支援するコンピュータである。ここで、シミュレーション空間とは、コンピュータ上でシミュレーションされる仮想的な３次元空間である。具体的には、例えば、シミュレーション空間は、３次元のアセンブリの設計を行うためのＣＡＤによって３次元ＣＡＤ表示装置１００内に仮想的に設定された空間である。シミュレーション空間には、例えば、Ｘ軸とＹ軸とＺ軸とからなる３次元の直交座標系が定義される。
【００１１】
分解画像ｉｍｇの作成の対象アセンブリは、例えば、３次元のＣＡＤソフトウェアにおける３次元のＣＡＤのデータで表現される。ここで、アセンブリは、２つ以上の部品またはアセンブリによって形成されるモデルである。アセンブリは、製品全体をコンピュータ上に仮想化したモデルであってもよいし、製品を形成する一部をコンピュータ上に仮想化したモデルであってもよい。製品とは、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、タブレットＰＣ、サーバ、携帯情報端末、スマートフォン、自動車、家電製品などの機械製品やビルなどの建物などをコンピュータ上に仮想化したモデルである。部品は、これ以上分解できない最小単位のモデルである。また、各部品は、例えば、位置データ、材料データ、色データなどを含む３次元のＣＡＤデータで表現される。アセンブリのデータや部品のデータについては後述する。
【００１２】
また、分解図とは、アセンブリを形成する部品を一点単位まで分解し、位置関係が分かるように配置した図面である。作成される分解図は、例えば、３次元のＣＡＤソフトウェアによってディスプレイ１０１上に表示される。また、組立手順書や分解手順書は、アセンブリを形成する部品を一点ごとに分解した図面の組み合わせである。アセンブリ全体の図から分解図までの部品を一点ごとに分解した画像を連続して並べることにより分解手順書が作成される。分解した画像は、分解画像ｉｍｇと称する。また、分解手順書によって並べられた順と逆順に分解画像ｉｍｇを並べることにより組立手順書が作成される。分解図と組立手順書および分解手順書の一例は後述する図２に示す。
【００１３】
また、作成者の操作によって分解図、組立手順書および分解手順書などを作成する場合、作成者の操作量が多い。そのため、分解図、組立手順書および分解手順書などの作成に要する時間が長くなる。例えば、作成者の操作による作成手段としては、「ドラッグ＆ドロップ」方式、や「専用ダイアログによる指定」方式が挙げられる。「ドラッグ＆ドロップ」方式は、３次元のＣＡＤソフトウェアによって表示された部品を作成者のマウス操作によって実現される。「専用ダイアログによる指定」方式は、移動対象の部品や移動量、移動方向などを入力可能な専用ダイアログに作成者のキーボード１０２の操作やマウス１０３の操作によって実現される。いずれの方式であっても、１つの部品当たり、（ａ）部品の選択、（ｂ）部品の移動方向の選択、（ｃ）移動量指示などの３つの操作が作成者によって行われなければならない。例えば、部品総数が数万点に及ぶような製品であると、組立手順書および分解手順書や分解図などの作成には、数万操作を要する場合がある。そのため、作成者の操作量が多い。
【００１４】
そこで、本実施の形態では、分解したい部品が選択されると、アセンブリの部品が選択されると、該アセンブリから該部品を取り出す方向を投影図群で特定し、該部品を取り出したアセンブリと該アセンブリの該方向に配置した該部品とを表示する。これにより、分解図の作成を支援可能となる。また、作成者の操作量を低減でき、分解図の作成時間の短縮化を図ることができる。
【００１５】
まず、分解の対象アセンブリに含まれる複数の部品のうちの１つの部品が選択される。図１（１）に示すように、例えば、ディスプレイ１０１に表示された画像が示すアセンブリに含まれる部品のうち分解したい部品は、作成者のマウス１０３の操作やキーボード１０２の操作などによって選択される。
【００１６】
３次元ＣＡＤ表示装置１００は、選択された部品単体を複数の方向に投影した第一の投影図群を生成する。つぎに、３次元ＣＡＤ表示装置１００は、対象アセンブリを複数の方向に投影した第二の投影図群を生成する。そして、図１（２）に示すように、例えば３次元ＣＡＤ表示装置１００は、第一の投影図群と第二の投影図群との間で、投影方向が同一であって、部品の形状又は面積の類似度が最も高い投影方向を特定する。特定された投影方向とは逆の方向を分解方向とも呼ぶ。分解方向とは、選択された部品をアセンブリから取り出す方向である。また、特定された投影方向を組立方向とも呼ぶ。組立方向は、アセンブリに選択された部品を組み付ける方向である。また、３次元ＣＡＤ表示装置１００は、分解画像ｉｍｇを表示する際のアセンブリと取り出した部品との間の距離を部品の大きさに応じた距離に基づいて設定する。分解画像ｉｍｇを表示する際のアセンブリと取り出した部品との間の距離を移動量とも呼ぶ。例えば、図１（３）に示すように、３次元ＣＡＤ表示装置１００は、部品の大きさに基づいて移動量を算出する。
【００１７】
３次元ＣＡＤ表示装置１００は、図１（４）に示すように、対象アセンブリから選択された部品を取り出した分解画像ｉｍｇを表示する際に、特定した投影方向とは逆の方向に、取り出した部品を配置する。具体的に、３次元ＣＡＤ表示装置１００は、対象アセンブリから分解方向に部品を取り出した分解画像ｉｍｇであって、対象アセンブリと選択された部品との間の距離が算出した移動距離である分解画像ｉｍｇを生成してディスプレイ１０１に表示する。
【００１８】
これにより、３次元ＣＡＤの分解図の作成を支援することが可能になる。したがって、作成者の操作量の低減化を図ることができ、分解図の作成時間の短縮化を図ることができる。
【００１９】
図２は、分解図例と分解手順書および組立手順書の作成例を示す説明図である。図２（１）に示すように、分解図２００とは、アセンブリを形成する部品を一点単位まで分解し、位置関係が分かるように配置した図面である。また、図２（２）に示すように、各部品をアセンブリから取り出した分解画像ｉｍｇを並べることにより、組立手順書２０１または分解手順書２０１となる。分解順に分解画像ｉｍｇが並べられると、分解手順書２０１となり、組立順に分解画像ｉｍｇが並べられると、組立手順書２０１となる。
【００２０】
また、分解画像ｉｍｇ、手順書２０１、分解図２００などの表示については、ディスプレイ１０１への表示に限らず、プリンタによって用紙に表示させてもよい。
【００２１】
（３次元ＣＡＤ表示装置１００のハードウェア構成例）
図３は、３次元ＣＡＤ表示装置１００のハードウェア構成例を示すブロック図である。図３において、３次元ＣＡＤ表示装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、ディスクドライブ３０４と、ディスク３０５と、を有している。３次元ＣＡＤ表示装置１００は、Ｉ／Ｆ（Ｉｎｔｅｒ／Ｆａｃｅ）３０６と、ディスプレイ１０１と、キーボード１０２と、マウス１０３と、を有する。また、各部はバス３０７によってそれぞれ接続されている。
【００２２】
ここで、ＣＰＵ３０１は、３次元ＣＡＤ表示装置１００の全体の制御を司る制御部である。ＲＯＭ３０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される。ディスクドライブ３０４は、ＣＰＵ３０１の制御にしたがってディスク３０５に対するデータのリード／ライトを制御する。ディスク３０５は、ディスクドライブ３０４の制御で書き込まれたデータを記憶する。ディスク３０５としては、磁気ディスク、光ディスクなどが挙げられる。
【００２３】
Ｉ／Ｆ３０６は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワークＮＥＴに接続され、このネットワークＮＥＴを介して他の装置に接続される。そして、Ｉ／Ｆ３０６は、ネットワークＮＥＴと内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ３０６には、例えばモデムやＬＡＮアダプタなどを採用することができる。
【００２４】
ディスプレイ１０１は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ１０１は、例えば、液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００２５】
キーボード１０２は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス１０３は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００２６】
（３次元ＣＡＤ表示装置１００の機能的構成例）
図４は、３次元ＣＡＤ表示装置１００の機能的構成例を示すブロック図である。３次元ＣＡＤ表示装置１００は、記憶部４０１と、受付部４０２と、特定部４０３と、移動量設定部４０４と、表示部４０５と、手順書生成部４０６と、を含む。各部の処理は、例えば、ＣＰＵ３０１がアクセス可能な記憶装置に記憶された３次元ＣＡＤ表示プログラムにコーディングされている。そして、ＣＰＵ３０１が記憶装置から３次元ＣＡＤ表示プログラムを読み出して、３次元ＣＡＤ表示プログラムにコーディングされている処理を実行する。これにより、各部の処理が実現される。また、各部の処理結果は、例えば、ＲＡＭ３０３、ディスク３０５などの記憶装置に記憶される。
【００２７】
まず、３次元ＣＡＤ表示装置１００が扱う各種データについて説明する。記憶部４０１は、ＲＡＭ３０３、ディスク３０５といった記憶装置によって実現される。記憶部４０１は、対象製品の３次元モデルと、アセンブリツリー４３１と、アセンブリデータ４３３と、部品データ４３２と、製造フローデータ４３４と、を記憶する。３次元の対象アセンブリとアセンブリツリー４３１とは、３次元ＣＡＤソフトウェアによって得られるデータである。３次元モデルは、分解図２００の作成対象の製品の３次元モデルである。アセンブリツリー４３１は、対象アセンブリを形成するアセンブリや部品の構成を階層構造化した情報である。対象アセンブリとアセンブリツリー４３１については、図５に詳細例を示す。部品データ４３２は、対象アセンブリ内の各部品が有する情報であり、３次元モデルから抽出される情報である。部品データ４３２については、図７に詳細例を示す。アセンブリデータ４３３は、対象アセンブリ内の各アセンブリが有する情報であり、対象アセンブリから抽出される情報である。アセンブリデータ４３３については図８に詳細例を示す。製造フローデータ４３４は、組立順序や分解順序を示す情報であり、３次元ＣＡＤ表示装置１００によって作成される分解図２００とともに作成される情報である。製造フローデータ４３４については、図１４を用いて後述する。
【００２８】
図５は、３次元の対象アセンブリ例とアセンブリツリー４３１例とを示す説明図である。図５に示す３次元の対象アセンブリ５０１とアセンブリツリー４３１とは、上述したように３次元ＣＡＤソフトウェアから得られるデータである。対象アセンブリ５０１は、分解図２００の作成対象の製品の３次元モデルである。図５の例では、製品はマウス１０３である。アセンブリツリー４３１は、３次元モデルを形成するアセンブリや部品の構成を階層構造化した情報である。図５において、トップアセンブリＡ０は、対象アセンブリ５０１全体である。図５の例では、トップアセンブリＡ０は、アセンブリＡ１，Ａ５および部品ｐ１０を有する。また、アセンブリＡ１は、アセンブリＡ２，Ａ３を有する。また、アセンブリＡ２は、部品ｐ１，ｐ２を有する。
【００２９】
また、１つ上の階層のアセンブリを親アセンブリと称す。例えば、アセンブリＡ２の親アセンブリはアセンブリＡ１である。また、１つ下の階層のアセンブリを子アセンブリと称す。例えば、アセンブリＡ１の子アセンブリはアセンブリＡ２，Ａ３である。
【００３０】
ここで、上述したように、アセンブリとは、部品やアセンブリで形成されたモデルである。上述したように、部品は、これ以上分解できない最小単位のモデルである。したがって、アセンブリや部品を総称してモデルという。
【００３１】
図６は、アセンブリ例を示す説明図である。上述したようにアセンブリとは、部品やアセンブリによって形成されるモデルである。また、上述したように、部品は、これ以上分解できない最小単位のモデルである。図６では、アセンブリ６００は、ギア６０１と、軸６０２，６０３が組み合わされたアセンブリ６０４と、を有する。
【００３２】
（部品データ４３２の記憶内容例）
図７は、部品データ４３２の記憶内容例を示す説明図である。部品データ４３２は、３次元の対象アセンブリ５０１内の各部品が有する情報であり、３次元ＣＡＤソフトウェアから得られた対象アセンブリ５０１とアセンブリツリー４３１とから３次元ＣＡＤ表示装置１００によって抽出される情報である。
【００３３】
図７（Ａ）において、部品データ４３２は、部品名と、相対座標と、相対姿勢と、色情報と、形状情報と、最優先分解方向と、６軸スコアと、移動量と、のフィールドを有する。各フィールドに情報が設定されることにより、レコード（例えば、７０１−ｉ）として記憶される。
【００３４】
部品名のフィールドには、部品を一意に特定する識別情報として、部品名が格納される。レコード７０１−ｉでは、部品名としてｐｉが格納される。
【００３５】
相対座標のフィールドには、親アセンブリ座標系での親アセンブリ原点からの部品の位置情報が格納される。ただし、親アセンブリがトップアセンブリＡ０の場合、相対座標のフィールドには、グローバル座標系での原点からの部品の位置情報が格納される。相対姿勢のフィールドには、部品のローカル座標の各軸の方向を表す情報が格納される。ただし、親アセンブリがトップアセンブリＡ０の場合、相対姿勢のフィールドには、グローバル座標系での親アセンブリの姿勢からの相対姿勢が格納される。より具体的に、相対姿勢は、親アセンブリ座標系での親アセンブリ姿勢からの相対指定である。ここでは、相対姿勢は、相対座標に対して乗算することにより、親アセンブリ座標系からローカル座標系での位置情報に変換する３×３の変換行列が格納される。レコード７０１−ｉでは、相対姿勢としてＲｉが格納される。Ｒｉの（  ）内には変換行列の一例を示す。また、グローバル座標系とはモデルを表示する最上位の座標空間を指す。具体的には原点が（０，０，０）、相対姿勢が単位行列である座標系を指す。
【００３６】
色情報フィールドには、対象の部品の色情報が格納される。色情報は、例えば、ＲＧＢ値である。形状情報フィールドには、対象の部品の形状を示す形状情報が格納される。形状情報として、本実施の形態では、ファセットを複数用いて形状情報とする。ファセットは、微細平面を特定する情報である。ファセットについて、図７（Ｂ）を用いて説明する。
【００３７】
図７（Ｂ）が示すように、部品ｐｉは、ファセットＦ１〜ファセットＦＮにより形成される。１つのファセットは、３つの頂点の座標情報と、３つの頂点により形成される微細平面の法線ベクトルを有する。例えば、ファセットＦＮは、３つの頂点ｖ＿Ｎ１、ｖ＿Ｎ２、ｖ＿Ｎ３と、法線ベクトルＶｅｃ＿Ｎとを有する。
【００３８】
例えば、図７（Ａ）に示すレコード７０１−ｉは、部品ｐｉについて、相対座標がＣｉ（ｘｇ，ｙｇ，ｚｇ）であり、姿勢がＲｉであり、色情報が（ｒｉ，ｇｉ，ｂｉ）であり、ファセットＦ１〜ファセットＦＮを有することを示す。
【００３９】
最優先分解方向のフィールドには、３次元ＣＡＤ表示処理が行われる前には何も格納されていないが、分解方向が決定されると、決定された分解方向を示す識別情報が格納される。ここでは、１は＋Ｘ方向を示し、２は−Ｘｌ方向を示し、３は＋Ｙｌ方向を示し、４は−Ｙ方向を示し、５は＋Ｚ方向を示し、６は−Ｚ方向を示す。
【００４０】
６軸スコアのフィールドには、ローカルと、グローバルと、のフィールドが含まれる。６軸スコアのフィールドには、３次元ＣＡＤ表示処理が行われる前には何も格納されていないが、６軸スコアが算出されると、算出されたスコアが格納される。６軸スコアは、軸ごとに組付方向としての適性をあらわす指標値である。ここでは、スコアが高いほど適性があるものとする。６軸スコアの算出については後述する。分解方向は、組付方向と逆方向であるため、指標値が最も高い組付方向と逆方向が分解方向となる。
【００４１】
移動量のフィールドには、３次元モデルから対象の部品またはアセンブリを取り出した分解画像ｉｍｇが生成される際に、対象の部品を３次元モデルからどの程度移動させるかの移動量が格納される。移動量のフィールドには、３次元ＣＡＤ表示処理が行われる前には何も格納されていないが、移動量が算出されると、算出された移動量が格納される。
【００４２】
＜アセンブリデータ４３３のデータ構造例＞
図８は、アセンブリデータ４３３のデータ構造例を示す説明図である。アセンブリデータ４３３は、対象アセンブリ５０１内の各アセンブリが有する情報であり、３次元ＣＡＤソフトウェアから得られた対象アセンブリ５０１とアセンブリツリー４３１とから３次元ＣＡＤ表示装置１００によって抽出される情報である。
【００４３】
図８において、アセンブリデータ４３３は、アセンブリ名と、直下の構成モデル数と、直下の構成モデル名と、親アセンブリ名と、相対座標と、相対姿勢と、最優先分解方向と、６軸スコアと、移動量と、を有する。各フィールドに情報が設定されることにより、レコード（８０１−ｉ）として記憶される。
【００４４】
アセンブリ名、直下の構成モデル数、直下の構成モデル名、親アセンブリ名のフィールド以外のフィールド群は、部品データ４３２と同一内容であるため、説明を省略する。
【００４５】
アセンブリ名のフィールドには、アセンブリを一意に特定可能な識別情報として、アセンブリ名が格納される。直下の構成モデル数のフィールドには、直下の構成モデル数ｍｉが格納される。直下の構成モデル数とは、自アセンブリの１つ下の階層での構成モデル数である。１つ下の階層であっても、構成モデル以外のモデルはカウントしない。例えば、図５において、アセンブリＡ３の場合、下の階層には、アセンブリＡ４、部品ｐ３〜ｐ６が存在するが、アセンブリＡ３の１つ下の階層の構成モデルは、アセンブリＡ４，部品ｐ３，ｐ４である。したがって、アセンブリＡ３の場合の直下の構成モデル数ｍｉは、ｍｉ＝３となる。また、直下の構成モデル名のフィールドには、直下の構成モデル名が格納される。例えば、図５において、アセンブリＡ３の場合、直下の構成モデル名のフィールドには、Ａ４，ｐ３，ｐ４が格納される。
【００４６】
また、親アセンブリ名のフィールドには、親アセンブリ名Ａｊが格納される。例えば、アセンブリＡ３の場合、親アセンブリはアセンブリＡ１であるため、親アセンブリ名のフィールドにはＡ１が格納される。これにより、３次元ＣＡＤ表示装置１００は、アセンブリごとにどのアセンブリと親子関係があるかを特定することができる。
【００４７】
図９は、相対座標および相対姿勢を示す説明図である。ここでは、モデルＭの相対座標および相対姿勢について説明する。図９において、Ｘｇ軸、Ｙｇ軸およびＺｇ軸からなるグローバル座標系をＣｇとする。Ｑ０は、グローバル座標系Ｃｇの原点である。グローバル座標系Ｃｇは、図５のトップアセンブリＡ０となるモデルＭ０を定義する空間である。モデルＭ０を形成するファセットの座標は、原点Ｑ０を基準に設定される。
【００４８】
Ｑ１は、Ｘｌ１軸、Ｙｌ１軸およびＺｌ１軸からなるローカル座標系Ｃｌ１の原点である。ローカル座標系Ｃｌ１は、例えば、図５のトップアセンブリＡ０を親アセンブリとするアセンブリＡ１となるモデルＭ１を定義する空間である。ローカル座標系Ｃｌ１の原点Ｑ１は、グローバル座標系Ｃｇの原点Ｑ０との相対位置により決定される。モデルＭ１を構成するファセットの座標は、原点Ｑ１を基準に設定される。また、ローカル座標系Ｃｌ１の相対姿勢Ｒ１は、グローバル座標系ＣｇのモデルＭ０の姿勢からの相対姿勢となる。
【００４９】
Ｑ２は、Ｘｌ２軸、Ｙｌ２軸およびＺｌ２軸からなるローカル座標系Ｃｌ２の原点である。ローカル座標系Ｃｌ２は、例えば、図５のアセンブリＡ１を親アセンブリとするアセンブリＡ２となるモデルＭ２を定義する空間である。ローカル座標系Ｃｌ２の原点Ｑ２は、ローカル座標系Ｃｌ１の原点Ｑ１との相対位置により決定される。モデルＭ２を構成するファセットの座標は、原点Ｑ２を基準に設定される。また、ローカル座標系Ｃｌ２の相対姿勢Ｒ２は、ローカル座標系Ｃｌ１のモデルＭ１の姿勢からの相対姿勢となる。
【００５０】
このように、モデルの相対座標は、親アセンブリの原点からの相対位置で決定された原点を基準に設定され、モデルの姿勢は、親アセンブリの姿勢を基準に設定されることになる。
【００５１】
まず、受付部４０２は、複数の部品によって組み付けられたアセンブリからいずれかの部品を選択する作成者の選択操作を受け付ける。具体的に、受付部４０２は、ディスプレイ１０１上に表示されたアセンブリからいずれかのモデルを選択するための作成者によるマウス１０３のクリック操作を受け付ける。ここで、選択されたモデルを選択モデルとも称する。
【００５２】
つぎに、特定部４０３は、選択された部品単体を複数の方向に投影した第一の投影図群と、アセンブリを複数の方向に投影した第二の投影図群との間で、投影方向が同一であって、部品の形状又は面積の類似度が最も高い投影方向を特定する。具体的に、特定部４０３は、生成部４１０と、算出部４１２と、判定部４１１と、決定部４１３と、を有する。
【００５３】
生成部４１０は、第一の領域に対し、受付部４０２によって受け付けられた選択操作によって選択されたモデルを第一の領域の背景色と異なる色で複数の方向から投影することにより、第一の投影図群を生成する。具体的には、生成部４１０は、選択モデルについて、そのローカル座標系の６方向（＋Ｘｌ〜−Ｚｌ）とグローバル座標系での６方向（＋Ｘｇ〜−Ｚｇ）の各々の方向から第一の投影図群を生成する。投影先となる第一の領域とは、例えば、所定サイズのビットマップ画像領域（例えば、２００×２００ピクセル）である。生成部４１０は、ローカル座標系とグローバル座標系とが一致する場合は、いずれか一方の座標系の６方向について生成することになる。これにより、同一処理の重複を防止でき、処理の高速化を図ることができる。
【００５４】
図１０は、投影図によるスコア付け例を示す説明図である。ここで、ローカル座標系とグローバル座標系とが一致する場合、図１０に示すように、生成部４１０は、第一の投影図群として、投影図（ａ）〜（ｆ）を生成する。この場合、選択モデル（Ｅリング１００１）は背景色（例えば、黒）と異なる色（白）で投影される。したがって、選択モデルの投影箇所のビットが計数されることになる。なお、ローカル座標系とグローバル座標系とが一致しない場合がある。例えば、選択モデルが斜めに組み付けられている場合などである。このような場合は、第一の投影図群は、それぞれ１２方向分生成されることになる。
【００５５】
また、生成部４１０は、第一の領域と同サイズの第二の領域に対し、選択モデルを背景色と異なる色にし、選択モデル以外の他のモデルを背景色と同色にして、複数の方向から投影することにより、第二の投影図群を生成する。具体的には、生成部４１０は、選択モデルについて、そのローカル座標系の６方向（＋Ｘｌ〜−Ｚｌ）とグローバル座標系の６方向（＋Ｘｇ〜−Ｚｇ）の各々の方向から第二の投影図群を生成する。投影先となる第二の領域とは、第一の領域と同サイズであり、例えば、図１に示した所定サイズのビットマップ画像領域（例えば、２００×２００ピクセル）である。生成部４１０は、ローカル座標系とグローバル座標系とが一致する場合は、いずれか一方の座標系の６方向について生成することになる。これにより、同一処理の重複を防止でき、処理の高速化を図ることができる。
【００５６】
同様に、ローカル座標系とグローバル座標系とが一致する場合、図１０に示したように、生成部４１０は、第二の投影図群として、投影図（Ａ）〜（Ｆ）を生成する。この場合、選択モデル（例えば、図１０のＥリング１００１）は背景色（例えば、黒）と異なる色（白）で投影され、他のモデル（例えば、図１０のシャフト１００２）は背景色で投影される。したがって、干渉状態の選択モデルの投影箇所のビットが計数されることになる。
【００５７】
算出部４１２は、生成部４１０によって生成された第一および第二の投影図群を、複数の方向から選ばれた検証方向が同一である投影図どうしで比較することにより、投影図どうしの一致度を示すスコアを検証方向ごとに算出する。
【００５８】
複数の方向から選ばれた検証方向とは、図１０の場合、＋Ｘ〜−Ｚから順次選ばれる方向である。算出部４１２は、検証方向が同一である投影図どうしを比較する。例えば、算出部４１２は、検証方向が＋Ｘである場合、投影図（ａ），（Ａ）を比較し、検証方向が−Ｘである場合、投影図（ｂ），（Ｂ）を比較する。例えば、以下のように比較される。
【００５９】
図１０において、投影図（ａ）〜（ｆ）のうち選択モデルであるＥリング１００１の画像を示す白色のビット数の計数結果ＷＢ１を、それぞれ、
ＷＢ１（ａ）＝  ２０００
ＷＢ１（ｂ）＝  ２０００
ＷＢ１（ｃ）＝  ２０００
ＷＢ１（ｄ）＝  ２０００
ＷＢ１（ｅ）＝１３０００
ＷＢ１（ｆ）＝１３０００
とする。
【００６０】
また、図１０において、投影図（Ａ）〜（Ｆ）のうち選択モデルであるＥリング１００１の画像を示す白色のビット数の計数結果ＷＢ２を、それぞれ、
ＷＢ２（Ａ）＝２０００
ＷＢ２（Ｂ）＝１７００
ＷＢ２（Ｃ）＝２０００
ＷＢ２（Ｄ）＝１７００
ＷＢ２（Ｅ）＝９０００
ＷＢ２（Ｆ）＝９５００
とする。
【００６１】
つぎに、算出部４１２は同一方向どうしでスコアを算出する。一例として、スコアは、下記式（１）により算出される。
【００６２】
スコアＢｐ＝（ＷＢ２／ＷＢ１）×１００・・・（１）
【００６３】
したがって、検証方向ごとのスコアＢｐは表のようになる。第二の投影図群は他のモデルとの干渉状態を示しており干渉部分が黒のビットとなるため、スコアＢｐは１００以下の得点となる。第二の投影図においても干渉状態にならない場合は、最高得点の１００となる。このように、スコアＢｐが高いほど、第一の投影図における選択モデルの投影箇所（白のビット）と第二の投影図における選択モデルの投影箇所（白のビット）との一致数が高くなる。換言すれば、一致数が高いということは、その検証方向の逆方向に選択モデルと干渉する箇所が少ないことを意味する。したがって、選択モデルが検証方向の逆方向に抜ける可能性が高くなる。上記の例では、＋Ｘ方向および＋Ｙ方向のスコアＢｐがともに１００であるため、その逆方向である−Ｘ方向または−Ｙ方向に分解できる可能性が高いことを示す。
【００６４】
決定部４１３は、生成部４１０によって算出されたスコア群の中で最大スコアとなる投影図の検証方向の逆方向を、アセンブリデータ４３３から選択モデルを分解する最優先分解方向に決定する。そして、決定部４１３は、当該分解方向を選択モデルに関連付けて記憶部４０１に格納する。具体的には、例えば、決定部４１３は、ローカル座標系の６方向およびグローバル座標系の６方向の計１２方向から得られたスコアＢｐのうち、最大スコアとなる投影図を投影した検証方向の逆方向を、分解方向に決定する。決定部４１３は、また、最大スコアとなる投影図を投影した検証方向を、組付方向に決定してもよい。
【００６５】
そして、表示部４０５は、アセンブリから部品を取り出した分解画像ｉｍｇを表示する際に、特定部４０３によって特定された投影方向とは逆の方向に、取り出した部品を配置する。具体的に、表示部４０５は、決定部４１３によって決定された分解方向に、アセンブリから部品を取り出した分解画像ｉｍｇをディスプレイ１０１に表示する。また、ディスプレイ１０１に限らず、プリンタなどによって用紙に表示させてもよい。これにより、分解図２００の作成を支援することができる。また、より分解方向の精度を向上させるために、判定部４１１による判定処理を行ってもよい。
【００６６】
判定部４１１は、回転体判定部４２１と、板状体判定部４２２と、を含む。判定部４１１では、回転体判定部４２１と板状体判定部４２２との判定をおこなうことにより、スコアＢｐに対し加点または減点する。なお、回転体判定部４２１と板状体判定部４２２の実行は任意である。例えば、回転体判定部４２１と板状体判定部４２２との両方を実行してもよいし、少なくともいずれか１つを実行してもよい。また、いずれも実行しなくてもよい。
【００６７】
まず、回転体判定部４２１について説明する。回転体判定は、組立の実業務において「回転体の形状を持つモデルの組付方向は、回転軸方向から組み付ける割合が高い」ことからスコアＢｐの加点条件として実行される。もし、選択モデルが検証方向から見たときに回転体であると判定された場合は、検証方向は、回転軸方向となる。以下、回転体の判定内容について説明する。
【００６８】
回転体判定部４２１は、選択モデルを検証方向から投影した投影図の外接矩形の形状と、投影図を所定角度回転させた場合の回転後の投影図の外接矩形の形状と、に基づいて、選択モデルが回転体であるか否かを判定する。
【００６９】
具体的には、例えば、回転体判定部４２１は、検証方向の座標系で選択モデルのバウンディングボックスを計算する。検証方向の座標系とは、検証方向が＋Ｘｌ〜−Ｚｌの場合は選択モデルのローカル座標系であり、検証方向が＋Ｘｇ〜−Ｚｇの場合は選択モデルのグローバル座標系である。また、バウンディングボックスは選択モデルの外接直方体である。
【００７０】
回転体判定部４２１は、検証方向に直交する２軸からなる投影面に、バウンディングボックスを投影することで、投影図を生成する。例えば、検証方向が＋Ｘｌの場合、回転体判定部４２１は、＋Ｘｌに直交する＋Ｙ，＋Ｚからなる投影面にバウンディングボックスを投影する。ここで、回転体判定部４２１は、バウンディングボックスの投影図の縦の長さをＶ、横の長さをＨとし、縦横比Ｖ／Ｈを求める。
【００７１】
回転体判定部４２１は、バウンディングボックスとともに投影された選択モデルの投影図を、当該投影図の中心を回転中心にして、０度、１５度、３０度、４５度半時計回り（時計回りでもよい）に回転させた回転後の選択モデルの投影図を生成する。ここでは、１５度刻みで３回回転させているが、作成者は、刻み角度や回転回数を任意に設定することができる。
【００７２】
選択モデルの投影図が回転させられると、選択モデルを外接するバウンディングボックスの投影図の縦Ｖおよび横Ｈも変化する。回転による縦横比Ｖ／Ｈの変化が許容範囲である場合、選択モデルは回転体であると判定される。
【００７３】
図１１は、回転体の判定例を示す説明図である。図１１の（Ａ）は、選択モデルの投影図が正方形の例であり、図１１の（Ｂ）は、選択モデルの投影図が５角形の例であり、図１１の（Ｃ）は、選択モデルの投影図が正８角形の例である。
【００７４】
図１１の（Ａ）および（Ｃ）は、それぞれの回転角度において縦横比Ｖ／Ｈが１．０であるため、選択モデルは回転体と判定される。これに対し、図１１の（Ｂ）は、回転角度が１５度、３０度、４５度のときに、許容範囲（１．０±０．０５）の範囲外になるため、選択モデルは回転体でないと判定される。なお、本例では、回転角度が１５度、３０度、４５度のいずれも許容範囲外の場合、選択モデルは回転体でないと判定したが、少なくともいずれか１つでも許容範囲外の場合に選択モデルは回転体でないと判定してもよい。
【００７５】
回転体であると判定された場合は、算出部４１２は、選択モデルの加点スコアＡＰ１をスコアＢｐに加算することになる。
【００７６】
つぎに、板状体判定部４２２について説明する。板状体判定は、組立の実業務において「組付時の支持（アームで掴む）や、位置合わせの観点からも、板面の法線方向が望ましい」ため、実行される。以下、板状体の判定内容について説明する。
【００７７】
板状体判定部４２２は、選択モデルの検証方向の長さと、複数の方向のうち検証方向およびその逆方向以外の方向の長さと、に基づいて、選択モデルが検証方向に組み付けられる板状体であるか否かを判定する。具体的には、例えば、板状体判定部４２２は、検証方向の座標系での選択モデルのバウンディングボックスを計算する。
【００７８】
そして、板状体判定部４２２は、検証方向の座標系で定義される３軸方向におけるバウンディングボックスの長さを求める。そして、板状体判定部４２２は、検証方向以外の２軸の方向の長さが、検証方向の長さの所定倍（例えば、２０倍）であるか否かを判定する。所定倍以上であれば、選択モデルは板状体と判定される。所定倍は、例えば、作成者によって定められる。所定倍については、予めディスク３０５などの記憶装置に記憶されてあってもよいし、キーボード１０２などの入力装置よって入力されてもよい。
【００７９】
図１２は、板状体の判定例を示す説明図である。図１２において、Ｂは選択モデルのバウンディングボックスであり、Ｄ（ｊ）は検証方向である。また、Ｌ１〜Ｌ３は、検証方向Ｄ（ｊ）の座標系での軸方向でのバウンディングボックスＢの長さである。Ｌ１は、検証方向Ｄ（ｊ）の長さである。この場合、Ｌ２、Ｌ３がＬ２の所定倍以上の長さであれば、バウンディングボックスＢの算出元の選択モデルは板状体と判定される。板状体であると判定された場合は、算出部４１２は、加点スコアＡＰ２をスコアＢｐに加算することになる。
【００８０】
つぎに、決定部４１３は、算出部４１２によって算出されたスコア群の中で最大スコアとなる投影図の検証方向の逆方向を、アセンブリデータ４３３から選択モデルを分解する分解方向に決定し、当該分解方向を選択モデルに関連付けて記憶部４０１に格納する。具体的には、例えば、決定部４１３は、ローカル座標系の６方向およびグローバル座標系の６方向の計１２方向から得られたスコアＢｐのうち、最大スコアとなる投影図を投影した検証方向の逆方向を、分解方向に決定する。決定部４１３は、決定された分解方向を、選択モデルの部品データ４３２またはアセンブリデータ４３３の最優先分解方向のフィールドに保存する。また、決定部４１３は、最大スコアとなる投影図を投影した検証方向を、組付方向に決定してもよい。
【００８１】
つぎに、移動量設定部４０４は、選択モデルの分解方向の長さに基づいて、選択モデルを分解方向に移動させる移動量を設定し、選択モデルに関連付けて記憶装置に格納する。具体的には、例えば、移動量設定部４０４は、選択モデルの分解方向の座標系で選択モデルのバウンディングボックスのパラメタ群（高さ、幅、奥行き）を計算する。そして、移動量設定部４０４は、パラメタ群のうち選択モデルの分解方向と同一方向となるパラメタの値を所定倍（例えば３倍）して、移動量に設定する。所定倍は、例えば、作成者によって定められる。所定倍については、予めディスク３０５などの記憶装置に記憶されてあってもよいし、キーボード１０２などの入力装置よって入力されてもよい。
【００８２】
図１３は、移動量の設定例を示す説明図である。図１３において、Ｍ０が組付先のモデルであり、Ｍ１が選択モデルである。図１３では、選択モデルＭ１のバウンディングボックスにおける分解方向の長さを２００とする。この場合、例えば、２００×３＝６００が移動量となる。このように、選択モデルの分解方向と同一方向となるパラメタの値を所定倍して移動量を設定することで、アセンブリから選択モデルが十分離されるため、分解されたことを容易に視認することができる。
【００８３】
表示部４０５は、分解画像ｉｍｇの表示の際に、アセンブリと、選択された部品との間の距離を部品の大きさに応じた距離に設定する。具体的には、表示部４０５は、アセンブリと選択された部品との間の距離を移動量設定部４０４によって設定された距離とした分解画像ｉｍｇを生成してディスプレイ１０１に表示する。
【００８４】
また、手順書生成部４０６は、作成者の選択操作によって選択された順に分解画像ｉｍｇを並べた分解手順書２０１、選択された順と逆順に分解画像ｉｍｇを並べた組立手順書２０１を生成してもよい。具体的に、手順書生成部４０６は、作成者の選択操作によって選択された順に部品に対応するノードを生成してノードをリスト構造である製造フローデータ４３４の先頭に格納する。
【００８５】
図１４は、製造フローデータ４３４例を示す説明図である。製造フローデータ４３４は、ノードＩｎｄｅｘ、名称／作業内容、種別フラグ、フロー記号、分解画像ｉｍｇ名、次ノードＩｎｄｅｘという６つのフィールドを含む。ノードＩｎｄｅｘのフィールドには、ノード１４０１の順序が格納される。ここでは、例えば、ノードＩｎｄｅｘの値が大きいほど、分解順序が先であることを示し、ノードＩｎｄｅｘの値が小さいほど、組立順序が先であることを示す。名称／作業内容のフィールドには、モデルを一意に特定可能な識別情報として、部品の名称またはアセンブリの名称が格納される。また、名称／作業内容のフィールドには、作業内容を示す情報が格納される。例えば、３次元ＣＡＤ表示処理によって製造フローデータ４３４が生成された後に、後述する製造フロー画面をディスプレイ１０１に表示させ、各部品またはアセンブリに対する作業内容が作成者の操作によって格納されてもよい。種別フラグのフィールドには、対象のノード１４０１の種別が格納される。具体的に、種別フラグのフィールドには、部品を示す「部品」識別子、アセンブリを示す「アセンブリ」識別子、作業内容を示す「作業内容」識別子のいずれかが格納される。ここで、種別フラグが「部品」であるノード１４０１は、部品を示すノード１４０１とも称し、種別フラグが「アセンブリ」であるノード１４０１は、アセンブリを示すノード１４０１とも称し、種別フラグが「作業内容」であるノード１４０１は、作業内容を示すノード１４０１とも称する。フロー記号フィールドには、対象のノード１４０１の種別を識別するアイコンが格納される。分解画像ｉｍｇ名は、生成された分解画像ｉｍｇを一意に特定可能な名称が格納される。次ノードＩｎｄｅｘフィールドには、次のノード１４０１のノードＩｎｄｅｘフィールドの値が格納される。また、製造フローデータ４３４の最後のノード１４０１の次ノードＩｎｄｅｘフィールドには、最終ノード１４０１であることを示す“ｎｕｌｌ”が格納される。
【００８６】
例えば、ノード１４０１−１は、１番目のノード１４０１であり、名称が“ｐ１０”となる部品があり、次のノード１４０１−２が２番目のノード１４０１となることを示す。また、ノード１４０１−１７は、１７番目のノード１４０１であり、ノード１４０１−１７の次ノードＩｎｄｅｘのフィールドには、“ｎｕｌｌ”が格納されてあるため、分解順では、アセンブリＡ０が先頭となる。
【００８７】
図１５は、製造フロー画面例を示す説明図である。図１５では、組立順序と分解順序とを表す製造フロー画面１５００の一例を示す。図１５にて、製造フロー画面１５００は、製造フローデータ４３４を用いて、製品の組立順序が示す製造フローを画面に表示させた例である。製造フロー画面１５００は、Ｉｎｄｅｘ、フロー、名称という３つの表示領域に分割される。Ｉｎｄｅｘのフィールドは、ノードＩｎｄｅｘフィールドの値を示す。名称のフィールドは、部品の名称、アセンブリの名称、または作業内容を示す。図１５に示す製造フロー画面１５００は、製品の組立順または製品の分解順を示す。Ｉｎｄｅｘの値が小さい順は製品の組立順であり、Ｉｎｄｅｘの値が大きい順は製品の分解順である。
【００８８】
つぎに、フローフィールドに表示されるアイコンについて説明する。下向き三角形で表されるアイコンは、部品を示す。下向き２重の三角形で表されるアイコンは、アセンブリを示す。丸記号で表されるアイコンは、作業内容を示す。
【００８９】
また、表示部４０５は、製造フローデータ４３４を記憶部４０１から読み出し、製造フローデータ４３４に記憶されたノード１４０１のノードＩｎｄｅｘの値が小さい順に、ノード１４０１の分解画像ｉｍｇ名に基づいて分解画像ｉｍｇを並べて表示することにより、組立手順書２０１を表示することができる。また、表示部４０５は、製造フローデータ４３４を記憶部４０１から読み出し、製造フローデータ４３４に記憶されたノード１４０１のノードＩｎｄｅｘの値が大きい順に、ノード１４０１の分解画像ｉｍｇ名に基づいて分解画像ｉｍｇを並べて表示することにより、分解手順書２０１を表示することができる。分解手順書２０１や組立手順書２０１は図２に示した通りである。
【００９０】
（３次元ＣＡＤ表示装置１００による３次元ＣＡＤ表示処理手順例）
図１６は、３次元ＣＡＤ表示装置１００による３次元ＣＡＤ表示処理手順例を示すフローチャートである。まず、３次元ＣＡＤ表示装置１００は、対象アセンブリ５０１のアセンブリデータ４３３と部品データ４３２とアセンブリツリー４３１を取得する（ステップＳ１６０１）。つぎに、３次元ＣＡＤ表示装置１００は、対象アセンブリをディスプレイ１０１に表示する（ステップＳ１６０２）。３次元ＣＡＤ表示装置１００は、すべてのモデルが選択済みであるか否かを判断する（ステップＳ１６０３）。すべてのモデルが選択済みでないと判断された場合（ステップＳ１６０３：Ｎｏ）、３次元ＣＡＤ表示装置１００は、モデルが選択されたか否かを判断する（ステップＳ１６０４）。ここでは、マウス１０３などによる作成者の選択操作によってモデルが選択される。
【００９１】
モデルが選択されていないと判断された場合（ステップＳ１６０４：Ｎｏ）、３次元ＣＡＤ表示装置１００は、ステップＳ１６０４へ戻る。モデルが選択されたと判断された場合（ステップＳ１６０４：Ｙｅｓ）、３次元ＣＡＤ表示装置１００は、分解方向検出処理を行う（ステップＳ１６０５）。つぎに、３次元ＣＡＤ表示装置１００は、移動量設定処理を行う（ステップＳ１６０６）。そして、３次元ＣＡＤ表示装置１００は、最優先分解方向と移動量に基づいて、対象アセンブリ５０１から選択モデルを取り出した分解画像ｉｍｇを生成する（ステップＳ１６０７）。
【００９２】
つぎに、３次元ＣＡＤ表示装置１００は、生成した分解画像ｉｍｇを表示する（ステップＳ１６０８）。３次元ＣＡＤ表示装置１００は、選択モデルに対応するノード１４０１を生成する（ステップＳ１６０９）。そして、３次元ＣＡＤ表示装置１００は、生成したノード１４０１を製造フローデータ４３４に追加し（ステップＳ１６１０）、ステップＳ１６０３へ戻る。そして、ステップＳ１６０３へ戻ると、ここでは、対象アセンブリ５０１から選択モデルが取り出された後のアセンブリがあらたな対象アセンブリ５０１となる。すべてのモデルが選択済みであると判断された場合（ステップＳ１６０３：Ｙｅｓ）、３次元ＣＡＤ表示装置１００は、製造フローデータ４３４に基づいて分解手順書２０１または組立手順書２０１を表示し（ステップＳ１６１１）、一連の処理を終了する。
【００９３】
図１７は、図１６に示した分解方向検出処理の詳細な説明を示すフローチャートである。３次元ＣＡＤ表示装置１００は、総スコアと加点用のスコアを初期化する（ステップＳ１７０１）。ここでは、総スコアはＰｔであり、加点用のスコアがＡＰ１、ＡＰ２である。そして、３次元ＣＡＤ表示装置１００は、Ｐｔ，ＡＰ１，ＡＰ２＝０とする。つぎに、３次元ＣＡＤ表示装置１００は、選択モデルのローカル座標系およびグローバル座標系を取得する（ステップＳ１７０２）。そして、３次元ＣＡＤ表示装置１００は、検証方向を決定する（ステップＳ１７０３）。ここでは、３次元ＣＡＤ表示装置１００は、ローカル座標系およびグローバル座標系が一致しているか否かを判断し、一致している場合、ローカル座標系の６方向を検証方向に決定する。一方、３次元ＣＡＤ表示装置１００は、一致していない場合、ローカル座標系およびグローバル座標系の１２軸を検証方向に決定する。
【００９４】
そして、３次元ＣＡＤ表示装置１００は、ｊ＝１とし（ステップＳ１７０４）。３次元ＣＡＤ表示装置１００は、検証方向Ｄ（ｊ）を設定する（ステップＳ１７０５）。つぎに、３次元ＣＡＤ表示装置１００は、投影シルエット処理を行う（ステップＳ１７０６）。そして、３次元ＣＡＤ表示装置１００は、スコアがしきい値以上か否かを判断する（ステップＳ１７０７）。ここでは、例えば、３次元ＣＡＤ表示装置１００は、総スコア（Ｐｔ）がしきい値以上であるか否かを判断する。しきい値については作成者によって決定された経験値などである。しきい値は、例えば、予めディスク３０５などの記憶装置に記憶されてある。ここでは、例えば、しきい値を５０点とする。総スコアがしきい値未満であると判断された場合（ステップＳ１７０７：Ｎｏ）、３次元ＣＡＤ表示装置１００は、ステップＳ１７１１へ移行する。このように、投影シルエット処理によって得られた総スコア（Ｐｔ）が５０点未満であれば、検証方向Ｄ（ｊ）において分解できない可能性が大きいとして、３次元ＣＡＤ表示装置１００は、回転体判定処理や板状体判定処理などの加点処理を行わない。これにより、最優先分解方向の決定処理時間の短縮化を図ることができる。
【００９５】
総スコアがしきい値以上であると判断された場合（ステップＳ１７０７：Ｙｅｓ）、３次元ＣＡＤ表示装置１００は、回転体判定処理を行う（ステップＳ１７０８）。つぎに、３次元ＣＡＤ表示装置１００は、板状体判定処理を行う（ステップＳ１７０９）。３次元ＣＡＤ表示装置１００は、総スコアに各判定処理のスコアを加点する（ステップＳ１７１０）。そして、３次元ＣＡＤ表示装置１００は、総スコアを保存する（ステップＳ１７１１）。ここでは、３次元ＣＡＤ表示装置１００は、総スコアを、部品データ４３２またはアセンブリデータ４３３のうち、選択モデルに対応するレコードの６軸スコアのフィールドのうち、検証方向Ｄ（ｊ）に対応する配列のフィールドに設定する。また、このように、３次元ＣＡＤ表示装置１００は、分解方向を特定するにあたり、複数の方式や条件を設定してスコアを算出することにより、ある方式による判定での後検出防止や様々な角度からの検証によって総合的にシステムが判断できるとうになる。したがって、より高精度な分解方向が検出できるようになる。
【００９６】
つぎに、３次元ＣＡＤ表示装置１００は、ｊ＞Ｍか否かを判断する（ステップＳ１７１２）。ｊ＞Ｍでないと判断された場合（ステップＳ１７１２：Ｎｏ）、３次元ＣＡＤ表示装置１００は、ｊ＝ｊ＋１とする（ステップＳ１７１３）。つぎに、３次元ＣＡＤ表示装置１００は、総スコアを初期化し（ステップＳ１７１４）、ステップＳ１７０５へ戻る。ｊ＞Ｍであると判断された場合（ステップＳ１７１２：Ｙｅｓ）、３次元ＣＡＤ表示装置１００は、最優先分解方向を決定し、保存し（ステップＳ１７１５）、一連の処理を終了する。ここでは、３次元ＣＡＤ表示装置１００は、決定した最優先分解方向に対応する値を、アセンブリデータ４３３や部品データ４３２のうちの選択モデルに対応するレコードの最優先分解方向のフィールドに設定する。
【００９７】
図１８は、図１７に示した投影シルエット処理の詳細な説明を示すフローチャートである。３次元ＣＡＤ表示装置１００は、描画作業領域を設定する（ステップＳ１８０１）。ここでは、描画作業領域の背景色を黒に設定する。一例として黒を挙げているが、特に限定しない。つぎに、３次元ＣＡＤ表示装置１００は、対象アセンブリ５０１のうち選択モデルのみ表示する（ステップＳ１８０２）。ここでは、３次元ＣＡＤ表示装置１００は、選択モデルを白色に設定して表示する。一例として白色を挙げているが、描画作業領域の背景色と異なる色であって、後述する投影箇所がカウント可能な色であればよい。
【００９８】
つぎに、３次元ＣＡＤ表示装置１００は、検証方向Ｄ（ｊ）を視点方向とし、描画作業領域に選択モデルが収まる倍率で投影する（ステップＳ１８０３）。３次元ＣＡＤ表示装置１００は、投影箇所のビット数ＷＢ１をカウントする（ステップＳ１８０４）。３次元ＣＡＤ表示装置１００は、対象アセンブリ５０１を表示する（ステップＳ１８０５）。ここでは、３次元ＣＡＤ表示装置１００は、対象アセンブリ５０１のうち、選択モデルのみ白色として、他のモデルを描画作業領域と同様に黒に設定して表示する。
【００９９】
つぎに、３次元ＣＡＤ表示装置１００は、検証方向Ｄ（ｊ）を視点方向とし、描画作業領域に同倍率で投影する（ステップＳ１８０６）。そして、３次元ＣＡＤ表示装置１００は、投影箇所のビット数ＷＢ２をカウントする（ステップＳ１８０７）。つづいて、３次元ＣＡＤ表示装置１００は、スコアを算出する（Ｂｐ＝（ＷＢ２／ＷＢ１）×１００）（ステップＳ１８０８）。そして、３次元ＣＡＤ表示装置１００は、総スコア＝Ｂｐとして保存し（ステップＳ１８０９）、一連の処理を終了する。
【０１００】
図１９は、図１７に示した回転体判定処理の詳細な説明を示すフローチャートである。３次元ＣＡＤ表示装置１００は、加点用スコアを初期化する（ステップＳ１９０１）。例えば、３次元ＣＡＤ表示装置１００は、ＡＰ１＝０とする。３次元ＣＡＤ表示装置１００は、検証方向Ｄ（ｊ）の座標系での選択モデルのバウンディングボックスを生成する（ステップＳ１９０２）。つぎに、３次元ＣＡＤ表示装置１００は、検証方向Ｄ（ｊ）を除く２軸からなる投影面にバウンディングボックスを投影する（ステップＳ１９０３）。３次元ＣＡＤ表示装置１００は、投影図を０，１５，３０，４５度回転させた４つの投影図の縦横比を求める（ステップＳ１９０４）。
【０１０１】
そして、３次元ＣＡＤ表示装置１００は、検証方向Ｄ（ｊ）からみて回転体か否かを判断する（ステップＳ１９０５）。ここでは、縦横比が１．０に近いほど、回転体である可能性が高い。そこで、３次元ＣＡＤ表示装置１００は、４つの投影図がすべて、１．０−高さ／幅＜０．０５を満たすか否かを判断する。満たす場合、３次元ＣＡＤ表示装置１００は、回転体であると判断し、満たさない場合、３次元ＣＡＤ表示装置１００は、回転体でないと判断する。
【０１０２】
回転体であると判断された場合（ステップＳ１９０５：Ｙｅｓ）、３次元ＣＡＤ表示装置１００は、加点用のスコアを更新し（ステップＳ１９０６）、一連の処理を終了する。例えば、３次元ＣＡＤ表示装置１００は、ＡＰ１＝１０とする。回転体でないと判断された場合（ステップＳ１９０５：Ｎｏ）、３次元ＣＡＤ表示装置１００は、一連の処理を終了する。
【０１０３】
図２０は、図１７に示した板状体判定処理の詳細な説明を示すフローチャートである。まず、３次元ＣＡＤ表示装置１００は、加点用のスコアを初期化する（ステップＳ２００１）。３次元ＣＡＤ表示装置１００は、検証方向Ｄ（ｊ）の座標系での選択モデルのバウンディングボックスを生成する（ステップＳ２００２）。３次元ＣＡＤ表示装置１００は、板状体か否かを判断する（ステップＳ２００３）。例えば、奥行きの２０倍以上の縦／横幅であれば、３次元ＣＡＤ表示装置１００は、板状体であると判断し、３次元ＣＡＤ表示装置１００は、奥行きの２０倍以上の縦／横幅でなければ、板状体でないと判断する。板状体であると判断された場合（ステップＳ２００３：Ｙｅｓ）、３次元ＣＡＤ表示装置１００は、加点用のスコアを更新し（ステップＳ２００４）、一連の処理を終了する。板状体でないと判断された場合（ステップＳ２００３：Ｎｏ）、３次元ＣＡＤ表示装置１００は、一連の処理を終了する。
【０１０４】
図２１は、図１６に示した移動量設定処理の詳細な説明を示すフローチャートである。３次元ＣＡＤ表示装置１００は、選択モデルの最優先分解方向を取得する（ステップＳ２１０１）。ここでは、３次元ＣＡＤ表示装置１００は、部品データ４３２またはアセンブリモデルのうち、選択モデルに対応するレコードの最優先分解方向のフィールドに設定された値が示す最優先分解方向を取得する。
【０１０５】
３次元ＣＡＤ表示装置１００は、検証方向Ｄ（ｊ）の座標系での選択モデルのバウンディングボックスを生成する（ステップＳ２１０２）。つぎに、３次元ＣＡＤ表示装置１００は、バウンディングボックスのパラメタ群を算出する（ステップＳ２１０３）。ここでのパラメタ群とは、高さ、幅、奥行きである。そして、３次元ＣＡＤ表示装置１００は、パラメタ群のうち、分解方向に一致する方向のパラメタ値を所定倍して、移動量として設定し（ステップＳ２１０４）、一連の処理を終了する。具体的に、３次元ＣＡＤ表示装置１００は、部品データ４３２またはアセンブリデータ４３３のうち、選択モデルに対応するレコードの移動量のフィールドに設定される。また、所定倍とは、例えば、作成者によって定められた値である。または、所定倍とは、画面のうち、対象アセンブリ５０１が表示される箇所以外の箇所に応じて決定されてもよい。また、所定倍については、予めディスク３０５などの記憶装置に記憶されてあってもよいし、キーボード１０２などによって作成者の操作によって入力されてもよい。
【０１０６】
以上説明したように、３次元ＣＡＤ表示装置１００は、アセンブリの部品が選択されると、該アセンブリから該部品を取り出す方向を投影図群で特定し、該部品を取り出したアセンブリと該アセンブリの該方向に配置した該部品とを表示する。これにより、分解図の作成が支援可能となる。また、作成者の操作量を低減でき、分解図の作成時間の短縮化を図ることができる。
【０１０７】
また、３次元ＣＡＤ表示装置１００は、分解画像の表示の際に、アセンブリと、取り出した部品との間の距離を部品の大きさに応じた距離に設定する。これにより、部品が取り出された後のアセンブリと、取り出した部品と、が十分に離される。そのため、分解されたことを容易に視認することができる。
【０１０８】
また、３次元ＣＡＤ表示装置１００は、選択された部品単体を背景色と異なる色により複数の方向から投影して第一の投影図群を生成し、複数の部品のうちの選択された部品以外を背景色と同色にして複数の方向から投影して第二の投影図群を生成する。これにより、精度のよい分解方向を特定することが可能となる。
【０１０９】
なお、本実施の形態で説明した３次元ＣＡＤ表示方法は、予め用意された３次元ＣＡＤ表示プログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本３次元ＣＡＤ表示プログラムは、磁気ディスク、光ディスク、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、３次元ＣＡＤ表示プログラムは、インターネット等のネットワークＮＥＴを介して配布してもよい。
【０１１０】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１１１】
（付記１）アセンブリに含まれる複数の部品のうちの１つの部品が選択されると、
選択された前記部品単体を複数の方向に投影した第一の投影図群と、前記アセンブリを複数の方向に投影した第二の投影図群との間で、投影方向が同一であって、前記部品の形状又は面積の類似度が最も高い投影方向を特定し、
前記アセンブリから前記部品を取り出した分解画像を表示する際に、特定した前記投影方向とは逆の方向に、取り出した前記部品を配置する、
処理をコンピュータに実行させる３次元ＣＡＤ表示プログラム。
【０１１２】
（付記２）前記分解画像の表示の際に、前記アセンブリと、取り出した前記部品との間の距離を前記部品の大きさに応じた距離に設定する、
処理を前記コンピュータに実行させる付記１記載の３次元ＣＡＤ表示プログラム。
【０１１３】
（付記３）前記特定する処理では、第一の領域に対し、選択された前記部品を前記第一の領域の背景色と異なる色で前記複数の方向から投影することにより前記第一の投影図群を生成するとともに、前記第一の領域と同サイズの第二の領域に対し、前記部品を前記背景色と異なる色にし、前記複数の部品のうちの前記部品以外を前記背景色と同色にして前記複数の方向から投影することにより前記第二の投影図群を生成し、生成した前記第一の投影図群と前記第二の投影図群との間で、前記投影方向が同一であって、前記部品の形状又は面積の類似度が最も高い投影方向を特定することを特徴とする付記１または２記載の３次元ＣＡＤ表示プログラム。
【０１１４】
（付記４）アセンブリに含まれる複数の部品のうちの１つの部品が選択されると、
選択された前記部品単体を複数の方向に投影した第一の投影図群と、前記アセンブリを複数の方向に投影した第二の投影図群との間で、投影方向が同一であって、前記部品の形状又は面積の類似度が最も高い投影方向を特定し、
前記アセンブリから前記部品を取り出した分解画像を表示する際に、特定した前記投影方向とは逆の方向に、取り出した前記部品を配置する、
処理をコンピュータが実行する３次元ＣＡＤ表示方法。
【０１１５】
（付記５）アセンブリに含まれる複数の部品のうちの１つの部品が選択されると、
選択された前記部品単体を複数の方向に投影した第一の投影図群と、前記アセンブリを複数の方向に投影した第二の投影図群との間で、投影方向が同一であって、前記部品の形状又は面積の類似度が最も高い投影方向を特定し、前記アセンブリから前記部品を取り出した分解画像を表示する際に、特定した前記投影方向とは逆の方向に、取り出した前記部品を配置する制御部、
を有する３次元ＣＡＤ表示装置。
【０１１６】
（付記６）アセンブリに含まれる複数の部品のうちの１つの部品が選択されると、
選択された前記部品単体を複数の方向に投影した第一の投影図群と、前記アセンブリを複数の方向に投影した第二の投影図群との間で、投影方向が同一であって、前記部品の形状又は面積の類似度が最も高い投影方向を特定し、
前記アセンブリから前記部品を取り出した分解画像を表示する際に、特定した前記投影方向とは逆の方向に、取り出した前記部品を配置する、
処理をコンピュータに実行させる３次元ＣＡＤ表示プログラムを記録したことを特徴とする記録媒体。
【符号の説明】
【０１１７】
１００  ３次元ＣＡＤ表示装置
１０１  ディスプレイ
１０３  マウス
２００  分解図
２０１  分解手順書，組立手順書
３０１  ＣＰＵ
４０１  記憶部
４０２  受付部
４０３  特定部
４０４  移動量設定部
４０５  表示部
４０６  手順書生成部
ｉｍｇ  分解画像
＋Ｘｌ〜−Ｚｌ  方向
【図１】
2015088034.tif 000003
【図２】
2015088034.tif 000004
【図３】
2015088034.tif 000005
【図４】
2015088034.tif 000006
【図５】
2015088034.tif 000007
【図６】
2015088034.tif 000008
【図７】
2015088034.tif 000009
【図８】
2015088034.tif 000010
【図９】
2015088034.tif 000011
【図１０】
2015088034.tif 000012
【図１１】
2015088034.tif 000013
【図１２】
2015088034.tif 000014
【図１３】
2015088034.tif 000015
【図１４】
2015088034.tif 000016
【図１５】
2015088034.tif 000017
【図１６】
2015088034.tif 000018
【図１７】
2015088034.tif 000019
【図１８】
2015088034.tif 000020
【図１９】
2015088034.tif 000021
【図２０】
2015088034.tif 000022
【図２１】
2015088034.tif 000023