Взаимодействие по Interop при нескольких запущенных AutoCAD

Автор Тема: Взаимодействие по Interop при нескольких запущенных AutoCAD  (Прочитано 4742 раз)

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

Оффлайн oblfakirАвтор темы

  • ADN OPEN
  • Сообщений: 2
  • Карма: 0
Приветствую всех. Проблема состоит в следующем: есть плагин AutoCAD, состоящей из трех частей - встраиваемых dll, окон на WPF и части на Lisp. Взаимодействие между окнами на WPF происходит через Interop API, объект получается через
Код - C# [Выбрать]
  1. (AcadApplication) Marshal.GetActiveObject("AutoCAD.Application.XX");
, где XX - номер версии. Этот метод получает только первый запущенный экземпляр автокада. Появилась необходимость при нескольких параллельно запущенных экземплярах AutoCAD обращаться только к тому, из которого было запущено окно. Вопрос: как организуется такое взаимодействие?
« Последнее редактирование: 23-10-2017, 15:41:54 от Александр Ривилис »

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Приветствую на форуме!
Вопрос: как организуется такое взаимодействие?
Короткий ответ: никак.
Длинный ответ: AcadApplication из приложения, загруженного внутрь AutoCAD можно получить так:
Код - C# [Выбрать]
  1. AcadApplication acadApp = Autodesk.AutoCAD.ApplicationServices.Application.AcadApplication as AcadApplication;
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн oblfakirАвтор темы

  • ADN OPEN
  • Сообщений: 2
  • Карма: 0
Спасибо за ответ. В таком случае, видимо придется уходить от Interop и переделать окна на вызов непосредственно из AutoCAD.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Спасибо за ответ. В таком случае, видимо придется уходить от Interop и переделать окна на вызов непосредственно из AutoCAD.
Я думаю это будет правильным решением.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение