Streamlining Design with CAD Software


Engineers work with a multitude of computer aided drafting (CAD) software platforms to accomplish their job duties. Each software package, (eg. PTC Pro-E/Creo, Dassault Systèmes SolidWorks, Autodesk Inventor/AutoCAD…) has built into it a set of tools that can be used to streamline the design process. These CAD packages are great tools for designing and representing a product such that it can be manufactured by a third party with minimal need to interact with the original designer. However, there are several steps involved in design and documentation of any given product that are time consuming outside of the actual design work. Many of these can be streamlined through the use of tables, parameters/properties, equations, and/or macros. When properly applied, these tools will shorten design cycle time and decrease the time to produce a product, ultimately reducing the cost of engineering overhead. For the purpose of this paper the focus will be limited to AutoDesk Inventor, SolidWorks and ProE/Creo, since these are the most commonly used engineering CAD packages in most industries requiring 3D CAD modeling.


An example of a design cycle that can be shortened through the use of the aforementioned streamlining tools is as follows:

Company X produces widgets of varying size and complexity and is currently developing a new series of widgets to be brought to market alongside its current product offering. The design team has just finished with the initial design concept and it has been decided that the new product is going to be offered in a variety of sizes with varying options. Now the design team will be tasked with producing each product option and the documentation necessary to manufacture each variant. The classical method, by which, to accomplish this is simply to design each variant from scratch and create a drawing for each. A shortcut may be possible by taking the initial concept design and documentation and modifying it for each variant, however this will still be time consuming and repetitive. Also, if a design modification is made that affects the whole series once the design work has been completed, each variant will need to be modified and the documentation updated accordingly. A lot of time gets invested in engineering design work and a good proportion of it is dedicated to repetitive tasks that could otherwise be automated or streamlined.


Each CAD package has its own set of tools that can be used to increase productivity. Across different platforms, these tools go by varying names and function somewhat differently, so this paper will not go into specifics about any one CAD package.


In the above mentioned example the problem is that several variants of a given product need to be designed. There is a fairly simple solution to this problem; the product can be designed in such a way that a single cad model can represent most or all of the product variants through the use of a design table. In each CAD package there exists a method by which a table of values can be used to drive the design of several different variations of a single CAD file. Design parameters may be things such as part number, dimensional values, color, material, description, or basically anything that sets apart one variant of a product from another. In Autodesk Inventor this is accomplished with iParts/iAssemblies, in Creo/Pro-E it is called a family table, Solidworks has design tables. All are tabular data sets that drive design parameters. For each product variant there is a table of values that defines aspects of its design that make it different from another variant. The presence or lack of a given product feature such as a hole or rib can be controlled in this manner. This also applies to assemblies; differing assembly variants may contain differing part variants, or individual parts may be excluded. Through the use of a table of values, a multiplicity of designs can be quickly and easily created from a single set of CAD files.

Parameters and Properties

These two words are uses to describe the same thing in different CAD packages. Pro-e/Creo calls them parameters, Inventor calls them iProperties and Solidworks uses the term custom properties. Whatever they are called they are part of a valuable tool that can be used to drive your design or fill in relevant data fields in your drawings. From here forward they will be referred to as parameters.

Once again, in looking at the example problem described earlier, several drawings will need to be produced to describe several variants of a given product. Drawing templates for any of the popular CAD programs can be customized to include data fields such as part number, description, material, etc… These data fields can either be filled in manually by simply typing in a text or numerical value, or they can be linked to a parameter that is set in the part or assembly being represented in the drawing. This is one of the key time saving tools all of these CAD packages offer. While designing a product all of the relevant design parameters will be known to the designer and can, at the time of design, be entered into the corresponding parameter field of the part or assembly file. When it comes time to produce a drawing of the design, a properly formatted and customized template will automatically display all of the relevant title block and bill of materials information without the need to manually enter anything. The designer can be assured that the proper design intent is passed along from the part/assembly file to the drawing file without the need to enter in and cross check values in the template.
Parameters may also be used to drive design intent much like tables can. They can be used in conjunction with a design table to specify any design feature, or in some CAD packages can directly drive design intent such as dimensions and visible states of features or parts. In a way parameters are like table instance values, but only for the current part or assembly instance you are working on.


