AutoLISP: диалект Lisp для AutoCAD. Расширяет возможности САПР, автоматизирует задачи, работает с DWG. Особенности, ограничения и применение в AutoCAD.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
AutoLISP — это диалект языка программирования Lisp, разработанный специально для использования с полной версией AutoCAD и его производными, включая AutoCAD Map 3D, AutoCAD Architecture и AutoCAD Mechanical. Интерфейс прикладного программирования (API) и интерпретатор для выполнения кода AutoLISP не входят в состав продуктов AutoCAD LT (до выпуска 2023 года, AutoCAD LT 2024 включает AutoLISP). Подмножество функций AutoLISP доступно в веб-приложении AutoCAD, работающем в браузере.
LISP computer programming language variant
AutoLISP is a dialect of the programming language Lisp built specifically for use with the full version of AutoCAD and its derivatives, which include AutoCAD Map 3D, AutoCAD Architecture and AutoCAD Mechanical. Neither the application programming interface (API) nor the interpreter to execute AutoLISP code is included in the AutoCAD LT product line (up to Release 2023, AutoCAD LT 2024 includes AutoLISP). A subset of AutoLISP functions is included in the browser based AutoCAD web app.
Особенности
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).
AutoLISP is a small, dynamically scoped, dynamically typed Lisp language dialect with garbage collection, immutable list structure, and settable symbols, lacking in such regular Lisp features as macro system, records definition facilities, arrays, functions with variable number of arguments or let bindings. Aside from the core language, most of the primitive functions are for geometry, accessing AutoCAD's internal DWG database, or manipulation of graphical entities in AutoCAD. The properties of these graphical entities are revealed to AutoLISP as association lists in which values are paired with AutoCAD group codes that indicate properties such as definitional points, radii, colors, layers, linetypes, etc. AutoCAD loads AutoLISP code from LSP files. AutoLISP code can interact with the user through AutoCAD's graphical editor by use of primitive functions that allow the user to pick points, choose objects on screen, and input numbers and other data. AutoLisp also has a built in graphical user interface (GUI) mini or domain specific language (DSL), the Dialog Control Language, for creating modal dialog boxes with automated layout, within AutoCAD. The language was introduced in AutoCAD Version 2.18 in January 1986, and continued to be enhanced in successive releases up to release 13 in February 1995. After that, its development was neglected by Autodesk in favor of more fashionable development environments like Visual Basic for Applications (VBA), NET Framework, and ObjectARX. However, it has remained AutoCAD's main user customizing language. Vital LISP, a considerably enhanced version of AutoLISP including an integrated development environment (IDE), debugger, compiler, and ActiveX support, was developed and sold by third party developer Basis Software. Vital LISP was a superset of the existing AutoLISP language that added VBA like access to the AutoCAD object model, reactors (event handling for AutoCAD objects), general ActiveX support, and some other general Lisp functions. Autodesk purchased this, renamed it Visual LISP, and briefly sold it as an add on to AutoCAD release 14 released in May 1997. It was incorporated into AutoCAD 2000 released in March 1999, as a replacement for AutoLISP. Since then, Autodesk has ceased major enhancements to Visual LISP and focused more effort on VBA and NET, and C++. as of 2014, Autodesk ended support for VBA versions before 7.1, as part of a long term process of changing from VBA to NET for user customizing. AutoLISP has such a strong following that other computer aided design (CAD) application vendors add it to their products. Bricscad, IntelliCAD, DraftSight and others have AutoLISP functionality, so that AutoLISP users can consider using them as an alternative to AutoCAD. Most development involving AutoLISP since AutoCAD 2000 is performed within Visual LISP since the original AutoLISP engine was replaced with the Visual LISP engine. There are thousands of utilities and applications that have been developed using AutoLISP or Visual LISP (distributed as LSP, FAS and VLX files).