Missing Menu Madness

One of my many complaints about about the CUI system introduced in AutoCAD 2006 is that it’s not very friendly to third party developers. In my opinion, it’s not very friendly to end users either, but I digress…

One example of the unfriendly CUI is the case where a third party application installs a partial menu. In the pre-CUI days, adding a partial menu was an easy way to add an application specific menu to AutoCAD without making any changes to the end user’s existing menu files. If the application was later uninstalled, the uninstall script could remove its menu and clean up the registry, leaving no trace behind. CUI breaks that scenario.

When a partial menu is loaded into AutoCAD 2006 and later, the CUI system actually writes a reference to the new partial menu into the main .cui file. To make matters worse, there is no clean way to programmatically remove those references because there is no deterministic way to locate all the .cui files used by a specific instance of AutoCAD from an uninstall script running outside of AutoCAD.

This would not be the end of the world if AutoCAD simply ignored references to missing files, but it doesn’t. When the CUI command starts, it detects the missing files and displays an obnoxious message box that must be dismissed before the command will continue.
Unable to open file 'c:\program \files\manusoft\superpurge\spurge2004.cui'

Then to top it off, AutoCAD displays a second message box that also must be dismissed.
Unable to locate 'spurge2004.cui'. This file is defined in the main CUI file, but has been moved, renamed, or deleted from the following location: c:\program files\manusoft\superpurge\spurge2004.cui To reload this file, type cuiload on the command line.

I think it should be obvious even to an untrained UI designer how ridiculous this is.

In AutoCAD 2006 and 2007, the solution is to dutifully dismiss both dialogs, then when the CUI dialog finally appears, click [Apply] to rewrite the .cui file without the missing partial menu references. In AutoCAD 2008 and 2009, you have to first expand the ‘Partial CUI Files’ node in the Customization tab, then right-click on the unresolved partial menu file and select ‘Unload CUI File’, then click [Apply].

5 thoughts on “Missing Menu Madness”

  1. Amen to that I have pulled 3rd party software from previous firms that work quite well until CUI (how dare i capitalize that.

  2. At SYCODE, we actually have a document that we regularly hand to users who have uninstalled our plug-in but don't know how to remove the menu that it added.

  3. Now with the advent of the ribbon, I'm thinking about getting some condoms. Then I'll just give them a condom and tell 'em they're screwed. <:-)

  4. I have it appearing in my enterprise menu but it is not loaded there when I stop using it as enterprise. Obviously, I cannot unload them from an enterprise. I remove it as enterprise and it is not there until I make it enterprise again. What is up with that?

    1. I don’t use an enterprise menu here, so I’m not all that familiar with the vagaries of using both enterprise and main menu files at the same time. Are you sure your enterprise menu is using the file you think it’s using? There is always Notepad to edit the files manually (after unzipping, if they’re in a .cuix file).

Leave a Reply

Your email address will not be published. Required fields are marked *