Фрагменты меню графического редактора AutoCAD

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

Фрагмент текста работы

[Сделать красным]_select \_change _previous ;_properties _color _red ;

С помощью команды SELECT (ВЫБРАТЬ) осуществляется выбор одного или нескольких объектов. Затем происходит вызов команды CHANGE (ИЗМЕНИТЬ). В качестве аргумента ей передается созданный набор (опция «Previous» — «Текущий»), и цвет выбранных объектов изменяется на красный.

Замечание: Так как символ обратной косой черты (\) переводит макрос в состояние ожидания пользовательского ввода, для других целей в макросе его использовать нельзя. При задании путей в качестве разделителей необходимо вводить обычную косую черту (/): например, / direct/file.

Выполнение макроса может не возобновиться после первого ввода в следующих случаях:

  • При задании режима разовой объектной привязки в процессе ожидания указания точки.
  • При использовании координатных фильтров X/Y/Z выполнение возобновляется только после получения всех координат.
  • При обращении к команде ВЫБРАТЬ выполнение возобновляется только после окончания выбора объектов.
  • Если пользователь в ответ вводит имя прозрачной команды, выполнение возобновляется только после ее завершения и получения ответа на первоначальный запрос.
  • Если пользователь в ответ выбирает другой пункт меню (для задания опций или обращения к прозрачной команде), исходный макрос приостанавливается до тех пор, пока не будет завершен вновь выбранный.

Пользователь может разрабатывать меню, которые будут способны выполняться и в других национальных вариантах AutoCAD. Стандартные команды и их опции переводятся автоматически на нужный язык, если в пункте меню записаны их английские варианты, предваренные знаком подчеркивания (_). Например, эта возможность широко используется в файле стандартного меню acad.mnu. Именно так (с опорой на исходные имена команд и опций) пользователям рекомендуется проектировать свои меню; агодаря этому их можно будет использовать даже при изменениях в интерфейсе переведенной программы.

Ниже приведен фрагмент описания падающего меню.

[->Дуга]
  [3 точки]^C^C_arc
  [Начало, центр, конец]^C^C_arc;\_c
  [Начало, центр, угол]^C^C_arc;\_c;\_a
  [Начало, центр, длина]^C^C_arc;\_c;\_l
  [Начало, конец, угол]^C^C_arc;\_e;\_a
  [Начало, конец, радиус]^C^C_arc;\_e;\_r

Для получения исходных и локализованных имен команд AutoCAD служит функция AutoLISP getcname (см. раздел «getcname» в докумете AutoLISP Reference).

Чтобы гарантировать выход из ранее вызванных команд, в описаниях пункта меню используется управляющая последовательность символов ^C^C. Она соответствует двойному нажатию клавиши ESC. Выполнение большинства команд отменяется одним ^C. Комбинация ^C^C требуется для отмены выполнения команды РАЗМЕР. Таким образом, ^C^C годится для большинства случаев отмены выполнения команд и возврата к подсказке «Команда».

По умолчанию символы, полученные из текста макроса меню, дублируются в командной строке (так же, как и ввод пользователя с клавиатуры). В ней также отображаются запросы команды, даже если в макросе содержатся ответы на них. Подавить эхо-вывод ненужных сообщений можно, воспользовавшись системной переменной MENUECHO. Если эхо-вывод отключен, его можно включить в макросе с помощью комбинации ^P.

В ту часть описания пункта меню, которая задает соответствующую ему командную строку, можно вставлять управляющие ASCII-символы. Они представляют собой комбинацию символа крышки (^) и еще одного символа. Например, ^C воспринимается как нажатие комбинации клавиш CTRL+C (если оно получено из макроса меню, то это означает прерывание команды, а не копирование в буфер). Управляющие символы могут и не быть алфавитно-цифровыми, например:

^@     (ASCII-код 0) 
^[     (ASCII-код 27) 
^\     (ASCII-код 28) 
^]     (ASCII-код 29) 
^^     (ASCII-код 30) 
^_     (ASCII-код 31) 

При использовании в макросах меню символ крышки (^) считается эквивалентным нажатию клавиши CTRL. Комбинируя его с алфавитными символами, можно из макросов меню производить, например, включение/отключение сетки (^G) или прерывание команды (^C).

[Сетка Вкл/Откл]^G
[*Прервать*]^C

Имеется возможность исключения одного или нескольких символов

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

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