Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Alexx от 04-10-2015, 18:03:02

Название: Можно ли работать с другим (неактивным) документом
Отправлено: Alexx от 04-10-2015, 18:03:02
Добрый день!

Возможно эта тема уже где-то затрагивалась, но я не нашел(((

Возникла необходимость работать с двумя документами одновременно.

Сценарий вкратце такой:

Для активного документа запускается плагин, пользователь выбирает второй документ и далее плагин делает какие-то манипуляции в обоих документах. Проблема в том, что во втором (неактивном) документе нужно создать листы, а LayoutManager.Current - работает только с активным документом. Когда я пытаюсь сделать второй документ активным, присвоив его Application.DocumentManager.MdiActiveDocument то плагин просто виснет до тех пор, пока я вновь не сделаю активным первый документ.

Спасибо!
Название: Re: Можно ли работать с другим (неактивным) документом
Отправлено: Александр Ривилис от 04-10-2015, 18:32:47
Когда я пытаюсь сделать второй документ активным, присвоив его Application.DocumentManager.MdiActiveDocument то плагин просто виснет до тех пор, пока я вновь не сделаю активным первый документ.
Команда, которая хочет переключаться между документами:
1) Должна иметь флаг CommandFlags.Session (т.е. работать в контексте приложения)
2) При работе с чертежом должна его блокировать:
Код - C# [Выбрать]
  1. using (DocumentLock locDoc = doc.LockDocument())
  2. {
  3. // Здесь модифицируем документ
  4. }
Название: Re: Можно ли работать с другим (неактивным) документом
Отправлено: Alexx от 05-10-2015, 09:30:39
Александр, спасибо! Все получилось!