Почему только на Lisp? На VBA это тоже несложно. Пример из Help:
Sub Example_AddSubMenu()
' This example creates a new menu called TestMenu and ins erts a submenu item
' called NewFile. It then creates a menu item, called open,
' on the submenu.
' The menu is then displayed on the menu bar.
' To remove the menu after execution of this macro, use the Customize Menu
' option from the Tools menu.
Dim currMenuGroup As acadMenuGroup
Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)
' Create the new menu
Dim newMenu As AcadPopupMenu
Set newMenu = currMenuGroup.Menus.Add("TestMenu")
' Add the submenu
Dim FileSubMenu As AcadPopupMenu
Set FileSubMenu = newMenu.AddSubMenu("", "NewFile")
' Add a menu item to the sub menu
Dim newMenuItem As AcadPopupMenuItem
Dim openMacro As String
' Assign the macro string the VB equivalent of "ESC ESC _open "
openMacro = Chr(3) & Chr(3) & Chr(95) & "open" & Chr(32)
Set newMenuItem = FileSubMenu.AddMenuItem(newMenu.count + 1, "Open", openMacro)
' Display the menu on the menu bar
newMenu.InsertInMenuBar (ThisDrawing.Application.MenuBar.count + 1)
End Sub
Данный код не учитывает возникновении ошибки при попытке повторного создания существующего меню.Чтобы ее избежать можно либо проверить существование меню перед его созданием, либо заключить код по созданию меню в блок On Error Resume Next ... On Error GoTo 0