////////////////////////////////////////////////////////////////////////////////
//  System: Kомпас-График API
//  Module: LDefin2D
////////////////////////////////////////////////////////////////////////////////
unit LDefin2D;

{$ALIGN OFF}

interface

type
  Reference = Longint;

const
  TEXT_LENGTH      = 128;
  MAX_TEXT_LENGTH  = 255;

  MAXERROR        = 200;

//  Определения для функций GetObjParam и SetObjParam
//  '+'   отмечены объекты, для которых реализованы  GetObjParam и SetObjParam
//  '+-'  отмечены объекты, для которых реализован только GetObjParam
  ALLPARAM                 = -3;  // все параметры объекта в СК объекта владельца
  SHEET_ALLPARAM           = -4;  // тоже что и  ALLPARAM  но параметры объекта в СК листа
  NURBS_CLAMPED_PARAM      = -5;  // параметры нурбса, преобразовать узловой вектор в зажатый
  NURBS_CLAMPED_SHEETPARAM = -6;  // параметры нурбса в СК листа, преобразовать узловой вектор в зажатый
  VIEW_ALLPARAM            = -8;  // все параметры объекта в СК вида
  ALLPARAM_W               = -20; // все параметры объекта в СК объекта владельца для структур со строками wchar_t
  SHEET_ALLPARAM_W         = -21; // тоже что и  ALLPARAM  но параметры объекта в СК листа для структур со строками wchar_t
  VIEW_ALLPARAM_W          = -22; // тоже что и  ALLPARAM  но параметры объекта в СК вида для структур со строками wchar_t
  ASSOCIATION_VIEW_PARAM_W = -23; // параметры ассоциативного вида для структуры со строками wchar_t

  ANGLE_ARC_PARAM       = 0;   // параметры дуги по углам ( для дуги и эллиптической дуги ) в СК объекта владельца
  POINT_ARC_PARAM       = 1;   // параметры дуги по точкам ( для дуги и эллиптической дуги ) в СК объекта владельца
  ANGLE_ARC_SHEET_PARAM = 2;   // параметры дуги по углам ( для дуги и эллиптической дуги ) в СК листа
  POINT_ARC_SHEET_PARAM = 3;   // параметры дуги по точкам ( для дуги и эллиптической дуги ) в СК листа
  ANGLE_ARC_VIEW_PARAM  = 4;   // параметры дуги по углам ( для дуги и эллиптической дуги ) в СК вида
  POINT_ARC_VIEW_PARAM  = 5;   // параметры дуги по точкам ( для дуги и эллиптической дуги ) в СК вида

  VIEW_LAYER_STATE     = 1;   // состояние слоя ,вида
  DOCUMENT_STATE       = 1;   // состояние документа
  DOCUMENT_SIZE        = 0;   // размер листа
  DIM_TEXT_PARAM       = 0;   // параметры текста для размеров
  DIM_TEXT_PARAM_W     = 6;   // параметры текста для размеров для структуры со строками wchar_t
  DIM_SOURSE_PARAM     = 1;   // параметры привязки размера
  DIM_DRAW_PARAM       = 2;   // параметры отрисовки размера
  DIM_VALUE            = 3;   // значение размера - double
  DIM_PARTS            = 4;   // составляющие части для размеров struct DimensionPartsParam
  SHEET_DIM_PARTS      = 5;   // составляющие части для размеров struct DimensionPartsParam в СК листа
  TECHNICAL_DEMAND_PAR =-1;   // параметры технических требований -
  TT_FIRST_STR         = 1000;// начало отсчета для получения или замены текста ТТ по строкам
  CONIC_PARAM          = 2;   // параметры для построения конического сечения ( для эллипса и эллтптической дуги )
  SPC_TUNING_PARAM     = 0;   // параметры настроек для стиля СП
  HATCH_PARAM_EX       = 0;   // параметры штриховки расширенные
  ASSOCIATION_VIEW_PARAM = 0;  // параметры ассоциативного вида
  DIM_SOURSE_VIEWPARAM   = 7;  // параметры привязки размера в ситеме координат вида
  DIM_DRAW_VIEWPARAM     = 8;  // параметры отрисовки размера в ситеме координат вида
  DIM_SOURSE_SHEETPARAM  = 9;  // параметры привязки размера в ситеме координат листа
  DIM_DRAW_SHEETPARAM    = 10; // параметры отрисовки размера в ситеме координат листа


// объекты
  ALL_OBJ               = 0;  // все объекты, кроме вспомогательных, которые могут входить в вид                    -
  LINESEG_OBJ           = 1;  // отрезок
  CIRCLE_OBJ            = 2;  // окружность
  ARC_OBJ               = 3;  // дуга
  TEXT_OBJ              = 4;  // текст
  POINT_OBJ             = 5;  // точка
  HATCH_OBJ             = 7;  // штриховка
  BEZIER_OBJ            = 8;  // bezier сплайн
  LDIMENSION_OBJ        = 9;  // линейный размер
  ADIMENSION_OBJ        = 10; // угловой размер
  DDIMENSION_OBJ        = 13; // диаметральный размер
  RDIMENSION_OBJ        = 14; // радиальный размер
  RBREAKDIMENSION_OBJ   = 15; // радиальный размер с изломом
  ROUGH_OBJ             = 16; // шероховатость
  BASE_OBJ              = 17; // база
  WPOINTER_OBJ          = 18; // стрелка вида
  CUT_OBJ               = 19; // линия разреза
  LEADER_OBJ            = 20; // простая линия выноски
  POSLEADER_OBJ         = 21; // линия выноски для обозначения позиции
  BRANDLEADER_OBJ       = 22; // линия выноски для обозначения клеймения
  MARKERLEADER_OBJ      = 23; // линия выноски для обозначения маркирования
  TOLERANCE_OBJ         = 24; // допуск формы
  TABLE_OBJ             = 25; // таблица
  CONTOUR_OBJ           = 26; // контур
  MACRO_OBJ             = 27; // нетипизированный макроэлемент
  LINE_OBJ              = 28; // линия
  LAYER_OBJ             = 29; // слой
  FRAGMENT_OBJ          = 30; // вставной фрагмент
  POLYLINE_OBJ          = 31; // полилиния
  ELLIPSE_OBJ           = 32; // эллипс
  NURBS_OBJ             = 33; // nurbs сплайн
  ELLIPSE_ARC_OBJ       = 34; // дуга эллипса
  RECTANGLE_OBJ         = 35; // прямоугольник
  REGULARPOLYGON_OBJ    = 36; // многоугольник
  EQUID_OBJ             = 37; // эквидистанта
  LBREAKDIMENSION_OBJ   = 38; // линейный размер с обрывом
  ABREAKDIMENSION_OBJ   = 39; // угловой размер с обрывом
  ORDINATEDIMENSION_OBJ = 40; // размер высоты
  COLORFILL_OBJ         = 41; // фоновая заливка цветом
  CENTREMARKER_OBJ      = 42; // обозначение центра
  ARCDIMENSION_OBJ      = 43; // размер длины дуги
  SPC_OBJ               = 44; // объект спецификации
  RASTER_OBJ            = 45; // растровый объект
  CHANGE_LEADER_OBJ     = 46; // Обозначение изменения
  REMOTE_ELEMENT_OBJ    = 47; // выносной элемент               -
  AXISLINE_OBJ          = 48; // Осевая линия
  OLEOBJECT_OBJ         = 49; // Вставка ole объекта            -
  KNOTNUMBER_OBJ        = 50; // объект номер узла              -
  BRACE_OBJ             = 51; // объект фигурная скобка         -
  POSNUM_OBJ            = 52; // марка/позиционное обозначение с линией-выноской -
  MARKONLDR_OBJ         = 53; // марка/позиционное обозначение на линии          -
  MARKWOLDR_OBJ         = 54; // марка/позиционное обозначение без линии-выноски -
  WAVELINE_OBJ          = 55; // волнистая линия                -
  DIRAXIS_OBJ           = 56; // прямая ось                     -
  BROKENLINE_OBJ        = 57; // линия обрыва с изломами        -
  CIRCLEAXIS_OBJ        = 58; // круговая ось                   -
  ARCAXIS_OBJ           = 59; // дуговая ось                    -
  CUTUNITMARKING        = 60; // Обозначение узла в сечении     -
  UNITMARKING           = 61; // Обозначение узла               -
  MULTITEXTLEADER       = 62; // Выносная надпись к многослойным конструкциям.  -
  EXTERNALVIEW_OBJ      = 63; // Вставка внешнего вида                          -
  ANNLINESEG_OBJ        = 64; // Аннотационный отрезок                 +- Для GetObjParam используется структура LineSegParam
  ANNCIRCLE_OBJ         = 65; // Аннотационная окружность              +- Для GetObjParam используется структура CircleParam
  ANNELLIPSE_OBJ        = 66; // Аннотационный эллипс                  +- Для GetObjParam используется структура EllipseParam
  ANNARC_OBJ            = 67; // Аннотационная дуга                    +- Для GetObjParam используется структура ArcParam
  ANNELLIPSE_ARC_OBJ    = 68; // Аннотационная дуга эллипса            +- Для GetObjParam используется структура EllipseArcParam
  ANNPOLYLINE_OBJ       = 69; // Аннотационная полилиния               +- Для GetObjParam используется структура PolylineParam
  ANNPOINT_OBJ          = 70; // Аннотационная точка                   +- Для GetObjParam используется структура PointParam
  ANNTEXT_OBJ           = 71; // Текст с аннотационной точкой привязки +- Для GetObjParam используется структура TextParam
  MULTILINE_OBJ         = 72; // Мультилиния
  BUILDINGCUTLINE_OBJ   = 73; // Линия разреза/сечения для СПДС + используется структура CutLineParam                   -
  MAX_VIEWTIP_SEARCH    = 74; // верхняя граница типов поиска для объектов вида -

  SPECIFICATION_OBJ     = 121; // спецификация на листе
  SPECROUGH_OBJ         = 122; // неуказанная шероховатость
  VIEW_OBJ              = 123; // вид
  DOCUMENT_OBJ          = 124; // документ  графический
  TECHNICALDEMAND_OBJ   = 125; // технические требования
  STAMP_OBJ             = 126; // штамп
  SELECT_GROUP_OBJ      = 127; // группа селектирования
  NAME_GROUP_OBJ        = 128; // именная группа
  WORK_GROUP_OBJ        = 129; // рабочая группа
  SPC_DOCUMENT_OBJ      = 130; // документ  спецификация
  D3_DOCUMENT_OBJ       = 131; // 3d документ  модели или сборки
  CHANGE_LIST_OBJ       = 132; // таблица изменений
  TXT_DOCUMENT_OBJ      = 133; // текстовый документ
  ALL_DOCUMENTS         = 134; // документы всех типов

  MAX_TIP_SEARCH        = 134;  // верхняя граница типов поиска

