Virtual components for CAD models

One embodiment of the invention is a method for composing a computer-aided design (CAD) drawing that includes modeled components and non-modeled components. The method includes receiving a selection of properties for a non-modeled component to include in the CAD drawing, where the non-modeled component defines an element of an object modeled in the CAD drawing that is not included in a display representation of the object including an instance of the non-modeled component in the CAD drawing. Although not shown in display representations, the non-modeled elements may be displayed in a browse view showing the elements included in a CAD drawing, and in a bill of materials generated from the CAD drawing.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims benefit of U.S. provisional patent application Ser. No. 60/785,970, filed Mar. 23, 2006, and U.S. provisional patent application Ser. No. 60/785,862, filed Mar. 23, 2006, both of which are herein incorporated by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention generally relates to computer software. More specifically, the present invention relates to techniques for creating and using virtual components in a computer-aided design (CAD) drawing.

2. Description of the Related Art

The term computer-aided design (CAD) generally refers to a broad variety of computer-based tools used by architects, engineers, and other construction and design professionals. CAD software is frequently used to compose CAD drawings that include two-dimensional (2D) and/or three-dimensional (3D) models of a mechanical design. Further, the parts included in the 3D model may be used to generate a bill of materials (BOM) for part procurement or cost analysis of a proposed design. Generally, a BOM includes an entry to represent every part included in a 3D model of a mechanical design.

Even with the use of CAD software, the task of creating, manipulating, and rendering a 3D model of a mechanical design is complex. Also, mechanical designs frequently include standard parts that are not relevant to the design process. For example, parts such as wiring, inserts, fasteners, paint, and lubricants and the like are not typically included in a 3D model. Because modeling these parts is time-consuming and unnecessary, they are usually not included in the 3D model. However, because many standard parts are not typically included in the 3D model, they are omitted from a BOM generated from the 3D model. Nevertheless, since the cost of these parts must be captured, there is usually a requirement for non-modeled parts to be included in the BOM.

In the prior art, one approach to capturing the non-modeled parts has been for a designer to manually add these parts to the BOM after it has been created from the 3D model. However, since parts are not added to the BOM contemporaneously to the modeling process, this approach can result in parts being overlooked, and can result in incomplete or erroneous BOMs. Another approach in the prior art has been to create separate files containing only the parts that are not in the 3D model, and to merge these files with the 3D model files when both are complete. However, this ad-hoc approach results in a complex system of multiple files which can be difficult to manage and maintain. Furthermore, neither of these approaches accounts for the fact that although some elements of a mechanical design should not be included in a display or visual representation of the object being designed, they are part of the object being represented by the 3D model.

As the foregoing illustrates, there is a need in the art for techniques for creating and using virtual components in a CAD drawing.

SUMMARY OF THE INVENTION

The present invention generally allow non-modeled or “virtual components” to be included in a (CAD) drawings. More specifically, embodiments of the invention include a method for generating a CAD drawing that includes modeled components and non-modeled components. The method generally includes receiving a selection of properties for a non-modeled component to include in the CAD drawing, where the non-modeled component defines an element of an object modeled in the CAD drawing that is not included in a display representation of the object. Once defined, the method also includes adding an instance of the non-modeled component to the CAD drawing. Although not shown in 2D and/or 3D display representations of the object being modeled, the non-modeled elements may be displayed in a browse view showing the elements included in a CAD drawing, and in a bill of materials generated from the CAD drawing.

Advantageously, the use of virtual components in a CAD drawing both simplifies the appearance of 2D and 3D models, while simultaneously allowing these models to be used to generate an accurate BOM or parts list. By defining a non-modeled element as a virtual component, that element may be included in the CAD drawing, but not shown in display representations. Further, an associative virtual component may be associated with modeling elements that are shown in 2D or 3D representation of the CAD drawing. When such a modeling element is included in the CAD drawing, any associative virtual components associated with that modeling element are automatically included in the model. Thus, virtual components may simplify the modeling process, while at the same time, a 2D or 3D model or display representation generated from the CAD drawing may more accurately portray the object or mechanical design being modeled.

DETAILED DESCRIPTION

Embodiments of the invention provide techniques for creating and using virtual components in a 3D model composed using a CAD application. A virtual component may be included in a 3D model, but need not be displayed in views generated from the 3D model. In one embodiment, a model browser window of a CAD application allows users to add virtual components to a 3D model. Typically, virtual components represent elements of a mechanical design that are part of the object being modeled that do not need to be displayed in a rendering of the 3D model. Since virtual components are not displayed in rendered views, there is no need to define, maintain, and manage 3D images of the virtual components included in the 3D model. Thus, views of a 3D model are less cluttered with elements that are not relevant to the design process. At the same time, since the virtual components are part of the 3D model, elements represented by virtual components are included in parts lists and BOMs generated from the 3D model.

