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