Программирование для AutoCAD 2013-2015
Покупка
Тематика:
Программирование и алгоритмизация
Издательство:
ДМК Пресс
Автор:
Полещук Николай Николаевич
Год издания: 2023
Кол-во страниц: 464
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-89818-329-5
Артикул: 816354.01.99
Данная книга рассказывает об особенностях программирования для новых версий AutoCAD (2013-2015). В ней разъясняется процесс написания программного кода на четырех языках: C++, C#, LISP, VBA. Рассмотрены среды разработки Microsoft Visual Studio 2010-2013, Microsoft Visual Basic 7.1, а также библиотеки ObjectARX 2013-2015, AutoCAD .NET API 2013-2015. Описан механизм проектирования интеллектуальных объектов (custom objects), которые становятся новыми примитивами AutoCAD. Методически книга может использоваться и при работе с предыдущими версиями AutoCAD. Издание предназначено для опытных пользователей AutoCAD, желающих автоматизировать свою работу, студентов, а также для программистов, занимающихся разработкой плагинов и внешних модулей.
- Полная коллекция по информатике и вычислительной технике
- ДМК Пресс. Информационные системы и технологии
- ДМК Пресс. ИТ-технологии для обучающихся
- ДМК Пресс. Строительство и ремонт
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для обучающихся (сводная)
- Интермедиатор. Строительство и ремонт (сводная)
- Программирование
- Программирование и алгоритмизация
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Программирование для AutoCAD 2013–2015 Н. Н. Полещук Ìîñêâà, 2023 2-е издание, электронное
УДК 004.438AutoCAD ББК 32.973.39 П49 П49 Полещук, Николай Николаевич. Программирование для AutoCAD 2013–2015 / Н. Н. Полещук. — 2-е изд., эл. — 1 файл pdf : 464 с. — Москва : ДМК Пресс, 2023. — Систем. требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный. ISBN 978-5-89818-329-5 Данная книга рассказывает об особенностях программирования для новых версий AutoCAD (2013–2015). В ней разъясняется процесс написания программного кода на четырех языках: C++, C#, LISP, VBA. Рассмотрены среды разработки Microsoft Visual Studio 2010–2013, Microsoft Visual Basic 7.1, а также библиотеки ObjectARX 2013–2015, AutoCAD .NET API 2013–2015. Описан механизм проектирования интеллектуальных объектов (custom objects), которые становятся новыми примитивами AutoCAD. Методически книга может использоваться и при работе с предыдущими версиями AutoCAD. Издание предназначено для опытных пользователей AutoCAD, желающих автоматизировать свою работу, студентов, а также для программистов, занимающихся разработкой плагинов и внешних модулей. УДК 004.438AutoCAD ББК 32.973.39 Электронное издание на основе печатного издания: Программирование для AutoCAD 2013–2015 / Н. Н. Полещук. — Москва : ДМК Пресс, 2015. — 462 c. — ISBN 978-5-97060-066-5. — Текст : непосредственный. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации. ISBN 978-5-89818-329-5 © Полещук Н. Н., 2015 © Оформление, издание, ДМК Пресс, 2015
Содержание Предисловие .................................................................10 Глава 1. Языки программирования и объектная модель ........12 Обзор средств разработки ..................................................................... 13 Об объектной модели AutoCAD ............................................................... 14 Объекты и коллекции ...................................................................... 14 Интерфейсы ................................................................................... 19 Свойства ........................................................................................ 19 Методы .......................................................................................... 19 События ......................................................................................... 19 Простой пример использования объектной модели ....................... 19 Особенности программирования для AutoCAD 2015 ............................... 20 Доверенные каталоги ............................................................................. 20 О совместимости ................................................................................... 21 Глава 2. C++ и ObjectARX ..................................................24 Структура пакета ObjectARX .................................................................... 26 Интеграция справочной системы ObjectARX с Visual Studio ............. 27 Настройка проекта в среде Visual Studio ................................................. 27 Создание проекта в Visual Studio 2010 (AutoCAD 2013–2014) .......... 27 Настройка свойств проекта ............................................................ 30 Создание проекта в Visual Studio 2012 (AutoCAD 2015) ................... 36 Пример простого приложения ........................................................ 37 Мастера ObjectARX ................................................................................. 43 Установка мастеров ObjectARX ....................................................... 44 Виды ARX-приложений, создаваемых с помощью мастера ObjectARX ....................................................................................... 46 Поддержка разных версий AutoCAD ........................................................ 52 Создание команд и функций ................................................................... 53 Структура файла acrxEntryPoint.cpp ................................................ 53 Пример создания команды USERMSG ............................................ 57 Пример создания LISP-функции callmymsg .................................... 57 Контекст ......................................................................................... 58 Загрузка и выгрузка ARX-приложений .................................................... 58 Библиотеки ............................................................................................ 59 Поставляемые примеры ......................................................................... 60
Содержание 4 Использование отладчика ...................................................................... 61 Выполнение команд AutoCAD ................................................................. 63 Примеры использования acedCommand и acedCmd ....................... 64 Особенности AutoCAD 2015 ............................................................ 68 Пример использования acedCommandS ......................................... 68 Пример использования acedCommandC ......................................... 69 Структура resbuf и буфер результатов .................................................... 70 Построение примитивов ......................................................................... 72 Использование DXF-кодов .............................................................. 73 Доступ к базе чертежа ............................................................................ 74 Использование классов примитивов ...................................................... 77 Передача данных между ARX и LISP ........................................................ 82 Геометрические вычисления ................................................................... 83 Работа с Windows API .............................................................................. 88 Окно MessageBox ........................................................................... 88 Пояснение к использованию acedGetArgs ...................................... 91 Использование MFC ............................................................................... 92 Индикатор в строке состояния ....................................................... 93 Модальные диалоговые окна .......................................................... 95 Немодальные диалоговые окна .................................................... 104 Отступление о DCL-окнах ..................................................................... 108 ObjectDBX ............................................................................................. 110 .NET и управляемый код ....................................................................... 111 Поддержка управляемого кода ..................................................... 111 Глава 3. Интеллектуальные объекты ................................116 Особенности DBX-приложений ............................................................. 117 Прокси-объекты ................................................................................... 117 Заготовка DBX-приложения с помощью мастера .................................. 120 Структура файла acrxEntryPoint.cpp .............................................. 120 Заготовка класса нового объекта ................................................. 121 Некоторые особенности заготовки класса объекта ...................... 124 Доработка проекта Custdbx .................................................................. 127 Новый вариант файла Ship.h......................................................... 129 Конструкторы ............................................................................... 131 Метод storePoints ......................................................................... 132 Метод subWorldDraw ..................................................................... 133 Метод subExplode ......................................................................... 134 Метод subTransformBy .................................................................. 135 Метод dwgOutFields ...................................................................... 136
Содержание 5 Метод dwgInFields ........................................................................ 137 Метод dxfOutFields ....................................................................... 138 Метод dxfInFields .......................................................................... 139 Метод subGetGripPoints ................................................................ 141 Метод subMoveGripPointsAt .......................................................... 142 Метод subList ............................................................................... 143 Настройки Custdbx перед построением ........................................ 144 ARX-проект Custarx ............................................................................... 145 Команда CSHIP ............................................................................. 146 Класс ShipJig ................................................................................ 148 Глава 4. .NET и плагины (C#) ...........................................153 Платформа .NET Framework .................................................................. 154 .NET-приложения ................................................................................. 155 Операции с реестром ................................................................... 155 Конфигурационный файл acad.exe.config ..................................... 163 Документация к AutoCAD .NET API ........................................................ 165 Каркас приложения с использованием мастера Autodesk ..................... 167 Новый проект ............................................................................... 167 Шаблоны команд и LISP-функций ................................................. 169 Прежде чем приступить к написанию плагина «с нуля», без мастера ..... 171 Создание проекта «с нуля» без использования мастера Autodesk ......... 173 Создание проекта ........................................................................ 173 Ресурсы для локализации ............................................................ 175 Написание кода ............................................................................ 181 Результаты ................................................................................... 188 Локальная и удаленная отладка ............................................................ 189 Общая идея .................................................................................. 190 Настройка .................................................................................... 191 Запуск .......................................................................................... 193 Единый код для разных версий ............................................................. 194 Работа с Database: с использованием транзакций и без них ................. 197 Редактирование базы данных чертежа без использования транзакции ................................................................................... 197 Редактирование базы данных чертежа с использованием транзакции ................................................................................... 203 О блокировке документа ....................................................................... 207 Интерфейс IDisposable ......................................................................... 207 Работа со стилями ................................................................................ 209 Размерный стиль .......................................................................... 209
Содержание 6 Стиль мультивыносок ................................................................... 227 Стиль мультилиний ....................................................................... 235 Стиль точек .................................................................................. 238 Стиль таблиц ................................................................................ 239 Текстовый стиль ........................................................................... 266 Особенности программного запуска команд в AutoCAD 2015 ............... 271 Пример использования Command ................................................ 271 Пример использования CommandAsync ....................................... 271 Графический интерфейс. Windows Forms и WPF .................................... 273 Windows Forms ...................................................................................... 274 Модальное окно ........................................................................... 274 Немодальное окно ........................................................................ 276 «Прозрачное» добавление стандартным классам AutoCAD недостающего им функционала ............................................................ 277 Размещение плагинов. Доверенные каталоги ....................................... 281 Программная загрузка и выгрузка плагинов AutoCAD ........................... 282 Использование AcCoreConsole ............................................................. 284 Глава 5. AutoLISP и DCL ..................................................285 Интерпретатор LISP .............................................................................. 286 Программа и комментарии ................................................................... 288 Символы............................................................................................... 288 Загрузка программы ............................................................................ 291 Перечень основных функций ................................................................ 292 Зарезервированные символы .............................................................. 311 Примеры программ .............................................................................. 313 Среда разработки приложений ............................................................. 314 Обзор меню.................................................................................. 316 Панели инструментов Visual LISP .................................................. 329 Написание и проверка синтаксиса программ в текстовом редакторе среды Visual LISP ......................................................... 330 Разработка приложений на языке LISP ................................................. 331 Средства отладки программ ......................................................... 331 Сообщения о неверном типе ........................................................ 333 Проекты и FAS-приложения .......................................................... 334 VLX-приложения ........................................................................... 337 Выполнение команд AutoCAD из программы пользователя ................... 342 Программа рисования штампа чертежа........................................ 343 Особенности программного выполнения команд в AutoCAD 2015 ............................................................................. 346
Содержание 7 Оформление функций пользователя в виде новых команд AutoCAD ...... 347 Работа с примитивами.......................................................................... 348 Доступ к табличным данным и неграфическим объектам ...................... 350 Расширенные данные ........................................................................... 351 Другие способы хранения данных......................................................... 354 ActiveX .................................................................................................. 355 Функции, реализующие ActiveX .................................................... 355 Новые типы данных ...................................................................... 356 Работа с документами и примитивами ......................................... 357 Работа с меню .............................................................................. 360 Реакторы ...................................................................................... 362 Применение COM ................................................................................. 369 Создание документа Word ............................................................ 370 Пример формирования документа ............................................... 378 Язык DCL .............................................................................................. 380 Директивы .................................................................................... 381 Директива описания диалога ....................................................... 384 Элементы диалога ................................................................................ 387 Типы элементов ............................................................................ 387 Элементы с кнопкой выхода ......................................................... 388 Атрибуты элементов ..................................................................... 388 Открытие и закрытие диалоговых окон ................................................. 391 Функция load_dialog ..................................................................... 391 Функция unload_dialog .................................................................. 391 Функция new_dialog ...................................................................... 392 Функция start_dialog ..................................................................... 392 Функция done_dialog .................................................................... 393 Функция term_dialog ..................................................................... 393 Пример вызова диалогового окна ................................................ 393 Функции, работающие с элементами диалога ...................................... 394 Функция action_tile ....................................................................... 394 Функция mode_tile ........................................................................ 395 Функция set_tile ............................................................................ 396 Функция get_tile ............................................................................ 400 Функция get_attr ........................................................................... 400 Функция client_data_tile ................................................................ 401 Переменные действия .................................................................. 401 Функции, работающие со списками ...................................................... 402 Функция start_list .......................................................................... 402 Функция add_list ........................................................................... 403
Содержание 8 Функция end_list ........................................................................... 403 Функции, работающие с графическими элементами ............................ 403 Функция start_image ..................................................................... 403 Функция end_image ...................................................................... 404 Функция fill_image ........................................................................ 404 Функция slide_image ..................................................................... 405 Функция vector_image................................................................... 405 Функция dimx_tile ......................................................................... 405 Функция dimy_tile ......................................................................... 406 Дополнительные приемы программирования диалоговых окон ............ 406 Временный выход из диалогового окна ........................................ 406 Вложенные диалоговые окна ........................................................ 408 Применение паролей ................................................................... 409 Интеграция приложений ....................................................................... 410 Глава 6. VBA .................................................................411 Выполнение отдельных выражений VBA................................................ 412 Использование ActiveX ......................................................................... 412 Среда VBA ............................................................................................ 413 Меню ............................................................................................ 413 Панели инструментов ................................................................... 414 Проекты и их элементы ......................................................................... 415 Макросы....................................................................................... 417 Модули и процедуры .................................................................... 419 Формы ......................................................................................... 419 Типы данных ......................................................................................... 422 Обычные типы .............................................................................. 422 Массивы ...................................................................................... 423 Специальные типы ....................................................................... 423 Область видимости ...................................................................... 424 Константы и перечисления ........................................................... 425 Простой макрос .................................................................................... 425 Выполнение команд AutoCAD ............................................................... 428 Создание формы .................................................................................. 431 Элементы управления .................................................................. 431 Отображение и скрытие диалогового окна ................................... 433 Пример приложения с модальным диалоговым окном .......................... 433 Модуль программного кода .......................................................... 433 Типы процедур ............................................................................. 435 Добавление программного кода работы с формой ....................... 435
Содержание 9 Сжатие приложения.............................................................................. 436 Защита приложения ............................................................................. 436 Автоматическая загрузка приложений .................................................. 439 Обработка ошибок ................................................................................ 439 Оператор On Error ........................................................................ 440 Объект Err .................................................................................... 440 Отладка ................................................................................................ 441 Передача данных между VBA и LISP-средой ......................................... 443 Работа с документами .......................................................................... 444 Имена открытых чертежей ............................................................ 444 Доступ к неактивному документу .................................................. 445 Расширенные данные и словари .................................................. 446 Работа с меню ...................................................................................... 446 Получение наименований меню ................................................... 447 Динамическое изменение контекстного меню .............................. 448 Применение Windows API ...................................................................... 449 Литература..................................................................451 Алфавитный указатель ..................................................453
Предисловие Тема программирования в системе AutoCAD не нова, и ей посвящено в мире дватри десятка книг. Для того чтобы создать программу, которая запускается в среде AutoCAD и корректно работает в ней, необходимы не только знания обычного программиста, но и знания опытного пользователя, помноженные на владение графическим редактором и объектной моделью AutoCAD, нюансами интерфейса, контекстами приложения, документа. Автор написал по этой теме восемь книг, из них семь вышли на русском языке. Настоящая книга создана как обзор систем программирования, применяемых для приложений в среде AutoCAD, и является обновлением книги «AutoCAD: разработка приложений, настройка и адаптация», напечатанной в 2006 г. издательством «БХВ-Петербург». С момента выхода упомянутой книги прошло восемь лет и выпущено девять новых версий AutoCAD, причем версии 2008–2015, помимо 32-разрядных выпусков, имеют еще и 64-разрядные. Каждая версия приносит разработчику определенные проблемы, вызываемые несовместимостью или неполной совместимостью новых версий с приложениями, работавшими в более ранних версиях AutoCAD. Если это для читателя критично, то он должен с особой тщательностью подойти к выбору языка разработки. А иначе с каждой новой версией AutoCAD придется выпускать новую версию своего приложения. В данной книге упор сделан на три последние версии системы AutoCAD: 2013, 2014 и 2015 (самая новая в этом списке версия 2015 появилась в марте 2014 г.). Книга имеет 6 глав. Практические примеры к книге выложены на сайте издательства «ДМК Пресс». Глава 1 является обзорной. В ней приведены основные схемы работы приложений в среде AutoCAD и разбирается объектная модель AutoCAD. Здесь же рассмотрены вопросы совместимости приложений. Центральной можно назвать главу 2, в которой рассмотрен процесс разработки приложений на C++ с помощью библиотек ObjectARX. Это самый мощный инструмент для приложений под AutoCAD. На нем написана большая часть ядра системы. Следом идет глава 3, которая дополняет материал главы 2 сведениями об интересной теме – написании собственных примитивов для AutoCAD и проектировании их «интеллекта». Это можно сделать только на C++. В главе 4 изучается процесс написания управляемых приложений с помощью библиотек .NET Framework. Языков, которые используют .NET, много, и все они применимы, но мы ведем изложение на примере языка C#. В этой же главе рассмотрены такие интересные вопросы, как создание, размещение и совместимость плагинов, локальная и удаленная отладка, поддержка единого кода для разных версий. Глава 5 посвящена сведениям о языках AutoLISP и DCL, а также о среде разработки Visual LISP. Кратко разбираются некоторые приемы написания LISPприложений.