(57)【特許請求の範囲】
【請求項１】
三次元形状モデルに自動的にフィレットを作成する自動フィレット作成システムであって、
前記三次元形状モデルからフィレットが作成される稜線を抽出する稜線抽出手段と、
前記稜線抽出手段によって抽出された前記稜線に作成するフィレットのフィレット半径を取得するフィレット半径取得手段と、
前記稜線抽出手段によって抽出された前記稜線のうち複数の稜線が合流する合流点に合流する複数の稜線について、前記合流点から前記フィレット半径取得手段によって取得された前記フィレット半径に基づいて設定された所定距離だけ離れた境界点までの領域を稜線のコーナー領域として算出するコーナー領域算出手段と、
前記コーナー領域算出手段によって算出された前記稜線のコーナー領域について、前記合流点に合流する複数の稜線の前記境界点についてそれぞれ前記フィレット半径取得手段によって取得された前記フィレット半径に基づいてフィレットの断面ラインを算出し、前記合流点に合流する複数の稜線の前記境界点についてそれぞれ算出された前記断面ライン間を接続する中間ラインを算出し、前記断面ラインと前記中間ラインによって囲まれる閉領域内に曲面を形成してフィレットを作成するフィレット作成手段と、
を有することを特徴とする自動フィレット作成システム。
【請求項２】
前記フィレット作成手段は、前記断面ラインと前記中間ラインによって囲まれる閉領域内に該閉領域内を分割するための分割中心点を算出し、算出された前記分割中心点と前記断面ライン及び前記中間ラインの中点とをそれぞれ接続して前記閉領域内を分割する分割ラインを算出し、前記断面ライン及び前記中間ラインと算出された前記断面ライン及び前記中間ラインの中点とにそれぞれ接続する前記分割ラインとによって囲まれる分割領域にそれぞれ自由曲面を形成してフィレットを作成する、
ことを特徴とする請求項１に記載の自動フィレット作成システム。
【請求項３】
前記稜線抽出手段によって抽出された前記稜線のうち２つの稜線のみが合流する合流点で２つの稜線間角度が所定角度以下である２つの稜線について、前記合流点から前記２つの稜線にそれぞれ前記フィレット半径取得手段によって取得された前記フィレット半径のフィレットを作成するとフィレットどうしが干渉する境界点までの領域を稜線の縮退領域として算出する縮退領域算出手段を有し、
前記コーナー領域算出手段は、前記稜線抽出手段によって抽出された前記稜線のうち前記縮退領域算出手段によって算出された前記縮退領域を除く稜線であって、複数の稜線が合流する合流点に合流する複数の稜線について、前記合流点から前記フィレット半径取得手段によって取得された前記フィレット半径に基づいて設定された所定距離だけ離れた境界点までの領域を稜線のコーナー領域として算出し、
前記フィレット作成手段は、前記縮退領域算出手段によって算出された前記稜線の縮退領域について、前記稜線の縮退領域について、前記稜線のうち２つの稜線のみが合流する合流点で２つの稜線間角度が所定角度以下である２つの稜線に作成するフィレットどうしが干渉しないように前記フィレット半径取得手段によって取得された前記フィレット半径を補正した補正フィレット半径のフィレットを作成する、
ことを特徴とする請求項１又は請求項２に記載の自動フィレット作成システム。
【請求項４】
前記稜線抽出手段によって抽出された前記稜線のうち前記コーナー領域を除く稜線について、該稜線と該稜線に最も近い他の稜線とにそれぞれ前記フィレット半径取得手段によって取得された前記フィレット半径に基づいてフィレットを作成するとフィレットどうしが干渉する領域を稜線のフィレット干渉領域として算出するフィレット干渉領域算出手段を有し、
前記フィレット作成手段は、前記フィレット干渉領域算出手段によって算出された稜線のフィレット干渉領域について、該稜線と該稜線に最も近い他の稜線とにそれぞれ作成するフィレットどうしが干渉しないように前記フィレット半径取得手段によって取得された前記フィレット半径を補正した補正フィレット半径のフィレットを作成する、
ことを特徴とする請求項３に記載の自動フィレット作成システム。
【請求項５】
前記稜線抽出手段によって抽出された前記稜線について、前記縮退領域、前記コーナー領域及び前記フィレット干渉領域を除く領域を稜線の基本領域として算出する基本領域算出手段を有し、
前記フィレット作成手段は、前記基本領域算出手段によって算出された前記稜線の基本領域について、前記フィレット半径取得手段によって取得された前記フィレット半径のフィレットを作成する、
ことを特徴とする請求項４に記載の自動フィレット作成システム。
【請求項６】
三次元形状モデルに自動的にフィレットを作成する自動フィレット作成プログラムであって、
コンピュータを、
前記三次元形状モデルからフィレットが作成される稜線を抽出する稜線抽出手段、
前記稜線抽出手段によって抽出された前記稜線に作成するフィレットのフィレット半径を取得するフィレット半径取得手段、
前記稜線抽出手段によって抽出された前記稜線のうち複数の稜線が合流する合流点に合流する複数の稜線について、前記合流点から前記フィレット半径取得手段によって取得された前記フィレット半径に基づいて設定された所定距離だけ離れた境界点までの領域を稜線のコーナー領域として算出するコーナー領域算出手段、及び
前記コーナー領域算出手段によって算出された前記稜線のコーナー領域について、前記合流点に合流する複数の稜線の前記境界点についてそれぞれ前記フィレット半径取得手段によって取得された前記フィレット半径に基づいてフィレットの断面ラインを算出し、前記合流点に合流する複数の稜線の前記境界点についてそれぞれ算出された前記断面ライン間を接続する中間ラインを算出し、前記断面ラインと前記中間ラインによって囲まれる閉領域内に曲面を形成してフィレットを作成するフィレット作成手段として機能させる、
ことを特徴とする自動フィレット作成プログラム。
【請求項７】
コンピュータを、
前記フィレット作成手段として機能させるときは、前記断面ラインと前記中間ラインによって囲まれる閉領域内に該閉領域内を分割するための分割中心点を算出し、算出された前記分割中心点と前記断面ライン及び前記中間ラインの中点とをそれぞれ接続して前記閉領域内を分割する分割ラインを算出し、前記断面ライン及び前記中間ラインと算出された前記断面ライン及び前記中間ラインの中点とにそれぞれ接続する前記分割ラインとによって囲まれる分割領域にそれぞれ自由曲面を形成してフィレットを作成するように機能させる、
ことを特徴とする請求項６に記載の自動フィレット作成プログラム。
【請求項８】
コンピュータを、
前記稜線抽出手段によって抽出された前記稜線のうち２つの稜線のみが合流する合流点で２つの稜線間角度が所定角度以下である２つの稜線について、前記合流点から前記２つの稜線にそれぞれ前記フィレット半径取得手段によって取得された前記フィレット半径のフィレットを作成するとフィレットどうしが干渉する境界点までの領域を稜線の縮退領域として算出する縮退領域算出手段として機能させ、
前記コーナー領域算出手段として機能させるときは、前記稜線抽出手段によって抽出された前記稜線のうち前記縮退領域算出手段によって算出された前記縮退領域を除く稜線であって、複数の稜線が合流する合流点に合流する複数の稜線について、前記合流点から前記フィレット半径取得手段によって取得された前記フィレット半径に基づいて設定された所定距離だけ離れた境界点までの領域を稜線のコーナー領域として算出するように機能させ、
前記フィレット作成手段として機能させるときは、前記縮退領域算出手段によって算出された前記稜線の縮退領域について、前記稜線の縮退領域について、前記稜線のうち２つの稜線のみが合流する合流点で２つの稜線間角度が所定角度以下である２つの稜線に作成するフィレットどうしが干渉しないように前記フィレット半径取得手段によって取得された前記フィレット半径を補正した補正フィレット半径のフィレットを作成するように機能させる、
ことを特徴とする請求項６又は請求項７に記載の自動フィレット作成プログラム。
【請求項９】
コンピュータを、
前記稜線抽出手段によって抽出された前記稜線のうち前記コーナー領域を除く稜線について、該稜線と該稜線に最も近い他の稜線とにそれぞれ前記フィレット半径取得手段によって取得された前記フィレット半径に基づいてフィレットを作成するとフィレットどうしが干渉する領域を稜線のフィレット干渉領域として算出するフィレット干渉領域算出手段として機能させ、
前記フィレット作成手段として機能させるときは、前記フィレット干渉領域算出手段によって算出された稜線のフィレット干渉領域について、該稜線と該稜線に最も近い他の稜線とにそれぞれ作成するフィレットどうしが干渉しないように前記フィレット半径取得手段によって取得された前記フィレット半径を補正した補正フィレット半径のフィレットを作成するように機能させる、
ことを特徴とする請求項８に記載の自動フィレット作成プログラム。
【請求項１０】
前記稜線抽出手段によって抽出された前記稜線について、前記縮退領域、前記コーナー領域及び前記フィレット干渉領域を除く領域を稜線の基本領域として算出する基本領域算出手段として機能させ、
前記フィレット作成手段として機能させるときは、前記基本領域算出手段によって算出された前記稜線の基本領域について、前記フィレット半径取得手段によって取得された前記フィレット半径のフィレットを作成するように機能させる、
ことを特徴とする請求項９に記載の自動フィレット作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＡＤ装置において三次元形状モデルに自動的にフィレットを作成する自動フィレット作成システム及びプログラムに関する。
【背景技術】
【０００２】
三次元形状モデルを作成するＣＡＤ装置では、三次元形状モデルについて稜線に所定のフィレット半径を有するフィレットを作成して稜線を滑らかに丸めることが一般に行われている。
【０００３】
三次元形状モデルに作成されるフィレットは、デザイン上のフィレットと成形上のフィレットとに大別され、三次元形状モデルに成形上のフィレットを作成する場合は三次元形状モデルの稜線全体にフィレットが作成されることから非常に多くのフィレットが作成されることがある。
【０００４】
例えば有限要素法を用いて金属板のプレス成形をシミュレーションする成形シミュレーションにおいて、金属板やプレス工具の三次元形状モデルを作成し、プレス工具の三次元形状モデルの稜線全体に成形上のフィレットを作成する場合、非常に多くのフィレットを作成することがある。
【０００５】
このように多くのフィレットを作成する場合などでは、稜線ごとにフィレットを作成することは多大な工数を必要とすることから、稜線に作成するフィレットのフィレット半径を稜線全体について設定した後に稜線全体について一括して自動的にフィレットを作成して滑らかに丸めることが求められている。
【０００６】
しかしながら、複数の稜線に単にフィレットを作成するだけでは、複数の稜線が合流する合流部で各稜線のフィレットどうしが干渉することとなる。従来のＣＡＤ装置では、フィレットを作成する順番を設定するようにしたものが知られているが、フィレットを作成する順番が異なると合流部におけるフィレットの形状が異なったり三次元形状モデルによっては合流部にフィレットを作成すること自体ができなくなったりする場合がある。
【０００７】
これに対し、例えば特許文献１には、複数の稜線が合流する合流点を抽出すると共に稜線の各々を２つに分割した分割稜線を作成し、合流点及び該合流点に合流する複数の分割稜線を１つの作成単位として、作成単位ごとに、各分割稜線に設定されたフィレット半径のフィレットを仮作成するとともに仮作成したフィレットどうしの相関に基づいて合流点におけるフィレットの合成手順を決定するようにしたフィレット作成装置が開示されている。
【０００８】
前記フィレット作成装置はまた、合流点におけるフィレットの合成手順を定義するパターンをデータベースに複数種類記憶させておき、フィレットの合成手順を決定する際に、データベースを参照してデータベースに記憶された複数種類のパターンの中から作成単位に適用する合成手順を選択するようになっている。
【０００９】
このフィレット作成装置によれば、作成単位ごとに、他の作成単位に作成するフィレットを考慮することなく作成単位内でフィレットを作成できるので、バッチ処理によって三次元形状モデル全体にフィレットを作成することができるとされている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特許第４１７９３５５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
前記特許文献１に記載のフィレット作成装置では、フィレットの合成手順を決定する際に、データベースに記憶されたフィレットの合成手順を定義する複数種類のパターンの中から作成単位に適用する合成手順を選択するようになっているが、三次元形状モデルによってはパターンにない形状の場合には選択することができずにフィレットの合成手順を決定することができないおそれがある。
【００１２】
また、あらゆる三次元形状モデルについてフィレットの合成手順を決定することができるようにフィレットの合成手順を定義するパターンをすべて準備してデータベースに記憶させておくことは、非常に多大な手間を要することとなる。
【００１３】
そこで、本発明は、データベースを要することなく、三次元形状モデルに確実に且つ自動的にフィレットを作成することができる自動フィレット作成システム及びプログラムを提供することを課題とする。
【課題を解決するための手段】
【００１４】
前記課題を解決するため、本発明は次のように構成したことを特徴とする。
【００１５】
まず、本願の請求項１に係る発明は、三次元形状モデルに自動的にフィレットを作成する自動フィレット作成システムであって、前記三次元形状モデルからフィレットが作成される稜線を抽出する稜線抽出手段と、前記稜線抽出手段によって抽出された前記稜線に作成するフィレットのフィレット半径を取得するフィレット半径取得手段と、前記稜線抽出手段によって抽出された前記稜線のうち複数の稜線が合流する合流点に合流する複数の稜線について、前記合流点から前記フィレット半径取得手段によって取得された前記フィレット半径に基づいて設定された所定距離だけ離れた境界点までの領域を稜線のコーナー領域として算出するコーナー領域算出手段と、前記コーナー領域算出手段によって算出された前記稜線のコーナー領域について、前記合流点に合流する複数の稜線の前記境界点についてそれぞれ前記フィレット半径取得手段によって取得された前記フィレット半径に基づいてフィレットの断面ラインを算出し、前記合流点に合流する複数の稜線の前記境界点についてそれぞれ算出された前記断面ライン間を接続する中間ラインを算出し、前記断面ラインと前記中間ラインによって囲まれる閉領域内に曲面を形成してフィレットを作成するフィレット作成手段とを有することを特徴とする。
【００１６】
また、請求項２に係る発明は、請求項１に係る発明において、前記フィレット作成手段は、前記断面ラインと前記中間ラインによって囲まれる閉領域内に該閉領域内を分割するための分割中心点を算出し、算出された前記分割中心点と前記断面ライン及び前記中間ラインの中点とをそれぞれ接続して前記閉領域内を分割する分割ラインを算出し、前記断面ライン及び前記中間ラインと算出された前記断面ライン及び前記中間ラインの中点とにそれぞれ接続する前記分割ラインとによって囲まれる分割領域にそれぞれ自由曲面を形成してフィレットを作成することを特徴とする。
【００１７】
また、請求項３に係る発明は、請求項１又は請求項２に係る発明において、前記稜線抽出手段によって抽出された前記稜線のうち２つの稜線のみが合流する合流点で２つの稜線間角度が所定角度以下である２つの稜線について、前記合流点から前記２つの稜線にそれぞれ前記フィレット半径取得手段によって取得された前記フィレット半径のフィレットを作成するとフィレットどうしが干渉する境界点までの領域を稜線の縮退領域として算出する縮退領域算出手段を有し、前記コーナー領域算出手段は、前記稜線抽出手段によって抽出された前記稜線のうち前記縮退領域算出手段によって算出された前記縮退領域を除く稜線であって、複数の稜線が合流する合流点に合流する複数の稜線について、前記合流点から前記フィレット半径取得手段によって取得された前記フィレット半径に基づいて設定された所定距離だけ離れた境界点までの領域を稜線のコーナー領域として算出し、前記フィレット作成手段は、前記縮退領域算出手段によって算出された前記稜線の縮退領域について、前記稜線の縮退領域について、前記稜線のうち２つの稜線のみが合流する合流点で２つの稜線間角度が所定角度以下である２つの稜線に作成するフィレットどうしが干渉しないように前記フィレット半径取得手段によって取得された前記フィレット半径を補正した補正フィレット半径のフィレットを作成することを特徴とする。
【００１８】
また、請求項４に係る発明は、請求項３に係る発明において、前記稜線抽出手段によって抽出された前記稜線のうち前記コーナー領域を除く稜線について、該稜線と該稜線に最も近い他の稜線とにそれぞれ前記フィレット半径取得手段によって取得された前記フィレット半径に基づいてフィレットを作成するとフィレットどうしが干渉する領域を稜線のフィレット干渉領域として算出するフィレット干渉領域算出手段を有し、前記フィレット作成手段は、前記フィレット干渉領域算出手段によって算出された稜線のフィレット干渉領域について、該稜線と該稜線に最も近い他の稜線とにそれぞれ作成するフィレットどうしが干渉しないように前記フィレット半径取得手段によって取得された前記フィレット半径を補正した補正フィレット半径のフィレットを作成することを特徴とする。
【００１９】
また、請求項５に係る発明は、請求項４に係る発明において、前記稜線抽出手段によって抽出された前記稜線について、前記縮退領域、前記コーナー領域及び前記フィレット干渉領域を除く領域を稜線の基本領域として算出する基本領域算出手段を有し、前記フィレット作成手段は、前記基本領域算出手段によって算出された前記稜線の基本領域について、前記フィレット半径取得手段によって取得された前記フィレット半径のフィレットを作成することを特徴とする。
【００２０】
さらに、請求項６に係る発明は、三次元形状モデルに自動的にフィレットを作成する自動フィレット作成プログラムであって、コンピュータを、前記三次元形状モデルからフィレットが作成される稜線を抽出する稜線抽出手段、前記稜線抽出手段によって抽出された前記稜線に作成するフィレットのフィレット半径を取得するフィレット半径取得手段、前記稜線抽出手段によって抽出された前記稜線のうち複数の稜線が合流する合流点に合流する複数の稜線について、前記合流点から前記フィレット半径取得手段によって取得された前記フィレット半径に基づいて設定された所定距離だけ離れた境界点までの領域を稜線のコーナー領域として算出するコーナー領域算出手段、及び前記コーナー領域算出手段によって算出された前記稜線のコーナー領域について、前記合流点に合流する複数の稜線の前記境界点についてそれぞれ前記フィレット半径取得手段によって取得された前記フィレット半径に基づいてフィレットの断面ラインを算出し、前記合流点に合流する複数の稜線の前記境界点についてそれぞれ算出された前記断面ライン間を接続する中間ラインを算出し、前記断面ラインと前記中間ラインによって囲まれる閉領域内に曲面を形成してフィレットを作成するフィレット作成手段として機能させることを特徴とする。
【００２１】
また、請求項７に係る発明は、請求項６に係る発明において、コンピュータを、前記フィレット作成手段として機能させるときは、前記断面ラインと前記中間ラインによって囲まれる閉領域内に該閉領域内を分割するための分割中心点を算出し、算出された前記分割中心点と前記断面ライン及び前記中間ラインの中点とをそれぞれ接続して前記閉領域内を分割する分割ラインを算出し、前記断面ライン及び前記中間ラインと算出された前記断面ライン及び前記中間ラインの中点とにそれぞれ接続する前記分割ラインとによって囲まれる分割領域にそれぞれ自由曲面を形成してフィレットを作成するように機能させることを特徴とする。
【００２２】
また、請求項８に係る発明は、請求項６又は請求項７に係る発明において、コンピュータを、前記稜線抽出手段によって抽出された前記稜線のうち２つの稜線のみが合流する合流点で２つの稜線間角度が所定角度以下である２つの稜線について、前記合流点から前記２つの稜線にそれぞれ前記フィレット半径取得手段によって取得された前記フィレット半径のフィレットを作成するとフィレットどうしが干渉する境界点までの領域を稜線の縮退領域として算出する縮退領域算出手段として機能させ、前記コーナー領域算出手段として機能させるときは、前記稜線抽出手段によって抽出された前記稜線のうち前記縮退領域算出手段によって算出された前記縮退領域を除く稜線であって、複数の稜線が合流する合流点に合流する複数の稜線について、前記合流点から前記フィレット半径取得手段によって取得された前記フィレット半径に基づいて設定された所定距離だけ離れた境界点までの領域を稜線のコーナー領域として算出するように機能させ、前記フィレット作成手段として機能させるときは、前記縮退領域算出手段によって算出された前記稜線の縮退領域について、前記稜線の縮退領域について、前記稜線のうち２つの稜線のみが合流する合流点で２つの稜線間角度が所定角度以下である２つの稜線に作成するフィレットどうしが干渉しないように前記フィレット半径取得手段によって取得された前記フィレット半径を補正した補正フィレット半径のフィレットを作成するように機能させることを特徴とする。
【００２３】
また、請求項９に係る発明は、請求項８に係る発明において、コンピュータを、前記稜線抽出手段によって抽出された前記稜線のうち前記コーナー領域を除く稜線について、該稜線と該稜線に最も近い他の稜線とにそれぞれ前記フィレット半径取得手段によって取得された前記フィレット半径に基づいてフィレットを作成するとフィレットどうしが干渉する領域を稜線のフィレット干渉領域として算出するフィレット干渉領域算出手段として機能させ、前記フィレット作成手段として機能させるときは、前記フィレット干渉領域算出手段によって算出された稜線のフィレット干渉領域について、該稜線と該稜線に最も近い他の稜線とにそれぞれ作成するフィレットどうしが干渉しないように前記フィレット半径取得手段によって取得された前記フィレット半径を補正した補正フィレット半径のフィレットを作成するように機能させることを特徴とする。
【００２４】
また、請求項１０に係る発明は、請求項９に係る発明において、前記稜線抽出手段によって抽出された前記稜線について、前記縮退領域、前記コーナー領域及び前記フィレット干渉領域を除く領域を稜線の基本領域として算出する基本領域算出手段として機能させ、前記フィレット作成手段として機能させるときは、前記基本領域算出手段によって算出された前記稜線の基本領域について、前記フィレット半径取得手段によって取得された前記フィレット半径のフィレットを作成するように機能させることを特徴とする。
【発明の効果】
【００２５】
以上の構成により、本願各請求項の発明によれば、次の効果が得られる。
【００２６】
まず、本願の請求項１に係る発明によれば、三次元形状モデルから稜線が抽出され、抽出された稜線に作成するフィレットのフィレット半径が取得され、抽出された稜線のうち合流点に合流する複数の稜線について、合流点からフィレット半径に基づいて設定された所定距離だけ離れた境界点までの領域がコーナー領域として算出される。そして、稜線のコーナー領域について、合流点に合流する複数の稜線の境界点についてそれぞれフィレット半径に基づいてフィレットの断面ラインが算出され、断面ライン間を接続する中間ラインが算出され、断面ラインと中間ラインによって囲まれる閉領域内に曲面が形成されてフィレットが作成される。
【００２７】
これにより、三次元形状モデルのフィレットが作成される稜線のうち合流点に合流する複数の稜線にフィレットを作成するとフィレットどうしが干渉するコーナー領域について、コーナー領域の境界点についてそれぞれ算出されたフィレットの断面ラインと断面ライン間を接続する中間ラインによって囲まれる閉領域内に曲面を形成してフィレットを形成することができるので、データベースを要することなく、三次元形状モデルに確実に且つ自動的にフィレットを作成することができる。
【００２８】
合流点に合流する複数の稜線にフィレットを作成するとフィレットどうしが干渉するコーナー領域について、フィレットを作成する順番によってフィレットの形状が異なったり三次元形状モデルによってはフィレットを作成すること自体ができなくなったりすることを防止することができ、三次元形状モデルに確実に且つ自動的にフィレットを作成することができる。
【００２９】
また、請求項２に係る発明によれば、稜線のコーナー領域について、断面ラインと中間ラインによって囲まれる閉領域内に分割中心点が算出され、分割中心点と断面ライン及び中間ラインの中点とをそれぞれ接続する分割ラインが算出され、断面ライン及び中間ラインと断面ライン及び中間ラインの中点とにそれぞれ接続する分割ラインとによって囲まれる分割領域にそれぞれ自由曲面が形成されてフィレットが作成されることにより、三次元形状モデルに確実にフィレットを作成することができる。
【００３０】
また、請求項３に係る発明によれば、２つの稜線のみが合流する合流点で２つの稜線間角度が所定角度以下である２つの稜線について、合流点から２つの稜線にそれぞれフィレットを作成するとフィレットどうしが干渉する境界点までの領域が縮退領域として算出され、稜線の縮退領域について、フィレットどうしが干渉しないようにフィレット半径を補正した補正フィレット半径のフィレットが作成される。これにより、２つの稜線のみが合流する合流点で２つの稜線間角度が所定角度以下である２つの稜線にフィレットを作成するとフィレットどうしが干渉する縮退領域について、フィレットどうしが干渉することを回避してフィレットを作成することができる。
【００３１】
また、請求項４に係る発明によれば、コーナー領域を除く稜線について、稜線と該稜線に最も近い他の稜線とにそれぞれフィレットを作成するとフィレットどうしが干渉する領域がフィレット干渉領域として算出され、稜線のフィレット干渉領域について、フィレットどうしが干渉しないようにフィレット半径を補正した補正フィレット半径のフィレットが作成される。これにより、稜線と該稜線に最も近い他の稜線とにそれぞれフィレットを作成するとフィレットどうしが干渉するフィレット干渉領域について、フィレットどうしが干渉することを回避してフィレットを作成することができる。
【００３２】
また、請求項５に係る発明によれば、稜線について、縮退領域、コーナー領域及びフィレット干渉領域を除く領域が基本領域として算出され、稜線の基本領域について、フィレット半径のフィレットが作成される。これにより、稜線についてそれぞれフィレットどうしが干渉する縮退領域、コーナー領域及びフィレット干渉領域とそれ以外の基本領域とに分類し、縮退領域、コーナー領域及びフィレット干渉領域についてはフィレットどうしの干渉を回避してフィレットを作成すると共に基本領域についてはフィレット半径のフィレットを形成することができ、三次元形状モデルに確実に且つ自動的にフィレットを作成することができる。
【００３３】
そして、請求項６〜請求項１０に記載の自動フィレット作成プログラムに関する発明によれば、これをコンピュータで実行することにより、自動フィレット作成システムに関する請求項１〜請求項５に記載の発明と同様の効果を奏することができる。
【図面の簡単な説明】
【００３４】
【図１】本発明の第１実施形態に係る自動フィレットの作成によってフィレットを作成する三次元形状モデルを示す図である。
【図２】稜線の抽出を説明するための説明図である。
【図３】稜線の抽出を説明するための別の説明図である。
【図４】稜線の縮退領域の算出を説明するための説明図である。
【図５】稜線の縮退領域の算出を説明するための別の説明図である。
【図６】縮退領域における補正フィレット半径の算出を説明するための説明図である。
【図７】縮退領域における補正フィレット半径の算出を説明するための別の説明図である。
【図８】縮退領域における補正フィレット半径の算出を説明するための更に別の説明図である。
【図９】稜線のコーナー領域の算出を説明するための説明図である。
【図１０】稜線のコーナー領域の干渉判定を説明するための説明図である。
【図１１】補正コーナー領域の算出を説明するための説明図である。
【図１２】稜線のフィレット干渉領域の算出を説明するための説明図である。
【図１３】稜線のフィレット干渉領域の算出を説明するための別の説明図である。
【図１４】フィレット干渉領域における補正フィレット半径の算出を説明するための説明図である。
【図１５】稜線の縮退領域に作成されるフィレットを示す図である。
【図１６】稜線のフィレット干渉領域に作成されるフィレットを示す図である。
【図１７】稜線のコーナー領域における断面ラインの算出を説明するための説明図である。
【図１８】中間ラインの算出を説明するための説明図である。
【図１９】中間ラインの算出を説明するための別の説明図である。
【図２０】中間ラインの修正判定を説明するための説明図である。
【図２１】中間ラインの修正判定を説明するための別の説明図である。
【図２２】修正する中間ラインの特定を説明するための説明図である。
【図２３】中間ラインの修正を説明するための説明図である。
【図２４】断面ライン及び中間ラインの中点及び該中点からコーナー基準点への方向ベクトルの算出を説明するための説明図である。
【図２５】コーナータイプの算出を説明するための説明図である。
【図２６】コーナータイプの算出を説明するための別の説明図である。
【図２７】第１タイプの分割中心点の算出を説明するための説明図である。
【図２８】第２タイプの分割中心点の算出を説明するための説明図である。
【図２９】第３タイプの分割中心点の算出を説明するための説明図である。
【図３０】第１タイプの分割ラインの算出を説明するための説明図である。
【図３１】第１タイプの分割ラインの算出を説明するための別の説明図である。
【図３２】第１タイプの分割ラインの算出を説明するための更に別の説明図である。
【図３３】第２タイプの分割ラインの算出を説明するための説明図である。
【図３４】第２タイプの分割ラインの算出を説明するための別の説明図である。
【図３５】第３タイプの分割ラインの算出を説明するための説明図である。
【図３６】第３タイプの分割ラインの算出を説明するための別の説明図である。
【図３７】第３タイプの分割ラインの算出を説明するための更に別の説明図である。
【図３８】断面ラインと中間ラインによって囲まれる閉領域内の曲面の形成を説明するための説明図である。
【図３９】稜線のコーナー領域に形成されるフィレットを示す図である。
【図４０】本発明の第１実施形態に係る自動フィレット作成システムの全体構成を示すブロック図である。
【図４１】図４０に示すシステムの記憶装置の構成を示す図である。
【図４２】自動フィレット作成システムによる自動フィレット作成動作を示すフローチャートである。
【図４３】縮退領域の算出動作を示すフローチャートである。
【図４４】コーナー領域の算出動作を示すフローチャートである。
【図４５】フィレット干渉領域の算出動作を示すフローチャートである。
【図４６】コーナー領域のフィレット作成動作を示すフローチャートである。
【図４７】コーナータイプの算出動作を示すフローチャートである。
【図４８】本発明の第２実施形態に係る自動フィレットの作成による分割ラインの算出を説明するための説明図である。
【図４９】前記自動フィレットの作成による分割ラインの算出を説明するための別の説明図である。
【図５０】本発明の第３実施形態に係る自動フィレットの作成による断面ラインと中間ラインによって囲まれる閉領域内の曲面の形成を説明するための説明図である。
【図５１】前記自動フィレットの作成による断面ラインと中間ラインによって囲まれる閉領域内の曲面の形成を説明するための別の説明図である。
【発明を実施するための形態】
【００３５】
以下、本発明の実施形態について添付図面を参照しながら説明する。
【００３６】
本発明の実施形態に係る自動フィレットの作成では、ＣＡＤ装置で作成された三次元形状モデルのデータからフィレットを作成する稜線を抽出し、稜線にユーザによって設定されたフィレット半径のフィレットを作成する際に、稜線についてそれぞれ縮退領域、コーナー領域、フィレット干渉領域及びこれら領域以外の領域である基本領域を算出し、稜線全体について縮退領域、コーナー領域、フィレット干渉領域及び基本領域に応じて自動的にフィレットを作成する。
【００３７】
図１は、本発明の第１実施形態に係る自動フィレットの作成によってフィレットを作成する三次元形状モデルを示す図である。本発明の第１実施形態に係る自動フィレットの作成では、図１に示すような三次元形状モデル１の稜線全体について自動的にフィレットを作成する。三次元形状モデルとしては、例えばプレス工具などの三次元形状モデルを用いることができる。
【００３８】
自動フィレットの作成では、三次元形状モデル１のデータから有限要素分割したメッシュデータを作成し、また、三次元形状モデル１のデータから予め設定された稜線抽出条件に基づいてフィレットが作成される稜線を抽出する。
【００３９】
図２は、稜線の抽出を説明するための説明図である。図２（ａ）は、図１の要部を拡大して示し、図２（ｂ）は、図２（ａ）におけるＹ２Ｂ−Ｙ２Ｂ線に沿った三次元形状モデルの断面を示している。図２（ａ）に示すように、三次元形状モデル１は、面Ｆ１、面Ｆ２、面Ｆ３、面Ｆ４などの複数の面によって構成されている。なお、面には平面状の面のほか曲面状の面も含まれる。
【００４０】
また、面Ｆ１は、境界線Ｂ１、境界線Ｂ２、境界線Ｂ３、境界線Ｂ４によって構成され、面Ｆ２は、境界線Ｂ１、境界線Ｂ５、境界線Ｂ６、境界線Ｂ７によって構成され、三次元形状モデル１を構成する面は、複数の境界線によって構成されている。なお、境界線には直線状の境界線のほか曲線状の境界線も含まれる。
【００４１】
稜線を抽出する際には、三次元形状モデル１を構成する隣接する２つの面の境界線において該２つの面の法線間角度が、稜線抽出条件として設定された所定の折れ判定角度以上である境界線を抽出する。図２（ｂ）に示すように、隣接する面Ｆ１と面Ｆ２の境界線Ｂ１において面Ｆ１の法線ＮＦ１と面Ｆ２の法線ＮＦ２の法線間角度θＢ１が５度などの折れ判定角度θＳ１以上である場合には境界線Ｂ１を抽出する。
【００４２】
一方、隣接する面Ｆ１と面Ｆ３の境界線Ｂ３における面Ｆ１の法線ＮＦ１と面Ｆ３の法線ＮＦ３の法線間角度θＢ３が折れ判定角度θＳ１未満である場合には境界線Ｂ３を抽出しない。境界線は、境界線上の少なくとも１つの構成点における法線間角度が折れ判定角度θＳ１以上である場合に抽出する。なお、図２では、隣接する２つの面Ｆ１、Ｆ３の境界線において２つの面Ｆ１、Ｆ３の法線間角度が折れ判定角度未満である境界線Ｂ３を二点鎖線で示している。
【００４３】
次に、抽出した境界線を稜線抽出条件として設定された境界線グループ化定義に基づいてグループ化し、グループ化された境界線を稜線として抽出する。境界線グループ化定義として、１つの境界線が他の境界線と接続していない場合は１つのグループとすることと、２つの境界線がＣ１連続（接線連続）である場合は１つのグループとすることと、２つの境界線がＣ０連続（位置連続）である場合は別のグループとすることと、３つ以上の境界線が接続する場合はそれぞれ別々のグループとすることとが設定されている。
【００４４】
本実施形態では、２つの境界線の端点が一致すると共に該端点で２つの境界線の接線のなす角度が折れ判定角度θＳ１未満である場合に２つの境界線がＣ１連続であるとし、２つの境界線の端点が一致すると共に該端点で２つの境界線の接線のなす角度が折れ判定角度θＳ１以上である場合に２つの境界線がＣ０連続であるとする。
【００４５】
図３は、稜線の抽出を説明するための別の説明図であり、図２（ａ）におけるＹ３方向から見た三次元形状モデルを示している。図３に示すように、境界線Ｂ４の端点Ｐ１と境界線Ｂ８の端点Ｐ１が一致すると共に端点Ｐ１で境界線Ｂ４の接線ＳＢ４と境界線Ｂ８の接線ＳＢ８のなす角度θＰ１が折れ判定角度θＳ１未満である場合、２つの境界線Ｂ４、Ｂ８がＣ１連続とされて１つのグループとされ、１つの稜線Ｅ１として抽出される。
【００４６】
一方、境界線Ｂ４の端点Ｐ２と境界線Ｂ５の端点Ｐ２が一致すると共に端点Ｐ２で境界線Ｂ４の接線ＳＢ４と境界線Ｂ５の接線ＳＢ５のなす角度θＰ２が折れ判定角度θＳ１以上である場合、２つの境界線Ｂ４、Ｂ５がＣ０連続とされて別のグループとされ、稜線Ｅ１とは別の稜線Ｅ２として抽出される。このように、三次元形状モデル１から抽出された境界線を境界線グループ化定義に基づいてグループ化し、グループ化された境界線をそれぞれ１つの稜線として抽出する。
【００４７】
前記自動フィレットの作成では、ＸＹＺ座標系で三次元形状モデル１と共に抽出した稜線を表示装置に表示した後に、表示装置に表示した稜線がユーザによって選択されると、稜線に作成するフィレットのフィレット半径の入力画面が表示され、ユーザによって稜線に作成するフィレットのフィレット半径が入力されて設定される。全稜線について一定のフィレット半径を入力することも、各稜線にフィレット半径を入力することも可能である。
【００４８】
そして、全稜線についてフィレット半径が設定されて全稜線に作成するフィレットのフィレット半径が取得されると、稜線のそれぞれについて、稜線に設定されたフィレット半径に基づいてフィレットを作成した場合に他の稜線に作成されるフィレットと干渉する領域を稜線の縮退領域、コーナー領域及びフィレット干渉領域として算出し、これらの領域を除く領域を稜線の基本領域として算出する。
【００４９】
本実施形態では、稜線の縮退領域として、稜線のうち２つの稜線のみが合流する合流点（２つの稜線のみの端点が一致する端点）で２つの稜線間角度が所定の縮退判定角度以下である２つの稜線について、合流点から２つの稜線にそれぞれ取得されたフィレット半径のフィレットを作成するとフィレットどうしが干渉する境界点までの領域を算出する。
【００５０】
稜線のコーナー領域として、稜線のうち複数の稜線が合流する合流点に合流する複数の稜線について、合流点から取得されたフィレット半径に基づいて設定された所定距離だけ離れた境界点までの領域を算出する。コーナー領域の算出では、稜線のうち縮退領域を除く稜線であって、複数の稜線が合流する合流点に合流する複数の稜線について、合流点から取得されたフィレット半径に基づいて設定された所定距離だけ離れた境界点までの領域を算出する。
【００５１】
稜線のフィレット干渉領域として、稜線のうちコーナー領域を除く稜線について、稜線と該稜線に最も近い他の稜線とにそれぞれ取得されたフィレット半径に基づいてフィレットを作成するとフィレットどうしが干渉する領域をフィレット干渉領域として算出する。
【００５２】
稜線の基本領域として、稜線について、縮退領域、コーナー領域及びフィレット干渉領域を除く領域を算出する。
【００５３】
次に、稜線の縮退領域、コーナー領域、フィレット干渉領域及び基本領域の算出について具体的に説明する。
【００５４】
図４は、稜線の縮退領域の算出を説明するための説明図であり、図１の要部を拡大して示している。稜線の縮退領域を算出する際には、稜線のうち２つの稜線のみが合流する合流点で２つの稜線間角度が予め設定された縮退判定角度以下である合流点を縮退基準点として抽出する。
【００５５】
図４に示すように、面Ｆ１１と面Ｆ１３の境界線Ｂ１１が稜線として抽出されることなく面Ｆ１１と面Ｆ１２の境界線が稜線Ｅ１１として抽出されると共に面Ｆ１２と面Ｆ１３の境界線が稜線Ｅ１２として抽出されるときに、２つの稜線Ｅ１１、Ｅ１２のみが合流する合流点Ｔ１１で２つの稜線Ｅ１１、Ｅ１２間角度、具体的には２つの稜線Ｅ１１、Ｅ１２の接線ＳＥ１１、ＳＥ１２のなす角度θＴ１１が５度などの縮退判定角度θＳ２以下である場合、合流点Ｔ１１を縮退基準点として抽出する。
【００５６】
そして、縮退基準点に合流する２つの稜線について、縮退基準点から２つの稜線にそれぞれ設定されたフィレット半径のフィレットを作成するとフィレットどうしが干渉する境界点を縮退境界点として算出し、縮退基準点から縮退境界点までの領域を稜線の縮退領域として算出する。
【００５７】
図４に示すように、縮退基準点Ｔ１１に合流する２つの稜線Ｅ１１、Ｅ１２のうち一方の稜線Ｅ１１について、縮退基準点Ｔ１１から所定距離離れた構成点Ｐ１１に対応する他方の稜線Ｅ１２の最近点Ｑ１２を算出すると共に最近点Ｑ１２までの最近点距離ＤＭＩＮ（Ｐ１１，Ｑ１２）を算出する。
【００５８】
図５は、稜線の縮退領域を説明するための別の説明図である。図５（ａ）は、図４における稜線Ｅ１１の構成点Ｐ１１を通って稜線Ｅ１１に直交する断面を示し、図５（ｂ）は、図４における稜線Ｅ１２の最近点Ｑ１２を通って稜線Ｅ１２に直交する断面を示している。なお、図５（ａ）及び図５（ｂ）では、図４における縮退基準点Ｔ１１側から見た断面を示している。
【００５９】
図５（ａ）に示すように、稜線Ｅ１１にフィレット半径Ｒ１１が設定されている場合、フィレット半径Ｒ１１のフィレットＦＬ１１を作成したときの面Ｆ１２側のＲ止まり点をＰ１１´とし、面Ｆ１１側のＲ止まり点をＰ１１´´とし、フィレットＦＬ１１の中心をＣ１１とし、面Ｆ１１と面Ｆ１２のなす角度の二分の一をθ１１とすると、構成点Ｐ１１とＲ止まり点Ｐ１１´の距離Ｄ１１は、以下の数１に示す式で表すことができる。
【００６０】
【数１】
0005947992.tif 000002
【００６１】
また、図５（ｂ）に示すように、稜線Ｅ１２にフィレット半径Ｒ１２が設定されている場合、フィレット半径Ｒ１２のフィレットＦＬ１２を作成したときの面Ｆ１２側のＲ止まり点をＱ１２´とし、面Ｆ１３側のＲ止まり点をＱ１２´´とし、フィレットＦＬ１２の中心をＣ１２とし、面Ｆ１２と面Ｆ１３のなす角度の二分の一をθ１２とすると、最近点Ｑ１２とＲ止まり点Ｑ１２´の距離Ｄ１２は、以下の数２に示す式で表すことができる。
【００６２】
【数２】
0005947992.tif 000003
【００６３】
そして、最近点距離ＤＭＩＮ（Ｐ１１，Ｑ１２）が距離Ｄ１１と距離Ｄ１２の和と等しくなる構成点Ｐ１１が、以下の数３で示す式を用いて算出され、この構成点Ｐ１１を、２つの稜線Ｅ１１、Ｅ１２にそれぞれ設定されたフィレット半径のフィレットを作成するとフィレットどうしが干渉する境界点である縮退境界点として算出する。縮退境界点Ｐ１１が算出されると、縮退基準点Ｔ１１に合流する稜線Ｅ１１について、縮退基準点Ｔ１１から縮退境界点Ｐ１１までの領域を稜線の縮退領域として算出する。
【００６４】
【数３】
0005947992.tif 000004
【００６５】
縮退基準点Ｔ１１に合流する稜線Ｅ１２についても、縮退基準点Ｔ１１に合流する稜線Ｅ１１と同様にして、後述する図８に示すように、縮退境界点Ｐ１２を算出して縮退基準点Ｔ１１から縮退境界点Ｐ１２までの領域を稜線の縮退領域として算出する。
【００６６】
稜線の縮退領域が算出されると、稜線の縮退領域について、縮退基準点に合流する２つの稜線に作成するフィレットどうしが干渉しないようにフィレット半径を補正した補正フィレット半径を算出する。
【００６７】
図６は、縮退領域における補正フィレット半径の算出を説明するための説明図である。縮退領域における補正フィレット半径を算出する際には、縮退基準点に合流する一方の稜線の縮退領域にある構成点について他方の稜線の最近点を算出すると共に最近点距離を算出し、最近点距離を縮退基準点に合流する２つの稜線に設定されたフィレット半径に応じて比例配分した距離に基づいて補正フィレット半径を算出する。
【００６８】
図６に示すように、稜線Ｅ１１の縮退領域にある構成点Ｐ１１Ａについて、該構成点Ｐ１１Ａに対応する稜線Ｅ１２の最近点Ｑ１２Ａを算出すると共に最近点Ｑ１２Ａまでの最近点距離ＤＭＩＮ（Ｐ１１Ａ，Ｑ１２Ａ）を算出する。
【００６９】
図７は、縮退領域における補正フィレット半径の算出を説明するための別の説明図であり、図６における稜線Ｅ１１の構成点Ｐ１１Ａを通って稜線Ｅ１１に直交する断面を示している。図７に示すように、稜線Ｅ１１の構成点Ｐ１１Ａにおける補正フィレット半径をＲ１１Ａとし、フィレット半径Ｒ１１ＡのフィレットＦＬ１１Ａを作成したときの面Ｆ１２側のＲ止まり点をＰ１１Ａ´とし、面Ｆ１２側のＲ止まり点をＰ１１Ａ´´とし、フィレットＦＬ１１Ａの中心をＣ１１Ａとし、面Ｆ１１と面Ｆ１２のなす角度の二分の一をθ１１Ａとすると、構成点Ｐ１１ＡとＲ止まり点Ｐ１１Ａ´の距離Ｄ１１Ａは、以下の数４に示す式で表すことができる。
【００７０】
【数４】
0005947992.tif 000005
【００７１】
本実施形態では、最近点距離ＤＭＩＮ（Ｐ１１Ａ，Ｑ１２Ａ）を稜線Ｅ１１に設定されたフィレット半径Ｒ１１と稜線Ｅ１２に設定されたフィレット半径Ｒ１２に応じて比例配分させた距離が構成点Ｐ１１ＡとＲ止まり点Ｐ１１Ａ´の距離Ｄ１１Ａに等しいものとし、構成点Ｐ１１ＡとＲ止まり点Ｐ１１Ａ´の距離Ｄ１１Ａは、以下の数５に示す式でも表すことができる。
【００７２】
【数５】
0005947992.tif 000006
【００７３】
前記数４、数５で示す式から、稜線Ｅ１１の縮退領域にある構成点Ｐ１１Ａについて補正される補正フィレット半径Ｒ１１Ａは、以下の数６で示す式を用いて算出される。稜線Ｅ１１の縮退領域についてそれぞれ構成点Ｐ１１Ａと同様にして補正フィレット半径が算出される。
【００７４】
【数６】
0005947992.tif 000007
【００７５】
図８は、縮退領域における補正フィレット半径の算出を説明するための更に別の説明図である。図８に示すように、縮退基準点Ｔ１１に合流する稜線Ｅ１２の縮退境界点Ｐ１２を算出して縮退基準点Ｔ１１から縮退境界点Ｐ１２までの領域が縮退領域として算出される場合、稜線Ｅ１２の縮退領域にある構成点Ｐ１２Ａについて補正される補正フィレット半径Ｒ１２Ａは、稜線Ｅ１１の縮退領域における補正フィレット半径の算出と同様に、以下の数７で示す式を用いて算出される。稜線Ｅ１２の縮退領域についてそれぞれ構成点Ｐ１２Ａと同様にして補正フィレット半径が算出される。
【００７６】
【数７】
0005947992.tif 000008
【００７７】
なお、稜線Ｅ１２の縮退領域にある構成点Ｐ１２Ａに対応する稜線Ｅ１１の最近点をＱ１１Ａとし、最近点Ｑ１１Ａまでの最近点距離をＤＭＩＮ（Ｐ１２Ａ，Ｑ１１Ａ）とし、稜線Ｅ１２に設定されたフィレット半径をＲ１２とし、稜線Ｅ１１に設定されたフィレット半径をＲ１１とし、面Ｆ１２と面Ｆ１３のなす角度の二分の一をθ１２Ａとして表している。
【００７８】
このようにして、三次元形状モデル１について、稜線全体から稜線の縮退領域が算出されると共に稜線の縮退領域について補正フィレット半径が算出される。稜線の縮退領域における補正フィレット半径は、縮退境界点から縮退基準点に向かうにつれて稜線に設定されたフィレット半径が徐々に縮小補正される。
【００７９】
図９は、稜線のコーナー領域の算出を説明するための説明図であり、図１の要部を拡大して示している。稜線のコーナー領域を算出する際には、稜線のうち複数の稜線が合流する合流点をコーナー基準点として抽出する。コーナー領域の算出では、複数の稜線が合流する合流点であっても、稜線の縮退領域を形成する合流点である縮退基準点は除くものとする。
【００８０】
図９に示すように、面Ｆ２１と面Ｆ２２の境界線が稜線Ｅ２１として抽出され、面Ｆ２２と面Ｆ２３の境界線が稜線Ｅ２２として抽出され、面Ｆ２３と面Ｆ２１の境界線が稜線Ｅ２３として抽出され、複数の稜線Ｅ２１、Ｅ２２、Ｅ２３が合流する合流点Ｔ２１が縮退基準点ではない場合、合流点Ｔ２１をコーナー基準点として抽出する。
【００８１】
そして、コーナー基準点から、コーナー基準点に合流する複数の稜線にそれぞれ設定されたフィレット半径に基づいて設定された所定距離だけ離れた境界点をコーナー境界点として算出し、コーナー基準点からコーナー境界点までの領域を稜線のコーナー領域として算出する。本実施形態では、コーナー基準点から、コーナー基準点に合流する複数の稜線にそれぞれ設定されたフィレット半径のうち最大フィレット半径に所定の係数αを掛けた距離だけ離れた境界点をコーナー境界点として算出する。
【００８２】
図９に示すように、コーナー基準点Ｔ２１に合流する稜線Ｅ２１、Ｅ２２、Ｅ２３について、稜線Ｅ２１、Ｅ２２、Ｅ２３にそれぞれフィレット半径Ｒ２１、Ｒ２２、Ｒ２３が設定されている場合、フィレット半径Ｒ２１、Ｒ２２、Ｒ２３のうち最大フィレット半径をＲＭＡＸ（Ｒ２１、Ｒ２２、Ｒ２３）とすると、コーナー基準点Ｔ２１から稜線Ｅ２１、Ｅ２２、Ｅ２３にそれぞれ最大フィレット半径ＲＭＡＸ（Ｒ２１、Ｒ２１、Ｒ２３）に所定の係数αを掛けた距離Ｄ２１、Ｄ２２、Ｄ２３だけ離れた境界点Ｐ２１、Ｐ２２、Ｐ２３がコーナー境界点として算出される。距離Ｄ２１、Ｄ２２、Ｄ２３は、以下の数８に示す式で表すことができ、本実施形態では所定の係数αとしてα＝１．２が用いられる。
【００８３】
【数８】
0005947992.tif 000009
【００８４】
コーナー境界点Ｐ２１、Ｐ２２、Ｐ２３が算出されると、コーナー基準点Ｔ２１に合流する稜線Ｅ２１、Ｅ２２、Ｅ２３についてそれぞれ、コーナー基準点Ｔ２１からコーナー境界点Ｐ２１、Ｐ２２、Ｐ２３までの領域が稜線のコーナー領域として算出される。
【００８５】
本実施形態ではまた、複数の稜線が合流するコーナー基準点について算出されたコーナー領域が他のコーナー基準点について算出されたコーナー領域と干渉するか否かを判定する。
【００８６】
図１０は、稜線のコーナー領域の干渉判定を説明するための説明図であり、図１の要部を拡大して示している。稜線のコーナー領域の干渉を判定する際には、コーナー基準点に合流する複数の稜線が合流する他のコーナー基準点のうち最も近い最近コーナー基準点を抽出して最近コーナー基準点とのコーナー基準点間距離を算出し、コーナー基準点間距離がコーナー基準点からコーナー境界点までの距離と最近コーナー基準点から該最近コーナー基準点に対応するコーナー境界点までの距離の和より小さいか否かを判定する。
【００８７】
図１０に示すように、稜線Ｅ３１、Ｅ３２、Ｅ３３が合流するコーナー基準点Ｔ３１についてコーナー基準点Ｔ３１からコーナー境界点Ｐ３１、Ｐ３２、Ｐ３３までの領域がコーナー領域として算出されている場合、稜線Ｅ３１、Ｅ３２、Ｅ３３が合流する他のコーナー基準点Ｔ４１、Ｔ５１のうち最も近いコーナー基準点Ｔ４１が最近コーナー基準点として抽出される。なお、図１０では、コーナー基準点Ｔ４１についてコーナー基準点Ｔ４１からコーナー境界点Ｐ４１、Ｐ４２、Ｐ４３までの領域が稜線のコーナー領域として算出されている。
【００８８】
そして、コーナー基準点Ｔ３１から最近コーナー境界点Ｔ４１までのコーナー基準点間距離Ｄ（Ｔ３１、Ｔ４１）が算出され、コーナー基準点間距離Ｄ（Ｔ３１、Ｔ４１）が、コーナー基準点Ｔ３１からコーナー境界点Ｐ３３までの距離と、最近コーナー基準点Ｔ４１からコーナー境界点Ｐ４１までの距離の和より小さいか否かが判定される。
【００８９】
稜線Ｅ３１、Ｅ３２、Ｅ３３にそれぞれ設定されるフィレット半径をＲ３１、Ｒ３２、Ｒ３３とし、フィレット半径Ｒ３１、Ｒ３２、Ｒ３３のうち最大フィレット半径をＲＭＡＸ（Ｒ３１、Ｒ３２、Ｒ３３）とし、コーナー基準点Ｔ３１からコーナー境界点Ｐ３３までの距離をＤ３３とすると、距離Ｄ３３は以下の数９に示す式で表すことができる。
【００９０】
【数９】
0005947992.tif 000010
【００９１】
また、稜線Ｅ４１、Ｅ４２、Ｅ４３にそれぞれ設定されるフィレット半径をＲ４１、Ｒ４２、Ｒ４３とし、フィレット半径Ｒ４１、Ｒ４２、Ｒ４３のうち最大フィレット半径をＲＭＡＸ（Ｒ４１、Ｒ４２、Ｒ４３）とし、最近コーナー基準点Ｔ４１からコーナー境界点Ｐ４１までの距離をＤ４１とすると、距離Ｄ４１は以下の数１０に示す式で表すことができる。
【００９２】
【数１０】
0005947992.tif 000011
【００９３】
そして、コーナー基準点間距離Ｄ（Ｔ３１、Ｔ４１）が、コーナー基準点Ｔ３１からコーナー境界点Ｐ３３までの距離Ｄ３３と最近コーナー基準点Ｔ４１からコーナー境界点Ｐ４１までの距離Ｄ４１の和より小さいか否かが判定され、以下の数１１に示す式が成立するか否かが判定される。
【００９４】
【数１１】
0005947992.tif 000012
【００９５】
コーナー基準点間距離Ｄ（Ｔ３１、Ｔ４１）が、コーナー基準点Ｔ３１からコーナー境界点Ｐ３３までの距離Ｄ３３と最近コーナー基準点Ｔ４１からコーナー境界点Ｐ４１までの距離Ｄ４１の和より小さいと判定されると、コーナー基準点Ｔ３１について算出されたコーナー領域が他のコーナー基準点について算出されたコーナー領域と干渉すると判定される。
【００９６】
コーナー領域が他のコーナー領域と干渉すると判定されると、他のコーナー領域との干渉を回避するようにコーナー領域を補正して補正コーナー領域を算出する。補正コーナー領域を算出する際には、コーナー基準点間距離からコーナー基準点に合流する複数の稜線に設定されたフィレット半径と最近コーナー基準点に合流する複数の稜線に設定されたフィレット半径に基づいて設定された所定距離だけ離れた境界点を補正コーナー境界点として算出し、コーナー基準点から補正コーナー境界点までの領域を補正コーナー領域として算出する。
【００９７】
本実施形態では、コーナー基準点間距離をコーナー基準点に合流する複数の稜線に設定されたフィレット半径の最大フィレット半径と最近コーナー基準点に合流する複数の稜線に設定されたフィレット半径の最大フィレット半径に応じて比例配分させた距離だけ離れた境界点を補正コーナー境界点として算出する。
【００９８】
図１１は、補正コーナー領域の算出を説明するための説明図であり、図１０の要部を拡大して示している。コーナー基準点Ｔ３１について、コーナー基準点間距離Ｄ（Ｔ３１、Ｔ４１）をコーナー基準点Ｔ３１に合流する稜線Ｅ３１、Ｅ３２、Ｅ３３に設定されたフィレット半径の最大フィレット半径ＲＭＡＸ（Ｒ３１、Ｒ３２、Ｒ３３）と最近コーナー基準点Ｔ４１に合流する稜線Ｅ４１、Ｅ４２、Ｅ４３に設定されたフィレット半径の最大フィレット半径ＲＭＡＸ（Ｒ４１、Ｒ４２、Ｒ４３）とに応じて比例配分させた距離をＤ（Ｔ３１、Ｔ４１）´とすると、距離Ｄ（Ｔ３１、Ｔ４１）´は、以下の数１２で示す式を用いて算出される。
【００９９】
【数１２】
0005947992.tif 000013
【０１００】
図１１に示すように、コーナー基準点Ｔ３１に合流する稜線Ｅ３１、Ｅ３２、Ｅ３３のうち最近コーナー基準点Ｔ４１を有する稜線Ｅ３３では、コーナー基準点Ｔ３１から距離Ｄ（Ｔ３１、Ｔ４１）´だけ離れた境界点Ｐ３３´が補正コーナー境界点として算出され、コーナー基準点Ｔ３１に合流する稜線Ｅ３１、Ｅ３２、Ｅ３３のうち最近コーナー基準点Ｔ４１を有する稜線Ｅ３３を除く稜線Ｅ３２、Ｅ３３ではコーナー基準点Ｔ３１から距離Ｄ（Ｔ３１、Ｔ４１）´に所定の係数αを掛けた距離だけ離れた境界点Ｐ３１´、Ｐ３２´が補正コーナー境界点として算出される。
【０１０１】
コーナー基準点Ｔ３１から補正コーナー境界点Ｐ３３´までの距離をＤ３３´とすると、距離Ｄ３３´は以下の数１３で示す式で表すことができ、コーナー基準点Ｔ３１から補正コーナー境界点Ｐ３１´、Ｐ３２´までの距離をそれぞれＤ３１´、Ｄ３２´とすると、距離Ｄ３１´、Ｄ３２´は以下の数１４で示す式で表すことができる。
【０１０２】
【数１３】
0005947992.tif 000014
【０１０３】
【数１４】
0005947992.tif 000015
【０１０４】
補正コーナー境界点Ｐ３１´、Ｐ３２´、Ｐ３３´が算出されると、コーナー基準点Ｔ３１に合流する稜線Ｅ３１、Ｅ３２、Ｅ３３についてそれぞれ、コーナー基準点Ｔ３１から補正コーナー境界点Ｐ３１´、Ｐ３２´、Ｐ３３´までの領域が補正コーナー領域として算出される。
【０１０５】
このようにして、三次元形状モデル１について、稜線全体から稜線のコーナー領域が算出され、コーナー領域が他のコーナー領域と干渉すると判定される場合にはコーナー領域が補正されて補正コーナー領域が算出される。
【０１０６】
図１２は、稜線のフィレット干渉領域の算出を説明するための説明図であり、図１の要部を拡大して示している。稜線のフィレット干渉領域を算出する際には、稜線のうちコーナー領域を除く稜線について、稜線と該稜線に最も近い他の稜線とにそれぞれ設定されたフィレット半径に基づいてフィレットを作成するとフィレットどうしが干渉する領域をフィレット干渉領域として算出する。
【０１０７】
本実施形態では、コーナー領域を除く稜線の各構成点についてコーナー領域を除く他の稜線の最近点を算出すると共に最近点距離を算出し、算出された最近点距離が、構成点と該構成点を有する稜線に設定されたフィレット半径に基づいて作成するフィレットのＲ止まり点との距離と、最近点と該最近点を有する稜線に設定されたフィレット半径に基づいて作成するフィレットのＲ止まり点との距離の和より小さいか否かを判定し、小さいと判定される稜線の構成点からなる領域をフィレット干渉領域として算出する。
【０１０８】
図１２に示すように、面Ｆ５１と面Ｆ５２の境界線が稜線Ｅ５１として抽出され、面Ｆ５２と面Ｆ５３の境界線が稜線Ｅ５２として抽出され、面Ｆ５３と面Ｆ５４の境界線が稜線Ｅ５３として抽出されている場合、例えば稜線Ｅ５１の構成点Ｐ５１について該構成点Ｐ５１に最も近い他の稜線Ｅ５２の最近点Ｑ５２を算出すると共に最近点Ｑ５２までの最近点距離ＤＭＩＮ（Ｐ５１，Ｑ５２）を算出する。
【０１０９】
図１３は、稜線のフィレット干渉領域の算出を説明するための別の説明図である。図１３（ａ）は、図１２における稜線Ｅ５１の構成点Ｐ５１を通って稜線Ｅ５１に直交する断面を示し、図１３（ｂ）は、図１２における稜線Ｅ５２の最近点Ｑ５２を通って稜線Ｅ５２に直交する断面を示している。
【０１１０】
図１３（ａ）に示すように、稜線Ｅ５１にフィレット半径Ｒ５１が設定されている場合、稜線Ｅ５１の構成点Ｐ５１についてフィレット半径Ｒ５１のフィレットＦＬ５１を作成したときの面Ｆ５２側のＲ止まり点をＰ５１´とし、面Ｆ５１側のＲ止まり点をＰ５１´´とし、フィレットＦＬ５１の中心をＣ５１とし、面Ｆ５１と面Ｆ５２のなす角度の二分の一をθ５１とすると、構成点Ｐ５１とＲ止まり点Ｐ５１´の距離Ｄ５１は、以下の数１５で示す式で表すことができる。
【０１１１】
【数１５】
0005947992.tif 000016
【０１１２】
また、図１３（ｂ）に示すように、稜線Ｅ５２にフィレット半径Ｒ５２が設定されている場合、稜線Ｅ５２の最近点Ｑ５２についてフィレット半径Ｒ５２のフィレットＦＬ５２を作成したときの面Ｆ５２側のＲ止まり点をＱ５２´とし、面Ｆ５３側のＲ止まり点をＱ５２´´とし、フィレットＦＬ５２の中心をＣ５２とし、面Ｆ５２と面Ｆ５３のなす角度の二分の一をθ５２とすると、最近点Ｑ５２とＲ止まり点Ｑ５２´の距離Ｄ５２は、以下の数１６で示す式で表すことができる。
【０１１３】
【数１６】
0005947992.tif 000017
【０１１４】
そして、最近点距離ＤＭＩＮ（Ｐ５１，Ｑ５２）が距離Ｄ５１と距離Ｄ５２の和より小さいか否かが判定され、以下の数１７に示す式が成立するか否かが判定される。最近点距離ＤＭＩＮ（Ｐ５１，Ｑ５２）が距離Ｄ５１と距離Ｄ５２の和より小さいと判定されると、稜線Ｅ５１の構成点Ｐ５１に作成するフィレットが他の稜線に作成するフィレットと干渉すると判定される。
【０１１５】
【数１７】
0005947992.tif 000018
【０１１６】
コーナー領域を除く稜線について、稜線の各構成点について、稜線Ｅ５１の構成点Ｐ５１と同様に、稜線の各構成点に作成するフィレットが他の稜線に作成するフィレットと干渉するか否かが判定され、他の稜線に作成するフィレットと干渉すると判定される稜線の構成点からなる領域がフィレット干渉領域として算出される。
【０１１７】
稜線のフィレット干渉領域が算出されると、稜線のフィレット干渉領域について、稜線と該稜線に最も近い他の稜線とにそれぞれ作成するフィレットどうしが干渉しないようにフィレット半径を補正した補正フィレット半径を算出する。
【０１１８】
図１４は、フィレット干渉領域における補正フィレット半径の算出を説明するための説明図であり、図１２における稜線Ｅ５１の構成点Ｐ５１を通って稜線Ｅ５１に直交する断面を示している。フィレット干渉領域における補正フィレット半径を算出する際には、稜線のフィレット干渉領域の構成点について最も近い他の稜線の最近点を算出すると共に最近点距離を算出し、最近点距離を２つの稜線に設定されたフィレット半径に応じて比例配分させた距離に基づいて補正フィレット半径を算出する。
【０１１９】
図１２に示すように、稜線Ｅ５１のフィレット干渉領域にある構成点Ｐ５１について、稜線のフィレット干渉領域を算出する場合と同様に、構成点Ｐ５１に最も近い他の稜線Ｅ５２の最近点Ｑ５２を算出すると共に最近点Ｑ５２までの最近点距離ＤＭＩＮ（Ｐ５１，Ｑ５２）を算出する。
【０１２０】
そして、図１４に示すように、稜線Ｅ５１の構成点Ｐ５１における補正フィレット半径をＲ５１´とし、フィレット半径Ｒ５１´のフィレットＦＬ５１´を作成したときの面Ｆ５２側のＲ止まり点をＰ５１Ａ´とし、面Ｆ５１側のＲ止まり点をＰ５１Ａ´´とし、フィレットＦＬ５１´の中心をＣ５１´とすると、構成点Ｐ５１とＲ止まり点Ｐ５１Ａ´の距離Ｄ５１´は、以下の数１８に示す式で表すことができる。
【０１２１】
【数１８】
0005947992.tif 000019
【０１２２】
本実施形態では、最近点距離ＤＭＩＮ（Ｐ５１，Ｑ５２）を稜線Ｅ５１に設定されたフィレット半径Ｒ５１と稜線Ｅ５２に設定されたフィレット半径Ｒ５２とに応じて比例配分させた距離が構成点Ｐ５１とＲ止まり点Ｐ５１Ａ´の距離Ｄ５１´に等しいものとし、構成点Ｐ５１とＲ止まり点Ｐ５１Ａ´の距離Ｄ５１´は、以下の数１９に示す式でも表すことができる。
【０１２３】
【数１９】
0005947992.tif 000020
【０１２４】
前記数１８、数１９で示す式から、稜線Ｅ５１のフィレット干渉領域にある構成点Ｐ５１について補正される補正フィレット半径Ｒ５１´は、以下の数２０で示す式を用いて算出される。稜線のフィレット干渉領域についてそれぞれ構成点Ｐ５１と同様にして補正フィレット半径が算出される。
【０１２５】
【数２０】
0005947992.tif 000021
【０１２６】
フィレット干渉領域の算出やフィレット干渉領域における補正フィレット半径の算出では、稜線の構成点や稜線の構成点に対応する他の稜線の最近点が稜線の縮退領域にある場合、稜線に設定されたフィレット半径に代えて縮退領域について補正された補正フィレット半径を用いてフィレット干渉領域やフィレット干渉領域における補正フィレット半径が算出される。
【０１２７】
このようにして、三次元形状モデル１について、稜線全体から稜線のフィレット干渉領域が算出されると共に稜線のフィレット干渉領域について補正フィレット半径が算出される。
【０１２８】
稜線についてそれぞれ、縮退領域、コーナー領域及びフィレット干渉領域が算出されると、縮退領域、コーナー領域及びフィレット干渉領域を除く領域が稜線の基本領域として算出される。
【０１２９】
三次元形状モデル１から抽出された稜線についてそれぞれ、縮退領域、コーナー領域、フィレット干渉領域及び基本領域が算出されると、稜線の縮退領域、コーナー領域、フィレット干渉領域及び基本領域についてそれぞれ自動的にフィレットを作成して稜線が滑らかに丸められる。
【０１３０】
稜線の基本領域では稜線に設定されたフィレット半径のフィレットが作成され、稜線の縮退領域では稜線に設定されたフィレット半径が補正された補正フィレット半径のフィレットが作成され、稜線のフィレット干渉領域では稜線に設定されたフィレット半径が補正された補正フィレット半径のフィレットが作成され、稜線のコーナー領域では後述するようにコーナー基準点に合流する稜線に設定されたフィレット半径に基づいてフィレットとしてのコーナー形状が作成される。
【０１３１】
図１５は、稜線の縮退領域に作成されるフィレットを示す図であり、図４に示す縮退基準点Ｔ１１に合流する稜線Ｅ１１、Ｅ１２の縮退領域に作成されるフィレットを示している。図１５に示すように、稜線Ｅ１１の縮退領域では補正フィレット半径のフィレットＦＬ１１Ａが作成され、稜線Ｅ１２の縮退領域では補正フィレット半径のフィレットＦＬ１２Ａが作成される。一方、縮退基準点Ｔ１１から縮退境界点よりも離れた稜線Ｅ１１の基本領域では稜線Ｅ１１に設定されたフィレット半径Ｒ１１のフィレットＦＬ１１が作成され、縮退基準点Ｔ１１から縮退境界点よりも離れた稜線Ｅ１２の基本領域では稜線Ｅ１２に設定されたフィレット半径Ｒ１２のフィレットＦＬ１２が作成される。
【０１３２】
図１６は、稜線のフィレット干渉領域に作成されるフィレットを示す図であり、図１２に示す稜線Ｅ５１、Ｅ５２、Ｅ５３のフィレット干渉領域に作成されるフィレットを示している。図１６に示すように、稜線Ｅ５１のフィレット干渉領域では補正フィレット半径のフィレットＦＬ５１Ａが作成され、稜線Ｅ５２のフィレット干渉領域では補正フィレット半径のフィレットＦＬ５２Ａが作成され、稜線Ｅ５３のフィレット干渉領域では補正フィレット半径のフィレットＦＬ５３Ａが作成される。一方、稜線Ｅ５１のフィレット干渉領域の両側の基本領域では稜線Ｅ５１に設定されたフィレット半径Ｒ５１のフィレットＦＬ５１が作成される。
【０１３３】
次に、稜線のコーナー領域におけるフィレットの作成について説明する。
稜線のコーナー領域にフィレットを作成する際には先ず、コーナー基準点に合流する複数の稜線によって構成される複数の面の平均法線ベクトルをコーナー基準点の法線ベクトルとして算出した後に、コーナー基準点に合流する稜線のコーナー境界点について稜線に設定されたフィレット半径に基づいてフィレットの断面ラインを算出する。稜線のコーナー境界点が縮退領域にある場合、稜線に設定されたフィレット半径に代えて縮退領域について補正された補正フィレット半径を用いて断面ラインを算出する。
【０１３４】
図１７は、稜線のコーナー領域における断面ラインの算出を説明するための説明図であり、図１の要部を拡大して示している。図１７に示すように、面ＦＳ１、ＦＳ２間の稜線ＥＳ１、面ＦＳ２、ＦＳ３間の稜線ＥＳ２、面ＦＳ３、ＦＳ１間の稜線ＥＳ３について、コーナー基準点Ｔｃからコーナー境界点ＰＳ１、ＰＳ２、ＰＳ３までの領域がコーナー領域として算出されている場合、コーナー基準点Ｔｃの法線ベクトルＶｃとして、コーナー基準点Ｔｃに合流する稜線ＥＳ１、ＥＳ２、ＥＳ３によって構成される面ＦＳ１、ＦＳ２、ＦＳ３の法線ベクトルの平均値が算出される。
【０１３５】
コーナー基準点Ｔｃの法線ベクトルＶｃは、コーナー基準点Ｔｃにおける面ＦＳ１、ＦＳ２、ＦＳ３の法線ベクトルをそれぞれＶＳ１、ＶＳ２、ＶＳ３とすると、以下の数２１で示す式を用いて算出される。法線ベクトルＶＳ１、ＶＳ２、ＶＳ３としては単位ベクトルが用いられる。なお、稜線ＥＳ１、ＥＳ２、ＥＳ３はコーナー基準点Ｔｃの法線ベクトルＶｃに対して反時計回りに符号の数字が大きくなるように設定されている。
【０１３６】
【数２１】
0005947992.tif 000022
【０１３７】
コーナー基準点Ｔｃの法線ベクトルＶｃが算出されると、図１７に示すように、コーナー基準点Ｔｃに合流する稜線ＥＳ１、ＥＳ２、ＥＳ３のコーナー境界点ＰＳ１、ＰＳ２、ＰＳ３についてそれぞれ稜線ＥＳ１、ＥＳ２、ＥＳ３に設定されたフィレット半径に基づいてフィレットの断面ラインＬＳ１、ＬＳ２、ＬＳ３が算出される。
【０１３８】
断面ラインＬＳ１、ＬＳ２、ＬＳ３はそれぞれ、コーナー基準点Ｔｃの法線ベクトルＶｃに対して反時計回り後方側の始点ＰＳ１１、ＰＳ２１、ＰＳ３１と反時計回り前方側の終点ＰＳ１Ｅ、ＰＳ２Ｅ、ＰＳ３Ｅを有し、稜線ＥＳ１、ＥＳ２、ＥＳ３に設定されたコーナー境界点ＰＳ１、ＰＳ２、ＰＳ３におけるフィレット半径をそれぞれＲＳ１、ＲＳ２、ＲＳ３とすると曲率半径ＲＳ１、ＲＳ２、ＲＳ３の円弧形状に形成される。
【０１３９】
断面ラインＬＳ１の始点ＰＳ１１及び終点ＰＳ１Ｅはそれぞれ面ＦＳ１及びＦＳ２側のＲ止まり点であり、断面ラインＬＳ２の始点ＰＳ２１及び終点ＰＳ２Ｅはそれぞれ面ＦＳ２及びＦＳ３側のＲ止まり点であり、断面ラインＬＳ３の始点ＰＳ３１及び終点ＰＳ３Ｅはそれぞれ面ＦＳ３及びＦＳ１側のＲ止まり点である。
【０１４０】
コーナー基準点に合流する稜線のコーナー境界点についてそれぞれフィレットの断面ラインが算出されると、コーナー基準点の法線ベクトルに対して反時計回りに隣り合う断面ライン間を接続する中間ラインを算出する。
【０１４１】
図１８は、中間ラインの算出を説明するための説明図である。図１８に示すように、コーナー基準点Ｔｃに合流する稜線ＥＳ１、ＥＳ２、ＥＳ３のコーナー境界点ＰＳ１、ＰＳ２、ＰＳ３についてそれぞれ断面ラインＬＳ１、ＬＳ２、ＬＳ３が算出されると、コーナー境界点ＰＳ１、ＰＳ２、ＰＳ３におけるコーナー基準点Ｔｃに向かう方向ベクトルＶ１Ｍ、Ｖ２Ｍ、Ｖ３Ｍが算出される。方向ベクトルＶ１Ｍ、Ｖ２Ｍ、Ｖ３Ｍとして単位ベクトルが用いられる。
【０１４２】
そして、断面ラインＬＳ１、ＬＳ２、ＬＳ３の始点ＰＳ１１、ＰＳ２１、ＰＳ３１及び終点ＰＳ１Ｅ、ＰＳ２Ｅ、ＰＳ３Ｅにおけるコーナー基準点Ｔｃに向かう方向ベクトルとして、断面ラインＬＳ１、ＬＳ２、ＬＳ３に対応するコーナー境界点ＰＳ１、ＰＳ２、ＰＳ３における方向ベクトルＶ１Ｍ、Ｖ２Ｍ、Ｖ３Ｍがそれぞれ設定され、隣り合う断面ラインの始点及び終点の座標と、隣り合う断面ラインの始点及び終点におけるコーナー基準点に向かう方向ベクトルとから、隣り合う断面ライン間を接続する中間ラインが算出される。
【０１４３】
図１８に示すように、隣り合う断面ラインＬＳ１、ＬＳ２間を接続する中間ラインＬＭ１が算出され、隣り合う断面ラインＬＳ２、ＬＳ３間を接続する中間ラインＬＭ２が算出され、隣り合う断面ラインＬＳ３、ＬＳ１間を接続する中間ラインＬＭ３が算出される。
【０１４４】
図１９は、中間ラインの算出を説明するための別の説明図である。図１９では、コーナー基準点Ｔｃの法線ベクトルＶｃに対して反時計回りに隣り合う断面ラインＬＳ１と断面ラインＬＳ２とを接続する中間ラインＬＭ１を算出する場合について示している。
【０１４５】
中間ラインＬＭ１を算出する際には、図１９（ａ）に示すように、コーナー基準点Ｔｃへの方向ベクトルＶ１Ｍが設定された断面ラインＬＳ１の終点ＰＳ１Ｅとコーナー基準点Ｔｃへの方向ベクトルＶ２Ｍが設定された断面ラインＬＳ２の始点ＰＳ２１の点間距離Ｄ（ＰＳ１Ｅ，ＰＳ２１）が算出され、図１９（ｂ）に示すように、断面ラインＬＳ１の終点ＰＳ１Ｅ及び断面ラインＬＳ２の始点ＰＳ２１からそれぞれコーナー基準点Ｔｃへの方向ベクトルＶ１Ｍ及びＶ２Ｍの方向に点間距離Ｄ（ＰＳ１Ｅ，ＰＳ２１）の三分の一の距離だけ離れた位置に制御点ＰＳ１ＥＡ及びＰＳ２１Ａが設定される。
【０１４６】
そして、図１９（ｃ）に示すように、断面ラインＬＳ１の終点ＰＳ１Ｅ及び断面ラインＬＳ２の始点ＰＳ２の座標と、制御点ＰＳ１ＥＡ及びＰＳ２１Ａの座標とから、断面ラインＬＳ１の終点ＰＳ１Ｅと断面ラインＬＳ２の始点ＰＳ２１を接続する補間曲線として３次のベジエ曲線が算出され、この曲線が断面ラインＬＳ１、ＬＳ２間を接続する中間ラインＬＭ１として算出される。
【０１４７】
断面ラインＬＳ２、ＬＳ３間を接続する中間ラインＬＭ２及び断面ラインＬＳ３、ＬＳ１間を接続する中間ラインＬＭ３についても、中間ラインＬＭ１の算出と同様にして算出される。このようにして、断面ライン間を接続する中間ラインが算出されると、断面ラインと中間ラインによって囲まれる閉領域が形成される。
【０１４８】
中間ラインが算出されると、中間ラインを修正するか否かを判定する。中間ラインを修正するか否かは、断面ラインと中間ラインによって囲まれる閉領域内にコーナー基準点が存在するか否かで判定する。
【０１４９】
図２０は、中間ラインの修正判定を説明するための説明図である。中間ラインを修正するか否かを判定する際には、断面ラインと中間ラインによって囲まれる閉領域を、コーナー基準点を通ってコーナー基準点の法線ベクトルがＺ軸となるＸＹ平面に投影させ、投影断面ラインと投影中間ラインによって囲まれる投影閉領域内にコーナー基準点が存在するか否かが判定される。
【０１５０】
図２０（ａ）に示すように、ＸＹＺ座標系において断面ラインＬＳ１、ＬＳ２、ＬＳ３及び中間ラインＬＭ１、ＬＭ２、ＬＭ３が算出されている場合、断面ラインＬＳ１、ＬＳ２、ＬＳ３と中間ラインＬＭ１、ＬＭ２、ＬＭ３によって囲まれる閉領域Ａ１が、コーナー基準点Ｔｃを通ってコーナー基準点Ｔｃの法線ベクトルＶｃがＺ軸となるＸＹ平面に投影され、図２０（ｂ）に示すように、投影断面ラインＬＳ１´、ＬＳ２´、ＬＳ３´と投影中間ラインＬＭ１´、ＬＭ２´、ＬＭ３´によって囲まれる投影閉領域Ａ１´が算出される。
【０１５１】
そして、投影閉領域Ａ１´内にコーナー基準点Ｔｃが存在するか否かが、既知の内外判定法を用いて判定される。図２０（ｂ）に示すように、投影断面ラインＬＳ１´、ＬＳ２´、ＬＳ３´と投影中間ラインＬＭ１´、ＬＭ２´、ＬＭ３´による投影閉領域Ａ１´内にコーナー基準点Ｔｃが存在すると判定される場合、断面ラインＬＳ１、ＬＳ２、ＬＳ３と中間ラインＬＭ１、ＬＭ２、ＬＭ３とによって囲まれる閉領域Ａ１内にコーナー基準点Ｔｃが存在すると判定され、中間ラインを修正しないと判定される。
【０１５２】
なお、図２０（ｂ）では、図２０（ａ）に示す稜線ＥＳ１、ＥＳ２、ＥＳ３が投影された投影稜線をＥＳ１´、ＥＳ２´、ＥＳ３´とし、図２０（ａ）に示す断面ラインＬＳ１、ＬＳ２、ＬＳ３の始点ＰＳ１１、ＰＳ２１、ＰＳ３１及び終点ＰＳ１Ｅ、ＰＳ２Ｅ、ＰＳ３Ｅが投影された投影断面ラインＬＳ１´、ＬＳ２´、ＬＳ３´の投影始点及び投影終点をそれぞれＰＳ１１´、ＰＳ２１´、ＰＳ３１´及びＰＳ１Ｅ´、ＰＳ２Ｅ´、ＰＳ３Ｅ´として表している。
【０１５３】
図２１は、中間ラインの修正判定を説明するための別の説明図である。図２１に示す三次元形状モデルについても、図２１（ａ）に示すＸＹＺ座標系において断面ラインＬＳ１、ＬＳ２、ＬＳ３と中間ラインＬＭ１、ＬＭ２、ＬＭ３による閉領域Ａ１が、コーナー基準点Ｔｃを通ってコーナー基準点Ｔｃの法線ベクトルＶｃがＺ軸となるＸＹ平面に投影され、図２１（ｂ）に示す投影断面ラインＬＳ１´、ＬＳ２´、ＬＳ３´と投影中間ラインＬＭ１´、ＬＭ２´、ＬＭ３´による投影閉領域Ａ１´が算出される。
【０１５４】
図２１（ｂ）に示すように、投影閉領域Ａ１´内にコーナー基準点Ｔｃが存在しない場合は、断面ラインＬＳ１、ＬＳ２、ＬＳ３と中間ラインＬＭ１、ＬＭ２、ＬＭ３とによる閉領域Ａ１内にコーナー基準点Ｔｃが存在しないと判定され、中間ラインを修正すると判定される。
【０１５５】
中間ラインを修正すると判定されると、断面ライン間を接続する中間ラインから修正する中間ラインを特定する。中間ラインの両側の端点と該両側の端点におけるコーナー基準点への方向ベクトルの交点とによって囲まれる閉領域内にコーナー基準点が存在する中間ラインを修正する中間ラインとして特定する。
【０１５６】
図２２は、修正する中間ラインの特定を説明するための説明図である。修正する中間ラインを特定する際には、図２２（ａ）に示すように、ＸＹＺ座標系における断面ラインＬＳ１、ＬＳ２、ＬＳ３と中間ラインＬＭ１、ＬＭ２、ＬＭ３による閉領域が、コーナー基準点Ｔｃを通ってコーナー基準点Ｔｃの法線ベクトルＶｃがＺ軸となるＸＹ平面に投影され、図２２（ｂ）に示すように、投影断面ラインＬＳ１´、ＬＳ２´、ＬＳ３´と投影中間ラインＬＭ１´、ＬＭ２´、ＬＭ３´が算出される。
【０１５７】
また、図２２（ａ）に示すように、中間ラインＬＭ１、ＬＭ２、ＬＭ３の一方の端点となる断面ラインＬＳ１、ＬＳ２、ＬＳ３の終点ＰＳ１Ｅ、ＰＳ２Ｅ、ＰＳ３Ｅ及び他方の端点となる断面ラインＬＳ２、ＬＳ３、ＬＳ１の始点ＰＳ２１、ＰＳ３１、ＰＳ１１におけるコーナー基準点Ｔｃへの方向ベクトルＶ１Ｍ及びＶ２Ｍ、Ｖ２Ｍ及びＶ３Ｍ、Ｖ３Ｍ及びＶ１Ｍが、コーナー基準点Ｔｃを通ってコーナー基準点Ｔｃの法線ベクトルＶｃがＺ軸となるＸＹ平面に投影され、図２２（ｂ）に示すように、投影方向ベクトルＶ１Ｍ´及びＶ２Ｍ´、Ｖ２Ｍ´及びＶ３Ｍ´、Ｖ３Ｍ´及びＶ１Ｍ´が算出される。
【０１５８】
そして、投影中間ラインについてそれぞれ、投影中間ラインの両側の端点から投影方向ベクトルの方向に延びる直線の交点が算出され、投影中間ラインの両側の端点と算出された交点とによって囲まれる三角形閉領域内にコーナー基準点が存在するか否かが既知の内外判定法を用いて判定される。
【０１５９】
図２２（ｂ）に示すように、投影中間ラインＬＭ１´について、投影中間ラインＬＭ１´の両側の端点ＰＳ１Ｅ´、ＰＳ２１´からそれぞれ投影方向ベクトルＶ１Ｍ´、Ｖ２Ｍ´の方向に延びる直線の交点ＰＭ１´が算出され、投影中間ラインＬＭ１´の両側の端点ＰＳ１Ｅ´、ＰＳ２１´と算出された交点ＰＭ１´とによって囲まれる三角形閉領域ＡＭ１内にコーナー基準点Ｔｃが存在するか否かが既知の内外判定法を用いて判定される。
【０１６０】
投影中間ラインＬＭ２´及びＬＭ３´についても、投影中間ラインＬＭ１´と同様にして、投影中間ラインＬＭ２´の両側の端点ＰＳ２Ｅ´、ＰＳ３１´と交点ＰＭ２´とによって囲まれる三角形閉領域ＡＭ２及び投影中間ラインＬＭ３´の両側の端点ＰＳ３Ｅ´、ＰＳ１１´と交点ＰＭ３´とによって囲まれる三角形閉領域ＡＭ３内にそれぞれコーナー基準点Ｔｃが存在するか否かが既知の内外判定法を用いて判定される。
【０１６１】
図２２（ｂ）に示すように、三角形閉領域ＡＭ１、ＡＭ２内にコーナー基準点Ｔｃが存在せず、三角形閉領域ＡＭ３内にコーナー基準点Ｔｃが存在すると判定される場合、三角形閉領域ＡＭ３を構成する２つの端点ＰＳ３Ｅ´、ＰＳ１１´を有する投影中間ラインＬＭ３´に対応する中間ラインＬＭ３が、修正する中間ラインとして特定される。
【０１６２】
修正する中間ラインが特定されると、特定された中間ラインについて、断面ライン及び中間ラインによる閉領域内にコーナー基準点が存在するように中間ラインを修正する。中間ラインを修正する際には、中間ラインを算出する際に設定された制御点を変更して中間ラインを修正する。
【０１６３】
図２３は、中間ラインの修正を説明するための説明図である。図２３（ａ）に示すように、ＸＹＺ座標系において修正する中間ラインＬＭ３について、中間ラインＬＭ３の両側の端点ＰＳ３Ｅ、ＰＳ１１から両側の端点ＰＳ３Ｅ、ＰＳ１１にそれぞれ設定されたコーナー基準点Ｔｃへの方向ベクトルＶ３Ｍ、Ｖ１Ｍの方向に延びる直線ＬＥ、Ｌ１が算出されると共に、直線ＬＥ、Ｌ１における直線ＬＥ、Ｌ１間の距離が最小となる最近点ＰＣＥ、ＰＣ１が算出される。
【０１６４】
次に、直線ＬＥ、Ｌ１についてそれぞれ中間ラインＬＭ３の端点ＰＳ３Ｅ、ＰＳ１１と最近点ＰＣＥ、ＰＣ１の点間距離ＤＥ、Ｄ１が算出され、端点ＰＳ３Ｅ、ＰＳ１１からそれぞれコーナー基準点Ｔｃへの方向ベクトルＶ３Ｍ、Ｖ１Ｍの方向に点間距離ＤＥ、Ｄ１の十分の一の距離だけ離れた位置に制御点ＰＳ３ＥＡ、ＰＳ１１Ａが設定される。
【０１６５】
そして、端点ＰＳ３Ｅ、ＰＳ１１の座標と、制御点ＰＳ３ＥＡ、ＰＳ１１Ａの座標とから、中間ラインＬＭ１の算出と同様にして、３次のベジエ曲線が算出され、この曲線が断面ラインＬＳ１、ＬＳ３間を接続する中間ラインＬＭ３を補正した修正中間ラインＬＭ３Ａとして算出される。
【０１６６】
修正中間ラインＬＭ３Ａが算出されると、中間ラインＬＭ３に代えて修正中間ラインＬＭ３Ａを用い、断面ラインＬＳ１、ＬＳ２、ＬＳ３と中間ラインＬＭ１、ＬＭ２、ＬＭ３Ａとによる閉領域Ａ１Ａ内にコーナー基準点Ｔｃが存在するか否かについて、前述した断面ラインＬＳ１、ＬＳ２、ＬＳ３と中間ラインＬＭ１、ＬＭ２、ＬＭ３とによる閉領域Ａ１内にコーナー基準点Ｔｃが存在するか否かについての判定と同様にして判定される。
【０１６７】
閉領域Ａ１Ａ内にコーナー基準点Ｔｃが存在すると判定される場合は、中間ラインＬＭ３に代えて修正中間ラインＬＭ３Ａが中間ラインとして用いられるが、閉領域Ａ１Ａ内にコーナー基準点Ｔｃが存在しないと判定される場合は、再度中間ラインが修正される。
【０１６８】
再度中間ラインを修正する際には、端点ＰＳ３Ｅ、ＰＳ１１からそれぞれコーナー基準点Ｔｃへの方向ベクトルＶ３Ｍ、Ｖ１Ｍの方向にさらに点間距離ＤＥ、Ｄ１の十分の一の距離だけ、すなわち点間距離ＤＥ、Ｄ１の十分の二の距離だけ離れた位置にそれぞれ制御点ＰＳ３ＥＡ、ＰＳ１１Ａが設定され、端点ＰＳ３Ｅ、ＰＳ１１の座標と、制御点ＰＳ３ＥＡ、ＰＳ１１Ａの座標とから、断面ラインＬＳ１、ＬＳ３間を接続する中間ラインＬＭ３を補正した修正中間ラインＬＭ３Ａが算出される。
【０１６９】
再び中間ラインＬＭ３に代えて修正中間ラインＬＭ３Ａを用い、断面ラインＬＳ１、ＬＳ２、ＬＳ３と中間ラインＬＭ１、ＬＭ２、ＬＭ３Ａによる閉領域Ａ１Ａ内にコーナー基準点Ｔｃが存在するか否かについて判定され、断面ラインＬＳ１、ＬＳ２、ＬＳ３と中間ラインＬＭ１、ＬＭ２、ＬＭ３Ａとによる閉領域Ａ１Ａ内にコーナー基準点Ｔｃが存在するまで繰り返され、図２３（ｂ）に示すように、断面ラインＬＳ１、ＬＳ２、ＬＳ３と中間ラインＬＭ１、ＬＭ２、ＬＭ３Ａによる閉領域Ａ１Ａ内にコーナー基準点Ｔｃが存在する修正中間ラインＬＭ３Ａが算出される。
【０１７０】
このようにして、コーナー基準点に合流する稜線のコーナー領域について断面ライン及び中間ラインが算出されると、断面ライン及び中間ラインの中点を算出すると共に断面ライン及び中間ラインの中点におけるコーナー基準点Ｔｃに向かう方向ベクトルを算出する。
【０１７１】
図２４は、断面ライン及び中間ラインの中点及び該中点からコーナー基準点への方向ベクトルの算出を説明するための説明図である。図２４（ａ）に示すように、ＸＹＺ座標系において断面ラインＬＳ１、ＬＳ２、ＬＳ３と中間ラインＬＭ１、ＬＭ２、ＬＭ３が算出されている場合、断面ラインＬＳ１、ＬＳ２、ＬＳ３についてそれぞれ中点ＰＳ１Ｍ、ＰＳ２Ｍ、ＰＳ３Ｍが算出され、断面ラインＬＳ１、ＬＳ２、ＬＳ３の中点ＰＳ１Ｍ、ＰＳ２Ｍ、ＰＳ３Ｍにおけるコーナー基準点Ｔｃに向かう方向ベクトルＶＳ１Ｍ、ＶＳ２Ｍ、ＶＳ３Ｍとして、断面ラインＬＳ１、ＬＳ２、ＬＳ３に対応するコーナー境界点ＰＳ１、ＰＳ２、ＰＳ３におけるコーナー基準点Ｔｃに向かう方向ベクトルＶ１Ｍ、Ｖ２Ｍ、Ｖ３Ｍがそれぞれ設定されて算出される。
【０１７２】
図２４（ｂ）に示すように、中間ラインＬＭ１、ＬＭ２、ＬＭ３についてもそれぞれ中点ＰＭ１Ｍ、ＰＭ２Ｍ、ＰＭ３Ｍが算出される。中間ラインＬＭ１、ＬＭ２、ＬＭ３の中点ＰＭ１Ｍ、ＰＭ２Ｍ、ＰＭ３Ｍにおけるコーナー基準点Ｔｃに向かう方向ベクトルを算出する際には、断面ラインＬＳ１、ＬＳ２、ＬＳ３の終点ＰＳ１Ｅ、ＰＳ２Ｅ、ＰＳ３Ｅにおけるコーナー境界点ＰＳ１、ＰＳ２、ＰＳ３に向かう方向の接線ベクトルＶＬＳ１Ｅ、ＶＬＳ２Ｅ、ＶＬＳ３Ｅが算出されると共に、断面ラインＬＳ２、ＬＳ３、ＬＳ１の始点ＰＳ２１、ＰＳ３１、ＰＳ１１におけるコーナー境界点ＰＳ２、ＰＳ３、ＰＳ１に向かう方向の接線ベクトルＶＬＳ２１、ＶＬＳ３１、ＶＬＳ１１が算出される。
【０１７３】
そして、中間ラインＬＭ１の中点ＰＭ１Ｍにおけるコーナー基準点Ｔｃに向かう方向ベクトルＶＭ１Ｍとして、以下の数２２で示す式を用いて、中間ラインＬＭ１のコーナー基準点Ｔｃの法線ベクトルＶｃに対して反時計回り後方側の端点である断面ラインＬＳ１の終点ＰＳ１Ｅにおける接線ベクトルＶＬＳ１Ｅと、中間ラインＬＭ１のコーナー基準点Ｔｃの法線ベクトルＶｃに対して反時計回り前方側の端点である断面ラインＬＳ２の始点ＰＳ２１における接線ベクトルＶＬＳ２１の平均値が算出される。
【０１７４】
【数２２】
0005947992.tif 000023
【０１７５】
中間ラインＬＭ２、ＬＭ３の中点ＰＭ２Ｍ、ＰＭ３Ｍにおけるコーナー基準点Ｔｃに向かう方向ベクトルＶＭ２Ｍ、ＶＭ３Ｍについても同様に、以下の数２３、数２４で示す式を用いて、中間ラインＬＭ２、ＬＭ３のコーナー基準点Ｔｃの法線ベクトルＶｃに対して反時計回り後方側の端点である断面ラインＬＳ２、ＬＳ３の終点ＰＳ２Ｅ、ＰＳ３Ｅにおける接線ベクトルＶＬＳ２Ｅ、ＶＬＳ３Ｅと、中間ラインＬＭ２、ＬＭ３のコーナー基準点Ｔｃの法線ベクトルＶｃに対して反時計回り前方側の端点である断面ラインＬＳ３、ＬＳ１の始点ＰＳ３１、ＰＳ１１における接線ベクトルＶＬＳ３１、ＶＬＳ１１の平均値が算出される。
【０１７６】
【数２３】
0005947992.tif 000024
【０１７７】
【数２４】
0005947992.tif 000025
【０１７８】
このようにして、断面ライン及び中間ラインの中点と断面ライン及び中間ラインの中点におけるコーナー基準点に向かう方向ベクトルが算出される。中間ラインが修正された場合は、修正中間ラインについて中点と該中点におけるコーナー基準点に向かう方向ベクトルが算出される。
【０１７９】
次に、断面ラインと中間ラインによって囲まれる閉領域についてコーナータイプを算出し、算出されたコーナータイプに応じて断面ラインと中間ラインによって囲まれる閉領域内に該閉領域内を分割するための分割中心点を算出する。
【０１８０】
コーナータイプを算出する際には、断面ラインと中間ラインによって囲まれる閉領域について、中間ラインとして修正中間ラインが用いられていないと判定されると共に、断面ラインの中点からそれぞれコーナー基準点に向かう方向ベクトルをコーナー基準点の法線ベクトルがＺ軸となるＸＹ平面に投影させた投影方向ベクトルについて２つの投影方向ベクトルのなす角度のうち最も大きい最大角度が所定角度、具体的には１３５度以上であるか否かが判定される。
【０１８１】
図２５は、コーナータイプの算出を説明するための説明図である。中間ラインとして修正中間ラインが用いられていないと判定される場合に、図２５（ａ）に示すように、ＸＹＺ座標系における断面ラインＬＳ１、ＬＳ２、ＬＳ３及び中間ラインＬＭ１、ＬＭ２、ＬＭ３が、コーナー基準点Ｔｃを通ってコーナー基準点Ｔｃの法線ベクトルＶｃがＺ軸となるＸＹ平面に投影され、図２５（ｂ）に示すように、投影断面ラインＬＳ１´、ＬＳ２´、ＬＳ３´及び投影中間ラインＬＭ１´、ＬＭ２´、ＬＭ３´が算出される。
【０１８２】
また、図２５（ａ）に示すように、断面ラインＬＳ１、ＬＳ２、ＬＳ３の中点ＰＳ１Ｍ、ＰＳ２Ｍ、ＰＳ３Ｍ及び該中点ＰＳ１Ｍ、ＰＳ２Ｍ、ＰＳ３Ｍにおけるコーナー基準点Ｔｃへの方向ベクトルＶＳ１Ｍ、ＶＳ２Ｍ、ＶＳ３Ｍがそれぞれ、コーナー基準点Ｔｃを通ってコーナー基準点Ｔｃの法線ベクトルＶｃがＺ軸となるＸＹ平面に投影され、図２５（ｂ）に示すように、投影中点ＰＳ１Ｍ´、ＰＳ２Ｍ´、ＰＳ３Ｍ´及び投影方向ベクトルＶＳ１Ｍ´、ＶＳ２Ｍ´、ＶＳ３Ｍ´が算出される。
【０１８３】
そして、投影方向ベクトルＶＳ１Ｍ´、ＶＳ２Ｍ´、ＶＳ３Ｍ´について２つの投影方向ベクトルのなす角度のうち最も大きい最大角度が１３５度以上であるか否かが判定される。２つの投影方向ベクトルのなす角度は、２つの投影方向ベクトルの内積を用いて算出することができる。
【０１８４】
図２５（ｂ）に示すように、投影方向ベクトルＶＳ１Ｍ´、ＶＳ２Ｍ´のなす角度及び投影方向ベクトルＶＳ３Ｍ´、ＶＳ１Ｍ´のなす角度よりも投影方向ベクトルＶＳ２Ｍ´、ＶＳ３Ｍ´のなす角度が大きく投影方向ベクトルＶＳ２Ｍ´、ＶＳ３Ｍ´のなす角度が最大角度θＭＡＸであり１３５度以上である場合、２つの投影方向ベクトルのなす角度のうち最大角度が１３５度以上であると判定される。
【０１８５】
断面ラインと中間ラインによって囲まれる閉領域について、中間ラインとして修正中間ラインが用いられていないと判定され、断面ラインの中点におけるコーナー基準点への方向ベクトルが投影された投影方向ベクトルについて投影方向ベクトルのなす角度のうち最大角度が１３５度以上であると判定される場合、コーナータイプが第１タイプとして算出される。
【０１８６】
本実施形態では、断面ラインと中間ラインによって囲まれる閉領域について、中間ラインとして修正中間ラインが用いられていないと判定され、断面ラインの中点におけるコーナー基準点への方向ベクトルが投影された投影方向ベクトルについて投影方向ベクトルのなす角度のうち最大角度が１３５度以上ではないと判定される場合についても、コーナー基準点に合流する稜線が２つ、すなわち断面ラインが２つであると判定される場合にはコーナータイプが第１タイプとして算出される。
【０１８７】
一方、中間ラインとして修正中間ラインが用いられていないと判定されると共に、断面ラインの中点におけるコーナー基準点への方向ベクトルが投影された投影方向ベクトルについて投影方向ベクトルのなす角度のうち最大角度が１３５度以上ではないと判定され、コーナー基準点に合流する稜線が２つではないと判定される場合、コーナータイプが第２タイプとして算出される。
【０１８８】
図２６は、コーナータイプの算出を説明するための別の説明図である。中間ラインとして修正中間ラインが用いられていないと判定されると共に、図２６（ａ）に示すように、断面ラインＬＳ１、ＬＳ２、ＬＳ３の中点ＰＳ１Ｍ、ＰＳ２Ｍ、ＰＳ３Ｍにおけるコーナー基準点Ｔｃへの方向ベクトルＶＳ１Ｍ、ＶＳ２Ｍ、ＶＳ３Ｍが、図２６（ｂ）に示すように、コーナー基準点Ｔｃを通ってコーナー基準点Ｔｃの法線ベクトルＶｃがＺ軸となるＸＹ平面に投影された投影方向ベクトルＶＳ１Ｍ´、ＶＳ２Ｍ´、ＶＳ３Ｍ´について、投影方向ベクトルＶＳ１Ｍ´、ＶＳ３Ｍ´のなす角度が最大角度θＭＡＸであり１３５度以上ではないと判定され、且つコーナー基準点Ｔｃに合流する稜線が２つではないと判定される場合、コーナータイプが第２タイプとして算出される。
【０１８９】
また、断面ラインと中間ラインによって囲まれる閉領域について中間ラインとして修正中間ラインが用いられていると判定される場合、コーナータイプが第３タイプとして算出される。
【０１９０】
断面ラインと中間ラインによって囲まれる閉領域についてそれぞれコーナータイプが算出されると、断面ラインと中間ラインによって囲まれる閉領域内にコーナータイプに応じて分割中心点を算出する。
【０１９１】
図２７は、第１タイプの分割中心点の算出を説明するための説明図である。第１タイプについて分割中心点を算出する際には、断面ラインの中点におけるコーナー基準点への方向ベクトルがコーナー基準点を通ってコーナー基準点の法線ベクトルがＺ軸となるＸＹ平面に投影された投影方向ベクトルについて、２つの投影方向ベクトルのなす角度のうち最大角度となる２つの投影方向ベクトルに対応する２つの断面ラインをペアとして、ペアを構成する２つの断面ラインの中点を接続するフレームラインが算出され、フレームラインの中点が分割中心点として算出される。
【０１９２】
図２７に示すように、断面ラインＬＳ１、ＬＳ２、ＬＳ３の中点ＰＳ１Ｍ、ＰＳ２Ｍ、ＰＳ３Ｍにおけるコーナー基準点Ｔｃへの方向ベクトルが投影された投影方向ベクトルについて２つの投影方向ベクトルのなす角度のうち最大角度となる２つの投影方向ベクトルに対応する２つの断面ラインＬＳ２、ＬＳ３をペアとして、ペアを構成する２つの断面ラインＬＳ２、ＬＳ３の中点ＰＳ２Ｍ、ＰＳ３Ｍを接続するフレームラインＬＦ（Ｓ２、Ｓ３）が算出される。
【０１９３】
フレームラインＬＦ（Ｓ２、Ｓ３）は、２つの中点ＰＳ２Ｍ、ＰＳ３Ｍの座標と、２つの中点ＰＳ２Ｍ、ＰＳ３Ｍにおけるコーナー基準点Ｔｃへの方向ベクトルＶＳ２Ｍ、ＶＳ３Ｍとから、中間ラインＬＭ１の算出と同様にして算出される。
【０１９４】
そして、フレームラインＬＦ（Ｓ２、Ｓ３）の中点ＰＭＦ（Ｓ２、Ｓ３）が算出され、算出された中点ＰＭＦ（Ｓ２、Ｓ３）が分割中心点Ｐｚとして算出される。
【０１９５】
図２８は、第２タイプの分割中心点の算出を説明するための説明図である。第２タイプについて分割中心点を算出する際には、断面ラインと、該断面ラインにコーナー基準点の法線ベクトルに対して反時計回りに隣り合う断面ラインにコーナー基準点の法線ベクトルに対して反時計回りに接続される中間ラインをそれぞれペアとして、ペアを構成する断面ライン及び中間ラインの中点を接続するフレームラインが算出され、フレームラインの中点が算出され、フレームラインの中点の平均座標にある点が分割中心点として算出される。
【０１９６】
図２８に示すように、断面ラインＬＳ１、ＬＳ２、ＬＳ３と中間ラインＬＭ２、ＬＭ３、ＬＭ１がそれぞれペアとされ、ペアを構成する断面ラインＬＳ１、ＬＳ２、ＬＳ３の中点ＰＳ１Ｍ、ＰＳ２Ｍ、ＰＳ３Ｍと中間ラインＬＭ２、ＬＭ３、ＬＭ１の中点ＰＭ２Ｍ、ＰＭ３Ｍ、ＰＭ１Ｍをそれぞれ接続するフレームラインＬＦ（Ｓ１、Ｍ２）、ＬＦ（Ｓ２、Ｍ３）、ＬＦ（Ｓ３、Ｍ１）が算出される。フレームラインＬＦ（Ｓ１、Ｍ２）、ＬＦ（Ｓ２、Ｍ３）、ＬＦ（Ｓ３、Ｍ１）は、第１タイプにおけるフレームラインＬＦ（Ｓ２、Ｓ３）の算出と同様にして算出される。
【０１９７】
そして、フレームラインＬＦ（Ｓ１、Ｍ２）、ＬＦ（Ｓ２、Ｍ３）、ＬＦ（Ｓ３、Ｍ１）の中点ＰＭＦ（Ｓ１、Ｍ２）、ＰＭＦ（Ｓ２、Ｍ３）、ＰＭＦ（Ｓ３、Ｍ１）がそれぞれ算出され、中点ＰＭＦ（Ｓ１、Ｍ２）、ＰＭＦ（Ｓ２、Ｍ３）、ＰＭＦ（Ｓ３、Ｍ１）の平均座標が算出され、該平均座標にある点が分割中心点Ｐｚとして算出される。
【０１９８】
図２９は、第３タイプの分割中心点の算出を説明するための説明図である。第３タイプについて分割中心点を算出する際には、修正中間ラインと、断面ラインの中点におけるコーナー基準点への方向ベクトルが投影された投影方向ベクトルのうち、修正中間ラインの中点におけるコーナー基準点への方向ベクトルが投影された投影方向ベクトルとのなす角度が最も大きい投影方向ベクトルに対応する断面ラインをペアとして、ペアを構成する修正中間ライン及び断面ラインの中点を接続するフレームラインが算出され、フレームラインの中点が分割中心点として算出される。
【０１９９】
図２９（ａ）に示すように、修正中間ラインＬＭ３Ａの中点ＰＭ３ＭＡにおけるコーナー基準点Ｔｃへの方向ベクトルＶＭ３ＭＡと、断面ラインＬＳ１、ＬＳ２、ＬＳ３の中点ＰＳ１Ｍ、ＰＳ２Ｍ、ＰＳ３Ｍにおけるコーナー基準点Ｔｃへの方向ベクトルＶＳ１Ｍ、ＶＳ２Ｍ、ＶＳ３Ｍとがそれぞれ、コーナー基準点Ｔｃを通ってコーナー基準点Ｔｃの法線ベクトルＶｃがＺ軸となるＸＹ平面に投影され、図２９（ｂ）に示すように、投影方向ベクトルＶＭ３ＭＡ´と投影方向ベクトルＶＳ１Ｍ´、ＶＳ２Ｍ´、ＶＳ３Ｍ´とが算出される。
【０２００】
そして、図２９（ｂ）に示すように、断面ラインＬＳ１、ＬＳ２、ＬＳ３の中点ＰＳ１Ｍ、ＰＳ２Ｍ、ＰＳ３Ｍにおけるコーナー基準点Ｔｃへの方向ベクトルＶＳ１Ｍ、ＶＳ２Ｍ、ＶＳ３Ｍが投影された投影方向ベクトルＶＳ１Ｍ´、ＶＳ２Ｍ´、ＶＳ３Ｍ´のうち、修正中間ラインＬＭ３Ａの中点ＰＭ３ＭＡにおけるコーナー基準点Ｔｃへの方向ベクトルＶＭ３ＭＡが投影された投影方向ベクトルＶＭ３ＭＡ´とのなす角度が最も大きい投影方向ベクトルＶＳ２Ｍ´が算出される。
【０２０１】
投影方向ベクトルＶＭ３ＭＡ´とのなす角度が最も大きい投影方向ベクトルＶＳ２Ｍ´が算出されると、修正中間ラインＬＭ３Ａと算出された投影方向ベクトルＶＳ２Ｍ´に対応する断面ラインＬＳ２をペアとして、図２９（ａ）に示すように、ペアを構成する修正中間ラインＬＭ３Ａの中点ＰＭ３ＭＡと断面ラインＬＳ２の中点ＰＳ２Ｍを接続するフレームラインＬＦ（Ｓ２、Ｍ３Ａ）が算出される。フレームラインＬＦ（Ｓ２、Ｍ３Ａ）は、第１タイプにおけるフレームラインＬＦ（Ｓ２、Ｓ３）の算出と同様にして算出される。
【０２０２】
そして、フレームラインＬＦ（Ｓ２、Ｍ３Ａ）の中点ＰＭＦ（Ｓ２、Ｍ３Ａ）が算出され、算出された中点ＰＭＦ（Ｓ２、Ｍ３Ａ）が分割中心点Ｐｚとして算出される。
【０２０３】
コーナータイプに応じて断面ラインと中間ラインによって囲まれる閉領域内に分割中心点が算出されると、分割中心点と断面ライン及び中間ラインの中点とをそれぞれ接続して断面ラインと中間ラインによって囲まれる閉領域内を分割する分割ラインを算出する。
【０２０４】
分割ラインを算出する際には、断面ライン及び中間ラインのラインについてそれぞれペアを設定し、ペアを構成するラインの中点を接続するフレームラインを算出し、フレームラインの中点におけるフレームラインの両側の端点である断面ライン、中間ラインの中点に向かう方向の接線ベクトルを算出し、フレームラインの中点における断面ライン、中間ラインの中点に向かう方向の接線ベクトルを分割中心点における断面ライン、中間ラインの中点に向かう方向の接線ベクトルとして設定し、分割中心点における断面ライン、中間ラインの中点に向かう方向の接線ベクトルを用いて分割中心点と断面ライン、中間ラインの中点とを接続する分割ラインを算出する。
【０２０５】
図３０は、第１タイプの分割ラインの算出を説明するための別の説明図である。第１タイプについて分割ラインを算出する際には、図３０（ａ）に示すように、断面ラインＬＳ１、ＬＳ２、ＬＳ３の中点ＰＳ１Ｍ、ＰＳ２Ｍ、ＰＳ３Ｍにおけるコーナー基準点Ｔｃへの方向ベクトルＶＳ１Ｍ、ＶＳ２Ｍ、ＶＳ３Ｍと、中間ラインＬＭ１、ＬＭ２、ＬＭ３の中点ＰＭ１Ｍ、ＰＭ２Ｍ、ＰＭ３Ｍにおけるコーナー基準点Ｔｃへの方向ベクトルＶＭ１Ｍ、ＶＭ２Ｍ、ＶＭ３Ｍがそれぞれ、コーナー基準点Ｔｃを通ってコーナー基準点Ｔｃの法線ベクトルＶｃがＺ軸となるＸＹ平面に投影され、図３０（ｂ）に示すように、投影方向ベクトルＶＳ１Ｍ´、ＶＳ２Ｍ´、ＶＳ３Ｍ´と投影方向ベクトルＶＭ１Ｍ´、ＶＭ２Ｍ´、ＶＭ３Ｍ´が算出される。
【０２０６】
そして、分割中心点Ｐｚを算出する際に算出された２つの断面ラインＬＳ２、ＬＳ３のペアに加え、このペアを構成する断面ラインＬＳ２、ＬＳ３を除く断面ラインＬＳ１と中間ラインＬＭ１、ＬＭ２、ＬＭ３とについてそれぞれ、該断面ラインＬＳ１と中間ラインＬＭ１、ＬＭ２、ＬＭ３とにそれぞれ対応する投影方向ベクトルＶＳ１Ｍ´、ＶＭ１Ｍ´、ＶＭ２Ｍ´、ＶＭ３Ｍ´が他の断面ライン、中間ラインに対応する投影方向ベクトルとのなす角度が最も大きい他の投影方向ベクトルに対応する他の断面ライン、中間ラインがペアとして設定される。
【０２０７】
図３０（ａ）に示す断面ラインＬＳ１、ＬＳ２、ＬＳ３及び中間ラインＬＭ１、ＬＭ２、ＬＭ３では、断面ラインＬＳ２、ＬＳ３のペアに加え、断面ラインＬＳ１と中間ラインＬＭ２のペア、中間ラインＬＭ１と中間ラインＬＭ２のペア、中間ラインＬＭ３と中間ラインＬＭ２のペアが設定される。
【０２０８】
図３１は、第１タイプの分割ラインの算出を説明するための別の説明図である。断面ライン、中間ラインについてペアが設定されると、図３１に示すように、ペアを構成する断面ラインＬＳ２及び断面ラインＬＳ３、断面ラインＬＳ１及び中間ラインＬＭ２、中間ラインＬＭ１及び中間ラインＬＭ２、中間ラインＬＭ３及び中間ラインＬＭ２についてそれぞれ中点を接続するフレームラインＬＦ（Ｓ２、Ｓ３）、ＬＦ（Ｓ１、Ｍ２）、ＬＦ（Ｍ１、Ｍ２）、ＬＦ（Ｍ３、Ｍ２）が算出される。フレームラインＬＦ（Ｓ１、Ｍ２）、ＬＦ（Ｍ１、Ｍ２）、ＬＦ（Ｍ３、Ｍ２）の算出は、フレームラインＬＦ（Ｓ２、Ｓ３）の算出と同様にして算出される。
【０２０９】
そして、各フレームラインＬＦ（Ｓ２、Ｓ３）、ＬＦ（Ｓ１、Ｍ２）、ＬＦ（Ｍ１、Ｍ２）、ＬＦ（Ｍ３、Ｍ２）の中点ＰＭＦ（Ｓ２、Ｓ３）、ＰＭＦ（Ｓ１、Ｍ２）、ＰＭＦ（Ｍ１、Ｍ２）、ＰＭＦ（Ｍ３、Ｍ２）が算出されると共に、各中点ＰＭＦ（Ｓ２、Ｓ３）、ＰＭＦ（Ｓ１、Ｍ２）、ＰＭＦ（Ｍ１、Ｍ２）、ＰＭＦ（Ｍ３、Ｍ２）における各フレームラインＬＦ（Ｓ２、Ｓ３）、ＬＦ（Ｓ１、Ｍ２）、ＬＦ（Ｍ１、Ｍ２）、ＬＦ（Ｍ３、Ｍ２）の一方側の端点に向かう方向の接線ベクトルＶ１ＭＦ（Ｓ２、Ｓ３）、Ｖ１ＭＦ（Ｓ１、Ｍ２）、Ｖ１ＭＦ（Ｍ１、Ｍ２）、Ｖ１ＭＦ（Ｍ３、Ｍ２）と他方側の端点に向かう方向の接線ベクトルＶ２ＭＦ（Ｓ２、Ｓ３）、Ｖ２ＭＦ（Ｓ１、Ｍ２）、Ｖ２ＭＦ（Ｍ１、Ｍ２）、Ｖ２ＭＦ（Ｍ３、Ｍ２）が算出される。
【０２１０】
図３２は、第１タイプの分割ラインの算出を説明するための更に別の説明図である。各フレームラインの一方側及び他方側の端点に向かう方向の接線ベクトルが算出されると、図３２（ａ）に示すように、算出された接線ベクトルＶ１ＭＦ（Ｓ１、Ｍ２）、Ｖ１ＭＦ（Ｓ２、Ｓ３）、Ｖ２ＭＦ（Ｓ２、Ｓ３）、Ｖ１ＭＦ（Ｍ１、Ｍ２）、Ｖ２ＭＦ（Ｓ１、Ｍ２）、Ｖ１ＭＦ（Ｍ３、Ｍ２）が、分割中心点Ｐｚにおける各フレームラインの一方側及び他方側の端点である断面ラインＬＳ１、ＬＳ２、ＬＳ３、中間ラインＬＭ１、ＬＭ２、ＬＭ３の中点ＰＳ１Ｍ、ＰＳ２Ｍ、ＰＳ３Ｍ、ＰＭ１Ｍ、ＰＭ２Ｍ、ＰＭ３Ｍに向かう方向の接線ベクトルとして設定される。
【０２１１】
分割中心点における１つの断面ライン又は中間ラインの中点に向かう方向の接線ベクトルが複数存在する場合、この断面ライン又は中間ラインと、投影方向ベクトルのなす角度が最も大きい投影方向ベクトルに対応する断面ライン又は中間ラインとを接続するフレームラインの中点におけるフレームラインの断面ライン又は中間ラインの中点に向かう方向の接線ベクトルが、分割中心点における断面ライン又は中間ラインの中点に向かう方向の接線ベクトルとして設定される。
【０２１２】
図３１に示すように、中間ラインＬＭ２の中点ＰＭ２Ｍに向かう方向の接線ベクトルＶ２ＭＦ（Ｓ１、Ｍ２）、Ｖ２ＭＦ（Ｍ１、Ｍ２）、Ｖ２ＭＦ（Ｍ３、Ｍ２）が複数存在する場合、図３２（ａ）に示すように、中間ラインＬＭ２と、投影方向ベクトルのなす角度が最も大きい投影方向ベクトルに対応する断面ラインＬＳ１とを接続するフレームラインＬＦ（Ｓ１、Ｍ２）の中点ＰＭＦ（Ｓ１、Ｍ２）におけるフレームラインＬＦ（Ｓ１、Ｍ２）の中間ラインＬＭ２の中点に向かう方向の接線ベクトルＶ２ＭＦ（Ｓ１、Ｍ２）が、分割中心点Ｐｚにおける中間ラインＬＭ２の中点ＰＭ２Ｍに向かう方向の接線ベクトルとして設定される。
【０２１３】
次に、分割中心点Ｐｚにおける断面ラインＬＳ１、ＬＳ２、ＬＳ３、中間ラインＬＭ１、ＬＭ２、ＬＭ３の中点ＰＳ１Ｍ、ＰＳ２Ｍ、ＰＳ３Ｍ、ＰＭ１Ｍ、ＰＭ２Ｍ、ＰＭ３Ｍに向かう方向の接線ベクトルＶ１ＭＦ（Ｓ１、Ｍ２）、Ｖ１ＭＦ（Ｓ２、Ｓ３）、Ｖ２ＭＦ（Ｓ２、Ｓ３）、Ｖ１ＭＦ（Ｍ１、Ｍ２）、Ｖ２ＭＦ（Ｓ１、Ｍ２）、Ｖ１ＭＦ（Ｍ３、Ｍ２）を用いて、図３２（ｂ）に示すように、分割中心点Ｐｚと、断面ラインＬＳ１、ＬＳ２、ＬＳ３、中間ラインＬＭ１、ＬＭ２、ＬＭ３の中点ＰＳ１Ｍ、ＰＳ２Ｍ、ＰＳ３Ｍ、ＰＭ１Ｍ、ＰＭ２Ｍ、ＰＭ３Ｍを接続する分割ラインＬＳ１Ｄ、ＬＳ２Ｄ、ＬＳ３Ｄ、ＬＭ１Ｄ、ＬＭ２Ｄ、ＬＭ３Ｄが算出される。
【０２１４】
分割中心点Ｐｚと断面ラインＬＳ１の中点ＰＳ１Ｍを接続する分割ラインＬＳ１Ｄは、分割中心点Ｐｚと断面ラインＬＳ１の中点ＰＳ１Ｍの座標と、分割中心点Ｐｚにおける断面ラインＬＳ１の中点ＰＳ１Ｍに向かう方向の接線ベクトルＶ１ＭＦ（Ｓ１、Ｍ２）と、断面ラインＬＳ１の中点ＰＳ１Ｍにおけるコーナー基準点Ｔｃへの方向ベクトルＶＳ１Ｍとから、中間ラインＬＭ１の算出と同様にして算出される。他の分割ラインＬＳ２Ｄ、ＬＳ３Ｄ、ＬＭ１Ｄ、ＬＭ２Ｄ、ＬＭ３Ｄについても、分割ラインＬＳ１Ｄと同様にして算出される。
【０２１５】
図３３は、第２タイプの分割ラインの算出を説明するための説明図である。第２タイプについて分割ラインを算出する際には、分割中心点を算出するときと同様に、断面ラインと、該断面ラインにコーナー基準点の法線ベクトルに対して反時計回りに隣り合う断面ラインにコーナー基準点の法線ベクトルに対して反時計回りに接続される中間ラインがそれぞれペアとして設定される。
【０２１６】
断面ライン、中間ラインについてそれぞれペアが設定されると、分割中心点を算出するときと同様に、図３３に示すように、ペアを構成する断面ラインＬＳ１、ＬＳ２、ＬＳ３の中点ＰＳ１Ｍ、ＰＳ２Ｍ、ＰＳ３Ｍと中間ラインＬＭ２、ＬＭ３、ＬＭ１の中点ＰＭ２Ｍ、ＰＭ３Ｍ、ＰＭ１Ｍをそれぞれ接続するフレームラインＬＦ（Ｓ１、Ｍ２）、ＬＦ（Ｓ２、Ｍ３）、ＬＦ（Ｓ３、Ｍ１）が算出される。
【０２１７】
そして、各フレームラインＬＦ（Ｓ１、Ｍ２）、ＬＦ（Ｓ２、Ｍ３）、ＬＦ（Ｓ３、Ｍ１）の中点ＰＭＦ（Ｓ１、Ｍ２）、ＰＭＦ（Ｓ２、Ｍ３）、ＰＭＦ（Ｓ３、Ｍ１）が算出されると共に、各中点ＰＭＦ（Ｓ１、Ｍ２）、ＰＭＦ（Ｓ２、Ｍ３）、ＰＭＦ（Ｓ３、Ｍ１）における各フレームラインＬＦ（Ｓ１、Ｍ２）、ＬＦ（Ｓ２、Ｍ３）、ＬＦ（Ｓ３、Ｍ１）の一方側の端点に向かう方向の接線ベクトルＶ１ＭＦ（Ｓ１、Ｍ２）、Ｖ１ＭＦ（Ｓ２、Ｍ３）、Ｖ１ＭＦ（Ｓ３、Ｍ１）と他方側の端点に向かう方向の接線ベクトルＶ２ＭＦ（Ｓ１、Ｍ２）、Ｖ２ＭＦ（Ｓ２、Ｍ３）、Ｖ２ＭＦ（Ｓ３、Ｍ１が算出される。
【０２１８】
図３４は、第２タイプの分割ラインの算出を説明するための別の説明図である。各フレームラインの一方側及び他方側の端点に向かう方向の接線ベクトルが算出されると、図３４（ａ）に示すように、算出された接線ベクトルＶ１ＭＦ（Ｓ１、Ｍ２）、Ｖ１ＭＦ（Ｓ２、Ｍ３）、Ｖ１ＭＦ（Ｓ３、Ｍ１）、Ｖ２ＭＦ（Ｓ３、Ｍ１）、Ｖ２ＭＦ（Ｓ１、Ｍ２）、Ｖ２ＭＦ（Ｓ２、Ｍ３）が、分割中心点Ｐｚにおける各フレームラインの一方側及び他方側の端点である断面ラインＬＳ１、ＬＳ２、ＬＳ３、中間ラインＬＭ１、ＬＭ２、ＬＭ３の中点ＰＳ１Ｍ、ＰＳ２Ｍ、ＰＳ３Ｍ、ＰＭ１Ｍ、ＰＭ２Ｍ、ＰＭ３Ｍに向かう方向の接線ベクトルとして設定される。
【０２１９】
次に、分割中心点Ｐｚにおける断面ラインＬＳ１、ＬＳ２、ＬＳ３、中間ラインＬＭ１、ＬＭ２、ＬＭ３の中点ＰＳ１Ｍ、ＰＳ２Ｍ、ＰＳ３Ｍ、ＰＭ１Ｍ、ＰＭ２Ｍ、ＰＭ３Ｍに向かう方向の接線ベクトルＶ１ＭＦ（Ｓ１、Ｍ２）、Ｖ１ＭＦ（Ｓ２、Ｍ３）、Ｖ１ＭＦ（Ｓ３、Ｍ１）、Ｖ２ＭＦ（Ｓ３、Ｍ１）、Ｖ２ＭＦ（Ｓ１、Ｍ２）、Ｖ２ＭＦ（Ｓ２、Ｍ３）を用いて、図３４（ｂ）に示すように、分割中心点Ｐｚと、断面ラインＬＳ１、ＬＳ２、ＬＳ３、中間ラインＬＭ１、ＬＭ２、ＬＭ３の中点ＰＳ１Ｍ、ＰＳ２Ｍ、ＰＳ３Ｍ、ＰＭ１Ｍ、ＰＭ２Ｍ、ＰＭ３Ｍを接続する分割ラインＬＳ１Ｄ、ＬＳ２Ｄ、ＬＳ３Ｄ、ＬＭ１Ｄ、ＬＭ２Ｄ、ＬＭ３Ｄが算出される。分割ラインＬＳ１Ｄ、ＬＭ１Ｄ、ＬＳ２Ｄ、ＬＭ２Ｄ、ＬＳ３Ｄ、ＬＭ３Ｄは、第１タイプの分割ラインＬＳ１Ｄと同様にして算出される。
【０２２０】
図３５は、第３タイプの分割ラインの算出を説明するための説明図である。第３タイプについて分割ラインを算出する際には、図３５（ａ）に示すように、断面ラインＬＳ１、ＬＳ２、ＬＳ３の中点ＰＳ１Ｍ、ＰＳ２Ｍ、ＰＳ３Ｍにおけるコーナー基準点Ｔｃへの方向ベクトルＶＳ１Ｍ、ＶＳ２Ｍ、ＶＳ３Ｍと、中間ラインＬＭ１、ＬＭ２、ＬＭ３Ａの中点ＰＭ１Ｍ、ＰＭ２Ｍ、ＰＭ３ＭＡにおけるコーナー基準点Ｔｃへの方向ベクトルＶＭ１Ｍ、ＶＭ２Ｍ、ＶＭ３ＭＡがそれぞれ、コーナー基準点Ｔｃを通ってコーナー基準点Ｔｃの法線ベクトルＶｃがＺ軸となるＸＹ平面に投影され、図３５（ｂ）に示すように、投影方向ベクトルＶＳ１Ｍ´、ＶＳ２Ｍ´、ＶＳ３Ｍ´と投影方向ベクトルＶＭ１Ｍ´、ＶＭ２Ｍ´、ＶＭ３ＭＡ´が算出される。
【０２２１】
そして、分割中心点Ｐｚを算出する際に算出された中間ラインＬＭ３Ａ及び断面ラインＬＳ２のペアに加え、このペアを構成する中間ラインＬＭ３Ａ及び断面ラインＬＳ２を除く断面ラインＬＳ１、ＬＳ３と中間ラインＬＭ１、ＬＭ２についてそれぞれ、該断面ラインＬＳ１、ＬＳ３と中間ラインＬＭ１、ＬＭ２にそれぞれ対応する投影方向ベクトルＶＳ１Ｍ´、ＶＳ３Ｍ´、ＶＭ１Ｍ´、ＶＭ２Ｍ´が他の断面ライン、中間ラインに対応する投影方向ベクトルとのなす角度が最も大きい他の投影方向ベクトルに対応する他の断面ライン、中間ラインがペアとして設定される。
【０２２２】
図３５（ａ）に示す断面ラインＬＳ１、ＬＳ２、ＬＳ３及び中間ラインＬＭ１、ＬＭ２、ＬＭ３Ａでは、中間ラインＬＭ３Ａ及び断面ラインＬＳ２のペアに加え、断面ラインＬＳ１及び中間ラインＬＭ３Ａのペア、断面ラインＬＳ３及び中間ラインＬＭ３Ａのペア、中間ラインＬＭ１及び中間ラインＬＭ３Ａのペア、中間ラインＬＭ２及び中間ラインＬＭ３Ａのペアが設定される。
【０２２３】
図３６は、第３タイプの分割ラインの算出を説明するための別の説明図である。断面ライン、中間ラインについてペアが設定されると、図３６に示すように、ペアを構成する中間ラインＬＭ３Ａ及び断面ラインＬＳ２、断面ラインＬＳ１及び中間ラインＬＭ３Ａ、断面ラインＬＳ３及び中間ラインＬＭ３Ａ、中間ラインＬＭ１及び中間ラインＬＭ３Ａ、中間ラインＬＭ２及び中間ラインＬＭ３Ａについてそれぞれ中点を接続するフレームラインＬＦ（Ｍ３Ａ、Ｓ２）、ＬＦ（Ｓ１、Ｍ３Ａ）、ＬＦ（Ｓ３、Ｍ３Ａ）、ＬＦ（Ｍ１、Ｍ３Ａ）、ＬＦ（Ｍ２、Ｍ３Ａ）が算出される。フレームラインＬＦ（Ｓ１、Ｍ３Ａ）、ＬＦ（Ｓ３、Ｍ３Ａ）、ＬＦ（Ｍ１、Ｍ３Ａ）、ＬＦ（Ｍ２、Ｍ３Ａ）の算出は、フレームラインＬＦ（Ｍ３Ａ、Ｓ２）の算出と同様にして算出される。
【０２２４】
そして、各フレームラインＬＦ（Ｍ３Ａ、Ｓ２）、ＬＦ（Ｓ１、Ｍ３Ａ）、ＬＦ（Ｓ３、Ｍ３Ａ）、ＬＦ（Ｍ１、Ｍ３Ａ）、ＬＦ（Ｍ２、Ｍ３Ａ）の中点ＰＭＦ（Ｍ３Ａ、Ｓ２）、ＰＭＦ（Ｓ１、Ｍ３Ａ）、ＰＭＦ（Ｓ３、Ｍ３Ａ）、ＰＭＦ（Ｍ１、Ｍ３Ａ）、ＰＭＦ（Ｍ２、Ｍ３Ａ）が算出されると共に、各中点ＰＭＦ（Ｍ３Ａ、Ｓ２）、ＰＭＦ（Ｓ１、Ｍ３Ａ）、ＰＭＦ（Ｓ３、Ｍ３Ａ）、ＰＭＦ（Ｍ１、Ｍ３Ａ）、ＰＭＦ（Ｍ２、Ｍ３Ａ）における各フレームラインＬＦ（Ｍ３Ａ、Ｓ２）、ＬＦ（Ｓ１、Ｍ３Ａ）、ＬＦ（Ｓ３、Ｍ３Ａ）、ＬＦ（Ｍ１、Ｍ３Ａ）、ＬＦ（Ｍ２、Ｍ３Ａ）の一方側の端点に向かう方向の接線ベクトルと他方側の端点に向かう方向の接線ベクトルが算出される。
【０２２５】
図３７は、第３タイプの分割ラインの算出を説明するための更に別の説明図である。各フレームラインの一方側及び他方側の端点に向かう方向の接線ベクトルが算出されると、図３７（ａ）に示すように、算出された接線ベクトルＶ１ＭＦ（Ｓ１、Ｍ３Ａ）、Ｖ２ＭＦ（Ｍ３Ａ、Ｓ２）、Ｖ１ＭＦ（Ｓ３、Ｍ３Ａ）、Ｖ１ＭＦ（Ｍ１、Ｍ３Ａ）、Ｖ１ＭＦ（Ｍ２、Ｍ３Ａ）、Ｖ１ＭＦ（Ｍ３Ａ、Ｓ２）が、分割中心点Ｐｚにおける各フレームラインの一方側及び他方側の端点である断面ラインＬＳ１、ＬＳ２、ＬＳ３、中間ラインＬＭ１、ＬＭ２、ＬＭ３Ａの中点ＰＳ１Ｍ、ＰＳ２Ｍ、ＰＳ３Ｍ、ＰＭ１Ｍ、ＰＭ２Ｍ、ＰＭ３ＭＡに向かう方向の接線ベクトルとして設定される。
【０２２６】
第３タイプについても、第１タイプと同様に、分割中心点における１つの断面ライン又は中間ラインの中点に向かう方向の接線ベクトルが複数存在する場合、この断面ライン又は中間ラインと、投影方向ベクトルのなす角度が最も大きい投影方向ベクトルに対応する断面ライン又は中間ラインとを接続するフレームラインの中点におけるフレームラインの断面ライン又は中間ラインの中点に向かう方向の接線ベクトルが、分割中心点における断面ライン又は中間ラインの中点に向かう方向の接線ベクトルとして設定される。
【０２２７】
図３６に示すように、中間ラインＬＭ３Ａの中点ＰＭ３ＭＡに向かう方向の接線ベクトルが複数存在する場合、図３７（ａ）に示すように、中間ラインＬＭ３Ａと、投影方向ベクトルのなす角度が最も大きい投影方向ベクトルに対応する断面ラインＬＳ２とを接続するフレームラインＬＦ（Ｍ３Ａ、Ｓ２）の中点ＰＭＦ（Ｍ３Ａ、Ｓ２）におけるフレームラインＬＦ（Ｍ３Ａ、Ｓ２）の中間ラインＬＭ３Ａの中点に向かう方向の接線ベクトルＶ１ＭＦ（Ｍ３Ａ、Ｓ２）が、分割中心点Ｐｚにおける中間ラインＬＭ３Ａの中点ＰＭ３ＭＡに向かう方向の接線ベクトルとして設定される。
【０２２８】
次に、分割中心点Ｐｚにおける断面ラインＬＳ１、ＬＳ２、ＬＳ３、中間ラインＬＭ１、ＬＭ２、ＬＭ３Ａの中点ＰＳ１Ｍ、ＰＳ２Ｍ、ＰＳ３Ｍ、ＰＭ１Ｍ、ＰＭ２Ｍ、ＰＭ３ＭＡに向かう方向の接線ベクトルＶ１ＭＦ（Ｓ１、Ｍ３Ａ）、Ｖ２ＭＦ（Ｍ３Ａ、Ｓ２）、Ｖ１ＭＦ（Ｓ３、Ｍ３Ａ）、Ｖ１ＭＦ（Ｍ１、Ｍ３Ａ）、Ｖ１ＭＦ（Ｍ２、Ｍ３Ａ）、Ｖ１ＭＦ（Ｍ３Ａ、Ｓ２）を用いて、図３７（ｂ）に示すように、分割中心点Ｐｚと、断面ラインＬＳ１、ＬＳ２、ＬＳ３、中間ラインＬＭ１、ＬＭ２、ＬＭ３Ａの中点ＰＳ１Ｍ、ＰＳ２Ｍ、ＰＳ３Ｍ、ＰＭ１Ｍ、ＰＭ２Ｍ、ＰＭ３ＭＡを接続する分割ラインＬＳ１Ｄ、ＬＳ２Ｄ、ＬＳ３Ｄ、ＬＭ１Ｄ、ＬＭ２Ｄ、ＬＭ３ＤＡが算出される。分割ラインＬＳ１Ｄ、ＬＭ１Ｄ、ＬＳ２Ｄ、ＬＭ２Ｄ、ＬＳ３Ｄ、ＬＭ３ＤＡは、第１タイプの分割ラインＬＳ１Ｄと同様にして算出される。
【０２２９】
分割ラインが算出されると、断面ラインと中間ラインによって囲まれる閉領域内が分割ラインによって分割されて断面ライン及び中間ラインと断面ライン及び中間ラインの中点とにそれぞれ接続する分割ラインとによって囲まれる分割領域が複数形成され、分割領域にそれぞれ自由曲面を形成してフィレットを作成する。
【０２３０】
図３８は、断面ラインと中間ラインによって囲まれる閉領域内の曲面の形成を説明するための説明図である。図３８（ａ）に示すように、分割ラインが算出されると、断面ラインＬＳ１、ＬＳ２、ＬＳ３と中間ラインＬＭ１、ＬＭ２、ＬＭ３によって囲まれる閉領域Ａ１内が分割ラインＬＳ１Ｄ、ＬＳ２Ｄ、ＬＳ３Ｄ、ＬＭ１Ｄ、ＬＭ２Ｄ、ＬＭ３Ｄによって分割されて分割領域Ａ１１〜Ａ１６が複数形成される。
【０２３１】
具体的には、断面ラインＬＳ１及び中間ラインＬＭ１と分割ラインＬＳ１Ｄ、ＬＭ１Ｄとによって囲まれる分割領域Ａ１１と、中間ラインＬＭ１及び断面ラインＬＳ２と分割ラインＬＭ１Ｄ、ＬＳ２Ｄとによって囲まれる分割領域Ａ１２と、断面ラインＬＳ２及び中間ラインＬＭ２と分割ラインＬＳ２Ｄ、ＬＭ２Ｄとによって囲まれる分割領域Ａ１３と、中間ラインＬＭ２及び断面ラインＬＳ３と分割ラインＬＭ２Ｄ、ＬＳ３Ｄとによって囲まれる分割領域Ａ１４と、断面ラインＬＳ３及び中間ラインＬＭ３と分割ラインＬＳ３Ｄ、ＬＭ３Ｄとによって囲まれる分割領域Ａ１５と、中間ラインＬＭ３及び断面ラインＬＳ１と分割ラインＬＭ３Ｄ、ＬＳ１Ｄとによって囲まれる分割領域Ａ１６とが形成される。
【０２３２】
そして、分割領域Ａ１１〜Ａ１６についてそれぞれ、分割領域Ａ１１〜Ａ１６を構成する断面ライン、中間ライン及び２つの分割ラインにそれぞれ直交する分割領域Ａ１１〜Ａ１６の内方側に向かう方向の勾配ベクトルが算出される。勾配ベクトルを算出する際には先ず、分割領域Ａ１１〜Ａ１６を構成する断面ライン、中間ライン及び２つの分割ラインのそれぞれについて両側の端点における直交する方向の勾配ベクトルが算出される。
【０２３３】
図３８（ｂ）に示すように、断面ラインＬＳ２、中間ラインＬＭ２及び２つの分割ラインＬＭ２Ｄ、ＬＳ２Ｄによって囲まれる分割領域Ａ１３では、断面ラインＬＳ２について、一方の端点ＰＳ２Ｍにおける直交する方向の勾配ベクトルとして、端点ＰＳ２Ｍにおけるコーナー基準点Ｔｃへの方向ベクトルＶＳ２Ｍが算出され、他方の端点ＰＳ２Ｅにおける直交する方向の勾配ベクトルとして、端点ＰＳ２Ｅにおけるコーナー基準点Ｔｃへの方向ベクトルＶＳ２Ｍが算出される。
【０２３４】
中間ラインＬＭ２については、一方の端点ＰＳ２Ｅにおける直交する方向の勾配ベクトルとして、端点ＰＳ２Ｅである断面ラインＬＳ２の終点ＰＳ２Ｅにおけるコーナー境界点ＰＳ２に向かう方向の接線ベクトルＶＬＳ２Ｅが算出され、他方の端点ＰＭ２Ｍにおける直交する方向の勾配ベクトルとして、端点ＰＭ２Ｍにおけるコーナー基準点Ｔｃへの方向ベクトルＶＭ２Ｍが算出される。
【０２３５】
分割ラインＬＭ２Ｄについては、一方の端点ＰＭ２Ｍにおける直交する方向の勾配ベクトルとして、中間ラインＬＭ２の中点ＰＭ２Ｍにおける分割領域Ａ１３の内方側に向かう方向の接線ベクトルＶＬＭ２Ｍが算出され、他方の端点である分割中心点Ｐｚにおける直交する方向の勾配ベクトルとして、分割中心点Ｐｚにおける断面ラインＬＳ２の中点ＰＳ２Ｍに向かう方向の接線ベクトルＶ１ＭＦ（Ｓ２、Ｍ３）が算出される。
【０２３６】
分割ラインＬＳ２Ｄについては、一方の端点である分割中心点Ｐｚにおける直交する方向の勾配ベクトルとして、分割中心点Ｐｚにおける中間ラインＬＭ２の中点ＰＭ２Ｍに向かう方向の接線ベクトルＶ２ＭＦ（Ｓ１、Ｍ２）が算出され、他方の端点ＰＳ２Ｍにおける直交する方向の勾配ベクトルとして、断面ラインＬＳ２の中点ＰＳ２Ｍにおける分割領域Ａ１３の内方側に向かう方向の接線ベクトルＶＬＳ２Ｍが算出される。
【０２３７】
分割領域Ａ１１〜Ａ１６を構成する断面ライン、中間ライン及び２つの分割ラインのそれぞれについて両側の端点における直交する方向の勾配ベクトルが算出されると、各ラインの両側の端点間について直交する方向における分割領域Ａ１１〜Ａ１６の内方側に向かう方向の勾配ベクトルが算出される。
【０２３８】
図３８（ｂ）に示すように、分割領域Ａ１３では、断面ラインＬＳ２の両側の端点ＰＳ２Ｍ、ＰＳ２Ｅ間について直交する方向における分割領域Ａ１３の内方側に向かう方向の勾配ベクトルＶＳ２２は、両側の端点ＰＳ２Ｍ、ＰＳ２Ｅにおける直交する方向の勾配ベクトルＶＳ２Ｍ、ＶＳ２Ｍから補間法、具体的には線形補間法を用いて算出される。
【０２３９】
中間ラインＬＭ２、分割ラインＬＭ２Ｄ、分割ラインＬＳ２Ｄについても、断面ラインＬＳ２と同様にして、中間ラインＬＭ２、分割ラインＬＭ２Ｄ、分割ラインＬＳ２Ｄそれぞれの両側の端点間について直交する方向における分割領域Ａ１３の内方側に向かう方向の勾配ベクトルＶＭ２１、ＶＭ２Ｄ、ＶＳ２Ｄが、両側の端点における直交する方向の勾配ベクトルから補間法を用いて算出される。
【０２４０】
分割領域Ａ１１、Ａ１２、Ａ１４〜Ａ１６についても、分割領域Ａ１３と同様にして、分割領域を構成する断面ライン、中間ライン及び２つの分割ラインにそれぞれ直交する分割領域の内方側に向かう方向の勾配ベクトルが算出される。
【０２４１】
分割領域Ａ１１〜Ａ１６を構成する断面ライン、中間ライン及び２つの分割ラインにおける勾配ベクトルが算出されると、各ラインの形状及び勾配ベクトルを用いて、分割領域Ａ１１〜Ａ１６にＣｏｏｎｓ曲面などの既知の自由曲面が形成されて該自由曲面からなるコーナー形状の曲面が形成され、稜線のコーナー領域にフィレットが作成される。
【０２４２】
図３８では、コーナータイプが第２タイプである場合について説明しているが、コーナータイプが第１タイプ、第３タイプである場合についても、コーナータイプが第２タイプである場合と同様にして、断面ラインと中間ラインによって囲まれる閉領域内が分割ラインによって分割されて断面ライン及び中間ラインと断面ライン及び中間ラインの中点とにそれぞれ接続する分割ラインとによって囲まれる分割領域にそれぞれ自由曲面が形成されて稜線のコーナー領域にフィレットが形成される。
【０２４３】
図３９は、稜線のコーナー領域に形成されるフィレットを示す図である。図３９（ａ）は、図３２（ｂ）に示すコーナータイプが第１タイプである場合について、図３９（ｂ）は、図３４（ｂ）に示すコーナータイプが第２タイプである場合について、図３９（ｃ）は、図３７（ｂ）に示すコーナータイプが第３タイプである場合について示している。図３９では、分割領域をそれぞれ４つの要素に分割するメッシュが形成された状態で示されている。
【０２４４】
図３９（ａ）、図３９（ｂ）、図３９（ｃ）に示すように、断面ラインと中間ラインによって囲まれる閉領域内が分割ラインによって分割された分割領域にそれぞれ自由曲面が形成され、稜線のコーナー領域にフィレットとしてのコーナー形状が作成される。
【０２４５】
このようにして、稜線のコーナー領域について、コーナー基準点に合流する複数の稜線のコーナー境界点について稜線に設定されたフィレット半径に基づいてフィレットの断面ラインが算出され、断面ライン間を接続する中間ラインが算出され、断面ラインと中間ラインによって囲まれる閉領域内に曲面が形成されてフィレットが作成される。
【０２４６】
前述した実施形態では、コーナー基準点に３つの稜線が合流するコーナー領域について説明しているが、コーナー基準点に２つの稜線が合流するコーナー領域やコーナー基準点に４つ以上の稜線が合流するコーナー領域についてもコーナー基準点に３つの稜線が合流するコーナー領域と同様にして稜線のコーナー領域についてフィレットが作成される。
【０２４７】
このように、本実施形態に係る自動フィレットの作成では、三次元形状モデルのデータからフィレットを作成する稜線を抽出し、稜線に設定されたフィレット半径のフィレットを作成する際に、稜線についてそれぞれ縮退領域、コーナー領域、フィレット干渉領域及び基本領域を算出し、稜線全体について縮退領域、コーナー領域、フィレット干渉領域及び基本領域に応じて自動的にフィレットを作成する。
【０２４８】
本実施形態では、三次元形状モデル１から有限要素分割したメッシュデータが作成され、三次元形状モデル１から稜線が抽出され、稜線についてそれぞれ縮退領域、コーナー領域、フィレット干渉領域及び基本領域が算出され、稜線全体について縮退領域、コーナー領域、フィレット干渉領域及び基本領域に応じて自動的にフィレットが作成されてフィレットメッシュデータが作成される。そして、三次元形状モデル１から有限要素分割したメッシュデータに、フィレットメッシュデータが結合されて、フィレットが作成された三次元形状モデルのメッシュデータが作成される。
【０２４９】
本実施形態ではまた、フィレットが作成された三次元形状モデルのメッシュデータを表示装置に表示する際に、ユーザによって稜線に設定されたフィレット半径を補正したフィレット半径を用いてフィレットが作成された部分、具体的には稜線の縮退領域、フィレット干渉領域及び補正コーナー領域に形成されたフィレットをハイライト表示してユーザに報知させるようになっている。
【０２５０】
次に、本発明の第１実施形態に係る自動フィレット作成システムについて説明する。
【０２５１】
図４０は、本発明の第１実施形態に係る自動フィレット作成システムの全体構成を示すブロック図である。本発明の第１本実施形態に係る自動フィレット作成システムは、前述した実施形態に係る自動フィレットの作成を行うように構成されている。
【０２５２】
前記自動フィレット作成システムは、図４０に示すように、コンピュータ１００を中心として構成され、コンピュータ１００は、中央演算装置１０１と、稜線に作成するフィレットのフィレット半径などを入力するためのキーボードなどの入力装置１０２と、三次元形状モデルなどを表示するためのディスプレイなどの表示装置１０３と、三次元形状モデルに自動的にフィレットを作成するためのプログラムやデータなどを記憶するメモリなどの記憶装置１０４と、フィレットが作成された三次元形状モデルなどを出力するプリンタなどの出力装置１０５とを有している。
【０２５３】
中央演算装置１０１は、入力装置１０２、表示装置１０３及び出力装置１０５を制御すると共に、記憶装置１０４にアクセス可能に構成され、入力装置１０２を介して入力された情報と記憶装置１０４に記憶されているプログラムやデータを用いて、三次元形状モデルに自動的にフィレットを作成すると共にフィレットが作成された三次元形状モデルを記憶装置１０４に保存するように構成されている。
【０２５４】
図４１は、図４０に示すシステムの記憶装置の構成を示す図である。図４１に示すように、記憶装置１０４は、プログラム記憶部とデータ記憶部とを有している。プログラム記憶部には、三次元形状モデルに自動的にフィレットを作成する自動フィレット作成プログラム、三次元形状モデルを有限要素分割したメッシュを作成するメッシュ作成プログラム、三次元形状モデルから稜線を抽出する稜線抽出プログラム、稜線の縮退領域を算出する縮退領域算出プログラム、稜線のコーナー領域を算出するコーナー領域算出プログラム、稜線のフィレット干渉領域を算出するフィレット干渉領域算出プログラム、稜線の基本領域を算出する基本領域算出プログラム、稜線にそれぞれフィレットを作成するフィレット作成プログラム、及び三次元形状モデルなどを表示する表示プログラムなどが記憶されている。
【０２５５】
一方、データ記憶部には、三次元形状モデルのデータが記憶される三次元形状モデルデータファイル、稜線抽出条件データ及び縮退判定角度データなどが記憶される条件データファイル、三次元形状モデルのメッシュデータやフィレットが作成された三次元形状モデルのメッシュデータが記憶されるメッシュデータファイル、抽出された稜線データが記憶される稜線データファイル、稜線に設定されるフィレット半径データが記憶されるフィレット半径データファイル、稜線の縮退領域が記憶される縮退領域データファイル、稜線のコーナー領域が記憶されるコーナー領域データファイル、稜線のフィレット干渉領域が記憶されるフィレット干渉領域データファイル、稜線の基本領域が記憶される基本領域データファイル、及びフィレットメッシュデータが記憶されるフィレットメッシュデータファイルなどが記憶されている。
【０２５６】
次に、三次元形状モデルに自動的にフィレットを作成する動作について説明する。
図４２は、自動フィレット作成システムによる自動フィレット作成動作を示すフローチャートである。三次元形状モデルに自動的にフィレットを作成する前に、コンピュータ１００には、ユーザによって三次元形状モデルのデータが三次元形状モデルデータファイルに記憶されると共に、稜線抽出条件データとしての折れ判定角度データ及び境界線グループ化定義データと縮退判定角度データが条件データファイルに記録される。
【０２５７】
三次元形状モデルに自動的にフィレットを作成するための各種データ、具体的には三次元形状モデルのデータ、稜線抽出条件としての折れ判定角度データ及び境界線グループ化定義データ、縮退判定角度データが記憶された状態で、三次元形状モデルに自動的にフィレットを作成するための計算が行われる。
【０２５８】
先ず、図４２に示すように、三次元形状モデルに自動的にフィレットを作成するための各種データが取得される。具体的には、三次元形状モデルのデータが取得され（ステップＳ１）、稜線抽出条件データとしての折れ判定角度データ及び境界線グループ化定義データと縮退判定角度データとが取得される（ステップＳ２）。そして、三次元形状モデルが有限要素分割されたメッシュデータが作成され（ステップＳ３）、作成されたメッシュデータがメッシュデータファイルに記憶される。
【０２５９】
次に、三次元形状モデルのデータから稜線抽出条件データに基づいてフィレットが作成される稜線が抽出される（ステップＳ４）。三次元形状モデルのデータから稜線抽出条件としての折れ判定角度に基づいて折れ判定角度以上の境界線が抽出され、抽出された境界線が稜線抽出条件としての境界線グループ化定義に基づいてグループ化されて稜線として抽出される。抽出された稜線は、稜線データファイルに記憶される。
【０２６０】
稜線が抽出されると、抽出された稜線が三次元形状モデル１と共に表示装置１０３に表示された後に、入力装置１０２を介してユーザによって稜線にそれぞれ設定されるフィレット半径が取得される（ステップＳ５）。稜線にそれぞれ設定されるフィレット半径が取得されると、フィレット半径がフィレット半径データファイルに記憶され、稜線の縮退領域の算出が行われる（ステップＳ６）。
【０２６１】
図４３は、縮退領域の算出動作を示すフローチャートである。稜線の縮退領域の算出では、図４３に示すように、ステップＳ４において抽出された稜線から縮退基準点が抽出される（ステップＳ２１）。２つの稜線のみが合流する合流点で２つの稜線間角度がステップＳ２において取得された縮退判定角度以下である合流点が縮退基準点として抽出される。
【０２６２】
縮退基準点が抽出されると、縮退境界点が算出される（ステップＳ２２）。縮退基準点に合流する２つの稜線について、縮退基準点から２つの稜線にそれぞれ作成するフィレットどうしが干渉する境界点が縮退境界点として算出される。縮退境界点が算出されると、縮退基準点から縮退境界点までの領域が縮退領域として算出される（ステップＳ２３）。
【０２６３】
稜線の縮退領域が算出されると、縮退領域について補正フィレット半径が算出される（ステップＳ２４）。縮退基準点に合流する一方の稜線の縮退領域にある構成点について他方の稜線の最近点が算出されると共に最近点距離が算出され、最近点距離が縮退基準点に合流する２つの稜線に設定されたフィレット半径に応じて比例配分された距離に基づいて補正フィレット半径が算出される。算出された縮退領域及び補正フィレット半径は、縮退領域データファイルに記憶される。縮退領域について補正フィレット半径が算出されると、図４２に示すように、稜線のコーナー領域の算出が行われる（ステップＳ７）。
【０２６４】
図４４は、コーナー領域の算出動作を示すフローチャートである。稜線のコーナー領域の算出では、図４４に示すように、ステップＳ４において抽出された稜線からコーナー基準点が抽出される（ステップＳ３１）。複数の稜線が合流する合流点であって、ステップＳ２１において抽出された縮退基準点を除く合流点がコーナー基準点として抽出される。
【０２６５】
コーナー基準点が抽出されると、コーナー境界点が算出される（ステップＳ３２）。コーナー基準点に合流する複数の稜線にそれぞれ設定されたフィレット半径に基づいて設定された所定距離だけ離れた境界点がコーナー境界点として算出される。コーナー境界点が算出されると、コーナー基準点からコーナー境界点までの領域が稜線のコーナー領域として算出される（ステップＳ３３）。
【０２６６】
稜線のコーナー領域が算出されると、コーナー領域が他のコーナー基準点について算出されたコーナー領域と干渉するか否かが判定される（ステップＳ３４）。コーナー領域の干渉判定は、コーナー基準点に合流する複数の稜線が合流する他のコーナー基準点のうち最も近い最近コーナー基準点が抽出されて最近コーナー基準点とのコーナー基準点間距離が算出され、コーナー基準点間距離がコーナー基準点からコーナー境界点までの距離と最近コーナー基準点からコーナー境界点までの距離の和より小さいか否かが判定される。
【０２６７】
ステップＳ３４での判定結果がノー（ＮＯ）の場合、すなわちコーナー基準点間距離がコーナー基準点からコーナー境界点までの距離と最近コーナー基準点からコーナー境界点までの距離の和より小さくないと判定され、コーナー領域が干渉しないと判定される場合、ステップＳ３３において算出されたコーナー領域がコーナー領域として用いられ、図４２に示すように、稜線のフィレット干渉領域の算出が行われる（ステップＳ８）。
【０２６８】
一方、ステップＳ３４での判定結果がイエス（ＹＥＳ）の場合、すなわちコーナー基準点間距離がコーナー基準点からコーナー境界点までの距離と最近コーナー基準点からコーナー境界点までの距離の和より小さいと判定され、コーナー領域が干渉すると判定される場合、コーナー領域について補正コーナー領域が算出される（ステップＳ３５）。
【０２６９】
補正コーナー領域の算出では、コーナー基準点間距離からコーナー基準点に合流する複数の稜線に設定されたフィレット半径と最近コーナー基準点に合流する複数の稜線に設定されたフィレット半径に基づいて設定された所定距離だけ離れた補正コーナー境界点が算出され、コーナー基準点から補正コーナー境界点までの領域が補正コーナー領域として算出される。補正コーナー領域が算出されると、補正コーナー領域がコーナー領域として用いられる。算出されたコーナー領域及び補正コーナー領域は、コーナー領域データファイルに記憶される。そして、図４２に示すように、稜線のフィレット干渉領域の算出が行われる（ステップＳ８）。
【０２７０】
図４５は、フィレット干渉領域の算出動作を示すフローチャートである。稜線のフィレット干渉領域の算出では、図４５に示すように、ステップＳ４において抽出された稜線からフィレット干渉領域が算出される（ステップＳ４１）。
【０２７１】
フィレット干渉領域の算出では、抽出された稜線のうちコーナー領域を除く稜線について、稜線の各構成点についてコーナー領域を除く他の稜線の最近点が算出されると共に最近点距離が算出され、最近点距離が、構成点と該構成点を有する稜線に作成するフィレットのＲ止まり点との距離と、最近点と該最近点を有する稜線に作成するフィレットのＲ止まり点との距離の和より小さいか否かが判定され、小さいと判定される稜線の構成点からなる領域がフィレット干渉領域として算出される。
【０２７２】
稜線のフィレット干渉領域が算出されると、フィレット干渉領域について補正フィレット半径が算出される（ステップＳ４２）。稜線のフィレット干渉領域の構成点について最も近い他の稜線の最近点が算出されると共に最近点距離が算出され、最近点距離が２つの稜線に設定されたフィレット半径に応じて比例配分された距離に基づいて補正フィレット半径が算出される。算出されたフィレット干渉領域及び補正フィレット半径は、フィレット干渉領域データファイルに記憶される。
【０２７３】
フィレット干渉領域の算出及びフィレット干渉領域における補正フィレット半径の算出では、稜線が縮退領域にある場合、稜線に設定されたフィレット半径に代えて縮退領域について補正された補正フィレット半径を用いてフィレット干渉領域及びフィレット干渉領域における補正フィレット半径が算出される。
【０２７４】
フィレット干渉領域について補正フィレット半径が算出されると、図４２に示すように、稜線の基本領域の算出が行われる（ステップＳ９）。稜線の基本領域の算出では、ステップＳ４において抽出された稜線から縮退領域、コーナー領域及びフィレット干渉領域を除く領域が稜線の基本領域として算出される。算出された基本領域は、基本領域データファイルに記憶される。
【０２７５】
稜線についてそれぞれ縮退領域、コーナー領域、フィレット干渉領域及び基本領域が算出されると、稜線の縮退領域、コーナー領域、フィレット干渉領域及び基本領域についてそれぞれ自動的にフィレットが作成される（ステップＳ１０〜Ｓ１３）。
【０２７６】
ステップＳ１０において稜線の縮退領域についてフィレットが作成され、稜線の縮退領域についてステップＳ２４において算出された補正フィレット半径のフィレットが作成される。稜線の縮退領域についてそれぞれ補正フィレット半径のフィレットが作成される。次に、ステップＳ１１において稜線のコーナー領域についてフィレットが作成される。
【０２７７】
図４６は、コーナー領域のフィレット作成動作を示すフローチャートである。稜線のコーナー領域についてフィレットの作成では、図４６に示すように、コーナー基準点の法線ベクトルが算出される（ステップＳ５１）。コーナー基準点に合流する複数の稜線によって構成される面の平均法線ベクトルがコーナー基準点の法線ベクトルとして算出される。
【０２７８】
コーナー基準点の法線ベクトルが算出されると、コーナー基準点に合流する稜線のコーナー境界点について稜線に設定されたフィレット半径に基づいてフィレットの断面ラインが算出される（ステップＳ５２）。断面ラインの算出では、稜線のコーナー境界点がフィレット干渉領域にある場合、稜線に設定されたフィレット半径に代えてフィレット干渉領域について補正された補正フィレット半径を用いてフィレットの断面ラインが算出される。
【０２７９】
フィレットの断面ラインが算出されると、コーナー基準点の法線ベクトルに対して反時計回りに隣り合う断面ライン間を接続する中間ラインが算出される（ステップＳ５３）。中間ラインの算出では、断面ラインの始点及び終点におけるコーナー基準点への方向ベクトルとしてコーナー境界点におけるコーナー基準点への方向ベクトルが設定され、隣り合う断面ラインの始点及び終点と、始点及び終点におけるコーナー基準点への方向ベクトルとから、３次のベジエ曲線を用いて中間ラインが算出される。
【０２８０】
そして、中間ラインを修正するか否かが判定される（ステップＳ５４）。中間ラインの修正判定は、断面ラインと中間ラインによって囲まれる閉領域内にコーナー基準点が存在するか否かで判定され、閉領域内にコーナー基準点が存在しないと判定される場合は中間ラインを修正すると判定される。
【０２８１】
ステップＳ５４での判定結果がイエスの場合、すなわち断面ラインと中間ラインによって囲まれる閉領域内にコーナー基準点が存在しないと判定され、中間ラインを修正すると判定される場合、ステップＳ５３において算出された中間ラインが修正される（ステップＳ５５）。
【０２８２】
中間ラインの修正では、断面ライン間を接続する中間ラインから修正する中間ラインが特定され、特定された中間ラインについて、断面ライン及び中間ラインによる閉領域内にコーナー基準点が存在するように中間ラインが修正される。中間ラインが修正されると、断面ライン及び中間ラインの中点におけるコーナー基準点への方向ベクトルが算出される（ステップＳ５６）。
【０２８３】
一方、ステップＳ５４での判定結果がノーの場合、すなわち断面ラインと中間ラインによって囲まれる閉領域内にコーナー基準点が存在すると判定され、中間ラインを修正しないと判定される場合、中間ラインが修正されることなく、断面ライン及び中間ラインの中点におけるコーナー基準点への方向ベクトルが算出される（ステップＳ５６）。そして、断面ラインと中間ラインによって囲まれる閉領域についてコーナータイプが算出される（ステップＳ５７）。
【０２８４】
図４７は、コーナータイプの算出動作を示すフローチャートである。コーナータイプの算出では、図４７に示すように、断面ラインと中間ラインによって囲まれる閉領域について中間ラインが修正されたか否かが判定される（ステップＳ７１）。
【０２８５】
ステップＳ７１での判定結果がノーの場合、すなわち断面ラインと中間ラインによって囲まれる閉領域について中間ラインが修正されていないと判定される場合、断面ラインの中点におけるコーナー基準点への方向ベクトル間の最大角度が１３５度以上であるか否かが判定される（ステップＳ７２）。コーナー基準点への方向ベクトル間の最大角度が１３５度以上であるか否かの判定は、断面ラインの中点におけるコーナー基準点への方向ベクトルが投影された投影方向ベクトルについて２つの投影方向ベクトルのなす角度のうち最大角度が１３５度以上であるか否かで判定される。
【０２８６】
ステップＳ７２での判定結果がイエスの場合、すなわち断面ラインの中点におけるコーナー基準点への方向ベクトル間の最大角度が１３５度以上であると判定される場合、断面ラインと中間ラインによって囲まれる閉領域についてコーナータイプが第１タイプとして算出される（ステップＳ７３）。
【０２８７】
一方、ステップＳ７２での判定結果がノーの場合、すなわち断面ラインの中点におけるコーナー基準点への方向ベクトル間の最大角度が１３５度以上ではないと判定される場合、コーナー基準点に合流する稜線が２つであるか否かが判定され（ステップＳ７４）、断面ラインが２つであるか否かが判定される。
【０２８８】
ステップＳ７４での判定結果がイエスの場合についても、すなわちコーナー基準点に合流する稜線が２つであると判定される場合についても、断面ラインと中間ラインによって囲まれる閉領域についてコーナータイプが第１タイプとして算出される（ステップＳ７３）。
【０２８９】
一方、ステップＳ７４での判定結果がノーの場合、すなわちコーナー基準点に合流する稜線が２つではないと判定される場合、断面ラインと中間ラインによって囲まれる閉領域についてコーナータイプが第２タイプとして算出される（ステップＳ７５）。
【０２９０】
また、ステップＳ７１での判定結果がイエスの場合、すなわち断面ラインと中間ラインによって囲まれる閉領域について中間ラインが修正されたと判定される場合、断面ラインと中間ラインによって囲まれる閉領域についてコーナータイプが第３タイプとして算出される（ステップＳ７６）。
【０２９１】
断面ラインと中間ラインによって囲まれる閉領域についてコーナータイプが算出されると、断面ラインと中間ラインによって囲まれる閉領域内にステップＳ５７において算出されたコーナータイプに応じて分割中心点が算出される（ステップＳ５８）。
【０２９２】
分割中心点が算出されると、コーナータイプに応じて分割中心点と断面ライン及び中間ラインの中点とをそれぞれ接続して断面ラインと中間ラインによって囲まれる閉領域内を分割する分割ラインが算出される（ステップＳ５９）。
【０２９３】
分割ラインが算出されると、断面ラインと中間ラインによって囲まれる閉領域内が分割ラインによって分割されて断面ライン及び中間ラインと断面ライン及び中間ラインの中点とにそれぞれ接続する分割ラインとによって囲まれる分割領域が複数形成され、分割領域にそれぞれ自由曲面が形成されて稜線のコーナー領域についてフィレットが作成される（ステップＳ６０）。コーナー基準点ごとにコーナー基準点に合流する稜線のコーナー領域についてフィレットが作成される。
【０２９４】
次に、図４２に戻って、ステップＳ１２において稜線のフィレット干渉領域についてフィレットが作成され、稜線のフィレット干渉領域についてステップＳ４１において算出された補正フィレット半径のフィレットが作成される。稜線のフィレット干渉領域についてそれぞれ補正フィレット半径のフィレットが作成される。
【０２９５】
そして、ステップＳ１３において稜線の基本領域についてフィレットが作成され、稜線の基本領域について稜線に設定されたフィレット半径のフィレットが作成される。稜線の基本領域についてそれぞれ稜線に設定されたフィレット半径のフィレットが作成される。ステップＳ１０〜Ｓ１３において算出された稜線の縮退領域、コーナー領域、フィレット干渉領域及び基本領域について作成されたフィレットのメッシュデータは、フィレットメッシュデータに記憶される。
【０２９６】
稜線の縮退領域、コーナー領域、フィレット干渉領域及び基本領域についてそれぞれフィレットが作成されると、作成されたフィレットのメッシュデータが三次元形状モデルから有限要素分割されたメッシュデータに結合されて三次元形状モデルのメッシュデータが変更され、フィレットが作成された三次元形状モデルのメッシュデータが作成される（ステップＳ１４）。
【０２９７】
このようにして、三次元形状モデルからフィレットを作成する稜線が抽出され、稜線についてそれぞれ縮退領域、コーナー領域、フィレット干渉領域及び基本領域が算出され、稜線全体について縮退領域、コーナー領域、フィレット干渉領域及び基本領域に応じて自動的にフィレットが作成される。
【０２９８】
本実施形態では、稜線についてそれぞれ縮退領域、コーナー領域、フィレット干渉領域及び基本領域を算出して、稜線全体について縮退領域、コーナー領域、フィレット干渉領域及び基本領域に応じてフィレットが作成されているが、稜線について縮退領域、コーナー領域及びフィレット干渉領域の少なくとも１つの領域を算出して、算出された領域に応じてフィレットを作成するようにすることも可能である。
【０２９９】
このように、本実施形態に係る自動フィレットの作成では、三次元形状モデルから稜線が抽出され、抽出された稜線に作成するフィレットのフィレット半径が取得され、抽出された稜線のうち合流点に合流する複数の稜線について、合流点からフィレット半径に基づいて設定された所定距離だけ離れた境界点までの領域がコーナー領域として算出される。そして、稜線のコーナー領域について、合流点に合流する複数の稜線の境界点についてそれぞれフィレット半径に基づいてフィレットの断面ラインが算出され、断面ライン間を接続する中間ラインが算出され、断面ラインと中間ラインによって囲まれる閉領域内に曲面が形成されてフィレットが作成される。
【０３００】
これにより、三次元形状モデルのフィレットが作成される稜線のうち合流点に合流する複数の稜線にフィレットを作成するとフィレットどうしが干渉するコーナー領域について、コーナー領域の境界点についてそれぞれ算出されたフィレットの断面ラインと断面ライン間を接続する中間ラインによって囲まれる閉領域内に曲面を形成してフィレットを形成することができるので、データベースを要することなく、三次元形状モデルに確実に且つ自動的にフィレットを作成することができる。
【０３０１】
合流点に合流する複数の稜線にフィレットを作成するとフィレットどうしが干渉するコーナー領域について、フィレットを作成する順番によってフィレットの形状が異なったり三次元形状モデルによってはフィレットを作成すること自体ができなくなったりすることを防止することができ、三次元形状モデルに確実に且つ自動的にフィレットを作成することができる。
【０３０２】
また、稜線のコーナー領域について、断面ラインと中間ラインによって囲まれる閉領域内に分割中心点が算出され、分割中心点と断面ライン及び中間ラインの中点とをそれぞれ接続する分割ラインが算出され、断面ライン及び中間ラインと断面ライン及び中間ラインの中点とにそれぞれ接続する分割ラインとによって囲まれる分割領域にそれぞれ自由曲面が形成されてフィレットが作成されることにより、三次元形状モデルに確実にフィレットを作成することができる。
【０３０３】
また、２つの稜線のみが合流する合流点で２つの稜線間角度が所定角度以下である２つの稜線について、合流点から２つの稜線にそれぞれフィレットを作成するとフィレットどうしが干渉する境界点までの領域が縮退領域として算出され、稜線の縮退領域について、フィレットどうしが干渉しないようにフィレット半径を補正した補正フィレット半径のフィレットが作成される。これにより、２つの稜線のみが合流する合流点で２つの稜線間角度が所定角度以下である２つの稜線にフィレットを作成するとフィレットどうしが干渉する縮退領域について、フィレットどうしが干渉することを回避してフィレットを作成することができる。
【０３０４】
また、コーナー領域を除く稜線について、稜線と該稜線に最も近い他の稜線とにそれぞれフィレットを作成するとフィレットどうしが干渉する領域がフィレット干渉領域として算出され、稜線のフィレット干渉領域について、フィレットどうしが干渉しないようにフィレット半径を補正した補正フィレット半径のフィレットが作成される。これにより、稜線と該稜線に最も近い他の稜線とにそれぞれフィレットを作成するとフィレットどうしが干渉するフィレット干渉領域について、フィレットどうしが干渉することを回避してフィレットを作成することができる。
【０３０５】
また、稜線について、縮退領域、コーナー領域及びフィレット干渉領域を除く領域が基本領域として算出され、稜線の基本領域について、フィレット半径のフィレットが作成される。これにより、稜線についてそれぞれフィレットどうしが干渉する縮退領域、コーナー領域及びフィレット干渉領域とそれ以外の基本領域とに分類し、縮退領域、コーナー領域及びフィレット干渉領域についてはフィレットどうしの干渉を回避してフィレットを作成すると共に基本領域についてはフィレット半径のフィレットを形成することができ、三次元形状モデルに確実に且つ自動的にフィレットを作成することができる。
【０３０６】
次に、本発明の第２実施形態に係る自動フィレットの作成について説明する。なお、第２実施形態に係る自動フィレットの作成において、第１実施形態に係る自動フィレットの作成と同様の部分については説明を省略する。
【０３０７】
図４８は、本発明の第２実施形態に係る自動フィレットの作成による分割ラインの算出を説明するための説明図である。本発明の第２実施形態に係る自動フィレットの作成においても、分割ラインを算出する際には、図４８（ａ）に示すように、分割中心点Ｐｚにおける断面ラインＬＳ１、ＬＳ２、ＬＳ３、中間ラインＬＭ１、ＬＭ２、ＬＭ３の中点ＰＳ１Ｍ、ＰＳ２Ｍ、ＰＳ３Ｍ、ＰＭ１Ｍ、ＰＭ２Ｍ、ＰＭ３Ｍに向かう方向の接線ベクトルＶ１ＭＦ（Ｓ１、Ｍ２）、Ｖ１ＭＦ（Ｓ２、Ｓ３）、Ｖ１ＭＦ（Ｓ３、Ｍ１）、Ｖ２ＭＦ（Ｓ３、Ｍ１）、Ｖ２ＭＦ（Ｓ１、Ｍ２）、Ｖ２ＭＦ（Ｓ２、Ｍ３）が算出される。
【０３０８】
本実施形態では次に、図４８（ｂ）に示すように、接線ベクトルＶ１ＭＦ（Ｓ１、Ｍ２）について、隣り合う接線ベクトルＶ２ＭＦ（Ｓ３、Ｍ１）との外積ベクトルＶ１ＭＦ（Ｓ１、Ｍ２）×Ｖ２ＭＦ（Ｓ３、Ｍ１）が算出される。他の接線ベクトルＶ２ＭＦ（Ｓ３、Ｍ１）、Ｖ１ＭＦ（Ｓ２、Ｍ３）、Ｖ２ＭＦ（Ｓ１、Ｍ２）、Ｖ１ＭＦ（Ｓ３、Ｍ１）、Ｖ２ＭＦ（Ｓ２、Ｍ３）についてもそれぞれ、同一方向に隣り合う接線ベクトルＶ１ＭＦ（Ｓ２、Ｍ３）、Ｖ２ＭＦ（Ｓ１、Ｍ２）、Ｖ１ＭＦ（Ｓ３、Ｍ１）、Ｖ２ＭＦ（Ｓ２、Ｍ３）、Ｖ１ＭＦ（Ｓ１、Ｍ２）との外積ベクトルが算出される。そして、接線ベクトルについてそれぞれ算出された隣り合う接線ベクトルとの外積ベクトルの平均値が算出され、外積ベクトルの平均値が分割中心点Ｐｚの法線ベクトルＶｚとして算出される。
【０３０９】
図４９は、前記自動フィレットの作成による分割ラインの算出を説明するための別の説明図である。分割中心点Ｐｚの法線ベクトルＶｚが算出されると、図４９（ａ）に示すように、接線ベクトルＶ１ＭＦ（Ｓ１、Ｍ２）、Ｖ１ＭＦ（Ｓ２、Ｍ３）、Ｖ１ＭＦ（Ｓ３、Ｍ１）、Ｖ２ＭＦ（Ｓ３、Ｍ１）、Ｖ２ＭＦ（Ｓ１、Ｍ２）、Ｖ２ＭＦ（Ｓ２、Ｍ３）がそれぞれ分割中心点Ｐｚを通って分割中心点Ｐｚの法線ベクトルＶｚと直交する平面に投影されて補正された補正接線ベクトルＶ１ＭＦ（Ｓ１、Ｍ２）´、Ｖ１ＭＦ（Ｓ２、Ｍ３）´、Ｖ１ＭＦ（Ｓ３、Ｍ１）´、Ｖ２ＭＦ（Ｓ３、Ｍ１）´、Ｖ２ＭＦ（Ｓ１、Ｍ２）´、Ｖ２ＭＦ（Ｓ２、Ｍ３）´が算出される。
【０３１０】
図４９（ｂ）に示すように、接線ベクトルＶ１ＭＦ（Ｓ１、Ｍ２）が分割中心点Ｐｚを通って分割中心点Ｐｚの法線ベクトルＶｚと直交する平面ＦＸＹ（二点鎖線で示す平面）に投影されて補正された補正接線ベクトルＶ１ＭＦ（Ｓ１、Ｍ２）´が算出される。他の補正接線ベクトルＶ１ＭＦ（Ｓ２、Ｍ３）´、Ｖ１ＭＦ（Ｓ３、Ｍ１）´、Ｖ２ＭＦ（Ｓ３、Ｍ１）´、Ｖ２ＭＦ（Ｓ１、Ｍ２）´、Ｖ２ＭＦ（Ｓ２、Ｍ３）´についても同様にして算出される。
【０３１１】
本実施形態では、接線ベクトルＶ１ＭＦ（Ｓ１、Ｍ２）、Ｖ１ＭＦ（Ｓ２、Ｍ３）、Ｖ１ＭＦ（Ｓ３、Ｍ１）、Ｖ２ＭＦ（Ｓ３、Ｍ１）、Ｖ２ＭＦ（Ｓ１、Ｍ２）、Ｖ２ＭＦ（Ｓ２、Ｍ３）に代えて補正接線ベクトルＶ１ＭＦ（Ｓ１、Ｍ２）´、Ｖ１ＭＦ（Ｓ２、Ｍ３）´、Ｖ１ＭＦ（Ｓ３、Ｍ１）´、Ｖ２ＭＦ（Ｓ３、Ｍ１）´、Ｖ２ＭＦ（Ｓ１、Ｍ２）´、Ｖ２ＭＦ（Ｓ２、Ｍ３）´を用いて、分割中心点Ｐｚと、断面ラインＬＳ１、ＬＳ２、ＬＳ３、中間ラインＬＳ１、ＬＳ２、ＬＳ３の中点ＰＳ１Ｍ、ＰＳ２Ｍ、ＰＳ３Ｍ、ＰＭ１Ｍ、ＰＭ２Ｍ、ＰＭ３Ｍを接続する分割ラインが算出される。
【０３１２】
分割ラインが算出されると、断面ラインと中間ラインによって囲まれる閉領域内が分割ラインによって分割された分割領域が複数形成され、分割領域にそれぞれ自由曲面が形成されてフィレットが作成される。
【０３１３】
このように、本実施形態に係る自動フィレットの作成では、分割中心点における断面ライン及び中間ラインの中点にそれぞれ向かう方向の接線ベクトルが同一平面に投影されて補正された補正接線ベクトルを用いることにより、分割中心点において分割領域を滑らかに接続することができるので、分割中心点においてフィレットを滑らかに形成することができる。
【０３１４】
次に、本発明の第３実施形態に係る自動フィレットの作成について説明する。なお、第３実施形態に係る自動フィレットの作成において、第１実施形態及び第２実施形態に係る自動フィレットの作成と同様の部分については説明を省略する。
【０３１５】
図５０は、本発明の第３実施形態に係る自動フィレットの作成による断面ラインと中間ラインによって囲まれる閉領域内の曲面の形成を説明するための説明図である。
【０３１６】
本発明の第３実施形態に係る自動フィレットの作成においても、第２実施形態と同様に、分割ラインを算出する際に、分割中心点Ｐｚにおける断面ライン、中間ラインの中点に向かう方向の接線ベクトルがそれぞれ、分割中心点Ｐｚを通って分割中心点Ｐｚの法線ベクトルＶｚと直交する平面に投影されて補正された補正接線ベクトルＶ１ＭＦ（Ｓ１、Ｍ２）´、Ｖ１ＭＦ（Ｓ２、Ｍ３）´、Ｖ１ＭＦ（Ｓ３、Ｍ１）´、Ｖ２ＭＦ（Ｓ３、Ｍ１）´、Ｖ２ＭＦ（Ｓ１、Ｍ２）´、Ｖ２ＭＦ（Ｓ２、Ｍ３）´が算出される。
【０３１７】
そして、補正接線ベクトルＶ１ＭＦ（Ｓ１、Ｍ２）´、Ｖ１ＭＦ（Ｓ２、Ｍ３）´、Ｖ１ＭＦ（Ｓ３、Ｍ１）´、Ｖ２ＭＦ（Ｓ３、Ｍ１）´、Ｖ２ＭＦ（Ｓ１、Ｍ２）´、Ｖ２ＭＦ（Ｓ２、Ｍ３）´を用いて、図５０に示すように、分割中心点Ｐｚと、断面ラインＬＳ１、ＬＳ２、ＬＳ３、中間ラインＬＭ１、ＬＭ２、ＬＭ３の中点ＰＳ１Ｍ、ＰＳ２Ｍ、ＰＳ３Ｍ、ＰＭ１Ｍ、ＰＭ２Ｍ、ＰＭ３Ｍを接続する分割ラインＬＳ１Ｄ´、ＬＳ２Ｄ´、ＬＳ３Ｄ´、ＬＭ１Ｄ´、ＬＭ２Ｄ´、ＬＭ３Ｄ´が算出される。
【０３１８】
分割ラインが算出されると、断面ラインＬＳ１、ＬＳ２、ＬＳ３と中間ラインＬＭ１、ＬＭ２、ＬＭ３によって囲まれる閉領域Ａ１内が分割ラインＬＳ１Ｄ´、ＬＳ２Ｄ´、ＬＳ３Ｄ´、ＬＭ１Ｄ´、ＬＭ２Ｄ´、ＬＭ３Ｄ´によって分割されて分割領域Ａ１１´〜Ａ１６´が複数形成される。
【０３１９】
そして、分割領域Ａ１１´〜Ａ１６´についてそれぞれ、分割領域Ａ１１´〜Ａ１６´を構成する断面ライン、中間ライン及び２つの分割ラインにそれぞれ直交する分割領域Ａ１１´〜Ａ１６´の内方側に向かう方向の勾配ベクトルが算出される。
【０３２０】
図５１は、前記自動フィレットの作成による断面ラインと中間ラインによって囲まれる閉領域内の曲面の形成を説明するための別の説明図である。勾配ベクトルを算出する際には、分割領域Ａ１１´〜Ａ１６´を構成する断面ライン、中間ライン及び２つの分割ラインのそれぞれについて両側の端点における直交する方向の勾配ベクトルが算出される。
【０３２１】
図５１（ａ）に示すように、断面ラインＬＳ２、中間ラインＬＭ２及び２つの分割ラインＬＭ２Ｄ´、ＬＳ２Ｄ´によって囲まれる分割領域Ａ１３´では、断面ラインＬＳ２について、一方の端点ＰＳ２Ｍにおける直交する方向の勾配ベクトルとして、端点ＰＳ２Ｍにおけるコーナー基準点Ｔｃへの方向ベクトルＶＳ２Ｍが算出され、他方の端点ＰＳ２Ｅにおける直交する方向の勾配ベクトルとして、端点ＰＳ２Ｅにおけるコーナー基準点Ｔｃへの方向ベクトルＶＳ２Ｍが算出される。
【０３２２】
中間ラインＬＭ２については、一方の端点ＰＳ２Ｅにおける直交する方向の勾配ベクトルとして、端点ＰＳ２Ｅである断面ラインＬＳ２の終点ＰＳ２Ｅにおけるコーナー境界点ＰＳ２に向かう方向の接線ベクトルＶＬＳ２Ｅが算出され、他方の端点ＰＭ２Ｍにおける直交する方向の勾配ベクトルとして、端点ＰＭ２Ｍにおけるコーナー基準点Ｔｃへの方向ベクトルＶＭ２Ｍが算出される。
【０３２３】
本実施形態では、分割ラインＬＭ２Ｄ´については、一方の端点ＰＭ２Ｍにおける直交する方向の勾配ベクトルとして、中間ラインＬＭ２の中点ＰＭ２Ｍにおける分割領域Ａ１３´の内方側に向かう方向の接線ベクトルＶＬＭ２Ｍ１が算出され、他方の端点である分割中心点Ｐｚにおける直交する方向の勾配ベクトルとして、補正接線ベクトルＶ２ＭＦ（Ｓ１、Ｍ２）´と分割中心点Ｐｚの法線ベクトルＶｚとの外積ベクトルＶ２ＭＦ（Ｓ１、Ｍ２）´×Ｖｚが算出される。
【０３２４】
分割ラインＬＳ２Ｄ´については、一方の端点である分割中心点Ｐｚにおける直交する方向の勾配ベクトルとして、図５１（ｂ）に示すように、分割中心点Ｐｚの法線ベクトルＶｚと補正接線ベクトルＶ１ＭＦ（Ｓ２、Ｍ３）´との外積ベクトルＶｚ×Ｖ１ＭＦ（Ｓ２、Ｍ３）´が算出され、他方の端点ＰＳ２Ｍにおける直交する方向の勾配ベクトルとして、断面ラインＬＳ２の中点ＰＳ２Ｍにおける分割領域Ａ１３´の内方側に向かう方向の接線ベクトルＶＬＳ２Ｍ２が算出される。
【０３２５】
分割領域Ａ１１´〜Ａ１６´を構成する断面ライン、中間ライン及び２つの分割ラインのそれぞれについて両側の端点における直交する方向の勾配ベクトルが算出されると、各ラインの両側の端点間について直交する分割領域Ａ１１´〜Ａ１６´の内方側に向かう方向の勾配ベクトルが算出される。
【０３２６】
図５１（ａ）に示すように、分割領域Ａ１３´では、断面ラインＬＳ２の両側の端点ＰＳ２Ｍ、ＰＳ２Ｅ間について直交する分割領域Ａ１３´の内方側に向かう方向の勾配ベクトルＶＳ２２は、両側の端点ＰＳ２Ｍ、ＰＳ２Ｅにおける直交する方向の勾配ベクトルＶＳ２Ｍ、ＶＳ２Ｍから補間法、具体的には線形補間法を用いて算出される。
【０３２７】
中間ラインＬＭ２については、中間ラインＬＭ２の両側の端点ＰＳ２Ｅ、ＰＭ２Ｍ間について直交する分割領域Ａ１３´の内方側に向かう方向の勾配ベクトルＶＭ２１は、両側の端点ＰＳ２Ｅ、ＰＭ２Ｍにおける直交する方向の勾配ベクトルＶＬＳ２Ｅ、ＶＭ２Ｍから補間法を用いて算出される。
【０３２８】
分割ラインＬＭ２Ｄ´については、分割ラインＬＭ２Ｄ´の両側の端点ＰＭ２Ｍ、Ｐｚ間について直交する分割領域Ａ１３´の内方側に向かう方向の勾配ベクトルＶＭ２Ｄ１´は、両側の端点ＰＭ２Ｍ、Ｐｚにおける直交する方向の勾配ベクトルＶＬＭ２Ｍ１、Ｖ２ＭＦ（Ｓ１、Ｍ２）´×Ｖｚから補間法を用いて算出される。
【０３２９】
分割ラインＬＳ２Ｄ´については、分割ラインＬＳ２Ｄ´の両側の端点Ｐｚ、ＰＳ２Ｍ間について直交する分割領域Ａ１３´の内方側に向かう方向の勾配ベクトルＶＳ２Ｄ２´は、両側の端点Ｐｚ、ＰＳ２Ｍにおける直交する方向の勾配ベクトルＶｚ×Ｖ１ＭＦ（Ｓ２、Ｍ３）´、ＶＬＳ２Ｍ２から補間法を用いて算出される。
【０３３０】
分割領域Ａ１１´、Ａ１２´、Ａ１４´〜Ａ１６´についても、分割領域Ａ１３´と同様にして、分割領域を構成する断面ライン、中間ライン及び２つの分割ラインにそれぞれ直交する分割領域の内方側に向かう方向の勾配ベクトルが算出される。
【０３３１】
図５１（ａ）に示すように、分割領域Ａ１３´に分割ラインＬＭ２Ｄ´を挟んで隣接する分割領域Ａ１４´では、分割ラインＬＭ２Ｄ´の勾配ベクトルを算出する際に、一方の端点ＰＭ２Ｍにおける直交する方向の勾配ベクトルとして、中間ラインＬＭ２の中点ＰＭ２Ｍにおける分割領域Ａ１４´の内方側に向かう方向の接線ベクトルＶＬＭ２Ｍ２が算出され、他方の端点である分割中心点Ｐｚにおける直交する方向の勾配ベクトルとして、分割中心点Ｐｚの法線ベクトルＶｚと補正接線ベクトルＶ２ＭＦ（Ｓ１、Ｍ２）´との外積ベクトルＶｚ×Ｖ２ＭＦ（Ｓ１、Ｍ２）´が算出される。
【０３３２】
また、分割ラインＬＭ２Ｄ´の両側の端点ＰＭ２Ｍ、Ｐｚ間について直交する分割領域Ａ１４´の内方側に向かう方向の勾配ベクトルＶＭ２Ｄ２´は、両側の端点ＰＭ２Ｍ、Ｐｚにおける直交する方向の勾配ベクトルＶＬＭ２Ｍ２、Ｖｚ×Ｖ２ＭＦ（Ｓ１、Ｍ２）´から補間法を用いて算出される。
【０３３３】
分割領域Ａ１４´を構成する分割ラインＬＭ２Ｄ´の両側の端点ＰＭ２Ｍ、Ｐｚにおける直交する方向の勾配ベクトルＶＬＭ２Ｍ２、Ｖｚ×Ｖ２ＭＦ（Ｓ１、Ｍ２）´はそれぞれ、分割領域Ａ１３´を構成する分割ラインＬＭ２Ｄ´の両側の端点ＰＭ２Ｍ、Ｐｚにおける直交する方向の勾配ベクトルＶＬＭ２Ｍ１、Ｖ２ＭＦ（Ｓ１、Ｍ２）´×Ｖｚの逆ベクトルとして算出され、分割領域Ａ１４´を構成する分割ラインＬＭ２Ｄ´の両側の端点ＰＭ２Ｍ、Ｐｚ間について直交する分割領域Ａ１４´の内方側に向かう方向の勾配ベクトルＶＭ２Ｄ２´は、分割領域Ａ１３´を構成する分割ラインＬＭ２Ｄ´の両側の端点ＰＭ２Ｍ、Ｐｚ間について直交する分割領域Ａ１３´の内方側に向かう方向の勾配ベクトルＶＭ２Ｄ１´の逆ベクトルとして算出される。
【０３３４】
図５１（ｂ）に示すように、分割領域Ａ１３´に分割ラインＬＳ２Ｄ´を挟んで隣接する分割領域Ａ１２´についても、分割ラインＬＳ２Ｄ´の勾配ベクトルを算出する際に、一方の端点である分割中心点Ｐｚにおける直交する方向の勾配ベクトルとして、補正接線ベクトルＶ１ＭＦ（Ｓ２、Ｍ３）´と分割中心点Ｐｚの法線ベクトルＶｚとの外積ベクトルＶ１ＭＦ（Ｓ２、Ｍ３）´×Ｖｚが算出され、他方の端点ＰＳ２Ｍにおける直交する方向の勾配ベクトルとして、断面ラインＬＳ２の中点ＰＳ２Ｍにおける分割領域Ａ１２´の内方側に向かう方向の接線ベクトルＶＬＭ２Ｍ１が算出される。
【０３３５】
また、分割ラインＬＳ２Ｄ´の両側の端点Ｐｚ、ＰＳ２Ｍ間について直交する分割領域Ａ１２´の内方側に向かう方向の勾配ベクトルＶＳ２Ｄ１´は、両側の端点Ｐｚ、ＰＳ２Ｍにおける直交する方向の勾配ベクトルＶ１ＭＦ（Ｓ２、Ｍ３）´×Ｖｚ、ＶＬＳ２Ｍ１から補間法を用いて算出される。
【０３３６】
分割領域Ａ１２´を構成する分割ラインＬＳ２Ｄ´の両側の端点Ｐｚ、ＰＳ２Ｍにおける直交する方向の勾配ベクトルＶ１ＭＦ（Ｓ２、Ｍ３）´×Ｖｚ、ＶＬＳ２Ｍ１についてもそれぞれ、分割領域Ａ１３´を構成する分割ラインＬＳ２Ｄ´の両側の端点Ｐｚ、ＰＳ２Ｍにおける直交する方向の勾配ベクトルＶｚ×Ｖ１ＭＦ（Ｓ２、Ｍ３）´、ＶＬＳ２Ｍ２の逆ベクトルとして算出され、分割領域Ａ１２´を構成する分割ラインＬＳ２Ｄ´の両側の端点Ｐｚ、ＰＳ２Ｍ間について直交する分割領域Ａ１２´の内方側に向かう方向の勾配ベクトルＶＳ２Ｄ１´についても、分割領域Ａ１３´を構成する分割ラインＬＳ２Ｄ´の両側の端点Ｐｚ、ＰＳ２Ｍ間について直交する分割領域Ａ１３´の内方側に向かう方向の勾配ベクトルＶＳ２Ｄ２´の逆ベクトルとして算出される。
【０３３７】
本実施形態では、分割領域Ａ１１´〜Ａ１６´を構成する断面ライン、中間ライン及び２つの分割ラインにそれぞれ直交する分割領域Ａ１１´〜Ａ１６´の内方側に向かう方向の勾配ベクトルを算出すると、分割ラインを挟んで隣接する分割領域について該分割ラインにそれぞれ直交する分割領域の内方側に向かう方向の勾配ベクトルが逆ベクトルとして算出される。
【０３３８】
このようにして、分割領域Ａ１１´〜Ａ１６´を構成する断面ライン、中間ライン及び２つの分割ラインにおける勾配ベクトルが算出されると、分割領域にそれぞれ自由曲面が形成されてフィレットが作成される。
【０３３９】
このように、本実施形態に係る自動フィレットの作成では、分割ラインを挟んで隣接する分割領域について該分割ラインにそれぞれ直交する分割領域の内方側に向かう方向の勾配ベクトルが逆ベクトルとして算出されることにより、分割ラインを挟んで隣接する分割領域についてフィレットをより滑らかに形成することができる。
【０３４０】
第３実施形態では、分割中心点Ｐｚにおける断面ライン、中間ラインの中点に向かう方向の接線ベクトルが補正された補正接線ベクトルを用いて分割ラインを算出すると共に分割ラインに直交する分割領域の内方側に向かう方向の勾配ベクトルを算出しているが、分割中心点Ｐｚにおける断面ライン、中間ラインの中点に向かう方向の接線ベクトルが補正された補正接線ベクトルに代えて、第１実施形態に係る分割中心点Ｐｚにおける断面ライン、中間ラインの中点に向かう方向の接線ベクトルを用い、第３実施形態と同様にして、第１実施形態に係る分割中心点Ｐｚにおける断面ライン、中間ラインの中点に向かう方向の接線ベクトルを用いて分割ラインを算出すると共に分割ラインに直交する分割領域の内方側に向かう方向の勾配ベクトルを算出するようにすることも可能である。
【０３４１】
かかる場合についても、分割ラインを挟んで隣接する分割領域について該分割ラインにそれぞれ直交する分割領域の内方側に向かう方向の勾配ベクトルが逆ベクトルとして算出されることにより、分割ラインを挟んで隣接する分割領域についてフィレットをより滑らかに形成することができる。
【０３４２】
本実施形態では、三次元形状モデルから抽出された稜線の各構成点についてそれぞれ計算されているが、稜線に所定間隔をあけて設定されたサンプリング点を用いて計算を行い、サンプリング点間について線形補間法などの補間法を用いて計算することも可能である。
【０３４３】
本発明は、例示された実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の改良及び設計上の変更が可能である。
【産業上の利用可能性】
【０３４４】
以上のように、本発明によれば、データベースを要することなく、三次元形状モデルに確実に且つ自動的にフィレットを作成することが可能となるから、三次元形状モデルを作成するＣＡＤ装置において好適に利用される可能性がある。
【符号の説明】
【０３４５】
１  三次元形状モデル
１００  コンピュータ
１０１  中央演算装置
１０２  入力装置
１０３  表示装置
１０４  記憶装置
１０５  出力装置
【要約】
【課題】データベースを要することなく、三次元形状モデルに確実に且つ自動的にフィレットを作成する。
【解決手段】三次元形状モデルから稜線を抽出し、稜線に作成するフィレットのフィレット半径を取得し、稜線のうち合流点に合流する複数の稜線について、合流点からフィレット半径に基づいて設定された所定距離だけ離れた境界点までの領域を稜線のコーナー領域として算出し、稜線のコーナー領域について、合流点に合流する複数の稜線の境界点についてそれぞれフィレット半径に基づいてフィレットの断面ラインを算出し、断面ライン間を接続する中間ラインを算出し、断面ラインと中間ラインによって囲まれる閉領域内に曲面を形成してフィレットを作成する。
【選択図】図４２【図１】
0005947992.tif 000026
【図２】
0005947992.tif 000027
【図３】
0005947992.tif 000028
【図４】
0005947992.tif 000029
【図５】
0005947992.tif 000030
【図６】
0005947992.tif 000031
【図７】
0005947992.tif 000032
【図８】
0005947992.tif 000033
【図９】
0005947992.tif 000034
【図１０】
0005947992.tif 000035
【図１１】
0005947992.tif 000036
【図１２】
0005947992.tif 000037
【図１３】
0005947992.tif 000038
【図１４】
0005947992.tif 000039
【図１５】
0005947992.tif 000040
【図１６】
0005947992.tif 000041
【図１７】
0005947992.tif 000042
【図１８】
0005947992.tif 000043
【図１９】
0005947992.tif 000044
【図２０】
0005947992.tif 000045
【図２１】
0005947992.tif 000046
【図２２】
0005947992.tif 000047
【図２３】
0005947992.tif 000048
【図２４】
0005947992.tif 000049
【図２５】
0005947992.tif 000050
【図２６】
0005947992.tif 000051
【図２７】
0005947992.tif 000052
【図２８】
0005947992.tif 000053
【図２９】
0005947992.tif 000054
【図３０】
0005947992.tif 000055
【図３１】
0005947992.tif 000056
【図３２】
0005947992.tif 000057
【図３３】
0005947992.tif 000058
【図３４】
0005947992.tif 000059
【図３５】
0005947992.tif 000060
【図３６】
0005947992.tif 000061
【図３７】
0005947992.tif 000062
【図３８】
0005947992.tif 000063
【図３９】
0005947992.tif 000064
【図４０】
0005947992.tif 000065
【図４１】
0005947992.tif 000066
【図４２】
0005947992.tif 000067
【図４３】
0005947992.tif 000068
【図４４】
0005947992.tif 000069
【図４５】
0005947992.tif 000070
【図４６】
0005947992.tif 000071
【図４７】
0005947992.tif 000072
【図４８】
0005947992.tif 000073
【図４９】
0005947992.tif 000074
【図５０】
0005947992.tif 000075
【図５１】
0005947992.tif 000076