(57)【特許請求の範囲】
【請求項１】
複数の３次元形状要素から構成される３次元形状モデルを処理する３次元形状処理装置において、
アセンブリ階層中にある前記３次元形状要素間の面合わせの位置関係及び軸合わせの位置関係のうち少なくとも１つを検出し、その位置関係にある前記各３次元形状要素を互いに分解して引き離すように移動する移動手段と、
前記移動手段により移動された一対の前記３次元形状要素間の位置関係が、面合わせの位置関係か、軸合わせの位置関係か、面合わせの位置関係かつ軸合わせの位置関係かに応じて、端点位置が異なる分解線を付する分解線付与手段と、
を備えることを特徴とする３次元形状処理装置。
【請求項２】
一対の前記３次元形状要素間に軸合わせの位置関係がある場合に、前記分解線付与手段は、
軸合わせの軸の方向を前記分解線の両端の線分の方向とし、かつ、一対の前記３次元形状要素のうち一方の前記３次元形状要素の境界箱と前記軸との交点を前記分解線の一方の端点とし、他方の前記３次元形状要素の境界箱と前記軸との交点を前記分解線の他方の端点として、前記分解線を作成することを特徴とする請求項１記載の３次元形状処理装置。
【請求項３】
一対の前記３次元形状要素間に面合わせの位置関係がある場合に、前記分解線付与手段は、
面合わせの面の法線方向を前記分解線の両端の線分の方向とし、かつ、一対の前記３次元形状要素のうち一方の前記３次元形状要素の前記面の境界箱の中心を前記分解線の一方の端点とし、他方の前記３次元形状要素の前記面の境界箱の中心を前記分解線の他方の端点として、前記分解線を作成することを特徴とする請求項１記載の３次元形状処理装置。
【請求項４】
一対の前記３次元形状要素間に軸合わせの位置関係および面合わせの位置関係があり、かつ、軸合わせの軸の方向と面合わせの面の法線方向が一致している場合に、前記分解線付与手段は、
軸合わせの軸の方向または面合わせの面の法線方向を前記分解線の両端の線分の方向とし、かつ、一対の前記３次元形状要素のうち一方の前記３次元形状要素（Ａ）の前記軸と前記面との交点を前記分解線の一方の端点（ａ）とし、他方の３次元形状要素（Ｂ）の前記軸と前記面との交点を前記分解線の他方の端点（ｂ）とし、前記端点（ａ）から前記軸の方向にのばした直線が前記３次元形状要素（Ａ）と複数の交点をもつ場合には前記端点（ｂ）に最も近い交点をあらためて前記分解線の一方の端点（ａ）とし、前記端点（ｂ）から前記軸の方向にのばした直線が前記３次元形状要素（Ｂ）と複数の交点をもつ場合には前記端点（ａ）に最も近い交点をあらためて前記分解線の他方の端点（ｂ）として、前記分解線を作成することを特徴とする請求項１記載の３次元形状処理装置。
【請求項５】
複数の３次元形状要素から構成される３次元形状モデルの処理をコンピュータに実行させるプログラムであって、
アセンブリ階層中にある前記３次元形状要素間の面合わせの位置関係及び軸合わせの位置関係のうち少なくとも１つを検出し、その位置関係にある前記各３次元形状要素を互いに分解して引き離すように移動する移動機能と、
前記移動機能により移動された一対の前記３次元形状要素間の位置関係が、面合わせの位置関係か、軸合わせの位置関係か、面合わせの位置関係かつ軸合わせの位置関係かに応じて、端点位置が異なる分解線を付する分解線付与機能と、
を前記コンピュータに実行させることを特徴とするプログラム。
【請求項６】
一対の前記３次元形状要素間に軸合わせの位置関係がある場合に、前記分解線付与機能は、
軸合わせの軸の方向を前記分解線の両端の線分の方向とし、かつ、一対の前記３次元形状要素のうち一方の前記３次元形状要素の境界箱と前記軸との交点を前記分解線の一方の端点とし、他方の前記３次元形状要素の境界箱と前記軸との交点を前記分解線の他方の端点として、前記分解線を作成することを特徴とする請求項５記載のプログラム。
【請求項７】
一対の前記３次元形状要素間に面合わせの位置関係がある場合に、前記分解線付与機能は、
面合わせの面の法線方向を前記分解線の両端の線分の方向とし、かつ、一対の前記３次元形状要素のうち一方の前記３次元形状要素の前記面の境界箱の中心を前記分解線の一方の端点とし、他方の前記３次元形状要素の前記面の境界箱の中心を前記分解線の他方の端点として、前記分解線を作成することを特徴とする請求項５記載のプログラム。
【請求項８】
一対の前記３次元形状要素間に軸合わせの位置関係および面合わせの位置関係があり、かつ、軸合わせの軸の方向と面合わせの面の法線方向が一致している場合に、前記分解線付与機能は、
軸合わせの軸の方向または面合わせの面の法線方向を前記分解線の両端の線分の方向とし、かつ、一対の前記３次元形状要素のうち一方の前記３次元形状要素（Ａ）の前記軸と前記面との交点を前記分解線の一方の端点（ａ）とし、他方の３次元形状要素（Ｂ）の前記軸と前記面との交点を前記分解線の他方の端点（ｂ）とし、前記端点（ａ）から前記軸の方向にのばした直線が前記３次元形状要素（Ａ）と複数の交点をもつ場合には前記端点（ｂ）に最も近い交点をあらためて前記分解線の一方の端点（ａ）とし、前記端点（ｂ）から前記軸の方向にのばした直線が前記３次元形状要素（Ｂ）と複数の交点をもつ場合には前記端点（ａ）に最も近い交点をあらためて前記分解線の他方の端点（ｂ）として、前記分解線を作成することを特徴とする請求項５記載のプログラム。
【請求項９】
複数の３次元形状要素から構成される３次元形状モデルを処理するコンピュータソフトウェアを記憶する記憶手段と、前記コンピュータソフトウェアに基づいて各種処理を実行する制御部と、を備えた３次元形状処理装置の３次元形状処理方法であって、
アセンブリ階層中にある前記３次元形状要素間の面合わせの位置関係及び軸合わせの位置関係のうち少なくとも１つを検出し、その位置関係にある前記各３次元形状要素を互いに分解して引き離すように移動する移動工程と、
前記移動工程により移動された一対の前記３次元形状要素間の位置関係が、面合わせの位置関係か、軸合わせの位置関係か、面合わせの位置関係かつ軸合わせの位置関係かに応じて、端点位置が異なる分解線を付する分解線付与工程と、
を含むことを特徴とする３次元形状処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば、３次元ＣＡＤ／ＣＡＭ／ＣＡＥ／ＣＧなど３次元形状モデルを扱う分野における３次元形状処理装置、プログラムおよび３次元形状処理方法に関する。
【０００２】
【従来の技術】
３次元ＣＡＤ／ＣＧシステムなどの普及により、３次元立体形状を表現した３次元形状データの利用者層が拡大している。近年は、シミュレーションや組み立て性の検証、さらには実際の製品組み立てのための作業手順書の作成などにおいても３次元形状データが有効に活用されている。なお、３次元立体形状とは、例えば境界表現形式のソリッドモデルデータとして生成された形状を指し、境界表現形式のソリッドモデルとは、稜線や頂点や面というような要素により３次元空間上に閉じた領域を定義し、中身の詰まった立体を表現したものである。
【０００３】
このような３次元ＣＡＤシステムなどで例えば前記した組み立て手順書を作成する際には、製品を構成するサブアセンブリや部品を一定の間隔にばらして配置した様子を図示した分解図（あるいは組立図）が不可欠である。
【０００４】
従来においては、このような分解図（あるいは組立図）は、３次元立体形状を表現した２次元図面をもとに専門家が手作業により作成する場合が多い。
【０００５】
【発明が解決しようとする課題】
しかしながら、２次元図面から手作業により分解図（あるいは組立図）を作成するには多大なコストと時間がかかった。また、図面が完成した後は、個々の部品を移動する距離や、モデルを見ているときの視点などだけを調整することが不可能であったので、完成した図面が所望のものでなかった場合には、図面を最初から作成し直さねばならなかった。
【０００６】
一方、製品設計に利用したＣＡＤシステムを用いて個々の部品を移動した結果を表示し、それを図面に用いる方法も考えられるが、その場合、製品を構成する個々の部品をばらして適当な位置に配置する作業をＣＡＤシステムの利用者（操作者）が部品毎に行う必要があり、それを手作業で行うにはそれなりの時間を要してしまう。
【０００７】
本発明の目的は、３次元形状モデルを構成する各３次元形状要素間にどのような幾何関係があるのかを一目で識別することができるような３次元形状処理装置、プログラムおよび３次元形状処理方法を提供することである。
【０００８】
【課題を解決するための手段】
請求項１記載の発明の３次元形状処理装置は、複数の３次元形状要素から構成される３次元形状モデルを処理する３次元形状処理装置において、アセンブリ階層中にある前記３次元形状要素間の面合わせの位置関係及び軸合わせの位置関係のうち少なくとも１つを検出し、その位置関係にある前記各３次元形状要素を互いに分解して引き離すように移動する移動手段と、前記移動手段により移動された一対の前記３次元形状要素間の位置関係が、面合わせの位置関係か、軸合わせの位置関係か、面合わせの位置関係かつ軸合わせの位置関係かに応じて、端点位置が異なる分解線を付する分解線付与手段と、を備える。
【０００９】
したがって、面合わせの位置関係または軸合わせの位置関係にあるアセンブリ階層中の３次元形状要素が、互いに分解されて引き離されるように移動されるとともに、移動された３次元形状要素間には各３次元形状要素の互いの軸または面を対応付ける分解線が付される。これにより、３次元形状モデルを構成する各３次元形状要素が分解された様子を分解線によって各３次元形状要素の互いの軸または面に対応付けられた状態で見ることが可能になるので、各３次元形状要素間にどのような幾何関係があるのかが一目で識別可能になる。
【００１０】
請求項２記載の発明は、請求項１記載の３次元形状処理装置において、一対の前記３次元形状要素間に軸合わせの位置関係がある場合に、前記分解線付与手段は、軸合わせの軸の方向を前記分解線の両端の線分の方向とし、かつ、一対の前記３次元形状要素のうち一方の前記３次元形状要素の境界箱と前記軸との交点を前記分解線の一方の端点とし、他方の前記３次元形状要素の境界箱と前記軸との交点を前記分解線の他方の端点として、前記分解線を作成する。
【００１１】
したがって、軸合わせの位置関係にある分解された３次元形状要素間に、分解線を確実に作成することが可能になる。
【００１２】
請求項３記載の発明は、請求項１記載の３次元形状処理装置において、一対の前記３次元形状要素間に面合わせの位置関係がある場合に、前記分解線付与手段は、面合わせの面の法線方向を前記分解線の両端の線分の方向とし、かつ、一対の前記３次元形状要素のうち一方の前記３次元形状要素の前記面の境界箱の中心を前記分解線の一方の端点とし、他方の前記３次元形状要素の前記面の境界箱の中心を前記分解線の他方の端点として、前記分解線を作成する。
【００１３】
したがって、面合わせの位置関係にある分解された３次元形状要素間に、分解線を確実に作成することが可能になる。
【００１４】
請求項４記載の発明は、請求項１記載の３次元形状処理装置において、一対の前記３次元形状要素間に軸合わせの位置関係および面合わせの位置関係があり、かつ、軸合わせの軸の方向と面合わせの面の法線方向が一致している場合に、前記分解線付与手段は、軸合わせの軸の方向または面合わせの面の法線方向を前記分解線の両端の線分の方向とし、かつ、一対の前記３次元形状要素のうち一方の前記３次元形状要素（Ａ）の前記軸と前記面との交点を前記分解線の一方の端点（ａ）とし、他方の３次元形状要素（Ｂ）の前記軸と前記面との交点を前記分解線の他方の端点（ｂ）とし、前記端点（ａ）から前記軸の方向にのばした直線が前記３次元形状要素（Ａ）と複数の交点をもつ場合には前記端点（ｂ）に最も近い交点をあらためて前記分解線の一方の端点（ａ）とし、前記端点（ｂ）から前記軸の方向にのばした直線が前記３次元形状要素（Ｂ）と複数の交点をもつ場合には前記端点（ａ）に最も近い交点をあらためて前記分解線の他方の端点（ｂ）として、前記分解線を作成する。
【００１５】
したがって、軸合わせの位置関係および面合わせの位置関係にあり、かつ、軸合わせの軸の方向と面合わせの面の法線方向が一致している分解された３次元形状要素間に、分解線を確実に作成することが可能になる。
【００１６】
請求項５記載の発明のプログラムは、複数の３次元形状要素から構成される３次元形状モデルの処理をコンピュータに実行させるプログラムであって、アセンブリ階層中にある前記３次元形状要素間の面合わせの位置関係及び軸合わせの位置関係のうち少なくとも１つを検出し、その位置関係にある前記各３次元形状要素を互いに分解して引き離すように移動する移動機能と、前記移動機能により移動された一対の前記３次元形状要素間の位置関係が、面合わせの位置関係か、軸合わせの位置関係か、面合わせの位置関係かつ軸合わせの位置関係かに応じて、端点位置が異なる分解線を付する分解線付与機能と、を前記コンピュータに実行させる。
【００１７】
したがって、面合わせの位置関係または軸合わせの位置関係にあるアセンブリ階層中の３次元形状要素が、互いに分解されて引き離されるように移動されるとともに、移動された３次元形状要素間には各３次元形状要素の互いの軸または面を対応付ける分解線が付される。これにより、３次元形状モデルを構成する各３次元形状要素が分解された様子を分解線によって各３次元形状要素の互いの軸または面に対応付けられた状態で見ることが可能になるので、各３次元形状要素間にどのような幾何関係があるのかが一目で識別可能になる。
【００１８】
請求項６記載の発明は、請求項５記載のプログラムにおいて、一対の前記３次元形状要素間に軸合わせの位置関係がある場合に、前記分解線付与機能は、軸合わせの軸の方向を前記分解線の両端の線分の方向とし、かつ、一対の前記３次元形状要素のうち一方の前記３次元形状要素の境界箱と前記軸との交点を前記分解線の一方の端点とし、他方の前記３次元形状要素の境界箱と前記軸との交点を前記分解線の他方の端点として、前記分解線を作成する。
【００１９】
したがって、軸合わせの位置関係にある分解された３次元形状要素間に、分解線を確実に作成することが可能になる。
【００２０】
請求項７記載の発明は、請求項５記載のプログラムにおいて、一対の前記３次元形状要素間に面合わせの位置関係がある場合に、前記分解線付与機能は、面合わせの面の法線方向を前記分解線の両端の線分の方向とし、かつ、一対の前記３次元形状要素のうち一方の前記３次元形状要素の前記面の境界箱の中心を前記分解線の一方の端点とし、他方の前記３次元形状要素の前記面の境界箱の中心を前記分解線の他方の端点として、前記分解線を作成する。
【００２１】
したがって、面合わせの位置関係にある分解された３次元形状要素間に、分解線を確実に作成することが可能になる。
【００２２】
請求項８記載の発明は、請求項５記載のプログラムにおいて、一対の前記３次元形状要素間に軸合わせの位置関係および面合わせの位置関係があり、かつ、軸合わせの軸の方向と面合わせの面の法線方向が一致している場合に、前記分解線付与機能は、軸合わせの軸の方向または面合わせの面の法線方向を前記分解線の両端の線分の方向とし、かつ、一対の前記３次元形状要素のうち一方の前記３次元形状要素（Ａ）の前記軸と前記面との交点を前記分解線の一方の端点（ａ）とし、他方の３次元形状要素（Ｂ）の前記軸と前記面との交点を前記分解線の他方の端点（ｂ）とし、前記端点（ａ）から前記軸の方向にのばした直線が前記３次元形状要素（Ａ）と複数の交点をもつ場合には前記端点（ｂ）に最も近い交点をあらためて前記分解線の一方の端点（ａ）とし、前記端点（ｂ）から前記軸の方向にのばした直線が前記３次元形状要素（Ｂ）と複数の交点をもつ場合には前記端点（ａ）に最も近い交点をあらためて前記分解線の他方の端点（ｂ）として、前記分解線を作成する。
【００２３】
したがって、軸合わせの位置関係および面合わせの位置関係にあり、かつ、軸合わせの軸の方向と面合わせの面の法線方向が一致している分解された３次元形状要素間に、分解線を確実に作成することが可能になる。
【００２４】
請求項９記載の発明の３次元形状処理方法は、複数の３次元形状要素から構成される３次元形状モデルを処理するコンピュータソフトウェアを記憶する記憶手段と、前記コンピュータソフトウェアに基づいて各種処理を実行する制御部と、を備えた３次元形状処理装置の３次元形状処理方法であって、アセンブリ階層中にある前記３次元形状要素間の面合わせの位置関係及び軸合わせの位置関係のうち少なくとも１つを検出し、その位置関係にある前記各３次元形状要素を互いに分解して引き離すように移動する移動工程と、前記移動工程により移動された一対の前記３次元形状要素間の位置関係が、面合わせの位置関係か、軸合わせの位置関係か、面合わせの位置関係かつ軸合わせの位置関係かに応じて、端点位置が異なる分解線を付する分解線付与工程と、を含む。
【００２５】
したがって、面合わせの位置関係または軸合わせの位置関係にあるアセンブリ階層中の３次元形状要素が、互いに分解されて引き離されるように移動されるとともに、移動された３次元形状要素間には各３次元形状要素の互いの軸または面を対応付ける分解線が付される。これにより、３次元形状モデルを構成する各３次元形状要素が分解された様子を分解線によって各３次元形状要素の互いの軸または面に対応付けられた状態で見ることが可能になるので、各３次元形状要素間にどのような幾何関係があるのかが一目で識別可能になる。
【００２６】
【発明の実施の形態】
本発明の実施の一形態を図１ないし図７に基づいて説明する。
【００２７】
図１は、本発明が適用される３次元形状処理装置１のハードウェア構成を概略的に示すブロック図である。図１に示すように、３次元形状処理装置１は、例えばパーソナルコンピュータやワークステーションであり、コンピュータの主要部であって各部を集中的に制御するＣＰＵ（Central Processing Unit）２を備えている。このＣＰＵ２には、ＢＩＯＳなどを記憶した読出し専用メモリであるＲＯＭ（Read Only Memory）３と、各種データを書換え可能に記憶するＲＡＭ（Random Access Memory）４とがバス５で接続されている。ＲＡＭ４は、各種データを書換え可能に記憶する性質を有していることから、ＣＰＵ２の作業エリアとして機能し、例えば入力バッファ等の役割を果たす。
【００２８】
さらにバス５には、外部記憶装置であるＨＤＤ（Hard Disk Drive）６と、配布されたプログラムであるコンピュータソフトウェアを読み取るための機構としてＣＤ（Compact Disc）−ＲＯＭ７を読み取るＣＤ−ＲＯＭドライブ８と、３次元形状処理装置１とネットワーク９との通信を司る通信制御装置１０と、キーボードやマウスなどの入力装置１１と、ＣＲＴ（Cathode Ray Tube）、ＬＣＤ（Liquid Crystal Display）などの表示装置１２とが、図示しないＩ／Ｏを介して接続されている。
【００２９】
図１に示すＣＤ−ＲＯＭ７は、この発明の記憶媒体を実施するものであり、ＯＳ（Operating System）や各種コンピュータソフトウェアが記憶されている。ＣＰＵ２は、ＣＤ−ＲＯＭ７に記憶されているコンピュータソフトウェアをＣＤ−ＲＯＭドライブ８で読み取り、ＨＤＤ６にインストールする。
【００３０】
なお、記憶媒体としては、ＣＤ−ＲＯＭ７のみならず、ＤＶＤなどの各種の光ディスク、各種光磁気ディスク、フレキシブル・ディスクなどの各種磁気ディスク等、半導体メモリ等の各種方式のメディアを用いることができる。また、通信制御装置１０を介してインターネットなどのネットワーク９からコンピュータソフトウェアをダウンロードし、ＨＤＤ６にインストールするようにしてもよい。この場合に、送信側のサーバでコンピュータソフトウェアを記憶している記憶装置も、この発明の記憶媒体である。なお、コンピュータソフトウェアは、所定のＯＳ（Operating System）上で動作するものであってもよいし、その場合に後述の各種処理の一部の実行をＯＳに肩代わりさせるものであってもよいし、所定のアプリケーションソフトやＯＳなどを構成する一群のプログラムファイルの一部として含まれているものであってもよい。
【００３１】
このシステム全体の動作を制御するＣＰＵ２は、このシステムの主記憶として使用されるＨＤＤ６上にロードされたコンピュータソフトウェアに基づいて各種処理を実行する。
【００３２】
次に、３次元形状処理装置１のＣＰＵ２がコンピュータソフトウェアに基づいて実行する各種処理の内容について説明する。図２は、３次元形状処理装置１の機能ブロック図である。図２に示すように、当該装置は、入力装置１１からの操作情報や３次元形状データの入力を許容する機能を発揮する入力部１３、３次元形状データをＨＤＤ６に記憶させたり３次元形状データを管理したりする形状記憶管理部１４、アセンブリされた状態（３次元形状モデル）からサブアセンブリや部品など部分モデル（３次元形状要素）を引き離して移動させることにより移動手段として機能するモデル移動処理部１５、サブアセンブリや部品など部分モデルの分解移動を示す分解線を付することにより分解線付与手段として機能する分解線処理部１６およびアセンブリされた３次元立体形状のモデルやそれが分解されたサブアセンブリや部品など部分モデルを表示装置１２に表示させる機能を発揮する表示部１７の各機能から構成される。
【００３３】
また、分解線処理部１６は、図３に示すように、３次元形状要素対取り出し部１８、幾何関係判断部１９、分解線作成部２０の各機能から構成されている。
【００３４】
以下、本実施の形態の動作について説明する。図４は、３次元形状処理装置１のモデル移動処理部１５により実行される処理のフローチャートである。
【００３５】
図４に示すように、まず、３次元形状データのアセンブリ階層中にあるサブアセンブリ（これも部分モデルである）のうち、最も下位にあるサブアセンブリ（以下、サブアセンブリＡと称す）を対象に部分モデルの移動処理を開始する（ステップＳ１）。アセンブリ階層木中のｒｏｏｔ（例えば最上位のアセンブリ）から当該ｎｏｄｅ（当該サブアセンブリ）へ至るまでの階層数が最も大で、階層木中でｒｏｏｔから最も遠い階層のサブアセンブリから移動処理を開始するのである。同一階層に複数のサブアセンブリがある場合には、そのなかから任意の１つを選択して開始する。
【００３６】
サブアセンブリＡを決定するとモデル移動処理部１５は、サブアセンブリＡの子供にあたるすべての部品について、部品間に面合わせまたは軸合わせの位置関係があるか否かを検出する（ステップＳ２）。
【００３７】
なお、アセンブリ走査中にはこのような検出操作を行わず、事前に位置関係テーブルを生成しておき（これについては後述する）、その位置関係テーブルを随時参照して前記した位置関係にある部品を識別してもよい。
【００３８】
ここで、部品同士が面合わせの位置関係にあることを検出するには、法線ベクトルが逆向きで、その一部または全体を３次元空間内で共有する位置関係にある平面が存在するか否かを判定するといった一般的に知られた方法を用いればよい。
【００３９】
また、部品同士が軸合わせの位置関係にあることを検出するには、例えば軸が３次元空間上で一致している円柱面や円錐面、または円弧稜線が存在するか否かという方法を用いればよい。
【００４０】
こうして、面合わせまたは軸合わせの位置関係にある組み合わせがわかると、一つの方法では、そのような２部品のすべてを引き離し移動の対象にするが、同一サブアセンブリに含まれる２部品間の位置関係が面合わせまたは軸合わせの位置関係にあった組み合わせについては、部品移動の対象から除外するようにしてもよい。このような構成では、同一サブアセンブリに含まれる部品は、まとめたままアセンブリ階層中におけるサブアセンブリの単位で分解表示したりすることが可能となる。
【００４１】
面合わせまたは軸合わせの位置関係にあることがわかり、その組を引き離す場合には、面合わせならばその法線ベクトルの方向に従って、軸合わせならば軸の方向に従って部分モデル（この例では部品）を移動する（ステップＳ３）。なお、移動距離はあらかじめ利用者が与えておいてもよいし、移動する部品の境界箱を構成する８つの点の３次元空間上の座標値を移動方向へ射影したときの、座標値の直線上の分布範囲の長さから自動的に決定してもよい。つまり、移動する部品が大きいほど移動量を大きくするのである。
【００４２】
部分モデルを移動した後は、共通の親をもついずれかの他の部分モデル（サブアセンブリや部品）と新たに干渉する（重なる）か否かを検出する（ステップＳ４）。例えばそれぞれの部分モデルの外接直方体である境界箱を求め、その境界箱同士が重なるか否かを検出するのである。そして、干渉している場合には（ステップＳ４のＹ）、その部分モデルと干渉しなくなる位置までさらに同一方向に部分モデルを移動する（ステップＳ５）。
【００４３】
さらに、処理中のサブアセンブリの子供にあたる他のすべての部分モデル（部品だけではなく、サブアセンブリも含む）と干渉するか否かを検出する（ステップＳ６）。
【００４４】
干渉している部分モデルがある場合には（ステップＳ６のＹ）、部分モデル同士が干渉しないように移動する（ステップＳ７）。移動する部分モデルの選択方法および部分モデルを動かす方向の決定方法については、例えば必ずＸ方向に２つのモデルを引き離すように処理してもよいし、直方体となる境界箱の干渉領域の一番短い辺にあたるＸ、Ｙ、Ｚ方向いずれかの方向に部分モデルを移動してもよい。後者の方法を用いれば、干渉を回避しながらモデル移動の距離を最小限におさえることができる。
【００４５】
続いて、処理中のサブアセンブリＡについてすべての部分モデル移動（部分モデルの引き離し）が終了したか否かを判定し（ステップＳ８）、終了していなければ（ステップＳ８のＮ）、サブアセンブリＡに属する前記位置関係にある未処理の組み合わせの中から一つを選択し（ステップＳ９）、同様に部分モデル移動（引き離し）を行う（ステップＳ３〜Ｓ７）。
【００４６】
一方、サブアセンブリＡについて、部分モデル移動が終了した場合には（ステップＳ８のＹ）、サブアセンブリＡと同階層に未処理のサブアセンブリがあるか否かを判定し（ステップＳ１０）、サブアセンブリＡと同階層に未処理のサブアセンブリがある場合には（ステップＳ１０のＹ）、そのなかの一つを選択し（ステップＳ１１）、そのサブアセンブリについてステップＳ２からの処理を繰り返す。
【００４７】
こうして、サブアセンブリＡと同階層のサブアセンブリについて部分モデル移動が終了すると、アセンブリ全体について部分モデル移動（引き離し）が終了したか否かを判定し（ステップＳ１２）、終了していなければ（ステップＳ１２のＮ）、アセンブリ階層を１つ上位に移動し、その階層の一つのサブアセンブリ（最上位階層であればアセンブリ）を選択し（ステップＳ１３）、ステップＳ２から同様に繰り返す。そして、アセンブリ全体について部分モデル移動が終了すると（ステップＳ１２のＹ）、この動作フローを終了させる。
【００４８】
このように階層を辿りながら処理することにより、アセンブリ全体にわたって全ての構成要素間に一切の干渉のない状態で、当該アセンブリが分解・配置された様子を表示することが可能になるとともに、当該アセンブリが分解・配置された様子をプロッタにより紙上に出力して分解した図面を容易に作成することが可能になる。
【００４９】
次に、３次元形状処理装置１の分解線処理部１６により実行される処理について図５および図６を参照しつつ説明する。
【００５０】
まず、アセンブリに含まれる全ての部品において、面合わせまたは軸合わせの関係をもつ２部品の組み合わせを検出する処理について図５を参照しつつ説明する。
【００５１】
図５に示すように、まず、３次元形状要素対取り出し部１８は、アセンブリに含まれるすべての部品から２部品を抽出する全ての組み合わせリストをメモリであるＲＡＭ４内の第１の領域に生成する（ステップＳ２１）。
【００５２】
次いで、幾何関係判断部１９は、組み合わせリスト中の１つの組み合わせについて、面合わせまたは軸合わせの位置関係にあるか否かを検出する（ステップＳ２２）。なお、当該２部品が面合わせの位置関係にあることを検出するには、法線ベクトルが逆向きで、その一部または全体を３次元空間内で共有する位置関係にある平面がそれぞれの部品に存在するか否かを判定するといった一般的に知られた方法を用いればよい。同様に、当該２部品が軸合わせの位置関係にあることを検出するには、例えば軸が３次元空間上で一致している円柱面や円錐面、もしくは円弧稜線がそれぞれの部品に存在するか否かという方法を用いればよい。
【００５３】
続いて、面合わせまたは軸合わせの位置関係にあることが検出された２部品については、その２部品の組み合わせをメモリであるＲＡＭ４内の第２の領域に格納し（ステップＳ２３）、ステップＳ２４に進む。なお、前記第２の領域には、２部品について、面合わせの位置関係にあるのか、軸合わせの位置関係にあるのかという情報も同時に格納する。また、前記第２の領域には、移動のためのベクトル（移動方向を示す情報）も同時に格納する。移動のためのベクトルは、面合わせの場合には法線ベクトルの方向に一致し、軸合わせの場合には軸の方向に一致する。
【００５４】
続くステップＳ２４においては、第１の領域に格納したリストを用いてアセンブリ階層の下位の階層から最上位に至る経路中を走査して、第２の領域に格納した前記２部品の組み合わせを含むサブアセンブリ（またはアセンブリ）ａを検出し、さらに、その２部品のそれぞれを含む、サブアセンブリａ直下のサブアセンブリまたは部品（以下、部分モデルｂ，ｃ）を検出する。
【００５５】
次いで、検出されたサブアセンブリａ、部分モデルｂ，ｃ、前記位置関係および前記ベクトルを、一連の前記位置関係のデータとしてＲＡＭ４内の位置関係テーブルに格納する（ステップＳ２５）。
【００５６】
このようにして作成された位置関係テーブルは前述したようなモデル移動処理部１５での処理に用いることもでき、位置関係テーブルを用いることにより、アセンブリ走査中には位置関係検出操作を行わないで済み、処理効率を上げることができるのである。また、同一アセンブリに含まれる部品間に限らず、複数のアセンブリについて、部品間の位置関係を部品を識別することにより検出することができ、位置関係検出も容易になる。
【００５７】
次に、分解線作成部２０により実行される処理について図６を参照しつつ説明する。
【００５８】
図６に示すように、まず、３次元形状要素対（面合わせまたは軸合わせの位置関係にあることが検出された２部品）を位置関係テーブルからすべて取り出し（ステップＳ３１）、ステップＳ３２に進む。
【００５９】
続くステップＳ３２においては、未処理の３次元形状要素対が存在するか否かを判断し、未処理の３次元形状要素対が存在する場合には（ステップＳ３２のＹ）、ステップＳ３３に進み、未処理の３次元形状要素対の中から一の３次元形状要素対を選択する。
【００６０】
続くステップＳ３４〜Ｓ３６においては、選択された３次元形状要素対が軸合わせ幾何関係または面合わせ幾何関係にあるか否かを判断する。本実施の形態においては、位置関係テーブルを参照することで、３次元形状要素対が軸合わせ幾何関係または面合わせ幾何関係にあるか否かを容易に判断できる。
【００６１】
選択された３次元形状要素対が軸合わせ幾何関係および面合わせ幾何関係にある場合には（ステップＳ３４のＹ、ステップＳ３５のＹ）、ステップＳ３７に進み、軸の方向と面の法線方向が一致しているか否かを調べる。本実施の形態においては、位置関係テーブルに格納された移動のためのベクトル（移動方向を示す情報）を参照することで、軸の方向と面の法線方向が一致しているか否かを容易に判断できる。
【００６２】
選択された３次元形状要素対が軸合わせ幾何関係にある場合（ステップＳ３４のＹ、ステップＳ３５のＮ）、または、軸の方向と面の法線方向が一致していない場合には（ステップＳ３７のＮ）、軸合わせ幾何関係の場合の分解線を表示し（ステップＳ３８）、ステップＳ３２に戻る。
【００６３】
ここで、軸合わせ幾何関係の場合の分解線の両端の位置と方向の定め方について説明する。
１．当該軸の方向を、分解線の両端の線分の方向とする。
２．３次元形状要素対のうち一方の３次元形状要素の境界箱と当該軸との交点を、分解線の一方の端点とする。
３．３次元形状要素対のうち他方の３次元形状要素の境界箱と当該軸との交点を、分解線の他方の端点とする。
【００６４】
また、選択された３次元形状要素対が面合わせ幾何関係にある場合（ステップＳ３４のＮ、ステップＳ３６のＹ）、面合わせ幾何関係の場合の分解線を表示し（ステップＳ３９）、ステップＳ３２に戻る。
【００６５】
ここで、面合わせ幾何関係の場合の分解線の両端の位置と方向の定め方について説明する。
１．当該面の法線方向を、分解線の両端の線分の方向とする。
２．３次元形状要素対のうち一方の３次元形状要素の当該面の境界箱の中心を、分解線の一方の端点とする。
３．３次元形状要素対のうち他方の３次元形状要素の当該面の境界箱の中心を、分解線の他方の端点とする。
【００６６】
一方、軸の方向と面の法線方向が一致している場合には（ステップＳ３７のＹ）、軸合わせ幾何関係かつ面合わせ幾何関係の場合の分解線を表示し（ステップＳ４０）、ステップＳ３２に戻る。
【００６７】
ここで、軸合わせ幾何関係かつ面合わせ幾何関係の場合の分解線の両端の位置と方向の定め方について説明する。
１．当該軸の方向を、分解線の両端の線分の方向とする。
２．３次元形状要素対のうち一方の３次元形状要素（Ａ）の当該軸と当該面との交点を、分解線の一方の端点（ａ）とする。
３．３次元形状要素対のうち他方の３次元形状要素（Ｂ）の当該軸と当該面との交点を、分解線の他方の端点（ｂ）とする。
４．分解線の端点（ａ）から当該軸の方向にのばした直線が、３次元形状要素（Ａ）と複数の交点をもつ場合には、分解線の端点（ｂ）にもっとも近い交点を、あらためて分解線の端点（ａ）とする。
５．分解線の端点（ｂ）から当該軸の方向にのばした直線が、３次元形状要素（Ｂ）と複数の交点をもつ場合には、分解線の端点（ａ）にもっとも近い交点を、あらためて分解線の端点（ｂ）とする。
【００６８】
なお、軸合わせ幾何関係も面合わせ幾何関係も設定されていない場合には（ステップＳ３４のＮ、ステップＳ３６のＮ）、分解線は表示せずに、そのままステップＳ３２に戻る。
【００６９】
以上のステップＳ３３〜Ｓ４０の処理は、未処理の３次元形状要素対が存在しないと判断されるまで（ステップＳ３２のＮ）、繰り返される。
【００７０】
なお、上記いずれの場合の分解線においても、両端の位置と方向以外は任意の折れ線としてよい。たとえば、折れ線は、両端の線分の方向と一致あるいは直交する方向の線分のみから構成されるとしてもよい。また、分解線の端点には、矢印等のマーカーを表示してもよい。
【００７１】
ここで、図７を参照して本実施の形態の具体的な処理例について説明する。図７（ａ）は、簡略化されたネジＡとネジ穴のあいた台Ｂを表わし、一点鎖線で示された軸が軸合わせ幾何関係において互いに合わせられる軸を、太線で示された面が面合わせ幾何関係において互いに合わせられる面を表わしたものである。そして、図７（ｂ）に示す矢印は、軸合わせ幾何関係かつ面合わせ幾何関係の場合の分解線Ｃを表わしたもので、図７（ｃ）に示す矢印は、面合わせ幾何関係の場合の分解線Ｃを表わしたものである。また、図７（ｄ）に示す矢印は、軸合わせ幾何関係の場合の分解線Ｃを表わしたものである。
【００７２】
ここに、面合わせの位置関係または軸合わせの位置関係にあるアセンブリ階層中の３次元形状要素が、互いに分解されて引き離されるように移動されるとともに、移動された３次元形状要素間には各３次元形状要素の互いの軸または面を対応付ける分解線が付される。これにより、３次元形状モデルを構成する各３次元形状要素が分解された様子を分解線によって各３次元形状要素の互いの軸または面に対応付けられた状態で見ることが可能になるので、各３次元形状要素間にどのような幾何関係があるのかが一目で識別可能になる。
【００７３】
なお、本実施の形態においては、軸の方向と面の法線方向が一致していない場合には（ステップＳ３７のＮ）、ステップＳ３８に進み、軸合わせ幾何関係の場合の分解線を表示するようにしたが、これに限るものではない。軸の方向と面の法線方向が一致していない場合には（ステップＳ３７のＮ）、ステップＳ３９に進み、面合わせ幾何関係の場合の分解線を表示するようにしてもよい。
【００７４】
【発明の効果】
請求項１記載の発明の３次元形状処理装置によれば、複数の３次元形状要素から構成される３次元形状モデルを処理する３次元形状処理装置において、アセンブリ階層中にある前記３次元形状要素間の面合わせの位置関係及び軸合わせの位置関係のうち少なくとも１つを検出し、その位置関係にある前記各３次元形状要素を互いに分解して引き離すように移動する移動手段と、前記移動手段により移動された一対の前記３次元形状要素間の位置関係が、面合わせの位置関係か、軸合わせの位置関係か、面合わせの位置関係かつ軸合わせの位置関係かに応じて、端点位置が異なる分解線を付する分解線付与手段と、を備え、面合わせの位置関係または軸合わせの位置関係にあるアセンブリ階層中の３次元形状要素を互いに分解して引き離すように移動するとともに、移動された３次元形状要素間には各３次元形状要素の互いの軸または面を対応付ける分解線を付すことにより、３次元形状モデルを構成する各３次元形状要素を分解した様子を分解線によって各３次元形状要素の互いの軸または面に対応付けられた状態で見ることができるので、各３次元形状要素間にどのような幾何関係があるのかを一目で識別することができる。
【００７５】
請求項２記載の発明によれば、請求項１記載の３次元形状処理装置において、一対の前記３次元形状要素間に軸合わせの位置関係がある場合に、前記分解線付与手段は、軸合わせの軸の方向を前記分解線の両端の線分の方向とし、かつ、一対の前記３次元形状要素のうち一方の前記３次元形状要素の境界箱と前記軸との交点を前記分解線の一方の端点とし、他方の前記３次元形状要素の境界箱と前記軸との交点を前記分解線の他方の端点として、前記分解線を作成することにより、軸合わせの位置関係にある分解された３次元形状要素間に、分解線を確実に作成することができる。
【００７６】
請求項３記載の発明によれば、請求項１記載の３次元形状処理装置において、一対の前記３次元形状要素間に面合わせの位置関係がある場合に、前記分解線付与手段は、面合わせの面の法線方向を前記分解線の両端の線分の方向とし、かつ、一対の前記３次元形状要素のうち一方の前記３次元形状要素の前記面の境界箱の中心を前記分解線の一方の端点とし、他方の前記３次元形状要素の前記面の境界箱の中心を前記分解線の他方の端点として、前記分解線を作成することにより、面合わせの位置関係にある分解された３次元形状要素間に、分解線を確実に作成することができる。
【００７７】
請求項４記載の発明によれば、請求項１記載の３次元形状処理装置において、一対の前記３次元形状要素間に軸合わせの位置関係および面合わせの位置関係があり、かつ、軸合わせの軸の方向と面合わせの面の法線方向が一致している場合に、前記分解線付与手段は、軸合わせの軸の方向または面合わせの面の法線方向を前記分解線の両端の線分の方向とし、かつ、一対の前記３次元形状要素のうち一方の前記３次元形状要素（Ａ）の前記軸と前記面との交点を前記分解線の一方の端点（ａ）とし、他方の３次元形状要素（Ｂ）の前記軸と前記面との交点を前記分解線の他方の端点（ｂ）とし、前記端点（ａ）から前記軸の方向にのばした直線が前記３次元形状要素（Ａ）と複数の交点をもつ場合には前記端点（ｂ）に最も近い交点をあらためて前記分解線の一方の端点（ａ）とし、前記端点（ｂ）から前記軸の方向にのばした直線が前記３次元形状要素（Ｂ）と複数の交点をもつ場合には前記端点（ａ）に最も近い交点をあらためて前記分解線の他方の端点（ｂ）として、前記分解線を作成することにより、軸合わせの位置関係および面合わせの位置関係にあり、かつ、軸合わせの軸の方向と面合わせの面の法線方向が一致している分解された３次元形状要素間に、分解線を確実に作成することができる。
【００７８】
請求項５記載の発明のプログラムによれば、複数の３次元形状要素から構成される３次元形状モデルの処理をコンピュータに実行させるプログラムであって、アセンブリ階層中にある前記３次元形状要素間の面合わせの位置関係及び軸合わせの位置関係のうち少なくとも１つを検出し、その位置関係にある前記各３次元形状要素を互いに分解して引き離すように移動する移動機能と、前記移動機能により移動された一対の前記３次元形状要素間の位置関係が、面合わせの位置関係か、軸合わせの位置関係か、面合わせの位置関係かつ軸合わせの位置関係かに応じて、端点位置が異なる分解線を付する分解線付与機能と、を前記コンピュータに実行させ、面合わせの位置関係または軸合わせの位置関係にあるアセンブリ階層中の３次元形状要素を互いに分解して引き離すように移動するとともに、移動された３次元形状要素間には各３次元形状要素の互いの軸または面を対応付ける分解線を付すことにより、３次元形状モデルを構成する各３次元形状要素を分解した様子を分解線によって各３次元形状要素の互いの軸または面に対応付けられた状態で見ることができるので、各３次元形状要素間にどのような幾何関係があるのかを一目で識別することができる。
【００７９】
請求項６記載の発明によれば、請求項５記載のプログラムにおいて、一対の前記３次元形状要素間に軸合わせの位置関係がある場合に、前記分解線付与機能は、軸合わせの軸の方向を前記分解線の両端の線分の方向とし、かつ、一対の前記３次元形状要素のうち一方の前記３次元形状要素の境界箱と前記軸との交点を前記分解線の一方の端点とし、他方の前記３次元形状要素の境界箱と前記軸との交点を前記分解線の他方の端点として、前記分解線を作成することにより、軸合わせの位置関係にある分解された３次元形状要素間に、分解線を確実に作成することができる。
【００８０】
請求項７記載の発明によれば、請求項５記載のプログラムにおいて、一対の前記３次元形状要素間に面合わせの位置関係がある場合に、前記分解線付与機能は、面合わせの面の法線方向を前記分解線の両端の線分の方向とし、かつ、一対の前記３次元形状要素のうち一方の前記３次元形状要素の前記面の境界箱の中心を前記分解線の一方の端点とし、他方の前記３次元形状要素の前記面の境界箱の中心を前記分解線の他方の端点として、前記分解線を作成することにより、面合わせの位置関係にある分解された３次元形状要素間に、分解線を確実に作成することができる。
【００８１】
請求項８記載の発明によれば、請求項５記載のプログラムにおいて、一対の前記３次元形状要素間に軸合わせの位置関係および面合わせの位置関係があり、かつ、軸合わせの軸の方向と面合わせの面の法線方向が一致している場合に、前記分解線付与機能は、軸合わせの軸の方向または面合わせの面の法線方向を前記分解線の両端の線分の方向とし、かつ、一対の前記３次元形状要素のうち一方の前記３次元形状要素（Ａ）の前記軸と前記面との交点を前記分解線の一方の端点（ａ）とし、他方の３次元形状要素（Ｂ）の前記軸と前記面との交点を前記分解線の他方の端点（ｂ）とし、前記端点（ａ）から前記軸の方向にのばした直線が前記３次元形状要素（Ａ）と複数の交点をもつ場合には前記端点（ｂ）に最も近い交点をあらためて前記分解線の一方の端点（ａ）とし、前記端点（ｂ）から前記軸の方向にのばした直線が前記３次元形状要素（Ｂ）と複数の交点をもつ場合には前記端点（ａ）に最も近い交点をあらためて前記分解線の他方の端点（ｂ）として、前記分解線を作成することにより、軸合わせの位置関係および面合わせの位置関係にあり、かつ、軸合わせの軸の方向と面合わせの面の法線方向が一致している分解された３次元形状要素間に、分解線を確実に作成することができる。
【００８２】
請求項９記載の発明の３次元形状処理方法によれば、複数の３次元形状要素から構成される３次元形状モデルを処理するコンピュータソフトウェアを記憶する記憶手段と、前記コンピュータソフトウェアに基づいて各種処理を実行する制御部と、を備えた３次元形状処理装置の３次元形状処理方法であって、アセンブリ階層中にある前記３次元形状要素間の面合わせの位置関係及び軸合わせの位置関係のうち少なくとも１つを検出し、その位置関係にある前記各３次元形状要素を互いに分解して引き離すように移動する移動工程と、前記移動工程により移動された一対の前記３次元形状要素間の位置関係が、面合わせの位置関係か、軸合わせの位置関係か、面合わせの位置関係かつ軸合わせの位置関係かに応じて、端点位置が異なる分解線を付する分解線付与工程と、を含み、面合わせの位置関係または軸合わせの位置関係にあるアセンブリ階層中の３次元形状要素を互いに分解して引き離すように移動するとともに、移動された３次元形状要素間には各３次元形状要素の互いの軸または面を対応付ける分解線を付すことにより、３次元形状モデルを構成する各３次元形状要素を分解した様子を分解線によって各３次元形状要素の互いの軸または面に対応付けられた状態で見ることができるので、各３次元形状要素間にどのような幾何関係があるのかを一目で識別することができる。
【図面の簡単な説明】
【図１】本発明の実施の一形態の３次元形状処理装置のハードウェア構成を概略的に示すブロック図である。
【図２】３次元形状処理装置の機能ブロック図である。
【図３】分解線処理部の機能を示すブロック図である。
【図４】モデル移動処理部により実行される処理のフローチャートである。
【図５】３次元形状要素対取り出し部および幾何関係判断部により実行される処理のフローチャートである。
【図６】分解線処理部により実行される処理のフローチャートである。
【図７】具体的な処理例を示す説明図である。
【符号の説明】
１        ３次元形状処理装置
１５      移動手段
１６      分解線付与手段
【図１】
0003989737.tif 000002
【図２】
0003989737.tif 000003
【図３】
0003989737.tif 000004
【図４】
0003989737.tif 000005
【図５】
0003989737.tif 000006
【図６】
0003989737.tif 000007
【図７】
0003989737.tif 000008