JP2023143870A - スケッチ加工 - Google Patents

スケッチ加工 Download PDF

Info

Publication number
JP2023143870A
JP2023143870A JP2023047428A JP2023047428A JP2023143870A JP 2023143870 A JP2023143870 A JP 2023143870A JP 2023047428 A JP2023047428 A JP 2023047428A JP 2023047428 A JP2023047428 A JP 2023047428A JP 2023143870 A JP2023143870 A JP 2023143870A
Authority
JP
Japan
Prior art keywords
sketch
manifold
sketches
input
closed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2023047428A
Other languages
English (en)
Inventor
メーア エロワ
Mehr Eloi
ジュールダン アリアンヌ
Jourdan Ariane
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dassault Systemes SE
Original Assignee
Dassault Systemes SE
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dassault Systemes SE filed Critical Dassault Systemes SE
Publication of JP2023143870A publication Critical patent/JP2023143870A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/23Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/12Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/17Mechanical parametric or variational design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/12Edge-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • G06V30/333Preprocessing; Feature extraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2113/00Details relating to the application field
    • G06F2113/10Additive manufacturing, e.g. 3D printing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Architecture (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

【課題】スケッチ加工のために改善されたソリューションを形成する方法、システム及びプログラムを提供する。【解決手段】方法は、一つ又は複数の入力スケッチを提供するステップ及び入力スケッチから一つ又は複数の出力スケッチを決定するステップを備える。各出力スケッチは、閉多様体である。出力スケッチを決定するステップは、各多様体入力スケッチを含む多様体スケッチのセットを組み立てるステップを含む。多様体スケッチのセットを組み立てるステップは、夫々の非多様体入力スケッチの各々について、夫々の非多様体入力スケッチにおける少なくとも一つのスケッチ内交差に基づいて、二つ以上の夫々の多様体スケッチを決定するステップを含む。出力スケッチを決定するステップは、一つ又は複数の閉多様体スケッチを形成するように、少なくとも二つの交差を共有する、組み立てられたセットにおける多様体スケッチの各対を結合するステップを含む。【選択図】図1

Description

本開示は、コンピュータプログラムおよびシステムの分野に関し、より具体的には、スケッチ加工(sketch-processing)のための方法、システム、およびプログラムに関連する。
オブジェクトの設計、エンジニアリング、および製造のために、多数のシステムおよびプログラムが市場で提供されている。CADは、コンピュータ支援設計(Computer-Aided Design)の頭字語(acronym)であり、例えば、オブジェクトを設計するためのソフトウェア・ソリューションに関連している。CAEは、コンピュータ支援エンジニアリング(Computer-Aided Engineering)の頭字語であり、例えば、将来の製品における物理的な動作のシミュレーションを行うためのソフトウェア・ソリューションに関連している。CAMは、コンピュータ支援製造(Computer-Aided Manufacturing)の頭字語であり、例えば、製造のプロセスおよび操作を定義するためのソフトウェア・ソリューションに関連している。このようなコンピュータ支援設計システムでは、グラフィカル・ユーザー・インターフェース(graphical user interface)が技術の効率性に関して重要な役割を果たしている。これらの技術は、製品ライフサイクル管理(PLM)システムに組み込まれている場合がある。PLMとは、企業が製品データを共有し、共通のプロセスを適用し、拡張エンタープライズ(extended enterprise)の概念全体に亘って、構想から製品寿命までの製品開発に、企業の知識を活用することに役立つ、ビジネス戦略を指している。(CATIA、ENOVIA、SIMULIA、およびDELMIAという商標の下に)ダッソー・システムズが提供するPLMソリューションは、製品エンジニアリングの知識を整理するエンジニアリング・ハブ、製造エンジニアリングの知識を管理する製造ハブ、およびエンジニアリング・ハブおよび製造ハブの両方において企業の統合および接続を可能にするエンタープライズ・ハブを提供している。このシステムは、一纏めにして、製品、プロセス、およびリソースを対応付けるオープン・オブジェクト・モデル(open object model)を提供して、動的な知識ベースの製品作成と、最適化された製品定義、製造準備、生産、およびサービスを推進する意思決定支援とを可能にする。
既存のソリューションでは、限定的および/または不十分なスケッチの加工のみが可能となる。特に、それらの幾つかは、ニューラル・ネットワーク・アプローチ(neural network approach)に基づいており、スケッチ、図面(drawings)、または画像(pictures)から2Dスプライン(splines)または3D形状(shapes)を生成することを可能にする。しかしながら、それらの何れもが、スケッチ加工には十分な結果をもたらしていない。
このような関連の中では、スケッチ加工のために改善されたソリューション(solution)が依然として必要となっている。
それ故に、スケッチ加工のためのコンピュータ実装方法(computer-implemented method)を提供する。このスケッチ加工のための方法は、「スケッチ加工方法(the sketch-processing method)」と呼ばれる。スケッチ加工方法は、一つまたは複数の入力スケッチを提供するステップ(providing)を備える。一つまたは複数の入力スケッチは、少なくとも一つの非多様体スケッチ(non-manifold sketch)を含む。各非多様体スケッチは、少なくとも一つのスケッチ内交差(intra-sketch intersection)を有するスケッチである。代替的または追加的に、一つまたは複数の入力スケッチは、少なくとも二つのスケッチ間交差(inter-sketch intersections)を共有する、少なくとも一対のスケッチを含む。スケッチ加工方法は、一つまたは複数の入力スケッチから一つまたは複数の出力スケッチを決定するステップ(determining)を備える。各出力スケッチは、閉多様体(closed and manifold)である。一つまたは複数の出力スケッチを決定するステップは、各多様体入力スケッチを含む多様体スケッチのセットを組み立てるステップ(constructing)を含む。多様体スケッチのセットを組み立てるステップは、各非多様体入力スケッチについて、それぞれの非多様体入力スケッチのうちの少なくとも一つのスケッチ内交差に基づいて、二つ以上のそれぞれの多様体スケッチを決定するステップ(determining)を含む。組み立てられたセットは、それぞれの非多様体入力スケッチの各々について決定された各多様体スケッチをさらに含む。一つまたは複数の出力スケッチを決定するステップは、一つまたは複数の閉多様体スケッチを形成するように、少なくとも二つの交差を共有する、組み立てられたセットにおける多様体スケッチの各対を結合するステップ(combining)を含む。一つまたは複数の出力スケッチは、組み立てられたセットにおける各閉スケッチ(closed sketch)と、結合するステップ(combining)によって形成された各閉多様体スケッチを含む。
スケッチ加工方法は、一つまたは複数の以下のものを備え得る。
-各入力スケッチは方向付けされており、二つ以上のそれぞれの多様体スケッチを決定するステップ(determining)は、それぞれの非多様体入力スケッチを再帰的に分割するステップ(splitting)であって、
〇それぞれの非多様体入力スケッチを閲覧するステップ(browsing)と、
〇スケッチ内交差の点に遭遇するステップ(encountering)と、
〇スケッチ内交差における遭遇した点においてそれぞれの非多様体入力スケッチを分割し(splitting)、それによって二つのスケッチ片(sketch piece)を形成するステップ(forming)と、
〇各スケッチ片について、
・スケッチ片がスケッチ内交差を有しない場合、スケッチ片を二つ以上のそれぞれの多様体スケッチのうちの一つとして決定するステップ(determining)、または
・スケッチ片が少なくとも一つのスケッチ内交差を有する場合、スケッチ片に対して再帰的な分割(splitting)を繰り返すステップ(repeating)と
を含む、再帰的に分割するステップ
を含み、
-一つまたは複数の入力スケッチは、一つまたは複数の閉非多様体入力スケッチ(closed non-manifold input sketch)を含んでおり、それぞれの閉非多様体入力スケッチの各々について、それぞれの非多様体入力スケッチを分割するステップ(splitting)は、
〇スケッチ内交差の点から開始して、非多様体入力スケッチを閲覧するステップ(browsing)と、
〇スケッチ内交差における別の点に遭遇するステップ(encountering)と、
〇スケッチ内交差におけるその点と別の点との間における非多様体入力スケッチからスケッチ片を抽出し(extracting)、それによって二つのスケッチ片のうちの一つと、非多様体入力スケッチにおける残りのスケッチ片とを定義するステップ(defining)と、
〇残りのスケッチ片を二つのスケッチ片のうちの別の一つとして定義するステップ(defining)と
を含み、および/または
-一つまたは複数の入力スケッチは、一つまたは複数の開非多様体入力スケッチ(open non-manifold input sketch)を含んでおり、それぞれの閉非多様体入力スケッチの各々について、それぞれの非多様体入力スケッチを分割するステップは、
〇スケッチ内交差の点から開始して、非多様体入力スケッチを閲覧するステップ(browsing)と、
〇スケッチ内交差における別の点に遭遇するステップ(encountering)と、
〇スケッチ内交差におけるその点と別の点との間における非多様体入力スケッチからスケッチ片を抽出し(extracting)、それによって非多様体入力スケッチにおける二つのスケッチ片のうちの一つと、残り二つのスケッチ片とを定義するステップ(defining)であって、残り二つの各スケッチ片は開いている、ステップと、
〇残り二つのスケッチ片を接合し(joining)、それによって二つのスケッチ片のうちの別の一つを形成するステップ(forming)と
を含み、
-多様体スケッチの各対(each pair)は、第一の多様体スケッチおよび第二の多様体スケッチを含んでおり、一つまたは複数の閉スケッチを形成するステップは、
〇第一の多様体スケッチおよび第二の多様体スケッチの間において第二の多様体スケッチに沿って連続する交差の各対について、
・これら二つの連続する交差によって区切られた第二の多様体スケッチの部分(portion)を抽出するステップ(extracting)と、
・これら二つの連続する交差の間における第一の多様体スケッチを分割し(splitting)、それによって第一の多様体スケッチにおける一つまたは二つのセグメント(segment)を取得するステップ(obtaining)と、
・第一の多様体スケッチの各セグメントを第二の多様体スケッチにおける抽出された部分に再結合し(recombining)、それによって一つまたは二つの閉多様体スケッチを取得するステップ(obtaining)と
を含み、
-組み立てられた多様体スケッチのセットは、一意のスケッチ(unique sketch)によって構成されており、
-一つまたは複数の入力スケッチを提供するステップ(providing)は、
〇スケッチ断片(sketch fragments)のセットを取得するステップ(obtaining)と、
〇取得されたスケッチ断片のセットから、接続されたスケッチ断片における一つまたは複数の集約体(aggregations)を生成し(generating)、それによって一つまたは複数の入力スケッチを取得するスケッチ(obtaining)と
を含み、
-各断片は、二つの端部(extremities)を有しており、二つの断片は、一方の端部が他方の端部から所定の閾値未満で離間している場合に接続可能であり、接続されたスケッチ断片における一つまたは複数の集約体を生成するステップ(generating)は、組み立てられた各スケッチについて、組み立てられたスケッチに接続可能であるセットから他のスケッチ断片が無くなるまで、スケッチ断片を連続的に接続することにより、そのセットの各スケッチ断片について、スケッチ断片を含む一つまたは複数のスケッチを組み立てるステップ(constructing)を含み、
-スケッチ断片を取得するステップは、ユーザーとの対話(user interaction)に応じて、および/または
〇・図面(drawings)、
・画像上において自動的に検出された辺(edges)、および/または
・画像上において手動で引いて描かれた(traced)辺
において、一つまたは複数の曲線(curves)を適合させること(fitting)により、および/または一つまたは複数の特定の幾何学的曲線(specific geometric curves)を検出すること(detecting)により、および/または
〇3Dスキャンにおいて検出された輪郭ベース(profile-based)の近似表面(approximate surfaces)の投影に方向付けられた曲線を適合させることにより、
実行され、および/または
-組み立てられた多様体スケッチのセットは、閉スケッチによって構成されている。
2D形状(2D shape)を生成するためのコンピュータ実装方法をさらに提供する。2D形状を生成するための方法は、「2D生成方法(the 2D generating method)」と呼ばれる。2D生成方法は、スケッチ加工のための方法を実行し(performing)、それによって一つまたは複数の閉多様体スケッチを出力するステップ(outputting)を備える。2D生成方法は、出力された一つまたは複数の閉多様体スケッチに基づいて、一つまたは複数の2D表面(2D surfaces)を生成するステップ(generating)を備える。各2D表面は、決定された一つまたは複数の閉多様体スケッチのうちの一つの内側にある。2D生成方法は、生成された一つまたは複数の2D表面に基づいて、2D形状を形成するステップ(forming)を備える。
3D形状(3D shape)を生成するためのコンピュータ実装方法をさらに提供する。3D形状を生成する方法は、「3D生成方法(the 3D generating method)」と呼ばれる。3D生成方法は、スケッチ加工のための方法を実行し(performing)、それによって一つまたは複数の閉多様体スケッチを出力するステップ(outputting)を備える。3D生成方法は、出力された一つまたは複数の閉多様体スケッチに基づいて、一つまたは複数の3D部分(3D portions)を生成するステップ(generating)を備える。各3D部分は、出力された一つまたは複数の閉多様体スケッチのうちの一つに関する押出し(extrusion)または回転(revolution)である。3D生成方法は、生成された一つまたは複数の3D部分に基づいて、3D形状を形成する(forming)ステップを備える。
輪郭ベースの体積(volumes)を近似表面に適合させるためのコンピュータ実装方法をさらに提供する。輪郭ベースの体積を近似表面に適合させるための方法は、「適合方法(the fitting method)」と呼ばれる場合がある。適合方法は、近似表面を表面部分にセグメント化するステップ(segmenting)を備える。適合方法は、3D輪郭ベースの体積を生成するための一つまたは複数の方向(そのような各方向は、3D輪郭ベースの体積の生成を定義/指定する方向、例えば、押出し方向または回転方向である)と、各方向について、一つまたは複数のそれぞれの表面部分とを検出するステップ(detecting)を備える。適合方法は、一つまたは複数の検出された各方向について、一つまたは複数のそれぞれの表面部分の各々を、その方向に直交する平面に投影することにより、スケッチ断片のセットを生成するステップ(generating)を備える。適合方法は、一つまたは複数の検出された方向の各々について、スケッチ断片の生成されたセットに対してスケッチ加工のための方法を実行し(performing)、それによって一つまたは複数の閉多様体スケッチを出力するステップ(outputting)を備える。適合方法は、一つまたは複数の検出された方向の各々について、生成された一つまたは複数の閉多様体スケッチから3D輪郭ベースの体積を生成するステップ(generating)を備える。3D輪郭ベースの体積を生成するステップは、検出された方向に従って、生成された一つまたは複数の閉多様体スケッチを押し出すステップ(extruding)を備え得る。その場合、検出された方向は押し出し方向(extrusion direction)であり得ており、3D体積(3D volume)は3D押し出し体積(3D extrusion volume)であり得る。あるいは、3D輪郭ベースの体積を生成するステップは、検出された方向に従って、生成された一つまたは複数の閉多様体スケッチを回転させるステップ(revolving)を備え得る。その場合、検出された方向は回転方向(revolution direction)であり得ており、3D体積は3D回転体積(3D revolution volume)であり得る。
スケッチ加工方法、2D生成方法、3D生成方法、および/または適合方法を実行するための命令を含むコンピュータプログラム(computer program)をさらに提供する。
コンピュータプログラムをそこに記録しているコンピュータ可読記憶媒体(computer readable storage medium)をさらに提供する。データ記憶媒体は、例えば、SaaS(サービスとしてのソフトウェア(Software as a service))もしくは他のサーバ、またはクラウドベースのプラットフォーム(cloud-based platform)などにおいて、非一時的コンピュータ可読記憶媒体(non-transitory computer-readable medium)を形成または提供する装置において含まれるように構成され得る。
コンピュータプログラムをそこに記録しているメモリに結合されたプロセッサを備えるシステムをさらに提供する。システムは、プロセッサに結合されたグラフィカル・ユーザー・インターフェースをさらに備え得る。
ここで、添付の図面を参照して、非限定的な例を説明する。
スケッチ加工方法の一例に関するフローチャートを示す図である。 入力スケッチを提供するステップの二例を例証する図である。 入力スケッチを提供するステップの二例を例証する図である。 出力スケッチを決定するステップの例を例証する図である。 出力スケッチを決定するステップの例を例証する図である。 集約される前に分割されるスケッチ断片を交差させるステップを例証する図である。 開スケッチ(open sketches)を閉じ込むステップ(closing)の例を例証する図である。 開スケッチを閉じ込むステップ(closing)の例を例証する図である。 スケッチ加工方法によるスケッチ加工の二例を例証する図である。 スケッチ断片のセットの例を例証する図である。 2Dおよび3D生成方法の二例を例証する図である。 適合方法の一例を例証する図である。 3D生成方法の一例を例証する図である。 システムのグラフィカル・ユーザー・インターフェースの一例を示す図である。 システムの一例を示す図である。
[詳細な説明]
図1におけるフローチャートを参照して、スケッチ加工のためのコンピュータ実装方法を提示する。スケッチ加工のための本方法は、スケッチ加工方法と呼ばれる。スケッチ加工方法は、一つまたは複数の入力スケッチを提供するステップ(providing)S10を備える。一つまたは複数の入力スケッチは、少なくとも一つの非多様体スケッチを含む。各非多様体スケッチは、少なくとも一つのスケッチ内交差を有するスケッチである。代替的または追加的に、一つまたは複数の入力スケッチは、少なくとも二つのスケッチ間交差を共有する、少なくとも一対のスケッチを含む。スケッチ加工方法は、一つまたは複数の入力スケッチから一つまたは複数の出力スケッチを決定するステップ(determining)S20を備える。各出力スケッチは、閉多様体である。一つまたは複数の出力スケッチを決定するステップは、各多様体入力スケッチを含む多様体スケッチのセットを組み立てるステップ(constructing)S210を含む。組み立てられたセットの各スケッチは、多様体である。多様体スケッチのセットを組み立てるステップは、それぞれの非多様体入力スケッチの各々に関して、それぞれの非多様体入力スケッチにおける少なくとも一つのスケッチ内交差に基づいて、二つ以上のそれぞれの多様体スケッチを決定するステップ(determining)S211を含む。組み立てられたセットは、S211において決定された各多様体スケッチをさらに含む。換言すると、S210において組み立てられたセットには、各多様体入力スケッチと、S211において決定された各多様体スケッチとが入力される。一つまたは複数の出力スケッチを決定するステップは、一つまたは複数の閉多様体スケッチを形成するように、少なくとも二つの交差を共有する、組み立てられたセットにおける多様体スケッチの各対を結合するステップ(combining)S220を含む。一つまたは複数の出力スケッチは、組み立てられたセットの各閉スケッチと、結合するステップによって形成された各閉多様体スケッチを含む。このようなスケッチ加工方法は、スケッチ加工のための改善されたソリューションを形成する。
とりわけ、スケッチ加工方法では、一つまたは複数の入力スケッチから一つまたは複数の閉多様体スケッチを生成することを可能にする。実際、スケッチ加工方法は、第一に、多様体スケッチのセットを組み立てるステップ(constructing)と、第二に、組み立てられたセットから多様体スケッチの対を結合するステップ(combining)とに基づいて、それぞれ閉多様体である一つまたは複数の出力スケッチを決定する。一つまたは複数の出力スケッチにおけるこの決定は、特に効率的であり、決定された一つまたは複数の閉多様体スケッチのセットが比較的網羅的であることを可能にする(すなわち、一つまたは複数の入力スケッチ、またはその一部から生成され得る、それぞれ意味のある閉多様体スケッチを含む)。最初に、多様体スケッチのセットを組み立てるステップと、次いで、少なくともそのセット内の交差を共有するスケッチの対を結合するステップとは、この結果を達成するための効率を改善する。
特に、多様体スケッチのセットの作成は、入力スケッチの各々をスケッチ断片に切り取るステップ(cutting)と、スケッチ断片における可能な全ての組み合わせを構築するステップ(building)とに存在する(consist in)ことになる、強引なソリューションと比較して、より迅速かつ確実な方法で結果に到達することを可能にする。また、スケッチ加工方法は、多様体であり、少なくとも二つの交差を共有するスケッチの対を結合し、これにより、関連する網羅的なセットを迅速かつ少ない組み合わせ数で取得することが可能になる(強引なソリューション(brute force solution)における切断するステップ(cutting)は、高い組み合わせの複雑さ(high combinational complexity)を引き起こす)。そのため、スケッチ加工方法では、結果の網羅性(exhaustiveness)とそれに到達するための計算時間(computation time)との間で適切な妥協(relevant compromise)をすることが可能になる。
さらに、スケッチ加工方法は、ニューラル・ネットワーク・アプローチ(neural network approach)に基づく従来技術の方法(prior art methods)における欠点(drawbacks)に悩まされることはない。実際、第一に、スケッチ加工方法は、スケッチの局所的な幾何学的属性(例えば、直線性(linearity)または円形性(circularity)など)を効率的かつ正確に活用する。スケッチ加工方法により、入力スケッチに完全に適合させるスケッチを生成することが可能になる。さらに、決定された出力スケッチは、保管(storage)の点でより効率的であり、編集時にユーザーが操作するにはより直感的(more intuitive)である。第二に、スケッチ加工方法は、深層学習アプローチ(deep learning approaches)とは異なり、訓練データ(training data)に依存することがない。これにより、訓練のために大規模なデータセット(dataset)を収集する必要が回避される。また、出力が不明である入力が、出力が学習されたものである入力と違い過ぎる場合に、性能の低下が回避される(例えば、スケッチ加工方法は、椅子(chairs)を表すスケッチと、自動車(cars)を表すスケッチとに対して同じように、巧みに実行し得る)。
さらに、スケッチ加工方法は、一つまたは複数の入力スケッチから元の形状を人間工学的に(ergonomically)組み立て直す(reconstructing)ために役立ち得る。実際、生成された一つまたは複数の出力スケッチの各々は、閉多様体であり、そのため、有効な2D形状または3D形状を取得することを可能にする。したがって、スケッチ加工方法は、元の形状を形成するために有効な2D表面または3D部分を自動的に取得するための方法を提供することにより、元の形状を組み立て直すことを可能にする。
「製造製品/機械部品/機械製品を設計するステップ(Designing a manufacturing product/mechanical part/mechanical product)」は、製造製品/機械部品/機械製品のモデル化オブジェクト(3Dまたは2D)を作成するステップ(elaborating)におけるプロセスの少なくとも一部である、任意のアクションまたは一連のアクションを指定する。スケッチ加工方法、2D生成方法、3D生成方法、および/または適合方法は、そのような設計プロセスを形成し得る、または設計プロセスの少なくとも一部を形成し得る。このプロセスは、次のステップを備え得る。
-一つまたは複数のスケッチを取得するステップ(obtaining)。一つまたは複数のスケッチを取得するステップは、各スケッチについて、ユーザーの対話に基づいて(例えば、タッチスクリーン(touch screen)上にスケッチを描画することによって)スケッチを定義するステップ(defining)、ならびに/またはスキャンおよび/もしくは画像から一つまたは複数のスケッチを自動的に決定するステップ(determining)を含み得る。一つまたは複数のスケッチを取得するステップについては、以下でより詳細に説明される。
-スケッチ加工方法を実行し(performing)、それによって一つまたは複数の閉多様体スケッチを出力するステップ(outputting)であって、取得された一つまたは複数のスケッチは、提供された一つまたは複数の入力スケッチである、ステップ。
-2D/3D生成方法に従って、出力された一つまたは複数の閉多様体スケッチに基づいて、2D/3D形状を生成するステップ(generating)。
-任意選択として、生成された2D/3D形状を編集するステップ(editing)。編集するステップは、生成された2D/3D形状に基づいてシミュレーションを実行し(performing)、シミュレーションの結果を分析し(analyzing)、それに応じて生成された2D/3D形状を変更するステップ(modifying)を含み得る。
-設計プロセスは、生成された2D/3D形状(任意で編集)に基づいて、製造製品/機械部品/機械製品を(例えば、自動的に)製造するステップ(manufacturing)によって、後続され得る。
2D生成方法、3D生成方法、および/または適合方法は、通常、形成された2D形状、形成された3D形状、および/または生成された3D押し出し体積などの、モデル化オブジェクトを操作する。モデル化オブジェクトは、例えば、データベースなどに保存されたデータによって定義される任意のオブジェクトである。拡大解釈すると、「モデル化オブジェクト(modeled object)」という表現は、データ自体を指している。システムの種類に応じて、モデル化オブジェクトは、様々な種類のデータによって定義される可能性がある。システムは、実際、CADシステム、CAEシステム、CAMシステム、PDMシステム、および/またはPLMシステムの任意の組み合わせであり得る。これらの様々なシステムでは、モデル化オブジェクトは、対応するデータによって定義される。したがって、CADオブジェクト、PLMオブジェクト、PDMオブジェクト、CAEオブジェクト、CAMオブジェクト、CADデータ、PLMデータ、PDMデータ、CAMデータ、CAEデータについて言及し得る。しかしながら、これらのシステムは、他のものと排他的ではなく、というのは、モデル化オブジェクトは、これらのシステムの任意の組み合わせに対応するデータによって定義される場合があるためである。以下に提供されるそのようなシステムの定義から明らかとなるように、そのため、システムは、CAD、CAE、PLM、および/またはCAMシステムの何れにもなり得る、
CADソリューション(例えば、CADシステムまたはCADソフトウェアなど)とは、CATIAのような、モデル化オブジェクトのグラフィック表現、および/またはモデル化オブジェクトの構造化表現(例えば、特徴ツリーなど)に基づいて、モデル化オブジェクトを設計するために少なくとも適合した任意のシステム、ソフトウェア、またはハードウェアをさらに意味する。この場合、モデル化オブジェクトを定義するデータは、モデル化オブジェクトの表現を可能にするデータを含む。CADシステムは、例えば、辺(edges)または直線(lines)を使用して、場合によっては面(faces)または表面(surfaces)を使用して、CADモデル化オブジェクトの表現を提供し得る。直線、辺、または表面は、例えば、非一様有理Bスプライン(non-uniform rational B-splines)(NURBS)などの、種々の方法で表現され得る。具体的には、CADファイルには仕様(specifications)が含まれており、そこから幾何学的形状(geometry)が生成され得るが、これにより、順番に表現を生成することが可能になる。モデル化オブジェクトの仕様は、単一のCADファイル、または複数のCADファイルに保存され得る。CADシステムにおいてモデル化オブジェクトを表すファイルの典型的なサイズは、部品当たり1メガバイトの範囲内である。また、モデル化オブジェクトは、通常、何千もの部品の組み立て品(assembly)であり得る。
CADの関連では、モデル化オブジェクトは、通常、2Dまたは3Dのモデル化オブジェクトであり得ており、例えば、部品、もしくは部品の組み立て品、または製品の組み立て品などの、製品を表している。2Dまたは3Dモデル化オブジェクトは、製造製品、すなわち製造される製品であり得る。「3Dモデル化オブジェクト(3D modeled object)」とは、その3D表現を可能にするデータによってモデル化されている任意のオブジェクトを意味している。3D表現により、あらゆる角度からの部品の表示が可能となる。例えば、3Dモデル化オブジェクトは、3Dで表現されている場合、その軸の何れか、または表現が表示されている画面内の任意の軸を中心に取り扱われ(handled)および回転され得る。これは、とりわけ、3Dモデル化されていない2Dアイコンを除外する。3D表現の表示は、設計を容易にする(すなわち、設計者が統計的に自身のタスク(task)を達成する速度が向上する)。製品の設計は製造プロセスの一部であるため、これにより業界における製造プロセスが迅速化する。
2Dまたは3Dモデル化オブジェクトは、(例えば、機械などの)部品、または部品の組み立て品(または、方法の観点から部品の組み立て品が部品自体と見做されるか、または方法が組み立て品の各部分に独立して適用される場合があるため、同等に部品の組み立て品)、またはより一般的には、任意の剛体の組み立て品(rigid body assembly)(例えば、可動機構(mobile mechanism))などの、例えば、CAD/CAEソフトウェア・ソリューション、またはCAD/CAEシステムによるその仮想設計(virtual design)の完了後に、現実世界で製造される製品の幾何学的形状を表し得る。CAD/CAEソフトウェア・ソリューションにより、航空宇宙(aerospace)、建築(architecture)、建設(construction)、消費財(consumer goods)、高技術機器(high-tech devices)、産業機器(industrial equipment)、輸送(transportation)、海洋(marine)、および/もしくは海底油田(offshore oil)/ガス生産(gas production)、または交通機関(transportation)を含む種々の限定されない工業分野における製品の設計が可能となる。そのため、この方法によって設計された3Dモデル化オブジェクトは、陸上車両(terrestrial vehicle)の一部(例えば、乗用車(car)および軽トラック機器(light truck equipment)、レーシングカー、オートバイ、トラック、ならびにモーター機器(motor equipment、トラックおよびバス、列車(trains)を含む)、航空機(aerial vehicle)の一部(例えば、機体機器(airframe equipment)、航空宇宙機器(aerospace equipment)、推進機器(propulsion equipment)、防衛製品(defense products)、航空機器(airline equipment)、宇宙機器(space equipment)などを含む)、海軍車両(naval vehicle)の一部(例えば、海軍機器(navy equipment)、商船(commercial ships)、海洋設備(offshore equipment)、ヨットおよび作業船(workboats)、海洋機器(marine equipment)などを含む)、一般的な機械部品(general mechanical part)(例えば、産業用製造機械(industrial manufacturing machinery)、大型移動機械または設備(heavy mobile machinery or equipment)、設置機器(installed equipment)、産業機器製品(industrial equipment)、加工金属製品(fabricated metal product)、タイヤ製造製品(tire manufacturing product)などを含む)、電気機械または電子部品(electro-mechanical or electronic part)(例えば、家庭用電化製品(consumer electronics)、セキュリティおよび/または制御および/または計装製品、演算および通信機器(computing and communication equipment)、半導体(semiconductors)、医療機器(medical devices)などを含む)、消費財(consumer goods)(例えば、家具、家庭および園芸用品、レジャー用品、ファッション製品、耐久消費財(hard goods)小売業者の製品、非耐久消費財(soft goods)小売業者の製品などを含む)、包装(packaging)(例えば、食品(foods)および飲料(beverage)およびタバコ、美容および化粧品(beauty and personal care)、家庭用品の包装(household product packaging))などの、任意の機械部品であり得る工業製品を表し得る。
CADシステムは、履歴ベース(history-based)である場合がある。この場合、モデル化オブジェクトは、幾何学的特徴の履歴を含むデータによってさらに定義される。モデル化オブジェクトは、標準のモデル化機能(modeling features)(例えば、押し出し(extrude)、回転(revolute)、切断(cut)、および/もしくは丸め(round)など)、および/または標準的な表面機能(surfacing features)(例えば、スイープ(sweep)、ブレンド(blend)、ロフト(loft)、フィル(fill)、変形(deform)、および/またはスムージング(smoothing)など)を使用して、身体的な人(physical person)(すなわち、設計者/利用者)によって実際に設計される場合がある。このようなモデル化機能を支援する多くのCADシステムは、履歴ベースのシステムである。これは、設計特徴の作成履歴が、通常、入力リンクおよび出力リンクを介して上述の幾何学的形状の特徴を対応付ける、非循環データフロー(acyclic data flow)によって保存されることを意味する。履歴ベースのモデル化パラダイム(modeling paradigm)は、1980年代の初期から周知である。モデル化オブジェクトは、履歴およびB-rep(すなわち、境界表現(boundary representation))という二つの永続データ表現(persistent data representations)によって記述される。B-repは、履歴において定義された計算の結果である。モデル化オブジェクトが表現されているときに、コンピュータの画面に表示される部品の形状は、B-rep(例えば、B-repのモザイク細工(tessellation)など)である。部品の履歴は、設計の意図である。基本的に、履歴は、モデル化オブジェクトが受けていた操作に関する情報を収集している。B-repは、複雑な部品を簡単に表示させるために、履歴と共に保存され得る。履歴は、設計の意図に従って、部品の設計変更を可能にするために、B-repと共に保存され得る。
PLMシステムとは、物理的に製造された製品(または製造される製品)を表すモデル化オブジェクトの管理のために適合した任意のシステムをさらに意味する。そのため、PLMシステムでは、モデル化オブジェクトは、物理的なオブジェクトの製造に適したデータによって定義される。これらは、通常、寸法値(dimension values)、および/または許容値(tolerance values)である。オブジェクトを正確に製造するためには、そのような値を有する方が確かに優れている。
CAEソリューションとは、モデル化オブジェクトの物理的挙動(physical behavior)の分析のために適合した、ハードウェアのソフトウェアである、任意のソリューションをさらに意味する。よく知られて広く使用されているCAEの技術は、以後、CAEモデルと同様に呼ばれる有限要素モデル(Finite Element Model)(FEM)である。FEMは、通常、モデル化オブジェクトを要素、すなわち有限要素メッシュ(finite element mesh)に分割することを含むが、物理的挙動は、方程式によって計算およびシミュレーションを行うことができる。このようなCAEソリューションは、ダッソーシステム(DassaultSystemes)によってSIMULIA(登録商標)という商標の下で提供されている。もう一つの成長中のCAE技術は、CADの幾何学的形状データを使用しないで、物理学の様々な分野からの複数のコンポーネントで構成された複雑なシステムのモデル化および解析(analysis)を含む。CAEソリューションにより、シミュレーションが可能になり、そのため、製造する製品の最適化、改善、および検証が可能になる。このようなCAEソリューションは、ダッソーシステムによってDYMOLA(登録商標)という商標の下で提供されている。
CAMソリューションとは、製品の製造データを管理するために適合したハードウェアのソフトウェアである、任意のソリューションを意味する。製造データには、一般に、製造する製品、製造プロセス、および必要なリソースに関連するデータが含まれる。CAMソリューションは、製品の製造プロセス全体を計画および最適化するために使用される。例えば、CAMユーザーに、実現可能性(feasibility)、製造プロセスの期間、または製造プロセスの特定のステップで使用され得る特定のロボットなどの、リソースの数に関する情報を提供し得ており、そのため、管理または必要な投資に関する決定が可能になる。CAMは、CADプロセスと潜在的なCAEプロセスとの後に後続するプロセスである。例えば、CAMソリューションは、機械加工パラメータに関する情報、またはCADモデルにおいて提供された押し出し機能(extrusion feature)と一貫した(coherent with)鋳型成形パラメータ(modeling parameters)を提供し得る。このようなCAMソリューションは、CATIA、Solidworks、またはDELMIA(それぞれ登録商標)という商標の下でダッソーシステムによって提供されている。
したがって、CADおよびCAMのソリューションは、密接に関連している。実際、CADソリューションは、製品または部品の設計に焦点を当てており、CAMソリューションは、それを製造する方法に焦点を当てている。CADモデルの設計は、コンピュータ支援製造への第一歩である。実際、CADソリューションは、特徴ベース(feature based)のモデル化や境界表現(B-rep)などの、重要な機能(key functionalities)を提供し、CAMソリューションによって取り扱われる(handled)製造プロセス中におけるエラーのリスクおよび精度の低下を軽減する。実際、CADモデルは、製造されることを目的としている。そのため、これは、二つの目的で製造される、デジタルツイン(digital twin)とも呼ばれる、オブジェクトの仮想ツイン(virtual twin)である。すなわち、
-特定の環境において製造されるオブジェクトの正常な挙動(correct behavior)を確認すること、および
-製造されるオブジェクトの製造可能性(manufacturability)を保証すること。
PDMは、製品データ管理(Product Data Management)の略である。PDMソリューションとは、特定の製品に関連する全ての種類のデータを管理するために適合した、ハードウェアのソフトウェアである、任意のソリューションを意味する。PDMソリューションは、製品のライフサイクルに関与する、主にエンジニアだけでなく、プロジェクトマネージャー、財務担当者(finance people)、営業担当者(sales people)、購入者(buyers)などを含む、全ての関係者によって使用され得る。PDMソリューションは、通常、製品指向(product-oriented)のデータベースに基づいている。これにより、関係者は、製品に関する一貫したデータを共有することが可能になり、そのため、関係者が相違するデータを使用するのを防ぐことになる。このようなPDMソリューションは、ダッソーシステムによってENOVIA(登録商標)という商標の下で提供されている。
モデル化オブジェクトは、製造製品/機械製品/機械部品の2D/3D離散幾何学的表現(discrete geometrical representation)である場合がある。離散幾何学的表現は、データ部分(pieces of data)の離散的なセット(discrete set)を含む、データ構造である。データの各部分は、製品/機械部品の要素を指定し得ており、離散的な要素(discrete element)と呼ばれ得る。離散幾何学的表現は、3D、または代替として2Dであってもよい。さらに代替として、離散幾何学的表現は、3Dおよび2Dの両方であってもよく、すなわち、ハイブリッド3D-2Dメッシュ生成(hybrid 3D-2D meshing)(例えば、モデル化のために、2D部分でモデル化された薄い部品と、3D部分でモデル化された厚い部品との両方で構成される製品)などの、3D離散幾何学的表現である3D部分と、離散幾何学的表現である2D部分とを含み得る。離散幾何学的表現は、例において、100、1000、または10000を超える多数のそのようなデータ部分を含み得る。
3D離散幾何学的表現の場合、3D離散幾何学的表現は、立体3D有限要素モデル(FEM)または3D立体メッシュ(例えば、3D四面体メッシュ(3D tetrahedral mesh))などの、製品/機械部品の立体/体積(solid/volume)の3D離散幾何学的表現であり得る。このような場合、データの各部分は、データの部分が機械部品/製品の立体表現(solid representation)(すなわち、「立体3D離散幾何学的表現(solid 3D discrete geometrical representation)」)を形成するように、3D空間に配置されたそれぞれの幾何学的エンティティ(geometrical entity)を表し得る。各幾何学的エンティティは、3Dオブジェクト(換言すると、3Dオブジェクトによって表現される立体を構成する材料のそれぞれの部分)のそれぞれの位置(すなわち、質点(material point))を表し得る。幾何学的エンティティの集約体(aggregation)(すなわち、結合(union)または並置(juxtaposition))は、全体として3Dオブジェクトを立体/体積(solid/volume)として表す。3D離散幾何学的表現は、代わりに、3D表面メッシュ(例えば、三角形表面メッシュ(triangular surface mesh)など)、またはモザイク細工(tessellation)などの、製品/機械部品の薄膜(skin)を表す、薄膜状3D離散幾何学的表現であってもよい。このような場合、データの各部分は、データの部分が機械製品の薄膜の表現(すなわち、「薄膜状3D離散幾何学的表現(skin 3D discrete geometrical representation)」)を形成するように、3D空間に配置されたそれぞれの幾何学的エンティティを表し得る。このような場合、各幾何学的エンティティは、3Dオブジェクト(換言すると、オブジェクトによって表現される立体を構成する材料が占める体積における外面(outer surface)のそれぞれの部分)の外面上におけるそれぞれの位置(すなわち、質点)を表す。幾何学的エンティティの集約体(すなわち、結合または並置)は、全体として、オブジェクトの外面の少なくとも一部を表す。
2D離散幾何学的表現の場合、データの各部分は、2D空間に配置されたそれぞれの幾何学的エンティティを表し得る。2D離散幾何学的表現は、2D有限要素メッシュ、または任意の2Dメッシュであり得る。離散幾何学的表現は、例えば、その有限要素に亘る厚さ値(thickness value)の分布など、一つまたは複数の厚さ値に関連付けられ得る。このような2D離散幾何学的表現は、例えば、(例えば、一定の厚さ値を有する)圧縮成形部品(stamping part)、または(例えば、異なる厚さ値を有する)複合材料部品(composite material part)などの、概して平面の製品を表し得る。
離散幾何学的表現は、「有限要素モデル(finite element model)(FEM)」とも呼ばれるCAEモデルであり得るか、またはこの方法にさらに変換され得る。CAEモデルは、機械部品/製品を表すCADモデルから生じ得ており、例えば、この方法は、初期段階で、例えば、メッシュ生成(例えば、三角形分割(triangulation)など)プロセスを使用して、CADモデルからCAEモデルを取得するステップを備える。逆に、CAEモデルは、CADモデルに変換され得る。この方法は、その後に対応するCADモデルに変換され得る、CAEモデルを設計/出力し得る。この方法は、CAEモデルをCADモデルに変換する、任意の既知の(例えば、自動的な)CAEからCADへの変換処理(conversion process)を使用することにより、この方法によって設計/出力されたCAEモデルをCADモデルに(例えば、自動的に)変換するステップを含み得るか、またはそれに対するソリューションを形成し得る、より広いプロセスを備え得るか、またはより広いプロセスに含まれ得る。
あるいは、モデル化オブジェクトは、例えば、特徴ツリー(feature tree)、および/またはB-repを含む、またはこれらに存在する(consisting in)CADモデルであってもよい。そのようなモデルは、CAEモデルから生じる場合があり、CAEからCADへの変換処理から生じる場合があるが、この方法は、例えば、初期段階で備え得る。
CADモデルは、特徴ベース(feature-based)であってもよい(例えば、CADモデルは、特徴ツリーと、任意選択として特徴ツリーを実行することによって取得された対応するB-repとを含んでいてもよい)。特徴ベースの3Dモデルにより、(例えば、後述されるように、製造ファイルまたはCAMファイルを決定する間に)製造プロセスに影響を与えることになる、干渉(clash)などのCADモデルにおける幾何学的形状エラー(geometry error)の検出および自動解決(automatic resolution)が可能になる。干渉とは、3Dモデルの二つの部品間における相対運動(relative motion)などによる相互侵入(interpenetration)である。さらに、この干渉は、CAD特徴ベースのモデルに基づく有限要素解析(finite element analysis)によってのみ検出される場合がある。そのため、特徴のパラメータを繰り返し変更し、有限要素解析を実行することにより、干渉の解決は、CADソリューションを使用して、またはCADソリューションによって自動的に実行することができる。
別の例として、特徴ベースの3Dモデルにより、(例えば、後述されるように、製造ファイルまたはCAMファイルを決定する間に)コンピュータ数値制御(computer numerical control)(CNC)を介した機械のためのツールパス(toolpath)の自動作成が可能になる。CNCを使用すると、製造される各オブジェクトは、カスタム・コンピューター・プログラム(custom computer program)を取得し、機械に取り付けられたマイクロコンピューター(microcomputer)である機械制御ユニット(machine control unit)に格納されて実行される。プログラムには、工作機械(machine tool)が従うことになる命令およびパラメータが含まれている。研磨機(mills)、旋盤(lathes)、ルーター(routers)、グラインダー(grinders)、およびレーザー(lasers)は、CNCを用いて操作を自動化することができる汎用工作機械)(common machine tools)の例である。
CADファイルからのカスタム・コンピューター・プログラムの生成は、自動化されている場合がある。そのため、このような生成は、エラーが発生しやすい可能性があるが、CADモデルを製造された製品に完全に再現することを確実にし得る。CNCは、手動加工(manual machining)で可能となる以上に高い精度(precision)、複雑さ(complexity)、および再現性(repeatability)を提供すると考えられている。その他の利点には、精度(accuracy)、速度(speed)、および柔軟性(flexibility)の向上、ならびに3D設計において生産されたものを含む、輪郭形状(contoured shapes)のフライス加工(milling)を可能にする、輪郭加工(contoured machining)などの機能が含まれる。
B-rep(すなわち、境界表現)は、機械部品の3D表現である。具体的には、B-repは、機械部品を表す3Dモデル化オブジェクトを記述する永続データ表現(persistent data representation)である。B-repは、機械部品を表す3Dモデル化オブジェクトの設計段階の間において実行される計算、および/または一連の操作の結果である場合がある。モデル化オブジェクトが表現されているとき、コンピュータの画面に表示される機械部品の形状は、B-rep(例えば、B-repのテッセレーション)である。例では、B-repは、モデル化オブジェクトの一部を表す。
B-repには、トポロジー的エンティティ(topological entities)および幾何学的エンティティ(geometrical entities)が含まれる。トポロジー的エンティティは、面(face)、辺(edge)、および頂点(vertex)である。幾何学的エンティティは、表面(surface)、平面(plane)、曲線(curve)、直線(line)、および点(point)などの、3Dオブジェクトである。定義上、面は、支持表面(supporting surface)と呼ばれる表面の境界部分である。辺は、支持曲線(supporting curve)と呼ばれる曲線の境界部分である。頂点は、3D空間内の点である。それらは、次のように相互に関連している。曲線の境界部分は、曲線上にある二つの点(頂点)によって定義される。表面の境界部分は、その境界によって定義されており、この境界は、表面上にある辺のセットである。面における辺の境界は、頂点を共有することによって接続される。面は、辺を共有することによって接続される。二つの面が辺を共有している場合、二つの面は隣接している。同様に、二つの辺が頂点を共有する場合、二つの辺は隣接している。CADシステムでは、B-repは、適切なデータ構造において、「境界付けられる(is bounded by)」関係、トポロジー的エンティティと支持する幾何学的形状との間の関係、および支持する幾何学的形状の数学的記述(mathematical descriptions)を収集する。B-repの内部辺(internal edge)は、正確に二つの面によって共有される辺である。定義上、境界辺(boundary edge)は、共有されることなく、一つの面のみを境界付ける。定義上、境界面(boundary face)は、少なくとも一つの境界辺によって境界付けられる。B-repの全ての辺が内部辺である場合、そのB-repは閉じている(be closed)と言われる。B-repが少なくとも一つの境界辺を含む場合、そのB-repは開いている(be open)と言われる。閉B-rep(closed B-Rep)が材料を(仮想的に)取り囲む空間の内側部分(inside portion)を定義するため、閉B-repは、厚さのある3D体積をモデル化するために使用される。開B-rep(open B-Rep)は、3Dスキャンをモデル化するために使用されるが、これは、その厚さが無視できるほどに十分小さい、3Dオブジェクトを表す。
CADのモデル化で使用される他の任意表現の種類に対するB-repの重要な利点(key advantage)は、任意の形状を正確に表現するためのB-repの能力(ability)である。点群(point clouds)、距離場(distance fields)、メッシュ(meshes)などの、使用されている他の全ての表現は、離散化(discretization)によって表現する形状の近似を実行する。一方、B-repには、正確な設計を表す表面方程式(surface equations)が含まれているため、これがCNCのためのツールパスの生成であろうと、または所定の3Dプリンタ技術のために訂正されたサンプル密度(sample density)への離散化であろうと、さらなる製造のための真の「マスターモデル(master model)」を構成する。換言すると、B-repを使用することにより、3Dモデルは、製造されるオブジェクトの正確な表現になる可能性がある。B-repは、3Dモデルの挙動のシミュレーションを行う場合にも有利である。応力(stress)、熱(thermal)、電磁気(electromagnetic)、またはその他の解析に関しては、B-repは、物理現象を捉えるためのシミュレーション・メッシュ(simulation mesh)の局所的な改良(local refinement)を支援し、運動学(kinematics)に関しては、B-repは、曲面間における真の接触モデル化(contact modeling)を支援する。最後に、B-repを使用すると、メモリおよび/またはファイルの実装面積(footprint)を小さくすることが可能になる。第一に、この表現にはパラメータのみに基づく表面が含まれるためである。メッシュなどの他の表現では、同等の表面は、最大数千もの三角形によって構成される。第二に、B-repには任意の履歴ベースの情報が含まれていないためである。
本方法は、本方法を実行した後に、本方法によって設計/処理/出力されたモデル化オブジェクトに対応する物理的製品を製造するステップを備え得る、生産プロセスに含まれてもよい。生産プロセスは、次のステップを備え得る。
-(例えば、自動的に)2D生成方法、3D生成方法、および/または適合方法を適用し(applying)、それにより、本方法によって出力されたCADモデルまたはCAEモデル(すなわち、2D形状、3D形状、および/または生成された3D押し出し体積)を取得するステップ(obtaining)、
-任意選択として、(例えば、自動化された)CAEからCADへの変換処理を使用して、前述されたように取得されたCAEモデルをCADモデルに(例えば、自動的に)変換するステップ(converting)、および
-部品/製品を製造するために取得されたCADモデルを使用するステップ(using)。
CAEモデルをCADモデルに変換するステップは、CAEを入力として受け取り、製品/部品を表す特徴ツリーを含むCADモデルにCAEを変換する、(例えば、完全に自動化された)以下の変換処理を実行するステップ(executing)を含み得る。この変換処理には、(これらの各ステップを実装するための既知の完全自動アルゴリズム(fully automatic algorithms)が存在する場合、)次のステップが含まれる。
-CAEモデル、またはそれの外部面(outer surface)/外皮(outer skin)をセグメント化し(segmenting)、それによって、例えば、モデルの表面部分をそれぞれ形成する、セグメント群へのCAEモデルのセグメント化(segmentation)を取得するステップ(obtaining)、
-例えば、所定のCAD特徴の幾何学的形状(CAD feature geometry)(例えば、押し出し(extrusion)、回転(revolution)、または任意の正規基本要素(canonic primitive)など)をそれぞれ形成するセグメント、またはセグメントのグループ、および任意選択としてそれの幾何学的特性(例えば、押し出し軸(extrusion axis)、回転軸(revolution axis)、または輪郭(profiles)など)を検出するステップ(detecting)を含む、セグメントを処理することによってCADの特徴における前述の幾何学的形状を検出するステップ(detecting)、
-例えば、幾何学的形状、および/またはそれの幾何学的特性(geometric characteristics)に基づいて、検出された幾何学的形状をパラメータ化するステップ(parameterizing)、
-例えば、同じ特徴の幾何学的形状の一部であるように検出された隣接セグメント(neighboring segments)を集約することにより、前述の部分の幾何学的形状に基づいて、CAEモデルのそれぞれの部分にCAD演算子(CAD operators)をそれぞれ適合させるステップ(fitting)、
-幾何学的形状と、対応するCAD演算子とを、特徴ツリーにコード化するステップ(encoding)、
-任意選択として、特徴ツリーを実行し(executing)、それによって製品のB-rep表現を取得するステップ(obtaining)、および
-特徴ツリーと、任意選択的にCADモデルを形成するB-repとである、特徴ツリーと任意選択的にB-repとを出力するステップ(outputting)。
製造のためにCADモデルを使用するステップは、CADモデルによって表現される製品/部品の製造に存在する/関与する/参加する、任意の現実世界のアクション(action)、またはアクションのセットを指定する。製造のためにCADモデルを使用するステップは、例えば、次のステップを含み得る。
-取得されたCADモデルを編集するステップ(editing)、
-CADモデル、または対応するCADモデル(例えば、CAEからCADへの変換処理の後にCADモデルが生じる元の、CAEモデルなど)に基づいて、例えば、機械的属性(mechanical property)、使用属性(use property)、および/もしくは製造属性(manufacturing property)、ならびに/または制約(constraints)の検証(validation)のためのシミュレーション(例えば、構造シミュレーション(structural simulations)、熱力学シミュレーション(thermodynamics simulations)、および空力シミュレーション(aerodynamic simulations))などの、シミュレーションを実行するステップ(performing)、
-シミュレーションの結果に基づいてCADモデルを編集するステップ(editing)、
-(すなわち、使用される製造プロセスに応じて、機械製品の生産は、このステップを含んでいてもいなくてもよい)製造製品の生産/製造のために、(例えば、編集された)CADモデルに基づいて、製造ファイル/CAMファイルを(例えば、自動的に)決定するステップ(determining)、
-CADファイル、および/または製造ファイル/CAMファイルを工場に送信するステップ(sending)、および/または
-(例えば、自動的に)決定された製造ファイル/CAMファイル、またはCADモデルに基づいて、本方法によって出力されたモデルによって最初に表現された機械製品を生産/製造するステップ(producing/manufacturing)。これには、製造ファイル/CAMファイル、および/またはCADファイルを、製造プロセスを実行する機械に(例えば、自動的に)供給するステップ(feeding)が含まれる。
生産/製造におけるこの最後のステップは、製造ステップまたは生産ステップと呼ばれる場合がある。このステップは、CADモデルおよび/またはCAMファイル、例えば、一つまたは複数の製造機械、または機械を制御するコンピュータシステムに供給されているCADモデルおよび/またはCADファイルに基づいて、部品/製品を製造/組み立て製造する(manufacture/fabricate)。製造ステップは、任意の既知の製造プロセス、または一連の製造プロセス、例えば、一つまたは複数の積層造形(additive manufacturing)ステップ、一つまたは複数の切断ステップ(例えば、レーザー切断(laser cutting)ステップ、またはプラズマ切断(plasma cutting)ステップ)、一つまたは複数の圧縮成形(stamping)ステップ、一つまたは複数の鍛造(forging)ステップ、一つまたは複数の鋳型成形(molding)ステップ、一つまたは複数の機械加工(machining)ステップ(例えば、フライス加工(milling)ステップ)、および/または一つまたは複数の打ち抜き加工(punching)ステップを実行するステップ(performing)を備え得る。設計方法は、部品/製品を表すモデル(CAEまたはCAD)の設計を改善するため、製造およびその生産性も改善される。
CADモデルを編集するステップは、例えば、CADソリューションを使用することにより、ユーザー(すなわち、設計者)が一つまたは複数のCADモデルを実行するステップ(performing)を含み得る。CADモデルの変更は、CADモデルの幾何学的形状および/またはパラメータの各々のうちの一つまたは複数の変更を含み得る。これらの変更には、モデルの特徴ツリーに対して実行される任意の変更または一連の変更(例えば、特徴パラメータおよび/または仕様の変更など)、および/またはCADモデルにおける表示された表現(例えば、B-repなど)に対して実行される変更が含まれる。この変更は、部品/製品の技術的機能性(technical functionalities)を維持する変更であり、すなわち、ユーザーは、モデルの幾何学的形状および/またはパラメータに影響を与える可能性があるが、CADモデルを部品/製品の下流側における使用および/または製造に技術的により高く準拠させる目的でのみ、変更を実行する。このような変更には、下流の製造プロセスで使用される機械の仕様にCADモデルを技術的に準拠させる、任意の変更または一連の変更が含まれる場合がある。そのような変更は、追加的または代替的に、一度製造された製品/部品のさらなる使用にCADモデルを技術的に準拠させる、任意の変更または一連の変更を含み得るが、そのような変更または一連の変更は、例えば、シミュレーションの結果に基づいている。
CAMファイルは、CADモデルから取得された製造の段階的向上モデル(step up model)を含み得る。製造の段階的向上には、機械製品が、CADモデルによって捕捉されたものに対応する幾何学的形状、および/または材料の分布を有するように、場合によっては製造公差誤差(manufacturing tolerance errors)まで許容されるように、機械製品を製造するために必要な全てのデータが含まれ得る。生産ファイルを決定するステップは、CADモデルから生産ファイルを(例えば、自動的に)決定するための任意のCAM(コンピュータ支援製造)ソリューション(例えば、任意の自動化されたCADからCAMへの変換アルゴリズム)を適用するステップ(applying)を含み得る。
製品/部品は、積層造形可能な部品、すなわち、積層造形(すなわち、3D印刷(3D printing))によって製造される部品であってもよい。この場合、製造プロセスは、CAMファイルを決定するステップを含むことなく、3DプリンタにCADモデルを直接に(例えば、自動的に)供給することにより、生産/製造ステップに直接進行する。3Dプリンタは、機械製品を表すCADモデルが供給されると(例えば、3Dプリンタのオペレータによって3D印刷が開始されると)、CADモデルに従って機械製品を直接かつ自動的に3D印刷するように構成されている。換言すると、3Dプリンタは、CADモデルを受け取り、それが3Dプリンタに(例えば、自動的に)供給され、CADモデルを(例えば、自動的に)読み取り、例えば、層毎に材料を追加することにより、部品を(例えば、自動的に)印刷して、CADモデルによって捕捉された材料の幾何学的形状および/または分布を再現する。3Dプリンタは、材料を追加することにより、CADモデルによって捕捉された材料の幾何学的形状および/または分布を、3Dプリンタの解像度まで、任意選択として公差誤差および/または製造変更の有無に関わらず、実際には正確に再現する。この製造は、例えば、ユーザー(例えば、3Dプリンタのオペレータ)によって、または自動的に(3Dプリンタ、またはそれを制御するコンピュータシステムによって)、例えば、CADファイルを変更して、3Dプリンタの仕様に合わせることによって、そのような製造変更および/または公差誤差を決定するステップ(determining)を含み得る。生産プロセスは、付加的または代替的に、CADモデルから、例えば、(例えば、参照により本明細書に組み込まれる、欧州特許第3327593号に記載されているような)張り出し量(overhang volume)、および層スライス化(layer-slicing)を最小化するための印刷方向を(例えば、3Dプリンタ、またはそれを制御するコンピュータシステムによって自動的に)決定するステップ(determining)(すなわち、各層の厚さ、および3Dプリンターヘッドのための(例えば、レーザービーム、例えば、経路、速度、強度/温度、およびその他のパラメータのための)層毎の経路(layer-wise paths)/層毎の軌道(layer-wise trajectories)、および他の特性を決定するステップ)を含み得る。
あるいは、製品/部品は、フライス加工された部品(すなわち、フライス加工によって製造された部品)などの、機械加工された部品(すなわち、機械加工によって製造された部品)であってもよい。そのような場合、生産プロセスは、CAMファイルを決定する(determining)ステップを含み得る。このステップは、機械加工された部品のCADモデルからCAMファイルを自動的に取得するために、任意の適切なCAMソリューションによって自動的に実行される。CAMファイルの決定は、CADモデルが製造プロセスに影響を与える可能性のある幾何学的特殊性(geometric particularity)(例えば、誤差(error)または人工物(artefact)など)を有するかどうかを(例えば、自動的に)確認するステップ(checking)と、そのような特殊性を(例えば、自動的に)訂正するステップ(correcting)とを含み得る。例えば、CADモデルに依然として鋭い辺(sharp edges)が含まれている場合(機械加工またはフライス加工のツールは鋭い辺を作成できないため)、CADモデルに基づく機械加工またはフライス加工が実行されない場合があり、そのような場合には、CADモデルに基づいた機械加工またはフライス加工が実施することができるように、CAMファイルの決定は、そのような鋭い辺を(例えば、機械加工工具の切削ヘッドの半径に対応する、例えば、公差誤差まで実質的に等しくなる、丸め付け半径(round radius)または面取り半径(fillet radius)で)(例えば、自動的に)丸め付けまたは面取りの加工を行うステップ(rounding or filleting)を含み得る。より一般的には、CAMファイルの決定は、機械加工/フライス加工を可能にするために、機械加工またはフライスの工具の半径と互換性を有していない、CADモデル内の幾何学的形状の丸み付けまたは面取りの加工を行うステップ(rounding or filleting)を自動的に含み得る。この確認および可能な変更(例えば、幾何学的形状の丸め付けまたは面取りの加工を行うこと)は、前述されるように、自動的に実行され得るが、CADおよび/またはCAMソリューション、例えば、機械加工プロセスで使用される工具の仕様にCADモデルを準拠させる、変更を実行することをユーザーに強制するソリューションにおいて手動による変更を実行する、ユーザー(例えば、機械加工エンジニアなど)によっても実行され得る。
確認に加えて、CAMファイルの決定は、機械加工またはフライス加工の経路、すなわち、製品を機械加工するために機械加工工具(machining tool)によって取られる経路を(例えば、自動的に)決定するステップ(determining)を含んでもよい。この経路は、機械加工のために機械加工工具が辿る座標のセット、および/またはパラメータ化された軌道を含み得ており、経路を決定するステップは、CADモデルに基づいて、これらの座標および/または軌道を(例えば、自動的に)計算するステップ(computing)を含み得る。この計算は、例えば、2021年12月13日にダッソーシステムによって出願された欧州特許出願EP21306754.9号において説明されているように、機械加工工具のCADモデル表現によるCADモデルにおけるミンコフスキー差の境界の計算に基づき得るが、この出願は、参照により本明細書に組み込まれる。この経路が、例えば、工具が切断される材料との接触を断つことなく連続的に辿る、単一の経路であってもよいことは、理解されるべきである。あるいは、この経路は、工具が特定の順序で辿る一連のサブ経路の連結であってもよく、例えば、サブ経路の各々は、切断される材料との接触を断つことなく、工具がそれぞれを連続的に辿っている。任意選択として、CAMファイルの決定は、例えば、決定された経路、および機械の仕様に基づいて、切断速度(cutting speed)、切断高さ(cut height)/穿孔高さ(pierce height)、および/または開口ストローク(opening stroke)を含む、機械加工パラメータを(例えば、自動的に)設定するステップ(setting)を含み得る。任意選択として、次いで、CAMファイルの決定は、CAMソリューションが機械加工効率を最大化するために部品のための最良の方向を決定する、入れ子(nesting)を(例えば、自動的に)構成するステップ(configuring)を含み得る。
機械加工またはフライス加工の部品におけるこの場合、そのため、CAMファイルを決定するステップは、機械加工の経路、ならびに任意選択として設定された機械加工パラメータ、および/または構成された入れ子の仕様を含む、CAMファイルをもたらして出力する。次いで、この出力されたCAMファイルは、(例えば、直接的かつ自動的に)機械加工ツールに供給されてもよく、および/または、次いで、機械加工ツールは、ファイルを読み取ることによって(例えば、直接的かつ自動的に)プログラムされてもよく、その上で、生産プロセスは、機械が、生産ファイルに従って、例えば、生産ファイルを直接かつ自動的に実行することにより、製品の機械加工を実行する、生産/製造するステップ(producing /manufacturing)を含む。機械加工プロセスは、機械加工工具が実世界の材料ブロック(block of material)を切削して(cutting)、CADモデルによって捕捉された材料の幾何学的形状および/または分布を、例えば、公差誤差(例えば、フライス加工の場合は数十ミクロンなど)まで再現するステップ(reproduce)を含む。
あるいは、製品/部品は、鋳型成形の部品(molded part)、すなわち鋳型成形(例えば、射出成形(injection-molding)など)によって製造された部品であってもよい。そのような場合、生産プロセスは、CAMファイルを決定する(determining)ステップを含み得る。このステップは、鋳型成形部品のCADモデルからCAMファイルを自動的に取得するために、任意の適切なCAMソリューションによって自動的に実行され得る。CAMファイルを決定するステップは、CADモデルに基づいて一連の鋳型成形の確認を(例えば、自動的に)実行して(performing)、CADモデルによって捕捉された材料の幾何学的形状および/または分布が鋳型成形に適合していることを確認するステップ(check)、およびCADモデルが鋳型成形に適していない場合は、適切な変更を(例えば、自動的に)実行するステップ(performing)を含み得る。確認および適切な変更(存在する場合)を実行するステップは、自動的に実行することも、または代わりに、例えば、ユーザーが適切な変更をCADモデルにおいて実行することを可能にするが、CADモデルを鋳型成形ツールの仕様に準拠させるユーザーの変更を制約する、CADおよび/またはCAMソリューションを使用して、ユーザー(例えば、鋳型成形の技術者など)によって実行され得る。この確認には、CADモデルによって表現される仮想製品(virtual product)が金型(mold)の寸法と一致していることを検証するステップ(verifying)、および/またはCADモデルが、鋳型成形からそれ自体知られているように、製品の脱型に必要な全ての抜き勾配(draft angles)を含むことを確認するステップ(checking)が含まれる場合がある。次いで、CAMファイルを決定するステップは、CADモデルに基づいて、鋳型成形のために使用される液体材料の量、および/または液体材料を金型内で硬化/固化(harden/set)させる時間を決定するステップ(determining)、およびこれらのパラメータを含むCAMファイルを出力するステップ(outputting)をさらに含み得る。次いで、生産プロセスは、出力ファイルに基づいて鋳型成形を(例えば、自動的に)実行するステップ(performing)を含むが、金型は、決定された硬化時間の間、CADによって捕捉された材料の幾何学的形状および/または分布に対応する形状に、例えば、公差誤差まで(例えば、脱型に関して、抜き勾配の組み込み、または抜き勾配の変更まで)液体材料を成形する。
あるいは、製品/部品は、場合によっては「圧縮成形部品(stamping part)」とも呼ばれる、圧縮成形部品、すなわち、圧縮成形プロセスで製造される部品であってもよい。この場合、製造プロセスは、CADモデルに基づいてCAMファイルを(例えば、自動的に)決定するステップ(determining)を含み得る。CADモデルは、例えば、部品が一つまたは複数のフランジ(flanges)によって構成されている場合は、一つまたは複数のフランジを有することが可能であり、この後者の場合は、圧縮成形からそれ自体で知られているように、部品の一つまたは複数のフランジの展開状態(unfolded state)を形成するように除去される余分な材料(extra material)を有することが可能である、圧縮成形部品を表す。そのため、CADモデルは、フランジを有しない部品を表す(場合によっては部品全体である)部分と、余分な材料(存在する場合)を含む可能性がある、フランジ(存在する場合)を表す、外側の余分なパッチ部分とによって構成される可能性がある。この余分なパッチ部分は、特定の長さに亘ってg2連続性(g2-continuity)を示し、次いで特定の長さに亘ってg1連続性(g1-continuity)を示す場合がある。
この圧縮成形の場合、CAMファイルの決定は、CADモデルによって捕捉された仮想製品における材料の幾何学的形状および/または分布に基づいて、例えば、圧縮成形ダイ(stamping die)またはパンチ(punch)のサイズ、および/または圧縮成形力(stamping force)などの圧縮成形マシンのパラメータを(例えば、自動的に)決定するステップ(determining)を含み得る。CADモデルが、部品の一つまたは複数のフランジの展開状態を形成するために除去される余分な材料の表現も含む場合、除去される余分な材料は、例えば、機械加工によって切断され得ており、CAMファイルを決定するステップは、例えば、前述されるように、対応する機械加工のCAMファイルを決定するステップ(determining)を含んでもよい。一つまたは複数のフランジがある場合、CAMファイルを決定するステップは、圧縮成形自体と、余分な材料の除去との後に、折り畳みプロセス(folding process)において圧縮成形された部品の内面(inner surface)に向かって、g2連続性の長さに沿ってフランジを折り曲げることを可能にする、g2連続性およびg1連続性の部分における幾何学的仕様を決定するステップ(determining)を含み得る。これによって決定されたCAMファイルは、圧縮成形ツールのパラメータ、任意選択としてフランジ(存在する場合)を折り畳むための前述の仕様、および任意選択として余分な材料(存在する場合)を除去するための機械加工生産ファイル(machining production file)を含み得る。
圧縮成形の生産プロセスは、例えば、直接的かつ自動的にCAMファイルを出力し、そのファイルに基づいて圧縮成形プロセスを(例えば、自動的に)実行し得る。圧縮成形プロセスは、折り曲げられていないフランジと余分な材料(ある場合)とを含む可能性がある、CADファイルによって表現される製品を形成するために、材料の一部を圧縮成形するステップ(stamping)(例えば、打ち抜き加工するステップ(punching))を含み得る。適切な場合、圧縮成形プロセスは、機械加工生産ファイルに基づいて余分な材料を切断するステップ(cutting)と、フランジを折り畳むための前述の仕様に基づいてフランジを折り畳み(folding)、それによってフランジをそのg2連続性の長さで折り畳み(folding)、部品における外側の境界を滑らかな態様(smooth aspect)を与えるステップ(giving)とを含み得る。後者の場合、一度製造された部品の形状は、余分な材料が取り除かれ、フランジが折り畳まれるという点で、CADモデルによって表現される、その仮想の対応物とは異なるが、CADモデルは、余分な材料と、展開された状態におけるフランジとを有する部品を表す。
スケッチ加工方法、2D生成方法、3D生成方法、および適合方法は、コンピュータ実装されている。これは、各方法のステップ(または実質的に全てのステップ)が、少なくとも1台のコンピュータ、または同様の任意のシステムによって実行されることを意味する。そのため、各方法のステップは、コンピュータによって、全自動または半自動で実行される可能性がある。例では、これらの方法における少なくとも幾つかのステップを誘発するステップ(triggering)は、ユーザーとコンピュータとの対話を通じて実行され得る。必要なユーザーとコンピュータとの対話のレベルは、予測される自動化のレベルに依存し、ユーザーの希望を実現する必要性とのバランスを取り得る。例では、このレベルは、ユーザー定義および/または事前定義されている場合がある。
各方法について、本方法のコンピュータ実装の典型的な例は、この目的に適合したシステムによって本方法を実行することである。システムは、メモリ、およびグラフィカル・ユーザー・インターフェース(GUI)に結合されたプロセッサを備え得るが、このメモリは、本方法を実行するための命令を含むコンピュータプログラムをそこに記録している。また、メモリは、データベースを格納し得る。メモリは、そのようなストレージに適した任意のハードウェアであり、物理的に異なる幾つかの部品(例えば、プログラム用に一つ、データベース用に一つなど)を含む可能性がある。
スケッチは、2D空間で定義された連続線(continuous line)を表すコンピュータのオブジェクトである。スケッチは、特定の幾何学的形状(例えば、直線状(straight)、曲線状(curved)、または円形状(circular)など)をそれぞれ有し、スケッチによって表現される直線におけるそれぞれの部分を表す、一つまたは複数のスケッチ断片(sketch fragments)を含み得る。スケッチ断片の端部(extremities)は、共に対応付けられて、スケッチを形成し得る。スケッチは、スケッチによって表現される連続線を共に形成する、連続する点のセットによって構成され得る。各点は、2D空間における所定の位置に配置されたトポロジー的オブジェクトであり得る。
連続する点のセットは、一連のピクセルを表し得る。スケッチ加工は、一連のピクセルを画面上に(例えば、ググラフィカル・ユーザー・インターフェースを介して)表示するステップ(displaying)を備え得る。この表示するステップは、スケッチによって表現される直線を共に形成する連続点のセットにおける対応する点の位置に従って、画面上における一連の各ピクセルの位置を決定するステップ(determining)を含み得る。あるいは、連続する点のセットは、一つまたは複数のパラメトリック曲線(parametric curves)を表し得る。このセットは、それぞれのパラメトリック曲線をそれぞれ表す点の一つまたは複数のサブセットを含み得る。その場合、スケッチを表示するステップは、各パラメトリック曲線からそれぞれの一連のピクセル(すなわち、画面上に表示される一連のピクセル)を推定するステップ(deducing)を含み得る。パラメトリック曲線は、パラメトリック曲線を表すサブセットにおける連続する点に関して定義されたスプラインであってもよい。例えば、このスプラインは、サブセットにおける連続する各点間の各間隔における多項式(polynomial)によって構成される2D空間のセグメント関数(piecewise function)によって定義され得る。各パラメトリック曲線は、スケッチにおけるそれぞれのスケッチ断片を表し得る。
スケッチは、非多様体(non-manifold)または多様体(manifold)の場合がある。
非多様体スケッチは、少なくとも一つのスケッチ内交差を含むスケッチ、すなわち、交差する二つの異なる部分を含むスケッチであるが、交差が、二つの異なる部分のうちの少なくとも一つを、二つの異なるサブ部分に分割するスケッチである。スケッチ内交差は、2D空間における同じ位置に配置されているスケッチにおける二つの点を含む場合がある。スケッチの直線は、2D空間における同じ位置でそれ自体と交差しており、これが、スケッチ内交差の位置となる。多様体スケッチは、スケッチ内交差を有しないスケッチである。
スケッチは、閉じている場合、または開いている場合(すなわち、閉じていない場合)がある。閉スケッチとは、スケッチの始点および終点が2D空間における同じ位置に配置されているスケッチである。開始点は、スケッチによって表現される直線を共に形成する、連続する点のセットにおける最初の点であり得ており、終点は、そのセットの最後の点であり得る。開スケッチは、終点の位置とは異なる2D空間内の位置に、始点が配置されているスケッチである。
ここで、一つまたは複数の入力スケッチを提供するステップ(providing)S10について説明する。各入力スケッチについて、入力スケッチを提供するステップS10は、次の提供種類(provision types)のうちの一つに基づく場合もある。入力スケッチを提供するステップS10は、手動であってもよい。例えば、この提供するステップS10は、各入力スケッチについて、例えば、グラフィカル・ユーザー・インターフェースを介して入力スケッチにおける各点の座標を入力することにより(例えば、画面上における各点のための座標選択により)、ユーザーが各入力スケッチを入力するステップ(entering)を含み得る。あるいは、入力スケッチを提供するステップS10は、半自動であってもよい。例えば、この提供するステップS10は、ユーザーが(例えば、触覚表面(tactile surface)上などに)描いた図面を検出するステップ(detecting)と、次いで、ユーザーが描いた図面に基づいて一つまたは複数の入力スケッチを形成するステップ(forming)とを含み得る。例えば、この図面は、それぞれの実質的に連続する直線をそれぞれ区切る、一つまたは複数のユーザーとの対話を(例えば、画面上において連続するスライドを介して)実行するステップ(performing)を含み得ており、この形成するステップは、図面における実質的に連続する直線を検出するステップ(detecting)と、一つまたは複数の入力スケッチを実質的に連続する直線(例えば、実質的に連続する各直線に関するそれぞれの入力スケッチなど)に適合させるステップ(fitting)を含み得る。あるいはまた、入力スケッチを提供するステップS10は、完全に自動化されてもよい。例えば、この提供するステップS10は、画像を提供する(例えば、製品の画像を自動的に捕捉する、または画像をインポートする)ステップ(providing)と、この提供された画像に基づいて一つまたは複数の入力スケッチを自動的に形成するステップ(forming)とを含み得る。そのため、画像は、自然画像、または図面であり得る。この形成するステップは、画像における一つまたは複数の辺を検出するステップ(detecting)を含み得ており、この形成するステップは、検出された各辺にそれぞれの入力スケッチを適合させるステップ(fitting)を含み得る。画像において辺を検出するステップは、画像における有意な色(significant colour)、および/または(例えば、閾値を超える)コントラストの変化を検出するステップ(detecting)を含み得る。例では、一つまたは複数の入力スケッチは、直接に提供され得る。例えば、スケッチ加工方法は、一つまたは複数の入力スケッチを(例えば、データベースにおけるユーザーによって)選択するステップ(selecting)と、選択された一つまたは複数の入力スケッチを検索するステップ(retrieving)とを含み得る。
一つまたは複数の入力スケッチは、少なくとも二つのスケッチ間交差を共有する、少なくとも一対のスケッチを含み得る。スケッチ間交差は、スケッチの対(すなわち、二つのスケッチのペア)間における交差である。この対における二つのスケッチの各々は、2D空間において同じ位置に配置されている点を含むが、これは、スケッチ間交差の点である。
ここで、一つまたは複数の出力スケッチを決定するステップ(determining)S20について説明する。
この決定するステップS20は、多様体スケッチのセットを組み立てるステップ(constructing)S210を含む。多様体スケッチのセットを組み立てるステップS210は、一つまたは複数の入力スケッチの各々を処理するステップ(processing)を含み得る。各処理の後に、この組み立てるステップS210は、仮のセット(provisional set)(仮のセットは、最初はスケッチを有することなく、この組み立てるステップS210は、仮のセットに多様体スケッチを連続的に充填するステップ(filling)を含む)に一つまたは複数の多様体スケッチを追加するステップ(adding)を含み得る。各入力スケッチの処理後に、この組み立てるステップS210は、仮のセットを組み立てられたセットとして定義するステップ(defining)を含み得る。多様体スケッチのセットを組み立てるステップS210は、一つまたは複数の入力スケッチの各々を連続的に(一度に一つの入力スケッチを)、または並行して(同時に幾つかの入力スケッチを)処理するステップ(processing)を含み得る。入力スケッチを処理するステップは、入力スケッチが多様体であるかどうかを検出するステップ(detecting)と、入力スケッチが多様体であるかどうかに応じて、仮のセットに追加される一つまたは複数の多様体スケッチを決定するステップ(determining)と、これらの決定された一つまたは複数の多様体スケッチを仮のセットに追加するステップ(adding)とを含み得る。
入力スケッチを処理するステップは、入力スケッチが多様体であるかどうかを自動的に検出するステップ(detecting)を含み得る。例えば、この検出するステップは、入力スケッチが少なくとも一つのスケッチ内交差を含むかどうかを検出するステップ(detecting)を含み得る。次いで、この検出するステップは、入力スケッチが少なくとも一つのスケッチ内交差を含むことが検出された場合、またはそれ以外の場合に入力スケッチが多様体であることが検出された場合、入力スケッチが非多様体であると判定するステップ(determining)を含み得る。
各処理の後に、仮のセットに追加される一つまたは複数の多様体スケッチは、以下で説明されるように、入力スケッチに依存する場合がある。
入力スケッチが多様体である場合、この組み立てるステップは、入力スケッチを仮のセットに直接追加し得る。その場合、これにより、仮のセットに追加されている多様体スケッチは、入力スケッチ(多様体スケッチとして検出されているもの)になる。そのため、仮のセットは、多様体である一つまたは複数の入力スケッチの各々を含み得る。代替的または追加的に、スケッチ加工方法は、多様体スケッチの組み立てられたセットに関連付けられたメモリ空間に入力スケッチを複写または転送し得る。
入力スケッチが非多様体である場合、この組み立てるステップS210は、それぞれの非多様体入力スケッチのうちの少なくとも一つのスケッチ内交差に基づいて、二つ以上のそれぞれの多様体スケッチを決定するステップ(determining)S211を含み得る。例えば、この決定するステップS211は、非多様体入力スケッチを分割し(splitting)、それによって入力スケッチのそれぞれの部分(この部分は、多様体であり、すなわち、スケッチ内交差を有しない)にそれぞれ対応する二つ以上のそれぞれの多様体スケッチを取得するステップ(obtaining)を含む。次いで、この組み立てるステップは、二つ以上のそれぞれの多様体スケッチをセットに追加するステップ(adding)を含み得る。例えば、この組み立てるステップは、上述されるリスト内における二つ以上のそれぞれの多様体スケッチの各々の識別子を追加するステップ(adding)を含み得る。代替的または追加的に、この組み立てるステップは、二つ以上のそれぞれの多様体スケッチを上述されたメモリ空間に複写または転送するステップ(copying or transferring)を含んでもよい。
一つまたは複数の出力スケッチには、組み立てられたセットにおける各閉スケッチが含まれる。例えば、各処理の後に、この決定するステップS20は、そのセットに追加された各多様体スケッチについて、スケッチが閉じているかどうかを検出するステップ(detecting)と、スケッチが閉じていると検出された場合、一つまたは複数の出力スケッチのうちの一つとしてスケッチを定義するステップ(defining)をさらに含み得る。その場合、この決定するステップS20が、スケッチの処理の最後に識別されたスケッチを検索するステップ(retrieving)を含み得るように、この決定するステップS20は、スケッチを出力スケッチとして(例えば、マーカーを使用して)識別するステップ(identifying)を含み得る。あるいは、閉じていると検出されたスケッチは、一つまたは複数の出力スケッチに関連付けられたメモリ空間に複写または転送され得る。
多様体スケッチのセットを組み立てるS210の後に、この決定するステップS20は、一つまたは複数の閉多様体スケッチを形成するように、少なくとも二つの交差を共有する、組み立てられたセットにおける多様体スケッチの各対を結合するステップ(combining)S220を含む。少なくとも二つの交差の各々は、スケッチ間交差またはスケッチ内交差であってもよい。例えば、一つまたは複数の入力スケッチが二つのスケッチ内交差を有する非多様体スケッチを含む場合、少なくとも二つの交差は、非多様体スケッチにおける少なくとも二つのスケッチ内交差であり得る。代替的または追加的に、一つまたは複数の入力スケッチが、少なくとも二つのスケッチ間交差を共有する入力スケッチの対を含む場合、少なくとも二つの交差は、入力スケッチの対によって共有される、少なくとも二つのスケッチ間交差であり得る。あるいは、少なくとも二つの交差は、少なくとも一つのスケッチ間交差と少なくとも一つのスケッチ内交差(すなわち、一対の入力スケッチによって共有される、少なくとも一つのスケッチ間交差点と、非多様体入力スケッチにおける少なくとも一つのスケッチ内交差)との組み合わせであってもよい。この決定するステップS20は、一つまたは複数の閉多様体スケッチの各々を、一つまたは複数の出力スケッチのうちの一つとして定義するステップ(defining)を含み得る。その場合、この決定するステップS20が、一つまたは複数の閉多様体スケッチの各々を出力スケッチの処理の最後に検索するステップ(retrieving)を含み得るように、この決定するステップS20は、閉多様体の各スケッチを出力スケッチとして(例えば、マーカーを使用して)識別するステップ(identifying)を含み得る。あるいは、スケッチ加工方法は、一つまたは複数の閉多様体スケッチを複写し得るか、一つまたは複数の出力スケッチに関連付けられたメモリ空間にそれらを転送し得る。
結合された各対について、少なくとも二つの交差の各々は、(すなわち、入力スケッチの対によって最初に共有される)スケッチ間交差である場合、または非多様体入力スケッチにおけるスケッチ内交差である場合がある。例では、一つまたは複数の入力スケッチは、少なくとも二つのスケッチ間交差を共有する、少なくとも一対のスケッチを含み得る。その場合、これらの少なくとも一対のスケッチの各々について、少なくとも二つの交差は、一対のスケッチによって共有される、少なくとも二つのスケッチ間交差に対応する。代替的または追加的に、一つまたは複数の入力スケッチは、少なくとも一つの非多様体スケッチを含み得る。その場合、少なくとも二つのスケッチ内交差を有する、少なくとも一つの非多様体スケッチの各々について、この結合された対が、非多様体スケッチに基づいて決定された二つ以上のそれぞれの多様体スケッチの対である場合、少なくとも二つの交差は、少なくとも一つの非多様体スケッチにおける少なくとも二つのスケッチ内交差に対応し得る。
非多様体入力スケッチに対する二つ以上のそれぞれの多様体スケッチを決定するステップS211は、非多様体入力スケッチを再帰的に分割するステップ(splitting)を含み得る。各入力スケッチは、方向付けられ得る。この再帰的に分割するステップは、非多様体入力スケッチを閲覧するステップ(browsing)を含み得る。このスケッチを閲覧するステップは、コンピュータによって、スケッチ線(sketch line)を形成する連続する点のセットにおける点の各々を連続的に(すなわち、次々に)読み取るステップ(reading)を含み得る。そのスケッチの方向には、この閲覧するステップのための方向が与えられ得る(すなわち、この閲覧するステップは、スケッチの方向付け(orientation)に従い得る/追従し得る)。
その閲覧するステップの間に、この再帰的に分割するステップは、スケッチ内交差の点に遭遇するステップ(encountering)を含み得る。例えば、点を読み取るステップは、点がスケッチ内交差に属することを決定するステップ(determining)を含み得る。このとき、この再帰的に分割するステップは、それぞれの非多様体入力スケッチをスケッチ内交差における遭遇した点で分割し(splitting)、それによって二つのスケッチ片を形成するステップ(forming)を含み得る。形成された二つのスケッチ片の各々は、その遭遇した点によって区切られたそれぞれの非多様体入力スケッチにおけるそれぞれの部分(または幾つかのそれぞれの部分)に対応し得る。例えば、この分割するステップは、既に読み取られたそれぞれの非多様体入力スケッチの点を含む、それぞれの非多様体入力スケッチの部分を第一のスケッチ片として識別するステップ(identifying)と、それぞれの非多様体入力スケッチの残り(すなわち、まだ読み込まれていない他の点を含む部分)を第二のスケッチ片として識別するステップ(identifying)とを含み得る。二つのスケッチ片を分割するステップの後に、スケッチ加工方法は、各スケッチ片を独立して(例えば、連続して、または並行して)処理するステップ(processing)を備え得る。スケッチ片を処理するステップは、スケッチ片がスケッチ内交差を有していないかどうかを判定するステップ(determining)を含み得る。例えば、この処理するステップは、点群のうちの一つがスケッチ内交差として読み取られるかどうかを判定するために、スケッチ片を閲覧するステップ(browsing)と、点群のうちの一つがスケッチ内交差として読み取られるときに、スケッチ片が非多様体であると判定するステップ(determining)を含み得る。次いで、この処理するステップは、スケッチ片がスケッチ内交差を有しない場合、二つ以上のそれぞれの多様体スケッチのうちの一つとしてスケッチ片を決定するステップ(determining)を含み得る。それ以外の場合に、スケッチ片が少なくとも一つのスケッチ内交差を有する場合、この処理するステップは、スケッチ片で再帰的に分割するステップ(splitting)を繰り返すステップ(repeating)を含み得る。この再帰的に分割するステップを繰り返すステップは、スケッチ片を分割し(splitting)、それによってスケッチ片から二つの新しいスケッチ片を形成するステップ(forming)と、上述されるように二つの新しいスケッチ片の各々を独立して処理するステップ(processing)(すなわち、新しいスケッチ片が多様体であるかどうかを判定するステップ(determining)、および非多様体である新しい各スケッチ片を分割するステップ(splitting))とを含み得る。
したがって、この再帰的に分割するステップは、それぞれの非多様体スケッチから二つ以上の多様体スケッチを効率的に取得することを可能にする。特に、再帰的なスライス加工は、実行された分割する各ステップが二つのスケッチ片に分割するのみのため、この分割する各ステップからのスケッチ片の割り当てを簡素化することを可能にすることにより、分割の効率を向上させており、そのため、各スライス片がどの新しいスケッチ片に属するかを判定することは簡単である。
例では、一つまたは複数の入力スケッチは、一つまたは複数の閉非多様体入力スケッチを含む。その場合、各閉非多様体入力スケッチについて、閉非多様体入力スケッチを分割するステップは、スケッチ内交差の点(非多様体入力スケッチを閲覧するステップ(browsing)の間に遭遇した点)から開始して、閉非多様体入力スケッチを閲覧するステップ(browsing)を含み得る。例えば、この閲覧するステップは、スケッチ内交差における遭遇した点の後に接続された点を読み取り続けてもよい。次いで、この分割するステップは、スケッチ内交差における別の点に遭遇するステップ(encountering)を含み得る。この別の点は、前に遭遇した点と同じスケッチ内交差に属する。スケッチ内は、少なくとも二つの点を含み、前に遭遇した点はこれらの少なくとも二つの点の最初のものであり、この遭遇した別の点はこれらの少なくとも二つの点の二番目のものである。別の点に遭遇するステップの後に、この分割するステップは、スケッチ内交差におけるその点と別の点との間における閉非多様体入力スケッチからスケッチ片を抽出するステップ(extracting)を含み得る。この抽出するステップは、閉非多様体入力スケッチを遭遇した別の点で分割し(splitting)、それによって最初に遭遇した点と、最初に遭遇した点の後に遭遇した別の点との間における新しい閉スケッチ片(形成された新しい閉スケッチ片は、抽出されたスケッチ片である)と、閉非多様体入力スケッチにおける残りのスケッチ片(すなわち、形成された新しい閉スケッチ片のスケッチ片を含まない閉非多様体入力スケッチ)とを形成するステップ(forming)を含み得る。この分割するステップは、非多様体入力スケッチが分割される二つのスケッチ片のうちの一つとして、抽出されたスケッチ片を定義するステップ(defining)と、残りのスケッチ片を二つのスケッチ片のうちの別の一つとして定義するステップ(defining)とを含み得る。非多様体が閉じているため、スケッチ加工方法は、例えば、各スケッチについて、スケッチ内交差の点をスケッチ内交差における別の点に接続することにより、抽出されたスケッチ片と残りのスケッチ片とを閉じたものとして定義し得る。
例では、一つまたは複数の入力スケッチは、一つまたは複数の開非多様体入力スケッチを含み得る。その場合、各開非多様体入力スケッチについて、それぞれの非多様体入力スケッチを分割するステップは、スケッチ内交差の点(非多様体入力スケッチを閲覧するステップ(browsing)の間に遭遇した点)から開始して、非多様体入力スケッチを閲覧するステップ(browsing)を含み得る。例えば、この閲覧するステップは、遭遇したスケッチ内交差の点の後に接続された点を読み取り続けてもよい。次いで、この分割するステップは、スケッチ内交差における別の点に遭遇するステップ(encountering)を含み得る。別の点が属するスケッチ内交差は、最初に遭遇した点のスケッチ内交差と同じである(その点および別の点は、同じスケッチ内交差に属する)。別の点に遭遇するステップの後に、この分割するステップは、スケッチ内交差におけるその点との別の点との間における非多様体入力スケッチからスケッチ片を抽出するステップ(extracting)を含み得る。スケッチ片は、同じスケッチ内交差の二点間で抽出される。このように抽出されたスケッチ片は閉じているため、非多様体入力スケッチが分割されている二つのスケッチ片のうちの一つとして、スケッチ加工方法によって定義され得る。非多様体入力スケッチが開いているため、残りのスケッチ(すなわち、抽出された部品を有しないスケッチ)は、残り二つのスケッチ片によって構成されており、残り二つのスケッチ片の各々は開いている。抽出するステップの後、この分割するステップは、残り二つのスケッチ片を接合し(jointing)、それによって二つのスケッチ片のうちの別の一つを形成するステップ(forming)を含み得る。この接合するステップは、二つのスケッチ片のうちの一つの端部(extremity)を、二つのスケッチ片のうちの別の一つの端部に接続するステップ(connecting)を含み得る。二つのスケッチ片の各々について、その端部は、交差の点に近接している端部である。
例では、その結合するステップ(combining)S220において結合された多様体スケッチの各対は、第一の多様体スケッチおよび第二の多様体スケッチを含み得る。一つまたは複数の閉スケッチを形成するステップ(forming)は、第二の多様体スケッチに沿った第一の多様体スケッチと第二の多様体スケッチとの間において連続する交差の各対を考慮し得る。連続する交差の各対について、この形成するステップは、これら二つの連続する交差によってセグメント化される第二の多様体スケッチの部分を抽出するステップ(extracting)を含み得る。抽出するステップの後、この形成するステップ(forming)は、これら二つの連続する交差の間における第一の多様体スケッチを分割し(splitting)、それによって第一の多様体スケッチにおける一つまたは二つのセグメントを取得するステップ(obtaining)を含み得る。分割するステップ(splitting)の後に、この形成するステップ(forming)は、第一の多様体スケッチにおける各セグメントを第二の多様体スケッチの抽出部分に再結合し(recombining)、それによって一つまたは二つの閉多様体スケッチを取得するステップ(obtaining)を含み得る。第二の多様体スケッチに沿った連続する交差の各対を考慮することにより、取得された一つまたは複数の閉スケッチが多様体であることが保証される。
例では、その組み立てるステップ(constructing)S210によって得られるセットは、一意のスケッチによって構成される。例えば、この組み立てるステップ(constructing)S210は、仮のセットを組み立てられたセットとして定義するステップ(defining)の前に、仮のセットにおいて等価である少なくとも一対のスケッチを検出するステップ(detecting)と、仮のセットにおいて一対のスケッチのうちの一つを除去するステップ(removing)とを含み得る。
例では、一つまたは複数の入力スケッチを提供するステップ(providing)S10は、スケッチ断片のセットを取得するステップ(obtaining)を含み得る。スケッチ断片のセットを取得するステップは、手動で行い得る。例えば、各スケッチ断片は、ユーザーが(例えば、スケッチ断片における二つの端部の座標を入力することによって)入力し得る。あるいは、スケッチ断片のセットを取得するステップは、半自動であってもよい。例えば、この取得するステップは、ユーザーが描いた図面(例えば、触覚表面(tactile surface)上など)を検出するステップ(detecting)と、次いで、ユーザーが描いた図面に基づいて、一つまたは複数のスケッチ断片を形成するステップ(forming)とを含み得る。例えば、図面は、それぞれの実質的に連続する直線を(例えば、画面上で連続する直線状のスライドを介して)それぞれセグメント化する、一つまたは複数のユーザーとの対話を実行するステップ(performing)を含み得ており、その形成するステップ(forming)は、図面における実質的に連続する直線を検出するステップ(detecting)と、実質的に連続する直線に一つまたは複数のスケッチ断片(例えば、実質的に連続した各直線に対するそれぞれのスケッチ断片)を適合させるステップ(fitting)を含み得る。あるいはまた、スケッチ断片のセットを取得するステップ(obtaining)は、完全に自動化されている場合がある。例えば、この取得するステップは、画像を提供するステップ(providing)(例えば、製品の画像を自動的に捕捉するステップ(capturing)、または画像をインポートするステップ(importing)など)と、提供された画像に基づいて一つまたは複数のスケッチ断片を自動的に形成するステップ(forming)とを含み得る。そのため、画像は、自然画像、または図面であり得る。一つまたは複数のスケッチ断片を形成するステップ(forming)は、画像における一つまたは複数の直線状の辺(straight edge)を検出するステップ(detecting)と、検出された各辺にそれぞれのスケッチ断片を適合させるステップ(fitting)を含み得る。画像において直線状の辺を検出するステップは、実質的に直線状の部分に発生する画像内の有意な色、および/または(例えば、閾値を超える)コントラストの変化を検出するステップ(detecting)を含み得る。スケッチ断片のセットを取得するステップ(obtaining)は、これらの提供種類(手動、半自動、および/または完全自動)のうちの一つ、または複数の組み合わせに基づき得る。
スケッチ断片のセットを取得するステップ(obtaining)の後に、この提供するステップS10は、取得されたスケッチ断片のセットから、接続されたスケッチ断片のうちの一つまたは複数の集約体(aggregations)を生成するステップ(generating)を含む。一つまたは複数の集約体の各々は、一つまたは複数の入力スケッチのうちの一つであり得る。接続されたスケッチ断片における一つまたは複数の集約体を生成するステップは、セットの各スケッチ断片について、スケッチ断片を含む一つまたは複数のスケッチを組み立てるステップ(constructing)を含み得る。組み立てられた各スケッチについて、スケッチを組み立てるステップは、組み立てられたスケッチに接続可能であるセットからの他のスケッチ断片が無くなるまで、最初に考慮されたスケッチ断片にスケッチ断片を連続的に接続するステップ(connecting)を含み得る。例えば、各スケッチ断片は、二つの端部を有する場合があり、一方の端部が他方の端部から所定の閾値未満で離間している場合、二つのスケッチ断片は、接続可能であり得る。そのセットからの他のスケッチの何れも、組み立てられたスケッチの端部の一つから離間している端部を有しない場合(すなわち、所定の閾値未満である場合)、セットからの他のスケッチ断片には、組み立てられたスケッチに接続可能であるものはない。
例において、組み立てるステップ(constructing)S210によって得られるセットは、閉スケッチから構成され得る。例えば、この組み立てるステップS210は、仮のセットを組み立てられたセットとして定義するステップ(defining)の前に、仮のセットにおいて開いている少なくとも一つのスケッチを検出するステップ(detecting)と、検出された開スケッチの各々について、仮のセットにおいて検出された開スケッチを閉じ込むか、または除去するステップ(closing or removing)とを含み得る。開スケッチを閉じ込むステップは、開スケッチにおける二つの端部を接続するステップ(connecting)を含み得る。
ここで、スケッチ処理方法における実装の例について、より詳細に説明する。
スケッチ加工方法は、基本的なスケッチ断片(elementary sketch fragments)のセット(例えば、幾何学的な直線(lines)、円弧(circle arcs)、および/またはスプライン(splines))を入力として受け取り、閉多様体スケッチのセットを出力するが、各閉多様体スケッチは、入力として受け取られたセットにおける基本的なスケッチ断片、またはこれらのスケッチ断片におけるサブ断片(sub-fragments)の接続された組み合わせ(combination)である。出力された閉多様体スケッチのセットを組み立てるために、スケッチ加工方法は、第一に、接続されたスケッチ断片における最大の組み合わせのセット(すなわち、接続されたスケッチ断片の集約体であって、各集約体がスケッチである、集約体)を生成するステップ(generating)を備える。第二に、スケッチ加工方法は、それらの生成されたスケッチの各々について、他のスケッチとの交差、またはそれ自体との交差を探索するステップ(searching)を備える。適切な場合、スケッチ加工方法は、交差する各スケッチを分割し、交差するスケッチと組み合わせて、閉スケッチを生成するステップ(generate)を含み得る。閉多様体スケッチの生成は、生成されたスケッチによって境界付けられた2D形状、および/または生成されたスケッチをサポート(例えば、パッド(pads)または回転(revolves))として使用して、3D輪郭ベースの体積を導出するステップ(deriving)を含み得る。
このように、スケッチ加工方法は、基本的なスケッチ断片のセットに関連する2Dまたは3D形状を自動的かつ効率的に生成し得るが、これは、例えば、形状の組み立て直し(shape reconstruction)、または画像もしくは図面からの検出などの、タスクに有用である。
スケッチ加工方法により、基本的なスケッチ断片の結合および分割によって組み立てられた、全ての可能な閉多様体スケッチを生成することが可能になる。そのため、スケッチ加工方法は、2D形状および3D輪郭ベースの体積(例えば、押し出し立体など)の両方を、ユーザーによって提供されるか、または図面もしくは画像から自動的に推測されるかの何れかのスケッチから効率的に組み立てることを可能にする。
とりわけ、スケッチ加工方法は、スケッチ(例えば、図面または画像など)の抽出を可能にする任意のサポートから、関連する全ての閉多様体スケッチを生成するための効率的な方法を提供するが、これは、それらのスケッチによって境界付けられた2D形状、またはそれらによって支持される3D輪郭ベースの体積(例えば、押し出し体(extrusions)、または回転体(revolutions)など)を迅速に生成することを可能とする。
深層学習ベース(deep-learning based)の方法とは対照的に、データは必要とされない。これは、スケッチ加工方法が、目に見えないデータ型(data types)に対する堅牢性(robustness)の欠如に悩まされないことも意味する。実際、スケッチ加工方法により、入力で指定された任意の基本種類(線分(line segments)、弧(arcs)、スプライン(splines)など)の組み合わせとしてスケッチを生成することが可能になる。これは、スケッチ加工方法が、生成されたスケッチに関する特定のカテゴリに限定されないことを意味する。スケッチ加工方法により、正確であり(すなわち、入力に正確に適合し)、簡単かつ直感的に編集可能である、スケッチを提供することも可能になる。
さらに、生成された閉多様体スケッチのセットは、網羅的(exhaustive)である。実際、スケッチ加工方法は、一意のスケッチの生成に限定されることなく、関連する全ての閉多様体スケッチを生成する。さらに、スケッチ加工方法は、重複する(および、さらには交差する)スケッチの生成を取り扱うことを可能にする。さらに、スケッチ加工方法は、スケッチ断片の接続のための距離許容値(distance tolerance)(所定の閾値)である、一つのハイパーパラメータ(hyper-parameter)のみに基づいている。この固有のハイパーパラメータは、入力の分析から簡単に導き出され得ており、生成される出力を大きく定義することはない。また、スケッチ加工方法により、2D形状および3D形状の両方を生成することが即座に可能になる。
もう一つの利点は、スケッチ加工方法がスケッチ断片の方向付け(orientation)を保持することである。方向付けを保持することにより、生成された体積における加算または減算の属性推論(property inference)が改善される。
ここで、スケッチ加工方法の入力について説明する。スケッチ加工方法は、基本的なスケッチ断片のセットを入力として受け取る。スケッチ断片の各々は、方向付けされている可能性がある。スケッチ断片(またはその一部)は、生成された閉多様体スケッチの構成要素(building blocks)を形成する。スケッチ断片は、線分(line segments)、円弧(circles arcs)、または開曲線(open curves)、もしくは閉曲線(closed curves)(例えば、スプライン(splines)など)の場合がある。スケッチ断片は、様々な方法で取得され得る。例において、スケッチ断片は、(例えば、2D図面ソフトウェアの使用の結果として)ユーザーによって直接提供され得る。他の例では、スケッチ断片は、曲線を適合させることにより、ならびに/または図面上で特定の幾何学的曲線(specific geometric curves)(直線または円など)、画像上で自動的に検出された辺(edges)(例えば、Cannyエッジ検出器(Canny edge detector)を使用して)、および/もしくは画像上で手動によって引いて描かれた辺(traced edges)を検出することによって提供され得る。他の例では、スケッチ断片は、3Dスキャンで検出された表面などの、輪郭ベースの近似表面(approximate surfaces)(例えば、押し出し表面を表すメッシュなど)の投影に方向付けられた曲線を適合させることによって提供され得る。
ここで、図2および図3を参照して、入力スケッチを提供するステップ(providing)S10について説明する。スケッチ断片の入力セットが与えられると、スケッチ加工方法は、接続された断片の全ての最大の組み合わせを生成する。最大(maximal)とは、その組み合わせに接続可能である他のスケッチ断片が他に無いことを意味する。スケッチ加工方法は、各スケッチ断片について、接続可能な全ての断片を連続して探索し、結合可能な断片の何れも追加できなくなるか、現在のスケッチが閉じられるまで、結合することにより、このスケッチ断片を含む全ての接続されたスケッチを組み立てる。そのため、生成されたスケッチは、開いているか、または閉じているかの何れかであり、最終的には非多様体になり得る(図1および2に例証される組み合わせを参照のこと)。さらに、入力として提供されたスケッチ断片が方向付けられていない場合、スケッチ加工方法は、例えば、それらのスケッチ断片のうちの一つのための方向を選択し、他のスケッチ断片と接続するときにこの方向を伝播することにより、生成された組み合わせを方向付けするステップ(orienting)を含み得る。
スケッチ加工方法は、接続条件(connection condition)を緩和するステップ(relaxing)をさらに含んでもよい。例えば、接続される二つのスケッチ断片の端部間の距離が所定の許容値(tolerance)よりも小さい場合、二つのスケッチ断片を結合することができる。接続条件を緩和するステップは、入力スケッチ断片における最終ノイズ(eventual noise)に堅牢性を追加することを可能にする。この許容値は、例えば、ノイズレベルおよびスケッチの規模に従って、またはスケッチの端部間の距離の分布を分析することによって定義され得る。
図2は、一つまたは複数の入力スケッチを提供するステップ(providing)S10に関する第一の例を例証している。提供するステップS10は、スケッチ断片200、201、202、203、および204のセットを取得するステップ(obtaining)を含む(スケッチ断片は、異なる種類の点線を使用して、図において区別されている)。この提供するステップS10は、取得されたスケッチ断片のセットから、接続されたスケッチ断片のうちの一つまたは複数の集約体を生成し(generating)、それによって一つまたは複数の入力スケッチ210、および211を取得するステップ(obtaining)S210をさらに含む。この生成するステップS110は、スケッチ断片200および201に基づいて、第一の集約体を生成するステップ(generating)を含む。第一の集約体は、スケッチ断片200および201の端部を接続することによって生成される。第一の集約体は、スケッチ210を提供するが、これは、開多様体(open and manifold)である。この生成するステップS110は、これらのスケッチ断片202、203、および204の端部を接続することにより、スケッチ片202、203、および204に基づいて、第二の集約体を生成するステップ(generating)をさらに含む。第二の集約体は、スケッチ211であり、これも、開多様体である。
図3は、一つまたは複数の入力スケッチを提供するステップ(providing)S10に関する第二の例を例証している。この提供するステップS10は、スケッチ断片300、301、302、303、304、305、306、および307のセットを取得するステップ(obtaining)を含む。この提供するステップS10は、取得されたスケッチ断片のセットから、接続されたスケッチ断片のうちの一つまたは複数の集約体を生成し(generating)、それによって一つまたは複数の入力スケッチ310、311、および312を取得するステップ(obtaining)S110をさらに含む。この生成するステップS110は、スケッチ断片300、301、302、303、304、および307に基づいて、第一の集約体を生成するステップ(generating)を含む。第一の集約体は、スケッチ310を提供するが、これは、閉非多様体である。この生成するステップS110は、スケッチ断片305(それぞれスケッチ断片306)に基づいて、第二の集約体311(それぞれ第三の集約体312)を生成するステップ(generating)を含む。
ここで、図4および5を参照して、一つまたは複数の閉多様体出力スケッチを決定するステップ(determining)について説明する。接続されたスケッチ断片の集約体のセット(すなわち、入力スケッチのセット)は、閉スケッチ、および開スケッチの両方によって構成される。この入力スケッチのセットが与えられると、スケッチ加工方法は、関連する全ての閉多様体スケッチを生成するステップ(generating)を含む。実際、入力スケッチの一つが非多様体である可能性があるだけでなく、入力スケッチのセットは、それが入力スケッチ断片の組み合わせを含まないという点で制限される。これらの制限に対処するために、スケッチ加工方法は、図4および5を参照して、以下の段落で説明される二つの主要なステップを含む、効率的な2ステップのスケッチ分割処理(two steps sketch splitting processing)を提供する。
図4に例証される第一の主要ステップにおいて、スケッチ加工方法は、各入力スケッチ400を処理し、(非多様体である)入力スケッチ400から、多様体スケッチのセット431、432、433、および434を組み立てる。この組み立てるステップは、潜在的に非多様体の集約されたスケッチのセットから始まる。第一に、この組み立てるステップは、全ての非多様体スケッチを多様体の(開いた、または閉じた)サブスケッチに分割する。この分割するステップは、集約された各スケッチについて、(その断片のうちの一つまたは複数の間における)自動交差(auto-intersections)401を検索する第一のステップを含む。第二のステップでは、集約されたスケッチが少なくとも一回は自動交差する場合、スケッチ加工方法は、無差別に交差の点のうちの一つを選択する。スケッチが閉じている場合、スケッチ加工方法は、二つの閉サブスケッチにおける交差の点で集約されたスケッチを分割する(例えば、スケッチ411を分割するステップS413)。この分割するステップは、スケッチを閲覧するステップ(browsing)と、それを含む二つの断片のうちの何れかの交差の点から開始するステップ(starting)と、再び交差の点に到達するまで、スケッチに追従するステップ(following)と、一つの閉サブスケッチを抽出するステップ(extracting)とを含む。次いで、この分割するステップは、残りのサブスケッチを第二の閉サブスケッチとして定義するステップ(defining)を含む。スケッチが開いている場合、スケッチ加工方法は、一つの閉サブスケッチと、一つの開サブスケッチとの交差の点において集約されたスケッチを分割する(例えば、スケッチ400を分割するステップS410、またはスケッチ410を分割するステップS420など)。この分割するステップは、集約されたスケッチを閲覧するステップ(browsing)と、それを含む第一の断片との交差の点から開始するステップ(starting)と、再び交差の点に到達するまで、スケッチを追従するステップ(following)と、一つの閉サブスケッチを抽出するステップ(extracting)とを含む。その場合、二つの開サブスケッチが残るが、これらは、それぞれ交差の点において終了および開始している。スケッチ加工方法は、これら二つの残りのサブスケッチを結合して、第二の開サブスケッチを形成し得る。次いで、スケッチ加工方法は、生成された二つのスケッチに対して自動交差が検出される場合、自動交差(例えば、413および414など)に対する探索と、この分割するステップ(S410の後におけるS420およびS421など)を再帰的に適用し得る。
図5において例証される第二の主要なステップでは、次いで、スケッチ加工方法は、多様体スケッチのセットから、可能な全ての閉じた(そして依然として多様体の)スケッチの組み合わせを生成する。この生成は、スケッチ「A」501および「B」502(Aは、Bとは異なっている)の順序付けられた各対について、AおよびBの間の交差503、503'、および503''を探索するステップ(searching)を含む。少なくとも二つの交差がある場合(この例では、三つの交差503、503'、および503''がある)、(Bの方向付けに関する)交差の点の連続する各対について、スケッチ加工方法は、これら二つの点の間におけるBのサブスケッチ(すなわち、503および503'の間の第一のサブスケッチ、ならびに503'および503''の間の第二のサブスケッチ)を抽出するステップ(extracting)を含む。この例では、スケッチ加工方法は、第一に503および503'の対を考慮し、次に503'および503''の対を考慮する。Aが開いている場合(この例ではそうではない)、スケッチ加工方法は、二つの交差の点の間におけるそのサブスケッチを抽出し、二つの点の何れかから開始することにより、一つの開サブスケッチを生成し、他の点、またはその端部に到達するまで、スケッチに追従する。この他の点に到達する場合、スケッチ加工方法は、目的のサブスケッチを決定する。それ以外の場合、スケッチ加工方法は、他の点から開始して、手続きを繰り返す。Aが閉じている場合(図5におけるこの例のように)、スケッチ加工方法は、Bを二つの交差の点(それぞれ、S510に関しては503および503'、S520に関しては503'および503'')において分割し(S510およびS520)、それによって二つの開サブスケッチ(より大きいサブスケッチ、およびより小さいサブスケッチ)を生成する。この分割するステップは、二つの点の何れかから開始するステップ(starting)と、他の点に到達するまで、スケッチに追従するステップ(following)と、一つの開サブスケッチを生成するステップ(generating)とを含む。残りのサブスケッチは、両方の点を接合する別の開サブスケッチである。次いで、スケッチ加工方法は、AのサブスケッチをBのサブスケッチに結合させ、一つまたは二つの閉多様体スケッチを生成する。スケッチ加工方法は、Bのサブスケッチの向きがAのサブスケッチと一致しない場合に、Bのサブスケッチを逆にする場合がある(すなわち、BのサブスケッチおよびAのサブスケッチの両方が同じ点で開始し、同じ点で終了するが、その逆はない)。二つの交差の点が連続しているため、Bのサブスケッチは、Aのサブスケッチと交差しない。この場合、交差503および503’の第一の対について、503および503’の間のBのサブスケッチと、Aにおけるより大きいサブスケッチとの組み合わせは、スケッチ511を提供し、503および503’の間のBのサブスケッチと、Aにおけるより小さいサブスケッチとのの組み合わせは、スケッチ512を提供する。交差503'および503''の第二の対について、503'および503''の間のBのサブスケッチと、Aにおけるより大きなサブスケッチとの組み合わせは、スケッチ513を提供し、503'および503''の間のBのサブスケッチと、Aにおけるより小さなサブスケッチとの組み合わせは、スケッチ514を提供する。
例では、スケッチ加工方法は、一意ののスケッチの生成をさらに確実にし得る。スケッチ加工方法は、重複するスケッチを検出して除去するための後処理(post-processing)のステップを含み得る。スケッチ加工方法は、それらの元のスケッチ断片と、それらの端部とによって、分割スケッチ断片を一意に定義し得る。
スケッチ加工方法は、一つの集約されたスケッチに対して複数の閉多様体スケッチを生成することを可能にし、そのスケッチにおける全ての可能な閉じ込み(closing)が生成されることを確実にすることを可能にする。最初の基本的なスケッチ断片の代わりに、既に集約されたスケッチを分割するステップは、全体的により効率的な手順を可能とする。特に、交差するスケッチ断片を分割するステップ(splitting)の前に、スケッチ断片を集約するステップ(aggregating)は、集約される断片の数を減らすことを可能にするため、(特に、交差するスケッチ断片を集約するステップ(aggregating)の前に、それらを分割するステップ(splitting)を実行することに関して)集約するステップの複雑さを軽減することを可能にする。
図6は、交差するスケッチ断片が集約される前に分割される際における複雑さの例を例証している。スケッチ加工方法は、考慮される各スケッチについて、個別にスケッチを分割するが、これにより、生成されたスケッチ毎に分割するスケッチ断片の数が、最小限に抑制される。実際、交差するスケッチ断片を分割するステップは、同じ断片に対して複数の分割を潜在的に含んでいる。図6における例では、スケッチ断片520は、二つのスケッチ断片521および522に分割されるが、交差するスケッチ断片が、S620によって集約される前に、S610によって分割されるとき、これにより、複雑さが増大する。断片当たりの複数分割は、より複雑なスケッチが生成されることを意味するだけでなく(多数のより小さな断片を有するスケッチのように、一部をグループ化することもできる)、(図6において例証されるように)さらに多くのスケッチ断片を考慮する必要があるため、集約するステップの効率がさらに低下する。スケッチ加工方法は、スケッチの断片を分割する前に、それらを集約することにより、複雑さを軽減し、そのために効率を向上させることを可能にする。
図7は、開スケッチを閉じ込むステップ(closing)S700の一例を例証している。スケッチ加工方法は、堅牢性を追加するために、生成された開スケッチを閉じ込むステップ(closing)を備え得る。その生成された開スケッチを閉じ込むステップは、適切に選択された架空のスケッチ断片(fictive sketch fragments)(例えば、図7に例証されるように、単一のセグメント530)を使用し得る。例えば、スケッチ加工方法は、スケッチの分解によって閉じ込むことができなかった、集約されたスケッチを架空的に閉じ込む場合がある。これにより、全ての入力スケッチ断片が、生成された閉多様体スケッチにおいて表現されることが確実になる。代替的または追加的に、全ての集約された開スケッチがスケッチの分解によって閉多様体スケッチに既に繋がっている場合でさえも、スケッチ加工方法は、全ての集約された開スケッチを架空的に閉じ込め得る。これにより、生成されたスケッチにおける網羅性が高まることが確実になる。架空的スケッチ閉じ込み(closing)に関するより多くの例は、図8に例証されており、図8は、押し出し輪郭の架空的閉じ込み531の三例と、回転輪郭の架空的閉じ込み532の二例を例証している。
図9は、スケッチ加工方法によるスケッチ加工に関する二例を例証している。第一の例では、スケッチ加工方法は、三つの入力スケッチ(入力スケッチ602)を提供するステップ(providing)S10を備える。この提供するステップS10は、スケッチ断片のセット601を取得するステップ(obtaining)と、(三つの入力スケッチ602である)取得されたスケッチ断片のセットから、接続されたスケッチ断片における三つの集約体を生成するステップ(generating)S110とを含む。次いで、スケッチ加工方法は、三つの入力スケッチ602から二つの出力スケッチ603を決定するステップ(determining)S20を備える。出力スケッチ603の各々は、閉多様である。第二の例では、スケッチ加工方法は、三つの入力スケッチ(入力スケッチ612)を提供するステップ(providing)S10を備える。この提供するステップS10は、スケッチ断片のセット611を取得するステップ(obtaining)と、(三つの入力スケッチ611である)取得されたスケッチ断片のセットから、接続されたスケッチ断片における三つの集約体を生成するステップ(generating)S110とを含む。次いで、スケッチ処理方法は、三つの入力スケッチ612から三つの出力スケッチ613を決定するステップ(determining)S20を備える。出力スケッチ613の各々は、閉多様体である。例では、出力スケッチは、スケッチ614も含み得る。この決定するステップS20は、入力スケッチから多様体スケッチのセットを組み立てるステップ(constructing)S210と、多様体スケッチの各対を結合するステップ(combining)S220とを含む。
図10は、スケッチ断片620およびスケッチ断片621の間において合併されたスケッチ部分(sketch portion)を含むスケッチ断片に関する一例を例証している。その場合、スケッチの対を結合するステップS220は、合併されたスケッチ部分を(この例では、より小さいスケッチ621から)それらの端部として考慮するステップ(considering)を含み得る。合併されたスケッチ部分も、集約するステップの後に、同様に考慮され得るが、これは、断片を共有し、そのため同じサイズのスケッチのセットを提供し得る。次いで、新しいスケッチを再結合すると、スケッチ加工方法は、再結合されたスケッチを検出して、混同されたスケッチ断片を除外する場合がある。これにより、縮退したスケッチ(例えば、非多様体である、スケッチ620の混同された部分である、スケッチ621など)を生成することなく、スケッチ622(図10にも例証されており、この例では全周している)のような、関連するスケッチを生成することが可能になる。
図11は、2Dおよび3Dの生成方法に関する二例を例証している。第一の例では、家屋の図面が入力として取り込まれている。第二の例では、カメラの図面が入力として取り込まれている。両方の例において、2D及び3D生成方法は、図面からスケッチ断片を生成するステップ(generating)S100を備える。この生成するステップS100は、入力スケッチ片を生成するために、線分(line segments)、円弧(circle arcs)、およびスプライン(splines)を図面に適合させるステップ(fitting)を含み得る。他の例では、画像が提供される場合、生成するステップS100は、(例えば、Cannyエッジ検出器を使用して)画像における辺(edges)を検出するステップ(detecting)を含み得る。
ここで、2D生成方法について説明する。2D生成方法は、閉多様体スケッチのセットが一度生成されると、入力スケッチ断片に適合する(これらのスケッチによって境界付けられる)2D表面を自動的に生成するステップ(generating)を備える。2D表面の各々は、それぞれのスケッチによって境界付けられ得る。これは、2D表面では、スケッチが2D表面の境界を区切られ得ることを意味する。2D表面を生成するステップは、出力されたスケッチの中から一つまたは複数のスケッチを選択するステップ(selecting)と、選択された各スケッチについて、それぞれの2D表面を生成するステップ(generating)を含み得る。この図では、出力されたスケッチの中から選択されたスケッチのみが例証されている。これは、出力されたスケッチが、図に表現されていない他のスケッチ(例えば、図9に表現される出力スケッチ614など)を含み得ることを意味する。次いで、2D生成方法は、生成された2D表面に基づいて2D形状を形成するステップ(forming)を備える。例えば、2D形状を形成するステップは、2D表面を共に接合するステップ(joining)を含み得る。そのため、2D生成方法により、提供された図面(または他の例では画像)に2D形状を適合させることが可能になる。他の例では、同様の入手経路(pipeline)を使用して、2D生成方法は、生成されたスケッチ上において特定の検出基準(detection criteria)(例えば、それぞれ四つの直交する同じサイズのセグメント、一つの閉円(closed circle)など)を使用して、図面および画像における特定の2D形状(例えば、正方形、円など)の検出を応用として有し得る。
ここで、3D生成方法について説明する。3D生成方法は、入力スケッチ断片(この例におけるような図面、または他の例における提供された画像)に適合する関連の3D形状を即時に生成するステップ(generating)S32を可能にする。入力スケッチ断片に適合させるステップは、閉多様体スケッチをサポートとして使用して、押し出し体積(extrusion volumes)または回転体積(revolution volumes)を生成するステップ(generating)を含み得る。この生成するステップS32は、輪郭ベースの体積における限界を正確化する(precise)ために、手動のユーザー入力、または別の特定検出の入手経路を実行するステップ(performing)をさらに含み得る。
図12は、(適合方法と呼ばれる)輪郭ベースの体積を近似表面に適合させるためのスケッチ加工方法の一例を例証している。適合方法は、輪郭ベースの体積(例えば、押し出された体積)を近似表面(例えば、スキャンメッシュ(scan mesh)など)に堅牢的に適合させるステップ(fitting)を応用として有している。近似表面を関連の表面部分にセグメント化した後に、適合方法は、互換性のある表面部分を連続的に合併することにより、押し出し方向(extrusion directions)および対応する表面部分を検出するステップ(detecting)を備える。適合方法は、押し出し方向に直交する平面上にそれらの表面部分を投影することにより、スケッチ断片を生成するステップ(generating)をさらに備える。適合方法におけるスケッチ集約および分解入手経路(disassembly pipeline)により、各押し出し方向に関連する全ての閉多様体スケッチの生成と、その後の3D押し出し体積の生成が可能になる。実際、スケッチの分解により、関連する全ての閉多様体スケッチ(および、したがって対応する3D押し出し体積)を回収するステップ(recovering)が改善される。とりわけ、同じ方向における複数の押し出し体積が隣接している場合、閉多様体スケッチの生成に必要なスケッチ断片の一部が、(図12に例証されるように、)他のものに厳密に含まれる危険に晒されることである。さらに、一つまたは複数の出力スケッチを決定するステップはスケッチの方向付けを維持するため、適合方法は、対応する体積における加法的または減法的(例えば、パッド(pad)またはポケット(pocket)など)特性を推測するステップ(infrerring)を備え得る。
図13は、3D生成方法の一例を例証している。3D生成方法は、画像からスケッチ断片を取得するステップ(obtaining)S100を備える。この例では、画像は、その主軸の一つに沿ったオブジェクトの3D正射影図(orthogonal view)である。3D生成方法は、取得されたスケッチ断片のセットから、接続されたスケッチ断片のセットを生成するステップ(generating)S110をさらに備える(接続されたスケッチ断片のセットは、入力スケッチである)。3D生成方法は、入力スケッチから出力スケッチ612を決定するステップ(determining)S20をさらに備えるが、各出力スケッチは、閉多様体である。出力スケッチを決定するステップS20は、入力スケッチから多様体スケッチ612のセットを組み立てるステップ(constructing)を含む。決定するステップS20は、閉多様体702を形成するように、組み立てられたセットにおける多様体スケッチの各対を結合するステップ(combining)S220をさらに含む。次いで、この生成方法は、出力された閉多様体スケッチ702に基づいて、3D部分を生成するステップ(generating)(各3D部分は、出力された一つまたは複数の閉多様体スケッチにおける一つの押し出し(extrusion)または回転(revolution)である)と、生成された3D部分に基づいて3D形状703を形成するステップ(forming)とをさらに備える。
図14は、システムのGUIの一例を示しているが、そのシステムがCADシステムである。
GUI2100は、標準のメニューバー2110および2120、ならびにボトムツールバー2140およびサイドツールバー2150を有する、典型的なCADのようなインターフェースであり得る。そのようなメニューバーおよびツールバーは、ユーザー選択可能なアイコンのセットを含んでおり、各アイコンは、当技術分野で知られているように、一つまたは複数の操作または機能に関連付けられている。これらのアイコンの幾つかは、GUI2100に表示される3Dモデル化オブジェクト2000に対する編集および/または作業に適した、ソフトウェアツールに関連付けられている。ソフトウェアツールは、ワークベンチに分類され得る。各ワークベンチは、ソフトウェアツールのサブセットによって構成されている。特に、ワークベンチの一つは、編集ワークベンチであり、モデル化された製品2000の幾何学的特徴の編集に適している。操作において、設計者は、例えば、オブジェクト2000の一部を事前に選択してから、操作(例えば、寸法(dimension)、色(color)等の変更など)操作を開始し、または適切なアイコンを選択して幾何学的制約を編集し得る。例えば、典型的なCAD操作は、画面上に表示された3Dモデル化オブジェクトの打ち抜き加工(punching)または折り畳み加工(folding)のモデル化である。GUIは、例えば、表示された製品2000に関連するデータ2500を表示し得る。この図の例では、「特徴ツリー(feature tree)」として表示されるデータ2500と、それらの3D表現2000は、制動用ハサミ(brake caliper)および制動用ディスク(brake disc)を含むブレーキ組み立て品に関係する。GUIは、例えば、オブジェクトの3D方向付け(3D orientation)を容易にするため、編集された製品の動作のシミュレーションを誘発し、または表示された製品2000における種々の属性を図面するために、種々の種類のグラフィックツール2130、2070、および2080をさらに表示し得る。カーソル2060は、ユーザーがグラフィックツールを操作することを可能にするように、触覚デバイス(haptic device)によって制御され得る。
図15は、システムの一例を示しており、このシステムは、クライアント・コンピュータ・システム、例えば、ユーザーのワークステーションである。
実施例におけるクライアントコンピュータは、内部通信バス(internal communication BUS)1000に接続された中央処理装置(CPU)1010、同じくバスに接続されたランダム・アクセス・メモリ(RAM)1070によって構成されている。クライアントコンピュータは、バスに接続されたビデオ・ランダム・アクセス・メモリ1100に関連付けられているグラフィック処理ユニット(GPU)1110をさらに備えている。ビデオRAM1100は、当技術分野ではフレームバッファ(frame buffer)としても知られている。大容量記憶装置コントローラ(mass storage device controller)1020は、ハードドライブ(hart drive)1030のような大容量記憶装置へのアクセスを管理する。コンピュータプログラム命令およびデータを有形的に具現化する(tangibly embodying)のに適した大容量記憶装置は、例として、EPROM、EEPROM、およびフラッシュ記憶装置などの半導体記憶装置(semiconductor memory devices)、内蔵ハードディスク(internal hard disks)および取り外し可能ディスク(removable disks)などの磁気ディスク(magnetic disks)、光磁気ディスク(magneto-optical disks)を含む、不揮発性メモリ(nonvolatile memory)の全ての形式を含んでいる。前述の何れかは、特別に設計されたASIC(特定用途向け集積回路(application-specific integrated circuits))によって補完され得るか、または組み込まれ得る。ネットワークアダプタ1050は、ネットワーク1060へのアクセスを管理する。また、クライアントコンピュータは、カーソル制御装置(cursor control device)、キーボードなどの、触覚デバイス(haptic device)1090を含み得る。カーソル制御装置は、ユーザーがディスプレイ1080上における任意の所望の位置にカーソルを選択的に配置することを可能にするために、クライアントコンピュータにおいて使用される。さらに、カーソル制御装置は、ユーザーが種々のコマンドを選択し、制御信号を入力することを可能にする。カーソル制御装置は、制御信号をシステムに入力するための多数の信号生成装置(signal generation devices)を含む。典型的には、カーソル制御装置は、マウスであってもよく、マウスのボタンは、信号を生成するために使用される。代替的または追加的に、クライアント・コンピュータ・システムは、感応パッド(sensitive pad)、および/または感応スクリーン(sensitive screen)を含み得る。
コンピュータプログラムは、コンピュータによって実行可能な命令を含み得るが、この命令は、上記のシステムにスケッチ加工方法、2D生成方法、3D生成方法、および/または適合方法を実行させるための手段を備える。プログラムは、システムのメモリを含む、任意のデータ記憶媒体(data storage medium)に記録可能であり得る。プログラムは、例えば、デジタル電子回路(digital electronic circuitry)において、またはコンピュータハードウェア、ファームウェア、ソフトウェアで、またはそれらの組み合わせにおいて実装し得る。プログラムは、装置(apparatus)、例えば、プログラム可能プロセッサによる実行のために機械可読記憶装置(machine-readable storage device)に有形的に具現化された製品として実装され得る。各方法のステップは、命令のプログラムを実行するプログラム可能プロセッサによって実行されて、入力データを操作して出力を生成することによってその方法の機能を実行し得る。そのため、プロセッサは、プログラム可能であり、データ記憶システム(data storage system)、少なくとも一つの入力装置、および少なくとも一つの出力装置からのデータおよび命令を受信し、それらへのデータおよび命令を送信するように結合され得る。アプリケーションプログラムは、必要に応じて、高レベルの手続き型プログラム言語(high-level procedural programming language)、もしくはオブジェクト指向プログラミング言語(object-oriented programming language)、またはアセンブリ言語(assembly language)、もしくはマシン言語(machine language)において実装され得る。何れにせよ、言語は、コンパイル型言語(compiled language)、またはインタプリタ型言語(interpreted language)であり得る。プログラムは、完全インストールプログラム(full installation program)、または更新プログラム(update program)であり得る。プログラムをシステムに適用すると、何れの場合も、スケッチ加工方法、2D生成方法、3D生成方法、および/または適合方法を実行するための命令がもたらされる。あるいは、コンピュータプログラムは、クラウドコンピューティング環境(cloud computing environment)のサーバ上で格納および実行されてもよいが、サーバは、ネットワークを介して一つまたは複数のクライアントと通信している。そのような場合、処理ユニット(processing unit)は、プログラムに含まれる命令を実行し、それによってスケッチ加工方法、2D生成方法、3D生成方法、および/または適合方法を引き起こして、クラウドコンピューティング環境で実行される。

