Введение

AutoLISP — это диалект языка программирования Lisp, разработанный специально для использования с полной версией AutoCAD и его производными, включая AutoCAD Map 3D, AutoCAD Architecture и AutoCAD Mechanical. Интерфейс прикладного программирования (API) и интерпретатор для выполнения кода AutoLISP не входят в состав продуктов AutoCAD LT (до выпуска 2023 года, AutoCAD LT 2024 включает AutoLISP). Подмножество функций AutoLISP доступно в веб-приложении AutoCAD, работающем в браузере.

Особенности

AutoLISP — это небольшой диалект языка Lisp с динамической областью видимости, динамической типизацией, сборкой мусора, неизменяемой структурой списков и устанавливаемыми символами, лишенный таких стандартных функций Lisp, как макросистема, средства определения записей, массивы, функции с переменным числом аргументов или привязки let. Помимо базового языка, большинство примитивных функций предназначены для работы с геометрией, доступа к внутренней базе данных DWG AutoCAD или манипулирования графическими объектами в AutoCAD. Свойства этих графических объектов предоставляются AutoLISP в виде ассоциативных списков, в которых значения сопоставляются с групповыми кодами AutoCAD, указывающими такие свойства, как определяющие точки, радиусы, цвета, слои, типы линий и т. д. AutoCAD загружает код AutoLISP из файлов LSP. Код AutoLISP может взаимодействовать с пользователем через графический редактор AutoCAD с помощью примитивных функций, позволяющих пользователю выбирать точки, выбирать объекты на экране и вводить числа и другие данные. AutoLisp также имеет встроенный графический пользовательский интерфейс (GUI) или предметно-ориентированный язык (DSL) — язык управления диалогами, для создания модальных диалоговых окон с автоматической компоновкой в AutoCAD. Язык был представлен в AutoCAD версии 2.18 в январе 1986 года и продолжал совершенствоваться в последующих версиях до выпуска 13 в феврале 1995 года. После этого Autodesk прекратила его активную разработку в пользу более современных сред разработки, таких как Visual Basic for Applications (VBA), .NET Framework и ObjectARX. Тем не менее, он остался основным языком для настройки AutoCAD пользователями. Vital LISP, значительно улучшенная версия AutoLISP, включающая интегрированную среду разработки (IDE), отладчик, компилятор и поддержку ActiveX, была разработана и продана сторонним разработчиком Basis Software. Vital LISP являлся надмножеством существующего языка AutoLISP, добавляющим доступ к объектной модели AutoCAD в стиле VBA, реакторы (обработка событий для объектов AutoCAD), общую поддержку ActiveX и некоторые другие общие функции Lisp. Autodesk приобрела Vital LISP, переименовала его в Visual LISP и ненадолго продавала как дополнение к AutoCAD версии 14, выпущенной в мае 1997 года. Он был включен в AutoCAD 2000, выпущенный в марте 1999 года, в качестве замены AutoLISP. С тех пор Autodesk прекратила существенное развитие Visual LISP и сосредоточила больше усилий на VBA, .NET и C++. С 2014 года Autodesk прекратила поддержку версий VBA до 7.1 в рамках долгосрочного процесса перехода от VBA к .NET для настройки пользователями. AutoLISP имеет настолько большую популярность, что другие производители программного обеспечения для автоматизированного проектирования (CAD) добавляют его в свои продукты. Bricscad, IntelliCAD, DraftSight и другие поддерживают функциональность AutoLISP, поэтому пользователи AutoLISP могут рассматривать их как альтернативу AutoCAD. Большая часть разработки с использованием AutoLISP после AutoCAD 2000 ведется в Visual LISP, поскольку оригинальный движок AutoLISP был заменен на движок Visual LISP. Существуют тысячи утилит и приложений, разработанных с использованием AutoLISP или Visual LISP (распространяются как файлы LSP, FAS и VLX).