Адаптация меню AutoCAD 2002

Страницы работы

Содержание работы

Понятие файл меню служит для обозначения группы файлов, работающих совместно и определяющих внешний вид и функции областей меню. В следующей таблице описываются типы файлов меню AutoCAD.

Типы файлов меню AutoCAD 

Тип файла

Описание

MNU

Шаблоны меню.

MNC

Компилированный файл меню. Это — двоичный файл, содержащий строки команд и описание функций и внешнего вида меню.

MNR

Файл ресурсов меню. Это — двоичный файл, содержащий растровые изображения, используемые в меню.

MNS

Исходный файл меню (генерируется AutoCAD).

MNT

Файл ресурсов меню. Он генерируется в случаях, когда MNR-файл недоступен для операций (например, защищен от записи).

MNL

LISP-файл меню. Содержит выражения на AutoLISP, используемые файлом меню. Загружается в память вместе с одноименным файлом меню.

В ресурсных DLL-файлах хранятся растровые изображения, используемые для кнопок панелей инструментов, падающих и контекстных меню. Для того, чтобы AutoCAD мог иметь доступ к таким файлам, необходимо соблюдение следующих условий:

  • Имена DLL-файла и файла меню должны совпадать.
  • Ресурсные компоненты должны обладать именами, а не числовыми индексами.
  • DLL-файл должен находиться в той же папке, что и соответствующий файл меню.

Для того, чтобы подключить ресурсы к меню, нужно записать их имена в качестве значений параметров id_малая и id_крупная для кнопок панелей инструментов. См. раздел «Панели инструментов» .

Для загрузки нового меню служит команда МЕНЮ. Загрузить или выгрузить дополнительные меню (называемые также фрагментами меню), а также добавить или удалить отдельные падающие меню из строки меню можно с помощью команд МЕНЮЗАГР и МЕНЮВЫГР.

AutoCAD хранит имя последнего загруженного меню в системном реестре. Имя сохраняется также и в рисунке, но лишь для обеспечения совместимости с предыдущими версиями. Последнее меню автоматически загружается при запуске AutoCAD. Начиная с Release 14, в AutoCAD не происходит перезагрузки меню при открытии рисунков в пределах одного сеанса.

Для поиска и загрузки меню AutoCAD предпринимает изложенную ниже последовательность действий. Она используется и при загрузке нового меню с помощью команды МЕНЮ.

  1. AutoCAD ищет исходный файл меню (MNS) с указанным именем в соответствии с процедурой поиска библиотечных файлов.
  • Если MNS-файл найден, AutoCAD начинает искать компилированный файл меню (.mnc) с тем же именем в той же папке. Если MNC-файл найден, AutoCAD загружает его, только если он был создан одновременно с MNS-файлом или позже. В противном случае AutoCAD компилирует MNS-файл, а затем загружает созданный на его основе новый MNC-файл. Новый MNC-файл записывается в ту же папку, где находится исходный MNS-файл.
  • Если MNS-файл не найден при выполнении пункта 1, AutoCAD ищет компилированный файл меню (.mnc) с указанным именем в соответствии с процедурой поиска библиотечных файлов. Если MNC-файл найден, AutoCAD загружает его.
  • Если не найдены ни MNS-, ни MNC-файл, AutoCAD ищет в соответствии с процедурой поиска библиотечных файлов шаблон меню (.mnu) с указанным именем. Если такой файл найден, то на его основе компилируются MNC и MNS файлы. Затем выполняется загрузка MNC-файла.
  • Если не найден ни один файл меню с указанным именем, AutoCAD выводит сообщение об ошибке и предлагает ввести другое имя файла меню.
  1. После того как файл меню найден, скомпилирован и загружен, AutoCAD ищет LISP-файл меню (.mnl) в соответствии с процедурой поиска библиотечных файлов. Если файл найден, AutoCAD вычисляет содержащиеся в этом файле выражения AutoLISP.

В файле acad.mnl хранится программный код на AutoLISP, используемый файлом стандартного меню acad.mnu. Этот файл загружается автоматически вместе с файлом acad.mnu.

При каждой компиляции MNC-файла AutoCAD генерирует файл ресурсов меню (.mnr), который содержит растровые изображения, используемые в меню. Файл MNS представляет собой файл формата ASCII и отличается от файла MNU только отсутствием комментариев и специального форматирования. MNS-файл обновляется при каждом изменении содержимого файла меню через интерфейс (например, при модификации панели инструментов).

Начальное положение панелей инструментов задается в файлах MNU и MNS; однако, данные о статусе панелей инструментов (видимая/скрытая и закрепленная/плавающая) и изменении их положения хранятся в системном реестре. Файл MNS, созданный на основе MNU-файла, используется в качестве исходного для генерации файлов MNC и MNR. Для того чтобы изменения, внесенные в файл MNU после создания файла MNS, вступили в силу, необходимо загрузить файл MNU с помощью команды МЕНЮ. Только в этом случае AutoCAD сможет сгенерировать на его основе новые файлы меню.

Замечание: Если панели инструментов были изменены через интерфейс, то перед удалением MNS-файла необходимо перекопировать измененные участки из него в файл MNU.

Команда МЕНЮ изначально запрашивает имя файла типа MNS или MNC. Для того чтобы перезагрузить измененный файл MNU, необходимо выбрать из списка «Тип файлов» значение «Шаблоны меню», а затем указать нужный файл меню в списке имеющихся файлов MNU. Эта операция позволяет предотвратить потерю (в результате случайной перегенерации файла MNS) настроек, произведенных в панелях инструментов или фрагментах меню через интерфейс. Однако, в процессе создания и тестирования нового файла меню частое повторение лишних операций может оказаться утомительным. Ниже приведена процедура на AutoLISP, описывающая новую команду MNU. Введение этой команды позволяет ускорить процесс перезагрузки текущего файла MNU и избежать необходимости выполнять дополнительные действия.

(defun C:MNU ()
  (command "_menu" (strcat (getvar "menuname") ".mnu"))
  (princ)
)

Описание команды следует внести в файл acad.lsp, тогда оно будет автоматически загружаться при запуске AutoCAD.

Похожие материалы

Информация о работе