Jump to content

АвтоЛИСП

(Перенаправлено с AutoLisp )
АвтоЛИСП
Семья Лисп
Разработано Дэвид Бетц
Разработчики Autodesk , базовое программное обеспечение
Впервые появился январь 1986 г .; 38 лет назад ( 1986-01 )
Стабильная версия
13 / февраль 1995 г .; 29 лет назад ( 1995-02 )
Дисциплина набора текста динамичный
Объем динамичный
Платформа ИА-32
ТЫ Линукс
Диалекты
Витальный-LISP, Visual LISP
Под влиянием
Лисп , XLISP

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

AutoLISP — это небольшой диалект языка Лисп с динамической областью действия и динамической типизацией со сборкой мусора , неизменяемой структурой списка и настраиваемыми символами, в котором отсутствуют такие обычные функции Лиспа, как система макросов , средства определения записей, массивы, функции с переменным числом аргументов или привязки let. . Помимо основного языка, большинство примитивных функций предназначены для геометрии, доступа к внутренней базе данных DWG AutoCAD или манипулирования графическими объектами в AutoCAD. Свойства этих графических объектов отображаются в AutoLISP в виде списков связей , в которых значения сочетаются с групповыми кодами AutoCAD , обозначающими такие свойства, как точки определения, радиусы, цвета, слои, типы линий и т. д. AutoCAD загружает код AutoLISP из файлов .LSP. [3]

Код AutoLISP может взаимодействовать с пользователем через графический редактор AutoCAD, используя примитивные функции, которые позволяют пользователю указывать точки, выбирать объекты на экране, а также вводить числа и другие данные. AutoLisp также имеет встроенный ) графического пользовательского интерфейса (GUI мини- или предметно-ориентированный язык (DSL ), язык управления диалогами , для создания модальных диалоговых окон с автоматизированным макетом в AutoCAD. [3]

AutoLISP произошел от ранней версии XLISP , созданной Дэвидом Бетцем. [4] Язык был представлен в AutoCAD версии 2.18 в январе 1986 года и продолжал улучшаться в последующих выпусках вплоть до выпуска 13 в феврале 1995 года. После этого Autodesk пренебрегла его разработкой в ​​пользу более модных сред разработки, таких как Visual Basic для приложений ( VBA), .NET Framework и ObjectARX . Тем не менее, он остается основным языком пользовательской настройки AutoCAD.

Vital-LISP , значительно расширенная версия AutoLISP, включающая интегрированную среду разработки (IDE), отладчик , компилятор и поддержку ActiveX , была разработана и продана сторонним разработчиком Basis Software. Vital LISP представлял собой надстройку существующего языка AutoLISP, в которую добавлялся VBA-подобный доступ к объектной модели AutoCAD, реакторам (обработке событий для объектов AutoCAD), общей поддержке ActiveX и некоторым другим общим функциям Lisp. Autodesk приобрела его, переименовала в Visual LISP и на короткое время продала как дополнение к AutoCAD версии 14, выпущенной в мае 1997 года. Он был включен в AutoCAD 2000, выпущенный в марте 1999 года, в качестве замены AutoLISP. С тех пор Autodesk прекратил серьезные улучшения Visual LISP и сосредоточил больше усилий на VBA, .NET и C++ . По состоянию на 31 января 2014 г. Autodesk прекратила поддержку версий VBA до 7.1 в рамках долгосрочного процесса перехода с VBA на .NET для пользовательской настройки. [5] [6]

У AutoLISP настолько много поклонников, что другие поставщики приложений для автоматизированного проектирования (САПР) добавляют его в свои продукты. Bricscad , IntelliCAD , DraftSight и другие имеют функциональность AutoLISP, так что пользователи AutoLISP могут рассмотреть возможность использования их в качестве альтернативы AutoCAD. Большая часть разработок с использованием AutoLISP, начиная с AutoCAD 2000, выполняется в Visual LISP, поскольку исходный движок AutoLISP был заменен движком Visual LISP. Существуют тысячи утилит и приложений, разработанных с использованием AutoLISP или Visual LISP (распространяемых в виде файлов LSP, FAS и VLX). [7] [8]

1958 1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010 2015 2020
ЛИСП 1, 1.5, ЛИСП 2 (заброшенный)
 Маклисп
 Интерлисп
 леев
 Лисп-машина Лисп
 Схема Р5РС Р6РС R7RS маленький
 НОЛЬ
 ЗИЛ (язык реализации Zork)
 Франц Лисп
 Общий Лисп стандарт ANSI
 Лисп
 Схема СО
 XLISP
 Т
 На схеме
 Эмакс Лисп
 АвтоЛИСП
 ПикоЛисп
 Гамбит
 EuLisp
 ИСЛИСП
 ОпенЛисп
 Схема PLT  Ракетка
 новыйЛИСП
 GNU Коварство
 Визуальный ЛИСП
 Кложур
 Дуга
 ЛФЭ
 Он
 Хиалисп

Простая программа Hello world в AutoLISP будет такой:

(defun hello ( )    (princ "\nHello World!")    (princ))

Обратите внимание на последнюю строку внутри определения функции: при вычислении без аргументов princ Функция возвращает нулевой символ, который не отображается в интерфейсе командной строки AutoCAD . Поскольку командная строка AutoCAD функционирует как цикл чтения-оценки-печати (REPL), обычно выводится «Hello World!» в командную строку, за которой сразу же следует возвращаемое значение вызова princ. Поэтому без окончательного вызова princ функция, результатом этого будет:

Hello World!"\nHello World!"

The prin1 Функция также может быть использована для достижения того же результата.

Более сложный пример:

(defun c:pointlabel ( / pnt )    (if (setq pnt (getpoint "\nSpecify point: "))        (progn            (entmake                (list                   '(0 . "POINT")                    (cons 10 (trans pnt 1 0))                )            )            (entmake                (list                   '(0 . "TEXT")                    (cons 10 (trans (cons (+ (car pnt) 0.6) (cdr pnt)) 1 0))                    (cons 40 (getvar 'textsize))                    (cons  1 (strcat "X:" (rtos (car pnt)) " Y:" (rtos (cadr pnt))))                )            )        )    )    (princ))

Приведенный выше код определяет новую функцию , которая генерирует точечный объект AutoCAD в заданной точке, а рядом с ним отображается однострочный текстовый объект, отображающий координаты X и Y. Имя функции включает специальный префикс «c:», благодаря которому AutoCAD распознает функцию как обычную команду. Пользователю после ввода «метки точки» в командной строке AutoCAD будет предложено выбрать точку, либо введя координаты X и Y, либо щелкнув местоположение на чертеже. Затем функция поместит маркер в эту точку и создаст рядом с ним однострочный текстовый объект, содержащий координаты X и Y точки, выраженные относительно активной пользовательской системы координат (UCS). Функция не требует параметров и содержит одну локальную переменную («pnt»).

Приведенный выше пример также можно написать с использованием встроенных команд AutoCAD для достижения того же результата, однако этот подход подвержен изменениям в командных строках между выпусками AutoCAD.

  1. ^ «АвтоЛИСП» . Проверено 14 апреля 2014 г.
  2. ^ «AutoCAD LT против AutoCAD» . Архивировано из оригинала 15 апреля 2014 года . Проверено 14 апреля 2014 г.
  3. ^ Перейти обратно: а б «Руководство разработчика AutoLISP» (PDF) . Проверено 14 апреля 2014 г.
  4. ^ «История AutoLISP» .
  5. ^ «Часто задаваемые вопросы по модулю Microsoft Visual Basic для приложений» . Проверено 14 апреля 2014 г.
  6. ^ «Поддержка VBA в AutoCAD 2011» . Архивировано из оригинала 15 апреля 2014 года . Проверено 14 апреля 2014 г.
  7. ^ «Сравнение версий BricsCAD» . Архивировано из оригинала 15 марта 2014 г. Проверено 14 апреля 2014 г.
  8. ^ «Платформа IntelliCAD CAD – возможности и преимущества» . Проверено 14 апреля 2014 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 0a3e7172c719642b4ad986cffe211f89__1721129460
URL1:https://arc.ask3.ru/arc/aa/0a/89/0a3e7172c719642b4ad986cffe211f89.html
Заголовок, (Title) документа по адресу, URL1:
AutoLISP - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)