This blog is just wonderful, apparently

One of the more interesting things about running a blog that is visited by a reasonable number of people is the fan mail. My immense modesty prevents me from keeping visible the thousands of positive comments that are posted here, but I thought I would give you an idea of the sort of praise I receive (and Akismet hides) on a daily basis. This small sample is all from the past 48 hours, with my comments in blue:

  • My brother recommended I might like this website. He was entirely right. This publish truly made my day. You cann’t believe simply how so much time I had spent for this info! Thanks!
    Actually, I cann, how so much! Many of my publishes make many people’s days. Please tell your brother I said “Hi!”, and thank him for the massage oil.
  • That is very attention-grabbing, You are an overly professional blogger. I’ve joined your feed and look ahead to in search of more of your great post. Additionally, I’ve shared your web site in my social networks.
    I look ahead to in search, too. I appreciate the social sharing, because I’m sure you have a lot of friends.
  • Thank you so much for this! I haven’t been this thrilled by a blog post for a long time! Keep up the great job. Keep on inspiring the people!
    Don’t mention it; inspiration and thrills are all part of the service here.
  • wonderful blog, very well written. I like it very much. I would read your site monthly and recommend it to my classmates. Please keep it updated. Keep on the good work. – A sweet girl
    Only monthly? I’m hurt. To make amends, send pics of yourself and your classmates to my email at
  • Such a wonderful analysis! No idea how you were able to say this’d take me long hours. Well worth it though, I’d suspect.
    Your suspicions are correct, and not just because of the huge cash kickbacks and the swarms of groupies that I struggle to keep away with a dirty stick. It’s feedback like yours that really makes it all worthwhile.
  • Thank you for every other fantastic article.
    Why don’t you like the other 50% of them?
  • Among the a ton of responses on your articles, I guess I am not the only one having all of the pleasure right here!
    Indeed you’re not. All of the pleasure is exactly what the a ton of people have right here.
  • Nice commentary. last thirty times I uncovered this online internet internet site and desired to permit you be conscious that i’ve been gratified, heading by way of your site’s posts. Cheers, Glen
    Cheers! <drinks beer> Glen, thanks to your erudite commentary, I am indeed conscious that you have been gratified for the last thirty times due to my online internet internet site. Thank you for the information.
  • I am gonna watch out for brussels. I’ll appreciate when you proceed this in future. Numerous folks will be benefited out of your writing. Cheers!
    Cheers! <drinks another beer> Although I didn’t get an invite to the Bricsys conference, I’m proceeding to watch out for Brussels right now. I’ll let you know if I see it. Wait, here it is! Oh, sorry, false alarm, it was only Bruges.
  • I really appreciated this wonderful post. Be sure to keep it up. Cheers !!
    Cheers! <drinks yet another beer> Sorry, but after all this beer I’m finding that a little difficult.
  • whoah this blog is great i like studying your posts. Keep up the great work! You already know, lots of persons are searching round for this info, you could help them greatly.
    Whoah! I could, but I don’t think I will.
  • hi!,I like your writing very much! percentage we keep in touch more approximately your article on AOL? I require a specialist in this space to solve my problem. May be that’s you! Taking a look ahead to look you.
    Look you? Are you a Welsh stereotype, by any chance? I’m sorry, but as a specialist in this space I have to inform you that the approximate percentages are all on CompuServe these days.
  • you’re really a excellent webmaster. The website loading velocity is incredible. It kind of feels that you’re doing any distinctive trick. Furthermore, The contents are masterwork. you’ve performed a wonderful process in this topic!
    The distinctive trick is simply a matter of changing the server’s website loading velocity setting to Ludicrous Speed. This is indeed a wonderful process.
  • I uncovered your web page via search motors even when looking for for the connected topic, your web page demonstrated up up. give many as a consequence of you for the fabulous blog. Amazingg skills! hold on man, you rock!
    Rev up those search motors, man, because demonstrating up up for for the connected topic is my amazingg speciality.
  • Amazing things here. I am very happy to look your post. Thank you a lot and i am taking a look ahead to touch you.
    Only in an appropriate and consentual way, I hope.
  • Websites like yours can be extremely rare in the webspace brimming with crap and spam.
    I know what you mean; crap and spam get everywhere.

It’s very difficult to remain grounded when I’m being constantly bombarded with praise like this, but I somehow manage to stop it going to my head. I guess that’s because, well, I am pretty awesome.

Best and worst AutoCAD features ever – polls

Using your suggestions and a few of my own, I have added two polls for you to select what are, in your opinion, the best and worst features ever added to AutoCAD. To help us find The Answer, there are 42 items in each poll, from which you can choose up to three.

A few items (e.g. Action Recorder) made it into both lists, while several items in the ‘worst’ list (e.g. 2012 Array, Ribbon, Annotative Scaling) were suggested multiple times. It will be interesting to see how the poll results pan out.

Autodesk Cloud – don’t panic, business as usual

Autodesk recently made a big announcement about its Cloud initiatives, and reactions have been all over the place. Some people can barely contain their breathless excitement while others are outraged to the point of passing out the pitchforks. Why? It’s pretty much business as usual.

It’s nothing like Dassault’s disastrous we’re-moving-you-to-the-Cloud FUD campaign against its own product, SolidWorks. There’s no hint here of AutoCAD (real AutoCAD, I mean, not “AutoCAD” WS) being moved to the Cloud, or anything as radical as that. (Yes, I know there’s a limited experiment along those lines but that’s nothing to do with this announcement). It’s just a collection of relatively minor changes to Autodesk’s existing on-line services, collected together to make a newsworthy press release.

(As an aside, I must say this was a much more worthwhile announcement than the ridiculously over-hyped DE8.16N thing. So I was supposed to get excited about a routine upgrade of a product I have already been using for months, on an OS I don’t use, when the upgraded product is still half-baked just like the first underwhelming effort? Fortunately, I didn’t get sucked in by the pre-announcement build-up so I wasn’t disappointed, just amused when the truth was revealed. Autodesk PR, please don’t cry wolf so often; keep the hype in reserve for the hypeworthy stuff.)

