IP Library Granted Patent US 12,307,171
Granted Patent B2
US 12,307,171 · App. 17/752,770 · Granted May 20, 2025

Methods and system for incremental exploration of design changes in large computer-aided design models

Inventors: Michael A. Reitman (Zikhron Yacove, IL); Leonid Ryvchin (Haifa, IL); Moshe Jacob Baum (Carlisle, MA); Ivan Baltaga (Haifa, IL); Sergey Gurin (Haifa, IL)
G06F30/17G06F30/00G06F30/15G06F2111/02
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,307,171
App. No.
17/752,770
Granted
May 20, 2025
Kind
B2
Abstract

Example embodiments provide methods, mediums, and systems for making and evaluating changes to a model. According to example embodiments, checkpoints may be created as a user changes components in the model. The checkpoints may store changed components in the model that have been changed since a previous checkpoint, and a reference (e.g., a pointer) to the previous checkpoint. A user may freely create new checkpoints, revert to previous checkpoints, and select a checkpointed version of the model to be used as an official working version of the model. Upon activating an existing checkpoint, parametric relationships in the model assembly may be automatically updated in order to make components in the model consistent with each other. Thus, the user can readily change the model and evaluate variations of a design, while at the same time saving storage space by avoiding the need to repeatedly save different versions of the model.

Claims (68)

1. A method performed by a computer system having at least one processor and a memory, the method comprising:

receiving a user request to revert an active computer-aided design (CAD) model comprising a plurality of components stored in the memory to a previously saved selected checkpoint, wherein the previously saved selected checkpoint comprises a reference to a prior checkpoint;

identifying a set of changed components that were changed in the previously saved selected checkpoint relative to the prior checkpoint;

comparing the set of changed components to the plurality of components of the active CAD model; and

based on the comparing, reverting the active CAD model to the previously saved selected checkpoint by at least:

for each of at least one component in the active CAD model:

determining that the each component does not match a corresponding component in the set of changed components; and

replacing the each component in the active CAD model with the corresponding component in the set of changed components; and

for each of at least one component in the active CAD model:

determining that the each component does match a corresponding component in the set of changed components; and

retaining the each component in the active CAD model.

2. The method of claim 1 , wherein the previously saved selected checkpoint is on a different branch of a checkpoint tree than the active CAD model.

3. The method of claim 1 , wherein the previously saved selected checkpoint is on a same branch of a checkpoint tree as the active CAD model.

4. The method of claim 1 , wherein the comparing comprises determining if a version of a component in the set of changed components matches a version of the component in the active CAD model.

5. The method of claim 4 , wherein the reference to the prior checkpoint is an indirect reference comprising two or more intermediate references linking one or more intermediate checkpoints between the previously saved selected checkpoint and the prior checkpoint.

6. The method of claim 5 , wherein the identifying a set of changed components that were changed in the previously saved selected checkpoint relative to the prior checkpoint comprises:

adding changed components for each of the previously saved selected checkpoint and the one or more intermediate checkpoints to the set of changed components, wherein only a most recent version of any changed component is retained in the set of changed components.

7. The method of claim 1 , further comprising:

logging a set of components of the CAD model that have changed since activation of a currently-active checkpoint;

receiving a user request to save a current state of the CAD model as a new checkpoint;

saving the new checkpoint, wherein the new checkpoint comprises:

a reference to the currently-active checkpoint, and

an identification of the set of components of the CAD model that have changed since activation of the currently-active checkpoint.

8. A computer system comprising the at least one processor and the memory, wherein the memory has instructions stored thereon that are executed by the at least one processor and cause the computer system to perform the method of claim 1 .

9. A non-transitory computer readable medium having instructions stored thereon, wherein the instructions are executed by the least one processor and cause the at least one processor to perform the method of claim 1 .

10. A method performed by a computer system having at least one processor and a memory, the method comprising:

providing an active computer-aided design (CAD) model comprising a plurality of components stored in the memory;

logging a set of changed components of the CAD model that have changed since activation of a currently-active checkpoint;

receiving a user request to save a current state of the CAD model as a new checkpoint; and

saving the new checkpoint, wherein the new checkpoint comprises:

a reference to the currently-active checkpoint, and

an identification of the set of changed components.

11. The method of claim 10 , further comprising:

in association with saving the new checkpoint, activating the new checkpoint as a new currently-active checkpoint;

subsequent to activating the new checkpoint as the new currently-active checkpoint, implementing changes to the active CAD model in response to user input;

subsequent to implementing changes to the active CAD model in response to user input, receiving a user request to revert the active CAD model to the new checkpoint;

comparing the set of changed components to the plurality of components of the active CAD model; and

based on the comparing, reverting the active CAD model to the new checkpoint by at least:

for each of at least one component in the active CAD model:

determining that the each component does not match a corresponding component in the set of changed components; and

replacing the each component in the active CAD model with the corresponding component in the set of changed components; and

for each of at least one component in the active CAD model:

determining that the each component does match a corresponding component in the set of changed components; and

retaining the each component in the active CAD model.

12. The method of claim 11 , wherein another checkpoint has been activated after activating the new checkpoint and before receiving the user request to revert the active CAD model to the new checkpoint, and wherein the new checkpoint is on a different branch of a checkpoint tree than the active CAD model.

13. The method of claim 11 , wherein the new checkpoint is on a same branch of a checkpoint tree as the active CAD model.

14. The method of claim 11 , wherein the comparing comprises determining if a version of a component in the set of changed components matches a version of the component in the active CAD model.

15. A computer system comprising the at least one processor and the memory, wherein the memory has instructions stored thereon that are executed by the at least one processor and cause the computer system to perform the method of claim 10 .

16. A non-transitory computer readable medium having instructions stored thereon, wherein the instructions are executed by the least one processor and cause the at least one processor to perform the method of claim 10 .

17. The method of claim 10 , further comprising:

in association with saving the new checkpoint, activating the new checkpoint as a new currently-active checkpoint;

subsequent to activating the new checkpoint as the new currently-active checkpoint, implementing changes to the active CAD model in response to user input;

subsequent to implementing changes to the active CAD model in response to user input, receiving a user request to revert the active CAD model to the new checkpoint;

comparing the set of changed components to the plurality of components of the active CAD model; and

based on the comparing, reverting the active CAD model to the new checkpoint by at least:

for each of at least one component in the active CAD model:

determining that the each component does not match a corresponding component in the set of changed components.

18. The method of claim 17 , wherein another checkpoint has been activated after activating the new checkpoint and before receiving the user request to revert the active CAD model to the new checkpoint, and wherein the new checkpoint is on a different branch of a checkpoint tree than the active CAD model.

19. The method of claim 10 , further comprising:

in association with saving the new checkpoint, activating the new checkpoint as a new currently-active checkpoint;

subsequent to activating the new checkpoint as the new currently-active checkpoint, implementing changes to the active CAD model in response to user input;

subsequent to implementing changes to the active CAD model in response to user input, receiving a user request to revert the active CAD model to the new checkpoint;

comparing the set of changed components to the plurality of components of the active CAD model; and

based on the comparing, reverting the active CAD model to the new checkpoint by at least:

for each of at least one component in the active CAD model:

determining that the each component does match a corresponding component in the set of changed components; and

retaining the each component in the active CAD model.

20. The method of claim 19 , wherein another checkpoint has been activated after activating the new checkpoint and before receiving the user request to revert the active CAD model to the new checkpoint, and wherein the new checkpoint is on a different branch of a checkpoint tree than the active CAD model.

