Домой
назад Оглавление вперед




[стр.-33]

имя-меню

меню BUTTONS (кнопочное) от 1 до 4 Это основное имя или псевдоним загружаемого фрагмента

Ниже приведены примеры обращения к подменю:

$S=PARTS $T1=EDITCMDS

Подменю можно вызывать в ходе выполнения команды, не прерывая ее. меню TABLET (планшетное) от 1 до 4

$S=ARCSTUFF ARC ARC $S=ARCSTUFF

Каждая команда вызывает команду ДУГА, осуществляет переключение к экранному подменю ARCSTUFF, после чего программа ожидает ввода параметров дуги. После ссылки на подменю необходимо ввести пробел для отделения ее от других команд.

Раскрывающееся меню может находиться либо в строке меню, либо в активном контекстном меню.

Использование условных выражений в макросах

Условные выражения можно добавлять в макрос путем использования команды, содержащей макровыражения на языке DIESEL.

Для этого используется формат:

$M=выражение

При использовании в начале макроса $M= программа AutoCAD интерпретирует строку как выражение DIESEL, а выражение - как выражение DIESEL. В следующем примере приведено определение условного выражения в макросе:

FILLMODE $M=$(-,1,$(getvar,fillmode))

Макрос переключает состояние переменной FILLMODE. Для этого текущее значение FILLMODE вычитается из 1, а полученное значение затем возвращается в переменную FILLMODE. Можно использовать этот метод, чтобы переключать системные переменные, допустимыми значениями для которых являются 1 или 0.

Прерывание выполнения макроса, содержащего условные выражения

Если для выполнения проверок "если-то" используется строка на языке DIESEL, условия могут возникать в тех случаях, когда нельзя использовать обычные,


прерывающие работу пробел или точку с запятой (в результате нажатия ENTER). Если в конец макроса добавлены символы AutoCAD не будет добавлять пробел (ENTER) в конец выражения.

Как и другие управляющие символы, символ используемый здесь, является строкой, состоящей из символа крышки л и буквы Z . Символ не является результатом нажатия клавиш CTRL+Z.

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

лслс$М=$(1$( = ,$(деаг,111етос!е),0),$3=п№1ем mspace PZ лслс$М=$(1$( = ,$(деаг,111етос!е),0),$3=п№1ем pspace PZ

Если бы в конце макроса не стоял символ AutoCAD автоматически добавляла бы пробел (ENTER) для повтора последней введенной команды.

См. также:

"Использование в макросах специальных управляющих символов" на стр.86 DIESEL

Использование AutoLISP в макросах

Создание команд, использующих AutoLISP, является более совершенным способом использования функции настройки AutoCAD.

Переменные AutoLISP и выражения можно использовать для создания макросов, выполняющих сложные задачи. Для эффективного использования AutoLISP в макросах следует поместить код AutoLISP в отдельный файл MNL. AutoCAD загружает файл MNL при загрузке файла НПИ с тем же именем из той же папки.

Можно указать дополнительные файлы AutoLISP для загрузки в редактор настройки пользовательского интерфейса. Создание команд, использующих AutoLISP, является более совершенным способом использования функции настройки AutoCAD. Внимательно изучите следующие примеры, а также информацию в документах Справка по AutoLISP и Руководство разработчика AutoLISP (В меню "Справка": "Дополнительные ресурсы" "Документация для разработчиков). MNL-файлы загружаются в память вместе с файлами меню, носящими то же имя.

Вызов макроса

Для программного выполнения макроса раскрывающегося меню используйте следующий синтаксис.

(menucmC "Огруппа меню.element ID=\")

Использование такого синтаксиса имеет эффект только в том случае, если макрос меню является частью меню, находящегося в троке меню AutoCAD и готового к


использованию. Дополнительную информацию о синтаксисе см. в документации Справка по AutoLISP

Установленные значения

Приложение, использующее заданные настройки для вставки блока, приводит следующие команды: [Set WINWID][Set WALLTHK][Insert Window]

"CACAP(setq WINWID (getreal"Enter window width: ")) "P "CACAP(setq WALLTHK (getreal"Enter wall thickness: ")) "P "C"C INSERT window XScale !WINWID YScale !WALLTHK

Здесь производится вставка блока "Window", масштаб которого по оси X равен текущей ширине окна, а по оси Y - текущей толщине стены. В этом примере фактические значения извлекаются из заданных пользователем символов AutoLISP WINWID и WALLTHK. Поскольку возможность поворота зависит от пользователя, данное окно может быть повернуто на стене.

Изменение размера ручек

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

"P(setvar"gripsize"(1+(getvar"gripsize")))(redraw)(princ) "P(setvar"gripsize"(1-(getvar"gripsize")))(redraw)(princ)

Для добавления проверки корректности к этим командам значение системной переменной GRIPSIZE не может быть меньше 0 и больше 255.

Подсказка для пользовательского ввода

Следующий элемент запрашивает задание двух точек и рисует полилинию в виде прямоугольника, в углах которой находятся указанные точки.

"P(setq a (getpoint "Enter first corner: "));\+ (setq b (getpoint "Enter opposite corner: "));\+

pline !a (list (car a)(cadr b)) !b (list (car b)(cadr a)) c;"P

Настройка панелей инструментов

Для повышения эффективности рисования или использования рабочего пространства можно настроить панель инструментов, что также просто, как ее размещение или изменение размеров в области чертежа. Также можно создавать или редактировать панели инструментов и их подменю, добавляя элементы управления или команды и создавая или редактируя кнопки панелей инструментов.



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53] [стр.54] [стр.55] [стр.56] [стр.57] [стр.58] [стр.59] [стр.60] [стр.61] [стр.62] [стр.63] [стр.64] [стр.65] [стр.66] [стр.67] [стр.68] [стр.69] [стр.70] [стр.71] [стр.72] [стр.73] [стр.74] [стр.75] [стр.76] [стр.77] [стр.78] [стр.79] [стр.80] [стр.81] [стр.82] [стр.83] [стр.84] [стр.85] [стр.86] [стр.87] [стр.88] [стр.89] [стр.90] [стр.91] [стр.92] [стр.93] [стр.94] [стр.95] [стр.96] [стр.97] [стр.98] [стр.99] [стр.100] [стр.101] [стр.102] [стр.103]