Получение обозначения из BOM

Автор Тема: Получение обозначения из BOM  (Прочитано 4194 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ElfilagasАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 117
  • Карма: 4
Добрый день,
Подскажите, пожалуйста, в данном месте:
Код - vb.net [Выбрать]
  1.     Private Sub WritePositionsToModel(oBOMRows As BOMRowsEnumerator)
  2.         Try
  3.             Dim oRow As BOMRow
  4.             Dim oCompDef As ComponentDefinition
  5.  
  6.             Dim sChildDess As String, sChildName As String
  7.  
  8.             For i = 1 To oBOMRows.Count
  9.                 Try
  10.                     oRow = oBOMRows.Item(i)
  11.                     oCompDef = oRow.ComponentDefinitions.Item(1) ' ссылка на ComponentDefinition данной строки
  12.                     If TypeOf oCompDef Is VirtualComponentDefinition Then
  13.                         sChildDess = Trim(UCase(oCompDef.PropertySets.Item("Design Tracking Properties").Item("Part Number").value))
  14.                         sChildName = Trim(UCase(oCompDef.PropertySets.Item("Design Tracking Properties").Item("Description").value))
  15.                     Else
  16.                         sChildDess = Trim(UCase(oCompDef.Document.PropertySets.Item("Design Tracking Properties").Item("Part Number").value))
  17.                         sChildName = Trim(UCase(oCompDef.Document.PropertySets.Item("Design Tracking Properties").Item("Description").value))
  18.                     End If
как выяснилось получаю не верное обозначение. Как то можно получить обозначение, которое в спецификации отображено?

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 752
  • Карма: 195
  • Skype: mikazakov@mail.ru
Re: Получение обозначения из BOM
« Ответ #1 : 06-10-2016, 16:37:54 »
как выяснилось получаю не верное обозначение. Как то можно получить обозначение, которое в спецификации отображено?
Непонятно, а где не правильно что то получается? Из скриншота этого не видно. Я вот вижу что на скриншоте количество позиции с номером 6 равно нулю, видимо в иЭссембли данный компонент подавлен в данной конфигурации. Возможно этот подавленный элемент вообще не входит в текущий BOMRowsEnumerator и поэтому информация идет с соседнего компонента. Просмотрите внимательно коллекцию BOMRowsEnumerator через VBA в режиме дебага.

Оффлайн ElfilagasАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 117
  • Карма: 4
Re: Получение обозначения из BOM
« Ответ #2 : 06-10-2016, 17:14:27 »
Да, эта позиция есть в другом исполнении. При этом эта строка из списка BOM берется, но обозначение берется получается из модели и сравнивается с внешней спецификацией. В итоге получается как на рисунке во вложении. Детали разные, но позиция одна.
 

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 752
  • Карма: 195
  • Skype: mikazakov@mail.ru
Re: Получение обозначения из BOM
« Ответ #3 : 08-10-2016, 13:47:04 »
Снимка мало, нужно причесанный пример полностью