(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-18
(45)【発行日】2024-12-26
(54)【発明の名称】モデル化されたオブジェクトにおいて複数のエッジおよび面を選択するための方法
(51)【国際特許分類】
G06F 30/12 20200101AFI20241219BHJP
G06F 30/10 20200101ALI20241219BHJP
G06T 19/00 20110101ALI20241219BHJP
G06F 3/04842 20220101ALI20241219BHJP
【FI】
G06F30/12
G06F30/10 100
G06T19/00 A
G06F3/04842
【外国語出願】
(21)【出願番号】P 2020190028
(22)【出願日】2020-11-16
【審査請求日】2023-08-03
(31)【優先権主張番号】201941046868
(32)【優先日】2019-11-18
(33)【優先権主張国・地域又は機関】IN
(73)【特許権者】
【識別番号】500430693
【氏名又は名称】ダッソー システムズ ソリッドワークス コーポレイション
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】アプテ,マカランド
(72)【発明者】
【氏名】アムルタム,ニクヒル
(72)【発明者】
【氏名】スタイルズ,ジョディ
(72)【発明者】
【氏名】ミュール,ギリシュ
(72)【発明者】
【氏名】サバント,スリカント
(72)【発明者】
【氏名】ラマ,チン-ロー
【審査官】松浦 功
(56)【参考文献】
【文献】特開平07-271994(JP,A)
【文献】特開2013-088970(JP,A)
【文献】特開2002-042173(JP,A)
【文献】特開2009-129337(JP,A)
【文献】国際公開第2011/155288(WO,A1)
【文献】特開2006-331328(JP,A)
【文献】米国特許出願公開第2015/0269284(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/00 -30/398
G06F 3/0484 - 3/04842
G06T 7/00 - 7/90
G06T 11/60 -11/80
G06T 17/00 -19/20
(57)【特許請求の範囲】
【請求項1】
ユーザが選択するシードエッジまたはシード面に基づき、コンピュータ支援設計(CAD)システム
が、表示されたモデル化されたオブジェクト
のエッジまたは面を選択するための
コンピュータベースの方法であって、
複数の特徴を抽出するステップであって、各特徴が、前記モデル化されたオブジェクトの複数のエッジまたは面のうちの1つ以上についての測定可能な数値特性を含むように抽出するステップと、
前記複数の特徴をスケーリングするステップと、
表示されたモデルの第1のエッジまたは第1の面を前記複数のエッジおよび面の
前記シードエッジまたはシード面
としてユーザが選択
することを受信するステップと、
グラフィカルユーザインターフェース(GUI)を介して、前記シードエッジまたはシード面を表示されたモデル内の前記複数のエッジおよび面の他の面またはエッジから視覚的に区別する第1のグラフィカルな表示で示すステップと、
特定の半径および/または許容値内で前記シードエッジまたはシード面に類似する前記モデル化されたオブジェクト上のすべての要素の最近傍探索を使用することによって、前記シードエッジまたはシード面
に関する第1のセットの基準に基づき、前記複数のエッジまたは面のうちの提案された
第2のエッジまたは提案された
第2の面を選定するステップと、
表示された
前記モデル化されたオブジェクト上に、
GUIを介して前記提案された
第2のエッジまたは提案された
第2の面の
第2のグラフィカルな表示を表示するステップと、を含
み、
提案を行う前記第2のグラフィカルな表示と前記シードエッジまたは前記シード面の第1のグラフィカルな表示は、当該提案と前記シードエッジまたは前記シード面とを視覚的に区別している、方法。
【請求項2】
前記モデル化されたオブジェクト上に、第1の色で前記シードエッジまたはシード面を示すステップと、
前記モデル化されたオブジェクト上に、第2の色で前記提案されたエッジまたは提案された面を示すステップと、をさらに含む、請求項1に記載の方法。
【請求項3】
前に選択された1つ以上のシードエッジおよび/またはシード面を備えた選択物リストに
、前記シードエッジまたはシード面を追加するステップと、
前記提案されたエッジまたは提案された面の受け入れを受信するステップと、
前記選択物リストに前記提案されたエッジまたは提案された面を追加するステップと、をさらに含む、請求項1に記載の方法。
【請求項4】
前記選択物リストに基づき、前記モデル化されたオブジェクトの新しい位相的特徴を作成するステップをさらに含む、請求項3に記載の方法。
【請求項5】
前記選択物リストに基づき、前記モデル化されたオブジェクトの既存の位相的特徴を修正するステップをさらに含む、請求項3に記載の方法。
【請求項6】
前記複数の特徴をスケーリングすることが、前記スケーリングされた特徴を、特徴ベクトルに平坦化することをさらに含む、請求項1に記載の方法。
【請求項7】
表示されたモデルに応じてGUIを介して、示された前記シードエッジまたはシード面の近傍にヘルパーアイコンを提示するステップと、
前記ヘルパーアイコンのユーザの選択を受信するステップと、をさらに含み、
提案された第2のエッジまたは第2の面の選択は、前記ヘルパーアイコンのユーザの選択に基づいている、請求項1に記載の方法。
【請求項8】
前記最近傍探索のため、前記シードエッジまたはシード面の第1のセットの基準を調整するための選択を含む提案ボックスを、GUIを介して表示するステップをさらに含む、請求項7に記載の方法。
【請求項9】
第3のエッジまたは第3の面のユーザ選択を受信するステップと、
第3のエッジまたは第3の面に従って提案を拡張するステップと、をさらに含む、請求項1に記載の方法。
【請求項10】
第3のエッジまたは第3の面を含むように、前記第1のグラフィカルな表示を更新するステップをさらに含む、請求項9に記載の方法。
【請求項11】
第3のエッジまたは第3の面を含むように、提案を行う前記第2のグラフィカルな表示を更新するステップをさらに含む、請求項9に記載の方法。
【請求項12】
前記複数の特徴を抽出するステップは、
エッジの長さ、
前記エッジと前記エッジに隣接する2つの面の各々との間の隣接面角、
エッジの開始方向と終了方向との間の転向角、
エッジの開始と終了のそれぞれにおけるエッジの曲率、
エッジの開始点と終了点との間の弧長に対するエッジの長さの比、および、
エッジの主慣性モーメント、
をエッジごとに抽出することをさらに含む、請求項1に記載の方法。
【請求項13】
前記複数の特徴を抽出するステップは、
面面積、
面の周長の2乗に対する面面積の比、および、
面の主慣性モーメント、
を面ごとに抽出することをさらに含む、請求項1に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2019年11月18日に出願された「Method for Selecting Multiple Edges and Faces In Modeled Object」と題する、インド特許出願第201941046868号の優先権の利益を主張する。先の出願の開示は、その全体が参照により本明細書に組み込まれる。
【0002】
本発明は、コンピュータ支援設計に関するものであり、より具体的には、2次元(2D)および3次元(3D)製品設計における複数の幾何学的形状の選択に関する。
【背景技術】
【0003】
CAD(コンピュータ支援設計)プログラムなどの3D設計ソフトウェアアプリケーションは、設計中の製品の立体幾何学的形状を構築するために使用される。立体幾何学的形状は、そのような他の面と交差する複数の面を画定することによって作成される。2つ以上の形状面が互いに出会うと、製品の使いやすさと美観を向上させるために平滑化する必要があり得る鋭利なエッジが生じることがあるが、これにはフィレットおよび面取りなどのモデリング作業が含まれる。フィレットと面取りの作業は、一般的にフィレットと面取りを使用して選択され丸みを帯びさせた複数のエッジが含まれる。中程度の複雑なモデルであっても、何百ものエッジを選択することになり、面倒で時間のかかるタスクになる。
【0004】
例えば、
図1は、破線のボックス内に示された第1のエッジ(コーナー部)110を有する3Dモデル化されたオブジェクト100を示している。モデル化されたオブジェクト100は、第1のエッジに類似するが、第1のエッジ110に対して変位かつ/または回転された複数の類似のエッジ112を有する。ユーザが複数のエッジまたはすべてのエッジ110、112に対して類似の修正を行うことを望むシナリオでは、典型的には、ユーザは、最初に第1のエッジ110を選択し、その後に所望の類似のエッジ112のそれぞれを選択しなければならない。いくつかの例では、エッジ110、112と類似の隠れエッジ114が、ユーザがエッジを選択しているビューから隠され、選択プロセスをさらに複雑にし得る。したがって、業界では、上記のように特定された欠点に対処する必要性がある。
【発明の概要】
【0005】
本発明の実施形態は、モデル化されたオブジェクトの複数のエッジおよび面を選択するための方法を提供する。簡単に説明すると、本発明は、コンピュータ支援設計(CAD)システムにおいて、表示されたモデル化されたオブジェクトの複数のエッジまたは面を選択するための方法を対象とする。複数の特徴が抽出され、各特徴は、モデル化されたオブジェクトの1つ以上のエッジまたは面の測定可能な数値特性を含む。特徴はスケーリングされ、シードエッジまたはシード面の選択が受信される。提案されたエッジまたは提案された面がシードエッジまたはシード面に基づいて選択され、提案されたエッジまたは提案された面のグラフィカルな表示がモデル化されたオブジェクトに表示される。
【0006】
本発明の他のシステム、方法および特徴は、以下の図面および詳細な説明を検討する当業者には明らかであるか明らかになるであろう。そのような追加のシステム、方法、および特徴はすべて、本明細書に含まれ、本発明の範囲内にあり、添付の特許請求の範囲によって保護されることが意図されている。
【図面の簡単な説明】
【0007】
添付図面は、本発明のさらなる理解を提供するために含まれており、本明細書に組み込まれ、本明細書の一部を構成する。図面は、本発明の実施形態を示し、説明とともに、本発明の原理を説明するのに役立つ。
【
図1】複数の類似したエッジを有する3Dモデル化されたオブジェクトを示す概略図である。
【
図2A】本発明の第1の実施形態による3Dモデル化されたオブジェクトのスクリーンキャプチャである。
【
図2B】合成フィレットを示す
図2Aの3Dモデル化されたオブジェクトのスクリーンキャプチャのエッジ詳細図である。
【
図2C】3Dモデル化されたオブジェクトの選択されたシードエッジの近くの選択ヘルパーアイコンを示す、
図2Aの3Dモデル化されたオブジェクトのスクリーンキャプチャである。
【
図2D】3Dモデル化されたオブジェクトの2つの選択されたシードエッジの近くの選択ヘルパーアイコンを示す、
図2Aの3Dモデル化されたオブジェクトのスクリーンキャプチャである。
【
図2E】シードエッジの2つの選択されたシードエッジ部分に基づく提案申し出を示す、
図2Aの3Dモデル化されたオブジェクトのスクリーンキャプチャである。
【
図2F】拒絶された提案エッジを示す、
図2Aの3Dモデル化されたオブジェクトのスクリーンキャプチャである。
【
図3A】選択されたシードエッジに基づいて提案された複数のエッジを示す、
図2Cの3Dモデル化されたオブジェクトのスクリーンキャプチャである。
【
図3B】
図3Aの圧縮型選択ヘルパーダイアログの概略図である。
【
図3C】拡張型選択ヘルパーダイアログの概略図である。
【
図4】容認された選択を示す
図3の3Dモデル化されたオブジェクトのスクリーンキャプチャである。
【
図5】本発明の機能を実行するためのシステムの一例を示す概略図である。
【
図6】3Dオブジェクトの類似のエッジを選択するための例示的な方法の第1の実施形態のフローチャートである。
【
図7A】エッジの長さ対コードの長さの一例を示すスクリーンショットである。
【
図7B】隣接する面角の一例を示すスクリーンショットである。
【
図7C】転向角の第1の例を示すスクリーンショットである。
【
図7D】転向角の第2の例を示すスクリーンショットである。
【
図8A】既存の接線伝搬エッジ/面の選択の一例を示すスクリーンショットである。
【
図8B】同じ境界を共有するすべてのエッジ/面を選択するための既存の方法の一例を示すスクリーンショットである。
【
図8C】ボックス選択の既存のエッジ/面の選択方法の一例を示すスクリーンショットである。
【発明を実施するための形態】
【0008】
以下の定義は、本明細書に開示される実施形態の特徴に適用される用語を解釈するのに有用であり、本開示内の要素を定義することのみを意味する。
【0009】
本開示内で使用される場合、「面取り」は、モデル化されたオブジェクトの傾斜または角度の付いたコーナーまたはエッジを指し、「フィレット」は、丸みを帯びたコーナーまたはエッジを指す。面取りおよび/またはフィレットは、モデル化されたオブジェクトの内部または外部のいずれかにあるエッジを指し得る。フィレットまたは面取りが可能なエッジは、C0またはG0連続であると言われており、共通の頂点で接続されているが、互いに接していないことを意味する。
【0010】
本開示内で使用される場合、「特徴」は、モデル化されたオブジェクトのエッジまたは面の記述子または測定可能な数値特性を指す。この解釈は、CADの文脈で使用される「トポロジカル特徴」というフレーズと混同しないように、統計学および機械学習の文献での「特徴」という単語の慣用に動機付けられる。
【0011】
本開示は、コンピュータモデル化されたオブジェクトの操作を対象とする。本明細書では、物体を操作することへの言及は、一般に、ユーザインターフェースを介して、表示画面上のモデル化されたオブジェクトの画像を操作することを指す。モデル化されたオブジェクトのそのような操作の例には、選択、回転、スケーリングなどが含まれる。表示されたモデル化されたオブジェクトの操作は、モデル化されたオブジェクトの態様および位相的特徴を表すデータオブジェクトのコンピュータソフトウェアによる操作につながることが理解される。ここで、本発明の実施形態を詳細に述べ、その例を添付の図面に示す。可能な限り、同一または類似の部品を参照するために、図面および説明では同じ参照番号が使用されている。実施形態の説明は一般に3Dモデル化されたオブジェクトを指しているが、説明は同様に2Dモデル化されたオブジェクトに適用可能である。
【0012】
背景技術のセクションで説明したように、CAD環境では、ユーザがモデル化された3Dオブジェクトの特定のエッジまたは面に変更を加えると、3Dモデル化されたオブジェクトのすべての類似したエッジまたは面にも同じ変更が必要になることがよくある。モデル化された3Dオブジェクトの複数のエッジまたは面に同じ変更を加えるためには、ユーザは最初にそれらすべてのエッジまたは面を選択し、次に、選択したすべてのエッジまたは面に対して位相的特徴を作成するか、または位相的特徴を編集するようにCADシステムに指示する必要がある。これまでは、これは面倒なおよび/または時間がかかるプロセスであった。本発明の開示された実施形態は、3D設計ソフトウェアにおける多くのモデリング操作のための共通タスクである、多くのエッジを一度に1つずつまたは数個ずつ選択することの背後にある手間を軽減することに対処するものである。ここで説明する実施形態では、ユーザがモデル化されたオブジェクト内のエッジまたは面を選択するときはいつでも、当該実施形態がそのモデル化されたオブジェクト内のすべてのエッジまたは面のうち、選択されたエッジまたは面と形状が類似しているものを自動的かつ即時的な選択を提供し、使いやすさと柔軟性を可能にする。
【0013】
実施形態には、エッジを選択するタスクを簡単、迅速かつより効率的にするために選択ヘルパーモジュールが組み込まれている。さらに、選択ヘルパーモジュールは、定量的要因だけでなく定性的要因も考慮して設計意図を捉える。以下でさらに説明するように、選択ヘルパーモジュールは、非常に使いやすく、シンプルでありながら効果的なインターフェースでユーザに提案し、このインターフェースは、邪魔にならずに選択の時点で利用可能である。
【0014】
選択ヘルパーモジュールは、1つ以上のユーザインターフェース(UI)グラフィカルオブジェクトを介してユーザに表示される。
図2Aは、3Dモデル化されたオブジェクト100を示しており、この例では、モータマウントを示している。
図2Bは、第1のエッジ110(破線で囲まれている)および第2のエッジ111および結果得られるフィレットを示す詳細図である。
図2Cに示すように、ユーザが、例えばマウスクリックを介して第1のフィレットエッジ110を選択すると、3Dモデル化されたオブジェクト100の隣にフィレット/面取りコマンドダイアログボックス220が表示される。選択時に、第1のフィレットエッジはシードエッジ110と呼ばれる。
【0015】
図2Cに示すように、フィレットおよび面取りを設計する場合、エッジ選択フィールドがアクティブ化されると、選択ヘルパーアイコン210が提示される。ユーザがフィレットまたは面取りのためにエッジ110を選択すると、小さな目立たないUIセレクタ、例えば、選択ヘルパーアイコン210が、マウスカーソル(図示せず)の近くに提示される。ユーザは、選択ヘルパーアイコン210を無視し得、その場合、選択ヘルパーモジュールは起動されないか、または、ユーザは、選択ヘルパーアイコン210をクリックして、例えば、
図3Aに示されるように、本明細書では選択ヘルパー提案ボックス250と呼ばれるダイアログボックス250として表されるように、選択ヘルパーモジュールを起動することができる。
【0016】
起動されると、選択ヘルパー提案ボックス250は、選択ヘルパーアイコン210(
図2C)に置き換わる。選択ヘルパー提案ボックス250は、最初はコンパクトモードで表示される。コンパクトモードでの選択ヘルパー提案ボックス250の詳細は、
図3Bに示されている。コンパクトモードでは、選択ヘルパー提案ボックス250は、グリップ領域310、設定アイコン312、提案受諾アイコン314、および提案拒否アイコン316を含む、非常に小さくてシンプルなUIパネルで表示される。すべてのオプション設定(後述、
図3C参照)は、コンパクトモードでは、選択ヘルパー提案ボックス250によってユーザから隠される。
【0017】
モデリングプロセス中に、ユーザがシードエッジ110を選択すると、選択ヘルパーモジュールは、以下でさらに説明する最近傍探索技術を使用して、モデル化されたオブジェクト100の様々なエッジ110、111、112を分析して、選択されたシードエッジ110に基づいて選択したい場合がある最も可能性の高い提案112をユーザに提供する。
【0018】
図3Aに見られるように、これらの選択112は、容易に可視化するために、グラフィックス領域内で色で強調表示され(ここでは太い線で示されている)、ユーザは、新しい選択を追加するか、または提案された選択のいずれかを削除することによって、選択112にさらなる変更を加えることができる。色エッジ提案112は、それらを、ユーザによって直接選択されたシードエッジ110と区別する。
図4に示すように、提案されたエッジ112または面は、3Dモデル化されたオブジェクト100の裏側に位置されていても表示されるので、モデル100を回転させて隠されたエッジ/面を表示する必要はない。選択ヘルパーモジュールが最初の提案112を提案すると、ユーザは、提案を拡張するか、または提案を縮小するかのいずれかのオプションを有する。提案を拡張するには、ユーザは、選択ヘルパーによって提案されていない、つまり色(茶色)で強調表示されていない場合に、ユーザが現在選択していない任意のエッジをクリックする。例えば、
図2Cに戻ると、単一のエッジ110、すなわち、フィレット/面取りコマンドダイアログ220の選択ボックス420に表示される「エッジ1」が選択される。
図2Dでは、別のエッジ、すなわち第2のエッジ113をクリックすることにより、シードエッジが拡張されて両方のエッジ110および113が含まれ、両方のエッジがフィレット/面取りコマンドダイアログ220の選択ボックス420に表示される。
図2Eに示すように、選択ヘルパーアイコン210のその後の選択は、選択ヘルパーが、シードエッジ110、113の2つの選択された部分に基づく提案申し出を(色(茶色)で)示す結果となる。再び
図2Cに戻ると、ユーザが選択されたエッジ112を望まない場合、ユーザは、個々のエッジをクリックしてそれを拒否することができ、例えば、
図2Fに示された拒否された提案212が挙げられる。次に、拒否された提案212は、他の提案されたエッジ112からのより明るい色調、例えば、より明るい色の茶色(ここでは短い破線の輪郭で示されている)で表示される。ユーザが提案112を誤ってクリックした場合、ユーザは、それを再度クリックすることによって、拒否された選択212を再び受け入れることができ、これにより、エッジが明るい色調から暗い色調に戻る。提案されたエッジ112の所望のセットが適切に調整されると、ユーザは、選択ヘルパー提案ボックス250のチェックマーク(提案アイコンを受け入れる)314をクリックして、フィレット/面取りコマンドボックス220に対するすべての提案されたエッジ112の選択を確認することができる。
図4に示すように、確認後、選択ヘルパー提案ボックス250がディスプレイから削除され、提案エッジ112が、フィレット/面取りコマンドダイアログ220の選択ボックス420に英数字で示される。
【0019】
図3Aに戻ると、ユーザが提案されたエッジ112を使用したくない場合、選択ヘルパー提案ボックス250のX字型の拒否提案アイコン316をクリックすると、色(茶色)で示された提案が破棄され、選択ヘルパーダイアログが閉じ、
図4で示されるように、フィレット/面取りコマンドダイアログ220の選択ボックス420に表示された元の提案に変更を加えることなく、ユーザをフィレット/面取りコマンドダイアログ220に戻す。
【0020】
図3Cに示すように、ユーザが提案を洗練することを選択した場合、設定アイコン312をクリックすると、ユーザが調整できるオプションのセット322、324、326、328を有する拡張された選択ヘルパーダイアログ350が表示される。ユーザが様々なオプション322、324、326、328を変更すると、選択ヘルパーによって行われた提案が動的に変化し、ユーザに即座に表示される。第1の実施形態では、オプションは、ユーザが、シードエッジ110をモデル100内の他の(選択されていない)エッジと比較して、緩和された許容値で比較することを望むか、または厳格な許容値で比較することを望むかを指定することを可能にする、「ファクターへの緩和順守」オプション322を含む。これについては、以下でさらに詳しく説明する。長さオプション328により、選択ヘルパーは、エッジ長を、シードエッジ110をモデル100の他のエッジと比較する際に使用される特徴とみなし、それに応じて提案を行う。向きオプション326により、選択ヘルパーは、エッジ向きを、シードエッジ110とモデル100内の他のエッジとの比較に使用される特徴とみなし、それに応じて提案を行う。エッジ向きは、エッジ110の開始点および終了点での接線のベクトル方向を含む。同じ隣接面角のオプション324により、選択ヘルパーは、エッジを比較する際の基準として、シードエッジ110に隣接する面の間の1つ以上の角度を考慮する。さらに、シードエッジ110の幾何学的形状に基づいてエッジを選択するための内部幾何学的形状オプション(図示せず)があり、これは常に「オン」であり、UIには表示されない。幾何学的形状オプションをオンにすると、選択ヘルパーは、提案を行う際に、開始点と終了点でのシードエッジ110との接線によって作られる角度、および開始点と終了点でのシードエッジ110の曲率などの機能も考慮する。
【0021】
図6は、コンピュータ支援設計システムにおいてモデル化されたオブジェクトの同様のエッジを選択するための例示的な方法の第1の実施形態のフローチャート600である。フローチャート内のプロセス記述またはブロックは、プロセス内の特定の論理機能を実装するための1つ以上の命令を含むモジュール、セグメント、コードの一部、またはステップを表すものとして理解されるべきであり、代替的な実装は、本発明の当業者によって理解されるであろうように、関与する機能に応じて、実質的に同時または逆の順序を含む、示されたまたは議論された順序から外れた順序で機能が実行され得る本発明の範囲内に含まれていることを留意すべきである。
【0022】
ブロック610によって示されるように、モデル化されたオブジェクトの複数の特徴が抽出され、各特徴は、モデル化されたオブジェクトの1つ以上についてのエッジまたは面の測定可能な数値特性を含む。ブロック620によって示されるように、複数の特徴がスケーリングされる。好ましくは、特徴は、モデル化されたオブジェクトのすべてのエッジおよび面から抽出される。複数のエッジおよび面のうちのシードエッジまたはシード面の選択は、ブロック630によって示されるように、例えば、ユーザがモデル化されたオブジェクトの対応する表示された部分をクリックすることによってシードエッジまたはシード面を示した後に受信される。シードエッジまたはシード面は、モデル化されたオブジェクト上に第1の色で示される。ブロック640によって示されるように、複数のエッジまたは面のうちの提案されたエッジまたは提案された面は、シードエッジまたはシード面に基づいて選択される。複数のエッジまたは面は、以下でさらに説明する最近傍探索技術を使用して選択され得る。提案されたエッジまたは提案された面のグラフィック表示は、例えば、提案されたエッジおよび面を第2の色で表示することによって、ブロック650によって示されるようにモデル化されたオブジェクトに表示される。シードエッジまたはシード面は、ブロック660によって示されるように、選択リスト、例えば、フィレット化されるべきエッジのリストに追加される。提案されたエッジまたは提案された面の受け入れは、例えば、ブロック670によって示されるように、ユーザがダイアログボックスを介して提案されたエッジまたは提案された面を受け入れることに応答して受信される。ブロック680によって示されるように、提案されたエッジまたは提案された面は選択リストに追加され、モデル化されたオブジェクトの新しい位相的特徴が選択リストに基づいて作成され得るか、またはモデル化されたオブジェクトの既存の位相的特徴が選択リストに基づいて変更され得る。
【0023】
選択ヘルパーモジュールには、上述の機能を実装するためのいくつかの技法が組み込まれている。特徴抽出610(
図6)の場合、選択ヘルパーモジュールは、モデル化されたオブジェクトのすべてのエッジまたは面から特徴のセットを抽出する。選択された特徴は、非常に小さいCPU使用率の選択ヘルパーによって抽出され得るが、十分な識別力を有する。ここで、識別力とは、同じ3Dモデル化されたオブジェクトの中で、同様のエッジ/面と異なるエッジ/面とを区別する能力を指し、以下により詳しく説明する。
【0024】
特定のエッジまたは面で特徴抽出操作が実行されると、そのエッジまたは面が後で変更されるまで、後続の特徴抽出操作は必要ない。例えば、多くの場合、3Dモデル化されたオブジェクトの大部分のエッジおよび面は、変更後もそのまま残る。特定のエッジおよび面のみが変更または削除されるか、新しいエッジおよび面が追加される。すでに実行された計算を繰り返さないために、特徴抽出は増加的にのみ実行され、変更または新しく追加されたエッジと面に対してのみ実行される。これにより、CPU時間の浪費が削減される。選択ヘルパーモジュールは、編集後に存在しなくなったエッジおよび面の特徴ベクトルなど、使用されない特徴ベクトルを削除する。これにより、占有されているコンピュータメモリの浪費が削減される。
【0025】
特徴スケーリング620(
図6)の場合、選択ヘルパーモジュールは、データサイエンスの当業者によく知られている標準的な特徴スケーリングプロセスを実行する。特徴スケーリングは、各特徴の範囲を正規化するプロセスである。ここで、選択ヘルパーモジュールは、抽出されたすべての特徴の範囲を0~1の範囲でスケーリングするために、最小最大特徴スケーリングを採用している。次に、選択ヘルパーモジュールは、すべてのスケーリングされた値を一次元ベクトル(「特徴ベクトル」と呼ばれる)に平坦化する。
【0026】
提案されたエッジまたは提案された面を選択するために(ブロック640(
図6))、選択ヘルパーモジュールは、抽出された特徴ベクトルに対する最近傍探索を採用する。最近傍探索は、非類似度のメトリック/関数が与えられた場合に、最も類似した要素を見つけるために使用されるコモンクラスのメソッドである。選択ヘルパーモジュールは、固定半径近傍探索と呼ばれる最近傍探索の特定の変形形態を使用し、これは、特定の半径/許容値内の所与の要素に類似するすべての要素を探索する。
【0027】
選択ヘルパーモジュールは、L2ノルム(L2距離、ユークリッド距離、ユークリッド計量としても知られる)を固定半径近傍探索で使用される非類似度関数として使用し、計算時間を短縮するためにボールツリーまたはk-dツリーなどのよく知られた空間分割データ構造を使用し得る。半径/許容値は、ユーザが「パラメータへの順守を緩和する」をオンに設定したかオフに設定したかに基づいて決定される。例えば、選択ヘルパーモジュールは、「パラメータへの順守を緩和する」がオンの場合に0.1の許容値(つまり、10%の非類似度を許容)を使用し、「パラメータへの順守を緩和する」がオフの場合に0.01の許容値(つまり、1%の非類似度を許容)を使用する。
【0028】
あるいは、ユーザは、許容される非類似度のパーセンテージを直接的に指定することを許可され得る。選択ヘルパーモジュールは、固定半径近傍探索を使用して、シードエッジまたはシード面に類似した、3Dモデル化されたオブジェクト内のすべてのエッジまたは面を検出する。選択ヘルパーモジュールは、類似したエッジまたは面を見つける問題を「最近傍探索」問題に変換するので、選択ヘルパーモジュールは、ボールツリーまたはk-dツリーなどのよく知られた性能最適化技法を活用して、O(N2)からO(logn)までの探索アルゴリズムの複雑さを軽減するのに役立ち得る。選択ヘルパーモジュールが抽出する特徴の選択は、特徴が非常に迅速に(CPU使用率が非常に小さい)抽出されるが、十分な識別力があるようなものである。ここで、識別力とは、同じ3Dモデル化されたオブジェクトにおいて、類似したエッジ/面と非類似したエッジ/面とを区別する能力を意味する。
【0029】
選択ヘルパーモジュールは、各エッジから抽出される以下の特徴を選択する。
・エッジ長710(
図7A):[1つの実数]弧の開始と終了との間の直線である、弦長720とは区別して、エッジの開始からエッジの終了までの曲線に沿った距離(
図7A参照)。
・隣接面角725(
図7B):[2つの実数]エッジの開始およびエッジの終了における問題側で測定されたエッジに隣接する2つの面間の角度。これらの角度は、0~360度の範囲であり得る。エッジが凸状である場合、これらの角度は、180度よりも小さくなり、エッジが凹状である場合、これらの角度は、180度よりも大きくなる。この特徴は、エッジの開始および終了の両方で、エッジがどの程度凸状または凹状であるかを伝える。
・転向角730(
図7C、7D):[1つの実数]これは、エッジの開始方向とエッジの終了方向との間の角度である。この角度は、エッジがどの程度向きを変えているかを示す。
・曲率:[2つの実数]その開始および終了におけるエッジの曲率。この特徴は、エッジがその開始および終了でどの程度鋭く曲がるかを示す。
・弦長720に対するエッジ長710の比:[1つの実数]弦長は、エッジの開始点と終了点との間の直線距離を意味する。この比は、曲線の形状の強力な特性である。
・3つの主慣性モーメント:[3つの実数]これらは、エッジの慣性行列の固有値を見つけることによって(エッジを薄い単線とみなして)、計算される。主慣性モーメントは、エッジの形状によって決まり、特徴の識別力の増強を手助けする。
・頂角:[4つの実数]
О 左面における、その時のエッジの開始方向と前のエッジの終了方向との間の角度。
О 右面における、その時のエッジの開始方向と前のエッジの終了方向との間の角度。
О 左面における、その時のエッジの終了方向と次のエッジの開始方向との間の角度。
О 右面における、その時のエッジの終了方向と次のエッジの開始方向との間の角度。
・配向ベクトル:[6つの実数]この特徴は、ユーザが「Same Orientation」オプションをオンにした場合のみ、特徴ベクトルに含まれる。
О エッジの開始方向のx、y、およびz座標。
О エッジの終了方向のx、y、およびz座標。エッジの終了方向は、外方を指す(すなわち、エッジの外側方向に向かって)、エッジの末端における、エッジの接線の3Dの単位ベクトルとして表される、方向である。
【0030】
これらの特徴のそれぞれは、比較的小さなCPU使用量で抽出され得る。
【0031】
本開示内で使用される際、エッジの開始方向または終了方向とは、それぞれ、エッジの開始点、またはエッジの終了点における、エッジの接線の方向を指す。この約束に従って、開始方向および終了方向の両方がエッジから外方を指す。開始方向および終了方向の両方が、3次元の単位ベクトルとして表される。
【0032】
特に複雑な幾何学的表現を有する面では、正確なエッジ長および主慣性モーメントを計算することが、パフォーマンス集中になる場合がある。しかし、ほとんどのCADシステムは、エッジ形状に近似するポリライン(一続きの線分)の形態に軽量エッジ表現(エッジの視覚的レンダリングに使用される)を保つ。この近似表現を使用して、近似エッジ長および近似主慣性モーメントが、比較的素早く計算され得る。しばしば、CADシステムはまた、使用に時間がかかる、このような頻繁に使用される手段のキャッシュを保持する。利用可能ならば、キャッシュを使用することもできる。
【0033】
これまでのCADシステムでは、エッジパラメータ化方向に起因して問題が生じた可能性があり、CADシステムでは、エッジは、パラメータの形で表される。曲線上のどの点における接線方向も、パラメータ値が大きくなる方向になるように取られる。パラメータ化方向に応じて、結果として生じる接線方向は、1つの方向またはその反対方向であり得る。結果として、パラメータ化方向が互いに逆である2つの同一のエッジの接線方向は、互いに逆方向であり得、それらのベクトルが一致しないことをもたらす。
【0034】
この問題に対処するために、実施形態は、エッジごとに、特徴ベクトルを1つだけ計算するのではなく、特徴ベクトル対を計算する。同じエッジの逆パラメータ化では、第2の特徴ベクトルが計算される(すなわち、エッジの終了を開始とみなし、エッジの開始を終了とみなす)。これによって、2つの同一のエッジ間で、それらのパラメータ化方向に関係なく、それらの特徴ベクトルのうちの少なくとも1つが一致し、本発明のアルゴリズムがパラメータ化方向に左右されなくなることが確実になる。
【0035】
選択ヘルパーモジュールは、面ごとに抽出される以下の特徴を選択する。
・面面積:[1つの実数]面の1つ以上の境界ループによって囲まれた面積。
・そのパラメータの2乗に対する面面積の比:[1つの実数]この場合、周長は、面の境界エッジのすべての長さの合計を表す。
・3つの主慣性モーメント:[3つの実数]選択ヘルパーモジュールは、面の慣性行列を見つけることによって(面を薄板層とみなして)、これらを固有値として計算する。主慣性モーメントは、面の形状によって決まり、選択ヘルパーモジュールの識別力の増強を手助けする。
・平均方位:[3つの実数]この特徴は、ユーザが「Same Orientation」オプションをオンにした場合のみ、特徴ベクトルに含まれる。この場合、選択ヘルパーモジュールは、面の各ベクトルで計算された面法線方向の平均のx、y、およびz座標を計算する。面のいずれの点における面法線方向も、外方を指す、3Dの単位ベクトルとして表され、すなわち、面の問題側から離れている。
【0036】
特に複雑な幾何学的表現を有する面では、正確な面面積および主慣性モーメントを計算することが、パフォーマンス集中になる場合があることに留意されたい。しかし、ほとんどのCADシステムは、面形状に近似する三角形メッシュ(つながった三角形のセット)の形態に軽量面表現(面の視覚的レンダリングに使用される)を保つ。この近似表現によって、選択ヘルパーモジュールが近似面面積および近似主慣性モーメントを比較的素早く計算することが可能になる。利用可能であれば、CADシステムは、このような頻繁に使用される時間のかかる手段のキャッシュを保持することもできる。
【0037】
上で詳細に説明された選択ヘルパーモジュールの機能性を実行するための本システムは、コンピュータであり得、その一例が
図5の概略図に示されている。システム500は、プロセッサ502、記憶デバイス504、上述の機能性を定義するソフトウェア508が格納されているメモリ506、入力および出力(I/O)デバイス510(または周辺機器)、およびシステム500内の通信を可能にするローカルバスまたはローカルインターフェース512を含む。ローカルインターフェース512は、例えば、当技術分野において知られているような、1つ以上のバスまたは他の有線接続もしくは無線接続とすることができるが、これらに限定されるわけではない。ローカルインターフェース512は、通信を可能にするために、コントローラ、バッファ(キャッシュ)、ドライバ、リピータ、および受信機などの付加的な要素を備え得るが、それらは簡単にするために省かれている。さらに、ローカルインターフェース512は、上述の構成要素間の適切な通信を可能にするために、アドレス、制御装置、および/またはデータ接続を含み得る。
【0038】
プロセッサ502は、具体的にはメモリに506に格納された、ソフトウェアを実行するためのハードウェアデバイスである。プロセッサ502は、任意の特別注文のまたは市販のシングルコアプロセッサもしくはマルチコアプロセッサ、中央処理装置(CPU)、本システム500に関連するいくつかのプロセッサ間の補助プロセッサ、半導体ベースのマイクロプロセッサ(マイクロチップまたはチップセットの形態)、マクロプロセッサ、または一般的には、ソフトウェア命令を実行するための任意のデバイスとすることができる。
【0039】
メモリ506は、揮発性メモリ素子(例えば、ランダムアクセスメモリ(DRAM、SRAM、SDRAMなどのRAM))、および不揮発性メモリ素子(例えば、ROM、ハードドライブ、テープ、CDROMなど)のうちのいずれか1つまたは組み合わせを含み得る。また、メモリ506は、電子、磁気、光、および/または他のタイプの記憶媒体を組み込み得る。メモリ506が、様々な構成要素が互いに遠隔に位置するが、プロセッサ502によってアクセスされ得る、離散型アーキテクチャを有し得ることに留意されたい。
【0040】
ソフトウェア508は、本発明による、システム500によって実行される機能性を定義する。メモリ506内のソフトウェア508は、1つ以上の別々のプログラムを含み得、プログラムのそれぞれは、以下に述べるように、システム500の論理機能を実施するための実行可能命令の順序付きリストを含む。メモリ506は、オペレーティングシステム(O/S)520を含み得る。オペレーティングシステムは、本質上、システム500内のプログラムの実行を制御し、スケジューリング、入力-出力制御、ファイルおよびデータ管理、メモリ管理、ならびに通信制御および関連サービスを提供する。
【0041】
I/Oデバイス510には、以下に限定されるわけではないが、入力デバイス、例えば、キーボード、マウス、スキャナ、マイクロフォンなどが含まれ得る。また、I/Oデバイス510には、以下に限定されるわけではないが、出力デバイス、例えば、プリンタ、ディスプレイなども含まれ得る。最後に、I/Oデバイス510には、以下に限定されるわけではないが、入力および出力の両方を介して通信するデバイス、例えば、変調器/復調器(別のデバイス、システム、またはネットワークにアクセスするためのモデム)、無線周波数(RF)もしくは他のトランシーバ、電話インターフェース、ブリッジ、ルータ、または他のデバイスがさらに含まれ得る。
【0042】
システム500が動作しているとき、プロセッサ502は、メモリ506内に格納されたソフトウェア508を実行して、メモリ506との間でデータをやり取りし、上で説明されたように、ソフトウェア508に従ってシステム500の動作を全体的に制御するように構成される。
【0043】
システム500の機能性が働いているとき、プロセッサ502は、メモリ506内に格納されたソフトウェア508を実行して、メモリ506との間でデータをやり取りし、ソフトウェア508に従ってシステム500の動作を全体的に制御するように構成される。オペレーティングシステム520がプロセッサ502によって読み込まれ、おそらくプロセッサ502内にバッファリングされ、次に実行される。
【0044】
システム500がソフトウェア508に実装されている場合、システム500を実施するための命令が、任意のコンピュータ関連のデバイス、システム、または方法によって、またはそれらに関連して用いられる任意のコンピュータ可読媒体に格納され得る。このようなコンピュータ可読媒体は、いくつかの実施形態では、メモリ506または記憶デバイス504のいずれかまたは両方に対応し得る。本明細書の中では、コンピュータ可読媒体は、コンピュータ関連のデバイス、システム、または方法によって、またはそれらに関連して用いられる、コンピュータプログラムを含むかまたは格納することができる電子デバイス、磁気デバイス、光デバイス、または他の物理的デバイスもしくは物理的手段である。システムを実装するための命令は、プロセッサまたは他のこのような命令実行システム、装置、またはデバイスによって、またはそれらに関連して用いられる、任意のコンピュータ可読媒体に組み入れられ得る。プロセッサ502が例として述べられているが、いくつかの実施形態では、このような命令実行システム、装置、またはデバイスが、命令実行システム、装置、またはデバイスから命令を取り出し、命令を実行することができる、任意のコンピュータベースのシステム、プロセッサ内蔵システム、または他のシステムであり得る。本明細書の中では、「コンピュータ可読媒体」は、プロセッサまたは他のこのような命令実行システム、装置、またはデバイスによって、またはそれらに関連して用いられる、プログラムを格納する、伝える、伝播する、または運ぶことができる、任意の手段とすることができる。
【0045】
このようなコンピュータ可読媒体は、例えば、電子、磁気、光、電磁、赤外線、もしくは半導体のシステム、装置、デバイス、または伝播媒体とすることができるが、それらに限定されるわけではない。コンピュータ可読媒体のより具体的な例(非包括的リスト)には、1つ以上の電線を備える電気接続(電子)、ポータブルコンピュータディスケット(磁気)、ランダムアクセスメモリ(RAM)(電子)、読み取り専用メモリ(ROM)(電子)、消去可能プログラマブル読み取り専用メモリ(EPROM、EEPROM、またはフラッシュメモリ)(電子)、光ファイバ(光)、およびポータブルコンパクトディスク読み取り専用メモリ(CDROM)(光)が含まれるであろう。コンピュータ可読媒体が、プログラムが、例えば、紙または他の媒体の光走査を介して電子的に取り込まれ、次に、必要に応じて、コンパイルされ、解釈され、そうでなければ適切に処理され、次にコンピュータメモリに格納されるのに従って、プログラムが印刷される紙または別の適切な媒体でもあり得ることに留意する。
【0046】
システム500がハードウェアに実装されている、代替の実施形態において、システム500は、データ信号に論理関数を実装するための論理ゲートを有する離散論理回路、適切な組み合わせ論理回路を有する特定用途向け集積回路(ASIC)、プログラマブルゲートアレイ(PGA)、フィールドプログラマブルゲートアレイ(FPGA)など、それぞれが当技術分野においてよく知られている、テクノロジーのいずれかまたは組み合わせで実装され得る。
【0047】
上記の実施形態は、3Dモデル化されたオブジェクトにおいてエッジを選択するためのいくつかのこれまでの方法に優る利点を提供し、その利点の例を以下に述べる。
図8Aは、接線伝播の一例を示す。ユーザが、フィレット加工するまたは面取りする対象のエッジを選択すると、CADシステムは、選択されたエッジがその一部である、接線方向に接続されたエッジの連鎖を自動的に選択する。ただし、選択されたエッジに接線方向に接続されたエッジのみが選択され得る。3Dモデル化されたオブジェクトの他の同様のエッジは選択することができない。
【0048】
図8Bは、同じ境界線を共有するすべてのエッジを選択する一例を示す。ユーザがエッジを選択すると、CADシステムは、ユーザに、ユーザ選択のエッジと同じ面境界線(ループとも呼ばれる)を共有するすべてのエッジの選択に及ばせる。ただし、ここでは、選択されたエッジと同じ面境界線を共有するエッジのみが選択され得る。3Dモデル化されたオブジェクト内の他の同様のエッジは、選択されない。
【0049】
図8Cは、ボックス選択の一例を示す。ここでは、ユーザは、コンピュータ画面上に閉領域(通常、長方形であるが、いずれの形でもよい)を明示し、その領域の中にたまたまある(部分的にまたは完全に)エッジまたは面のすべてが選択される。ただし、この選択技法は、エッジ/面の形状またはサイズが同様であるかどうかには基づいていない。
図8Cに示すように、表示されたモデルの見方によっては、2つの同様のエッジの周りのボックスは、同様のエッジの異種選択の結果となる可能性がある。
【0050】
別のこれまでの選択技法では、CADシステムにおいて、同一のデータ構造表現を有するエッジまたは面を探す。ただし、この技法は、同一の形状であるエッジまたは面が、必ずしもCADシステムにおいて同一のデータ構造表現を有するとは限らないことから、うまくいかない可能性がある。例えば、直線エッジまたは円形エッジは、その数式によって直接表され得るが、NURBS(非一様有理Bスプライン)によっても表され得る。また、2つの異なるNURBS表現は、形状が同一である3D曲線を表し得る。したがって、同一のデータ構造表現を探すことは、同一の形状を探すことの間違いを起こしやすい技法である。
【0051】
さらに、典型的な今日のCADシステムは、幾何学的形状が、前に作り出されたエッジまたは面から来る複数の曲線および表面の定義によって決まり得る再帰的評価手順によって表され得る、曲線および表面の複雑な手順表現をサポートする。2つの手順通りに表された曲線および表面が同一であるかどうかを判断することは、複雑で時間のかかる可能性がある。また、所与の3Dモデル化されたオブジェクト内のエッジおよび面ごとに同様のエッジおよび面を探すことは、その性能を大きなモデルではうまく高めることができないO(N2)アルゴリズムである。
【0052】
点抽出法は、エッジ/面選択用の以前から知られている別の技法である。それらのデータ構造表現を見ることなしに、2つの曲線または表面がぴったり同一であるかどうか確かめることは、それが、曲線/表面ごとに無数の点の一致を調べることを伴うことから、実際的ではない。結果として、より一般的に使用される探索方法は、正確な相似性を目指すというよりはむしろ、曲線/表面がほぼ同様であるかどうかを判断しようとするだけである。これは、点抽出法を使用して行われる。1つの曲線または表面からいくつかの(有限個の)点が標本抽出され、次に、それらは、適切に変換され、それらが他の曲線または表面にあるかどうかが調べられる。ただし、点が曲線/表面にあるかどうか(反転とも呼ばれる)を確認することが、通常、費用が嵩む反復数値アルゴリズムを組み込むことから、点抽出法は時間のかかるものである。結果として、特に数百のエッジを有するモデル化されたオブジェクトの場合、リアルタイムのユーザインタラクションの間に同様のエッジを特定するのには、点抽出法は適さない。繰り返して言うが、所与の3Dモデル化されたオブジェクト内のエッジおよび面ごとに同様のエッジおよび面を探すことは、その性能を大きなモデルではうまく高めることができないO(N2)アルゴリズムである。
【0053】
まとめると、本発明の範囲または趣旨から逸脱しない限り、本発明の構造に様々な修正および変更がなされ得ることが、当業者には分かるであろう。以上のことから、本発明が、それらが以下の特許請求の範囲およびそれらの均等物の範囲内にあるとの条件で、本発明の修正形態および変形形態に及ぶことが意図されている。