(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

C# и AutoCAD. Некоторые приемы работы

Источник: habrahabr
n00buK

Цель данной статьи.

Целью данной статьи является рассмотрение некоторых приемов работы в связке Autocad + C#. 
В основном буду опираться на статью "Начало работы с Autocad с помощью C#". В рамках данной статьи будут рассмотрены некоторые замечания по особенностям работы с Autocad с помощью SDK - ObjectARX. 

Сразу оговорюсь, что  НЕ  являюсь квалифицированным программистом, и увлекаюсь программированием только как хобби. Так что в комментариях прошу указать на неточности и ошибки в изложении материала.

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.
Кроме того, по этому же адресу можно скачать обширную документацию по SDK.

Внимание! Необходимо использовать одинаковые версии ObjectARX и Autocad! Совместимость работы библиотеки одной версии с Autocad другой версии не гарантируется. Так что при изменении версии используемого Autocad необходимо перекомпилировать Вашу программу с новыми библиотеками! Кроме того, советую обратить внимание на совместимость различных версий ObjectARX и MS VS! Все описанные ниже примеры написаны для Autocad 2009, соответственно используется ObjectARX 2009, MS Visual Studio 2008.

1. Способы взаимодействия Autocad и C# посредством .Net API.

Существует два основных способа взаимодействия Autocad и C#:

  • 1. Программа реализуется в виде отдельного исполняемого файла с работой с файлами Autocad через COM-интерфейсы библиотеки Autocad.Interpop.Common. Данный прием позволяет получить обычный исполняемый exe-файл, который будет работать с dwg-файлами через COM. Данный способ имеет свое право на существование, однако, весьма ограничен функционально из-за малого числа доступных способов "воздействия" на чертеж и не рекомендуется в большинстве случаев.
  • 2. В виде расширения (plugin) autocad. Результатом работы будет dll-файл, который подгружается в Autocad командой "netload" и определяет новые команды (операции) и/или новое поведение стандартных операций.

В данной статье будет использовать второй способ.

2. Возможности ObjectARX

Набор библиотек ObjectARX представляет разработчику огромный набор инструментов как для работы чертежами, так и с окнами Autocad.

Основные возможности предоставляемые ObjectARX:

  • создание нового файла чертежа;
  • редактирование существующих чертежей, которое включает в себя: редактирование примитивов, блоков, словарей чертежа (см. "Начало работы с Autocad с помощью C#"),
  • добавление новых команд;
  • изменение интерфейса Autocad (добавление новых кнопок, панелей, закладок);

и т.д.

Подробнее о 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) создаем и добавляем в определение блока примитивы и определения атрибутов блока;
3) создаем экземпляр блока (BlockReference) и добавляем его в базу данных того пространства, которое нас интересует (в примере - пространство модели);
4) задаем значения атрибутов.

Все, блок готов.

Результат примера 2

Злоключение

На этом поспешу закругляться. Всем спасибо за прочтение статьи, и напоминаю: с радостью рассмотрю все замечания, указание ошибок и просто критические комментарии! 
Так же прошу в комментариях указать, есть ли смысл писать далее об этой теме и интересует ли эта тема кого-нибудь.

Ссылки по теме


 Распечатать »
 Правила публикации »
  Обсудить материал в конференции Autodesk »
Обсудить материал в конференции Дизайн, графика, обработка изображений »
Написать редактору 
 Рекомендовать » Дата публикации: 31.07.2013 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
AutoCAD LT 2019 Commercial New Single-user ELD Annual Subscription
AutoCAD LT 2019 Commercial New Single-user ELD Annual Subscription PROMO
AutoCAD - mobile app Premium CLOUD Commercial New Single-user ELD Annual Subscription
Nero 2018 Platinum ESD
Quest Software. TOAD Xpert Edition
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование в AutoCAD
Компьютерный дизайн - Все графические редакторы
Программирование на Visual С++
Новые программы для Windows
Проект mic-hard - все об XP - новости, статьи, советы
 
Статьи по теме
 
Новинки каталога Download
 
Документация
 
Обсуждения в форумах
Как извлечь рисунки из файла Word (45)
Вообще-то есть еще способ - сделать в Word-е Copy рисунка, открыть Microsoft Photo Editor и там:...
 
AutoCAD помощь чайнику (327)
Здравствуйте, Я только начал осваивать AutoCAD. Слышал такое определение как лимиты чертежа,...
 
Фотоколлаж (1)
Приветик всем. Хотите из обычной фотографии получить смешную и увлекательную картинку? Если есть...
 
Интерактивная 3d визуализация (2)
Нужны специалисты по интерактивной 3d визуализации.
 
Уроки CorelDraw: Растительный орнамент., Рисуем модные узоры (4)
Здравствуй, автор, у меня возникла проблема на этапе "Придадим форму основе орнамента, применив...
 
 
 



    
rambler's top100 Rambler's Top100