Интерпретатор AutoLISP

Основные сведения

В системе AutoCAD

Раздел 2 Среда программирования AutoLISP

ЛЕКЦИЯ №18

Основным средством разработки приложений в версиях системы AutoCAD с 10-й по 15-ю (т. е. 2000) является язык программирования AutoLISP — вариант языка LISP, в который добавлены функции доступа к объектам и таблицам AutoCAD. Основой языка LISP является работа со списками, которые могут иметь произвольную длину и включать элементы разной природы (числа, текстовые строки и т. д.). В то же время в языке пользователю доступны обычные арифметические вычисления, логические операции, работа с файлами и т. д.

С помощью AutoLISP можно писать программы или вводить в командной строке выражения, которые затем вычисляет система AutoCAD. Для чтения и разбора выражений в систему AutoCAD встроен интерпретатор AutoLISP.

Для написания и отладки программ и приложений на языке AutoLISP в состав системы AutoCAD 2000 введена интегрированная среда разработки Visual LISP, обращение к которой осуществляется через пунктAutoLISP, Редактор Visual LISP (Visual LISP Editor) падающего менюСервис (Tools) или команду VLISP, которые вызывают диалоговое окноVisual LISP для AutoCAD (Visual LISP for AutoCAD) (рис. 12.1).

В AutoCAD входит интерпретатор AutoLISP, начинающий работать, если вы в командной строке в ответ на стандартную подсказкуКоманда: (Command:) введете открывающую скобку "(". В этот момент AutoCAD настраивается на прием и вычисление выражения AutoLISP, которое должно иметь форму списка, т. е. начинаться открывающей скобкой и заканчиваться закрывающей скобкой — ")", а элементы списка должны отделяться друг от друга пробелами. Например, для получения суммы трех чисел вы можете ввести: (+ 223.75 16.002 89.899)

Клавиатурный ввод выражений AutoLISP встречается сравнительно редко. Обычно выражения AutoLISP записываются в текстовый файл с расширением lsp, который затем загружается в AutoCAD с помощью функции load.

Форма вычисляемых выражений языка AutoLISP:

(<функция> [<аргумент1> [<аргумент2> ... [<аргументN> ]...]])

 

Здесь <функция> —это имя функции; <аргумент1>, <аргумент2>, ... , <аргументN> — аргументы функции, разделяемые, по крайней мере, одним пробелом. Квадратные скобки в приведенной форме указывают на то, что, начиная с некоторого места, аргументы могут быть опущены. Количество аргументов зависит от синтаксиса функции. Существуют функции, которые вызываются без аргументов.

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

Основное правило AutoLISP — баланс скобок

В текст программы полезно вставлять комментарии, поясняющие, например, особенности алгоритма. Комментарием считается часть строки, начиная с символа ";". Если комментарий нужно вставить в середину строки, тогда началом комментария должны быть символы ";¦", а концом комментария — символы ";|"