Back to the Cloud thing, and putting aside hype and horror, here’s the stuff that has just happened:

  • Autodesk Cloud documents lets anybody store up to 1 GB documents on-line, or 3 GB if you’re a Subscription customer. This isn’t new, but until recently it was an Autodesk Labs project called Nitrous. The infrastructure is provided via Amazon and Citrix.
  • AutoCAD WS has been updated to integrate its storage with Autodesk Cloud documents. Remember, WS isn’t anything like real AutoCAD, but rather a limited on-line DWG editing tool. There’s a WS iPhone app, but that’s not new.
  • There’s an Autodesk Design Review iPhone app for reviewing DWF files you’ve stored in Autodesk Cloud. It won’t do DWG; use WS for that.
  • There are several cloud-based services that are available “free” to Subscription-paying users of a small subset of Autodesk software, mostly Revit and Inventor-based suites. They are: 
    • Inventor Optimization
    • Cloud Rendering
    • Green Building Studio
    • Conceptual Energy Analysis
    • Buzzsaw (now bundled with Vault Subscription)

    AutoCAD users need not apply for any of these services.

So some of Autodesk’s on-line services are now being provided only to Subscription customers, and one is offered in improved form for Subscription customers. There are two obvious reasons for this: tie-in and revenue.

First, Autodesk wants its customers tied to the Subscription gravy train, if you’ll excuse a fairly awful mix of metaphors. Offering Subscription benefits like this is preferable to some of the much less pleasant arm-twisting that has been happening recently (e.g. trebling upgrade prices). Is it too much to hope that Autodesk has learned that offering carrots to its customers is a better strategy than threatening them with sticks?

Second, Autodesk needs to start making money out of this stuff somehow. For some years, it has spent several fortunes on buying and developing on-line services and then given them away for nothing, usually as Labs projects. This obviously can’t go on for ever, but just slapping a charge on these services wasn’t going to fly. Bundling Cloud services up with Subscription is a way of easing people into paying for them, and this is something I expect to be expanded in future, for example with AutoCAD WS. Once that’s been established for a few years, it wouldn’t surprise me to then see Subscription for at least some of the services split off, so you’re paying for Cloud services explicitly. By then, enough customers may consider them to be worth paying for and they may therefore survive beyond the short term.

Will it work? I’m not sure. Time will tell which of these services will thrive and which will die, and such uncertainty is one of the many reasons real-world customers aren’t excited about getting their heads in the Cloud. I don’t intend to make use of these services (I’m not even allowed to), so I’m not too bothered what happens to them. Like the vast majority of Autodesk customers, I will just carry on using conventional software in that old-fashioned 20th century way that just happens to work very well. Autodesk will go on providing its software in that way, because that’s what most customers will want for at least a while yet, and Autodesk can’t survive on wisps of Cloudy revenue.

Move along, people, nothing to see here.

What are the best and worst features ever added to AutoCAD?

Audience participation time, I think. A comment on one of AutoCAD 2012’s new features recently set me thinking about what were the worst features ever introduced to AutoCAD. That in turn got me thinking about what were the best.

I’ll keep my opinions to myself for a while, as I’d like your input and don’t want to influence it. Please add a comment with your list of what you consider the best three features ever added to AutoCAD and the worst three. If you can’t think of three of each, you can submit less, but please don’t submit more. By all means discuss at length the things you love or loathe, but make it clear what you’re submitting by using a clear format like this (meaningless examples only):

1. Content Explorer
2. Online Help
3. Nudge

1. AutoLISP
2. Transparent zoom and pan
3. Paper/model space

What do the words “feature”, “best” and “worst” mean? I’ll leave that for you to decide for yourself. You might consider “worst” to be something that’s a bad idea, poorly implemented, slow, inefficient, poorly documented, bloated, buggy, half-baked in the short or long term, clueless in some other way, or some or all of the above. It’s up to you.

When I have enough submissions, I’ll collate the most popular (and unpopular) features into a pair of polls for you all to vote on. Have fun!

Edit: I have now added the polls and closed comments on this post.

Taking control of your command line history

Thanks to Kean Walmsley’s post on his Through the Interface blog, I have learned something that would have been handy to know for the last decade or so, but which somehow escaped my knowledge. I learned how to increase the size of AutoCAD’s command line history cache. It defaults to 400 lines, which isn’t enough for me. I think this information deserves a wider audience than the ubergeek developers who frequent Kean’s blog, so here goes.

Although it’s not directly mentioned on Kean’s post, you can find the current command line history cache length setting like this:

(getenv "CmdHistLines")

This will return a value showing the number of command lines AutoCAD remembers, e.g. “400”. Although this is used as an integer value, it is passed to and from the Registry as a string. You can set a new value as shown below. Again, use a string, and note that values outside the range 25 to 2048 will be ignored:

(setenv "CmdHistLines" "2048")

Also, if you don’t like AutoCAD repeatedly stopping during a long listing (e.g. SETVAR ? *), you can turn off that feature by setting the QAFLAGS system variable to 2. Don’t set it to 8191 as suggested in Kean’s post, because that will change a lot of other settings, few of which are documented publicly.

Will Autodesk have to explain itself to the SEC?

The observant among you may have noticed that for many years, Autodesk’s free patches, service packs and updates haven’t added any new functionality. Bugs may get fixed, severe performance issues may be addressed, but design errors generally have to wait for the next release (at the earliest), and new features definitely don’t get added.

The last time new functionality was added to AutoCAD in a free maintenance release was Release 13’s c4 update which shipped on 12 February 1996. (There was a public beta available some months earlier; I picked up a copy at Autodesk University 1995). That free update contained not only a host of bug fixes, but also more useful new features than some later full-price upgrades (e.g. AutoCAD 2000i). In an outbreak of outstanding customer service, a c4 CD was shipped free to all registered users. Maybe Autodesk was trying to recover from disastrously shipping Release 13 prematurely, but issuing such a comprehensive update free of charge was still highly commendable.

