Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: Дмитрий Загорулькин от 22-06-2017, 13:54:49
-
Всем доброго дня!
Использую метод Editor.WriteMessage для вывода сообщения в комстроку. Но если чертеж неактивен, то возникает исключение. Возможно, есть какой-то другой способ, который позволит отправить сообщение в комстроку неактивного чертежа?
-
Но если чертеж неактивен, то возникает исключение.
Какое?
-
************** Текст исключения **************
Autodesk.AutoCAD.Runtime.Exception: eNotApplicable
в AcMgUserInteraction.{ctor}(AcMgUserInteraction* , AcApDocument* pDoc, Boolean prompting)
в Autodesk.AutoCAD.EditorInput.Editor.WriteMessage(String message) ...
-
Editor.WriteMessage - это обертка для acutPrintf из ObjectARX. Так вот эта функция не зависит от документа (вообще никак не связана с документом) и выводит всегда в активный документ. Не думаю, что можно пытаться выводить в неактивный документ.
-
А другого какого-нибудь метода нет? Наподобие Document.SendStringToExecute.
-
А другого какого-нибудь метода нет? Наподобие Document.SendStringToExecute.
Нет. Но я не понимаю зачем это тебе нужно. Можно запустить команду в неактивном документе, которая выведет то что надо тогда, когда этот документ станет активным. Или подписаться на событие активизации документа и при активизации его вывести всё, что накопил в буфере-строке. Это будет даже оптимальнее. Идея понятна?
-
Да, я в итоге к этому же и пришел - перенес всю логику в Application.DocumentManager.DocumentActivated. Но это немного обходной путь. Я подумал, что может быть есть более прямой, о котором я не знаю. Ну что же, отрицательный результат - тоже результат :)
Спасибо!