Как добавить модуль в автокад

Обновлено: 06.07.2024

Решил рассказать о своем опыте работы с AutoCAD. Может быть, кому-то это поможет – ну или хотя бы интересным покажется.

Предыстория

Началось все достаточно просто: в очередной раз почувствовав острую нехватку денег, я решил, что пора бы уже начать их где-нибудь разыскивать. И вот после пары недель поиска на «Фрилансим» обнаружилась вакансия разработчика для создания программы, взаимодействующей с AutoCAD.

Скажу сразу: до того дня общаться с AutoCAD мне не доводилось. Однако объявление содержало в себе фразу «Опыт работы не требуется», которая наполнила мою душу надеждой. Я связался с разместившим вакансию человеком и получил тестовое задание.

Для пробы предлагалось создать на чертеже пару объектов, а также вывести текст. Несколько дней я искал информацию об API и пытался подружиться с непривычной программой. В конце концов фигуры были нарисованы, текст выведен, а тестовое задание отправлено на проверку. И через несколько дней я неожиданно узнал, что принят! Чудеса, да и только.

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

1.1. Собственно AutoCAD

Тут все понятно. Качайте с официального сайта Autodesk, ставьте, 30 дней наслаждайтесь прекрасным инструментом. Потом узнайте цену покупки и повесьтесь. Для разработчиков действует специальная программа ADN , по которой можно получать девелоперские лицензии на продукты Autodesk. Стоимость базовой версии подписки, как указано на сайте, составляет от 700 долларов в год.

1.2. ObjectARX SDK – набор библиотек, необходимых для работы с AutoCAD

Последние три-четыре версии библиотек можно бесплатно скачать тут после регистрации. Более ранние придется поискать – скажем, тут. На всякий случай продублирую список прямо здесь – не такой уж он и длинный:

ссылки для загрузки ObjectARX SDK для версий AutoCAD 2000 – 2011
Версия SDK и ссылка для загрузки Совместимость с версиями AutoCAD
2011 2011, 2012
2010 2010, 2011, 2012
2009 2009
2008 x86 2008, 2009 x86
2008 x64 2008, 2009 x64
2007 2007, 2008, 2009 x86
2006 2006
2005 2005, 2006
2004 2004, 2005, 2006
2002 2002
2000i 2000i, 2002
2000 2000, 2000i, 2002
R14 R14

Лично меня в свое время очень заинтересовал вопрос обратной совместимости ObjectARX. Как-то раз заказчик спросил: «А с какими версиями AutoCAD сможет работать программа?», и мне пришлось изрядно времени потратить на поиски ответа. В целом, ответ звучит так: «Autodesk поддерживает обратную совместимость в течение трех лет ». Какие версии совместимы между собой, можно посмотреть под спойлером выше.

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

1.3. MS Visual Studio 2013 Express

Великолепная IDE! Больше про нее и говорить-то нечего. Ссылок для скачивания масса – например, вот.

Можно, конечно, использовать и более ранние версии. Я начинал работу над проектом в MS Visual Studio 2010, но потом решил перейти на более современный выпуск.

1.4. Поисковик, усидчивость, здравый смысл
  • нет привычных всплывающих подсказок о назначении класса, свойства или метода;
  • нет подробной справки.

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

2. Создание проекта библиотеки

Вкратце продублирую основные этапы:

2.1. Создать проект «Библиотека классов» («Class Library»)

Эти DLL-файлы находятся в папке с именем inc-<наименование_архитектуры>. Так, в моем случае я добавляю ссылки на библиотеки из папки C:\ObjectARX 2010\inc-win32.

у меня дома установлена 32-разрядная ОС, у заказчика – 64-разрядная. Пока серьезных проблем с совместимостью не возникало. Но однажды я все же напоролся на то, что у меня функция возвращала Int32 , а у заказчика – Int64 . Линковщик ОЧЕНЬ расстраивался. Нужно иметь эту особенность в виду.

Первое знакомство с API у меня заключалось в лихорадочных попытках скомпилировать хоть какой-нибудь из примеров, щедро разбросанных по Сети. И что сλка характерно, компилироваться они упорно не хотели, ругаясь на неизвестные пространства имен и классы. В попытках собрать свой первый проект я с горя включил в него чуть ли не все DLL-файлы, которые шли с ObjectARX. Плохой способ – так делать не надо.

Ну, это вопрос не ко мне. Я только могу сказать, что в начале примеров обычно идет перечисление используемых пространств имен – скажем, так:


То, что начинается со слова «Autodesk», – это и есть те дроиды пространства имен, которые мы ищем. Теперь осталось разыскать контейнеры, которые их содержат. Исчерпывающего перечня сопоставлений я найти не смог, поэтому все проверялось методом научного тыка. Если есть более правильный способ, было бы интересно его узнать…

А пока – вот список DLL-файлов, которые я использую в проекте, и содержащихся в них пространств имен:


Теперь в любом месте этого файла можно вместо Autodesk.AutoCAD.ApplicationServices.Application писать acadApp .

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

2.3. Написать код плагина

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

Таким образом, всего необходимо добавить три ссылки:



UPD. 09.04.2018. Важное дополнение от lasteran: В новых версиях (предположительно начиная с AutoCAD 2013) класс CommandMethod содержится не в AcDBMgd.dll, а в AcCoreMgd.dll, так что придётся добавить ссылку ещё и на эту библиотеку. Учтите это, если работаете с новой версией!

Затем мы объявляем класс Commands . Именно он и будет «отправной точкой» плагина. Наш класс унаследован от интерфейса IExtensionApplication , поэтому в нем могут быть реализованы методы Initialize и Terminate . Первый из них автоматически выполняется при загрузке плагина, второй – при выгрузке.

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

Почитать поподробнее про методы Initialize и Terminate можно тут (rus) и там (англ.).

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

После сборки этого проекта у нас получится готовый к употреблению плагин.

2.4. Загрузить созданный плагин

Нужно запустить AutoCAD и выполнить команду «NETLOAD»:




Затем в открывшемся окне указать путь к файлу плагина:




Если при загрузке плагина произошла критическая ошибка, она будет выведена в консоль AutoCAD:


если плагин не смог загрузиться из-за ошибки, то перед тестированием очередного (исправленного) варианта нужно закрыть и заново запустить AutoCAD. В противном случае он может отказаться загружать плагин, даже если ошибок в коде уже не будет.

Теперь, когда плагин загружен, можно выполнить нашу тестовую команду:




… и увидеть результат:


Работает. Теперь можно закрывать AutoCAD.

2.5. Отладить плагин (при необходимости)

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

alt

Мы рассматривали LISP-приложения для AutoCAD. Теперь давайте разберёмся, как внедрить LISP в работу.

Для Автокада доступны приложения со следующим расширением файла: *.arx, *.crx, *.lsp, *.dvb, *.dbx, *.vlx, *.fas. Рассмотрим на примере ЛИСПа, который позволяет выравнивать текст относительно указанной точки по оси X или Y (скачать файл «Выравнивание текста .lsp»).

Как установить файл *.lsp в Автокад?

1. Перейдите во вкладку «Управление». На панели «Приложения» выберите команду «Загрузить приложение». Воспользуйтесь командной строй в Автокаде и введите «_appload».

2. Откроется диалоговое окно «Загрузка/выгрузка приложений». Найдите подходящий файл с расширением *.lsp или др.

Рис.2 – Автозагрузка приложения для Автокада

3. После проделанных действий нажмите кнопку «Загрузить».

Как запустить команду приложения lisp?

В AutoCAD lisp-команды посмотреть нельзя. Следует отталкиваться от исходного файла, который был загружен в программу.

Файл скрипта можно открыть через обычный «Блокнот». В верхней части этого текстового документа разработчики оставляют необходимую информацию для работы. В том числе название команды, которая будет запускать ЛИСП. В данном примере это «z-text-align», поэтому в командную строку нужно вводить именно такой запрос для вызова инструмента.

Рис. 4 – Название команды, которая запускает LISP в Автокаде

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

Как подгрузить lisp в Автокад LT?

Как установить лисп в Автокад - понятно. Но как его загрузить в схожие программы, например, Автокад Electrical/Mechanical?

К сожалению, приложения, написанные на AutoLISP, работают только на полной версии программы AutoCAD. Поэтому такие скрипты нельзя внедрить в AutoCAD LT или др. версии.

Исключением могут являться специализированные приложения типа LT Extender и подобные ему, которые были разработаны с целью запуска файлов *.lsp или *.arx непосредственно в среде Автокад LT.

Рассмотрим создание нового модуля ПЛК OptiLogic L CPU3, который состоит из следующих блоков: «Контакты питания», «Дискретные и аналоговые входы», «Дискретные выходы», Ethernet, RS-485 Com1, RS-485 Com2, USB.

Autodesk Electrical

Для добавления нового модуля в базу данных ПЛК на панели «Другие инструменты» вкладки «Схема» запустите «Редактор файлов базы данных ПЛК». В открывшемся окне нажмите кнопку «Новый модуль».

Autodesk Electrical

В окне «Новый модуль» введите информацию в соответствующие поля: изготовитель – КЭАЗ, серия – OptiLogic L, тип серии – CPU3, код – OptiLogic L CPU3, описание – CPU3 ГЖИК 421243.002-02, тип модуля – модуль процессорный, базовая адресация – подсказка, номинальное значение – 28.8 В, 250 мА, клеммы – 49, адресуемые точки – 28.

Autodesk Electrical

Autodesk Electrical

Клеммы питания

Для подключения питания к модулю ПЛК используются две клеммы. Первая должна содержать информацию о модуле (ПО, каталожные данные и др.) и информацию о клемме (номер и имя сигнала). Вторая клемма содержит только информацию о клемме.

В окне «Редактор файлов базы данных ПЛК» в списке типов клемм выберите первую клемму и в контекстном меню нажмите «Редактировать клемму».

Autodesk Electrical

В окне «Выбор информации о клемме» в списке «Категория» выберите «Верхняя клемма». В окне «Типы для категории Верхняя клемма» выберите «Модуль – Информация – Клемма – Точка – Провод – Левый», нажмите «ОК».

Autodesk Electrical

В полях «Значение атрибута» введите: TAG – A%N (A порядковый номер), TERM – 1, TEDMDESС - +24.

Autodesk Electrical

В списке типов клемм выберите вторую клемму и в контекстном меню «Редактировать клемму».

В списке «Категория» выберите «Клемма». В окне «Типы для категории Клемма» выберите «Клемма – Точка – Провод – Левый», нажмите «ОК».

Autodesk Electrical

В поле «Разрыв после»поставьте галочку (щелкните по полю) – разрыв модуля после клемм питания. В полях «Значение атрибута» введите: TERM – 2, TEDMDESK – -24.

Autodesk Electrical

Дискретные входы (DI)

Autodesk Electrical

Блок «Дискретные входы» содержит две клеммы COM и 12 адресных (программируемых) точек.

Для 3-ей и 12-ой клемм в списке типов клемм выберите клемму и в контекстном меню нажмите «Редактировать клемму». В списке «Категория» выберите «Клемма». В окне «Типы для категории Клемма» выберите «Клемма – Точка – Провод – Правый», нажмите «ОК».

В полях «Значение атрибута» введите TERM – 3(или 12), TEDMDESС – COM.

В AutoCAD Electrical принято, что к входам провода подключаются сверху, а к выходам – снизу. Для подключения входов снизу нужно создать свое УГО входа и добавить его в БД ПЛК.

  • Откройте VP1WAWD.dwg (Ввод – Точка ввода / вывода – Провод – Левый и правый).
  • Удалите атрибуты X2TERM_R, TERM_R, TERMDESC_R.
  • Переименуйте: X2TERM_L -> X2TERM_, TERM_L -> TERM_, TERMDESC_L -> TERMDESC_.
  • Сохраните как VP1WAWR.dwg.

В папке C:\Users\user\Documents\Acade (версия)\ AeData\ru-RU\PLC скопируйте VP1D-AW.bmp и сохраните с именем VP1WAWR.bmp.

В окне «Редактор файлов базы данных ПЛК» нажмите кнопку «Параметры».

В окне «Параметры клеммы» выберите «Ввод – Точка ввода / вывода – Провод – Левый и правый», в контекстном меню «Копировать строку», затем «Новая строка»и «Вставить строку».