Why did Autodesk stop providing new functionality in free updates? While it involves more work for Autodesk and hardly encourages paid upgrades or Subscription, the reason we’ve been given over the years is that there are accounting regulations that prevent Autodesk from providing new functionality in free updates. This does not apply to benefits from paid Subscription, and various new features for Subscription users have indeed appeared (albeit in fits and starts) over the intervening years.

I have to admit that I have always thought that this accounting thing was a pretty unlikely-sounding excuse for Autodesk’s inactivity. This attitude was reinforced by a lack of Autodesk response to my requests for further information about the alleged regulations. Until recently, I didn’t care enough about this matter to bother finding out for myself, but something extraordinary just happened that piqued my curiosity.

What happened? Autodesk released a free Service Pack that included new functionality for the first time in over 15 years. I was particularly interested in this, because part of what’s new is a new command providing a subset of the functionality of my ClassicArray™ plug-in. When I put in the time and effort to develop this product to fill a hole of Autodesk’s making, I did so on the assumption that Autodesk wasn’t going to provide an Array dialog box until at least AutoCAD 2013. It turns out that this assumption was wrong.

So what’s all this about accounting regulations preventing new functionality being provided free between releases? Was I right to be vaguely cynical about that? After some research, it would appear that I was wrong about that, too. There is an FASB (responsible to the SEC) accounting standard called SOP 97-2, which covers software revenue recognition. I’m no accountant and the regulations are large and complex, but here is my layman’s understanding of the basics.

In a simple case where a vendor (e.g. Autodesk) sells a complete product (e.g. AutoCAD 2012) at a given date, it records and declares the revenue for that product in the appropriate period as a single unit of accounting. If there are multiple elements of the product, things get more complex. If Autodesk ships part of AutoCAD 2012 (the main product) at one time and part (e.g. a Service Pack with new functionality) at another, then it is required to separate the elements into multiple units of accounting. It is required to make available vendor-specific objective evidence (VSOE) for each element of the product. If Autodesk has not done so (which seems likely), there is probably a problem. My understanding is that without VSOE, Autodesk is required to allocate the revenue for AutoCAD 2012 sales not at the point when it was received, but when all the elements have been delivered (i.e. when SP1 was released).

What about an argument that the new ARRAYCLASSIC command and new SNAPGRIDLEGACY system variable are not new functionality in themselves, but merely mechanisms to restore functionality that was available in previous releases? I don’t think that matters. The functionality is new to those customers who purchased AutoCAD 2012 and thereby provided Autodesk with revenue between March and September 2011. If that revenue has been allocated incorrectly, then Autodesk has some revenue shuffling and explaining to do.

I repeat that I’m not an accountant and this is all a layman’s uninformed opinion. It is quite possible that the regulations have recently changed, or that a relaxed interpretation is now permissible, or that I have the wrong end of the stick entirely. I’ve admitted being wrong in this post twice already and it could well be thrice.

If I’m wrong and Autodesk is in the clear, that’s great. Why? Because it means Autodesk customers can look forward to a lot more functionality being provided in future service packs.

AutoCAD 2012 Service Pack 1

The first update for AutoCAD 2012 is now available on the Autodesk site. As usual, read the readme first and exercise the usual paranoia. Make sure you install the right version (32 or 64 bit). The update is also available for AutoCAD LT 2012. There is no news yet on equivalent updates for vertical variants of AutoCAD, so just talk amongst yourselves for a while until Autodesk gets around to it.

Autodesk has, thankfully, abandoned the confusing nomenclature for its service packs. So this is not 2012 Update 1 with a filename that includes SP1 and which results in the software being considered 2012 Version 2. It is 2012 Service Pack 1 with a filename that includes SP1 and which results in the software being considered 2012 SP1. Why Autodesk thought the former convention made sense is beyond me, but at least it’s over now.

This Service Pack is unusual for more than that, though. It’s the first free update since R13c4 in 1996 to include new functionality, i.e. a new command (ARRAYCLASSIC) and a new system variable (SNAPGRIDLEGACY). I’ll have more to say on that later.

Old news – shipping version of ClassicArray released

I have been somewhat neglectful of this blog lately, including a failure to mention that my ClassicArray™ plug-in for AutoCAD 2012 has been shipping since 1 May 2011. Thank you to those people from various places around the world who have been prepared to go to the effort of registering and paying for the product.

Here are some details of the product taken from the ClassicArray page:

ClassicArray is a simple-to use but powerful tool for creating arrays in AutoCAD.

  • Provides a dialog box interface to AutoCAD 2012’s Array command. The familiar interface method provides continuity with earlier releases.
  • Supports the creation of both associative and traditional non-associative arrays.
  • Provides an in-dialog preview panel to give you a quick idea of what your array will look like before any objects are created.
  • Allows creation of a preview array which can be accepted, rejected or modified before the desired array is finally chosen.
  • Base objects can be incorporated into the array or left intact as desired using a simple toggle.
  • Allows simple creation of 3D arrays.
  • Comprehensive Help is available from within the dialog box.
  • Provides Ribbon tabs and toolbars, separated into associative and non-associative sections.
  • Setup routines are provided that support either all users (requires admin rights) or the current user (no admin rights required). Uninstallation is via the standard Windows Control Panel methods (Uninstall a Program, Add/Remove Programs).
  • Uses AutoCAD 2012’s new Plug-in feature to provide application behavior consistent with other add-ins.
  • Acts as a workaround for various AutoCAD 2012 Array bugs and limitations.
  • Supports AutoCAD 2012 for Windows and vertical products derived from it. Sorry, due to Autodesk API restrictions ClassicArray can support neither AutoCAD LT nor AutoCAD for Mac.

See the ClassicArray Help page if you want to see a full description of the product, including screenshots.

One more thing I should mention is that if you have used one of the Beta versions of ClassicArray, please make sure you uninstall it and install the shipping version before registering the product.

AutoCAD 2012 – Autodesk adds an uninstallation analgesic

One of the more painful aspects of dealing with installations of recent releases of AutoCAD and related products is that although you might run a single setup routine to install what you think is a single application, the end result is a mass of different components being installed. Each of these components is considered a separate program by Windows, and needs uninstalling separately. Frankly, this is manifestly antisocial behaviour.

I have complained to Autodesk about this ever since it started happening, but the number of sub-installations has been getting greater rather than smaller. Now Autodesk has provided an uninstallation tool, which you can find here. If you download and run psebuninstalltool.exe, you will be provided with a list of applications to uninstall.

This is a move in the right direction, but it’s still far from ideal. You still have to choose which applications to install and which to leave alone because they’re in use by some other application, and because of the possible complexities you’re not likely to know. Get it wrong and you can break other applications in a way that’s not immediately obvious. Also, it uninstalls English language products only and is provided “as-is” as an unsupported tool.

This is a welcome kludge to help with a problem that shouldn’t exist. Users simply shouldn’t have to deal with this nonsense. If you install one application, you should be able to just uninstall one application and it should be gone, without breaking anything else. Autodesk, thanks for this interim assistance, but I look forward to the problem being removed in future releases, rather than partially patched over.

AutoCAD 2012 – How to “hatch” using any objects

Here’s a trick you can use in AutoCAD 2012 to fill an area with any objects you like. It’s not actually hatching, but it has several advantages over the real thing:

  • You aren’t restricted to straight line segments as you are with real hatching. Circles, splines, even solid objects, you name it, you can use it.
  • To define the pattern, you don’t have to master an arcane file format or use trigonometry to work out the numbers used in it. Just draw the objects you want repeated.
  • You can easily change the spacing between the objects later, or even change the objects themselves.

How is this done? Use the new associative array feature, then use XClip to restrict the displayed objects to within a specified boundary. For example, let’s say you have a polyline you want filled with green spheres, and a green sphere already drawn. The sequence is:

  • Use the Array command to create a rectangular array of spheres that more than covers the whole area you want “hatched”. You might prefer to use my ClassicArray add-on for this, but it will make no difference to the finished objects.
  • Use the XClip command and select the array of spheres. Press Enter to accept the default option of New. Type S [Enter] to select the polyline, then pick the polyline. Done!

Don’t have a handy polyline defining the area? No problem, just create one before you start using the Boundary command.

There are some restrictions to this technique that do not apply to normal hatching. For example, any arc segments in the polyline will be treated as if they were straight lines, which isn’t very useful. But this method will work in most cases, and it sure beats spending hours trying to get your hatch pattern definition just right. You can even use an array of arrays to get some very interesting effects. For example, you could have a series of circles in a wave-form path array, which is then arrayed in a rectangular form before being Xclipped.

Not using AutoCAD 2012? You can do something similar using Minsert. Instead of Array, use the Block command to convert your objects to a block, then the Minsert command to insert it in a series of array-like rows and columns. Finally, Xclip it as described above.

Edit: In a comment, Patrick Emin reminded me of the Express Tools command SuperHatch. This allows you to use an image, block, xref, or wipeout object as a hatch pattern. It also automatically takes care of various details, including converting arcs within the boundary to straight line segments. However, the end result can be hundreds of individual blocks collated into a group, rather than just one configurable object if you use the Array or Minsert methods I describe above.

How to make Ctrl+C perform a Cancel

In a recent comment, I was asked how to make Ctrl+C perform a Cancel. Before I get onto that, here’s a bit of history.

Back in the Dark Ages of DOS, the way to cancel a command was by holding down Ctrl and pressing C. The last release to work like this by default was Release 13 for DOS, released in 1994. I remember the bother it caused my users who were faced with the Windows version in which Esc was used to cancel things and Ctrl+C copied objects to the clipboard. It took me at least a year before I had totally removed Ctrl+C = Cancel from my muscle memory.

Until AutoCAD 2005, Autodesk provided an easy option to keep things the way they were by turning off the toggle Options > User Preferences > Windows standard accelerator keys. In recent AutoCAD releases, you have still been able to do it, but it’s a little more involved and uses the CUI command. Here’s how:

  • Enter the CUI command.
  • In the top left pane, burrow down to Keyboard Shortcuts > Shortcut Keys.
  • In the bottom left pane, scroll down to find the Cancel item. Click and drag it onto Shortcut Keys in the top left pane. Because of a long-standing auto-scroll annoyance in the CUI interface, you will find this easier if you drag off to the right, then up, then left onto Shortcut Keys.

That adds Ctrl+C = Cancel to the set of shortcut keys AutoCAD understands, but it won’t work yet because it will clash with the Ctrl+C = CopyClip shortcut key that’s already in there. We need to get rid of that before we’re finished in CUI, or more usefully, assign it to a different key:

  • Find Copy Clip in the Shortcut Keys list in the top left pane and click on it.
  • In the bottom right pane, find Access > Key(s). Where it says CTRL+C, change that to something else of your liking (e.g. CTRL+ALT+C). If you pick the […] button, you will be able to record the keystroke sequence directly instead of typing it in and worrying about syntax.
  • Pick OK and you’re done.

This post may be directly useful to only a handful of people who are still holding out after all these years, but it also serves as an introduction to a more generally useful skill; setting up keyboard shortcuts in CUI.

Installation tip – save time and space

If you download AutoCAD or other Autodesk products from either the trial or Subscription sites, the executable you get (e.g. AutoCAD_2012_English_Win_32bit.exe) is actually a self-extracting archive rather than a real installer. When you run it, you are prompted for a destination folder, with a default location such as this:


The actual installer (setup.exe) and all of the files it needs are then unzipped and placed in a folder structure in that location. When the extraction is finished, the self-extracting executable automatically runs setup.exe and the installation proper can begin. Once the installation is complete, the extracted files are left in place.