Claims (15)

  1. スケッチ加工のためのコンピュータ実装方法であって、
    一つまたは複数の入力スケッチを提供するステップ(S10)であって、一つまたは複数の入力スケッチは、
    少なくとも一つの非多様体スケッチであって、各非多様体スケッチは、少なくとも一つのスケッチ内交差を有するスケッチである、少なくとも一つの非多様体スケッチ、および/または
    少なくとも二つのスケッチ間交差を共有する少なくとも一対のスケッチ
    を含む、ステップと、
    前記一つまたは複数の入力スケッチから一つまたは複数の出力スケッチを決定するステップ(S20)であって、各出力スケッチは、閉多様体であり、
    各多様体入力スケッチを含む多様体スケッチのセットを組み立てるステップ(S210)であって、それぞれの非多様体入力スケッチの各々について、前記それぞれの非多様体入力スケッチにおける前記少なくとも一つのスケッチ内交差に基づいて、二つ以上のそれぞれの多様体スケッチを決定するステップ(S211)であって、前記組み立てられたセットは、それぞれの非多様体入力スケッチの各々に関して決定された各多様体スケッチをさらに含む、ステップを含む、前記多様体スケッチのセットを組み立てる前記ステップ(S210)と、
    一つまたは複数の閉多様体スケッチを形成するように、少なくとも二つの交差を共有する、前記組み立てられたセットにおける多様体スケッチの各対を結合するステップ(S220)と
    を含む、前記一つまたは複数の出力スケッチを決定する前記ステップと
    を備え、
    前記一つまたは複数の出力スケッチは、前記組み立てられたセットにおける各閉スケッチと、結合する前記ステップ(S220)によって形成された各閉多様体スケッチとを含むことを特徴とする、方法。
  2. 各入力スケッチが方向付けられており、前記二つ以上のそれぞれの多様体スケッチを決定する前記ステップ(S211)は、前記それぞれの非多様体入力スケッチを再帰的に分割するステップであって、
    前記それぞれの非多様体入力スケッチを閲覧するステップと、
    前記スケッチ内交差の点に遭遇するステップと、
    前記それぞれの非多様体入力スケッチを、前記スケッチ内交差における遭遇した前記点で分割し、それによって二つのスケッチ片を形成するステップと、
    各スケッチ片について、
    前記スケッチ片がスケッチ内交差を有しない場合、前記スケッチ片を前記二つ以上のそれぞれの多様体スケッチのうちの一つとして決定するステップ、または
    前記スケッチ片が少なくとも一つのスケッチ内交差を有する場合、前記スケッチ片に対して再帰的に分割する前記ステップを繰り返すステップと
    を含む、再帰的に分割する前記ステップ
    を含むことを特徴とする、請求項1に記載の方法。
  3. 前記一つまたは複数の入力スケッチは、一つまたは複数の閉非多様体入力スケッチを含んでおり、各閉非多様体入力スケッチについて、前記それぞれの非多様体入力スケッチを分割する前記ステップは、
    前記スケッチ内交差の前記点から開始して、前記非多様体入力スケッチを閲覧するステップと、
    前記スケッチ内交差における別の点に遭遇するステップと、
    前記スケッチ内交差における前記点と前記別の点との間の前記非多様体入力スケッチから前記スケッチ片を抽出し、それによって前記二つのスケッチ片のうちの一つと、前記非多様体入力スケッチにおける残りのスケッチ片を定義するステップと、
    前記残りのスケッチ片を前記二つのスケッチ片の別の一つとして定義するステップと
    を含むこと、および/または
    前記一つまたは複数の入力スケッチは、一つまたは複数の開非多様体入力スケッチを含み、それぞれの開非多様体入力スケッチの各々について、前記それぞれの非多様体入力スケッチを分割する前記ステップは、
    前記スケッチ内交差の前記点から開始して、前記非多様体入力スケッチを閲覧するステップと、
    前記スケッチ内交差における別の点に遭遇するステップと、
    前記スケッチ内交差における前記点と前記別の点との間の前記非多様体入力スケッチから前記スケッチ片を抽出し、それによって前記非多様体入力スケッチにおける二つのスケッチ片の一つと、残り二つのスケッチ片とを定義するステップであって、前記残り二つのスケッチ片は開いている、ステップと、
    前記残り二つのスケッチ片を接合し、それによって前記二つのスケッチ片のうちの前記別の一つを形成するステップと
    を含むこと
    を特徴とする、請求項2に記載の方法。
  4. 多様体スケッチの各対は、第一の多様体スケッチおよび第二の多様体スケッチを含んでおり、前記一つまたは複数の閉スケッチを形成する前記ステップは、
    前記第一の多様体スケッチおよび前記第二の多様体スケッチとの間において前記第二の多様体スケッチに沿って連続する交差の各対について、
    これら二つの連続する交差によって区切られた前記第二の多様体スケッチの部分を抽出するステップと、
    これら二つの連続する交差の間における前記第一の多様体スケッチを分割し、それによって前記第一の多様体スケッチにおける一つまたは二つのセグメントを取得するステップと、
    前記第一の多様体スケッチにおける各セグメントを前記第二の多様体スケッチにおける前記抽出された部分と再結合し、それによって一つまたは二つの閉多様体スケッチを取得するステップと
    を含むことを特徴とする、請求項1ないし3の何れか一つに記載の方法。
  5. 多様体スケッチにおける前記組み立てられたセットは、一意のスケッチで構成される、請求項1ないし4の何れか一つに記載の方法。
  6. 前記一つまたは複数の入力スケッチを提供する前記ステップは、
    スケッチ断片のセットを取得するステップと、
    前記取得されたスケッチ断片のセットから、接続されたスケッチ断片における一つまたは複数の集約体を生成し、それによって前記一つまたは複数の入力スケッチを取得するステップと
    を含むことを特徴とする、請求項1ないし5の何れか一つに記載の方法。
  7. 各断片は、二つの端部を有しており、一方の端部が他方の端部から所定の閾値未満で離間している場合、接続されたスケッチ断片における前記一つまたは複数の集約体を生成する前記ステップは、前記セットにおける各スケッチ断片について、前記組み立てられたスケッチに接続可能である、前記セットにおけるその他のスケッチ断片が無くなるまで、各組み立てられたスケッチについて、スケッチ断片を連続的に接続することにより、前記スケッチ断片を含む一つまたは複数のスケッチを組み立てるステップを含むことを特徴とする、請求項6に記載の方法。
  8. 前記スケッチ断片を取得する前記スケッチは、ユーザーとの対話に応じて、および/または
    図面、
    画像上において自動検出された辺、および/または
    画像上において手動で引いて描かれた辺
    において、一つまたは複数の曲線を適合させることにより、および/または一つまたは複数の特定の幾何学的曲線を検出することにより、および/または
    3Dスキャンにおいて検出された輪郭ベースの近似表面における投影に方向づけられた曲線を適合させることにより、
    実行されることを特徴とする、請求項6または7に記載の方法。
  9. 多様体スケッチにおける前記組み立てられたセットは、閉スケッチで構成される、請求項1ないし8の何れか一つに記載の方法。
  10. 2D形状を生成するためのコンピュータ実装方法であって、
    請求項1ないし9の何れか一つに記載の方法を実行し、それによって一つまたは複数の閉多様体スケッチを出力するステップと、
    前記出力された一つまたは複数の閉多様体スケッチに基づいて、一つまたは複数の2D表面を生成するステップであって、各2D表面は、前記決定された一つまたは複数の閉多様体スケッチのうちの一つの内側にある、ステップと、
    前記生成された一つまたは複数の2D表面に基づいて前記2D形状を形成するステップと
    を備えることを特徴とする、方法。
  11. 3D形状を生成するためのコンピュータ実装方法であって、
    請求項1ないし9の何れか一つに記載の方法を実行し、それによって一つまたは複数の閉多様体スケッチを出力するステップと、
    前記出力された一つまたは複数の閉多様体スケッチに基づいて、一つまたは複数の3D部分を生成するステップであって、各3D部分は、前記出力された一つまたは複数の閉多様体スケッチのうちの一つの押し出し、または回転である、ステップと、
    前記生成された一つまたは複数の3D部分に基づいて前記3D形状を形成するステップと
    を備えることを特徴とする、方法。
  12. 輪郭ベースの体積を近似表面に適合させるためのコンピュータ実装方法であって、
    前記近似表面を表面部分に分割するステップと、
    3D輪郭ベースの体積を生成するための一つまたは複数の方向と、各方向について、一つまたは複数のそれぞれの表面部分とを検出するステップと、
    前記検出された一つまたは複数の各方向について、
    前記一つまたは複数のそれぞれの表面部分の各々を、押し出し方向に直交する平面に投影することにより、スケッチ断片のセットを生成するステップと、
    前記生成されたスケッチ断片のセットに基づいて、請求項6ないし8の何れか一つに記載の方法を実行し、それによって一つまたは複数の閉多様体スケッチを出力するステップと、
    前記生成された一つまたは複数の閉多様体スケッチから3D輪郭ベースの体積を生成するステップと
    を備えることを特徴とする、方法。
  13. 請求項1ないし9の何れか一つに記載の方法、請求項10に記載の方法、請求項11に記載の方法、および/または請求項12に記載の方法を実行するための命令を含むことを特徴とする、コンピュータプログラム。
  14. 請求項13に記載のコンピュータプログラムをそこに記録している、コンピュータ可読記憶媒体。
  15. メモリに結合されたプロセッサを備えるシステムであって、前記メモリは、請求項13に記載のコンピュータプログラムをそこに記録しており、前記システムは、任意選択として、前記プロセッサに結合されたグラフィカル・ユーザー・インターフェースをさらに備える。
