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

ADN Club => Inventor API => Тема начата: Павел Тер-Микаэлян от 19-06-2015, 15:25:37

Название: Обновление массовых характеристик
Отправлено: Павел Тер-Микаэлян от 19-06-2015, 15:25:37
Добрый день! Столкнулся с такой вот проблемой: если массовые характеристики в деталях и сборках не обновлены, то свойство oDoc.PropertySets.Item("Design Tracking Properties").Item("Mass").Value  равно нулю. Можно ли программно обновить массовые характеристики всех деталей и сборок?
Название: Re: Обновление массовых характеристик
Отправлено: Владимир Ананьев от 19-06-2015, 17:23:47
см. объект MassProperties.  При работе через API масовые характеристики перевычисляются при первом же обращении к MassProperties через объекты:
Например,
    Dim oMassProps As MassProperties
    Set oMassProps = oPartComponentDefinition.MassProperties
или
    Set oMassProps = oComponentOccurrence.MassProperties
Название: Re: Обновление массовых характеристик
Отправлено: Павел Тер-Микаэлян от 19-06-2015, 17:49:00
При обращении к MassProperties через ComponentOccurrence, если в строке масса значение было "Н/Д", то считывается значение 0. Я конечно попробую обратиться через другие объекты, но мне кажется ситуация будет такая же. Я поэтому и пытаюсь как-нибудь обновить массовые характеристики программно.
Название: Re: Обновление массовых характеристик
Отправлено: Владимир Ананьев от 19-06-2015, 17:54:11
Значит самый верный путь - через определение документа.
ComponentOccurrence, похоже, пытается извлесь значение из кэша, а там пусто - он вычищается при изменении модели.
Название: Re: Обновление массовых характеристик
Отправлено: Павел Тер-Микаэлян от 19-06-2015, 18:01:03
Значит самый верный путь - через определение документа.
ComponentOccurrence, похоже, пытается извлесь значение из кэша, а там пусто - он вычищается при изменении модели.
Вы имеете ввиду oDoc.PropertySets.Item("Design Tracking Properties").Item("Mass").Value? Так у меня и здесь считывает ноль( Даже не знаю, что делать, приходится вручную обновлять каждый раз(
Название: Re: Обновление массовых характеристик
Отправлено: Владимир Ананьев от 19-06-2015, 18:48:12
Не, вы не вполне меня поняли.  Свойства здесь ни при чем.  Я имю ввиду именно определение документа.
Document.ComponentDefinition. 
Код - Visual Basic [Выбрать]
  1.     Dim oDoc As PartDocument
  2.     Set Doc = ThisApplication.ActiveDocument
  3.     Dim oMassProps As MassProperties
  4.     Set oMassProps = oDoc.ComponentDefinition.MassProperties
Название: Re: Обновление массовых характеристик
Отправлено: Павел Тер-Микаэлян от 19-06-2015, 19:01:16
Не, вы не вполне меня поняли.  Свойства здесь ни при чем.  Я имю ввиду именно определение документа.
Document.ComponentDefinition. 
Код - Visual Basic [Выбрать]
  1.     Dim oDoc As PartDocument
  2.     Set Doc = ThisApplication.ActiveDocument
  3.     Dim oMassProps As MassProperties
  4.     Set oMassProps = oDoc.ComponentDefinition.MassProperties
А.. Теперь понял) не знал, что так можно) Попробую. Спасибо в очередной раз за помощь)
Название: Re: Обновление массовых характеристик
Отправлено: mikazakov от 19-06-2015, 19:42:04
Pabloa,
если AI2015 то нужно SP2 поставить, там какая то речь про устранение не обновляющейся массы речь шла.
Название: Re: Обновление массовых характеристик
Отправлено: Павел Тер-Микаэлян от 20-06-2015, 11:13:56
Pabloa,
если AI2015 то нужно SP2 поставить, там какая то речь про устранение не обновляющейся массы речь шла.
У нас пока 2013, отстаем на 2 года) но если что, учту, спасибо! Я заметил, что вообще с установкой новых sp решаются многие, не понятно откуда появляющиеся проблемы, ошибки пропадают и т.д., в 2013 уж точно...