Oops! Autodesk's Swat Misses the Bug and Squishes the Workaround (Bug Watch AutoCAD Tutorial)30 Jun, 2007 By: Steve Johnson
Slow saves in AutoCAD 2008? Ludicrous linetypes? Bug Watch explains why and tells you what you can do about it.
A Lack of Dialog Lives Again! (2005 to 2008)
As I reported in the February, March, May, September and November 2006 "Bug Watch" columns, some of AutoCAD's dialog boxes sometimes refuse to appear, particularly the Hatch and Xref boxes. Autodesk's hopes that 2007 SP1 would see the end of this little beastie proved to be in vain.
So, has AutoCAD 2008 killed the bug? Unfortunately, no. Worse still, it has killed the workaround that I described in September 2006. The Assist command is now dead, so 2008 users are stuck with closing and restarting AutoCAD to get their dialogs back.
Snail-paced Saves (2008)
Are you using AutoCAD 2008's annotation scale feature? Are your drawings taking ages to save -- many times longer than you would expect for a given drawing? You're not alone. This isn't actually a bug, but it looks like one until you understand what's going on.
If you create objects in AutoCAD 2008 that are displayed at multiple scales at once, what happens if you save that drawing and an AutoCAD 2007 user opens it? It depends. You can choose to save it in two ways: with visual fidelity turned on or off. This setting is controlled with either the SaveFidelity system variable or a toggle in the Open and Save tab of the Options dialog box.
Selecting the visual fidelity mode for saving AutoCAD 2008 drawings.
If the drawing is saved with visual fidelity turned off, then the annotation-scaled objects won't be the right size when opened in a pre-2008 release. Somebody will open your drawing using 2007, plot the layouts and then discover that the text, dimensions, hatch and so on are either too small to see or massively oversized.
If visual fidelity is turned on, AutoCAD 2008 takes each annotative object and converts it to an anonymous block containing multiple copies of the objects on different layers. The visibility of these objects is then controlled for you using layer states, resulting in a drawing that looks right in 2007 and earlier. At least, it looks right in paper space, but model space will look rather messy.
What has this got to do with slow saves? Every time you save with visual fidelity turned on, all that processing of objects takes time -- lots of time. Visual fidelity comes at a cost.
Workaround: As a general rule, unless you're constantly sharing drawings with users of earlier releases, you're better off with visual fidelity turned off. Just remember to turn it on and save again before you give the drawing to a non-2008 user. That's not much help if you're in a mixed-release environment, but in such cases you may be better off delaying the use of annotation scaling until you're all on the same release -- or until Autodesk finds some way of easing the pain for non-2008 users of 2008-created drawings.
Linetype Lunacy (2008)
AutoCAD 2008 likes turning linetypes solid and doesn't like turning them back without regenerating the drawing. It doesn't appear to be related to annotation scaling because it occurs in model space in a 1:1 drawing using a linetype scale of 1. AutoCAD seems particularly keen on doing this to dot linetypes, but it can be persuaded to do it to all linetypes.
To see this, draw some objects using the DOT2 linetype and use your scroll wheel to zoom out as far as AutoCAD will let you. Next, zoom out twice as far using the command Zoom 1/2x. Zoom back in and you'll see that the lines are now solid. They will stay solid until you use the Regen command. Try the same operation in an earlier release, and the lines remain as dots.
Workaround: An old trick lets you regenerate selected objects. It's far from ideal, but it may be useful in very complex drawings where a full regeneration takes more than a few seconds. If you select the objects you want to regenerate, you can either perform a null move on them (that is, move them with a displacement of 0,0) or erase them and then undo the erase. You can set up a toolbar button to do this using a menu macro such as: