Система геометрических ограничений

Система геометрических ограничений это набор геометрических объектов и ограничений, связывающих эти объекты. Типы поддерживаемых геометрических объектов и ограничений приведены соответственно в параграфах Типы поддерживаемой геометрии, Типы геометрических ограничений и размеров. Предполагается, что параметрический эскиз, который создает приложение, с его объектами и ограничениями, имеет свою систему ограничений. С программной точки зрения это означает, что каждый параметрический эскиз ассоциируется с системой ограничений через дескриптор типа GCE_system, а каждый его геометрический объект и ограничение представлены своими уникальными дескрипторами типов geom_item и constraint_item.

Перед тем как начать работать с геометрическими ограничениями эскиза, необходимо объявить для него систему ограничений с помощью вызова функции

GCE_system GCE_CreateSystem().   

Функция вернет систему ограничений в виде дескриптора GCE_system, который представляет собой указатель на экземпляр внутренней структуры данных геометрического решателя. Все дальнейшие манипуляции с системой ограничений будут осуществляться через данный дескриптор. Например, если мы хотим объявить точку в эскизе, необходимо для его системы ограничений вызвать функцию

geom_item GCE_AddPoint(GCE_system gSys, GCE_point pVal).   

Результатом функции является дескриптор геометрической точки, принадлежащей системе ограничений gSys. Параметр pVal задает начальные координаты <X,Y> точки.

При завершении работы с эскизом обязательно следует вызвать функцию удаления системы ограничений

void GCE_RemoveSystem(GCE_system gSys),    

которая полностью освободит память, занимаемую системой ограничений со всеми данными объектов и ограничений. После вызова GCE_RemoveSystem дескриптор системы ограничений становится недействительным, т.е. дальнейшее использование такого дескриптора может привести к аварийному прекращению работы приложения.

Функция

void GCE_ClearSystem(GCE_system gSys)

делает систему ограничений пустой, освобождая память только от объектов и ограничений, но оставляет систему ограничений действительной для дальнейшей работы.