// типы БД
  ODBC_DB = 0;
  TXT_DB  = 1;

  TXT_CHAR   = 1;
  TXT_USHORT = 2;
  TXT_SSHORT = 3;
  TXT_SLONG  = 4;
  TXT_ULONG  = 5;
  TXT_LONG   = 6;
  TXT_FLOAT  = 7;
  TXT_DOUBLE = 8;
  TXT_INT    = 9;
  TXT_ALL    = 0;
  TXT_INDEX  = 'Index1000';

// состояние для вида
  stACTIVE    = 0;  // слоя, документа
  stREADONLY  = 1;  // слоя
  stINVISIBLE = 2;  // слоя
  stCURRENT   = 3;  // слоя
  stPASSIVE   = 1;  // документа

// Определения для функции ksSytemPath
  sptSYSTEM_FILES    = 0; // выдать путь на каталог системных файлов
  sptLIBS_FILES      = 1; // выдать путь на каталог файлов библиотек
  sptTEMP_FILES      = 2; // выдать путь на каталог сохранения временных файлов
  sptCONFIG_FILES    = 3; // выдать путь на каталог сохранения конфигурации системы
  sptINI_FILE        = 4; // выдать полное имя INI-файла системы
  sptBIN_FILE 	     = 5; // Выдать путь на каталог исполняемых файлов системы
  sptPROJECT_FILES   = 6; // Выдать путь на каталог сохранения kompas.prj
  sptDESKTOP_FILES   = 7; // Выдать путь на каталог сохранения kompas.dsk
  sptTEMPLATES_FILES = 8; // Выдать путь на каталог шаблонов Компас-документов
  sptPROFILES_FILES  = 9; // Выдать путь на каталог сохранения профилей пользователя

// oпределения для результата функции SystemControlStart
// 27.01.2005 Данные определения устарели
// см. перечисление ksSystemControlStartEnum в ksConst.pas или ksConstants.tlb
  scsSTOPPED_FOR_MENU_COMMAND      =  1; // выполнена команда меню "Остановить работу библиотеки"
  scsSTOPPED_FOR_SYSTEM_STOP       =  0; // идет закрытие задачи
  scsSTOPPED_FOR_ITSELF            = -1; // вызов функции SystemControlStop из-под библиотеки
  scsSTOPPED_FOR_START_THIS_LIB    = -2; // принудительный останов при запуске той же библиотеки
  scsSTOPPED_FOR_START_ANOTHER_LIB = -3; // принудительный останов при запуске другой библиотеки

