Управляющие размеры

Управляющие размеры – это размерные ограничения, которые задают расстояние или угол между двумя геометрическими объектами и тем самым наделяют геометрическую сцену числовыми параметрами, управляющими положением ее объектов. Варьируя параметры размеров, можно управлять состоянием модели или получать экземпляры параметрической модели в разном геометрическом исполнении.

Управляющие размеры можно создать с помощью вызовов GCM_AddDistance, GCM_AddAngle и GCM_FixRadius. Основное предназначение управляющих размеров – это управлять положением геометрических объектов с помощью числового параметра длины, радиуса или угла. Заметим, что ограничения паттернов, созданных методом GCM_AddGeomToPattern(), также относятся к управляющим размерам, поскольку элементы паттерна, характеризуются числовыми параметрами, задающими их линейные или угловые позиции.

Функция

GCM_result GCM_ChangeDrivingDimension(GCM_system gSys, GCM_constraint dItem
                                     , double dVal)

позволяет менять значение любого размера dItem и тем самым управлять состояние параметрической модели.

Входные параметры вызова:

  • gSys – система ограничений параметрической модели;

  • dItem – дескриптор размерного ограничения;

  • dVal – новое значение размера, заданное в единицах длины для линейных размеров или в радианах для угловых размеров.

Возвращаемые значения:

  • GCM_RESULT_Ok, если операция выполнена успешно;

  • GCM_RESULT_ItsNotDrivingDimension означает, что присланное ограничение не является управляющим размером или управляющим параметром, например, если ограничение – вариационный размер;

  • GCM_RESULT_None или GCM_RESULT_Unregistered возвращаются, если присланные дескрипторы gSys или dItem не действительны.

Следует учитывать, что данная функция не выполняет вычислений, а только подготавливает изменение управляющего размера. Чтобы изменение вступило в силу, необходимо вызвать GCM_Evaluate. Если требуется изменить одновременно два и более управляющих размеров, следует сначала сделать серию вызовов GCM_ChangeDrivingDimension на каждый из них, затем один раз вызвать GCM_Evaluate.