Как выполнить вывод сообщения в комстроку неактивного чертежа?

Автор Тема: Как выполнить вывод сообщения в комстроку неактивного чертежа?  (Прочитано 6239 раз)

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

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

Оффлайн Дмитрий ЗагорулькинАвтор темы

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Всем доброго дня!
Использую метод Editor.WriteMessage для вывода сообщения в комстроку. Но если чертеж неактивен, то возникает исключение. Возможно, есть какой-то другой способ, который позволит отправить сообщение в комстроку неактивного чертежа?

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

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

Оффлайн Дмитрий ЗагорулькинАвтор темы

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Цитировать
************** Текст исключения **************
Autodesk.AutoCAD.Runtime.Exception: eNotApplicable
   в AcMgUserInteraction.{ctor}(AcMgUserInteraction* , AcApDocument* pDoc, Boolean prompting)
   в Autodesk.AutoCAD.EditorInput.Editor.WriteMessage(String message) ...

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Editor.WriteMessage - это обертка для acutPrintf из ObjectARX. Так вот эта функция не зависит от документа (вообще никак не связана с документом) и выводит всегда в активный документ. Не думаю, что можно пытаться выводить в неактивный документ.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий ЗагорулькинАвтор темы

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
А другого какого-нибудь метода нет? Наподобие Document.SendStringToExecute.

Отмечено как Решение Дмитрий Загорулькин 22-06-2017, 15:09:36

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
А другого какого-нибудь метода нет? Наподобие Document.SendStringToExecute.
Нет. Но я не понимаю зачем это тебе нужно. Можно запустить команду в неактивном документе, которая выведет то что надо тогда, когда этот документ станет активным. Или подписаться на событие активизации документа и при активизации его вывести всё, что накопил в буфере-строке. Это будет даже оптимальнее. Идея понятна?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий ЗагорулькинАвтор темы

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Да, я в итоге к этому же и пришел - перенес всю логику в Application.DocumentManager.DocumentActivated. Но это немного обходной путь. Я подумал, что может быть есть более прямой, о котором я не знаю. Ну что же, отрицательный результат - тоже результат :)
Спасибо!