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

ADN Club => Inventor API => Тема начата: illegally_happy от 05-02-2018, 22:54:55

Название: Работа с Drawing Document
Отправлено: illegally_happy от 05-02-2018, 22:54:55
Пара вопросов, может кто подскажет:
1) Можно ли каким-то образом определять, что пользователь перешёл на другой чертежный документ - Поясняю пишу addin в нем есть НЕ модальное окно в котором выполняются одни команды с текущим чертежом, если пользователь вдруг перешел на другой чертеж, то должны выполняться другие(или вообще не выполняться) (что-то типа идентификатора текущего активного документа по смене которого можно определить).
2) Каким образом можно узнать номер текущего листа в чертеже - кроме варианта получить его из имени листа (Sheet:3 -  значит будет номер 3) ещё какие есть варианты? Просто мне попадались чертежи, где вместо, скажем Sheet:1 было все что угодно без собственно номера(как так умудрились сделать??? или это не строгое именование листов?)
Заранее спасибо за информацию!
Название: Re: Работа с Drawing Document
Отправлено: Александр Ривилис от 06-02-2018, 00:28:58
Приветствую на форуме!
У нас принято один вопрос - одна тема. Запомните это на будущее.
Название: Re: Работа с Drawing Document
Отправлено: Александр Ривилис от 06-02-2018, 00:36:39
По теме вопроса (если никто из Inventor'щиков не подскажет). Обрати внимание на события (events) в Inventor.
Вот первое, что мне попалось: http://modthemachine.typepad.com/my_weblog/2013/07/inventor-events-using-net-3-examples.html - событие OnActivateDocument.
Название: Re: Работа с Drawing Document
Отправлено: mikazakov от 06-02-2018, 07:48:22
если пользователь вдруг перешел на другой чертеж
Ну собственно Александр Ривилис уже дал подсказку
Нужно посмотреть в сторону событий. Вот я когда то переводил, даже давал пример как привязываться к событиям в C# и VB.NET

https://drive.google.com/drive/folders/0B655LZZcPbyNflFOODhYU0FSeVI5NmhHdEgwMkh6OHcyTE1keTBzdGk5R1dMalE4My1RNjg

на странице 99 подходят события ApplicationEvents.OnActivateDocument и ApplicationEvents.OnDeactivateDocument
На странице 103 то же есть DocumentEvents.OnActivate и DocumentEvents.OnDeactivate
Но что бы привязаться к событиям из DocumentEvents нужно что бы этот документ был открыт.
Название: Re: Работа с Drawing Document
Отправлено: mikazakov от 06-02-2018, 08:08:53
Каким образом можно узнать номер текущего листа в чертеже - кроме варианта получить его из имени листа
Есть объект DrawingDocument.ActiveSheet
Его нужно сравнить перебором с чертежными листами из коллекции DrawingDocument.Sheets и найти его номер.
Название: Re: Работа с Drawing Document
Отправлено: illegally_happy от 06-02-2018, 21:18:26
Александр Ривилис, mikazakov, Ок про ивенты я сам думал - буду копать в ту сторону, про листы думал есть какой-то более прямой метод..хм, ладно, спасибо!
Название: Re: Работа с Drawing Document
Отправлено: Александр Ривилис от 06-02-2018, 21:22:46
ладно, спасибо!
Для "Спасибо" у нас есть плюсики:
(https://farm5.staticflickr.com/4744/40087881002_3d96077d2c_o.png)
и кнопка Решение (я её уже нажал).