All engineers are familiar with equations and it should be expected that equations can be applied in CAD design to help to drive your design. Some programs allow you to enter equations directly into the dimension fields while sketching or creating features. Others have a separate window or interface you would enter your equations into in a list format. This allows you to specify, for example, that the depth of a slot feature is related to its width by some factor, or that the thickness of a part is related to its length, width, or diameter. The number of teeth on a gear can be driven by the outer diameter of the gear blank. The possibilities are endless. Equations can even include simple logic with if-then statements. This would be useful if you wanted to specify industry standard keyway size in a shaft as related to the shaft diameter with an if-then-else-else-else… statement, for example. Through the use of equations in your designs you can cut down the amount of time it takes to make multiple modifications to a part or assembly when features or parts are interrelated by a known factor. Changing a single value could, potentially do all of the work for you updating all other related values at the same time.

Equations can also be entered into the previously mentioned tables and are not limited to driving numerical values. Items such as suppression states of parts or features, inclusion or exclusion from a bill of materials, or cut list, or even which table instance to be displayed can be controlled with equations.


Perhaps the most powerful tool in any CAD package is the macro. A macro is basically a series of two or more actions applied in succession to automatically perform multiple steps with a single command. The complexity of a macro is only limited by your imagination and of course, logic programming abilities. It is helpful, but not necessary, to know a programming language such as Visual Basic for Applications (VBA),Visual Basic.NET (VB.NET), or C#, or at least be familiar with how to follow the logic in a piece of code. Some CAD packages have a built in VBA editor that can be used to record a series of actions and produce the code for those actions for you to manipulate. Pro-E/Creo lacks this functionality, but makes up for it with the MAPKEYS function, which basically does the same thing, but doesn’t allow you to see the actual code being used to produce those steps. It also lacks the ability to produce more advanced macros, such as displaying a form to fill in values to use downstream in the macro. More advanced programming skills can be used with Pro-E/Creo to produce add-ins, menu items, etc., but for the average, or even advanced, CAD user, this may be out of the scope of your abilities.

Macros are helpful in automating repetitive tasks that consume time simply because it takes time to click and type your way through the task. One example of this would be if you are an avid user of parameters to drive your designs and want to make a copy of a previous design, but then need to go into each part/assembly and update the parameters of each. A macro can be written in VBA that would bring up a form that can be filled out with some parameters common to multiple parts/assemblies and then an action button could be pressed that would traverse the selected parts/assemblies and update the parameters for you in an instant saving you several minutes of opening each item and changing the parameters then saving again.

Another example is a common problem that affects most engineers or draftsmen, the creation of drawings of multiple parts and assemblies. This is a very time consuming process and can occupy hours of time, just to get from one to four views of every part and assembly in a design onto the proper template background to be ready for detailing. Once again, a macro can be written to control your CAD package either actively while you watch it, or to run in the background while you wait and perform all of the steps needed to produce a document package from a directory of parts/assemblies, or just a few items selected in your active window. Both of these examples would require more advanced knowledge of a programming language, but it is possible to build a multiple step macro based on recorded VBA steps.
The easiest way to learn VBA or VB.NET programming is by experimenting with recording your desired actions, then copying and pasting the code into your macro project and changing the variables to match with your macro design intent. It goes without saying that parameter values, table values and instances, and equations can all be used in combination with a macro to automate any multi step operation you wish. Take a look at your day to day work and identify the things that you do often that occupy time, but very little thought. These are the things you would most likely benefit from writing a macro to automate.


A good portion of the average engineer’s or drafter’s day is spent doing repetitive data entry level work. Through the use of all of the tools your CAD software offers you can cut your design cycle time significantly and be more productive while doing less actual work to produce the same output. Tables, parameters, equations and macros used in any combination can significantly simplify the job of producing engineering content, most often drawings, for the end user. If you are unfamiliar with any of these topics and want to learn more, use the internet, read the help files supplied with your software, or contact your software supplier. Hopefully you will get yourself fewer clicks away from the end of your next big project.

Created by Todd Settergren