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

ADN Club => Inventor API => Тема начата: niksasa от 30-01-2014, 23:57:07

Название: Автоматическое обновление свойств
Отправлено: niksasa от 30-01-2014, 23:57:07
Добрый день. Есть addin, который представляет собой пользовательский элемент управления usercontrol, на котором размещены текстовые поля для работы со свойствами и параметрами, а также кнопки. Для считывания свойств инвентора используется кнопка "обновить"
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Updatepart.Click
        If m_inventorApplication.ActiveDocumentType = DocumentTypeEnum.kPartDocumentObject Then
            ' Update the property values.
            pDoc = m_inventorApplication.ActiveDocument
            Me.mPartnumber.Text = pDoc.PropertySets.Item("Design Tracking Properties").Item("Part Number").Value
и т.д.
Хочу сделать, чтобы свойства обновлялись автоматически после открытия файла инвентора на подобие этого кода, где отображается имя открытого файла:
Private Sub m_appEvents_OnOpenDocument(ByVal DocumentObject As Inventor.Document, _
ByVal FullDocumentName As String, _
ByVal BeforeOrAfter As Inventor.EventTimingEnum, _
ByVal Context As Inventor.NameValueMap, _
ByRef HandlingCode As Inventor.HandlingCodeEnum)
            System.Windows.Forms.MessageBox.Show("OnOpenDocument: " + DocumentObject.DisplayName)
        End Sub
Какие здесь могут быть нюансы? Или надо делать по-другому?
Название: Re: Автоматическое обновление свойств
Отправлено: Владимир Ананьев от 31-01-2014, 10:57:16
Чтение свойств из документа Inventor выполняется точно так же.
А вот делать это следует только тогда, когда окно вашего AddIn открыто,
и пользователь ожидает  автозаполнения полей.
В противном случае вроде бы логично просто проигнорировать событие OnOpenDocument.
Название: Re: Автоматическое обновление свойств
Отправлено: niksasa от 31-01-2014, 13:21:56
Использовал событие OnActivateDocument и все заработало.
Только вот что то не получается обновлять свойства для деталей и сборок, редактируемых по месту.
Через кнопку все работает, а вот через событие OnActivateDocument не хочет.
Название: Re: Автоматическое обновление свойств
Отправлено: Владимир Ананьев от 31-01-2014, 13:31:48
А может быть это и логично. Пусть юзер явно дает указание изменить данные в файле.  Он же может и Cancel нажать, так ведь?
Название: Re: Автоматическое обновление свойств
Отправлено: niksasa от 31-01-2014, 13:50:19
А может быть это и логично. Пусть юзер явно дает указание изменить данные в файле.
Тогда смысл автоматизации и ухода от рутины теряется. Зачем кнопка, если можно обойтись без нее?
Название: Re: Автоматическое обновление свойств
Отправлено: Алексей Романов от 31-01-2014, 16:09:40
Только вот что то не получается обновлять свойства для деталей и сборок, редактируемых по месту.
Через кнопку все работает, а вот через событие OnActivateDocument не хочет.
При редактировании по месту не происходит событие OnActivateDocument. Переходи на событие OnEnvironmentChange...
Название: Re: Автоматическое обновление свойств
Отправлено: niksasa от 31-01-2014, 17:20:33
При редактировании по месту не происходит событие OnActivateDocument. Переходи на событие OnEnvironmentChange...
Да, Алексей, так и поступил и все получилось. Спасибо.
Если бы я с самого начала знал, что хочу невозможного, столько времени потратил впустую. Ничего, будет мне уроком.