You can take advantage of this simple knowledge in various ways:

  • Sometimes, you may you need to run the installer more than once on the same PC. For example, you might need to uninstall/reinstall AutoCAD, or you might be a CAD Manager who installs AutoCAD for on your own PC and later creates a deployment for the other users. Or you might start installing AutoCAD, cancel it for whatever reason, then come back to it later. If so, don’t just run the downloaded executable again. Instead, locate the actual setup.exe installer that has been left behind and run that instead. That cuts out the extraction step and saves time.
  • If you’re going to do standalone installs on several PCs rather than making a deployment, don’t go through the extraction process again and again. Instead, do it once and then copy the extracted folder to a location that can be used from other PCs. This might be a USB drive or DVD, which you can store safely for later reinstalls. If you are going to install to the other PCs from a network drive, during the first install you can directly specify that as the destination folder and cut out the manual file copying step.
  • If you think it’s unlikely you’re going to need the extracted files again, you can delete or move them and recover the space. If you download a product and install it, you end up with three copies of the product files using up your space; the self-extractor, the extracted files and the installed product itself. It probably doesn’t all need to be on your C: drive. Although bulk hard disk space is plentiful and cheap, it’s becoming more common to use a small high-speed drive or SSD as the OS/program drive drive, and you might have a significant portion of it given over to a bunch of files you don’t need. Because Autodesk products are increasingly (and sometimes completely pointlessly) bloated, you might be surprised at how much space you can recover.
    However, as Chris Cowgill has pointed out, you may need to have the “media” available when you install Updates, etc. Keeping a copy of the extracted files on a DVD or USB key should do the trick if you’re hard up for hard disk space.

Note that this applies to the Windows downloads only; I know nothing about the mechanics of Autodesk’s Mac installation downloads.

3DConnexion device support in AutoCAD

Do you have a 3DConnexion device (3D ‘mouse’) and use it in AutoCAD or AutoCAD-based products? What do you think of the way it works in the most recent releases of AutoCAD?

From AutoCAD 2011 on, Autodesk provided built-in support for these devices. Has that made things better or worse than in earlier releases? If you’re having problems, exactly what are they and how does it affect your ability to work with AutoCAD in 3D? Is the 2012 support any better than 2011? How does AutoCAD’s support for these devices compare with that of other products?

AutoCAD 2012 – Autoloader mechanism for plug-ins

One of the less obvious features introduced by AutoCAD 2012 is the Autoloader mechanism that has been provided to make installation of plug-ins (current standard Autodeskspeak for add-ons, apps, utilities, routines, etc.) easier for both developers and users. It may not be immediately obvious, but it’s a useful and important addition.

This mechanism has nothing to do with the AppLoad command, the Startup Suite, acad*.lsp, the (autoload) function or anything else that existed in earlier releases. This is completely new, it has not replaced or broken any of the existing loading mechanisms, and is, in short, A Good Thing. Developers don’t have to use it, but those who do, and their customers, will have certain advantages. I have used it for the ClassicArray loading mechanism, and I expect to see it used by more and more plug-ins over time. It works fine with all of the usual AutoCAD add-on APIs, including LISP.

User perspective
As a user, what this means is that for AutoCAD and related applications from 2012 on, there is a standard loading mechanism for plug-ins. The installation should be straightforward, with no multi-step processes to go through for different AutoCAD variants and releases. The result of the installation should automatically present itself in a standard way, with a short-lived welcome bubble, an extra panel in the new Plug-ins Ribbon tab, plus any other interface additions the developer wants to provide. If you subsequently install another AutoCAD variant or release, the plug-in will automatically appear in that variant with no further user action required, as long as that AutoCAD variant is supported by the plug-in.

Developer perspective
What this means for me as a developer is that I have much less to worry about in terms of installation. All that needs to be done to make the loading happen is for a folder full of ‘stuff’ to be copied into a certain location. (There are actually two possible locations, but more on that later).

In Betas of ClassicArray, I just provided the folder, plus instructions that asked the user to copy that folder into place. I could have simplified that further by providing batch files that did the copying. In the end, I created setup executables using the free Inno Setup utility, but that was a much easier job that it would have been if this Autoloader mechanism didn’t exist. I didn’t have to worry about discovering what releases were installed, deciphering Registry entries, creating user installaton scripts, or issuing instructions to users to edit files or mess with the AppLoad command. I don’t have to worry about what happens if the user subsequently installs another AutoCAD variant.

Of course, for developers who support releases prior to 2012, there is no less work to do than before, and some time needs to be spent to learn and implement the new mechanism. In the case of ClassicArray, that was not an issue because it’s only needed and supported in 2012. I expect this is one of those problems that will resolve itself over time as developers adopt the new mechanism.

The bundle folder
So what is this ‘stuff’ that needs copying into place? It’s called a bundle folder. It’s just a folder with a name that ends in .bundle (e.g. ClassicArray.bundle), and it typically contains the usual files needed to run your add-in, often tidied up within other folders. The only new thing that it needs to contain is a file called PackageContents.xml. That XML file is the key to the Autoloader mechanism. AutoCAD finds the file, reads it, and acts accordingly in terms of version support, loading program files, partial cuix files and so on.

Bundle folder location
So where does this folder with its XML file have to go? There are two possible locations. If you want the plug-in to be available to all users on the computer, you place it in the Autodesk\ApplicationPlugins folder underneath the system’s ProgramFiles folder. For example, ClassicArray usually gets put here:

C:\Program Files\Autodesk\ApplicationPlugins\ClassicArray.bundle

If you only want the plug-in to be loaded for the current user, it goes in the Autodesk\ApplicationPlugins folder underneath the system’s AppData folder instead, for example:

C:\Documents and Settings\[login]\Application Data\Roaming\Autodesk\ApplicationPlugins\ClassicArray.bundle

in XP or


in Windows 7.

Describing the contents of that all-important XML file is beyond the scope of this post, but I may do a follow-up post if there is enough interest. In either case, the reference material is available in the AutoCAD Help, under Help > Customization Guide > Introduction to Programming Interfaces > Install and Uninstall Plug-In Applications > PackageContents.xml Format.

