среда, 28 января 2015 г.

Доступ к инерционным свойствам модели с помощью iLogic в Autodesk Inventor

Максим Костандов спрашивает:
Добрый день, Андрей!
Не могли бы вы ответить на вопрос по Inventor: "как получить при помощи iLogic инерционные характеристики детали, чтобы с ними в дальнейшем оперировать?"
Отвечаю.

Эта проблема давно известна. Дело в том, что в Autodesk Inventor с помощью iLogic можно получить прямой доступ к физическим свойствам моделей, таким как Масса, Площадь, Объем и пр. 


При этом нет возможности считать инерционные свойства модели I1, I2 и I3 (для русскоязычных пользователей более привычно Ix, Iy и Iz).


Все легко решается с помощью API использованием метода

MassProperties.XYZMomentsOfInertia

Создайте правило iLogic и встройте в него эту функцию API.

В примере показано правило, в котором сначала обновляется документ, определяется, что это деталь, считываются значения моментов инерции и преобразуются в нужные единицы. В конце создаются пользовательские свойства детали МояМасса, Ix, Iy, Iz и им присваиваются значения.


В итоге в окне Свойства на закладке Прочие получим нужные моменты инерции


Текст правила
InventorVb.DocumentUpdate()

Dim massProps as MassProperties
Dim partDoc as PartDocument = TryCast(ThisDoc.Document, PartDocument)
If (partDoc IsNot Nothing) Then massProps = partDoc.ComponentDefinition.MassProperties

Dim moments(5) As Double
massProps.XYZMomentsOfInertia(moments(0), moments(1), moments(2), moments(3), moments(4), moments(5))
For i = 0 To 5
moments(i) = ThisDoc.Document.UnitsOfMeasure.ConvertUnits(moments(i), "kg cm^2", "kg mm^2")
Next

iProperties.Value("Custom", "МояМасса") = iProperties.Mass
iProperties.Value("Custom", "Ix") = moments(0)
iProperties.Value("Custom", "Iy") = moments(1)
iProperties.Value("Custom", "Iz") = moments(2)

Замечу, что данное правило будет работать лишь с деталями, для сборок его нужно немного доработать.

С уважением, Андрей.

Комментариев нет:

Отправить комментарий