Partial menus in AutoCAD

Do you have a company or personal menu for AutoCAD, or are you thinking about putting one together? If you have not started already, don’t customize the stock menu(s). Create you own and load it as a partial menu. This way, when you reinstall, upgrade, or want to share your menu, you don’t have to worry about migrating your content out piece by piece.

First off, what is a partial menu? When you are running AutoCAD, normally your main menu is “Acad.cuix”. This is the menu that contains the Ribbon tabs like Home, Insert, Annotate, Parametric, etc. But there are other ribbon tabs available such as A360, Express Tools, and Featured Apps. These are not part of “Acad.cuix”, these belong to individual “partial menus”. So a “partial menu” is a menu that is loaded on top of a main menu. Partial menus can be loaded and unloaded without affecting the main menu. Run the CUI command to see your main and partial menus.

CUI Dialog

To load your partial menu, run the MENULOAD command (not the MENU command! That is used for loading the main menu). This command, as well as MENUUNLOAD, can be used to UNload a partial menu.

If you are managing several users and you want them to have your partial menu loaded automatically, one way to do this is to use autolisp to load the menu and then you can call this code in a startup file, such as Acad.lsp.

(defun MyMenuLoad (mgname mfile / mg x mglist tmp *acad*)
  (setq *acad* (vlax-get-acad-object)
	mg (vla-get-MenuGroups *acad*)
	mglist '()
  )
  (vlax-for x mg
    (setq mglist (cons (strcase (vla-get-name x)) mglist))  
  )
  (if (member (strcase mgname) mglist)    
    (princ (strcat "[" mgname "] MenuGroup ALREADY LOADED! "))
    (progn
      (if (setq tmp (findfile mfile))
	(vlax-invoke-method mg 'Load tmp)
	(princ (strcat "\n ** Cannot find " mfile " file! ** "))
      )
    )
  )
  (vlax-release-object mg)
  (vlax-release-object *acad*)
  (princ)
)

The first argument is the menugroup name and the second argument is the file name. You’ll need to include a valid path if the menu file name is not in the support file search path.

Example: (mymenuload “mycustom” “mycustommenu.cuix”)

As a bonus, keep your custom menu file is a separate location, such as C:\CADSTUFF, along with your other custom data such as the files “acad.lsp” and “acaddoc.lsp”. Then when you change machines, reinstall, or otherwise disrupt your current setup, it’s simply a matter of copying this folder to the new machine and pointing AutoCAD to it, by adding C:\CADSTUFF to the top of your support file search path.