Вычислить МЦХ

Автор Sab, 26.09.03, 06:56:08

« предыдущая - следующая »

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

Sab

Кто знает как в 3D вычислить МЦХ?
Хелп по функции ksCalcMassInertiaProperties туманно намекает на передачу параметра кривой/кривых контуров профиля. Переведите это с русского на программерский.

Drey

Чтобы не плодить темы спрошу здесь.
ksCalcMassInertiaProperties, кто что-нибудь этой штуковиной вычеслял? Есть непонятка - как она считает массу? А точнее - вокруг чего вращает? Вот задаешь ей контур, размерности, плотность и раствор, а считает не правильно, хотя в 3D подобная функция вроде без нареканий выводит массу. Вот например:

ksMassInertiaParam mipO = (ksMassInertiaParam) kompas.GetParamStruct(ko_MassInertiaParam);
mipO.SetBitVectorValue(ST_MIX_RV, TRUE);
mipO.SetBitVectorValue(ST_MIX_SM, TRUE);
mipO.SetBitVectorValue(ST_MIX_GR, TRUE);

mat.ksCalcMassInertiaProperties(contout, mipO, 7.850, 360.0);

Если он не просит указать ось вращения, значит как-то без неё справляется. И ладно бы справлялся хорошо, так нет. Если считать, что ось вращения проходит через определяемый ей центр масс и направлен, скажем, вдоль OX. Логично, да всеж не так, масса очень завышена получается. И как же быть? Может кто справился с этой непоняткой? Помогите советом пожалуйста!

Drey

Вот черт, сам и разобрался. Вращает он относительно OX и вроде правильно. Извиняюсь! за глупость :)

Drey

Здравствуйте!
Может кто подскажет почему тот пример, что я показал выше, отказался работать на 8й версии Компаса?
Если точнее, то строка:
ksMassInertiaParam mipO = (ksMassInertiaParam) kompas.GetParamStruct(ko_MassInertiaParam);
приводит к вылету Компаса.
Спасибо!

ainis

Подскажите, пожалуйста, как "добраться" до компонента по наименованию его типа, а не по номеру (язык VB.NET)?
Сейчас приходится писать
Dim iPart As ksPart = iDoc3D.GetPart(-1)
вместо
Dim iPart As ksPart = iDoc3D.GetPart(pTop_Part)
т. к. параметр "pTop_Part" не "опознается".
Пространство имен Kompas6Constants импортировано в проект: Imports Kompas6Constants.
Аналогичная проблема с расчетом МЦХ: пишу:
Dim iMassInertiaParam As ksMassInertiaParam = iPart.CalcMassInertiaProperties(16)а нужно бы:
Dim iMassInertiaParam As ksMassInertiaParam = iPart.CalcMassInertiaProperties(ST_MIX_KG).
Как "добраться" до ST_MIX_KG?
Заранее спасибо за подсказки.


ainis

Up.
Код

Dim iPart As ksPart = iDoc3D.GetPart(-1)

не работает в Компас LT. Что можно сделать?