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

ADN Club => Inventor API => Тема начата: filat от 14-04-2016, 12:31:36

Название: Изменить количество для виртуального элемента в BOM
Отправлено: filat от 14-04-2016, 12:31:36
Есть сборка в которой я создаю виртуальный элемент:
Код - vb.net [Выбрать]
  1. Dim sDoc As AssemblyDocument
  2. Dim sCompDef As AssemblyComponentDefinition
  3. sCompDef = sDoc.ComponentDefinition
  4. Dim vDocs As ComponentOccurrence
  5. Dim oTG As TransientGeometry
  6. Dim oMatrix As Matrix
  7. oTG = m_inventorApplication.TransientGeometry
  8. oMatrix = oTG.CreateMatrix
  9. vDocs = sCompDef.Occurrences.AddVirtual(ИМЯ, oMatrix)
Если нужно задать количество, например, в метрах, то это легко делается через параметр:
Код - vb.net [Выбрать]
  1. Dim oPar As Inventor.Parameter
  2. Dim oPars As Inventor.Parameters
  3. oPars = sCompDef.Parameters
  4. oPar = oPars.UserParameters.AddByValue(oLength, dLength, UnitsTypeEnum.kMeterLengthUnits)
  5. Call vDocs.Definition.BOMQuantity.SetBaseQuantity(BOMQuantityTypeEnum.kParameterBOMQuantity, oPar)
Но вот когда дело доходит до задания количества в ШТУКАХ, наталккиваюсь на проход кода без ошибок, но и количество не меняется:
Код - vb.net [Выбрать]
  1. oPar = oPars.UserParameters.AddByValue(oLength, dLength, UnitsTypeEnum.kUnitlessUnits)
  2. Call vDocs.Definition.BOMQuantity.SetBaseQuantity(BOMQuantityTypeEnum.kParameterBOMQuantity, oPar)
Причем параметр сам создается, и именно в штуках, но количество в BOM не меняется.
Если начинать плясать со стороны BOM, то свойства TotalQuantity и ItemQuantity идут только для чтения...
Так каким образом можно изменить количество в BOM для виртуального элемента?
P.S. Вариант с созданием через AddVirtual необходимого количества копий не годится.
Название: Re: Изменить количество для виртуального элемента в BOM
Отправлено: filat от 14-04-2016, 12:49:51
Да нет, через TotalQuantity получается.