Setting up and using SolidWorks Revision Tables faster

I am sometimes surprized by the limited the adoption of the SolidWorks Revision Table.  This is a powerful tool for drawings within SolidWorks.  The Revision Table allows the user to create a drawing template with an easily updateable revision block already included.  The user doesn’t have to use a potentially unstable Excel inserted OLE.  They also do not need a drawn revision block that requires significant labor in order to update and maintain.

The SolidWorks Revision Table is easy to insert in SolidWorks 2008.  With a drawing open, just go to Insert pulldown>Tables>Revision Table.  Within the Revision Table Pane, pick the appropriate revision template.  Choose any desired options for the table. Choose OK.  The Revision Table will automatically appear in upper right corner.  Save the drawing template for future use.  (See Help for instructions to place the Revision Table at other locations on the drawing.  Also, more steps are required in 2007 and prior; but, they are intuitive to follow and provide more on-screen control over the table’s location.)

Custom Revision Tables can be created to suit the companies specific needs.  Right click on the table to use the RMB menu to access functions that provide methods to modify the table.  When modifications are complete, use the RMB menu Save As option to save the new table as a table template for future use.

To add a revision, simply right click on the Revision Table.  Choose Revisions>Add Revision.  A new revision row will appear with the next revision inserted.  Simply double click any field to add or modify its value.  LMB click outside of the table to set the edits.

Of course, there is a simpler way to add revisions to the Revision Table!  I’ve created a macro that provides a form which allows the quick addition of revisions to the Revision Table.  It’s called RevBlockControl.  It is much faster than directly creating and entering all the rows and values.  It has been recently updated, so if you already use this macro, please consider using the latest version.

RevBlockControl Form

Sample image of the macro form

To use the macro, place it in the macros folder under the SolidWorks folder.  If it doesn’t exist, create it.  Within SolidWorks, assign a custom key stroke to the macro and/or create a toolbar icon location for it.

It can be used for a variety of revision table set-ups, including standard recommended ASME types.  It is limited to 5 columns, though it is customizable without editing the code or a complex .ini file.  If editing the code is desired, everything is spelled out with descriptions for easy of use.  In fact, the code can be quickly edited to allow the macro to drive the drawing’s “Revision” custom property.  Additionally, there is a small .ini included in this current version.  It is simply a list of initials used by the Rev By field.  Edit it with NOTEPAD to add and delete names that will automatically appear within the Rev By field.

Even without the RevBlockControl macro, the easy of use of the SolidWorks Revision Table is well worth the few minutes of effort to set it up on a template.  With the RevBlockControl macro, adding revisions to a Revision Table is so fast that it is almost effortless when compared to other type of revision blocks.

Dual Dimensioning and ASME Y14.5M-1994

This entry is part 2 of 8 in the series Dimensions and Tolerances

Dual dimensioning is the drafting practice of using multiple units of measure in a dimension in the same direction of a feature.  SolidWorks and many other CAD programs support dual dimensioning.  This support is usually a little quirky.  It’s actually not  the fault of the CAD application.  At one point, it was a surprize to me (and often is to others too) that no current drafting standard actually supports dual dimensioning.  In retrospect, this makes perfect sense.

My experience is with ASME Y14.5M-1994.  When invoking ASME Y14.5M-1994 (or even ANSI Y14.5M-1982), one will find that rules regarding dual dimensions do not exist.  ANSI Y14.5M-1982 does mention in its appendix that support for dual dimension no longer exists in the standard.  This is apparently because it was mentioned in a previous version.  That said, dual dimensioning has never really ever been allowed by any incarnation of Y14.5.  This is because of very specific wording under the standard’s Fundamental Rules.  The wording may vary between versions, but carries the same meaning in all versions.  In ASME Y14.5M, that wording is as such in 1.4(d), “Dimensions shall be selected and arranged to suit the function and mating relationship of a part and shall not be subject to more than one interpretation.”  (Support for dual dimensions in pre-1982 versions was a mistake that was likely political in nature.)

