Сделать текущим лист при работе в фоновом режиме

Автор Тема: Сделать текущим лист при работе в фоновом режиме  (Прочитано 14633 раз)

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

Отмечено как Решение Александр Ривилис 09-12-2014, 10:50:13

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

  • Administrator
  • *****
  • Сообщений: 13877
  • Карма: 1785
  • Рыцарь ObjectARX
  • Skype: rivilis
Сегодня мне из ADN DevHelp прислали такой код, который по их утверждению (я еще не успел потестировать) должен работать:
Код - C# [Выбрать]
  1. [CommandMethod("TestLayout")]
  2. public void TestLayout()
  3. {
  4.   using (Database db = new Database(false, false))
  5.   {
  6.     db.ReadDwgFile(@"C:\TestDWG.dwg",
  7.        FileOpenMode.OpenForReadAndWriteNoShare, false, "");
  8.     db.CloseInput(true);
  9.     Database olddb = HostApplicationServices.WorkingDatabase;
  10.     HostApplicationServices.WorkingDatabase = db;
  11.     LayoutManager lMan = LayoutManager.Current;
  12.     lMan.CurrentLayout = "Layout1";
  13.     // set the working database back before saveas
  14.     HostApplicationServices.WorkingDatabase = olddb;
  15.     db.SaveAs(@"C:\TestDWG-new.dwg", null);
  16.   }
  17. }
Особенность его в том, что сначала идет переключение на старую рабочую базу, а уже потом сохранение. Попробуй.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • **
  • Сообщений: 78
  • Карма: 1
  • c# autocad
  • Skype: johnj255work
Спасибо! Опробую.

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

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

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

  • ADN Club
  • **
  • Сообщений: 78
  • Карма: 1
  • c# autocad
  • Skype: johnj255work
Ну, как я уже и говорил, в текущем проекте мне хватает Database.TileMode. Но на будущее очень даже пригодится. Проверял только в autocad 2014 - сначала пару раз вылетел автокад. Так и не понял - почему. Потом выполнил пошагово - всё нормально. И больше автокад не вылетал, нормально срабатывало. Так и не понял, в чём была по-началу загвоздка.
Сейчас, для интереса, проверил при fiberworld = 0 - тоже всё нормально сработало, так что рецепт - замечательный!

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

  • Administrator
  • *****
  • Сообщений: 13877
  • Карма: 1785
  • Рыцарь ObjectARX
  • Skype: rivilis
тоже всё нормально сработало, так что рецепт - замечательный!
Так и запишем! :)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение