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

ADN Club => AutoCAD .NET API => Тема начата: Doublefish от 03-06-2015, 08:45:08

Название: можно ли определить открыта ли уже в списке подшивок подшивка с определённым именем
Отправлено: Doublefish от 03-06-2015, 08:45:08
Если второй параметр задать "", то создается пустая подшивка  - Спасибо.

Импортировать лист из существующего dwg в подшивку через ImportSheet получилось - Спасибо, пример помог разобраться что к чему.

Подскажите пожалуйста, можно ли определить открыта ли уже в списке подшивок подшивка с определённым именем и закрыть её, чтобы её не стало в списке открытых подшивок?
Название: Re: можно ли определить открыта ли уже в списке подшивок подшивка с определённым именем
Отправлено: Александр Ривилис от 03-06-2015, 14:10:38
Если я правильно понял вопрос, то AcSmSheetSetMgr.FindOpenDatabase позволяет найти, а AcSmSheetSetMgr.Close закрыть подшивку.
Название: Re: можно ли определить открыта ли уже в списке подшивок подшивка с определённым именем
Отправлено: Doublefish от 04-06-2015, 09:33:24
Не работает. Dst если открыта находится , делается Close, после этого не находится если повторить, но в списке dst осталось после Close!
Как убрать из списка только что закрытую подшику?

Код - C# [Выбрать]
  1.   [CommandMethod("TestCloseDst")]
  2.         public void TestCloseDst()
  3.         {
  4.             Document doc = acadapp.DocumentManager.MdiActiveDocument;
  5.             Editor ed = doc.Editor;
  6.              try
  7.             {
  8.                 string filedst = @"C:\Temp\Dst\test.dst";
  9.                 AcSmSheetSetMgr mgr = new AcSmSheetSetMgr();
  10.                 AcSmDatabase db = mgr.FindOpenDatabase(filedst);
  11.                 ed.WriteMessage("\nfilenamedst: " + db.GetFileName());
  12.                 mgr.Close(db);
  13.                 ed.WriteMessage("\nClose - ok");
  14.             }
  15.             catch (SystemException ex)
  16.             {
  17.                 ed.WriteMessage("\nНе открыта подшивка test.dst");
  18.             }
  19.         }

Название: Re: можно ли определить открыта ли уже в списке подшивок подшивка с определённым именем
Отправлено: Александр Ривилис от 04-06-2015, 11:09:58
Видимо мы друг друга не поняли. Из списка Диспетчера подшивок ты не можешь убрать подшивку. Хотя она и закрыта.
Название: Re: можно ли определить открыта ли уже в списке подшивок подшивка с определённым именем
Отправлено: Doublefish от 04-06-2015, 12:49:28
Тогда совсем не понятно - создать можно и открыть можно, в списке появляются, а закрыть чтобы не было в списке никак нельзя кроме как нажать правой кнопкой  и выбрать Закрыть подшивку (убирается из списка). Эту команду кроме как мышкой никак не вызвать?
Название: Re: можно ли определить открыта ли уже в списке подшивок подшивка с определённым именем
Отправлено: Александр Ривилис от 04-06-2015, 14:02:20
Эту команду кроме как мышкой никак не вызвать?
Я могу конечно задать этот вопрос в ADN DevHelp, но с вероятностью 99.9% ответ будет отрицательный. Команды такой нет (есть _OpenSheetSet, но нет _CloseSheetSet). SheetSet API никак не связано с самим Диспетчером подшивок (т.е. сам Диспетчер подшивок наверняка использует SheetSet API, но обратной связи нет).
Похожая тема: http://adn-cis.org/forum/index.php?topic=334.msg693#msg693
Название: Re: можно ли определить открыта ли уже в списке подшивок подшивка с определённым именем
Отправлено: Александр Ривилис от 05-06-2015, 19:57:17
Решил всё-таки отправить запрос в ADN DevHelp. А вдруг я что-то не учитываю...
Название: Re: можно ли определить открыта ли уже в списке подшивок подшивка с определённым именем
Отправлено: Александр Ривилис от 08-06-2015, 17:17:42
Оказалось, что я был прав на 100%. Ответ из ADN DevHelp гласит:
Цитировать
К сожалению, как Вы уже заметили, AutoCAD не предоставляет команду CloseSheetSet чтобы закрыть SheetSet. Кроме того, нет API, чтобы удалить SheetSet из интерфейса Диспетчера Подшивок. Можно закрыть базу и соотвественно SheetSet при помощи AcSmSheetsetMgr.Close. Но это не удалит SheetSet из пользовательского интерфейса. Я зарегистрировал запрос на изменение у нашей инженерной команды, чтобы в будущем была возможность это делать. В данный же момент такой возможности нет.
Название: Re: можно ли определить открыта ли уже в списке подшивок подшивка с определённым именем
Отправлено: Doublefish от 09-06-2015, 07:55:05
Спасибо за информацию.