Как добавить модуль в автокад
Решил рассказать о своем опыте работы с 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.
2.5. Отладить плагин (при необходимости)
Процедура запуска плагина для отладки очень хорошо расписана в этом посте Tepliuk.
Мы рассматривали LISP-приложения для AutoCAD. Теперь давайте разберёмся, как внедрить LISP в работу.
Для Автокада доступны приложения со следующим расширением файла: *.arx, *.crx, *.lsp, *.dvb, *.dbx, *.vlx, *.fas. Рассмотрим на примере ЛИСПа, который позволяет выравнивать текст относительно указанной точки по оси X или Y (скачать файл «Выравнивание текста .lsp»).
Как установить файл *.lsp в Автокад?
1. Перейдите во вкладку «Управление». На панели «Приложения» выберите команду «Загрузить приложение». Воспользуйтесь командной строй в Автокаде и введите «_appload».
2. Откроется диалоговое окно «Загрузка/выгрузка приложений». Найдите подходящий файл с расширением *.lsp или др.
3. После проделанных действий нажмите кнопку «Загрузить».
Как запустить команду приложения lisp?
В AutoCAD lisp-команды посмотреть нельзя. Следует отталкиваться от исходного файла, который был загружен в программу.
Файл скрипта можно открыть через обычный «Блокнот». В верхней части этого текстового документа разработчики оставляют необходимую информацию для работы. В том числе название команды, которая будет запускать ЛИСП. В данном примере это «z-text-align», поэтому в командную строку нужно вводить именно такой запрос для вызова инструмента.
Далее следуйте указаниям командной строки и пошагово выполняйте запросы установленного скрипта.
Как подгрузить lisp в Автокад LT?
Как установить лисп в Автокад - понятно. Но как его загрузить в схожие программы, например, Автокад Electrical/Mechanical?
К сожалению, приложения, написанные на AutoLISP, работают только на полной версии программы AutoCAD. Поэтому такие скрипты нельзя внедрить в AutoCAD LT или др. версии.
Исключением могут являться специализированные приложения типа LT Extender и подобные ему, которые были разработаны с целью запуска файлов *.lsp или *.arx непосредственно в среде Автокад LT.
Рассмотрим создание нового модуля ПЛК OptiLogic L CPU3, который состоит из следующих блоков: «Контакты питания», «Дискретные и аналоговые входы», «Дискретные выходы», Ethernet, RS-485 Com1, RS-485 Com2, USB.
Для добавления нового модуля в базу данных ПЛК на панели «Другие инструменты» вкладки «Схема» запустите «Редактор файлов базы данных ПЛК». В открывшемся окне нажмите кнопку «Новый модуль».
В окне «Новый модуль» введите информацию в соответствующие поля: изготовитель – КЭАЗ, серия – OptiLogic L, тип серии – CPU3, код – OptiLogic L CPU3, описание – CPU3 ГЖИК 421243.002-02, тип модуля – модуль процессорный, базовая адресация – подсказка, номинальное значение – 28.8 В, 250 мА, клеммы – 49, адресуемые точки – 28.
Клеммы питания
Для подключения питания к модулю ПЛК используются две клеммы. Первая должна содержать информацию о модуле (ПО, каталожные данные и др.) и информацию о клемме (номер и имя сигнала). Вторая клемма содержит только информацию о клемме.
В окне «Редактор файлов базы данных ПЛК» в списке типов клемм выберите первую клемму и в контекстном меню нажмите «Редактировать клемму».
В окне «Выбор информации о клемме» в списке «Категория» выберите «Верхняя клемма». В окне «Типы для категории Верхняя клемма» выберите «Модуль – Информация – Клемма – Точка – Провод – Левый», нажмите «ОК».
В полях «Значение атрибута» введите: TAG – A%N (A порядковый номер), TERM – 1, TEDMDESС - +24.
В списке типов клемм выберите вторую клемму и в контекстном меню «Редактировать клемму».
В списке «Категория» выберите «Клемма». В окне «Типы для категории Клемма» выберите «Клемма – Точка – Провод – Левый», нажмите «ОК».
В поле «Разрыв после»поставьте галочку (щелкните по полю) – разрыв модуля после клемм питания. В полях «Значение атрибута» введите: TERM – 2, TEDMDESK – -24.
Дискретные входы (DI)
Блок «Дискретные входы» содержит две клеммы 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.
Выберите с 4-ой по 11-ю и с 13-ой по 16-ю клеммы и в контекстном меню «Редактировать клемму». В списке «Категория» выберите «Ввод». В окне «Типы для категории Ввод» выберите «Ввод – Точка ввода / вывода – Провод – Правый», нажмите «ОК».
В полях «Значение атрибута» введите:
Аналоговые входы (AI)
Блок «Аналоговые входы» содержит 8 адресных (программируемых) точек.
Выберите с 17-ой по 24-ю клеммы и в контекстном меню «Редактировать клемму».
В списке «Категория» выберите «Ввод». В окне «Типы для категории Ввод» выберите «Ввод – Точка ввода / вывода – Провод – Правый», нажмите «ОК».
- В поле «Коэффициент изменения промежутка» для 17-й клеммы введите 13.
- Для 19-й, 21-й и 23-й клемм введите 2.
Для 24-й клеммы в поле «Разрыв после» поставьте галочку (щелкните по полю) – разрыв модуля после дискретных и аналоговых входов.
В полях «Значение атрибута» введите:
Дискретные выходы (DO)
Блок «Дискретные выходы» содержит одну клемму COM и 8 адресных (программируемых) точек.
В списке «Категория» выберите «Вывод». В окне «Типы для категории Вывод» выберите «Вывод – Точка ввода / вывода – Провод – Правый», нажмите «ОК».
Для 33-й клеммы в поле «Разрыв после» поставьте галочку (щелкните по полю) – разрыв модуля после дискретных выходов.
В поле «Коэффициент изменения промежутка» введите для 30-й клеммы 2.5, 31-й клеммы – 3, 32-й клеммы – 4, 33-й клеммы – 2.5.
В полях «Значение атрибута» введите:
Для 29-й клеммы в списке «Категория» выберите «Клемма». В окне «Типы для категории Клемма» выберите «Клемма – Точка – Провод – Правый», нажмите «ОК».
В поле «Коэффициент изменения промежутка» введите 4.
В полях «Значение атрибута» введите TERM – 29, TERMDESC – COM.
Клеммы Ethernet
Для первой клеммы модуля Ethernet откройте VP1 – W.dwg. Добавьте атрибут DESCA. Сохраните файл с именем VP1 – W-DESCA.dwg.
В окне «Редактор файлов базы данных ПЛК» нажмите кнопку «Параметры».
В окне «Параметры клеммы» добавьте строку со следующими данными:
- Имя файла клеммной колодки – VP1—W-DESCA.
- Категория – Клемма.
- Уникальное описание – Клемма – Точка – Провод – Правый-DESCA.
Для 34-й клеммы в списке «Категория» выберите «Клемма». В окне «Типы для категории Клемма» выберите «Клемма – Точка – Провод – Правый-DESCA», нажмите «ОК».
В полях «Значение атрибута» введите: DESCA – Ethernet, TERM – 34, TERMDESC – TxD+.
Для клемм 35-37 в списке «Категория» выберите «Клемма». В окне «Типы для категории Клемма» выберите «Клемма – Точка – Провод – Правый», нажмите «ОК».
В полях «Значение атрибута» введите:
- Для 35-й клеммы: TERMDESC – TxD-, TERM – 35.
- Для 36-й клеммы: TERMDESC – RxD+, TERM – 36.
- Для 37-й клеммы: TERMDESC – RxD-, TERM – 37.
Для 37-й клеммы в поле «Разрыв после» поставьте галочку (щелкните по полю) – разрыв модуля после группы контактов Ethernet.
Клеммы RS-485 Com1
В полях «Значение атрибута» введите: 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.
Клеммы RS-485 Com2
Для 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.
Клеммы USB
Для 46-й клеммы в списке «Категория» выберите «Клемма». В окне «Типы для категории Клемма» выберите «Клемма – Точка – Провод – Правый-DESCA», нажмите «ОК».
В полях «Значение атрибута» введите: DESCA – USB, TERM – 48, TERMDESC – +5V.
Для клемм 47-49 в списке «Категория» выберите Клемма. В окне «Типы для категории Клемма» выберите «Клемма – Точка – Провод – Правый», нажмите «ОК».
В полях «Значение атрибута» введите:
О размещении добавленного в базу данных модуля ПЛК читайте в следующей статье.
В этом уроке мы поговорим о том, где скачать СПДС модуль для Автокад 2014, 2015, 2016, 2017, 2018, 2019, 2020 и как его установить.
Вот какие нюансы я рассмотрю:
Установщик для любой версии СПДС, начиная с 2011-й и заканчивая 2020-й, Вы можете скачать с нашего сайта по этой ссылке .
Видео версия урока:
Как выбрать, скольки битный СПДС модуль Вам установить.
Распаковав архив, Вам нужно будет выбрать нужный дистрибутив для СПДС по 2 критериям:
- Версия Вашего AutoCAD
- Битность (разрядность) Вашей операционной системы Windows.
С первым пунктом, думаю, проблем не возникнет. Что же касается битности системы, то ее проверяют так:
2. Установка СПДС модуля.
Теперь обсудим, как установить выбранный СПДС модуль в Автокад.
Обязательно получите мой более развернутый базовый Видео-курс “AutoCAD за 40 минут”, нажав по картинке ниже:
В этом уроке мы показываем, каким системным требованиям должен удовлетворять Ваш компьютер или ноутбук, чтобы в нем работать комфортно в Автокаде. Видео версия урока: Освой AutoCAD за 40 минут пройдя базовый курс от Максима Фартусова. Текстовая версия урока: Пожалуй одним из самых популярных вопросов, на ряду с таким, как скачать программу AutoCAD, является вопрос связанные с системными требованиями программы AutoCAD. […]
Читайте также: