(57)【要約】モデリング環境では、ユーザは、典型的には、特徴に関するいくつかの異なる結果を達成可能なツールを使用してモデルの特徴を操作することによって、特徴ベースのモデルと相互作用する。結果を達成するための一般化ツールを提供することによってではなく、達成されることになる結果に基づいて行われるべき操作を可能にする、インターフェースが、表示され得る。故に、インターフェース上に提示される選択肢の数は、ツールと関連付けられるが、所望の結果に直接適用可能ではない、無関係な選択肢を排除することによって、減少され得る。達成されることになる結果に関連する、標的化され、動的に生成される情報を提供する、動的ヘルプシステムが、提供され得る。さらに、警告が、モデル設計プロセスの間、リアルタイムでインターフェース上に表示され得る。
2015526779.tif 000002
【特許請求の範囲】
【請求項１】
命令を記憶する非一過性コンピュータ可読媒体であって、前記命令は、１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサに、
モデリング環境にアクセスすることであって、前記モデリング環境は、幾何学形状によって記述される少なくとも１つの特徴を提供し、前記特徴の幾何学形状の操作を定義する少なくとも１つのツールをサポートし、前記操作は、複数の異なる結果を達成するために適用可能であり、各個別の結果は、前記ツールを使用して、異なる方法で前記特徴に影響を及ぼし、前記ツールの異なる構成に対応する、ことと、
前記ツールによって達成されることになる結果の選択を受信することと、
前記選択された結果に従って、前記特徴の幾何学形状を操作することと
を行わせる、媒体。
【請求項２】
前記モデリング環境のインターフェース上に、前記複数の異なる結果のうちの少なくとも２つを表示するための命令をさらに記憶する、請求項１に記載の媒体。
【請求項３】
前記複数の異なる結果のうちの少なくとも２つは、前記複数の異なる結果のサブセットであり、前記サブセットは、結果選択の以前の履歴に基づいて選択される、請求項２に記載の媒体。
【請求項４】
前記ツールによって達成されることになる結果の選択を受信することに応答して、ディスプレイデバイス上にインターフェースを表示するための命令をさらに記憶し、前記インターフェースは、前記選択された結果に適用可能である前記ツールと関連付けられた１つ以上の選択肢を投入される、請求項１に記載の媒体。
【請求項５】
前記インターフェースに投入される前記選択肢は、前記ツールと関連付けられる前記選択肢のサブセットであり、前記ツールと関連付けられるが、前記サブセット内にない１つ以上の選択肢は、前記インターフェース内に存在しない、請求項４に記載の媒体。
【請求項６】
前記インターフェースは、データ構造内の特定のユーザまたはユーザ群と関連付けられる、請求項５に記載の媒体。
【請求項７】
前記モデリング環境を使用して、ユーザまたはユーザ群の識別を判定することと、
前記データ構造内の識別されたユーザまたはユーザ群と関連付けられるインターフェースを読み出することと、
前記インターフェースをディスプレイデバイス上に表示することと
を行うための命令をさらに記憶する、請求項６に記載の媒体。
【請求項８】
前記読み出されたインターフェースは、前記インターフェースを使用して以前に操作された特徴を再定義するための命令に応答して表示される、請求項７に記載の媒体。
【請求項９】
前記インターフェースを使用して、前記ユーザまたはユーザ群によって元々操作された特徴を識別することと、
前記インターフェースと前記特徴を関連付けることと、
第２のユーザまたは第２のユーザ群から、前記インターフェースと関連付けられた特徴と相互作用するための要求を受信することと、
前記特徴を元々操作するために使用されたインターフェースを前記第２のユーザまたは前記第２のユーザ群に表示することと
を行うための命令をさらに記憶する、請求項６に記載の媒体。
【請求項１０】
前記選択肢のうちの少なくとも１つは、前記インターフェースとの以前のユーザ相互作用に基づく値を事前に投入される、請求項４に記載の媒体。
【請求項１１】
前記特徴は、ディスプレイデバイス上に表示され、前記インターフェースは、前記ディスプレイデバイス上の前記特徴の場所に基づいて定義される場所において、前記ディスプレイデバイス上に表示される、請求項４に記載の媒体。
【請求項１２】
前記サブセットは、ユーザ定義サブセットである、請求項５に記載の媒体。
【請求項１３】
前記サブセットは、前記ツールによって達成されることになる結果の選択の受信時に、動的に判定される、請求項５に記載の媒体。
【請求項１４】
コンピュータ実装方法であって、前記方法は、
モデリング環境にアクセスすることであって、前記モデリング環境は、幾何学形状によって記述される少なくとも１つの特徴を提供し、前記特徴の幾何学形状の操作を定義する少なくとも１つのツールをサポートし、前記操作は、複数の異なる結果を達成するために適用可能であり、各個別の結果は、異なる方法で前記特徴に影響を及ぼし、前記ツールの異なる構成に対応する、ことと、
前記ツールによって達成されることになる結果の選択を受信することと、
前記選択された結果に従って、前記特徴の幾何学形状を操作することと
を含む、方法。
【請求項１５】
システムであって、前記システムは、
モデルを記憶するためのメモリであって、前記モデルは、幾何学形状によって記述される少なくとも１つの特徴を含む、メモリと、
プロセッサと
を備え、
前記プロセッサは、
前記特徴の幾何学形状の操作を定義する少なくとも１つのツールを提供ことであって、前記操作は、複数の異なる結果を達成するために適用可能であり、各個別の結果は、異なる方法で前記特徴に影響を及ぼす、ことと、
前記ツールによって達成されることになる結果の選択を受信することと、
前記選択された結果に従って、前記特徴の幾何学形状を操作することと
を行うように構成される、システム。
【請求項１６】
命令を記憶する非一過性コンピュータ可読媒体であって、前記命令は、１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサに、
モデリング環境と併用するためのツールの選択を受信することであって、前記ツールは、前記モデリング環境内の特徴の１つ以上の表面、エッジ、または頂点と相互作用し、前記１つ以上の表面、エッジ、または頂点を修正することが可能である、ことと、
前記ツールのための複数の構成可能選択肢を表示することであって、前記構成可能選択肢は、属性値を受入することが可能であり、前記構成可能選択肢のための一式の属性値は、前記ツールを使用する結果を定義する、ことと、
前記構成可能選択肢のうちの１つ以上を前記結果と関連する、または前記結果と無関連であるとしてフラグすることと、
前記結果の選択を受信することと、
前記結果と関連付けられたインターフェースを表示することであって、前記インターフェースは、前記結果と関連するとしてマークされた選択肢のみを表示し、または前記結果と無関連であるとしてマークされた選択肢を非表示にする、ことと
を行わせる、媒体。
【請求項１７】
命令を記憶する非一過性コンピュータ可読媒体であって、前記命令は、１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサに、
モデリング環境にアクセスすることであって、前記モデリング環境は、幾何学形状によって記述される少なくとも１つの特徴を提供し、前記特徴の幾何学形状の操作を定義する少なくとも１つのツールをサポートし、前記操作は、複数の異なる結果を達成するために適用可能であり、各個別の結果は、異なる方法で前記特徴に影響を及ぼし、前記ツールの異なる構成に対応する、ことと、
モデル設計プロセスの間、前記ツールによって達成されることになる結果の選択を受信することと、
前記結果の選択を受信することに応答して、インターフェースを表示することであって、前記インターフェースは、前記選択された結果に適用可能である前記ツールと関連付けられた選択肢を投入される、ことと、
前記選択肢のうちの１つのための属性値を受信することと、
前記モデル設計プロセスの間、前記受信された属性値を使用して操作が実施されることに先立って、前記属性値を使用して、前記特徴を評価することと、
前記属性値に関する問題を識別することと、
前記属性値に関する警告を表示することと
を行わせる、媒体。
【請求項１８】
前記警告は、前記インターフェース内の前記選択肢の場所に基づいて判定される場所に表示される、請求項１７に記載の媒体。
【請求項１９】
前記警告は、幾何学形状ルールの違反に関する、請求項１７に記載の媒体。
【請求項２０】
前記警告は、設計意図の違反に関する、請求項１７に記載の媒体。
【請求項２１】
前記警告は、欠測またはヌル値を示す、請求項１７に記載の媒体。
【請求項２２】
前記属性値は、ユーザによって提供される、請求項１７に記載の媒体。
【請求項２３】
命令を記憶する非一過性コンピュータ可読媒体であって、前記命令は、１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサに、
モデリング環境にアクセスすることであって、前記モデリング環境は、幾何学形状によって記述される少なくとも１つの特徴を提供し、前記特徴の幾何学形状の操作を定義する少なくとも１つのツールをサポートし、前記操作は、複数の異なる結果を達成するために適用可能であり、各個別の結果は、異なる方法で前記特徴に影響を及ぼし、前記ツールの異なる構成に対応する、ことと、
モデル設計プロセスの間、前記ツールによって達成されることになる結果の選択を受信することと、
前記結果の選択を受信することに応答して、ディスプレイデバイス上にインターフェースを表示することであって、前記インターフェースは、前記選択された結果に適用可能である前記ツールと関連付けられた選択肢を投入され、前記インターフェースは、ヘルプシステムへのエントリポイントを提供する、ことと、
前記エントリポイントから前記ヘルプシステムに入るための要求を受信することと、
前記エントリポイントに基づいて選択されるコンテンツとともにヘルプページを動的に生成することと、
前記動的に生成されたヘルプページを表示することと
を行わせる、媒体。
【請求項２４】
前記エントリポイントは、前記インターフェース内の前記選択肢のうちの１つと関連付けられ、前記ヘルプページは、前記選択肢のうちの１つに専用である、請求項２３に記載の媒体。
【請求項２５】
前記選択肢のうちの１つは、前記ユーザが現在相互作用している選択肢であり、前記コンテンツは、前記ヘルプシステムに入るための要求が前記ユーザが現在相互作用している選択肢に基づいて受信される時に動的に生成される、請求項２４に記載の媒体。
【請求項２６】
前記コンテンツは、前記ユーザが現在相互作用している選択肢と関連付けられた１つ以上のユーザ選択またはユーザ供給属性値に基づいて動的に生成される、請求項２５に記載の媒体。
【請求項２７】
前記ヘルプシステムは、ヘルプ情報を含み、前記コンテンツは、前記エントリポイントに関係する前記ヘルプ情報のサブセットである、請求項２３に記載の媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
（背景）
本出願は、２０１２年６月１日に出願された米国出願第６１／６５４，３４９号から優先権を主張する。上記文献は、その全体として参照することによって本明細書において援用される。
【０００２】
特徴ベースのモデリング環境は、１つ以上の特徴を使用してモデルを構築するために使用され得る、モデリング環境である。特徴は、幾何学形状によって定義されてもよく、２次元空間、３次元空間、または両方に関して定義されてもよい。特徴は、ユーザによる所望に応じて、形状または一連の形状を達成するために、組み合わせられる、伸長される、押出される、または別様に操作されてもよい。特徴ベースのモデリング環境の実施例として、コンピュータ支援設計（ＣＡＤ）およびコンピュータ支援製造（ＣＡＭ）環境が挙げられる。特徴ベースのモデリングは、製品を設計、モデル、試験、および／または視覚化するために使用され得る。
【０００３】
既存の特徴ベースのモデリング環境では、ユーザは、１つ以上のツールを使用して、モデルの特徴を操作し得る。ツールは、明確に定義された様式において、特徴と相互作用し、特徴の幾何学形状を操作するための一般化方法である。
【０００４】
ツールの一般的実施例の１つは、「押出」ツールである。押出ツールは、特徴の表面または表面の一部を選択し、２Ｄまたは３Ｄ空間において、表面を移動させるために使用され得る。本移動は、特徴の残りから離れるように表面を「引っ張り」、新しい表面を形成させることを伴い得る。代替として、表面は、特徴内に「押し込まれ」、特徴内にくぼみを作成（例えば、特徴内に「切れ目」を作成）してもよい。
【０００５】
ツールの別の実施例は、「伸長」ツールである。伸長ツールは、特徴の表面の外側エッジを修正するために使用され得る。１つ以上のエッジが、特徴の中心から離されると、伸長されたエッジが、特徴を拡大させ得る。対照的に、１つ以上のエッジが、特徴の中心に向かって移動されると、伸長されたエッジは、特徴を縮小させ得る。
【０００６】
上記から分かるように、単一ツールが、２つ以上の結果を達成するために使用されることができる。例えば、押出ツールは、表面を延在するために、または表面内にくぼみを作成するために使用されることができる。伸長ツールは、表面を拡大させるために、または表面を縮小させるために使用されることができる。
【０００７】
ツールは、ツールが特徴と相互作用する方法を記述する、いくつかの選択肢と関連付けられ得る。典型的には、ツールが選択されると、ツールと関連付けられた選択肢のそれぞれが、表示される。
【０００８】
例えば、新しい表面が、押出ツールを使用して、既存の表面から引っ張られると、いくつかの新しい表面が、図１Ａ−１Ｂに示されるように、作成され得る。図１Ａでは、表面１１０は、モデル内の特徴上に存在する。表面１１０は、押出ツールによる押出のために指定された部分１２０を含む。前述のように、押出ツールは、表面または表面の一部を「引っ張る」ために使用され得る。図１Ｂおよび１Ｃに示されるように、部分１２０は、表面１１０から離れるように引っ張られてもよい。そうすることによって、表面１３０および表面１４０を含む、いくつかの新しい表面が、作成され得る。部分１２０の押出の結果、新しい立方体１５０が、作成される。
【０００９】
新しい立方体１５０を作成するとき、ユーザが、新しい立方体が中空または中実であるかどうかを規定することが重要であり得る。すなわち、新しい立方体の内部が、材料で充填されるか、または新しい立方体の内部が、立方体が立方体の壁によってのみ定義されるように、空であるか？したがって、押出ツールは、「中実」立方体を作成するか、または「表面」立方体のみを作成するための選択肢を含んでもよい。
【００１０】
しかしながら、達成されることになる結果に応じて、特定のツールと関連付けられたいくつかの選択肢は、想定される特定の修正にあまりまたは全く重要性を有していない場合がある。例えば、図１Ａ−１Ｃにおけるように、新しい表面を作成するために、表面を「引っ張る」ことに加え、押出ツールはまた、図１Ｃに示されるように、表面に「切り込み」、くぼみを作成する（すなわち、部分１２０を引っ張るのではなく、部分１２０を図１Ａの表面１１０に押し込む）ために使用されることができる。
【００１１】
ユーザが、特徴に切り込みを入れるために、一貫して、押出ツールを使用する場合、ユーザは、ユーザが作成される幾何学形状が中実または中空であるかどうかを規定することを可能にする選択肢に関心がない可能性が高い。突出ではなく、くぼみが作成されるため、突出と比較して、切れ目の状況では、これらの選択肢は、無意味である。中実切れ目または中空切れ目を入れるかの選択肢は、したがって、無関係である。
【００１２】
前述の具体的ツール（例えば、「押出」および「伸長」）は、異なる特徴ベースのモデリング環境では、異なる名称が与えられてもよいことに留意されたい。本明細書全体を通して、具体的実施例は、ＰＴＣ（登録商標）（Ｎｅｅｄｈａｍ，  Ｍａｓｓａｃｈｕｓｅｔｔｓ）製のＣｒｅｏ（登録商標）製品群を参照して与えられ得る。当業者は、本明細書に説明される例示的実施形態が、特定の製品群に限定されず、任意の特徴ベースのモデリング環境に適用され得ることを認識するであろう。
【発明の概要】
【課題を解決するための手段】
【００１３】
（要約）
無関係な情報の表示は、モデル設計者の主要焦点が、設計環境自体ではなく、設計されるモデルに置かれる可能性が高い、特徴ベースのモデリング環境では、特に問題である。無関係な選択肢の提供は、モデルを設計するために設計者によって使用可能な画面上の「専有面積」を減少させる。
【００１４】
従来、設計環境が、ツールとユーザがそのツールを使用して達成することを所望し得る結果とを区別しないため、ツールと関連付けられた選択肢はそれぞれ、ツールのアクティブ化に応じて表示される。
【００１５】
本明細書に説明される例示的実施形態は、結果を達成するために使用されるべきツールとは対照的に、相互作用を通して達成されることになる所望の結果の観点から、特徴ベースのモデルとのユーザ相互作用を再定義する。前述の実施例を参照すると、ユーザは、設計環境に、中実突出を作成する、中空突出を作成する、または切れ目を作成するように命令することによって、モデルと相互作用し得る。これは、一般的押出ツールを選択し、結果として生じる形状を中実、中空、または切れ目にするための選択肢を規定しながら、表面を押し出すまたは引っ張るためのツールを使用することとは対照的である。
【００１６】
ツールの代わりに、所望の結果に焦点を当てることによって、ツールと関連付けられる（但し、その他の点では、達成されることになる結果にとって無関連またはあまり重要性を有していない）無関係な選択肢が、非表示にされ、改良されたより効率的モデリング環境をもたらすことができる。さらに、ツール主導パラダイムではなく、結果主導パラダイムの使用は、他の修正が設計環境を合理化することを可能にする。例えば、動的状況に応じたヘルプ情報が、ユーザが達成しようとしている結果に具体的に基づいて提示されることができる。さらに、属性値または複数の値が結果と関連付けられた１つ以上の選択肢のために規定されると、潜在的エラーが、リアルタイムまたは近リアルタイムで、モデル設計プロセスの間、識別されることができる。
【００１７】
そのようなエラーの１つは、ユーザが達成しようと意図する結果に基づいて識別され得る、設計意図の違反である。例えば、ユーザが中空突出を作成することを所望することを規定するが、代わりに、ユーザが切れ目またはくぼみをもたらす様式において、ユーザが表面を移動させる場合、環境は、ユーザに、ユーザの設計意図が提案される修正によって違反されることを直ちに通知することができる。
【００１８】
一例示的実施形態によると、特徴ベースのモデリング環境が、提供されてもよく、コンピューティングデバイスが、特徴ベースのモデリング環境と相互作用してもよい。特徴ベースのモデリング環境は、特徴の幾何学形状によって記述される少なくとも１つの特徴を有するモデルを含んでもよい。特徴ベースのモデリング環境は、特徴の幾何学形状の操作を定義する少なくとも１つのツールをサポーとしてもよい。操作は、複数の異なる結果を達成するために適用可能であって、各個別の結果は、異なる方法で特徴に影響を及ぼす。ツールによって達成されることになる結果の選択が、受信されてもよく、特徴の幾何学形状は、選択された結果に従って、操作されてもよい。
【００１９】
いくつかの実施形態では、複数の異なる結果のうちの少なくとも２つが、特徴ベースのモデリング環境のインターフェース上に表示されてもよい。複数の異なる結果のうちの少なくとも２つは、複数の異なる結果のサブセットであってもよく、サブセットは、結果選択の以前の履歴に基づいて選択される。例えば、サブセットは、結果の以前のユーザ選択および／または結果に関連する選択肢に基づいて選択されてもよい。いくつかの実施形態では、インターフェースは、ツールによって達成されることになる結果の選択の受信に応答して、表示されてもよく、インターフェースは、選択された結果に適用可能であるツールと関連付けられた選択肢を投入される。
【００２０】
いくつかの実施形態では、別のインターフェースが、ツールによって達成されることになる結果の選択に応じて、表示されてもよい。インターフェースは、結果に関連する選択肢を投入されてもよい。インターフェースに投入される選択肢は、ユーザ選択されてもよく、または、例えば、以前のユーザ相互作用に基づいて、プログラムで選択されてもよい。インターフェースに投入される選択肢は、ツールと関連付けられる選択肢のサブセットであってもよい。さらに、ツールと関連付けられるが、サブセット内にない１つ以上の選択肢は、インターフェース内に提示されてもよい。サブセットは、ユーザ定義サブセットであってもよく、またはプログラムで定義されてもよい。いくつかの実施形態では、サブセットは、ユーザがツールによって達成されることになる結果を選択する時に動的に生成されてもよい。
【００２１】
結果に関連する選択肢と関連付けられたインターフェースを表示するために、テンプレートは、どの選択肢が結果と関連するかを規定するように定義されてもよい。一実施形態では、特徴ベースのモデリング環境と併用するためのツールの選択が、受信されてもよい。ツールは、特徴ベースのモデリング環境内の特徴の１つ以上の表面、エッジ、または頂点と相互作用し、１つ以上の表面、エッジ、または頂点を修正可能であってもよい。ツールのための複数の構成可能選択肢が、表示されてもよい。構成可能選択肢は、属性値を受入可能であってもよく、構成可能選択肢のための一式の属性値は、ツールを使用する結果を定義する。構成可能選択肢のうちの１つ以上は、結果と関連する、または結果と無関連であるとして、フラグされてもよい。
【００２２】
続いて、結果は、可能性として考えられる選択として表示されてもよい。結果の選択の受信に応じて、結果と関連付けられたインターフェースが、表示されてもよい。インターフェースは、結果と関連するとしてマークされた選択肢のみを表示してもよい。代替として、または加えて、インターフェースは、結果と無関連であるとしてマークされたいかなる選択肢も非表示にしてもよい。
【００２３】
いくつかの実施形態では、インターフェースは、特定のユーザまたはユーザ群と関連付けられてもよい。故に、ユーザまたはユーザ群の識別が、判定されてもよく、ユーザまたはユーザ群が、続いて、モデリング環境に再び入ると、ユーザまたはユーザ群と関連付けられたインターフェースが、読み出され、表示されてもよい。
【００２４】
別の実施形態では、インターフェースは、インターフェースを使用して定義された特徴と関連付けられてもよい。例えば、インターフェースを使用してユーザまたはユーザ群によって元々操作された特徴が、識別されてもよい。インターフェースは、例えば、特徴とともにインターフェースの識別（または、その逆）を記憶することによって、特徴と関連付けられてもよい。インターフェースと関連付けられた特徴と相互作用するための命令は、インターフェースを使用して特徴を操作した元々のユーザまたはユーザ群と異なり得る、第２のユーザまたは第２のユーザ群から受信されてもよい。特徴と相互作用するための命令の結果、特徴を元々操作するために使用されたインターフェースが、第２のユーザまたは第２のユーザ群に表示されてもよい。このように、一貫したインターフェースが、ユーザベースで特定の特徴と関連付けられ、後続ユーザが、特徴が元々作成されるものと同一の方法で特徴を操作することを可能にしてもよい。
【００２５】
いくつかの実施形態では、特徴が、ディスプレイデバイス上に表示される場合、インターフェースは、ディスプレイデバイス上の特徴の場所に基づいて定義される場所において、ディスプレイデバイス上に表示されてもよい。故に、インターフェースは、インターフェースと関連付けられる、またはインターフェースによって操作される特徴に近接近して提供されてもよい。したがって、ユーザは、メニューを通して検索する必要や、または特徴を操作するために、該当特徴から注意を逸らす必要がない。
【００２６】
いくつかの実施形態では、モデルの選択肢への入力の有効性を判定するために、リアルタイムまたは近リアルタイムで動作する、評価および警告特徴が、提供されてもよい。故に、モデル設計プロセスの間、ツールによって達成されることになる結果の選択の受信に応じて、インターフェースが、結果の選択の受信に応答して、表示されてもよい。インターフェースは、選択された結果に適用可能であるツールと関連付けられた選択肢を投入されてもよい。選択肢のうちの１つのための属性値が、受信されてもよく、特徴は、属性値を使用して表されてもよい。属性値は、インターフェースを使用して、ユーザによって提供されてもよい。特徴は、１つ以上の結果選択肢のための１つ以上の属性値の受信に応じて、モデル設計プロセスの間、評価されてもよい。属性値に関する問題が、識別されてもよく、属性値に関する警告が、表示されてもよい。
【００２７】
いくつかの実施形態では、選択肢を含むインターフェースが、ディスプレイ上に表示される場合、警告がインターフェース内の選択肢の場所に基づいて判定される場所に表示されてもよい。このように、警告は、選択肢に近接近して表示され、ユーザが警告源を識別するのを補助してもよい。
【００２８】
特徴は、異なるエラー条件に対して評価されてもよい。例えば、一実施形態では、警告は、幾何学形状ルールの違反に関連してもよい。別の実施形態では、警告は、設計意図の違反に関連してもよい。さらに別の実施形態では、警告は、欠測またはヌル値を示してもよい。
【００２９】
いくつかの実施形態では、動的状況に応じたヘルプページが、モデル設計プロセスの間、ツールによって達成されることになる結果の選択の受信後、表示されてもよい。これらの実施形態では、インターフェースは、結果の選択の受信に応答して、表示されてもよい。インターフェースは、選択された結果に適用可能であるツールと関連付けられた選択肢を投入されてもよい。
【００３０】
インターフェースは、ヘルプシステムへのエントリポイントを提供してもよい。例えば、インターフェース自体が、エントリポイントであってもよい。代替として、インターフェース内の前述の選択肢のうちの１つが、エントリポイントとしての役割を果たしてもよい。エントリポイントは、インターフェース上に提供される「？」ボタン等、明示的エントリポイントであってもよい。代替として、エントリポイントは、暗示的であってもよく、例えば、インターフェースと相互作用するユーザは、「Ｆ１」キーを押下してもよく、インターフェースは、そのヘルプが要求される時のユーザのインターフェースとの相互作用の結果、エントリポイントとして認識されてもよい。これらの方法および他の類似方法では、エントリポイントからヘルプシステムに入るための要求が、受信されてもよい。
【００３１】
エントリポイントからヘルプシステムに入るための要求の受信に応じて、ヘルプページは、エントリポイントに基づいて選択されるコンテンツとともに動的に生成されてもよい。例えば、エントリポイントが、インターフェースである場合、ヘルプページは、インターフェースのみに関係する具体的情報を含んでもよい。エントリポイントが、インターフェース内の選択肢である場合、ヘルプページは、選択肢専用であってもよい。選択肢は、ユーザが現在相互作用している選択肢（属性値を選択肢フィールドに打ち込むこと等によって）であってもよく、コンテンツは、ヘルプシステムに入るための要求がユーザが現在相互作用している選択肢に基づいて受信される時に、動的に生成されてもよい。コンテンツはさらに、ユーザが現在相互作用している選択肢と関連付けられた１つ以上のユーザ選択またはユーザ供給属性値に基づいて、動的に生成されてもよい。
【００３２】
ヘルプページのためのコンテンツを生成するために、ヘルプシステムが、提供されてもよい。ヘルプシステムは、ヘルプ情報を含んでもよい。ユーザへの表示のために選択されたコンテンツは、ヘルプシステム内のヘルプ情報のサブセットであってもよく、エントリポイントに基づいて動的に選択されてもよい。
【００３３】
このように、標的ヘルプコンテンツは、ユーザの着目エリアに最も適用可能であるように動的に生成されてもよい。
【００３４】
本発明は、非一過性コンピュータ可読媒体上に記憶される命令として具現化されてもよい。命令は、１つ以上のプロセッサに、本発明の例示的実施形態を実施させるために、１つ以上のプロセッサによって実行されてもよい。本発明はまた、コンピュータによって実行可能な方法として具現化されてもよい。さらに、本発明は、例示的実施形態を実施するための命令を実行するためのメモリおよびプロセッサを含む、サーバまたはコンピューティングデバイス等のシステムとして具現化されてもよい。
【図面の簡単な説明】
【００３５】
【図１】図１Ａは、押出のためにマークされた表面１１０の部分１２０を伴う、特徴の従来の表面１１０を描写する。図１Ｂは、部分１２０が押出された後の図１Ａの表面１１０を描写する。図１Ｃは、部分１２０が図１Ｂと反対方向に押出された後の図１Ａの表面１１０を描写する。
【図２】図２は、例示的特徴ベースのモデル設計環境を描写する。
【図３】図３は、例示的押出ツール３００によって達成される結果のためのテンプレート３５０を示す、例示的インターフェースを描写する。
【図４】図４は、インターフェース４００内の例示的選択肢４０２を描写する。
【図５】図５は、選択肢５１０、５２０が、どのように例示的インターフェース内に再配列され得るかを示す。
【図６】図６は、第１のインターフェースから第２のインターフェースに引き継がれる選択肢６１０を描写する。
【図７】図７は、インターフェース７１０内の例示的選択肢値７２０の存続を示す。
【図８】図８は、例示的実施形態による、診断ツールを採用する例示的インターフェース８００を描写する。
【図９】図９は、本明細書に説明される例示的実施形態による、特徴を操作するための例示的方法を描写する流れ図である。
【図１０】図１０は、ユーザが新しいユーザセッションを作成するとき、または特徴が異なるユーザによってアクセスされるとき、インターフェースとユーザおよび／または特徴を関連付け、インターフェースを呼び出すための例示的方法を描写する流れ図である。
【図１１】図１１は、例示的動的に生成される状況に応じたヘルプツール１１１０を描写する。
【図１２】図１２は、本明細書に説明される例示的実施形態による、動的に生成される状況に応じたヘルプツールを表示するための例示的方法を描写する流れ図である。
【図１３】図１３は、本明細書に説明される例示的実施形態と併用するために好適な例示的コンピューティングデバイス８００を描写する。
【図１４】図１４は、本明細書に説明される例示的実施形態と併用するために好適な例示的ネットワーク実装を描写する。
【発明を実施するための形態】
【００３６】
（詳細な説明）
例示的実施形態は、特徴ベースのモデリング環境において、特徴と相互作用するための結果バイアスアプローチを提供する。特徴ベースのモデリング環境では、ユーザは、典型的には、特徴に関するいくつかの異なる結果を達成可能なツールを使用してモデルの特徴を操作することによって、特徴ベースのモデルと相互作用する。結果を達成するための一般化ツールを提供するのではなく、達成されることになる結果に基づいて行われるべき操作を可能にする、インターフェースが、表示されてもよい。故に、インターフェース上に提示される選択肢の数は、ツールと関連付けられるが、所望の結果に直接適用可能ではない、無関係な選択肢を排除することによって、減少され得る。達成されることになる結果に関連する、標的化され、動的に生成される情報を提供する、動的ヘルプシステムが、提供されてもよい。さらに、特徴有効性警告が、モデル特徴作成プロセスの間、リアルタイムでインターフェース内に表示されてもよい。
【００３７】
これらの実施形態は、従来の特徴ベースのモデリング環境に優るいくつかの利点を提供する。例えば、ユーザは、複数の異なる結果を達成することができるツールに基づいてではなく、ユーザが得ることを所望する結果に基づいて特徴を操作するため、無関係なツール選択肢は、通常ビューから排除される、または非表示にされることができる。これは、モデリング環境に対して、実際の着目対象対モデルのためのディスプレイの専有面積を節約する。さらに、ユーザが環境のツールメニュー内のツール選択肢を探すために費やす時間も、減少され得る。ツールおよびツール選択肢と関連付けられたインターフェースは、ユーザの結果に対する着目選択肢により焦点が当てられ得るため、インターフェースは、該当ツールに近接近して表示され、モデリング環境の他の部分（画面上部のリボンまたはファイルメニュー等）にポインタを移動させる必要なく、ユーザの焦点をモデルおよび／または特徴に維持し得る。故に、モデリングプロセスは、本明細書に説明される例示的実施形態が、視覚的走査、周縁の注意逸散物、およびマウス移動を低減させ得るため、よりすっきりとし、かつ効率的に作られる。故に、ユーザの視覚的および知能的焦点は、目の前にある標的およびタスクに維持され得る。
【００３８】
加えて、モデリング環境は、ツールではなく、結果に焦点が当てられるため、モデリング環境は、動的状況に応じたヘルプが提供され得、かつリアルタイム警告およびエラーが生成され得るように、合理化され得る。モデリング環境はまた、結果指向テンプレートのため、よりカスタマイズ可能に作られる。例えば、ユーザまたはアドミニストレータは、ユーザの仕事のタイプまたは企業のスタイル基準に適合されるようにテンプレートを作成してもよく、これは、ユーザ効率を改善するのに役立ち得る。
【００３９】
例示的特徴ベースのモデリング環境２００は、図２に描写される。特徴ベースのモデリング環境２００では、ユーザは、モデルの幾何学形状を定義することによって、モデル２１０を構築してもよい。モデルを構成する幾何学形状は、エッジ２３０等の「エッジ」によって境界され得る、表面２２０等の一式の「表面」から成る。
【００４０】
本明細書で使用されるように、「表面」は、１つ以上のエッジによって境界される、モデル内の特定の幾何学形状によって定義される面である。特徴は、１つ以上の表面または一式の表面を有してもよい。表面は、平坦、湾曲、または角があってもよい。例えば、立方体は、６つの平坦表面を有する。円筒形は、平坦円形上部および底部表面と、単一湾曲側面表面とを有する。円錐形は、平坦円形底部表面と、円錐形の上部に先端が来る丸い先細の角のある側面表面とを有する。
【００４１】
本明細書で使用されるように、「エッジ」は、表面の外側境界を表す。例えば、立方体の正面表面は、サイズが等しく、相互に直角に配向される、４つのエッジを有する。
【００４２】
本明細書で使用されるように、「頂点」は、２つ以上のエッジが交わる点である。立方体では、頂点は、各角に位置し、３つのエッジが交わる。
【００４３】
幾何学形状は、種々の形状またはサイズをとり得る構成要素、すなわち、特徴２４０等のモデルの「特徴」を表し得る。表面、エッジ、および頂点の接続された集合が、特徴ベースのモデルが構築され得る独立の原子的構成要素と見なされ得る、モデル内の特徴を定義し得る。
【００４４】
特徴ベースのモデリング環境は、概して、特徴の幾何学形状を操作するための「ツール」を提供する。「ツール」は、明確に定義された方法で特徴の幾何学形状を操作する、環境内のユーティリティである。ツールの実施例として、２次元または３次元空間内で表面または表面の一部を移動させる、「押出」ツール２５０が挙げられる。別のツールは、選択されたエッジおよび頂点を規定された方向に移動させ、表面または特徴全体を拡大または縮小させる、「伸長」ツールである。
【００４５】
ツールは、具体的「結果」を提供することができる。結果は、ツールが特定の方法で特徴に適用されるとき、特徴に生じることを記述する。
【００４６】
例えば、押出ツールは、表面または表面の一部を押し出す、または突き出し、表面または表面の一部を移動させ、それによって、その表面が一部である特徴を再成形する、一般的機能を有する。しかしながら、表面が押出ツールによって操作される方法に応じて、異なる結果が、達成され得る。本発明の例示的実施形態によると、ユーザは、特徴を操作するために、結果バイアスツール選択肢が提示され、それと相互作用する。図３は、押出ツール３００を使用して達成される結果の実施例を描写する。
【００４７】
例えば、その表面が一部である特徴から特徴を押し出すことによって、突出が、作成され得る。突出が充填される（例えば、表面の元々の場所と表面の新しい場所との間の空間が、元々の表面を構成する材料等の材料で充填される）場合、「中実突出」３１０が、押出ツールを使用する結果となる。一方、突出が中空である（すなわち、突出によって定義される新しい表面のみ、それらの間に何も伴わずに作成されるように、表面の元々の場所と表面の新しい場所との間の空間が空である）場合、「表面突出」３２０が、押出ツールを使用する結果となる。依然として、さらに、表面が、その表面が一部である特徴内に押し込まれる場合、くぼみまたは「切れ目」３３０が、作成され得る。側面表面が角度付けられるように、表面が他の表面に対してサイズが増減される場合、「テーパ」表面３４０が、作成され得る。
【００４８】
換言すると、ツールは、特徴と相互作用するための方法（例えば、「特徴の表面を移動させる」）を記述する。結果は、そのツールを使用する結果、特徴がどのように変化されるかを記述する（例えば、「特徴上に中実充填突出を作成し、突出の境界が表面の移動によって定義される」）。
【００４９】
一実施形態では、ツールは、種々の構成可能設定を変更することによって構成可能であってもよい。構成可能設定のための値の特定の組み合わせは、ツールによって達成される結果を定義し得る。結果を定義する値の組み合わせは、ユーザが、モデル環境において結果を選択することによって、テンプレートと関連付けられた結果を達成することの所望を示すとき、インターフェースを構築するために使用され得る、「結果テンプレート」として記憶されてもよい。
【００５０】
例えば、押出ツールは、表面の移動方向を記述する、構成可能選択肢を有してもよい（例えば、正値は、表面が特徴から離れるように移動され、突出を作成することを示し、負値は、表面が特徴内に移動され、切れ目を作成することを示す）。別の構成可能選択肢は、押出ツールによって作成される突出が中空または充填されるべきであるかどうかを選択するための選択肢を提供し得る。
【００５１】
ユーザが、ツールのためのあらゆる可能性として考えられる構成選択肢の値を提供する必要はない。前述のように、いくつかの構成選択肢は、特定の結果に無関連であり得る。一実施例は、突出が中実または押出ツールの「切れ目」結果のために中空であるかどうかを規定するための選択肢であろう。
【００５２】
いくつかの事例では、特定の構成選択肢は、結果に関連し得るが、ユーザは、選択肢が今後構成され得るように、選択肢をブランクのままにすることを所望し得る。例えば、押出ツールは、特徴内にまたはそこから、どれだけ表面が移動されるべきかを規定する、「深度」構成選択肢と関連付けられ得る。そのような選択肢は、ユーザがその時に作業している特定の特徴またはモデルに依存する可能性が高く、したがって、所望の結果が選択される時に規定されるようにされてもよい。いくつかの実施形態では、ユーザは、構成選択肢のために使用されるべきデフォルト値を規定することができ、これは、結果が選択されるときに後に変更されることができる。
【００５３】
図３に示されるように、定義された結果はそれぞれ、テンプレート３５０として記憶されてもよい。テンプレート３５０は、複数の可能性として考えられる結果からユールによって達成される特定の結果を記述し、各ツールは、複数のテンプレート３５０と関連付けられてもよい。
【００５４】
テンプレート３５０は、ユーザの以前の履歴に基づいて、優先順位が付けられてもよい。例えば、ユーザが、頻繁に、中実テンプレート３１０を使用する（例えば、ユーザが、少なくとも所定の回数、あるいは他のテンプレートと比較して所定の率または比率で、中実テンプレートを使用する）場合、中実テンプレート３１０は、お気に入りテンプレート３６０といて記憶されてもよい。代替として、ユーザは、特定のテンプレート３５０をそのお気に入りテンプレート３６０の１つとして手動で指定してもよい。お気に入りテンプレート３６０は、ユーザが相互作用し得る結果のリスト内に優先的に表示されてもよい。
【００５５】
テンプレート３５０はまた、ユーザが、ツールによって達成されることになる特定の結果を記述するテンプレート３５０を作成し得るように、ユーザ定義可能であってもよい。この目的のために、ツールは、ツール構成を使用して構成可能であってもよく、ユーザは、どのツール構成が結果を達成するために使用されるべきかをテンプレート３５０内に規定してもよい。ユーザは、特定の所望の結果に対応するデフォルトツール構成を設定するために、ウィザードまたはインターフェースが提示されてもよい。
【００５６】
テンプレート３５０の選択に応じて、ユーザは、図４に示される例示的インターフェース４００、４１０等のインターフェースが提示されてもよい。例えば、インターフェース４１０は、２つの構成選択肢４０２およびスライダ４０４を含む。デフォルトによって、インターフェース４００は、特定の結果に関連する構成選択肢のみを表示してもよい。他の選択肢は、スライダ４０４をドラッグし、インターフェース４００のサイズを増加させ、付加的選択肢４０２を表すことによって、アクセスされてもよい。スライダ４０４の反対方向への移動は（インターフェース４００のサイズを減少させる）は、より少ない選択肢４０２を表示させ得る。特定の結果に関連する構成選択肢は、プログラムで判定されてもよく（例えば、中実／中空設定を規定するための選択肢は、切れ目結果に無関連であることが事前にプログラムされてもよい）、またはテンプレートが作成されるときに（または、テンプレートを修正することによって後に）ユーザによって規定されてもよい。
【００５７】
例えば、構成選択肢は、「必須／オプション」属性等の属性と関連付けられてもよい。そのような属性を「必須」に設定することは、属性と関連付けられた選択肢が、インターフェース４１０に示されなければならず、非表示にすることができない（例えば、スライダ４０４を移動させることによって）ことを示し得る。別の実施例では、選択肢は、「表示／非表示」属性と関連付けられてもよい。属性を「表示」に設定することは、属性と関連付けられた選択肢が、デフォルトによって表示されるが、スライダ４０４を移動することによって、非表示にされてもよいことを示し得る。代替として、属性を「非表示」に設定することは、属性と関連付けられた選択肢が、デフォルトによって表示されないが、スライダ４０４を移動させることによって表示されてもよいことを示し得る。
【００５８】
いくつかの実施形態では、選択肢は、選択肢がインターフェース４００内に現れる順序を制御するために、相互に対してランク付けされてもよい。例えば、選択肢はそれぞれ、インターフェース４００内のその順序を定義する、絶対ランク付けと関連付けられてもよい。代替として、図５に示されるように、選択肢の相対的順序付けが、規定されてもよい。例えば、図５では、ユーザは、「封鎖端」選択肢５１０を「テーパ」選択肢５２０の下方の「封鎖端」選択肢５１０の位置にドラッグする。
【００５９】
さらに、あるテンプレート内に規定される選択肢はさらに、他の関連テンプレートにおいて再使用されてもよい。例えば、図６は、２つの関連ツール、すなわち、中心軸の周囲において特徴内に穴を作成する「穴」ツールおよびその軸を定義するための「軸」ツールを用いて、結果を達成するためのインターフェース６００、６０２を示す。図６に示されるように、穴／軸の中心を定義する「オフセット」選択肢６１０が、あるテンプレート内で定義される場合、オフセット選択肢６１０は、両インターフェース６００、６０２を通して持ち越され得る。
【００６０】
他の実施形態では、図７に示されるように、選択された選択肢は、ユーザが適用するための異なる結果またはツールを選択するときでも、存続するように作られてもよい。例えば、図７に示されるように、ユーザは、押出ツールに基づく結果を選択している。故に、インターフェース７１０が表示され、ユーザは、深度選択肢７２０内に「２４４．８４」の値を打ち込んでいる。本時点において、ユーザが、構成される結果を特徴に適用せずに、新しいツール（掃引ツール７３０等）を選択する場合、新しいインターフェースが表示され、ユーザが、掃引選択肢を構成することを可能にしてもよい。しかしながら、深度選択肢７２０のために規定される値を含む、インターフェース７１０において作られた選択肢は、ユーザが、後にインターフェース７１０に戻ることができるように、一時的に記憶されてもよい。故に、ユーザは、ユーザが特徴の元々想定される操作の完了に先立って、異なる結果を追求することを決定する場合、各値を再度打ち込む必要はない。
【００６１】
ユーザが、インターフェース内の選択肢のために、１つ以上の値を規定すると、診断ツールが、エラーが修正から生じるかどうかを判定するために、その値を使用して、特徴または提案される修正を評価してもよい。診断ツールは、モデル設計プロセスの間、提案される操作が実施される前に、リアルタイムまたは近リアルタイムで動作してもよい。例えば、図８は、動作時のそのような診断ツールを示す。
【００６２】
インターフェース８００では、ユーザは、「セクション」選択肢８１０および「深度」選択肢８３０のための規定された値を有する。いかなる値も、「軸」選択肢８２０のために規定されていない（または、代替として、ヌル値が、「軸」選択肢８２０のために規定されている）。
【００６３】
診断ツールは、規定および非規定選択肢に関して、特徴の評価を試みてもよい。診断ツールは、何らかのエラーが、選択肢を適用することから生じる修正から生じるか、または生じる可能性があるかどうかを判定してもよい。診断ツールは、選択肢のための値が打ち込まれるにつれて、または値が打ち込まれた後、評価を行ってもよく、ユーザは、値が完了したことの何らかの指示表示を提供する（「改行」または「タブ」キーを押下すること等によって）。代替として、診断ツールは、ユーザがインターフェース８００内の各選択肢のための値を規定するまで、または値がインターフェース８００内の最後の選択肢のために規定されるまで、待機してもよい。さらに、診断ツールは、例えば、指定されたキー（例えば、「Ｆ５」キー）を押下することによって、ユーザによって手動で呼び出されてもよく、その時点で、診断ツールは、インターフェース８００内に規定された任意の選択肢値を評価するであろう。
【００６４】
例えば、提案される修正を実施する試みにおいて、診断ツールは、セクション選択肢８１０のために規定された「スケッチ２」値が有効値であることを判定してもよい。故に、ポジティブインジケータ８１２が、セクション選択肢８１０の隣に表示される。
【００６５】
しかしながら、該当特徴が、規定される軸の周囲で旋回させられ得るかどうかを評価することを試みるとき、診断ツールは、軸が軸選択肢８１０内に規定されていないことに気付き得る。軸が、要求されるフィールドである場合、診断ツールは、警告信号８２２を軸選択肢８２０の隣に置いてもよい。さらに、説明ウィンドウ８２４が、表示され、警告信号８２２に関する詳細を提供してもよい。説明ウィンドウは、再チェック選択肢８２６を提供し、新しい値が軸選択肢８２０のために打ち込まれると、ユーザが特徴を再評価することを可能にしてもよい。
【００６６】
診断ツールは、値（すなわち、「０．００」）が深度選択肢８２０のために存在することを識別してもよい。故に、警告は、提示されない。しかしながら、診断ツールは、０．００の深度で回転を行うことを試みるとき、値が有効深度範囲外であるため、回転が失敗するであろうことを認識し得る。故に、エラーインジケータ８３２が、深度選択肢８３０に近接して提示されてもよい。診断ツールは、図９に関してより詳細に論じられる。
【００６７】
前述の実施形態は、図９に描写される流れ図に示されるように、特徴ベースのモデリング環境内で動作し得る。
【００６８】
ステップ９１０では、コンピューティングデバイスが、特徴ベースのモデリング環境と相互作用してもよい。特徴ベースのモデリング環境は、幾何学形状によって記述される少なくとも１つの特徴を有するモデルを含んでもよい。
【００６９】
ステップ９２０では、特徴ベースのモデリング環境は、モデルの特徴を操作するために使用され得る、１つ以上の結果を表示してもよい。例えば、特徴ベースのモデリング環境は、特徴の幾何学形状の操作を定義する少なくとも１つのツールをサポートしてもよい。操作は、複数の異なる結果を達成するために適用であってもよく、各個別の結果は、異なる方法で特徴に影響を及ぼす。
【００７０】
結果は、例えば、選択肢のために規定された属性を伴う、または伴わない、選択肢の集合であってもよく、選択肢は、ツールと関連付けられる。一実施形態では、結果は、結果と関連するとして１つ以上の選択肢および結果と無関連であるとして１つ以上の選択肢をフラグするテンプレートによって定義されてもよい。選択肢は、モデリング環境に事前にプログラムされてもよく、ユーザまたは複数のユーザによって定義および／または修正されるカスタマイズ可能テンプレートであってもよく、あるいは１人以上のユーザのツールとの相互作用の過去の履歴に基づいてプログラムで判定されてもよい。例えば、ユーザが、所定の閾値回数を上回って、ツール選択肢を規定することによって、結果を達成するためにツールを使用する場合、テンプレートは、プログラムで定義され、ユーザによる将来的使用のために、その結果を記憶してもよい。
【００７１】
いくつかの実施形態では、複数の異なる結果のうちの少なくとも２つが、特徴ベースのモデリング環境のインターフェース上に表示されてもよい。少なくとも２つの結果は、ツールによって利用可能にされる複数の異なる結果のサブセットであってもよい。サブセットは、結果選択の以前の履歴に基づいて選択されてもよい。例えば、サブセットは、結果の以前のユーザ選択および／または結果に関連する選択肢に基づいて選択されてもよい。
【００７２】
ステップ９３０では、特徴ベースのモデリング環境は、結果の選択を受信してもよい。例えば、ユーザは、モデリング環境内のメニューまたはリボンから所望の結果を選択してもよい。
【００７３】
ステップ９４０では、特徴ベースのモデリング環境は、選択肢インターフェース内に結果に関する１つ以上の選択肢を表示してもよい。いくつかの実施形態では、選択肢インターフェースは、ツールによって達成されることになる結果の選択に応じて、表示されてもよい。インターフェースは、結果に関連する選択肢を投入されてもよい。インターフェースに投入される選択肢は、ユーザ選択されてもよく、または、例えば、以前のユーザ相互作用に基づいて、プログラムで選択されてもよい。
【００７４】
いくつかの実施形態では、選択肢インターフェースは、ツールによって達成されることになる結果の選択の受信に応答して、表示されてもよい。インターフェースは、選択された結果に適用可能であるツールと関連付けられた選択肢を投入されてもよい。
【００７５】
インターフェースに投入される選択肢は、ツールと関連付けられる、またはそれと併用するために利用可能な選択肢の全てのサブセットであってもよい。さらに、ツールと関連付けられるが、サブセット内にない１つ以上の選択肢は、インターフェース内に提示されなくてもよい。サブセットは、ユーザ定義サブセットであってもよく、またはプログラムで定義されてもよい。
【００７６】
いくつかの実施形態では、サブセットは、ユーザがツールによって達成されることになる結果を選択する時に、動的に生成されてもよい。例えば、ユーザがツールを選択すると、モデル環境は、ツールを用いて頻繁に達成される「一般に使用される結果」のリストを調べてもよい。この目的のために、モデリング環境は、ツールと併用するために使用される選択肢を記録し、選択肢が選択される頻度を識別してもよい。モデル環境は、次いで、ツールの頻繁に使用される構成（例えば、所定の回数または所定の率を上回る使用された構成）に対応する結果のリストを提供してもよい。
【００７７】
いくつかの実施形態では、特徴がディスプレイデバイス上に表示される場合、インターフェースは、ディスプレイデバイス上の特徴の場所に基づいて定義される場所において、ディスプレイデバイス上に表示されてもよい。例えば、選択肢インターフェースは、特徴の所定の距離内またはディスプレイデバイス上の特徴の位置に基づいて計算される所定の場所に表示されてもよい。故に、インターフェースは、インターフェースと関連付けられる、またはインターフェースによって操作される特徴に近接近して提供されてもよい。したがって、ユーザは、メニューを通して検索する必要や、または特徴を操作するために、該当特徴から注意を逸らす必要がない。
【００７８】
ステップ９５０では、特徴ベースのモデリング環境は、ステップ９４０に表示される選択肢のうちの１つのための属性値を受信してもよい。例えば、選択肢インターフェースは、チェックボックス、テキストボックス、または選択肢のための属性値を受信するための他の入力機構を提供してもよい。入力機構は、結果のためにテンプレートによって判定されたデフォルト値が事前に記入されてもよい。
【００７９】
ステップ９６０では、特徴ベースのモデリング環境は、診断ツールを使用してステップ９５０において受信された属性値を使用して、特徴を評価してもよい。診断ツールは、リアルタイムまたは近リアルタイムで動作し、モデルの選択肢への入力の有効性を判定してもよい。故に、選択肢のための属性値の受信に応じて、診断ツールは、特徴または規定された選択肢を有する結果を使用して達成可能な特徴の提案される修正を評価してもよい。評価は、モデル設計プロセスの間、規定された値を使用して修正を実施するのに先立って、生じてもよい。
【００８０】
例えば、評価は、ユーザが、入力機構に属性値を打ち込むのにつれて生じてもよい。代替として、ユーザが選択肢のための属性値の打込を完了後、ユーザは、例えば、「改行」または「タブ」キーを押下することによって、入力が完了したことを信号伝達してもよい。別の実施形態では、診断ツールは、所定の数の値が異なる選択肢のために規定されるまで、待機してもよい。さらに、診断ツールは、インターフェース内で可視である全選択肢に値が供給されるまで、待機してもよい。別の実施形態では、診断ツールは、インターフェース内にリスト化された最後の選択肢に値が供給されるまで、待機してもよい。いずれの場合も、値を供給する代わり、ユーザは、単に、値を供給せずに、選択肢を飛ばして進んでもよい（例えば、選択肢のための入力機構内にある間、「タブ」キーを押打し、値を規定せずに、次の選択肢に移動する）。
【００８１】
さらに、診断ツールは、選択肢のための値（ヌル値を含む）の受信に応じて、自動的に呼び出される必要はない。例えば、ボタンまたは他の機構が、提供され、ユーザが供給される選択肢を評価する準備ができると、ユーザが診断ツールを手動で呼び出すことを可能にしてもよい。ユーザは、例えば、一連のチェックボックスを使用して、または診断のための選択肢を別様に選択することによって、ある選択肢のみ評価されることを規定してもよい。
【００８２】
ステップ９７０では、診断ツールは、ステップ９６０において受信された属性値が、存在する、有効である、および／または容認可能（すなわち、「ＯＫ」）であるかどうかを判定してもよい。評価は、入力属性値と選択肢のための容認可能値の既知の範囲を比較することを伴ってもよい。評価はまた、値が選択肢のために規定されており、値が適切なタイプであることを確実にするようにチェックしてもよい。
【００８３】
特徴は、異なるエラー条件に対して評価されてもよい。例えば、一実施形態では、警告は、ユーザがエッジによって境界されない表面を定義しようとするとき等、幾何学形状ルールの違反に関連してもよい。さらに、幾何学形状ルールの違反は、ユーザが特徴によって定義された幾何学形状の操作のための容認可能範囲外にある値を規定することを伴ってもよい。別の実施形態では、警告は、欠測またはヌル値を示してもよい。
【００８４】
さらに別の実施形態では、警告は、設計意図の違反に関連してもよい。ユーザの設計意図は、ユーザが達成を試みていることをユーザが示す結果に基づいて、モデリング環境によって判定されてもよい。例えば、ユーザが押出ツールを用いて中実突出を作成しようとしていることをユーザが示すが、ユーザが、表面を特徴内に移動させる値を規定する（それによって、くぼみまたは切れ目を作成する）場合、モデリング環境は、ユーザの設計意図が違反されていることを判定してもよい。モデリング環境は、規定される値（例えば、表面の深度に対する負値）が、その他の点では、押出ツールのために有効値であるが、設計意図が違反されていることを判定してもよい。換言すると、ユーザの設計意図は、ユーザが達成を所望する結果によって定義され、モデリング環境は、選択肢インターフェース内の選択肢のために規定された属性値を比較し、規定された値が規定された結果と一貫するかどうか判定してもよい。それら２つが一貫しない場合、モデリング環境は、設計意図が違反されていると判定する。
【００８５】
ステップ９７０において、属性値が、存在しない、有効ではない、および／または容認可能（すなわち、「ＯＫ」）ではないと判定される場合、ステップ９８０において、診断ツールは、警告メッセージまたは失敗指示表示を表示してもよい。いくつかの実施形態では、選択肢を含むインターフェースが、ディスプレイ上に表示される場合、警告は、インターフェース内の選択肢の場所に基づいて判定される場所に表示されてもよい。例えば、選択肢が、ある場所に存在する場合、警告は、選択肢の隣に、所定の距離内に、および／または選択肢から離れた所定の方向に、表示されてもよい。このように、警告は、ユーザが警告源を識別するのを補助するために、選択肢に近接近して表示されてもよい。
【００８６】
判定されるステップ９７０において、属性値が、存在する、有効である、および／または容認可能（すなわち、「ＯＫ」）であると判定される場合、処理は、ステップ９９０に進み、選択された結果によって定義される操作が実施されてもよい。
【００８７】
処理は、次いで、ステップ９５０に戻ってもよく、さらなる属性値が、供給され、続いて、評価されてもよい。代替として、さらなる属性値が、供給されないままである場合、処理は、ステップ９３０に戻ってもよく、ユーザは、モデルに供給されるべき新しい結果を選択してもよい。
【００８８】
別の実施形態では、前述のインターフェース（例えば、結果インターフェースおよび選択肢インターフェース）は、インターフェースが一貫して表示されるように、ユーザ、ユーザ群、または特徴と関連付けられてもよい。故に、インターフェースと相互作用するユーザまたはユーザ群の識別が、判定されてもよく、ユーザまたはユーザ群が、続いて、モデリング環境に再度入ると、ユーザまたはユーザ群と関連付けられたインターフェースが、読み出され、表示されてもよい。
【００８９】
さらに、インターフェースは、インターフェースを使用して定義された特徴と関連付けられてもよい。例えば、インターフェースを使用してユーザまたはユーザ群によって元々操作された特徴が、識別されてもよい。インターフェースは、例えば、特徴とともにインターフェースの識別（または、その逆）を記憶することによって、特徴と関連付けられてもよい。インターフェースと関連付けられた特徴と相互作用するための命令が、インターフェースを使用して特徴を操作した元々のユーザまたはユーザ群と異なり得る、第２のユーザまたは第２のユーザ群から受信されてもよい。特徴と相互作用するための命令の結果、特徴を元々操作するために使用されたインターフェースは、第２のユーザまたは第２のユーザ群に表示されてもよい。
【００９０】
このように、一貫したインターフェースが、ユーザベースで特定の特徴と関連付けられ、後続ユーザが、特徴が元々作成された同一の方法で特徴を操作することを可能にしてもよい。
【００９１】
例えば、図１０は、インターフェースとユーザおよび／または特徴を関連付け、ユーザが新しいユーザセッションを作成するとき、または特徴が異なるユーザによってアクセスされるとき、インターフェースを呼び出すための例示的方法を描写する流れ図である。
【００９２】
ステップ１０１０では、モデリング環境は、モデリング環境にアクセスするユーザまたはユーザ群を識別してもよい。例えば、ユーザまたはユーザ群は、モデリング環境にログインし、ユーザセッションを作成してもよい。モデリング環境は、ユーザによって提出されたパスワード等の識別の証拠を要求してもよい。
【００９３】
ステップ１０２０では、モデリング環境は、特徴を操作するためにユーザまたはユーザ群によって使用されているインターフェース（例えば、前述の選択肢インターフェースおよび／または結果インターフェース）とユーザまたはユーザ群を関連付けてもよい。ステップ１０３０では、インターフェースはまた、操作された特徴と関連付けられてもよい。
【００９４】
関連付けは、論理的関連付けであってもよい。例えば、インターフェースは、識別番号等の識別子によって識別されてもよい。ユーザ、ユーザ群、および／または特徴も同様に、識別子と関連付けられてもよい。インターフェースの識別子は、テーブル、アレイ、またはリンクされたリスト等のデータ構造内に、ユーザ、ユーザ群、および／または特徴の識別子とともに記憶されてもよい。
【００９５】
ステップ１０４０では、モデル環境は、ユーザセッションの終了を検出してもよい。例えば、ユーザまたはユーザ群は、モデル環境からログアウトする、モデル環境を閉じる、またはモデル環境内のモデル上に関する作業が中止したことを示してもよい（例えば、モデルと関連付けられたファイルを閉じる、またはそれを記憶することによって）。
【００９６】
ステップ１０５０では、モデル環境は、新しいユーザセッションを検出してもよい。新しいユーザセッションは、ステップ１０１０において前述のユーザセッション同様に開始されてもよい。
【００９７】
ステップ１０６０では、モデル環境は、新しいユーザセッションと関連付けられたユーザまたはユーザ群が、ステップ１０１０において識別されたユーザまたはユーザ群と同一であるかどうか判定してもよい。一実施形態では、モデル環境は、前述のデータ構造をチェックし、任意のインターフェースが、現在ログイン中のユーザおよび／またはユーザが現在操作中の任意のモデルと関連付けられているかどうか判定してもよい。
【００９８】
ユーザまたはユーザ群が、ステップ１０６０において同一であると判定されない場合、モデル環境は、ステップ１０７０において、ユーザまたはユーザ群が、ステップ１０３０においてインターフェースと関連付けられた同一の特徴の操作を試みているかどうか判定してもよい。これは、ユーザが異なる場合でも、同一のモデルが異なるユーザによって操作されているとき、一貫したインターフェースを表示することが依然として望ましくあり得るためである。したがって、ユーザが、そうでなければ、データ構造内に記憶されたインターフェースを使用する権限を有さないであろう場合でも（例えば、ユーザがインターフェースを作成しなかったため、またはユーザが彼らと関連付けられた他のインターフェースを有するため）、ユーザは、インターフェースと関連付けられた特徴を操作するために、一時的に、インターフェースを使用する権限を有してもよい。いくつかの実施形態では、選択肢は、ユーザが、常時、オブジェクトを作成するために使用されるインターフェースが見えるか、または常時、その独自のユーザベースのインターフェースが見えるように、本機能性を許可または禁止するための選択肢が、提供されてもよい。
【００９９】
ユーザまたはユーザ群が、異なり、ユーザまたはユーザ群が、以前に定義された特徴の修正を試みていない場合、ステップ１０７２において、モデル環境は、ステップ１０２０においてユーザ／ユーザ群と関連付けられたインターフェースと異なるインターフェースを表示してもよい。例えば、モデル環境は、新しいインターフェースを生成してもよく、またはステップ１０５０において新しいユーザセッションを開始した具体的ユーザまたはユーザ群と関連付けられたインターフェースを読み出してもよい。
【０１００】
一方、ステップ１０６０において識別されたユーザが、ステップ１０１０において識別されたユーザと一致する場合、またはユーザが、ステップ１０３０においてインターフェースと関連付けられた同一の特徴の操作を試みている場合、ステップ１０８０において、特徴を再定義するための要求が、受信されてもよい。本状況では、ユーザおよび／または特徴と関連付けられたインターフェースが、ステップ１０９０において読み出され、表示されてもよい。表示されるインターフェースは、特徴を操作するために、ユーザによって使用されてもよい。
【０１０１】
前述のように、本発明の例示的実施形態と関連付けられたインターフェースは、無関係な選択肢が検討から除去され、それによって、モデル設計プロセスを合理化することを可能にする。同様に、ユーザが達成を試みている結果は、既知であるため、状況に応じたヘルプツールもまた、提供されてもよい。例えば、図１１は、例示的動的に生成される状況に応じたヘルプツール１１１０を描写する。
【０１０２】
ヘルプツール１１００は、選択肢インターフェース内の選択肢１１０２のうちの１つから、および／または結果インターフェースを通して、入ってもよい。ヘルプツールは、「エントリポイント」の使用によって状況に応じて作られる。例えば、ユーザが、ヘルプツール１１００の使用を要求すると、モデル環境は、ヘルプツール１１００が要求された場所、および／またはヘルプツール１００が要求された時にユーザが相互作用していた結果または選択肢を覚えておく。
【０１０３】
ヘルプツールのためのエントリポイントに基づいて、モデル環境は、ユーザが達成を試みていた結果を判定可能であってもよく、さらに、ユーザが結果を達成するための試みにおいて既に規定した１つ以上の選択肢を識別可能であってもよい。ヘルプツール１１００は、本情報が提供されてもよく、本情報を使用して、ユーザが達成を試みている結果および／またはユーザが現在規定している（または、例えば、診断ツールによる選択肢のうちの１つに関して、問題が存在すると判定される場合、既に規定した）選択肢に関連するヘルプページ１１１０を動的に生成してもよい。
【０１０４】
図１１のヘルプツール１１００は、図１２の流れ図に描写されるような方法に従って表示されてもよい。
【０１０５】
ステップ１２１０では、モデル環境は、モデルと相互作用してもよい。ステップ１２２０では、モデリング環境は、特徴を修正するためにモデル内の特徴に適用され得る、１つ以上の結果を表示してもよい。ステップ１２１０および１２２０は、概して、図９のステップ９１０および９２０に対応する。簡潔にするために、ステップ１２１０および１２２０の詳細は、ここでは繰り返されない。
【０１０６】
ステップ１２３０では、潜在的結果を表示しながら、モデリング環境は、ヘルプ要求を受信してもよい。モデル環境は、ヘルプシステムへの「エントリポイント」として相互作用されていた特定の結果にフラグしてもよく、処理は、ステップ１２６０に進んでもよい。
【０１０７】
エントリポイントは、結果のうちの１つの近傍に提供される「？」ボタン等の明示的エントリポイントであってもよい。代替として、エントリポイントは、暗示的であってもよい。例えば、結果と相互作用するユーザ（例えば、結果のうちの１つにマウスポインタを合わせることによって）は、「Ｆ１」キーを押下してもよく、ヘルプが要求される時に相互作用されている結果が、エントリポイントとして認識されてもよい。これらの方法および他の類似方法では、エントリポイントからヘルプシステムに入るための要求が、受信されてもよい。
【０１０８】
代替として、結果がステップ１２２０において表示されている間、ヘルプ要求が受信されない場合、モデル環境は、ステップ１２４０において、所望の結果の選択を受信し、ステップ１２５０において、インターフェース内で選択された結果に関する選択肢を表示してもよい。ステップ１２４０および１２５０は、概して、それぞれ、図９のステップ９３０および９４０に対応する。簡潔にするために、ステップ１２４０および１２５０の詳細は、ここでは繰り返されない。
【０１０９】
明示的ヘルプ要求は、ヘルプシステムに入るために生成される必要はないことを理解されたい。例えば、ヘルプページは、特定のツールの選択またはアクティブ化等のユーザ作用に応答して生成されてもよい。
【０１１０】
ユーザが、ステップ１２５０に表示される選択肢のうちの１つと相互作用している間、ヘルプ要求が、受信されてもよい。この場合、モデル環境は、ユーザがヘルプシステムへのエントリポイントと相互作用していた特定の選択肢をフラグしてもよく、処理は、ステップ１２６０に進んでもよい。
【０１１１】
ステップ１２６０では、モデル環境は、ステップ１２３０またはステップ１２５０のいずれかにおいてフラグされたエントリポイントを識別する。モデル環境は、次いで、ヘルプページを動的に生成してもよく、そのコンテンツは、エントリポイントに依存する。
【０１１２】
エントリポイントからヘルプシステムに入るための要求の受信に応じて、ヘルプページは、エントリポイントに基づいて選択されるコンテンツとともに動的に生成されてもよい。例えば、エントリポイントが、インターフェースである場合、ヘルプページは、インターフェースのみに関する具体的情報を含んでもよい。エントリポイントが、インターフェース内の選択肢である場合、ヘルプページは、選択肢専用であってもよい。選択肢は、ユーザが現在相互作用している選択肢（選択肢フィールドに属性値を打ち込む等によって）であってもよく、コンテンツは、ヘルプシステムに入るための要求が、ユーザが現在相互作用している選択肢に基づいて受信される時に、動的に生成されてもよい。
【０１１３】
ヘルプページのためのコンテンツを生成するために、ヘルプ情報が、提供されてもよい。ユーザへの表示のために選択されたコンテンツは、ヘルプシステム内のヘルプ情報のサブセットであってもよく、エントリポイントに基づいて動的に選択されてもよい。例えば、ヘルプシステムは、いくつかの異なる結果を達成することができるツールに関する情報を含んでもよい。エントリポイントが、ツールに適用可能な結果であると判定される場合、直接、該当結果に対処するヘルプシステムのサブセットのみ、表示されてもよい。
【０１１４】
ヘルプ情報は、特定のエントリポイントに関連するとマークされた個別のセクションを含んでもよい。例えば、ヘルプセクションは、キーワードによってマークされてもよい。ヘルプ要求がヘルプシステムによって受け取られると、ヘルプシステムは、エントリポイントに関連するキーワードに関してヘルプ情報を検索して、ヘルプコンテンツをユーザに返してもよい。エントリポイントに関連するキーワードは、エントリポイントの名称（例えば、ユーザがヘルプシステムに入るツールまたは選択肢の名称）に基づいてもよく、またはエントリポイントと関連付けられた他のワード（例えば、同意語、事前にプログラムされた関連ワード等）であってもよい。ユーザは、ヘルプ情報の特定の部分を特定のテンプレートに関連するとして手動でフラグしてもよく、その部分は、他の可能性の中でもとりわけ、その部分の識別子をテンプレートとともに記憶することによって、またはヘルプ情報内にテンプレートを識別するためのキーワードを割り当てることによって、テンプレートと関連付けられてもよい。
【０１１５】
コンテンツはさらに、ユーザが現在相互作用している選択肢と関連付けられた１つ以上のユーザ選択またはユーザ供給属性値に基づいて、動的に生成されてもよい。例えば、ユーザが、達成されることになる結果を規定し、選択肢のための１つ以上の属性値を既に提供している場合、ヘルプシステムは、ヘルプ情報のある部分が、ユーザの目標に関連または無関連であることを判定してもよい。例えば、ヘルプシステムが、特定の結果における選択肢に供給される属性値がユーザの設計意図に違反するであろうことを判定する場合、ヘルプシステムは、設計意図に関連するヘルプコンテンツを提供してもよい。
【０１１６】
ヘルプシステムは、診断ツールとインターフェースをとり、ある割り当てられた値がエラーまたは警告を生じさせるかどうかを判定してもよい。例えば、ヘルプシステムが、選択肢に供給されるある値が選択肢の容認可能範囲外であるため、診断ツールがエラーを発生させるであろうと判定する場合、ヘルプシステムは、容認可能範囲に関する情報を提供してもよい。
【０１１７】
このように、標的化されたヘルプコンテンツは、ユーザの着目エリアまたはユーザが達成を試みている結果に最も適用可能であるように、動的に生成されてもよい。
【０１１８】
前述の作用のうちの１つ以上は、論理を処理することによって実行可能なコンピュータ実行可能命令として具現化されてもよい。コンピュータ実行可能命令は、１つ以上の非一過性コンピュータ可読媒体上に記憶されてもよい。前述の作用のうちの１つ以上は、好適にプログラムされた電子デバイス内で行われてもよい。図１３は、本明細書に開示される１つ以上の作用と併用するために好適であり得る、電子デバイス１３００の実施例を描写する。
【０１１９】
電子デバイス１３００は、コンピュータ、ワークステーション、サーバ、ネットワークコンピュータ、量子コンピュータ、光学コンピュータ、インターネット器具、モバイルデバイス、ポケベル、タブレットコンピュータ、スマートセンサ、特定用途向け処理デバイス等を含むが、それらに限定されない、多くの形態をとってもよい。
【０１２０】
電子デバイス１３００は、例証であって、他の形態をとってもよい。例えば、電子デバイス１３００の代替実装は、図１３の構成より少ない構成要素、より多い構成要素、または異なる構成の構成要素を有してもよい。図１３および／または本明細書に説明される他の図の構成要素は、ハードウェアベースの論理、ソフトウェアベースの論理、および／またはハードウェアおよびソフトウェアベースの論理の組み合わせである論理（例えば、ハイブリッド論理）を使用して実装されてもよい。したがって、図６および／または他の図に図示される構成要素は、具体的タイプの論理に限定されない。
【０１２１】
プロセッサ１３０２は、ハードウェアベースの論理またはハードウェアベースの論理およびソフトウェアの組み合わせを含み、電子デバイス１３００の代わりに、命令を実行してもよい。プロセッサ１３０２は、例えば、メモリ１３０４内に含有される情報を解釈、実行、および／または別様に処理し得る、論理を含んでもよい。情報は、本発明の１つ以上の実施形態を実装し得る、コンピュータ実行可能命令および／またはデータを含んでもよい。プロセッサ１３０２は、種々の同種または異種ハードウェアを備えてもよい。ハードウェアは、例えば、１つ以上のプロセッサ、マイクロプロセッサ、フィールドプログラマブルゲートアレイ（ＦＰＧＡＳ）、特定用途向け命令セットプロセッサ（ＡＳＩＰ）、特定用途向け集積回路（ＡＳＩＣ）、複合プログラマブル論理デバイス（ＣＰＬＤ）、グラフィック処理ユニット（ＧＰＵ）、または情報を解釈、実行、操作、および／または別様に処理し得る、他のタイプの処理論理のある組み合わせを含んでもよい。プロセッサは、単一コアまたは複数のコア１３０３を含んでもよい。さらに、プロセッサ１３０２は、システムオンチップ（ＳｏＣ）またはシステムインパッケージ（ＳｉＰ）を含んでもよい。プロセッサ１３０２の実施例は、Ｉｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ（Ｓａｎｔａ  Ｃｌａｒａ，  Ｃａｌｉｆｏｒｎｉａ）から利用可能なＩｎｔｅｌ（登録商標）ＣｏｒｅＴＭプロセッサシリーズである。
【０１２２】
電子デバイス１３００は、本発明の１つ以上の実施形態を実装し得る、１つ以上のコンピュータ実行可能命令またはソフトウェアを記憶するための１つ以上の有形の非一過性コンピュータ可読記憶媒体を含んでもよい。非一過性コンピュータ可読記憶媒体は、例えば、メモリ１３０４または記憶１３１８であってもよい。メモリ１３０４は、情報を記憶し得るＲＡＭデバイスを含み得る、ＲＡＭを備えてもよい。ＲＡＭデバイスは、揮発性または不揮発性であってもよく、例えば、１つ以上のＤＲＡＭデバイス、フラッシュメモリデバイス、ＳＲＡＭデバイス、ゼロキャパシタＲＡＭ（ＺＲＡＭ）デバイス、ツイントランジスタＲＡＭ（ＴＴＲＡＭ）デバイス、読取専用メモリ（ＲＯＭ）デバイス、強誘電ＲＡＭ（ＦｅＲＡＭ）デバイス、磁気抵抗ＲＡＭ（ＭＲＡＭ）デバイス、位相変化メモリＲＡＭ（ＰＲＡＭ）デバイス、または他のタイプのＲＡＭデバイスを含んでもよい。
【０１２３】
１つ以上のコンピューティングデバイス１３００は、メモリ１３０４内にロードされた命令を実行するための仮想機械（ＶＭ）１３０５を含んでもよい。仮想機械１３０５は、プロセスが、複数のコンピューティングリソースではなく、１つのみのコンピューティングリソースを使用して現れ得るように、複数のプロセッサ上で起動するプロセスを取り扱うために提供されてもよい。仮想化は、インフラストラクチャおよび電子デバイス内のリソースが動的に共有され得るように、電子デバイス１３００内で採用されてもよい。複数のＶＭ１３０５が、単一コンピューティングデバイス１３００上に常駐してもよい。
【０１２４】
ハードウェア加速器１３０６が、ＡＳＩＣ、ＦＰＧＡ、またはいくつかの他のデバイス内に実装されてもよい。ハードウェア加速器１３０６は、電子デバイス１３００の一般的処理時間を短縮させるために使用されてもよい。
【０１２５】
電子デバイス１３００は、限定されないが、標準的電話回線、ＬＡＮまたはＷＡＮリンク（例えば、Ｔｌ、Ｔ３、５６ｋｂ、Ｘ．２５）、ブロードバンド接続（例えば、サービス総合デジタルネットワーク（ＩＳＤＮ）、フレーム中継、非同期転送モード（ＡＴＭ）、無線接続（例えば、８０２．１１）、高速相互接続（例えば、ＩｎｆｉｎｉＢａｎｄ、ｇｉｇａｂｉｔ  Ｅｔｈｅｒｎｅｔ（登録商標）、Ｍｙｒｉｎｅｔ）、あるいは前述の一部または全部のある組み合わせを含む、種々の接続を通して、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）またはインターネットとインターフェースをとるためのネットワークインターフェース１３０８を含んでもよい。ネットワークインターフェース７０８は、内蔵ネットワークアダプタ、ネットワークインターフェースカード、パーソナルコンピュータメモリカード国際協会（ＰＣＭＣＩＡ）ネットワークカード、カードバスネットワークアダプタ、無線ネットワークアダプタ、ユニバーサルシリアルバス（ＵＳＢ）ネットワークアダプタ、モデム、または電子デバイス１３００が通信および本明細書に説明される動作を行うことが可能な任意のタイプのネットワークとインターフェースをとるために好適な任意の他のデバイスを含んでもよい。
【０１２６】
電子デバイス１３００は、例えば、ユーザからの入力を受信するために使用され得る、キーボード、マルチポイントタッチインターフェース、ポインティングデバイス（例えば、マウス）、ジャイロスコープ、加速度計、ハプティックデバイス、触覚デバイス、神経デバイス、マイクロホン、またはカメラ等の１つ以上の入力デバイス１３１０を含んでもよい。電子デバイス１３００は、他の好適なＩ／Ｏ周辺機器を含んでもよいことに留意されたい。
【０１２７】
入力デバイス１３１０は、ユーザが、視覚的ディスプレイデバイス１３１４上に登録される入力を提供することを可能にしてもよい。グラフィカルユーザインターフェース（ＧＵＩ）１３１６は、ディスプレイデバイス１３１４上に示されてもよい。
【０１２８】
記憶デバイス１３１８もまた、コンピュータ１３００と関連付けられてもよい。記憶デバイス１３１８は、Ｉ／Ｏバスを介して、プロセッサ１３０２にアクセス可能であってもよい。情報は、プロセッサ１３０２によって実行、解釈、操作、および／または別様に処理されてもよい。記憶デバイス１３１８は、例えば、磁気ディスク、光ディスク（例えば、ＣＤ−ＲＯＭ、ＤＶＤプレーヤ）、ランダム−アクセスメモリ（ＲＡＭ）ディスク、テープユニット、および／またはフラッシュドライブ等の記憶デバイスを含んでもよい。情報は、記憶デバイス内に含有される１つ以上の非一過性有形コンピュータ可読媒体上に記憶されてもよい。本媒体は、例えば、磁気ディスク、光学ディスク、磁気テープ、および／またはメモリデバイス（例えば、フラッシュメモリデバイス、静的ＲＡＭ（ＳＲＡＭ）デバイス、動的ＲＡＭ（ＤＲＡＭ）デバイス、または他のメモリデバイス）を含んでもよい。情報は、本発明の１つ以上の実施形態を実装し得る、データおよび／またはコンピュータ実行可能命令を含んでもよい。
【０１２９】
記憶デバイス１３１８は、例示的実施形態において提供される、任意のモジュール、出力、ディスプレイ、ファイル、情報、ユーザインターフェース等を記憶してもよい。記憶デバイス１３１８は、コンピューティングデバイス１３００または別の電子デバイスによって使用するためのアプリケーションを記憶してもよい。アプリケーションは、コンピューティングデバイス１３００がタスクを行うことを可能にする、プログラム、モジュール、またはソフトウェア構成要素を含んでもよい。アプリケーションの実施例として、ワード処理ソフトウェア、シェル、インターネットブラウザ、生産性スイート、およびプログラミングソフトウェアが挙げられる。一実施形態では、コンピューティングデバイス１３００は、モデルを構築するための特徴ベースのモデリング環境１３２０を含んでもよい。モデリング環境１３２０は、例えば、ソフトウェア構成要素またはコンピュータプログラムであってもよい。モデリング環境１３２０は、ＣＡＤ環境であってもよい。モデリング環境１３２０は、モデル１３２１を構築、編集、保存、およびロードし、モデル１３２１の性能をシミュレートし、かつモデル１３２１を高速プロトタイプまたは製造ユニットへの入力として提供するための手段を含んでもよい。モデリング環境１３２０はさらに、モデル内の特徴の幾何学形状を計算および表現する、幾何学形状カーネル１３２２を含んでもよい。
【０１３０】
さらに、モデル環境１３２０は、ヘルプシステム１３３０、診断ツール１３４０、結果テンプレート１３５０、および／または１つ以上のツール１３６０を包含してもよく、またはそれらと関連付けられてもよい。モデル環境１３２０のこれらの特徴はそれぞれ、前述で詳細に論じられている。
【０１３１】
記憶デバイス１３１８はまた、コンピューティングデバイス１３００を動作させるためのオペレーティングシステム１３２６を記憶してもよい。記憶デバイス１３１８は、付加的機能性を提供するための付加的アプリケーションならびにコンピューティングデバイス８００または別のデバイスによる使用のためのデータ１３２７を記憶してもよい。データ１３２７は、ファイル、変数、パラメータ、画像、テキスト、および他の形態のデータを含んでもよい。記憶デバイス１３１８はまた、モデリング環境１３２０によって使用されるモデル１３２１を記憶するためのライブラリ等、ライブラリ１３２４を記憶してもよい。ライブラリ１３２４は、例えば、デフォルトあるいはカスタムモデルまたはモデル構成要素を記憶するために使用されてもよい。
【０１３２】
記憶デバイス１３１８はさらに、コンピューティングデバイス１３００を起動させるためのオペレーティングシステム（ＯＳ）１３２６を記憶してもよい。ＯＳ８２６の実施例として、Ｍｉｃｒｏｓｏｆｔ（登録商標）  Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステム、Ｕｎｉｘ（登録商標）およびＬｉｎｕｘ（登録商標）オペレーティングシステム、ＭａｃｉｎｔｏｓｈコンピュータのためのＭａｃＯＳ（登録商標）、埋込オペレーティングシステム、例えば、Ｓｙｍｂｉａｎ  ＯＳ、リアルタイムオペレーティングシステム、オープンソースオペレーティングシステム、専用オペレーティングシステム、モバイル電子デバイスのためのオペレーティングシステム、または電子デバイス上で起動し、本明細書に説明される動作を行うことが可能な他のオペレーティングシステムが挙げられ得る。オペレーティングシステムは、ネイティブモードまたはエミュレーションモードで起動してもよい。
【０１３３】
本発明の１つ以上の実施形態は、１つ以上の非一過性有形コンピュータ可読媒体上で具現化され得るコンピュータ実行可能命令および／またはデータを使用して実装されてもよい。媒体は、限定ではないが、ハードディスク、コンパクトディスク、デジタル汎用ディスク、フラッシュメモリカード、プログラマブル読取専用メモリ（ＰＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、磁気抵抗ランダムアクセスメモリ（ＭＲＡＭ）、磁気テープ、または他のコンピュータ可読媒体であってもよい。
【０１３４】
本発明の１つ以上の実施形態は、プログラミング言語で実装されてもよい。使用され得る言語のいくつかの実施例として、Ｐｙｔｈｏｎ、Ｃ、Ｃ＋＋、Ｃ＃、ＳｙｓｔｅｍＣ、Ｊａｖａ（登録商標）、Ｊａｖａｓｃｒｉｐｔ、ハードウェア記述言語（ＨＤＬ）、統一モデリング言語（ＵＭＬ）、およびプログラマブル論理コントローラ（ＰＬＣ）言語が挙げられるが、それらに限定されない。さらに、本発明の１つ以上の実施形態は、ハードウェア記述言語または計算を規定可能にし得る他の言語で実装されてもよい。本発明の１つ以上の実施形態は、オブジェクトコードとして、１つ以上の媒体上または内に記憶されてもよい。本発明の１つ以上の実施形態を実装し得る命令は、１つ以上のプロセッサによって実行されてもよい。本発明の一部は、プロセッサ以外の１つ以上のハードウェア構成要素上で実行する命令内にあってもよい。
【０１３５】
本発明は、分散またはネットワーク環境内で実装されてもよいことを理解されたい。例えば、モデルは、ユーザがユーザ端末を通してモデルと相互作用する間、中央サーバに提供され、操作されてもよい。
【０１３６】
図１４は、本発明の１つ以上の実施形態を実装し得る、ネットワーク実装を描写する。システム１４００は、コンピューティングデバイス１３００、ネットワーク１４１２、サービスプロバイダ１４１３、標的環境１４１４、およびクラスタ１４１５を含んでもよい。図１４の実施形態は、例示であって、他の実施形態は、図１４の配列より多いデバイス、より少ないデバイス、または異なる配列におけるデバイスを含むことができる。
【０１３７】
ネットワーク１４１２は、ソースから送信先までデータを転送してもよい。ネットワーク１４１２の実施形態は、ルータ、スイッチ、フィアウォール、および／またはサーバ（図示せず）等のネットワークデバイスおよび接続（例えば、リンク）を使用して、データを転送してもよい。データは、１つ以上のネットワーク内において、および／または１つ以上のデバイス（例えば、コンピューティングデバイス１３００、サービスプロバイダ１４１３等）と併用するために適合され得る、実質的に任意のフォーマットを有する、任意のタイプの機械可読情報を指し得る。データは、デジタル情報またはアナログ情報を含んでもよい。データはさらに、パケット化および／または非パケット化されてもよい。
【０１３８】
ネットワーク１４１２は、有線導体および／または光ファイバを使用する有線ネットワークであってもよく、および／または自由空間光、無線周波数（ＲＦ）、および／または音響伝送経路を使用する無線ネットワークであってもよい。一実装では、ネットワーク１４１２は、インターネット等の実質的にオープンなパブリックネットワークであってもよい。別の実装では、ネットワーク１４１２は、企業仮想ネットワーク等のより制限されたネットワークであってもよい。ネットワーク１４１２は、インターネット、イントラネット、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、都市規模ネットワーク（ＭＡＮ）、無線ネットワーク（例えば、ＩＥＥＥ８０２．１１を使用する）、または他のタイプのネットワークを含んでもよい。ネットワーク１４１２は、コモンオブジェクトリクエストブローカアーキテクチャ（ＣＯＲＢＡ）または分散コンポーネントオブジェクトモデル（ＤＣＯＭ）等のミドルウェアを使用してもよい。本明細書に説明されるネットワーク上で動作するネットワークおよび／またはデバイスの実装は、例えば、任意の特定のデータタイプ、プロトコル、および／またはアーキテクチャ／構成に限定されない。
【０１３９】
サービスプロバイダ１４１３は、サービスを別のデバイスに利用可能にするデバイスを含んでもよい。例えば、サービスプロバイダ１４１３は、サーバおよび／または他のデバイスを使用して送信先に１つ以上のサービスを提供する、エンティティ（例えば、個人、企業、教育施設、政府機関等）を含んでもよい。サービスは、動作（例えば、最適化動作）を行うために、送信先によって実行される命令を含んでもよい。代替として、サービスは、送信先の代わりに動作を行うために、送信先の代わりに実行される命令を含んでもよい。
【０１４０】
標的環境１４１４は、ネットワーク１４１２を経由して情報を受信する、デバイスを含んでもよい。例えば、標的環境１４１４は、コンピュータ１３００からユーザ入力を受信するデバイスであってもよい。
【０１４１】
クラスタ１４１５は、いくつかの実行ユニット（ＵＥ）１４１６を含んでもよく、コンピュータ８００および／またはサービスプロバイダ１４１３等の別のデバイスの代わりに処理を行ってもよい。例えば、クラスタ１４１５は、コンピュータ１３００から受信された動作に関して並行処理を行ってもよい。クラスタ１４１５は、単一デバイスまたはチップ上に常駐する、あるいはいくつかのデバイスまたはチップ上に常駐する、ＵＥ１４１６を含んでもよい。
【０１４２】
実行ユニット（ＵＥ）１４１６は、要求デバイス等のデバイスの代わりに動作を行う、処理デバイスを含んでもよい。ＵＥは、マイクロプロセッサ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、および／または別のタイプの処理デバイスであってもよい。ＵＥ１４１６は、オペレーティング環境のためのコード等のコードを含んでもよい。例えば、ＵＥは、並列処理アクティビティに関するオペレーティング環境の一部を起動してもよい。サービスプロバイダ１４１３は、クラスタ１４１５を動作させてもよく、加入ベースで（例えば、ウェブサービスを介して）双方向最適化能力をコンピュータ１３００に提供してもよい。
【０１４３】
実行ユニット（ＵＥ）は、図１３のモデリング環境１３２０等の製品のための遠隔／分散処理能力を提供してもよい。ハードウェア実行ユニットは、並列プログラミングアクティビティを行う、および／またはそれに関与し得る、デバイス（例えば、ハードウェアリソース）を含んでもよい。例えば、ハードウェア実行ユニットは、受信した（例えば、直接またはプロキシを介して受信した）要求および／またはタスクに応答して、並列プログラミングアクティビティを行う、および／またはそれに関与してもよい。ハードウェア実行ユニットは、１つ以上のデバイスを使用して、実質的に任意のタイプの並列プログラミング（例えば、タスク、データ、ストリーム処理等）を行う、および／またはそれに関与してもよい。例えば、ハードウェア実行ユニットは、複数のコアまたはいくつかのプロセッサを含む、単一処理デバイスを含んでもよい。ハードウェア実行ユニットはまた、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、デジタル信号プロセッサ（ＤＳＰ）、または他のプログラマブルデバイス等のプログラマブルデバイスであってもよい。ハードウェア実行ユニット内で使用されるデバイスは、グリッド、リング、スター、または他の構成等、多くの異なる構成（または、トポロジ）で配列されてもよい。ハードウェア実行ユニットは、処理動作を行うとき、１つ以上のスレッド（または、プロセス）をサポートしてもよい。
【０１４４】
ソフトウェア実行ユニットは、１つ以上の並列プログラミングアクティビティを行う、および／またはそれに関与し得る、ソフトウェアリソース（例えば、技術コンピューティング環境）を含んでもよい。ソフトウェア実行ユニットは、プログラムおよび／またはプログラムの１つ以上の部分の受信に応答して、１つ以上の並列プログラミングアクティビティを行う、および／またはそれに関与してもよい。ソフトウェア実行ユニットは、１つ以上のハードウェア実行ユニットを使用して、異なるタイプの並列プログラミングを行う、および／またはそれに関与してもよい。ソフトウェア実行ユニットは、処理動作を行うとき、１つ以上のスレッドおよび／またはプロセスをサポートしてもよい。
【０１４５】
用語「並列プログラミング」は、複数のタイプの並列プログラミング、例えば、タスク並列プログラミング、データ並列プログラミング、およびストリーム並列プログラミングを含むものと理解され得る。並列プログラミングは、複数のリソース（例えば、ソフトウェア実行ユニット、ハードウェア実行ユニット、プロセッサ、マイクロプロセッサ、クラスタ、ラボ）にわたって分散され得、かつ同時に行われ得る、種々のタイプの処理を含んでもよい。
【０１４６】
例えば、並列プログラミングは、いくつかのタスクがいくつかのソフトウェア実行ユニット上で同時に処理され得る、タスク並列プログラミングを含んでもよい。タスク並列プログラミングでは、タスクは、例えば、同時に、実行中の他のタスクから独立して処理されてもよい。
【０１４７】
並列プログラミングは、データ（例えば、データセット）が、例えば、ソフトウェア実行ユニットを使用して、並列に実行され得るいくつかの部分に解析され得る、データ並列プログラミングを含んでもよい。データ並列プログラミングでは、ソフトウェア実行ユニットおよび／またはデータ部分は、処理が進行するにつれて、相互と通信してもよい。
【０１４８】
並列プログラミングは、ストリーム並列プログラミング（時として、パイプライン並列プログラミングと称される）を含んでもよい。ストリーム並列プログラミングは、例えば、直列（例えば、線）に配列される、いくつかのソフトウェア実行ユニットを使用してもよく、第１のソフトウェア実行ユニットは、第１の結果を前提として第２の結果を生成し得る、第２のソフトウェア実行ユニットにフィードされ得る、第１の結果を生成してもよい。ストリーム並列プログラミングはまた、タスク配分が、有向非巡回グラフ（ＤＡＧ）または巡回グラフに表され得る状態を含んでもよい。
【０１４９】
他の並列プログラミング技法は、タスク、データ、および／またはストリーム並列プログラミング技法単独あるいは他のタイプの処理技法とのある組み合わせを伴い、ハイブリッド並列プログラミング技法を行ってもよい。
【０１５０】
前述の説明は、本発明の種々の実施形態の例証および説明を提供し得るが、包括的であること、または本発明を開示される精密な形態に限定することを意図しない。修正および変形例が、前述の教示に照らして可能性として考えられ得る、または本発明の実践から取得され得る。例えば、一連の作用が前述されたが、作用の順序は、本発明の原理と一貫した他の実装において修正されてもよい。さらに、非従属作用も、並列で行われてもよい。さらに、特徴およびアクセスクラスが、特定の構文を使用して前述されたが、特徴およびアクセスクラスは、異なる方法を使用して、かつ異なる構文を使用して、等しく規定されてもよい。
【０１５１】
加えて、本発明の原理と一貫した１つ以上の実装が、本発明の精神から逸脱することなく、図に図示され、明細書に説明されるもの以外の１つ以上のデバイスおよび／または構成を使用して実装されてもよい。１つ以上のデバイスおよび／または構成要素は、具体的展開および／または用途に応じて、図の実装に追加される、および／またはそこから除去されてもよい。また、１つ以上の開示される実装は、ハードウェアの具体的組み合わせに限定されなくてもよい。
【０１５２】
さらに、本発明のある部分は、１つ以上の機能を行い得る論理として実装されてもよい。本論理は、有線論理、特定用途向け集積回路、フィールドプログラマブルゲートアレイ、マイクロプロセッサ、ソフトウェア、またはハードウェアおよびソフトウェアの組み合わせ等のハードウェアを含んでもよい。
【０１５３】
本発明の説明において使用される要素、作用、または命令はいずれも、そのように明示的に説明されない限り、本発明に重要または不可欠であると解釈されるべきではない。また、本明細書で使用されるように、冠詞「ａ」は、１つ以上のアイテムを含むように意図される。１つのみのアイテムが意図される場合、用語「ａ  ｓｉｎｇｌｅ（単一）」または類似言語が、使用される。さらに、語句「ｂａｓｅｄ  ｏｎ（〜に基づく）」は、本明細書で使用されるように、別様に明示的に述べられない限り、「ｂａｓｅｄ，  ａｔ  ｌｅａｓｔ  ｉｎ  ｐａｒｔ，  ｏｎ（少なくとも部分的に、〜に基づく）」ことを意味するように意図される。加えて、用語「ユーザ」は、本明細書で使用されるように、別様に記載されない限り、例えば、電子デバイス（例えば、ワークステーション）または電子デバイスのユーザを含むように広義に解釈されることが意図される。
【０１５４】
本発明は、上に開示される特定の実施形態に限定されるものではなく、本発明は、以下の添付の請求項の範囲内のあらゆる特定の実施形態および均等物を含むことが意図される。
【図１】
2015526779.tif 000003
【図２】
2015526779.tif 000004
【図３】
2015526779.tif 000005
【図４】
2015526779.tif 000006
【図５】
2015526779.tif 000007
【図６】
2015526779.tif 000008
【図７】
2015526779.tif 000009
【図８】
2015526779.tif 000010
【図９】
2015526779.tif 000011
【図１０】
2015526779.tif 000012
【図１１】
2015526779.tif 000013
【図１２】
2015526779.tif 000014
【図１３】
2015526779.tif 000015
【図１４】
2015526779.tif 000016
【国際調査報告】
2015526779.tif 000017
2015526779.tif 000018
2015526779.tif 000019
2015526779.tif 000020
2015526779.tif 000021