Настройка интерфейса пользователя  
Использование AutoLISP в макросах
 
 Понятия 
 
 Процедуры 
 
 Команды 
 

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

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

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

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

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

(menucmd "Gгруппа_меню.element_ID=|")

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

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

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

^C^C^P(setq WINWID (getreal"Enter window width: ")) ^P
^C^C^P(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
  Ваш комментарий об этой странице  
City 3D - Карта Ангарска со справочником организаций
Hosted by uCoz