Как программировать в автокаде

Обновлено: 07.07.2024

На этой странице будут выкладываться примеры LISP программ. По многим из них есть уроки с подробным описанием кода.

Если Вы знаете как запускать LISP программы в AutoCAD, то можете сразу перейти к списку программ .

Как использовать программы.

Все программы написаны для использования их в полной версии программы AutoCAD. Они не будут работать в AutoCAD LT.

Если Вам понравилась какая-либо программа на этом сайте и Вы хотите ее установить на свой компьютер. Для этого Вам нужно сделать следующее:

2. Все программы заархивированы. Поэтому после того, как вы скачали архив, его нужно разархивировать. Разархивировав архив, Вы получите файлы программы, которые можете хранить в любом месте на вашем компьютере (Я для этого использую папку D:\MyLisp);

3. Файлы программы нужно загрузить в AutoCAD;

4. Запускаем новые команды, которые хранятся в загруженных файлах.

Я думаю, что с первыми двумя пунктами справятся все. Поэтому сразу поговорим о загрузке LISP файлов в Автокад.

Загрузка LISP файлов в Автокад.

Загрузить в Автокад LISP программу можно несколькими способами. Опишу некоторые из них.

Загрузка файлов с помощью окна «Загрузка / Выгрузка приложений».

Откройте Автокад. На ленте перейдите на вкладку « Управление » и щелкните по кнопке « Приложение ». См. Рис. 1.

LISP программы

Если вы работаете в режиме Классический AutoCAD:

В главном меню выберите « Сервис », далее щелкните по строчке « Приложения… ». См. Рис. 2.

LISP программы

Откроется окно «Загрузка / Выгрузка приложений».

Найти папку , в которой лежит файл, выделите его и нажмите на кнопку « Загрузить ». См. Рис. 3.

LISP программы

Таким способом загружают программы для их временного использования. После того, как Вы закроете Автокад, а потом откроете его снова, их не будет в Автокаде, и для их использования их нужно загрузить снова.

Для того, чтобы нужные Вам LISP файлы загружались в Автокад автоматически, их нужно добавить в список автоматической загрузки. Для этого щелкаем на портфельчик « Автозагрузка » (или на кнопку « Приложения » под ним). Откроется окно «Автозагрузка», в котором нажимаем на кнопку « Добавить ». См. Рис. 4.

LISP программы

Рис. 4. Автозагрузка

Откроется окно «Добавление файла в список автоматической автозагрузки». Находим нужную папку , выделяем файл и нажимаем на кнопку « Открыть ». См. Рис. 5.

LISP программы

Рис. 5. Добавление файла в список автоматической автозагрузки

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

После того, как Вы добавите все необходимые файлы, нажмите на кнопку « Закрыть ». Затем на кнопку « Закрыть » в окне «Загрузка / Выгрузка приложений». См. Рис. 6.

LISP программы

Рис. 6. Файл добавлен

Имейте в виду, что файлы загрузятся автоматически, только при следующем запуске Автокад. Если Вы хотите использовать их в текущей сессии, их нужно загрузить способом, описанным выше (либо каким другим способом).

Загрузка файлов с помощью Редактора Visual LISP.

Откройте Редактор Visual LISP:

Наберите в командной строке VLIDE (или VLISP) и нажмите <Enter>.

Или на ленте перейдите на вкладку « Управление » и нажмите на кнопку « Редактор Visual LISP ». См. Рис. 7.

LISP программы

Рис. 7. Редактор Visual LISP

Откроется Редактор Visual LISP. Нажмите на кнопку « Открыть файл ». Появится окно «Открытие файла для редактирования / просмотра».

Найдите нужную папку ;

Выделите файл и нажмите на кнопку « Открыть ». См. Рис. 8.

LISP программы

Рис. 9. Открытие файла в Редакторе Visual LISP

Файл загрузится в активное окно редактора. Чтобы загрузить его в Автокад, нужно нажать на кнопку « Загрузить активное окно редактора ».

Такой способ имеет свои плюсы, связанные с тем, что Вы видите программный код файла:

1. Вы можете посмотреть, сколько команд в этом LISP файле (их может быть несколько).

2. Найти имена этих команд: находим строку с функцией defun; Имя команды стоит сразу после с: (в нашем случаи это: 3d_tro и roY );

3. Кроме всего прочего Вы имеете возможность отредактировать код программы.