// oпределения флагов для текста
  INVARIABLE         =  0;   // не менять флаги текста
  NUMERATOR          =  $1;  // числитель
  DENOMINATOR        =  $2;  // знаменатель
  END_FRACTION       =  $3;  // конец дроби
  UPPER_DEVIAT       =  $4;  // верхнее отклонение
  LOWER_DEVIAT       =  $5;  // нижнее отклонение
  END_DEVIAT         =  $6;  // конец  отклонений
  S_BASE             =  $7;  // основание выражения типа суммы
  S_UPPER_INDEX      =  $8;  // верхний индекс выражения типа суммы
  S_LOWER_INDEX      =  $9;  // нижний индекс выражения типа суммы
  S_END              =  $10; // конец выражения типа суммы
  SPECIAL_SYMBOL     =  $11; // спецзнак
  SPECIAL_SYMBOL_END =  $12; // для спецзнаков с текстом
  RETURN_BEGIN       =  $13; // начало для ввода следующих строк в спецзнаке с текстом, дробях, отклонениях
  RETURN_DOWN        =  $14; // для ввода следующих строк в спецзнаке с текстом, дробях, отклонениях
  RETURN_RIGHT       =  $15; // для ввода строк справа в спецзнаке с текстом, дробях, отклонениях
  TAB                =  $16; // табуляция по текущему стилю
  FONT_SYMBOL        =  $17; // символ фонта
  FONT_SYMBOL_W      =  $2017; //символ фонта Unicode

  ITALIC_ON          = $40;  // включить наклон
  ITALIC_OFF         = $80;  // выключть наклон
  BOLD_ON            = $100; // включить толщину
  BOLD_OFF           = $200; // выключть толщину
  UNDERLINE_ON       = $400; // включить подчеркивание
  UNDERLINE_OFF      = $800; // выключть подчеркивание
  NEW_LINE           = $1000; // новая строка в параграфе

  LIKE_BASIC_LINE = $10; // параметры пера как у основной линии
  LIKE_THIN_LINE  = $20; // параметры пера как у тонкой линии
  LIKE_HEAVY_LINE = $30; // параметры пера как у утолщенной линии

  FONT_NAME      =  1; // имя фонта
  NARROWING      =  2; // коэффициент сужения фонта
  HEIGHT         =  3; // высота фонта
  COLOR          =  4; // цвет текста
  SPECIAL        =  5; // спецзнак
  FRACTION_TYPE  =  6; // высота дроби по отношению к тексту 1-полная высота 2-в 1.5 раза меньше 3-в 2 раза меньше
  SUM_TYPE       =  7; // высота выражения типа суммы по отношению к тексту 1-полная высота 2-в 1.5 раза больше

// типы предопределенных динамических массивов
  CHAR_STR_ARR           = 1 ; // массив указателей на строки символов
  POINT_ARR              = 2 ; // массив указателей на математические точки -структура MathPointParam
  CURVE_PATTERN_ARR      = 2 ; // массив указателей на участки штриховой линии -структура CurvePattern
  TEXT_LINE_ARR          = 3 ; // массив строк текста - структура TextLineParam
  TEXT_ITEM_ARR          = 4 ; // массив компонент строк текста структура TextItemParam
  ATTR_COLUMN_ARR        = 5 ; // массив колонок аттрибутов- структура  ColumnInfo
  USER_ARR               = 6 ; // пользовательский массив
  POLYLINE_ARR           = 7 ; // массив полилиний-(указателей массивов POINT_ARR)
  RECT_ARR               = 8 ; // массив габаритных прямоугольников-(структура RectParam)
  LIBRARY_STYLE_ARR      = 9 ; // массив структур параметров для стиля в библиотеке стилей( LibraryStyleParam )
  VARIABLE_ARR           = 10; // массив структур параметров параметрических переменных( VariableParam )
  CURVE_PATTERN_ARR_EX   = 11; // массив указателей на участки штриховой линии -структура CurvePatternEx
  LIBRARY_ATTR_TYPE_ARR  = 12; // массив структур параметров для типа атрибута в библиотеке типов атрибутов( LibraryAttrTypeParam )
  NURBS_POINT_ARR        = 13; // массив структур NurbsPointParam
  DOUBLE_ARR             = 14; // массив duuble
  CONSTRAIN_ARR          = 15; // массив параметрических ограничений - структура ConstrainParam
  CORNER_ARR             = 16; // массив структур параметров углов CornerParam для прямоугольников и многоугольников
  DOC_SPCOBJ_ARR         = 17; // массив структур параметров прикрепленных документов к объекту спецификации
  SPCSUBSECTION_ARR      = 18; // динамический массив структур параметров подраздела спецификации SpcSubSectionParam
  SPCTUNINGSEC_ARR       = 19; // динамический массив структур параметров настройки раздела спецификации SpcTuningSectionParam
  SPCSTYLECOLUMN_ARR     = 20; // динамический массив структур параметров стиля колонки таблицы спецификации SpcStyleColumnParam
  SPCSTYLESEC_ARR        = 21; // динамический массив структур параметров стиля разделa спецификации SpcStyleSectionParam
  QUALITYITEM_ARR        = 22; // динамический массив структур QualityItemParam - запись об одном интервале для какого-то квалитета
  LTVARIANT_ARR          = 23; // динамический массив структур LtVariant
  TOLERANCEBRANCH_ARR    = 24; // динамический массив структур ToleranceBranch
  HATCHLINE_ARR          = 25; // динамический массив структур HatchLineParam
  TREENODEPARAM_ARR      = 26; // динамический массив структур узла дерева TreeNodeParam
  CHAR_STR_ARR_W         = 27; // динамический массив указателей на строки символов типа wchar

// типы данных для определения атрибутов
  CHAR_ATTR_TYPE    = 1;
  UCHAR_ATTR_TYPE   = 2;
  INT_ATTR_TYPE     = 3;
  UINT_ATTR_TYPE    = 4;
  LINT_ATTR_TYPE    = 5;
  FLOAT_ATTR_TYPE   = 6;
  DOUBLE_ATTR_TYPE  = 7;
  STRING_ATTR_TYPE  = 8; // строка фиксированной длины MAX_TEXT_LENGTH
  RECORD_ATTR_TYPE  = 9;

