## Система геометрических ограничений Система геометрических ограничений это набор геометрических объектов и ограничений, связывающих эти объекты. Типы поддерживаемых геометрических объектов и ограничений приведены соответственно в параграфах [Типы поддерживаемой геометрии](./Supported_Geometry_Types.md), [Типы геометрических ограничений и размеров](./Types_of_Geometric_Constraints_and_Dimensions.md). Предполагается, что параметрический эскиз, который создает приложение, с его объектами и ограничениями, имеет свою систему ограничений. С программной точки зрения это означает, что каждый параметрический эскиз ассоциируется с системой ограничений через дескриптор типа GCE_system, а каждый его геометрический объект и ограничение представлены своими уникальными дескрипторами типов geom_item и constraint_item. Перед тем как начать работать с геометрическими ограничениями эскиза, необходимо объявить для него систему ограничений с помощью вызова функции ```cpp GCE_system GCE_CreateSystem(). ``` Функция вернет систему ограничений в виде дескриптора GCE_system, который представляет собой указатель на экземпляр внутренней структуры данных геометрического решателя. Все дальнейшие манипуляции с системой ограничений будут осуществляться через данный дескриптор. Например, если мы хотим объявить точку в эскизе, необходимо для его системы ограничений вызвать функцию ```cpp geom_item GCE_AddPoint(GCE_system gSys, GCE_point pVal). ``` Результатом функции является дескриптор геометрической точки, принадлежащей системе ограничений **gSys**. Параметр **pVal** задает начальные координаты \ точки. При завершении работы с эскизом обязательно следует вызвать функцию удаления системы ограничений ```cpp void GCE_RemoveSystem(GCE_system gSys), ``` которая полностью освободит память, занимаемую системой ограничений со всеми данными объектов и ограничений. После вызова **GCE_RemoveSystem** дескриптор системы ограничений становится недействительным, т.е. дальнейшее использование такого дескриптора может привести к аварийному прекращению работы приложения. Функция ```cpp void GCE_ClearSystem(GCE_system gSys) ``` делает систему ограничений пустой, освобождая память только от объектов и ограничений, но оставляет систему ограничений действительной для дальнейшей работы.