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

ADN Club => Inventor API => Тема начата: niksasa от 08-01-2014, 23:32:42

Название: Из ilogic в inventor addin. Вторая часть.
Отправлено: niksasa от 08-01-2014, 23:32:42
Доброй ночи.
В ilogic я могу написать
cmat = ThisDrawing.ModelDocument.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Материал").ValueКак это будет выглядеть в VB.net?
Название: Re: Из ilogic в inventor addin. Вторая часть.
Отправлено: Владимир Ананьев от 09-01-2014, 00:44:11
Запись в одну строку будет выглядеть так:
cmat = oDrawDoc.ReferencedDocuments.Item(1).PropertySets.Item("Design Tracking Properties").Item("Материал").value
Вот тест на VBA:
Sub GetModelDocument()
  '  ссылка на активный документ чертежа
  Dim oDrawDoc As DrawingDocument
  Set oDrawDoc = ThisApplication.ActiveDocument

  '  ссылка на первый в списке документ модели.
  '  здесь это деталь, у которой есть свойство “Материал”
  Dim oDoc As Inventor.PartDocument
  Set oDoc = oDrawDoc.ReferencedDocuments.Item(1)
 
  '  ссылка на набор свойств, где живет свойство “Материал”
  Dim oPropSet As PropertySet
  '  английское наименование будет работать в русской версии Inventor
  Set oPropSet = oDoc.PropertySets.Item("Design Tracking Properties")
  '  или можно более загадочным и менее читабельным образом
  Set oPropSet = oDoc.PropertySets.Item("{32853F0F-3444-11D1-9E93-0060B03C1CA6}")
 
  '  Свойство “Материал” можно получить как по имени,
  '  так и по уникальному идентификатору PropId
  Dim cmat As String
  '  в русской версии, вероятно, “Material” придется заменить на “Материал”
  cmat = oPropSet.Item("Material").value
  cmat = oPropSet.ItemByPropId(20).value
 
  Debug.Print "cmat = " & cmat
End Sub

Просьба: новые вопросы размещайте в новых темах.  Это облегчает последующий поиск.  В гигантский темах реально неудобно искать сведения по конкретным проблемам. Спасибо.