Текущая подшивка в окне SheetSet Manager

Автор Тема: Текущая подшивка в окне SheetSet Manager  (Прочитано 7052 раз)

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

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Доброго времени суток.

В окне SheetSet Manager одновременно может быть открыто сразу несколько подшивок, но текущая в окне всегда одна (см. прикреплённое изображение).

Вопросы:
1. Как программно определить, какая именно подшивка является текущей в окне диспетчера подшивок?
2. Как программно, в окне диспетчера подшивок, назначить текущей другую, ранее открытую подшивку?
3. Как программно загрузить в диспетчер подшивок очередную подшивку так, чтобы она появилась в указанном на скрине раскрывающемся списке?
4. Как программно выгрузить из диспетчера подшивок подшивку так, чтобы она исчезла в указанном скрине из раскрывающегося списка?

Спасибо.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Текущая подшивка в окне SheetSet Manager
« Ответ #1 : 21-11-2013, 16:42:27 »
Ответы ни на один из этих вопросов не освещены в документации и нигде мне не попадались, то я переадресую этот вопрос в ADN DevHelp. Возражений нет?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: Текущая подшивка в окне SheetSet Manager
« Ответ #2 : 21-11-2013, 16:43:38 »
Конечно нет. Не важно кто ответит - главное результат. :)

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Текущая подшивка в окне SheetSet Manager
« Ответ #3 : 21-11-2013, 17:32:24 »
Отправил в ADN DevHelp первые два из вопросов, так как третий и четвертый теоретически должны решаться при помощи методов sheetSetManager.OpenDatabase() и sheetSetManager.Close()
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: Текущая подшивка в окне SheetSet Manager
« Ответ #4 : 21-11-2013, 17:45:45 »
- AutoCAD 2009 x86 SP3 Enu.
- AutoCAD 2014 x64 SP1 Enu.

Похоже, что в данном случае теория разошлась с практикой... :( За основу взял код отсюда и добавил пару строчек в метод Renumber:
Код - C# [Выбрать]
  1. Comp.AcSmSheetSetMgr mng = new Comp.AcSmSheetSetMgr();
  2. // ******Добавленный фрагмент кода******
  3. Comp.AcSmDatabase test = mng.OpenDatabase(@"C:\...\New Sheet Set (1).dst", false);
  4. if (test == null)
  5.         ed.WriteMessage("\nCan't open your 'test' sheet set!\n");
  6. else
  7.         ed.WriteMessage("\nIt is OK!\n");
  8. cad.UpdateScreen();
  9. //************************************
  10.  
На консоль получаю вывод:
Цитировать
Command: ss-renumber-all

It is OK!

Sheet Set name: New Sheet Set (1)
Renumbered sheets count: 2
Как видите, я открываю подшивку и не закрываю её. Однако в раскрывающемся списке менеджера подшивок она не появляется. Или может я что-то упустил?

Спасибо.
« Последнее редактирование: 22-11-2013, 10:09:41 от Андрей Бушман »

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Текущая подшивка в окне SheetSet Manager
« Ответ #5 : 25-11-2013, 15:29:09 »
Получил ответ из ADN DevHelp:
Цитировать
Нет API для получения/установки активной (текущей) подшивки. Мы передали просьбу о создании такой функциональности.
Т.е. судя по всему палитра Диспетчера Подшивок сама по себе, а Диспетчер Подшивок (AcSmSheetSetMgr) - сам по себе и двусторонней связи между ними нет.


Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: Текущая подшивка в окне SheetSet Manager
« Ответ #6 : 25-11-2013, 16:27:17 »
Получил ответ из ADN DevHelp:
Цитировать
Нет API для получения/установки активной (текущей) подшивки. Мы передали просьбу о создании такой функциональности.
Т.е. судя по всему палитра Диспетчера Подшивок сама по себе, а Диспетчер Подшивок (AcSmSheetSetMgr) - сам по себе и двусторонней связи между ними нет.
Странная реализация... Ну что же, буду знать, спасибо.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Текущая подшивка в окне SheetSet Manager
« Ответ #7 : 25-11-2013, 16:30:28 »
Странная реализация...
Я догадываюсь в чем причина. Если бы было иначе при массовой работе с подшивками через API палитра Диспетчера Подшивок постоянно бы обновлялась и мельтешила на экране...
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: Текущая подшивка в окне SheetSet Manager
« Ответ #8 : 25-11-2013, 16:35:59 »
Я догадываюсь в чем причина. Если бы было иначе при массовой работе с подшивками через API палитра Диспетчера Подшивок постоянно бы обновлялась и мельтешила на экране...

Это смотря как реализовать... Например, можно было бы просто добавить метод RegenSheetSet, который бы вызывался программистом по мере необходимости. В этом случае никакого мельтешения бы не было. Кроме того это (http://forum.dwg.ru/showpost.php?p=368913&postcount=216):
Цитата: ShaggyDoc  link="http://forum.dwg.ru/showpost.php?p=368913&postcount=216"
ответ 5-летней давности "Adding LISP access to SSM COM API's is on the wishlist"

не внушает каких-либо надежд на положительные сдвиги в направлении API подшивок. :(

Оффлайн VetalBY

  • ADN Club
  • Сообщений: 44
  • Карма: 3
Re: Текущая подшивка в окне SheetSet Manager
« Ответ #9 : 12-09-2018, 12:50:12 »
Есть подвижки по данной теме?
По п. 3: подшивку можно открыть с помощью команды "-OPENSHEETSET" либо используя shell (ShellExecute).

Еще один вопрос по теме подшивок: можно ли узнать с каким файлом подшивки связан dwg?. Если переименовать файл подшивки, то при открытии dwg акад выдает сообщение типа: Чертеж был ранее связан с подшивкой %PathToSheetSetAndFileName%, которую невозможно найти.
%PathToSheetSetAndFileName% - это переменная какая-то? можно её как-то прочитать?


Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 470
  • Карма: 63
Re: Текущая подшивка в окне SheetSet Manager
« Ответ #10 : 12-09-2018, 13:22:39 »
в словарях - сохрани файл в dxf и изучай
AcSheetSetData=>ShSetFileName

Оффлайн VetalBY

  • ADN Club
  • Сообщений: 44
  • Карма: 3
Re: Текущая подшивка в окне SheetSet Manager
« Ответ #11 : 13-09-2018, 16:16:47 »
в словарях - сохрани файл в dxf и изучай
AcSheetSetData=>ShSetFileName
Спасибо, то, что нужно.