General practice in the use of dual dimensions is that they are of equal importance to the primary dimension.  This creates issues in that it allows for more than one interpretation of the dimension.  It is nearly impossible for nominals and tolerance ranges to be identical between units of measure.  This means that the dual dimension tolerance range is usually resized to fit within the tolerance range of the primary unit of measure.  This creates a situation where the dimension has more than one interpretation, which is specifically prohibited by 1.4(d).  The conclusion that can be drawn from this is that dual dimensions are actually not allowed by ASME Y14.5M-1994.  This is the hard argument against the use of dual dimensions.  I could end this article right here.  However, I will also explore the soft arguments against their use.

ASME Y14.100-2004 paragraph 4.32.3 uses soft language to discourage the practice of converting inch to metric and vise verse (“should not be used”).  This is known as soft conversion.  This is not an outright prohibition against dual dimensioning by itself. However, the practice of soft conversion is integral to using dual dimensions.  With this practice discouraged, dual dimensioning is also discouraged.

ASME Y14.5M-1994 defines a reference dimension as such,

“A dimension usually without tolerance, used for information purposes only. A reference dim is a repeat of a dimension or is derived from other values shown on the drawing or on related drawings. It is considered auxiliary information and does not govern production or inspection operations.”

By definition of reference dimensions, dual dimensions must be treated as reference dimensions. However, anyone who uses them knows this is generally not their intent. As generally intended, dual dimensions are disallowed unless they are considered reference only.

The final soft argument is gleamed in the wording of ASME Y14.5M-1994 paragraph 1.5.  This paragraph assumes dual dimensions are not in use.  For example it begins one paragraph as so, “Where some inch dimensions are shown on a millimeter-dimensioned drawing…”.  It never then says “Where many inch dims are used on a metric drawing….” This is not a specific exclusion, but should be noted for its wording. It does allow for the use of both inch and metric units on the same drawing, but not multiple values of dimensions for the same features.

With all of these arguments aside, CAD applications do attempt to accommodate users who feel they need this capability.  However, if used, caution must be exercised.  Handling of dual dimensions by CAD (and common practice) can create confusion on a drawing, particularly if the software assumes values for the dual dimensions and its tolerances.

In the effort to avoid issues and violations of the standards, it is my opinion that if dual dimensions are used, they should be noted as for reference only on the drawing.  This can be accomplished by adding a note similar to “DUAL DIMENSIONS IN BRACKETS ARE FOR REFERENCE ONLY.”  This avoids problems caused by multiple interpretations for dimensions.  Of course, over use of reference dimensions is also discouraged by ASME Y14.5M-1994. But hey, who’s it hurting?

For SolidWorks, dual dimensions on a drawing may be employed by going to Tools>Options>Document Properties>Detailing and checking Dual dimensions display.  Also at that location is the choice to display the dual dimension on top, bottom, left or right of the primary dimension.  These are SolidWorks 2007 instructions (other versions of SolidWorks should be similar).

I did make a sample SolidWorks macro that will turn on dual dimensions for a drawing and automatically set them to display on the bottom (default is top).  This example macro can be downloaded here.  It can be modified to use any settings as default.

For the record, this article was inspired by multiple posts on various SolidWorks related forums over the past few months such as these at SW Forums,, and Pro/E discussion at

Create CAD Standards (SolidWorks environment)

Creating a drafting standards within a SolidWorks environment is an important task.  The task may seem daunting to those of us who haven’t done this before, particularly if our company has no pre-existing documentation methods.  These can be new companies, or companies moving from a lack of control into standardization.

Fortunately, there is a lot of help available.  Actual drafting standards already exist.  Also, many of us have been through this before (sometimes multiple times).  ASME provides American National Standards for many of the areas that need to be covered.  ISO provides international standards for these too, however I will focus on the use of ASME since this is what I used myself.  On the other-hand, creating SolidWorks specific standards requires a little more reseach and upfront work.