// oпределения для линейного размера
  _AUTONOMINAL       =  $1;   // простановка размера автоматическая
  _RECTTEXT          =  $2;   // текст в рамочке
  _PREFIX            =  $4;   // есть текст до номинала
  _NOMINALOFF        =  $8;   // нет  номинала
  _TOLERANCE         =  $10;  // квалитет проставлять
  _DEVIATION         =  $20;  // отклонения проставлять
  _UNIT              =  $40;  // единица измерения
  _SUFFIX            =  $80;  // есть текст после номинала
  _DEVIATION_INFORM  =  $100; // при включенном _DEVIATION, отклонения есть в массиве текстов( даже если не ручное проставление отклонений).
  _UNDER_LINE        =  $200; // >0 размер с подчеркиванием

  INDICATIN_TEXT_LINE_ARR = $FFFF; // для шероховаиости, позиционной линии выноски, маркировки и клеймения
                                   // признак, что для текста используется динамический массив TEXT_LINE_ARR
// типы стилей
  CURVE_STYLE    = 1; // стиль криивых
  HATCH_STYLE    = 2; // стиль штриховок
  TEXT_STYLE     = 3; // стиль текста
  STAMP_STYLE    = 4; // стиль штампа
  CURVE_STYLE_EX = 5; // стиль кривых расширенный

// oпределения для функций GetSysOptions и SetSysOptions
  DIMENTION_OPTIONS          = 1; // Настройки размера
  SNAP_OPTIONS               = 1; // Настройки привязок
  ARROWFILLING_OPTIONS       = 2; // Зачернять стрелки ?
  SHEET_OPTIONS              = 3; // Параметры листа документов
  SHEET_OPTIONS_EX           = 4; // Параметры листа документа
  LENGTHUNITS_OPTIONS        = 5; // Настройки единиц измерений
  SNAP_OPTIONS_EX            = 6; // Настройки привязок активного документа
  VIEWCOLOR_OPTIONS          = 7; // Настройки цвета фона рабочего поля (2d - документов)
  TEXTEDIT_VIEWCOLOR_OPTIONS = 8; // Настройки цвета фона редактирования текста
  MODEL_VIEWCOLOR_OPTIONS    = 9; // Настройки цвета фона для моделей
  OVERLAP_OBJECT_OPTIONS     =10; // Настройки перекрывающихся объектов
  DIMENTION_OPTIONS_EX       =11; // Настройки размера

// типы колонок для спецификации
  SPC_CLM_FORMAT   = 1;  // формат
  SPC_CLM_ZONE     = 2;  // зона
  SPC_CLM_POS      = 3;  // позиция
  SPC_CLM_MARK     = 4;  // обозначение
  SPC_CLM_NAME     = 5;  // наименование
  SPC_CLM_COUNT    = 6;  // количество
  SPC_CLM_NOTE     = 7;  // примечание
  SPC_CLM_MASSA    = 8;  // масса
  SPC_CLM_MATERIAL = 9;  // материал
  SPC_CLM_USER     = 10; // пользовательская
  SPC_CLM_KOD      = 11; // код
  SPC_CLM_FACTORY  = 12; // завод изготовитель

//типы значений для колонки спецификации
  SPC_INT    = 1; // целый
  SPC_DOUBLE = 2; // вещественный
  SPC_STRING = 3; // строка
  SPC_RECORD = 4; // запись

// типы библиотек стилей
  CURVE_STYLE_LIBRARY           =  1; // библиотека стилей кривых (*.lcs)
  HATCH_STYLE_LIBRARY           =  2; // библиотека стилей штриховок (*.lhs)
  TEXT_STYLE_LIBRARY            =  3; // библиотека стилей текстов   (*.lts)
  STAMP_LAYOUT_STYLE_LIBRARY    =  4; // библиотека стилей описаний штампов (*.lyt)
  GRAPHIC_LAYOUT_STYLE_LIBRARY  =  5; // библиотека стилей оформлений графических документов (*.lyt)
  TEXT_LAYOUT_STYLE_LIBRARY     =  6; // библиотека стилей оформлений текстовых документов (*.lyt)
  SPC_LAYOUT_STYLE_LIBRARY      =  7; // библиотека стилей оформлений спецификаций (*.lyt)

// размерности и типы детали для рассчета массо-ценровочных характеристик
  ST_MIX_MM  = $1;  // миллиметры
  ST_MIX_SM  =  0;  // сантиметры
  ST_MIX_DM  = $2;  // дециметры
  ST_MIX_M   = $3;  // метры
  ST_MIX_GR  =  0;  // граммы
  ST_MIX_KG  = $10; // килограммы
  ST_MIX_EXT =  0;  // выдавливание
  ST_MIX_RV  = $20; // вращение

