При помощи COM API можно выгрузить все загруженные в AutoCAD меню, в т.ч. и основное меню. Для этого через MenuGroups нужно выполнить итерацию по каждому объекту MenuGroup, вызывая его экземплярный метод Unload. Основное меню акада так же присутствует в этой коллекции в виде обычного элемента MenuGroup.
Однако после выгрузки всех меню, перерисовка основного окна акада не происходит автоматом. Если ты завершишь работу акада и снова запустишь, то увидишь, что менюшки полностью отсутствуют, однако конечно же перегружать акад для регенерации основного окна автокада - это не "кошерно"...
В своих расширениях я проделывал такой фокус: изменял значение системной переменной, указывающей имя текущего воркспейса, указывая ей в качестве нового значения текущее же значение этой же переменной. Этот фокус проходил на "ура" - происходила перерисовка всего экрана и программно подгруженные мною файлы частичного меню успешно отображались тут же.
Однако такой способ регенерации не пройдёт в случае выгрузки из акада
сразу всех меню, т.к. в этом случае и воркспейсов текущих так же не существует, ибо они живут в контексте выгруженных менюшек...
Если кто-нить знает, как в подобной ситуации вызвать полную перерисовку основного окна приложения, то с интересом и сам почитаю.
НО!
Если после выгрузки всех менюшек, затем загрузить набор необходимых (через MenuGroups.Load), то воркспейсы появятся (если они определены в составе подгруженных меню) и обозначенный мною выше финт ушами (по теме регенерации) можен снова пригодиться.