В продолжение моей предыдущей публикации Начало разработки для AutoCAD я покажу вам, как использовать LISP в AutoCAD для преобразования выбранных блоков в набор точек.

Прежде чем я начну, важно усвоить, что все переменные в LISP являются глобальными, если только они не должны быть локальными внутри определения функции. Вот как мы создаем локальные переменные:

Это две зарезервированные буквы префикса для функций в LISP; «C:» и «s:». C предназначен для обеспечения доступа к функции из командной строки, S связан с процедурой запуска AutoCAD. Вам пока не нужно этого знать.

В следующем коде я добавил в свой шаблон некоторую обработку ошибок, создав специальный обработчик ошибок для отображения любой потенциальной ошибки, которая может произойти. После завершения функции я сбрасываю переменную * error *, в которой хранится обычная функция обработки ошибок AutoCAD, если она не переопределена, как я показываю здесь.

Как было сказано в предыдущем посте, чрезвычайно важно правильно обрабатывать системные переменные, прежде чем вы начнете манипулировать объектами, иначе вы в конечном итоге будете привязаны ко всем неправильным местам.

LISP замечателен тем, что позволяет использовать все обычные команды AutoCAD, которые вы обычно выполняете вручную, и вызывать их в сценарии или функции. Однако команды с использованием пользовательских форм ввода будут более интригующими.

Тогда приятно знать, что у большинства команд AutoCAD есть альтернативная версия с префиксом тире (-). Например: команда LAYER имеет эквивалентную команду -LAYER, которая позволяет передавать ей параметры через LISP.

Что, если вы вместо этого захотите преобразовать блоки в COGO-очки Civil 3D? Следите за новостями в следующем посте;)