(57)【要約】      （修正有）【課題】メッシュ、又は点群モデルで表した未処理3次元スキャンデータから自動でロフトサーフィスを計算するためのメカニズムを提供する。【解決手段】ユーザーは、提供されたユーザーインターフェース３２を通してロフトサーフィス計算と関連されたパラメータを入力する。ユーザー入力及び/又はプログラム的に計算されたパラメータは、U-V方向、ガイドカーブ認識、及び計算されたロフトサーフィスと3次元スキャンデータとの間の許容偏差エラーの総量を含む。それから、与えられたパラメータを満足するプロファイルカーブが生成され、選択された領域のために生成されたプロファイルカーブを用いてロフトサーフィスが計算される。分離された領域を連結する一つのロフトサーフィスを生成するために、ユーザーは幾何学的に分離された領域を選択することができる。【選択図】図１
2008305372.tif 000002
【特許請求の範囲】
【請求項１】
3次元対象物の形状を表す3次元スキャンデータの集合を提供する段階と、
モデルを多数の領域に分割する段階と、
プログラム的なロフト計算のために少なくとも一つの領域を選択する段階と、
前記3次元スキャンデータにフィットされたロフトサーフィスをプログラム的に計算する段階とを含み、
前記3次元スキャンデータは、3次元対象物を表すモデルに結合されることを特徴とする3次元スキャンデータを用いてロフトサーフィスを生成するための方法。
【請求項２】
前記モデルは、メッシュモデルであることを特徴とする請求項1に記載の3次元スキャンデータを用いてロフトサーフィスを生成するための方法。
【請求項３】
前記モデルは、点群モデルであることを特徴とする請求項1に記載の3次元スキャンデータを用いてロフトサーフィスを生成するための方法。
【請求項４】
ユーザーインターフェースを提供する段階を更に含み、
前記ユーザーインターフェースは、ユーザーが前記ロフトサーフィスのプログラム的な計算と関連した少なくとも一つのパラメータを選択できるようにすることを特徴とする請求項1に記載の3次元スキャンデータを用いてロフトサーフィスを生成するための方法。
【請求項５】
前記少なくとも一つのパラメータは、ユーザーが指定する許容偏差エラーであることを特徴とする請求項4に記載の3次元スキャンデータを用いてロフトサーフィスを生成するための方法。
【請求項６】
前記少なくとも一つのパラメータは、ユーザーが指定するU-V方向であることを特徴とする請求項4に記載の3次元スキャンデータを用いてロフトサーフィスを生成するための方法。
【請求項７】
前記少なくとも一つのパラメータは、ユーザーが指定するガイドカーブであることを特徴とする請求項4に記載の3次元スキャンデータを用いてロフトサーフィスを生成するための方法。
【請求項８】
前記少なくとも一つのパラメータは、少なくとも一つの境界条件を有する、ユーザーが指定する少なくとも一つの開始及び終了プロファイルであることを特徴とする請求項4に記載の3次元スキャンデータを用いてロフトサーフィスを生成するための方法。
【請求項９】
前記少なくとも一つのパラメータは、ユーザーが指定する許容偏差エラーであって、
前記3次元スキャンデータにフィットされたロフトサーフィスをプログラム的に計算する段階は、プログラム的なロフト計算のために選択された領域と交差する少なくとも2つの断面カーブをプログラム的に生成する段階を更に含み、
前記断面カーブを生成する段階は、ユーザーが指定した偏差エラーに基づいて少なくとも2つの断面カーブそれぞれの位置を計算する段階を含むことを特徴とする請求項4に記載の3次元スキャンデータを用いてロフトサーフィスを生成するための方法。
【請求項１０】
前記3次元スキャンデータにフィットされたロフトサーフィスをプログラム的に計算する段階は、少なくとも一つの領域の幾何学的な特性からU-V方向をプログラム的に計算する段階を更に含むことを特徴とする請求項1に記載の3次元スキャンデータを用いてロフトサーフィスを生成するための方法。
【請求項１１】
前記3次元スキャンデータにフィットされたロフトサーフィスをプログラム的に計算する段階は、プログラム的なロフト計算のために選択された領域と交差する少なくとも一つの絶たれたカーブを滑らかに連結する段階を更に含むことを特徴とする請求項1に記載の3次元スキャンデータを用いてロフトサーフィスを生成するための方法。
【請求項１２】
前記3次元スキャンデータにフィットされたロフトサーフィスをプログラム的に計算する段階は、プログラム的なロフト計算のために選択された領域と交差する少なくとも一つのカーブを延長する段階を更に含むことを特徴とする請求項1に記載の3次元スキャンデータを用いてロフトサーフィスを生成するための方法。
【請求項１３】
前記3次元スキャンデータにフィットされたロフトサーフィスをプログラム的に計算する段階は、多数のカーブに対するそれぞれの端点が領域境界から延長された滑らかなカーブ又は共通面のうちのいずれか一つに位置されるようにするため、プログラム的なロフト計算のために選択された領域と交差する多数のカーブを整える段階を更に含むことを特徴とする請求項1に記載の3次元スキャンデータを用いてロフトサーフィスを生成するための方法。
【請求項１４】
前記3次元スキャンデータにフィットされたロフトサーフィスをプログラム的に計算する段階は、プログラム的なロフト計算のために選択された領域と交差する多数の断面カーブを断面プロファイルとして用いる段階を更に含むことを特徴とする請求項1に記載の3次元スキャンデータを用いてロフトサーフィスを生成するための方法。
【請求項１５】
前記3次元スキャンデータにフィットされたロフトサーフィスをプログラム的に計算する段階は、プログラム的なロフト計算のために選択された領域と交差する少なくとも一つの断面カーブを生成し、改造して、イソ−フローカーブが真っ直ぐになるよう、ロフトサーフィスを近似化する段階を更に含むことを特徴とする請求項1に記載の3次元スキャンデータを用いてロフトサーフィスを生成するための方法。
【請求項１６】
少なくとも2つの幾何学的に分離された領域がプログラム的なロフト計算のために選択され、計算されたロフトサーフィスは、少なくとも2つの幾何学的に分離された領域に対する3次元スキャンデータを連結することを特徴とする請求項1に記載の3次元スキャンデータを用いてロフトサーフィスを生成するための方法。
【請求項１７】
ロフトサーフィスを計算するのに使用するためにガイドカーブをプログラム的に計算する段階を更に含み、前記ガイドカーブは、ユーザーが選択した少なくとも一つの領域から計算されることを特徴とする請求項1に記載の3次元スキャンデータを用いてロフトサーフィスを生成するための方法。
【請求項１８】
3次元対象物の形状を表す3次元スキャンデータの集合と、
多数の領域のうちの少なくとも一つに対する3次元スキャンデータにフィットされたロフトサーフィスをプログラム的に計算するロフト計算手段と、
ロフトサーフィスのプログラム的な計算と関連した少なくとも一つのパラメータの選択を可能にするユーザーインターフェースを表示する表示装置とを含み、
前記3次元スキャンデータは3次元対象物を表すモデルに結合され、前記モデルは多数の領域に分割されることを特徴とする3次元スキャンデータを用いてプログラム的にロフトサーフィスを生成するためのコンピューティング装置を用いるシステム。
【請求項１９】
3次元スキャンデータの集合を収集する3次元スキャナーを更に含むことを特徴とする請求項18に記載の3次元スキャンデータを用いてプログラム的にロフトサーフィスを生成するためのコンピューティング装置を用いるシステム。  
【請求項２０】
3次元対象物の形状を表す3次元スキャンデータの集合を提供するための命令と、
モデルを多数の領域に分割するための命令と、
プログラム的なロフト計算のために少なくとも一つの領域を選択するための命令と、
前記3次元スキャンデータにフィットされたロフトサーフィスをプログラム的に計算するための命令とを含み、
前記3次元スキャンデータは、3次元対象物を表すモデルに結合されることを特徴とする3次元スキャンデータを用いてロフトサーフィスを生成するためのコンピューターで実行可能な命令を保有する物理的媒介物。
【請求項２１】
前記モデルは、メッシュモデルであることを特徴とする請求項20に記載の3次元スキャンデータを用いてロフトサーフィスを生成するためのコンピューターで実行可能な命令を保有する物理的媒介物。
【請求項２２】
前記モデルは、点群モデルであることを特徴とする請求項20に記載の3次元スキャンデータを用いてロフトサーフィスを生成するためのコンピューターで実行可能な命令を保有する物理的媒介物。
【請求項２３】
ユーザーインターフェースを提供するための命令を更に含み、
前記ユーザーインターフェースは、前記ロフトサーフィスのプログラム的な計算と関連した少なくとも一つのパラメータの選択を可能にすることを特徴とする請求項20に記載の3次元スキャンデータを用いてロフトサーフィスを生成するためのコンピューターで実行可能な命令を保有する物理的媒介物。
【請求項２４】
前記少なくとも一つのパラメータは、ユーザーが指定する許容偏差エラーであることを特徴とする請求項23に記載の3次元スキャンデータを用いてロフトサーフィスを生成するためのコンピューターで実行可能な命令を保有する物理的媒介物。
【請求項２５】
前記少なくとも一つのパラメータは、ユーザーが指定するU-V方向であることを特徴とする請求項23に記載の3次元スキャンデータを用いてロフトサーフィスを生成するためのコンピューターで実行可能な命令を保有する物理的媒介物。
【請求項２６】
前記少なくとも一つのパラメータは、ユーザーが指定するガイドカーブであることを特徴とする請求項23に記載の3次元スキャンデータを用いてロフトサーフィスを生成するためのコンピューターで実行可能な命令を保有する物理的媒介物。
【請求項２７】
前記少なくとも一つのパラメータは、少なくとも一つの境界条件を有する、ユーザーが指定する少なくとも一つの開始及び終了プロファイルであることを特徴とする請求項23に記載の3次元スキャンデータを用いてロフトサーフィスを生成するためのコンピューターで実行可能な命令を保有する物理的媒介物。
【請求項２８】
前記少なくとも一つのパラメータは、ユーザーが指定する許容偏差エラーであって、
前記3次元スキャンデータにフィットされたロフトサーフィスのプログラム的な計算は、プログラム的なロフト計算のために選択された領域と交差する少なくとも2つの断面カーブをプログラム的に生成するための命令を更に含み、前記断面カーブの生成は、ユーザーが指定した偏差エラーに基づいて少なくとも2つの断面カーブそれぞれの位置の計算を含むことを特徴とする請求項23に記載の3次元スキャンデータを用いてロフトサーフィスを生成するためのコンピューターで実行可能な命令を保有する物理的媒介物。
【請求項２９】
前記3次元スキャンデータにフィットされたロフトサーフィスのプログラム的な計算は、少なくとも一つの領域の幾何学的な特性からU-V方向をプログラム的に計算するための命令を更に含むことを特徴とする請求項20に記載の3次元スキャンデータを用いてロフトサーフィスを生成するためのコンピューターで実行可能な命令を保有する物理的媒介物。
【請求項３０】
前記3次元スキャンデータにフィットされたロフトサーフィスのプログラム的な計算は、プログラム的なロフト計算のために選択された領域と交差する少なくとも一つの絶たれたカーブを滑らかに連結するための命令を更に含むことを特徴とする請求項20に記載の3次元スキャンデータを用いてロフトサーフィスを生成するためのコンピューターで実行可能な命令を保有する物理的媒介物。
【請求項３１】
前記3次元スキャンデータにフィットされたロフトサーフィスのプログラム的な計算は、プログラム的なロフト計算のために選択された領域と交差する少なくとも一つのカーブを延長するための命令を更に含むことを特徴とする請求項20に記載の3次元スキャンデータを用いてロフトサーフィスを生成するためのコンピューターで実行可能な命令を保有する物理的媒介物。
【請求項３２】
前記3次元スキャンデータにフィットされたロフトサーフィスのプログラム的な計算は、多数のカーブに対するそれぞれの端点が領域境界から延長された滑らかなカーブ又は共通面のうちのいずれか一つに位置されるようにするため、プログラム的な計算のために選択された領域と交差する多数のカーブを整えるための命令を更に含むことを特徴とする請求項20に記載の3次元スキャンデータを用いてロフトサーフィスを生成するためのコンピューターで実行可能な命令を保有する物理的媒介物。
【請求項３３】
前記3次元スキャンデータにフィットされたロフトサーフィスのプログラム的な計算は、プログラム的なロフト計算のために選択された領域と交差する多数の断面カーブを断面プロファイルとして用いるための命令を更に含むことを特徴とする請求項20に記載の3次元スキャンデータを用いてロフトサーフィスを生成するためのコンピューターで実行可能な命令を保有する物理的媒介物。
【請求項３４】
前記3次元スキャンデータにフィットされたロフトサーフィスのプログラム的な計算は、プログラム的なロフト計算のために選択された領域と交差する少なくとも一つの断面カーブを生成し、改造して、イソ−フローカーブが真っ直ぐになるよう、ロフトサーフィスを概算するための命令を更に含むことを特徴とする請求項20に記載の3次元スキャンデータを用いてロフトサーフィスを生成するためのコンピューターで実行可能な命令を保有する物理的媒介物。
【請求項３５】
少なくとも2つの幾何学的に分離された領域がプログラム的なロフト計算のために選択され、計算されたロフトサーフィスは、少なくとも2つの幾何学的に分離された領域に対する3次元スキャンデータを連結することを特徴とする請求項20に記載の3次元スキャンデータを用いてロフトサーフィスを生成するためのコンピューターで実行可能な命令を保有する物理的媒介物。
【請求項３６】
スキャンデータ又はユーザーが指定した偏差エラーの変化に基づいてロフトサーフィスを自動でアップデートするための命令を更に含むことを特徴とする請求項20に記載の3次元スキャンデータを用いてロフトサーフィスを生成するためのコンピューターで実行可能な命令を保有する物理的媒介物。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施例は、一般的にキャド(CAD: Computer Aided Design)に関するものであって、更に詳しくは、3次元スキャンデータを用いてロフトサーフィス(loft surfaces)を計算するための3次元スキャンデータの逆設計に関するものである。
【背景技術】
【０００２】
キャドアプリケーション(CAD application)は製造過程の一部として、設計されている実際物理的装置のための2次元及び3次元対象物のコンピューターモデルを生成するために使用される。このモデルは、個別的に設計されなければならない多数のパート(part)をしばしば含む。モデルパートの設計者は、モデルパートを設計するために、専門化されたモデリングフィーチャー(modeling feature)を使用することができる。設計者が設計に満足すると、モデルを用いて実際物理的装置が製造される。
【０００３】
3次元スキャニングは、スキャンされた3次元対象物の形状を表す高解像度点(high revolution point)を収集して、3次元対象物に対する物理的な形状情報を獲得する。情報が獲得されると、未処理3次元スキャンデータは、3次元対象物の設計を複製するか修正するための更なるプロセシング(processing)のために、キャドパートモデル(CAD part model)に変換され得る。キャドアプリケーションに3次元スキャンデータを提供するために対象物が再設計されるよう、3次元対象物に対する3次元スキャンデータを獲得する手続きを、逆設計(reverse engineering)と言う。
【０００４】
逆設計技術は、3次元でスキャンされた形状に平断面カーブ(curves)やフィーチャーカーブを描くためのものであって、平断面カーブ(curves)やフィーチャーカーブからロフトサーフィスが構成される。ロフトサーフィスは、与えられた「プロファイルカーブ(profile curves)」を貫通する多数(polynomial)のサーフィスであって、一部イソ-ライン｛iso-lines:一定のサーフィスパラメータ(U or V)を表す線(カーブ)｝はまた、与えられた「ガイドカーブ(guide curves)」に沿う。ガイドカーブはプロファイルの間で拘束力(constraint)を提供する。ロフトサーフィスはガイドカーブ上で生成される。サーフィズ設計者は、ロフトサーフィスと交差するプロファイルやガイドカーブを修正してロフトサーフィスの曲率及び平坦率を調節する。あいにく、3次元スキャンデータ形状を複製するロフトサーフィスモデルの再設計過程は、ユーザーにとって、現在利用可能な3次元モデリングソフトウェアをもって反復的な手動のモデリング技術を行うように要求する。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明はロフトサーフィスの計算において、ユーザーから受けたパラメータを自動で適用する、3次元スキャンデータのためのロフトサーフィスのプログラム的な計算が可能な3次元スキャンデータを用いてロフトサーフィスを計算するためのシステム及び方法を提供することを目的とする。
【０００６】
また、本発明は、ユーザーにとって、ロフトサーフィスが生成されるモデルの領域又は領域を選択できるようにするグラフィックユーザーインターフェースを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の実施例は、未処理3次元スキャンデータからロフトサーフィスを自動で計算する。ユーザーは、提供されたユーザーインターフェースを通してロフトサーフィス計算と関連されたパラメータ(parameter)を入力する。ユーザー入力パラメータは、U-V方向、ガイドカーブ認識、及び計算されたロフトサーフィスと3次元スキャンデータの間の許容偏差エラー(allowable deviation error)の総量を含むことができる。与えられたパラメータと会うプロファイルカーブが生成され、選択された領域のために生成されたプロファイルカーブを用いてロフトサーフィスが計算される。ユーザーは、分離された領域を連結する一つのロフトサーフィスを生成するために、幾何学的に分離された領域を選択することができる。
【０００８】
一実施例において、3次元スキャンデータを用いてロフトサーフィスを生成する方法は、3次元対象物の形状を表す3次元スキャンデータの集合を提供することを含む。3次元スキャンデータは3次元対象物を表すモデルに結合される。この方法は、モデルを多数の領域に分割する。ロフトサーフィスのプログラム的な計算のために一つ又はそれ以上の領域が選択される。ロフトサーフィスはプログラム的に計算され、3次元スキャンデータにフィット(fit)される。
【０００９】
他の実施例において、3次元スキャンデータを用いてプログラム的にロフトサーフィスを生成するコンピューティング装置を用いるシステムは、3次元対象物の形状を表す3次元スキャンデータの集合を含む。3次元スキャンデータは3次元対象物を表すモデルに結合される。このモデルは多数の領域に分割される。このシステムはまた、少なくとも一つの領域のために3次元スキャンデータにフィットされたロフトサーフィスをプログラム的に計算するためのロフト計算手段を含む。付加的に、このシステムは、ユーザーインターフェースを表示する表示装置を含む。ユーザーインターフェースは、ロフトサーフィスのプログラム的な計算と関連された少なくとも一つのパラメータの選択を可能にする。
【発明を実施するための最良の形態】
【００１０】
本発明の実施例は、3次元スキャンデータの選択されたモデル領域又は領域に対するロフトサーフィスのプログラム的な計算を可能にする。ロフトサーフィスのプログラム的な計算は、ユーザー入力パラメータに基づく。グラフィックユーザーインターフェース(graphical user interface)は、ユーザーにとってロフトサーフィスが生成される領域又は領域を選択できるようにする。入力変数として、ユーザーはまた、U-V方向、ガイドカーブ及び許容偏差エラーを指定することができる。ロフト計算手段は、指定されたパラメータを満足する全ての必須プロファイルカーブを生成し、ロフトサーフィスを生成する。最初のプロファイルとガイドカーブは、選択されたメッシュ領域や領域、又はリメッシュされた (re-meshed)領域から直接計算されたメッシュパラメタリゼーション(parameterization)から自動で暗示され得る。領域を選択すると、ユーザーは、領域を全て連結する一つのロフトサーフィスを生成するために幾何学的に分離された領域を選択することができる。領域又は領域のユーザー選択による一実施例において、ロフト計算のための必須入力条件は、提供された領域情報から計算される。領域がロフティング(lofting)に適合すると、メッシュから主曲率フロー(principal curvature flows)が計算される。V-方向イソ-パラメトリックカーブ(iso-parametric curve)から必須プロファイルを抽出するように、そしてU-方向イソ-パラメトリックカーブから必須ガイドカーブを抽出するように、曲率フローから領域がパラメータで示される(U-V方向イソパラメトリックカーブはまた、パラメタリゼーションが行われる時に反転され得る。)。
【００１１】
図1は、本発明の実施例を示すのに適した代表的な環境を示す図である。コンピューティング装置2は、スキャンされた3次元対象物に対する未処理3次元スキャンデータ4の集合を含む。未処理3次元スキャンデータ4は3次元スキャナー40から収集される。コンピューティング装置2はまた、キャドアプリケーション6及びロフト計算手段8をホスト(host)する。コンピューティング装置2は、ここで論議されるキャドアプリケーション(CAD Application)6、及びロフト計算手段8を支援できるワークステーション(workstation)、サーバー(server)、ラップトップ(laptop)、メインフレーム(mainframe)、PDA、共に作動する装置のクラスタ(cluster)、仮想装置(virtual device)、又は他のコンピューティング装置などである。ロフト計算手段8は、以下で説明される実行可能なソフトウェアプロセスある。ロフト計算手段8は一つ又はそれ以上のアプリケーションプロセス(application process)、一つ又はそれ以上のアプリケーションプラグーイン(application plug-in)、自立形アプリケーション(stand-alone application)又は他の形態の実行可能なコード(code)として実行され得る。本発明の一実施例において、ロフト計算手段8はツール(tool)としてキャドアプリケーション6に統合される。他の実施例において、ロフト計算手段8はキャドアプリケーション6と通信されるが、キャドアプリケーションの一部ではない。
【００１２】
未処理スキャンデータ4は、スキャンされた対象物の形状を表す3次元の高解像度点の集合である。一実施例において、未処理スキャンデータ4は、三角形メッシュの配列であるが、他の形態のスキャンデータを使用することも本発明の範囲内にあるとみなされる。例えば、未処理スキャンデータ4は、点、四角形のメッシュ、四面体のメッシュ、又は六面体のメッシュでも良い。メッシュの配列は集合的に、スキャンされた対象物のサーフィスを表すモデル12を形成する。モデル12はメッシュモデルや点群モデル(point cloud model)などである。モデル12は、多数の領域14,16,18に分割され得る。領域14,16,18は曲率値によって分割され得る。多数の領域14,16,18にモデル12を分割することは、表示装置30に表示されるグラフィックユーザーインターフェース32を通してユーザーによって手動で実行され得る。選択的に、多数の領域14,16,18にモデル12を分割することは、2006年12月18日付けで出願された出願番号11/612,294号の「3次元スキャンデータを用いて本来の設計意図を確認するためのシステム及び方法(System and Method for Identifying Original Design Intents Using 3D Scan Data)」というタイトルの同時係留中である米国出願に記載されているような分割ソフトウェア手段でプログラム的に実行され得る。
【００１３】
ロフト計算手段8は、ユーザー20によって選択されたモデル12の領域に対する3次元スキャンデータに基づいてプログラム的にロフトサーフィスを生成する。一実施例において、表示装置30上でコンピューティング装置2と通信するグラフィックユーザーインターフェース(GUI)32は、ユーザーがロフトサーフィスを計算しようとするモデル12の一つ又はそれ以上の領域14,16,18を選択するために使用される。下記で更に詳しく説明するように、GUI32は、ユーザー20によって選択された領域14,16,18に対するロフトサーフィスを計算することにおいて、ロフト計算手段8によって使用されるパラメータをユーザーが入力できるようにする。
【００１４】
図2は、未処理3次元スキャンデータを用いて選択された領域に対するロフトサーフィスをプログラム的に計算するための本発明の一実施例による一連の段階を示すフローチャートである。この一連の段階は、集合的にモデル12を形成する未処理3次元スキャンデータ4の集合を提供することによって始まる(段階200)。上述したように、モデル12は例えば、メッシュモデル又は点群モデルである。未処理3次元スキャンデータは、ロフトサーフィスをプログラム的に計算するプロセスの動的な部分(dynamic part)として収集されるか、既に貯蔵されたスキャンデータである。モデル12は多数の領域14,16,18に分割される。この分割は手動で実行されるか、選択的にモデル12を多数の領域14,16,18に分割するためのユーザー命令に対応して分割手段によってプログラム的に実行される(段階202)。表示装置30上でモデル12を見ているユーザー20は、プログラム的なロフト計算のための一つ又はそれ以上の領域14,16,18を選択するためにＧＵＩ32を用いることができる(段階204)。例えば、ユーザーはロフトサーフィスによって連結される幾何学的に分離された二つの領域を選択することができる。下記に更に説明するように、ロフト計算手段8は未処理スキャンデータ4を用いて選択された領域に対するロフトサーフィスを計算する。
【００１５】
本発明の実施例を更に詳しく論議する前に、一般的にロフトサーフィスを計算する間の逆設計技術、及びスキャンデータの操作に関して説明する。図3は、三角形メッシュモデル300で表される3次元スキャンデータのサンプルを示している。メッシュモデル300はゴルフクラブのサーフィス形状を表す。モデリングソフトウェアのユーザーは、モデルに含まれたサーフィスに交差するか、接線を形成する平面302,304を掲載することができる。この平面はプロファイルの平断面を定義するのに用いられる。
【００１６】
モデリングソフトウェアのユーザーは、モデルで他の作業を実行する前にモデルの他の地域をグループ(group)化することができる。図4は、図3に示したモデル300を、類似した曲率範囲を有する領域にグループ化したのを示す。例えば、図3及び図4において、ヘッドの裏面が窪んでいるゴルフクラブ(cavity backed golf club)を示すモデル300は、ユーザーによって類似した曲率値を有する領域にグループ化されたモデルの多数の地域を含むことができる。ユーザーはゴルフクラブのシャフト406を表す３次元スキャンデータの領域をグループ化することができるが、ゴルフクラブの端部400の外側面を表す他の地域も同様に個別的にグループ化することができる。同様に、ユーザーはゴルフクラブの裏部402,404の他の地域、及びへッドの裏面が窪んでいる部分410、412の他の地域をグループ化することができる。モデルの地域が類似した曲率値を有する領域にグループ化されると、ユーザーはゴルフクラブの裏部の地域404のような地域のうちの一つを表すロフトサーフィスを設計することができる。
【００１７】
ロフトサーフィスの設計過程においては、通常的に、多くの他の形態のロフトモデリング過程をユーザーが手動で行う必要があった。例えば、図5aはモデル500に断面カーブ501,502,503,504を適用したことを示す。図5bはモデル500の地域505から断面カーブ501,502,503,504の一部を除去したことを示す。同様に、図5cはモデルの地域506に、絶たれた断面カーブ501,502,503,504を再び繋げたことを示す。ロフトサーフィス設計におけるもう一つの時間を消費する課題は、断面カーブの正確な長さを決めることである。図5dは断面カーブ515の端部517,518の延長を示し、図5eは共通面に位置する断面カーブの端点を得るために二つの平面530,531で断面カーブ521,522,523,524の端部を整えたことを示す。
【００１８】
ユーザーが満足するように断面カーブが位置され、大きさが決められると、断面カーブは、ユーザーが設計したロフトサーフィスで断面プロファイルとして使用される。図5fは、ロフトサーフィス540が決められる時、断面プロファイル541,542,543,544として断面カーブの使用を示す。断面プロファイルを決定した後、ユーザーは、設計されたロフトサーフィスのイソカーブのカーブフロー(curved flow of the iso-curve)を真っ直ぐで滑らかにすることによって、ロフトサーフィスの連続性を向上させるために試みることができる。ユーザーはまた、断面カーブを生成し、改造することによって、サーフィスを更に滑らかにするために試みることができる。図5gは、真っ直ぐなイソメトリックカーブフロー(straight isometric curve flow)でロフトサーフィス540を概略的に示したものである。
【００１９】
メッシュモデル又は点群モデルのように、モデルとして表された3次元スキャンデータ形状は、例え、パラメトリックサーフィスモデルに比べて整えられなく、非連続的ではあるが、再設計されている3次元物体の形状情報を保有する。3次元スキャンデータはロフトサーフィスを計算するのに使用することができる。上述したように、ロフトサーフィスをモデリングする通常的な技術は、図3、4、5a乃至5gに関して上述した技術を、ユーザーが手動で、且つ反復的に行うようにする。ロフトサーフィスをモデリングする通常的な技術と比べて、本発明の実施例はロフトサーフィスの計算においてユーザーから受けたパラメータを自動で適用する、3次元スキャンデータに対するロフトサーフィスのプログラム的な計算を提供する。
【００２０】
3次元スキャンデータ4に基づいたモデル12は、モデル地域の曲率値に基づいてユーザーによって多数の領域にグループ化される。上記のように、グループ化することはプログラム的に又は手動で行われる。本発明の実施例は、ユーザーが、ロフトサーフィスが生成されるモデルの領域を選択することができるように、グラフィックユーザーインターフェースを提供する。入力変数として、ユーザーはまた、U-V方向、ガイドカーブ及び/又は許容偏差エラーを指定することができる。ロフト計算手段8は、与えられたパラメータを満足する必要な全てのプロファイルカーブを生成し、生成されたプロファイルカーブを貫通するロフトサーフィスを生成する。プログラム的なロフト計算のために選択された領域と交差するカーブは、ロフトサーフィス計算の一部として自動で延長され得る。
【００２１】
一実施例において、ユーザーは分離された領域を連結する一つのロフトサーフィスを生成するために、幾何学的に分離された領域を選択することができる。例えば、図６は、多数の領域601〜608を含むモデル600を示す。グラフィックユーザーインターフェース32は、ユーザーが、幾何学的に分離された領域602、604を選択できるようにする。それから、ロフト計算手段8は、選択された領域602,604を連結するロフトサーフィスをプログラム的に計算する。
【００２２】
グラフィックユーザーインターフェース32はまた、モデルの表示された模様を考慮してグラフィック的に長方形グラフィック成分の方位を合わせて、ユーザーが、計算されたロフトサーフィスのU-V方向(イソ-フロー方向)を指定できるようにする。例えば、図７はモデル700にオーバレイされた(overlaid)長方形平面702の方位を合わせて、U-V方向の選択を可能にするグラフィックユーザーインターフェース32の例示的な実施例を示す。この実施例において、U-V方向を変えるためにユーザーは平面702を選択し、これを所望の位置まで移動させる。断面カーブはU方向に沿って生成され、ロフト計算手段によって計算されたロフトサーフィスのためのプロファイルカーブとして使用され得る。
【００２３】
ユーザーはまた、ロフトサーフィス計算に用いられるガイドカーブを指定することができる。ガイドカーブは全てのプロファイルカーブを貫通し、ロフトサーフィスはプロファイルカーブ及びガイドカーブ上に同時に生成される。グラフィックユーザーインターフェース32は、ユーザーが、先在したガイドカーブを含めてガイドカーブを選択できるようにする。選択的に、ガイドカーブとして使用されるモデルのフィーチャー領域を選択するために、ユーザーはグラフィックユーザーインターフェース32を使用することができる。例えば、図8はロフト計算手段8がロフトサーフィスを計算するのに使用するガイドカーブをユーザーが選択できるようにするグラフィックユーザーインターフェース32の例示的な実施例を示す。グラフィックユーザーインターフェース32は、選択されたU-V方向と対応するオーバレイされた長方形グラフィック成分802を含むモデル800を表示する。グラフィックユーザーインターフェース32は、ユーザーが、モデル800のためのロフトサーフィス計算に使用されるガイドカーブ804を選択できるようにする。
【００２４】
上述したように、グラフィックユーザーインターフェースは、ユーザーがロフトサーフィス計算に使用されるガイドカーブとしてフィーチャー領域を使用できるようにする。更に具体的に言うと、ユーザーはモデルのフィレット(fillet)領域(エッジ(edge)領域)のように、モデルの互いに異なる領域からフィーチャーカーブを使用することができる。フィーチャー領域からフィーチャーカーブを生成するための他の多くの方法がある。例えば、グラフィックユーザーインターフェース32は3次元スケッチモデルを含むことができ、これによってユーザーはフィーチャーカーブを生成するためにモデルからフィーチャーを追跡するための命令を選択することができる。他の例として、ユーザーはフィーチャー形状から自動、又は半自動で抽出された参照ポリライン(reference polyline)から生成された、補間されたカーブ(interpolated curve)を使用することができる。
【００２５】
モデルのフィーチャー領域から生成されたガイドカーブは、ロフトサーフィスを計算するために使用されるプロファイルカーブと交差する。通常的に、反復的なユーザーの手動操作は、交差点が正確となるようにガイドカーブとしてのフィーチャーカーブの使用が要求されてきた。本発明はフィーチャーカーブの使用による問題を処理するためのメカニズムを提供する。ガイドカーブを有しない最初のロフトサーフィス(ガイドされていないロフトサーフィス)はモデル上に投射(project)される。次いで、フィーチャーカーブがユーザーによって選択され、ガイドされていないロフトサーフィス上に投射される。フィーチャーカーブの不必要な部分はサーフィス境界のエッジとして整えられる。図9aは、本発明の実施例によるガイドされていないロフトサーフィスの使用を示す。ガイドされていないロフトサーフィス1002はモデル1000上に位置される。フィーチャーカーブ1006,1008はユーザーによって選択され、ガイドされていないロフトサーフィス1002のエッジによって整えられる。
【００２６】
ガイドされていないロフトサーフィスにフィーチャーカーブを適用した後、ロフト計算手段8は、前に言及した技術を用いてロフトサーフィスのために提供されたフィーチャーカーブとプロファイルカーブとの間の交差ノード(node)を認識する。一実施例において、グラフィックユーザーインターフェース32は、ガイドカーブ、及びモデルデータと最終計算されたロフトサーフィス間の偏差を考慮しながら、反復的にガイドカーブを滑らかなイソメトリック-フローラインに改造するためにロフト計算手段に指示をするユーザー命令を受容することができる。図9bは、フィーチャーカーブ1005,1006,1007,1008間の交差ノード1010を示す。図9cは、ガイドカーブとしてフィーチャーカーブを用いてモデル1000のために計算された、最終計算されたロフトサーフィス1020を示す。
【００２７】
本発明の一側面において、グラフィックユーザーインターフェース32は、ユーザーが、計算されたロフトサーフィスと基礎的な3次元スキャン形状との間での許容偏差エラーの総量を指定できるようにする。偏差は多様な方法を用いて計算される。一番単純な方法は、参照メッシュ/モデルから、そして多角形によって作業をすることであり、他のメッシュ/モデルの一番近い多角形中心(Polygon Center)、エッジ(Edge)又は頂点(Vertex)を求めることである。このような距離結果は偏差を表す。更に複雑な接近は、基本的に多角形によって作業をすることであるが、ここでは多角形の正規方向が決定され、他のメッシュ/モデルで一番近い多角形のための方向への調査は、偏差を表す距離結果をもって行われる。ロフト計算手段8は、選択された領域に対して希望するロフトサーフィスを計算するためにどれだけ多いプロファイルカーブが必要なのか、プロファイルカーブがどこに位置されるべきかを決定する。
【００２８】
本発明の他の側面において、グラフィックユーザーインターフェース32は、現存するボディーに滑らかに連結されるロフトサーフィスを生成するために、ユーザーが、境界条件を有する開始及び終了プロファイル(start and end profiles)を供給できるようにする。
【００２９】
一実施例において、ロフト計算手段は、設計されているロフトサーフィスのイソ-カーブフローを真っ直ぐで滑らかにすることによって、ユーザーがロフトサーフィスを近似化できるようにする。ユーザーはプログラム的なロフト計算のために断面カーブを生成し、改造することによって、サーフィスを更に滑らかにするために試みることができる。ロフト計算手段はどれだけ多くの断面カーブが必要なのか、そして、ユーザーが指定した偏差エラーに基づいてカーブがどこに位置されるべきかを自動で計算することができる。断面カーブの改造によって、通常の技術より滑らかで見かけの良いサーフィスを求めることができる。
【００３０】
一実施例において、スキャンデータ又はユーザーが指定した偏差エラーの総量の変化があると、ロフト計算手段はロフトサーフィスを自動でアップデートする。アップデートされたロフトサーフィスは承認のためにユーザーに表示される。
【００３１】
本発明は、一つ以上の媒介物において具現された一つ以上のコンピューターが読めるプログラム(computer-readable program)として提供され得る。この媒介物は、フロッピー（登録商標）ディスク、ハードディスク、コンパクトディスク、DVD(digital versatile  disc)、フラッシュメモリカード、ピーロム(PROM)、ラム(RAM)、ロム(ROM)、あるいは磁気テープなどである。一般的に、コンピューターが読めるプログラムは、どんなプログラミング言語でも実行され得る。使用可能な言語は、フォートラン、C、C++、C＃、またはJAVA（登録商標）を含む。ソフトウェアプログラムは対象物コードとして、一つ以上の媒介物に貯蔵され得る。FPGA(field-programmable gate array) またはASIC(application-specific integrated circuit)においてハードウェア加速(hardware acceleration)が用いられ、コードの全部または一部が作動され得る。このコードは、仮想コンピューターのような仮想の環境で作動され得る。このコードを作動する多数の仮想コンピューターは、１つのプロセスに常住(resident)することができる。 
本発明の範囲から逸脱することなくある程度の変更は可能であるため、上記した説明または添付された図面に示した全ての内容は、文言そのままではなく、例示的なものとして解釈されなければならない。この分野の当業者なら、図面に示した段階及び構造の結果が、本発明の範囲から逸脱することなく変更されることができ、ここに含まれた例示が本発明の多数の可能な描写のうち一つの例であることが分かる。
【００３２】
本発明によると、ロフト計算手段は設計されているロフトサーフィスのイソ-カーブフローを真っ直ぐで滑らかにすることによって、ユーザーがロフトサーフィスを近似化(approximation)できるようにする。ユーザーは、プログラム的なロフト計算のために断面カーブを生成し、改造することによって、サーフィスを更に滑らかにするために試みることができる。ロフト計算手段は、どれだけ多くの断面カーブが必要なのか、なお、ユーザーが指定した偏差エラーに基づいてカーブがどこに位置されるべきかを自動で計算することができる。断面カーブの改造によって、通常の技術より滑らかで見かけのよいサーフィスを求めることができる。
【図面の簡単な説明】
【００３３】
【図１】本発明の実施例を示すのに適した代表的な環境を示す図である。
【図２】ロフトサーフィスをプログラム的に計算するための本発明の一実施例による一連の段階を示すフローチャートである。
【図３】従来技術による三角形メッシュに表される3次元スキャンデータのサンプルを示す図である。
【図４】従来技術による類似曲率範囲を有する領域でメッシュをグループ化したのを示す図である。
【図５ａ】モデルに断面カーブを適用したことを示す図である。
【図５ｂ】モデル地域から断面カーブを除去したことを示す図である。
【図５ｃ】モデル地域に絶たれた断面カーブを再び連結したことを示す図である。
【図５ｄ】断面カーブの延長を示す図である。
【図５ｅ】断面カーブの端部を整えたことを示す図である。
【図５ｆ】ロフトサーフィスを定義する時に、断面プロファイルとしての断面カーブの利用を示す図である。
【図５ｇ】直線のイソ-カーブフロー(iso-curve flow)でロフトサーフィスを近似的に示す図である。
【図６】本発明の一実施例において幾何学的に分離されたモデル領域の選択を示す図である。
【図７】本発明の一実施例においてU-V方向の選択を示す図である。
【図８】本発明の一実施例においてガイドカーブの利用を示す図である。
【図９ａ】本発明の一実施例によるガイドされていないロフトサーフィスでフィーチャーカーブの投射を示す図である。
【図９ｂ】図9aの投射されたガイドカーブ間の交差ノード、及び本発明の一実施例によるガイドされていないロフトサーフィス上のプロファイルカーブを示す図である。
【図９ｃ】最初のガイドされていないロフトサーフィスから計算された最終的なロフトサーフィスを示す図である。
【符号の説明】
【００３４】
300・・・三角形メッシュモデル    500、600、700、800、1000・・・モデル  
【図１】
2008305372.tif 000003
【図２】
2008305372.tif 000004
【図３】
2008305372.tif 000005
【図４】
2008305372.tif 000006
【図５ａ】
2008305372.tif 000007
【図５ｂ】
2008305372.tif 000008
【図５ｃ】
2008305372.tif 000009
【図５ｄ】
2008305372.tif 000010
【図５ｅ】
2008305372.tif 000011
【図５ｆ】
2008305372.tif 000012
【図５ｇ】
2008305372.tif 000013
【図６】
2008305372.tif 000014
【図７】
2008305372.tif 000015
【図８】
2008305372.tif 000016
【図９ａ】
2008305372.tif 000017
【図９ｂ】
2008305372.tif 000018
【図９ｃ】
2008305372.tif 000019