Ошибка появляетсяВ этом случае происходит блокировка переключения документов. И вообще выполнение происходит в контексте документа, а это недопустимо. Отсюда и ошибка.
Код - C# [Выбрать]
Autodesk.AutoCAD.ApplicationServices.Core.Application.ShowModalWindow()
Странно, но я ведь закрываю окно перед выполнением кода.Без кода понять закрываешь ты или нет - не могу.
А можно как-то посмотреть состояние блокировки?
Если вкратце, то вот такСтранно, но я ведь закрываю окно перед выполнением кода.Без кода понять закрываешь ты или нет - не могу.
А можно как-то посмотреть состояние блокировки?
window.Close();Так я вызываю после
Похоже этого недостаточно.window.Close();Так я вызываю послеКод - C# [Выбрать]
window.Close();
Но неужели тут никто не пишет под AutoCAD на MVVM или никто не добавляет новые документы?Тут я ничего сказать не могу. Но создавать новый документ ты можешь и при помощи запуска команды SendStringToExecute, так что он будет создан после того, как управление перейдёт к AutoCAD.
Я протестирую, но скорей всего просто переработаю структуру проекта. Просто будет бизнес-логика AutoCAD, а которой будет вызываться окно со своей бизнес-логикой, и нужные параметры будут просто передаваться по ссылке, а в команде буду просто закрывать окно и передавать статус окна.Но неужели тут никто не пишет под AutoCAD на MVVM или никто не добавляет новые документы?Тут я ничего сказать не могу. Но создавать новый документ ты можешь и при помощи запуска команды SendStringToExecute, так что он будет создан после того, как управление перейдёт к AutoCAD.
С SendStringToExecute не получилось, появляется диалог выбора шаблона.И что у тебя в SendStringToExecute?
SendStringToExecute("_NEW", true, false, true)С SendStringToExecute не получилось, появляется диалог выбора шаблона.И что у тебя в SendStringToExecute?
Lemieux,Да я уже реализовал логику, которую выше описывал, так проще получить ссылку на новый документ и работать с ним.
Я имел в виду совсем другое. Ты делишь свою команду на две. В первой диалог, во второй код начинается с Application.DocumentManager.Add("acadiso.dwt"); Первая запускает вторую при помощи SendStringToExecute после закрытия диалога.
P.S.: В SendStringToExecute должен быть пробел или "\n" после имени команды.