AutoLISP — это эффективный инструмент для продуктивной работы, позволяющий автоматизировать рабочие процессы и расширить функциональные возможности AutoCAD LT.
Функция AutoLISP уже была доступна ранее, однако теперь ее можно использовать в AutoCAD LT начиная с версии 2024.
Благодаря интеграции AutoLISP в AutoCAD LT вы сможете запускать большинство разработанных за последние 40 лет программ AutoLISP с некоторыми ограничениями. Не обязательно быть экспертом в AutoLISP, чтобы использовать существующие программы, однако, научившись программировать с помощью AutoLISP, вы получите гораздо больше возможностей.
Программы AutoLISP обычно хранятся в текстовом файле с расширением .lsp. Прежде чем перейти к основам программирования в AutoLISP, необходимо освоить загрузку файлов AutoLISP. Следующие упражнения подходят даже для тех, у кого нет никакого опыта программирования. Если вы уже знакомы с командами и системными переменными AutoCAD, вам потребуется будет освоить всего пару новых концепций.
Скорее всего, при работе с AutoLISP вы начнете не с написания собственных программ, а с загрузки файлов AutoLISP, найденных в интернете или разработанных в вашей компании. Файлы AutoLISP можно загружать:
Следующие методы можно использовать для загрузки файлов AutoLISP при запуске, при открытии чертежа или вручную.
| Загрузка при запуске | Загрузка вручную |
|---|---|
|
|
Вы могли заметить, что в AutoCAD LT поддерживаются разные способы загрузки файлов AutoLISP. Выбор метода зависит от конфигурации среды проектирования. Сейчас мы рассмотрим загрузку файла AutoLISP с помощью диалогового окна «Загрузка/выгрузка приложений».
Также можно ввести команду ЗАГПРИЛ в командной строке.


Если у вас установлен другой язык, например ru-ru, выберите соответствующую папку вместо en-us.
acadlt2024doc.lsp — это один из файлов AutoLISP со специальными именем. AutoCAD LT ищет его и при наличии загружает в каждый открываемый или создаваемый чертеж. Этот файл AutoLISP содержит некоторые команды и пользовательские функции AutoLISP, используемые программой. Мы используем его в качестве примера.
В левом нижнем углу диалогового окна и в окне командной строки отображается сообщение «acadlt2024doc.lsp успешно загружено».

При этом запускается команда ДИАЛРУЧ, определенная AutoLISP в файле acadlt2024doc.lsp. Команда ДИАЛРУЧ открывает диалоговое окно параметров и делает текущей вкладку «Выбор».
В предыдущем упражнении мы запускали команду ДИАЛРУЧ. Как узнать, что эта команда присутствует в загруженном файле AutoLISP? В некоторых программах предусмотрен алгоритм, который добавляет в командную строку информацию о том, какие команды определены и могут быть использованы. В противном случае потребуется открыть файл AutoLISP, чтобы изучить определенные в нем команды Файл AutoLISP можно открыть в Блокноте.
На следующем рисунке показана часть файла acadlt2024doc.lsp, открытого в Блокноте. Команды AutoLISP, которые можно ввести в командной строке, имеют префикс c:. Сразу после c: указывается имя команды.

Не обязательно сохранять скачанные или созданные файлы AutoLISP в каком-то конкретном месте, однако рекомендуется хранить их в общедоступной папке. Как и при работе с шаблонами чертежей и библиотеками блоков, убедитесь, что у всех техников в группе или компании есть доступ к одним и тем же файлам AutoLISP. Рекомендации
Выбрав папку для хранения файлов AutoLISP, укажите AutoCAD LT, где она находится, с помощью параметров «Путь поиска вспомогательных файлов» и «Доверенные местоположения» на вкладке «Файлы» диалогового окна «Параметры». AutoCAD LT требуется информация о том, где находятся файлы LSP, для следующих целей:
Ниже приводится алгоритм действий для добавления папки C:\AutoLISP Files в параметры «Путь поиска вспомогательных файлов» и «Доверенные местоположения». Впоследствии можно использовать эту папку для создания файла LSP с несколькими короткими программами AutoLISP.
В приведенных папках AutoCAD LT ищет файлы AutoLISP наряду с другими пользовательскими файлами, в которых хранятся образцы штриховки, типы линий, псевдонимы команд и определения новых элементов пользовательского интерфейса.


