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

ADN Club => Inventor API => Тема начата: niksasa от 09-01-2014, 12:33:28

Название: Панель с тремя кнопками в addin
Отправлено: niksasa от 09-01-2014, 12:33:28
Добрый день. Есть кнопка для создания чертежа. Могу ли я создать панель с тремя кнопками: "чертеж dwg", "чертеж idw",  "Отмена", которая будет появляться после нажатия кнопки для создания нового чертежа?
Название: Re: Панель с тремя кнопками в addin
Отправлено: Владимир Ананьев от 09-01-2014, 13:35:07
(https://adn-cis.org/forum/proxy.php?request=http%3A%2F%2Fs24.postimg.org%2Fotee0ii5t%2FNew_Drawing_Doc_Command.jpg&hash=f6319645a9873459bc5bbc87fbd4dcea) (http://postimg.org/image/otee0ii5t/)

После нажатия кнопки “Drawing” Inventor генерирует событие типа FileUIEvents.OnFileNew со следующими свойствами:

FileUIEvents.OnFileNew
     DocumentType: kDrawingDocumentObject
     TemplateFileName: "C:\Users\Public\Documents\Autodesk\Inventor 2014\Templates\Standard.idw"
     Context: No context information
     HandlingCode: kEventNotHandled


Чтобы сделать то, что вы описываете, надо перехватить событие FileUIEvents.OnFileNew и, если DocumentType = kDrawingDocumentObject, то вывести пользователю свой диалог с новыми кнопками. 

Чтобы просмотреть цепочку генерируемых Инвентором событий, используйте утилиту EventWatcher из состава Inventor SDK.  Если вы установили DeveloperTools, то найдете ее в папке
C:\Users\Public\Documents\Autodesk\Inventor 2014\SDK\DeveloperTools\Tools\EventWatcher\
Название: Re: Панель с тремя кнопками в addin
Отправлено: niksasa от 09-01-2014, 14:22:36
Это не совсем то, что я хочу иметь.
Есть addin со свойствами и кнопками, сделанный в vbe2010. Допустим я в том же проекте создал форму windows, на ней разместил три кнопки. На каждую кнопку повесил код. Я же могу сделать так, чтобы после нажатия кнопки для создания чертежа загружалась форма с тремя кнопками?
Название: Re: Панель с тремя кнопками в addin
Отправлено: Владимир Ананьев от 09-01-2014, 15:28:01
И опять сценарий неоднозначен.
>>… после нажатия кнопки для создания чертежа…<<
Какую кнопку вы имеете ввиду?
Если это одна из кнопок на вашей же форме, то ответ очевидный – просто открывайте другую свою форму для выбора типа чертежа.  См. в хелпе методы открытия формы.
http://msdn.microsoft.com/en-us/library/aa984358(v=vs.71).aspx (http://msdn.microsoft.com/en-us/library/aa984358(v=vs.71).aspx)

Если это штатная кнопка, показанная на картинке из первого ответа, тогда используйте описанный там метод.  Ваш AddIn должен как-то узнать, что юзер решил создать чертеж, а как это сделать?  Надо отслеживать событие FileUIEvents.OnFileNew, и если юзер решил создавать чертеж (т.е. вы видите соответствующий DocumentType) , то вы ему подсовываете свою форму для выбора типа чертежа.
Название: Re: Панель с тремя кнопками в addin
Отправлено: niksasa от 09-01-2014, 15:36:14
Если это одна из кнопок на вашей же форме, то ответ очевидный – просто открывайте другую свою форму для выбора типа чертежа.  См. в хелпе методы открытия формы.
http://msdn.microsoft.com/en-us/library/aa984358(v=vs.71).aspx
Именно этот случай. Спасибо, буду разбираться.
Название: Re: Панель с тремя кнопками в addin
Отправлено: Владимир Ананьев от 09-01-2014, 15:40:19
Тогда вам требуется вариант открытия модального окна. 
См. в хелпе метод Form.ShowDialog. 
Поищите через Google русскую версию справки, она точно найдется.
Название: Re: Панель с тремя кнопками в addin
Отправлено: niksasa от 09-01-2014, 16:59:23
Тогда вам требуется вариант открытия модального окна. 
См. в хелпе метод Form.ShowDialog. 
Поищите через Google русскую версию справки, она точно найдется.
Решил не мучаться и поступить по-другому. Просто добавлю еще одну кнопку для создания другого типа чертежа. Спасибо.
Название: Re: Панель с тремя кнопками в addin
Отправлено: Владимир Ананьев от 09-01-2014, 17:01:45
А действительно,  зачем умножать сущности без надобности ?