среда, 5 сентября 2012 г.

Autocad и Visual C# для чайников: Создание графических объектов в Autocad (линий, текста и т.д.). Теория. Пролог

 
Для чего все это нужно? Вы решили написать программу, которая, допустим, должна что-то считать, а потом, допустим, строить график или какой-то чертеж в Autocad.
Для того чтобы ускорить эту работу мы пишем программу (неважно на каком языке программирования). Мы вводим какие-то данные (например количество объектов их размеры т.д.),  наша программа открывает Autocad создает чертеж за пару секунд. Такие приставки для Autocad как СПДС и Project Studio от CSoft  работают и созданы таким образом.


В отступлении от темы скажу, что возможно создавать черетежи через текстовый формат файла DXF. Для этого нужно изучить формат файла DXF. В этом случае вам вообще, не нужно заморачиваться ни с COM, ни с .Net Подмигивающая рожица 

Теория. Пролог.
В качестве инструмента для создания программ я предлагаю использовать Visual C# 2010 express или Visual Basic 2010 express. Они бесплатны для скачивания и использования. Естественно, вам необходимо немного разобраться с этими языками(на msdn.ru огромное количество примеров по работе). Существует альтернатива этим программным продуктам это SharpDevelop  . Советую все-таки ставить продукты от microsoft, по крайней мере на первое время. Самое главное, уяснить себе, что важнее знать и уметь пользоваться языком программирования, нежели средой написания приложений. Разница в эффективности между Visual Basic и Visual C# минимальна, но все же советую начинать с C#. Он более лаконичен (записи короче), да и более распостранен. 
Вы можете даже написать приложение на продажу. Самое главное ограничение этих версий программ – возможность создавать только х32 приложения.
Также, к сожалению, отсутствует возможность создавать установщик(инсталлятор) программы (проблема решается использованием сторонних freeware установщиков, от Nullsoft например. Также есть неплохой установщик Inno ), подключение плагинов (resharper`а ,например) и т.д. (Как создать инсталлятор для Visual C# 2010 express ).

Существует  2 способа создания программ,библиотек(сборок) работающих с Autocad (подгружемых в Autocad).


1й способ: работа по технологии COM
Способ работы через COM очень медленный, и устаревший. Он позволяет напрямую обращаться к приложению, отправлять неуправляемый код приложению. Я для понимая работы с объектами Autocad использовал, этот метод. Но на практике он применяется редко. В связи со своими недостатками и моральным устареванием постепенно заменяется технологией .Net,
разработанной Microsoft  в 2002 году.


2й способ: работа по технологии .Net
Способ обращения через .Net работает намного быстрее.
(Можно почитать более подробно в интернет о этих технологиях,
Например, Wikipedia.org   или в книгах Эндрю Троэлсена. Также огромное количество книг и статей можно найти в Интернет.
)

Для того чтобы написать приложение (программу) или сборку (библиотеку) в Visual C# или  Visual Basic пригодятся
а)  установленный Autocad
б) Либо скачанный набор библиотек ObjectArx SDK (Старые библиотеки: http://forums.autodesk.com/t5/1055-1088-1086-1075-1088-1072/ObjectARX-SDK-%D1%81%D1%82%D0%B0%D1%80%D1%8B%D0%B5-%D0%B8-%D0%BD%D0%BE%D0%B2%D1%8B%D0%B5-%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8/td-p/2923492
Новые библиотеки(для написания программ(сборок) начиная с Autocad 2010 и выше. ): http://usa.autodesk.com/adsk/servlet/item?siteID=123112&id=785550)

Надо сказать, что если вы используете библиотеки 2007 Autocad, то все примитивы без проблем должны создаться в версиях Autocad 2007-2009. То же самое можно сказать о Autocad 2010 –2012.

п.с. На этом первую часть заканчиваю. Просьба не пинать ногами, потому как не программист по образованию, мог что-то пропустить. Сознательно не углубляюсь в такие вещи , как возможность консольно создавать приложения, сборки  и т.д.  Если вы программист и хотите что-то добавить по существу, добавляйте в комментарии.(Комментарии с матом автоматически удаляются).


Vadim Semenov(с) 2012. Email: 5587394@mail.ru

6 комментариев:

  1. Правильно ли я понял - если у меня AutoCAD x64, то на Visual C# 2010 express мне не удастся создать под него приложение? Если это так - есть ли пути обхода этого ограничения?

    ОтветитьУдалить
  2. Через COM получится. Проверить просто, взять пример отсюда http://forum.dwg.ru/showthread.php?t=66929 (поменяв нумерацию матриц). Построить приложение и запустить. Только через Com будет не быстро ;)

    ОтветитьУдалить
  3. А если через SharpDevelop по этой инструкции?

    http://forum.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=36504

    ОтветитьУдалить
  4. Этот тот самый Sharpdevelop, только то что там описывается не относится к Автокад(насколько я понял, мельком взглянув).
    На самом деле для образовательных целей можно, скачать Visual studio professional 2010(там есть поддержка х64 ОС), зарегистрировавшись на курс одной из технологий майкрософт на сайте, intuit.ru. По поводу SharpDevelop,хочу сказать, что там отсутствует intellisense (подсказки при вводе кода), а это очень полезная штука.

    ОтветитьУдалить
  5. Спасибо за информацию по поводу intuit.ru очень ценно :)

    ОтветитьУдалить
  6. http://habrahabr.ru/post/148844/
    Нашел статью по теме на хабре.

    ОтветитьУдалить