Here are my very general suggestions for documents and tasks to create a company’s standard.

  1. SolidWorks Templates (basic overview)
    1. Create a basic solid model template.  The setup within this template will become the backbone of everything within SolidWorks. This will be the most used document.  Establish custom properties that detail the part.  (Use of existing properties can be leveraged to simplify this task.)  Creation of this first template does not preclude the creation of other solid model templates. Instead, it will be used to create any others. For details about templates, goto SolidWorks Help and search titles only for the words “document templates”.
    2. Create a solid model assembly template.  Many of the general settings of this template should be duplicates of the settings of the solid model template.  Some planning is required.  Determine the best method of assembly structure for your company.  Several practices exist as guides, such as Top-Down, Horizontal Modeling, Bottom-Up, and Configurations.  It is important to note that there is not one-size-fits-all method for all companies.  Research each and make the determination based on company needs.  Setup the assembly template to support the chosen method.  However, do not become overly reliant on any particular methodology since situations may require flexibility.
    3. Decide how the drawing templates will interact with solid models. This includes deciding to have any pre-defined views, use of custom and other properties, etc.
    4. Create sheet formats and templates for each drawing size that will be commonly used.  Include annotation notes linked to custom properties, such as part number, material, revision, originator, origination date, surface finish number and/or type, etc.  See SolidWorks Help search for “Link to Property”.
    5. If in a network environment, place the templates and sheet formats within a folder where all SolidWorks users will have access.  Point all SolidWorks installs to this location.  This can be done within pulldown menu Tools>Options>File Location>Document Templates and Sheet Formats.
    6. Create a company standard for shortcuts and macros that speed up SolidWorks operations. Set up a network location for the company macros.
  2. Create the following standard operating procedures.
    1. SolidWorks Performancethat covers computer system requirements, Windows settings, SolidWorks installation, working folders, and standardizing files.
    2. SolidWorks Best Practices and Standards
      • Solid models: discussing preferred methods for creating features.
      • Assemblies: cover methodologies (when to use top-down or bottom-up; and what part should be the primary fixed component) and how to avoid circular mating, etc.
      • Drawings: covering how to use templates/sheet formats, shortcuts, common macros, etc.
    3. Drafting Standards, which can rely on ASME Y14.100 (umbrella engineering drawing standard), ASME Y14.5M (GD&T drafting standard) and possibly ASME Y14.41 (3D model drafting standard).  List exceptions to the ASME standards within the procedure.  If relying on these standards, make sure to have copies of them on hand. This will allow the procedure to be short and to the point.  If not relying on a standard, this procedure can potentially be very long.
    4. Source File and Document Control, which covers how to handle file management (SolidWorks files) and documents.  Be sure to cover processes for control of SolidWorks files in folders and/or the PDM application.  This may be a procedure that is supplemental the company’s general document control processes.
    5. Revision Control, which covers how to revise engineering documents.  This can rely on ASME Y14.35.  If the company uses a ERP or PLM, this procedure may be supplemental to those processes.

For references for further research, check out SolidWorks resource links, such as weblinks that can be found here on Lorono’s SolidWorks Resources.  Also, check out Blog Squad sites such as Matt Writes.

SolidWorks World 2008 Day 3 (Jan 23) Breakout sessions

My first breakout session of the day was SolidWorks Sheet metal: Why do I do it like this or that?.  This session went into a lot of detail about sheet metal functions in SolidWorks.  There was discussion covering tears, closed corners, dimensioning preferences, K-factors, when to use normal cut, and the fact that all thicknesses on a sheet metal part need to be identical.  One good point was that closed corners work only when the flanges have the same parent feature.  Like all good sheet metal presentations, miter flanges where also discussed.  One problem I had with the presentation is that way too much time was spent on discussing creation of flat patterns.  When several attendees confronted the presenter with the fact that flat patterns are not often necessary for a designer to create, he argued the point without really understanding why the attendees contested it.  According to ASME Y14.5M-1994, the drawing represents the final product.  Adding intermediate steps (such as flat patterns) are unnecessary since the vendor is responsible for the final product represented on the drawing.  Besides that, most sheet metal shops are much better at determining K-factors and knowing their shop’s limitations than most designers.  I think more information could be packed into the presentation if less time is spent on flat patterning.