// тип локальной привязки
  SN_NEAREST_POINT  = 1; // ближайшая точка
  SN_NEAREST_MIDDLE = 2; // середина
  SN_CENTRE         = 3; // центр
  SN_INTERSECT      = 4; // пересечение
  SN_GRID           = 5; // по сетке
  SN_XY_ALIGN       = 6; // выравнивание
  SN_ANGLE          = 7; // угловая привязка
  SN_POINT_CURVE    = 8; // точка на кривой

// типы общих настроек для привязок
  SN_DYNAMICALLY      = $1; // привязки отслеживать динамически
  SN_ASSISTANT        = $2; // писать текст
  SN_BACKGROUND_LAYER = $4; // учитывать фоновые слои и виды
  SN_SUSPENDED        = $8; // подавить привязки


// типы параметрических ограничений
  CONSTRAINT_FIXED_POINT        =  1; // фиксировать точку
  CONSTRAINT_POINT_ON_CURVE     =  2; // точка на кривой
  CONSTRAINT_HORIZONTAL         =  3; // горизонталь
  CONSTRAINT_VERTICAL           =  4; // вертикаль
  CONSTRAINT_PARALLEL           =  5; // параллельность двух прямых или отрезков
  CONSTRAINT_PERPENDICULAR      =  6; // перпендикулярность двух прямых или отрезков
  CONSTRAINT_EQUAL_LENGTH       =  7; // равенство длин двух отрезков
  CONSTRAINT_EQUAL_RADIUS       =  8; // равенство радиусов двух дуг/окружностей
  CONSTRAINT_HOR_ALIGN_POINTS   =  9; // выравнивать две точки по горизонтали
  CONSTRAINT_VER_ALIGN_POINTS   = 10; // выравнивать две точки по вертикали
  CONSTRAINT_MERGE_POINTS       = 11; // совпадение двух точек
  CONSTRAINT_TANGENT_TWO_CURVES = 15; // касание двух кривых
  CONSTRAINT_COLLINEAR          = 17; // колиниарность отрезков

// типы объектов спецификации
  SPC_BASE_OBJECT  = 1; // базовый объект ( редактируется пользователем )
  SPC_COMMENT      = 2; // комментарий ( редактируется пользователем )
  SPC_SECTION_NAME = 3; // наименование раздела ( создается по стилю СП автоматически )
  SPC_BLOCK_NAME   = 4; // наименование блока исполнений ( создается по стилю СП автоматически )
  SPC_RESERVE_STR  = 5; // резервная строка ( создается по стилю СП автоматически )
  SPC_EMPTY_STR    = 6; // пустая строка ( создается по стилю СП автоматически )

// типы сортировки
  SPC_SORT_OFF      = 0; // нет сортировки
  SPC_SORT_COMPOS   = 1; // составная сортировка
  SPC_SORT_ALPHABET = 2; // сортировка по алфавиту
  SPC_SORT_UP       = 3; // сортировка по возрастанию колонок
  SPC_SORT_DOCUMENT = 4; // сортировка раздела документация
  SPC_SORT_DOWN     = 5; // сортировка по убыванию колонок
  SPC_SORT_COMPOSDOWN = 6; // составная сортировка по убыванию 

// типы специальных символов ( аннотационный объект )
  ARROW_INSIDE_SYMBOL       = 1;  // стрелка (ласточкин хвост) изнутри
  ARROW_OUT_SIDE_SYMBOL     = 2;  // стрелка (ласточкин хвост) снаружи
  TICK_TAIL_SYMBOL          = 3;  // засечка с продолжением кривой (с хвостиком)
  UP_HALF_ARROW_SYMBOL      = 4;  // верхняя половина стрелки изнутри
  DOWN_HALF_ARROW_SYMBOL    = 5;  // нижняя половина стрелки изнутри
  BIG_ARROW_INSIDE_SYMBOL   = 6;  // большая стрелка изнутри (7мм)
  ARROW_ORDINATE_DIM_SYMBOL = 7;  // стрелка для размера высоты(штрихи длиной 4 мм под углом 45 гр)
  TRIANGLE_SYMBOL           = 8;  // треугольник по напр-нию кривой
  CIRCLE_RAD2_SYMBOL        = 9;  // окружность радиусом 2 мм тонкой линией - для шер-сти и линии-выноски
  CENTRE_MARKER_SYMBOL      = 10; // обозначение фиктивного центра в виде большого креста
  GLUE_SIGN_SYMBOL          = 11; // знак склеивания
  SOLDER_SIGN_SYMBOL        = 12; // знак пайки
  SEWING_SIGN_SYMBOL        = 13; // знак сшивания
  CRAMP_SIGN_SYMBOL         = 14; // знак соединения внахлестку металл.скобами
  CORNER_CRAMP_SIGN_SYMBOL  = 15; // знак углового соединения металл.скобами
  MONTAGE_JOINT_SYMBOL      = 16; // знак монтажного шва
  TICK_SYMBOL               = 17; // засечка без продолжения кривой (без хвостика)
  TRIANGLE_CURR_CS          = 18; // треугольник по текущей СК - для базы
  ARROW_CLOSED_INSIDE       = 19; // закрытая стрелка изнутри
  ARROW_CLOSED_OUTSIDE      = 20; // закрытая стрелка снаружи
  ARROW_OPEN_INSIDE         = 21; // открытая стрелка изнутри
  ARROW_OPEN_OUTSIDE        = 22; // открытая стрелка снаружи
  ARROW_RIGHTANGLE_INSIDE   = 23; // стрелка 90 град изнутри
  ARROW_RIGHTANGLE_OUTSIDE  = 24; // стрелка 90 град снаружи
  SYMBOL_DOT                = 25; // точка (диаметр равен длины стрелки размера)
  SYMBOL_SMALLDOT           = 26; // точка маленькая (диаметр равен 0.6 длины стрелки размера)
  AUXILIARY_POINT           = 27; // вспомогательная точка
  LEFT_TICK_SYMBOL          = 28; // засечка с наклоном влево

