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 - Method and system for incremental search for design changes in large-scale computer-aided design models - Google Patents
[go: Go Back, main page]

JP6604655B2 - Method and system for incremental search for design changes in large-scale computer-aided design models - Google Patents

Method and system for incremental search for design changes in large-scale computer-aided design models 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
Japanese (ja)
Other versions
JP2017524174A (en
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/en
Application granted granted Critical
Publication of JP6604655B2 publication Critical patent/JP6604655B2/en
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号の優先権および利益を主張し、その内容が参照により全体として本明細書に組み込まれる。
RELATED APPLICATION This application claims priority and benefit of US patent application Ser. No. 14 / 298,627, filed Jun. 6, 2014, the contents of which are hereby incorporated by reference in their entirety.

コンポーネントベースのモデリング環境は、「コンポーネント」または「コンポーネントモデル」と呼ばれる1つ以上の要素で構成されている上位モデルを構築するために使用され得るモデリング環境である。コンポーネントモデルは、上位モデルを形成するために組み合わされ得る単体を表し得る。コンポーネントベースのモデリングは、製品の設計、モデル化、テストおよび/または視覚化を行うために使用され得る。コンポーネントベースのモデリング環境は、コンピュータ支援設計(CAD)およびコンピュータ支援製造(CAM)環境を含む。   A component-based modeling environment is a modeling environment that can be used to build a high-level model made up of one or more elements called “components” or “component models”. A component model may represent a single unit that can be combined to form a superior model. Component-based modeling can be used to design, model, test and / or visualize products. Component based modeling environments include computer aided design (CAD) and computer aided manufacturing (CAM) environments.

コンポーネントモデルは、別個の内部コンポーネントを含まないスタンドアロンのコンポーネントであり得るか、またはコンポーネントモデルは、1つ以上のコンポーネントで構成され得る。異なる上位モデルが同じコンポーネントを使用し得、また、単一の上位モデルが、単一の部分の異なるバージョンを表すために異なるコンポーネントを使用し得る。各コンポーネントは別個のファイルとして記憶装置上に格納され得る。   A component model can be a stand-alone component that does not include separate internal components, or a component model can be composed of one or more components. Different supermodels may use the same component, and a single supermodel may use different components to represent different versions of a single part. Each component can be stored on the storage device as a separate file.

従来の方式では、特に、相互に依存する多くのコンポーネントをもつ複雑なシステムを開発している場合には、新規の着想または設計変更を探索するために、モデル設計においてコンポーネントを変更することは技術的な課題である。例えば、モデル設計を変更することは、既存のコンポーネントモデルファイルを1つ以上のフォルダに手動でバックアップすること、複数のセッションをオープンしてクローズすること、ならびに異なるモデルを手動で反復して再検討および評価することを伴い得る。このプロセスは、ユーザーが管理するには、非常に厄介で困難であり得る。このプロセスは、モデルに対する若干の修正により、そのモデルに関連した各コンポーネントモデルファイルが保存されて、設計変更を実装するためにそのモデルの各コンポーネントが再構築されることが必要になり得るので、記憶空間および処理資源の無駄という結果にもなり得る。   With traditional methods, especially when developing complex systems with many interdependent components, changing components in a model design is a technique to search for new ideas or design changes. It is a typical problem. For example, changing a model design can be done by manually backing up existing component model files to one or more folders, opening and closing multiple sessions, and repetitively reviewing different models. And may involve evaluation. This process can be very cumbersome and difficult for the user to manage. This process can require that some component model files associated with that model be saved with minor modifications to the model and that each component of that model be rebuilt to implement the design changes. It can also result in wasted storage space and processing resources.

その上、1つのコンポーネントに対して変更を行った後、組立体内の他の関連したコンポーネントも、組立体の残りの部分との整合性を保つために更新される必要があり得る。例えば、ユーザーが車のモデルを構築していて、ユーザーが車のシャーシの幅を変更する場合、修正された組立体と整合性をとるために、車軸の長さも変更する必要があり得る。従属コンポーネントモデルに対する係る非明示的な変更は、派生的な変更(derived change)と呼ばれ得る。   Moreover, after making changes to one component, other related components in the assembly may also need to be updated to remain consistent with the rest of the assembly. For example, if the user is building a car model and the user changes the width of the car chassis, it may also be necessary to change the axle length in order to be consistent with the modified assembly. Such an implicit change to the dependent component model may be referred to as a derived change.

モデルの1つ以上のコンポーネントに対して明示的な変更を行うと、派生的な変更を他のコンポーネントに伝搬するためにモデル全体を更新する必要があり得る。モデル設計の課題の1つは、漸進的な設計変更および探索(すなわち、ある変更を試みて、設計を更新し、望ましくない派生的な変更を生じた変更のいくつかを戻すこと)を管理および制御することである。どの派生的な変更がどの明示的な変更によって生じたか、どのコンポーネントが各漸次的変更で修正されたかを正確に追跡することは非常に困難であり得る。この課題により、モデルを以前の状態に手際よく戻すことが極めて困難になり得る。   When an explicit change is made to one or more components of the model, the entire model may need to be updated to propagate the derivative changes to other components. One of the challenges of model design is managing and gradually designing changes and exploration (i.e., trying one change to update the design and returning some of the changes that caused undesirable derivative changes) Is to control. It can be very difficult to accurately track which derivative changes are caused by which explicit changes and which components are modified with each incremental change. This challenge can make it very difficult to return the model to its previous state neatly.

本出願では、モデル変更を効率的かつ簡潔で使い勝手の良い方法で行って評価するための方法、媒体、およびシステムについて説明する。実施形態例によれば、ユーザーがモデルを変更するとチェックポイントが作成され得る。変更は、複数のモデルを含み得る「設計セッション」と呼ばれる、特別なタイプの編集セッション内で行われ得る。各チェックポイントは、そのモデルに対して以前のチェックポイント以後に行われた変更、および以前のチェックポイントへの参照(例えば、ポインタ)を格納し得る。チェックポイントは、未修正のコンポーネントモデルへの(例えば、ローカルまたはリモート記憶装置上の)パスも含み得、それにより、以前のチェックポイント以後に修正されなかったモデルのコンポーネントが複製される必要がない。   This application describes methods, media and systems for performing and evaluating model changes in an efficient, concise and user-friendly manner. According to an example embodiment, a checkpoint may be created when a user changes the model. Changes can be made within a special type of editing session called a “design session” that can include multiple models. Each checkpoint may store changes made to the model since the previous checkpoint and references to the previous checkpoint (eg, pointers). Checkpoints can also include paths to unmodified component models (eg, on local or remote storage) so that components of models that have not been modified since the previous checkpoint need not be duplicated .

ユーザーは自由に、新しいチェックポイントを作成すること、以前のチェックポイントに戻ること、一連のチェックポイントを別のシーケンスに分けること、およびモデルの公式な作業バージョンとして使用されるモデルのチェックポイント化されたバージョンを選択することを行い得る。このように、ユーザーはモデルを容易に変更して、設計の変更または異なる潜在的な進化を評価でき、それと同時に、モデルの異なるバージョンを繰り返し保存する必要性を回避することにより記憶空間を節約できる。   Users are free to create new checkpoints, return to previous checkpoints, split a series of checkpoints into separate sequences, and checkpoint a model that is used as the official working version of the model. You can select the version you want. In this way, users can easily change models to evaluate design changes or different potential evolutions, while at the same time saving storage space by avoiding the need to repeatedly save different versions of the model .

実施形態例によれば、設計セッションに対してチェックポイントを作成する要求が受信され得る。上述のように、設計セッションは1つ以上のモデルを含み得る。設計セッション内のモデル(複数可)の以前の状態が識別され得、以前に保存された状態以後にモデル(複数可)に対して行われた変更のリストが取得され得る。チェックポイントが作成され得、そのチェックポイントは、モデル(複数可)の以前に保存された状態への参照および以前に保存された状態以後に変更されたコンポーネントモデルのリストを含む。モデルの以前に保存された状態への参照は、例えば、第2のチェックポイントへのポインタおよび/または未変更のコンポーネントモデルへのポインタであり得る。   According to an example embodiment, a request to create a checkpoint for a design session may be received. As described above, a design session may include one or more models. A previous state of the model (s) in the design session can be identified and a list of changes made to the model (s) since the previously saved state can be obtained. A checkpoint may be created, which includes a reference to the previously saved state of the model (s) and a list of component models that have changed since the previously saved state. The reference to the previously saved state of the model can be, for example, a pointer to a second checkpoint and / or a pointer to an unchanged component model.

変更されたコンポーネントモデルのリストは、明示的な変更および派生的な変更の影響を受けたコンポーネントモデルを含み得る。いくつかの実施形態では、モデルの第1のコンポーネントを変更するための命令が受信され得る。モデルは、命令に基づいて変更されて、モデルに対する明示的な変更となり得る。モデルの第2のコンポーネントモデルに対する派生的な変更が識別され得る。派生的な変更は明示的な変更から生じ得、第2のコンポーネントモデルを変更するためのユーザー命令ではなく、代わりに(例えば)第1のコンポーネントモデルと第2のコンポーネントモデルとの間のパラメータ関係に起因し得る。   The list of changed component models may include component models that are affected by explicit and derivative changes. In some embodiments, instructions for changing the first component of the model may be received. The model can be changed based on the instructions, resulting in an explicit change to the model. Derivative changes to the second component model of the model can be identified. Derivative changes can result from explicit changes, not user instructions to change the second component model, but instead (for example) the parameter relationship between the first component model and the second component model Can be attributed to

一実施形態では、チェックポイントが設計セッション内で作成され得る。設計セッションに入ると、1つ以上の基本モデルが識別され得る。基本モデルは、設計セッション中に編集される未変更モデルであり得る。基本モデルを含むエントリチェックポイントが作成され得る。後続のチェックポイントが作成されて、ツリー構造内に格納され得、この場合、エントリチェックポイントがツリー構造のルートを表す。   In one embodiment, checkpoints can be created within a design session. Upon entering the design session, one or more basic models may be identified. The base model can be an unmodified model that is edited during the design session. An entry checkpoint can be created that includes a basic model. Subsequent checkpoints can be created and stored within the tree structure, where the entry checkpoint represents the root of the tree structure.

基本モデルおよびチェックポイント(複数可)が、第1のコンピュータ上の設計ファイル内に格納され得る。設計ファイルは、第2のコンピュータに配信され得、第2のコンピュータ上でオープンされて、そのチェックポイントと一致したモデルを作成するために使用され得る。   The basic model and checkpoint (s) can be stored in a design file on the first computer. The design file can be distributed to a second computer and opened on the second computer and used to create a model consistent with the checkpoint.

さらなる実施形態例によれば、モデルが、保存されたチェックポイントと一致する状態に復元され得る。例えば、モデルを保存された状態に戻す要求が受信され得る。保存された状態と一致したチェックポイントが取得され得、そのチェックポイントは、以前のチェックポイントへの参照および/または未変更のコンポーネントモデルならびに以前のチェックポイント以後に変更されたコンポーネントモデルのリストを含む。以前のチェックポイントは、モデルの以前のバージョンを取得するために処理され得、変更されたコンポーネントモデルのリスト内のコンポーネントモデルが、モデルを要求された保存状態に戻すために以前のバージョンに適用され得る。   According to a further example embodiment, the model may be restored to a state that matches the saved checkpoint. For example, a request to return the model to a saved state can be received. A checkpoint can be obtained that matches the saved state, which includes a reference to a previous checkpoint and / or an unchanged component model and a list of component models that have changed since the previous checkpoint. . Previous checkpoints can be processed to obtain a previous version of the model, and the component model in the list of modified component models is applied to the previous version to return the model to the requested saved state. obtain.

以前のチェックポイントは、例えば、基本モデルに関連付けられたエントリチェックポイントであり得、この場合、その基本モデルがモデルの以前のバージョンとして使用される。代替または追加として、以前のチェックポイントは、第2の以前のチェックポイントへの参照、および以前のチェックポイントと第2の以前のチェックポイントとの間で、モデル内で変更されたコンポーネントモデルのリストを含み得る。一般に、モデルを保存された状態に戻すことは、エントリチェックポイントと関連付けられた基本モデルを取得すること、およびエントリチェックポイントと保存された状態に関連付けられたチェックポイントとの間の一連の1つ以上のチェックポイントを取得することを伴い得る。一連のチェックポイントは、1つ以上の変更されたコンポーネントモデルの集合を含み得る。変更されたコンポーネントモデルは、モデルを保存された状態に戻すために、基本モデルに適用され得る。   The previous checkpoint can be, for example, an entry checkpoint associated with the base model, in which case the base model is used as the previous version of the model. Alternatively or in addition, the previous checkpoint is a reference to the second previous checkpoint, and a list of component models that have changed in the model between the previous checkpoint and the second previous checkpoint. Can be included. In general, returning a model to a saved state involves obtaining a base model associated with the entry checkpoint and a series of ones between the entry checkpoint and the checkpoint associated with the saved state. It may involve acquiring the above checkpoints. A series of checkpoints may include a collection of one or more modified component models. The modified component model can be applied to the base model to return the model to a saved state.

いくつかの実施形態では、モデルを保存された状態に戻すことは、以前のチェックポイント以後に変更されたコンポーネントモデルだけを置き換え、一方、以前のチェックポイント以後に変更されなかったコンポーネントモデルを維持することを伴い得る。その結果、記憶空間および処理資源が節約され得る。   In some embodiments, returning the model to a saved state replaces only the component model that has changed since the previous checkpoint, while maintaining the component model that has not changed since the previous checkpoint. Can be accompanied. As a result, storage space and processing resources can be saved.

変更されたコンポーネントモデルのリストは、コンポーネントモデルを変更するための明確な命令に従った明示的な変更、ならびにモデルに関する1つ以上のパラメータ制約を満たすために明示的な変更の結果としてモデルおよび/またはモデルのコンポーネントに対して行われた派生的な変更によって変更されたコンポーネントモデルを含み得る。   The list of modified component models includes models and / or as a result of explicit changes in accordance with explicit instructions for changing the component model, and explicit changes to satisfy one or more parameter constraints on the model. Or it may include a component model that has been modified by derivative changes made to the components of the model.

さらなる実施形態では、第1の状態におけるモデルが提供され得、そのモデルは第1のコンポーネントを有する。モデルの第1の状態に対する1つ以上の変更が追跡され得る。例えば、明示的な変更を第1のコンポーネントに対して生じるための命令が識別され得、変更されたコンポーネントが変更されたコンポーネントのリストに記録される。第1のコンポーネントに関連付けられている関連コンポーネントが、関連コンポーネントに対する派生的な変更に基づいて識別され得る。派生的な変更は明示的な変更によって生じ得る。派生的な変更によって変更された関連コンポーネントが、変更されたコンポーネントのリストに記録され得る。変更されたコンポーネントのリストは、チェックポイントを作成するために使用され得る。   In a further embodiment, a model in a first state may be provided, the model having a first component. One or more changes to the first state of the model may be tracked. For example, instructions for causing an explicit change to the first component may be identified, and the changed component is recorded in the list of changed components. A related component associated with the first component may be identified based on derivative changes to the related component. Derivative changes can be caused by explicit changes. Related components that have changed due to derivative changes may be recorded in the list of changed components. The list of changed components can be used to create a checkpoint.

関連コンポーネントは、様々な方法で識別され得る。例えば、関連コンポーネントは、そのモデルに関連したパラメータ制約を調べることによって識別され得る。代替または追加として、第1のコンポーネントは、他のコンポーネントへの連結について分析され得、その連結された他のコンポーネントは関連コンポーネントとして扱われ得る。   Related components may be identified in various ways. For example, related components can be identified by examining parameter constraints associated with the model. Alternatively or additionally, the first component can be analyzed for connections to other components, and the other connected components can be treated as related components.

一旦識別されると、関連コンポーネントの識別が、変更されたコンポーネントのリストと共に格納され得る。第1のコンポーネントも、パラメータ関係によって第1のコンポーネントに関連している関連コンポーネントのリストと共に格納され得る。   Once identified, the identification of the associated component can be stored along with the list of changed components. The first component may also be stored with a list of related components that are related to the first component by a parameter relationship.

実施形態例は、以下で説明する図面に関して、さらに詳細に説明される。
本願明細書は、例えば、以下の項目も提供する。
(項目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に記載のシステム。
Example embodiments are described in more detail with respect to the drawings described below.
This specification provides the following items, for example.
(Item 1)
A non-transitory computer readable storage medium storing instructions, wherein the instructions, when executed by a processor, are stored in the processor
Receiving a request to create a checkpoint for one or more models;
Identifying a previously saved state of the model;
Identifying one or more components that have changed in the model since the previously saved state of the model;
Creating a checkpoint, wherein the checkpoint is
A reference to the previously stored state of the model;
A list of the one or more components that have changed in the model since the previously saved state of the model;
Including, that and
The medium that causes
(Item 2)
The medium of claim 1, wherein the checkpoint further comprises content system cache information including the previously saved state of the model and parameters associated with the model.
(Item 3)
The instructions to the processor;
Entering the design session,
Identifying a basic model to be used as an unchanged model for the design session;
Creating an entry checkpoint consisting of the basic model;
The medium according to item 1, wherein the medium is further executed.
(Item 4)
Item 4. The medium of item 3, wherein the checkpoint is represented as a tree structure and the entry checkpoint represents a root of the tree structure.
(Item 5)
Save the basic model and the checkpoint in a design session file on a first computer
4. The medium of item 3, further storing instructions for.
(Item 6)
Opening the design session file on a second computer;
Creating a model on the second computer that matches the checkpoint;
6. The medium of item 5, further comprising instructions for performing.
(Item 7)
Receiving an instruction to modify a first component of the model;
Modifying the model based on the instructions to provide an explicit change to the model;
Identifying a derivative change to a second component of the model, wherein the derivative change results from the explicit change, and in a user instruction to modify the second component Not caused,
Storing references to the first component and the second component in the list of the one or more components that have changed in the model since the previously saved state of the model;
Item 4. The medium according to Item 1, further storing instructions for performing the operation.
(Item 8)
8. The medium of item 7, wherein the derivative change is based on a parameter relationship between the first component and the second component.
(Item 9)
The medium of item 1, wherein the reference to the previously saved state of the model includes a pointer to a second checkpoint.
(Item 10)
A method,
Receiving a request to return the model to a saved state, wherein the model includes a component;
Obtaining a checkpoint associated with the saved state, wherein the checkpoint is a reference to a previous checkpoint and a modified component in the model that has been modified since the previous checkpoint; Including a list of
Processing the previous checkpoint to compare the previous checkpoint with the current state of the model, wherein the processing is such that the component of the model is in the list of changed components; Including identifying, and
Modifying the component in the model based on a list of modified components to return the model to the saved state, wherein the application is performed using a processor of a computing device. And that
Including a method.
(Item 11)
Returning the model to the saved state replaces only the components of the model that have changed since the previous checkpoint, while any of the models that have not been changed since the previous checkpoint. The method of item 10, comprising maintaining the component.
(Item 12)
11. The method of item 10, wherein the previous checkpoint is an entry checkpoint associated with a basic model, and the basic model is used as the previous version of the model.
(Item 13)
Processing the previous checkpoint includes: a second previous checkpoint; and a list of components modified in the model between the previous checkpoint and the second previous checkpoint. 11. The method according to item 10, comprising obtaining.
(Item 14)
Returning the model to the stored state;
Getting the basic model associated with the entry checkpoint;
Obtaining a series of one or more checkpoints between the entry checkpoint and the checkpoint associated with the saved state, wherein the series of checkpoints has been modified by one or more Including a collection of components,
Identifying a component in the model corresponding to the changed component;
Replacing the identified component with the modified component relative to the base model;
The method according to item 10, comprising:
(Item 15)
The list of modified components is
A first component modified by an explicit change made to the model by an explicit instruction to change the model;
A second component modified by a derivative modification made to the model as a result of the explicit modification to satisfy one or more parameter constraints on the model;
The method according to item 10, comprising:
(Item 16)
A system,
A non-transitory computer readable storage medium storing a model in a first state, wherein the model in the first state includes a first component;
A processor programmed to track one or more changes made to the model in a first state, tracking the one or more changes;
Identifying an instruction that causes the first component to cause an explicit change;
Recording the explicit change in a list of changes;
Identifying a related component associated with the first component based on a derivative change to the associated component caused by the explicit change;
Receiving a request to create a checkpoint for the model;
Creating the checkpoint, wherein the checkpoint is
A reference to the previously saved state of the model;
A list of modified components including the first component and the associated component;
Including, that and
Including, processor and
With a system.
(Item 17)
The system of claim 16, wherein identifying the relevant component includes examining parameter constraints associated with the model.
(Item 18)
The system of claim 16, wherein tracking the one or more changes includes storing an identification of the related component along with the list of changed components.
(Item 19)
The system of claim 16, wherein the first component is stored with the list of related components.
(Item 20)
The system of claim 16, wherein identifying the relevant component comprises analyzing the first component for linkage to other features.

コンポーネントベースのモデリング環境におけるチェックポイント化の例を示す。An example of checkpointing in a component-based modeling environment is shown. コンポーネントベースのモデリング環境におけるチェックポイント化の例を示す。An example of checkpointing in a component-based modeling environment is shown. コンポーネントベースのモデリング環境におけるチェックポイント化の例を示す。An example of checkpointing in a component-based modeling environment is shown. コンポーネントベースのモデリング環境におけるチェックポイント化の例を示す。An example of checkpointing in a component-based modeling environment is shown. コンポーネントベースのモデリング環境におけるチェックポイント化の例を示す。An example of checkpointing in a component-based modeling environment is shown. コンポーネントベースのモデリング環境におけるチェックポイント化の例を示す。An example of checkpointing in a component-based modeling environment is shown. コンポーネントベースのモデリング環境におけるチェックポイント化の例を示す。An example of checkpointing in a component-based modeling environment is shown. 本明細書で説明する実施形態例での使用に適したモデリング環境例を示す。FIG. 4 illustrates an example modeling environment suitable for use with the example embodiments described herein. 実施形態例に従って、コンポーネント、組立体、またはモデルの設計変更を探索および評価するためのチェックポイントツリー例を示す。FIG. 4 illustrates an example checkpoint tree for searching and evaluating design changes for a component, assembly, or model, according to an example embodiment. 実施形態例に従い、コンポーネントベースのモデリング環境においてモデル内のコンポーネントに対する変更を追跡するための変更データベース例を示す。4 illustrates an example change database for tracking changes to components in a model in a component-based modeling environment, according to an example embodiment. 実施形態例に従って、チェックポイントを作成するための方法例を示す流れ図である。6 is a flow diagram illustrating an example method for creating a checkpoint according to an example embodiment. 実施形態例での使用に適したチェックポイントデータ構造例を示す。Fig. 4 illustrates an example checkpoint data structure suitable for use in an example embodiment. 実施形態例に従い、コンポーネント、組立体、またはモデルをチェックポイントから復元するための方法例を示す流れ図である。5 is a flow diagram illustrating an example method for restoring a component, assembly, or model from a checkpoint according to an example embodiment. 本明細書で説明する実施形態例での使用に適したコンピューティング装置例を示す。FIG. 4 illustrates an example computing device suitable for use with the example embodiments described herein. FIG. 本明細書で説明する実施形態例での使用に適したネットワーク実施態様例を示す。FIG. 6 illustrates an example network implementation suitable for use with the example embodiments described herein.

議論を簡単にするために、本明細書を通して、具体例は、米国マサチューセッツ州ニーダム所在のPTC(登録商標)からのCreo(登録商標)製品群を参照して提示され得る。当業者であれば、本明細書で説明する実施形態例は、特定の製品群に制限されるのではなく、任意の適切なコンポーネントベースのモデリング環境で適用できることを理解するであろう。さらに、本出願では、コンポーネントモデルで構成されているモデルについて説明するが、本発明はそのように限定されないことに留意されたい。例えば、ユーザーは、それ自身がコンポーネントモデルを含んでいないモデルを操作して、それに対するチェックポイントを作成し得る。   For ease of discussion, throughout this specification, specific examples may be presented with reference to the Creo® product family from PTC®, Needham, Massachusetts. One skilled in the art will appreciate that the example embodiments described herein are not limited to a particular product family, but can be applied in any suitable component-based modeling environment. Furthermore, although this application describes a model that is composed of component models, it should be noted that the present invention is not so limited. For example, a user may manipulate a model that does not itself contain a component model and create a checkpoint for it.

コンポーネントベースのモデリング環境では、ユーザーは、モデルの形状を定義することによりモデルを構築し得る。モデルを構成する形状は、表面の集合から成り得、それは、接点で交わる縁部によって結合され得る。   In a component-based modeling environment, a user can build a model by defining the shape of the model. The shape that makes up the model can consist of a collection of surfaces that can be joined by edges that meet at the contacts.

形状はモデルのコンポーネントを表し得、それは、多種多様な形またはサイズをとることができる。表面、縁部、および接点の結合された集合が、モデル内のコンポーネントを定義し得、それは、コンポーネントベースのモデルが構築され得るスタンドアロン要素と見なすことができる。コンポーネントは、記憶媒体上のファイル内に格納されるモデルの分離可能な部分であり得、所与の上位レベルモデルに加わることができる。結合されたコンポーネントの集合は、組立体と呼ばれ得る。   A shape can represent a component of a model, which can take a wide variety of shapes or sizes. A combined set of surfaces, edges, and contacts can define a component in the model, which can be viewed as a stand-alone element on which a component-based model can be built. A component can be a separable part of a model stored in a file on a storage medium and can participate in a given higher level model. A collection of combined components can be referred to as an assembly.

形状に加えて、コンポーネントは、1つ以上のパラメータおよび、数学関数などの1つ以上の関係とも関連付けられ得る。パラメータおよび関係は、形状または寸法と形状との関係を定義し得る。コンポーネントは、2次元空間、3次元空間、またはその両方に関して定義され得る。   In addition to shapes, components can also be associated with one or more parameters and one or more relationships such as mathematical functions. Parameters and relationships may define shapes or dimensions and shapes relationships. Components can be defined in terms of a two-dimensional space, a three-dimensional space, or both.

コンポーネントベースのモデリング環境は、一般に、コンポーネントの形状を操作するためのツールを提供する。ツールの例には、2次元空間または3次元空間内で表面または表面の一部を動かす、押し出し(extrude)ツール、および表面またはコンポーネント全体を拡大または縮小するために、選択した縁部および接点を特定の方向に動かす、ストレッチツールが含まれる。   Component-based modeling environments generally provide tools for manipulating component shapes. Examples of tools include an extrude tool that moves a surface or part of a surface in 2D or 3D space, and selected edges and contacts to zoom in or out on the entire surface or component. Includes a stretch tool that moves in a specific direction.

ユーザーは、コンポーネントに対して変更を行うように(例えば、ツールの1つ、または一連のツールおよび/もしくは動作を適用することにより)モデリング環境に指示し得る。係る変更は、本明細書では明示的な変更と呼ぶ。明示的な変更は、変更されたコンポーネントとパラメータ関係によって関連しているモデルの別のコンポーネントにおいて派生的な変更も引き起こし得る。パラメータ関係は、それらのコンポーネントに関連付けられた1つ以上のパラメータに基づく2つ以上のコンポーネント間の関係であり得る。パラメータ関係は、2つ以上のコンポーネントを連結した結果として生じ得るか、またはパラメータ制約により(手動でまたは自動的に)定義され得る。パラメータ制約は、第1のコンポーネントのパラメータに関して、第2のコンポーネントのパラメータに対する限界を定義し得る。例えば、ユーザーは、椅子のモデルに対して、椅子の基部コンポーネントの幅が、椅子の座部コンポーネントのある割合もしくは比率(例えば、95%)、または割合もしくは比率のある範囲内であることを示すパラメータ制約を定義し得る。   A user may instruct the modeling environment to make changes to a component (eg, by applying one of a tool or a set of tools and / or actions). Such a change is referred to herein as an explicit change. An explicit change can also cause a derivative change in another component of the model that is related by a parameter relationship to the changed component. A parameter relationship may be a relationship between two or more components based on one or more parameters associated with those components. A parametric relationship can occur as a result of concatenating two or more components, or can be defined (manually or automatically) by parameter constraints. The parameter constraint may define a limit on the parameters of the second component with respect to the parameters of the first component. For example, the user may indicate to the chair model that the width of the base component of the chair is within a percentage or ratio (eg, 95%) of the chair seat component, or within a range of the percentage or ratio. Parameter constraints can be defined.

コンポーネントの形状を操作すると、コンポーネントに対して1つ以上の変更(明示的な変更または派生的な変更のいずれか)となり得る。ユーザーは、モデルにおける特定の変更の使用をコミットする前に、特定のコンポーネントまたは複数のコンポーネントに対する複数の異なる設計変更を評価することを望み得る。例えば、ユーザーは、モデルの1つのコンポーネントに対して明示的な変更を行って、その明示的な変更が望ましくない派生的な変更をもたらすかどうかを判断したいと望み得る。さらに、ユーザーは、異なる変更またはバージョンを、将来、その変更またはバージョンを再評価するために、検討から除かれた変更またはバージョンを含めて、保存することを望み得る。   Manipulating the shape of a component can result in one or more changes (either explicit or derivative) to the component. A user may wish to evaluate a number of different design changes for a particular component or components before committing the use of a particular change in the model. For example, a user may wish to make an explicit change to one component of the model to determine whether the explicit change results in an undesirable derivative change. Further, the user may wish to save different changes or versions, including changes or versions that have been removed from consideration for future reevaluation of the changes or versions.

その結果、本明細書で説明する実施形態例は、チェックポイントが作成できるようにする。チェックポイントは、異なる設計変更/バージョンを効率的な方法で捕捉し、評価する各変更/バージョンに対して、コンポーネントの組立体全体を新しいファイルに手動で保存するという手段を用いる必要なく、異なる設計変更/バージョンが迅速かつ容易に復元できるようにし得る。   As a result, the example embodiments described herein enable checkpoints to be created. Checkpoints capture different design changes / versions in an efficient manner, and for each change / version you evaluate, you do not have to use the means of manually saving the entire assembly of components in a new file. Changes / versions can be quickly and easily restored.

チェックポイントは、コンポーネントベースのモデリング環境のセッション中に作成され得る。セッションは、モデルが操作され得る期間を表し得る。複数のファイルに保存された複数のモデルが単一のセッション内で操作され得、複数の異なるセッションが一度にアクティブであり得る。セッションは、ユーザーにより、セッションを開始/終了するようにモデリング環境に指示することによって、手動で開始および/または終了され得る。代替または追加として、セッションは、ある条件が生じると(例えば、コンポーネントベースのモデリング環境の起動またはクローズ)自動的に開始または終了され得る。   Checkpoints can be created during a session of a component-based modeling environment. A session may represent a period of time during which the model can be manipulated. Multiple models stored in multiple files can be manipulated within a single session, and multiple different sessions can be active at one time. A session can be manually started and / or ended by the user by instructing the modeling environment to start / end the session. Alternatively or additionally, a session can be automatically started or ended when certain conditions occur (eg, launching or closing a component-based modeling environment).

本明細書で説明するいくつかの実施形態例では、設計セッションと呼ばれる特別なタイプのセッションが開始および終了され得る。設計セッションは、モデルが様々な方法で変更され得る期間を表し得、その変更は、モデルのコンポーネントの異なるバージョンを作成するためにチェックポイント化され得る。チェックポイントのうちの1つ以上が、モデル設計の公式バージョン(複数可)として選択され得、一般セッションにおいてモデルに組み込まれ得る。異なるバージョンが設計セッションファイルに保存され得、設計セッションファイルは、同じか、または異なるコンピュータ上のユーザー間で共有されて、その異なるバージョンが設計チームによって検討および評価できるようにし得る。   In some example embodiments described herein, a special type of session called a design session may be initiated and terminated. A design session may represent a period of time during which a model can be changed in various ways, and the changes can be checkpointed to create different versions of the components of the model. One or more of the checkpoints can be selected as the official version (s) of the model design and can be incorporated into the model in a general session. Different versions can be stored in the design session file, which can be shared among users on the same or different computers so that the different versions can be reviewed and evaluated by the design team.

設計セッションで作成されたチェックポイントは、変更されたモデル(例えば、設計セッション中に試された異なるバージョンまたは変更)を含むか、またはそれらを指し得る。いくつかの実施形態では、変更されたモデルは、設計セッション内でのみ見つかり得る(例えば、変更されたモデルおよび設計セッション情報は、特別な設計セッションファイルまたは一時的な実行時抽出フォルダ内に保存され得る)。   Checkpoints created in a design session may include or point to modified models (eg, different versions or changes tried during the design session). In some embodiments, the modified model can only be found within the design session (e.g., the modified model and design session information is stored in a special design session file or temporary runtime extraction folder). obtain).

チェックポイント化は、必ずしも指定された設計セッション内で行われる必要はなく、コンポーネントベースのモデリング環境に一般的に適用可能であり得ることが理解される。加えて、説明を簡単にするために、設計セッション内で編集されている単一モデルに関して、以下で例を説明する。しかし、本発明は、設計セッション内での単一モデルの使用に限定されず、当業者は、複数のモデルが単一の設計セッション内で表され得ることを理解するであろう。   It will be appreciated that checkpointing does not necessarily have to occur within a designated design session and may be generally applicable to component-based modeling environments. In addition, for ease of explanation, examples are described below with respect to a single model being edited within a design session. However, the present invention is not limited to the use of a single model within a design session, and those skilled in the art will appreciate that multiple models can be represented within a single design session.

コンポーネントベースのモデリング環境でのチェックポイント化の使用は、非制限的な例を参照すると、さらに明瞭に理解されるであろう。図1A〜図1Gは、係る環境で使用されているチェックポイント化の一例を示す。   The use of checkpointing in a component-based modeling environment will be more clearly understood with reference to a non-limiting example. 1A-1G show an example of checkpointing used in such an environment.

図1Aに示すように、モデル110が、モデリング環境で作成され得る。モデル110は、様々なコンポーネントで構成された物理的モデルであり得る。図1Aの例では、モデル110は、他のコンポーネントの中でとりわけ、2つの肘掛けコンポーネント112、4つの車輪コンポーネント114、および基部コンポーネント116を有する椅子を表す。   As shown in FIG. 1A, a model 110 may be created in a modeling environment. The model 110 can be a physical model composed of various components. In the example of FIG. 1A, the model 110 represents a chair having two armrest components 112, four wheel components 114, and a base component 116, among other components.

モデリング環境は、コンポーネントリスト118も含み得、コンポーネントが、モデル110内で選択、表示、取込み、置換、または削除されるのを可能にする。モデリング環境は、現在のセッション内で作成されたチェックポイントを表示するチェックポイントツリー表現120もサポートし得る。   The modeling environment may also include a component list 118 that allows components to be selected, displayed, captured, replaced, or deleted within the model 110. The modeling environment may also support a checkpoint tree representation 120 that displays checkpoints created within the current session.

チェックポイントツリー表現120は、チェックポイントの階層を含み得る。チェックポイントは、データベース内に階層的に格納され得る。チェックポイントツリー表現120は、データベースからのチェックポイントを、他の可能性の中でとりわけ、フラットタイムラインとして(潜在的に、チェックポイントの異なるシーケンスを表すために、異なる色などの、視覚的に区別する特徴と共に)、またはツリーとして、表示し得る。チェックポイントがツリーとして表示される場合、そのツリーはチェックポイントシーケンスまたは分岐の階層として編成され得、この場合、分割ポイントは拡張可能なノードになり得る。分岐は、主分岐として表示し、かつ/またはグラフィック空間を節約するために垂直にリストするように、切替え可能であり得る。   The checkpoint tree representation 120 may include a checkpoint hierarchy. Checkpoints can be stored hierarchically in the database. The checkpoint tree representation 120 represents checkpoints from the database as a flat timeline (potentially, different colors, etc. to represent different sequences of checkpoints, among other possibilities). (With distinguishing features) or as a tree. When checkpoints are displayed as a tree, the tree can be organized as a hierarchy of checkpoint sequences or branches, in which case the split points can be expandable nodes. The branches may be switchable to display as main branches and / or to list vertically to save graphics space.

チェックポイントツリー表現120は、モデル110の初期構成を表すエントリチェックポイント122を含み得る。例えば、エントリチェックポイント122は、現在のセッションが開始した時のモデルの状態を表し得る。モデルのこの初期状態は基本モデルと呼ばれ得る。   Checkpoint tree representation 120 may include entry checkpoints 122 that represent the initial configuration of model 110. For example, the entry checkpoint 122 may represent the state of the model when the current session starts. This initial state of the model can be called the basic model.

セッション中、モデル110は、図1Bに示すように、変更され得る。この例では、肘掛けコンポーネント112が、座ではなく、椅子の背もたれに連結するように変更されている。   During the session, the model 110 may be changed as shown in FIG. 1B. In this example, the armrest component 112 is modified to connect to the back of the chair, not the seat.

モデル110に対して変更が行われると、ユーザーは、モデル110の現在の状態を表すチェックポイントを作成し得る。図1Cに示されるように、チェックポイントを作成するようにモデリング環境に指示すると、モデリング環境は、現在のチェックポイントに関する情報を入力するためのチェックポイントダイアログ124を表示し得る。チェックポイントダイアログは、チェックポイントツリー表現120内に表示されるチェックポイント名126、チェックポイントツリー表現120内の異なるチェックポイントの間でユーザーが検索できるようにする検索可能なキーワード128、および将来の参照のためにユーザーがチェックポイントを記述できるようにするチェックポイントコメント130を作成するためのフィールドを含み得る。   As changes are made to the model 110, the user may create a checkpoint that represents the current state of the model 110. As shown in FIG. 1C, when instructing the modeling environment to create a checkpoint, the modeling environment may display a checkpoint dialog 124 for entering information regarding the current checkpoint. The checkpoint dialog includes a checkpoint name 126 displayed in the checkpoint tree representation 120, a searchable keyword 128 that allows the user to search between different checkpoints in the checkpoint tree representation 120, and future references. May include a field for creating a checkpoint comment 130 that allows the user to describe the checkpoint.

図1Dに示すように、新しいチェックポイントの作成後、チェックポイント132が、チェックポイントツリー表現120内に示され得る。ユーザーは、次に、その新しいチェックポイントからモデル110の編集を継続し得るか、または異なる設計変更を探索するために異なるチェックポイントに戻り得る。   As shown in FIG. 1D, after creating a new checkpoint, checkpoint 132 may be shown in checkpoint tree representation 120. The user can then continue editing the model 110 from the new checkpoint or return to a different checkpoint to search for different design changes.

図1Eに示す例では、ユーザーは、第1のチェックポイントからモデル110の編集を継続する。この場合、ユーザーは、第5の車輪コンポーネント114を含めるようにモデル110を変更した。ユーザーは、更新された肘掛けコンポーネント112および更新された車輪コンポーネント114をもつモデルの状態を捕捉する第2のチェックポイント134を作成し得る。   In the example shown in FIG. 1E, the user continues to edit the model 110 from the first checkpoint. In this case, the user has changed the model 110 to include the fifth wheel component 114. The user may create a second checkpoint 134 that captures the state of the model with the updated armrest component 112 and the updated wheel component 114.

ユーザーが、以前に保存したチェックポイント(例えば、第1のチェックポイント132)に戻りたい場合、そのチェックポイントは、チェックポイントツリー表現120内で選択され得る。図1Fに示すように、以前のチェックポイントを選択すると、復元オプション136が表示され得る。ユーザーが復元オプション136を選択すると、モデル110が、以前のチェックポイントと一致した状態に復元され得る。この場合、第1のチェックポイント132に関連した復元オプション136が選択されると、モデル110は、第1のチェックポイント132と一致した状態(例えば、図1Bに示されるようなモデル110の状態)に戻されるであろう。   If the user wants to return to a previously saved checkpoint (eg, first checkpoint 132), that checkpoint may be selected in checkpoint tree representation 120. As shown in FIG. 1F, upon selecting a previous checkpoint, a restore option 136 may be displayed. If the user selects the restore option 136, the model 110 may be restored to a state consistent with the previous checkpoint. In this case, when the restore option 136 associated with the first checkpoint 132 is selected, the model 110 is in a state consistent with the first checkpoint 132 (eg, the state of the model 110 as shown in FIG. 1B). Will be returned to.

チェックポイントは、互いに別々に保存され得るか、またはチェックポイントの階層が作成され得る。例えば、ユーザーが第1のチェックポイント132から開始して、モデル110をさらに変更する場合、入れ子になったチェックポイントが第1のチェックポイント132の下に作成され得る。図1Gでは、ユーザーは、より大きい基部コンポーネント116を組み込むために、第1のチェックポイント132からモデル110を変更した。入れ子になったチェックポイント138が第1のチェックポイント132の下に作成されて、チェックポイントツリー表現120内に示されている。チェックポイントをこのように入れ子にすることは、チェックポイント間の関係の視覚的表示を提供するのに有用であり得る。チェックポイントを階層として表すことにより、設計変更およびプロセスがより正確かつ効率的に捕捉され得る。例えば、階層内の異なる分岐は、設計プロセスにおける分割および/またはモデルにおける変更の異なるシーケンスを表すために使用され得る。   Checkpoints can be stored separately from one another, or a checkpoint hierarchy can be created. For example, if the user starts at the first checkpoint 132 and further modifies the model 110, a nested checkpoint may be created under the first checkpoint 132. In FIG. 1G, the user has changed the model 110 from the first checkpoint 132 to incorporate a larger base component 116. A nested checkpoint 138 is created under the first checkpoint 132 and shown in the checkpoint tree representation 120. Nesting checkpoints in this way can be useful to provide a visual indication of the relationship between checkpoints. By representing checkpoints as a hierarchy, design changes and processes can be captured more accurately and efficiently. For example, different branches in the hierarchy can be used to represent different sequences of divisions in the design process and / or changes in the model.

ユーザーは、また、もはや必要ないチェックポイントを削除し得る。チェックポイント階層内のチェックポイントが削除されると、削除されたチェックポイント内の情報(保存されたコンポーネントモデルおよび以前のチェックポイントへの参照など)が、削除されたチェックポイントを除去する前に、後のチェックポイントと統合され得る。従って、チェックポイントのツリー構造が、情報を失うことなく維持され得る。   The user may also delete checkpoints that are no longer needed. When a checkpoint in the checkpoint hierarchy is deleted, the information in the deleted checkpoint (such as saved component models and references to previous checkpoints) is removed before the deleted checkpoint is removed. Can be integrated with later checkpoints. Thus, the checkpoint tree structure can be maintained without loss of information.

図2は、チェックポイントの作成および管理のためのモデリング環境例200を示す。モデリング環境200の一例は、米国マサチューセッツ州ニーダム所在のPTC Inc.のCreo(登録商標)Parametricである。モデリング環境200は、ローカルコンピューティング装置上に常駐し得るか、またはネットワークを通してアクセスされ得る。   FIG. 2 illustrates an example modeling environment 200 for checkpoint creation and management. An example of a modeling environment 200 is PTC Inc., located in Needham, Massachusetts. Creo® Parametric. Modeling environment 200 may reside on a local computing device or be accessed through a network.

モデル110は、モデリング環境200内に存在し得る。モデル110は、1つ以上の組立体を含み得、各組立体は1つ以上のコンポーネントモデルで構築されている。モデリング環境200は、モデル110を変更するためのツールを提供し得る。   The model 110 may exist within the modeling environment 200. The model 110 may include one or more assemblies, each assembly being constructed with one or more component models. Modeling environment 200 may provide a tool for modifying model 110.

モデル110が変更されると、そのモデルは1つ以上の変更されたコンポーネント212、および1つ以上の未変更のコンポーネント214を含み得る。モデリング環境200は、後述のチェックポイントを作成するために、どのコンポーネントが変更されて、どのコンポーネントが変更されていないかを追跡し得る。どのコンポーネントが変更されていて、それらのコンポーネントがどのように変更されたかを追跡するために、モデリング環境200は、変更を検出するための変更論理220を含み得る。例えば、変更論理220は、モデリング環境200への着信命令を分析して、どの命令がコンポーネントの形状を変更して、変更されたコンポーネント212をもたらしたかを判断し得る。代替または追加として、変更論理220は、定期的に、コンポーネントの現在のバージョンをコンポーネントの以前のバージョンと比較し得る。現在のバージョンが以前のバージョンと一致しない場合、変更論理はそのコンポーネントを変更されたものとして記録し得る。   When the model 110 is changed, the model may include one or more changed components 212 and one or more unchanged components 214. The modeling environment 200 may track which components have changed and which have not changed in order to create checkpoints described below. In order to keep track of which components have changed and how those components have changed, the modeling environment 200 may include change logic 220 for detecting changes. For example, the change logic 220 may analyze incoming instructions to the modeling environment 200 to determine which instructions have changed the shape of the component resulting in the changed component 212. Alternatively or additionally, the change logic 220 may periodically compare the current version of the component with the previous version of the component. If the current version does not match the previous version, the change logic may record the component as changed.

コンポーネントの形状および/またはコンポーネントの互いに対する配置の変更が、変更論理220によって変更データベース230内に記録され得る。変更データベース230は、変更されたコンポーネント212の結果として生じた形状に関する情報だけでなく、モデルに対する変更のリストも含み得る。   Changes in the shape of components and / or the placement of components relative to each other may be recorded in the change database 230 by the change logic 220. The change database 230 may include a list of changes to the model as well as information about the resulting shape of the changed component 212.

ユーザーは、いつでも、モデル110に対して(および/またはセッション内で編集された複数のモデル110に対して)チェックポイントを作成するためにモデリング環境200に指示し得る。代替または追加として、モデリング環境200は自動的に(例えば、設計セッションの開始などの所定の事象の発生時、または所定の時間間隔で)チェックポイントを作成し得る。このように、モデリング環境200は、チェックポイント250がどのように作成されるかを定義するためのチェックポイント論理240を含み得る。   A user may direct the modeling environment 200 to create a checkpoint at any time for the model 110 (and / or for multiple models 110 edited within a session). Alternatively or additionally, the modeling environment 200 may automatically create checkpoints (eg, at the occurrence of a predetermined event, such as the start of a design session, or at a predetermined time interval). As such, the modeling environment 200 may include checkpoint logic 240 for defining how the checkpoint 250 is created.

モデル110の現在の状態に対するチェックポイント252、254が作成されると、チェックポイント252、254はチェックポイントデータベース内に格納され得る。モデリング環境200は、チェックポイント復元論理260をさらに含み得、それは、チェックポイントデータベースから1つ以上のチェックポイント250を取得して、モデル110をその取得されたチェックポイント(複数可)と一致した状態に復元し得る。   Once checkpoints 252 and 254 are created for the current state of model 110, checkpoints 252 and 254 may be stored in a checkpoint database. The modeling environment 200 may further include checkpoint restoration logic 260, which obtains one or more checkpoints 250 from a checkpoint database and matches the model 110 with the obtained checkpoint (s). Can be restored.

チェックポイントツリー内に階層的に配置されたチェックポイント250の一例が図3に示されている。図3に示すように、1つの組立体が複数の組立体バージョン310に関連付けられ得、各組立体バージョン310は、組立体の状態およびその組立体を構成するコンポーネントを表している。各組立体バージョン310は、設計セッション内で定義された1つ以上の下位バージョン320とも関連付けられ得る。図3は、ユーザーが、組立体のバージョン3を作成するために、組立体のバージョン2で作業している例を示す。   An example of checkpoints 250 arranged hierarchically in the checkpoint tree is shown in FIG. As shown in FIG. 3, an assembly may be associated with multiple assembly versions 310, each assembly version 310 representing the state of the assembly and the components that make up the assembly. Each assembly version 310 may also be associated with one or more subversions 320 defined within the design session. FIG. 3 shows an example in which the user is working with version 2 of the assembly to create version 3 of the assembly.

図3に示すように、組立体の初期バージョン(バージョン2)が設計セッションに取り込まれて、その設計セッションに対する初期の「変更前」基本モデル330として使用される。設計セッションの開始時にエントリチェックポイント340が作成され得、そのエントリチェックポイント340は基本モデル330を格納して、チェックポイント250のツリーのルートとして機能する。複数のチェックポイント250は、ユーザーがモデルを編集すると作成され得、ユーザーは、組立体に対する次の下位バージョン320として使用されるチェックポイントの1つを選択し得る。   As shown in FIG. 3, the initial version of the assembly (version 2) is taken into the design session and used as the initial “before change” base model 330 for that design session. An entry checkpoint 340 may be created at the start of the design session, which stores the basic model 330 and serves as the root of the checkpoint 250 tree. Multiple checkpoints 250 can be created when the user edits the model, and the user can select one of the checkpoints to be used as the next lower version 320 for the assembly.

図3に示す例では、ユーザーは、基本モデル330を変更して第1のチェックポイントを作成し、第1のチェックポイントに関連付けられたモデルを3つの異なる方法で変更して、第2、第3、および第4のチェックポイントを作成した。ユーザーは次いで、第2のチェックポイントに戻って、そのチェックポイントを第5のチェックポイントに対する基礎として使用し、その後、第3のチェックポイントに戻って、そのチェックポイントを第6のチェックポイントに対する基礎として使用した。このプロセスを継続して、最終的に、ユーザーは、第6のチェックポイントが次の公式の下位バージョン320として使用されるそのモデルのバージョンを表すと決定した。ユーザーはさらに下位バージョン320を通して繰り返した可能性があるが、ユーザーは、この下位バージョン320が満足のいくものであると決定して、この下位バージョンをその組立体の公式なバージョン(バージョン3)とした。   In the example shown in FIG. 3, the user changes the basic model 330 to create a first checkpoint, changes the model associated with the first checkpoint in three different ways, 3 and 4 checkpoints were created. The user then returns to the second checkpoint and uses that checkpoint as the basis for the fifth checkpoint, and then returns to the third checkpoint and uses that checkpoint as the basis for the sixth checkpoint. Used as. Continuing this process, ultimately, the user determined that the sixth checkpoint represents the version of that model that will be used as the next official subversion 320. The user may have iterated further through the lower version 320, but the user decides that the lower version 320 is satisfactory and replaces this lower version with the official version of the assembly (version 3). did.

従来のコンポーネントベースのモデリングシステムでは、モデルは、実行時にロードされるファイルとして格納され得る。ユーザーがモデルに対して変更を行うと、新しいファイルがその変更されたコンポーネントに対して作成され得、それも(別のファイル)に格納され得る。その結果、上述した例では、ユーザーは、示された14のチェックポイントバージョンの各々に対して複数の異なるモデル保存ファイルを作成した可能性がある。   In conventional component-based modeling systems, models can be stored as files that are loaded at runtime. As the user makes changes to the model, a new file can be created for the changed component, which can also be stored in (another file). As a result, in the example described above, the user may have created multiple different model save files for each of the 14 checkpoint versions shown.

モデルの以前のバージョンを復元するために、モデル内のコンポーネントに関連付けられたモデルファイルの各々が再ロードされて、コンポーネントが再生成される必要があり得る。例えば、モデルの要求されたバージョン内のコンポーネントに関連付けられたファイルが記憶装置から取得されて、モデルの新しいインメモリバージョンを作成するために処理される必要があり得る。上述の例では、14の異なるバージョンの各々を評価するために、ユーザーは、選択されたバージョンに対する保存ファイル(複数可)をロードした可能性があり、それは、モデル全体およびその構成コンポーネントの全てを再ロードしたかもしれない。これは、記憶装置および処理資源の両方を大量に消費する。   In order to restore a previous version of the model, each of the model files associated with the components in the model may need to be reloaded and the components regenerated. For example, files associated with components in the requested version of the model may need to be retrieved from storage and processed to create a new in-memory version of the model. In the above example, in order to evaluate each of the 14 different versions, the user may have loaded the saved file (s) for the selected version, which is the entire model and all of its constituent components. May have reloaded. This consumes a large amount of both storage and processing resources.

しかし、図3に示すチェックポイント250は、以前のチェックポイント以後に変更されたモデルコンポーネントのみを保存および復元するために、変更データベース230内の情報を活用することができる。例えば、モデルの現在のバージョンと異なるチェックポイント内のコンポーネントのみに関連するファイルを取得した後、そのモデルの現在のインメモリバージョンが、変更されたコンポーネントのみを使用して更新できる。これは、モデルを構成するコンポーネントファイルの全てを必ずしもロードする必要がなく、また、モデル全体を再生成する必要もないので、かなりの処理資源を節約し得る。   However, the checkpoint 250 shown in FIG. 3 can utilize information in the change database 230 to save and restore only model components that have changed since the previous checkpoint. For example, after obtaining files that relate only to components in a checkpoint that are different from the current version of the model, the current in-memory version of the model can be updated using only the changed components. This can save considerable processing resources because not all of the component files that make up the model need to be loaded and the entire model need not be regenerated.

いくつかの実施形態では、変更されたコンポーネントへの参照(例えば、ポインタ)がチェックポイント内に保存され得、各チェックポイントを格納するために必要な記憶空間の量をさらに削減する。変更データベース230によって識別されるように変更されたコンポーネントのみを保存および処理することにより、チェックポイントは、従来のバックアップ技法よりも少量の情報を格納および処理する。変更データベース230の一例を図4に示す。   In some embodiments, references to changed components (eg, pointers) can be stored within the checkpoints, further reducing the amount of storage space required to store each checkpoint. By storing and processing only those components that have been modified as identified by the change database 230, Checkpoint stores and processes a smaller amount of information than traditional backup techniques. An example of the change database 230 is shown in FIG.

図4に示すように、モデルのコンポーネントのうちの1つの形状に対する変更となる命令がモデリング環境によって受信される度に、その命令に関する情報が変更410として変更データベース230内に格納され得る。追加として、命令により派生的な変更が生じる(例えば、パラメータ関係またはパラメータ制約に起因して)場合、派生的な変更も変更410として変更データベース230内に記録され得る。   As shown in FIG. 4, each time an instruction that results in a change to one of the components of the model is received by the modeling environment, information about that instruction may be stored in the change database 230 as a change 410. Additionally, if the instruction causes a derivative change (eg, due to a parameter relationship or parameter constraint), the derivative change may also be recorded in the change database 230 as a change 410.

変更410は、命令に起因する、1つ以上の形状変更412を含み得る。形状変更412は、例えば、変更によって影響を受ける特徴の記述、または縁部、接点、および表面を含み得る。形状変更412は、変更に起因した新しい形状に関する情報を含み得、形状の以前の状態に関する情報を含み得、かつ/または古い形状から新しい形状へどのように変わるかに関する情報を含み得る。   The change 410 may include one or more shape changes 412 due to the instructions. Shape change 412 may include, for example, a description of features affected by the change, or edges, contacts, and surfaces. The shape change 412 may include information regarding the new shape due to the change, may include information regarding the previous state of the shape, and / or may include information regarding how the old shape changes to the new shape.

変更410は、変更によって影響を受ける、影響を受けるコンポーネントのリスト414をさらに含み得る。影響を受けるコンポーネント414は、変更によって直接変更されたコンポーネントを含み得、かつ、派生的な変更が現在の変更の結果として実行され得る関連コンポーネントのリストを含み得る。関連コンポーネントは、例えば、そのモデルに関連付けられたパラメータ関係を検査することにより、かつ/またはモデル内の変更されたコンポーネントと連結されたコンポーネントを分析することにより識別され得る。   The change 410 may further include a list 414 of affected components that are affected by the change. Affected components 414 can include components that have been directly modified by the change, and can include a list of related components for which derivative changes can be performed as a result of the current change. Related components may be identified, for example, by examining parameter relationships associated with the model and / or by analyzing components that are linked to changed components in the model.

変更410は、変更が行われた時刻を記述するタイムスタンプ416などの管理情報(および潜在的に、変更が行われたセッションに関する詳細を提供するセッション情報)をさらに含み得る。変更410は、アクティブなチェックポイント418も含み得、変更が行われた時にどのチェックポイントが編集されていたかを示す。   The change 410 may further include management information (and potentially session information that provides details about the session in which the change was made), such as a time stamp 416 that describes the time at which the change was made. The change 410 may also include an active checkpoint 418 indicating which checkpoint was being edited when the change was made.

さらなる変更420が、同様の方法で、変更データベース内に記録され得る。   Further changes 420 can be recorded in the change database in a similar manner.

変更データベース230内の変更がチェックポイントを作成するために使用され得る。チェックポイントを作成するためのプロセス例を図5の流れ図に示す。   Changes in the change database 230 can be used to create checkpoints. An example process for creating a checkpoint is shown in the flowchart of FIG.

ステップ510において、設計セッションが開始され得る。設計セッションは、コンポーネントベースのモデリングアプリケーションが起動された場合、もしくは新しいコンポーネントがモデリング環境に取り込まれた場合などに、自動的に開始され得るか、またはユーザーが設計セッションを開始するように(例えば、設計セッションに入るメニューオプションを選択することにより)モデリング環境に指示した場合などに、手動で開始され得る。   In step 510, a design session may be initiated. A design session can be started automatically, such as when a component-based modeling application is launched, or a new component is brought into the modeling environment, or so that the user initiates a design session (e.g., It can be initiated manually, such as when instructing the modeling environment (by selecting a menu option to enter a design session).

任意選択として、設計セッションが設計セッションファイルからロードされ得る。この場合、設計セッションファイル内に格納された任意のチェックポイントがモデリング環境に取り込まれて、チェックポイントツリー内に表示され得る。   Optionally, a design session can be loaded from a design session file. In this case, any checkpoint stored in the design session file can be captured in the modeling environment and displayed in the checkpoint tree.

ステップ515で、設計セッションの開始後、モデリング環境は、任意のアクティブなモデルの現在の状態をモデリング環境内に基本モデルとして格納し得る。1つのセッション中にアクティブな2つ以上のモデルが存在し得る。基本モデルは、設計セッションの開始時に存在していたので、モデルの未変更のバージョンを表し得る。基本モデルの表現から成るエントリチェックポイントが(変更なしで)、このステップで作成され得る。   At step 515, after the start of the design session, the modeling environment may store the current state of any active model as a basic model in the modeling environment. There can be more than one model active during a session. Since the base model existed at the start of the design session, it can represent an unmodified version of the model. An entry checkpoint consisting of a representation of the basic model can be created at this step (without modification).

基本モデルのコンポーネントが、モデリング環境に関連付けられた1つ以上の記憶装置上に既に存在する場合があり得る。この場合、そのコンポーネントを基本モデルとして(再度)保存することは不必要であり得る。従って、実施形態例によれば、設計セッションの開始時に、モデリング環境は、コンポーネントの組立体の初期状態を基本モデルとして格納し得る。これは、各コンポーネントを個々に保存することによってではなく、モデリング環境にロードされた記憶装置(複数可)上の全ての初期コンポーネントファイルへのリンク(例えば、ポインタ)を保存することによって、達成され得る。モデリング環境は、コンポーネントをモデリング環境にロードした後に変更されたコンポーネントのみをディスクに保存し得る。   It is possible that the components of the basic model already exist on one or more storage devices associated with the modeling environment. In this case, it may be unnecessary to save the component as a basic model (again). Thus, according to example embodiments, at the start of a design session, the modeling environment may store the initial state of the assembly of components as a basic model. This is accomplished by saving links (eg, pointers) to all initial component files on the storage device (s) loaded into the modeling environment rather than saving each component individually. obtain. The modeling environment may save only those components that have changed since the component was loaded into the modeling environment to disk.

いくつかの実施形態では、基本モデルファイル(複数可)または基本モデルファイル(複数可)へのポインタがエントリチェックポイント内に格納され得、エントリチェックポイントは設計セッションに関連付けられた設計セッションファイル内に格納され得る。システムは、階層的な方法で基本モデルファイル(複数可)を検索し得る。例えば、基本モデルファイル(複数可)の検索時、システムはまず、変更前モデルを探すために設計セッションファイルを検索し得る。変更前のモデルファイル(複数可)が設計セッションファイル内で見つからない場合、システムは、現在の作業フォルダまたはモデルワークスペースをチェックし、次いで、定義された検索パス内を検索し得る。モデルファイル(複数可)が見つからない場合、ユーザーに対してインタフェースが提示されて、ユーザーが手動でブラウズしてモデルファイル(複数可)を検索できるようにし得る。   In some embodiments, the base model file (s) or a pointer to the base model file (s) may be stored in an entry checkpoint, and the entry checkpoint is in the design session file associated with the design session. Can be stored. The system may retrieve the basic model file (s) in a hierarchical manner. For example, when searching for the basic model file (s), the system may first search the design session file to find the pre-change model. If the original model file (s) are not found in the design session file, the system may check the current working folder or model workspace and then search in the defined search path. If the model file (s) are not found, an interface may be presented to the user to allow the user to browse manually and search for the model file (s).

行う必要がない場合には、基本モデル全体が設計セッションファイルにバックアップされない、いくつかの理由があり得る。第1に、ディスク上に既に保存されているファイルへの参照(例えば、ポインタ)のみを保存すると、設計セッションファイルのサイズが削減され、いくつかのモデルファイルがそれらの元のパス上で利用可能な場合に重複/冗長が減る。さらに、モデルファイルが設計セッションファイルにバックアップされる場合、これは、チェックポイントがアクティブ化されて基本モデルファイルがモデルワークスペースにロードされる際に、(いくつかの状況において)命名が競合し得る。   There are several reasons why the entire basic model is not backed up in the design session file if it does not need to be done. First, saving only references (eg pointers) to files already stored on disk reduces the size of the design session file, and several model files are available on their original path In such cases, duplication / redundancy is reduced. Furthermore, if the model file is backed up to a design session file, this can cause naming conflicts (in some situations) when the checkpoint is activated and the base model file is loaded into the model workspace. .

それにも関わらず、いくつかの実施形態では、基本モデルファイルが設計セッションファイルにバックアップされ得る。これは、例えば、設計セッションファイルが、ディスクに保存されたモデルの基本バージョンを含んでいない異なるコンピュータに移動される場合に、特に有用であり得る。   Nevertheless, in some embodiments, the base model file can be backed up to a design session file. This can be particularly useful, for example, when the design session file is moved to a different computer that does not contain a basic version of the model stored on disk.

設計セッションが設計セッションファイルからロードされた場合、設計セッションファイル内のエントリチェックポイントがロードされ得、エントリチェックポイントの基本モデルがモデリング環境によって取得され得る。基本モデルがモデリング環境内にまだ存在していない場合、モデリング環境は基本モデルを設計セッションファイルから取り込んで、その基本モデルをモデリング環境内にロードし得る。基本モデルのロードに加え、設計セッションファイルは、環境特性などの、設計セッションの他の詳細が復元できるようにし得る。例えば、第1のユーザーがいくつかのウィンドウ/モデルをオープンして設計セッションを格納し、第2のユーザーがその関連した設計セッションファイルをオープンした場合、設計セッションファイルは、第2のユーザーのコンピュータ上でウィンドウ/モデルもオープンし得る。   When a design session is loaded from a design session file, an entry checkpoint in the design session file can be loaded and a basic model of the entry checkpoint can be obtained by the modeling environment. If the basic model does not already exist in the modeling environment, the modeling environment can take the basic model from the design session file and load the basic model into the modeling environment. In addition to loading the basic model, the design session file may allow other details of the design session to be restored, such as environmental characteristics. For example, if a first user opens several windows / models to store a design session and a second user opens its associated design session file, the design session file is stored on the second user's computer. A window / model can also be opened above.

ステップ520で、ユーザーは、任意選択で、既存のチェックポイントをアクティブにすることを要求し得る。既存のチェックポイントが存在しない場合、またはユーザーが既存のチェックポイントをアクティブにすることを選択しない場合、処理は直接、ステップ530に進む。ユーザーが既存のチェックポイントをアクティブにする場合、処理はステップ525に進み得、モデリング環境は選択されたチェックポイントをアクティブにし得る。チェックポイントをアクティブにするための手順例を、図7に関して、さらに詳細に説明する。   At step 520, the user may optionally request to activate an existing checkpoint. If there is no existing checkpoint, or if the user does not choose to activate the existing checkpoint, the process proceeds directly to step 530. If the user activates an existing checkpoint, processing may proceed to step 525 and the modeling environment may activate the selected checkpoint. An example procedure for activating a checkpoint is described in further detail with respect to FIG.

一旦、所望のチェックポイント(エントリチェックポイントまたは選択されたチェックポイントのいずれか)がアクティブにされると、処理はステップ530に進み得、ユーザーはそのモデルを編集し得る。ユーザーがモデルに対して変更を行うと、処理はステップ535に進み得、モデリング環境は、ユーザー編集のいずれかがモデルのコンポーネントに変更をもたらすかどうかを判断し得る。そうでない場合、処理は、編集がコンポーネントに対する変更となるまで、ステップ530に戻り得る。   Once the desired checkpoint (either an entry checkpoint or a selected checkpoint) is activated, processing can proceed to step 530 and the user can edit the model. As the user makes changes to the model, processing may proceed to step 535 and the modeling environment may determine whether any of the user edits cause changes to the components of the model. Otherwise, processing can return to step 530 until the edit is a change to the component.

ステップ535で、モデルのコンポーネントが変更されていると判断された場合、処理はステップ540に進み得、そこで、ユーザー編集によって生じた明示的な変更が実行され得る。変更が実行されると、モデリング環境は、その変更されたコンポーネントに依存する関連コンポーネントを分析し得、かつ/またはその変更されたコンポーネントに関連付けられたパラメータ関係/制約を取得し得る。明示的な変更が、関連コンポーネントにおいて派生的な変更を要求すると判断される場合、ステップ545で、派生的な変更が実行され得る。   If it is determined at step 535 that the component of the model has been changed, processing may proceed to step 540 where explicit changes caused by user editing may be performed. As changes are made, the modeling environment may analyze related components that depend on the changed components and / or obtain parameter relationships / constraints associated with the changed components. If the explicit change is determined to require a derivative change in the associated component, then at step 545 the derivative change may be performed.

ステップ550で、明示的な変更および派生的な変更の各々が変更データベース内に記録され得る。この時点で、モデルは変更されており、ユーザーは変更されたモデルをチェックポイント内に格納するようにモデリング環境に指示し得る。代替または追加として、自動チェックポイントがこの時点でトリガーされ得る。その結果、処理がステップ555に進み得、そこで、モデリング環境はチェックポイントを格納するかどうかを判断し得る。   At step 550, each explicit change and derivative change may be recorded in a change database. At this point, the model has changed and the user can instruct the modeling environment to store the changed model in a checkpoint. Alternatively or additionally, an automatic checkpoint can be triggered at this point. As a result, processing can proceed to step 555 where the modeling environment can determine whether to store the checkpoint.

ステップ555で、チェックポイントが保存されるべきであると判断されると(例えば、モデリング環境がチェックポイントを格納する命令を受信しているため、最後のチェックポイントが保存されてから所定の期間が経過しているため、または所定の事象が生じているために)、処理はステップ560に進み得る。そうでない場合、処理はステップ520に戻り得、既存のチェックポイントがアクティブにされたかどうかが判断され得る。   If it is determined in step 555 that the checkpoint should be saved (eg, the modeling environment has received an instruction to store the checkpoint, so a predetermined period of time has passed since the last checkpoint was saved). Processing may proceed to step 560 (because it has elapsed or because a predetermined event has occurred). Otherwise, processing can return to step 520 to determine if an existing checkpoint has been activated.

ステップ560で、モデリング環境は新しいチェックポイントの作成プロセスを開始する。モデリング環境は、どのチェックポイントが現在アクティブであるかを判断し得る。例えば、ユーザーが、エントリチェックポイントから基本モデルを編集している場合、そのエントリチェックポイントは現在アクティブなチェックポイントと見なされる。ユーザーがステップ520で異なるチェックポイントをアクティブにした場合、そのアクティブにされたチェックポイントが現在アクティブなチェックポイントと見なされ得る。   At step 560, the modeling environment begins a new checkpoint creation process. The modeling environment may determine which checkpoint is currently active. For example, if the user is editing a basic model from an entry checkpoint, the entry checkpoint is considered the currently active checkpoint. If the user activates a different checkpoint at step 520, the activated checkpoint may be considered the currently active checkpoint.

現在アクティブなチェックポイントへの参照が、新しいチェックポイント内に格納され得る。例えば、現在アクティブなチェックポイントは、メモリ内または記憶媒体上の位置として表され得る。現在アクティブなチェックポイントのアドレスへのポインタが、ステップ560で、新しいチェックポイントと共に格納され得る。処理は次いで、ステップ565に進み得る。   A reference to the currently active checkpoint may be stored in the new checkpoint. For example, a currently active checkpoint can be represented as a location in memory or on a storage medium. A pointer to the address of the currently active checkpoint can be stored with the new checkpoint at step 560. Processing may then proceed to step 565.

ステップ565で、モデリング環境は、変更データベースを調べて、現在アクティブなチェックポイントがアクティブにされた以後に、どのコンポーネントが変更されたかを判断し得る。現在アクティブなチェックポイント(例えば、ステップ525でアクティブにされたチェックポイント、またはステップ515で作成されたエントリチェックポイント)がアクティブ化した時と新しいチェックポイントを格納すべきと(例えば、ステップ555での「YES」判定の結果として)判断された時との間に変更された任意のコンポーネントが、新しいチェックポイントと共に格納され得る。   At step 565, the modeling environment may consult the change database to determine which components have changed since the currently active checkpoint was activated. When the currently active checkpoint (eg, the checkpoint activated at step 525 or the entry checkpoint created at step 515) is activated and a new checkpoint should be stored (eg, at step 555) Any component that has changed since it was determined (as a result of the “YES” determination) can be stored with the new checkpoint.

各コンポーネントはコンポーネントモデルファイルによって表され得る。各変更されたコンポーネントに対して、コンポーネントモデルファイル全体をチェックポイント内に格納することは、可能ではあるが、必要でない可能性がある。むしろ、コンポーネントに関連付けられたコンポーネントモデルファイルはメモリ内の既知の位置に格納され得、既知の位置のアドレスがチェックポイントと共に(例えば、ポインタとして)保存され得る。代替または追加として、コンポーネントモデルまたはコンポーネントモデルファイルの名前/パスがチェックポイント内に格納され得る。   Each component can be represented by a component model file. For each changed component, it may be possible, but not necessary, to store the entire component model file in a checkpoint. Rather, the component model file associated with the component can be stored at a known location in memory, and the address of the known location can be saved with the checkpoint (eg, as a pointer). Alternatively or additionally, the name / path of the component model or component model file may be stored in the checkpoint.

コンポーネントに加えて、変更を表すために使用されるモデルのモデルファイル、パラメータ、および他の態様もチェックポイント内に格納され得る。例えば、ユーザーが1つのコンポーネントをモデル内の他のコンポーネントに対して移動させる(すなわち、モデル内のコンポーネントの配置に影響を及ぼす)と、コンポーネントの配置を定義するモデルファイルもチェックポイント内に格納されて、そのモデルをチェックポイントと一致する状態に復元するために使用され得る。   In addition to components, model files, parameters, and other aspects of models used to represent changes can also be stored in checkpoints. For example, if a user moves one component relative to another component in the model (ie, affects the placement of the component in the model), the model file that defines the placement of the component is also stored in the checkpoint. And can be used to restore the model to a state consistent with the checkpoint.

ステップ570で、以前のチェックポイントへの参照および以前のチェックポイント以後に変更されたコンポーネントから成る新しいチェックポイントの作成が成功した。そのチェックポイントが現在アクティブなチェックポイントにされ、ユーザーが異なるチェックポイントに戻りたいかを判断するために(または、代替として、ステップ530で現在アクティブなチェックポイントの編集を続行するために)、処理はステップ520に戻り得る。   At step 570, a reference to the previous checkpoint and the creation of a new checkpoint consisting of components that have changed since the previous checkpoint were successful. The checkpoint is made the currently active checkpoint, and processing to determine if the user wants to return to a different checkpoint (or alternatively, to continue editing the currently active checkpoint at step 530) May return to step 520.

設計セッションの終わりに、(エントリチェックポイントを含め)設計セッション中に作成された任意のチェックポイントが設計セッションファイル内に格納され得る。チェックポイントによって捕捉される設計変更を他のユーザーが評価できるようにするために、設計セッションファイルが他のコンピュータに配信され得る。ステップ515で保存された基本モデルが、(上述のように)ディスク上にローカルに格納されたモデルコンポーネントへの参照を含んでいた場合、モデルファイルをディスクから設計セッションファイルにコピーするための選択肢が提示され得る。従って、設計セッションファイルが、基本モデルのローカルコピーを有していない別のコンピュータに配信されると、基本モデルが設計セッションファイルから取得され得る。   At the end of the design session, any checkpoints created during the design session (including entry checkpoints) may be stored in the design session file. Design session files can be distributed to other computers to allow other users to evaluate design changes captured by checkpoints. If the basic model saved in step 515 contained a reference to a model component stored locally on disk (as described above), there are options for copying the model file from disk to the design session file. Can be presented. Thus, if the design session file is distributed to another computer that does not have a local copy of the basic model, the basic model can be obtained from the design session file.

図5で説明した方法によって、1つ以上のチェックポイントが作成される。チェックポイントのためのデータ構造例を図6に示す。   One or more checkpoints are created by the method described in FIG. An example of the data structure for the checkpoint is shown in FIG.

図6に示すように、初めに作成されたチェックポイントがエントリチェックポイント340であり得る。エントリチェックポイントは、関連する変更された特徴のない、基本モデル330の表現からなり得る。   As shown in FIG. 6, the checkpoint created first may be an entry checkpoint 340. An entry checkpoint may consist of a representation of the basic model 330 with no associated modified features.

基本モデル330の編集後、追加のチェックポイント252が作成され得る。このチェックポイント252は、以前のチェックポイントへの参照610を含み得る。参照610は、例えば、ポインタであり得る。この場合、チェックポイント252は、基本モデル330に対する編集に基づき作成された。その結果、参照610は、エントリチェックポイント340に戻ってポイントする。   After editing the base model 330, additional checkpoints 252 can be created. This checkpoint 252 may include a reference 610 to a previous checkpoint. Reference 610 can be, for example, a pointer. In this case, the check point 252 is created based on the editing on the basic model 330. As a result, reference 610 points back to entry checkpoint 340.

チェックポイント252は、以前のチェックポイント以後に変更された、変更されたコンポーネントのリスト620をさらに含み得る。そのリストは、他の可能性の中でとりわけ、変更されたコンポーネントのコンポーネントモデルファイルへのポインタおよび/またはコンポーネントモデルファイルへのパスを含み得る。1つ以上の変更されたコンポーネント622、624は、リスト620内に含まれ得る。参照632、および変更されたコンポーネント636のリスト634を有するさらなるチェックポイント630が、必要に応じて作成され得る。図6に示す例では、第2のチェックポイント630は、第1のチェックポイント252によって表されるバージョンモデルに基づいて作成され、その結果、参照632を通して第1のチェックポイント252に戻ってポイントする。   Checkpoint 252 may further include a list 620 of changed components that have changed since the previous checkpoint. The list may include, among other possibilities, a pointer to the component model file and / or a path to the component model file for the changed component. One or more modified components 622, 624 may be included in the list 620. Additional checkpoints 630 having a reference 632 and a list 634 of changed components 636 may be created as needed. In the example shown in FIG. 6, the second checkpoint 630 is created based on the version model represented by the first checkpoint 252, so that it points back to the first checkpoint 252 through the reference 632. .

複数のチェックポイントが単一の親を共有するツリー構造の場合におけるように、複数の異なるチェックポイントからの参照は各々、同じ以前のチェックポイントを指し得ることを理解されたい。   It should be understood that references from multiple different checkpoints may each point to the same previous checkpoint, as in the case of a tree structure where multiple checkpoints share a single parent.

一旦、チェックポイントが作成されると、チェックポイントは、モデルをそのチェックポイントと一致する状態に復元するためにアクティブにされ得る。図7は、チェックポイントをアクティブにするための方法例を示す。簡潔に要約すれば、図7で説明する手順は、チェックポイントを選択すること、チェックポイント内に含まれる参照を使用して、チェックポイントの階層/ツリーを通じてエントリチェックポイントまで再帰的に戻り、その間、各チェックポイントに関連付けられた変更されたコンポーネントのリストを蓄積すること、変更されたコンポーネントのリストを統合して、モデル内で使用される変更されたコンポーネントの正しい(例えば、最新の)バージョンを識別すること、および再生成する必要のある基本モデルのそれらのコンポーネントだけを変更し、同時に、未変更のコンポーネントを維持すること、を伴う。   Once a checkpoint is created, the checkpoint can be activated to restore the model to a state that matches the checkpoint. FIG. 7 shows an example method for activating a checkpoint. Briefly summarized, the procedure described in FIG. 7 recursively returns to an entry checkpoint through the checkpoint hierarchy / tree, using the checkpoint selection, references contained within the checkpoint, Accumulate a list of changed components associated with each checkpoint, consolidate the list of changed components, and get the correct (eg latest) version of the changed components used in the model It involves identifying and only changing those components of the base model that need to be regenerated while maintaining the unchanged components.

ステップ710で、モデリング環境は、識別されたチェックポイントをアクティブにするか、または復元する要求を受信し得る。チェックポイント復元要求は、例えば、チェックポイントツリー内のチェックポイントをアクティブにすることにより、受信され得る。要求内で識別されたチェックポイントが現在アクティブな要求されたチェックポイントになる。   At step 710, the modeling environment may receive a request to activate or restore the identified checkpoint. A checkpoint restoration request may be received, for example, by activating a checkpoint in the checkpoint tree. The checkpoint identified in the request becomes the currently active requested checkpoint.

ステップ715で、モデリング環境は、変更されたコンポーネントの当初は空のリストを作成し得る。図7で説明する手順を通してチェックポイントが取得されると、各チェックポイントで変更されたコンポーネントが変更されたコンポーネントのリストに追加され得る。   At step 715, the modeling environment may create an initially empty list of changed components. As checkpoints are obtained through the procedure described in FIG. 7, the components changed at each checkpoint may be added to the list of changed components.

ステップ720で、モデリング環境は、現在要求されているチェックポイントを取得し得る。そのチェックポイントは、例えば、メモリ内のデータ構造として、格納され得、ステップ720で、識別されたチェックポイントに関連付けられたデータ構造がアクセスされ得る。データ構造は、以前のチェックポイントへの参照、および以前のチェックポイントと現在アクティブな要求されたチェックポイントとの間に生じた変更のリストを含み得る。   At step 720, the modeling environment may obtain the currently requested checkpoint. The checkpoint can be stored, for example, as a data structure in memory, and at step 720, the data structure associated with the identified checkpoint can be accessed. The data structure may include a reference to the previous checkpoint and a list of changes that occurred between the previous checkpoint and the currently active requested checkpoint.

ステップ725で、モデリング環境は、変更されたコンポーネントのリストを要求されたチェックポイントから抽出し得る。変更されたコンポーネントのリストは、現在ロードされているチェックポイントと直前のチェックポイントとの間に変更されたコンポーネントを表し得る。ステップ730で、現在のチェックポイントから取得された、変更されたコンポーネントのリストが、ステップ715で作成された、変更されたコンポーネントのリストに追加され得る。変更されたコンポーネントがリスト内に蓄積されると、モデリング環境は、コンポーネントが変更された順序の記録を維持し得、かつ/またはどの変更されたコンポーネントが、コンポーネントの「最新」バージョン(例えば、ステップ710で要求されたチェックポイントに関して最新のコンポーネントのバージョン)を表すかを識別し得る。   At step 725, the modeling environment may extract a list of changed components from the requested checkpoint. The list of changed components may represent components that have changed between the currently loaded checkpoint and the previous checkpoint. At step 730, the modified component list obtained from the current checkpoint may be added to the modified component list created at step 715. As changed components are accumulated in the list, the modeling environment may maintain a record of the order in which the components were changed and / or which changed component is the “latest” version of the component (eg, step 710 may represent the latest component version with respect to the requested checkpoint.

ステップ735で、モデリング環境は、要求されたチェックポイントから取得された以前のチェックポイントへの参照を辿り得る。ステップ740で、モデリング環境は、以前のチェックポイントがエントリチェックポイントであるかどうかを判断する。エントリチェックポイントは、例えば、エントリチェックポイントの構造に基づき、識別され得る。例えば、全ての非エントリチェックポイントは、以前のチェックポイントへの参照および変更されたコンポーネントのリストを含み得る。それに対して、エントリチェックポイントは、基本モデルの表現を含み得、変更されたコンポーネントは含まない。   At step 735, the modeling environment may follow a reference to the previous checkpoint obtained from the requested checkpoint. At step 740, the modeling environment determines whether the previous checkpoint is an entry checkpoint. An entry checkpoint can be identified, for example, based on the structure of the entry checkpoint. For example, all non-entry checkpoints may include references to previous checkpoints and a list of changed components. In contrast, an entry checkpoint may contain a representation of the basic model and no modified components.

ステップ745での答えが「YES」である場合、必要な全ての変更されたコンポーネントが識別されて、処理はステップ750に進み得る。そうでない場合、さらなる変更が蓄積される必要があり、処理はステップ745に進み得る。   If the answer at step 745 is “YES”, then all necessary modified components are identified, and processing may proceed to step 750. If not, further changes need to be accumulated and processing may proceed to step 745.

ステップ745で、アクティブなチェックポイント内の参照を通じてアクセスされた以前のチェックポイントが、新しい現在のアクティブな要求されたチェックポイントになる。処理は次いで、ステップ720に戻り得、そこで、残りのチェックポイントが、エントリチェックポイントに達するまで、再帰的に処理される。   In step 745, the previous checkpoint accessed through the reference in the active checkpoint becomes the new current active requested checkpoint. Processing may then return to step 720 where the remaining checkpoints are processed recursively until an entry checkpoint is reached.

ステップ750で、必要な全ての変更されたコンポーネントが蓄積されて、モデリング環境は、基本モデルを有するエントリチェックポイントを識別している。モデリング環境は、エントリチェックポイント内の基本モデルを識別し得、それは、基本モデル内に存在するコンポーネントのリストの抽出を伴い得る。   At step 750, all necessary modified components have been accumulated and the modeling environment has identified the entry checkpoint with the base model. The modeling environment may identify a basic model within an entry checkpoint, which may involve extracting a list of components that exist within the basic model.

ステップ755で、モデリング環境は、ステップ730で構築されたリストを調べて、エントリチェックポイントと要求されたチェックポイントとの間に、基本モデルのどのコンポーネントが変更されたかを判断し得る。例えば、(要求されたチェックポイントと比較して)コンポーネントの最新バージョンのみが使用されるように、変更されたコンポーネントのリストが統合され得る。   At step 755, the modeling environment may examine the list constructed at step 730 to determine which components of the base model have changed between the entry checkpoint and the requested checkpoint. For example, a list of changed components can be integrated so that only the latest version of the component is used (compared to the requested checkpoint).

基本モデルが作成された以後に変更されなかった特徴は、未変更の特徴と見なされ得る。未変更の特徴のリストも、変更されたコンポーネントのリストに追加して作成され得る。   Features that have not been changed since the base model was created can be considered as unchanged features. An unmodified feature list can also be created in addition to the modified component list.

システムは、この時点で、要求されたチェックポイントによって表されるようにモデルを構成するコンポーネント(未変更の特徴および変更された特徴)のリストを蓄積している。リストは、メモリ内にロードされている現在アクティブなモデル内に存在するコンポーネントの集合と比較され得る。コンポーネントのいずれかが、現在アクティブなモデル内に存在するコンポーネントのバージョンと一致する場合、これらのコンポーネントはそれらの現在の形のままにされ得る(それにより、モデルのコンポーネントを再作成する必要を削減する)。ステップ760で、モデリング環境は、現在アクティブなモデル内に存在していない、ステップ755からの統合されたリスト内で識別されたコンポーネントの最新バージョンを取得し得る。例えば、モデリング環境は、統合されたリストおよび/または未変更のコンポーネントのリスト内で識別されたコンポーネントの最新バージョンに関連付けられたコンポーネントモデルファイル(またはコンポーネントモデルファイルのバージョン)を取得し得る。   At this point, the system has accumulated a list of the components (unmodified and modified features) that make up the model as represented by the requested checkpoint. The list can be compared to the set of components present in the currently active model loaded in memory. If any of the components matches the version of a component that exists in the currently active model, these components can be left in their current form (thus reducing the need to recreate the model's components To do). At step 760, the modeling environment may obtain the latest version of the component identified in the integrated list from step 755 that does not exist in the currently active model. For example, the modeling environment may obtain a component model file (or component model file version) associated with the latest version of the component identified in the consolidated list and / or the list of unchanged components.

ステップ760で取得されたコンポーネントがモデルに適用され得、それにより、その取得されたコンポーネントがモデル内の既存のコンポーネントを置き換える。代替または追加として、モデルをチェックポイントと一致させるために、既存のコンポーネントが除去され得るか、または取得されたコンポーネントがそのモデルに追加され得る。   The component obtained at step 760 can be applied to the model, whereby the obtained component replaces an existing component in the model. Alternatively or in addition, existing components can be removed or acquired components can be added to the model to match the model with the checkpoint.

モデルをチェックポイントと一致させるために、そのモデルに取り込まれる、取得されたコンポーネントは、コンポーネントレベルまたは特徴/パラメータ/形状レベルのいずれかで存在するパラメータ依存性および関係を維持または再構築するために操作された、それらの特徴、パラメータ、および/または形状を有し得る。   In order to match a model with a checkpoint, the acquired components captured in that model are used to maintain or reconstruct parameter dependencies and relationships that exist either at the component level or at the feature / parameter / shape level. They may have their characteristics, parameters, and / or shapes manipulated.

いくつかの実施形態では、モデルをチェックポイントと一致させるために、変更されたコンポーネントのみが置き換えられ得る。これらのコンポーネントの置換後、システムは、更新されたモデル内で変更されたコンポーネント構造に基づき、変更されたコンポーネント(および/またはパラメータ依存性もしくは関係によって変更されたコンポーネントに関連している任意のコンポーネント)の間での依存性および/または関係を再計算または再生成し得る。これは、モデル内に既に存在していて、ステップ755〜760で以前に再生成/更新されなかったコンポーネントに対して変更を行うことを伴い得る。   In some embodiments, only changed components can be replaced to match the model with the checkpoint. After replacement of these components, the system is based on the changed component structure in the updated model, and any components that are related to the changed components (and / or components that have changed due to parameter dependencies or relationships) ) Can be recalculated or regenerated. This may involve making changes to components that already exist in the model and that were not previously regenerated / updated in steps 755-760.

処理は次いで、ステップ765に進んで、終了し得る。   Processing can then proceed to step 765 and end.

いくつかの実施形態では、必ずしも、元のエントリチェックポイントまで遡って戻る必要はない。モデルが現在、チェックポイントツリー内の第1のチェックポイントによって表される状態であって、要求されたチェックポイントが、チェックポイントツリー上で第1のチェックポイントと同じ分岐上の、以前または後のチェックポイントである場合には、第1のチェックポイントと要求されたチェックポイントとの間だけ戻って、その2つのチェックポイント間で変更されたコンポーネントだけを変更することが可能であり得る。   In some embodiments, it is not necessary to go back to the original entry checkpoint. The model is currently in the state represented by the first checkpoint in the checkpoint tree, and the requested checkpoint is on the same branch as the first checkpoint on the checkpoint tree, before or after If it is a checkpoint, it may be possible to go back only between the first checkpoint and the requested checkpoint and change only the components that have changed between the two checkpoints.

例えば、図1Dおよび図1Gの例を参照すると、第1のチェックポイント132は、椅子の背もたれに取り付けられた肘掛けコンポーネント112および、狭い基部コンポーネント116に取り付けられた4つの車輪コンポーネント114を備える椅子を表した。入れ子になったチェックポイント138(第1のチェックポイント132と同じチェックポイントツリーの分岐に沿って位置する)は、椅子の背もたれに取り付けられた肘掛けコンポーネント112および、広い基部コンポーネント116に取り付けられた4つの車輪コンポーネント114を備えた椅子を表した。   For example, referring to the example of FIGS. 1D and 1G, the first checkpoint 132 is a chair comprising an armrest component 112 attached to the chair back and a four wheel component 114 attached to the narrow base component 116. expressed. Nested checkpoints 138 (located along the same checkpoint tree branch as the first checkpoint 132) are 4 attached to the armrest component 112 attached to the chair back and the wide base component 116. A chair with two wheel components 114 is represented.

入れ子になったチェックポイント138が、現在アクティブなチェックポイントであって、ユーザーが第1のチェックポイント132をアクティブにすることを決定した場合、モデリング環境は、これらのチェックポイントがチェックポイントツリーの同じ分岐上に位置することを識別し得る。入れ子になったチェックポイント138から第1のチェックポイント132まで戻ることにより、モデリング環境は、これら2つのチェックポイント間でのモデルに対する唯一の変更は、基部コンポーネント116が拡げられたことであると判断し得る。従って、第1のチェックポイント132に戻すために、基部コンポーネント116のみをロードし、パラメータ関係によって基部コンポーネント116に関連している任意のコンポーネントを変更するだけで十分であり得、このように、椅子モデルのほとんどのコンポーネントを維持して、基部コンポーネント116の幅だけを変更する。これは、モデルの以前にチェックポイント化されたバージョンをロードする際に処理資源を節約し得る。   If the nested checkpoint 138 is a currently active checkpoint and the user decides to activate the first checkpoint 132, the modeling environment determines that these checkpoints are the same in the checkpoint tree. It can be identified that it is located on a branch. By returning from the nested checkpoint 138 to the first checkpoint 132, the modeling environment determines that the only change to the model between these two checkpoints is that the base component 116 has been expanded. Can do. Thus, to return to the first checkpoint 132, it may be sufficient to load only the base component 116 and change any component associated with the base component 116 by a parameter relationship, and thus the chair Maintain most components of the model and change only the width of the base component 116. This can save processing resources when loading a previously checkpointed version of the model.

チェックポイントを作成および復元する例を次に説明する。   An example of creating and restoring checkpoints will now be described.

モデルファイル「bike.asm」内に格納されたバイク組立体の例を考える。bike.asmファイルは、バイクの異なる部品を表すファイル(例えば、操作レバーコンポーネントを表すファイル「handlebar.prt」、前輪コンポーネントを表すファイル「front_wheel.asm」、後輪コンポーネントを表すファイル「rear_wheel.asm」、およびシートコンポーネントを表すファイル「seat.prt」)を含む組立体モデルフォルダ内に格納され得る。この例で使用されるように、部品および組立体の両方がコンポーネントを表し得る。   Consider an example of a bike assembly stored in a model file “bike.asm”. bike. The asm file includes files representing different parts of the motorcycle (for example, a file “handlebar.prt” representing an operation lever component, a file “front_wheel.asm” representing a front wheel component, a file “rear_wheel.asm” representing a rear wheel component, and Can be stored in an assembly model folder that includes a file “seat.prt”) representing the sheet component. As used in this example, both parts and assemblies can represent components.

設計セッションを開始すると、エントリチェックポイントが作成され得る。エントリチェックポイントは、bike.asmファイルを基本モデルとして含む、元の組立体モデルフォルダへのポインタを含み得る。   When starting a design session, an entry checkpoint may be created. The entry checkpoint is bike. It may contain a pointer to the original assembly model folder that contains the asm file as the base model.

ユーザーが次いで、バイクの操作レバー部の形状を変更すると、handlebar.prtファイルの新しいバージョンが生成され得る。ユーザーは、第1のチェックポイントが作成され得ることを示し得る。チェックポイント1は、エントリチェックポイントへの参照およびhandlebar.prtファイルの新しいバージョンを含み得る。   Next, when the user changes the shape of the operation lever portion of the motorcycle, handlebar. A new version of the prt file can be generated. The user may indicate that a first checkpoint can be created. Checkpoint 1 includes a reference to the entry checkpoint and handlebar. It may contain a new version of the prt file.

ユーザーは次いで、バイクの前輪、後輪、およびシートの形状を変更して、新しいチェックポイントを作成し得る。チェックポイント2は、front_wheel.asmファイル、rear_wheel.asmファイル、およびseat.prtファイルの新しいバージョンだけでなく、チェックポイント1への参照も含み得る。   The user can then change the shape of the front wheel, rear wheel, and seat of the bike to create a new checkpoint. Checkpoint 2 is front_wheel. asm file, rear_wheel. asm file, and seat. It may include a reference to checkpoint 1 as well as a new version of the prt file.

ユーザーは次いで、バイクモデルについてシートの配置を変更して、第3のチェックポイントを作成し得る。チェックポイント3は、チェックポイント2への参照およびシートコンポーネントの変更された配置を反映しているbike.asmファイルの新しいバージョンを含む。   The user can then change the seat placement for the bike model to create a third checkpoint. Checkpoint 3 is a reference to checkpoint 2 and the bike. Contains a new version of the asm file.

ここで、ユーザーが設計セッションをクローズして、モデリング環境を出ると仮定する。ユーザーは次いで、モデリング環境を再オープンして、バイクの何らかのバージョンを記憶装置からロードし得る。ユーザーが次いで、バイクをチェックポイント3と一致する状態に復元することを要求すると、モデリング環境は、handlebar.prtファイルをチェックポイント1からfront_wheel.asmファイル、rear_wheel.asmファイル、およびseat.prtファイルをチェックポイント2から、ならびにbike.asmファイルをチェックポイント3から収集し得る。これらのモデルファイルと一致していない、メモリ内のモデルの現在アクティブなバージョン内のコンポーネントが、置き換えられて再生成され得る。   Now assume that the user closes the design session and exits the modeling environment. The user can then reopen the modeling environment and load some version of the bike from storage. If the user then requests that the bike be restored to a state consistent with checkpoint 3, the modeling environment will handle the handlebar. prt file from checkpoint 1 to front_wheel. asm file, rear_wheel. asm file, and seat. prt file from checkpoint 2 as well as bike. Asm files may be collected from checkpoint 3. Components in the currently active version of the model in memory that do not match these model files can be replaced and regenerated.

代替として、ユーザーは、現在のモデルをメモリにロードすることなく、第3のチェックポイントを復元することを要求し得る。この場合、モデリング環境は、エントリチェックポイント内の基本モデルおよび後続のチェックポイント内に反映された変更されたコンポーネントに基づき、必要なファイルをロードし得る。   Alternatively, the user may request to restore the third checkpoint without loading the current model into memory. In this case, the modeling environment may load the necessary files based on the base model in the entry checkpoint and the modified components reflected in the subsequent checkpoint.

上述した動作の1つ以上が処理論理で実行可能なコンピュータ実行可能命令としてコード化され得る。コンピュータ実行可能命令は、1つ以上の非一時的コンピュータ可読媒体上に格納され得る。上述した動作の1つ以上が、適切にプログラム化された電子装置内で実行され得る。図8は、本明細書で説明する1つ以上の実施形態での使用に適した電子装置800の一例を示す。   One or more of the operations described above may be encoded as computer-executable instructions that can be executed by processing logic. Computer-executable instructions may be stored on one or more non-transitory computer-readable media. One or more of the operations described above may be performed within an appropriately programmed electronic device. FIG. 8 illustrates an example of an electronic device 800 suitable for use in one or more embodiments described herein.

電子装置800は、多くの形をとり得、コンピュータ、ワークステーション、サーバー、ネットワークコンピュータ、量子コンピュータ、光コンピュータ、インターネット家電、モバイル機器、ポケットベル、タブレットコンピュータ、スマートセンサー、特定用途向け処理装置などを含むが、それらに限定されない。   The electronic device 800 can take many forms, including computers, workstations, servers, network computers, quantum computers, optical computers, Internet appliances, mobile devices, pagers, tablet computers, smart sensors, application-specific processing devices, etc. Including but not limited to.

電子装置800は例示であり、他の形態をとり得る。例えば、電子装置800の代替実施態様は、図8の構成より、コンポーネントの数が少ないか、多いか、または異なる構成のコンポーネントを有し得る。図8および/または本明細書で説明する他の図面のコンポーネントは、ハードウェアベースの論理、ソフトウェアベースの論理および/またはハードウェアとソフトウェアベースの論理の組合せ(例えば、ハイブリッド論理)である論理を使用して実装され得、従って、図6および/または他の図面で例示するコンポーネントは特定のタイプの論理に限定されない。   The electronic device 800 is exemplary and may take other forms. For example, alternative embodiments of electronic device 800 may have fewer, more components, or differently configured components than the configuration of FIG. The components of FIG. 8 and / or other drawings described herein include logic that is hardware-based logic, software-based logic, and / or a combination of hardware and software-based logic (eg, hybrid logic). The components illustrated in FIG. 6 and / or other drawings may not be limited to a particular type of logic.

プロセッサ802は、電子装置800の代わりに命令を実行するために、ハードウェアベースの論理またはハードウェアベースの論理とソフトウェアの組合せを含み得る。プロセッサ802は、例えば、メモリ804内に含まれる情報を、解釈、実行、および/または別の方法で処理し得る論理を含み得る。情報は、本発明の1つ以上の実施形態を実装し得るコンピュータ実行可能命令および/またはデータを含み得る。プロセッサ802は、様々な同種または異種ハードウェアを含み得る。ハードウェアは、例えば、1つ以上のプロセッサ、マイクロプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け命令セットプロセッサ(ASIP)、特定用途向け集積回路(ASIC)、複合プログラム可能論理回路(CPLD)、グラフィック処理装置(GPU)、または情報を解釈、実行、操作、および/もしくは別の方法で処理し得る他のタイプの処理論理の何らかの組合せを含み得る。プロセッサは、シングルコアまたは多重コア803を含み得る。さらに、プロセッサ802は、システムオンチップ(SoC)またはシステムインパッケージ(SiP)を含み得る。プロセッサ802の一例は、米国カリフォルニア州サンタクララ所在のIntel Corporationから入手可能なIntel(登録商標)Core(商標)シリーズのプロセッサである。   The processor 802 may include hardware-based logic or a combination of hardware-based logic and software to execute instructions on behalf of the electronic device 800. The processor 802 may include logic that may interpret, execute, and / or otherwise process information contained in the memory 804, for example. Information may include computer-executable instructions and / or data that may implement one or more embodiments of the invention. The processor 802 may include a variety of similar or dissimilar hardware. The hardware may be, for example, one or more processors, a microprocessor, a field programmable gate array (FPGA), an application specific instruction set processor (ASIP), an application specific integrated circuit (ASIC), a complex programmable logic circuit (CPLD). , A graphics processing unit (GPU), or any combination of other types of processing logic that can interpret, execute, manipulate, and / or otherwise process information. The processor may include a single core or multiple cores 803. Further, the processor 802 may include a system on chip (SoC) or a system in package (SiP). An example of the processor 802 is an Intel® Core ™ series processor available from Intel Corporation of Santa Clara, California.

電子装置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装置を含み得る。   The electronic device 800 may include one or more tangible non-transitory computer readable storage media for storing one or more computer-executable instructions or software that may implement one or more embodiments of the invention. The non-transitory computer readable storage medium can be, for example, memory 804 or storage device 818. Memory 804 may include a RAM that may include a RAM device that may store information. A RAM device can be volatile or non-volatile, for example, one or more DRAM devices, flash memory devices, SRAM devices, zero capacitor RAM (ZRAM) devices, twin transistor RAM (TTRAM) devices, read only memory (ROM). ) Devices, ferroelectric RAM (FeRAM) devices, magnetoresistive RAM (MRAM) devices, phase change memory RAM (PRAM) devices, or other types of RAM devices.

1つ以上のコンピューティング装置800は、メモリ804内にロードされた命令を実行するための仮想マシン(VM)804を含み得る。仮想マシン806は、複数のプロセッサ上で実行するプロセスを処理するために提供され得、それにより、プロセスは、複数のコンピューティング資源ではなく1つだけのコンピューティング資源を使用しているように見え得る。仮想化は、電子装置内のインフラおよび資源が動的に共有され得るように、電子装置800内で利用され得る。複数のVM806が、単一のコンピューティング装置800上に常駐し得る。   One or more computing devices 800 may include a virtual machine (VM) 804 for executing instructions loaded in memory 804. A virtual machine 806 may be provided to handle processes executing on multiple processors, so that the process appears to be using only one computing resource rather than multiple computing resources. obtain. Virtualization can be utilized within the electronic device 800 such that infrastructure and resources within the electronic device can be dynamically shared. Multiple VMs 806 may reside on a single computing device 800.

ハードウェアアクセラレータ808は、ASIC、FPGA、または何らかの他の装置内に実装され得る。ハードウェアアクセラレータ808は、電子装置800の一般的な処理時間を削減するために使用され得る。   The hardware accelerator 808 may be implemented in an ASIC, FPGA, or some other device. The hardware accelerator 808 can be used to reduce the general processing time of the electronic device 800.

電子装置800は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)またはインターネットに様々な接続を通して接続するためのネットワークインタフェース810を含み得、様々な接続には、標準的な電話回線、LANまたはWANリンク(例えば、T1、T3、56kb、X.25)、ブロードバンド接続(例えば、総合サービスデジタル通信網(ISDN)、フレームリレー、非同期転送モード(ATM)、無線接続(例えば、802.11)、高速相互接続(例えば、InfiniBand、ギガビットイーサネット(登録商標)、Myrinet)または上述のいずれかもしくは全部の何らかの組合せを含むが、それらに限定されない。ネットワークインタフェース708は、内蔵式ネットワークアダプタ、ネットワークインタフェースカード、パーソナルコンピュータメモリカード国際協会(PCMCIA)ネットワークカード、カードバスネットワークアダプタ、無線ネットワークアダプタ、ユニバーサルシリアルバス(USB)ネットワークアダプタ、モデム、または電子装置800を任意のタイプのネットワーク可能通信に接続して、本明細書で説明する操作を実行するのに適した任意の他の装置を含み得る。   The electronic device 800 may include a network interface 810 for connecting through various connections to a local area network (LAN), a wide area network (WAN), or the Internet, including a standard telephone line, LAN or WAN link (eg, T1, T3, 56 kb, X.25), broadband connection (eg, Integrated Services Digital Network (ISDN), Frame Relay, Asynchronous Transfer Mode (ATM), wireless connection (eg, 802.11), The network interface 708 includes a built-in network interface including, but not limited to, high speed interconnects (eg, InfiniBand, Gigabit Ethernet, Myrinet) or any combination of any or all of the above. Network, network interface card, personal computer memory card international association (PCMCIA) network card, card bus network adapter, wireless network adapter, universal serial bus (USB) network adapter, modem, or electronic device 800 for any type of networkable communication And any other device suitable for performing the operations described herein.

電子装置800は、1つ以上の入力装置812を含み得、例えば、ユーザーからの入力を受信するために使用され得る、キーボード、マルチポイントタッチインタフェース、ポインティングデバイス(例えば、マウス)、ジャイロスコープ、加速度計、力覚装置、触覚デバイス、ニューラルデバイス、マイクロフォン、またはカメラなどである。電子装置800は、他の適切な入出力周辺装置を含み得ることに留意されたい。   The electronic device 800 may include one or more input devices 812, for example, a keyboard, a multipoint touch interface, a pointing device (eg, a mouse), a gyroscope, an acceleration that may be used to receive input from a user A meter, a haptic device, a tactile device, a neural device, a microphone, or a camera. Note that the electronic device 800 may include other suitable input / output peripherals.

入力装置812は、ユーザーが、視覚的表示装置814上で登録される入力を提供できるようにし得る。グラフィカルユーザーインタフェース(GUI)816が表示装置814上に表示され得る。   Input device 812 may allow a user to provide input that is registered on visual display device 814. A graphical user interface (GUI) 816 may be displayed on the display device 814.

記憶装置818もコンピュータ800に関連付けられ得る。記憶装置818は、入出力バスを経由してプロセッサ802にアクセス可能であり得る。記憶装置818内の情報は、プロセッサ802により、実行、解釈、操作、および/または別の方法で処理され得る。記憶装置818は、例えば、磁気ディスク、光ディスク(例えば、CD−ROM、DVDプレイヤー)、ランダムアクセスメモリ(RAM)ディスク、テープ装置、および/またはフラッシュドライブなどの記憶装置を含み得る。情報は、記憶装置内に含まれる1つ以上の非一時的有形のコンピュータ可読媒体上に格納され得る。この媒体は、例えば、磁気ディスク、光ディスク、磁気テープ、および/またはメモリデバイス(例えば、フラッシュメモリデバイス、スタティックRAM(SRAM)デバイス、ダイナミックRAM(DRAM)デバイス、または他のメモリデバイス)を含み得る。情報は、本発明の1つ以上の実施形態を実装し得るデータおよび/またはコンピュータ実行可能命令を含み得る。   A storage device 818 may also be associated with the computer 800. Storage device 818 may be accessible to processor 802 via an input / output bus. Information in storage device 818 may be executed, interpreted, manipulated, and / or otherwise processed by processor 802. The storage device 818 may include a storage device such as, for example, a magnetic disk, an optical disk (eg, CD-ROM, DVD player), a random access memory (RAM) disk, a tape device, and / or a flash drive. The information may be stored on one or more non-transitory tangible computer readable media contained within the storage device. The medium may include, for example, a magnetic disk, optical disk, magnetic tape, and / or memory device (eg, a flash memory device, a static RAM (SRAM) device, a dynamic RAM (DRAM) device, or other memory device). Information may include data and / or computer-executable instructions that may implement one or more embodiments of the invention.

記憶装置818は、実施形態例で提供される、任意のモジュール、出力、ディスプレイ、ファイル820、情報、ユーザーインタフェースなどを格納し得る。記憶装置818は、コンピューティング装置800または別の電子装置によって使用するためのアプリケーション822を格納し得る。アプリケーション822は、コンピューティング装置1300がタスクを実行するのを可能にする、プログラム、モジュール、またはソフトウェアコンポーネントを含み得る。アプリケーションの例には、文書処理ソフトウェア、シェル、インターネットブラウザ、生産性スイート、およびプログラミングソフトウェアを含む。記憶装置818は、コンピューティング装置800または別の装置によって使用するためのデータだけでなく、追加の機能を提供するための追加のアプリケーションを格納し得る。データは、ファイル、変数、パラメータ、画像、テキスト、および他の形式のデータを含み得る。   Storage device 818 may store any modules, outputs, displays, files 820, information, user interfaces, etc. provided in the example embodiments. Storage device 818 may store an application 822 for use by computing device 800 or another electronic device. Application 822 may include programs, modules, or software components that allow computing device 1300 to perform tasks. Examples of applications include document processing software, shells, internet browsers, productivity suites, and programming software. Storage device 818 may store not only data for use by computing device 800 or another device, but also additional applications for providing additional functionality. Data may include files, variables, parameters, images, text, and other types of data.

記憶装置818は、コンピューティング装置800を実行するためのオペレーティングシステム(OS)824をさらに格納し得る。OS 824の例には、Microsoft(登録商標)Windows(登録商標)オペレーティングシステム、Unix(登録商標)およびLinux(登録商標)オペレーティングシステム、Macintoshコンピュータ向けのMacOS(登録商標)、Symbian OSなどの組み込みオペレーティングシステム、リアルタイムオペレーティングシステム、オープンソースオペレーティングシステム、独自のオペレーティングシステム、携帯電子機器向けのオペレーティングシステム、または電子装置上で実行して本明細書で説明する操作を実行可能な他のオペレーティングシステムを含み得る。オペレーティングシステムは、ネイティブモードまたはエミュレートモードで実行され得る。   Storage device 818 may further store an operating system (OS) 824 for executing computing device 800. Examples of OS 824 include embedded operating systems such as Microsoft® Windows® operating system, Unix® and Linux® operating systems, MacOS® for Macintosh computers, and Symbian OS. May include a system, a real-time operating system, an open source operating system, a proprietary operating system, an operating system for portable electronic devices, or other operating system capable of executing on an electronic device to perform the operations described herein . The operating system may be run in native mode or emulated mode.

一実施形態では、コンピューティング装置800は、モデルを構築するための特徴ベースのモデリング環境830を含み得る。モデリング環境830は、例えば、ソフトウェアコンポーネントまたはコンピュータプログラムであり得る。モデリング環境830は、CAD環境であり得る。モデリング環境830は、モデル110の構築、編集、保存およびロード、モデル110の性能のシミュレーション、ならびにモデル110のラピッドプロトタイピングまたは製造ユニットへの入力としての提供のための手段を含み得る。モデリング環境830は、幾何学形状カーネル(geometry kernel)832をさらに含み得、それは、モデル内の特徴の形状を計算して表し得る。   In one embodiment, computing device 800 may include a feature-based modeling environment 830 for building a model. The modeling environment 830 can be, for example, a software component or a computer program. The modeling environment 830 can be a CAD environment. The modeling environment 830 may include means for building, editing, saving and loading the model 110, simulating the performance of the model 110, and providing the model 110 as input to a rapid prototyping or manufacturing unit. The modeling environment 830 can further include a geometry kernel 832, which can compute and represent the shape of features in the model.

本発明の1つ以上の実施形態は、1つ以上の非一時的有形のコンピュータ可読媒体上に具現化され得る、コンピュータ実行可能命令および/またはデータを使用して実装され得る。媒体は、ハードディスク、コンパクトディスク、デジタル多用途ディスク、フラッシュメモリカード、プログラマブル読取り専用メモリ(PROM)、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、磁気抵抗ランダムアクセスメモリ(MRAM)、磁気テープ、または他のコンピュータ可読媒体であり得るが、それらに限定されない。   One or more embodiments of the invention may be implemented using computer-executable instructions and / or data, which may be embodied on one or more non-transitory tangible computer-readable media. Media include hard disk, compact disk, digital versatile disk, flash memory card, programmable read only memory (PROM), random access memory (RAM), read only memory (ROM), magnetoresistive random access memory (MRAM), magnetic tape , Or other computer readable medium, but is not limited thereto.

本発明の1つ以上の実施形態は、プログラミング言語で実装され得る。使用され得る言語のいくつかの例には、Python、C、C++、C#、SystemC、Java(登録商標)、Javascript、ハードウェア記述言語(HDL)、統一モデリング言語(UML)、およびプログラマブル論理制御装置(PLC)言語を含むが、それらに限定されない。さらに、本発明の1つ以上の実施形態は、ハードウェア記述言語または計算の指示を可能にしる他の言語で実装され得る。本発明の1つ以上の実施形態は、1つ以上の媒体上または媒体内にオブジェクトコードとして格納され得る。本発明の1つ以上の実施形態を実装し得る命令は、1つ以上のプロセッサによって実行され得る。本発明の一部は、プロセッサ以外の1つ以上のハードウェアコンポーネントに関して実行する命令内にあり得る。   One or more embodiments of the invention may be implemented in a programming language. Some examples of languages that can be used include Python, C, C ++, C #, SystemC, Java, Javascript, Hardware Description Language (HDL), Unified Modeling Language (UML), and Programmable Logic Control Including but not limited to device (PLC) language. Further, one or more embodiments of the present invention may be implemented in a hardware description language or other languages that allow calculation instructions. One or more embodiments of the invention may be stored as object code on or in one or more media. Instructions that may implement one or more embodiments of the invention may be executed by one or more processors. Part of the present invention may be in instructions that execute with respect to one or more hardware components other than a processor.

本発明は分散またはネットワーク環境で実装され得ることを理解されたい。例えば、モデルが、中央サーバーで提供および操作され得、一方、ユーザーは、ユーザー端末を通してモデルとやり取りする。   It should be understood that the present invention may be implemented in a distributed or network environment. For example, a model can be provided and operated at a central server, while a user interacts with the model through a user terminal.

図9は、本発明の1つ以上の実施形態を実装し得るネットワーク実施態様を示す。システム900は、コンピューティング装置800、ネットワーク910、サービスプロバイダ920、モデリング環境830、およびクラスタ930を含み得る。図9の実施形態は例示であり、他の実施形態は、さらに多くの装置、より少ない装置、または図9の配置とは異なる配置の装置を含むことができる。   FIG. 9 illustrates a network implementation in which one or more embodiments of the present invention may be implemented. System 900 may include computing device 800, network 910, service provider 920, modeling environment 830, and cluster 930. The embodiment of FIG. 9 is exemplary, and other embodiments may include more devices, fewer devices, or a different arrangement of devices than the arrangement of FIG.

ネットワーク910は、データを供給源から宛先に伝送し得る。ネットワーク910の実施形態は、ルーター、スイッチ、ファイアウォール、および/またはサーバー(図示せず)などのネットワーク装置、ならびにデータを伝送するための接続(例えば、リンク)を使用し得る。データは、1つ以上のネットワークおよび/または1つ以上の装置(例えば、コンピューティング装置800、サービスプロバイダ920など)での使用に対して適合され得る実質的に任意のフォーマットを有する任意のタイプのマシン可読情報を指し得る。データは、デジタル情報またはアナログ情報を含み得る。データはさらにパケット化されることがあり、かつ/またはパケット化されないこともある。   Network 910 may transmit data from a source to a destination. Embodiments of network 910 may use network devices such as routers, switches, firewalls, and / or servers (not shown), and connections (eg, links) for transmitting data. The data can be of any type having virtually any format that can be adapted for use with one or more networks and / or one or more devices (eg, computing device 800, service provider 920, etc.). Can refer to machine-readable information. The data can include digital information or analog information. The data may be further packetized and / or not packetized.

ネットワーク910は、有線導体および/もしくは光ファイバを使用した配線接続されたネットワークであり得、かつ/または自由空間光、無線周波数(RF)、および/もしくは音響伝達経路を使用した無線ネットワークであり得る。一実施態様では、ネットワーク910は、インターネットなどの、実質的にオープンな公衆回線であり得る。別の実施態様では、ネットワーク910は、企業の仮想ネットワークなどの、より制限されたネットワークであり得る。ネットワーク910は、インターネット、イントラネット、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、無線ネットワーク(例えば、IEEE802.11を使用)、または他のタイプのネットワークを含み得る。ネットワーク910は、共通オブジェクトリクエストブローカーアーキテクチャ(CORBA)または分散型コンポーネントオブジェクトモデル(DCOM)などの、ミドルウェアを使用し得る。本明細書で説明するネットワークおよび/またはネットワーク上で動作する装置の実施態様は、例えば、任意の特定のデータタイプ、プロトコル、および/またはアーキテクチャ/構成に限定されない。   Network 910 may be a wired network using wired conductors and / or optical fibers and / or may be a wireless network using free space light, radio frequency (RF), and / or acoustic transmission paths. . In one implementation, network 910 may be a substantially open public line, such as the Internet. In another implementation, the network 910 may be a more restricted network, such as a corporate virtual network. Network 910 may include the Internet, an intranet, a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a wireless network (eg, using IEEE 802.11), or other types of networks. . Network 910 may use middleware, such as Common Object Request Broker Architecture (CORBA) or Distributed Component Object Model (DCOM). Implementations of the networks and / or devices operating on the networks described herein are not limited to any particular data type, protocol, and / or architecture / configuration, for example.

サービスプロバイダ920は、サービスを別の装置に対して利用可能にする装置を含み得る。例えば、サービスプロバイダ920は、サーバーおよび/または他の装置を使用して、1つ以上のサービスを宛先に提供する実体(例えば、個人、企業、教育機関、政府機関など)を含み得る。サービスは、操作(例えば、最適化操作)を実行するために、宛先によって実行される命令を含み得る。代替として、サービスは、宛先の代わりに操作を実行するために、宛先の代わりに実行される命令を含み得る。   Service provider 920 may include a device that makes the service available to another device. For example, service provider 920 may include entities (eg, individuals, businesses, educational institutions, government agencies, etc.) that use a server and / or other devices to provide one or more services to a destination. A service may include instructions executed by a destination to perform an operation (eg, an optimization operation). Alternatively, the service may include instructions that are executed on behalf of the destination to perform operations on behalf of the destination.

モデリング環境830は、ネットワーク910を経由して情報を受信する装置を含み得る。例えば、モデリング環境830は、電子装置800からユーザー入力を受信する装置上でホストされ得る。   Modeling environment 830 may include devices that receive information via network 910. For example, the modeling environment 830 can be hosted on a device that receives user input from the electronic device 800.

クラスタ930は、いくつかの実行ユニット(EU)932を含み得、電子装置800および/または、サービスプロバイダ920などの、別の装置の代わりに、処理を実行し得る。例えば、クラスタ930は、電子装置800から受信した操作に関して並列処理を実行し得る。クラスタ930は、単一の装置もしくはチップ上に常駐するか、またはいくつかの装置もしくはチップ上に常駐するEU 932を含み得る。   Cluster 930 may include a number of execution units (EU) 932 and may perform processing on behalf of another device, such as electronic device 800 and / or service provider 920. For example, the cluster 930 may perform parallel processing for operations received from the electronic device 800. Cluster 930 may include EU 932 resident on a single device or chip, or resident on several devices or chips.

EU930は、要求している装置などの、装置の代わりに操作を実行する処理装置を含み得る。EUは、マイクロプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、および/または別のタイプの処理装置であり得る。EU 932は、動作環境のためのコードなどの、コードを含み得る。例えば、EUは、並列処理動作に関連する動作環境の一部を実行し得る。サービスプロバイダ920は、クラスタ930を操作し得、申込みベースで(例えば、ウェブサービスを介して)対話型最適化機能を電子装置800に提供し得る。   EU 930 may include a processing device that performs operations on behalf of a device, such as a requesting device. The EU may be a microprocessor, a field programmable gate array (FPGA), and / or another type of processing device. EU 932 may include code, such as code for an operating environment. For example, the EU may execute a portion of the operating environment associated with parallel processing operations. Service provider 920 may operate cluster 930 and provide interactive optimization functionality to electronic device 800 on a subscription basis (eg, via a web service).

EUは、図8のモデリング環境830などの製品に対してリモート/分散処理機能を提供し得る。ハードウェアEUは、並列プログラミング動作を実行し、かつ/または並列プログラミング動作に関与し得る装置(例えば、ハードウェア資源)を含み得る。例えば、ハードウェアEUは、それが受信している(例えば、直接またはプロキシを経由して受信した)要求および/またはタスクに応答して、並列プログラミング動作を実行し、かつ/または並列プログラミング動作に関与し得る。ハードウェアEUは、1つ以上の装置を使用して、実質的に任意のタイプの並列プログラミング(例えば、タスク、データ、ストリーム処理など)を実行し、かつ/または並列プログラミングに関与し得る。例えば、ハードウェアEUは、多重コアまたはいくつかのプロセッサを含む単一の処理装置を含み得る。ハードウェアEUは、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、または他のプログラム可能装置などの、プログラム可能装置でもあり得る。ハードウェアEU内で使用される装置は、グリッド、リング型、星型、または他の構成などの、多数の異なる構成(またはトポロジ)で配置され得る。ハードウェアEUは、処理作業の実行時に、1つ以上のスレッド(またはプロセス)をサポートし得る。   The EU may provide remote / distributed processing capabilities for products such as the modeling environment 830 of FIG. A hardware EU may include devices (eg, hardware resources) that may perform parallel programming operations and / or participate in parallel programming operations. For example, a hardware EU may perform parallel programming operations and / or in parallel programming operations in response to requests and / or tasks that it is receiving (eg, received directly or via a proxy). Can be involved. A hardware EU may use and / or participate in substantially any type of parallel programming (eg, tasks, data, stream processing, etc.) using one or more devices. For example, a hardware EU may include a single processing unit that includes multiple cores or several processors. The hardware EU may also be a programmable device such as a field programmable gate array (FPGA), application specific integrated circuit (ASIC), digital signal processor (DSP), or other programmable device. The devices used within the hardware EU may be arranged in a number of different configurations (or topologies), such as a grid, ring, star, or other configuration. A hardware EU may support one or more threads (or processes) when performing processing operations.

ソフトウェアEUは、1つ以上の並列プログラミング動作を実行し、かつ/または並列プログラミング動作に関与し得るソフトウェア資源(例えば、技術計算環境)を含み得る。ソフトウェアEUは、プログラムおよび/またはプログラムの1つ以上の部分の受信に応答して、1つ以上の並列プログラミング動作を実行し、かつ/または並列プログラミング動作に関与し得る。ソフトウェアEUは、1つ以上のハードウェア実行ユニットを使用して、異なるタイプの並列プログラミングを実行し、かつ/または並列プログラミングに関与し得る。ソフトウェアEUは、処理作業の実行時に、1つ以上のスレッドおよび/またはプロセスをサポートし得る。   A software EU may include software resources (eg, a technical computing environment) that may perform one or more parallel programming operations and / or participate in the parallel programming operations. The software EU may perform and / or participate in one or more parallel programming operations in response to receiving the program and / or one or more portions of the program. A software EU may use and / or participate in different types of parallel programming using one or more hardware execution units. A software EU may support one or more threads and / or processes when performing processing operations.

用語「並列プログラミング」は、複数のタイプの並列プログラミング、例えば、タスク並列プログラミング、データ並列プログラミング、およびストリーム並列プログラミング、を含むと理解され得る。並列プログラミングは、複数の資源(例えば、ソフトウェア実行ユニット、ハードウェア実行ユニット、プロセッサ、マイクロプロセッサ、クラスタ、ラボ)にわたって分散され得、かつ同時に実行され得る、様々なタイプの処理を含み得る。   The term “parallel programming” may be understood to include multiple types of parallel programming, eg, task parallel programming, data parallel programming, and stream parallel programming. Parallel programming can include various types of processing that can be distributed across multiple resources (eg, software execution units, hardware execution units, processors, microprocessors, clusters, labs) and executed simultaneously.

例えば、並列プログラミングは、いくつかのタスクがいくつかのソフトウェア実行ユニット上で同時に処理され得る、タスク並列プログラミングを含み得る。タスク並列プログラミングでは、タスクは、他のタスク実行とは関係なく、例えば、同時に、処理され得る。   For example, parallel programming can include task parallel programming, where several tasks can be processed simultaneously on several software execution units. In task parallel programming, tasks can be processed simultaneously, for example, independently of other task executions.

並列プログラミングはデータ並列プログラミングを含み得、その場合、データ(例えば、データセット)は、例えば、ソフトウェア実行ユニットを使用して、並列に実行され得るいくつかの部分に分解され得る。データ並列プログラミングでは、ソフトウェア実行ユニットおよび/またはデータ部は、処理を進めながら、互いに通信し得る。   Parallel programming can include data parallel programming, in which case the data (eg, a data set) can be decomposed into several parts that can be executed in parallel, eg, using a software execution unit. In data parallel programming, software execution units and / or data portions may communicate with each other as processing proceeds.

並列プログラミングは、ストリーム並列プログラミング(パイプライン並列プログラミングと呼ばれることもある)を含み得る。ストリーム並列プログラミングは、例えば、直列(例えば直線)に配置された、いくつかのソフトウェア実行ユニットを使用し得、その場合、第1のソフトウェア実行ユニットが、第2のソフトウェア実行ユニットに供給され得る第1の結果を生成し得、第2のソフトウェア実行ユニットは、第1の結果を所与として第2の結果を生じ得る。ストリーム並列プログラミングは、タスク割当てが、有向非巡回グラフ(DAG)または巡回グラフで表現され得る状態も含み得る。   Parallel programming can include stream parallel programming (sometimes referred to as pipeline parallel programming). Stream parallel programming may use several software execution units, for example arranged in series (eg straight lines), in which case the first software execution unit may be fed to the second software execution unit. One result may be generated, and the second software execution unit may produce a second result given the first result. Stream parallel programming can also include situations in which task assignments can be expressed in a directed acyclic graph (DAG) or a cyclic graph.

他の並列プログラミング技法は、タスク、データ、および/またはストリーム並列プログラミング技法のみ、もしくはハイブリッドの並列プログラミング技法を形成するための他のタイプの処理技法と共に、何らかの組合せを含み得る。   Other parallel programming techniques may include any combination of task, data, and / or stream parallel programming techniques only, or other types of processing techniques to form a hybrid parallel programming technique.

前述の説明は、本発明の様々な実施形態の実例および説明を提供し得るが、網羅的であることも、本発明を開示する正確な形式に限定することも意図していない。修正形態および変更形態が、上述の教示を踏まえて可能であり得るか、または本発明の実施から得られ得る。例えば、一連の動作が上で説明されているが、動作の順序は、本発明の原理と一致する他の実施態様で変更され得る。さらに、非依存動作が並行して実行され得る。さらに、特徴およびアクセスクラスが特定の構文を使用して上述されているが、特徴およびアクセスクラスは、異なる方法を使用し、かつ異なる構文を使用して、同様に指定され得る。   The foregoing description may provide examples and descriptions of various embodiments of the invention, but is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Modifications and variations may be possible in light of the above teachings or may be derived from practice of the invention. For example, although a series of operations has been described above, the order of operations can be altered in other embodiments consistent with the principles of the invention. Furthermore, independent operations can be performed in parallel. Further, although features and access classes have been described above using a particular syntax, features and access classes can be similarly specified using different methods and using different syntax.

加えて、本発明の原理と一致する1つ以上の実施態様が、本発明の精神から逸脱することなく、図面で例示して、本明細書で説明するもの以外の1つ以上の装置および/または構成を使用して実装され得る。1つ以上の装置および/またはコンポーネントが、特定の配置および/または用途に応じて、図面の実施態様に追加され、かつ/または図面の実施態様から除去され得る。また、1つ以上の開示する実施態様は、ハードウェアの特定の組合せに限定されない。   In addition, one or more embodiments consistent with the principles of the present invention may be illustrated in the drawings without departing from the spirit of the present invention, and one or more devices and / or other than those described herein. Or it can be implemented using a configuration. One or more devices and / or components may be added to and / or removed from the drawing embodiments, depending on the particular arrangement and / or application. Moreover, one or more disclosed embodiments are not limited to a particular combination of hardware.

その上、本発明のある部分は、1つ以上の関数によって実行され得る論理として実装され得る。この論理は、配線接続された論理などのハードウェア、特定用途向け集積回路、フィールドプログラマブルゲートアレイ、マイクロプロセッサ、ソフトウェア、またはハードウェアとソフトウェアの組合せを含み得る。   Moreover, certain portions of the invention can be implemented as logic that can be performed by one or more functions. This logic may include hardware such as wired logic, application specific integrated circuits, field programmable gate arrays, microprocessors, software, or a combination of hardware and software.

本明細書の説明で使用されるどの要素、動作、命令も、そのように明示的に記述されていない限り、本発明にとって重要または必須であると解釈されるべきでない。また、本明細書では、冠詞「1つの(a)」は、1つ以上のアイテムを含むことを意図する。1つだけのアイテムを意図する場合には、用語「単一の」または同様の用語が使用される。さらに、句「基づく」は、本明細書では、特に明示的に記載されない限り、「少なくとも一部が基づく」を意味することを意図する。加えて、用語「ユーザー」は、本明細書では、特に明記しない限り、例えば、電子装置(例えば、ワークステーション)または電子装置のユーザーを含むと広く解釈されることを意図する。   Any element, operation, or instruction used in the description of the specification should not be construed as important or essential to the invention unless explicitly described as such. Also, as used herein, the article “one (a)” is intended to include one or more items. Where only one item is intended, the term “single” or similar term is used. Further, the phrase “based on” is intended herein to mean “based at least in part” unless specifically stated otherwise. In addition, the term “user” is intended herein to be broadly interpreted to include, for example, an electronic device (eg, a workstation) or an electronic device user, unless otherwise specified.

本発明は上で開示した特定の実施形態に限定されず、本発明は、次の添付の特許請求の範囲の範囲内に含まれる、ありとあらゆる特定の実施形態および等価物を含むことを意図する。   The present invention is not limited to the specific embodiments disclosed above, but the present invention is intended to include any and all specific embodiments and equivalents included within the scope of the following appended claims.

Claims (19)

命令を格納する非一時的コンピュータ可読媒体であって、前記命令は、プロセッサによって実行される場合に、前記プロセッサに、
モデルに対してチェックポイントを作成する要求を、当事者による前記モデルの編集セッション中に受信することと、
前記モデルの以前に保存された状態を識別することと、
前記モデルの前記以前に保存された状態以後に前記モデル内で変更された1つ以上のコンポーネントを識別することと、
前記要求に応答して、前記編集セッション中にチェックポイントを作成することであって、前記チェックポイントが、前記モデルの現在の状態を表しており、かつ
前記当事者による前記編集セッションの以前のチェックポイントに関連付けられた前記モデルの前記以前に保存された状態への参照と、
前記モデルの前記以前に保存された状態以後に、前記編集セッション中に前記モデル内で変更された前記1つ以上のコンポーネントのリストと
を含む、ことと、
前記チェックポイントを記憶装置内に格納することと、
前記当事者による前記モデルの前記編集セッション中に前記チェックポイントに戻すことであって、前記戻すことが、前記モデルを、前記当事者による前記編集セッションの前記チェックポイントに関連付けられた前記保存された状態に戻す、ことと
設計セッションに入ることと、
前記設計セッションに対して未変更のモデルとして使用される基本モデルを識別することと、
前記基本モデルから成るエントリチェックポイントを作成することと
を実行させ
前記チェックポイントがツリー構造として表され、前記エントリチェックポイントが前記ツリー構造のルートを表す、媒体。
A non-transitory computer usable 読媒 body for storing instructions, the instructions, when executed by a processor, the processor,
Receiving a request to create a checkpoint for a model during an edit session of the model by a party;
Identifying a previously saved state of the model;
Identifying one or more components that have changed in the model since the previously saved state of the model;
In response to the request, creating a checkpoint during the editing session, the checkpoint representing a current state of the model, and a previous checkpoint of the editing session by the party A reference to the previously saved state of the model associated with
A list of one or more components modified in the model during the editing session since the previously saved state of the model; and
Storing the checkpoint in a storage device;
Reverting to the checkpoint during the editing session of the model by the party, the reverting the model to the saved state associated with the checkpoint of the editing session by the party. return, and that,
Entering the design session,
Identifying a basic model to be used as an unchanged model for the design session;
Creating an entry checkpoint consisting of the basic model ; and
A medium in which the checkpoint is represented as a tree structure and the entry checkpoint represents the root of the tree structure .
前記基本モデルおよび前記チェックポイントを第1のコンピュータ上の設計セッションファイルに保存するための命令をさらに格納する、請求項に記載の媒体。 The basic model and the checkpoint further storing instructions to be stored in the design session file on the first computer, the medium of claim 1. 前記設計セッションファイルを第2のコンピュータ上でオープンすることと、
前記チェックポイントと一致したモデルを前記第2のコンピュータ上で作成することと
行うための命令をさらに含む、請求項に記載の媒体。
Opening the design session file on a second computer;
Creating a model on the second computer that matches the checkpoint;
The medium of claim 2 , further comprising instructions for performing.
命令を格納する非一時的コンピュータ可読媒体であって、前記命令は、プロセッサによって実行される場合に、前記プロセッサに、
モデルに対してチェックポイントを作成する要求を、当事者による前記モデルの編集セッション中に受信することと、
前記モデルの以前に保存された状態を識別することと、
前記モデルの前記以前に保存された状態以後に前記モデル内で変更された1つ以上のコンポーネントを識別することと、
前記要求に応答して、前記編集セッション中にチェックポイントを作成することであって、前記チェックポイントが、前記モデルの現在の状態を表しており、かつ
前記当事者による前記編集セッションの以前のチェックポイントに関連付けられた前記モデルの前記以前に保存された状態への参照と、
前記モデルの前記以前に保存された状態以後に、前記編集セッション中に前記モデル内で変更された前記1つ以上のコンポーネントのリストと
を含む、ことと、
前記チェックポイントを記憶装置内に格納することと、
前記当事者による前記モデルの前記編集セッション中に前記チェックポイントに戻すことであって、前記戻すことが、前記モデルを、前記当事者による前記編集セッションの前記チェックポイントに関連付けられた前記保存された状態に戻す、ことと、
前記モデルの第1のコンポーネントを変更する命令を受信することと、
前記命令に基づいて前記モデルを変更して、前記モデルに対して明示的な変更をもたらすことと、
前記モデルの第2のコンポーネントに対する派生的な変更を識別することであって、前記派生的な変更が、前記明示的な変更から生じており、前記第2のコンポーネントを変更するためのユーザー指示に起因しない、ことと、
前記第1のコンポーネントおよび前記第2のコンポーネントへの参照を、前記モデルの前記以前に保存された状態以後に前記モデル内で変更された前記1つ以上のコンポーネントの前記リストに格納することと
を実行させる、媒体。
A non-transitory computer readable medium storing instructions, wherein when executed by a processor, the instructions are
Receiving a request to create a checkpoint for a model during an edit session of the model by a party;
Identifying a previously saved state of the model;
Identifying one or more components that have changed in the model since the previously saved state of the model;
In response to the request, creating a checkpoint during the editing session, wherein the checkpoint represents a current state of the model; and
A reference to the previously saved state of the model associated with a previous checkpoint of the editing session by the party;
A list of the one or more components modified in the model during the editing session since the previously saved state of the model;
Including, and
Storing the checkpoint in a storage device;
Reverting to the checkpoint during the editing session of the model by the party, the reverting the model to the saved state associated with the checkpoint of the editing session by the party. To return
Receiving an instruction to modify a first component of the model;
Modifying the model based on the instructions to provide an explicit change to the model;
Identifying a derivative change to a second component of the model, wherein the derivative change results from the explicit change, and in a user instruction to modify the second component Not caused,
Storing references to the first component and the second component in the list of the one or more components that have changed in the model since the previously saved state of the model;
The medium that causes
前記派生的な変更が、前記第1のコンポーネントと前記第2のコンポーネントとの間のパラメータ関係に基づく、請求項に記載の媒体。 The medium of claim 4 , wherein the derivative change is based on a parametric relationship between the first component and the second component. 命令を格納する非一時的コンピュータ可読媒体であって、前記命令は、プロセッサによって実行される場合に、前記プロセッサに、
モデルに対してチェックポイントを作成する要求を、当事者による前記モデルの編集セッション中に受信することと、
前記モデルの以前に保存された状態を識別することと、
前記モデルの前記以前に保存された状態以後に前記モデル内で変更された1つ以上のコンポーネントを識別することと、
前記要求に応答して、前記編集セッション中にチェックポイントを作成することであって、前記チェックポイントが、前記モデルの現在の状態を表しており、かつ
前記当事者による前記編集セッションの以前のチェックポイントに関連付けられた前記モデルの前記以前に保存された状態への参照と、
前記モデルの前記以前に保存された状態以後に、前記編集セッション中に前記モデル内で変更された前記1つ以上のコンポーネントのリストと
を含む、ことと、
前記チェックポイントを記憶装置内に格納することと、
前記当事者による前記モデルの前記編集セッション中に前記チェックポイントに戻すことであって、前記戻すことが、前記モデルを、前記当事者による前記編集セッションの前記チェックポイントに関連付けられた前記保存された状態に戻す、ことと
を実行させ、
前記モデルの前記以前に保存された状態への前記参照が第2のチェックポイントへのポインタを含む媒体。
A non-transitory computer readable medium storing instructions, wherein when executed by a processor, the instructions are
Receiving a request to create a checkpoint for a model during an edit session of the model by a party;
Identifying a previously saved state of the model;
Identifying one or more components that have changed in the model since the previously saved state of the model;
In response to the request, creating a checkpoint during the editing session, wherein the checkpoint represents a current state of the model; and
A reference to the previously saved state of the model associated with a previous checkpoint of the editing session by the party;
A list of the one or more components modified in the model during the editing session since the previously saved state of the model;
Including, and
Storing the checkpoint in a storage device;
Reverting to the checkpoint during the editing session of the model by the party, the reverting the model to the saved state associated with the checkpoint of the editing session by the party. To return
And execute
The reference to the state saved the prior of the model contains a pointer to the second checkpoint, medium.
方法であって、
モデルを、記憶装置内に保存されている保存された状態に戻す要求をコンピューティング装置内で受信することであって、前記モデルがコンポーネントを含む、ことと、
前記コンピューティング装置のプロセッサで、前記保存された状態に関連付けられたチェックポイントを取得することであって、前記チェックポイントが、以前のチェックポイントへの参照と、前記以前のチェックポイント以後に変更された前記モデル内の変更されたコンポーネントのリストとを含む、ことと、
前記以前のチェックポイントを前記モデルの現在の状態と比較するために、前記プロセッサで前記以前のチェックポイントを処理することであって、前記処理が、前記モデルの前記コンポーネントが前記変更されたコンポーネントのリスト内にあることを識別することを含む、ことと、
前記モデルを前記保存された状態に戻すために、前記プロセッサで、前記変更されたコンポーネントのリストに基づいて前記モデル内の前記コンポーネントを変更することと
を含む、方法。
A method,
Receiving a request in a computing device to return a model to a saved state stored in a storage device, wherein the model includes a component;
Obtaining a checkpoint associated with the saved state at a processor of the computing device, the checkpoint being changed to a reference to a previous checkpoint and after the previous checkpoint; Including a list of modified components in the model; and
Processing the previous checkpoint in the processor to compare the previous checkpoint with the current state of the model, the processing comprising: changing the component of the model to the changed component; Including identifying what is in the list, and
Changing the component in the model based on the list of changed components at the processor to return the model to the saved state.
前記モデルを前記保存された状態に戻すことが、前記以前のチェックポイント以後に変更された前記モデルのコンポーネントのみを置換し、一方、前記以前のチェックポイント以後に変更されなかった前記モデルの任意のコンポーネントを維持することを含む、請求項に記載の方法。 Returning the model to the saved state replaces only the components of the model that have changed since the previous checkpoint, while any of the models that have not been changed since the previous checkpoint. The method of claim 7 , comprising maintaining the component. 前記以前のチェックポイントが基本モデルに関連付けられたエントリチェックポイントであり、前記基本モデルが前記モデルの前記以前のバージョンとして使用される、請求項に記載の方法。 The method of claim 7 , wherein the previous checkpoint is an entry checkpoint associated with a base model, and the base model is used as the previous version of the model. 前記以前のチェックポイントを処理することが、第2の以前のチェックポイントと、前記以前のチェックポイントと前記第2の以前のチェックポイントとの間に前記モデル内で変更されたコンポーネントのリストとを取得することを含む、請求項に記載の方法。 Processing the previous checkpoint includes: a second previous checkpoint; and a list of components modified in the model between the previous checkpoint and the second previous checkpoint. The method of claim 7 , comprising obtaining. 前記モデルを前記保存された状態に戻すことが、
エントリチェックポイントに関連付けられた基本モデルを取得することと、
前記エントリチェックポイントと前記保存された状態に関連付けられた前記チェックポイントとの間の一連の1つ以上のチェックポイントを取得することであって、前記一連のチェックポイントが1つ以上の変更されたコンポーネントの集合を含む、ことと、
前記変更されたコンポーネントに対応する前記モデル内のコンポーネントを識別することと、
前記識別されたコンポーネントを前記基本モデルに対して前記変更されたコンポーネントと置換することと
を含む、請求項に記載の方法。
Returning the model to the stored state;
Getting the basic model associated with the entry checkpoint;
Obtaining a series of one or more checkpoints between the entry checkpoint and the checkpoint associated with the saved state, wherein the series of checkpoints has been modified by one or more Including a collection of components,
Identifying a component in the model corresponding to the changed component;
8. The method of claim 7 , comprising replacing the identified component with the modified component with respect to the base model.
前記変更されたコンポーネントのリストが、
前記モデルを変更するための明示的な命令により前記モデルに対して行われた明示的な変更によって変更された第1のコンポーネントと、
前記モデルに関する1つ以上のパラメータ制約を満たすために、前記明示的な変更の結果として前記モデルに対して行われた派生的な変更によって変更された第2のコンポーネントと
を含む、請求項に記載の方法。
The list of modified components is
A first component modified by an explicit change made to the model by an explicit instruction to change the model;
To satisfy one or more parameters constraints on the model, and a second component modified by the consequential changes made to the model as a result of the explicit changes, to claim 7 The method described.
システムであって、
第1の状態におけるモデルを格納する非一時的コンピュータ可読記憶媒体であって、前記第1の状態における前記モデルが第1のコンポーネントを含む、非一時的コンピュータ可読記憶媒体と、
プロセッサと
を備え、
前記プロセッサが、
第1の状態の前記モデルに対して行われた1つ以上の変更を追跡することであって、前記1つ以上の変更を追跡することが、
明示的な変更を前記第1のコンポーネントに生じさせる命令を識別することと、
前記明示的な変更を変更のリストに記録することと、
前記第1のコンポーネントに関連付けられた関連コンポーネントを、前記明示的な変更によって生じる前記関連コンポーネントに対する派生的な変更に基づいて識別することと
を含む、ことと
当事者による前記モデルの編集セッション中に前記モデルに対してチェックポイントを作成する要求を受信することと
前記要求に応答して、前記編集セッション中に前記モデルの現在の状態を表す前記チェックポイントを作成することであって、前記チェックポイントが
前記当事者による前記編集セッションの以前のチェックポイントに関連付けられた前記モデルの以前に保存された状態への参照と
前記第1のコンポーネントと、前記モデルの前記以前に保存された状態以後に前記編集セッション中に前記モデル内で変更された前記関連コンポーネントとを含む変更されたコンポーネントのリスト
を含む、ことと
前記チェックポイントを前記非一時的コンピュータ可読記憶媒体内に格納することと
前記当事者による前記モデルの前記編集セッション中に前記チェックポイントに戻すことであって、前記戻すことが、前記モデルを、前記当事者による前記編集セッションの以前のチェックポイントに関連付けられた前記保存された状態に戻す、ことと
設計セッションに入ることと、
前記設計セッションに対して未変更のモデルとして使用される基本モデルを識別することと、
前記基本モデルから成るエントリチェックポイントを作成することと
実行するようにプログラムされ、
前記チェックポイントがツリー構造として表され、前記エントリチェックポイントが前記ツリー構造のルートを表す、システム。
A system,
A non-transitory computer readable storage medium storing a model in a first state, wherein the model in the first state includes a first component;
With processor
With
The processor is
The method comprising: tracking the one or more changes made to the model of the first state, to track the one or more changes,
Identifying an instruction that causes the first component to cause an explicit change;
Recording the explicit change in a list of changes;
The related components associated with the first component, based on the consequential changes to the explicit prior Symbol related components arising by a change, and identifying
Including, and
Receiving a request to create a checkpoint for the model during an editing session of the model by a party ;
In response to the request, creating the checkpoint representing the current state of the model during the editing session, the checkpoint comprising :
Reference and to a previously saved state of the model associated with and earlier checkpoint of the editing session by the party,
The includes a first component, and a list of changed components including said related components that have been modified in said model in said editing session the previously saved state after the model, and that,
Storing the checkpoint in the non-transitory computer readable storage medium ;
A by returning to the check point in the editing session of the model by the party, said return it, the model, the stored associated with the following prior to checkpoint the editing session by the party To return to the state ,
Entering the design session,
Identifying a basic model to be used as an unchanged model for the design session;
Creating an entry checkpoint consisting of said basic model ,
The system wherein the checkpoint is represented as a tree structure and the entry checkpoint represents the root of the tree structure .
前記関連コンポーネントを識別することが、前記モデルに関連付けられたパラメータ制約を検査することを含む、請求項13に記載のシステム。 The system of claim 13 , wherein identifying the relevant component comprises examining a parameter constraint associated with the model. 前記1つ以上の変更を追跡することが、前記関連コンポーネントの識別を前記変更されたコンポーネントのリストと共に格納することを含む、請求項13に記載のシステム。 The system of claim 13 , wherein tracking the one or more changes comprises storing an identification of the associated component along with the list of changed components. 前記第1のコンポーネントが前記関連コンポーネントのリストと共に格納される、請求項13に記載のシステム。 The system of claim 13 , wherein the first component is stored with the list of related components. 前記関連コンポーネントを識別することが、前記第1のコンポーネントを他の特徴への連結について分析することを含む、請求項13に記載のシステム。 The system of claim 13 , wherein identifying the related component comprises analyzing the first component for connections to other features. システムであって、  A system,
第1の状態におけるモデルを格納する非一時的コンピュータ可読記憶媒体であって、前記第1の状態における前記モデルが第1のコンポーネントを含む、非一時的コンピュータ可読記憶媒体と、  A non-transitory computer readable storage medium storing a model in a first state, wherein the model in the first state includes a first component;
プロセッサと  With processor
を備え、With
前記プロセッサが、  The processor is
第1の状態の前記モデルに対して行われた1つ以上の変更を追跡することであって、前記1つ以上の変更を追跡することが、  Tracking one or more changes made to the model in a first state, tracking the one or more changes;
前記モデルの前記第1のコンポーネントを変更する命令を受信することと、    Receiving an instruction to modify the first component of the model;
前記命令に基づいて前記モデルを変更して、前記モデルに対して明示的な変更をもたらすことと、    Modifying the model based on the instructions to provide an explicit change to the model;
前記モデルの第2のコンポーネントに対する派生的な変更を識別することであって、前記派生的な変更が、前記明示的な変更から生じており、前記第2のコンポーネントを変更するためのユーザー指示に起因しない、ことと    Identifying a derivative change to a second component of the model, wherein the derivative change results from the explicit change, and in a user instruction to modify the second component Not caused, and
を含む、ことと、  Including, and
当事者による前記モデルの編集セッション中に前記モデルに対してチェックポイントを作成する要求を受信することと、  Receiving a request to create a checkpoint for the model during an editing session of the model by a party;
前記要求に応答して、前記編集セッション中に前記モデルの現在の状態を表す前記チェックポイントを作成することであって、前記チェックポイントが、  In response to the request, creating the checkpoint representing the current state of the model during the editing session, the checkpoint comprising:
前記当事者による前記編集セッションの以前のチェックポイントに関連付けられた前記モデルの以前に保存された状態への参照と、    A reference to a previously saved state of the model associated with a previous checkpoint of the editing session by the party;
前記第1のコンポーネントへの参照と、前記モデルの前記以前に保存された状態以後に前記編集セッション中に前記モデル内で変更された前記第2のコンポーネントへの参照とを含む変更されたコンポーネントのリストと    A modified component comprising a reference to the first component and a reference to the second component that has been modified in the model during the editing session since the previously saved state of the model. List and
を含む、ことと、  Including, and
前記チェックポイントを前記非一時的コンピュータ可読記憶媒体内に格納することと、  Storing the checkpoint in the non-transitory computer readable storage medium;
前記当事者による前記モデルの前記編集セッション中に前記チェックポイントに戻すことであって、前記戻すことが、前記モデルを、前記当事者による前記編集セッションの以前のチェックポイントに関連付けられた前記保存された状態に戻す、ことと  Reverting to the checkpoint during the editing session of the model by the party, wherein the reverting causes the model to be associated with a previous checkpoint of the editing session by the party. To return to
を実行するようにプログラムされる、システム。A system that is programmed to run
システムであって、  A system,
第1の状態におけるモデルを格納する非一時的コンピュータ可読記憶媒体であって、前記第1の状態における前記モデルが第1のコンポーネントを含む、非一時的コンピュータ可読記憶媒体と、  A non-transitory computer readable storage medium storing a model in a first state, wherein the model in the first state includes a first component;
プロセッサと  With processor
を備え、With
前記プロセッサが、  The processor is
第1の状態の前記モデルに対して行われた1つ以上の変更を追跡することであって、前記1つ以上の変更を追跡することが、  Tracking one or more changes made to the model in a first state, tracking the one or more changes;
明示的な変更を前記第1のコンポーネントに生じさせる命令を識別することと、    Identifying an instruction that causes the first component to cause an explicit change;
前記明示的な変更を変更のリストに記録することと、    Recording the explicit change in a list of changes;
前記第1のコンポーネントに関連付けられた関連コンポーネントを、前記明示的な変更によって生じる前記関連コンポーネントに対する派生的な変更に基づいて、識別することと    Identifying a related component associated with the first component based on a derivative change to the related component caused by the explicit change;
を含む、ことと、  Including, and
当事者による前記モデルの編集セッション中に前記モデルに対してチェックポイントを作成する要求を受信することと、  Receiving a request to create a checkpoint for the model during an editing session of the model by a party;
前記要求に応答して、前記編集セッション中に前記モデルの現在の状態を表す前記チェックポイントを作成することであって、前記チェックポイントが、  In response to the request, creating the checkpoint representing the current state of the model during the editing session, the checkpoint comprising:
前記当事者による前記編集セッションの以前のチェックポイントに関連付けられた前記モデルの以前に保存された状態への参照と、    A reference to a previously saved state of the model associated with a previous checkpoint of the editing session by the party;
前記第1のコンポーネントと、前記モデルの前記以前に保存された状態以後に前記編集セッション中に前記モデル内で変更された前記関連コンポーネントとを含む変更されたコンポーネントのリストと    A list of modified components including the first component and the related components modified in the model during the editing session since the previously saved state of the model;
を含む、ことと、  Including, and
前記チェックポイントを前記非一時的コンピュータ可読記憶媒体内に格納することと、  Storing the checkpoint in the non-transitory computer readable storage medium;
前記当事者による前記モデルの前記編集セッション中に前記チェックポイントに戻すことであって、前記戻すことが、前記モデルを、前記当事者による前記編集セッションの以前のチェックポイントに関連付けられた前記保存された状態に戻す、ことと  Reverting to the checkpoint during the editing session of the model by the party, wherein the reverting causes the model to be associated with a previous checkpoint of the editing session by the party. To return to
を実行するようにプログラムされ、  Is programmed to run
前記モデルの前記以前に保存された状態への前記参照が第2のチェックポイントへのポインタを含む、システム。  The system, wherein the reference to the previously saved state of the model includes a pointer to a second checkpoint.
JP2016571327A 2014-06-06 2015-06-08 Method and system for incremental search for design changes in large-scale computer-aided design models Active JP6604655B2 (en)

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 (en) 2017-08-24
JP6604655B2 true JP6604655B2 (en) 2019-11-13

Family

ID=54541166

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016571327A Active JP6604655B2 (en) 2014-06-06 2015-06-08 Method and system for incremental search for design changes in large-scale computer-aided design models

Country Status (4)

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

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 (en) * 2015-05-14 2019-07-09 阿里巴巴集团控股有限公司 Data processing method and stream calculation system
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 (en) * 2016-12-29 2021-11-12 阿里巴巴集团控股有限公司 Three-dimensional model construction method, device and system
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 (en) * 2019-07-01 2019-10-18 特拓(青岛)轮胎技术有限公司 Tire digitalized design method based on Generalized parametering
CN110543690B (en) * 2019-08-06 2023-04-14 中国商用飞机有限责任公司 Parameter change method for digital prototype of complex product model
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 (en) * 2022-12-28 2023-05-09 杭州群核信息技术有限公司 Image rendering method, computer device and medium thereof
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 (en) * 1998-12-22 2005-02-23 松下電工株式会社 Mold cavity shape creation method
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 (en) * 2004-08-31 2010-08-04 株式会社リコー Assembly configuration design apparatus, assembly configuration design method, assembly configuration design program, and recording medium recording assembly configuration design program
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 (en) * 2020-11-16 2024-04-23 鹿島建設株式会社 Construction management system with physical simulation, construction management method, and construction management program

Also Published As

Publication number Publication date
JP2017524174A (en) 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 (en) Method and system for incremental search for design changes in large-scale computer-aided design models
US20200142712A1 (en) Execution of workflows in distributed systems
Daniel et al. NeoEMF: A multi-database model persistence framework for very large models
CN106294533B (en) Distributed Workflow Using Database Replication
CN105956087B (en) Data version management system and method
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 (en) Software upgrading method and device, electronic equipment and readable storage medium
US10621288B2 (en) Interoperable hierarchical model for conducting multiuser CAx operations
JP6209253B2 (en) Method and system for computer-aided design
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 (en) Software development support system, development support method and program
Dobos Management and visualisation of non-linear history of polygonal 3d models
JP2024503035A (en) lightweight extension
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 (en) Logical access to preview datasets in the extended view

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