Среда программирования на AutoLISP в графической системе AutoCAD (Справочник), страница 10

(osnap <точка><строка-режим>)

возвращает точку, которая является результатом применения объективной привязки, задаваемой в <строке -режим> для точки <точка>. Атрибут <строка-режим> -- строковая константа, состоящая из одного или более идентификаторов объёмной привязки, для англоязычной версии на английском языке, для русскоязычной – на русском.

Если аргумент <точка> -- 2-мерная точка, то будет возвращена 2-мерная точка. Если аргумент <точка> -- 3-мерная точка, то будет возвращена 3-мерная точка. Если не найдено ни одной точки, соответствующей заданному <режиму> объёмной привязки, то будет возвращаться nil.

4.3 Функции взаимодействия с AutoCAD

(command <аргумент>)

выполняет команды AutoCAD в AutoLISP и всегда возвращает nil. Аргументы представляют собой команды AutoCAD и их параметры; каждый аргумент вычисляется и посылается в AutoCAD, как ответ на соответствующий запрос. Командные имена и опции представляются как строковые константы, 2-мерные точки - как списки из двух действительных чисел, и 3- мерные точки - как списки из трёх действительных чисел.

Аргументы функции COMMAND могут быть строковыми константами, действительными числами, целыми или точками, т.е. такими, какие ожидает получить выполняемая команда в ответ на запросы. Пустая строка (“”) равносильна нажатию пробела на клавиатуре. Вызов COMMAND без аргумента равносилен нажатию (CTRL) C на клавиатуре, и прерывает большинство команд AutoCAD. Команды, выполняемые функцией COMMAND, не имеют на экране эха, если переменная AutoCAD CMDECHO установлена равной нулю.

Функции “GETxxx (GETANGLE, GETSTRING, GETING, GETPOINT и т.д.) не могут быть вложенными в функции COMMAND. Команды AutoCAD DTEXT и SKETCH считывают информацию непосредственно с клавиатуры и дигитайзера и не могут использоваться с функцией AutoLISP COMMAND. Также нельзя использовать функцию COMMAND для выполнения команд PLOT, PRPLOT и  SCRIPT.

Если выполняется команда AutoCAD и в строке аргументов встречается символ PAUSE, то функция COMMAND приостанавливает своё действие, чтобы пользователь непосредственно ввёл значение (или произвёл отслеживание элемента чертежа).

В момент приостанова можно использовать “прозрачные” команды, пауза будет продолжаться до тех пор, пока не будет введён имеющий силу аргумент и пока не выполнятся все “прозрачные” команды. Если функция COMMAND требует ввода, находясь в режиме паузы, запрос может быть удовлетворён с помощью меню.

(getvar <имя переменной>)

возвращает значение системной переменной AutoCAD. Имя переменной должно быть заключено в кавычки. Если используется функция GETVAR с неизвестным AutoCAD именем переменной, функция возвращает nil. Список текущих системных переменных AutoCAD можно найти в приложении А руководства по AutoCAD. См. Также функцию SETVAR.

(setvar <имя переменной><значение>)

присваивает системной переменной AutoCAD заданное <значение> и возвращает это значение. Имя переменной должно быть заключено в двойные кавычки.

(menucmd <строка>)

позволяет вызвать необходимое меню AutoCAD, высвечивая соответствующее подменю в то время, когда требуется ввод пользователя. MENUCMD всегда возвращает nil. Аргумент <строка> записывается в следующей форме:

раздел = подменю

где:

раздел - указывает раздел меню. Допустимые имена:

S - для экранного (SCREEN) меню

B - для кнопочного (BUTTONS) меню

I - для пиктографического (ICON) меню

P1 - P10 - для падающих (POP) меню с 1 по 10

T1 - T4 - для меню планшета (TABLET) с 1 по 4

A1 - для добавочного (AUX1) меню подменю - указывает, какое подменю активизировать.

Именем должна быть, либо одна из меток подменю (без “**”) в текущем загрузочном файле, либо имя одного из разделов главного меню.

Для пиктографических и падающих меню, допустимо имя подменю “*”, что означает высвечивание подменю из текущего раздела меню.

(redraw [<имя примитива> [<режим>]])