Работа с AutoCAD из внешней DLL

Автор Тема: Работа с AutoCAD из внешней DLL  (Прочитано 14465 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн Денис ПерепецкийАвтор темы

  • ADN Club
  • Сообщений: 22
  • Карма: 1
Приветствую Всех.
Начну из далека.
Есть программный комплекс ЛИРА 10 http://lira-soft.com/.
С недавнего времени для нее разработчики добавили возможность писать плагины.
В проекте подключены все необходимые References.


Пишу некий плагин. Плагин работает в ЛИРЕ, без участия AutoCAD. После некоей обработки результатов расчета ЛИРЫ, создаю пустую Database и пишу в нее некие примитивы, сохраняю в файл, открываю его и прочее.
Компиляция проходит успешно, без ошибок. НО.
При запуске плагина все отрабатывает успешно кроме блока где идет работа с API AutoCAD. Возникает такая ошибка.


Я в отчаянии, что делать и куда копать не понимаю.
Понимаю что не совсем по адресу вопрос, но все же... может кто выручит.

Может я в принципе неверно начал делать и нужно по другому.

Заранее спасибо.
Я не профессиональный программист, сделайте скидку ))

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Работа с AutoCAD из внешней DLL
« Ответ #1 : 14-04-2016, 12:29:39 »
Для автокадовсих dll в свойствах установлено "Копировать локально - false"?

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: Работа с AutoCAD из внешней DLL
« Ответ #2 : 14-04-2016, 12:30:08 »
Установил для этих сборок значение свойства CopyLocal в False?

UPD
Саша меня опередил :)

Отмечено как Решение Александр Ривилис 14-04-2016, 21:44:30

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Работа с AutoCAD из внешней DLL
« Ответ #3 : 14-04-2016, 12:32:19 »
Я в отчаянии, что делать и куда копать не понимаю.
Понимаю что не совсем по адресу вопрос, но все же... может кто выручит.

Может я в принципе неверно начал делать и нужно по другому.

Заранее спасибо.
Нельзя использовать acdbmgd.dll, acmgd.dll и accoremgd.dll из dll, которая не загружена внутрь AutoCAD. Это аксиома. Так что у тебя остаётся вариант использовать COM/ActiveX для работы с AutoCAD.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: Работа с AutoCAD из внешней DLL
« Ответ #4 : 14-04-2016, 12:34:18 »
Если я верно понял автора, то у него это два отдельных плагина: один для лиры и один для акада. Результаты, полученные на выходе первого являются входными данными для обработки вторым.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Работа с AutoCAD из внешней DLL
« Ответ #5 : 14-04-2016, 12:36:30 »
Если я верно понял автора, то у него это два отдельных плагина: один для лиры и один для акада. Результаты, полученные на выходе первого являются входными данными для обработки вторым.
А я так понял, что это один плагин. И грузится он в Лиру (см. на картинке LiraAPI в References)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: Работа с AutoCAD из внешней DLL
« Ответ #6 : 14-04-2016, 12:37:55 »
А я так понял, что это один плагин. И грузится он в Лиру (см. на картинке LiraAPI в References)
Да, я не заметил этого. :)

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: Работа с AutoCAD из внешней DLL
« Ответ #7 : 14-04-2016, 12:44:32 »
Я в отчаянии, что делать и куда копать не понимаю.
Понимаю что не совсем по адресу вопрос, но все же... может кто выручит.
Зависит от того, как ты видишь архитектуру своего решения. Если исходишь из того, что акад всегда на том же компе, где и лира, то можно заюзать acad.exe через COM. К сожалению, accoreconsole.exe не имеет COM API. Если хочешь абстрагироваться от наличия и версии акада, то можешь написать WCF-службу, которая может хоститься на др. компьютере (на котором установлен акад).  Эта служба будет создавать DWG с нужным тебе контентом.

Оффлайн Денис ПерепецкийАвтор темы

  • ADN Club
  • Сообщений: 22
  • Карма: 1
Re: Работа с AutoCAD из внешней DLL
« Ответ #8 : 14-04-2016, 13:14:14 »
Для автокадовсих dll в свойствах установлено "Копировать локально - false"?

Да, все в False, но это в данном случае не влияет ни на что.


Плагин один, разные классы для работы с Лирой и AutoCAD. Грузится в Лиру.

Нельзя использовать acdbmgd.dll, acmgd.dll и accoremgd.dll из dll, которая не загружена внутрь AutoCAD. Это аксиома. Так что у тебя остаётся вариант использовать COM/ActiveX для работы с AutoCAD.

Вот собственно и ответ. Значит буду рыть в направлении COM API.
Где есть Лира, там есть AutoCAD, для деятельности моих коллеги и меня это аксиома.

WCF пока оставлю в стороне, т.к. должно работать вне сети.

Всем огромное спасибо.
Я не профессиональный программист, сделайте скидку ))

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 624
  • Карма: 158
    • ПГСу Бложик
Re: Работа с AutoCAD из внешней DLL
« Ответ #9 : 14-04-2016, 15:17:31 »
Есть программный комплекс ЛИРА 10 http://lira-soft.com/.
С недавнего времени для нее разработчики добавили возможность писать плагины.
В проекте подключены все необходимые References.
А не подскажите, где это счастье можно скачать?

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: Работа с AutoCAD из внешней DLL
« Ответ #10 : 14-04-2016, 15:27:12 »
на сайте же вроде как ссылки имеются: http://lira-soft.com/download/

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 624
  • Карма: 158
    • ПГСу Бложик
Re: Работа с AutoCAD из внешней DLL
« Ответ #11 : 14-04-2016, 15:30:33 »
Я грешным делом думал, что там есть SDK на подобии ObjectARX и вот именно этого сдк по ссылкам не видно, потому и спросил.

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: Работа с AutoCAD из внешней DLL
« Ответ #12 : 14-04-2016, 15:32:08 »
может оно так и есть (и доступно "узкому кругу ограниченных людей" за доп. плату :) )... я не утверждаю, что обозначенный контент присутствует по ссылкам, т.к. не качал.

Оффлайн Денис ПерепецкийАвтор темы

  • ADN Club
  • Сообщений: 22
  • Карма: 1
Re: Работа с AutoCAD из внешней DLL
« Ответ #13 : 14-04-2016, 15:34:25 »
Узнаю коллегу конструктора))
Есть некое подобие описания по Лира API. В папке с установленной лирой. Если надо могу скинуть на почту.

Лежит вот тут
C:\Program Files\Lira Soft\Lira10.4\LiraAPI

Есть даже примеры, но они на C++.
« Последнее редактирование: 14-04-2016, 16:30:04 от Денис Перепецкий »
Я не профессиональный программист, сделайте скидку ))

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: Работа с AutoCAD из внешней DLL
« Ответ #14 : 14-04-2016, 21:07:54 »
Денис, вообще-то ответом было не твоё сообщение #8, но сообщение #3 от А.Н. Ривилиса. Не промахивайся...