IP Library Granted Patent US 8,913,059
Granted Patent B2
US 8,913,059 · App. 13/689,724 · Granted Dec 16, 2014

Solving networks of geometric constraints

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 8,913,059
App. No.
13/689,724
Granted
Dec 16, 2014
Kind
B2
Abstract

Systems, program products and program products for accepting a request to move a first geometric entity that is constrained to other geometric entities in a drawing that may contain both one-way and two-way geometric constraints. A set of affected geometric entities that need to be repositioned or otherwise changed as the result of moving the first geometric entity is identified. The affected geometric entities and the geometric constraints are classified into groups which are solved using a variational geometric constraint solver. If the geometric constraints cannot be satisfied, the movement of the first geometric entity is restricted. Otherwise the affected geometric entities are updated.

Claims (49)

1. A computer-implemented method comprising:

receiving a request to move a child geometric entity in a plurality of geometric entities, each geometric entity having one or more respective attributes, the child geometric entity being geometrically constrained to a parent geometric entity in the plurality of geometric entities by a one-way constraint, wherein the one-way constraint constrains changes to one or more attributes of the child geometric entity relative to the parent geometric entity;

determining an updated attribute of the child geometric entity based on the request to move the child geometric entity;

determining, by one or more processors, that the updated attribute of the child geometric entity would invalidate the one-way constraint with the parent geometric entity; and

based on determining that the updated attribute of the child geometric entity would invalidate the one-way constraint with the parent geometric entity, restricting movement of the child geometric entity.

2. The method of claim 1 , wherein receiving the request to move the child geometric entity comprises receiving a user input to move the child geometric entity.

3. The method of claim 1 , wherein the request to move the child geometric entity comprises a request to automatically move the child geometric entity in order to satisfy a second geometric constraint.

4. The method of claim 1 , wherein the one-way constraint is based on distance, angle, radius, coincidence, parallel, perpendicular, collinear, tangential, concentric, equal, horizontal, vertical, or an arithmetic expression involving attribute values.

5. The method of claim 1 , wherein the one-way constraint does not constrain movement of the parent geometric entity.

6. The method of claim 1 , wherein determining that the move of the child geometric entity would invalidate the one-way constraint with the parent geometric entity comprises:

identifying a set of affected geometric entities in the plurality of geometric entities that will be changed based on the request;

grouping entities in the set of affected geometric entities into a plurality of groups based on one or more one-way and two-way constraints between the affected geometric entities;

topologically ordering the groups based on a directionality of the one-way and two-way constraints between the groups; and

solving the groups according to the ordering.

7. The method of claim 6 , wherein solving the groups comprises using a variational geometric constraint solver to determine one or more updated attributes of the child geometric entity.

8. The method of claim 6 , wherein grouping entities in the set of affected geometric entities into a plurality of groups based on one or more one-way and two-way constraints between the affected geometric entities comprises adding parent geometric entities of a one-way constraint to the group of the child geometric entity.

9. A system comprising:

one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

receiving a request to move a child geometric entity in a plurality of geometric entities, each geometric entity having one or more attributes, the child geometric entity being geometrically constrained to a parent geometric entity in the plurality of geometric entities by a one-way constraint, wherein the one-way constraint constrains changes to one or more attributes of the child geometric entity relative to the parent geometric entity;

determining an updated attribute of the child geometric entity based on the request to move the child geometric entity;

determining, by one or more processors, that the updated attribute of the child geometric entity would invalidate the one-way constraint with the parent geometric entity; and

based on determining that the updated attribute of the child geometric entity would invalidate the one-way constraint with the parent geometric entity, restricting movement of the child geometric entity.

10. The system of claim 9 , wherein receiving the request to move the child geometric entity comprises receiving a user input to move the child geometric entity.

11. The system of claim 9 , wherein the request to move the child geometric entity comprises a request to automatically move the child geometric entity in order to satisfy a second geometric constraint.