LISP программы

Рис. 9. Имена новых команд.

Чтобы определить границы команды в программном коде, поставьте курсор мыши перед открывающейся скобкой функции defun и дважды щелкните левой кнопкой мыши. Функция defun, которая описывает одну команду – выделиться. См. Рис. 10.

LISP программы

Рис. 10. Программный код одной команды

Запуск новых команд.

После того, как файлы загружены, мы может запускать в Автокад новые команды, которые хранятся в этих файлах. Для этого достаточно набрать ИМЯ КОМАНДЫ в командной строке и нажать < Enter >.

Кроме этого для любой команды можно создать кнопку.

Поместить ее на панель инструментов, а панель вынести на ленту.

После этого запускать команду, нажимая на эту кнопку.

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

Как это сделать читайте в уроке: « Горячие клавиши Автокад ».

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

Список LISP программ.

LISP программа «mp_kub.lsp»

Программа, которая рисует в Автокад куб со сторонами 200.

Для запуска в Автокад используется имя MP_KUB

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

Указываем любую точку в рабочем окне Автокад. Команда построит куб со сторонами 200 .

Создание блока

Подробное описание программного кода смотрите в уроке: « Пример простой программы на LISP ».

LISP программа «mp_paral.lsp»

Программа рисует параллелограмм, со сторонами указанными в диалоговом окне. Программа работает только вместе с файлом диалогового окна « mp_paral.dcl ». Поэтому скачать надо два файла.

Чтобы Автокад определил местонахождение файла диалогового окна, его нужно поместить в папку вспомогательных файлов Автокад.

Либо в коде программы, в строке

Например, если файл находиться в папке « D:\MyLisp » строка должна выглядеть так:

Для запуска в Автокад используется имя MP_PARAL

После запуска на экране появится диалоговое окно.

Нужно указать размеры сторон параллелограмма и нажать на кнопку ОК .

Далее появится запрос: “ Укажите базовую точку ».

Указываем любую точку в рабочем окне Автокад. Команда построит параллелограмм со сторонами указанными в диалоговом окне.

Параллелепипед

Подробное описание программного кода смотрите в уроке: « Пример программы LISP с диалоговым окном ».

Подробное описание программного кода создания диалогового окна смотрите в уроке: « Диалоговое окно ».

LISP программа «Sum_dl.lsp»

Программа считает сумму длин выбираемых отрезков. В процессе выбора отрезков Автокад выдает количество выбранных отрезков и сумму их длины.

Для запуска в Автокад используется имя SumDl

После запуска выдает запрос: « Выберите отрезок »:

Укажите любой отрезок.

Ниже снова появиться запрос: « Выберите отрезок »:

Укажите следующий отрезок.

Ниже снова появиться запрос: « Выберите отрезок »:

Пример AutoLISP

Количество выбранных отрезков и их общая длина.

И так до бесконечности. Чтобы завершить выполнения программы нажмите клавишу < Esc >.

Подробное описание программного кода смотрите в уроке: « Пример AutoLISP программы: Сумма длин отрезков ».

LISP программа «Sum_dls.lsp»

Программа суммы длин со свободным выбором отрезков.

Программа считает сумму длин выбираемых отрезков.

Выбор отрезков можно делать и по одному и группой при помощи рамки (или при помощи секущей рамки). В общем, любым стандартным способом AutoCAD.

Для запуска в Автокад используется имя: SumDls

После запуска программа выдает запрос: « Выберите объекты »:

Выбирать отрезки можно любым стандартным способом Автокад. Если случайно выбран не тот отрезок, его выбор можно отменить. Для этого удерживая клавишу < Shift >, щелкните по нему. Этот отрезок будет исключен из выбора.

Процесс выбора и отмены выбора отрезков отражается в командной строке.

AutoCAD Lisp

Отмена выбора объекта.

После того как вы выбрали все необходимые объекты, нажмите < Enter >, чтобы завершить выбор.

AutoCAD Lisp

Результат выполнения программы.

Подробное описание программного кода смотрите в уроке: « Примеры LISP программ: Сумма длин отрезков ».

LISP программа «Sum_dlv.lsp»

Программа считает сумму длин отрезков на всем чертеже.

Для запуска в Автокад используется имя: SumDlv

После запуска программа выделить на чертеже все отрезки

AutoCAD Lisp

Результат выполнения программы.

Подробное описание программного кода смотрите в уроке: «Примеры LISP программ: Сумма длин отрезков».

LISP программа «Sum_sl.lsp»

Программа считает сумму длин отрезков на выбранном слое.

Для запуска в Автокад используется имя: SumSl

После запуска программа выдает запрос: « Выберите объект для определения слоя: “

Укажите любой объект. Программа выделит и сосчитает длину все отрезков на слое, на котором расположен указанный объект.

AutoCAD Lisp

Результат при выборе синего слоя.

Подробное описание программного кода смотрите в уроке: «Примеры LISP программ: Сумма длин отрезков».

LISP программа «Scom.lsp»

Программа показывает, как в программном коде AutoLISP можно использовать стандартные команды Автокад.

  • Построения отрезка.
  • Построения дуги.
  • Использования команды редактирования: Зеркало
  • Перевода чертежа ЮЗ изометрию.
  • Построения Полуконуса.

Для запуска в Автокад используется имя: SCOM

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

Указываем любую точку в рабочем окне Автокад. Команда построит два отрезка и дугу. Затем отзеркалит их. Потом переведет чертеж ЮЗ изометрию и построит Полуконус.

Команды Автокад

Подробное описание программного кода смотрите в уроке: « AutoLISP. Стандартные команды Автокад ».

LISP программа «mp_kub2.lsp»

Программа создает блок куба, стороны которого предварительно задаются.

Для запуска в Автокад используется имя MP_KUB2

После запуска выдает запрос: « Задайте длину стороны куба : »

Введите числовое значение стороны куба и нажмите < Enter >

Появиться запрос: “ Укажите базовую точку ».

Указываем любую точку в рабочем окне Автокад. Команда построит блок в виде куба со сторонами, значение которых мы задали при первом запросе.

AutoLISP. Создание блока.

Подробное описание программного кода смотрите в уроке: « AutoLISP. Создание блока ».

LISP программа «mp_kub3.lsp»

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

Для запуска в Автокад используется имя: MP_KUB3

После запуска программа выдает запрос: « Задайте длину стороны куба : »

Введите числовое значение стороны куба и нажмите < Enter >

Появиться запрос: “ Укажите базовую точку ».

Указываем любую точку в рабочем окне Автокад. Команда построит блок в виде куба со сторонами, значение которых мы задали при первом запросе. Так же программа сосчитает объем, и координаты центра верхней грани и сохранить их в блоке в качестве дополнительных данных.

AutoLISP. Создание блока.

Подробное описание программного кода смотрите в уроке: « LISP. Создание блока ».

LISP программа «Udim.lsp»

Программа считывает дополнительные данные из блока, созданного в уроке: «LISP. Создание блока». Вставляет динамический блок, созданный в уроке: « Создание динамического блока ».

Для того, чтобы посмотреть как работает программа предварительно нужно:

Для запуска в Автокад используется имя: UDIM

После запуска программа выдает запрос: « Выберите блок :»

Укажите предварительно построенный блок (созданный программой mp_kub3.lsp ).

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

Далее программа снова выдает запрос: « Выберите блок: »

Укажите следующий блок.

LISP. Динамический блок.

Что завершит программу нажмите < Esc >.

Подробное описание программного кода смотрите в уроке: «Вставка динамического блока из LISP-программы».

LISP программа «Udim2.lsp»

Программа считывает дополнительные данные из блока, созданного в уроке: « LISP. Создание блока ». Вставляет динамический блок, созданный в уроке: «Создание динамического блока». Меняет длину и положение выносной линии и длину и положение полки.

Для того, чтобы посмотреть как работает программа предварительно нужно:

Для запуска в Автокад используется имя: UDIM2

После запуска программа выдает запрос: « Выберите блок: »

Укажите предварительно построенный блок (созданный программой mp_kub3.lsp ).

Появится начало выносной линии

Далее программа выдает запрос: « Укажите выносную линию: »

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

Затем программа снова выдает запрос: « Выберите блок: »

Снова укажите блок куба.

На запрос « Укажите выносную линию: »

Укажите вторую точку линии в другом месте.

На следующий запрос « Выберите блок : » – нажмите < Esc >.

Динамический блок.

Программа нарисует две выноски к одному блоку.

Подробное описание программного кода смотрите в уроке: «Изменение динамического блока из LISP-программы».

LISP программа «3d_tro.lsp»

Программа содержит в себе две команды

Первая команда рисует в Автокад 3D тройник.

Для запуска в Автокад используется имя: 3D_TRO

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

Указываем любую точку в рабочем окне Автокад. Команда построит 3D тройник.

3D моделирование в AutoCAD

Вторая команда поворачивает 3D тройник на 90 градусов вокруг оси параллельной оси Y.

Для запуска в Автокад используется имя: ROY

Предварительно выделите 3D тройник

Введите в командной строке ROY и нажмите < Enter >.

3D моделирование в AutoCAD

Повернутый 3D тройник.

Подробное описание программного кода смотрите в уроке: «3D моделирование в AutoCAD».

LISP программа « 3d_bolt.lsp»

Программа рисует в Автокад 3D болт.

Для запуска в Автокад используется имя: 3D_BOLT

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

Указываем любую точку в рабочем окне Автокад. Команда построит 3D болт.

3D моделирование

Подробное описание программного кода смотрите в уроке: «3D моделирование. Болт с резьбой.».

38 комментарии на “ LISP Программы. ”

Здравствуйте. как можно к вам обратиться для написания программы для автокада?

Неважно каким образом Вы выделите 3Д-тела. После того как они выделены, запускаем функцию (ssget). Получаем набор выделенных 3Д-тел. Сохраняем его в переменную set_obj

Загружаем функции расширения LISP

Организуем цикл, в котором перебираем по порядку все выбранные 3Д-тела.
Внутри цикла:
Переводим 3Д-тела в vla-объекты:

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

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

Приставленные примеры предполагают, что у читателя уже есть начальные знания работы в AutoCAD.

Для выполнения примера нам понадобиться только программа AutoCAD. Специальная инсталляция AutoLISP не требуется. Он поставляется с каждой копией AutoCADа.

И первое с чего мы должны начать – это поставить перед собой задачу. И в качестве примера я предлагаю написать программу, которая попросит нас указать базовую точку р1. и после указания, построит куб со сторонами 200.

Пример программы LISP

Программный код мы будем писать в редакторе «Visual Lisp». Чтобы его открыть, в начале нужно запустить AutoCAD.

Далее на ленте выбираем вкладку «Управление» и на панели «Приложение» щелкаем на пункте «Редактор Visual Lisp»

редактор Visual lisp

Создаем новый файл: щелкаем на кнопку обведенную красным .

Visual lisp

И в открывшимся окне, набираем текст нашей программы или копируем его с сайта

lisp

Программный код на языке LISP:

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

Давая имя командам и файлам, стараемся присвоить им уникальные имена. Чтобы в дальнейшем избежать пересечения со стандартными командами или с командами созданными другими пользователями. Я назову наш файл и команду «mp_kub» (подразумевая my program Kub)

В конце сохраняем нашу программу в удобном для вас месте. Я сохраняю ее в папке «D:/MyLisp» под именем «mp_kub».

Пример программы LISP

Теперь, чтобы использовать нашу программу в AutoCADе, ее предварительно нужно загрузить. Щелкаем по кнопке выделенной зеленым .

lisp

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

консоль Visual lisp

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

Пример программы LISP

Появится подсказка: «Укажите базовую точку :» Щелкните в любой точки рабочего окна AutoCAD и он нарисует куб.

Пример программы LISP

ДОПОЛНИТЕЛЬНЫЕ ПОЯСНЕНИЯ .

Давайте более подробно разберем функции языка LISP, которые мы использовали в программном коде.

Создание функции пользователя с именем «mp_kub».

Префикс «с:» означает, что эту функцию можно будет использовать как стандартную команду AutoCAD. Достаточно ввести имя в командную строку AutoCADа.

( / p1 p2 p3 p4 p5 p6 p7 p8 ) – временные переменные, которые используются в выражениях.

Функция getpoint – даёт возможность пользователю указать точку при помощи мыши.

Результатом функции будут координаты точки указанные пользователем.

Функция присвоения (setq p1 <значение>) позволяет сохранить <значение> в переменной p1.

Пример программы LISP

Функция ( polar p1 0 200 ) вычисляет координаты точки отстоящей от точки р1 на расстояние 200 в направлении луча образующим с ось Х угол 0 радиан.

Функция command выполняет стандартные функции AutoCADа. В нашем случаи проводит отрезки по точкам с координатами р1, р2, р3, р4, р1 .