Выберите скопированную строку и исправьте:

  • Имя файла клеммной колодки – VP1WAWR.
  • Уникальное описание – «Ввод – Точка ввода / вывода – Провод – Правый».
  • Имя файла растрового изображения для образца – VP1WAWR.

Autodesk Electrical

Выберите с 4-ой по 11-ю и с 13-ой по 16-ю клеммы и в контекстном меню «Редактировать клемму». В списке «Категория» выберите «Ввод». В окне «Типы для категории Ввод» выберите «Ввод – Точка ввода / вывода – Провод – Правый», нажмите «ОК».

В полях «Значение атрибута» введите:

Autodesk Electrical

Аналоговые входы (AI)

Autodesk Electrical

Блок «Аналоговые входы» содержит 8 адресных (программируемых) точек.

Выберите с 17-ой по 24-ю клеммы и в контекстном меню «Редактировать клемму».

В списке «Категория» выберите «Ввод». В окне «Типы для категории Ввод» выберите «Ввод – Точка ввода / вывода – Провод – Правый», нажмите «ОК».

  • В поле «Коэффициент изменения промежутка» для 17-й клеммы введите 13.
  • Для 19-й, 21-й и 23-й клемм введите 2.

Для 24-й клеммы в поле «Разрыв после» поставьте галочку (щелкните по полю) – разрыв модуля после дискретных и аналоговых входов.

В полях «Значение атрибута» введите:

Autodesk Electrical

Дискретные выходы (DO)

Autodesk Electrical

Блок «Дискретные выходы» содержит одну клемму COM и 8 адресных (программируемых) точек.

В списке «Категория» выберите «Вывод». В окне «Типы для категории Вывод» выберите «Вывод – Точка ввода / вывода – Провод – Правый», нажмите «ОК».

Autodesk Electrical

Для 33-й клеммы в поле «Разрыв после» поставьте галочку (щелкните по полю) – разрыв модуля после дискретных выходов.

В поле «Коэффициент изменения промежутка» введите для 30-й клеммы 2.5, 31-й клеммы – 3, 32-й клеммы – 4, 33-й клеммы – 2.5.

В полях «Значение атрибута» введите:

Для 29-й клеммы в списке «Категория» выберите «Клемма». В окне «Типы для категории Клемма» выберите «Клемма – Точка – Провод – Правый», нажмите «ОК».

В поле «Коэффициент изменения промежутка» введите 4.

В полях «Значение атрибута» введите TERM – 29, TERMDESC – COM.

Autodesk Electrical

Клеммы Ethernet

Autodesk Electrical

Для первой клеммы модуля Ethernet откройте VP1 – W.dwg. Добавьте атрибут DESCA. Сохраните файл с именем VP1 – W-DESCA.dwg.

В окне «Редактор файлов базы данных ПЛК» нажмите кнопку «Параметры».

В окне «Параметры клеммы» добавьте строку со следующими данными:

  • Имя файла клеммной колодки – VP1—W-DESCA.
  • Категория – Клемма.
  • Уникальное описание – Клемма – Точка – Провод – Правый-DESCA.

Autodesk Electrical

Для 34-й клеммы в списке «Категория» выберите «Клемма». В окне «Типы для категории Клемма» выберите «Клемма – Точка – Провод – Правый-DESCA», нажмите «ОК».

В полях «Значение атрибута» введите: DESCA – Ethernet, TERM – 34, TERMDESC – TxD+.

Autodesk Electrical

Для клемм 35-37 в списке «Категория» выберите «Клемма». В окне «Типы для категории Клемма» выберите «Клемма – Точка – Провод – Правый», нажмите «ОК».

В полях «Значение атрибута» введите:

  • Для 35-й клеммы: TERMDESC – TxD-, TERM – 35.
  • Для 36-й клеммы: TERMDESC – RxD+, TERM – 36.
  • Для 37-й клеммы: TERMDESC – RxD-, TERM – 37.

Для 37-й клеммы в поле «Разрыв после» поставьте галочку (щелкните по полю) – разрыв модуля после группы контактов Ethernet.

Autodesk Electrical

Клеммы RS-485 Com1

Autodesk Electrical

В полях «Значение атрибута» введите: DESCA – RS-485 Com1, TERMDESC – GND, TERM – 38.

Для клемм 39-41 в списке «Категория» выберите Клемма. В окне «Типы для категории Клемма» выберите «Клемма – Точка – Провод – Правый», нажмите «ОК».

В полях «Значение атрибута» введите:

  • Для 39-й клеммы: TERMDESC – B, TERM – 39.
  • Для 40-й клеммы: TERMDESC – A, TERM – 40.
  • Для 41-й клеммы: TERMDESC – +5V, TERM – 41.

Для 41-й клеммы в поле «Разрыв после» поставьте галочку (щелкните по полю) – разрыв модуля после группы контактов RS-485 Com1.

Autodesk Electrical

Клеммы RS-485 Com2

Autodesk Electrical

Для 42-й клеммы в списке «Категория» выберите Клемма. В окне «Типы для категории Клемма» выберите «Клемма – Точка – Провод – Правый-DESCA», нажмите «ОК».

В полях «Значение атрибута» введите: DESCA – RS-485 Com2, TERMDESC – GND, TERM – 42.

Для клемм 43-45 в списке «Категория» выберите Клемма. В окне «Типы для категории Клемма» выберите «Клемма – Точка – Провод – Правый», нажмите «ОК».

В полях «Значение атрибута» введите:

  • Для 43-й клеммы: TERMDESC – B, TERM – 43.
  • Для 44-й клеммы: TERMDESC – A, TERM – 44.
  • Для 45-й клеммы: TERMDESC – +5V, TERM – 45.

Для 45-й клеммы в поле Разрыв после поставьте галочку (щелкните по полю) – разрыв модуля после группы контактов RS-485 Com2.

Autodesk Electrical

Клеммы USB

Autodesk Electrical

Для 46-й клеммы в списке «Категория» выберите «Клемма». В окне «Типы для категории Клемма» выберите «Клемма – Точка – Провод – Правый-DESCA», нажмите «ОК».

В полях «Значение атрибута» введите: DESCA – USB, TERM – 48, TERMDESC – +5V.

Для клемм 47-49 в списке «Категория» выберите Клемма. В окне «Типы для категории Клемма» выберите «Клемма – Точка – Провод – Правый», нажмите «ОК».

В полях «Значение атрибута» введите:

Autodesk Electrical

О размещении добавленного в базу данных модуля ПЛК читайте в следующей статье.

В этом уроке мы поговорим о том, где скачать СПДС модуль для Автокад 2014, 2015, 2016, 2017, 2018, 2019, 2020 и как его установить.
Вот какие нюансы я рассмотрю:

Установщик для любой версии СПДС, начиная с 2011-й и заканчивая 2020-й, Вы можете скачать с нашего сайта по этой ссылке .

Видео версия урока:

Как выбрать, скольки битный СПДС модуль Вам установить.

Распаковав архив, Вам нужно будет выбрать нужный дистрибутив для СПДС по 2 критериям:

  1. Версия Вашего AutoCAD
  2. Битность (разрядность) Вашей операционной системы Windows.

С первым пунктом, думаю, проблем не возникнет. Что же касается битности системы, то ее проверяют так:

Как узнать битность для СПДС Автокад

СПДС 32 или 64 бита

2. Установка СПДС модуля.

Теперь обсудим, как установить выбранный СПДС модуль в Автокад.

Установка СПДС модуля в Автокад

Вкладка СПДС на ленте Автокад

Обязательно получите мой более развернутый базовый Видео-курс “AutoCAD за 40 минут”, нажав по картинке ниже:


Свойства в Автокаде. Панель и копирование свойств.

Системные требования Автокад (AutoCAD)

В этом уроке мы показываем, каким системным требованиям должен удовлетворять Ваш компьютер или ноутбук, чтобы в нем работать комфортно в Автокаде. Видео версия урока: Освой AutoCAD за 40 минут пройдя базовый курс от Максима Фартусова. Текстовая версия урока: Пожалуй одним из самых популярных вопросов, на ряду с таким, как скачать программу AutoCAD, является вопрос связанные с системными требованиями программы AutoCAD. […]

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