Инерционные характеристики тела

Функция

void MassInertiaProperties( const MbSolid *             solid,
                                  double                density,
                                  double                deviateAngle,
                                  InertiaProperties &   properties,
                                  IfProgressIndicator * progress = 0 );

вычисляет площадь поверхности, объем, массу, центр масс и моменты инерции тела.

Входными параметрами функции являются:

  • solid – тело,

  • density – плотность или удельная масса на единицу площади,

  • deviateAngle – параметр управления точностью расчёта.

Выходными параметрами функции являются:

  • properties – рассчитанные инерционные характеристики,

  • progress – индикатор выполнения расчета.

Функция не возвращает значения.

Функция объявлена в файле mip_solid_mass_inertia.h.

Для замкнутого тела solid параметр density определяет плотность тела. Для незамкнутого тела solid параметр density определяет удельную массу единицы площади тела. Вычисление в общем случае выполняется численно и использует триангуляцию области определения параметров поверхности граней. Триангуляция параметрической области граней выполняется методом CalculateGrid(), описанным в параграфе Построение полигонов объекта, при значениях stepData.stepType = ist_MipStep и stepData.angle = deviateAngle. Параметр deviateAngle определяет максимально допустимый угол между нормалями соседних треугольников и четырёхугольников триангуляции поверхности. Параметр deviateAngle управляет точностью расчёта, и от его значения зависит время расчета. Параметр deviateAngle должен находиться в пределах 0.01 <= deviateAngle <= 0.35 радиан. Следует заметить, что при малых значениях deviateAngle для сложных моделей требуется большое время расчета.

Инерционные характеристики properties описаны в параграфе Построение полигонов объекта. Параметр progress выдает информацию о выполнении в процессе расчета и может использоваться для остановки вычислений.