Таким образом в этой статье мы узнали:

Как запускать редактор Visual Lisp.

Как создавать программу на языке Lisp.

Как загружать программу и как запускать ее на выполнение.

Чтобы лучше, понять, как работают функции, поэкспериментируйте с ними, поменяйте какие либо значения, посмотрите, как это повлияет на результат.

В дополнение к этому уроку смотрите видео: Пример простой программы на LISP.

В следующем уроке мы будем учится создавать кнопку для запуска своих программ.

Пишите в комментариях: все ли у вас получилось?; трудно ли было выполнить этот урок?; где у вас возникли трудности? Я с удовольствием отвечу на все ваши комментарии.

Профиль трассы

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

И рассмотрим следующие вопросы:

Как нарисовать дугу в Автокаде.

Как нарисовать дугу в Автокаде? Для этого в программе Автокад существует несколько способов.

В этом уроке мы рассмотрим:

Как нарисовать круг в Автокаде.

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

И рассмотрим следующие вопросы:

Автоматизация проектирования. Отвод.

В этой статье мы продолжим процесс автоматизации проектирования систем вентиляции.

Автоматизация проектирования.

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

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

Примером автоматизации проектирования систем вентиляции, может послужить диалоговое окно, созданное в уроке: «Диалоговое окно Автокад». См. Рис. 1.

Диалоговое окно Автокад

Рис. 1. Диалоговое окно.

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

В предыдущей статье мы подробно, рассмотрели возможный вариант управления диалоговым окном из LISP программы. Но осталось еще несколько идей по усовершенствованию программы. Этим мы и займемся в этом уроке

Напомню, что при нажатии на кнопку ОК, наша диалоговое окно закрывалось, и программа просила указать две точки, по которым строилась мультилиния (круглый или прямоугольный воздуховод).

Управление диалоговым окном.

Рис. 2. Мультилиния.

В этом уроке мы научимся:

Пример LISP программы управления диалоговым окном в Автокад

В этой статье мы рассмотрим пример программного управление диалоговым окном.

В качестве примера мы возьмем диалоговое окно, созданное в предыдущей статье: «Диалоговое окно Автокад»

Диалоговое окно Автокад

Рис. 1. Диалоговое окно.

В этой статье мы рассмотрим:

Напишем несколько пользовательских функций, которые будут ответом на действия пользователя:

Диалоговое окно Автокад.

Диалоговые окна являются важным компонентом любого приложения.

Диалоговые окна используют:

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

Создать диалоговое окно Автокад, не прибегая к сторонним программам, можно при помощи редактора Visual LISP . Для этого в редакторе Visual LISP используют язык DCL, который предназначен для программирования диалоговых окон.

Давайте для примера создадим диалоговое окно для более удобного ввода исходных данных прямого участка воздуховода.

Добавим в эту форму настройки программы – выбор формы сечения.

И в качестве полезной информации, при вводе исходных данных, покажем пользователю скорость движения воздуха.

В результате хотелось бы получить следующее диалоговое окно. См. Рис. 1.

Диалоговое окно Автокад

Рис. 1. Диалоговое окно.

Мультилиния в Автокаде.

На мой взгляд, разработчики незаслуженно убрали команду мультилиния из последних версий Автокад. Этот инструмент многофункционален и может быть использован в различных областях проектирования. При помощи мультилинии мы можем создавать многослойные стены в архитектуре, рисовать дороги, трубопроводы системы отопление и теплоснабжения, воздуховоды систем вентиляции.

Давайте, вернем мультилинию на ленту и познакомимся с ней более подробно.

Итак, в этой уроке мы рассмотрим следующее:

3D моделирование. Болт с резьбой.

Продолжаем тему 3D моделирование в AutoCAD. В этом уроке мы программным методом построим Болт с резьбой. При создании болта в программе будем использовать стандартные команды Автокад. Для примера мы построим болт М16. В конце статьи смотрите видео к этому уроку.

Бесплатный плагин для AutoCAD

Плагин OmaDWG

O maDWG - плагин для AutoCAD

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

В мире существует множество систем автоматизированного проектирования, каждая со своими преимуществами и недостатками. В зависимости от сферы их применения все эти САПР можно условно разделить на группы. Одни системы более пригодны для машиностроения, кораблестроения и других технических областей, возможности других оптимальны для выполнения работ в геодезии, картографии, гидрографии: С учетом всего разнообразия возможных применений к САПР предъявляется целый ряд требований: прежде всего это удобный пользовательский интерфейс, качественная графика и наличие средств программирования для решения специализированных задач.

