(57)【要約】【課題】３次元モデルに対して、重複なく寸法を生成し、寸法とその対象となる３次元モデルの要素とを正しく関連づけることが可能な寸法生成装置、寸法生成方法又はプログラムを提供する。【解決手段】モデル要素検出部１２２は、３次元モデルの要素である面及び各面に含まれる稜線、頂点を検出し、各要素の形状、位置又は姿勢を検出する。生成寸法判定部１２３は、検出した各要素の寸法の生成の要否、及び、当該寸法に関連づける他の要素を判定する。生成寸法判定部１２３が寸法生成の必要があると判定した要素に対して、寸法生成部１２４が寸法を生成し、寸法と関連づける要素を示す寸法要素情報を生成する。【選択図】図１
2020144759.tif 000002
【特許請求の範囲】
【請求項１】
３次元モデルの面、稜線及び頂点の少なくとも一部を含む要素の形状、位置又は姿勢を検出するモデル要素検出部と、
前記モデル要素検出部が検出した前記要素の形状、位置又は姿勢に基づいて、前記要素の各々と関連づける寸法の生成の要否、及び、前記寸法に関連づける他の要素を判定する生成寸法判定部と、
前記生成寸法判定部が生成を要すると判定した寸法、及び、前記寸法と関連づける要素を示す寸法要素情報を生成する寸法生成部と、
を備える寸法生成装置。
【請求項２】
基準座標系、及び、前記基準座標系の座標軸に直交する基準要素を決定する基準座標系決定部をさらに備え、
前記寸法生成部が生成する前記寸法は前記基準座標系の座標軸方向の前記基準要素からの直線距離を含む、
請求項１に記載の寸法生成装置。
【請求項３】
前記生成寸法判定部は、前記要素が前記基準要素又は前記基準要素の一部である場合に、当該要素と関連づける寸法を生成する必要がないと判定する、
請求項２に記載の寸法生成装置。
【請求項４】
前記３次元モデルの前記要素が平面を含む場合に、
前記生成寸法判定部は、前記平面が前記基準座標系のいずれの座標軸にも直交していない場合に、当該平面に関連づける前記座標軸方向の寸法を生成する必要がないと判定し、当該平面に含まれる稜線に関連づける寸法の生成の要否を判定する、
請求項２又は３に記載の寸法生成装置。
【請求項５】
前記生成寸法判定部は、前記稜線が前記基準座標系のいずれの座標軸にも直交していない場合に、当該稜線に関連づける前記座標軸方向の寸法を生成する必要がないと判定し、当該稜線の始点及び終点である頂点に関連づける寸法の生成の要否を判定する、
請求項４に記載の寸法生成装置。
【請求項６】
前記３次元モデルの前記要素が円筒の少なくとも一部の面を含む場合に、
前記生成寸法判定部は、前記円筒の中心軸が前記基準座標系のいずれの座標軸にも直交していない場合に、当該中心軸に関連づける前記座標軸方向の寸法を生成する必要がないと判定し、当該中心軸の始点及び終点である頂点に関連づける寸法の生成の要否を判定する、
請求項２から５のいずれか１項に記載の寸法生成装置。
【請求項７】
前記生成寸法判定部は、前記基準要素から前記要素までの、前記要素に直交する座標軸方向の前記直線距離と同一の寸法が生成されている場合に、当該要素に関連づける寸法を生成する必要がないと判定する、
請求項２から６のいずれか１項に記載の寸法生成装置。
【請求項８】
前記寸法生成部は、前記要素が前記基準要素又は前記基準要素の一部でなく、前記要素が前記基準座標系の座標軸のいずれかに直交し、かつ、前記基準要素から前記要素までの前記座標軸方向の前記直線距離と同一の寸法が生成されている場合に、既存の前記寸法に関連づけられている要素の集合に、判定の対象の前記要素を追加する、
請求項２から７のいずれか１項に記載の寸法生成装置。
【請求項９】
前記生成寸法判定部は、既存の前記寸法に関連づけられている要素の集合から、前記判定の対象の前記要素の構成要素を除外する、
請求項８に記載の寸法生成装置。
【請求項１０】
３次元モデルの要素の形状、位置又は姿勢を検出するモデル要素検出ステップと、
前記モデル要素検出ステップで検出した前記要素の各々と関連づける寸法の生成の要否、及び、前記寸法に関連づける他の要素を判定する生成寸法判定ステップと、
前記生成寸法判定ステップで生成を要すると判定した寸法、及び、前記寸法と関連づける要素を示す寸法要素情報を生成する寸法生成ステップと、
を有する寸法生成方法。
【請求項１１】
コンピュータを、
３次元モデルの要素の形状、位置又は姿勢を検出するモデル要素検出部、
前記モデル要素検出部が検出した前記要素の各々と関連づける寸法の生成の要否、及び、前記寸法に関連づける他の要素を判定する生成寸法判定部、
前記生成寸法判定部が生成を要すると判定した寸法、及び、前記寸法と関連づける要素を示す寸法要素情報を生成する寸法生成部、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元モデルの寸法を生成する寸法生成装置、寸法生成方法及びプログラムに関する。
【背景技術】
【０００２】
製品の製造過程において、３Ｄ−ＣＡＤ（3 Dimensional Computer Aided Design）装置により生成した製品の３次元モデルを使用する設計、生産又は測定が行われている。３Ｄ−ＣＡＤ装置には、３次元空間上で３次元モデルに寸法を付加する機能が搭載されているものがある。
【０００３】
３次元モデルに付される寸法は、３次元モデルの１つ又は複数の要素を選択して生成した寸法であり、例えば、２つの平面を選択して生成した、その平面間の直線寸法である。
【０００４】
３次元モデルに付加された寸法情報はＣＡＭ（Computer Aided Manufacturing）又はＣＡＴ（Computer Aided Testing）を含むソフトウェアで読み取られ、加工プログラム又は測定プログラムの自動作成に用いられている。例えば、ＣＮＣ（Computer Numeric Control）３次元測定機において測定プログラムの作成を自動化することが可能である。具体的には、３次元モデルに付加された寸法から、その寸法に関連づけられている２つの面を認識し、それぞれの面を３次元測定する測定機の動作パスの生成を自動化することができる。また、３次元測定の測定結果を寸法の値と比較照合するプログラムの作成を自動化することができる。
【０００５】
３次元モデルに付された寸法情報は、ＣＡＭ又はＣＡＴを含むソフトウェアにより正しく効率的に読み取り可能であることが必要である。ソフトウェアで正確に情報を読み取るためには、３次元モデルに付加される寸法が、その対象となる３次元モデルの１つ又は複数の要素と正しく関連づけられていることが求められる。３次元モデルの要素とは、頂点、稜線、面、円筒中心軸を含む。
【０００６】
一方、３次元モデルに付加される寸法について、後の工程の作業者が正しく情報を読み取ることのできるモデルのアノテーション（Annotation）の表示が要求される。このため、３次元モデルに付与される寸法は、重複なく生成されていることが求められる。
【０００７】
従来、３次元モデルから作成した２次元図面において、寸法を重複なく自動で生成する技術がある（例えば特許文献１）。特許文献１に記載のＣＡＤ装置は、３次元立体図形から、１つ以上の２次元平面上に３角法に基づき２次元平面図形を作成し、２次元平面図形上における水平寸法及び垂直寸法を生成する。２次元平面図形における複数の水平寸法の一方の座標点及び他方の座標点の水平軸に対する値が、共に、複数の水平寸法間で共通となる場合は、複数の水平寸法のいずれか１つのみを生成する。同様に、２次元平面図形における複数の垂直寸法の一方の座標点及び他方の座標点の垂直軸に対する値が、共に、複数の垂直寸法間で共通となる場合は、複数の垂直寸法のいずれか１つのみを生成する。これにより、水平寸法や垂直寸法を重複させることなく寸法情報を付することができると説明されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００６−１０６９３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１に記載された技術は、３次元立体図形から作成した２次元平面図形に対して、一つの平面図内および複数の平面図間で重複がないように配慮された寸法を自動生成するというものである。しかし、特許文献１の方法は３次元空間において生成された３次元モデルへ寸法を付加することができない。
【００１０】
また、２次元平面図形の頂点の座標をもとに寸法の重複を判定しており、３次元モデルの平面、稜線、円筒面、又は円筒中心軸を含む要素を認識していない。このため、寸法と、その対象となる３次元モデルの要素を正しく関連づけることができず、ＣＡＭ又はＣＡＴを含むソフトウェアにより正しく寸法情報を読み取ることができないという問題があった。
【００１１】
例えば、稜線と基準底面との垂直方向の寸法が関連づけられ、稜線を含む平面と基準底面との垂直方向の寸法が関連づけられない場合には、当該平面についての加工又は測定のプログラムが作成されなかった。また、基準底面との垂直方向の寸法が同じ平面が複数有り、その一部の平面のみが寸法と関連づけられている場合には、関連づけられていない平面についての加工又は測定プログラムが作成されなかった。
【００１２】
本発明は、上述のような事情に鑑みてなされたものであり、３次元モデルに対して、重複なく寸法を生成し、寸法とその対象となる３次元モデルの要素とを正しく関連づけることが可能な寸法生成装置、寸法生成方法又はプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本発明の寸法生成装置は、３次元モデルの面、稜線及び頂点の少なくとも一部を含む要素の形状、位置又は姿勢を検出するモデル要素検出部と、モデル要素検出部が検出した要素の形状、位置又は姿勢に基づいて、要素の各々と関連づける寸法の生成の要否、及び、寸法に関連づける他の要素を判定する生成寸法判定部と、生成寸法判定部が生成を要すると判定した寸法、及び、寸法と関連づける要素を示す寸法要素情報を生成する寸法生成部と、を備えることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、３次元モデルの要素の各々について寸法の生成の要否を判定し、当該寸法に関連づける他の要素も判定するため、３次元モデルに対して、重複なく寸法を生成し、寸法とその対象となる３次元モデルの要素とを正しく関連づけることが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態に係る寸法生成装置の構成例を示すブロック図
【図２】本発明の実施の形態１に係る寸法生成処理を示すフローチャート
【図３】基準座標系決定処理を示すフローチャート
【図４】平面寸法生成処理を示すフローチャート
【図５】稜線寸法生成処理を示すフローチャート
【図６】直交稜線寸法生成処理を示すフローチャート
【図７】頂点寸法生成処理を示すフローチャート
【図８】本発明の実施の形態２に係る寸法生成処理を示すフローチャート
【図９】円筒面寸法生成処理を示すフローチャート
【図１０】中心軸寸法生成処理を示すフローチャート
【図１１】頂点寸法生成処理を示すフローチャート
【図１２】３次元モデルの例を示す図
【図１３】３次元モデルの面と番号と基準要素面との対応関係を示す表
【図１４】３次元モデルの例を示す図
【図１５】右側面の稜線と番号との対応関係を示す表
【図１６】３次元モデルに寸法を付加した図
【図１７】寸法と関連づけられた要素を表した表
【図１８】３次元モデルの頂点の位置を示した図
【図１９】３次元モデルに寸法を付加した図
【図２０】各寸法と関連づけられた要素を表した表
【図２１】３次元モデルに寸法を付加した図
【図２２】各寸法と関連づけられた要素を表した表
【図２３】寸法の自動生成不可箇所の表示例を示した図
【発明を実施するための形態】
【００１６】
（実施の形態１）
以下に、本発明を実施するための形態について図面を参照して詳細に説明する。
【００１７】
図１は、この発明の実施の形態１に係る寸法生成装置１の構成例を示すブロック図である。寸法生成装置１は、３次元モデルに対して、１つ又は複数の要素を選択して、これらの要素と関連づける寸法を生成する装置である。３次元モデルは、例えば、３Ｄ−ＣＡＤ装置により生成され、対象物の３次元形状、位置及び姿勢を３次元表示したモデルである。寸法生成装置１は、３Ｄ−ＣＡＤ装置が作成した３次元モデルに対して寸法を生成して付加する装置でもよく、あるいは、寸法生成機能を有する３Ｄ−ＣＡＤ装置の一部分であってもよい。
【００１８】
寸法生成装置１は、３次元モデルのデータが保存されている記憶部１１０と、３次元モデルの１つ又は複数の要素に関連づける寸法を生成する処理を実行する演算部１２０と、オペレータが情報を入力する入力部１３０と、寸法を含む３次元モデルの情報を出力する出力部１４０と、を備える。
【００１９】
記憶部１１０に記憶されている３次元モデルのデータは、対象物の３次元形状、位置及び姿勢を示すものであり、３次元モデルに含まれる各要素に対応づけられている。３次元モデルに含まれる要素は、例えば、頂点、稜線、面、円筒中心軸である。また、記憶部１１０は、演算部１２０が実行するプログラムも格納している。
【００２０】
演算部１２０は、記憶部１１０に格納されているプログラムを実行する演算処理装置であり、例えば、ＣＰＵ（Central Processing Unit）である。演算部１２０は、プログラムを実行することにより、寸法生成の基準となる座標系を決定する基準座標系決定部１２１と、生成する寸法が関連づけられるモデル要素を検出するモデル要素検出部１２２と、検出したモデル要素に対する寸法を生成するか否かを判定する生成寸法判定部１２３と、生成すると判定した寸法を生成し、３次元モデルに対して寸法を付加した情報を出力する寸法生成部１２４として機能する。
【００２１】
基準座標系決定部１２１は、オペレータの入力部１３０への入力に基づいて、３次元の基準座標系を決定し、基準座標系の各座標軸の方向の寸法を生成する際に基準となる基準要素を決定する。本実施の形態では、互いに直交するＸ軸、Ｙ軸、Ｚ軸を有する直交座標系を決定する。また、基準座標系決定部１２１は、決定した基準座標系及び基準要素の識別情報を生成寸法判定部１２３に出力する。
【００２２】
モデル要素検出部１２２は、記憶部１１０に記憶されている３次元モデルから要素を順次検出する。例えば、モデル要素検出部１２２は、３次元モデルの全ての面を検出し、番号を割り当てた後に、番号順に面及び各面に含まれる稜線、頂点の少なくとも一部を含む要素の形状、位置及び姿勢を検出して、生成寸法判定部１２３に出力する。
【００２３】
生成寸法判定部１２３は、基準座標系決定部１２１が決定した基準座標系及び基準要素と、モデル要素検出部１２２が検出した要素の形状、位置又は姿勢と、に基づいて、各要素と関連づける寸法の生成の要否を判定する。例えば、モデル要素検出部１２２が検出した要素が、寸法生成の基準となる基準要素自身又はその一部でなく、基準座標系の座標軸のいずれかと直交し、かつ、同じ寸法が生成されてない場合に、寸法の生成は必要であると判定する。そして、生成する寸法に関連づける他の要素を判定する。一方、モデル要素検出部１２２が検出した要素が、寸法生成の基準となる基準要素自身又はその一部であるか、基準座標系のいずれの座標軸とも直交しないか、又は、既に同じ寸法が生成されている場合には寸法の生成は必要ないと判定する。
【００２４】
寸法生成部１２４は、生成寸法判定部１２３が寸法生成の必要があると判定した要素に対して寸法、及び、当該寸法に関連づける要素を示す寸法要素情報を生成し、記憶部１１０に記憶する。また、寸法生成部１２４は、寸法を３次元モデルに付加する処理を行い、寸法を付加した３次元モデルのデータ又は寸法要素情報を出力部１４０に出力する。
【００２５】
入力部１３０は、情報を入力する任意のデバイスであり、例えば、キーボート又はマウス、タッチパネルを含むポインティングデバイスである。入力部１３０には、演算部１２０の処理に必要な情報がオペレータにより入力される。例えば、基準座標系及び各座標軸の基準要素を決定する際に必要となる３つの互いに直交する要素をオペレータが選択して入力部１３０に対して入力する。入力部１３０に入力された情報は演算部１２０の基準座標系決定部１２１に出力される。
【００２６】
出力部１４０は、画像又は文字情報を表示するディスプレイを含む。出力部１４０は、寸法を付加した３次元モデルをディスプレイに表示させる。また、出力部１４０は、寸法及びその寸法に関連づけられた寸法要素情報を配列した表をディスプレイに表示してもよい。
【００２７】
以上のように構成された寸法生成装置１の動作について、図２に示すフローチャートを用いて説明する。図２は、寸法生成処理を示すフローチャートである。なお、寸法生成処理を開始する時点で、寸法を生成する対象の３次元モデルのデータが記憶部１１０に記憶されている。
【００２８】
まず、演算部１２０のモデル要素検出部１２２が、３次元モデルのすべての面に対して、番号を割り当てる（ステップＳ２０１）。このとき割り当てた面の番号の最大値をｎとする。本実施の形態では、番号を割り当てた面が全て平面である場合について説明する。
【００２９】
次に、オペレータが、寸法生成の基準となる３つの直交する要素を、３次元モデルの要素の中から選択して入力部１３０に入力したときに、その入力に基づいて、基準座標系決定部１２１が互いに直交する基準座標系及び各座標軸方向の基準要素を決定する（ステップＳ２０２）。
【００３０】
ステップＳ２０２の基準座標系決定処理について、図３のフローチャートを用いて詳細に説明する。まず、オペレータは、３次元モデル上で１つの直交座標系を想定して、その各座標軸に直交する３つの要素を選択し、入力部１３０に入力する。選択可能な要素は、各座標軸に直交する平面、直線の稜線、円筒中心軸である。このオペレータの入力に基づいて、基準座標系決定部１２１は、基準座標系を決定する（ステップＳ３０１）。基準座標系は予め設定しておいた直交座標系から選択してもよく、又は、演算部１２０が新規に直交座標系を作成してもよい。
【００３１】
次に、基準座標系決定部１２１は、ステップＳ３０１で決定した基準座標系のＸ軸方向の寸法を生成する際の基準となる基準要素を決定する（ステップＳ３０２）。基準要素はＸ軸に直交する要素であり、例えばＸ軸に直交する平面、直線の稜線又は円筒中心軸である。ここで、基準座標系決定部１２１は、予め定めた優先順位に従って基準要素を決定してもよく、又は、オペレータに基準要素の選択入力を促し、オペレータの入力に基づいて決定してもよい。
【００３２】
同様に、基準座標系決定部１２１は、Ｙ軸方向の寸法を生成する際の基準となる基準要素を決定し（ステップＳ３０３）、Ｚ軸方向の寸法を生成する際の基準となる基準要素を決定して（ステップＳ３０４）、基準座標系決定処理を終了する。
【００３３】
本実施の形態では、Ｘ軸方向の基準要素が平面である基準要素面Ｅｘであり、Ｙ軸方向の基準要素が平面である基準要素面Ｅｙであり、Ｚ軸方向の基準要素が平面である基準要素面Ｅｚである場合について説明する。
【００３４】
図２のフローチャートにおいて、ステップＳ２０２の基準座標系決定処理の後に、変数Ｐに０を代入する（ステップＳ２０３）。ここで、Ｐは０以上の整数である。次に、変数Ｐに１を加算する（ステップＳ２０４）。その後、生成寸法判定部１２３は、番号Ｐの面が、ステップＳ２０２にて基準要素面として指定された面か否かを判定する（ステップＳ２０５）。以下、番号Ｐの面をＥＰと表す。
【００３５】
ステップＳ２０５において、番号Ｐの面ＥＰが基準要素面である場合にはＳ２０７に進む。番号Ｐの面ＥＰが基準要素面でない場合には、平面寸法生成処理を実行する（ステップＳ２０６）。平面寸法生成処理が終了した後、変数Ｐの値が、面の番号の最大値ｎより小さいか否かを判定する（ステップＳ２０７）。変数Ｐがｎより小さい場合（ステップＳ２０７：Ｙｅｓ）、まだ処理していない面があるためＳ２０４へ戻る。変数Ｐがｎ以上である場合（ステップＳ２０７：Ｎｏ）、番号を付したすべての面に対してステップＳ２０５，Ｓ２０６の処理を実行したため、本フローの処理を終了する。
【００３６】
ステップＳ２０６で実行した平面寸法生成処理について詳細に説明する。図４は平面寸法生成処理を示したフローチャートである。
【００３７】
まず、生成寸法判定部１２３は、番号Ｐの面ＥＰが基準座標系のＸ軸、Ｙ軸、Ｚ軸のいずれかに直交するか否か判定する（ステップＳ４０１）。いずれの軸とも直交しない場合は（ステップＳ４０１：Ｎｏ）ステップＳ４０３に進む。
【００３８】
面ＥＰがＸ軸、Ｙ軸、Ｚ軸のいずれかに直交する場合（ステップＳ４０１：Ｙｅｓ）、ＥＰに直交する軸を軸Ａ、直交する軸Ａの基準要素面をＥａとする（ステップＳ４０２）。つまり、軸ＡはＸ軸、Ｙ軸、Ｚ軸のうちＥＰに直交する軸であり、ＥａはＥｘ，Ｅｙ，Ｅｚのうち、軸Ａの基準要素面である。
【００３９】
生成寸法判定部１２３は、既に生成した寸法の中に、ＥａからＥＰまでの軸Ａの方向の直線距離と同一である寸法があるか否かを判定する（ステップＳ４０４）。同一距離の寸法がない場合（ステップＳ４０４：Ｎｏ）、寸法生成部１２４が、基準要素面Ｅａと番号Ｐの面ＥＰに関連づける軸Ａの方向の直線距離の寸法を生成し（ステップＳ４０５）、本フローの処理を終了する。
【００４０】
生成寸法判定部１２３は、同一距離の生成済の寸法がある場合に（ステップＳ４０４：Ｙｅｓ）、その寸法Ｄｔと関連づけられた要素の集合ＥｔにＥＰを追加する（ステップＳ４０６）。次に、要素の集合Ｅｔの中にＥＰの面を構成する稜線又は頂点が含まれているか否かを判定する（ステップＳ４０７）。含まれていない場合は（ステップＳ４０７：Ｎｏ）、本フローの処理を終了する。含まれている場合（ステップＳ４０７：Ｙｅｓ）、当該稜線又は頂点を寸法Ｄｔと関連づけられた要素の集合Ｅｔから除外して（ステップＳ４０８）、本フローの処理を終了する。これにより、集合ＥｔにＥＰを追加した後に、ＥＰの構成要素である稜線又は頂点を除外するため、関連づけの重複を回避することができる。
【００４１】
ステップＳ４０１において、番号Ｐの面ＥＰが基準座標系のＸ軸、Ｙ軸、Ｚ軸のいずれの軸とも直交しない場合は（ステップＳ４０１：Ｎｏ）、ＥＰの面の構成要素である稜線の寸法を生成する稜線寸法生成処理を実行した後に（ステップＳ４０３）、本フローの処理を終了する。
【００４２】
ステップＳ４０３で実行する稜線寸法生成処理について詳細に説明する。図５は稜線寸法生成処理を示したフローチャートである。
【００４３】
まず、モデル要素検出部１２２が、ＥＰの面を構成する１つ又は複数の稜線に１から順に番号を割り当てる（ステップＳ５０１）。割り当てた番号の最大値をｍとする。以下、番号Ｐの面ＥＰを構成する番号Ｑの稜線をＬＰＱと表す。次に、変数Ｑに０を代入する（ステップＳ５０２）。次に、変数Ｑに１を加算する（ステップＳ５０３）。
【００４４】
次に、生成寸法判定部１２３は、稜線ＬＰＱがＸ軸、Ｙ軸、Ｚ軸のいずれか２つの軸に直交するか否かを判定する（ステップＳ５０４）。直交しない場合は（ステップＳ５０４：Ｎｏ）ステップＳ５０５に進む。稜線ＬＰＱがＸ軸、Ｙ軸、Ｚ軸のいずれか２つの軸に直交する場合は（ステップＳ５０４：Ｙｅｓ）、直交する２つの軸を軸Ａｗとし、軸Ａｗの基準要素面をＥａｗとする（ステップＳ５０６）。ここで、ｗは０以上の整数である。つまり、軸ＡｗはＸ軸、Ｙ軸、Ｚ軸のうち稜線ＬＰＱに直交する２つの軸であり、ＥａｗはＥｘ，Ｅｙ，Ｅｚのうち、稜線ＬＰＱに直交する２つの軸Ａｗそれぞれの基準要素面である。
【００４５】
次に、変数ｗに０を代入し（ステップＳ５０７）、変数ｗに１を加算する（ステップＳ５０８）。そして、そのときの変数ｗについて、稜線ＬＰＱに直交する軸Ａｗの方向の稜線ＬＰＱの寸法を生成する直交稜線寸法生成処理を実行する（ステップＳ５０９）。その後、変数ｗの値が２より小さい場合（ステップＳ５１０：Ｙｅｓ）、軸Ａ２方向の寸法が未処理であるためステップＳ５０８に戻る。変数ｗが２以上の場合（ステップＳ５１０：Ｎｏ）、ステップＳ５１４に進む。
【００４６】
ステップＳ５０４において、稜線ＬＰＱがＸ軸、Ｙ軸、Ｚ軸のいずれか２つの軸に直交しないが（ステップＳ５０４：Ｎｏ）、稜線ＬＰＱがＸ軸、Ｙ軸、Ｚ軸のいずれか１つの軸に直交する場合には（ステップＳ５０５：Ｙｅｓ）、直交する１つの軸を軸Ａｗとし、軸Ａｗの基準要素面をＥａｗとする（ステップＳ５１１）。ここで、ｗは１である。つまり、軸ＡｗはＸ軸、Ｙ軸、Ｚ軸のうち稜線ＬＰＱに直交する１つの軸であり、ＥａｗはＥｘ，Ｅｙ，Ｅｚのうち、稜線ＬＰＱに直交する１つの軸Ａｗの基準要素面である。
【００４７】
次に、稜線ＬＰＱに直交する軸Ａｗの方向の稜線ＬＰＱの寸法を生成する直交稜線寸法生成処理を実行する（ステップＳ５１２）。その後、ステップＳ５１３に進む。また、ステップＳ５０５において、稜線ＬＰＱがＸ軸、Ｙ軸、Ｚ軸のいずれとも直交しない場合に（ステップＳ５０５：Ｎｏ）、ステップＳ５１３に進む。ステップＳ５１３において、稜線ＬＰＱをの始点及び終点である頂点と基準要素面との間の寸法を生成する頂点寸法生成処理を実行する（ステップＳ５１３）。
【００４８】
次のステップＳ５１４において、変数Ｑがｍより小さいか否かを判定する。ｍより小さい場合は（ステップＳ５１４：Ｙｅｓ）、まだ寸法生成処理を実行していない稜線があるため、ステップＳ５０３に戻る。変数Ｑがｍ以上の場合（ステップＳ５１４：Ｎｏ）、面ＥＰを構成する稜線すべてについて寸法生成処理が完了しているため本フローの処理を終了する。
【００４９】
図５のフローチャートにおいて、ステップＳ５０９及びＳ５１２で実行する直交稜線寸法生成処理、並びにステップＳ５１３で実行する頂点寸法生成処理について、図６、７のフローチャートを用いて詳細に説明する。図６は、直交稜線寸法生成処理を示すフローチャートであり、図７は、頂点寸法生成処理を示すフローチャートである。
【００５０】
図６に示す直交稜線寸法生成処理において、まず、生成寸法判定部１２３が、Ｑ番目の稜線ＬＰＱに直交する軸Ａｗの基準要素面Ｅａｗの構成要素に、稜線ＬＰＱが含まれているか否かを判定する（ステップＳ６０１）。稜線ＬＰＱが基準要素面Ｅａｗの構成要素に含まれている場合には（ステップＳ６０１：Ｙｅｓ）、寸法生成の必要がないため、本フローの処理を終了する。
【００５１】
稜線ＬＰＱが基準要素面Ｅａｗの構成要素でない場合には（ステップＳ６０１：Ｎｏ）、既に生成した寸法の中で、基準要素面Ｅａｗから稜線ＬＰＱまでの軸Ａｗ方向の直線距離と同一である寸法があるか否かを生成寸法判定部１２３が判定する（ステップＳ６０２）。同一距離の生成済の寸法がない場合（ステップＳ６０２：Ｎｏ）、寸法生成部１２４が、基準要素面Ｅａｗと稜線ＬＰＱに関連づけられた軸Ａｗ方向の直線寸法を生成し（ステップＳ６０３）、本フローの処理を終了する。
【００５２】
基準要素面Ｅａｗから稜線ＬＰＱまでの軸Ａｗ方向の直線距離と同一である寸法が１つ又は複数ある場合（ステップＳ６０２：Ｙｅｓ）、その寸法をＤｔ、その寸法に関連づいた要素の集合をＥｔとしたとき、生成寸法判定部１２３は集合Ｅｔの中にＬＰＱ自身が含まれているかを判定する（ステップＳ６０４）。集合Ｅｔの中にＬＰＱ自身が含まれている場合は（ステップＳ６０４：Ｙｅｓ）、本フローの処理を終了する。
【００５３】
生成寸法判定部１２３は、集合Ｅｔの中にＬＰＱ自身が含まれておらず（ステップＳ６０４：Ｎｏ）、かつ、集合Ｅｔの中に、ＬＰＱを構成要素として有する面が含まれているか否かを判定する（ステップＳ６０５）。含まれる場合（ステップＳ６０５：Ｙｅｓ）、本フローの処理を終了する。
【００５４】
集合Ｅｔの中に、ＬＰＱを構成要素としてもつ面が含まれていない場合は（ステップＳ６０５：Ｎｏ）、寸法Ｄｔと関連づけられた要素の集合ＥｔにＬＰＱを追加で関連づける（ステップＳ６０６）。そして、集合Ｅｔの中に、ＬＰＱの始点又は終点である頂点が含まれている場合（ステップＳ６０７：Ｙｅｓ）、対象の頂点を寸法Ｄｔと関連づけられた要素の集合Ｅｔから除外して（ステップＳ６０８）、本フローの処理を終了する。これにより、集合ＥｔにＬＰＱを追加した後に、ＬＰＱの構成要素である始点又は終点を除外するため、関連づけの重複を回避することができる。集合Ｅｔの中に、ＬＰＱの始点又は終点である頂点が含まれていない場合（ステップＳ６０７：Ｎｏ）はそのまま処理を終了する。
【００５５】
図７に示す頂点寸法生成処理において、まず、稜線ＬＰＱの始点と終点の頂点をそれぞれＯＰＱ１、ＯＰＱ２とする（ステップＳ７０１）。次に、変数Ｕ及びＶに０を代入する（ステップＳ７０２）。次に、変数Ｕに１を加算し（ステップＳ７０３）、変数Ｖに１を加算する（ステップＳ７０４）。
【００５６】
次に、変数Ｖが１のとき、軸ＡをＸ軸とし軸Ａの基準要素面ＥａをＥｘとする。変数Ｖが２のとき、軸ＡをＹ軸とし軸Ａの基準要素面ＥａをＥｙとする。変数Ｖが３のとき、軸ＡをＺ軸とし軸Ａの基準要素面ＥａをＥｚとする（ステップＳ７０５）。
【００５７】
次に、生成寸法判定部１２３が、変数Ｕに対する頂点ＯＰＱＵがＥａの構成要素であるか判定し、構成要素である場合は（ステップＳ７０６：Ｙｅｓ）、頂点寸法を生成せずにステップＳ７１２に進む。一方、頂点ＯＰＱＵがＥａの構成要素でない場合は（ステップＳ７０６：Ｎｏ）、既に生成した寸法の中で、基準要素面Ｅａから頂点ＯＰＱＵまでの軸Ａ方向の直線距離と同一の寸法があるか否かを判定する（ステップＳ７０７）。
【００５８】
同一距離の寸法がない場合（ステップＳ７０７：Ｎｏ）、寸法生成部１２４が基準要素面Ｅａ及び頂点ＯＰＱＵに関連づける軸Ａ方向の直線寸法を新規に生成する（ステップＳ７０８）。ステップＳ７０７において、同一距離の生成済の寸法があると判定した場合は（ステップＳ７０７：Ｙｅｓ）、ステップＳ７０９に進む。
【００５９】
同一距離の生成済みの寸法をＤｔとし、その寸法に関連づけられた要素の集合をＥｔとしたとき、集合Ｅｔの中にＯＰＱＵ自身が含まれている場合は（ステップＳ７０９：Ｙｅｓ）、ステップＳ７１２に進む。一方、集合Ｅｔの中にＯＰＱＵが含まれていないときは（ステップＳ７０９：Ｎｏ）、生成寸法判定部１２３が、寸法Ｄｔと関連づけられた要素の集合Ｅｔの中に、ＯＰＱＵを構成要素として有する面又は稜線が含まれているか否かを判定する（ステップＳ７１０）。
【００６０】
集合Ｅｔの中に、ＯＰＱＵを構成要素としてもつ面又は稜線が含まれていない場合は（ステップＳ７１０：Ｎｏ）、Ｄｔと関連づけられた要素の集合ＥｔにＯＰＱＵを追加する（ステップＳ７１１）。集合Ｅｔの中に、ＯＰＱＵを構成要素としてもつ面又は稜線が含まれている場合は（ステップＳ７１０：Ｙｅｓ）、そのままステップＳ７１２に進む。
【００６１】
ステップＳ７１２において、変数Ｖの値が３より小さい場合は（ステップＳ７１２：Ｙｅｓ）、まだ処理していない軸方向があるため、Ｓ７０４に戻る。変数Ｖが３以上の場合（ステップＳ７１２：Ｎｏ）、Ｘ軸、Ｙ軸、Ｚ軸の３つの軸方向すべてに対して寸法生成の処理を完了しているためＳ７１３に進む。
【００６２】
ステップＳ７１３において、変数Ｕの値が２より小さい場合は（ステップＳ７１３：Ｙｅｓ）、始点又は終点の頂点について未処理であるためＳ７０３に戻る。変数Ｕが２以上の場合、始点及び終点の頂点に対して寸法生成の処理が完了しているため本フローの処理を終了する。
【００６３】
このように、図２から図７のフローチャートに示した寸法生成処理を実行することにより、３次元モデルの全ての面及び各面の構成要素である稜線、頂点の基準要素面に対する寸法を、重複なく要素と関連づけて生成することができる。
【００６４】
寸法生成部１２４は、生成した寸法を付加した３次元モデルデータ及びその寸法に関連づけられた寸法要素情報を記憶部１１０に記憶するとともに出力部１４０に出力する。出力部１４０は、寸法を付加した３次元モデルをディスプレイに表示させる。また、出力部１４０は、寸法及びその寸法に関連づけられた寸法要素情報を配列した表をディスプレイに表示してもよい。
【００６５】
以上説明したように本実施の形態に係る寸法生成装置１は、モデル要素検出部１２２が、３次元モデルの要素である面及び各面に含まれる稜線、頂点を検出し、生成寸法判定部１２３が、検出した各要素の寸法の生成の要否を判定する。生成寸法判定部１２３は、検出した各要素が寸法生成の基準となる基準要素面又はその構成要素でなく、各要素が基準座標系の座標軸に直交し、かつ、同一距離の寸法が生成されてない場合に、寸法の生成が必要であると判定する。そして、生成寸法判定部１２３が寸法生成の必要があると判定した要素について、寸法生成部１２４が寸法を生成し、３次元モデルに付加する処理を行うとした。これにより、３次元モデルに対して、重複なく寸法を生成し、３次元モデルの各要素と寸法とを正しく関連づけることが可能となる。
【００６６】
（実施の形態２）
以下に、この発明の実施の形態２について図面を参照して詳細に説明する。寸法生成装置１の構成は実施の形態１と同様であるが、演算部１２０が実行する寸法生成処理が実施の形態１と一部異なる。本実施の形態に係る寸法生成処理について詳細に説明する。
【００６７】
図８は、本実施の形態に係る寸法生成処理のフローチャートである。実施の形態１と同様に、寸法生成処理を開始する時点では、寸法を生成する対象の３次元モデルのデータが記憶部１１０に記憶されている状態である。
【００６８】
図８に示す寸法生成処理において、ステップＳ８０１〜Ｓ８０５の処理は、図２に示す実施の形態１に係る寸法生成処理のステップＳ２０１〜Ｓ２０５と同様である。なお、ステップＳ８０１において、モデル要素検出部１２２が番号を割り当てる面は、平面、円筒面及びその他の曲面を含む。
【００６９】
ステップＳ８０５において、番号Ｐの面ＥＰが基準要素面である場合にはＳ８１１に進む。生成寸法判定部１２３は、番号Ｐの面ＥＰが基準要素面でない場合に（ステップＳ８０５：Ｎｏ）、面ＥＰが平面であるか判定し（ステップＳ８０６）、ＥＰが平面である場合は（ステップＳ８０６：Ｙｅｓ）、平面寸法生成処理を実行する（ステップＳ８０７）。平面寸法生成処理は、実施の形態１と同様の図４に示す処理である。
【００７０】
生成寸法判定部１２３は、ＥＰが平面でなかった場合に（ステップＳ８０６：Ｎｏ）、ＥＰが円筒面又は円筒面の一部であるか否かを判定する（ステップＳ８０８）。ＥＰが円筒面又は円筒面の一部であった場合は（ステップＳ８０８：Ｙｅｓ）、円筒面に係る寸法を生成する円筒面寸法生成処理を実行する（ステップＳ８０９）。
【００７１】
生成寸法判定部１２３は、ＥＰが円筒面又は円筒面の一部でなかった場合に（ステップＳ８０８：Ｎｏ）、ＥＰが寸法自動生成の対象外の面であると判定し、記憶部１１０に面の番号Ｐを記憶する（ステップ８１０）。その後、変数Ｐが面の番号の最大値ｎより小さい場合は（ステップＳ８１１：Ｙｅｓ）、まだ未処理の面があるため、ステップＳ８０４に戻る。一方、変数Ｐがｎ以上である場合は、全ての面について寸法生成の処理が完了しているため、ステップＳ８１２に進む。
【００７２】
ステップＳ８１２において、寸法生成部１２４が、寸法を自動生成できなかった要素を画面上に表示させ（ステップＳ８１２）、オペレータに手動での寸法生成を促し、オペレータの入力に基づいて、自動生成不可箇所の寸法を生成して出力部１４０に出力する。その後、本フローの処理を終了する。
【００７３】
ステップＳ８０９の、円筒面寸法生成処理の詳細について説明する。図９は円筒面寸法生成処理を示すフローチャートである。
【００７４】
まず、生成寸法判定部１２３が、ＥＰの円筒面の角度が１８０°以上であるか否かを判定する（ステップＳ９０１）。寸法生成部１２４は、１８０°以上の場合（ステップＳ９０１：Ｙｅｓ）、円筒面ＥＰの直径寸法を生成し（ステップＳ９０２）、１８０°より小さい場合（ステップＳ９０１：Ｎｏ）、円筒面ＥＰの半径寸法を生成する（ステップＳ９０３）。
【００７５】
次に、生成寸法判定部１２３が、円筒面ＥＰを有する円筒の中心軸ＣＰがＸ軸、Ｙ軸、Ｚ軸のいずれか２つの軸に直交するか否かを判定し（ステップＳ９０４）、直交しない場合は（ステップＳ９０４：Ｎｏ）ステップＳ９０５に進む。中心軸ＣＰがＸ軸、Ｙ軸、Ｚ軸のいずれか２つの軸に直交する場合は（ステップＳ９０４：Ｙｅｓ）、直交する２つの軸を軸Ａｗとし、軸Ａｗの基準要素面をＥａｗとする（ステップＳ９０６）。ここで、ｗは０以上の整数である。つまり、軸ＡｗはＸ軸、Ｙ軸、Ｚ軸のうち中心軸ＣＰに直交する２つの軸であり、ＥａｗはＥｘ，Ｅｙ，Ｅｚのうち、中心軸ＣＰに直交する２つの軸Ａｗそれぞれの基準要素面である。
【００７６】
次に、変数ｗに０を代入し（ステップＳ９０７）、変数ｗに１を加算する（ステップＳ９０８）。そして、そのときの変数ｗについて、中心軸ＣＰに直交する軸Ａｗの方向の中心軸ＣＰの寸法を生成する中心軸寸法生成処理を実行する（ステップＳ９０９）。その後、変数ｗの値が２より小さい場合（ステップＳ９１０：Ｙｅｓ）、軸Ａ２方向の寸法が未処理であるためステップＳ９０８に戻る。変数ｗが２以上の場合（ステップＳ９１０：Ｎｏ）、本フローの処理を終了する。
【００７７】
ステップＳ９０４において、中心軸ＣＰがＸ軸、Ｙ軸、Ｚ軸のいずれか２つの軸に直交しないが（ステップＳ９０４：Ｎｏ）、中心軸ＣＰがＸ軸、Ｙ軸、Ｚ軸のいずれか１つの軸に直交する場合には（ステップＳ９０５：Ｙｅｓ）、直交する１つの軸を軸Ａｗとし、軸Ａｗの基準要素面をＥａｗとする（ステップＳ９１１）。ここで、ｗは１である。つまり、軸ＡｗはＸ軸、Ｙ軸、Ｚ軸のうち中心軸ＣＰに直交する１つの軸であり、ＥａｗはＥｘ，Ｅｙ，Ｅｚのうち、中心軸ＣＰに直交する１つの軸Ａｗの基準要素面である。
【００７８】
次に、中心軸ＣＰに直交する軸Ａｗの方向の中心軸ＣＰの寸法を生成する中心軸寸法生成処理を実行する（ステップＳ９１２）。その後、ステップＳ９１３に進む。また、ステップＳ９０５において、中心軸ＣＰがＸ軸、Ｙ軸、Ｚ軸のいずれとも直交しない場合に（ステップＳ９０５：Ｎｏ）、ステップＳ９１３に進む。ステップＳ９１３において、中心軸ＣＰの始点及び終点である頂点と基準要素面との間の寸法を生成する頂点寸法生成処理を実行し（ステップＳ９１３）、その後、本フローの処理を終了する。
【００７９】
図９のフローチャートにおいて、ステップＳ９０９及びＳ９１２で実行する中心軸寸法生成処理、並びにステップＳ９１３で実行する頂点寸法生成処理について、図１０、１１のフローチャートを用いて詳細に説明する。図１０は、中心軸寸法生成処理を示すフローチャートであり、図１１は、頂点寸法生成処理を示すフローチャートである。
【００８０】
図１０に示す中心軸寸法生成処理において、まず、生成寸法判定部１２３は、円筒の中心軸ＣＰに直交する軸Ａｗの基準要素面Ｅａｗの構成要素に、中心軸ＣＰが含まれているか否かを判定する（ステップＳ１００１）。中心軸ＣＰが基準要素面Ｅａｗの構成要素に含まれている場合には（ステップＳ１００１：Ｙｅｓ）、寸法生成の必要がないため、本フローの処理を終了する。
【００８１】
生成寸法判定部１２３は、中心軸ＣＰが基準要素面Ｅａｗの構成要素でない場合には（ステップＳ１００１：Ｎｏ）、既に生成した寸法の中に、基準要素面Ｅａｗから中心軸ＣＰまでの軸Ａｗ方向の直線距離と同一である寸法があるか否かを判定する（ステップＳ１００２）。同一距離の生成済の寸法がない場合（ステップＳ１００２：Ｎｏ）、寸法生成部１２４が中心軸ＣＰに関連づける軸Ａｗ方向の直線寸法を生成し（ステップＳ１００３）、本フローの処理を終了する。
【００８２】
基準要素面Ｅａｗから中心軸ＣＰまでの軸Ａｗ方向の直線距離と同一である寸法が１つ又は複数ある場合（ステップＳ１００２：Ｙｅｓ）、その寸法Ｄｔと関連づけられた要素の集合Ｅｔに中心軸ＣＰを追加で関連づけて（ステップＳ１００４）、本フローの処理を終了する。
【００８３】
図１１に示す頂点寸法生成処理において、まず、円筒の中心軸ＣＰの始点と終点の頂点をそれぞれＯＰＱ１、ＯＰＱ２とする（ステップＳ１１０１）。次に、変数Ｕ及びＶに０を代入する（ステップＳ１１０２）。次に、変数Ｕに１を加算し（ステップＳ１１０３）、変数Ｖに１を加算する（ステップＳ１１０４）。
【００８４】
次に、変数Ｖが１のとき、軸ＡをＸ軸とし軸Ａの基準要素面ＥａをＥｘとする。変数Ｖが２のとき、軸ＡをＹ軸とし軸Ａの基準要素面ＥａをＥｙとする。変数Ｖが３のとき、軸ＡをＺ軸とし軸Ａの基準要素面ＥａをＥｚとする（ステップＳ１１０５）。
【００８５】
次に、生成寸法判定部１２３が、変数Ｕに対する頂点ＯＰＱＵがＥａの構成要素であるか否かを判定し、構成要素である場合は（ステップＳ１１０６：Ｙｅｓ）、頂点寸法を生成せずにステップＳ１１１１に進む。一方、頂点ＯＰＱＵがＥａの構成要素でない場合は（ステップＳ１１０６：Ｎｏ）、既に生成した寸法の中で、基準要素面Ｅａから頂点ＯＰＱＵまでの軸Ａ方向の直線距離と同一の寸法があるか否かを判定する（ステップＳ１１０７）。
【００８６】
同一距離の寸法がない場合（ステップＳ１１０７：Ｎｏ）、寸法生成部１２４が基準要素面Ｅａ及び頂点ＯＰＱＵに関連づけられた軸Ａ方向の直線寸法を新規に生成する（ステップＳ１１１０）。ステップＳ１１０７において、同一距離の生成済の寸法があると判定した場合は（ステップＳ１１０７：Ｙｅｓ）、Ｄｔと関連づけられた要素の集合ＥｔにＯＰＱＵを追加する（ステップＳ１１０９）。
【００８７】
その後、ステップＳ１１１１において、変数Ｖの値が３より小さい場合は（ステップＳ１１１１：Ｙｅｓ）、まだ処理していない軸方向があるため、ステップＳ１１０４に戻る。変数Ｖが３以上の場合は（ステップＳ１１１１：Ｎｏ）、３つのＸ軸、Ｙ軸、Ｚ軸の軸方向すべてに対して寸法生成の処理を完了しているためステップＳ１１１２に進む。
【００８８】
ステップＳ１１１２において、変数Ｕの値が２より小さい場合は（ステップＳ１１１２：Ｙｅｓ）、始点又は終点の頂点について未処理であるとしてステップＳ１１０３に戻る。変数Ｕが２以上の場合、始点及び終点の頂点に対して寸法の処理が完了しているため本フローの処理を終了する。
【００８９】
このように、図８から図１１のフローチャートに示した寸法生成処理を実行することにより、３次元モデルの円筒面及びその他の曲面を含む全ての面及びそれを構成する稜線、円筒の中心軸、頂点の基準要素面に対する寸法を、重複なく関連づけて生成することができる。
【００９０】
寸法生成部１２４は、生成した寸法を付加した３次元モデルデータ及びその寸法に関連づけられた寸法要素情報を記憶部１１０に記憶するとともに出力部１４０に出力する。出力部１４０は、寸法を付加した３次元モデルをディスプレイに表示させる。また、出力部１４０は、寸法及びその寸法に関連づけられた寸法要素情報を配列した表をディスプレイに表示してもよい。
【００９１】
以上説明したように本実施の形態に係る寸法生成処理は、モデル要素検出部１２２が、３次元モデルの要素である円筒面を含む面及び各面に含まれる稜線、頂点を検出し、生成寸法判定部１２３が、面が円筒面であった場合に、円筒の中心軸及び中心軸を構成する頂点の基準要素面に対する寸法の要否を判定する。そして、生成寸法判定部１２３が寸法生成の必要があると判定した要素について、寸法生成部１２４が寸法を生成し、３次元モデルに付加する処理を行うとした。これにより、３次元モデルに円筒面が含まれる場合にも、重複なく寸法を生成し、円筒の中心軸及び頂点を含む各要素と寸法とを正しく関連づけることが可能となる。
【００９２】
（実施例）
本実施の形態に係る寸法生成装置１が実行する寸法生成の実施例について、図１２に示す３次元モデルを例として用いて説明する。図１２は３次元モデルの例を示す図である。この３次元モデルは円筒面を含むため、図８に示す実施の形態２に係る寸法生成処理のフローチャートに沿って説明する。
【００９３】
まず、モデル要素検出部１２２がモデルの面に番号を割り当てる（ステップＳ８０１）。底面１２０１、正面１２０２、右側面１２０３、背面１２０４、左側面１２０５、円筒面１２０６、曲面１２０７、第１上面１２０８、第２上面１２０９にそれぞれ１から９までの番号を割り当てる。最大値ｎは９である。ここでは、図１３に示すように割り当てられている。図１３は、３次元モデルの面と、番号と、基準要素面との対応関係を示す表である。
【００９４】
次に、オペレータの選択入力に基づいて基準座標系決定部１２１が基準座標系および基準要素面を決定する（ステップＳ８０２）。その詳細なフローは図３に示した通りである。基準座標系として、図１２に示した座標系１２１０に決定する（ステップＳ３０１）。Ｘ軸方向の基準要素面Ｅｘを左側面１２０５に決定する（ステップＳ３０２）。Ｙ軸方向の基準要素面Ｅｙを底面１２０１に決定する（ステップＳ３０３）。Ｚ軸方向の基準要素面Ｅｚを正面１２０２に決定する（ステップＳ３０４）。
【００９５】
ステップＳ８０３、Ｓ８０４により変数Ｐが１となるため、面ＥＰは底面１２０１である。底面１２０１は基準要素面Ｅｙであるため（ステップＳ８０５：Ｙｅｓ）、ステップＳ８１１に進む。
【００９６】
ステップＳ８１１において、Ｐ＜ｎであるため（ステップＳ８１１：Ｙｅｓ）、ステップＳ８０４に戻り、Ｐ＝２となる（ステップＳ８０４）。このとき面ＥＰは正面１２０２である。正面１２０２は基準要素面Ｅｚであるため（ステップＳ８０５：Ｙｅｓ）、ステップＳ８１１に進む。
【００９７】
ステップＳ８１１において、Ｐ＜ｎであるため（ステップＳ８１１：Ｙｅｓ）、ステップＳ８０４に戻り、Ｐ＝３となる（ステップＳ８０４）。このとき面ＥＰは右側面１２０３である。右側面１２０３は基準要素面でないため（ステップＳ８０５：Ｎｏ）、ステップＳ８０６に進む。右側面１２０３は平面であるため（ステップＳ８０６：Ｙｅｓ）、平面寸法生成処理を実行する（ステップＳ８０７）。
【００９８】
図４に示す平面寸法生成処理において、右側面１２０３はＸ軸、Ｙ軸、Ｚ軸のいずれの軸とも直交しないため（ステップＳ４０１：Ｎｏ）、稜線寸法生成処理を実行する（ステップＳ４０３）。
【００９９】
図５に示す稜線寸法生成処理において、モデル要素検出部１２２がＥＰである右側面１２０３に含まれる稜線に番号を割り当てる（ステップＳ５０１）。稜線の割り当ては、図１４、図１５に示すように、第１稜線１４０１、第２稜線１４０２、第３稜線１４０３、第４稜線１４０４にそれぞれ１から４までの番号を割り当てる。最大値ｍは４である。図１４は３次元モデルの例を示す図であり、図１５は右側面１２０３の稜線と、番号との対応関係を示す表である。
【０１００】
ステップＳ５０２、Ｓ５０３により変数Ｑが１であるとき、稜線ＬＰＱは第１稜線１４０１である。稜線ＬＰＱはＸ軸とＹ軸の２つの軸に直交するため（ステップＳ５０４：Ｙｅｓ）、ステップＳ５０６に進み、軸Ａ１がＸ軸となり、Ｅａ１がＥｘとなり、軸Ａ２がＹ軸となり、Ｅａ２がＥｙとなる（ステップＳ５０６）。ステップＳ５０７、Ｓ５０８によりｗ＝１となった後に、軸Ａ１の方向であるＸ軸方向における稜線ＬＰＱの寸法について、直交稜線寸法生成処理を実行する（ステップＳ５０９）。
【０１０１】
図６に示す直交稜線寸法生成処理において、稜線ＬＰＱが基準要素面Ｅａｗの構成要素であるか否かを判定する（ステップＳ６０１）。稜線ＬＰＱである第１稜線１４０１は、基準要素面Ｅａｗ（Ｅｘ）である左側面１２０５の構成要素でないため、ステップＳ６０２に進む。
【０１０２】
既に生成した寸法の中で、基準要素面Ｅａｗである左側面１２０５から稜線ＬＰＱである第１稜線１４０１までのＸ軸方向の直線距離と同一の寸法があるか否かを判定するが（ステップＳ６０２）、まだ生成済みの寸法はないため（ステップＳ６０２：Ｎｏ）、寸法生成部１２４が軸ＡｗであるＸ軸方向の直線寸法を新規に生成する（ステップＳ６０３）。図１６は、３次元モデルにステップＳ６０３で生成した寸法１６０１を付加した図であり、図１７は、寸法１６０１と関連づけられた要素を表した表である。
【０１０３】
その後、図５のステップＳ５１０に進み、ｗ＜２であるため（ステップＳ５１０：Ｙｅｓ）、ステップＳ５０８に戻り、ｗ＝２となった後に、Ａ２であるＹ軸方向における稜線ＬＰＱの寸法について、直交稜線寸法生成処理を実行する（ステップＳ５０９）。
【０１０４】
図６に示す直交稜線寸法生成処理において、稜線ＬＰＱである第１稜線１４０１は、基準要素面Ｅａｗ（Ｅｙ）である底面１２０１の構成要素であるため（ステップＳ６０１：Ｙｅｓ）、図５のフローに戻り、ステップＳ５１０に進む。ｗ＝２であり（ステップＳ５１０：Ｎｏ）、Ｑ＜ｍであるため、ステップＳ５０３に戻り、Ｑは２となる。
【０１０５】
Ｑ＝２のとき、稜線ＬＰＱは第２稜線１４０２である。稜線ＬＰＱはＺ軸とのみ直交するため（ステップＳ５０４：Ｎｏ，ステップＳ５０５：Ｙｅｓ）、ステップＳ５１１において軸Ａ１がＺ軸となり、Ｅａ１がＥｚとなる。軸Ａ１の方向であるＺ軸方向における稜線ＬＰＱの寸法について、直交稜線寸法生成処理を実行する（ステップＳ５１２）。
【０１０６】
図６に示す直交稜線寸法生成処理において、稜線ＬＰＱである第２稜線１４０２は、基準要素面Ｅａｗ（Ｅｚ）である正面１２０２の構成要素であるため（ステップＳ６０１：Ｙｅｓ）、図５のフローに戻り、頂点寸法生成処理を実行する（ステップＳ５１３）。
【０１０７】
図７に示す頂点寸法生成処理において、稜線ＬＰＱである第２稜線１４０２の始点及び終点の頂点をそれぞれＯＰＱ１、ＯＰＱ２とする（ステップＳ７０１）。図１８は３次元モデルの頂点の位置を示した図である。ここでは、ＯＰＱ１が第１頂点１８０１であり、ＯＰＱ２が第３頂点１８０３である。そして、変数Ｕ，Ｖをそれぞれ変数Ｕ＝１、Ｖ＝１に設定する（ステップＳ７０２，Ｓ７０３，Ｓ７０４）。
【０１０８】
Ｖ＝１であるため、軸ＡはＸ軸であり、ＥａはＥｘである（ステップＳ７０５）。ＯＰＱ１である第１頂点１８０１は、Ｅｘである左側面１２０５の構成要素でない（ステップＳ７０６：Ｎｏ）。よって、既に生成した寸法の中に、ＥｘからＯＰＱ１までのＸ軸方向の直線距離と同一距離の寸法があるか否かを判定する（ステップＳ７０７）。ここで、図１６及び図１７に示す寸法１６０１が同一距離の寸法に該当する（ステップＳ７０７：Ｙｅｓ）。ここで、寸法１６０１をＤｔとし、その寸法に関連づけられた要素の集合をＥｔとする。
【０１０９】
このＤｔに関連づけられた要素の集合ＥｔにＯＰＱ１自身が含まれていないため（ステップＳ７０９：Ｎｏ）、ＯＰＱ１が構成要素である面又は稜線があるか否かを判定する（ステップＳ７１０）。ここで、ＯＰＱ１である第１頂点１８０１を含む面は、底面１２０１、正面１２０２、右側面１２０３の３つである。また、ＯＰＱ１である第１頂点１８０１を含む稜線は、図１８に示すように、第１稜線１４０１、第２稜線１４０２、第５稜線１８０５の３つである。図１７に示すように、寸法１６０１に関連づけられた要素の集合Ｅｔは第１稜線１４０１を含んでいるため（ステップＳ７１０：Ｙｅｓ）、ステップＳ７１２に進む。Ｖ＜３であるため（ステップＳ７１２：Ｙｅｓ）、ステップＳ７０４に戻る。
【０１１０】
Ｖ＝２、Ｖ＝３のときも同様に処理を進めるが、いずれの場合もステップＳ７０６において、ＯＰＱ１である第１頂点１８０１がＥｙである底面１２０１、Ｅｚである正面１２０２の構成要素であるため（ステップＳ７０６：Ｙｅｓ）、寸法生成（ステップＳ７０８）やＥｔへの追加（ステップＳ７１１）の処理は行われない。
【０１１１】
その後、Ｕ＜２であるため（ステップＳ７１３：Ｙｅｓ）Ｕ＝２となり（ステップＳ７０３）、ＯＰＱ２である第３頂点１８０３について、ＯＰＱ１のときと同様に頂点寸法生成処理を行う。Ｖ＝２のときは、ステップＳ７０７において、ＯＰＱ２である第３頂点１８０３からＥｙである底面１２０１までの直線距離と同一距離のＹ軸方向の寸法がないため、Ｙ軸方向の寸法１９０２を新規に生成する（ステップＳ７０８）。Ｖ＝３のときは、ステップＳ７０６において、ＯＰＱ２である第３頂点１８０３は、Ｅｚである正面１２０２の構成要素であるため（ステップＳ７０６：Ｙｅｓ）、寸法生成（ステップＳ７０８）やＥｔへの追加（ステップＳ７１１）の処理は行われない。
【０１１２】
頂点寸法生成処理が終了後は、図５のステップＳ５１４に進み、Ｑ＜４であるため（ステップＳ５１４：Ｙｅｓ）、ステップＳ５０３に戻る。その後、同様の処理を実行し、第３稜線１４０３及び第４稜線１４０４に対する稜線寸法生成処理を実行する。
【０１１３】
図５の稜線寸法生成処理の終了により、図４の平面寸法生成処理も終了する。つまり、図８のステップＳ８０７が実行済みとなる。この時点で生成されている寸法を図１９、図２０に示す。図１９は、３次元モデルに寸法１６０１，１９０１，１９０２，１９０３を付加した図であり、図２０は、各寸法と関連づけられた要素を表した表である。
【０１１４】
ここで、各寸法に関連づけられた要素は、基準要素面及び基準要素面以外の要素が過不足なく選択されている。例えば、上述の図７のステップＳ７０８において、ＯＰＱ２である第３頂点１８０３からＥｙである底面１２０１までの直線距離を寸法１９０２として生成したが、その後の第４稜線１４０４に係る図６の直交稜線寸法生成処理において、第４稜線１４０４の始点又は終点である第３頂点１８０３をＥｔから除外しているため（ステップＳ６０８）、重複なく寸法が生成され、寸法に関連づけられた要素を正確に選択することができる。
【０１１５】
図８のステップＳ８０７の後、Ｐ＜９であるため（ステップＳ８１１：Ｙｅｓ）、ステップＳ８０４に戻る。その後、Ｐ＝４〜９の場合について、同様に図８の処理を実行する。
【０１１６】
Ｐ＝７のとき番号７の面である曲面１２０７は、平面でも円筒面でもないため（ステップＳ８０６：Ｎｏ、ステップＳ８０８：Ｎｏ）、自動生成の対象外として記憶部１１０に記憶されている（ステップＳ８１０）。
【０１１７】
Ｐ＝９のときのステップＳ８１１の段階で、生成されている寸法を図２１及び図２２に示す。図２１は、３次元モデルに寸法を追加した図であり、図２２は、各寸法と関連づけられた要素を表した表である。
【０１１８】
Ｐ＝９のときのステップＳ８１１において、Ｐはｎ以上になるため（ステップＳ８１１：Ｎｏ）、ステップＳ８１２に進む。ステップＳ８１２において、ステップＳ８１０で記憶された、出力部１４０が寸法の自動生成不可箇所をディスプレイに表示し、オペレータに対して手動での寸法生成を促す。寸法の自動生成不可箇所の表示例を図２３に示す。本実施例では、曲面１２０７がハイライトされ、自動生成の対象外であることが示されている。ステップＳ８１２の処理が終了後、図８に示す寸法生成処理を終了する。
【０１１９】
このように、実施の形態１，２に係る寸法生成装置１は、関連づける要素である面、稜線、円筒の中心軸、頂点について順次、寸法生成の要否を判定して寸法を生成している。このため、加工プログラム又は測定プログラムの自動生成に寸法を用いる場合に、対象要素が抜け落ちることを回避することができる。例えば、図１２，１４，２１のモデルにおいて、寸法１９０２に関連づけられた要素が第４稜線１４０４のみになることはなく、第４稜線１４０４を含む第２上面１２０９が寸法１９０２に正確に関連づけられる。これにより、加工又は測定の対象から第２上面１２０９が抜け落ちることを回避することができる。
【０１２０】
また、基準要素面である底面１２０１からの寸法が同じである第１上面１２０８及び第２上面１２０９の両方を、寸法１９０２と正確に関連づけることができる。これにより、加工又は測定の対象から第１上面１２０８と第２上面１２０９のいずれか一方が抜け落ちることを回避することができる。一方、寸法の表示については、第１上面１２０８及び第２上面１２０９に関連する寸法１９０２を１つのみ表示しているため、重複して見づらくなることもない。
【０１２１】
このように本発明は、３次元モデルの寸法生成において、３次元モデルの面、稜線及び頂点の少なくとも一部を含む要素の形状、位置又は姿勢を検出し、検出した要素の形状、位置又は姿勢に基づいて、要素の各々と関連づける寸法の生成の要否、及び、寸法に関連づける他の要素を判定し、生成を要すると判定した寸法、及び、当該寸法と関連づける要素を示す寸法要素情報を生成することとした。これにより、３次元モデルに対して、重複なく寸法を生成し、寸法とその対象となる３次元モデルの要素とを正しく関連づけることが可能となる。
【０１２２】
なお、本発明は、上記実施の形態に限定されず、本発明の要旨を逸脱しない範囲での種々の変更は勿論可能である。
【０１２３】
例えば、上記実施の形態において、面に関して平面及び円筒面の寸法の生成処理を実行し、その他の面については自動生成しないとしたが、平面、円筒面以外の面についても寸法を自動生成してもよい。例えば、断面が楕円である楕円筒又は円錐を含む面について自動生成する処理を追加してもよい。
【０１２４】
また、上記実施例において、３次元モデルに寸法を付加した例を図２１に示したが、オペレータが画面に表示された寸法をポインタで選択したときに、寸法と関連づけられた要素をハイライトで表示してもよい。これにより、寸法の対象の要素を視覚的に捉えることが容易になる。
【０１２５】
また、上記実施の形態に示したハードウェア構成及びフローチャートは一例であり、任意に変更及び修正が可能である。記憶部１１０及び演算部１２０で実現する各機能は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。
【０１２６】
例えば、上記実施の形態の動作を実行するためのプログラムを、コンピュータが読み取り可能なＣＤ−ＲＯＭ（Compact Disc Read-Only Memory）、ＤＶＤ（Digital Versatile Disc）、ＭＯ（Magneto Optical Disc）、メモリカード等の記録媒体に格納して配布し、プログラムをコンピュータにインストールすることにより、各機能を実現することができるコンピュータを構成してもよい。そして、各機能をＯＳ（Operating System）とアプリケーションとの分担、又はＯＳとアプリケーションとの協同により実現する場合には、ＯＳ以外の部分のみを記録媒体に格納してもよい。
【符号の説明】
【０１２７】
１  寸法生成装置、１１０  記憶部、１２０  演算部、１２１  基準座標系決定部、１２２  モデル要素検出部、１２３  生成寸法判定部、１２４  寸法生成部、１３０  入力部、１４０  出力部、１２０１  底面、１２０２  正面、１２０３  右側面、１２０４  背面、１２０５  左側面、１２０６  円筒面、１２０７  曲面、１２０８  第１上面、１２０９  第２上面、１２１０  座標系、１４０１  第１稜線、１４０２  第２稜線、１４０３  第３稜線、１４０４  第４稜線、１６０１，１９０１，１９０２，１９０３  寸法、１８０１  第１頂点、１８０３  第３頂点。
【図１】
2020144759.tif 000003
【図２】
2020144759.tif 000004
【図３】
2020144759.tif 000005
【図４】
2020144759.tif 000006
【図５】
2020144759.tif 000007
【図６】
2020144759.tif 000008
【図７】
2020144759.tif 000009
【図８】
2020144759.tif 000010
【図９】
2020144759.tif 000011
【図１０】
2020144759.tif 000012
【図１１】
2020144759.tif 000013
【図１２】
2020144759.tif 000014
【図１３】
2020144759.tif 000015
【図１４】
2020144759.tif 000016
【図１５】
2020144759.tif 000017
【図１６】
2020144759.tif 000018
【図１７】
2020144759.tif 000019
【図１８】
2020144759.tif 000020
【図１９】
2020144759.tif 000021
【図２０】
2020144759.tif 000022
【図２１】
2020144759.tif 000023
【図２２】
2020144759.tif 000024
【図２３】
2020144759.tif 000025