« PreviousContinue »
1 INTEGRATING OBJECT-ORIENTED DESIGN SOFTWARE WITH RECORD-BASED CAD SOFTWARE
CROSS-REFERENCE TO RELATED APPLICATIONS
The present invention is a U.S. National Stage Application corresponding to PCT Application No. PCT/CA2007/ 000241, filed on Feb. 16, 2007, entitled “Integrating ObjectOriented Design Software With Record-Based Cad Software,” which claims the benefit of priority to U.S. Provisional Patent Application No. 60/774,096 filed on Feb. 16, 2006, entitled “Integrating object-oriented design software with record-based CAD software.” The entire content of the above-mentioned patent applications is incorporated herein by reference.
BACKGROUND OF THE INVENTION
1. The Field of the Invention
This invention relates to systems, methods, and computer program products for modeling and design.
2. Background and Relevant Art
As computerized systems have increased in popularity, so has the range of applications that incorporate computational technology. Computational technology now extends across a broad range of applications, including a wide range of productivity and entertaimnent software. Indeed, computational technology and related software can now be found in a wide range of generic applications that are suited for many enviromnents, as well as fairly industry-specific software.
Some examples of industry-specific application programs include those known as Computer-aided design (i.e., “CAD”) programs, such as AUTOCAD. In general, CAD programs provide a user with the ability to draw lines on a CAD user interface, where those lines represent various “design entities” or elements in a plan view of a raw design space. To manage each of the various design entities created through the user interface, CAD programs typically incorporate a recordbased database.
In general, the record-based database can also be referred to as a “linear” database, since it includes a set of sequential records whose relationships are based primarily on the sequence/moment in time at which those records were created. For example, when a user creates a line (i.e., a “design entity”) in a CAD user interface, the data related to that line (such as type, position, etc.) are stored in a newly-created record in the record-based (linear) database. When a user creates the next line (or circle, etc.) in the CAD user interface, the corresponding linear (or sequential) database creates a new record in the linear database. Since the main relationship between these records is primarily based on sequence, each record includes little or no relation to other records within the database that were created much earlier or later in the sequence.
By contrast, there are also now design applications that incorporate non-sequential, tl1ree-dimensional (“3D”) relationships for records, such as object-oriented software programs used for design functions. Generally, an object-oriented database represents each entity as an intelligent object block (analogous to a linear database’s record). In contrast with the record in a record-based database, which is basically just a collection of data, each object block can be thought of as an independent program of computer-executable instructions in addition to certain user-entered data. The indepen
dent, intelligent nature of object blocks can enable a wide range of functionality not otherwise available to records.
For example, object blocks can identify multiple relationships with other object blocks, regardless of sequence entered. In particular, an object-oriented design program incorporates a hierarchical database rather than a linear one. In addition, object blocks can determine how they relate to other object blocks and to the complete solution represented by a particular design. For example, if a line is requested to be a specific length (or shape) by text entry or any other manner, but the current design cannot allow it, the object block for the line understands that it car1r1ot comply with the request due to its relations within the complete solution. The object block can nevertheless remember this request, and apply it at such time that other factors change to a point where the original request could be allowed. As a result, the object blocks of an obj ect-oriented design program are dynamic, and the knowledge that can be maintained within an object block is substantially greater than any conventional linear record.
A properly structured object-oriented database, such as a design software program (e.g., a JAVA-based program), can be configured to convert the linear data from the record-based database to an appropriate format in an object-oriented database. In cases such as these, record-based design entities (such as a simple AUTOCAD line) can be modified or converted to implement detailed, object-oriented blocks. Unfortunately, organizations are sometimes hesitant to change to a new relational, obj ect-oriented model, such as described above for any number of reasons.
For example, an organization may be reticent to remove or supplant existing legacy systems or related platforms using a record-based, linear database program. On one level, this may be due to the inherent difficulties with retraining employees who are already fluent in the use of linear database applications. In addition, the organizations may desire to avoid difficulties that could occur updating business partners who may need documentation in a new fonnat (based on linear records). One will appreciate, therefore, that these and other such factors can create an inertia effect toward an organization’ s migration to a more effective, object-oriented database format.
BRIEF SUMMARY OF THE INVENTION
Implementations of the present invention provide systems, methods, and computer program products configured to integrate linear and object-oriented design programs in a seamless fashion. In particular, implementations of the present invention allow a user to work within a linear design application enviromnent and, at the same time, incorporate some or all of the advantages of an obj ect-oriented database. In one implementation, for example, a user can link one or more design entities from a linear design application to one or more object blocks of an object-oriented database. When the user modifies the geometry of the linked design entity (e.g., trimming a design entity line), the corresponding object block can recognize the modification to the design entity, and cause redefining of the data model in both the obj ect-oriented database and record-based (linear) database as appropriate.
For example, a method of providing object-oriented entity manipulations through a user interface of the CAD application program can involve providing one or more object status item(s) in a CAD user interface. In such a case, the selection of the object status item(s) results in a change in object state for one or more design entities. The method can also involve receiving one or more selections to create or manipulate one or more design entities in the CAD user interface. In addition,
the method can involve identifying an object state for each of the one or more design entity selections. Furthermore, the method can involve manipulating one or more database entries in accordance with the identified object state for each of the one or more design entities.
In addition, a system configured to provide a record-based application program with functionality of an obj ect-oriented design application program can include one or more recordbased application programs having one or more CAD user interfaces for receiving user input and providing display of the user input. The system can also include a linear database configured to store one or more linear records corresponding to one or more design entities created through the one or more CAD user interfaces.
In addition, the system can include an obj ect-oriented design application program having one or more interface components configured to interact with the one or more record-based application programs. Furthermore, the system can include an object-oriented database configured to store one or more object blocks corresponding to any of the one or more design entities. In this case, the one or more interface components are configured to correlate changes in the one or more linear records with the one or more object blocks. The one or more interface components are also configured to correlate changes in the one or more object blocks with the one or more linear records.
Additional features and advantages of exemplary implementations of the invention will be set forth in the description which follows, and in part will be obvious from the description, or may be leamed by the practice of such exemplary implementations. The features and advantages of such implementations may be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other features will become more fully apparent from the following description and appended claims, or may be leamed by the practice of such exemplary implementations as set forth hereinafter.
BRIEF DESCRIPTION OF THE DRAWINGS
In order to describe the manner in which the above-recited and other advantages and features of the invention can be obtained, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered to be limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
FIG. 1A illustrates an implementation of the present invention in which a user creates or modifies one or more design entities through a CAD user interface that is linked to both a record-based database and an object-oriented database using a default setting;
FIG. 1B illustrates an implementation of the present invention in which a user creates or modifies one or more design entities through the CAD user interface of FIG. 1A after selecting one or more object status items;
FIG. 1C illustrates an implementation of the present invention in which an object block of the object-oriented database of FIGS. 1A-1B corrects a user selection for an impractical modification of a design entity in the CAD user interface of FIGS. 1A-1B;
FIG. 1D illustrates an implementation of the present invention in which a user opens a tl1ree-dimensional interface and
makes corresponding changes to one or more design entities of the CAD user interface in the three-dimensional interface; and
FIG. 2 illustrates a flowchart of a series of acts in a method of integrating an obj ect-oriented database with a recordbased, or linear, database in accordance with an implementation of the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
The present invention extends to systems, methods, and computer program products configured to integrate linear and obj ect-oriented design programs in a seamless fashion. In particular, implementations of the present invention allow a user to work within a linear design application enviromnent and, at the same time, incorporate some or all of the advantages of an object-oriented database. In one implementation, for example, a user can link one or more design entities from a linear design application to one or more object blocks of an obj ect-oriented database. When the user modifies the geometry of the linked design entity (e.g., trimming a design entity line), the corresponding object block can recognize the modification to the design entity, and cause redefining of the data model in both the object-oriented database and record-based (linear) database as appropriate systems, methods, and computer program products configured to integrate linear and obj ect-oriented design programs in a seamless fashion. In particular, implementations of the present invention allow a user to work within a linear design application enviromnent and, at the same time, incorporate some or all of the advantages of an object-oriented database. In one implementation, for example, a user can link one or more design entities from a linear design application to one or more object blocks of an obj ect-oriented database. When the user modifies the geometry of the linked design entity (e.g., trimming a design entity line), the corresponding object block can recognize the modification to the design entity, and cause redefining of the data model in both the object-oriented database and record-based (linear) database as appropriate.
As will be understood more fully herein, these and other advantages are realized at least in part since implementations of the present invention provide one or more mechanisms for translating or lir1king record-based data (e.g., linear or sequential database entries representing graphical entities in a CAD application) to detailed, obj ect-oriented blocks. This translation/lir1king can be accomplished and mediated at least in part through the use of one or more intennediate interface 107 components configured to correlate record-based changes with object blocks in an object-oriented database. Linking to the object blocks, in tum, allows a CAD interface to take advantage of some of the more complex features of an obj ect-oriented system, such as producing, viewing and modifying three-dimensional (3D) views of a design. In one implementation, the object-oriented design application program is implemented using a JAVA-based programming language.
The used of obj ect blocks (e.g., JAVA-based object blocks) through a separate or intermediate interface 107 allows a user to work within a record-based CAD application, within an obj ect-oriented application, or within a third application linked to the CAD application by the object-oriented application. The user can then implement the functions and output from any or all of the CAD-based or obj ected-oriented-based applications in an integrated, seamless fashion, such as modifying (e.g., trimming, extending, or mirroring, etc.) design entities without additional reactors, lisp type programs, or
additional input and without having to replace the pre-existing CAD-based application program.
FIG. 1A illustrates an overview schematic diagram in which a CAD user interface is linked to both a record-based database and an object-oriented database via one or more intermediate interface 107 components using a default setting. In particular, FIG. 1A illustrates a basic CAD user interface 105 comprising a series of drawing tools 110. FIG. 1A also illustrates, however, in contrast with typical CAD-based application programs, one or more object status items 115 provided by an object-oriented design application program. Furthennore, FIG. 1A illustrates the use of one or more intermediate interface 107 components 107, which are part of the object-oriented design application program, that interface between the CAD user interface 105 and both a record-based database 113 and an obj ect-oriented database 117.
As a preliminary matter, reference herein to “CAD” or “AUTOCAD” is meant to describe programs that incorporate general design functionality using linear or record-based databases, rather than a specific reference to any particular existing product. In addition, although any database entry might be thought of as a “record” on some level, the tenn “record-based” when referring herein to an application program or database will refer to application programs or databases that primarily use sequential or “linear” database entry/ modification mechanisms, rather than obj ect-oriented database entries. As previously mentioned, these types of database entries (i.e., records) are not only typically sequential, but also tend to include only basic information about a design entity, such as design entity type, design entity position, or the like. In contrast to object-oriented applications that use object blocks, therefore, a “record” can be understood herein as a passive data entry, while an “object block” can be understood herein as an active data entry with added intelligence.
In any event, FIG. 1A illustrates an implementation of the present invention in which a user creates one or more design entities without selecting one or more object status items 115. In this case, the object state for each design entity would be set to “off.” In general, object status item 115 can comprise any of a selectable button, icon, or other fonn of selectable option that would be presented through a graphical user interface on a computer display. In one implementation, the object-oriented design application provides one or more plugins or modules, in addition to the object status item 115, which tag each design entity created or used in CAD user interface 115 with an object status field (not shown). The object status field for each design entity, therefore, presents the “object state,” which indicates whether the user has selected the object status item 115 for that design entity.
In this example, FIG. 1A shows that a user selects use of a line, and draws line 120, potentially representing a wall in a design space. Since the user has not, in this example, selected item 115, intermediate interface 107 determines that the object state for design entities 120 and 125 are set to “off,” (or other appropriate identifier in the object status field), and thus no desire from the user to link these design entities to an object block. As shown in FIG. 1A, therefore, intermediate interface 107 identifies the object state from any object status field associated with instructions regarding design entity 120 as set to “off.” Intennediate interface 107 then simply passes instructions regarding the creation of design entity 120 as message 123 to record-based database 113; but sends no corresponding instructions to obj ect-oriented database 117.
In contrast with FIG. 1A, however, FIG. 1B shows that the user has selected object status item 115 in the context of creating or modifying design entity 120. In one implementa
tion, mere selection of object status item 115 can involve intermediate interface 107 copying all record data (e.g., 130, 135) corresponding to each design entity displayed in CAD user interface 105 (or all applicable records) and creating corresponding object blocks (e.g., 133, 137) in database 117. In the illustrated example, however, this selection simply causes a change in object state at least with respect to design entity 120 to “on,” so that design entity 120 is correlated with an object block. For example, FIG. 1B shows that the user’s drawing of design entity 120 causes intennediate interface 107 to send a “create object” message 140 to object-oriented database 117, in addition to passing message 123 (also shown in FIG. 1A) indicating a request to create a new record 130.
In general, one will appreciate that there are a number of different ways that a user can correlate design entity 120 between record-based database 113 and object-oriented database 117. For example, a user could select object status item 115 before drawing any design entities, and set that as a default for all design entities until deselecting the object status item 115. Since each following design entity would have the same object state of “on,” the intermediate interface 107 would create or modify both a record and an object block corresponding to the design entity during creation, modification, or other fonn of update.
In other cases, however, the user could select on particular design entities to have a particular object state of “on” or “off.” Inparticular, the user could select object status item 115 during or after drawing line design entity 120, and/or make an additional selection (not shown) indicating that design entity 120 should have an object state of “on.” In such a case, intermediate interface 107 could recognize creation or modification of design entity involves modifications to an object block in database 117 as well as a record in database 113, while creation or modification of design entity 125 involves modifications only to a record in database 113. In still further cases, one or more selection items (not shown) can be provided for the user to select conversion of all design entity records (or all records, design entity or not) from database 113 to database 117. This would involve any one or more of copying, transferring, or moving data from database 113 to database 1 17 to ensure proper correlation, or total substitution of record-based database 113 with object-oriented database 117.
In addition to the foregoing, FIG. 1B also shows that selection of obj ect status item 115 can result in the presentation of additional user interfaces or design choices to a user. For example, FIG. 1B shows that upon identifying that the user has selected object status item 115, intermediate interface 107 presents design interface options 145 as an inclusion in CAD user interface 105, or as a separate standalone interface. In either case, the user can add refinements or other details to a design entity in CAD user interface 105. For example, FIG. 1B shows that the user has selected a “wall” option, in addition to the object status item 115. Thus, when the user draws design entity 120, the intermediate interface 107 recognizes the object state for the design entity, as well as the corresponding details entered through interface 145.
The intermediate interface 107 then sends message 140 to obj ect-oriented database 117 not only to create an object (133) for design entity 120, but also to include the additional details requested, such as that the design entity represents a wall, or even other details about the wall structure, color, design, texture, materials, etc. Ordinarily, however, these and other details might not be included in the typical record for a design entity in a CAD application. For example, FIG. 1A shows that intennediate interface 107 simply sends the same message 123 as shown in FIG. 1A that the type of design