Additionally, virtual components may be associated with other elements in a 3D model that are displayed. Such virtual components are referred to herein as associative virtual components. If a component in a 3D model is moved or copied, any associative virtual components associated with that part are moved or copied as well. Thus, when a part is copied in a 3D model, the use of associative virtual components can eliminate repetitive entry of part information. For example, a common component of an integrated circuit (IC) is the pin connections used to connect the IC to a PCA board. Individually modeling these connections would be wasteful. However, by defining an IC to be associated with a number of pin connections that are defined as virtual components, these elements may automatically be included in a 3D model. Further, modeled elements having associative virtual components may be predefined and stored in a parts catalog. A designer may then include one of the predefined parts in a 3D model without having to specify a collection of associative virtual components for that part, resulting in greater efficiency.

FIG. 1is a block diagram illustrating components of a CAD system100used to generate a 3D model for a mechanical design, according to one embodiment of the invention. The components illustrated in system100are included to be representative of computer software applications executing on existing computer systems, e.g., desktop computers, server computers, laptop computers, tablet computers, and the like. The software applications described herein, however, are not limited to any particular computing system and may be adapted to take advantage of new computing systems as they become available.

Additionally, the components illustrated in system100may be implemented as software applications that execute on a single computer system or on distributed systems communicating over computer networks such as local area networks or large, wide area networks, such as the Internet. For example, a graphical user interface110may include a software program executing on a client computer system at one physical location communicating with CAD application105at another physical location. Also, in one embodiment, CAD application105and graphical user interface110may be provided as an application program (or programs) stored on computer readable media such as a CD-ROM, DVD-ROM, flash memory module, or other tangible storage media.

As shown, the system100includes, without limitation, CAD application105, graphical user interface110, a 3D model120, user input devices130, display device115, and a database140. CAD application105may be configured to allow users interacting with GUI interface110to compose a 3D model120. Accordingly, CAD application105and GUI interface110may include programmed routines or instructions allowing users to create, edit, load, and save 3D model120. In one embodiment, the Autodesk® Inventor™ application program (and associated utilities) may be used. Those skilled in the art will recognize, however, that the components shown inFIG. 1are simplified to highlight aspects of the present invention and that a typical CAD application105and GUI interface110may include a broad variety of additional tools and features used to compose and manage 3D model120. Further, although described herein relative to a 3D modeling tool, like the Autodesk® Inventor™ application, one of skill in the art will recognize that the techniques for creating, using, and managing virtual components described herein may be used with both 2D and 3D cad drawings and models.

Illustratively, 3D model120includes 3D model parts122, virtual components124, and part associations126. 3D model parts122are elements of a mechanical design that are displayed in a 3D model view112. Virtual components124are elements of the mechanical design represented by 3D model120that are not displayed in 3D model view112. Virtual components124may; however, be included in displays generated by a model browser tool114and in BOMs generated using a BOM tool116. Part associations126enable 3D model parts122to be associated with an associative virtual component, as appropriate in a given case. In other words, part associations126specify what virtual components124are associated with a given 3D model part. Further, virtual components122may have properties that describe aspects of the real-world object modeled by the virtual component. For example, properties such as mass and volume may be included in the properties of a virtual component. Such proprieties may be useful for engineering calculations of the expected weight, center of gravity, mass, volume and other physical properties of the real-world object modeled by 3D model120.

In one embodiment, GUI110allows users to create and edit 3D model120. For example, the Inventor™ application provides a 3D modeling tool used by designers and engineers to produce and perfect new products. As shown, GUI110includes 3D model view112, model browser tool114, BOM tool116, and a virtual component definition tool118. 3D model view112presents a graphical representation of 3D model120to the user. In one embodiment, 3D model view112only displays the 3D model parts122. In contrast, model browser tool114may be configured to present a user with a listing of all parts that are included in 3D model120, including both 3D model parts122and virtual components124. BOM tool116may be configured to generate and display the BOM for the 3D model120. Virtual component definition tool118allows a user to define the properties of a new virtual component124.

In one embodiment, database140stores a parts catalog145. Parts catalog145may include a set of pre-modeled elements that a designer may wish to include in a given design. For example, parts catalog145may include a number of pre-modeled construction elements or components of relevant to a particular product such as a collection of available integrated circuits or connectors. Of course, the pre-modeled parts in parts catalog145may be tailored to suit the needs of an individual case. The pre-modeled elements in parts catalog145may provide a collection of 3D model parts122, virtual components124, or both. Importantly, parts catalog145is available for use with any 3D model composed using CAD application105. Thus, parts included parts catalog145, along with any associated virtual components, can be efficiently reused in multiple mechanical designs.

FIG. 2illustrates a screen display200displaying an instance of 3D model120using both a model browser210and a 3D model view220, according to one embodiment of the invention. In this example, 3D model view220displays 3D model120that shows a design of a work table. As shown, the work table includes a table top230and four table legs240. 3D model view220also displays an icon235a circled number “1,” linked to the table top230, and icons245, each a circled number “2,” linked to legs240.

Screen display200also includes model browser210. In one embodiment, model browser tool114may be configured to identify and display the elements present in a given 3D model120. Unlike the view of the work table in 3D model view220, the model browser210lists both 3D model parts122and virtual components124included in 3D model120. Accordingly, in this example, model browser210presents a complete list of the parts included in the work table being modeled. The first entry listed in model browser210includes part description “Table Top”252, part number “A100”254, and icon250(a circled number “1”). Icon250in model browser210corresponds to icon235in 3D model view220, with both icons identifying the table top part230. Thus, by using the same circled number “1,” icons250and235enable a user to link the graphical representation of table top230in the 3D model view220to the corresponding element listed in the model browser210.

Similarly, model browser210displays four entries which include icons260(the circled number “2”). These four entries correspond to the four table legs240in 3D model view220, where each table leg240is labeled with one of icons245(the circled number “2.”) Again, the use of icons allows the user to link the graphical representation of a part in 3D model view220to the textual listing of the same part in model browser210.

Model browser210also displays virtual components124included, but not displayed, in the model of the table shown in 3D view220. For example, model browser210contains four entries for a part “¼ inch Screw,” having part number “X001.” Each of these four entries includes an icon270(the number “3” in a square). Also shown is one entry for the part “Paint, White” with a part number of “PT01.” This entry includes icon280(the number “4” in a square). Illustratively, square icons are used to signify that the corresponding parts are an instance of virtual components124. For example, the virtual components included in the work table model include the “¼ inch Screw” component, and the “Paint, White” component. By using different icons to distinguish 3D model parts122from virtual components124, a user can quickly identify any virtual components124listed in model browser view210that are present in a given 3D model120.

In this example, both the “¼ inch Screw” and the “Paint, White” parts are virtual components124in 3D model120, since both are part of the 3D model, components, but not modeled by a designer as part of the 3D modeling process. Consequently, neither of these parts is displayed in 3D model view220. Thus, the use of virtual components124, in accordance with embodiments of the invention, avoids the time and effort of including these parts in the 3D model120.

Additionally, virtual components124are included in a BOM generated by BOM tool116.FIG. 3illustrates an example screen display300of a BOM, according to one embodiment of the invention. As shown, screen display300contains a BOM list305. In this example, BOM list305is generated using the elements of the work table illustrated inFIG. 2. Thus, BOM list305contains an entry for each part included in the work table. For example, the fourth line includes an item number310, a part number320, a part description330, and a quantity required340. That is, entry “3” on BOM list305specifies that the work table requires four ¼ inch screws, and that the screws may be identified by a part number of “X001.” Importantly, BOM list305lists all the parts that are present in 3D model of a work table, including the 3D model parts122(items1,2) and virtual components (items3,4). Thus, the use of virtual components124, in accordance with embodiments of the invention, allows more accurate BOMS and/or parts lists to be generated from a 3D model, without requiring the designer to manually account for non-modeled elements.

FIG. 4illustrates a method400for adding virtual components124to a 3D model, according to one embodiment of the present invention. Persons skilled in the art will understand that any system configured to perform the steps of method400, in any order, is within the scope of the present invention. As shown, the method400begins at step410, where a part is identified that is required for a given design, but is not necessary in a 3D rendering of that design. At step420, the properties of the virtual component are defined. For example, the display name, cost, or supplier of a virtual component may be defined. Of course, the particular collection of properties for a virtual component may be tailored to suit the needs of an individual case. At step430, the virtual component may be associated with one or more 3D model parts122. That is, the virtual component may be defined as an associative virtual component. If so, at step440, part associations126between 3D model parts122and the virtual component124are specified. At step450, the newly specified virtual component is added to virtual components124of 3D model120.

