Как закрыть документы, открытые в фоновом режиме?

Автор Тема: Как закрыть документы, открытые в фоновом режиме?  (Прочитано 2365 раз)

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

Оффлайн R.I.ChernovАвтор темы

  • ADN Club
  • *****
  • Сообщений: 565
  • Карма: 18
Доброго времени суток, уважаемые форумчане!  Ищу вашей помощи в решении вышеуказанной задачи.

Вызываю диалоговое окно, открываю и возвращаю файл сборки:

       
Код - C# [Выбрать]
  1.  private Inventor.AssemblyDocument DocLoad()
  2.         {
  3.             Inventor.FileDialog oFileDlg = CreateFiledialog("Сборка |*.iam", "Откройте сборку ...");
  4.  
  5.             oFileDlg.ShowOpen();
  6.             if (oFileDlg.FileName == "") return null;
  7.  
  8.             Inventor.AssemblyDocument oDoc = (Inventor.AssemblyDocument) oApp.Documents.Open(oFileDlg.FileName, false);
  9.             return oDoc;
  10.         }

, где CreateFiledialog() - функция, возвращающая диалоговое окно, oApp - ссылка на инвентор.

Дальше ссылка на документ используется для считывания параметров. Проблема в том, что не получается после использования все файлы закрыть.
Метод Document.Close() почему-то не дает результата. Быть может в коллекции Application.Documents можно отфильтровать невидимые документы?
Буду рад любому совету.
В программировании я новичок...но ненадолго! ;)

Отмечено как Решение R.I.Chernov 05-06-2020, 17:08:29

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 751
  • Карма: 195
  • Skype: mikazakov@mail.ru
Да вроде закрывается

Код - Visual Basic [Выбрать]
  1. Public Sub tt()
  2. Dim doc As Document
  3. Set doc = ThisApplication.Documents.Open("D:\Part1.ipt", False)
  4. doc.Close
  5. End Sub

Оффлайн R.I.ChernovАвтор темы

  • ADN Club
  • *****
  • Сообщений: 565
  • Карма: 18
Да вроде закрывается
Вы правы, Михаил, закрывается. Походу я когда пробовал, у меня что-то ранее подгружено было, ну или просто пятница, и пора отдыхать! )))
Спасибо! Полтора часа потратил, пытаясь понять, почему вчера Document.Close() вроде работало, а сейчас перестало ))
В программировании я новичок...но ненадолго! ;)

Оффлайн R.I.ChernovАвтор темы

  • ADN Club
  • *****
  • Сообщений: 565
  • Карма: 18
Раз уж затронули тему, нет ли у документов свойства, который показывает, что они открыты невидимыми? При работе с большими сборками бывает, видимо из за каких-то сбоев, что после акрытия основной сборки, часть элементов остаются загруженными. Было бы неплохо иметь возможность их отфильтровать в коллекции открытых документов и закрыть.
В программировании я новичок...но ненадолго! ;)

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 751
  • Карма: 195
  • Skype: mikazakov@mail.ru
нет ли у документов свойства, который показывает, что они открыты невидимыми?
Да видимо действительно пятница
Код - Visual Basic [Выбрать]
  1. doc.Views.Count

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 751
  • Карма: 195
  • Skype: mikazakov@mail.ru
почему вчера Document.Close() вроде работало, а сейчас перестало ))
Да я думаю сессия инвентора глюкнула, а после перезагрузки заработало