(57)【特許請求の範囲】
【請求項１】
三次元幾何学モデルオブジェクトを設計するためのコンピュータ実装される方法であって、
三次元モデルオブジェクトを設計するためのコンピュータ実装される方法に従って設計された三次元モデルオブジェクトのセットを提供するステップであって、前記三次元モデルオブジェクトを設計するためのコンピュータ実装される方法は、
画面とのユーザ相互作用のステップと、
前記画面との前記ユーザ相互作用に対応するストロークを定義するステップと、
前記ストロークをポイントの集合に離散化するステップと、
前記離散化されたストロークの前記ポイントが映し出されるサーフェスである、少なくとも１つのサポートを三次元シーン内で幾何学的エンティティとして定義するステップと、
前記離散化されたストロークの前記ポイントの集合を、前記三次元シーン内で定義された前記少なくとも１つのサポート上に映し出すステップと、
前記三次元シーン内の前記映し出されたポイントの集合および前記少なくとも１つのサポートの座標から前記三次元モデルオブジェクトを構築するステップと
を備える、ステップと、
前記提供された三次元モデルオブジェクトのセットの前記ポイントを抽出するステップと、
前記抽出されたポイントから滑らかな幾何学曲線を計算するステップと、
前記滑らかな幾何学曲線から三次元幾何学モデルオブジェクトを構築するステップと
を備えることを特徴とする方法。
【請求項２】
前記ポイントを抽出するステップにおいて、前記ポイントが映し出される前記サポートに従って前記ポイントが抽出されることを特徴とする請求項１に記載の方法。
【請求項３】
前記ポイントを抽出するステップは、
前記画面とのユーザ相互作用のステップと、
前記ユーザ相互作用に対応するストロークを定義するステップと、
前記抽出されたポイントにおいて、前記提供された三次元モデルオブジェクトのセットのうち三次元モデルオブジェクトの１つを読み出し、読み出された前記三次元モデルオブジェクトの１つの少なくとも１つのサポートを読み出すステップと、
前記ユーザ相互作用に対応する前記ストロークをポイントの集合に離散化するステップと、
前記ポイントの集合の前記ポイントを前記少なくとも１つの読み出されたサポート上に映し出すステップと
をさらに備えることを特徴とする請求項１に記載の方法。
【請求項４】
前記読み出すステップは、カーソルから始まるピックパスから最も近い三次元モデルオブジェクトを読み出すステップをさらに備えることを特徴とする請求項３に記載の方法。
【請求項５】
前記ピックパスは、前記カーソルから放射された光線を備えることを特徴とする請求項４に記載の方法。
【請求項６】
前記ポイントを抽出するステップ、前記幾何学曲線を計算するステップ、および前記三次元幾何学モデルオブジェクトを構築するステップは、提供された各三次元モデルオブジェクトに対して反復されることを特徴とする請求項１または２に記載の方法。
【請求項７】
前記ポイントを抽出するステップ、前記幾何学曲線を計算するステップ、および前記三次元幾何学モデルオブジェクトを構築するステップは、ユーザが前記画面との相互作用を行う間に反復されることを特徴とする請求項３から５のいずれか一項における方法。
【請求項８】
コンピュータに、請求項１から７のいずれか一項における方法を実行させるためのコンピュータプログラム。
【請求項９】
請求項８に係るコンピュータプログラムが記録されるコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラムおよびシステムの分野に関し、より詳細には、幾何学的三次元モデルオブジェクトを設計する方法、システム、およびプログラムに関する。
【背景技術】
【０００２】
オブジェクトを設計し、技術開発し、そして製造するためのシステムおよびプログラムが市場に多く出回っている。ＣＡＤは、コンピュータ支援設計(Computer-Aided Design)の頭文字であり、例えば、オブジェクトを設計するソフトウェアソリューションに関わる。ＣＡＥは、コンピュータ支援エンジニアリング(Computer-Aided Engineering)の頭文字であり、例えば、将来の製品の物理的な動きをシミュレートするソフトウェアソリューションに関わる。ＣＡＭは、コンピュータ支援製造(Computer-Aided Manufacturing)の頭文字であり、例えば、製造に関わる実行管理システム(mes)および操作を定義するソフトウェアソリューションに関わる。こうしたコンピュータ支援設計システムにおいて、グラフィカルユーザインタフェースは、コンピュータ支援技術の効率に関して重要な役割を果たす。これらのコンピュータ支援技術は、ＰＬＭ（製品ライフサイクル管理：Ｐｒｏｄｕｃｔ  Ｌｉｆｅｃｙｃｌｅ  Ｍａｎａｇｅｍｅｎｔ）システムに組み込むことができる。ＰＬＭは、企業が製品データを共有し、そのデータを共通プロセスに適用し、そして製品の構想から寿命までの製品開発に関する企業情報を事業拡大の構想に活用するのに役立つ経営戦略を指す。
【０００３】
ダッソーシステムズ社製のＰＬＭソリューション（商標ＣＡＴＩＡ、ＥＮＯＶＩＡおよびＤＥＬＭＩＡに基づく）は、製品エンジニアリング知識を体系化するエンジニアリングハブと、製造エンジニアリング知識を管理する製造ハブと、事業を統合してエンジニアリングハブと製造ハブとの両方に接続するのを可能にする事業ハブとを提供する。これらのシステムはすべて、製品、プロセスおよびリソースをリンクして、動的で知識ベースの製品作成と、製品定義、調整、生産およびサービスを最適に導く意思決定サポートとを可能にするオープンオブジェクトモデルを実現する。
【０００４】
オブジェクトの設計は、オブジェクトのモックアップを作成する前に、このオブジェクトの形状を三次元で作成するプロセスを指す。例えば、新しい車を考える場合、重要なタスクの１つは、その車体を作成することである。一般に、新しいオブジェクトおよびその形状の作成は、オブジェクトの設計者がそのオブジェクトを描く用紙の段階から始まる。描画は、２つのステップを備える。第１のステップは、スケッチステップであり、完成品を目的としない、素早く行われる手描き図が作成される。第２のステップは、トレーサステップであり、オブジェクトの明確な描画がスケッチから設計される。
【０００５】
スケッチステップは、一般に用紙上で行われ、次のトレーサステップは、専用ソフトウェアで行われる。ダッソーシステムズ社が提供するソフトウェアである、フリースタイルスケッチトレーサ（商標）は、３Ｄ仮想モックアップの基本となる３Ｄフォーマットに設計者の作品（スケッチステップで行われた２Ｄペインティングなど）を組み入れるのを可能にする。この製品は、設計者が２Ｄデータを３Ｄデータに変換するのに役立つ直感的なツールボックスを提供する。つまり、設計者は、最初に２Ｄ画像を３Ｄ空間に位置付けしてスケールし、次にそのジオメトリをスケッチに被せる。実際、設計者は、３Ｄ空間に配置されたオブジェクトの少なくとも２Ｄフロントビューと２Ｄサイドビューとを用いて、２Ｄフロントビューから２Ｄサイドビューに切り替える（またはその逆）ことによってポイントを３Ｄ空間に配置する。次に、立体を推定できるようになるまで、ポイントからカーブとサーフェスが計算される。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
この方法は、三次元モデルオブジェクトを設計するものであるが、いくつかの難点がある。第一に、スケッチがなおも用紙で行われ、ソフトウェアで描画を取り込む必要があるので、スケッチステップとトレーサステップとは統合されない。第二に、取り込まれる描画が２Ｄ描画のみなので、取り込まれた２Ｄ描画から幾何学曲線を推測するしかない。第三に、幾何学曲線を計算するのにいくつかのコンピュータを使用する必要があるため、３Ｄモデルオブジェクトの作成は計算リソースを多く必要とする。
【０００７】
こうした状況では、幾何学的三次元モデルオブジェクトを設計する方法をさらに改善する必要がある。
【課題を解決するための手段】
【０００８】
本発明の一態様によれば、三次元モデルオブジェクトを設計するためのコンピュータ実装される方法であって、画面とのユーザ相互作用のステップと、前記ユーザ相互作用に対応するストロークを定義するステップと、前記ストロークをポイントの集合に離散化するステップと、前記ポイントの集合を三次元シーンの少なくとも１つのサポート上に映し出すステップと、前記映し出されたポイントの集合および前記少なくとも１つのサポートから前記三次元モデルオブジェクトを構築するステップとを備えることを特徴とする方法が提供される。
【０００９】
また、本発明の他の態様によれば、前記三次元モデルオブジェクトの視覚化を構築するステップであって、前記映し出されたポイントの集合の各ポイントに対して少なくとも２つのオフセットポイントを計算するサブステップであって、オフセットポイントは、前記少なくとも１つのサポート上で位置付けされ、および前記各ポイントから間隔が空けられたポイントであるサブステップと、前記計算された少なくとも２つのオフセットポイントによって線引きされたサーフェスを計算するサブステップであって、前記サーフェスは、前記映し出されたポイントの集合を備えるサブステップとを含むステップをさらに備えることを特徴とする方法が提供される。
【００１０】
また、本発明の他の態様によれば、前記少なくとも２つのオフセットポイントを計算するステップは、前記映し出されたポイントの集合の前記ポイントをリンクするポリラインを計算するステップと、前記映し出されたポイントの集合の各ポイントに対してオフセットベクトル
【００１１】
【数１】
0006356378.tif 000002
【００１２】
（以下、各ベクトルを以下のように表記する。）
【００１３】
【数２】
0006356378.tif 000003
【００１４】
を計算するステップであって、αは係数、ｎ→は前記サポートに垂直な単位ベクトル、Ｌ→は前記ポリラインを形成する前記ポイントの集合の２つのポイントをリンクするラインによって定義されるベクトル、ｎ→およびＬ→は前記各ポイントを共通原点として有するステップと、前記オフセットベクトルＯ→から前記少なくとも２つのオフセットポイントを決定するステップと、前記決定された前記少なくとも２つのオフセットポイントを三次元シーンの前記少なくとも１つのサポート上に映し出すステップとを備えることを特徴とする方法が提供される。
【００１５】
また、本発明の他の態様によれば、前記計算されたオフセットによって線引きされた前記計算されたサーフェスをテセレートするステップをさらに備えることを特徴とする方法が提供される。
【００１６】
また、本発明の他の態様によれば、前記三次元幾何学モデルオブジェクトの視覚化を構築するステップは、前記計算されたサーフェスをレンダリングするためにシェーダを適用するステップをさらに備えることを特徴とする方法が提供される。
【００１７】
また、本発明の他の態様によれば、すべての前記ステップは、前記三次元シーンの少なくとも別の１つのサポートで反復されるステップであることを特徴とする方法が提供される。
【００１８】
また、本発明の他の態様によれば、三次元幾何学モデルオブジェクトを設計するためのコンピュータ実装される方法であって、上記のいずれかにおける方法に従って設計された三次元モデルオブジェクトのセットを提供するステップと、前記提供された三次元モデルオブジェクトのセットの前記ポイントを抽出するステップと、前記抽出されたポイントから滑らかな幾何学曲線を計算するステップと、前記滑らかな幾何学曲線から三次元幾何学モデルオブジェクトを構築するステップとを備えることを特徴とする方法が提供される。
【００１９】
また、本発明の他の態様によれば、前記ポイントを抽出するステップにおいて、前記ポイントが映し出される前記サポートに従って前記ポイントが抽出されることを特徴とする方法が提供される。
【００２０】
また、本発明の他の態様によれば、前記ポイントを抽出するステップは、前記画面とのユーザ相互作用のステップと、前記ユーザ相互作用に対応するストロークを定義するステップと、前記抽出されたポイントにおいて、前記提供された三次元モデルオブジェクトのセットのうち三次元モデルオブジェクトの１つを読み出し、読み出された前記三次元モデルオブジェクトの１つの少なくとも１つのサポートを読み出すステップと、前記ユーザ相互作用に対応する前記ストロークをポイントの集合に離散化するステップと、前記ポイントの集合の前記ポイントを前記少なくとも１つの読み出されたサポート上に映し出すステップとをさらに備えることを特徴とする方法が提供される。
【００２１】
また、本発明の他の態様によれば、前記読み出すステップは、カーソルから始まるピックパスから最も近い三次元モデルオブジェクトを読み出すステップをさらに備えることを特徴とする方法が提供される。
【００２２】
また、本発明の他の態様によれば、前記ピックパスは、前記カーソルからの光線変換を備えることを特徴とする方法が提供される。
【００２３】
また、本発明の他の態様によれば、前記ポイントを抽出するステップ、前記幾何学曲線を計算するステップ、および前記三次元幾何学モデルオブジェクトを構築するステップは、提供された各三次元モデルオブジェクトに対して反復されることを特徴とする方法が提供される。
【００２４】
また、本発明の他の態様によれば、前記ポイントを抽出するステップ、前記幾何学曲線を計算するステップ、および前記三次元幾何学モデルオブジェクトを構築するステップは、前記ユーザが前記画面との相互作用を行う間に反復されることを特徴とする方法が提供される。
【００２５】
また、本発明の他の態様によれば、コンピュータによって実行される命令を備えるコンピュータプログラムであって、前記命令は、上記のいずれかにおける方法を実行するための手段を備えることを特徴とするコンピュータプログラムが提供される。
【００２６】
また、本発明の他の態様によれば、このコンピュータプログラムが記録されるコンピュータ可読記憶媒体が提供される。
【図面の簡単な説明】
【００２７】
【図１】本発明の例の流れ図を示す図である。
【図２】グラフィカルユーザインタフェースの例を示す図である。
【図３】クライアントコンピュータシステムの例を示す図である。
【図４】本発明にかかる幾何学的三次元モデルオブジェクトを設計する方法を示す図である。
【図５】本発明にかかる幾何学的三次元モデルオブジェクトを設計する方法を示す図である。
【図６】本発明にかかる幾何学的三次元モデルオブジェクトを設計する方法を示す図である。
【図７】本発明にかかる幾何学的三次元モデルオブジェクトを設計する方法を示す図である。
【図８】本発明にかかる幾何学的三次元モデルオブジェクトを設計する方法を示す図である。
【図９】本発明にかかる幾何学的三次元モデルオブジェクトを設計する方法を示す図である。
【図１０】本発明にかかる幾何学的三次元モデルオブジェクトを設計する方法を示す図である。
【図１１】本発明にかかる幾何学的三次元モデルオブジェクトを設計する方法を示す図である。
【図１２】本発明にかかる幾何学的三次元モデルオブジェクトを設計する方法を示す図である。
【図１３】本発明にかかる三次元モデルオブジェクトを設計する方法を示す図である。
【図１４】本発明にかかる三次元モデルオブジェクトを設計する方法を示す図である。
【図１５】本発明にかかる三次元モデルオブジェクトを設計する方法を示す図である。
【図１６】本発明にかかる三次元モデルオブジェクトを設計する方法を示す図である。
【発明を実施するための形態】
【００２８】
本発明の実施形態は、限定されない例として、添付図面を参照しながら説明される。
【００２９】
三次元モデルオブジェクトを設計するためのコンピュータ実装方法を提案する。本方法は、ユーザが画面との相互作用（対話）を行うステップを備える。本方法は、ユーザ相互作用に対応するストロークを定義するステップも備える。本方法は、ストロークをポイントの集合に離散化するステップも備える。本方法は、ポイントの集合を三次元シーンの少なくとも１つのサポート上に映し出すステップも備える。本方法は、映し出されたポイントの集合および前述の少なくとも１つのサポートから三次元モデルオブジェクトを構築するステップも備える。
【００３０】
本方法は、三次元モデルオブジェクトを設計するためのものである。「三次元モデルオブジェクトの設計」は、三次元モデルオブジェクトを作り上げるプロセスの少なくとも一部である任意の動作または一連の動作を指定する。従って、本方法は、三次元モデルオブジェクトをゼロから作成することを備えることもある。代替として、本方法は、あらかじめ作成された三次元モデルオブジェクトを提供し、その後、その三次元モデルオブジェクトを修正することを備えることもある。
【００３１】
本方法を、三次元幾何学モデルオブジェクトを設計するためのコンピュータ実装方法に含むことができる。本方法は、三次元モデルオブジェクトを設計する方法に従って設計された三次元モデルオブジェクトのセットを提供するステップを備える。本方法は、提供された三次元モデルオブジェクトのセットのポイントを抽出するステップも備える。方法は、抽出されたポイントから滑らかな幾何学曲線を計算するステップも備える。本方法は、滑らかな幾何学曲線から三次元幾何学モデルオブジェクトを構築するステップも備える。
【００３２】
三次元モデルオブジェクトを設計する方法は、複雑な三次元モデルオブジェクトをより簡単に速く構築できるようにし、三次元モデルオブジェクトを構築するのに必要な計算リソース（例えば、ＣＰＵ、メモリ）を大幅に減らす。三次元モデルオブジェクトを設計する方法はまた、三次元幾何学モデルオブジェクトを設計する方法をより簡単に速く行わせるので、設計プロセスの生産性が高まる。
【００３３】
本方法は、コンピュータ実装される。これは、本方法のステップ（または実質上すべてのステップ）が少なくとも１つのコンピュータによって実行されることを意味する。例において、少なくとも一部の方法のステップをトリガすることは、ユーザとコンピュータとの相互作用を通じて行われる。ユーザとコンピュータとの相互作用に必要なレベルは、予測され、ユーザが望むものを実装するのに必要なものとバランスが取られる、自動性のレベルに依存する。例において、このレベルをユーザ定義および／または事前定義のレベルとすることができる。
【００３４】
例えば、画面との相互作用のステップは、ユーザが介入するステップの一例である。
【００３５】
本方法をコンピュータ実装する典型的な例は、本目的に適したＧＵＩ（グラフィカルユーザインタフェース）を備えるシステムで方法を行うものである。ＧＵＩは、メモリとプロセッサとに結合される。データベースを記憶するメモリは、その記憶に適していれば任意のハードウェアでよい。そのようなシステムが、三次元モデルオブジェクトおよび三次元幾何学モデルオブジェクトの設計を改善する。そのようなシステムであるので、設計の専門家を含む、幅広いユーザによって用いることが可能になる。例えば、ＧＵＩ（ユーザとの相互作用を行う画面を備える）を通じてユーザが関与するステップが行われることもあれば、ＧＵＩが関与することなく、メモリにアクセスするプロセッサによって、完全にコンピュータ化されたステップが行われることもある。
【００３６】
メモリに記憶される情報（即ち、三次元形状パラメータ（複数可））をデータベース形式で記憶できる。「データベース」とは、検索および読み出し用に体系化されたデータ（即ち、情報）の集積を意味する。メモリに記憶される場合、データベースは、コンピュータによる高速な検索および読み出しが可能になる。データベースは実際、各種データ処理操作と併せてデータの記憶、読み出し、修正および消去を容易にするように構成される。データベースは、レコードに分解することができるファイルまたはファイルのセットから成り、各レコードは１または複数のフィールドから成る。フィールドは、データ記憶の基本単位である。ユーザは、主にクエリを通じてデータを読み出すことができる。キーワードおよびソートコマンドを使用して、ユーザは、用いられるデータベース管理システムの規則に従って、多数のレコード内のフィールドを素早く検索し、再配列し、グループ化し、そして選択して、特定のデータ集合体に関するレポートを読み出すまたは作成することができる。
【００３７】
本方法の事例として、データベースは、三次元幾何学モデルオブジェクトを設計するのに用いられる三次元モデルオブジェクトのセットを備えることができる。もちろん、データベースは、本方法に従って設計された三次元幾何学モデルオブジェクトを記憶できる。
【００３８】
本方法およびシステムは、一般にモデルオブジェクトを巧みに操作する(manipulate)。モデルオブジェクトは、メモリに記憶されたデータによって定義される任意のオブジェクトである。拡大解釈すると、「モデルオブジェクト」という表現は、データ自体を指す。システムのタイプに従って、モデルオブジェクトを異なる種類のデータによって定義できる。
【００３９】
ＣＡＤシステムは少なくとも、ＣＡＴＩＡなどの、モデルオブジェクトのグラフィック表現に基づくモデルオブジェクトを設計するのに適した任意のシステムである。従って、ＣＡＤモデルオブジェクトを定義するデータは、モデルオブジェクトの表現を可能にするデータ（例えば、空間の相対位置を含むジオメトリデータ）を備える。ＣＡＤモデルオブジェクトは、幾何学モデルオブジェクトとも呼ばれ、三次元ＣＡＤモデルオブジェクトは、三次元幾何学モデルオブジェクトとも呼ばれる。ＣＡＤシステムは例えば、エッジまたはライン、場合によってはフェイスまたはサーフェスを用いて、ＣＡＤモデルオブジェクトの表現を提供できる。各種方法、例えば、ＮＵＲＢＳ（非均一有理Ｂスプライン）で、ライン、エッジ、またはサーフェスを表現できる。具体的には、ＣＡＤファイルは、ジオメトリを生成できる仕様を含むことができ、その仕様によって表現の生成が可能になる。モデルオブジェクトの仕様を単一のＣＡＤファイルまたは複数のＣＡＤファイルに記憶できる。モデルオブジェクトをＣＡＤシステムで表現するファイルの典型的なサイズは、一部品当たり１メガバイトの範囲内である。そしてモデルオブジェクトを、典型的には、数千の部品から成る組み立て体にすることが可能である。
【００４０】
ＣＡＤシステムは、ピクセルベースのジオメトリを用いてモデルオブジェクトの表現を提供することもできる。ピクセルベースのジオメトリモデルオブジェクト（以下モデルオブジェクトと呼ぶ）は、ピクセルを順序付けるピクセルパターンを用いる。ピクセルベースのジオメトリによってライン、エッジまたはサーフェスを表現できる。具体的には、ＣＡＤファイルは、ピクセルを生成できる仕様を含むことができ、その仕様によって表現の生成が可能になる。モデルオブジェクトの仕様を単一のＣＡＤファイルまたは複数のＣＡＤファイルに記憶できる。ピクセルベースのジオメトリモデルオブジェクトは、幾何学モデルオブジェクトとは逆に、数式によって定義されるプロパティを持たないオブジェクトであることを理解されたい。
【００４１】
システムは、ＣＡＥシステムおよび／またはＣＡＭシステムになることも可能であり、ＣＡＤモデルオブジェクトは、ＣＡＥモデルオブジェクトおよび／またはＣＡＭモデルオブジェクトになることも可能である。実際、ＣＡＤシステム、ＣＡＥシステムおよびＣＡＭシステムは、これらのシステムの任意の組み合わせに対応するデータによってモデルオブジェクトを定義できるので、他方のシステムにとって排他的ではない。
【００４２】
ＣＡＤという環境においては、モデルオブジェクトを、典型的には、例えば、一部品または部品から成る組み立て体、あるいは製品の組み立て体などといった、製品を表現する３Ｄモデルオブジェクトにすることが可能である。「３Ｄモデルオブジェクト」とは、その３Ｄ表現を可能とするデータによってモデル化された任意のオブジェクトを意味する。３Ｄ表現は、全角度から部品をビューすることが可能である。例えば、３Ｄ表現する場合、３Ｄモデルオブジェクトを操縦して、オブジェクトの軸を任意に回転したり、またはその表現が表示されている画面の軸を任意に回転することができる。これは、３Ｄでモデル化してない２Ｄアイコンを著しく排除する。３Ｄ表現の表示は、設計を容易にする（即ち、統計的に、設計者が自分の仕事を完了する速度が上がる）。製品の設計が製造プロセスの一部であるため、この３Ｄ表現によって産業における製造プロセスが高速化する。
【００４３】
ＣＡＤシステムを履歴ベースにすることが可能である。この場合、幾何学モデルオブジェクトは、幾何学的機能の履歴を備えるデータによってさらに定義される。実際、人物（即ち、設計者／ユーザ）が標準のモデリング機能（例えば、押し出し、回転、カット、および／またはラウンドなど）および／または標準のサーフェス機能（例えば、スイープ、ブレンド、ロフト、フィル、変形、スムージングなど）を用いることによって、幾何学モデルオブジェクトを設計できる。そのようなモデリング機能をサポートする多くのＣＡＤシステムは、履歴ベースのシステムである。このことは、設計機能による履歴の作成が、典型的には、入力リンクおよび出力リンクを通じて上記の幾何学的機能をまとめてリンクした、非巡回的なデータの流れによって保存されることを意味する。この履歴ベースのモデリングパラダイムは、８０年代初めからよく知られている。幾何学モデルオブジェクトは、２つの永続的データ表現によって記述される。つまり、履歴表現とＢ表現（即ち、境界表現）によって記述される。Ｂ表現は、履歴で定義された計算結果である。幾何学モデルオブジェクトが表現される時にコンピュータ画面に表示される部品の形状は、Ｂ表現（のモザイク模様（tessellation））である。部品の履歴は、設計意図である。基本的に、履歴は、幾何学モデルオブジェクトに行なった操作情報を集める。Ｂ表現を履歴と共に保存して、複雑な部品をより簡単に表示させることができる。設計意図に従って部品の設計変更を可能にするために、履歴をＢ表現と共に保存できる。
【００４４】
ＰＬＭシステムとは、物理的に製造された製品を表現するモデルオブジェクトの管理に適した任意のシステムを意味する。ＰＬＭシステムにおいて、モデルオブジェクトは、物理的オブジェクトを製造するのに適したデータによって定義される。この定義は、典型的には、次元値および／または許容値になる。正しくオブジェクトを製造するために、実際そのような値を使用した方がよい。
【００４５】
ＣＡＥシステムとは、幾何学モデルオブジェクトの物理的な動きを分析するのに適した任意のシステムを意味する。ＣＡＥシステムにおいて、モデルオブジェクトは、そのような動きを分析するのに適したデータによって定義される。この定義は、典型的には、動きの機能のセットになる。例えば、ドアに対応するモデルオブジェクトを、ドアが軸の周りを回転することを示すデータによって定義できる。
【００４６】
図２は、システムのＧＵＩの例を示し、そのシステムは、ＣＡＤシステムである。
【００４７】
ＧＵＩ２１００は、典型的なＣＡＤに似たインタフェースであり、標準のメニューバー２１１０、２１２０に加えて、下側ツールバー２１４０と横側ツールバー２１５０とを有する。このようなメニュー・ツールバーは、ユーザが選択可能なアイコンのセットを包含し、各アイコンは、当業者に周知である、１または複数の操作または機能と関連付けられている。このようなアイコンのいくつかは、ＧＵＩ２１００中で表示される３Ｄモデルオブジェクト２０００での編集および／または作業に適用されるソフトウェアツールと関連付けられる。ソフトウェアツールをワークベンチにグループ化することができる。各ワークベンチは、ソフトウェアツールのサブセットを備える。特に、ワークベンチの中には、モデル製品２０００の幾何学的機能を編集するのに適した、編集ワークベンチがある。操作において、設計者は、例えば、オブジェクト２０００の部品を事前選択した後、適切なアイコンを選択することによって操作（例えば、次元、色の変更など）を開始するか、または幾何学的制約を編集できる。例えば、典型的なＣＡＤ操作は、画面に表示された３Ｄモデルオブジェクトの穴あけまたは折り込みのモデリングである。
【００４８】
ＧＵＩは、例えば、表示された製品２０００に関連するデータ２５００を表示することが可能である。図２の例において、「機能ツリー」として表示されているデータ２５００およびその３Ｄ表現２０００は、ブレーキキャリパーとディスクとを含むブレーキ組み立て体に関連する。ＧＵＩは、各種タイプのグラフィックツール２１３０、２０７０、２０８０をさらに示し、例えば、編集された製品の操作のシミュレーションをトリガするか、または表示された製品２０００の各種属性をレンダリングして、オブジェクトの３Ｄ定位を容易にすることができる。ユーザがグラフィックツールとの相互作用を可能にする触覚デバイスによってカーソル２０６０を制御できる。
【００４９】
図３は、例えば、ユーザのワークステーションなどの、クライアントコンピュータシステムを示す。
【００５０】
クライアントコンピュータは、内部通信バス１０００に接続されたＣＰＵ（中央処理装置）１０１０を備え、ＲＡＭ（ランダムアクセスメモリ）１０７０も内部通信バスに接続されている。クライアントコンピュータは、内部通信バスに接続されたビデオランダムアクセスメモリ１１００と関連付けられたＧＰＵ（画像処理装置）１１１０をさらに備える。ビデオＲＡＭ１１００もフレームバッファとして当業者に周知である。大容量記憶デバイスコントローラ１０２０は、ハードドライブ１０３０などの大容量メモリデバイスへのアクセスを管理する。コンピュータプログラム命令およびデータを明示的に具体化するのに適した大容量メモリデバイスは、あらゆる形態の不揮発性メモリを含み、例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリなどの半導体メモリデバイスと、内部ハードディスクおよびリムーバブルディスクなどの磁気ディスクと、光磁気ディスクと、ＣＤ−ＲＯＭディスク１０４０とを含む。上述のいずれのメモリも、特別に設計されたＡＳＩＣ（特定用途向け集積回路）によって補完または組み込むことができる。ネットワークアダプタ１０５０は、ネットワーク１０６０へのアクセスを管理する。クライアントコンピュータは、カーソル制御デバイス、キーボードなどの触覚デバイス１０９０も含むことができる。カーソル制御デバイスをクライアントコンピュータで用いることによって、図２を参照して述べたように、ユーザがカーソルを画面１０８０の希望の場所に選択的に位置付けするのが可能になる。さらに、カーソル制御デバイスは、ユーザが各種コマンドを選択して、制御信号を入力できるようにする。カーソル制御デバイスは、制御信号をシステムに入力する多数の信号生成デバイスを含む。典型的には、カーソル制御デバイスをマウスにして、信号を生成するのにマウスのボタンを用いることができる。
【００５１】
コンピュータプログラムは、コンピュータによる命令を備えることができ、その命令は、上記のシステムに上記の方法を行わせる手段を備える。本発明を、例えば、デジタル電子回路に実装するか、またはコンピュータハードウェア、ファームウェア、ソフトウェアまたはそれらの組み合わせに実装することができる。本発明の装置を、プログラマブルプロセッサによって実行される機械可読記憶デバイスに明示的に具体化されるコンピュータプログラム製品に実装することができ、そして本発明の方法ステップを、入力データで操作して出力データを生成することによって本発明の機能を行う命令のプログラムを実行するプログラマブルプロセッサによって行うことができる。
【００５２】
プログラマブルシステムで実行可能である１または複数のコンピュータプログラムに本発明を有利に実装でき、プログラマブルシステムは、データ記憶システムにデータおよび命令を送受信するのに結合された少なくとも１つのプログラマブルプロセッサと、少なくとも１つの入力デバイスと、少なくとも１つの出力デバイスとを含む。アプリケーションプログラムを、必要に応じて、ハイレベルの手続き型言語またはオブジェクト指向プログラミング言語またはアセンブリ言語または機械語で実装でき、いずれの場合でも、それらの言語を、コンパイラ型言語またはインタープリタ型言語にすることができる。
【００５３】
図１を参照すると、三次元幾何学モデルオブジェクトを設計する方法が示されている。
【００５４】
ステップＳ１００からステップＳ１５０において、三次元モデルオブジェクトを設計する方法が実行される。三次元モデルオブジェクトは、ピクセル（画素）であるデータによって表現される。ピクセルは、併せて配列されて、三次元シーンのパターンを形成する。例えば、ラスタグラフィックス画像（ビットマップとも呼ばれる）は、一般にピクセルの二次元長方形グリッドを表現するデータ構造である。ラスタ画像は、画面に表示された画像とビット対ビットで対応する。
【００５５】
本発明において、三次元モデルオブジェクトは、ピクセルの仕様を包含し、その仕様によってピクセルを生成できる。三次元モデルオブジェクトの仕様により、三次元モデルオブジェクトを３Ｄシーンで表現することが可能である。重要なことは、３Ｄモデルオブジェクトのプロパティは、数式によって定義されないことである。
【００５６】
ステップＳ１００において、ユーザは、画面と相互作用する。ユーザ相互作用は、典型的には、画面の範囲内で行われる。これは、例えば、画面がセンシティブ（例えば、シングルタッチスクリーンまたはマルチタッチスクリーン）であれば、ユーザが画面上に圧力をかけて直接的に行われるか、または例えば、マウス、またはユーザがタッチペンを使用することができるタッチパッドなどの触覚デバイスを用いることによって間接的に行われうる。これを、画面上をレーザーでポイントするか、または画面と相互作用するその他のやり方によって行うことも可能である。タッチパッドまたはセンシティブ画面を通じてユーザ相互作用することによって、ユーザ相互作用がより実際に近くなる（即ち、設計の専門家がオブジェクトを紙面に設計する、従来の発想段階により似てくる）。３Ｄモデルオブジェクトを実際のように設計する方法は、設計の専門家がＣＡＤシステムを使用するのに役立つので、改善された点である。これによって設計が、よりし易くなる。
【００５７】
次に、ステップＳ１１０において、ストロークは、ユーザ相互作用に対応して定義される。画面とのユーザ相互作用によって、ユーザは、画面のいくつかのピクセルをアクティブにする。当業者に周知のように、これらのピクセルをストロークに変換できる。例えば、ユーザ相互作用が、ポインティングデバイスまたはタッチペンを通じて行われる場合、アクティブになったピクセルは、ポインティングデバイスまたはタッチペンの場所に対応する。そのアクティブになったピクセルを画面上で動的に表示できる。アクティブになったピクセルをストロークに変換できる。ストロークの定義は一般に、視覚的に連続したラインを形成する位置を画面上に配置することを意味する。それらの位置を実際に表示できる。この表示は、例えば、画面上でアクティブになった少なくとも一部の位置を追跡記録することによってなされうる。従って、ストロークは、ユーザがユーザ相互作用を通じてスケッチしたものから導かれるという意味で、ユーザ相互作用に対応する。従って、ストロークはいわば、ユーザによるユーザ相互作用を通じてスケッチされる。
【００５８】
図４を参照すると、ユーザ相互作用で得られたストローク４００が表されている。ストロークを、例えば、画面上でユーザに表示することもできるし、そうしないこともできる。
【００５９】
図１に戻って参照すると、ステップＳ１２０において、ストロークは、ポイントの集合に離散化される。ストロークの離散化は、例えば、「ストロークポイント」と呼ばれるいくつかのポイントにストロークを低減することによってストロークをサンプリングし、そしてポイントの集合またはストロークポイントの集合を形成することを意味する。ストロークが画面上の位置の集合であるので、したがって、ストロークの離散化は、位置の集合を単一のストロークポイントに低減する（即ち、数を減らす）ことを意味する。
【００６０】
図５を参照すると、図４で表されたストロークは、ポイントの集合、例えば、ポイント４０２に離散化される。
【００６１】
次に、図１のステップＳ１３０において、ポイントの集合は、三次元シーンの少なくとも１つのサポート上に映し出される。サポートは、映し出されたポイントを受信するのに適応した幾何学的エンティティ（可視または不可視）になりうる。サポートは、「ストロークポイント」に対する礎石(socle)として機能できる。サポートは、例えば、任意の種類のサーフェスになりうる。そのようなサーフェスを、例えば、プレーン画面などのプレーン（平面）か、または例えば、球面などのカーブしたサーフェス（曲面）か、またはその他の描画サーフェスにすることができる。実際、プレーン画面とは異なる描画サーフェスを、画面（画面の設計範囲）に組み込むことができる。言い換えれば、サポートは、三次元空間、例えば、３Ｄシーンの幾何学的エンティティである。いくつかのサポートは、３Ｄシーン中に存在しうることを理解されたい。それらのサポートは、ポイントの集合を映し出すことができる少なくとも１つのサーフェスを形成する。
【００６２】
ポイントの集合は、サポート（複数可）上で映し出される。ポイントの集合を映し出すことは、「ストロークポイント」がサポート上で位置を有するように（サポートがプレーン画面とは異なる場合）、「ストロークポイント」に変換を適用することを意味する。結果的に、ストロークの鮮明度(definition)がまるで実物のようになり、画面は、ここでは仮想的に、描画紙（サポートがプレーン画面の場合、仮想的に設計者と直角に面する紙）に対応する。その結果、ストロークが定義された画面である二次元プレーンと、そのサポートである三次元シーン中のサーフェスとの間でマッピングが作成される。
【００６３】
実際には、当業者に周知のように、ポイントの集合がサポート上に映し出される時にはユーザのビューポイントが考慮される。
【００６４】
図６では、プレーンサポート４１０が表されている。ストロークの離散化されたポイントが、このプレーンサポートに映し出されている。
【００６５】
次に、図１のステップＳ１４０において、映し出されたポイントの集合およびポイントの集合が映し出されたサポート(複数可)から３Ｄモデルオブジェクトが構築される。三次元モデルオブジェクトの構築は、三次元モデルオブジェクトの仕様が１つのファイルまたは複数のファイルに記憶されることを意味する。結果的に、構築された３Ｄモデルオブジェクトを次に使用するために、例えば、データベースに記憶できる。その３Ｄモデルオブジェクトは、映し出された「ストロークポイント」および「ストロークポイント」が映し出されたサポートで構築される。この構築は、映し出された「ストロークポイント」の位置が、そのサポートに関するデータと併せて記憶されることを伴う。結果的に、構築ステップは、映し出された「ストロークポイント」およびサポートの位置に関連するデータの計算が行われるステップである。有利なことに、３Ｄシーン中のサポートの座標のみを記憶すればよいので、三次元モデルを構築する速度が改善されて、三次元モデルオブジェクトを構築する（または計算する）のに必要な計算リソースが減る。
【００６６】
構築された３Ｄモデルオブジェクトに記憶された３Ｄシーン中のサポートの座標に戻って、サポートを見つけることができる。映し出された「ストロークポイント」の座標に戻ってサポートを見つけることもできる。つまり、共分散行列および固有ベクトルの計算を経てプレーンの平均（average plane）が計算される。構築されたモデルオブジェクトをサポートとして用いることも可能である。つまり、そのオブジェクトをポイントのクラウドとして用いる。構築された３Ｄモデルオブジェクト自体は、例えば、その構築された３Ｄモデルオブジェクトを形成するポイントのローカルテセレーションを経てサポートになる。
【００６７】
本発明に係る３Ｄモデルオブジェクトの設計は、どの幾何学曲線も計算する必要があるので、計算リソースのニーズを制限する。つまり実際、ジオメトリが生成される幾何学モデルオブジェクトは、大量の計算リソースが必要である。さらに、本発明に従って構築されるピクセルベースのジオメトリを記憶するのに必要なメモリ量の方が、幾何学モデルオブジェクトのメモリ量よりも少ない。さらに、本発明により、純粋な幾何学的アプローチでは（簡単に）得ることができない３Ｄモデルオブジェクトの生成ができるようになる。つまり実際、幾何学的表現は、計算リソースの消費を制限するために比較的単純にする必要がある。従って、本発明は、計算リソースが上記のユーザ相互作用をもはや制限しないように、画面とのユーザ相互作用の柔軟性を高める。さらなる利点は、構築される３Ｄモデルオブジェクトがユーザの設計意図を確実に遵守することである。実際、ユーザによって定義されるストロークにはインタープリテーションがあり、これによってユーザが設計したとおりに再生される。反対に、幾何学的環境において（つまり、幾何学モデルオブジェクトを用いる環境）、幾何学曲線は、ユーザの源設計意図を修正する特性を持つ。例えば、５度のベジエ曲線ではユーザが振動する形状を作成することができなくなるが、本発明に従って構築されたモデルオブジェクトでは可能である。従ってユーザは、手描き環境で作業しているように感じ、人間工学の点で改善される。結果として、より正確な３Ｄ描画（例えば、スケッチ）がより簡単に速く作成できる。
【００６８】
本方法のステップにおいて、３Ｄモデルオブジェクトが構築され、このことは、オブジェクトを表現するデータを、システム、例えば、ＣＡＤシステムによって引き出す(exploit)ことができることを意味する。従って、設計された３Ｄモデルオブジェクトを表示するために、三次元モデルオブジェクトの視覚化(ステップＳ１５０)を構築することができる。視覚化の構築は、３Ｄモデルオブジェクトのグラフィカルな表現が計算されることを意味する。特に、構築される視覚化は、ピクセルベースであり、その視覚化は、３Ｄモデルオブジェクトの表現が画像処理装置のみで計算されることに関与するので、ＣＰＵおよびメモリの計算リソースを維持する。
【００６９】
他の利点を以下で明らかにする。
【００７０】
視覚化の構築は、映し出されたポイントの集合の各ポイントに対する、少なくとも２つのオフセットポイントの計算を備えることができる（ステップＳ１５３）。映し出された「ストロークポイント」のオフセットポイントは、「ストロークポイント」が映し出されるサポート（複数可）上に位置付けされ、映し出された「ストロークポイント」から間隔が空けられた、ポイントである。オフセットポイントは、サポート上にあり、これは、そのポイントがサーフェスに属することを意味する。オフセットポイントは、映し出された「ストロークポイント」から間隔が空けられており、これは、そのオフセットポイントが「ストロークポイント」と区別されていることを意味する。
【００７１】
オフセットポイントの計算は、以下のとおりに実行されうる。最初に、ステップＳ１５１において、ポリライン（poly-line）が計算される。ポリラインは、サポート上に映し出されたポイントの集合のポイントをリンクする。ポリラインは、一続きのラインセグメントであり、１つのラインセグメントは、映し出された２つの「ストロークポイント」によって境界された線分である。ポリラインがサポート上のストロークの映し出し(projection)に近似するように、ラインセグメントがつながっていることを理解されたい。
【００７２】
図６を参照すると、映し出された「ストロークポイント」をつなげたポリライン４２０が表示されている。明らかなように、ポリラインは、サポート４１０上にある図５のストローク４００の映し出し（示されていない）に近似する。
【００７３】
図１に戻って参照すると、ステップＳ１５２において、サポート上に映し出された各「ストロークポイント」に対して、オフセットベクトルが計算される。オフセットベクトルを以下のように表記する。
【００７４】
【数３】
0006356378.tif 000004
【００７５】
（以下、各ベクトルを以下のように表記する。）
【００７６】
【数４】
0006356378.tif 000005
【００７７】
αは、ユーザによって、またはシステムのデフォルトによって選択することができる係数である。この係数は、オフセットポイントと、映し出された「ストロークポイント」との間の距離を部分的に決定し、その距離から、オフセットポイントが計算される。有利なことに、係数αは、ステップＳ１５６において計算された表現の厚みを増す、または減らすことができる。ｎ→は、映し出された「ストロークポイント」のサポートに垂直な単位ベクトルである。Ｌ→は、ポリラインを形成するポイントの集合の２つのポイントをリンクするラインによって定義されるベクトルである。ｎ→およびＬ→は、映し出された共通の「ストロークポイント」を原点として有する。ｎ→とＬ→との積は、ベクトル積である。
【００７８】
オフセットベクトルの計算は、図７でより明らかになる。映し出しステップＳ１３０の結果、各ポイント４０２、４０４、４０６は、サポート上に位置付けされて、そして法線ベクトルｎ→と関連付けられる。描かれたように、ポイント４０６とポイント４０４とをリンクするベクトルＬ→が決定されて、Ｌ→は、ポイント４０６を原点として有する。従ってポイント４０６に対するオフセットベクトルＯ→を、上記（式１）の関係式で計算することができる。同様に、ポイント４０４に対するオフセットベクトルＯ→は、ベクトルＬ→から計算されて、ベクトルＬ→は、ポイント４０４とポイント４０２、およびポイント４０４と法線ベクトルをリンクし、両方のベクトルＬ→は、ポイント４０４を原点として有する。両方とも、α＝１になるように、係数αが選択されている。
【００７９】
図１に戻って参照すると、以前に計算されたオフセットベクトルＯ→から、少なくとも２つのオフセットポイントが決定される。その決定は、２つのポイントが特定されるように、ベクトルのノルム
【００８０】
【数５】
0006356378.tif 000006
【００８１】
を計算することによって行われる。これは図８に示され、図８においては、オフセットベクトルのノルムからオフセットポイントが得られる。例えば、映し出された「ストロークポイント」４０６は、２つのオフセットポイント４０８と４０９を有する。
【００８２】
次に、そのオフセットポイントは、３Ｄシーンの少なくとも１つのサポート上に映し出される（ステップＳ１５４）。好適には、その映し出しは、サポートがプレーンでないか、または「ストロークポイント」を映し出す間にいくつかのサポートが関与する場合に行われる。映し出しは、オフセットポイントがサポート（複数可）上に存在する、つまり、オフセットポイントがサーフェスに属することを確実にする。「ストロークポイント」を任意の種類のサポート上に映し出すことが可能であるので、ユーザにとって設計能力が向上することを理解されたい。例えば、サポートは、しわが寄った紙に似たサーフェスを有することができ、このしわが寄ったサーフェス上でストロークを映し出すことが可能である。
【００８３】
次に、オフセットポイントからサーフェスが計算される（Ｓ１５５）。サーフェスは、計算されたオフセットポイントによって線引きされて、映し出されたポイントの集合（映し出された「ストロークポイント」とも呼ばれる）を備える。サーフェスを線引きすることは、オフセットポイントをリンクすることによって、サーフェスの境界が作成されることを意味する。オフセットポイントは、映し出された「ストロークポイント」と同様のやり方で互いにリンクされる。結果的に、２つのオフセットポイントは、それぞれの映し出された「ストロークポイント」がリンクされる場合のみリンクされる。さらに、ポリラインと同じ面にあるオフセットポイントのみをリンクすることができる。実際、ポリラインは、サーフェスの両面で定義されるように計算されるサーフェスを分割する（少なくとも部分的に分割する）。オフセットポイントがまとめてリンクされる間に２つの補完的ポリラインが構築されるが、ポリラインの片面にある第１の補完的ポリラインは、映し出された「ストロークポイント」を備え、そしてもう片面にある第２の補完的ポリラインも、映し出された「ストロークポイント」を備えることを理解されたい。
【００８４】
従ってオフセットポイントから計算されるサーフェスは、「ストロークポイント」が映し出されたサポート（複数可）を形成するサーフェスの選択された部分である。この計算されたサーフェスを配置したり曲げたりできる。結果的に、計算されたサーフェスは、サポート（複数可）の位相を反映し、計算されたサーフェスが３Ｄ空間でどのように変化するかを把握することが可能である。
【００８５】
実際には、計算されたサーフェスは、テセレートされる（ステップＳ１５５）。計算されたサーフェスは、位相モデルの境界であり、計算されたサーフェスの管理およびレンダリングを容易にするために、テセレーションによって近似される。テセレーションは、計算されたサーフェスを、細小で分析し易い２Ｄフェイスのピースから成るメッシュに分割する。典型的には、計算されたサーフェスは、オフセットポイントから生成された三角形にテセレートされる。サーフェスが三角分割されたとも言える。当業者に周知のように、メッシュジェネレータによってサーフェスを生成できる。テセレーションの結果は、図９に示している。
【００８６】
次に、ステップＳ１５６において、テセレートされたサーフェスの表現が計算される。このステップは、サーフェスのレンダリングにシェーダを適用していることを備える。シェーダは、例えば、画像処理装置（ＧＰＵ）などの、グラフィックスハードウェアに対する画面効果の計算による命令を備える小さなソフトウェアである。シェーダは、共通のジオメトリ変換およびピクセルシェーディング機能のみが可能であり、シェーダは、ピクセルの特性を記述する。実際には、シェーダは、テセレートされたサーフェスの２Ｄフェイスの各ピースに適用される。計算された表現を、ユーザによって、例えば、画面上で表示することができる。
【００８７】
図１０は、テセレートされたサーフェスを示し、三角形４３０のみがテセレートされたサーフェスに適用されたシェーダを有し、三角形４３０はグレーで表されている。
【００８８】
本方法のステップを、少なくとも１つの他のサポートで反復することができることを理解されたい。サポートをユーザが選択するか、または自動的に選択することができる。このように、オブジェクトの一部となるいくつかの３Ｄモデルオブジェクトの構築が可能である。言い換えれば、図１３から図１６に示すように、ユーザは、同じオブジェクトのいくつかの異なるビューを作成することができる。図１３は、３Ｄモデルオブジェクトの視覚化を示している。この３Ｄモデルオブジェクトは、ユーザによって描かれたオブジェクト（ここではカメラ）のスケッチである。このスケッチは、プレーンサポート上で構築されていて、ユーザが想像したカメラのビューポイントの１つの代表である。図１４は、ユーザが想像したカメラの別の視覚化が構築されたように、ユーザが選択した別のプレーンサポートであり、この視覚化は、カメラの別のビューポイントの代表である。同様に、図１５および図１６は、２つの異なるサポート上で構築された２つの３Ｄモデルオブジェクトの２つの視覚化を示し、カメラの他の２つのビューポイントを表している。このように、ユーザは、オブジェクトの形状をステップごとに（つまり、サポートの新しい選択ごとに）トレースして、いくつかのビューポイントに従って同じオブジェクトの視覚化をいくつか得ることができる。
【００８９】
実際には、ユーザは、３Ｄシーンのサポート（例えば、プレーン）を巧みに操作することができるので、サポートの巧みな各操作によって新しいサポートを作成することができる。サポートの巧みな操作とは、ユーザが３Ｄシーンのサポートを移動することを意味する。当業者に周知のように、この移動は、例えば、マウスなどの触覚デバイスでサポートを移動するようにして行われる。その巧みな操作の結果、新しいサポートが選択される。有利なことに、ユーザがサポートを巧みに操作する時、そのユーザが新しいビューポイントを認識できるように、さらに３Ｄモデルオブジェクトの視覚化を見ることができる。
【００９０】
さらに、本方法は、３Ｄモデルオブジェクトを同じサポート上で定義することを可能にする。これによって、ユーザは、ユーザが用紙で描いたように、いくつかのストロークをスケッチしながら、複雑なオブジェクト、例えば、カメラをトレースすることが可能になる。
【００９１】
有利なことに、ユーザによって定義されるストロークの視覚化は、曲面的であるが、そのような表現は通常、線形(linear)である。標準的なアプローチでは、ポリラインの集合は、オブジェクトを表現するが、本発明では、オブジェクトをテセレートすることによってシェーダを適用できるようにする（例えば、計算されたサーフェス上の各三角形にシェーダを適用できる）。結果的に、シェーダのおかげでいくつかの表示オプション（例えば、厚み、不透明感、等級別の不透明感などの視覚的レンダリング）を適用できる。
【００９２】
本方法のこのステップにおいて、ピクセルベースの表現による３Ｄモデルオブジェクトが構築されて、ユーザに表示される。言い換えれば、３Ｄピクセルスケッチが表示される。ユーザは、３Ｄモデルオブジェクトから得られた幾何学的３Ｄモデルオブジェクトで作業することが必要であろう。例えば、ユーザは、ＣＡＤモデルオブジェクト（幾何学モデルオブジェクトとしても知られる）を必要とするＣＡＤシステム内において、３Ｄモデルオブジェクトを変換することが必要であろう。
【００９３】
３Ｄ幾何学モデルオブジェクトを設計する本方法は、上記のように設計された３Ｄモデルオブジェクトのセットを提供するステップを備える。このステップは、図１のブロックＳ１４０とブロックＳ１６０とを結ぶ矢印によって表現されている。３Ｄモデルオブジェクトを提供することは、構築された３Ｄモデルオブジェクトにシステムがアクセスすることができることを意味する。典型的には、ＣＡＤシステムは、ピクセルベースのジオメトリモデルオブジェクト（つまり、３Ｄモデルオブジェクト）の仕様を備えるファイルにアクセスする。３Ｄモデルオブジェクトのセットをインスタンスとしてデータベースに記憶できる。
【００９４】
ひとたびシステムが３Ｄモデルオブジェクトのセットにアクセスすると、３Ｄモデルオブジェクトのポイントが抽出される（ステップＳ１６０）。この抽出されたポイントは、サポート上で映し出された「ストロークポイント」である。言い換えれば、ＣＡＤシステムは、サポート上に配置された各ポイントのそれぞれの位置にアクセスすることができる。以前に述べたように、「ストロークポイント」の座標に戻ってサポートを見つけることができる。
【００９５】
次に、Ｓ１７０において、抽出されたポイントから滑らかな幾何学曲線が計算される。滑らかな幾何学曲線は、画像ポイントのそれぞれのデカルト座標を閉区間の連続微分可能関数とするような、ユークリッド空間における閉区間の関数によって定義される。言い換えれば、滑らかなカーブは、ギャップや不連続とは無関係の、連続したカーブである（つまり、例えば、２つのラインの交点から得られるポイントにおいてスロープの急激な変化がないカーブである）。当業者に周知のように、滑らかなカーブの計算は、例えば、最小二乗法で行われる。結果として、ピクセルベースのジオメトリを有する３Ｄモデルオブジェクトのセットは、ジオメトリデータを有する少なくとも１つの３Ｄ幾何学モデルオブジェクトに変換される。有利なことに、非幾何学データは、特定のアルゴリズムを適用することができる幾何学データに変換される。これによって、３Ｄ幾何学モデルオブジェクトをゼロから作成するにはかなりの量の計算リソースが必要になるためにＣＡＤシステムではゼロから作成することができなかった３Ｄ幾何学モデルオブジェクトを作成することが可能になる。このように、本発明の方法に従った３Ｄ幾何学モデルオブジェクトの構築は、ユーザの設計能力を高めて、システムの計算リソースの消費を制限する。
【００９６】
ステップＳ１６０における３Ｄモデルオブジェクトのポイントの抽出から、ステップＳ１７０における幾何学曲線の計算への遷移を、モードに従って行うことができる。このモードとは、図１のＡで表記された３Ｄ幾何学モデルオブジェクトの自動抽出と呼ばれる第１モードと、図１のＭで表記された３Ｄ幾何学モデルオブジェクトの手動抽出と呼ばれる第２モードである。
【００９７】
自動抽出モードは、ＣＡＤシステムとユーザとの間で何ら相互作用せずに滑らかな幾何学曲線を計算する（Ｓ１７０）。これは、システムが滑らかなカーブを計算する間、ユーザが介入しないことを意味する。自動的に抽出された滑らかな幾何学曲線は、映し出されたすべての「ストロークポイント」に対する平均位置を表現するカーブである。有利なことに、自動モードは、ユーザが何ら動かなくても、ユーザの設計意図を遵守する滑らかなカーブをトレースできるようにする。このモードは、幾何学的３Ｄモデルオブジェクトを設計する本方法を行う速度全体を上げる。
【００９８】
このことを図１１に示す。３つのポリライン５０２、５０３、５０４が示されている。３つのポリラインは、３Ｄモデルオブジェクトのセットを提供するステップにおいて提供された３Ｄモデルオブジェクトの代表が同じサポート上で映し出された「ストロークポイント」から構築される。カーブ５００は、映し出された「ストロークポイント」から計算された滑らかなカーブを表す。つまり、幾何学的３Ｄモデルオブジェクト５００は、ポリライン５０２、５０３、および５０４の集合の平均カーブを表現する。
【００９９】
実際には、ポイントの抽出は、ポイントが映し出されるサポートに従って実行される。これは要するに、抽出されたポイントのフィルタリングが行われ、そのフィルタリングは、抽出されたポイントが映し出されるサポートに基づいていると言えよう。言い換えれば、同じサポート上で映し出された３Ｄモデルオブジェクトの「ストロークポイント」のサブセットが作成される。これによって、関連する３Ｄモデルオブジェクトを素早く見つけることが可能になる。
【０１００】
一般に、１つのサポートにつき１つの３Ｄモデルオブジェクトが存在し、サポートに従って３Ｄモデルオブジェクトが構築される。しかしながら、２以上のサポートに従って、３Ｄモデルオブジェクトを構築することもできる。さらに、２つの３Ｄモデルオブジェクトは、同じサポートを有することができ、例えば、ユーザは、同じサポートを二度選択する。
【０１０１】
さらに、ポリラインのそれぞれの形状に従って、ポイントの抽出を実行できる。映し出されたストロークポイントを記憶する構造のおかげで、この抽出を行うことができる。つまり、構築された各３Ｄモデルオブジェクトは、ストロークポイントおよび数個のストロークポイントによって特徴付けられる。従って、ポイントの抽出は、映し出されたストロークポイントを記憶する構造を読み込むことに等しい。これらのポリラインは、同じサポート上で映し出された「ストロークポイント」から構築されていて、３Ｄモデルオブジェクトのセットを提供するステップにおいて提供された、３Ｄモデルオブジェクトの代表である。従ってフィルタリングは、ポリラインの集合を形成する３Ｄモデルオブジェクトの映し出された「ストロークポイント」を選択するために実行され、そのフィルタリングは、ポリラインの形状に基づく。例えば、２つのポリラインは同じ形状であるが、第３のポリラインが全く異なる形状である場合、同じ形状である２つのポリラインを備える第１のサブセットが作成されて、そして第３のポリラインを備える第２のサブセットが作成される。結果的に、第１の滑らかな幾何学曲線は、第１のサブセットのポリラインの集合から計算されて、第２の滑らかな幾何学曲線は、第２のサブセットのポリラインの集合から計算される。この大胆なフィルタリングによって、スケッチ段階の間、ユーザの設計意図を遵守しながら滑らかな幾何学曲線をトレースすることが可能になる。このフィルタリングは、類似したいくつかのストロークをスケッチするユーザは、今後のステップにおいてもそのようなストロークを表現する新しい(clean)ラインをトレースする予定であるという仮定に依存する。
【０１０２】
次に、滑らかな幾何学曲線から三次元幾何学モデルオブジェクトが構築される（ステップ２５０）。これは、滑らかな幾何学曲線を定義するデータが、例えば、空間の相対位置を含むジオメトリデータなどのスムース表現が可能になるデータを備えることを意味する。言い換えれば、ＣＡＤシステムによって引き出すことができるファイルが作成される。さらに、そのファイルをいくつかのシステム、例えば、コンピュータネットワークを通じて接続されたシステム間で簡単に共有することができる。
【０１０３】
抽出のステップ（Ｓ１８０）と、計算のステップ（Ｓ１７０）と、構築のステップ（Ｓ２５０）は、提供された各三次元モデルオブジェクトに対して反復されることを理解されたい。これは要するに、提供された３Ｄモデルオブジェクトのすべてのポイントが抽出されて、そして抽出されたほとんどすべてのポイントが３Ｄ幾何学モデルオブジェクトを構築するのに用いられると言えよう。言い換えれば、設計者が作成した３Ｄモデルオブジェクトから３Ｄ幾何学モデルオブジェクトを自動的に得ることが可能である。言い換えれば、ユーザがオブジェクトをスケッチした後で、そのオブジェクトのトレースを自動的に得ることができる。その結果、「新しい」オブジェクトを得る（つまり、オブジェクトのトレース）速度が上がり、今後の設計操作のためにそのトレースをＣＡＤシステムに取り込むことができる。
【０１０４】
手動抽出モードは、システム（例えば、ＣＡＤシステム）とユーザとの間の相互作用に応じて滑らかな幾何学曲線を計算する（Ｓ１７０）。この計算は、システムが滑らかな幾何学曲線を計算する間、ユーザがシステム動作を用いることを意味する。従って滑らかな幾何学曲線は、ユーザとシステムとの相互作用を表すカーブである。言い換えれば、ユーザは、少なくとも２つの３Ｄモデルオブジェクトに代わることが予定されているカーブを描く。その結果、そのトレース段階は、ユーザの要求を満たす。
【０１０５】
実際には、ユーザは、ユーザ相互作用に対応するストロークが定義される（Ｓ２００）ように、画面との相互作用を行う（ステップＳ１９０）。これらのステップは、ステップＳ１００およびＳ１１０と同様である。
【０１０６】
次に、提供された三次元モデルオブジェクトのセットのうち三次元モデルオブジェクトの１つと、上記の三次元モデルオブジェクトの１つのうち少なくとも１つのサポートとは、抽出されたポイントにおいて読み出される。言い換えれば、３Ｄモデルオブジェクトが構築された３Ｄモデルオブジェクトおよびサポート（複数可）が読み出される。
【０１０７】
この読み出しは、カーソルから始まるピックパスから最も近い三次元モデルオブジェクトを読み出すことによって行うことができ、例えば、図２のカーソル２０６０を、ユーザがグラフィカルインタフェース内で相互作用ができるようにする触角デバイスによって制御できる。ユーザの相互作用を、例えば、画面がセンシティブ（例えば、シングルタッチスクリーンまたはマルチタッチスクリーン）であれば、ユーザが画面上に圧力をかけて直接行うか、または例えば、マウス、またはユーザがタッチペンを使用することができるタッチパッドなどの触覚デバイスを用いることによって間接的に行うことができることを理解されたい。この動作を、画面上をレーザーでポイントするか、または画面と相互作用するその他のやり方によって行うことも可能である。ユーザの相互作用が画面上で直接行われるイベントにおいて、ピックパスは、ユーザが圧力をかける画面の場所から始まる。
【０１０８】
最も近くにある３Ｄモデルオブジェクトは、画面との距離が最も短い３Ｄシーンの３Ｄモデルオブジェクトである。言い換えれば、最も近くにある３Ｄモデルオブジェクトは、ユーザによって最も近くにあると認識されたオブジェクトである。これは、ユーザのトレース操作を容易にする。
【０１０９】
ピックパスは、３Ｄモデルオブジェクトの提供されたセットと交差するパスである。ピックパスは、パスと交差したオブジェクトを拾い上げることができる、つまり、オブジェクトを個々に選択できることを意味する。言い換えれば、ピックパスは、画面の場所で計算された光線（近―遠光線）と３Ｄシーンの視覚化された３Ｄモデルオブジェクトとの交点からの結果である。
【０１１０】
読み出しは、検索および読み出し用に体系化されたデータの集積（例えば、データベース）に記憶された３Ｄモデルオブジェクトがクエリに応じて検索されて、クエリの結果として提供されることを意味する。
【０１１１】
実際には、ピックパスを、例えば、光線変換(ray casting)技術を用いて光線に実装できる（Ｓ２１０）。ピックパスは従って、光線と交差した３Ｄモデルオブジェクトの視覚化のリストを包含する。ピックパスの実装は、光線変換に限定されず、他の方法、例えば、光線ボリューム変換(volume ray casting)も想定することができる。光線変換は、光線と交差した第１のオブジェクト、つまり、３Ｄシーンの画面から最も近いオブジェクトを決定する、当業者に周知のソリューションである。光線は、カーソルから、またはタッチセンシティブな画面上にユーザが圧力をかける場所から変換される。カーソルから光線が変換されるイベントにおいて、その光線は連続して変換される。ユーザが画面との相互作用を行うイベント、例えば、ユーザが画面に触れるイベントにおいて、光線は、圧力がかかった画面の場所から変換される。
【０１１２】
カーソルから始まるピックパスから最も近いサポートを決定することによって、３Ｄモデルオブジェクトの提供されたセットの１つおよびそのサポート（複数可）の読み出しを行うことができ、このサポートで構築された３Ｄモデルオブジェクトも読み出されることを理解されたい。サポートが２以上の３Ｄモデルオブジェクトによって共有されるイベントにおいて、後でこれらの２以上のオブジェクトも読み出される。
【０１１３】
次に、ひとたび読み出しのステップが行われると（その上サポートが読み出されると）、ユーザ相互作用に対応するストロークは、ポイントの集合に離散化される（Ｓ２３０）。その後、ポイントの集合のポイントは、ステップＳ２２０において読み出されたサポート上に映し出される（Ｓ２４０）。これらのステップＳ２３０およびＳ２４０を、ステップＳ１２０およびＳ１３０と同様に行うことができることを理解されたい。
【０１１４】
次に、滑らかな幾何学曲線から三次元幾何学モデルオブジェクトが構築される（ステップ２５０）。これは、自動抽出モードと同様に行われる。
【０１１５】
手動抽出モードに従った抽出のステップ（Ｓ１８０）と、計算ステップ（Ｓ１７０）と、構築ステップとは、ユーザが画面との相互作用を行う間に行われることを理解されたい。実際に、これらのステップは、画面とのユーザ相互作用に応じてストロークが定義される間に、要するに、少なくとも２つの３Ｄモデルオブジェクトに代わることが予定されているカーブをユーザが描く間に反復される。
【０１１６】
図１２を参照すると、図１１の滑らかなカーブ５００から得られた３Ｄ幾何学モデルオブジェクトが示されている。ＣＡＤシステムで、この幾何学モデルオブジェクトを巧みに操作することができる。例えば、カーブを修正するのに制御ポイント５０６を用いることができる。
【０１１７】
本発明の好適実施形態を説明してきた。本発明の主旨および範囲から逸脱しない範囲で、さまざまな変更が行われてもよいことを理解されたい。従って、他の実装は、以下の特許請求の範囲内とする。例えば、サポートのサーフェスの一部の選択を構築するのに用いられるオフセットポイントの計算を、ユーザまたはシステムによって決定された距離（例えば、ピクセル数）で映し出された「ストロークポイント」によって形成されるポリラインから伸びた通常のストリップを決定することによって計算してもよい。
【符号の説明】
【０１１８】
４００  ストローク
４０２、４０４  ポイント
４０６  ストロークポイント
４０８、４０９  オフセットポイント
４１０  プレーンサポート
４２０  ポリライン
５００  カーブ（幾何学的３Ｄモデルオブジェクト）
５０２、５０３、５０４  ポリライン
５０６  制御ポイント
１０００  バス
１０１０  ＣＰＵ
１０２０  大容量記憶デバイスコントローラ
１０３０  ハードドライブ
１０４０  ＣＤ−ＲＯＭ
１０５０  ネットワークアダプタ
１０６０  ネットワーク
１０７０  ＲＡＭ
１０８０  ディスプレイ
１０９０  触覚デバイス
１１００  ビデオＲＡＭ
１１１０  ＧＰＵ
【図１】
0006356378.tif 000007
【図２】
0006356378.tif 000008
【図３】
0006356378.tif 000009
【図４】
0006356378.tif 000010
【図５】
0006356378.tif 000011
【図６】
0006356378.tif 000012
【図７】
0006356378.tif 000013
【図８】
0006356378.tif 000014
【図９】
0006356378.tif 000015
【図１０】
0006356378.tif 000016
【図１１】
0006356378.tif 000017
【図１２】
0006356378.tif 000018
【図１３】
0006356378.tif 000019
【図１４】
0006356378.tif 000020
【図１５】
0006356378.tif 000021
【図１６】
0006356378.tif 000022