(57)【特許請求の範囲】
【請求項１】
３次元ＣＡＤデータにおけるデータ構成を階層化して表示する一の表示部と、当該３次元ＣＡＤデータの形状を３次元表示する他の表示部とを備える表示制御装置において、
前記３次元ＣＡＤデータのうち、所定の処理結果に基づいて表示される当該３次元ＣＡＤデータを選択する表示データ選択手段と、
前記表示データ選択手段が選択した表示データのうち親子関係を有する構成要素について、下位階層の構成要素を上位階層の構成要素と統合し、前記一の表示部に同一階層方向に前記親子関係の順に並べて縦列で表示する表示制御手段とを備える表示制御装置。
【請求項２】
請求項１に記載の表示制御装置において、
前記３次元ＣＡＤデータを所定の単位でユニットとしてグループ化するユニット識別手段を備え、
前記表示制御手段が、前記表示データ及び当該表示データが属するユニット内で当該表示データの上位データを前記一の表示部に表示する表示制御装置。
【請求項３】
請求項１又は２に記載の表示制御装置において、
前記所定の処理結果が、利用者によりデータが選択された結果、干渉チェックを行った結果、隙間チェックを行った結果、及び、機構シミュレーションにおける関節定義のチェックを行った結果のいずれかの処理結果である表示制御装置。
【請求項４】
請求項２又は３に記載の表示制御装置において、
前記表示制御手段が、当該表示制御手段にて表示される前記ユニット内の最上位データの配下に構成される前記３次元ＣＡＤデータにおけるデータ相互間の関係情報を、当該最上位データが保持する関係情報に基づいて前記他の表示部に表示する表示制御装置。
【請求項５】
コンピュータに３次元ＣＡＤデータにおけるデータ構成を階層化して表示する表示ステップと、当該３次元ＣＡＤデータの形状を３次元表示する表示ステップとを実行させる表示制御方法において、
前記３次元ＣＡＤデータのうち、所定の処理結果に基づいて表示される当該３次元ＣＡＤデータを選択する表示データ選択ステップと、
前記表示データ選択ステップで選択された表示データのうち親子関係を有する構成要素について、下位階層の構成要素を上位階層の構成要素と統合し、前記一の表示部に同一階層方向に前記親子関係の順に並べて縦列で表示する表示制御ステップとを含む表示制御方法。
【請求項６】
３次元ＣＡＤデータにおけるデータ構成を階層化して表示する表示手順と、当該３次元ＣＡＤデータの形状を３次元表示する表示手順とをコンピュータに実行させるための表示制御プログラムにおいて、
前記３次元ＣＡＤデータのうち、所定の処理結果に基づいて表示される当該３次元ＣＡＤデータを選択する表示データ選択手順と、
前記表示データ選択手順で選択された表示データのうち親子関係を有する構成要素について、下位階層の構成要素を上位階層の構成要素と統合し、前記一の表示部に同一階層方向に前記親子関係の順に並べて縦列で表示する表示制御手順とをコンピュータに実行させるための表示制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元ＣＡＤデータを表示する表示制御装置に関し、特に、３次元ＣＡＤデータを階層的に表示する表示制御装置等に関する。
【背景技術】
【０００２】
製造業における一般的な商品設計方法は、まず全体機能を設計した後に、意味のある部品の集合（ユニット）毎に詳細設計を行うというトップダウン設計方法が取られている。このため、３次元ＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）では、データ構成を階層的に表現している。こうすることで、ユニット毎に作成された大規模なモデルの管理を容易にすることが出来る。３次元ＣＡＤでは、データ構成を表示する方法として木構造を用いることが多く、その表示にはデータの管理において重要な役割がある。
【０００３】
また、前述の理由により、製品をユニット単位でアセンブリ（部品を組み合わせたもの）を構成して管理する場合が多く、特に大規模なモデルの場合、木構造が深くなってしまうことが多々ある。全ての木構造を表示するためには、画面上の表示領域を大きくすれば良いのだが、３次元ＣＡＤの操作においては、ＣＡＤデータの形状を示す３次元ビュー画面がメインの操作画面であるため、補助画面である木構造用の表示画面（以下、ツリーウインドウとする）の領域は出来るだけ小さくすることが望まれる。
【０００４】
このため、階層が深い大規模なモデルでは、ツリーウインドウを縦または横にスクロールさせ、目的となる３次元ＣＡＤデータを表示させるが、以下のような問題がある。
（１）子階層方向が深い場合、最下層のＣＡＤデータがどのユニットに属するかを確認するためにはツリーウインドウを横スクロールする必要がある。
（２）操作者の集中力が横スクロールの操作により遮断される。
【０００５】
上記の問題を解決するツールとして、マウスホイールの機能を拡張して、横スクロールに対応させる方法や、対象となるＣＡＤデータ以外を非表示にしてツリーウインドウを簡易表示する方法がある。しかし、マウスホイールによる横スクロールの操作は慣れるのに多少の時間要する。また、対象となるＣＡＤデータ以外を非表示にする場合は、表示する部品の数を削減して縦方向に簡略化した表示を行うことは可能だが、横方向（階層が深い方向、親子関係が深い方向）の表示については簡略化されないため、子方向に階層が深いモデルではやはり横スクロールが発生してしまう。このことから、階層が深いモデルでは、ツリーウインドウに対して、ほぼ必然的に横スクロールを行う操作が発生してしまい、設計者の思考を止めてしまう原因となる可能性がある。
【０００６】
上記技術分野に属する背景技術として、特許文献１ないし５に示す技術がある。特許文献１に示す技術は、層になったデータ、例えば、階層関係を有するデータを表示するシステム及び方法であり、データ項目を字下げすることなく個々のデータ項目に対応するレベルを表示するフラット・ツリー・ビュー・コントロールが提供される。データ階層における個々のデータ項目のレベルを表示するため、層バー又はマーカが使用される。更に、階層内の項目のレベルを表示するため、カラー又はグレイスケール・シェーディングを、各々のデータ項目へ適用することができる。同じレベルの中の項目は、同じカラー又はシェーディングを使用する。項目がユーザによって選択されたとき、その項目は、その下にある層が既に表示画面の上に現れているかどうかに依存して、エクスパンド又はコラプスされる。データ項目のレベルを更に表示するため、追加のレベル・インディケータ値を使用することができる。更に、個々のデータ項目に対応する具体的な属性を表示するため、データ項目をハイライトすることができる。
【０００７】
特許文献２に示す技術は、表示されているノードの中で、ユーザが選択したノードの上位ノード、および下位ノードを除いたノードの下位ノードを、ユーザの１回の操作ですべて非表示にする手段を設ける技術である。
【０００８】
特許文献３に示す技術は、階層が非常に深い階層構造のデータや、同一階層に非常に多くのデータがある階層構造のデータを省スペースで表現可能なツリービューのＧＵＩに関する技術であり、表示画面は、画面全体の左側は階層構造データのツリービューとノードを表示するツリービュー表示部と、右側のツリー中の現在選択中のノード直下のオブジェクトリストを表示するオブジェクト表示部とを備えて構成される。そしてツリービュー表示部には、階層構造を浅い方向にスクロールするスクロールボタンと、階層構造を深い方向にスクロールするスクロールボタンが備えられているものである。
【０００９】
特許文献４に示す技術は、データを階層構造で表示する場合、非表示ノードを１回の操作で表示させる階層構造表示装置に関する技術であり、データをノードによる階層構造として記憶するツリーデータ記憶部と、前記ツリーデータ記憶部に記憶されたノードを指定するノード指定部と、非表示のノードを１回の操作で表示するか否かを指定するモード指定部と、前記モード指定部で非表示のノードを１回の操作で表示すると指定されているときに、前記ノード指定部で指定されたノードを表示可能なように、前記ツリーデータ記憶部の各ノードの表示状態を変換するノード表示状態変換部と、前記ツリーデータ記憶部の各ノードの表示状態を参照して、データの階層構造を出力する出力部とを備えるものである。
【００１０】
特許文献５に示す技術は、部品構成情報を表示する処理時間を短縮する表示方法に関する技術であり、端末上で、製品の部品番号／展開レベル／コマンドの入力画面より製品の部品番号、部品構成情報の展開を行う展開レベル、表示レベル、及び既に展開した部品構成情報が画面上に表示されていればそれらの部品構成情報に対し検索を行ったり先頭行／最終行を表示したりするコマンドを入力して、部品番号／展開レベル／コマンドの各項目を取得し、展開方法が正展開処理の場合は子部品検索として構成データファイルの構成情報を読み込んだ後、逆展開処理の場合は親部品検索として構成データファイルの構成情報を読み込んだ後、検索レベルを１だけインクリメントし、字下げ処理を行って、構成データを編集するものである。
【特許文献１】特開２００３−４４１９２号公報
【特許文献２】特開２００２−３３３９３８号公報
【特許文献３】特開２００５−２４２９４４号公報
【特許文献４】特開２００７−５２６７８号公報
【特許文献５】特開平１１−２１３００７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、特許文献１に示す技術は、字下げを行わず色分けにより階層を表現するため、多くのユーザが一般的に利用している字下げによる階層表現と異なり、操作性の面で不便を感じてしまう可能性があるという課題を有する。
【００１２】
また、特許文献２、４、及び５に示す技術は、階層が深くなった場合に、横スクロールをして表示を調整する必要があるため、横スクロールの操作が利用者の集中力の妨げになる可能性があるという課題を有する。
【００１３】
さらに、特許文献３に示す技術は、スクロールの操作が常時発生するため利用者の集中力の妨げになる可能性があると共に、データ構成の全体を把握し難くなるという課題を有する。
【００１４】
そこで、本発明は前記課題を解決するためになされたものであり、３次元ＣＡＤデータの階層化表示において、スクロールの操作（特に横スクロールの操作）を最小限に抑えつつ、必要なデータのみを利用者が確認し易い形式で表示する表示制御装置、表示制御方法、及び、表示制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
（１．選択されたデータの親子関係の縦列に表示）
本願に開示する表示制御装置は、３次元ＣＡＤデータにおけるデータ構成を階層化して表示する一の表示部と、当該３次元ＣＡＤデータの形状を３次元表示する他の表示部とを備える表示制御装置において、前記３次元ＣＡＤデータのうち、所定の処理結果に基づいて表示される当該３次元ＣＡＤデータを選択する表示データ選択手段と、前記表示データ選択手段が選択した表示データのうち親子関係を有する構成要素について、下位階層の構成要素を上位階層の構成要素と統合し、前記一の表示部に同一階層方向に前記親子関係の順に並べて縦列で表示する表示制御手段とを備えるものである。
【００１６】
このように、本表示制御装置においては、所定の処理結果に応じて必要なデータのみを選択し、選択されたデータについて親子関係を縦列で表示するため、不要な部分の確認作業を行わなくて済み、利用者にとって使いやすくなると共に、親子関係が深い場合であっても、横列に広がらず、横スクロールの操作を行う必要がなくなり、利用者の集中力を妨げることがなくなるという効果を奏する。
【００１７】
なお、この場合のように親子関係を縦列に表示する場合には、表示領域が少なくとも縦長に設定されている場合か、又は、少なくとも上下方向のマウスホイールが備えられていることが望ましい。逆に、表示データの親子関係を縦列ではなく横列に表示するようにしてもよいが、その場合は、表示領域が少なくとも横長に設定されている場合か、又は、少なくとも左右方向のマウスホイールが備えられていることが望ましい。
【００１８】
（２．ユニットごとに表示）
本願に開示する表示制御装置は、前記３次元ＣＡＤデータを所定の単位でユニットとしてグループ化するユニット識別手段を備え、前記表示制御手段が、前記表示データ及び当該表示データが属するユニット内で当該表示データの上位データを前記一の表示部に表示するものである。
【００１９】
このように、本表示制御装置においては、３次元ＣＡＤデータをユニットとしてグループ化し、表示データとその表示データが属するユニット内で当該表示データの上位データを表示するため、表示データの階層が深い場合であっても、表示データが属しているユニットを瞬時に判断することができるという効果を奏する。
【００２０】
また、表示データの上位データを表示する際に、表示する階層を制限（例えば、最上位のＣＡＤデータと最下位のＣＡＤデータのみを表示対象とする制限）すれば、中間の階層構造は表示されないためスクロールの操作もなくすことができ、利用者の作業効率を上げることができるという効果を奏する。
【００２１】
なお、表示する階層は、好ましくは最上位のＣＡＤデータと最下位のＣＡＤデータのみを表示対象とするように制限するのがよいが、利用者が任意に設定することができるようにしてもよい。
【００２２】
（３．３次元ＣＡＤの処理に対応するデータ表示）
本願に開示する表示制御装置は、前記所定の処理結果が、利用者によりデータが選択された結果、干渉チェックを行った結果、隙間チェックを行った結果、及び、機構シミュレーションにおける関節定義のチェックを行った結果のいずれかの処理結果であるものである。
【００２３】
このように、本表示制御装置においては、３次元ＣＡＤにおける様々な処理の結果に対応して、必要なデータのみを選択的に表示することができるため、利用者にとって利便性を高めることができるという効果を奏する。
【００２４】
（４．ユニット配下のデータ間の関係情報の表示）
本願に開示する表示制御装置は、前記表示制御手段が、当該表示制御手段にて表示される前記ユニット内の最上位データの配下に構成される前記３次元ＣＡＤデータにおけるデータ相互間の関係情報を、当該最上位データが保持する関係情報に基づいて前記他の表示部に表示するものである。
【００２５】
このように、本表示制御装置においては、ユニットの最上位データが保持する、当該ユニット内のデータ相互間の関係情報を他の表示部（例えば、３次元ビューを表示する表示部）に表示するため、階層構造が表示されている一の表示部に表示されたＣＡＤデータと他の表示部に表示されたＣＡＤデータとの対応関係を容易に確認することができ、利用者の作業効率を上げることができるという効果を奏する。
なお、データ相互間の関係情報とは、例えば、データ間の寸法や注記文字等のテキスト情報であり、ユニット（又は、アセンブリ）が保持している情報のことである。
【００２６】
これまで、本発明を装置として示したが、所謂当業者であれば明らかであるように本発明を方法、及び、プログラムとして捉えることもできる。これら前記の発明の概要は、本発明に必須となる特徴を列挙したものではなく、これら複数の特徴のサブコンビネーションも発明となり得る。
【００２７】
すなわち、本願に開示する表示制御装置の構成要素又は構成要素の任意の組合せを、方法、装置、回路、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも、他の態様として有効である。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の実施の形態を説明する。本発明は多くの異なる形態で実施可能である。従って、本実施形態の記載内容のみで本発明を解釈すべきではない。また、本実施形態の全体を通して同じ要素には同じ符号を付けている。
【００２９】
以下の実施の形態では、主に装置について説明するが、所謂当業者であれば明らかな通り、本発明は方法、及び、コンピュータを動作させるためのプログラムとしても実施できる。また、本発明はハードウェア、ソフトウェア、または、ハードウェア及びソフトウェアの実施形態で実施可能である。プログラムは、ハードディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、光記憶装置、または、磁気記憶装置等の任意のコンピュータ可読媒体に記録できる。さらに、プログラムはネットワークを介した他のコンピュータに記録することができる。
【００３０】
（本発明の第１の実施形態）
（１．構成）
（１−１  ハードウェア構成）
図１は、本実施形態に係る表示制御装置のハードウェア構成図である。表示制御装置１００は、ＣＰＵ(Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ)１０１、ＲＡＭ(Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ)１０２、ＲＯＭ(Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ)１０３、フラッシュメモリ(Ｆｌａｓｈ  ｍｅｍｏｒｙ)１０４、外部記憶装置であるＨＤ(Ｈａｒｄ  Ｄｉｓｋ)１０５、ＬＡＮ(Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ)カード１０６、マウス１０７、キーボード１０８、ビデオカード１０９、このビデオカード１０９と電気的に接続する表示装置であるディスプレイ１０９ａ、サウンドカード１１０、このサウンドカード１１０と電気的に接続する音出力装置であるスピーカ１１０ａ及びフレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の記憶媒体を読み書きするドライブ１１１からなる。
なお、上記ハードウェア構成はあくまで一例を示したものであり、構成要素の変更をすることができるのは当然である。
【００３１】
（１−２  モジュール構成）
図２は、本実施形態に係る表示制御装置のモジュール構成図である。表示制御装置１００は、入力部２０５と、処理部２２０と、ユニット識別部２３０と、データ選択部２４０と、表示制御部２５０と、３次元ビュー生成部２６０と、ＣＡＤデータ部２７０と、ビューウインドウ２８０と、ツリーウインドウ２９０とを備える。また、処理部２２０は、選択データチェック処理部２２１と、干渉チェック処理部２２２と、隙間チェック処理部２２３と、関節定義チェック処理部２２４とを備える。
【００３２】
入力部２０５は、ＣＡＤデータの保存や処理要求の入力を受け付ける処理を行う。ＣＡＤデータの保存要求の場合は、入力されたＣＡＤデータをＣＡＤデータ部２７０に格納する。この時、データ構成が指示されている場合（例えば、親子関係を有するＣＡＤデータである場合）は、その構成情報も併せてＣＡＤデータ部２７０に保存する。また、処理要求の場合は、処理部２２０に対して処理の実行を要求する。
【００３３】
処理部２２０は、入力部２０５が受け付けた処理要求に基づいて各処理を行う。以下、各処理部の機能について説明する。
選択データチェック処理部２２１は、画面上の任意のＣＡＤデータ（ビューウインドウ２８０でもツリーウインドウ２９０のいずれでもよい）が、利用者により選択された場合に、当該選択されたＣＡＤデータをＣＡＤデータ部２７０から取得する処理を行う。
【００３４】
干渉チェック処理部２２２は、画面上のＣＡＤデータ間で干渉しているＣＡＤデータがないかどうかをチェックする処理を行う。干渉しているＣＡＤデータがある場合は、その該当するＣＡＤデータをＣＡＤデータ部２７０から取得する。
【００３５】
隙間チェック処理部２２３は、画面上のＣＡＤデータ間の最短距離を計測する処理を行う。対象となるＣＡＤデータは、部品単体同士でもよいし、複数の部品が集まったアセンブリ同士でもよいし部品単体とアセンブリでもよい。アセンブリ単位での最短距離については、アセンブリ内の全ての部品について距離を計測し、その中の最短距離をアセンブリ間の最短距離とする。
【００３６】
関節定義チェック処理部２２４は、関節定義がされているＣＡＤデータのチェックを行う。関節定義とは、機構シミュレーションにて用いられる定義であり、機構シミュレーションとは、３次元ＣＡＤ上で作成したモデルに、回転軸やスライド軸などを定義することでモデルの機構の運動をシュミレーション出来る機能である。つまり機構シミュレーションを行う際には関節定義が定義される必要があるため、その定義の対象となるＣＡＤデータをＣＡＤデータ部２７０から取得する。
【００３７】
以上が処理部２２０の機能の説明である。
ユニット識別部２３０は、ＣＡＤデータ部２７０に保存されているＣＡＤデータを所定の単位でグループ化して識別する処理を行う。
【００３８】
ここで、ユニット識別部２４０について詳細に説明する。なお、以下の説明におけるユニットとは、所定の単位でグループ化された集合のことを指す。ユニットは、設計上意味のあるモデルの集まりであり、利用者はこのユニット単位でＣＡＤ操作を行うことが考えられる。また、一つのアセンブリを一つのユニットとしてもよいし、複数のアセンブリの集合を一つのユニットとしてもよい。ユニットの識別方法についてはいくつか考えられるが、本実施形態では、以下の３つのうちのいずれかの方法によりユニットを識別する。
【００３９】
（１）利用者が任意に識別する
利用者が認識する設計上意味のある集合を一つのユニットとして設定する。この場合、アセンブリをロードする際に、例えばダイアログを表示し、ユニットを識別するための条件を提示する。具体的には、作成者や作成日時、更新日時等の条件である。利用者はダイアログから該当する条件を選択することで、その条件に応じたモデルの集合をユニットとして識別する。
【００４０】
（２）モデル取込時のトップアセンブリ配下をユニットとして識別する
各担当者が担当ユニットを作成した後、最終的に各ユニットを取り込んでモデルを完成させる操作を利用するものである。最終的に各ユニットを取り込む際、通常はユニットの一番上の親アセンブリ、つまりトップアセンブリを指定して取り込む方法が一般的である。つまり、取り込む際に指定したトップアセンブリを記録しておき、このトップアセンブリ配下をユニットとして識別する。
【００４１】
（３）部品同士が干渉していないアセンブリ配下をユニットとして識別する
ユニットを作成する際に、必ず１度は干渉チェックを行うことが前提となる。この方法では、アセンブリのデータに、干渉チェックを行ったかどうかのフラグを持たせ、干渉チェックを行っている最も上位のアセンブリをユニットとして識別する。
以上のいずれかの方法によりユニットを識別する。方法の選択は利用者が任意に行うことができるようにしてもよい。
【００４２】
データ選択部２４０は、処理部２２０のそれぞれの処理にて取得したＣＡＤデータとユニット識別部２３０で識別されたユニットとの関係に基づいて、実際に画面上に表示する対象となるＣＡＤデータを選択する処理を行う。
【００４３】
表示制御部２５０は、データ選択部２４０で選択されたＣＡＤデータをツリーウインドウ２９０に表示、又は、３次元ビュー生成部２６０で生成された３次元ビューをビューウインドウ２８０に表示する処理を行う。
３次元ビュー生成部２６０は、ＣＡＤデータ部２７０に保存されているＣＡＤデータから３次元ビューを生成する処理を行う。
ＣＡＤデータ部２７０は、作成されたＣＡＤデータが格納されるデータベースである。
【００４４】
（２．動作）
（２−１  選択データチェック処理の場合）
図３は、本実施形態に係る表示制御装置の選択データチェック処理を示すフローチャートである。まず、ＣＡＤデータ部２７０からビューウインドウ２８０に表示する表示対象となるＣＡＤデータをロードする（ステップＳ３０１）。ロードした各ＣＡＤデータについて、属性情報の一つとして保持している表示フラグを初期化（表示フラグ＝ＯＦＦ）する（ステップＳ３０２）。利用者の操作に基づいて指示されたＣＡＤデータを選択状態にする（ステップＳ３０３）。選択されたＣＡＤデータが部品（ＣＡＤデータにおける最小単位のデータ）であるかアセンブリ（部品の集合で、設計上意味を有する集合）であるかを判定し（ステップＳ３０４）、アセンブリである場合には、ＲＯＯＴ（最上位の親データ）から選択されたアセンブリまでのパス上にある構成要素の表示フラグをＯＮにし（ステップＳ３０５）、選択されたアセンブリ配下から最初に見つかった部品間にある構成要素の表示フラグをＯＮにする（ステップＳ３０６）。ステップＳ３０４で選択された要素が部品である場合は、ＲＯＯＴから選択された部品までのパス上にある構成要素の表示フラグをＯＮにする（ステップＳ３０７）。
【００４５】
ＲＯＯＴから表示ロック（常時表示しておくＣＡＤデータ）が掛けられた構成要素までのパス上にある構成要素の表示フラグをＯＮにする（ステップ３０８）。各ＣＡＤデータについて表示フラグがＯＮかＯＦＦかを判定し（ステップＳ３０９）、表示フラグがＯＮの場合は表示処理を行う（ステップＳ３１０）。表示フラグがＯＦＦの場合は、ステップＳ３０２に戻って、別のデータが利用者により選択された場合の処理を行う。
【００４６】
ここで、表示処理について詳細に説明する。図４は、ビューウインドウ２８０に表示されたＣＡＤデータについて、通常時にツリーウインドウ２９０で表示した場合の一例を示す図である。図４（ａ）は、ビューウインドウ２８０に表示された全てのＣＡＤデータであり、図４（ｂ）は、画面上で実際に表示される場合の表示例である。ここでは、本発明の処理を行っていない通常表示であるため、図４（ｂ）では全てのデータが表示されず、深い階層にある部品のＣＡＤデータを表示させる場合には横スクロールを行う必要がある。従って、その操作により、利用者の集中力が阻害され思考の停止を招いてしまう可能性がある。そこで、本発明における処理を行うことで、この問題を解決する。
なお、図４において、親、子、孫（４ｂは除く）はアセンブリであり、孫４ｂ及び曾孫１ａ〜７ｂを部品とする。
【００４７】
図５は、選択データチェック処理が行われた場合のツリーウインドウ２９０の表示の一例を示す図である。図５（ａ）は、利用者によりビューウインドウ２８０又はツリーウインドウ２９０から部品（ここでは曾孫２ｂ）が選択された場合の表示例であり、図５（ｂ）は、利用者によりビューウインドウ２８０又はツリーウインドウ２９０からアセンブリ（ここでは子２ｂ）が選択された場合の表示例であり、図５（ｃ）は、曾孫２ｂを常時表示する設定（表示ロック）が有効な場合に子２ｂが選択された場合の表示例である。
【００４８】
図５（ａ）は、ＲＯＯＴから曾孫２ｂまでのパス上の構成要素である親１、子１ａ、孫１ｂ、曾孫２ａが表示される。この時、各構成要素は階層的ではなく縦列に表示する。そうすることで、横方向への表示の広がりを最小限に抑え、横スクロールの操作を省略することができる。また、図中で子１ａの右下に表示された「＋」をクリックすると、子１ａの配下を階層的に（木構造で）表示することができる。そのため、横スクロールを行ってでも階層的にＣＡＤデータを見たい場合には、「＋」をクリックすることで参照が可能となる。
【００４９】
なお、曾孫２ａについては、曾孫２ｂと同階層であるため表示してもよいし表示しなくてもよい。表示する場合には曾孫２ａについては、曾孫２ｂと同一の階層に縦列表示するのが好ましい。
【００５０】
図５（ｂ）は、ＲＯＯＴから子２ｂまでのパス上の構成要素である親２、子２ｂ、及び、子２ｂの配下で子２ｂから最初に見つかった部品（孫４ｂ）間にある構成要素である孫４ａ、孫４ｂが表示される。ここでも同様に親２と子２ｂは縦列に表示し、「＋」をクリックすると、配下のＣＡＤデータを階層的に（木構造で）表示することができる。
【００５１】
図５（ｃ）は、曾孫２ｂに表示ロックが掛かっているため、曾孫２ｂの表示（図５（ａ）の表示）は維持された状態で、子２ｂが選択された場合の表示（図５（ｂ）の表示）がされる。つまり、表示ロックを設定することで、常時表示された状態を維持することができる。
【００５２】
図３に戻って、選択された構成要素に表示ロックを掛けるかどうかを判定し（ステップＳ３１１）、表示ロックを掛けない場合は、ステップＳ３０２に戻って、利用者により別のデータが選択された場合の処理を行う。表示ロックを掛ける場合は、表示ロックフラグをＯＮにして、ステップＳ３０２に戻る。
以上が、選択データチェック処理についての説明である。
【００５３】
（２−２  干渉チェック処理の場合）
図６は、本実施形態に係る表示制御装置の干渉チェック処理を示すフローチャートである。まず、ユニット識別処理が行われる（ステップＳ６０１）。
ここで、ユニット識別処理について詳細に説明する。上述したように、本実施形態では、３つのうちのいずれかの方法によりユニットを識別する。それぞれの方法についてさらに詳細に説明する。図７は、ユニット識別処理を示すフローチャートである。図７（ａ）は、利用者が任意に識別する場合のフローチャートであり、図７（ｂ）は、モデル取込時のトップアセンブリ配下をユニットとして識別する場合のフローチャートであり、図７（ｃ）は、部品同士が干渉していないアセンブリ配下をユニットとして識別する場合のフローチャートである。
【００５４】
図７（ａ）においては、まず、利用者が選択した識別条件を設定する（ステップＳ７０１）。識別条件は上述したように、例えば、作成者や作成日時、更新日時等である。各ＣＡＤデータについて、設定された条件に一致するデータかどうかを判定し（ステップＳ７０２）、条件に一致する場合は、ユニットとして識別する（ステップＳ７０３）。この処理を全てのＣＡＤデータについて行い、ユニットを識別する。
【００５５】
図７（ｂ）においては、まず、モデル取込時に指定したトップアセンブリの情報を読み込む（ステップＳ７１１）。読み込んだ情報に基づいてモデル取込時に指定したトップアセンブリをユニットとして識別する（ステップＳ７１２）。
【００５６】
図７（ｃ）においては、まず、アセンブリデータに含まれる干渉チェックを行ったかどうかを区別する干渉チェックフラグを読み込む（ステップＳ７２１）。読み込んだ干渉チェックフラグに基づいて、干渉チェックを行っている最も上位のアセンブリをユニットとして識別する（ステップＳ７２２）。
以上が、ユニット識別処理についての説明である。
【００５７】
図６に戻って、ステップＳ６０１でユニットが識別されると、干渉チェック処理を行う（ステップＳ６０２）。干渉チェックの結果から、干渉している部品の表示フラグをＯＮにする（ステップＳ６０３）。干渉している部品が属するユニットの最上位データの表示フラグをＯＮにする（ステップＳ６０４）。表示フラグがＯＮであるＣＡＤデータのみを表示して（ステップＳ６０５）、処理を終了する。
【００５８】
ここで、上記処理の表示結果について説明する。図８は、干渉チェック処理が行われた場合のツリーウインドウ２９０の表示の一例を示す図である。ここでは、親１配下を一のユニットとして識別し、親２を他のユニットとして識別しているとする。干渉チェックは全ての部品間について行われる。干渉チェックにおいて、利用者が主にツリーウインドウ２９０上で参照したい情報は、干渉しているユニットと、そのユニット内の干渉している部品の情報である。
【００５９】
干渉チェックを行った結果、親１のユニットにおける曾孫１ｂの部品と親２のユニットにおける孫４ｂの部品が干渉していたとする。つまり、親１、曾孫１ｂ、親２、孫４ｂの表示フラグがＯＮになるため、図８に示すような表示となる。ここで、ユニットの最上位データである親１と親２を表示する理由として、通常はユニット間での干渉チェックを行う機能を有さない場合が多いため、このように表示することで、あたかもユニット間の干渉チェックが行われたような表現をすることができ、利用者の確認作業を行いやすくすることができる。また、干渉している部品がどのユニットに属しているかを一目で確認することができるため、作業効率を向上させることができる。
以上が、干渉チェック処理についての説明である。
【００６０】
（２−３  隙間チェック処理の場合）
図９は、本実施形態に係る表示制御装置の隙間チェック処理を示すフローチャートである。まず、ユニット識別処理が行われる（ステップＳ９０１）。ユニット識別処理については、干渉チェックの場合と同様であるため説明は省略する。ユニットが識別されると、利用者が選択した隙間計測の基準となるユニットを基準ユニットとして設定し、表示フラグをＯＮにする（ステップＳ９０２）。次に、利用者が選択した隙間計測の対象となるユニットを対象ユニットとして設定し、表示フラグをＯＮにする（ステップＳ９０３）。隙間チェックを行い（ステップＳ９０４）、ユニット間で最短の距離となる部品の表示フラグをＯＮにする（ステップＳ９０５）。表示フラグがＯＮのＣＡＤデータのみを表示して（ステップＳ９０６）、処理を終了する。
【００６１】
ここで、上記処理の表示結果について説明する。図１０は、隙間チェック処理が行われた場合のツリーウインドウの表示の一例を示す図である。ここでは、子１ａ配下を第１のユニットとし、子１ｂ配下を第２のユニットとし、子２ａ配下を第３のユニットとし、子２ｂ配下を第４のユニットとして識別しているとする。利用者の指示により、子１ｂが基準ユニットとして選択され、子２ａ、子２ｂが対象ユニットとして選択されたとする。隙間チェックは対象となる全ての部品間について行われる。つまり、子１ｂ配下の全ての部品と子２ａ配下の全ての部品との距離のうち最短距離である部品と、子１ｂ配下の全ての部品と２ｂ配下の全ての部品との距離のうち最短距離である部品とが求められる。隙間チェックにおいて、利用者が主にツリーウインドウ２９０上で参照したい情報は、基準となるユニットと、対象となるユニットと、ユニット間で最短距離にある部品の情報である。
【００６２】
隙間チェックを行った結果、子１ｂのユニットと子２ａのユニット間では、曾孫３ｂの部品と曾孫５ａの部品が最短距離であり、子１ｂのユニットと子２ｂのユニット間では、曾孫３ｂの部品と曾孫７ａの部品が最短距離であったとする。つまり、子１ｂ、子２ａ、子２ｂ、曾孫３ｂ、曾孫５ａ、曾孫７ａの表示フラグがＯＮになるため、図１０に示すような表示となる。
【００６３】
なお、図１０では、たまたま基準ユニットの曾孫３ｂが、いずれの対象ユニットとも最短の距離であったが、それぞれの対象ユニットに対応する最短となる基準部品が存在する場合もある。その場合、子１ｂの配下に最短距離となった基準部品を複数表示するようにしてもよい。基準部品を複数表示する際は、対象ユニットとの対応関係を明確にするために、色分けして表示するようにしてもよい。つまり、基準部品とそれに対応する対象ユニットを同一の色で表示し、異なる対象ユニット間を異なる色で表示する。
以上が隙間チェック処理についての説明である。
【００６４】
（２−４  関節定義チェック処理の場合）
上述したように、機構シミュレーションを行うためには回転軸やスライド軸等の関節定義を行う必要がある。この時、基本的な動作をする関節、つまり基本ジョイントについては、ある程度自動で定義することができる。しかし、全ての基本ジョイントについて定義されるわけではないため、手動による定義も行う必要がある。また、基本ジョイントが既に定義されているモデル間に連動の関節、つまり連動ジョイントについても手動で関節定義を行う必要がある。
【００６５】
（２−４−１  基本ジョイントを定義する際の関節定義チェック処理の場合）
図１１は、本実施形態に係る表示制御装置の基本ジョイントを定義する場合の関節定義チェック処理を示すフローチャートである。まず、ユニット識別処理が行われる（ステップＳ１１０１）。ユニット識別処理については、干渉チェック及び隙間チェックの場合と同様であるため説明は省略する。ユニットが識別されると、ユニット内に基本ジョイントが定義されていない部品が存在するかどうかを判定し（ステップＳ１１０２）、存在する場合は基本ジョイントが定義されていない部品の表示フラグをＯＮにする（ステップＳ１１０３）。この処理を全てのユニットについて行い、表示フラグがＯＮのＣＡＤデータのみを表示して（ステップＳ１１０４）、処理を終了する。
【００６６】
ここで、上記処理の表示結果について説明する。図１２は、基本ジョイントを定義する際に関節定義チェック処理を行った場合のツリーウインドウの表示の一例を示す図である。上述したように、基本ジョイントを利用者が手動で定義する際には、関節定義がされていない部品に対して行う。つまり、基本ジョイントの定義において、利用者が主にツリーウインドウ２９０上で参照したい情報は、ユニットにおけるトップアセンブリと、ユニット配下において基本ジョイントが定義されていない部品の１つ上位の親アセンブリと、基本ジョイントが定義されていない部品である。
【００６７】
従って、ここでは、関節定義がされていない部品として曾孫１ａ、曾孫１ｂ、曾孫２ａ、曾孫２ｂ、曾孫７ａ、曾孫７ｂ、孫４ｂの表示フラグがＯＮになる。また、これらの部品が属する１つ上位の親アセンブリとして、孫１ａ、孫１ｂ、孫４ａ、子２ｂの表示フラグがＯＮになる。さらに、各部品が属するユニットのトップアセンブリとして、子１ａ、子２ｂの表示フラグがＯＮになる。そのため、図１２に示すような表示となる。
【００６８】
なお、子１ａ配下を第１のユニットとし、子１ｂ配下を第２のユニットとし、子２ａ配下を第３のユニットとし、子２ｂ配下を第４のユニットとして識別しているものとし、関節定義がされていない部品が曾孫１ａ、曾孫１ｂ、曾孫２ａ、曾孫２ｂ、曾孫７ａ、曾孫７ｂ、孫４ｂであるとする。
【００６９】
また、ＲＯＯＴ、子１ａ、及び、子２ｂの下方に表示される「＋」は省略表示であり、クリックすることで、省略されている親１、親２、子１ｂ、及び、子２ａ等のＣＡＤデータを階層的に表示することができる。
さらに、図１２では、子、孫、曾孫の関係を階層的に表示しているが、上述したように子と孫の関係は並列的に縦列表示し、曾孫のみを階層的に表示するようにしてもよい。
【００７０】
さらにまた、ここでは孫１ａ、孫１ｂ、及び、孫４ａの表示を行っているが、これらを非表示にして、トップアセンブリ（子の世代）と部品（曾孫の世代と孫４ｂ）のみを表示するようにしてもよい。
【００７１】
（２−４−２  連動ジョイントを定義する際の関節定義チェック処理の場合）
図１３は、本実施形態に係る表示制御装置の連動ジョイントを定義する場合の関節定義チェック処理を示すフローチャートである。まず、ユニット識別処理が行われる（ステップＳ１３０１）。ユニット識別処理については、干渉チェック及び隙間チェックの場合と同様であるため説明は省略する。ユニットが識別されると、ユニット内に連動ジョイントが定義可能である部品が存在するかどうかを判定し（ステップＳ１３０２）、存在する場合は連動ジョイントが定義可能である部品の表示フラグをＯＮにする（ステップＳ１３０３）。この処理を全てのユニットについて行い、表示フラグがＯＮのＣＡＤデータのみを表示して（ステップＳ１３０４）、処理を終了する。
【００７２】
ここで、上記処理の表示結果について説明する。図１４は、連動ジョイントを定義する際に関節定義チェック処理を行った場合のツリーウインドウの表示の一例を示す図である。上述したように、連動ジョイントを利用者が手動で定義する際には、関節定義が既にされている部品に対して定義することが可能である。つまり、連動ジョイントの定義において、利用者が主にツリーウインドウ上で参照したい情報は、ユニットにおけるトップアセンブリと、ユニット配下において基本ジョイントが定義されている部品の１つ上位の親アセンブリと、基本ジョイントが定義されている部品である。
【００７３】
従って、ここでは、既に関節定義がされている部品（連動ジョイントが定義されていない部品）として曾孫３ａ、曾孫３ｂ、曾孫４ａ、曾孫４ｂ、曾孫５ａ、曾孫５ｂ、曾孫６ａ、曾孫６ｂの表示フラグがＯＮになる。また、これらの部品が属する１つ上位の親アセンブリとして、孫２ａ、孫２ｂ、孫３ａ、孫３ｂの表示フラグがＯＮになる。さらに、各部品が属するユニットのトップアセンブリとして、子１ｂ、子２ａの表示フラグがＯＮになる。そのため、図１４に示すような表示となる。
【００７４】
なお、子１ａ配下を第１のユニットとし、子１ｂ配下を第２のユニットとし、子２ａ配下を第３のユニットとし、子２ｂ配下を第４のユニットとして識別しているものとし、関節定義がされている部品が曾孫３ａ、曾孫３ｂ、曾孫４ａ、曾孫４ｂ、曾孫５ａ、曾孫５ｂ、曾孫６ａ、曾孫６ｂであるとする。
【００７５】
また、ＲＯＯＴ、子１ａ、及び、子２ｂの下方に表示される「＋」は省略表示であり、クリックすることで、省略されている親１、親２、子１ｂ、及び、子２ａ等のＣＡＤデータを階層的に表示することができる。
【００７６】
さらに、図１４では、子、孫、曾孫の関係を階層的に表示しているが、上述したように子と孫の関係は並列的に縦列表示し、曾孫のみを階層的に表示するようにしてもよい。
さらにまた、ここでは孫の世代の表示を行っているが、これらを非表示にして、トップアセンブリ（子の世代）と部品（曾孫の世代）のみを表示するようにしてもよい。
以上が関節定義チェック処理についての説明である。
【００７７】
なお、ここでは、例示として４つの処理部について説明したが、３次元ＣＡＤにおける他の処理についても同様に処理部を設けて、処理に対応したデータの表示を行うことが可能である。
【００７８】
また、干渉チェックにおいて複数（１：Ｎ又はＮ：Ｎ）の部品間で干渉が検出された場合には、隙間チェックの場合のように色分けにより、対応する部品間を区別するようにしてもよいし、ツリーウインドウ２９０に余白があれば、干渉レベルの階層を１つ増やして、干渉ごとに部品を階層的に表示するようにしてもよい。
【００７９】
さらに、基本ジョイントの定義を行う場合の表示について、関節定義がされていない部品と関節定義が既にされている部品とのジョイントを定義する場合も考えられる。その場合は、関節定義が既にされている部品は基準の部品として定義されていることが多いため、基本ジョイントの定義の際には、関節定義が既にされている部品であっても基準の部品であると判断される部品については、表示フラグをＯＮにするようにしてもよい。
【００８０】
このように、本実施形態に係る表示制御装置によれば、３次元ＣＡＤにおける様々な処理の結果に対応して、必要なデータのみを選択し、選択されたデータについて親子関係を縦列で表示するため、不要な部分の確認作業を行わなくて済み、利用者にとって使いやすくなると共に、親子関係が深い場合であっても、横列に広がらず、横スクロールの操作を行う必要がなくなり、利用者の集中力を妨げることがなくなる。
【００８１】
また、３次元ＣＡＤデータをユニットとしてグループ化し、表示データとその表示データが属するユニット内で当該表示データの上位データを表示するため、表示データの階層が深い場合であっても、表示データが属しているユニットを瞬時に判断することができる。
【００８２】
さらに、表示データの上位データを表示する際に、表示する階層を制限（例えば、最上位のＣＡＤデータと最下位のＣＡＤデータのみを表示対象とする制限）すれば、中間の階層構造は表示されないためスクロールの操作もなくすことができ、利用者の作業効率を上げることができる。
【００８３】
（その他の実施形態）
第１の実施形態におけるツリーウインドウ２９０の表示制御に対応して、ビューウインドウ２８０の表示を制御することもできる。例えば、干渉チェック処理において干渉している部品がツリーウインドウ２９０に表示された場合に、その該当する部品の干渉箇所をビューウインドウ２８０に拡大して表示することが可能である。同様に隙間チェックにおいても、ツリーウインドウ２９０に表示された部品間の状態を拡大してビューウインドウ２８０に表示することができる。
【００８４】
また、このようにビューウインドウ２８０の表示を制御する際に、部品間の関係情報（主に、部品間の距離や注記事項）を表示することもできる。これは、ツリーウインドウ２９０を表示する際に表示フラグがＯＮとなったアセンブリ、又はユニットのＣＡＤデータが保持する部品間の関係情報を利用することで実現することができる。つまり、ツリーウインドウ２９０に表示された情報とビューウインドウ２８０に表示された情報を連動させて、関連付けて表示することが可能となる。
【００８５】
このように、本実施形態に係る表示制御装置によれば、ツリーウインドウ２９０に表示されたユニットにおけるデータ相互間の関係情報をビューウインドウ２８０に表示するため、階層構造が表示されているツリーウインドウ２９０との対応関係を容易に確認することができ、利用者の作業効率を上げることができる。
【００８６】
以上の前記各実施形態により本発明を説明したが、本発明の技術的範囲は実施形態に記載の範囲には限定されず、これら各実施形態に多様な変更又は改良を加えることが可能である。そして、かような変更又は改良を加えた実施の形態も本発明の技術的範囲に含まれる。このことは、特許請求の範囲及び課題を解決する手段からも明らかなことである。
【図面の簡単な説明】
【００８７】
【図１】第１の実施形態に係る表示制御装置のハードウェア構成図である。
【図２】第１の実施形態に係る表示制御装置のモジュール構成図である。
【図３】第１の実施形態に係る表示制御装置の選択データチェック処理を示すフローチャートである。
【図４】ビューウインドウに表示されたＣＡＤデータについて、通常時にツリーウインドウで表示した場合の一例を示す図である。
【図５】選択データチェック処理が行われた場合のツリーウインドウの表示の一例を示す図である。
【図６】第１の実施形態に係る表示制御装置の干渉チェック処理を示すフローチャートである。
【図７】ユニット識別処理を示すフローチャートである。
【図８】干渉チェック処理が行われた場合のツリーウインドウの表示の一例を示す図である。
【図９】第１の実施形態に係る表示制御装置の隙間チェック処理を示すフローチャートである。
【図１０】隙間チェック処理が行われた場合のツリーウインドウの表示の一例を示す図である。
【図１１】第１の実施形態に係る表示制御装置の基本ジョイントを定義する場合の関節定義チェック処理を示すフローチャートである。
【図１２】基本ジョイントを定義する際に関節定義チェック処理を行った場合のツリーウインドウの表示の一例を示す図である。
【図１３】第１の実施形態に係る表示制御装置の連動ジョイントを定義する場合の関節定義チェック処理を示すフローチャートである。
【図１４】連動ジョイントを定義する際に関節定義チェック処理を行った場合のツリーウインドウの表示の一例を示す図である。
【符号の説明】
【００８８】
１００  表示制御装置
１０１  ＣＰＵ
１０２  ＲＡＭ
１０３  ＲＯＭ
１０４  フラッシュメモリ
１０５  ＨＤ
１０６  ＬＡＮカード
１０７  マウス
１０８  キーボード
１０９  ビデオカード
１０９ａ  ディスプレイ
１１０  サウンドカード
１１０ａ  スピーカ
１１１  ドライブ
２０５  入力部
２２０  処理部
２２１  選択データチェック処理部
２２２  干渉チェック処理部
２２３  隙間チェック処理部
２２４  関節定義チェック処理部
２３０  ユニット識別部
２４０  データ選択部
２５０  表示制御部
２６０  ３次元ビュー生成部
２７０  ＣＡＤデータ部
２８０  ビューウインドウ
２９０  ツリーウインドウ
【図１】
0005077011.tif 000002
【図２】
0005077011.tif 000003
【図３】
0005077011.tif 000004
【図４】
0005077011.tif 000005
【図５】
0005077011.tif 000006
【図６】
0005077011.tif 000007
【図７】
0005077011.tif 000008
【図８】
0005077011.tif 000009
【図９】
0005077011.tif 000010
【図１０】
0005077011.tif 000011
【図１１】
0005077011.tif 000012
【図１２】
0005077011.tif 000013
【図１３】
0005077011.tif 000014
【図１４】
0005077011.tif 000015