1. Field of the Invention
The present invention pertains to computerized three dimensional geometric modeling systems.
2. Related Art and other Considerations
The computer has greatly affected essentially all forms of information management, including the geometric modeling arts. Nowadays there are numerous computer program products that allow the user to create, store, and modify geometric models and their graphical renderings of various types on a display screen, and to print or otherwise output such geometric models and their renderings. Such geometric models and their graphical renderings span the gambit from simple to complex, and can vary in subject matter, e.g., artistic, industrial, etc. Some geometric modeling computer program products are two dimensional, providing only length and width dimensions of solid shapes or parts. The more complex three dimensional (3D) computer program products, on the other hand, provide three dimensions—length, width, and depth/thickness.
Three dimensional geometric modeling programs can generate a scene or part which can comprise one or more constituent 3D solid shapes. Some three dimensional geometric modeling programs utilize Component Object Modeling (COM) and operate in conjunction with COM interfaces. Component Object Modeling and COM interfaces are described, e.g., in such publications as Rogerson, Dale, Inside COM (Microsoft Press, 1997), ISBN 1-57231-349-8. In one example object-oriented geometric modeling computer program, an executable object is used to define and generate each solid shape. The object for each solid shape can have several associated components, the components being a combination of executable code and data structure. U.S. Pat. No. 5,894,310, entitled “Intelligent Shapes For Authoring Three-Dimensional Models”, incorporated herein by reference, discloses solid shapes having various components including a boundary representation component, an historical component, a visual component; a physical component; a functional component; and a user interface behavioral component. The user interface behavioral component defines actions to be taken on specific user interface events such as drag, drop, and others.
Examples of three dimensional geometric modeling systems are provided in the following, all of which are incorporated herein by reference in their entirety: U.S. Pat. Nos. 6,392,645; 6,489,957; and 6,525,745.
In a typical three dimensional geometric modeling program (whether COM-based or not), using a graphical user interface (GUI) a human designer can select a solid shape from a catalog or the like. The catalog with its library of solid shapes is usually displayed alongside or as a window adjacent a display of an assembly-in-progress on a screen of a display device. Upon selection of the solid shape, the designer can drag or drop the selected solid shape into the assembly. In some systems, one or more of the operations of selecting, dragging, or dropping the solid shape may be accomplished using a graphics tool. An example of such a suitable graphics tool is described in the following, all of which are incorporated herein by reference in their entirety: U.S. Pat. Nos. 5,861,889; 6,128,631; and, 6,295,069.
For example, if the selected solid shape is a threaded screw, the designer can drag or drop the screw into a screw hole provided in a solid shape which already comprises the assembly (e.g., into a screw hole of a block already included in the assembly). But before doing so, the designer must select the appropriate screw from the catalog. There may be many different types of screws included in the catalog, for example: flat head screws, cross head screws, arch-headed screws, single-threaded screws, double-threaded screws. Each of these types may further be classified as Phillips head or otherwise. The designer must decide which type of screw is appropriate for the screw hole (the screw hole having already been graphically constructed in the block). Of course, the designer must also select a screw having an appropriate size (e.g., diameter and shaft length) for the existing screw hole. The designer must locate the appropriate size screw in the catalog, which may feature many sizes of screws from which to select. In fact, there may be so many screws available to the designer that the catalog may have several sub-catalogs. For example, upon the designer mentally determining that desired screw is a flat head screw, the designer may have to open a special catalog for screws, and within the screw catalog select a sub-catalog for flat head screws, and within the flat head screw sub-catalog select the exact screw of appropriate diameter and length. Further, the price, availability, experience, company preference, and other factors may affect the decision as to which particular type of screw to use. Nowadays the human designer must be cognizant of these factors if the factors are involved, although such cognizance is often achieved only with considerable experience and dependent upon mental recall.
After selecting the exact screw of the precise screw type and size, the designer must place (e.g., drop and/or drag) the screw into the correct position on the receiving solid shape, e.g. into the screw hole. Placing the selected solid shape (e.g., the selected screw) in the assembly involves precisely locating the movant solid shape relative to the target solid shape (e.g., precisely locating the screw relative to the screw hole), and then orienting the screw properly (e.g., so that the screw shaft extends into the hole in the proper direction). Once the screw is put into the assembly, the designer may want to apply a constraint between the hole and the screw to maintain their relative position.
Some geometric modeling programs assist manual positioning of a selected solid shape into an assembly by providing a snap attachment or insertion of the selected shape into the assembly. There are essentially two types of “snaps”. A first type of snapping involves positioning the selected shape in the assembly based on discrete positions of a 3D grid underlying the space occupied by the assembly. A second type of snapping involves certain specific geometrical elements, such as the center of sphere, axis of cylinder, vertex point or middle point of an edge, etc.
While various graphical tools such as those mentioned above facilitate selection and movement of a solid shape into an assembly, the operations described above require considerable attention and expertise for the designer. For example, the designer must know which type of screw is appropriate for the assembly, and remember the requirements of the screw hole for selecting the size of the screw. Moreover, other than what may be mentally recalled, the designer is unable to utilize business, historical, expertise, or environmental factors in selecting the particular solid shape for inclusion in the assembly.
In the Pro/Engineer product of PTC the behavior of a design is captured in behavioral features which appear on a part model tree. Supposedly a behavioral feature can be used to drive Part geometry through sensitivity, feasibility, and optimization studies.
The IX Functional Modeling of ImpactXoft is a behavior-driven approach to modeling in which a geometric model is generated automatically to meet certain requirements. The functional modeling approach places an emphasis on the way that volumes and features interact in the context of a part design. The three essential elements of functional modeling include functional bodies, volumes and features.
Both behavioral modeling and functional modeling provide certain intelligence in determining part geometry to satisfy functional and/or behavior requirements. However, they do not provide the intelligence in selecting parts from part libraries in considering the price, availability, experience, company preference, and the sizing and position of the parts.
Companies today are facing ever increasing competitive pressures from a growing global market place. These pressures are requiring companies to dramatically shorten the design cycle and time to market, while providing even better product quality. What is needed, therefore, and an object of the present invention, is a geometric modeling system which aids a designer in selecting, sizing, and positioning of parts, whether in assembly design or in other areas such as computer aided engineering (CAE) (e.g., for bringing intelligence about engineering simulation into part selection and positioning as well as boundary condition creation).