Добрый день, Андрей!Отвечаю.
Не могли бы вы ответить на вопрос по 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)
Замечу, что данное правило будет работать лишь с деталями, для сборок его нужно немного доработать.
С уважением, Андрей.
Комментариев нет:
Отправить комментарий