//------------------------------------------------------------------------------
// Битовые флаги для функции ksSetMacroParam;
// указание какой тип редактирования поддерживает макро
// ---
  MP_DBL_CLICK_OFF   = $01; //>0 редактирование по двойному нажанию выключено
  MP_HOTPOINTS       = $02; //>0 интерфейс hot точек включен
  MP_EXTERN_EDIT     = $03; //>0 интерфейс внешнего управления

// типы документов DocType
  lt_DocSheetStandart = 1;  // чертеж стандартный
  lt_DocSheetUser     = 2;  // чертеж нестандартный
  lt_DocFragment      = 3;  // фрагмент
  lt_DocSpc           = 4;  // спецификация
  lt_DocPart3D        = 5;  // 3d-документ модель
  lt_DocAssemble3D    = 6;  // 3d-документ сборка
  lt_DocTxtStandart   = 7;  // текстовый документ стандартный
  lt_DocTxtUser       = 8;  // текстовый документ нестандартный
  lt_DocSpcUser       = 9;  // спецификация нестандартный формат

// система квалитета LtQualSystem
  lt_qsShaft = 1; // вала
  lt_qsHole  = 2; // отверстия

// квалитеты LtQualDir
  lt_qdPreferable = 1; // предпочтительные
  lt_qdBasic      = 2; // основные
  lt_qdAdditional = 3; // дополнительные

// типы данных для LtVariant - LtVariantType
  ltv_Char   = 1;  // символ
  ltv_UChar  = 2;  // байт
  ltv_Int    = 3;  // целое
  ltv_UInt   = 4;  // беззнаковое целое
  ltv_Long   = 5;  // длинное целое
  ltv_Float  = 6;  // вешественное
  ltv_Double = 7;  // двойное вешественное
  ltv_Str    = 8;  // строка 255 символов char[255]
  ltv_NoUsed = 9;  // пока не используется
  ltv_Short  = 10; // короткое целое
  ltv_WStr   = 11; // строка 255 символов WideChar[255]

// типы размеров высоты
  OD_FRONTVIEW      = $00; // для вида спереди, с полкой и стрелкой, возможна выносная линия
  OD_TOPVIEW        = $08; // для вида сверху без линии-выноски - только текст в рамке
  OD_TOPVIEWLEADER  = $10; // для вида сверху с линией-выноской

//-----------------------------------------------------------------------------
//определения для конвертации в растровый формат
// ---
  FORMAT_BMP  = 0;
  FORMAT_GIF  = 1;
  FORMAT_JPG  = 2;
  FORMAT_PNG  = 3;
  FORMAT_TIF  = 4;
  FORMAT_TGA  = 5;
  FORMAT_PCX  = 6;
  FORMAT_WMF  = 16;  
  FORMAT_EMF  = 17;

//-----------------------------------------------------------------------------
//определения для настройки цвета растрового формата
// ---
  BLACKWHITE  = 0;   //цвет черный
  COLORVIEW   = 1;   //цвет установленный для вида
  COLORLAYER  = 2;   //цвет установленный для слоя
  COLOROBJECT = 3;   //цвет установленный для объекта

//-----------------------------------------------------------------------------
// орределения бит на пиксел для конвертации в растровый формат
// ---
  BPP_COLOR_01 = 1;  //"Черный"
  BPP_COLOR_02 = 2;  //"4 цвета"
  BPP_COLOR_04 = 4;  //"16 цветов"
  BPP_COLOR_08 = 8;  //"256 цветов"
  BPP_COLOR_16 = 16; //"16 разрядов"
  BPP_COLOR_24 = 24; //"24 разряда"
  BPP_COLOR_32 = 32; //"32 разряда"

