Jumping Toolbars, Cadman! (Toolbar changes not saved)

With SolidWorks 2007 and prior, most commands are available through on-screen toolbars.  These toolbars are highly adjustable, both in content and placement.  Sometimes, their adjustability in placement can cause issues that may make it seem as though SolidWorks isn’t saving toolbar placements.  In my experience, SolidWorks does a good job at saving placements of toolbars.  The issue many have with saving toolbar placement is often related to the fact that SolidWorks allows the same toolbars to be placed in different locations for each document type (drawing, model and model assembly).

It should be noted that some people do experience a real problem with toolbar placements not being saved.  This problem is caused by a corrupt install or registry.  To correct this issue, use regedit.exe to rename/delete the SW registry key (HKEY_CURRENT_USER\Software\Solidworks).  This allows SolidWorks to establish a new registry key, and hopefully eliminate the corrupt information.  (Note: this will clear all Solidworks settings, so use this method with caution.)

But, before that method is attempted, try this less drastic method first.  As stated above, sometimes the issue is caused because different document types are using the same toolbar, but that toolbar is in different locations for each.  This causes them move around when switching between document types.  As they move around, they push other toolbars around too.  Each time this happens, they can cause toolbars to shift into even more different locations.  The solution is to have a drawing, model and assembly all open at the same time, then switch back and forth between them to see what jumps around. Adjust locations of the toolbars with each document type active.  Switch back and forth from that document type to the other types.  Do this for each of the three document types.  Keep doing this until all toolbar locations are stable, no matter which document type is open, and to which document type is switched.

Then here’s the most important part: exit SolidWorks normally.  It is the exiting of SolidWorks that saves the toolbar placements. The process can take about 5 to 30 minutes.

A side note, if SolidWorks crashes at any time after toolbars are changed, but before exiting normally, any changes to the toolbars will be lost!  This is important to note, it is it a third reason why toolbar changes aren’t saved.

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.

How to add Watermark to SolidWorks Drawing (with linked value)

How to add a Watermark to SolidWorks Drawings
By Matthew Lorono
For whatever reason, watermarks are sometimes necessary, even on drawings. Since SolidWorks has no watermark feature, and does not allow the user to change the order of certain drawing entities, a workaround is necessary. Here the most effective and powerful method useful for Drawing Templates and Sheet Formats.
1. Open the drawing.

2. Create a drawing layer by choosing the layer icon.

Layer Toolbar

3. Change the layer name and description to something identifiable.Then click on the color block in the Color column and choose a very light color.Select OK.

Layer Window

4. Goto pulldown menu File and select Properties.
5. Add the property Watermark.As a place holder, give this property the value of “PRELIMINARY” or something similar.

6. Edit Sheet Format.

7. Use Annotation Note to create and place the entity that will become the watermark.

8. Edit the properties of that Note to adjust its font, angle, size, etc as desired.Then, link the Note to the custom property Watermark, as shown in the figure.Select OK.

Annotation Note Properties Window

8. Change the layer of the Note to the newly created layer.

**UPDATE: New functionality in SolidWorks 2013 makes steps 9 and 9.5 no longer necessary, please see this article for details: Sometimes it’s the little new things – Watermarking **
9. Right Mouse Button click on the Note and select Make Block and accept.

9.5. Due to some funky behavior that I’ve discovered by SolidWorks when loading a watermarked template into an existing drawing, I’m adding this one step: Once you make the block, change the layer of the block to the same layer you set for your Note.
10. Save the Sheet Format (under pulldown menu File and select Save Sheet Format).

11. Edit Sheet.The Note will now appear underneath all other objects on the Drawing Sheet.

12. Save this document as a Drawing Template (under pulldown menu File and select “Save As”, then change Save as type to “Drawing Templates”).
This creates both the Drawing Template and Sheet Format with an embedded watermark.To change the text of the watermark in any drawings that use the Drawing Template, simply go back to Files>Properties, and edit its text value.To remove the watermark, simply replace the current value with a space.These instructions are geared towards SolidWorks 2007 or earlier. SolidWorks 2008 or later instructions will be similar, though how to access some of the functions may have changed.

Create a SolidWorks Drawing Watermark

For whatever reason, watermarks are sometimes necessary, even on drawings. Since SolidWorks has no watermark feature, and does not allow the user to change the order of drawing entities, a workaround is necessary. Here’s a method I recently discovered.(I am currently using SolidWorks 2007 SP3.1.)


  1. Open the drawing.
  2. Edit Sheet Format
  3. Use Annotation Note to create and place the text that will become the watermark.
  4. Edit the properties of the Note to adjust its font, angle, size, etc as desired.
  5. Highlight the Note and change its color using the Line Color function.For best results, assign a very light color to the Note.
  6. Right Mouse Button click on the Note and select Make Block and accept.
  7. Edit Sheet.


The Note will now appear underneath all other objects on the Drawing Sheet. This tip is based on the SolidWorks Forum discussion which can be found here:http://forum.solidworks.com/forum/messageview.cfm?catid=6&threadid=1989&enterthread=y


I have written an article detailing a more advanced method that will link the text of the watermark directly to a custom property here: Create a SolidWorks Drawing Watermark (with linked value).


UPDATE for SolidWorks 2013

SolidWorks 2013 now has the ability to set any annotation note on the sheet format to appear underneath all drawing elements to act as a watermark.  The method mentioned above is no longer necessary to achieve the desired results. Please see SolidWorks 2013 What’s New – Display Note Behind Sheet.