Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Программирование для AutoCAD 2013-2015

Покупка
Артикул: 816354.01.99
Доступ онлайн
439 ₽
В корзину
Данная книга рассказывает об особенностях программирования для новых версий 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, желающих автоматизировать свою работу, студентов, а также для программистов, занимающихся разработкой плагинов и внешних модулей.
Полещук, Н. Н. Программирование для AutoCAD 2013-2015 : практическое пособие / Н. Н. Полещук. - 2-е изд. - Москва : ДМК Пресс, 2023. - 464 с. - ISBN 978-5-89818-329-5. - Текст : электронный. - URL: https://znanium.com/catalog/product/2102616 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Программирование 
для  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приложений.

Доступ онлайн
439 ₽
В корзину