After lunch, I attended Leveraging the Design Tables and Configurations….  Many points where covered.  Here’s a few.  It is important to establish a good naming convention for configurations.  Effort must be taken to determine how the model will be represented (drawing, BOM, literature, etc).  Utilize folders in the Model Assembly.  Utilize formulae in the Design Table instead of equations area.  One good point was the suggestion to save backup copies of design tables outside of SolidWorks in Excel itself.

My final Breakout session of SolidWorks World 2008 was Demystifying PDMWorks Workgroup Triggers.  Although I’m not familiar with PDMWorks API, I did learn something about what is possible in PDMWorks.  Also, I learned about the setup required to utilize the triggers. 

I didn’t take many basic how-to Breakout sessions this year.  My main focus was on developing my skills in configuration, customization, more detailed how-to’s, and set up.  I made sure I attended several API related sessions.  Overall, I feel the experience was something that I would not want to miss.  I’m glad I had the opportunity be involved in this experience. 

Drill and Tap; and calloutformat.txt (Part 2)

This entry is part 2 of 4 in the series Hole Callouts
*This article is continued from Part 1.*
*Updated some references to support current SOLIDWORKS versions [4/21/2019]*

Tip to use Simplified Threaded Hole Callouts

SOLIDWORKS has an usual method to control hole callout formats. Most other types of callouts are managed from with SOLIDWORKS settings.  However, hole callouts are controlled with an obscure file buried deep within its folder structure on the hard drive.  That file is calloutformat.txt (X:\Program files\SOLIDWORKS Corp\SOLIDWORKS\lang\english).  Additionally, there is also a calloutformat_2.txt.  What’s the difference between these files?  Calloutformat.txt is the default file which SolidWorks uses to determine how to form threaded hole callouts created with the Hole Wizard.  This file establishes the rules to show both the nominal drill diameter and the thread detail in a leadered note.  This is the most common method for threaded hole callouts. However, as mentioned, this method has flaws.

Thankfully, SOLIDWORKS provides an alternative with simplified callouts.  The user doesn’t have to go through and modify each and every callout instance in calloutformat.txt.  As obscure calloutformat.txt is, one would expect the alternative to be even more obscure; and it is!  The alternative file is calloutformat_2.txt, with no identification or in-file description to tell anyone of this fact.


Here’s the tip to use simplified threaded hole callouts. Before SolidWorks is started, launch Windows Explorer and goto X:\Program files\SOLIDWORKS Corp\SOLIDWORKS\lang\english (or similar, depending on SOLIDWORKS installation location). Rename calloutformat.txt to calloutformat_1.txt. Rename calloutformat_2.txt to calloutformat.txt. (Make a backup copy of course.)

The one drawback is that SOLIDWORKS uses different methods to callout the thread between the calloutformat.txt and calloutformat_2.txt.  This places a # in front of every threaded hole callout in this simplified format, and leaves off the series designation.  The work around for this is to simply open calloutformat_2.txt with Notepad, then use pulldown Edit>Replace to replace “<hw-threadsize> <hw-threadseries>” with “<hw-threaddesc>” in all instances prior to the renaming.  (Again, always make backup copies!)

Additional Networking Tip

Once calloutformat_2.txt is modified and renamed to calloutformat.txt, copy it to a network drive location that is available to all other SolidWorks users.  On each system, goto pulldown Tools>Options>File Locations>select Hole Wizard Favorites Database.  Point the folder to the network location of the new calloutformat.txtAlso point Hole Callout Format File to the same new folder. There are various methods to save this setting for future installs and updates, such as  Copy Settings Wizard or Admin Image.

