Claims
- 1. A method for modifying a three-dimensional model, comprising:
displaying a three-dimensional model in a computer implemented solid modeling system; selecting a first face of the three-dimensional model; specifying a first constraint that controls a behavior of a repositioning operation for the first face; modifying the three-dimensional model by repositioning the selected first face, wherein the repositioning operation is constrained in accordance with the specified first constraint.
- 2. The method of claim 1 wherein the first constraint constrains planes of faces adjacent to the first face not to change.
- 3. The method of claim 2, wherein:
the first constraint is required to be satisfied; a second solid three-dimensional model is created, wherein the second model is defined by the first face, a second face that is a duplicate of the first face with vertices repositioned based on the repositioning operation, and new side faces between the first face and the second face; and the modifying comprises performing a Boolean operation between the original three-dimensional model and the second three dimensional model, wherein the Boolean operation is based on a direction of a drag vector from the repositioning operation.
- 4. The method of claim 2, wherein:
(a) the first constraint is not required to be satisfied; and (b) the modifying comprises:
(i) replacing one or more coordinates of vertices of the first face with coordinates of repositioned vertices based on the repositioning operation; (ii) attempting to adjust one or more planes and vertices of a face adjacent to the first face so that adjacent face remains planar; (iii) calculating a new plane for the adjacent face; and (iv) adjusting vertices of the adjacent face to lie on the new plane.
- 5. The method of claim 4, wherein adjusting the vertices of the adjacent face comprises:
(a) collecting planes of all faces incident at a first vertex; (b) using the new plane instead of the collected plane for each adjacent face; (c) if there are at least three non-coplanar planes in the collected planes:
(i) calculating an intersection of any three planes; and (ii) a resulting intersection point becomes new coordinates for the first vertex; (d) if there are two non-coplanar planes in the collected planes:
(i) projecting coordinates of the first vertex perpendicularly on a line comprising an intersection between the two non-coplanar planes; and (ii) the projected coordinates become new coordinates for the first vertex; (e) if there is a single plane in the collected planes:
(i) projecting coordinates of the first vertex perpendicularly to the single plane; and (ii) the projected coordinates become new coordinates for the first vertex.
- 6. The method of claim 1, wherein the first constraint constrains a geometry of the first face to be fixed.
- 7. The method of claim 6, wherein:
the first constraint is required to be satisfied; and each of one or more vertices of the first face is repositioned along a drag vector that represents a direction of the repositioning operation.
- 8. The method of claim 6, wherein:
the first constraint is not required to be satisfied; and each of one or more vertices of the first face is repositioned along a vector that is a cross product of normal vectors of faces adjacent to the first face at each vertex.
- 9. The method of claim 1, wherein:
the first constraint constrains planes of faces adjacent to the first face not to change; the method further comprises specifying a second constraint that constrains a geometry of the first face to be fixed when repositioned; the repositioning operation is constrained in accordance with the specified first constraint and specified second constraint.
- 10. The method of claim 1, wherein the first face is selected from a boundary representation of the three dimensional model.
- 11. The method of claim 1, wherein the first face, the first constraint, and the repositioning operation are controlled through a graphical user interface of the solid modeling system.
- 12. The method of claim 1, wherein the first constraint is specified using a key on a keyboard.
- 13. The method of claim 1, wherein the modifying step comprises:
cloning the three-dimensional model; repositioning the selected first face on the cloned three-dimensional model to create a modified cloned three-dimensional model, wherein the repositioning operation is constrained in accordance with the specified first constraint; accepting the repositioning if the repositioning operation returns a success status by displaying the modified cloned three-dimensional model; and rejecting the repositioning if the repositioning operation does not return a success status by displaying a last modified cloned three-dimensional model for which a repositioning was successful.
- 14. A computer-implemented system comprising:
(a) a three-dimensional model displayed in a solid modeling system, wherein the model comprises a first face; (b) a method for modifying the first face, wherein the method is configured to:
(i) select the first face; (ii) specify a first constraint that controls a behavior of a repositioning operation for the first face; (iii) modify the three-dimensional model by repositioning the selected first face, wherein the repositioning operation is constrained in accordance with the specified first constraint.
- 15. The system of claim 14 wherein the first constraint constrains planes of faces adjacent to the first face not to change.
- 16. The system of claim 15, wherein:
the first constraint is required to be satisfied; the system further comprises a second solid three-dimensional model, wherein the second model is defined by the first face, a second face that is a duplicate of the first face with vertices repositioned based on the repositioning operation, and new side faces between the first face and the second face; and the method configured to modify performs a Boolean operation between the original three-dimensional model and the second three-dimensional model, wherein the Boolean operation is based on a direction of a drag vector from the repositioning operation.
- 17. The system of claim 15, wherein:
(a) the first constraint is not requited to be satisfied; (b) the method configured to modify comprises:
(i) replacing one or more coordinates of vertices of the first face with coordinates of repositioned vertices based on the repositioning operation; (ii) attempting to adjust one or more planes and vertices of a face adjacent to the first face so that the adjacent face remains planar; (iii) calculating a new plane for the adjacent face; and (iv) adjusting vertices of the adjacent face to lie on the new plane.
- 18. The system of claim 17, wherein the method configured to adjust the vertices comprises:
(a) collecting planes of all faces incident at a first vertex; (b) using the new plane instead of the collected plane for each adjacent face; (c) if there are at least three non-coplanar planes in the collected planes:
(i) calculating an intersection of any three planes; and (ii) a resulting intersection point becomes new coordinates for the first vertex; (d) if there at two non-coplanar planes in the collected planes:
(i) projecting coordinates of the first vertex perpendicularly on a line comprising an intersection between the two non-coplanar planes; and (ii) the projected coordinates become new coordinates for the first vertex; (e) if there is a single plane in the collected planes:
(i) projecting coordinates of the first vertex perpendicularly to the single plane; and (ii) the projected coordinates become new coordinates for the first vertex.
- 19. The system of claim 14, wherein the first constraint constrains a geometry of the first face to be fixed.
- 20. The system of claim 19, wherein:
the first constraint is required to be satisfied; and each of one or more vertices of the first face is repositioned along a drag vector that represents a direction of the repositioning operation.
- 21. The system of claim 19, wherein:
the first constraint is not required to be satisfied; and each of one or more vertices of the first face is repositioned along a vector that is a cross product of normal vectors of a face adjacent to the first face at each vertex.
- 22. The system of claim 14, wherein:
the first constraint constrains planes of faces adjacent to the first face not to change; the method is further configured to specify a second constraint that constrains a geometry of the first face to be fixed when repositioned; the repositioning operation is constrained in accordance with the specified first constraint and specified second constraint.
- 23. The system of claim 14, wherein the first face is selected from a boundary representation of the three dimensional model.
- 24. The system of claim 14, further comprising a graphical user interface where the first face, the first constraint, and the repositioning operation are controlled.
- 25. The system of claim 14, wherein the first constraint is specified using a key on a keyboard.
- 26. The system of claim 14, wherein the method is configured to modify by:
cloning the three-dimensional model; repositioning the selected first face on the cloned three-dimensional model to create a modified cloned three-dimensional model, wherein the repositioning operation is constrained in accordance with the specified first constraint; accepting the repositioning if the repositioning operation returns a success status by displaying the modified cloned three-dimensional model; and rejecting the repositioning if the repositioning operation does not return a success status by displaying a last modified cloned three-dimensional model for which a repositioning was successful.
- 27. An article of manufacture comprising a program storage medium readable by a computer and embodying logic executable by the computer to perform a method for modifying a three-dimensional model, wherein the logic comprises:
displaying a three-dimensional model in a computer implemented solid modeling system; selecting a first face of the three-dimensional model; specifying a first constraint that controls a behavior of a repositioning operation for the first face; modifying the three-dimensional model by repositioning the selected first face, wherein the repositioning operation is constrained in accordance with the specified first constraint.
- 28. The article of manufacture of claim 27 wherein the first constraint constrains planes of faces adjacent to the first face not to change.
- 29. The article of manufacture of claim 28, wherein:
the first constraint is required to be satisfied; the logic further comprises creating a second solid three-dimensional model, wherein the second model is defined by the first face, a second face that is a duplicate of the first face with vertices repositioned based on the repositioning operation, and new side faces between the first face and the second face; and the modifying comprises performing a Boolean operation between the original three-dimensional model and the second three-dimensional model, wherein the Boolean operation is based on a direction of a drag vector from the repositioning operation.
- 30. The article of manufacture of claim 28, wherein:
(a) the first constraint is not required to be satisfied; (b) the logic for modifying comprises:
(i) replacing one or more coordinates of vertices of the first face with coordinates of repositioned vertices based on the repositioning operation; (ii) attempting to adjust one or more planes and vertices of a face adjacent to the first face so that the adjacent face remains planar; (iii) calculating a new plane for the adjacent face; and (iv) adjusting vertices of the adjacent face to lie on the new plane.
- 31. The article of manufacture of claim 30, wherein the logic for adjusting the vertices comprises:
(a) collecting planes of all faces incident at a first vertex; (b) using the new plane instead of the collected plane for each adjacent face; (c) if there are at least three non-coplanar planes in the collected planes:
(i) calculating an intersection of any three planes; and (ii) a resulting intersection point becomes new coordinates for the first vertex; (d) if there at two non-coplanar planes in the collected planes:
(i) projecting coordinates of the first vertex perpendicularly on a line comprising an intersection between the two non-coplanar planes; and (ii) the projected coordinates become new coordinates for the first vertex; (e) if there is a single plane in the collected planes:
(i) projecting coordinates of the first vertex perpendicularly to the single plane; and (ii) the projected coordinates become new coordinates for the first vertex.
- 32. The article of manufacture of claim 27, wherein the first constraint constrains a geometry of the first face to be fixed.
- 33. The article of manufacture of claim 32, wherein:
the first constraint is required to be satisfied; and each of one or more vertices of the first face is repositioned along a drag vector that represents a direction of the repositioning operation.
- 34. The article of manufacture of claim 32, wherein:
the first constraint is not required to be satisfied; and each of one or more vertices of the first face is repositioned along a vector that is a cross product of normal vectors of a face adjacent to the first face at each vertex.
- 35. The article of manufacture of claim 27, wherein:
the first constraint constrains planes of faces adjacent to the first face not to change; the logic further comprises specifying a second constraint that constrains a geometry of the first face to be fixed when repositioned; the repositioning operation is constrained in accordance with the specified first constraint and specified second constraint.
- 36. The article of manufacture of claim 27, wherein the first face is selected from a boundary representation of the three dimensional model.
- 37. The article of manufacture of claim 27, wherein the first face, the first constraint, and the repositioning operation are controlled through a graphical user interface of the solid modeling system.
- 38. The article of manufacture of claim 27, wherein the first constraint is specified using a key on a keyboard.
- 39. The article of manufacture of claim 27, wherein the modifying step comprises:
cloning the three-dimensional model; repositioning the selected first face on the cloned three-dimensional model to create a modified cloned three-dimensional model, wherein the repositioning operation is constrained in accordance with the specified first constraint; accepting the repositioning if the repositioning operation returns a success status by displaying the modified cloned three-dimensional model; and rejecting the repositioning if the repositioning operation does not return a success status by displaying a last modified cloned three-dimensional model for which a repositioning was successful.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is related to the following co-pending and commonly-assigned patent application, which application is incorporated by reference herein:
[0002] U.S. patent application No. ______, filed on Apr. 25, 2002, entitled “FACE MODIFICATION TOOL”, by Sha Wang, William L. Myers, and John R. Wallace, Attorney Docket No. G&C 30566.216-US-U1.