Виды равенств характеристик кривых

C3D Solver поддерживает четыре вида равенств характеристик кривых: равенство длин GCE_AddEqualLength, равенство радиусов GCE_AddEqualRadius, равенство смещений эквидистантных кривых GCE_AddEqualOffset и равенство кривизны двух кривых в заданных точках GCE_AddEqualCurvature. Последовательно рассмотрим каждый из них.

Равенство длин двух кривых задается методом

constraint_item GCE_AddEqualLength(GCE_system gSys, geom_item curve1, 
                                                    geom_item curve2);

Метод принимает систему ограничений gSys и пару кривых – curve1 и curve2, а возвращает дескриптор нового ограничения.

Равенство длин двух кривых можно накладывать на кривые, которые имеют концы (т.е. у них можно запросить GCE_FIRST_END и GCE_SECOND_END), либо являются замкнутыми. Поддерживается для любых комбинаций кривых, для которых поддерживается ограничение GCE_AddLength.

Равенство радиусов для двух кривых задается методом

constraint_item GCE_AddEqualRadius(GCE_system gSys, geom_item c1, 
                                                    geom_item c2);

Метод принимает систему ограничений gSys и пару кривых – c1 и c2, а возвращает дескриптор нового ограничения.

Равенство радиусов для двух кривых можно накладывать на кривые, у которых можно запросить GCE_RADIUS.

Равенство смещений эквидистантных кривых задаётся методом

geom_item GCE_AddEqualOffset(GCE_system gSys, geom_item curve1, 
                                              geom_item curve2);

Метод принимает систему ограничений gSys и пару эквидистантных кривых – curve1 и curve2, а возвращает дескриптор нового ограничения.

Равенство смещений эквидистантных кривых можно накладывать на кривые, у которых можно запросить GCE_OFFSET.

Равенство кривизны двух кривых в заданных точках задается методом

constraint_item GCE_AddEqualCurvature(GCE_system gSys, geom_item curves[2], 
                                                       var_item tPars[2]);

Метод принимает систему ограничений gSys, пару кривых curves и параметры параметрических кривых (если требуются), в которых должно выполняется равенство кривизны. Возвращает дескриптор нового ограничения.

Если тип кривой GCE_CIRCLE или GCE_BOUNDED_CURVE, базовой кривой которой является окружность, то соответствующее этой кривой значение tPars[i] должно равняться GCE_NULL_V, так как кривизна окружности одинакова во всех её точках. Если тип кривой GCE_LINE или GCE_LINE_SEGMENT, то равенство кривизны можно задать только в паре с GCE_SPLINE.