P.S., Cosmetic Threads

One caveat to this whole story is how SOLIDWORKS automatically labels cosmetic thread annotations on ANSI standard drawings.  When you create the drawing view that contains the cosmetic thread, you get a surprize; something like “8-32 Machined thread” is added. It doesn’t really conform to any standard, and cannot be edited at the Part level within the cosmetic thread feature (unless you use a customized thread called “None”).  This callout can be inserted on drawings of other standards, such as ISO, by right-clicking on the cosmetic thread and selecting “Insert callout”.

If edited manually in the cosmetic thread feature properties, one can enter anything they want, and that will be the callout for the cosmetic thread on the drawing. If you want your threaded holes to say “Stop poking me!”, your hole callout will say “Stop poking me!”.  But there is no automated method to use the correct callout without directly entering it within the cosmetic thread’s property field and using a custom thread. One advantage is that if this field is edited, it does automatically update drawing where it appears.  However, if I’m relying on Hole Wizard information, I wouldn’t want to use the cosmetic thread annotation callout on my drawing anyway.

Drill and Tap; and calloutformat.txt (Part 1)

This entry is part 1 of 4 in the series Hole Callouts

Sooner or later, the topic of how to callout a threaded hole comes up in pretty much everyone’s career in the Mechanical Engineering field.  I’ve seen the nature of those discussions be straight forward, but I’ve also seen angst riddled arguements.  Though this isn’t a SolidWorks specific topic, it is important to its users. This is because SolidWorks specifies hole callouts differently in different scenarios.

The conventional rule (within ANSI Inch) is that a threaded hole should be called out as a leadered note showing its nominal drill size and depth on the first line, and the thread size, threads per inch, thread series designation, thread class and thread depth on the second line.  This is common practice, so most people are comfortable using it.

Example (without use of symbols):
2X .190 DIA .190 DEEP
8-32 UNC-2B .164 DEEP

Of course, this method has flaws, which I’ll get into later.

I’ve seen two extremes as well.  At one extreme, the threaded hole callout has the actual drill bit size listed in addition to specification for the tap and drill.  I gather it would look something like this:

2X .438 DIA .25 DEEP WITH 7/16 Q DRILL
.438 UNC-2B .375 DEEP

Of course the basic flaw with adding the drill size is that this is a specification of process, which is generally disallowed by ASME Y14.5M-1994.  It is equivalent to having the note “FORM THIS PART WITH LATHE MODEL XYB”  or even, “JUMP UP AND DOWN THREE TIMES AND SPIN IN A CIRCLE BEFORE USING THE MILL TO CUT THIS HOLE”.  Hyperbole aside, this practice is not appropriate.

On the other end, one might find a hole callout that simply states the thread size, such as “TAPPED HOLE”  This is a bad case of under-specification.  I haven’t seen this method often on formal drawings, but it is very common on preliminary sketches.  There just isn’t enough information.

What is just-enough-information for a threaded hole callout?  Well, this answer is easy.  Thread size, threads per inch, thread series designation (sometimes considered optional), thread class, thread depth, and sometimes drill depth or end condition.  The “nominal” drill diameter isn’t actually needed.  There’s several flaws with including the drill diameter.  First, the actual drill diameter is not based on the callout, but rather the thread itself.  It is over-specification.  Second, drill diameter is stated as a dimension, so it is not nominal.  Because of this, the standard drawing tolerance must be applied to that dimension.  Again, this is over-specification because the thread has its own tolerance for its final size.  Simply by stating the thread class, its tolerance is called out.  Third, because of these other points, specifying the drill diameter is actually a specification of process.  Given all that, I always callout a threaded hole as so:

2X 8-32 UNC-2B DEPTH .165

In the rare event that drill hole depth or end condition is necessary to call out, then simply state that specification in the callout, or show it dimensionally on the drawing view itself.  How this relates to SolidWorks and the calloutformat.txt file will be discussed in Part 2 of this article.