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

Размеры отличаются от логических ограничений (параллельность, перпендикулярность и т.д.) тем, что они связаны с числовой величиной (скаляром) – значением размера. Значение размера можно задать двумя способами:

  • Управляющий размер. Значение размера задается независимым числовым параметром, который дается пользователем и может меняться только из вне через API решателя (вызов GCE_ChangeDrivingDimension). В этом случае размер не зависит от геометрии, а наоборот, геометрия подчиняется размеру также как геометрическому ограничению. Размеры с таким способом задания требуются для того, чтобы управлять геометрией с помощью размерных параметров, и называются соответственно управляющими.

  • Вариационный размер. Значение размера задается числовой переменной, которая является таким же предметом вычислений решателя, как и геометрия. Фактически текущее значение будет ассоциировано с переменной, которая специально создается с помощью вызова GCE_AddVariable, и может быть повторно применена в других размерах или уравнениях. Значение переменой размера может меняться под влиянием геометрии. Такой способ задания применяется в тех случаях, когда требуется не установить размер, а измерить его. Размеры, связанные с варьируемой переменной, называются вариационными.

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

constraint_item GCE_FixVariable(GCE_system gSys, var_item var), 

где var – дескриптор переменной размера.

Функция вернет ограничение управляющий параметр, фиксирующее переменную var с её текущим значением. После вызова GCE_FixVariable переменная фактически становится независимым параметром системы ограничений и может меняться только извне, с помощью вызова GCE_ChangeDrivingDimension, примененным к дескриптору полученного ограничения.

Варьирование управляющими размерами и параметрами осуществляется с помощью метода

GCE_result GCE_ChangeDrivingDimension(GCE_system gSys, constraint_item dItem
                                     , double dVal).

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

  • gSys – система ограничений параметричеcкого эскиза;

  • dItem – дескриптор управляющего размера или управляющего параметра;

  • dVal – требуемое значение управляющего размера или управляющего параметра.

Функция вернет код GCE_RESULT_Ok, если операция выполнена успешно. Если функция вернет код ошибки (отличный от GCE_RESULT_Ok), это может быть связано с одной из следующих причин:

  • недействительные дескрипторы системы или ограничения gSys и dItem;

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

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