Особого внимания среди CAD-систем заслуживает программный комплекс AutoCAD. Эта система автоматизированного проектирования не только предоставляет пользователю удобный графический интерфейс и обеспечивает получение высококачественной графики, но и располагает широким набором инструментов программирования. Пользователь может модифицировать графический интерфейс AutoCAD, расширять функциональные возможности, добавлять новые команды. Гибкую систему программирования мы бы и назвали главным преимуществом AutoCAD. Практически все операции, выполняемые в среде AutoCAD, можно реализовать программно – для этого в системе предусмотрены средства создания сценариев и возможность использования языков программирования.

К средствам программирования AutoCAD относятся следующие языки:

- Visual Basic for Application (VBA);

Будучи частью AutoCAD, AutoLisp позволяет оперировать переменными различных типов и передавать их значения командам AutoCAD при вводе данных. При ответах на запросы команд AutoCAD существует возможность использовать выражения АutоL_sр, в которых могут выполняться различные арифметические и условные операции над числовыми значениями и значениями определенных переменных.

Помимо средств выполнения различных расчетов, AutoLisp содержит функции и средства, которые предоставляют доступ к графической базе данных текущего чертежа AutoCAD. Кроме того, AutoLisp позволяет управлять графическим редактором AutoCAD и обращаться к собственным командам системы. Благодаря возможностям программ АutоL_sр создаются функции, настроенные на конкретную область применения. Эти функции включают запросы к пользователю (диалоги), возможность выбора по условию из нескольких вариантов или использования нескольких значений по умолчанию. Хотя макроопределения, созданные при написании меню AutoCAD, могут быть довольно сложными, при отсутствии АutоL_sр они остаются всего лишь комбинациями стандартных команд системы. Включив же в меню функций макроопределения АutоL_sр, вы превращаете меню AutoCAD в интеллектуальное средство автоматизации проектирования.

Возможности, которые обеспечивает AutoLisp:

- использование переменных и выражений при ответах на запросы команд AutoCAD;

- чтение и создание внешних файлов (таким образом осуществляется обмен информацией с внешними программами, которые можно запускать из AutoCAD);

- создание различных функций и новых команд AutoCAD, что обеспечивает настройку и расширение графических возможностей системы;

- программный доступ (чтение и редактирование) к данным, которые относятся к объектам проектирования, а также к таблицам AutoCAD, содержащим информацию о блоках, слоях, видах, стилях и типах линий;

- программное управление графическим экраном AutoCAD, а также вводом/выводом из различных устройств.

Заметим, что AutoLisp может использоваться для автоматизации проектирования почти в любой области народного хозяйства: от машино- и кораблестростроения до строительства, геодезии и картографии.

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

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

При создании на АutоL_sр довольно сложных программ не всегда удается сделать наглядным и удобным ввод информации через командную строку. Диалог с программой можно усовершенствовать, используя язык программирования DCL (Dialog Control Language), который предоставляет графические меню, средства редактирования атрибутов и диалоговых окон. При совместном использовании с комплексом команд АutоL_sр этот язык обеспечивает возможность вызова и управления диалогом из Lisp-программы. Все это значительно расширяет возможности адаптации AutoCAD под конкретные прикладные задачи. Язык DCL позволяет влиять на способ вывода окна, а также на его состав: кнопки, списки, шкалы и т.д. Ограничения на размер и местоположение окна заданы правилами конструирования диалоговых окон. Расположение элементов окна напоминает расположение абзацев в форматированном тексте, поэтому нет необходимости задавать точные координаты фрагментов окон. Диалоговое окно из меню AutoCAD вызывается через функцию АutоL_sр, которая руководит диалогом.

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

Одним из наиболее современных языков программирования под AutoCAD является язык VBA (Visual Basic for Application), который взаимодействует с AutoCAD через интерфейс ActiveХ Automation. В плане расширения возможностей AutoCAD этот язык существенно превосходит возможности AutoLisp. Через интерфейс ActiveХ Automation он получает доступ ко всем элементам среды AutoCAD, всем переменным и командам, благодаря чему можно без больших усилий модифицировать пользовательский графический интерфейс (изменять меню, линейки инструментов, графическое окружение, добавлять новые команды, работать с графической базой данных AutoCAD: слоями, блоками, вьюпортами, стилями отображения текста, линий, заливок).

