C# и AutoCAD. Некоторые приемы работыИсточник: habrahabr n00buK
Цель данной статьи.Целью данной статьи является рассмотрение некоторых приемов работы в связке Autocad + C#.
0. Несколько слов о .net API и ObjectARX в частности.Вот что говорит нам .Net Developer Guide (в переводе bushman, см. литературу): AutoCAD .NET API позволяет вам управлять приложением AutoCAD и файлами чертежей на программном уровне с использованием доступных сборок или библиотек. Эти объекты могут быть доступны для множества различных языков программирования и всевозможных сред разработки программного обеспечения. Для работы с Autocad можно использовать библиотеки напрямую из Autocad (как это сделано в "Начало работы с Autocad с помощью C#"), либо использовать ObjectARX.
ObjectARX - это большой набор библиотек, предназначенный для разработки приложений для AutoCAD в среде программирования Microsoft Visual C++. Сам AutoCAD разработан с использованием ObjectARX. "Чистый" ObjectARX предназначен для работы с Autocad с помощью C++, однако часть библиотек предстваляют собой ни что иное, как обертки для классов ObjectARX для работы через .net. ObjectARX общедоступен и его можно скачать с сайта Autodesk. Внимание! Необходимо использовать одинаковые версии ObjectARX и Autocad! Совместимость работы библиотеки одной версии с Autocad другой версии не гарантируется. Так что при изменении версии используемого Autocad необходимо перекомпилировать Вашу программу с новыми библиотеками! Кроме того, советую обратить внимание на совместимость различных версий ObjectARX и MS VS! Все описанные ниже примеры написаны для Autocad 2009, соответственно используется ObjectARX 2009, MS Visual Studio 2008.
1. Способы взаимодействия Autocad и C# посредством .Net API.Существует два основных способа взаимодействия Autocad и C#:
В данной статье будет использовать второй способ.
2. Возможности ObjectARXНабор библиотек ObjectARX представляет разработчику огромный набор инструментов как для работы чертежами, так и с окнами Autocad. Основные возможности предоставляемые ObjectARX:
и т.д. Подробнее о ObjectArx можно почитать в документации (в папке ObjectARX\docs\), так же в составе документации по ObjectARX есть примеры (папка \ObjectARX\samples\).
3. ПримерыНиже в данной статье будет рассмотрено несколько примеров работы с Autocad и по каждому примеру будут даны небольшие комментарии. В программах используются 2 библиотеки: AcDbMgd.dll и AcMgd.dll из папки \ObjectARX\inc-win32\. Их необходимо добавить к Reference проекта C#. Для просмотра результата, необходимо в Autocad вызвать команду "netload" (без кавычек), загрузить получившуюся в результате компиляции dll-сборку и вызвать имя новой команды (addEntity и addBlock соответственно, регистр роли не играет).
3.1. Добавление новых примитивов в существующий чертеж
Код примера 1
Данный пример иллюстрирует основы добавления примитивов на чертеж, работы с их свойствами, работы с базой данных чертежа, добавления нового примитива в чертеж. После запуска команды получим в точке 0,0 симпатичную окружность синего цвета.
Результат примера 1
2. Создание блока и изменение его свойствПример немного посложнее: создадим новый блок и разместим его на чертеже. Для этого добавим новую функцию:
Код примера 2
Данный пример иллюстрирует процесс создания более сложных объектов - блоков. Процесс создания блоков следующий: 1) создаем определение блока (как элемент таблицы BlockTable) и добавляем его в таблицу блоков (не забываем проверить корректность имени блока); Все, блок готов.
Результат примера 2
Злоключение |