Assignments (1)
SECURITY INTEREST Recorded Jan 3, 2023
From: PTC INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 062257/0311 →
Continuity (2)
Continuation 14298627 · Jun 6, 2014
Related Publication 20220284138A1 · Sep 8, 2022
References Cited (32)
US 4809170A · Leblang et al. · 1989 [cited by applicant]
US 5347653A · Flynn et al. · 1994 [cited by applicant]
US 5815154A · Hirschtick · 1998 [cited by examiner]
US 6341291B1 · Bentley et al. · 2002 [cited by applicant]
US 6426750B1 · Hoppe · 2002 [cited by examiner]
US 6446057B1 · Vaughan · 2002 [cited by examiner]
US 6795966B1 · Lim · 2004 [cited by examiner]
US 6892320B1 · Roush · 2005 [cited by examiner]
US 7216254B1 · Rajan · 2007 [cited by examiner]
US 7383272B2 · Krishnan et al. · 2008 [cited by applicant]
US 7593958B2 · Bergstraesser et al. · 2009 [cited by applicant]
US 8510087B2 · Mattson · 2013 [cited by examiner]
US 8654145B2 · Kasprzak · 2014 [cited by examiner]
US 11341288B2 · Reitman · 2022 [cited by examiner]
US 20040010786A1 · Cool et al. · 2004 [cited by applicant]
US 20060168565A1 · Gamma et al. · 2006 [cited by applicant]
US 20060174190A1 · Gomes et al. · 2006 [cited by applicant]
US 20070074204A1 · Curtis et al. · 2007 [cited by applicant]
US 20120084060A1 · Gunasena et al. · 2012 [cited by applicant]
US 20120110595A1 · Reitman · 2012 [cited by examiner]
US 20130080478A1 · Ben-Haim et al. · 2013 [cited by applicant]
US 20150356207A1 · Reitman et al. · 2015 [cited by applicant]
US 20160246899A1 · Hirschtick · 2016 [cited by examiner]
US 20220156427A1 · Senoo · 2022 [cited by examiner]
“Revert.” Merriam-Webster.com Dictionary, Merriam-Webster, https://www.merriam-webster.com/dictionary/revert. Accessed Jan. 31, 2024. p. 1 (Year: 2024). [cited by examiner]
“Intemational Preliminary Report on Patentability, PCT/US2015/034692, dated Dec. 13, 2016, pp. 1-21.”, Dec. 13, 2016, 21 Pages, Present in parent U.S. Appl. No. 14/298,627. [cited by applicant]
“International Search Report and Written Opinion, PCT/US2015/034692, dated Mar. 2, 2016, pp. 1-12”, Mar. 2, 2016, 12 Pages, Present in parent U.S. Appl. No. 14/298,627. [cited by applicant]
“Wikipedia definition showing windows registry with tree view which can be user edited (pp. 1-19) Printed Mar. 30, 2019 (Year: 2019)” Present in parent U.S. Appl. No. 14/298,627. [cited by applicant]
“Written Opinion of the Preliminary Examing Authority, PCT/US2015/034692, dated Aug. 1, 2016, pp. 1-8.”, Aug. 1, 2016, 8 Pages, Present in parent U.S. Appl. No. 14/298,627. [cited by applicant]
Finkelstein, ““How to undo almost anything in AutoCAO””, AutoCAO Tips Blog, Jan. 27, 2013, pp. 1-4, URL: http://www.ellenfinkelstein.com/acadblog/how-to-undo-almost-anything-inautocad/, Jan. 27, 2013, 4 Pages, Present i… [cited by applicant]
Korth, H., et al., ““A concurrency control scheme for CAD transactions,” University of Austin Texas, TR-85-34, pp. 1-17, (1985)”, Retrieved from the Internet:URL:http://citeseerx.ist.psu.edu/viewdoc/download?Joi=10.1.1.… [cited by applicant]
Miles, J.C, et al., ““Versioning and configuration management in design using CAD and complex wrapped objects,” Artificial Intelligence in Engineering, Elsevier Applied Science, LTD.”, vol. 14(3), pp. 249-260 (2000), Ma… [cited by applicant]