Папка будет добавлена в конец списка.


Папка будет добавлена в конец списка.

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

Вы научились загружать файлы AutoLISP, созданные вашей компанией или сторонними разработчиками, однако это лишь первый шаг на пути к повышению продуктивности работы в AutoCAD LT с помощью AutoLISP. При использовании программ AutoLISP из файлов AutoLISP в повседневных рабочих процессах однажды вам потребуется внести изменения или написать собственную несложную программу на AutoLISP.
У вас могут возникнуть сомнения, ведь AutoLISP — это язык программирования, а вы не программист. Однако язык программирования AutoLISP позволяет изучать и писать программы, не будучи программистом. Простейшая программа AutoLISP представляет собой одни оператор для выполнения команды или изменения значения системной переменной.
Операторы AutoLISP начинаются с открывающей скобки и заканчиваются закрывающей скобкой. Ниже приведен пример оператора AutoLISP, который включает режим «Орто» с помощью системной переменной ORTHOMODE.
(setvar "orthomode" 1)
Подобно именам команд и системных переменных операторы AutoLISP можно вводить в командной строке AutoCAD LT. Давайте попробуем сделать это.
Кнопка в строке состояния имеет серый цвет, если режим выключен.

В строке состояния кнопка режима «Орто» примет синий цвет.

Поздравляем! Вы создали свой первый оператор AutoLISP. Теперь вы программист!
В предыдущем операторе AutoLISP используется функция setvar для задания значения системной переменной. Функция getvar возвращает текущее значение системной переменной. Функции setvar и getvar — это лишь две из большого набора функций, которые можно использовать для автоматизации рабочих процессов с помощью AutoLISP. Язык программирования AutoLISP предоставляет сотни функций, но для начала работы достаточно пяти ключевых. Две из них вы уже знаете. Ниже приведены пять ключевых функций.
Мы познакомились с пятью ключевыми функциями и задали системную переменную с помощью функции setvar. Теперь рассмотрим использование функции command. Для начала, обратите внимание, что имена команд могут начинаться с точки (.) и подчеркивания (_), а имена параметров команд могут начинаться с подчеркивания (_). Эти символы помогают обеспечить правильное выполнение команды.
Вот что означают эти символы.
На следующих этапах с помощью функции command выполняется построение окружности и зумирование до границ чертежа.
На текущем слое создается окружность с радиусом 5 единиц и координатами 5,5.

Вид чертежа зумируется до границ круга, если это единственный объект на чертеже. В противном случае выполняется зумирование до границ всех объектов на чертеже.

Мы изучили, как работают некоторые операторы AutoLISP, а теперь подробнее рассмотрим различные части и синтаксис примеров операторов AutoLISP.
Операторы AutoLISP можно вводить прямо в командной строке, чтобы изучить, как они работают, получая обратную связь в реальном времени, однако это не самый эффективный подход. Один из способов повторно использовать операторы AutoLISP — объединить их в пользовательской команде с помощью функции defun.
Попробуем использовать функцию defun для определения пользовательской команды с именем ZP, которая выполняет зумирование до предыдущего вида чертежа.
Выходные данные команды: C:ZP.

Будет восстановлен предыдущий вид.

Предыдущий вид восстановлен.
С помощью функции defun можно определять пользовательские команды, чтобы операторы AutoLISP было проще использовать повторно, но эти команды будут работать только в чертежах, для которых они определены, и только пока чертеж открыт. В следующем разделе вы узнаете, как создать файл AutoLISP для хранения пользовательских команд вместе с другими операторами AutoLISP, которые могут понадобится при загрузке файла AutoLISP.
Подробные сведения о пяти ключевых функциях, а также о сотнях других доступных функций см. в Справочном руководстве по AutoLISP.
Мы уже научились вводить выражения AutoLISP в командной строке, а теперь посмотрим, как создать файл AutoLISP и сохранить выражения AutoLISP и пользовательские команды, чтобы впоследствии использовать их. Файлы AutoLISP — это текстовые файлы ASCII с расширением LSP, которые можно создавать в простом текстовом редакторе, например в Блокноте. Не рекомендуется работать в текстовом процессоре, например Write или Word, чтобы случайно не использовать специальные символы и форматирование, что может вызвать проблемы при загрузке файла LSP.
В следующих упражнениях описывается создание файла LSP, добавление некоторых операторов AutoLISP в файл LSP, загрузка файла LSP и выполнение команд, определенных в файле LSP. В дополнение к пяти основным функциям, упомянутым ранее, мы также рассмотрим следующее.
Теперь создадим собственный файл и загрузим его в AutoCAD LT.
; Zoom commands (defun c:ze () (command "._zoom" "_e")) (defun c:zp () (command "._zoom" "_p")) ; Creates the layer A-ANNO-REV, draws a rectangle and ; converts the rectangle to a revision cloud with arc lengths ; based on half the current value of the LTSCALE system variable (defun c:rv () (setq old-layer (getvar "clayer")) (command "._-layer" "_m" "A-ANNO-REVCLD" "_c" "1" "" "") (command "._rectang" PAUSE PAUSE) (command "._revcloud" "_a" (/ (getvar "ltscale") 2) "" "_o" "_l" "_n") (setvar "clayer" old-layer) ) ; Display a general message in the command line upon load (prompt "\nLoaded MyFirst.lsp") (princ)

Если в программах используются символы Юникода, выберите UTF-8.
Итак, мы создали файл. Теперь загрузим его с помощью проводника, а не с помощью диалогового окна «Загрузка/выгрузка приложения», которое открывается по команде ЗАГПРИЛ.


После загрузки в журнале командной строки, отображаемом функцией запроса, должно появиться сообщение Loaded MyFirst.lsp.

Обратите внимание, что пометочное облако отображается красным цветом и размещается на слое A-ANNO-REVCLD. Его можно увидеть в раскрывающемся списке «Слой» на панели ленты «Слои» или в палитрах «Свойства» и «Быстрые свойства».

Чертеж зумируется до своих границ.
Восстанавливается предыдущий вид чертежа.
Диалоговое окно «Загрузка/выгрузка приложения» можно использовать не только для загрузки необходимых файлов AutoLISP вручную, но и для автоматической загрузки файлов AutoLISP при открытии или создании нового файла чертежа. Область «Автозагрузка» диалогового окна «Загрузка/выгрузка приложения» используется для указания файлов AutoLISP, которые требуется загружать автоматически.
Ниже приведены действия, которые необходимо выполнить для добавления файла AutoLISP в список автозагрузки.
Также можно ввести команду ЗАГПРИЛ в командной строке.
Если в предыдущем разделе вы создали файл myperst.lsp, выберите этот файл.
Файл AutoLISP, добавленный в список автозагрузки, автоматически загружается в текущий чертеж.
При запуске AutoCAD LT или создании/открытии чертежа AutoCAD LT выполняет поиск четырех файлов AutoLISP с определенными именами. Если файлы найдены, они загружаются автоматически. Эти файлы помогают правильно настроить среду AutoCAD LT и предоставить команды, определенные в AutoLISP, при создании и открытии чертежа.
AutoCAD LT ищет и автоматически загружает следующие четыре файла, используя пути к вспомогательным файлам:
Файлы acadlt.lsp и acadltdoc.lsp должны быть созданы пользователем; они не входят в стандартную установку AutoCAD LT. Файлы acadlt2024.lsp и acadltdoc2024.lsp поставляются с программой, в них нельзя вносить изменения.
Файлы acadlt.lsp и acadltdoc.lsp можно использовать, как и любые другие файлы LSP, просто они автоматически загружаются в описанных выше ситуациях. Эти два файла можно использовать для загрузки других файлов AutoLISP с помощью функции загрузки AutoLISP, выполнения операторов AutoLISP при загрузке этих файлов и определения команд AutoLISP, чтобы они были готовы к использованию после создания или открытия чертежа. Функция загрузки AutoLISP принимает два параметра: необходимый файл AutoLISP и второй дополнительный параметр — сообщение, которое отображается в случае, если загружаемый файл AutoLISP не найден по одном из путей поиска вспомогательных файлов AutoCAD LT. См. раздел «Управление файлами AutoLISP и их защита», посвященный настройке путей поиска вспомогательных файлов.
Ниже приведена последовательность действий для создания файла acadltdoc.lsp в папке C:\AutoLISP Files, добавления к нему нескольких операторов AutoLISP, его загрузки в AutoCAD LT и проверки загрузки файла.
; AutoLISP to be executed in each drawing created or opened ; Set Object Snap and Ortho modes (setvar "osmode" 4133) (setvar "orthomode" 1) ; Load the LSP file created earlier under the ; "Store AutoLISP Statements in AutoLISP (LSP) Files" section (load "myfirst.lsp" "\nMyFirst.lsp file couldn't be found") ; Display a general message in the command line upon load (prompt "\nLoading my custom programs") (princ)

В окне командной строки отобразится сообщение Загрузка пользовательских программ — это одна из последних двух строк, введенных ранее на шаге 2.


Кнопки в строке состояния должны снова стать активными.

Пакет подключаемых модулей представляет собой структуру папок с файлом манифеста PackageContents.xml, который информирует AutoCAD LT о файлах и параметрах, составляющих подключаемый модуль. Пакеты подключаемых модулей не требуются для загрузки программ AutoLISP в AutoCAD LT, как вы уже знаете из этой статьи, но они упрощают управление файлами AutoLISP и предоставляют более безопасный способ развертывания пользовательских программ, чем при использовании файлов acadlt.lsp или acadltdoc.lsp. Пакеты подключаемых модулей также помогают настраивать AutoCAD LT без использования диалогового окна «Параметры».
Сведения о пакетах подключаемых модулей см. в разделе Пример: структура базовой папки .bundle для подключаемого модуля.
Автоматизация рабочих процессов помогает повысить производительность и сократить число повторяющихся задач. Программирование на AutoLISP требует обучения, однако, изучив хотя бы пять основных функций, вы сможете создавать небольшие программы, которые помогут вам использовать больше возможностей AutoLISP в повседневных рабочих процессах.
Ниже приведены некоторые часто используемые команды и системные переменные, связанные с AutoLISP.
| Команда | Описание |
|---|---|
| ПРИЛАВТОЗАГР | Отображение или повторная загрузка всех подключаемых модулей приложения в папке подключаемых модулей. |
| ЗАГПРИЛ | Загрузка и выгрузка приложений; задание набора приложений для автозагрузки. |
| НАСТРОЙКА | Адаптация параметров программы. |
| БЕЗОПНАСТР | Управление ограничениями безопасности для исполняемых файлов в программе. |
| НЕТКОМ | Замена внутренней команды другой командой, определенной в приложении. |
| Системная переменная | Описание | Значение по умолчанию | Сохранено в |
|---|---|---|---|
| ACADLSPASDOC | Управление режимом загрузки файла acad.lsp (или acadlt.lsp для AutoCAD LT): в каждый чертеж или только в первый открытый чертеж сеанса. | 0 | Реестр |
| APPAUTOLOAD | Управление временем загрузки подключаемых модулей. | 14 | Реестр |
| CLAYER | Задает текущий слой. | 0 | Чертеж |
| CLIPROMPTUPDATE | Определяет, будут ли в командной строке отображаться сообщения и запросы при выполнении файла AutoLISP или сценария. | 1 | Реестр |
| CMDDIA | Управление отображением контекстного текстового редактора для команд РЗМРЕД и БВЫНОСКА, а также отображением некоторых диалоговых окон в программных продуктах на основе AutoCAD. | 1 | Реестр |
| CMDECHO | Управляет дублированием запросов и ввода при выполнении команды AutoLISP. | 1 | Не сохраняется |
| FILEDIA | Подавляет отображение диалоговых окон обзора файла. | 1 | Реестр |
| LEGACYCODESEARCH | Определяет, выполняется ли поиск исполняемых файлов в папке, из которой была запущена программа. | 0, может быть заблокировано администратором САПР | Реестр |
| NOMUTT | Подавление отображения сообщения (подсказки), которое в нормальном режиме не подавляется. | 0 | Не сохраняется |
| ORTHOMODE | Задание перемещения курсора в перпендикулярном направлении. | 0 | Чертеж |
| OSMODE | Битовый код текущих режимов объектной привязки. | 4133 | Реестр |
| SECURELOAD | Определяет, будут ли исполняемые файлы загружаться только из доверенных папок. | 1, может быть заблокировано администратором САПР | Реестр |
| TEXTEVAL | Управляет методом обработки текстовых строк, вводимых с помощью команды ТЕКСТ (с использованием AutoLISP) или -ТЕКСТ. | 0 | Не сохраняется |
| TRUSTEDPATHS | Выбор папок для загрузки файлов, содержащих строки кода, и их последующего выполнения. | Разное, может быть заблокировано администратором САПР | Реестр |