JP2023047428A 2022-03-24 2023-03-24 スケッチ加工 Pending JP2023143870A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP22305354.7A EP4250164A1 (en) 2022-03-24 2022-03-24 Sketch-processing
EP22305354.7 2022-03-24

Publications (1)

Publication Number Publication Date
JP2023143870A true JP2023143870A (ja) 2023-10-06

Family

ID=81307566

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023047428A Pending JP2023143870A (ja) 2022-03-24 2023-03-24 スケッチ加工

Country Status (3)

Country Link
US (1) US20230306162A1 (ja)
EP (1) EP4250164A1 (ja)
JP (1) JP2023143870A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117709210A (zh) * 2024-02-18 2024-03-15 粤港澳大湾区数字经济研究院(福田) 约束推断模型训练、约束推断方法、组件、终端及介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4008526A1 (en) 2016-11-25 2022-06-08 Dassault Systèmes Orientation of a real object for 3d printing

Also Published As

Publication number Publication date
US20230306162A1 (en) 2023-09-28
EP4250164A1 (en) 2023-09-27

Similar Documents

Publication Publication Date Title
CN108228987B (zh) 副本选择
US11100710B2 (en) Extracting a feature tree from a mesh
CN108237693B (zh) 双轴3d打印过程的结果的b-rep
JP2019106177A (ja) 3d部品の付加製造
JP2022179417A (ja) Cadモデルのパラメータ化
JP2023143870A (ja) スケッチ加工
US11195330B2 (en) Generation of a structured 3D model from a raw mesh
JP7256005B2 (ja) 実オブジェクトのスキンを表すファセットの集合の決定
EP3644198B1 (en) 3d design of b-rep skin
US20210200907A1 (en) 3D Modeled Object Of A Physical Prototype Of A Product
JP2021131852A (ja) 機械部品の構造シミュレーション
US20230290064A1 (en) Processing a tesselation
US20230418990A1 (en) Cad feature tree generation
US20240078353A1 (en) Generating 3d model representing factory
US20230418986A1 (en) Cad feature tree optimization
EP4266257A1 (en) 3d reconstruction from images
US20240135733A1 (en) Fillet detection method
EP4345673A1 (en) Fillet detection method