Сообщество программистов Autodesk в СНГ
ADN Club => Inventor API => Тема начата: 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
Какие здесь могут быть нюансы? Или надо делать по-другому?
-
Чтение свойств из документа Inventor выполняется точно так же.
А вот делать это следует только тогда, когда окно вашего AddIn открыто,
и пользователь ожидает автозаполнения полей.
В противном случае вроде бы логично просто проигнорировать событие OnOpenDocument.
-
Использовал событие OnActivateDocument и все заработало.
Только вот что то не получается обновлять свойства для деталей и сборок, редактируемых по месту.
Через кнопку все работает, а вот через событие OnActivateDocument не хочет.
-
А может быть это и логично. Пусть юзер явно дает указание изменить данные в файле. Он же может и Cancel нажать, так ведь?
-
А может быть это и логично. Пусть юзер явно дает указание изменить данные в файле.
Тогда смысл автоматизации и ухода от рутины теряется. Зачем кнопка, если можно обойтись без нее?
-
Только вот что то не получается обновлять свойства для деталей и сборок, редактируемых по месту.
Через кнопку все работает, а вот через событие OnActivateDocument не хочет.
При редактировании по месту не происходит событие OnActivateDocument. Переходи на событие OnEnvironmentChange...
-
При редактировании по месту не происходит событие OnActivateDocument. Переходи на событие OnEnvironmentChange...
Да, Алексей, так и поступил и все получилось. Спасибо.
Если бы я с самого начала знал, что хочу невозможного, столько времени потратил впустую. Ничего, будет мне уроком.