AutoCAD 2012 – Putting things back to “normal”

The most popular post on this blog, in terms of both hits and comments, is AutoCAD 2009 – Putting things back to “normal”. This is followed by AutoCAD 2010 – Putting things back to “normal”, with AutoCAD 2011 – Putting things back to “normal” not too far behind. As it seems many people find these posts useful, here’s an updated version for the latest release. Much of this post is based on older versions, but there are many additions and differences in this year’s “keep off my lawn” post.

One thing that’s regularly asked whenever a new AutoCAD release hits the streets is how to make it work like earlier releases. As I stated in my original post, I think you should give any new features a fighting chance before turning them off or ignoring them. But it’s entirely your choice. We should be grateful that in AutoCAD 2012 at least (unlike some Autodesk products), you do still have that choice. At least, you have a choice in most cases.

Let’s assume you’ve made the decision to put your environment back to AutoCAD 2008 or earlier; how do you do it? I’ve arranged these items in alphabetical order:

  • Aerial View. The DSVIEWER command appears to be gone, but it’s just hiding. It has been undefined. You can use REDEFINE DSVIEWER to turn it back on, or just enter .DSVIEWER (with a leading period). It may not work perfectly on all systems under all circumstances.
  • Array dialog box. The excellent new associative array features of AutoCAD 2012 have come at the cost of the Array dialog box. While you can use the Ribbon or the Properties palette to modify arrays, if you want to create one you have to go back to the future with a Release 14-style user interface. Using -Array doesn’t give you a dialog box, just the old-style command line. There’s nothing available in standard AutoCAD 2012 to give you a dialog box interface, which is why I created ClassicArray™. It also makes it easier to create non-associative arrays, if that’s what you prefer. This plug-in has the further fortunate side-effect of acting as a workaround for several of the new Array command’s various bugs, limitations and design issues.
    Edit: Applying SP1 to AutoCAD 2012 adds an ARRAYCLASSIC command that restores the previous dialog box. This does not provide access to any of the new features; you will still need ClassicArray for that.
  • Autocomplete. Old-timers may well find this feature useful, but if it’s getting in your way, turning it off is as simple as AUTOCOMPLETE OFF. There are a variety of settings you can selectively turn off individually if you prefer.
  • Blips. The BLIPMODE command has been undefined, but you can use REDEFINE BLIPMODE to turn it back on, or just enter .BLIPMODE (with a leading period).
  • Classic commands. If you prefer not to leave the various new palettes on screen all the time, old versions of various commands are still available: ClassicLayer, ClassicXref and ClassicImage. (Autodesk deprecated these commands in 2011 and 2012, which I think is a really bad idea). There is also a system variable LAYERDLGMODE, which when set to 0 will make the Layer command work in the old (and faster) modal way. If you use this setting, you can still access the new modeless layer palette with the LayerPalette command. Going back further, there are command-line methods of using these commands: -Layer, -Xref, XAttach, -Image and ImageAttach. For 2012, Autodesk has removed the Group command’s dialog box interface. If you want the dialog box, you now need to use the ClassicGroup command instead.
  • Crosshairs. Want 100% crosshairs? Many people do. As before, use the Options command’s Display tab and look towards the bottom right, or use the CURSORSIZE system variable.
  • Dashboard. The AutoCAD 2007/8 Dashboard is gone, but you can have a vertical Ribbon instead. If the Ribbon is not visible (it won’t be if you just selected the AutoCAD Classic workspace), enter Ribbon to bring it back. In the tab title row (the bar with the word Home in it), right-click and pick Undock. Now you can place and size your Dashboard-like thing as you see fit. As before, you can right-click on things to change the various settings. However, getting the contents exactly the way you want it usually involves using CUI, and that’s well outside the scope of this post.
  • Dynamic Input. If Dynamic Input slows you down, you can turn it off with the status bar toggle or F12. If you like the general idea but don’t like some parts of it, there are lots of options available in the Dynamic Input tab of the DSettings command to enable you to control it to a fine degree. You can also get at this by right-clicking the Dynamic Input status bar button and picking Settings… As an example of the sort of thing you might do in there, the default of using relative coordinates is difficult for long-termers to get used to. To turn it off, pick the Settings… button in the Pointer Input panel, pick Absolute coordinates, then OK twice. There are a whole range of DYNxxx system variables for controlling this stuff.
  • Graphic Background. Autodesk has half-listened to users’ pleas for a black background by giving you a nearly black one (RGB 33,40,48 rather than 0,0,0), in model space only. Many of you will want a real black background to provide better contrast. To do this, invoke the Options command (right-click on the drawing area and pick Options… or just enter OP), then pick the Display tab. Don’t be tempted to choose Color Scheme and set it to Dark, because that just changes the appearance of various user interface elements. Instead, pick the Colors… button. This will put you in the Drawing Window Colors dialog box. On the left, choose a context you want to change (e.g. 2D model space), choose the appropriate background element (e.g. Uniform background) and choose the particular shade that takes your fancy. There is a Restore Classic Colors button, but that only takes you back to AutoCAD 2008 with its black model and white paper space. If you want a black paper space background too, you’ll have to pick the Sheet / layout context and specify that individually. You may wish to put the Command line > Command line history background setting to white, too. When you’re done, pick Apply & Close, then OK.
  • Grid. I generally prefer the new line-based grid. If you use isometric snap and grid, you will find that AutoCAD 2012’s line-based isometric grid is still as broken as it was in earlier releases, so you’ll need to use dots. If that applies to you or you just don’t like the lines, right-click on the Grid status button and pick Settings…, which will take you into the Drafting Settings dialog box, which you can also get at with the DSettings command, or DS for short. In the Snap and Grid tab, the grid is controlled by the options on the right. If you want your dots back, turn on the toggles in the Grid style section. This can also be done using the GRIDSTYLE system variable. If you don’t like the fact that the grid is now on by default in new drawings, this is set on a drawing-by-drawing basis and is therefore controlled by your template drawings. If you use AutoCAD’s supplied templates, you will need to open them individually and turn off the grid in each one.
  • Hatch dialog box. If you want the Ribbon on but prefer the old Hatch dialog box, set HPDLGMODE to 1.
  • Hatch double-click. If you’re not using the new Ribbon-based hatch editing feature, you will probably want to invoke the HatchEdit command when you double-click on a hatch object. Doing this involves braving the CUI interface, but I have gone into step-by-step detail of that process here. In short, you need to drag and drop the Hatch Edit command from the bottom left CUI panel onto the double-click action for Hatch in the top left panel, replacing the default action (Properties).
  • Help. If you want your Help to work with adequate speed and reliability, or to work at all in some proxy server environments, you will want to turn off AutoCAD 2012’s online help. Go into Options > System, then look in the bottom right pane to turn off the Use online help toggle. Even with online help turned off, you’re stuck with the unfortunate new browser-based AutoCAD Exchange interface for your Help. There is no sign yet of Autodesk coming to the rescue with a set of CHM-based Help files as was done for AutoCAD 2011, which is a real shame. The VLIDE Help is still partially broken, because Autodesk doesn’t care about customers who use LISP for development. While you’re in Options, you may also wish to turn off AutoCAD’s insistence on firing up Internet Explorer, that is if you dislike IE or have security concerns.
  • Initial Setup. Don’t bother looking for this, it has been removed from the product. Can’t say I’m heartbroken about that.
  • NavBar. If you like the new NavBar feature as much as I do, you’ll want to turn it off. You can close it easily using the little X in its top left corner. Alternatively, control it with the NAVBARDISPLAY system variable (0 for off, 1 for on)
  • Pull-down Menus. Enter MENUBAR 1 to turn pull-down menus on. To turn them off again, enter MENUBAR 0.
  • Ribbon. You can close the Ribbon with the RibbonClose command. If you ever want to turn it back on, enter Ribbon.
  • Screen menu. The SCREENMENU command has been undefined, but you can use REDEFINE SCREENMENU to turn it back on, or just enter .SCREENMENU (with a leading period). However, you can’t access the screen menu section in CUI any more, so if you want to maintain your screen menu you will need to do it in an earlier release.
  • Selection Cycling. Depending on your preference and/or system graphic performance, you may wish to turn off selection cycling (set SELECTIONCYCLING to 0), or at least the list that appears when selecting objects that lie on top of each other (set SELECTIONCYCLING to 1).
  • Selection Preview. This feature annoys some users, adding as it does an unfortunate degree of stickiness and working inaccurately when Snap is in use. This is controlled in the Selection tab of the Options command. Turn off the toggles in the Selection preview panel on the left (these control the SELECTIONPREVIEW system variable). If you dislike the coloured boxes you get while doing a Window or Crossing, pick the Visual Effect Settings… button and turn off the Indicate selection area toggle. This controls the SELECTIONAREA system variable.
  • Snap. AutoCAD 2012’s snap no longer works while there is no command active. There is no setting available to turn this feature off. If you want to move your cursor around and see the cursor snapping to precise locations to see if objects line up (e.g. in schematic diagrams), you will need to invoke a command first (e.g. L [Enter]) and ignore the command as you’re moving around on screen.
    Edit: Applying SP1 to AutoCAD 2012 adds new system variable (SNAPGRIDLEGACY) that allows you to have your snap active at the command prompt.
  • Startup performance. You may have noticed that AutoCAD 2012’s Ribbon switching performance is finally as it should have been from the start; practically instantaneous. You may also have noticed that when you start AutoCAD, the cursor is sticky for a while after the Command prompt is available. These two items are not unrelated; AutoCAD is loading Ribbon components in the background. If you would prefer this not to happen, set the RIBBONBGLOAD system variable to 0.
  • Status bar. Right-click on a status bar button, turn off Use Icons and your old text-based status bar buttons will return. If you have no use for some of the new status bar toggles, right-click on one, pick Display, then turn off what you don’t need.
  • Toolbars. In AutoCAD 2009, you could turn individual toolbars on and off by accessing a menu obtained by right-clicking on the QAT. Autodesk somewhat vindictively removed that option in 2010, and it’s still gone in 2012. That toolbar-toggling menu is still available if you right-click in an unused docked toolbar area, but if you have no toolbars visible there will be no such area available. What to do? Turn on one toolbar at the Command prompt, then you will be able to access the menu by right-clicking on the blank area to the right of it. The following command sequence will do it:
    _.-TOOLBAR ACAD.Standard _Top 0,0
    Paste this into AutoCAD’s command line area and the Standard toolbar will be turned on above your drawing area. This will leave a grey area to the right that you can right-click into. The other toolbars will be in sub-menus under that, with the main set of default ones in the AutoCAD section. Note that this will only work if you have the acad.cuix file loaded (or partially loaded). This is the case in vanilla AutoCAD and some verticals, but it may not be the case in other verticals. As I don’t have access to such verticals, I’m afraid I can’t offer much advice here.
    If you’re like me, you may well discover that this is moot because AutoCAD 2012 automatically turns on a full set of toolbars, in addition to the Ribbon, the second time you run AutoCAD. This bug occurs when there’s another release already installed and you don’t use Migration. It’s easily fixed (that is if you want to fix it) by switching to the workspace of your choice (see below).
  • Tooltips. Excessively intrusive and oversized tooltips were a “feature” of AutoCAD 2009’s revamped UI design, and we’ve been plagued with them ever since. I’m glad to see that many of them have had their verbosity somewhat curtailed in 2012, but they still annoy the heck out of me, particularly by obscuring what I’m trying to see in dialog boxes. To kill them with fire, see Options > Display and start turning off toggles about half way down the left side.
  • Trace. The TRACE command has been undefined, but you can use REDEFINE TRACE to turn it back on, or just enter .TRACE (with a leading period).
  • UCS Icon. Don’t like the new simplified UCS icon? Sorry! While you can use the UCSIcon command’s Properties option to change the appearance of the icon in various ways, there’s nothing to restore the UCS Icon’s appearance from previous releases with its little arrows pointing the way. This information isn’t totally useless, because at least it will save you the time and effort involved in finding this out for yourself.
  • Vertical variants’ AutoCAD profile. Apparently, some AutoCAD 2012 vertical variants don’t have a shortcut for running them as AutoCAD. If you want to make one, first check in Options > Profiles to see if there is a profile called “AutoCAD” or similar. If not, you will need to create one, reset it, and hope for the best. Sorry, I don’t have all the variants to check. Now, make a copy of your AutoCAD variant’s desktop shortcut and rename it as something like “AutoCAD 2012”. Then right-click on the copy and pick Properties. In the Target edit box, check to see if there is a /p switch followed by a profile name inside quotes. If there is, replace the existing profile name with “AutoCAD” or whatever the profile name is that you discovered or created in Options. If there isn’t a /p switch, add one. The end result should look something like this (there may be extra switches):
    "C:\Program Files\Autodesk\[product name]\acad.exe" /p "AutoCAD"
    Once you have ensured there’s a /p “AutoCAD” (or similar) on the end of the Target, pick OK. You should then be able to start your vertical variant as AutoCAD.
  • ViewCube. I like the ViewCube concept, and I think it’s a great piece of interface design. But not everybody agrees. It has caused performance issues and it’s not very useful for 2D users. If you want it gone, that’s a surprisingly difficult thing to find out about. The simplest way to remove it is by clicking the [-] button in the top left corner of the drawing area and tuening off the ViewCube toggle there. If you want more control, it’s handled using the Options command, in the 3D Modeling tab, in the bottom left corner. Turn off those toggles that don’t make sense for you. There is a related set of system variables called NAVVCUBExxx.
  • Workspace. In vanilla AutoCAD, you can restore much of the user interface by just switching workspaces. The main Workspace control is now located near the top left corner. If you have turned this off (right-click, Remove from Quick Access Toolbar) or if you just prefer working with interface elements in the same place year by year, there is another Workspace control in the bottom right corner. This is a little button that looks like a gearwheel. In either case, click on the Workspace control and pick the item called AutoCAD Classic. This will perform some of the steps described above, but not all of them, so I suggest you skim the whole lot to see what else you might want to do. If you’re using a vertical variant of AutoCAD 2012, this workspace may not be available, or it may only be available if you when using an “AutoCAD” profile (see above). If it’s not available at all, you’ll need to make your own classic workspace by manually setting up your interface the way you like it, then saving it as a Workspace using the Save Current As… option under one of the Workspace controls.
  • Xref fading. Don’t like your xrefs looking different? Use the Options command’s Display tab and look at the Xref display slider on the bottom right, or use the XDWGFADECTL system variable.
  • Zoom Animation. If you prefer your zooms to be instant rather than progressing from one view to another in an animated series of steps, you can turn off that feature using the VTOPTIONS command or the VTENABLE system variable.

