Тема: Visual Basic для создания программ для AutoCAD
Как подключить в Visual Basic поддержку для создания программ для AutoCAD (используя именно Visual Basic, а не VBA приложение)
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → Visual Basic для создания программ для AutoCAD
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Как подключить в Visual Basic поддержку для создания программ для AutoCAD (используя именно Visual Basic, а не VBA приложение)
В меню Project выбрать referenses. В появившемся списке
библиотек выбрать AutoCAD 2xxx object library или подключить
библиотеку acad.tlb.
Далее:
*** Dim acadappl as object *** set acadappl=createobject("Autocad.application") acadappl.visible=true
Примечание
Visual basic будет поддерживать автокадовские типы переменных такие как acadline,acadlayer и др. только после подключения библиотеки acad.tlb
> Kostya
!!!
Спасибо !!!
В продолжение к этой теме:
у меня AutoCAD Map 2004; в Visual Basic/ Project/ Reference есть несколько ссылок на продукт Autodesk:
-AutoCAD 2004 Type Library;
-AutoCAD Focus Control for VBA Type Library;
-Autodesk Map 2004
Какая из этих ссылок поддерживает связь с AutoCAD и что из них является библиотекой acad.tlb ?
У меня стоит AutoCAD 2000i , поэтому затрудняюсь ответить, но думаю , что это AutoCAD 2004 Type Library.
В фрейме , что под списком библиотек должен выводиться полный путь к выделенной библиотеке с ее названием.Если
библиотеки acad.tlb в этом списке нет, то ее можно загрузить вручную.
> Kostya
Нашелся ответ на свой же вопрос: для AutoCAD 2004 это файл acax16enu.tlb, ф для более ранних версий - acad.tlb
Но для меня остался открытым вопрос, как загрузить вручную библиотеку.
С уважением к Вам, Kostya, и ко всем кто тратит свое время для желающих познать, но обладающих недостаточными знаниями.
Спасибо !!!
В окне References нажать кнопку Browse... и найти ф acad.tlb. Он находится в папке Program files\ AutoCAD***\ или в другой папке в которой находится сама программа.
Выбрать ф acad.tlb и щелкнуть Открыть.
если установить референс на библиотеку Автокада, то прога будет работать только с этой версией. Но это удобно в процессе написания программы(после точки-раскрывается возможный список). Для того, чтобы прога работала с любой версией , есть технология поздного связывания с объектом
-после отладки программы надо убрать референс на acax16enu.tlb и заремить AcadApplication - заменить на Object
Public oApp As Object ' AcadApplication
Public oADoc As Object ' AcadDocument
а такое определение объекта работает для 2000-2005 версии без проблем
Set oApp = GetObject(, "AutoCAD.Application")
(в хелпе написано, что надо Set oApp = GetObject(, "AutoCAD.Application.16") - можно сделать селектор версий-но не надо)
Set oADoc = oApp.Documents.Open(fileN1...........
oApp.Visible = True
If Err Then MsgBox "ACAD must be RUN!", vbCritical, "start application"
при таком подходе, программа будет работать под 2000-2005 АКАДом!
> Тютюнников
Большое Вам спасибо !!!
Ваш совет в процессе моего ипытания.
Я самоучка в VB и VBA. Работаю в AutoCAD, в этой области много лет. Нужда заставила взяться за VB и VBA. Честно были прочитаны и изучены основы VB и VBA, но советы Форума оказались неоценимы. Если Вы богаты ссылками на литературу в области практического применения VB для AutoCAD, с огромной благодарностью приму.
> Melena
Рад что помог! Лучшая литература - хелп, MSDN и конечно ADN(Autodesk Developer Network). Пользуйтесь первоисточниками. А ссылки на литературу посмотрите у меня на сайте - www.mechmagic.com www.russian.mechmagic.com
А книги, которые российских авторов.... некоторым похоже конкуренты Autodesk платят....
> Тютюнников
Может подскажете как простым смертным получить доступ к ADN(Autodesk Developer Network).
Ув. Melena!
Есть такое ощущение, что Вы хороший человек, уже хотя бы потому, что взялись за VB, VBA.Удивляюсь что Вас еще не посылали (в хорошем смысле этого слова) на сайт с примерами кода по VBA.Рад быть первым:
http://www.cad.dp.ua/stats/a_vba/
И еще. Вы непременно хотите писать под AutoCAD на чистом VB. Вы должны знать, что на этом пути встретятся проблемы.
Например, если использовать схему позднего связывания(> Тютюнников (2004-07-26 10:31:01)) ,то
резко, примерно на два порядка, снижается реальное быстродействие программы (по сравнению с VBA) из-за многоступенчатого доступа к объектам AutoCAD.
Вообще, использование в программе сочетаний из разных языков программмирования и различных технологий (COM,OLE,*.dll) это развлечения для изощренных профессионалов, попробуйте для начала разобраться с VBA.
Удачи!
> igor
Там все - простые смертные!!! Не видел ни одного бессмертного!! Нет проблем, там же(на ADN) условия -чуть больше штуки в год и все!!
Как добавиться туда-
http://usa.autodesk.com/adsk/servlet/it … ;id=723350
> Leonid
снижение скорости не из-за позднего связывания,(этот механизм только для того, чтобы не быть привязанным к какой-то конкретной версии продукта) VBA работает в одном адресном пространстве с АКАДом, а внешнее приложение, есть свои плюсы и минусы.. программирование, это не кубик Рубика, вариантов несколько больше. VB- наиболее удачный выбор, потому что он же и в VBA Офиса и прочих прог используется. Математику конечно на С++ писать лучше. А Visual Studio потому так и называется, что интерфейс для пользователей на VB пишется, а если скорость нужна, то это на С++ выносится как dll.
К Автокаду хелп по программированию очень хороший и почти без ошибок. Для VB VBA более чем достаточно.
> igor
кстати, быть в ADN еще хорошо и тем, что проги, которые Вы пишете, пользователи не боялись юзать - сертификацию программ можно пройти и поставить лейбл Certified Autodesk! А это уже очень неплохо выглядит, когда прога в базе данных Autodesk есть! например у меня на сайте www.mechmagic.com можете посмотреть, как это выглядит. И проги в http://www.inventor-certified.com/index.php
зарегистрированы, причем это доступно на поглядеть любому желающему, ткнул линк на Вашем сайте и попал на сайт Autodesk. По-моему , это того стоит.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → Visual Basic для создания программ для AutoCAD
Форум работает на PunBB, при поддержке Informer Technologies, Inc