Язык VBA имеет собственный набор переменных и развитую систему инструментов для выполнения математических, логических и системных операций. Это позволяет не только создавать программы осуществления сложных математических расчетов, модификации баз данных AutoCAD, автоматизации процессов черчения, но и использовать VBA при написании более сложных программ, связанных с системными событиями. Например, с помощью VBA несложно создать программы взаимодействия с системными командами Windows, а также с другими программами (Word, Excel, Access и др.). К достоинствам этого языка следует отнести и наличие разнообразных инструментов для взаимодействия с различными базами данных (Access, Oracle, FoxPro, dBase, Paradox).

Упомянутые возможности программирования на языке VBA позволяют создавать сложные системы автоматизации проектирования и подготовки конструкторской документации в режиме реального времени. В подтверждение достаточно упомянуть существующие системы для разработки электрических схем с автоматической вставкой электронных компонентов и последующим внесением информации о компонентах и всей электронной схеме в базы данных. По завершении разработки электронной схемы пользователь может получить в Excel или Access полную спецификацию использованных компонентов.

Таким образом VBA объединяет в себе функциональные возможности AutoLisp и DCL, дополнительно предлагая инструменты взаимодействия с программной средой Windows и прикладными программами различных фирм-разработчиков, которые поддерживают технологию ActiveХ Automation.

Продолжим наш обзор рассмотрением ObjectARX – объектно-ориентированного расширения программной среды AutoCAD. Используя язык программирования Visual C++ и библиотеки языка C++, ObjectARX позволяет разрабатывать программы, расширять классы AutoCAD и протоколы, а также создавать новые команды, которые работают аналогично командам, встроенным в AutoCAD.

Программы ObjectARX являются динамическими библиотеками (DLL), которые разделяют адресное пространство AutoCAD и выполняют прямые обращения к ядру AutoCAD. Это обеспечивает возможность создания новых примитивов, которые ведут себя как обычные примитивы AutoCAD (точки, линии, круги и т.д.).

ObjectARX открывает прямой доступ к базам данных AutoCAD, графической системе и всей системе команд. Следовательно, появляется возможность разрабатывать программы для взаимодействия со средой проектирования, создавать любые графические интерфейсы пользователя, обращаясь к библиотеке MFC, создавать программы с многооконными интерфейсами, формировать собственные классы и протоколы взаимодействия, взаимодействовать с другими программными средами и внешними устройствами.

Таким образом, ObjectARX позволяет создавать программы любой сложности. По функциональным возможностям он в несколько раз превосходит AutoLisp, DCL и VBA. Этот язык программирования позволяет написать и простой скрипт, и инструменты перепрограммирования ядра AutoCAD, а также взаимодействия с внешними устройствами. На ObjectARX и Visual C++ написаны Autodesk Mechanical Desktop, Autodesk Land Desktop, Autodesk Map, Autodesk Civil Design и многие другие приложения к AutoCAD.

Описанное позволяет сделать следующие выводы:

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

2. Четкое представление о возможностях каждого из языков позволяет оптимизировать процесс создания прикладных программ.

3. Каждый из языков наилучшим образом соответствует вполне определенным задачам:

- AutoLisp – автоматизация процесса подготовки проектирования, создание новых команд, получение и сохранение информации по текущему чертежу, создание скриптов и изменение информации в текущем файле;

- VBA – изменение и дополнение графического интерфейса пользователя, создание новых команд, объединение Windows-программ и AutoCAD в единый комплекс;

- ObjectARX – дополнение AutoCAD новыми объектами, классами, протоколами, методами и механизмами обработки информации; установление связи AutoCAD с различными системными событиями и внешними устройствами.

При разработке программы следует учитывать следующие два важных фактора. Первый – необходимость быстрого написания программного кода, второй – быстродействие создаваемой программы. Если более существенным представляется первый фактор, можно и нужно использовать совместный подход к написанию: параллельно задействовать все языки, упомянутые выше, и получить комплексный код программы. При этом используется определенный язык программирования, который позволяет выполнить задачу наиболее удобно и быстро. Если же преобладают соображения быстродействия, следует отдать безусловное предпочтение языкам C++, Assembler и ARX.

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

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

Читайте также: