Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6604655B2 - 大規模なコンピュータ支援設計モデルにおける設計変更の漸進的探索のための方法およびシステム - Google Patents
[go: Go Back, main page]

JP6604655B2 - 大規模なコンピュータ支援設計モデルにおける設計変更の漸進的探索のための方法およびシステム - Google Patents

大規模なコンピュータ支援設計モデルにおける設計変更の漸進的探索のための方法およびシステム Download PDF

Info

Publication number
JP6604655B2
JP6604655B2 JP2016571327A JP2016571327A JP6604655B2 JP 6604655 B2 JP6604655 B2 JP 6604655B2 JP 2016571327 A JP2016571327 A JP 2016571327A JP 2016571327 A JP2016571327 A JP 2016571327A JP 6604655 B2 JP6604655 B2 JP 6604655B2
Authority
JP
Japan
Prior art keywords
model
checkpoint
component
components
state
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.)
Active
Application number
JP2016571327A
Other languages
English (en)
Other versions
JP2017524174A (ja
Inventor
マイケル エー. ライトマン,
レオニード リブチン,
モーシェ ジェイコブ バウム,
イヴァン バルタガ,
セルゲイ グリン,
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.)
PTC Inc
Original Assignee
Parametric Technology Corp
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 Parametric Technology Corp filed Critical Parametric Technology Corp
Publication of JP2017524174A publication Critical patent/JP2017524174A/ja
Application granted granted Critical
Publication of JP6604655B2 publication Critical patent/JP6604655B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/15Vehicle, aircraft or watercraft design
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/17Mechanical parametric or variational design
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/02CAD in a network environment, e.g. collaborative CAD or distributed simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Architecture (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)

Description

関連出願
本出願は、2014年6月6日に出願された米国特許出願第14/298,627号の優先権および利益を主張し、その内容が参照により全体として本明細書に組み込まれる。
コンポーネントベースのモデリング環境は、「コンポーネント」または「コンポーネントモデル」と呼ばれる1つ以上の要素で構成されている上位モデルを構築するために使用され得るモデリング環境である。コンポーネントモデルは、上位モデルを形成するために組み合わされ得る単体を表し得る。コンポーネントベースのモデリングは、製品の設計、モデル化、テストおよび/または視覚化を行うために使用され得る。コンポーネントベースのモデリング環境は、コンピュータ支援設計(CAD)およびコンピュータ支援製造(CAM)環境を含む。
コンポーネントモデルは、別個の内部コンポーネントを含まないスタンドアロンのコンポーネントであり得るか、またはコンポーネントモデルは、1つ以上のコンポーネントで構成され得る。異なる上位モデルが同じコンポーネントを使用し得、また、単一の上位モデルが、単一の部分の異なるバージョンを表すために異なるコンポーネントを使用し得る。各コンポーネントは別個のファイルとして記憶装置上に格納され得る。
従来の方式では、特に、相互に依存する多くのコンポーネントをもつ複雑なシステムを開発している場合には、新規の着想または設計変更を探索するために、モデル設計においてコンポーネントを変更することは技術的な課題である。例えば、モデル設計を変更することは、既存のコンポーネントモデルファイルを1つ以上のフォルダに手動でバックアップすること、複数のセッションをオープンしてクローズすること、ならびに異なるモデルを手動で反復して再検討および評価することを伴い得る。このプロセスは、ユーザーが管理するには、非常に厄介で困難であり得る。このプロセスは、モデルに対する若干の修正により、そのモデルに関連した各コンポーネントモデルファイルが保存されて、設計変更を実装するためにそのモデルの各コンポーネントが再構築されることが必要になり得るので、記憶空間および処理資源の無駄という結果にもなり得る。
その上、1つのコンポーネントに対して変更を行った後、組立体内の他の関連したコンポーネントも、組立体の残りの部分との整合性を保つために更新される必要があり得る。例えば、ユーザーが車のモデルを構築していて、ユーザーが車のシャーシの幅を変更する場合、修正された組立体と整合性をとるために、車軸の長さも変更する必要があり得る。従属コンポーネントモデルに対する係る非明示的な変更は、派生的な変更(derived change)と呼ばれ得る。
モデルの1つ以上のコンポーネントに対して明示的な変更を行うと、派生的な変更を他のコンポーネントに伝搬するためにモデル全体を更新する必要があり得る。モデル設計の課題の1つは、漸進的な設計変更および探索(すなわち、ある変更を試みて、設計を更新し、望ましくない派生的な変更を生じた変更のいくつかを戻すこと)を管理および制御することである。どの派生的な変更がどの明示的な変更によって生じたか、どのコンポーネントが各漸次的変更で修正されたかを正確に追跡することは非常に困難であり得る。この課題により、モデルを以前の状態に手際よく戻すことが極めて困難になり得る。
本出願では、モデル変更を効率的かつ簡潔で使い勝手の良い方法で行って評価するための方法、媒体、およびシステムについて説明する。実施形態例によれば、ユーザーがモデルを変更するとチェックポイントが作成され得る。変更は、複数のモデルを含み得る「設計セッション」と呼ばれる、特別なタイプの編集セッション内で行われ得る。各チェックポイントは、そのモデルに対して以前のチェックポイント以後に行われた変更、および以前のチェックポイントへの参照(例えば、ポインタ)を格納し得る。チェックポイントは、未修正のコンポーネントモデルへの(例えば、ローカルまたはリモート記憶装置上の)パスも含み得、それにより、以前のチェックポイント以後に修正されなかったモデルのコンポーネントが複製される必要がない。
ユーザーは自由に、新しいチェックポイントを作成すること、以前のチェックポイントに戻ること、一連のチェックポイントを別のシーケンスに分けること、およびモデルの公式な作業バージョンとして使用されるモデルのチェックポイント化されたバージョンを選択することを行い得る。このように、ユーザーはモデルを容易に変更して、設計の変更または異なる潜在的な進化を評価でき、それと同時に、モデルの異なるバージョンを繰り返し保存する必要性を回避することにより記憶空間を節約できる。
実施形態例によれば、設計セッションに対してチェックポイントを作成する要求が受信され得る。上述のように、設計セッションは1つ以上のモデルを含み得る。設計セッション内のモデル(複数可)の以前の状態が識別され得、以前に保存された状態以後にモデル(複数可)に対して行われた変更のリストが取得され得る。チェックポイントが作成され得、そのチェックポイントは、モデル(複数可)の以前に保存された状態への参照および以前に保存された状態以後に変更されたコンポーネントモデルのリストを含む。モデルの以前に保存された状態への参照は、例えば、第2のチェックポイントへのポインタおよび/または未変更のコンポーネントモデルへのポインタであり得る。
変更されたコンポーネントモデルのリストは、明示的な変更および派生的な変更の影響を受けたコンポーネントモデルを含み得る。いくつかの実施形態では、モデルの第1のコンポーネントを変更するための命令が受信され得る。モデルは、命令に基づいて変更されて、モデルに対する明示的な変更となり得る。モデルの第2のコンポーネントモデルに対する派生的な変更が識別され得る。派生的な変更は明示的な変更から生じ得、第2のコンポーネントモデルを変更するためのユーザー命令ではなく、代わりに(例えば)第1のコンポーネントモデルと第2のコンポーネントモデルとの間のパラメータ関係に起因し得る。
一実施形態では、チェックポイントが設計セッション内で作成され得る。設計セッションに入ると、1つ以上の基本モデルが識別され得る。基本モデルは、設計セッション中に編集される未変更モデルであり得る。基本モデルを含むエントリチェックポイントが作成され得る。後続のチェックポイントが作成されて、ツリー構造内に格納され得、この場合、エントリチェックポイントがツリー構造のルートを表す。
基本モデルおよびチェックポイント(複数可)が、第1のコンピュータ上の設計ファイル内に格納され得る。設計ファイルは、第2のコンピュータに配信され得、第2のコンピュータ上でオープンされて、そのチェックポイントと一致したモデルを作成するために使用され得る。
さらなる実施形態例によれば、モデルが、保存されたチェックポイントと一致する状態に復元され得る。例えば、モデルを保存された状態に戻す要求が受信され得る。保存された状態と一致したチェックポイントが取得され得、そのチェックポイントは、以前のチェックポイントへの参照および/または未変更のコンポーネントモデルならびに以前のチェックポイント以後に変更されたコンポーネントモデルのリストを含む。以前のチェックポイントは、モデルの以前のバージョンを取得するために処理され得、変更されたコンポーネントモデルのリスト内のコンポーネントモデルが、モデルを要求された保存状態に戻すために以前のバージョンに適用され得る。
以前のチェックポイントは、例えば、基本モデルに関連付けられたエントリチェックポイントであり得、この場合、その基本モデルがモデルの以前のバージョンとして使用される。代替または追加として、以前のチェックポイントは、第2の以前のチェックポイントへの参照、および以前のチェックポイントと第2の以前のチェックポイントとの間で、モデル内で変更されたコンポーネントモデルのリストを含み得る。一般に、モデルを保存された状態に戻すことは、エントリチェックポイントと関連付けられた基本モデルを取得すること、およびエントリチェックポイントと保存された状態に関連付けられたチェックポイントとの間の一連の1つ以上のチェックポイントを取得することを伴い得る。一連のチェックポイントは、1つ以上の変更されたコンポーネントモデルの集合を含み得る。変更されたコンポーネントモデルは、モデルを保存された状態に戻すために、基本モデルに適用され得る。
いくつかの実施形態では、モデルを保存された状態に戻すことは、以前のチェックポイント以後に変更されたコンポーネントモデルだけを置き換え、一方、以前のチェックポイント以後に変更されなかったコンポーネントモデルを維持することを伴い得る。その結果、記憶空間および処理資源が節約され得る。
変更されたコンポーネントモデルのリストは、コンポーネントモデルを変更するための明確な命令に従った明示的な変更、ならびにモデルに関する1つ以上のパラメータ制約を満たすために明示的な変更の結果としてモデルおよび/またはモデルのコンポーネントに対して行われた派生的な変更によって変更されたコンポーネントモデルを含み得る。
さらなる実施形態では、第1の状態におけるモデルが提供され得、そのモデルは第1のコンポーネントを有する。モデルの第1の状態に対する1つ以上の変更が追跡され得る。例えば、明示的な変更を第1のコンポーネントに対して生じるための命令が識別され得、変更されたコンポーネントが変更されたコンポーネントのリストに記録される。第1のコンポーネントに関連付けられている関連コンポーネントが、関連コンポーネントに対する派生的な変更に基づいて識別され得る。派生的な変更は明示的な変更によって生じ得る。派生的な変更によって変更された関連コンポーネントが、変更されたコンポーネントのリストに記録され得る。変更されたコンポーネントのリストは、チェックポイントを作成するために使用され得る。
関連コンポーネントは、様々な方法で識別され得る。例えば、関連コンポーネントは、そのモデルに関連したパラメータ制約を調べることによって識別され得る。代替または追加として、第1のコンポーネントは、他のコンポーネントへの連結について分析され得、その連結された他のコンポーネントは関連コンポーネントとして扱われ得る。
一旦識別されると、関連コンポーネントの識別が、変更されたコンポーネントのリストと共に格納され得る。第1のコンポーネントも、パラメータ関係によって第1のコンポーネントに関連している関連コンポーネントのリストと共に格納され得る。
実施形態例は、以下で説明する図面に関して、さらに詳細に説明される。
本願明細書は、例えば、以下の項目も提供する。
(項目1)
命令を格納する非一時的コンピュータ可読記憶媒体であって、前記命令は、プロセッサによって実行される場合に、前記プロセッサに、
1つ以上のモデルに対してチェックポイントを作成する要求を受信することと、
前記モデルの以前に保存された状態を識別することと、
前記モデルの前記以前に保存された状態以後に前記モデル内で変更された1つ以上のコンポーネントを識別することと、
チェックポイントを作成することであって、前記チェックポイントが、
前記モデルの前記以前に保存された状態への参照と、
前記モデルの前記以前に保存された状態以後に、前記モデル内で変更された前記1つ以上のコンポーネントのリストと
を含む、ことと
を実行させる、媒体。
(項目2)
前記チェックポイントが、前記モデルの前記以前に保存された状態と、前記モデルに関連するパラメータとを含むコンテンツシステムキャッシュ情報をさらに含む、項目1に記載の媒体。
(項目3)
前記命令が、前記プロセッサに、
設計セッションに入ることと、
前記設計セッションに対して未変更のモデルとして使用される基本モデルを識別することと、
前記基本モデルから成るエントリチェックポイントを作成することと
をさらに実行させる、項目1に記載の媒体。
(項目4)
前記チェックポイントがツリー構造として表され、かつ前記エントリチェックポイントが前記ツリー構造のルートを表す、項目3に記載の媒体。
(項目5)
前記基本モデルおよび前記チェックポイントを第1のコンピュータ上の設計セッションファイルに保存する
ための命令をさらに格納する、項目3に記載の媒体。
(項目6)
前記設計セッションファイルを第2のコンピュータ上でオープンすることと、
前記チェックポイントと一致したモデルを前記第2のコンピュータ上で作成することと
を行うための命令をさらに含む、項目5に記載の媒体。
(項目7)
前記モデルの第1のコンポーネントを変更する命令を受信することと、
前記命令に基づいて前記モデルを変更して、前記モデルに対して明示的な変更をもたらすことと、
前記モデルの第2のコンポーネントに対する派生的な変更を識別することであって、前記派生的な変更が、前記明示的な変更から生じており、前記第2のコンポーネントを変更するためのユーザー指示に起因しない、ことと、
前記第1のコンポーネントおよび前記第2のコンポーネントへの参照を、前記モデルの前記以前に保存された状態以後に前記モデル内で変更された前記1つ以上のコンポーネントの前記リストに格納することと
を行うための命令をさらに格納する、項目1に記載の媒体。
(項目8)
前記派生的な変更が、前記第1のコンポーネントと前記第2のコンポーネントとの間のパラメータ関係に基づく、項目7に記載の媒体。
(項目9)
前記モデルの前記以前に保存された状態への前記参照が第2のチェックポイントへのポインタを含む、項目1に記載の媒体。
(項目10)
方法であって、
モデルを保存された状態に戻す要求を受信することであって、前記モデルがコンポーネントを含む、ことと、
前記保存された状態に関連付けられたチェックポイントを取得することであって、前記チェックポイントが以前のチェックポイントへの参照と、前記以前のチェックポイント以後に変更された前記モデル内の変更されたコンポーネントのリストとを含む、ことと、
前記以前のチェックポイントを前記モデルの現在の状態と比較するために前記以前のチェックポイントを処理することであって、前記処理が、前記モデルの前記コンポーネントが前記変更されたコンポーネントのリスト内にあることを識別することを含む、ことと、
前記モデルを前記保存された状態に戻すために、変更されたコンポーネントのリストに基づいて前記モデル内の前記コンポーネントを変更することであって、適用が、コンピューティング装置のプロセッサを使用して実行される、ことと
を含む、方法。
(項目11)
前記モデルを前記保存された状態に戻すことが、前記以前のチェックポイント以後に変更された前記モデルのコンポーネントのみを置換し、一方、前記以前のチェックポイント以後に変更されなかった前記モデルの任意のコンポーネントを維持することを含む、項目10に記載の方法。
(項目12)
前記以前のチェックポイントが基本モデルに関連付けられたエントリチェックポイントであり、前記基本モデルが前記モデルの前記以前のバージョンとして使用される、項目10に記載の方法。
(項目13)
前記以前のチェックポイントを処理することが、第2の以前のチェックポイントと、前記以前のチェックポイントと前記第2の以前のチェックポイントとの間に前記モデル内で変更されたコンポーネントのリストとを取得することを含む、項目10に記載の方法。
(項目14)
前記モデルを前記保存された状態に戻すことが、
エントリチェックポイントに関連付けられた基本モデルを取得することと、
前記エントリチェックポイントと前記保存された状態に関連付けられた前記チェックポイントとの間の一連の1つ以上のチェックポイントを取得することであって、前記一連のチェックポイントが1つ以上の変更されたコンポーネントの集合を含む、ことと、
前記変更されたコンポーネントに対応する前記モデル内のコンポーネントを識別することと、
前記識別されたコンポーネントを前記基本モデルに対して前記変更されたコンポーネントと置換することと
を含む、項目10に記載の方法。
(項目15)
前記変更されたコンポーネントのリストが、
前記モデルを変更するための明示的な命令により前記モデルに対して行われた明示的な変更によって変更された第1のコンポーネントと、
前記モデルに関する1つ以上のパラメータ制約を満たすために、前記明示的な変更の結果として前記モデルに対して行われた派生的な変更によって変更された第2のコンポーネントと
を含む、項目10に記載の方法。
(項目16)
システムであって、
第1の状態におけるモデルを格納する非一時的コンピュータ可読記憶媒体であって、前記第1の状態における前記モデルが第1のコンポーネントを含む、非一時的コンピュータ可読記憶媒体と、
第1の状態の前記モデルに対して行われた1つ以上の変更を追跡するようにプログラムされたプロセッサであって、前記1つ以上の変更を追跡することが、
明示的な変更を前記第1のコンポーネントに生じさせる命令を識別することと、
前記明示的な変更を変更のリストに記録することと、
前記明示的な変更によって生じる、前記関連付けられたコンポーネントに対する派生的な変更に基づいて、前記第1のコンポーネントに関連付けられた関連コンポーネントを識別することと、
前記モデルに対してチェックポイントを作成する要求を受信することと、
前記チェックポイントを作成することであって、前記チェックポイントが、
前記モデルの以前に保存された状態への参照と、
前記第1のコンポーネントと前記関連コンポーネントとを含む変更されたコンポーネントのリストと
を含む、ことと
を含む、プロセッサと
を備えた、システム。
(項目17)
前記関連コンポーネントを識別することが、前記モデルに関連付けられたパラメータ制約を検査することを含む、項目16に記載のシステム。
(項目18)
前記1つ以上の変更を追跡することが、前記関連コンポーネントの識別を前記変更されたコンポーネントのリストと共に格納することを含む、項目16に記載のシステム。
(項目19)
前記第1のコンポーネントが前記関連コンポーネントのリストと共に格納される、項目16に記載のシステム。
(項目20)
前記関連コンポーネントを識別することが、前記第1のコンポーネントを他の特徴への連結について分析することを含む、項目16に記載のシステム。
コンポーネントベースのモデリング環境におけるチェックポイント化の例を示す。 コンポーネントベースのモデリング環境におけるチェックポイント化の例を示す。 コンポーネントベースのモデリング環境におけるチェックポイント化の例を示す。 コンポーネントベースのモデリング環境におけるチェックポイント化の例を示す。 コンポーネントベースのモデリング環境におけるチェックポイント化の例を示す。 コンポーネントベースのモデリング環境におけるチェックポイント化の例を示す。 コンポーネントベースのモデリング環境におけるチェックポイント化の例を示す。 本明細書で説明する実施形態例での使用に適したモデリング環境例を示す。 実施形態例に従って、コンポーネント、組立体、またはモデルの設計変更を探索および評価するためのチェックポイントツリー例を示す。 実施形態例に従い、コンポーネントベースのモデリング環境においてモデル内のコンポーネントに対する変更を追跡するための変更データベース例を示す。 実施形態例に従って、チェックポイントを作成するための方法例を示す流れ図である。 実施形態例での使用に適したチェックポイントデータ構造例を示す。 実施形態例に従い、コンポーネント、組立体、またはモデルをチェックポイントから復元するための方法例を示す流れ図である。 本明細書で説明する実施形態例での使用に適したコンピューティング装置例を示す。 本明細書で説明する実施形態例での使用に適したネットワーク実施態様例を示す。
議論を簡単にするために、本明細書を通して、具体例は、米国マサチューセッツ州ニーダム所在のPTC(登録商標)からのCreo(登録商標)製品群を参照して提示され得る。当業者であれば、本明細書で説明する実施形態例は、特定の製品群に制限されるのではなく、任意の適切なコンポーネントベースのモデリング環境で適用できることを理解するであろう。さらに、本出願では、コンポーネントモデルで構成されているモデルについて説明するが、本発明はそのように限定されないことに留意されたい。例えば、ユーザーは、それ自身がコンポーネントモデルを含んでいないモデルを操作して、それに対するチェックポイントを作成し得る。
コンポーネントベースのモデリング環境では、ユーザーは、モデルの形状を定義することによりモデルを構築し得る。モデルを構成する形状は、表面の集合から成り得、それは、接点で交わる縁部によって結合され得る。
形状はモデルのコンポーネントを表し得、それは、多種多様な形またはサイズをとることができる。表面、縁部、および接点の結合された集合が、モデル内のコンポーネントを定義し得、それは、コンポーネントベースのモデルが構築され得るスタンドアロン要素と見なすことができる。コンポーネントは、記憶媒体上のファイル内に格納されるモデルの分離可能な部分であり得、所与の上位レベルモデルに加わることができる。結合されたコンポーネントの集合は、組立体と呼ばれ得る。
形状に加えて、コンポーネントは、1つ以上のパラメータおよび、数学関数などの1つ以上の関係とも関連付けられ得る。パラメータおよび関係は、形状または寸法と形状との関係を定義し得る。コンポーネントは、2次元空間、3次元空間、またはその両方に関して定義され得る。
コンポーネントベースのモデリング環境は、一般に、コンポーネントの形状を操作するためのツールを提供する。ツールの例には、2次元空間または3次元空間内で表面または表面の一部を動かす、押し出し(extrude)ツール、および表面またはコンポーネント全体を拡大または縮小するために、選択した縁部および接点を特定の方向に動かす、ストレッチツールが含まれる。
ユーザーは、コンポーネントに対して変更を行うように(例えば、ツールの1つ、または一連のツールおよび/もしくは動作を適用することにより)モデリング環境に指示し得る。係る変更は、本明細書では明示的な変更と呼ぶ。明示的な変更は、変更されたコンポーネントとパラメータ関係によって関連しているモデルの別のコンポーネントにおいて派生的な変更も引き起こし得る。パラメータ関係は、それらのコンポーネントに関連付けられた1つ以上のパラメータに基づく2つ以上のコンポーネント間の関係であり得る。パラメータ関係は、2つ以上のコンポーネントを連結した結果として生じ得るか、またはパラメータ制約により(手動でまたは自動的に)定義され得る。パラメータ制約は、第1のコンポーネントのパラメータに関して、第2のコンポーネントのパラメータに対する限界を定義し得る。例えば、ユーザーは、椅子のモデルに対して、椅子の基部コンポーネントの幅が、椅子の座部コンポーネントのある割合もしくは比率(例えば、95%)、または割合もしくは比率のある範囲内であることを示すパラメータ制約を定義し得る。
コンポーネントの形状を操作すると、コンポーネントに対して1つ以上の変更(明示的な変更または派生的な変更のいずれか)となり得る。ユーザーは、モデルにおける特定の変更の使用をコミットする前に、特定のコンポーネントまたは複数のコンポーネントに対する複数の異なる設計変更を評価することを望み得る。例えば、ユーザーは、モデルの1つのコンポーネントに対して明示的な変更を行って、その明示的な変更が望ましくない派生的な変更をもたらすかどうかを判断したいと望み得る。さらに、ユーザーは、異なる変更またはバージョンを、将来、その変更またはバージョンを再評価するために、検討から除かれた変更またはバージョンを含めて、保存することを望み得る。
その結果、本明細書で説明する実施形態例は、チェックポイントが作成できるようにする。チェックポイントは、異なる設計変更/バージョンを効率的な方法で捕捉し、評価する各変更/バージョンに対して、コンポーネントの組立体全体を新しいファイルに手動で保存するという手段を用いる必要なく、異なる設計変更/バージョンが迅速かつ容易に復元できるようにし得る。
チェックポイントは、コンポーネントベースのモデリング環境のセッション中に作成され得る。セッションは、モデルが操作され得る期間を表し得る。複数のファイルに保存された複数のモデルが単一のセッション内で操作され得、複数の異なるセッションが一度にアクティブであり得る。セッションは、ユーザーにより、セッションを開始/終了するようにモデリング環境に指示することによって、手動で開始および/または終了され得る。代替または追加として、セッションは、ある条件が生じると(例えば、コンポーネントベースのモデリング環境の起動またはクローズ)自動的に開始または終了され得る。
本明細書で説明するいくつかの実施形態例では、設計セッションと呼ばれる特別なタイプのセッションが開始および終了され得る。設計セッションは、モデルが様々な方法で変更され得る期間を表し得、その変更は、モデルのコンポーネントの異なるバージョンを作成するためにチェックポイント化され得る。チェックポイントのうちの1つ以上が、モデル設計の公式バージョン(複数可)として選択され得、一般セッションにおいてモデルに組み込まれ得る。異なるバージョンが設計セッションファイルに保存され得、設計セッションファイルは、同じか、または異なるコンピュータ上のユーザー間で共有されて、その異なるバージョンが設計チームによって検討および評価できるようにし得る。
設計セッションで作成されたチェックポイントは、変更されたモデル(例えば、設計セッション中に試された異なるバージョンまたは変更)を含むか、またはそれらを指し得る。いくつかの実施形態では、変更されたモデルは、設計セッション内でのみ見つかり得る(例えば、変更されたモデルおよび設計セッション情報は、特別な設計セッションファイルまたは一時的な実行時抽出フォルダ内に保存され得る)。
チェックポイント化は、必ずしも指定された設計セッション内で行われる必要はなく、コンポーネントベースのモデリング環境に一般的に適用可能であり得ることが理解される。加えて、説明を簡単にするために、設計セッション内で編集されている単一モデルに関して、以下で例を説明する。しかし、本発明は、設計セッション内での単一モデルの使用に限定されず、当業者は、複数のモデルが単一の設計セッション内で表され得ることを理解するであろう。
コンポーネントベースのモデリング環境でのチェックポイント化の使用は、非制限的な例を参照すると、さらに明瞭に理解されるであろう。図1A〜図1Gは、係る環境で使用されているチェックポイント化の一例を示す。
図1Aに示すように、モデル110が、モデリング環境で作成され得る。モデル110は、様々なコンポーネントで構成された物理的モデルであり得る。図1Aの例では、モデル110は、他のコンポーネントの中でとりわけ、2つの肘掛けコンポーネント112、4つの車輪コンポーネント114、および基部コンポーネント116を有する椅子を表す。
モデリング環境は、コンポーネントリスト118も含み得、コンポーネントが、モデル110内で選択、表示、取込み、置換、または削除されるのを可能にする。モデリング環境は、現在のセッション内で作成されたチェックポイントを表示するチェックポイントツリー表現120もサポートし得る。
チェックポイントツリー表現120は、チェックポイントの階層を含み得る。チェックポイントは、データベース内に階層的に格納され得る。チェックポイントツリー表現120は、データベースからのチェックポイントを、他の可能性の中でとりわけ、フラットタイムラインとして(潜在的に、チェックポイントの異なるシーケンスを表すために、異なる色などの、視覚的に区別する特徴と共に)、またはツリーとして、表示し得る。チェックポイントがツリーとして表示される場合、そのツリーはチェックポイントシーケンスまたは分岐の階層として編成され得、この場合、分割ポイントは拡張可能なノードになり得る。分岐は、主分岐として表示し、かつ/またはグラフィック空間を節約するために垂直にリストするように、切替え可能であり得る。
チェックポイントツリー表現120は、モデル110の初期構成を表すエントリチェックポイント122を含み得る。例えば、エントリチェックポイント122は、現在のセッションが開始した時のモデルの状態を表し得る。モデルのこの初期状態は基本モデルと呼ばれ得る。
セッション中、モデル110は、図1Bに示すように、変更され得る。この例では、肘掛けコンポーネント112が、座ではなく、椅子の背もたれに連結するように変更されている。
モデル110に対して変更が行われると、ユーザーは、モデル110の現在の状態を表すチェックポイントを作成し得る。図1Cに示されるように、チェックポイントを作成するようにモデリング環境に指示すると、モデリング環境は、現在のチェックポイントに関する情報を入力するためのチェックポイントダイアログ124を表示し得る。チェックポイントダイアログは、チェックポイントツリー表現120内に表示されるチェックポイント名126、チェックポイントツリー表現120内の異なるチェックポイントの間でユーザーが検索できるようにする検索可能なキーワード128、および将来の参照のためにユーザーがチェックポイントを記述できるようにするチェックポイントコメント130を作成するためのフィールドを含み得る。
図1Dに示すように、新しいチェックポイントの作成後、チェックポイント132が、チェックポイントツリー表現120内に示され得る。ユーザーは、次に、その新しいチェックポイントからモデル110の編集を継続し得るか、または異なる設計変更を探索するために異なるチェックポイントに戻り得る。
図1Eに示す例では、ユーザーは、第1のチェックポイントからモデル110の編集を継続する。この場合、ユーザーは、第5の車輪コンポーネント114を含めるようにモデル110を変更した。ユーザーは、更新された肘掛けコンポーネント112および更新された車輪コンポーネント114をもつモデルの状態を捕捉する第2のチェックポイント134を作成し得る。
ユーザーが、以前に保存したチェックポイント(例えば、第1のチェックポイント132)に戻りたい場合、そのチェックポイントは、チェックポイントツリー表現120内で選択され得る。図1Fに示すように、以前のチェックポイントを選択すると、復元オプション136が表示され得る。ユーザーが復元オプション136を選択すると、モデル110が、以前のチェックポイントと一致した状態に復元され得る。この場合、第1のチェックポイント132に関連した復元オプション136が選択されると、モデル110は、第1のチェックポイント132と一致した状態(例えば、図1Bに示されるようなモデル110の状態)に戻されるであろう。
チェックポイントは、互いに別々に保存され得るか、またはチェックポイントの階層が作成され得る。例えば、ユーザーが第1のチェックポイント132から開始して、モデル110をさらに変更する場合、入れ子になったチェックポイントが第1のチェックポイント132の下に作成され得る。図1Gでは、ユーザーは、より大きい基部コンポーネント116を組み込むために、第1のチェックポイント132からモデル110を変更した。入れ子になったチェックポイント138が第1のチェックポイント132の下に作成されて、チェックポイントツリー表現120内に示されている。チェックポイントをこのように入れ子にすることは、チェックポイント間の関係の視覚的表示を提供するのに有用であり得る。チェックポイントを階層として表すことにより、設計変更およびプロセスがより正確かつ効率的に捕捉され得る。例えば、階層内の異なる分岐は、設計プロセスにおける分割および/またはモデルにおける変更の異なるシーケンスを表すために使用され得る。
ユーザーは、また、もはや必要ないチェックポイントを削除し得る。チェックポイント階層内のチェックポイントが削除されると、削除されたチェックポイント内の情報(保存されたコンポーネントモデルおよび以前のチェックポイントへの参照など)が、削除されたチェックポイントを除去する前に、後のチェックポイントと統合され得る。従って、チェックポイントのツリー構造が、情報を失うことなく維持され得る。
図2は、チェックポイントの作成および管理のためのモデリング環境例200を示す。モデリング環境200の一例は、米国マサチューセッツ州ニーダム所在のPTC Inc.のCreo(登録商標)Parametricである。モデリング環境200は、ローカルコンピューティング装置上に常駐し得るか、またはネットワークを通してアクセスされ得る。
モデル110は、モデリング環境200内に存在し得る。モデル110は、1つ以上の組立体を含み得、各組立体は1つ以上のコンポーネントモデルで構築されている。モデリング環境200は、モデル110を変更するためのツールを提供し得る。
モデル110が変更されると、そのモデルは1つ以上の変更されたコンポーネント212、および1つ以上の未変更のコンポーネント214を含み得る。モデリング環境200は、後述のチェックポイントを作成するために、どのコンポーネントが変更されて、どのコンポーネントが変更されていないかを追跡し得る。どのコンポーネントが変更されていて、それらのコンポーネントがどのように変更されたかを追跡するために、モデリング環境200は、変更を検出するための変更論理220を含み得る。例えば、変更論理220は、モデリング環境200への着信命令を分析して、どの命令がコンポーネントの形状を変更して、変更されたコンポーネント212をもたらしたかを判断し得る。代替または追加として、変更論理220は、定期的に、コンポーネントの現在のバージョンをコンポーネントの以前のバージョンと比較し得る。現在のバージョンが以前のバージョンと一致しない場合、変更論理はそのコンポーネントを変更されたものとして記録し得る。
コンポーネントの形状および/またはコンポーネントの互いに対する配置の変更が、変更論理220によって変更データベース230内に記録され得る。変更データベース230は、変更されたコンポーネント212の結果として生じた形状に関する情報だけでなく、モデルに対する変更のリストも含み得る。
ユーザーは、いつでも、モデル110に対して(および/またはセッション内で編集された複数のモデル110に対して)チェックポイントを作成するためにモデリング環境200に指示し得る。代替または追加として、モデリング環境200は自動的に(例えば、設計セッションの開始などの所定の事象の発生時、または所定の時間間隔で)チェックポイントを作成し得る。このように、モデリング環境200は、チェックポイント250がどのように作成されるかを定義するためのチェックポイント論理240を含み得る。
モデル110の現在の状態に対するチェックポイント252、254が作成されると、チェックポイント252、254はチェックポイントデータベース内に格納され得る。モデリング環境200は、チェックポイント復元論理260をさらに含み得、それは、チェックポイントデータベースから1つ以上のチェックポイント250を取得して、モデル110をその取得されたチェックポイント(複数可)と一致した状態に復元し得る。
チェックポイントツリー内に階層的に配置されたチェックポイント250の一例が図3に示されている。図3に示すように、1つの組立体が複数の組立体バージョン310に関連付けられ得、各組立体バージョン310は、組立体の状態およびその組立体を構成するコンポーネントを表している。各組立体バージョン310は、設計セッション内で定義された1つ以上の下位バージョン320とも関連付けられ得る。図3は、ユーザーが、組立体のバージョン3を作成するために、組立体のバージョン2で作業している例を示す。
図3に示すように、組立体の初期バージョン(バージョン2)が設計セッションに取り込まれて、その設計セッションに対する初期の「変更前」基本モデル330として使用される。設計セッションの開始時にエントリチェックポイント340が作成され得、そのエントリチェックポイント340は基本モデル330を格納して、チェックポイント250のツリーのルートとして機能する。複数のチェックポイント250は、ユーザーがモデルを編集すると作成され得、ユーザーは、組立体に対する次の下位バージョン320として使用されるチェックポイントの1つを選択し得る。
図3に示す例では、ユーザーは、基本モデル330を変更して第1のチェックポイントを作成し、第1のチェックポイントに関連付けられたモデルを3つの異なる方法で変更して、第2、第3、および第4のチェックポイントを作成した。ユーザーは次いで、第2のチェックポイントに戻って、そのチェックポイントを第5のチェックポイントに対する基礎として使用し、その後、第3のチェックポイントに戻って、そのチェックポイントを第6のチェックポイントに対する基礎として使用した。このプロセスを継続して、最終的に、ユーザーは、第6のチェックポイントが次の公式の下位バージョン320として使用されるそのモデルのバージョンを表すと決定した。ユーザーはさらに下位バージョン320を通して繰り返した可能性があるが、ユーザーは、この下位バージョン320が満足のいくものであると決定して、この下位バージョンをその組立体の公式なバージョン(バージョン3)とした。
従来のコンポーネントベースのモデリングシステムでは、モデルは、実行時にロードされるファイルとして格納され得る。ユーザーがモデルに対して変更を行うと、新しいファイルがその変更されたコンポーネントに対して作成され得、それも(別のファイル)に格納され得る。その結果、上述した例では、ユーザーは、示された14のチェックポイントバージョンの各々に対して複数の異なるモデル保存ファイルを作成した可能性がある。
モデルの以前のバージョンを復元するために、モデル内のコンポーネントに関連付けられたモデルファイルの各々が再ロードされて、コンポーネントが再生成される必要があり得る。例えば、モデルの要求されたバージョン内のコンポーネントに関連付けられたファイルが記憶装置から取得されて、モデルの新しいインメモリバージョンを作成するために処理される必要があり得る。上述の例では、14の異なるバージョンの各々を評価するために、ユーザーは、選択されたバージョンに対する保存ファイル(複数可)をロードした可能性があり、それは、モデル全体およびその構成コンポーネントの全てを再ロードしたかもしれない。これは、記憶装置および処理資源の両方を大量に消費する。
しかし、図3に示すチェックポイント250は、以前のチェックポイント以後に変更されたモデルコンポーネントのみを保存および復元するために、変更データベース230内の情報を活用することができる。例えば、モデルの現在のバージョンと異なるチェックポイント内のコンポーネントのみに関連するファイルを取得した後、そのモデルの現在のインメモリバージョンが、変更されたコンポーネントのみを使用して更新できる。これは、モデルを構成するコンポーネントファイルの全てを必ずしもロードする必要がなく、また、モデル全体を再生成する必要もないので、かなりの処理資源を節約し得る。
いくつかの実施形態では、変更されたコンポーネントへの参照(例えば、ポインタ)がチェックポイント内に保存され得、各チェックポイントを格納するために必要な記憶空間の量をさらに削減する。変更データベース230によって識別されるように変更されたコンポーネントのみを保存および処理することにより、チェックポイントは、従来のバックアップ技法よりも少量の情報を格納および処理する。変更データベース230の一例を図4に示す。
図4に示すように、モデルのコンポーネントのうちの1つの形状に対する変更となる命令がモデリング環境によって受信される度に、その命令に関する情報が変更410として変更データベース230内に格納され得る。追加として、命令により派生的な変更が生じる(例えば、パラメータ関係またはパラメータ制約に起因して)場合、派生的な変更も変更410として変更データベース230内に記録され得る。
変更410は、命令に起因する、1つ以上の形状変更412を含み得る。形状変更412は、例えば、変更によって影響を受ける特徴の記述、または縁部、接点、および表面を含み得る。形状変更412は、変更に起因した新しい形状に関する情報を含み得、形状の以前の状態に関する情報を含み得、かつ/または古い形状から新しい形状へどのように変わるかに関する情報を含み得る。
変更410は、変更によって影響を受ける、影響を受けるコンポーネントのリスト414をさらに含み得る。影響を受けるコンポーネント414は、変更によって直接変更されたコンポーネントを含み得、かつ、派生的な変更が現在の変更の結果として実行され得る関連コンポーネントのリストを含み得る。関連コンポーネントは、例えば、そのモデルに関連付けられたパラメータ関係を検査することにより、かつ/またはモデル内の変更されたコンポーネントと連結されたコンポーネントを分析することにより識別され得る。
変更410は、変更が行われた時刻を記述するタイムスタンプ416などの管理情報(および潜在的に、変更が行われたセッションに関する詳細を提供するセッション情報)をさらに含み得る。変更410は、アクティブなチェックポイント418も含み得、変更が行われた時にどのチェックポイントが編集されていたかを示す。
さらなる変更420が、同様の方法で、変更データベース内に記録され得る。
変更データベース230内の変更がチェックポイントを作成するために使用され得る。チェックポイントを作成するためのプロセス例を図5の流れ図に示す。
ステップ510において、設計セッションが開始され得る。設計セッションは、コンポーネントベースのモデリングアプリケーションが起動された場合、もしくは新しいコンポーネントがモデリング環境に取り込まれた場合などに、自動的に開始され得るか、またはユーザーが設計セッションを開始するように(例えば、設計セッションに入るメニューオプションを選択することにより)モデリング環境に指示した場合などに、手動で開始され得る。
任意選択として、設計セッションが設計セッションファイルからロードされ得る。この場合、設計セッションファイル内に格納された任意のチェックポイントがモデリング環境に取り込まれて、チェックポイントツリー内に表示され得る。
ステップ515で、設計セッションの開始後、モデリング環境は、任意のアクティブなモデルの現在の状態をモデリング環境内に基本モデルとして格納し得る。1つのセッション中にアクティブな2つ以上のモデルが存在し得る。基本モデルは、設計セッションの開始時に存在していたので、モデルの未変更のバージョンを表し得る。基本モデルの表現から成るエントリチェックポイントが(変更なしで)、このステップで作成され得る。
基本モデルのコンポーネントが、モデリング環境に関連付けられた1つ以上の記憶装置上に既に存在する場合があり得る。この場合、そのコンポーネントを基本モデルとして(再度)保存することは不必要であり得る。従って、実施形態例によれば、設計セッションの開始時に、モデリング環境は、コンポーネントの組立体の初期状態を基本モデルとして格納し得る。これは、各コンポーネントを個々に保存することによってではなく、モデリング環境にロードされた記憶装置(複数可)上の全ての初期コンポーネントファイルへのリンク(例えば、ポインタ)を保存することによって、達成され得る。モデリング環境は、コンポーネントをモデリング環境にロードした後に変更されたコンポーネントのみをディスクに保存し得る。
いくつかの実施形態では、基本モデルファイル(複数可)または基本モデルファイル(複数可)へのポインタがエントリチェックポイント内に格納され得、エントリチェックポイントは設計セッションに関連付けられた設計セッションファイル内に格納され得る。システムは、階層的な方法で基本モデルファイル(複数可)を検索し得る。例えば、基本モデルファイル(複数可)の検索時、システムはまず、変更前モデルを探すために設計セッションファイルを検索し得る。変更前のモデルファイル(複数可)が設計セッションファイル内で見つからない場合、システムは、現在の作業フォルダまたはモデルワークスペースをチェックし、次いで、定義された検索パス内を検索し得る。モデルファイル(複数可)が見つからない場合、ユーザーに対してインタフェースが提示されて、ユーザーが手動でブラウズしてモデルファイル(複数可)を検索できるようにし得る。
行う必要がない場合には、基本モデル全体が設計セッションファイルにバックアップされない、いくつかの理由があり得る。第1に、ディスク上に既に保存されているファイルへの参照(例えば、ポインタ)のみを保存すると、設計セッションファイルのサイズが削減され、いくつかのモデルファイルがそれらの元のパス上で利用可能な場合に重複/冗長が減る。さらに、モデルファイルが設計セッションファイルにバックアップされる場合、これは、チェックポイントがアクティブ化されて基本モデルファイルがモデルワークスペースにロードされる際に、(いくつかの状況において)命名が競合し得る。
それにも関わらず、いくつかの実施形態では、基本モデルファイルが設計セッションファイルにバックアップされ得る。これは、例えば、設計セッションファイルが、ディスクに保存されたモデルの基本バージョンを含んでいない異なるコンピュータに移動される場合に、特に有用であり得る。
設計セッションが設計セッションファイルからロードされた場合、設計セッションファイル内のエントリチェックポイントがロードされ得、エントリチェックポイントの基本モデルがモデリング環境によって取得され得る。基本モデルがモデリング環境内にまだ存在していない場合、モデリング環境は基本モデルを設計セッションファイルから取り込んで、その基本モデルをモデリング環境内にロードし得る。基本モデルのロードに加え、設計セッションファイルは、環境特性などの、設計セッションの他の詳細が復元できるようにし得る。例えば、第1のユーザーがいくつかのウィンドウ/モデルをオープンして設計セッションを格納し、第2のユーザーがその関連した設計セッションファイルをオープンした場合、設計セッションファイルは、第2のユーザーのコンピュータ上でウィンドウ/モデルもオープンし得る。
ステップ520で、ユーザーは、任意選択で、既存のチェックポイントをアクティブにすることを要求し得る。既存のチェックポイントが存在しない場合、またはユーザーが既存のチェックポイントをアクティブにすることを選択しない場合、処理は直接、ステップ530に進む。ユーザーが既存のチェックポイントをアクティブにする場合、処理はステップ525に進み得、モデリング環境は選択されたチェックポイントをアクティブにし得る。チェックポイントをアクティブにするための手順例を、図7に関して、さらに詳細に説明する。
一旦、所望のチェックポイント(エントリチェックポイントまたは選択されたチェックポイントのいずれか)がアクティブにされると、処理はステップ530に進み得、ユーザーはそのモデルを編集し得る。ユーザーがモデルに対して変更を行うと、処理はステップ535に進み得、モデリング環境は、ユーザー編集のいずれかがモデルのコンポーネントに変更をもたらすかどうかを判断し得る。そうでない場合、処理は、編集がコンポーネントに対する変更となるまで、ステップ530に戻り得る。
ステップ535で、モデルのコンポーネントが変更されていると判断された場合、処理はステップ540に進み得、そこで、ユーザー編集によって生じた明示的な変更が実行され得る。変更が実行されると、モデリング環境は、その変更されたコンポーネントに依存する関連コンポーネントを分析し得、かつ/またはその変更されたコンポーネントに関連付けられたパラメータ関係/制約を取得し得る。明示的な変更が、関連コンポーネントにおいて派生的な変更を要求すると判断される場合、ステップ545で、派生的な変更が実行され得る。
ステップ550で、明示的な変更および派生的な変更の各々が変更データベース内に記録され得る。この時点で、モデルは変更されており、ユーザーは変更されたモデルをチェックポイント内に格納するようにモデリング環境に指示し得る。代替または追加として、自動チェックポイントがこの時点でトリガーされ得る。その結果、処理がステップ555に進み得、そこで、モデリング環境はチェックポイントを格納するかどうかを判断し得る。
ステップ555で、チェックポイントが保存されるべきであると判断されると(例えば、モデリング環境がチェックポイントを格納する命令を受信しているため、最後のチェックポイントが保存されてから所定の期間が経過しているため、または所定の事象が生じているために)、処理はステップ560に進み得る。そうでない場合、処理はステップ520に戻り得、既存のチェックポイントがアクティブにされたかどうかが判断され得る。
ステップ560で、モデリング環境は新しいチェックポイントの作成プロセスを開始する。モデリング環境は、どのチェックポイントが現在アクティブであるかを判断し得る。例えば、ユーザーが、エントリチェックポイントから基本モデルを編集している場合、そのエントリチェックポイントは現在アクティブなチェックポイントと見なされる。ユーザーがステップ520で異なるチェックポイントをアクティブにした場合、そのアクティブにされたチェックポイントが現在アクティブなチェックポイントと見なされ得る。
現在アクティブなチェックポイントへの参照が、新しいチェックポイント内に格納され得る。例えば、現在アクティブなチェックポイントは、メモリ内または記憶媒体上の位置として表され得る。現在アクティブなチェックポイントのアドレスへのポインタが、ステップ560で、新しいチェックポイントと共に格納され得る。処理は次いで、ステップ565に進み得る。
ステップ565で、モデリング環境は、変更データベースを調べて、現在アクティブなチェックポイントがアクティブにされた以後に、どのコンポーネントが変更されたかを判断し得る。現在アクティブなチェックポイント(例えば、ステップ525でアクティブにされたチェックポイント、またはステップ515で作成されたエントリチェックポイント)がアクティブ化した時と新しいチェックポイントを格納すべきと(例えば、ステップ555での「YES」判定の結果として)判断された時との間に変更された任意のコンポーネントが、新しいチェックポイントと共に格納され得る。
各コンポーネントはコンポーネントモデルファイルによって表され得る。各変更されたコンポーネントに対して、コンポーネントモデルファイル全体をチェックポイント内に格納することは、可能ではあるが、必要でない可能性がある。むしろ、コンポーネントに関連付けられたコンポーネントモデルファイルはメモリ内の既知の位置に格納され得、既知の位置のアドレスがチェックポイントと共に(例えば、ポインタとして)保存され得る。代替または追加として、コンポーネントモデルまたはコンポーネントモデルファイルの名前/パスがチェックポイント内に格納され得る。
コンポーネントに加えて、変更を表すために使用されるモデルのモデルファイル、パラメータ、および他の態様もチェックポイント内に格納され得る。例えば、ユーザーが1つのコンポーネントをモデル内の他のコンポーネントに対して移動させる(すなわち、モデル内のコンポーネントの配置に影響を及ぼす)と、コンポーネントの配置を定義するモデルファイルもチェックポイント内に格納されて、そのモデルをチェックポイントと一致する状態に復元するために使用され得る。
ステップ570で、以前のチェックポイントへの参照および以前のチェックポイント以後に変更されたコンポーネントから成る新しいチェックポイントの作成が成功した。そのチェックポイントが現在アクティブなチェックポイントにされ、ユーザーが異なるチェックポイントに戻りたいかを判断するために(または、代替として、ステップ530で現在アクティブなチェックポイントの編集を続行するために)、処理はステップ520に戻り得る。
設計セッションの終わりに、(エントリチェックポイントを含め)設計セッション中に作成された任意のチェックポイントが設計セッションファイル内に格納され得る。チェックポイントによって捕捉される設計変更を他のユーザーが評価できるようにするために、設計セッションファイルが他のコンピュータに配信され得る。ステップ515で保存された基本モデルが、(上述のように)ディスク上にローカルに格納されたモデルコンポーネントへの参照を含んでいた場合、モデルファイルをディスクから設計セッションファイルにコピーするための選択肢が提示され得る。従って、設計セッションファイルが、基本モデルのローカルコピーを有していない別のコンピュータに配信されると、基本モデルが設計セッションファイルから取得され得る。
図5で説明した方法によって、1つ以上のチェックポイントが作成される。チェックポイントのためのデータ構造例を図6に示す。
図6に示すように、初めに作成されたチェックポイントがエントリチェックポイント340であり得る。エントリチェックポイントは、関連する変更された特徴のない、基本モデル330の表現からなり得る。
基本モデル330の編集後、追加のチェックポイント252が作成され得る。このチェックポイント252は、以前のチェックポイントへの参照610を含み得る。参照610は、例えば、ポインタであり得る。この場合、チェックポイント252は、基本モデル330に対する編集に基づき作成された。その結果、参照610は、エントリチェックポイント340に戻ってポイントする。
チェックポイント252は、以前のチェックポイント以後に変更された、変更されたコンポーネントのリスト620をさらに含み得る。そのリストは、他の可能性の中でとりわけ、変更されたコンポーネントのコンポーネントモデルファイルへのポインタおよび/またはコンポーネントモデルファイルへのパスを含み得る。1つ以上の変更されたコンポーネント622、624は、リスト620内に含まれ得る。参照632、および変更されたコンポーネント636のリスト634を有するさらなるチェックポイント630が、必要に応じて作成され得る。図6に示す例では、第2のチェックポイント630は、第1のチェックポイント252によって表されるバージョンモデルに基づいて作成され、その結果、参照632を通して第1のチェックポイント252に戻ってポイントする。
複数のチェックポイントが単一の親を共有するツリー構造の場合におけるように、複数の異なるチェックポイントからの参照は各々、同じ以前のチェックポイントを指し得ることを理解されたい。
一旦、チェックポイントが作成されると、チェックポイントは、モデルをそのチェックポイントと一致する状態に復元するためにアクティブにされ得る。図7は、チェックポイントをアクティブにするための方法例を示す。簡潔に要約すれば、図7で説明する手順は、チェックポイントを選択すること、チェックポイント内に含まれる参照を使用して、チェックポイントの階層/ツリーを通じてエントリチェックポイントまで再帰的に戻り、その間、各チェックポイントに関連付けられた変更されたコンポーネントのリストを蓄積すること、変更されたコンポーネントのリストを統合して、モデル内で使用される変更されたコンポーネントの正しい(例えば、最新の)バージョンを識別すること、および再生成する必要のある基本モデルのそれらのコンポーネントだけを変更し、同時に、未変更のコンポーネントを維持すること、を伴う。
ステップ710で、モデリング環境は、識別されたチェックポイントをアクティブにするか、または復元する要求を受信し得る。チェックポイント復元要求は、例えば、チェックポイントツリー内のチェックポイントをアクティブにすることにより、受信され得る。要求内で識別されたチェックポイントが現在アクティブな要求されたチェックポイントになる。
ステップ715で、モデリング環境は、変更されたコンポーネントの当初は空のリストを作成し得る。図7で説明する手順を通してチェックポイントが取得されると、各チェックポイントで変更されたコンポーネントが変更されたコンポーネントのリストに追加され得る。
ステップ720で、モデリング環境は、現在要求されているチェックポイントを取得し得る。そのチェックポイントは、例えば、メモリ内のデータ構造として、格納され得、ステップ720で、識別されたチェックポイントに関連付けられたデータ構造がアクセスされ得る。データ構造は、以前のチェックポイントへの参照、および以前のチェックポイントと現在アクティブな要求されたチェックポイントとの間に生じた変更のリストを含み得る。
ステップ725で、モデリング環境は、変更されたコンポーネントのリストを要求されたチェックポイントから抽出し得る。変更されたコンポーネントのリストは、現在ロードされているチェックポイントと直前のチェックポイントとの間に変更されたコンポーネントを表し得る。ステップ730で、現在のチェックポイントから取得された、変更されたコンポーネントのリストが、ステップ715で作成された、変更されたコンポーネントのリストに追加され得る。変更されたコンポーネントがリスト内に蓄積されると、モデリング環境は、コンポーネントが変更された順序の記録を維持し得、かつ/またはどの変更されたコンポーネントが、コンポーネントの「最新」バージョン(例えば、ステップ710で要求されたチェックポイントに関して最新のコンポーネントのバージョン)を表すかを識別し得る。
ステップ735で、モデリング環境は、要求されたチェックポイントから取得された以前のチェックポイントへの参照を辿り得る。ステップ740で、モデリング環境は、以前のチェックポイントがエントリチェックポイントであるかどうかを判断する。エントリチェックポイントは、例えば、エントリチェックポイントの構造に基づき、識別され得る。例えば、全ての非エントリチェックポイントは、以前のチェックポイントへの参照および変更されたコンポーネントのリストを含み得る。それに対して、エントリチェックポイントは、基本モデルの表現を含み得、変更されたコンポーネントは含まない。
ステップ745での答えが「YES」である場合、必要な全ての変更されたコンポーネントが識別されて、処理はステップ750に進み得る。そうでない場合、さらなる変更が蓄積される必要があり、処理はステップ745に進み得る。
ステップ745で、アクティブなチェックポイント内の参照を通じてアクセスされた以前のチェックポイントが、新しい現在のアクティブな要求されたチェックポイントになる。処理は次いで、ステップ720に戻り得、そこで、残りのチェックポイントが、エントリチェックポイントに達するまで、再帰的に処理される。
ステップ750で、必要な全ての変更されたコンポーネントが蓄積されて、モデリング環境は、基本モデルを有するエントリチェックポイントを識別している。モデリング環境は、エントリチェックポイント内の基本モデルを識別し得、それは、基本モデル内に存在するコンポーネントのリストの抽出を伴い得る。
ステップ755で、モデリング環境は、ステップ730で構築されたリストを調べて、エントリチェックポイントと要求されたチェックポイントとの間に、基本モデルのどのコンポーネントが変更されたかを判断し得る。例えば、(要求されたチェックポイントと比較して)コンポーネントの最新バージョンのみが使用されるように、変更されたコンポーネントのリストが統合され得る。
基本モデルが作成された以後に変更されなかった特徴は、未変更の特徴と見なされ得る。未変更の特徴のリストも、変更されたコンポーネントのリストに追加して作成され得る。
システムは、この時点で、要求されたチェックポイントによって表されるようにモデルを構成するコンポーネント(未変更の特徴および変更された特徴)のリストを蓄積している。リストは、メモリ内にロードされている現在アクティブなモデル内に存在するコンポーネントの集合と比較され得る。コンポーネントのいずれかが、現在アクティブなモデル内に存在するコンポーネントのバージョンと一致する場合、これらのコンポーネントはそれらの現在の形のままにされ得る(それにより、モデルのコンポーネントを再作成する必要を削減する)。ステップ760で、モデリング環境は、現在アクティブなモデル内に存在していない、ステップ755からの統合されたリスト内で識別されたコンポーネントの最新バージョンを取得し得る。例えば、モデリング環境は、統合されたリストおよび/または未変更のコンポーネントのリスト内で識別されたコンポーネントの最新バージョンに関連付けられたコンポーネントモデルファイル(またはコンポーネントモデルファイルのバージョン)を取得し得る。
ステップ760で取得されたコンポーネントがモデルに適用され得、それにより、その取得されたコンポーネントがモデル内の既存のコンポーネントを置き換える。代替または追加として、モデルをチェックポイントと一致させるために、既存のコンポーネントが除去され得るか、または取得されたコンポーネントがそのモデルに追加され得る。
モデルをチェックポイントと一致させるために、そのモデルに取り込まれる、取得されたコンポーネントは、コンポーネントレベルまたは特徴/パラメータ/形状レベルのいずれかで存在するパラメータ依存性および関係を維持または再構築するために操作された、それらの特徴、パラメータ、および/または形状を有し得る。
いくつかの実施形態では、モデルをチェックポイントと一致させるために、変更されたコンポーネントのみが置き換えられ得る。これらのコンポーネントの置換後、システムは、更新されたモデル内で変更されたコンポーネント構造に基づき、変更されたコンポーネント(および/またはパラメータ依存性もしくは関係によって変更されたコンポーネントに関連している任意のコンポーネント)の間での依存性および/または関係を再計算または再生成し得る。これは、モデル内に既に存在していて、ステップ755〜760で以前に再生成/更新されなかったコンポーネントに対して変更を行うことを伴い得る。
処理は次いで、ステップ765に進んで、終了し得る。
いくつかの実施形態では、必ずしも、元のエントリチェックポイントまで遡って戻る必要はない。モデルが現在、チェックポイントツリー内の第1のチェックポイントによって表される状態であって、要求されたチェックポイントが、チェックポイントツリー上で第1のチェックポイントと同じ分岐上の、以前または後のチェックポイントである場合には、第1のチェックポイントと要求されたチェックポイントとの間だけ戻って、その2つのチェックポイント間で変更されたコンポーネントだけを変更することが可能であり得る。
例えば、図1Dおよび図1Gの例を参照すると、第1のチェックポイント132は、椅子の背もたれに取り付けられた肘掛けコンポーネント112および、狭い基部コンポーネント116に取り付けられた4つの車輪コンポーネント114を備える椅子を表した。入れ子になったチェックポイント138(第1のチェックポイント132と同じチェックポイントツリーの分岐に沿って位置する)は、椅子の背もたれに取り付けられた肘掛けコンポーネント112および、広い基部コンポーネント116に取り付けられた4つの車輪コンポーネント114を備えた椅子を表した。
入れ子になったチェックポイント138が、現在アクティブなチェックポイントであって、ユーザーが第1のチェックポイント132をアクティブにすることを決定した場合、モデリング環境は、これらのチェックポイントがチェックポイントツリーの同じ分岐上に位置することを識別し得る。入れ子になったチェックポイント138から第1のチェックポイント132まで戻ることにより、モデリング環境は、これら2つのチェックポイント間でのモデルに対する唯一の変更は、基部コンポーネント116が拡げられたことであると判断し得る。従って、第1のチェックポイント132に戻すために、基部コンポーネント116のみをロードし、パラメータ関係によって基部コンポーネント116に関連している任意のコンポーネントを変更するだけで十分であり得、このように、椅子モデルのほとんどのコンポーネントを維持して、基部コンポーネント116の幅だけを変更する。これは、モデルの以前にチェックポイント化されたバージョンをロードする際に処理資源を節約し得る。
チェックポイントを作成および復元する例を次に説明する。
モデルファイル「bike.asm」内に格納されたバイク組立体の例を考える。bike.asmファイルは、バイクの異なる部品を表すファイル(例えば、操作レバーコンポーネントを表すファイル「handlebar.prt」、前輪コンポーネントを表すファイル「front_wheel.asm」、後輪コンポーネントを表すファイル「rear_wheel.asm」、およびシートコンポーネントを表すファイル「seat.prt」)を含む組立体モデルフォルダ内に格納され得る。この例で使用されるように、部品および組立体の両方がコンポーネントを表し得る。
設計セッションを開始すると、エントリチェックポイントが作成され得る。エントリチェックポイントは、bike.asmファイルを基本モデルとして含む、元の組立体モデルフォルダへのポインタを含み得る。
ユーザーが次いで、バイクの操作レバー部の形状を変更すると、handlebar.prtファイルの新しいバージョンが生成され得る。ユーザーは、第1のチェックポイントが作成され得ることを示し得る。チェックポイント1は、エントリチェックポイントへの参照およびhandlebar.prtファイルの新しいバージョンを含み得る。
ユーザーは次いで、バイクの前輪、後輪、およびシートの形状を変更して、新しいチェックポイントを作成し得る。チェックポイント2は、front_wheel.asmファイル、rear_wheel.asmファイル、およびseat.prtファイルの新しいバージョンだけでなく、チェックポイント1への参照も含み得る。
ユーザーは次いで、バイクモデルについてシートの配置を変更して、第3のチェックポイントを作成し得る。チェックポイント3は、チェックポイント2への参照およびシートコンポーネントの変更された配置を反映しているbike.asmファイルの新しいバージョンを含む。
ここで、ユーザーが設計セッションをクローズして、モデリング環境を出ると仮定する。ユーザーは次いで、モデリング環境を再オープンして、バイクの何らかのバージョンを記憶装置からロードし得る。ユーザーが次いで、バイクをチェックポイント3と一致する状態に復元することを要求すると、モデリング環境は、handlebar.prtファイルをチェックポイント1からfront_wheel.asmファイル、rear_wheel.asmファイル、およびseat.prtファイルをチェックポイント2から、ならびにbike.asmファイルをチェックポイント3から収集し得る。これらのモデルファイルと一致していない、メモリ内のモデルの現在アクティブなバージョン内のコンポーネントが、置き換えられて再生成され得る。
代替として、ユーザーは、現在のモデルをメモリにロードすることなく、第3のチェックポイントを復元することを要求し得る。この場合、モデリング環境は、エントリチェックポイント内の基本モデルおよび後続のチェックポイント内に反映された変更されたコンポーネントに基づき、必要なファイルをロードし得る。
上述した動作の1つ以上が処理論理で実行可能なコンピュータ実行可能命令としてコード化され得る。コンピュータ実行可能命令は、1つ以上の非一時的コンピュータ可読媒体上に格納され得る。上述した動作の1つ以上が、適切にプログラム化された電子装置内で実行され得る。図8は、本明細書で説明する1つ以上の実施形態での使用に適した電子装置800の一例を示す。
電子装置800は、多くの形をとり得、コンピュータ、ワークステーション、サーバー、ネットワークコンピュータ、量子コンピュータ、光コンピュータ、インターネット家電、モバイル機器、ポケットベル、タブレットコンピュータ、スマートセンサー、特定用途向け処理装置などを含むが、それらに限定されない。
電子装置800は例示であり、他の形態をとり得る。例えば、電子装置800の代替実施態様は、図8の構成より、コンポーネントの数が少ないか、多いか、または異なる構成のコンポーネントを有し得る。図8および/または本明細書で説明する他の図面のコンポーネントは、ハードウェアベースの論理、ソフトウェアベースの論理および/またはハードウェアとソフトウェアベースの論理の組合せ(例えば、ハイブリッド論理)である論理を使用して実装され得、従って、図6および/または他の図面で例示するコンポーネントは特定のタイプの論理に限定されない。
プロセッサ802は、電子装置800の代わりに命令を実行するために、ハードウェアベースの論理またはハードウェアベースの論理とソフトウェアの組合せを含み得る。プロセッサ802は、例えば、メモリ804内に含まれる情報を、解釈、実行、および/または別の方法で処理し得る論理を含み得る。情報は、本発明の1つ以上の実施形態を実装し得るコンピュータ実行可能命令および/またはデータを含み得る。プロセッサ802は、様々な同種または異種ハードウェアを含み得る。ハードウェアは、例えば、1つ以上のプロセッサ、マイクロプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け命令セットプロセッサ(ASIP)、特定用途向け集積回路(ASIC)、複合プログラム可能論理回路(CPLD)、グラフィック処理装置(GPU)、または情報を解釈、実行、操作、および/もしくは別の方法で処理し得る他のタイプの処理論理の何らかの組合せを含み得る。プロセッサは、シングルコアまたは多重コア803を含み得る。さらに、プロセッサ802は、システムオンチップ(SoC)またはシステムインパッケージ(SiP)を含み得る。プロセッサ802の一例は、米国カリフォルニア州サンタクララ所在のIntel Corporationから入手可能なIntel(登録商標)Core(商標)シリーズのプロセッサである。
電子装置800は、1つ以上のコンピュータ実行可能命令または本発明の1つ以上の実施形態を実装し得るソフトウェアを格納するための1つ以上の有形の非一時的コンピュータ可読記憶媒体を含み得る。非一時的コンピュータ可読記憶媒体は、例えば、メモリ804または記憶装置818であり得る。メモリ804は、情報を格納し得るRAM装置を含み得るRAMを含み得る。RAM装置は、揮発性または不揮発性であり得、例えば、1つ以上のDRAM装置、フラッシュメモリ装置、SRAM装置、ゼロキャパシタRAM(ZRAM)装置、ツイントランジスタRAM(TTRAM)装置、読み取り専用メモリ(ROM)装置、強誘電体RAM(FeRAM)装置、磁気抵抗RAM(MRAM)装置、相変化メモリRAM(PRAM)装置、または他のタイプのRAM装置を含み得る。
1つ以上のコンピューティング装置800は、メモリ804内にロードされた命令を実行するための仮想マシン(VM)804を含み得る。仮想マシン806は、複数のプロセッサ上で実行するプロセスを処理するために提供され得、それにより、プロセスは、複数のコンピューティング資源ではなく1つだけのコンピューティング資源を使用しているように見え得る。仮想化は、電子装置内のインフラおよび資源が動的に共有され得るように、電子装置800内で利用され得る。複数のVM806が、単一のコンピューティング装置800上に常駐し得る。
ハードウェアアクセラレータ808は、ASIC、FPGA、または何らかの他の装置内に実装され得る。ハードウェアアクセラレータ808は、電子装置800の一般的な処理時間を削減するために使用され得る。
電子装置800は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)またはインターネットに様々な接続を通して接続するためのネットワークインタフェース810を含み得、様々な接続には、標準的な電話回線、LANまたはWANリンク(例えば、T1、T3、56kb、X.25)、ブロードバンド接続(例えば、総合サービスデジタル通信網(ISDN)、フレームリレー、非同期転送モード(ATM)、無線接続(例えば、802.11)、高速相互接続(例えば、InfiniBand、ギガビットイーサネット(登録商標)、Myrinet)または上述のいずれかもしくは全部の何らかの組合せを含むが、それらに限定されない。ネットワークインタフェース708は、内蔵式ネットワークアダプタ、ネットワークインタフェースカード、パーソナルコンピュータメモリカード国際協会(PCMCIA)ネットワークカード、カードバスネットワークアダプタ、無線ネットワークアダプタ、ユニバーサルシリアルバス(USB)ネットワークアダプタ、モデム、または電子装置800を任意のタイプのネットワーク可能通信に接続して、本明細書で説明する操作を実行するのに適した任意の他の装置を含み得る。
電子装置800は、1つ以上の入力装置812を含み得、例えば、ユーザーからの入力を受信するために使用され得る、キーボード、マルチポイントタッチインタフェース、ポインティングデバイス(例えば、マウス)、ジャイロスコープ、加速度計、力覚装置、触覚デバイス、ニューラルデバイス、マイクロフォン、またはカメラなどである。電子装置800は、他の適切な入出力周辺装置を含み得ることに留意されたい。
入力装置812は、ユーザーが、視覚的表示装置814上で登録される入力を提供できるようにし得る。グラフィカルユーザーインタフェース(GUI)816が表示装置814上に表示され得る。
記憶装置818もコンピュータ800に関連付けられ得る。記憶装置818は、入出力バスを経由してプロセッサ802にアクセス可能であり得る。記憶装置818内の情報は、プロセッサ802により、実行、解釈、操作、および/または別の方法で処理され得る。記憶装置818は、例えば、磁気ディスク、光ディスク(例えば、CD−ROM、DVDプレイヤー)、ランダムアクセスメモリ(RAM)ディスク、テープ装置、および/またはフラッシュドライブなどの記憶装置を含み得る。情報は、記憶装置内に含まれる1つ以上の非一時的有形のコンピュータ可読媒体上に格納され得る。この媒体は、例えば、磁気ディスク、光ディスク、磁気テープ、および/またはメモリデバイス(例えば、フラッシュメモリデバイス、スタティックRAM(SRAM)デバイス、ダイナミックRAM(DRAM)デバイス、または他のメモリデバイス)を含み得る。情報は、本発明の1つ以上の実施形態を実装し得るデータおよび/またはコンピュータ実行可能命令を含み得る。
記憶装置818は、実施形態例で提供される、任意のモジュール、出力、ディスプレイ、ファイル820、情報、ユーザーインタフェースなどを格納し得る。記憶装置818は、コンピューティング装置800または別の電子装置によって使用するためのアプリケーション822を格納し得る。アプリケーション822は、コンピューティング装置1300がタスクを実行するのを可能にする、プログラム、モジュール、またはソフトウェアコンポーネントを含み得る。アプリケーションの例には、文書処理ソフトウェア、シェル、インターネットブラウザ、生産性スイート、およびプログラミングソフトウェアを含む。記憶装置818は、コンピューティング装置800または別の装置によって使用するためのデータだけでなく、追加の機能を提供するための追加のアプリケーションを格納し得る。データは、ファイル、変数、パラメータ、画像、テキスト、および他の形式のデータを含み得る。
記憶装置818は、コンピューティング装置800を実行するためのオペレーティングシステム(OS)824をさらに格納し得る。OS 824の例には、Microsoft(登録商標)Windows(登録商標)オペレーティングシステム、Unix(登録商標)およびLinux(登録商標)オペレーティングシステム、Macintoshコンピュータ向けのMacOS(登録商標)、Symbian OSなどの組み込みオペレーティングシステム、リアルタイムオペレーティングシステム、オープンソースオペレーティングシステム、独自のオペレーティングシステム、携帯電子機器向けのオペレーティングシステム、または電子装置上で実行して本明細書で説明する操作を実行可能な他のオペレーティングシステムを含み得る。オペレーティングシステムは、ネイティブモードまたはエミュレートモードで実行され得る。
一実施形態では、コンピューティング装置800は、モデルを構築するための特徴ベースのモデリング環境830を含み得る。モデリング環境830は、例えば、ソフトウェアコンポーネントまたはコンピュータプログラムであり得る。モデリング環境830は、CAD環境であり得る。モデリング環境830は、モデル110の構築、編集、保存およびロード、モデル110の性能のシミュレーション、ならびにモデル110のラピッドプロトタイピングまたは製造ユニットへの入力としての提供のための手段を含み得る。モデリング環境830は、幾何学形状カーネル(geometry kernel)832をさらに含み得、それは、モデル内の特徴の形状を計算して表し得る。
本発明の1つ以上の実施形態は、1つ以上の非一時的有形のコンピュータ可読媒体上に具現化され得る、コンピュータ実行可能命令および/またはデータを使用して実装され得る。媒体は、ハードディスク、コンパクトディスク、デジタル多用途ディスク、フラッシュメモリカード、プログラマブル読取り専用メモリ(PROM)、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、磁気抵抗ランダムアクセスメモリ(MRAM)、磁気テープ、または他のコンピュータ可読媒体であり得るが、それらに限定されない。
本発明の1つ以上の実施形態は、プログラミング言語で実装され得る。使用され得る言語のいくつかの例には、Python、C、C++、C#、SystemC、Java(登録商標)、Javascript、ハードウェア記述言語(HDL)、統一モデリング言語(UML)、およびプログラマブル論理制御装置(PLC)言語を含むが、それらに限定されない。さらに、本発明の1つ以上の実施形態は、ハードウェア記述言語または計算の指示を可能にしる他の言語で実装され得る。本発明の1つ以上の実施形態は、1つ以上の媒体上または媒体内にオブジェクトコードとして格納され得る。本発明の1つ以上の実施形態を実装し得る命令は、1つ以上のプロセッサによって実行され得る。本発明の一部は、プロセッサ以外の1つ以上のハードウェアコンポーネントに関して実行する命令内にあり得る。
本発明は分散またはネットワーク環境で実装され得ることを理解されたい。例えば、モデルが、中央サーバーで提供および操作され得、一方、ユーザーは、ユーザー端末を通してモデルとやり取りする。
図9は、本発明の1つ以上の実施形態を実装し得るネットワーク実施態様を示す。システム900は、コンピューティング装置800、ネットワーク910、サービスプロバイダ920、モデリング環境830、およびクラスタ930を含み得る。図9の実施形態は例示であり、他の実施形態は、さらに多くの装置、より少ない装置、または図9の配置とは異なる配置の装置を含むことができる。
ネットワーク910は、データを供給源から宛先に伝送し得る。ネットワーク910の実施形態は、ルーター、スイッチ、ファイアウォール、および/またはサーバー(図示せず)などのネットワーク装置、ならびにデータを伝送するための接続(例えば、リンク)を使用し得る。データは、1つ以上のネットワークおよび/または1つ以上の装置(例えば、コンピューティング装置800、サービスプロバイダ920など)での使用に対して適合され得る実質的に任意のフォーマットを有する任意のタイプのマシン可読情報を指し得る。データは、デジタル情報またはアナログ情報を含み得る。データはさらにパケット化されることがあり、かつ/またはパケット化されないこともある。
ネットワーク910は、有線導体および/もしくは光ファイバを使用した配線接続されたネットワークであり得、かつ/または自由空間光、無線周波数(RF)、および/もしくは音響伝達経路を使用した無線ネットワークであり得る。一実施態様では、ネットワーク910は、インターネットなどの、実質的にオープンな公衆回線であり得る。別の実施態様では、ネットワーク910は、企業の仮想ネットワークなどの、より制限されたネットワークであり得る。ネットワーク910は、インターネット、イントラネット、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、無線ネットワーク(例えば、IEEE802.11を使用)、または他のタイプのネットワークを含み得る。ネットワーク910は、共通オブジェクトリクエストブローカーアーキテクチャ(CORBA)または分散型コンポーネントオブジェクトモデル(DCOM)などの、ミドルウェアを使用し得る。本明細書で説明するネットワークおよび/またはネットワーク上で動作する装置の実施態様は、例えば、任意の特定のデータタイプ、プロトコル、および/またはアーキテクチャ/構成に限定されない。
サービスプロバイダ920は、サービスを別の装置に対して利用可能にする装置を含み得る。例えば、サービスプロバイダ920は、サーバーおよび/または他の装置を使用して、1つ以上のサービスを宛先に提供する実体(例えば、個人、企業、教育機関、政府機関など)を含み得る。サービスは、操作(例えば、最適化操作)を実行するために、宛先によって実行される命令を含み得る。代替として、サービスは、宛先の代わりに操作を実行するために、宛先の代わりに実行される命令を含み得る。
モデリング環境830は、ネットワーク910を経由して情報を受信する装置を含み得る。例えば、モデリング環境830は、電子装置800からユーザー入力を受信する装置上でホストされ得る。
クラスタ930は、いくつかの実行ユニット(EU)932を含み得、電子装置800および/または、サービスプロバイダ920などの、別の装置の代わりに、処理を実行し得る。例えば、クラスタ930は、電子装置800から受信した操作に関して並列処理を実行し得る。クラスタ930は、単一の装置もしくはチップ上に常駐するか、またはいくつかの装置もしくはチップ上に常駐するEU 932を含み得る。
EU930は、要求している装置などの、装置の代わりに操作を実行する処理装置を含み得る。EUは、マイクロプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、および/または別のタイプの処理装置であり得る。EU 932は、動作環境のためのコードなどの、コードを含み得る。例えば、EUは、並列処理動作に関連する動作環境の一部を実行し得る。サービスプロバイダ920は、クラスタ930を操作し得、申込みベースで(例えば、ウェブサービスを介して)対話型最適化機能を電子装置800に提供し得る。
EUは、図8のモデリング環境830などの製品に対してリモート/分散処理機能を提供し得る。ハードウェアEUは、並列プログラミング動作を実行し、かつ/または並列プログラミング動作に関与し得る装置(例えば、ハードウェア資源)を含み得る。例えば、ハードウェアEUは、それが受信している(例えば、直接またはプロキシを経由して受信した)要求および/またはタスクに応答して、並列プログラミング動作を実行し、かつ/または並列プログラミング動作に関与し得る。ハードウェアEUは、1つ以上の装置を使用して、実質的に任意のタイプの並列プログラミング(例えば、タスク、データ、ストリーム処理など)を実行し、かつ/または並列プログラミングに関与し得る。例えば、ハードウェアEUは、多重コアまたはいくつかのプロセッサを含む単一の処理装置を含み得る。ハードウェアEUは、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、または他のプログラム可能装置などの、プログラム可能装置でもあり得る。ハードウェアEU内で使用される装置は、グリッド、リング型、星型、または他の構成などの、多数の異なる構成(またはトポロジ)で配置され得る。ハードウェアEUは、処理作業の実行時に、1つ以上のスレッド(またはプロセス)をサポートし得る。
ソフトウェアEUは、1つ以上の並列プログラミング動作を実行し、かつ/または並列プログラミング動作に関与し得るソフトウェア資源(例えば、技術計算環境)を含み得る。ソフトウェアEUは、プログラムおよび/またはプログラムの1つ以上の部分の受信に応答して、1つ以上の並列プログラミング動作を実行し、かつ/または並列プログラミング動作に関与し得る。ソフトウェアEUは、1つ以上のハードウェア実行ユニットを使用して、異なるタイプの並列プログラミングを実行し、かつ/または並列プログラミングに関与し得る。ソフトウェアEUは、処理作業の実行時に、1つ以上のスレッドおよび/またはプロセスをサポートし得る。
用語「並列プログラミング」は、複数のタイプの並列プログラミング、例えば、タスク並列プログラミング、データ並列プログラミング、およびストリーム並列プログラミング、を含むと理解され得る。並列プログラミングは、複数の資源(例えば、ソフトウェア実行ユニット、ハードウェア実行ユニット、プロセッサ、マイクロプロセッサ、クラスタ、ラボ)にわたって分散され得、かつ同時に実行され得る、様々なタイプの処理を含み得る。
例えば、並列プログラミングは、いくつかのタスクがいくつかのソフトウェア実行ユニット上で同時に処理され得る、タスク並列プログラミングを含み得る。タスク並列プログラミングでは、タスクは、他のタスク実行とは関係なく、例えば、同時に、処理され得る。
並列プログラミングはデータ並列プログラミングを含み得、その場合、データ(例えば、データセット)は、例えば、ソフトウェア実行ユニットを使用して、並列に実行され得るいくつかの部分に分解され得る。データ並列プログラミングでは、ソフトウェア実行ユニットおよび/またはデータ部は、処理を進めながら、互いに通信し得る。
並列プログラミングは、ストリーム並列プログラミング(パイプライン並列プログラミングと呼ばれることもある)を含み得る。ストリーム並列プログラミングは、例えば、直列(例えば直線)に配置された、いくつかのソフトウェア実行ユニットを使用し得、その場合、第1のソフトウェア実行ユニットが、第2のソフトウェア実行ユニットに供給され得る第1の結果を生成し得、第2のソフトウェア実行ユニットは、第1の結果を所与として第2の結果を生じ得る。ストリーム並列プログラミングは、タスク割当てが、有向非巡回グラフ(DAG)または巡回グラフで表現され得る状態も含み得る。
他の並列プログラミング技法は、タスク、データ、および/またはストリーム並列プログラミング技法のみ、もしくはハイブリッドの並列プログラミング技法を形成するための他のタイプの処理技法と共に、何らかの組合せを含み得る。
前述の説明は、本発明の様々な実施形態の実例および説明を提供し得るが、網羅的であることも、本発明を開示する正確な形式に限定することも意図していない。修正形態および変更形態が、上述の教示を踏まえて可能であり得るか、または本発明の実施から得られ得る。例えば、一連の動作が上で説明されているが、動作の順序は、本発明の原理と一致する他の実施態様で変更され得る。さらに、非依存動作が並行して実行され得る。さらに、特徴およびアクセスクラスが特定の構文を使用して上述されているが、特徴およびアクセスクラスは、異なる方法を使用し、かつ異なる構文を使用して、同様に指定され得る。
加えて、本発明の原理と一致する1つ以上の実施態様が、本発明の精神から逸脱することなく、図面で例示して、本明細書で説明するもの以外の1つ以上の装置および/または構成を使用して実装され得る。1つ以上の装置および/またはコンポーネントが、特定の配置および/または用途に応じて、図面の実施態様に追加され、かつ/または図面の実施態様から除去され得る。また、1つ以上の開示する実施態様は、ハードウェアの特定の組合せに限定されない。
その上、本発明のある部分は、1つ以上の関数によって実行され得る論理として実装され得る。この論理は、配線接続された論理などのハードウェア、特定用途向け集積回路、フィールドプログラマブルゲートアレイ、マイクロプロセッサ、ソフトウェア、またはハードウェアとソフトウェアの組合せを含み得る。
本明細書の説明で使用されるどの要素、動作、命令も、そのように明示的に記述されていない限り、本発明にとって重要または必須であると解釈されるべきでない。また、本明細書では、冠詞「1つの(a)」は、1つ以上のアイテムを含むことを意図する。1つだけのアイテムを意図する場合には、用語「単一の」または同様の用語が使用される。さらに、句「基づく」は、本明細書では、特に明示的に記載されない限り、「少なくとも一部が基づく」を意味することを意図する。加えて、用語「ユーザー」は、本明細書では、特に明記しない限り、例えば、電子装置(例えば、ワークステーション)または電子装置のユーザーを含むと広く解釈されることを意図する。
本発明は上で開示した特定の実施形態に限定されず、本発明は、次の添付の特許請求の範囲の範囲内に含まれる、ありとあらゆる特定の実施形態および等価物を含むことを意図する。

Claims (19)

  1. 命令を格納する非一時的コンピュータ可読媒体であって、前記命令は、プロセッサによって実行される場合に、前記プロセッサに、
    モデルに対してチェックポイントを作成する要求を、当事者による前記モデルの編集セッション中に受信することと、
    前記モデルの以前に保存された状態を識別することと、
    前記モデルの前記以前に保存された状態以後に前記モデル内で変更された1つ以上のコンポーネントを識別することと、
    前記要求に応答して、前記編集セッション中にチェックポイントを作成することであって、前記チェックポイントが、前記モデルの現在の状態を表しており、かつ
    前記当事者による前記編集セッションの以前のチェックポイントに関連付けられた前記モデルの前記以前に保存された状態への参照と、
    前記モデルの前記以前に保存された状態以後に、前記編集セッション中に前記モデル内で変更された前記1つ以上のコンポーネントのリストと
    を含む、ことと、
    前記チェックポイントを記憶装置内に格納することと、
    前記当事者による前記モデルの前記編集セッション中に前記チェックポイントに戻すことであって、前記戻すことが、前記モデルを、前記当事者による前記編集セッションの前記チェックポイントに関連付けられた前記保存された状態に戻す、ことと
    設計セッションに入ることと、
    前記設計セッションに対して未変更のモデルとして使用される基本モデルを識別することと、
    前記基本モデルから成るエントリチェックポイントを作成することと
    を実行させ
    前記チェックポイントがツリー構造として表され、前記エントリチェックポイントが前記ツリー構造のルートを表す、媒体。
  2. 前記基本モデルおよび前記チェックポイントを第1のコンピュータ上の設計セッションファイルに保存するための命令をさらに格納する、請求項に記載の媒体。
  3. 前記設計セッションファイルを第2のコンピュータ上でオープンすることと、
    前記チェックポイントと一致したモデルを前記第2のコンピュータ上で作成することと
    行うための命令をさらに含む、請求項に記載の媒体。
  4. 命令を格納する非一時的コンピュータ可読媒体であって、前記命令は、プロセッサによって実行される場合に、前記プロセッサに、
    モデルに対してチェックポイントを作成する要求を、当事者による前記モデルの編集セッション中に受信することと、
    前記モデルの以前に保存された状態を識別することと、
    前記モデルの前記以前に保存された状態以後に前記モデル内で変更された1つ以上のコンポーネントを識別することと、
    前記要求に応答して、前記編集セッション中にチェックポイントを作成することであって、前記チェックポイントが、前記モデルの現在の状態を表しており、かつ
    前記当事者による前記編集セッションの以前のチェックポイントに関連付けられた前記モデルの前記以前に保存された状態への参照と、
    前記モデルの前記以前に保存された状態以後に、前記編集セッション中に前記モデル内で変更された前記1つ以上のコンポーネントのリストと
    を含む、ことと、
    前記チェックポイントを記憶装置内に格納することと、
    前記当事者による前記モデルの前記編集セッション中に前記チェックポイントに戻すことであって、前記戻すことが、前記モデルを、前記当事者による前記編集セッションの前記チェックポイントに関連付けられた前記保存された状態に戻す、ことと、
    前記モデルの第1のコンポーネントを変更する命令を受信することと、
    前記命令に基づいて前記モデルを変更して、前記モデルに対して明示的な変更をもたらすことと、
    前記モデルの第2のコンポーネントに対する派生的な変更を識別することであって、前記派生的な変更が、前記明示的な変更から生じており、前記第2のコンポーネントを変更するためのユーザー指示に起因しない、ことと、
    前記第1のコンポーネントおよび前記第2のコンポーネントへの参照を、前記モデルの前記以前に保存された状態以後に前記モデル内で変更された前記1つ以上のコンポーネントの前記リストに格納することと
    を実行させる、媒体。
  5. 前記派生的な変更が、前記第1のコンポーネントと前記第2のコンポーネントとの間のパラメータ関係に基づく、請求項に記載の媒体。
  6. 命令を格納する非一時的コンピュータ可読媒体であって、前記命令は、プロセッサによって実行される場合に、前記プロセッサに、
    モデルに対してチェックポイントを作成する要求を、当事者による前記モデルの編集セッション中に受信することと、
    前記モデルの以前に保存された状態を識別することと、
    前記モデルの前記以前に保存された状態以後に前記モデル内で変更された1つ以上のコンポーネントを識別することと、
    前記要求に応答して、前記編集セッション中にチェックポイントを作成することであって、前記チェックポイントが、前記モデルの現在の状態を表しており、かつ
    前記当事者による前記編集セッションの以前のチェックポイントに関連付けられた前記モデルの前記以前に保存された状態への参照と、
    前記モデルの前記以前に保存された状態以後に、前記編集セッション中に前記モデル内で変更された前記1つ以上のコンポーネントのリストと
    を含む、ことと、
    前記チェックポイントを記憶装置内に格納することと、
    前記当事者による前記モデルの前記編集セッション中に前記チェックポイントに戻すことであって、前記戻すことが、前記モデルを、前記当事者による前記編集セッションの前記チェックポイントに関連付けられた前記保存された状態に戻す、ことと
    を実行させ、
    前記モデルの前記以前に保存された状態への前記参照が第2のチェックポイントへのポインタを含む媒体。
  7. 方法であって、
    モデルを、記憶装置内に保存されている保存された状態に戻す要求をコンピューティング装置内で受信することであって、前記モデルがコンポーネントを含む、ことと、
    前記コンピューティング装置のプロセッサで、前記保存された状態に関連付けられたチェックポイントを取得することであって、前記チェックポイントが、以前のチェックポイントへの参照と、前記以前のチェックポイント以後に変更された前記モデル内の変更されたコンポーネントのリストとを含む、ことと、
    前記以前のチェックポイントを前記モデルの現在の状態と比較するために、前記プロセッサで前記以前のチェックポイントを処理することであって、前記処理が、前記モデルの前記コンポーネントが前記変更されたコンポーネントのリスト内にあることを識別することを含む、ことと、
    前記モデルを前記保存された状態に戻すために、前記プロセッサで、前記変更されたコンポーネントのリストに基づいて前記モデル内の前記コンポーネントを変更することと
    を含む、方法。
  8. 前記モデルを前記保存された状態に戻すことが、前記以前のチェックポイント以後に変更された前記モデルのコンポーネントのみを置換し、一方、前記以前のチェックポイント以後に変更されなかった前記モデルの任意のコンポーネントを維持することを含む、請求項に記載の方法。
  9. 前記以前のチェックポイントが基本モデルに関連付けられたエントリチェックポイントであり、前記基本モデルが前記モデルの前記以前のバージョンとして使用される、請求項に記載の方法。
  10. 前記以前のチェックポイントを処理することが、第2の以前のチェックポイントと、前記以前のチェックポイントと前記第2の以前のチェックポイントとの間に前記モデル内で変更されたコンポーネントのリストとを取得することを含む、請求項に記載の方法。
  11. 前記モデルを前記保存された状態に戻すことが、
    エントリチェックポイントに関連付けられた基本モデルを取得することと、
    前記エントリチェックポイントと前記保存された状態に関連付けられた前記チェックポイントとの間の一連の1つ以上のチェックポイントを取得することであって、前記一連のチェックポイントが1つ以上の変更されたコンポーネントの集合を含む、ことと、
    前記変更されたコンポーネントに対応する前記モデル内のコンポーネントを識別することと、
    前記識別されたコンポーネントを前記基本モデルに対して前記変更されたコンポーネントと置換することと
    を含む、請求項に記載の方法。
  12. 前記変更されたコンポーネントのリストが、
    前記モデルを変更するための明示的な命令により前記モデルに対して行われた明示的な変更によって変更された第1のコンポーネントと、
    前記モデルに関する1つ以上のパラメータ制約を満たすために、前記明示的な変更の結果として前記モデルに対して行われた派生的な変更によって変更された第2のコンポーネントと
    を含む、請求項に記載の方法。
  13. システムであって、
    第1の状態におけるモデルを格納する非一時的コンピュータ可読記憶媒体であって、前記第1の状態における前記モデルが第1のコンポーネントを含む、非一時的コンピュータ可読記憶媒体と、
    プロセッサと
    を備え、
    前記プロセッサが、
    第1の状態の前記モデルに対して行われた1つ以上の変更を追跡することであって、前記1つ以上の変更を追跡することが、
    明示的な変更を前記第1のコンポーネントに生じさせる命令を識別することと、
    前記明示的な変更を変更のリストに記録することと、
    前記第1のコンポーネントに関連付けられた関連コンポーネントを、前記明示的な変更によって生じる前記関連コンポーネントに対する派生的な変更に基づいて識別することと
    を含む、ことと
    当事者による前記モデルの編集セッション中に前記モデルに対してチェックポイントを作成する要求を受信することと
    前記要求に応答して、前記編集セッション中に前記モデルの現在の状態を表す前記チェックポイントを作成することであって、前記チェックポイントが
    前記当事者による前記編集セッションの以前のチェックポイントに関連付けられた前記モデルの以前に保存された状態への参照と
    前記第1のコンポーネントと、前記モデルの前記以前に保存された状態以後に前記編集セッション中に前記モデル内で変更された前記関連コンポーネントとを含む変更されたコンポーネントのリスト
    を含む、ことと
    前記チェックポイントを前記非一時的コンピュータ可読記憶媒体内に格納することと
    前記当事者による前記モデルの前記編集セッション中に前記チェックポイントに戻すことであって、前記戻すことが、前記モデルを、前記当事者による前記編集セッションの以前のチェックポイントに関連付けられた前記保存された状態に戻す、ことと
    設計セッションに入ることと、
    前記設計セッションに対して未変更のモデルとして使用される基本モデルを識別することと、
    前記基本モデルから成るエントリチェックポイントを作成することと
    実行するようにプログラムされ、
    前記チェックポイントがツリー構造として表され、前記エントリチェックポイントが前記ツリー構造のルートを表す、システム。
  14. 前記関連コンポーネントを識別することが、前記モデルに関連付けられたパラメータ制約を検査することを含む、請求項13に記載のシステム。
  15. 前記1つ以上の変更を追跡することが、前記関連コンポーネントの識別を前記変更されたコンポーネントのリストと共に格納することを含む、請求項13に記載のシステム。
  16. 前記第1のコンポーネントが前記関連コンポーネントのリストと共に格納される、請求項13に記載のシステム。
  17. 前記関連コンポーネントを識別することが、前記第1のコンポーネントを他の特徴への連結について分析することを含む、請求項13に記載のシステム。
  18. システムであって、
    第1の状態におけるモデルを格納する非一時的コンピュータ可読記憶媒体であって、前記第1の状態における前記モデルが第1のコンポーネントを含む、非一時的コンピュータ可読記憶媒体と、
    プロセッサと
    を備え、
    前記プロセッサが、
    第1の状態の前記モデルに対して行われた1つ以上の変更を追跡することであって、前記1つ以上の変更を追跡することが、
    前記モデルの前記第1のコンポーネントを変更する命令を受信することと、
    前記命令に基づいて前記モデルを変更して、前記モデルに対して明示的な変更をもたらすことと、
    前記モデルの第2のコンポーネントに対する派生的な変更を識別することであって、前記派生的な変更が、前記明示的な変更から生じており、前記第2のコンポーネントを変更するためのユーザー指示に起因しない、ことと
    を含む、ことと、
    当事者による前記モデルの編集セッション中に前記モデルに対してチェックポイントを作成する要求を受信することと、
    前記要求に応答して、前記編集セッション中に前記モデルの現在の状態を表す前記チェックポイントを作成することであって、前記チェックポイントが、
    前記当事者による前記編集セッションの以前のチェックポイントに関連付けられた前記モデルの以前に保存された状態への参照と、
    前記第1のコンポーネントへの参照と、前記モデルの前記以前に保存された状態以後に前記編集セッション中に前記モデル内で変更された前記第2のコンポーネントへの参照とを含む変更されたコンポーネントのリストと
    を含む、ことと、
    前記チェックポイントを前記非一時的コンピュータ可読記憶媒体内に格納することと、
    前記当事者による前記モデルの前記編集セッション中に前記チェックポイントに戻すことであって、前記戻すことが、前記モデルを、前記当事者による前記編集セッションの以前のチェックポイントに関連付けられた前記保存された状態に戻す、ことと
    を実行するようにプログラムされる、システム。
  19. システムであって、
    第1の状態におけるモデルを格納する非一時的コンピュータ可読記憶媒体であって、前記第1の状態における前記モデルが第1のコンポーネントを含む、非一時的コンピュータ可読記憶媒体と、
    プロセッサと
    を備え、
    前記プロセッサが、
    第1の状態の前記モデルに対して行われた1つ以上の変更を追跡することであって、前記1つ以上の変更を追跡することが、
    明示的な変更を前記第1のコンポーネントに生じさせる命令を識別することと、
    前記明示的な変更を変更のリストに記録することと、
    前記第1のコンポーネントに関連付けられた関連コンポーネントを、前記明示的な変更によって生じる前記関連コンポーネントに対する派生的な変更に基づいて、識別することと
    を含む、ことと、
    当事者による前記モデルの編集セッション中に前記モデルに対してチェックポイントを作成する要求を受信することと、
    前記要求に応答して、前記編集セッション中に前記モデルの現在の状態を表す前記チェックポイントを作成することであって、前記チェックポイントが、
    前記当事者による前記編集セッションの以前のチェックポイントに関連付けられた前記モデルの以前に保存された状態への参照と、
    前記第1のコンポーネントと、前記モデルの前記以前に保存された状態以後に前記編集セッション中に前記モデル内で変更された前記関連コンポーネントとを含む変更されたコンポーネントのリストと
    を含む、ことと、
    前記チェックポイントを前記非一時的コンピュータ可読記憶媒体内に格納することと、
    前記当事者による前記モデルの前記編集セッション中に前記チェックポイントに戻すことであって、前記戻すことが、前記モデルを、前記当事者による前記編集セッションの以前のチェックポイントに関連付けられた前記保存された状態に戻す、ことと
    を実行するようにプログラムされ、
    前記モデルの前記以前に保存された状態への前記参照が第2のチェックポイントへのポインタを含む、システム。
JP2016571327A 2014-06-06 2015-06-08 大規模なコンピュータ支援設計モデルにおける設計変更の漸進的探索のための方法およびシステム Active JP6604655B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/298,627 US11341288B2 (en) 2014-06-06 2014-06-06 Methods and system for incremental exploration of design changes in large computer-aided design models
US14/298,627 2014-06-06
PCT/US2015/034692 WO2015188183A2 (en) 2014-06-06 2015-06-08 Methods and system for incremental exploration of design changes in large computer-aided design models

Publications (2)

Publication Number Publication Date
JP2017524174A JP2017524174A (ja) 2017-08-24
JP6604655B2 true JP6604655B2 (ja) 2019-11-13

Family

ID=54541166

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016571327A Active JP6604655B2 (ja) 2014-06-06 2015-06-08 大規模なコンピュータ支援設計モデルにおける設計変更の漸進的探索のための方法およびシステム

Country Status (4)

Country Link
US (2) US11341288B2 (ja)
EP (1) EP3152688B1 (ja)
JP (1) JP6604655B2 (ja)
WO (1) WO2015188183A2 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US9063721B2 (en) 2012-09-14 2015-06-23 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US9069782B2 (en) 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
US11341288B2 (en) 2014-06-06 2022-05-24 Ptc Inc. Methods and system for incremental exploration of design changes in large computer-aided design models
US10867083B2 (en) 2014-11-25 2020-12-15 Autodesk, Inc. Technique for generating approximate design solutions
US10394773B2 (en) * 2015-01-02 2019-08-27 International Business Machines Corporation Determining when a change set was delivered to a workspace or stream and by whom
CN106294357B (zh) * 2015-05-14 2019-07-09 阿里巴巴集团控股有限公司 数据处理方法和流计算系统
US10353916B2 (en) * 2016-03-25 2019-07-16 Bentley Systems, Incorporated Techniques for conversion of CAD descriptions
US10318673B2 (en) * 2016-06-13 2019-06-11 Brigham Young University Multi-user CAx assembly load time reduction while maintaining inter-part consistency
US20180107764A1 (en) * 2016-10-17 2018-04-19 Brigham Young University Graph comparison for conflict resolution
WO2018109694A1 (en) * 2016-12-13 2018-06-21 Onshape, Inc. Computer aided design system with in-context modeling
CN108257205B (zh) * 2016-12-29 2021-11-12 阿里巴巴集团控股有限公司 一种三维模型构建方法、装置及系统
US10503495B2 (en) * 2017-08-02 2019-12-10 Accenture Global Solutions Limited Component management platform
EP4002282B1 (en) * 2017-10-13 2023-04-19 Dassault Systèmes Method for creating an animation summarizing a design process of a three-dimensional object
US10901957B2 (en) * 2018-08-29 2021-01-26 International Business Machines Corporation Checkpointing for increasing efficiency of a blockchain
US11196542B2 (en) 2018-08-29 2021-12-07 International Business Machines Corporation Checkpointing for increasing efficiency of a blockchain
US11334439B2 (en) 2018-08-29 2022-05-17 International Business Machines Corporation Checkpointing for increasing efficiency of a blockchain
US12411834B1 (en) * 2018-12-05 2025-09-09 Snap Inc. Version control in networked environments
CN110348097A (zh) * 2019-07-01 2019-10-18 特拓(青岛)轮胎技术有限公司 基于广义参数化的轮胎数字化设计方法
CN110543690B (zh) * 2019-08-06 2023-04-14 中国商用飞机有限责任公司 用于复杂产品模型的数字样机的参数变更方法
US10901706B1 (en) * 2019-08-14 2021-01-26 Business Objects Software Ltd. Partially immutable model
WO2022245989A1 (en) * 2021-05-20 2022-11-24 Palantir Technologies Inc. Controlling user actions and access to electronic data assets
CN116091672A (zh) * 2022-12-28 2023-05-09 杭州群核信息技术有限公司 图像渲染方法、计算机设备及其介质
EP4446852A1 (en) * 2023-04-12 2024-10-16 Unvs Unevis Ventures, Lda A system and method for tracking interaction with an object in a virtual environment
US20250298610A1 (en) * 2024-03-21 2025-09-25 Prewitt Ridge, Inc. Systems and Methods for Updating Textual Notation File in Post-Cloud Engineering Data Management Infrastructure

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4809170A (en) 1987-04-22 1989-02-28 Apollo Computer, Inc. Computer device for aiding in the development of software system
US5347653A (en) * 1991-06-28 1994-09-13 Digital Equipment Corporation System for reconstructing prior versions of indexes using records indicating changes between successive versions of the indexes
US5815154A (en) * 1995-12-20 1998-09-29 Solidworks Corporation Graphical browser system for displaying and manipulating a computer model
US6157922A (en) * 1997-10-24 2000-12-05 Trilogy Development Group, Inc. Method and apparatus for transparent backtracking
US6795966B1 (en) * 1998-05-15 2004-09-21 Vmware, Inc. Mechanism for restoring, porting, replicating and checkpointing computer systems using state extraction
US6426750B1 (en) * 1998-07-14 2002-07-30 Microsoft Corporation Run-time geomorphs
US6341291B1 (en) * 1998-09-28 2002-01-22 Bentley Systems, Inc. System for collaborative engineering using component and file-oriented tools
JP3622543B2 (ja) * 1998-12-22 2005-02-23 松下電工株式会社 金型のキャビティ形状創成方法
US6868425B1 (en) * 1999-03-05 2005-03-15 Microsoft Corporation Versions and workspaces in an object repository
US6892320B1 (en) * 2002-06-03 2005-05-10 Sun Microsystems, Inc. Method and apparatus for providing multiple-version support for highly available objects
US20040010786A1 (en) * 2002-07-11 2004-01-15 Microsoft Corporation System and method for automatically upgrading a software application
US7216254B1 (en) * 2003-03-24 2007-05-08 Veritas Operating Corporation Method and system of providing a write-accessible storage checkpoint
US7383272B2 (en) * 2004-05-03 2008-06-03 Boardwalktech, Inc. Method and system for versioned sharing, consolidating and reporting information
JP4516385B2 (ja) * 2004-08-31 2010-08-04 株式会社リコー アセンブリ構成の設計装置、アセンブリ構成の設計方法、アセンブリ構成の設計プログラム、およびアセンブリ構成の設計プログラムを記録した記録媒体
US20060168565A1 (en) * 2005-01-24 2006-07-27 International Business Machines Corporation Method and system for change classification
US7343386B2 (en) 2005-01-31 2008-03-11 International Business Machines Corporation Techniques supporting collaborative product development
US8654145B2 (en) * 2005-06-01 2014-02-18 Siemens Product Lifecycle Management Software Inc. Binding using rollback
US7603669B2 (en) * 2005-09-27 2009-10-13 Microsoft Corporation Upgrade and downgrade of data resource components
US8510087B2 (en) * 2010-09-29 2013-08-13 Siemens Product Lifecycle Management Software Inc. Variational modeling with discovered interferences
US8694286B2 (en) 2010-10-01 2014-04-08 Autodesk, Inc. Modifying a parametrically defined model with an explicit modeler
WO2012058607A2 (en) * 2010-10-28 2012-05-03 Parametric Technology Corporation Methods and systems for computer-aided design
US20120110595A1 (en) * 2010-10-28 2012-05-03 Michael Reitman Methods and systems for managing concurrent design of computer-aided design objects
US8458228B2 (en) 2011-09-23 2013-06-04 Siemens Product Lifecycle Management Software Inc. Occurrence management in product data management systems
US11341288B2 (en) 2014-06-06 2022-05-24 Ptc Inc. Methods and system for incremental exploration of design changes in large computer-aided design models
US10437938B2 (en) * 2015-02-25 2019-10-08 Onshape Inc. Multi-user cloud parametric feature-based 3D CAD system
JP7473457B2 (ja) * 2020-11-16 2024-04-23 鹿島建設株式会社 物理シミュレーションを伴う施工管理システム,施工管理方法,および施工管理プログラム

Also Published As

Publication number Publication date
JP2017524174A (ja) 2017-08-24
WO2015188183A2 (en) 2015-12-10
EP3152688B1 (en) 2018-11-21
US11341288B2 (en) 2022-05-24
WO2015188183A3 (en) 2016-04-14
US12307171B2 (en) 2025-05-20
US20150356207A1 (en) 2015-12-10
US20220284138A1 (en) 2022-09-08
EP3152688A2 (en) 2017-04-12

Similar Documents

Publication Publication Date Title
JP6604655B2 (ja) 大規模なコンピュータ支援設計モデルにおける設計変更の漸進的探索のための方法およびシステム
US20200142712A1 (en) Execution of workflows in distributed systems
Daniel et al. NeoEMF: A multi-database model persistence framework for very large models
CN106294533B (zh) 使用数据库复制的分布式工作流
CN105956087B (zh) 数据版本管理系统及方法
EP3433770B1 (en) Methods, electronic device and computer-readable medium for the conversion of cad descriptions
US8214245B2 (en) Method and system for synchronizing inclusive decision branches
Doboš et al. 3D Diff: an interactive approach to mesh differencing and conflict resolution
CN113741931A (zh) 软件升级方法、装置、电子设备及可读存储介质
US10621288B2 (en) Interoperable hierarchical model for conducting multiuser CAx operations
JP6209253B2 (ja) コンピュータ支援設計のための方法およびシステム
US20220358257A1 (en) Managing iterations and branching in design
US10338891B2 (en) Migration between model elements of different types in a modeling environment
US20200174804A1 (en) Graphical User Interface Command Pattern
Hepworth et al. Scalable integration of commercial file types in multi-user CAD
US8965940B2 (en) Imitation of file embedding in a document
JP2008269280A (ja) ソフトウェア開発支援システム、開発支援方法およびプログラム
Dobos Management and visualisation of non-linear history of polygonal 3d models
JP2024503035A (ja) 軽量拡張
US8682464B2 (en) System and method for generating a three-dimensional image
US20230297346A1 (en) Intelligent data processing system with metadata generation from iterative data analysis
El Jamiy et al. A new software architecture style for hadoop systems
US7970778B2 (en) Automatically persisting data from a model to a database
Buddelmeijer et al. Automatic optimized discovery, creation and processing of astronomical catalogs
JP2026511562A (ja) 拡張ビューのデータセットをプレビューするための論理アクセス

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170207

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180607

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190527

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190626

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190925

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191009

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191010

R150 Certificate of patent or registration of utility model

Ref document number: 6604655

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250