12. The system of claim 9 , wherein the one-way constraint is based on distance, angle, radius, coincidence, parallel, perpendicular, collinear, tangential, concentric, equal, horizontal, vertical, or an arithmetic expression involving attribute values.

13. The system of claim 9 , wherein the one-way constraint does not constrain movement of the parent geometric entity.

14. The system of claim 9 , wherein determining that the move of the child geometric entity would invalidate the one-way constraint with the parent geometric entity comprises:

identifying a set of affected geometric entities in the plurality of geometric entities that will be changed based on the request;

grouping entities in the set of affected geometric entities into a plurality of groups based on one or more one-way and two-way constraints between the affected geometric entities;

topologically ordering the groups based on a directionality of the one-way and two-way constraints between the groups; and

solving the groups according to the ordering.

15. The system of claim 14 , wherein solving the groups comprises using a variational geometric constraint solver to determine one or more updated attributes of the child geometric entity.

16. The system of claim 14 , wherein grouping entities in the set of affected geometric entities into a plurality of groups based on one or more one-way and two-way constraints between the affected geometric entities comprises adding parent geometric entities of a one-way constraint to the group of the child geometric entity.

17. A computer program product, encoded on one or more non-transitory computer storage media, comprising instructions that when executed by one or more computers cause the one or more computers to perform operations comprising:

receiving a request to move a child geometric entity in a plurality of geometric entities, each geometric entity having one or more respective attributes, the child geometric entity being geometrically constrained to a parent geometric entity in the plurality of geometric entities by a one-way constraint, wherein the one-way constraint constrains changes to one or more attributes of the child geometric entity relative to the parent geometric entity;

determining an updated attribute of the child geometric entity based on the request to move the child geometric entity;

determining, by one or more processors, that the updated attribute of the child geometric entity would invalidate the one-way constraint with the parent geometric entity; and

based on determining that the updated attribute of the child geometric entity would invalidate the one-way constraint with the parent geometric entity, restricting movement of the child geometric entity.

18. The computer program product of claim 17 , wherein determining that the move of the child geometric entity would invalidate the one-way constraint with the parent geometric entity comprises:

identifying a set of affected geometric entities in the plurality of geometric entities that will be changed based on the request;

grouping entities in the set of affected geometric entities into a plurality of groups based on one or more one-way and two-way constraints between the affected geometric entities;

topologically ordering the groups based on a directionality of the one-way and two-way constraints between the groups; and

solving the groups according to the ordering.

19. The computer program product of claim 18 , wherein solving the groups comprises using a variational geometric constraint solver to determine one or more updated attributes of the child geometric entity.

20. The computer program product of claim 18 , wherein grouping entities in the set of affected geometric entities into a plurality of groups based on one or more one-way and two-way constraints between the affected geometric entities comprises adding parent geometric entities of a one-way constraint to the group of the child geometric entity.

21. The computer program product of claim 17 , wherein receiving the request to move the child geometric entity comprises receiving a user input to move the child geometric entity.

22. The computer program product of claim 17 , wherein the request to move the child geometric entity comprises a request to automatically move the child geometric entity in order to satisfy a second geometric constraint.

23. The computer program product of claim 17 , wherein the one-way constraint is based on distance, angle, radius, coincidence, parallel, perpendicular, collinear, tangential, concentric, equal, horizontal, vertical, or an arithmetic expression involving attribute values.

24. The computer program product of claim 17 , wherein the one-way constraint does not constrain movement of the parent geometric entity.

Assignments (2)
CHANGE OF ADDRESS FOR ASSIGNEE Recorded Aug 19, 2022
From: AUTODESK, INC.
To: AUTODESK, INC.
Reel/Frame 061572/0061 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2013
From: KRIPAC, JIRI; GARCIA, JOSE MADEIRA DE FREITAS
To: AUTODESK, INC.
Reel/Frame 029880/0248 →