Меню Закрыть

AutoCAD. Настройка и создание собственной уникальной среды разработки

Статья вторая. Пример первой программы на LISP для AutoCAD

Проектирование в AutoCAD — вещь зачастую рутинная. Но AutoCAD на то и AutoCAD, являющийся одним из самых известных в мире инструментов для проектирования, чтобы иметь собственные лайфхаки и ухищрения. Ранее мной уже была рассмотрена технология создания динамических блоков, облегчающих и ускоряющих работу проектировщика. Теперь возьмёмся за глыбу знаний побольше и попробуем завалить мамонта под названием «LISP». Не сразу, конечно. В течении нескольких уроков.

AutoCAD. Настройка и создание собственной уникальной среды разработки

LISP (AutoLISP) это традиционный для AutoCAD язык программирования. С его помощью можно создавать свои программы в любой области проектирования. Разработка и использование этих программ делает пользователя свободным от типовых и рутинных операций и ощутимо увеличивает производительность работы в AutoCAD.

Для работы нам потребуется только AutoCAD. Отдельная установка AutoLISP не нужна, т.к. он поставляется вместе с AutoCAD-ом.

И первое с чего всегда начинается проектирование – это постановка задачи. И чтобы сразу никого не спугнуть, предлагаю написать простенькую программу, которая построит прямоугольник размерами 395х287 (таков размер рабочей зоны в штампе А3) по указанной базовой точке T1.

Текст программы будем разрабатывать в редакторе «Visual LISP». Сначала, для того чтобы его открыть, нужно открыть сам AutoCAD. Далее на ленте меню выбираем вкладку «Управление», а на панели «Приложение» щелкаем пункт «Редактор Visual LISP».

Редактор Visual LISP
Рисунок 1. Редактор Visual LISP

Создаем новый файл: щелкаем на кнопку с иконкой в виде чистого листа.

Создание нового файла для программы на LISP
Рисунок 2. Создание нового файла

Теперь в открывшимся окне необходимо набрать текст нашей программы на языке LISP:

(DEFUN c:auto_rectangle_form (/ T1 T2 T3 T4) ; start of the functon auto_rectangle_form
(setq T1 (getpoint “\nSet a base point: “)) ; ask the coordinate of a base point
(setq T2 (polar T1 0 395)) ; calculating of the second point of rectangle p2
(setq T3 (polar T2 (/ pi 2) 287)) ; calculating of the third point of rectangle p3
(setq T4 (polar T3 pi 395)) ; calculating of the fourth point of rectangle p4

(setq osm (getvar “osmode”)) ; remember the bindings of uer
(setvar “osmode” 0) ; turn off them

(command “_line” T1 T2 “”) ; paint the line 1-2
(command “_line” T2 T3 “”) ; paint the line 2-3
(command “_line” T3 T4 “”) ; paint the line 3-4
(command “_line” T4 T1 “”) ; paint the line 4-1

(setvar “osmode” osm) ; return the bindings
) ; 

Текст программы на LISP
Рисунок 3. Текст программы

В тексте программы после символа «;» можно оставлять свои комментарии, которые в дальнейшем никак не влияют на выполнение команды, но крайне сильно помогают разработчикам в понимании собственных алгоритмов.

Чтобы в дальнейшем избежать пересечения со стандартными командами или с командами созданными другими пользователями, назовём файл и команду «auto_rectangle_form».

После этого сохраним нашу программу в нужном вам месте.

Сохранение файла программы
Рисунок 4. Сохранение файла

Теперь, для того, чтобы можно было использовать нашу программу прямо из AutoCAD-а, ее предварительно нужно загрузить. Для этого необходимо щелкнуть по кнопке указанной ниже на рисунке 5.

Кнопка загрузки программы
Рисунок 5. Загрузка программы

Если программа набрана без ошибок, то в окне «Консоль Visual LISP» появится надпись о том, что наша программа загружена. У меня вывелась следующуая крокозябра.

Консоль Visual LISP
Рисунок 6. Консоль

У программиста-не_курильщика выведется надпись
«; 1 блок кода загружено из #<editor “C:/Users/Ýëüäîðàäî/Desktop/ÀÄÈÑ backup/lisp/auto_rectangle_form.lsp”>»

Переходим в AutoCAD, вводим «auto_rectangle_form» в командную строку и нажимаем Enter.

Ввод команды для вызова программы
Рисунок 7. Ввод команды

Появится подсказка (которую и мы прописали в коде): «Укажите базовую точку :». 

Щелкните в любой точки рабочего окна AutoCAD и он нарисует прямоугольник.

Вуаля! Теперь мы кодеры на LISP-Е. Шучу. Нет, конечно…
Для этого вам нужны мои следующие статьи. Ждите.

Автор: Светличный Константин.