If you have allowed AutoCAD to migrate your settings (I never do), some of the above will already be done for you, but by no means all of it. If past experience is anything to go by, the job done by Migration will probably be imperfect.

Once you’re happy with your new environment, I suggest you save your workspace under a name of your choosing (Save Current As… under a Workspace control), then export your profile in the Options command’s Profiles tab. Keep a safe copy of both your exported profile and your main CUIX file (acad.cuix by default), because that is where new workspaces are stored.

All of this advice is offered on an as-is, try-it-yourself-and see-what-happens basis. Unfortunately, I can’t check to see which parts of this post relate to AutoCAD for Mac (when the 2012 version arrives), AutoCAD LT (much of it will be the same), the various AutoCAD-based vertical variants (almost all of it should be the same). AutoCAD WS is, of course, nothing like real AutoCAD so none of this post will be relevant. Please comment to let me know if you find something you think I should modify or include.

Let me just end by saying that Autodesk generally does an excellent job of keeping long-term AutoCAD users happy by allowing them to keep working in the way that they prefer. There are exceptions, and this record has been damaged slightly by 2012, but conservative users are still better off with new releases of AutoCAD than they are with, say, Microsoft Word.

ClassicArray Release Candidate 2

I have now posted the second Release Candidate of ClassicArray™ (version number 0.7.0). The main changes from the first Release Candidate (0.6.0) are:

  • Help documentation, which you can also view here, now describes how to resolve an AutoCAD CUIx loading problem. (The problem is not specific to ClassicArray and can affect any CUIx file that is removed or relocated. More on that in a future blog post).
  • Timebomb mechanism now works 15 days after first use rather than a specific date. Also now allows the interface to still be used (but no arrays to be created) once the evaluation period has expired.
  • About dialog enhanced to show registration information and to provide access to a new registration dialog.

Barring disasters, I intend to release ClassicArray in this exact form (except for updating the version number to 1.0.0) in about a week.

Please see either or the main ClassicArray Beta post for the download, and provide feedback either as a comment on that post or in an email.

ClassicArray Release Candidate – massive download bloat

I have just posted the Release Candidate of ClassicArray™ (version number 0.6.0). The main changes from Beta 2 (0.5.0) are:

  • Setup executables have been provided to provide easier installation and uninstallation.
  • Pretty comprehensive Help documentation is now in place, which you can also view here if you want to learn about the product without installing it.
  • Bug fixed with Path preview not displaying accurately when no path is selected.
  • Minor cosmetic dialog box fixes.
  • Timebomb has been moved on 7 days to 28 April.

Regrettably, the download file size has blown out to 787 KB because of the inclusion of the Help files and setup executables. There are two setup choices; one for all users (requires admin rights) and one for the current user only (admin rights not required). When installing the Release Candidate, it is not necessary to uninstall the Beta first. I would appreciate any feedback you might have, particularly on installation and uninstallation. If there are no significant problems reported with this version, I intend to release it in this form, except for version information and the timebomb mechanism.

Please see the main ClassicArray Beta post for the download, and add any comments there.