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

ADN Club => Inventor API => Тема начата: niksasa от 05-03-2014, 10:04:46

Название: Переопределение массы
Отправлено: niksasa от 05-03-2014, 10:04:46
Есть текстовый параметр, в котором отображается значение массы детали. Могу ли я с помощью api переопределить массу в физических свойствах при изменении значения параметра (аналог ручного изменения массы в свойствах)?
Название: Re: Переопределение массы
Отправлено: Владимир Ананьев от 10-03-2014, 14:33:19
Физические свойства, масса в том числе, доступны через объект MassProperties.
Вы можете получить текущую массу и информацию о том, переопределена ли она «вручную».
Через API вы можете вполнять все операции с физической массой – можете как переопределить ее, так и восстановить ее “честное” значение.  Откуда вы возьмете значение для переопределения массы, роли не играет – можно и из параметров. Если параметр текстовый, то имеет смысл предварительно проверить его корректность (представляет ли он число или нет).

Вот простейший пример манипуляции массой детали:
Код - vb.net [Выбрать]
  1. Sub Mass_Test()
  2.  
  3.   Dim oDoc As PartDocument
  4.   Set oDoc = ThisApplication.ActiveDocument
  5.   Dim oDef As PartComponentDefinition
  6.   Set oDef = oDoc.ComponentDefinition
  7.   Dim oMassProps As MassProperties
  8.   Set oMassProps = oDef.MassProperties
  9.  
  10.   'какова текущая масса и переопределена ли она
  11.   Debug.Print "Масса, кг: " & oMassProps.Mass
  12.   Debug.Print "Масса переопределена?: " & oMassProps.MassOverridden
  13.  
  14.   'переопределяем массу искусственно
  15.   oMassProps.Mass = 10
  16.   Debug.Print "Масса, кг: " & oMassProps.Mass
  17.   Debug.Print "Масса переопределена?: " & oMassProps.MassOverridden
  18.  
  19.   'восстановление "честной" массы
  20.   oMassProps.MassOverridden = False
  21.   Debug.Print "Масса, кг: " & oMassProps.Mass
  22.   Debug.Print "Масса переопределена?: " & oMassProps.MassOverridden
  23. End Sub