FIG. 5illustrates a dialog box500for specifying the properties of a virtual component, according to one embodiment of the invention. Dialog box500presents an example of a graphical interface for specifying the properties of a virtual component. As shown, the virtual component properties definition screen510lists the name of each property and a text field for entry of the value of that property on a separate line. For example, the property “PART NUMBER”520is next to text field530, which contains the value “X001.” Also, the property “DESCRIPTION”540is next to text field550, which contains the value “¼ inch Screw.” In one embodiment, model browser tool114may use this data to create a view of the virtual component. For example,FIG. 2shows model browser210, which displays four lines for item “3” (having icon270), where each line has the description of “¼ inch Screw,” and a part number of “X001.” Similarly, as shown inFIG. 3, the BOM includes a line for item number “3”310, with part number “X001”320and description “¼ inch Screw”330. The property values specified in associative virtual component properties definition screen510are stored in virtual components124of 3D model120and are utilized in the generation of GUI110, including model browser210and BOM list305.

As stated, in one embodiment, virtual components124may be associative virtual components. Associative virtual components are virtual components124that also have part associations126defined in 3D model.FIGS. 6A and 6Billustrate a screen display of an exemplary graphical user interface showing the use of associative virtual components, according to one embodiment of the invention. Like the screen display200illustrated inFIG. 2, screen display600inFIG. 6Aincludes a model browser610provided by model browser tool114and a 3D model view620provided by 3D model view112. As shown inFIG. 6A, model browser610displays a list615of the parts included in a 3D model120representing an integrated circuit board. As in the previous example, icons660,670,680and690allow a user to identify the same parts in both the model browser610and in 3D model view620. Importantly, the parts having icons690(the number “4” in a square) are present in model browser610, but are not displayed in 3D model view620. Thus, the parts having icon690and having description “PROCESSOR PIN” are virtual components124in this particular 3D model.

In this example, the processor pins (having icon690) are associative virtual components which are associated to the microprocessor640. The processor pins are used to mount a first model part representing microprocessor640to a second model part representing a PCA board650. Microprocessor630has four sides, and requires two processor pins per side, for a total requirement of eight processor pins per microprocessor. Consequently, the parts list615of model browser610includes eight entries with icon690and description “PROCESSOR PIN,” signifying that eight processor pins are required in this 3D model.

As illustrated inFIG. 6B, associative virtual components are useful in situations where parts in 3D model are used multiple times.FIG. 6Billustrates the screen display600ofFIG. 6Aafter a user has changed this 3D model. As shown in 3D model view620, microprocessor640has been duplicated, resulting in a second microprocessor645in this 3D model. Consequently, model browser610displays an updated list615of parts that make up the 3D model of an integrated circuit board. Importantly, the item having icon670and a description of “MICRO PROCESSOR” is now listed twice. Further, the entry with an icon690and a description of “PROCESSOR PIN” is now listed sixteen times. Thus, since the processor pins are associative virtual components that are associated to the microprocessor, the quantity of processor pins690in this 3D model automatically changes in proportion to the number of microprocessors. This automatic adjustment of the quantity of virtual components required saves time and effort in the construction of this 3D model.

FIG. 7illustrates a method700for generating a BOM from 3D model that includes virtual components, according to one embodiment of the invention. Persons skilled in the art will understand that any system configured to perform the method700, in any order, is within the scope of the invention. The method700begins at step710, where a 3D model part from the 3D model is selected and added to the BOM. At step720, a determination is made of whether the 3D model part has any associated virtual components. If so, the method700continues at step730, where the associated virtual components are added to the BOM. At step740, a determination is made of whether there are any more 3D model parts in the 3D model. If so, the method700returns to step710. Once all 3D model parts have been added to the BOM, the method700continues at step750, where the standard virtual components (i.e., not associative virtual components) that are part of the 3D model are also added to the BOM.

Advantageously, the use of virtual components simplifies the appearance of 3D models generated from a CAD drawing, while simultaneously allowing the 3D model to be used to generate an accurate BOM or parts list. By defining a 3D modeling element as a virtual component that element may be included in the 3D model, but not shown in 3D representations generated of that model. Further, an associative virtual component may be associated with one or more 3D modeling elements that are shown in 3D representation of the model. When such a 3D modeling element is included in the 3D model, any associative virtual components associated with that 3D modeling elements are automatically included in the model. Thus, virtual components may simply the modeling process, while at the same time, the 3D model more accurately portrays an object or mechanical design being modeled.