// перечисление возможных типов узла дерева библиотеки документов LtNodeType
  tn_root      = 0;  // корень дерева
  tn_dir       = 1;  // папка (директория)
  tn_file      = 2;  // документ (файл)

// Типы стандартных видов
  VIEW_FRONT   = $01;  //  Спереди
  VIEW_REAR    = $02;  //  Сзади
  VIEW_UP      = $04;  //  Сверху
  VIEW_DOWN    = $08;  //  Снизу
  VIEW_LEFT    = $10;  //  Слева
  VIEW_RIGHT   = $20;  //  Справа
  VIEW_ISO     = $40;  //  Изометрия


// типы значка объекта "Выносной элемент" LtRemoteElmSignType
  re_Circle    = 0;    // окружность
  re_Rectangle = 1;    // прямоугольник
  re_Ballon    = 2;    // скругленный прямоугольник

// Тип изменения порядка объектов
//enum ChangeOrderType
  co_Top          = 1; // Выше всех
  co_Bottom       = 2; // Ниже всех
  co_BeforeObject = 3; // Перед объектом
  co_AfterObject  = 4; // За объектом
  co_UpLevel      = 5; // На уровень вперед
  co_DownLevel    = 6; // На уровень назад

// Поле тип линии имеет значения( системные стили ) :
//  1  - основная,
//  2  - тонкая,
//  3  - осевая,
//  4  - штриховая,
//  5  - волнистая линия
//  6  - вспомогательная,
//  7  - утолщенная,
//  8  - штрих-пунктир с 2 точками,
//  9  - штриховая толстая
//  10 - осевая толстая
//  11 - тонкая, включаемая в штриховку
//  12 - ISO штриховая линия
//  13 - ISO штриховая линия (дл. пробел)
//  14 - ISO штрихпунктирная линия (дл. штрих)
//  15 - ISO штрихпунктирная линия (дл. штрих 2 пунктира)
//  16 - ISO штрихпунктирная линия (дл. штрих 3 пунктира)
//  17 - ISO пунктирная линия
//  18 - ISO штрихпунктирная линия (дл. и кор. штрихи)
//  19 - ISO штрихпунктирная линия (дл. и 2 кор. штриха) 
//  20 - ISO штрихпунктирная линия
//  21 - ISO штрихпунктирная линия (2 штриха)
//  22 - ISO штрихпунктирная линия (2 пунктира)
//  23 - ISO штрихпунктирная линия (3пунктира)
//  24 - ISO штрихпунктирная линия (2 штриха 2 пунктира)
//  25 - ISO штрихпунктирная линия (2 штриха 3 пунктира)


// Поле тип точки для точки( системные стили ) :
// 0 - точка
// 1 - крестик
// 2 - х-точка
// 3 - квадрат
// 4 - треугольник
// 5 - окружность
// 6 - звезда
// 7 - перечеркнутый квадрат
// 8 - утолщенный плюс


// Поле тип штриховки для штриховки( системные стили ) :
// 0  - металл
// 1  - неметалл 
// 2  - дерево
// 3  - камень естественный
// 4  - керамика
// 5  - бетон
// 6  - стекло
// 7  - жидкость
// 8  - естественный грунт
// 9  - насыпной грунт
// 10 - камень искусственный
// 11 - железобетон
// 12 - напряженный железобетон
// 13 - дерево в продольном сечении
// 14 - песок


// Поле style для текста( системные стили ) :
// 0 -умолчательный стиль для данного типа объекта
// 1  текст на чертеже
// 2  текст для технических требований
// 3  текст размерных надписей
// 4  текст шероховатости
// 5  текст для линии выноски  ( позиционной )
// 6  текст для линии выноски  ( над\под полкой )
// 7  текст для линии выноски  ( сбоку )
// 8  текст для допуска формы
// 9  текст для таблицы ( заголовок )
// 10 текст для таблицы ( ячейка )
// 11 текст для линии разреза
// 12 текст для стрелки вида
// 13 текст для для неуказанной шероховатости
// 14 текст для обозначения изменения
// 15 текст для фигурной скобки
// 16 текст для номера узла
// 17 текст для выносной надписи
// 18 текст для обозначения узла
// 19 текст для марки координационной оси
// 20 текст для МПО(марка/позиционное обозначение с линией-выноской)
// 21 текст для МПО(марка/позиционное обозначение) на линии
// 22 текст для МПО(марка/позиционное обозначение) без линии выноски
// 23 текст для заголовков спецификации

// Стандартые курсоры Компас
  OCR_SELECT     = $FFFE; //  Курсор ввиде SELECT
  OCR_SNAP       = $FFFD; //  Курсор ввиде SNAP
  OCR_CATCH      = $FFFC; //  Курсор ввиде CATCH
  OCR_DEDAULT    = 0;     //  Курсор в виде креста

implementation
end.










