Preclude Purge Pollution - Prevent Partial Opens (Bug Watch AutoCAD Tutorial)

31 May, 2008 By: Steve Johnson

Three pieces of bad news, and another piece of good news for scale list victims.

Perilous Purge (2009)
This is important, so I'll give you the upshot first. In AutoCAD 2009, please go and set OPENPARTIAL to 0. You can go and do it now if you like; I'll wait right here until you're done.

All done? Good. Now I'll explain why. AutoCAD 2009 introduced a new system variable called OPENPARTIAL. With this variable set to its default value of 1, AutoCAD will partially open some drawings automatically. Which drawings? According to the documentation, the drawing must have been saved with paper space displayed and with the INDEXCTL system variable set to a nonzero value. I'm not convinced the documentation is accurately reflecting what the software is doing, but that's what it says should be happening.

What's this partial opening all about? It's supposed to allow you to start working on drawings before they are fully open. The theory is that with very large drawings and drawings with large xrefs, you can start work while AutoCAD's still bringing things in, effectively improving the performance of Open.

Good idea, right? I'm not convinced it is, because users are confused by unexplained missing xrefs and annoyed by an inability to save partially open drawings in other than 2007 format. In any case, it's badly broken. If AutoCAD does its partial open trick and you attempt to purge objects from your drawing, you may be lucky and find that AutoCAD politely refuses your request. If you're unlucky, you will be allowed to purge things that are in use in the drawing, with potentially disastrous results. For example, I've seen AutoCAD 2009 purge a text style that was visibly in use in the drawing, causing an innocent third-party routine to crash and the loss of any text that used that style. The vanishing text became apparent only after the drawing was reopened.

Workaround: Set OPENPARTIAL to 0 before opening your next drawing. It's saved in the Registry, so you should need to do it only once and it should stick. If you use multiple profiles, remember to do it once in each profile. If you're feeling particularly paranoid (not a bad idea in this case), you can put some code like this into a startup LISP routine:

(setvar "OPENPARTIAL" 0)

Find Folly (2009)
This is more of a design error than a bug, but it's such a glaring mistake I think it's worth mentioning here. AutoCAD 2009's revamped Find command zooms in to show you the text it finds. OK, so the text may end up hidden under the dialog box, but you can move that out of the way. OK, so it would have been better to make the zoom optional because it can cause significant performance issues in complex multilayout drawings. But it's very handy to be taken to where the text is, right? Well, it would be if you were left there at the end of the command, but you're not. As soon as you're finished with the command, it puts your display right back where it was when you started, leaving you to find your text all over again.

Workaround: None known.

Some Donuts are Stickier than Others (2009)
Picking up from the bug "Some Polylines are Snappier than Others" in last month's Bug Watch, here's another instance of AutoCAD 2009's object snap failing to work on some polylines. The Donut command creates a wide polyline consisting of two 180-degree arc segments. This command respects the value of the PLINETYPE system variable, so it can create either heavyweight or lightweight polylines. If PLINETYPE was 0 at the time the donut was created, or if the drawing dates back before Release 14, then your donuts will be carrying some added weight. It is these heavier donuts that AutoCAD won't snap to.

The same problem applies if you make your own wide and heavy polylines containing arc segments, but not consistently. AutoCAD will snap to some segments but not to others. It will find the endpoints of some segments but not the center points of the same segments. More dangerous than that, it can present you with a center point that is in the wrong location.

AutoCAD's object snap getting it all wrong on a wide heavy polyline.

Workaround: You can set PLINETYPE to 1 or 2 before creating new donuts and other wide polylines, but that won't help with your existing drawings. To make object snaps work on those objects, you will need to convert them to lightweight polylines. You can do this using the undocumented Express Tools command Convertpoly.

Scale Lists Revisited Again
Last month I described several things that Autodesk did in AutoCAD 2009 to address the scale list problems introduced by AutoCAD 2008. Although these changes are welcome, they do not provide a simple mechanism for quickly cleaning up all your scale lists in your existing drawings. Now that problem has been addressed with the scale list cleanup utility, and you don't even need AutoCAD 2009. This small utility is installed into the AutoCAD 2008 or 2009 main installation folder. You can make a shortcut to the CLEANUPSCALES.EXE file on your desktop if you wish to make it easier to fire up. Once it's in place, you can start cleaning up your drawings in batches. Although I've found that this utility works very well, it would be wise to back up everything before you start.

More News and Resources from Cadalyst Partners

For Mold Designers! Cadalyst has an area of our site focused on technologies and resources specific to the mold design professional. Sponsored by Siemens NX.  Visit the Equipped Mold Designer here!

For Architects! Cadalyst has an area of our site focused on technologies and resources specific to the building design professional. Sponsored by HP.  Visit the Equipped Architect here!