---
title: "Графический документ (Интерфейсы - ksDocument2D и IDocument2D)"
type: interface
api: [api7]
domain: [2d]
tags: [interface, api7, 2d, ksdocument2d]
sources:
  - ksdocument2d.html
---

*API интерфейсов. Версия 5*


## Графический документ (Интерфейсы - ksDocument2D и IDocument2D)

Интерфейс графического документа системы КОМПАС
Интерфейс событий графического документа; работа с файлами...
Примечание:
Данный интерфейс в автоматизации может быть получен от интерфейса API Kompas KompasObject с помощью методов KompasObject::Document2D, KompasObject::ActiveDocument2D.
Интерфейсы фантомов
Интерфейсы видов, слоев, запроса к системе
Интерфейсы параметров графических примитивов
Параметры графического документа (Интерфейс ksDocumentParam)
Фрагмент (Интерфейс ksFragment)
Основная надпись (Интерфейс ksStamp)
Интерфейс результатов редактирования объекта (Интерфейс ksObject2DNotifyResult, IObject2DNotifyResult)
Источник событий менеджера выделенных объектов (Интерфейс SelectionMngNotify)
Источник событий объектов графического документа (Интерфейс Object2DNotify)
Источник событий графического документа (Интерфейс Document2DNotify)
Интерфейс привязки (Интерфейс ksSnapOptions)
Интерфейс параметров перекрывающихся объектов (Интерфейсы ksOverlapObjectOptions)
Интерфейс математических функций (Интерфейс ksMathematic2D)
Интерфейсы параметров формата и компоновки чертежа
МЦХ плоской фигуры (Интерфейс ksInertiaParam)
Интерфейсы параметров стилей объектов
Интерфейсы параметров размеров
Интерфейсы параметров обозначений
Интерфейс параметров копирования объекта (Интерфейс ksCopyObjectParam)
Итератор (Интерфейс ksIterator)
Хранение данных некоторого типа (Интерфейс ksLtVariant)
Параметры, определяемые пользователем(Интерфейс ksUserParam)
Данные типа DOUBLE (Интерфейс ksDoubleValue)
Строка до 255 символов (Интерфейс ksChar255)
Интерфейс параметров параметризации группы объектов (Интерфейсы ksParametrizationParam, IParametrizationParam)
ИнIтерфейс информации о текущей привязке (Интерфейс ISnapInfo)
Параметрические связи и ограничения (Интерфейс ksConstraintParam)
Параметры сохранения растра (Интерфейсы ksRasterFormatParam, IRasterFormatParam)
Интерфейсы спецификации


## GetDocument2DNotify - Получить источник событий для графического документа

Синтаксис Automation:
```
Document2DNotify* GetDocument2DNotify();
Возвращаемое значение:
- указатель на интерфейс источника событий Document2DNotify.
```


## GetFragment - Получить указатель на интерфейс фрагмента

Синтаксис Automation:
```
LPDISPATCH GetFragment();
Возвращаемое значение:
- указатель на интерфейс фрагмента ksFragment.
```


## GetObject2DNotify - Получить интерфейс источника событий для 2D документов

Синтаксис Automation:
```
ksObject2DNotify * GetObject2DNotify (long objType);
Входные параметры:
objType    - объекты, для которых предназначен данный интерфейс событий.
Возвращаемое значение:
- указатель на интерфейс источника событий Object2DNotify.
```
Примечание:
Значением objType является либо тип объекта (ALL_OBJ...AXISLINE_OBJ, VIEW_OBJ), либо указатель на объект.
•Если задан тип объекта, события генерируются для всех объектов этого типа.
•Если задан указатель на объект, события генерируются только для этого объекта.
•Если задан тип объектов ALL_OBJ, события генерируются для всех объектов.


## GetObject2DNotifyResult - Получить интерфейс результатов редактирования объекта графического документа

Аналог данного метода при использовании API экспортных функций - ksGetObject2DNotifyResult.
Синтаксис Automation:
```
ksObject2DNotifyResult * GetObject2DNotifyResult();
Возвращаемое значение:
- указатель на интерфейс результатов редактирования объекта ksObject2DNotifyResult.
```


## GetSelectionMngNotify - Получить интерфейс источника событий для графических документов - менеджер выделенных объектов

Синтаксис Automation:
```
ksSelectionMngNotify * GetSelectionMngNotify();
Возвращаемое значение:
- указатель на интерфейс источника событий SelectionMngNotify.
```


## GetSpecification - Получить указатель на интерфейс для работы с объектами спецификации

Синтаксис Automation:
```
LPDISPATCH GetSpecification();
Возвращаемое значение:
- указатель на интерфейс для работы с объектами спецификации ksSpecification.
```


## GetStamp - Получить интерфейс ksStamp основной надписи документа

Синтаксис Automation:
```
LPDISPATCH GetStamp();
Возвращаемое значение:
- указатель на интерфейс основной надписи ksStamp.
```


## GetStampEx - Получить указатель на интерфейс основной надписи чертежа

Синтаксис Automation:
```
LPDISPATCH GetStampEx (long sheetNumb);
Входные параметры:
sheetNumb    - номер листа, начиная с 1.
Возвращаемое значение:
- указатель на интерфейс основной надписи ksStamp.
```


## ksAddObjectToMacro - Добавить объект, слой, вид или группу объектов в макроэлемент

Аналог данного метода при использовании API экспортных функций - ksAddObjectToMacro.
Синтаксис Automation:
```
long ksAddObjectToMacro (long macro, long obj);
Входные параметры:
macro    - указатель на макроэлемент,
obj    - указатель на добавляемый объект.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```


## ksAddObjGroup - Добавить объект в группу

Аналог данного метода при использовании API экспортных функций - AddObjGroup.
Синтаксис Automation:
```
long ksAddObjGroup (long group, long obj);
Входные параметры:
group    - указатель на группу,
obj    - указатель на добавляемый объект.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Если указатель на группу равен нулю, то добавление производится в группу выделения (т.е. происходит выделение объекта).


## ksAddPowerForm - Ввести параметр для построения NURBS кусочно-степенным способом

Аналог данного метода при использовании API экспортных функций - ksAddPowerForm.
Синтаксис Automation:
```
long ksAddPowerForm (double x, double y);
Входные параметры:
x, y    - параметры степенной функции (см. Примечание).
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Кусочно-степенная форма состоит из последовательности стыкующихся полиномов:
P0 [0, 1), P1 [1, 2), ... Pk [k, k1),
где Pi - полином, [i, i1) - интервал определения,
Pi( t ).x = a0.x a1.x * (t - i) a2.x * (t - i) * (t - i) ... an.x * (t - i)^n
Pi( t ).y = a0.y a1.y * (t - i) a2.y * (t - i) * (t - i) ... an.y * (t - i)^n
Функция ksAddPowerForm должна вызываться последовательно n1 раз для пар параметров (a0.x, a0.y), (a1.x, a1.y), ... (an.x, an.y).
Затем вызывается функция ksCreatePowerArc, которая создает из переданных параметров дугу NURBS степени n 1 и присоединяет ее к существующей кривой NURBS.


## ksAddStyle - Добавить в документ новый стиль

Аналог данного метода при использовании API экспортных функций - AddStyle.
Синтаксис Automation:
```
long ksAddStyle (short type, LPDISPATCH param, short copy);
Входные параметры:
type    тип стиля,
param    указатель на интерфейс соответствующего типа,
copy    - признак создания стиля: 0 - создать вручную, 1- взять стиль из библиотеки.
Типы стилей и интерфейсы...
Возвращаемое значение:
идентификатор стиля    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечания:
1. В настоящее время метод реализован для стилей кривых, текстов и штриховок.
2. При копировании стиля из библиотеки param - указатель на интерфейс ksLibStyle.


## ksAngBreakDimension - проставить угловой размер с обрывом

Аналог данного метода при использовании API экспортных функций - AngBreakDimension.
Синтаксис Automation:
```
long ksAngBreakDimension (LPDISPATCH angPar);
Входной параметр:
angPar    - указатель на интерфейс углового размера с обрывом ksABreakDimParam.
Возвращаемое значение:
указатель на угловой размер с обрывом    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksAngDimension - Проставить угловой размер

Аналог данного метода при использовании API экспортных функций - AngDimension.
Синтаксис Automation:
```
long ksAngDimension (LPDISPATCH angPar);
Входной параметр:
angPar    - указатель на интерфейс углового размера ksADimParam.
Возвращаемое значение:
указатель на угловой размер    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksAnnArcByPoint - Создать аннотационную дугу по точкам

Аналог данного метода при использовании API экспортных функций - AnnArcByPoint.
Синтаксис Automation:
```
long ksAnnArcByPoint (double xc,
double yc,
double rad,
double x1,
double y1,
double x2,
double y2,
short direction,
short term1,
short term2,
long style);
Входные параметры:
xc, yc    - координаты центра дуги,
rad    - радиус дуги,
x1, y1    - координаты начальной точки дуги,
x2, y2    - координаты конечной точки дуги,
direction    - направление отрисовки дуги: 1 - против часовой стрелки, -1 - по часовой стрелке,
term1, term2    типы значков на концах дуги,
style    стиль линии.
Системные типы значков...
Системные стили линий...
Возвращаемое значение:
указатель на аннотационную дугу    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksAnnCircle - Создать объект "Аннотационная окружность"

Аналог данного метода при использовании API экспортных функций - ksAnnCircle.
Синтаксис Automation:
```
long ksAnnCircle( double xc,
double yc,
double rad,
long style );
Входные параметры:
xc, yc    - координаты центра окружности,
rad    - радиус окружности,
style    - стиль линии.
Возвращаемое значение:
указатель на аннотационную окружность    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
1. Аннотационные объекты можно создавать только в составе макро. Допускается создание аннотационных объектов во временной группе для последующего добавления в макро.
2. При разрушении макро-аннотационные объекты превращаются в геометрические.


## ksAnnEllipse - Создать объект "Аннотационный эллипс"

Аналог данного метода при использовании API экспортных функций - ksAnnEllipse.
Синтаксис Automation:
```
long ksAnnEllipse( LPDISPATCH par );
Входные параметры:
par    - указатель на интерфейс параметров эллипса ksEllipseParam,
Возвращаемое значение:
указатель на аннотационный эллипс    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
1. Аннотационные объекты можно создавать только в составе макро. Допускается создание аннотационных объектов во временной группе для последующего добавления в макро.
2. При разрушении макро-аннотационные объекты превращаются в геометрические.


## ksAnnEllipseArc - Создать объект "Аннотационная дуга эллипса"

Аналог данного метода при использовании API экспортных функций - ksAnnEllipseArc.
Синтаксис Automation:
```
long ksAnnEllipseArc( LPDISPATCH par,
short term1,
short term2 );
Входные параметры:
par    - указатель на интерфейс параметров параметров дуги эллипса ksEllipseArcParam,
term1, term2    - типы значков на концах ломаной.
Возвращаемое значение:
указатель на аннотационную дугу эллипса    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
1. Аннотационные объекты можно создавать только в составе макро. Допускается создание аннотационных объектов во временной группе для последующего добавления в макро.
2. При разрушении макро-аннотационные объекты превращаются в геометрические.


## ksAnnLineSeg - Создать аннотационный отрезок

Аналог данного метода при использовании API экспортных функций - AnnLineSeg.
Синтаксис Automation:
```
long ksAnnLineSeg (double x1,
double y1,
double x2,
double y2,
short term1,
short term2,
long style);
Входные параметры:
x1, y1    - координаты первой точки отрезка,
x2, y2    - координаты второй точки отрезка,
term1, term2    - типы значков на концах линии,
style    - стиль линии.
Системные типы значков...
Системные стили линий...
Возвращаемое значение:
указатель на аннотационный отрезок    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksAnnParEllipseArc - Создать объект "Аннотационная дуга эллипса"

Аналог данного метода при использовании API экспортных функций - ksAnnParEllipseArc.
Синтаксис Automation:
```
long LIB_FUNC ksAnnParEllipseArc( LPDISPATCH par,
short term1,
short term2 );
Входные параметры:
par    - указатель на интерфейс параметров параметров дуги эллипса ksEllipseArcParam1,
term1, term2    - типы значков на концах ломаной.
Возвращаемое значение:
указатель на аннотационную дугу эллипса    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
1. Аннотационные объекты можно создавать только в составе макро. Допускается создание аннотационных объектов во временной группе для последующего добавления в макро.
2. При разрушении макро-аннотационные объекты превращаются в геометрические.


## ksAnnPoint - Создать объект "точка" c аннотационной точкой привязки

![point_styles](../resources/images_point_styles.jpg)

Аналог данного метода при использовании API экспортных функций - ksAnnPoint.
Синтаксис Automation:
```
long ksAnnPoint(double x,
double y,
long style);
Входные параметры:
x, y    - координаты точки,
style    - стиль отрисовки точки: 0 - вспом. точка, 1 - плюс тонкий, 2 - крест, 3 - квадрат, 4 - треугольник, 5 - круг, 6 - звезда, 7 - конверт, 8 - плюс основной.
Возвращаемое значение:
указатель на точку    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
1. Аннотационные объекты можно создавать только в составе макро. Допускается создание аннотационных объектов во временной группе для последующего добавления в макро.
2. При разрушении макро-аннотационные объекты превращаются в геометрические.
3. Координаты точки привязки аннотационные, не зависят от масштаба вида.


## ksAnnPolyline - Создать аннотационную ломаную линию

Аналог данного метода при использовании API экспортных функций - ksAnnPolyline.
Синтаксис Automation:
```
long ksAnnPolyline ( long style,
short term1,
short term2 );
Входные параметры:
style    - стиль линии,
term1, term2    - типы значков на концах ломаной.
Возвращаемое значение:
указатель на аннотационную ломаную линию    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
1. Аннотационные объекты можно создавать только в составе макро. ksDocument2D::ksAnnPolyline - составной объект. Объекты ksDocument2D::ksPoint, вводимые между операторами ksDocument2D::ksAnnPolyline и ksDocument2D::ksEndObj, принадлежат аннотационной ломаной. Метод ksDocument2D::ksEndObj возвращает указатель на аннотационную ломаную линию. Допускается создание аннотационных объектов во временной группе для последующего добавления в макро.
2. При разрушении макро аннотационные объекты превращаются в геометрические.


## ksAnnPolylineEx - Создать объект "Аннотационная ломаная линия" по интерфейсу параметров

Аналог данного метода при использовании API экспортных функций - ksAnnPolylineEx
Синтаксис Automation:
```
long ksAnnPolylineEx( LPDISPATCH par,
short term1,
short term2 )
Входные параметры:
par    - указатель на интерфейс параметров ломаной ksPolylineParam,
term1, term2    - типы на концах ломаной.
Возвращаемое значение:
указатель на аннотационную ломаную    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
1. Аннотационные объекты можно создавать только в составе макро. Допускается создание аннотационных объектов во временной группе для последующего добавления в макро.
2. При разрушении макро-аннотационные объекты превращаются в геометрические.


## ksAnnTextEx - Создать объект "Текст с аннотационной точкой привязки"

Аналог данного метода при использовании API экспортных функций - ksAnnTextEx.
Синтаксис Automation:
```
long ksAnnTextEx( LPDISPATCH txtParam,
long align );
Входные параметры:
txtParam    - указатель на интерфейс параметров текста,
align    - выравнивание текста: -1 - установить выравнивание как у стиля текста, 0 - слева, 1 - по центру, 2 - справа, 3 - на всю ширину.
Возвращаемое значение:
указатель на текст    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
1. Аннотационные объекты можно создавать только в составе макро. Допускается создание аннотационных объектов во временной группе для последующего добавления в макро.
2. При разрушении макро-аннотационные объекты превращаются в геометрические.
3. Координаты точки привязки аннотационные не зависят от масштаба вида.


## ksApproximationCurve - Аппроксимировать кривую дугами и отрезками с определенной точностью

Аналог данного метода при использовании API экспортных функций - ksApproximationCurve.
Синтаксис Automation:
```
long ksApproximationCurve (long p,
double eps,
BOOL curentLayer,
double maxRad,
BOOL smooth);
Входные параметры:
p    - указатель на аппроксимируемую кривую,
eps    - точность аппроксимации (от 1e-7 до 1),
curentLayer    - тип размещения получившихся объектов на слоях: FALSE - на слой кривой, TRUE - в текущий слой,
maxRad    - максимально допустимый радиус дуг, (0 - ограничение не накладывается),
smooth    - признак сопряжения: 1 - гладкое, 0 - не гладкое.
Возвращаемое значение:
указатель на контур, дугу, отрезок    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
Аппроксимируются кривые Безье, NURBS, эквидистанты, эллипсы, дуги эллипсов и контуры. Остальные кривые игнорируются.


## ksArcBy3Points - Создать дугу по трем точкам

Аналог данного метода при использовании API экспортных функций - ArcBy3Points.
Синтаксис Automation:
```
long ksArcBy3Points (double x1,
double y1,
double x2,
double y2,
double x3,
double y3,
long style);
Входные параметры:
x1, y1    - координаты начальной точки на дуге,
x2, y2    - координаты средней точки на дуге,
x3, y3    - координаты конечной точки на дуге,
style    - стиль линии.
Системные стили линий...
Возвращаемое значение:
указатель на дугу    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksArcByAngle - Создать дугу по двум точкам и углу раствора

Аналог данного метода при использовании API экспортных функций - ArcByAngle.
Синтаксис Automation:
```
long ksArcByAngle (double xc,
double yc,
double rad,
double f1,
double f2,
short direction,
long style);
Входные параметры:
xc, yc    - координаты центра дуги,
rad    - радиус дуги,
f1, f2    - начальный и конечный угол дуги в градусах,
direction    - направление отрисовки дуги: 1 - против часовой стрелки, -1 - по часовой стрелке,
style    - стиль линии.
Системные стили линий...
Возвращаемое значение:
указатель на дугу    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksArcByPoint - Создать дугу по центру и конечным точкам

Аналог данного метода при использовании API экспортных функций - ArcByPoint.
Синтаксис Automation:
```
long ksArcByPoint (double xc,
double yc,
double rad,
double x1,
double y1,
double x2,
double y2,
short direction,
long style);
Входные параметры:
xc, yc    - координаты центра дуги,
rad    - радиус дуги,
x1, y1    - координаты начальной точки дуги,
x2, y2    - координаты конечной точки дуги,
direction    - направление отрисовки дуги: 1 - против часовой стрелки, -1 - по часовой стрелке,
style    - стиль линии.
Системные стили линий...
Возвращаемое значение:
указатель на дугу    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksAssociationViewMatrix3D - Создать матрицу ассоциативного вида

Аналог данного метода при использовании API экспортных функций - ksAssociationViewMatrix3D.
Синтаксис Automation:
```
VARIANT ksAssociationViewMatrix3D (long view);
Входные параметры:
view    - указатель на ассоциативный вид.
Возвращаемое значение:
SAFEARRAY double (VT_ARRAY    VT_R8) В массиве будут лежать 16 элементов, которые представляют собой матрицу размера 4х4.
```
Примечание:
Если указатель на вид не задан (view = 0), то метод будет выполняться для текущего вида.


## ksAxisLine - Создать объект "Осевая линия"

Аналог данного метода при использовании API экспортных функций - ksAxisLine.
Синтаксис Automation:
```
long ksAxisLine (LPDISPATCH param);
Входные параметры:
param    - указатель на интерфейс ksAxisLineParam параметров осевой линии.
Возвращаемое значение:
указатель на объект "Осевая линия"    - в случае успешного завершения,
0    - в случае неудачи.
```


## ksBase - Проставить обозначения базы

Аналог данного метода при использовании API экспортных функций - Base.
Синтаксис Automation:
```
long ksBase (LPDISPATCH par);
Входной параметр:
par    - указатель на интерфейс обозначения базы ksBaseParam.
Возвращаемое значение:
указатель на обозначение базы    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksBezier - Создать кривую Безье

Аналог данного метода при использовании API экспортных функций - Bezier.
Синтаксис Automation:
```
long ksBezier (short closed, long style);
Входные параметры:
closed    - признак замыкания сплайна: 0 - незамкнутый, 1 - замкнутый,
style    стиль линии.
Системные стили линий...
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Кривая Безье - составной объект. Объекты ksDocument2D::ksBezierPoint, вводимые между методами ksDocument2D::ksBezier и ksDocument2D::ksEndObj, принадлежат кривой. ksDocument2D::ksEndObj возвращает указатель на кривую Безье.


## ksBezierPoint - Создать точку для построения кривой Безье

Аналог данного метода при использовании API экспортных функций - BezierPoint.
Синтаксис Automation:
```
long ksBezierPoint (LPDISPATCH param);
Входной параметр:
param    - указатель на интерфейс кривой Безье ksBezierPointParam.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```


## ksBrandLeader - Создать линию-выноску для обозначения клеймения

Аналог данного метода при использовании API экспортных функций - BrandLeader.
Синтаксис Automation:
```
long ksBrandLeader (LPDISPATCH brandLeaderParam);
Входной параметр:
brandLeaderParam    - указатель на интерфейс параметров линии-выноски для обозначения клеймения ksBrandLeaderParam.
Возвращаемое значение:
указатель на линию-выноску для обозначения клеймения    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksCalcRasterScale - Рассчитать масштаб для вставки растра в прямоугольник заданных габаритов

Аналог данного метода при использовании API экспортных функций - ksCalcRasterScale.
Синтаксис Automation:
```
double ksCalcRasterScale (BSTR fileName, double w, double h);
Входные параметры:
fileName    - полный путь к файлу растра,
w    - ширина габаритного прямоугольника,
h    - высота габаритного прямоугольника.
Возвращаемое значение:
масштаб для вставки растра в прямоугольник    - в случае успеха,
0    - в случае неудачи.
```


## ksCentreMarker - Создать обозначение центра

Аналог данного метода при использовании API экспортных функций - ksCentreMarker.
Синтаксис Automation:
```
long ksCentreMarker (LPDISPATCH param);
Входной параметр:
param    - указатель на интерфейс обозначения центра ksCentreParam.
Возвращаемое значение:
указатель на обозначение центра    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksChangeLeader - Создать линию выноску для обозначения изменения

Синтаксис Automation:
```
long ksChangeLeader( LPDISPATCH leaderParam );
Входные параметры:
leaderParamr    - указатель на интерфейс параметров обозначения изменения ksChangeLeaderParam.
Возвращаемое значение:
указатель reference обозначения изменения    - в случае успешного завершения.
```


## ksChangeObjectInLibRequest - Изменить фантом или компоненты команд

Аналог данного метода при использовании API экспортных функций - ksChangeObjectInLibRequest.
Синтаксис Automation:
```
long ksChangeObjectInLibRequest (LPDISPATCH info,
LPDISPATCH phantom);
Входные параметры:
info    - указатель на интерфейс ksRequestInfo,
phantom    - указатель на интерфейс ksPhantom.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Во время работы методов ksDocument2D::ksCursor и ksDocument2D::ksPlacement может возникнуть необходимость изменить фантом или компоненты команд. Функция ksChangeObjectInLibRequest позволяет передать изменения в цикл ksCursor и ksPlacement. Это может понадобиться для отработки команд пользовательских инструментальных панелей.
Предварительно нужно убедиться, что вызов ksCursor и требование к ksCursor передаются в одном документе. Если какой-либо указатель равен 0, соответствующий параметр не используется.


## ksChangeObjectLayer - Изменить слой одного объекта

Аналог данного метода при использовании API экспортных функций - ChangeObjectLayer.
Синтаксис Automation:
```
long ksChangeObjectLayer (long Reference,
long number);
Входные параметры:
Reference    - указатель на объект,
number    - номер слоя, на который переносится объект.
Возвращаемое значение:
-1    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
Слой, на который переносится объект, должен существовать и быть доступным для редактирования (не фоновым и не выключенным).


## ksChangeObjectsOrder - Изменить порядок отрисовки объектов чертежа

Аналог данного метода при использовании API экспортных функций - ksChangeObjectsOrder.
Синтаксис Automation:
```
long ksChangeObjectsOrder (long group, long obj, int orderType);
Входные параметры:
group    - указатель на группу объектов, для которой требуется изменить последовательность отрисовки,
obj    - указатель на объект, относительно которого изменяется отрисовка группы,
orderType    - Тип изменения порядка объектов.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksCircle - Создать окружность

Аналог данного метода при использовании API экспортных функций - Circle.
Синтаксис Automation:
```
long ksCircle (double xc,
double yc,
double rad,
long style);
Входные параметры:
xc, yc    - координаты центра окружности,
rad    - радиус окружности,
style    - стиль линии.
Системные стили линий...
Возвращаемое значение:
указатель на окружность    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksClearGroup - Очистить группу объектов

Аналог данного метода при использовании API экспортных функций - ksClearGroup.
Синтаксис Automation:
```
long ksClearGroup (long group, BOOL deleteTmp);
Входные параметры:
group    - указатель на очищаемую группу (0 - очищается группа селектирования),
deleteTmp    - признак удаления временных элементов: TRUE - временные элементы удаляются, FALSE - временные элементы сохраняются.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```


## ksClearRegion - Очистить указанную область внутри или снаружи границ, заданных группой объектов

Аналог данного метода при использовании API экспортных функций - ksClearRegion.
Синтаксис Automation:
```
long ksClearRegion (long grClear,
long grRegion,
BOOL inside);
Входные параметры:
grClear    - группа геометрии, которую нужно очистить (0 - просматривать все объекты текущего вида),
grRegion    - группа объектов, задающая область очистки,
inside    - признак расположения удаляемых объектов: 0 - снаружи области, ограниченной grRegion, 1 - внутри области.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksClearTableColumnText - Очистить ячейку таблицы или допуска формы

Аналог данного метода при использовании API экспортных функций - ksClearTableColumnText.
Синтаксис Automation:
```
long ksClearTableColumnText (long numb);
Входной параметр:
numb    - номер ячейки,
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Если numb = 0, очищается вся таблица.
Нумерация ячеек начинается с 1.
Функция используется в режиме редактирования таблицы или допуска формы.


## ksCloseDocument - Закрыть документ (чертеж, фрагмент, спецификацию, текстовый документ, деталь, сборку)

Аналог данного метода при использовании API экспортных функций - CloseDocument.
Синтаксис Automation:
```
BOOL ksCloseDocument();
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Если документ не сохранили, взводится флаг соответствующей ошибки.


## ksCloseTechnicalDemand - Закрыть технические требования

Аналог данного метода при использовании API экспортных функций - CloseTechnicalDemand.
Синтаксис Automation:
```
long ksCloseTechnicalDemand();
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```


## ksColouring - Создать фоновую заливку цветом

Аналог данного метода при использовании API экспортных функций - ksColouring.
Синтаксис Automation:
```
long ksColouring (long color);
Входной параметр:
color    - цвет заливки.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Заливка - составной объект. Объекты вида, вводимые между методами ksDocument2D::ksColouring и ksDocument2D::ksEndObj, принадлежат заливке и образуют ее границу.
ksDocument2D::ksEndObj возвращает указатель на заливку.


## ksColouringEx - Создать фоновую заливку цветом

Аналог данного метода при использовании API экспортных функций - ksColouringEx.
Синтаксис Automation:
```
long ksColouringEx (long color, reference group);
Входные параметры:
color    - цвет заливки,
group    - группа, образующая границу заливки.
Возвращаемое значение:
указатель на заливку    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Если color = -1 или 0xFFFFFFFF,то создается заливка цветом фона документа.


## ksColumnNumber - задать номер текущей ячейки

Аналог данного метода при использовании API экспортных функций - ColumnNumber.
Синтаксис Automation:
```
long ksColumnNumber (long numb);
Входной параметр:
numb    - номер ячейки.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Функция используется в режиме редактирования штампа, таблицы, допуска формы, в режиме создания допуска формы.


## ksCombineTwoTableItems - Объединить две ячейки таблицы, если они имеют общую границу

Аналог данного метода при использовании API экспортных функций - ksCombineTwoTableItems.
Синтаксис Automation:
```
long ksCombineTwoTableItems (long index1, long index2);
Входные параметры:
index1    - номер первой ячейки,
index2    - номер второй ячейки.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Нумерация ячеек начинается с 1.
Функция используется в режиме редактирования таблицы или допуска формы.


## ksCommandWindow - Запрос к системе на создание окна с деревом команд

Аналог данного метода при использовании API экспортных функций - CommandWindow.
Синтаксис Automation:
```
long ksCommandWindow (LPDISPATCH info);
Входной параметр:
info    - указатель на интерфейс ksRequestInfo,
Возвращаемое значение:
- идентификатор выбранной команды, определенный в файле ресурсов, - порядковый номер в строке команд.    - в случае успешного завершения,
-1    - если команда не выбрана.
```
Примечание:
Функция создает окно с деревом команд, определяемых строкой команд в интерфейсе ksRequestInfo, или идентификатором меню из файла ресурсов. Команды в строке разделены пробелом или восклицательным знаком. Функции обратной связи передается управление после выбора команды или отказа.
В случае, если callBack равен NULL, управление из ksCommandWindow возвращается немедленно после выбора команды. В противном случае управление вернется, если пользователь закроет окно, или функция обратной связи вернет FALSE.


## ksConicArc - Построить коническое сечение

Аналог данного метода при использовании API экспортных функций - ksConicArc.
Синтаксис Automation:
```
long ksConicArc (LPDISPATCH param);
Входной параметр:
param    - указатель на интерфейс конического сечения ksConicArcParam.
Возвращаемое значение:
указатель на коническое сечение    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
Коническим сечением может быть дуга окружности, дуга эллипса или кривая NURBS.


## ksContour - Создать контур

Аналог данного метода при использовании API экспортных функций - Contour.
Синтаксис Automation:
```
long ksContour (long style);
Входной параметр:
style    - стиль линии.
Системные стили линий...
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
1. Контур - составной объект. Объекты, вводимые между методами ksDocument2D::ksContour и ksDocument2D::ksEndObj, принадлежат контуру.
2. В контуре могут лежать отрезки, дуги, окружности (они превращаются в дуги), сплайны.
3. Конечная точка предыдущего звена должна совпадать с начальной точкой последующего звена.
4. ksDocument2D::ksEndObj возвращает указатель на контур.


## ksConvertTextToCurve - Преобразовать указанный текст в кривые

Аналог данного метода при использовании API экспортных функций - ksConvertTextToCurve.
Синтаксис Automation:
```
long ksConvertTextToCurve (long text);
Входной параметр:
text    - указатель на текст.
Возвращаемое значение:
указатель на временную группу кривых    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksCopyObj - Скопировать объект

Аналог данного метода при использовании API экспортных функций - ksCopyObj.
Синтаксис Automation:
```
long ksCopyObj (long ref,
double xOld,
double yOld,
double xNew,
double yNew,
double scale_,
double angle);
Входные параметры:
ref    - указатель на объект,
xOld, yOld    - координаты базовой точки объекта,
xNew, yNew    - координаты нового положения базовой точки,
scale    - масштаб,
angle    - угол поворота в градусах.
Возвращаемое значение:
указатель на получившийся объект или группу объектов    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
1. Если указатель на объект равен нулю, то копируется группа селектирования (выделенные объекты документа).
2. При копировании одиночного объекта новый объект создается на текущем слое текущего вида.
3. При копировании группы объектов слой сохраняется.
4. При копировании одиночного многослойного макрообъекта он перестает быть многослойным. Макро и входящие в него объекты переносятся на текущий слой. Для копирования многослойного макро с сохранением многослойности требуется добавить его в группу.


## ksCopyObjEx - Копировать объект

Аналог данного метода при использовании API экспортных функций - ksCopyObjEx.
Синтаксис Automation:
```
long ksCopyObjEx (LPDISPATCH param);
Входные параметры:
param    - указатель на интерфейс параметров копирования объекта ksCopyObjectParam.
Возвращаемое значение:
указатель на объект или группу объектов    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
1. Функция позволяет копировать объект (объект вида, вид, группу, слой) в новую точку с возможностью задания масштабирования копии и поворота ее вокруг базовой точки.
2. При копировании одиночного объекта новый объект создается на текущем слое текущего вида.
3. При копировании группы объектов слой сохраняется.
4. При копировании одиночного многослойного макрообъекта он перестает быть многослойным. Макро и входящие в него объекты переносятся на текущий слой. Для копирования многослойного макро с сохранением многослойности требуется добавить его в группу.


## ksCreateDocument - Создать документ (чертеж, фрагмент, текстовый документ, деталь, сборку)

Аналог данного метода при использовании API экспортных функций - CreateDocument.
Синтаксис Automation:
```
BOOL ksCreateDocument (LPDISPATCH par);
Входной параметр:
par    - указатель на интерфейс параметров документа ksDocumentParam.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Созданный документ становится текущим.


## ksCreatePowerArc - Построить дугу NURBS кусочно-степенным способом и присоединить ее к существующей кривой NURBS

Аналог данного метода при использовании API экспортных функций - ksCreatePowerArc.
Синтаксис Automation:
```
long ksCreatePowerArc();
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Параметры для построения дуги определяются функцией ksAddPowerForm.


## ksCreateSheetArbitraryView - Создать произвольный ассоциативный вид

Аналог данного метода при использовании API экспортных функций - ksCreateSheetArbitraryView.
Синтаксис Automation:
```
long ksCreateSheetArbitraryView (LPDISPATCH par, long * number);
Входные параметры:
par    - указатель на интерфейс ksAssociationViewParam параметров ассоциативного вида,
number    - номер создаваемого вида.
Возвращаемое значение:
указатель на вид    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечания:
1. Созданный вид становится текущим.
2. Если значение параметра number = 0, то создается вид с номером по возрастанию.
3. Если значение параметра *number = n, где n = 1 … 255, то создается вид с номером n. Если вид n существует, то ничего не создается.


## ksCreateSheetArrowView - Создать ассоциативный вид по стрелке

Аналог данного метода при использовании API экспортных функций - ksCreateSheetArrowView.
Синтаксис Automation:
```
long ksCreateSheetArrowView (LPDISPATCH par, long * number, long obj);
Входные параметры:
par    - указатель на интерфейс ksAssociationViewParam параметров ассоциативного вида,
number    - номер создаваемого вида,
obj    - указатель на объект "стрелка вида".
Возвращаемое значение:
указатель на вид    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечания:
1. Созданный вид становится текущим.
2. Объект "стрелка вида" должен быть построен в ассоциативном виде. Этот вид будет базовым для создаваемого вида.
3. Если значение параметра number = 0, то создается вид с номером по возрастанию.
4. Если значение параметра *number = n, где n = 1 … 255, то создается вид с номером n. Если вид n существует, то ничего не создается.


## ksCreateSheetProjectionView - Создать проекционный ассоциативный вид

Аналог данного метода при использовании API экспортных функций - ksCreateSheetStandartViews.
Синтаксис Automation:
```
long ksCreateSheetProjectionView (LPDISPATCH par, long * number, long view);
Входные параметры:
par    - указатель на интерфейс ksAssociationViewParam параметров ассоциативного вида,
number    - номер создаваемого вида,
view    - указатель на базовый вид.
Возвращаемое значение:
указатель на вид    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечания:
1. Созданный вид становится текущим.
2. Базовый вид должен быть ассоциативным.
3. Если значение параметра number = 0, то создается вид с номером по возрастанию.
4. Если значение параметра *number = n, где n = 1 … 255, то создается вид с номером n. Если вид n существует, то ничего не создается.


## ksCreateSheetRemoteView - Создать ассоциативный вид выносного элемента

Аналог данного метода при использовании API экспортных функций - ksCreateSheetRemoteView.
Синтаксис Automation:
```
long ksCreateSheetRemoteView (LPDISPATCH par, long * number, long obj);
Входные параметры:
par    - указатель на интерфейс ksAssociationViewParam параметров ассоциативного вида,
number    - номер создаваемого вида,
obj    - указатель на объект "Обозначение выносного элемента".
Возвращаемое значение:
указатель на вид    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечания:
1. Созданный вид становится текущим.
2. Объект "Обозначение выносного элемента" должен быть построен в ассоциативном виде. Этот вид будет базовым для создаваемого вида.
3. Если значение параметра number = 0, то создается вид с номером по возрастанию.
4. Если значение параметра *number = n, где n = 1 … 255, то создается вид с номером n. Если вид n существует, то ничего не создается.


## ksCreateSheetSectionView - Создать ассоциативный вид разреза/сечения

Аналог данного метода при использовании API экспортных функций - ksCreateSheetSectionView.
Синтаксис Automation:
```
long ksCreateSheetSectionView (LPDISPATCH par, long * number, long obj);
Входные параметры:
par    - указатель на интерфейс ksAssociationViewParam параметров ассоциативного вида,
number    - номер создаваемого вида,
obj    - указатель на объект "линия разреза".
Возвращаемое значение:
указатель на вид    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечания:
1. Созданный вид становится текущим.
2. Объект "линия разреза" должен быть построен в ассоциативном виде. Этот вид будет базовым для создаваемого вида.
3. Если значение параметра number = 0, то создается вид с номером по возрастанию.
4. Если значение параметра *number = n, где n = 1 … 255, то создается вид с номером n. Если вид n существует, то ничего не создается.


## ksCreateSheetStandartViews - Создать стандартные ассоциативные виды

Аналог данного метода при использовании API экспортных функций - ksCreateSheetStandartViews.
Синтаксис Automation:
```
BOOL ksCreateSheetStandartViews (LPDISPATCH par, long bitVector, double dx, double dy);
Входные параметры:
par    - указатель на интерфейс ksAssociationViewParam параметров ассоциативного вида,
bitVector    - набор типов, которые нужно создать,
dx    - расстояние между видами по горизонтали,
dy    - расстояние между видами по вертикали.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Последний из созданных видов становится текущим.


## ksCreateSheetView - Создать вид

Аналог данного метода при использовании API экспортных функций - CreateSheetView.
Синтаксис Automation:
```
long ksCreateSheetView (LPDISPATCH par, long* number);
Входные параметры:
par    - указатель на интерфейс параметров вида ksViewParam,
number    - номер вида.
Возвращаемое значение:
указатель на вид    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
Созданный вид становится текущим.
Если вид с указанным номером уже существует, новый вид не создается (ошибка).
Если указать *number = 0, то создается вид с номером по возрастанию.


## ksCreateViewObject - Создать объект заданного типа, используя визуальный процесс создания объекта

Аналог данного метода при использовании API экспортных функций - ksCreateViewObject.
Синтаксис Automation:
```
long ksCreateViewObject (long type);
Входной параметр:
type    - тип объекта.
Типы объектов и интерфейсы...
Возвращаемое значение:
указатель на созданный объект    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
Метод распространяется на все объекты вида, кроме слоя, контура, нетипизированного макроэлемента, вставленного фрагмента и дуги эллипса.
Так как сиcтема может работать только с одним процессом, то нужно завершить другие "процессные" методы: ksDocument2D::ksCursor, ksDocument2D::ksPlacement, ksDocument2D::ksCommandWindow.


## ksCursor - Запрос к системе на получение точки

Аналог данного метода при использовании API экспортных функций - Cursor.
Синтаксис Automation:
```
long ksCursor (LPDISPATCH info,
double* x,
double* y,
LPDISPATCH phantom);
Входные параметры:
info    - указатель на интерфейс ksRequestInfo,
phantom    - указатель на интерфейс ksPhantom.
Выходные параметры:
x, y    - возвращаемые координаты точки.
Возвращаемое значение:
-1    - если точка указана.
идентификатор выбранной команды, определенный в файле ресурсов,
порядковый номер в строке команд.
```
Примечание:
Интерактивный ввод точки или определение варианта действия. Возможные варианты (команды) задаются в строке commands интерфейса ksRequestInfo и разделяются восклицательными знаками или пробелами.
Если вместо строки в качестве параметра передать идентификатор меню из файла ресурсов, то соответствующее меню будет выдано в окне приглашений.
Если в качестве адреса _callBack передается NULL, то действие метода прекращается после первого шага.


## ksCursorEx - Запрос к системе на получение координат точки или определение варианта действия

Аналог данного метода при использовании API экспортных функций - CursorEx.
Синтаксис Automation:
```
long ksCursorEx (LPDISPATCH info,
double* x,
double* y,
LPDISPATCH phantom,
LPDISPATCH processParam);
Входные параметры:
info    - указатель на интерфейс параметров запроса к системе ksRequestInfo,
phantom    - указатель на интерфейс фантома ksPhantom,
processParam    - указатель на интерфейс параметров процесса IProcessParam.
Выходные параметры:
x, y    - возвращаемые координаты точки.
Возвращаемое значение:
-1    - если указана точка,
0    - отказ (Esc), идентификатор выбранной команды из командной строки или меню, определенный в файле ресурсов.
```
Примечание:
Возможные варианты (команды) задаются в строке commands интерфейса ksRequestInfo и разделяются восклицательными знаками или пробелами. Если вместо строки в качестве параметра передать идентификатор меню из файла ресурсов, то соответствующее меню будет выдано в окне приглашений. Если функция обратной связи ksRequestInfo не определена, то действие метода прекращается после первого шага.


## ksCutLine - Создать линию разреза/сечения

Аналог данного метода при использовании API экспортных функций - CutLine.
Синтаксис Automation:
```
long ksCutLine (LPDISPATCH par);
Входной параметр:
par    - указатель на интерфейс линии разреза/сечения ksCutLineParam.
Возвращаемое значение:
указатель на линию разреза/сечения    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksDecomposeObj - Разбить объект на составляющие части - отрезки, дуги, тексты

Аналог данного метода при использовании API экспортных функций - DecomposeObj.
Синтаксис Automation:
```
long ksDecomposeObj (long p,
short level,
double arrow,
BOOL type);
Входные параметры:
p    - указатель на разбиваемый объект,
level    - степень детализации разбиения: 0 - отрезки, дуги, тексты, точки, 1 - отрезки, тексты, точки, 2 - отрезки, дуги, тексты, 4 - отрезки, дуги, точки, тексты, 5 - отрезки, дуги, тексты, заливки стрелок и треугольников баз, 6 - разбиение объектов из ассоциативного чертежа на составляющие с учетом видимых и невидимых участков,
arrow    - размер "стрелки прогиба",
type    - признак выбранной системы координат: 0 - разбиение объекта в СК вида, 1 - разбиение объекта в СК листа.
Возвращаемое значение:
указатель на временную группу компонент сложного объекта    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечания:
1. Метод используется при разработке различных конверторов, преобразующих информацию из системы КОМПАС во внешние форматы.
2. Текущий документ должен быть графическим.
3. Графический документ разбивается по частям. Такими частями могут быть объекты вида, основная надпись, технические требования, спецификация на листе, знак неуказанной шероховатости.
4. Спецификация разбивается по листам (p - указатель на документ-спецификацию, type - номер листа спецификации, начиная с 1).
5. Сложные кривые заменяются набором отрезков и дуг (при level=1 - только набором отрезков).
6. Точность приближения к исходному объекту задается значением параметра arrow - максимальным расстоянием между исходным объектом и аппроксимирующим отрезком.
7. Если level=2, точки превращаются в графические объекты, служащие для отрисовки этих точек в КОМПАС-ГРАФИК (например, в два отрезка для точки типа "крест"). В остальных случаях точки (в том числе отрисованные в виде "крестов", "треугольников" и т.д.) превращаются в объект типа "точка".
8. Во всех случаях, кроме level=4, сложные тексты (например, тексты, написанные буквами разного начертания - прямого и курсивного) разбиваются на тексты с одинаковыми признаками. При level=4 тексты не изменяются.
9. Исходный объект после разбиения не изменяется.
См. также:
Метод ksDocument2D::ksConvertTextToCurve - Преобразовать указанный текст в кривые.


## ksDeleteMtr - Удалить матрицу трансформации

Аналог данного метода при использовании API экспортных функций - DeleteMtr.
Синтаксис Automation:
```
long ksDeleteMtr();
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Метод отменяет режим преобразования координат, линейных и угловых параметров, введенный методом ksDocument2D::ksMtr.


## ksDeleteObj - Удалить объект

Аналог данного метода при использовании API экспортных функций - DeleteObj.
Синтаксис Automation:
```
long ksDeleteObj (long ref);
Входной параметр:
ref    - указатель на объект.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Если указатель ref равен нулю, то удаляются выделенные объекты документа.


## DeleteStyleFromDocument - Удалить стиль из текущего документа

Аналог данного метода при использовании API экспортных функций - ksDeleteStyleFromDocument.
Синтаксис Automation:
```
long ksDeleteStyleFromDocument (short type,
LPDISPATCH param,
short copy);
Входные параметры:
type    тип стиля,
param    указатель на интерфейс соответствующего типа,
copy    - признак используемой структуры стиля: 0 - создать вручную, 1- взять стиль из библиотеки.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
В случае, когда стиль берется из библиотеки, param - указатель на интерфейс ksLibStyle.


## ksDestroyObjConstraint - Удалить параметрическую связь или ограничение, наложенные на указанный объект

Аналог данного метода при использовании API экспортных функций - ksDestroyObjConstraint.
Синтаксис Automation:
```
long ksDestroyObjConstraint (long obj, LPDISPATCH par);
Входные параметры:
obj    - указатель на объект,
par    - указатель на интерфейс параметрических связей и ограничений ksConstraintParam.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksDestroyObjects - Разрушить присланные составные объекты

Аналог данного метода при использовании API экспортных функций - ksDestroyObjects.
Синтаксис Automation:
```
long ksDocument2D::ksDestroyObjects (long p)
Входной параметр:
p    - указатель на объект, вид, слой или группу.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
1. Метод разрушает не только составные объекты (макроэлементы, вставки фрагментов, эквидистанты, прямоугольники, контуры), но и виды (если у них есть связь с моделью).
2. Метод работает только для документов, открытых в «видимом» режиме.


## ksDiamDimension - Проставить диаметральный размер

Аналог данного метода при использовании API экспортных функций - DiamDimension.
Синтаксис Automation:
```
long ksDiamDimension (LPDISPATCH linPar);
Входной параметр:
linPar    - указатель на интерфейс диаметрального размера ksRDimParam.
Возвращаемое значение:
указатель на диаметральный размер    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksDivideTableItem - Разделить ячейку таблицы

Аналог данного метода при использовании API экспортных функций - ksDivideTableItem.
Синтаксис Automation:
```
long ksDivideTableItem (long index,
BOOL vertical,
long style);
Входные параметры:
index    - номер ячейки,
vertical    - направление разделения ячейки: 1 - вертикально, 0 - горизонтально,
style    - стиль линии получившейся границы: 0 - невидимая, 1 - основная, 2 - тонкая, 7 - утолщенная.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Нумерация ячеек начинается с 1.
Функция используется в режиме редактирования таблицы или допуска формы.


## ksDrawKompasDocument - Отрисовать документ системы КОМПАС как слайд в присланном окне

Аналог данного метода при использовании API экспортных функций - ksDrawKompasDocument.
Синтаксис Automation:
```
long ksDrawKompasDocument (long HWindow,
BSTR docFileName);
Входные параметры:
Hwindow    - "несущее" окно,
docFileName    - полное имя файла документа.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Действие метода распространяется также на фрагменты и модели из библиотек. При этом имя файла должно иметь вид "c:\gr\lib1.l3d|детали|литье|фланец", где:
c:\gr\lib1.l3d - имя файла библиотеки,
|детали|литье| - разделы, подразделы внутри библиотеки,
фланец - имя фрагмента или модели.


## ksDrawKompasGroup - Отрисовать группу как слайд в присланном окне

Аналог данного метода при использовании API экспортных функций - ksDrawKompasGroup.
Синтаксис Automation:
```
long ksDrawKompasGroup (long HWindow, long gr);
Входные параметры:
Hwindow    - "несущее" окно,
gr    - указатель на группу.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksDuplicateBoundaries - Получить временную группу контуров, задающих границы штриховки или заливки

Аналог данного метода при использовании API экспортных функций - ksDuplicateBoundaries.
Синтаксис Automation:
```
long ksDuplicateBoundaries (long reference);
Входной параметр:
reference    - указатель на штриховку или заливку.
Возвращаемое значение:
указатель на временную группу контуров, задающих границы штриховки или заливки    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksEditMacroMode - Получить режим работы метода библиотеки (создание нового или редактирование существующего макроэлемента)

Интерфейс..
Аналог данного метода при использовании API экспортных функций - EditMacroMode.
Синтаксис Automation:
```
long ksEditMacroMode();
Возвращаемое значение:
указатель на редактируемый макроэлемент    - при редактировании макроэлемента,
0    - при создании макроэлемента.
```


## ksEditViewObject - Запустить визуальный процесс редактирования объекта

Аналог данного метода при использовании API экспортных функций - ksEditViewObject.
Синтаксис Automation:
```
int ksEditViewObject (long ref);
Входной параметр:
ref    - указатель на объект.
Возвращаемое значение:
1    - объект отредактирован,
0    - объект не отредактирован.
```
Примечание:
Так как сиcтема может работать только с одним процессом, требуется завершить другие процессные функции: ksDocument2D::ksCursor ksDocument2D::ksPlacement, ksDocument2D::ksCommandWindow, ksDocument2D::ksCreateViewObject.


## ksEllipse - Создать эллипс

Аналог данного метода при использовании API экспортных функций - ksEllipse.
Синтаксис Automation:
```
long ksEllipse (LPDISPATCH param);
Входной параметр:
param    - указатель на интерфейс ksEllipseParam.
Возвращаемое значение:
указатель на эллипс    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksEllipseArc - Создать дугу эллипса

Аналог данного метода при использовании API экспортных функций - ksEllipseArc.
Синтаксис Automation:
```
long ksEllipseArc (LPDISPATCH param);
Входной параметр:
param    - указатель на интерфейс ksEllipseArcParam.
Возвращаемое значение:
указатель на дугу эллипса    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksEnableUndo - Включить/отключить отмену предыдущих операций

Аналог данного метода при использовании API экспортных функций - ksEnableUndo.
Синтаксис Automation:
```
BOOL ksEnableUndo (BOOL enable);
Входные параметры:
enable    - признак отмены операций: FALSE - отключить, TRUE - включить.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
1. Если enable=FALSE, количество шагов отмены операций устанавливается равным нулю.
2. Если enable=TRUE, восстанавливается старое значение количества шагов отмены операций, измененное вызовом этого метода с параметром enable=FALSE.
3. Если метод ранее не вызывался, количество шагов отмены операций будет равно умолчательному значению.


## ksEndGroup - Завершить создание группы

Аналог данного метода при использовании API экспортных функций - EndGroup.
Синтаксис Automation:
```
long ksEndGroup();
Возвращаемое значение:
1    - в случае успеха,
0    - в случае неудачи.
```
Примечание:
Объекты вида, виды, слои, если они вводились между методами ksDocument2D::ksNewGroup и ksDocument2D::ksEndGroup, попадают в группу.
Если группа временная, объекты считаются временными.


## ksEndObj - Завершить создание комплексного объекта

Аналог данного метода при использовании API экспортных функций - EndObj.
Синтаксис Automation:
```
long ksEndObj();
Возвращаемое значение:
указатель на завершенный объект (контур, макроэлемент и т.д.)    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksEquidistant - Построить эквидистанту

Интерфейс..
Аналог данного метода при использовании API экспортных функций - Equidistant.
Синтаксис Automation:
```
long ksEquidistant (LPDISPATCH param);
Входной параметр:
param    - указатель на интерфейс ksEquidistantParam.
Возвращаемое значение:
указатель на эквидистанту    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksExcludeObjGroup - Исключить объект из группы

Аналог данного метода при использовании API экспортных функций - ExcludeObjGroup.
Синтаксис Automation:
```
long ksExcludeObjGroup (long group, long obj);
Входные параметры:
group    - указатель на группу,
obj    - указатель на исключаемый объект.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Если указатель на группу равен нулю, то исключение производится из группы выделения (т.е. снимается выделение объекта чертежа). Если объект создавался в режиме формирования временной группы, то при исключении он автоматически удаляется.


## ksExistGroupObj - Проверить группу на наличие объектов

Аналог данного метода при использовании API экспортных функций - ExistGroupObj.
Синтаксис Automation:
```
long ksExistGroupObj (long group);
Входной параметр:
group    - указатель на группу.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Если указатель группы равен нулю, то проверяется группа выделения (есть ли выделенные объекты документа).


## ksExistObj - Проверить существование объекта

Аналог данного метода при использовании API экспортных функций - ExistObj.
Синтаксис Automation:
```
long ksExistObj(long ref);
Входной параметр:
ref    - указатель на объект.
Возвращаемое значение:
1    - в случае наличия объекта,
0    - в случае отсутствия объекта.
```


## ksFindObj - Найти ближайший к заданной точке объект вида

Аналог данного метода при использовании API экспортных функций - FindObj.
Синтаксис Automation:
```
long ksFindObj (double x, double y, double limit);
Входные параметры:
x, y    - координаты точки,
limit    - размер стороны квадрата-"ловушки" с центром в указанной точке.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
1. Зона поиска - квадрат с указанной стороной и центром.
2. Если значение limit равно MAXDOUBLE, выполняется поиск ближайшего к указанной точке объекта без ограничения зоны поиска.
3. Метод ksFindObj можно использовать для поиска объектов внутри макроэлемента.
4. Для этого макроэлемент должен быть открыт на редактирование функцией ksDocument2D::ksOpenMacro.
Пример:
```vb
doc2D.ksOpenMacro(obj);
long obj_i=doc2D.ksFindObj(xn, xn, AXIS_FIND_SENS);
if( doc2D.ksExistObj(obj_i) )
doc2D.ksLightObj(obj_i, 1);
doc2D.ksEndObj();
При этом, если для макроэлемента задана система координат (см. ksDocument2D::ksPlacement), то координаты в ksFindObj должны передаваться в этой системе координат.
Пересчитать координаты в систему координат макроэлемента можно через функцию ksDocument2D::ksPointIntoMtr. Для этого нужно функцией ksDocument2D::ksMtr создать матрицу преобразования координат.
```
Пример:
```vb
doc2D.ksMtr(xp, yp, ang,  1, 1);
doc2D.ksPointIntoMtr(x, y, &xn, &yn);
doc2D.ksEndMtr();
```


## ksGetCursorLimit - Получить радиус окружности, вписанной в "ловушку" курсора

Аналог данного метода при использовании API экспортных функций - ksGetCursorLimit.
Синтаксис Automation:
```
double ksGetCursorLimit();
Возвращаемое значение:
- радиус окружности (мм), вписанной в "ловушку" курсора.
```


## ksGetCursorPosition - Получить координаты курсора

Аналог данного метода при использовании API экспортных функций - ksGetCursorPosition.
Синтаксис Automation:
```
long ksGetCursorPosition (double* x, double* y, long type);
Входной параметр:
type    - признак, какие координаты возвращать: 0 - без учета привязок, 1 - с учетом привязок.
Выходные параметры:
x, y    - координаты курсора (в миллиметрах).
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksGetDimensionVariableName - Получить имя параметрической переменной, связанной с размером

Аналог данного метода при использовании API экспортных функций - ksGetDimensionVariableName.
Синтаксис Automation:
```
BSTR ksGetDimensionVariableName (long dimObj);
Входной параметр:
dimObj    - указатель на размер.
Возвращаемое значение:
строка с именем переменной    - если размеру поставлена в соответствие переменная,
пустая строка    - если размеру не поставлена в соответствие переменная или в случае неудачи.
```


## ksGetDocOptions - Получить настройки графического документа

Аналог данного метода при использовании API экспортных функций - GetDocOptions.
Синтаксис Automation:
```
long ksGetDocOptions (long optionsType, LPDISPATCH param);
Входной параметр:
optionsType    - тип настройки.
Выходной параметр:
param    - указатель на интерфейс параметров.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
Соответствие входных и выходных параметров...
```


## ksGetDocumentPagesCount - Получить количество листов документа

Аналог данного метода при использовании API экспортных функций - ksGetDocumentPagesCount.
Синтаксис Automation:
```
long ksGetDocumentPagesCount();
Возвращаемое значение:
- количество листов документа.
```


## ksGetDocumentType - Получить тип документа

Аналог данного метода при использовании API экспортных функций - ksGetDocumentType.
Синтаксис Automation:
```
long ksGetDocumentType (long doc);
Входные параметры:
doc    - указатель на документ,
Возвращаемое значение:
тип документа    - в случае успешного завершения,
0    - в случае неудачи.
Типы документов
```
Примечание:
Если указатель doc = 0, возвращается тип активного документа.


## ksGetDocVariableArray - Получить массив параметрических переменных графического документа или вставки фрагмента

Аналог данного метода при использовании API экспортных функций - ksGetDocVariableArray.
Синтаксис Automation:
```
LPDISPATCH ksGetDocVariableArray (long p);
Входной параметр:
p    - указатель на документ или вставку фрагмента.
Возвращаемое значение:
- указатель на динамический массив ksDynamicArray параметрических переменных типа VARIABLE_ARR.
Смотрите также ksVariable
```


## ksGetGroup - Получить указатель на группу по ее имени

Аналог данного метода при использовании API экспортных функций - GetGroup.
Синтаксис Automation:
```
long ksGetGroup (BSTR name);
Входной параметр:
name    - имя группы.
Возвращаемое значение:
указатель на группу    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksGetGroupName - Получить имя группы по указателю на группу

Аналог данного метода при использовании API экспортных функций - ksGetGroupName.
Синтаксис Automation:
```
BSTR ksGetGroupName (long gr, long* group, long reserve);
Входные параметры:
gr    - указатель на группу,
reserve    - параметр, зарезервированный для дальнейшего использования (в настоящее время его значение не учитывается).
Выходной параметр:
group    - тип указанной группы: 0 - ошибка указания группы, 1 - именная группа (имя есть), 2 - рабочая группа (имени нет),
Возвращаемое значение:
- строка с именем группы.
```


## ksGetLayerNumber - Получить номер слоя

Аналог данного метода при использовании API экспортных функций - GetLayerNumber.
Синтаксис Automation:
```
long ksGetLayerNumber (long Reference);
Входной параметр:
Reference    - указатель на слой.
Возвращаемое значение:
номер слоя    - в случае удачного завершения,
-1    - в случае неудачи.
```
Примечания:
1. Системный слой имеет номер 0.
2. Если Reference - объект слоя, возвращается номер слоя этого объекта.


## ksGetLayerReference - Получить указатель на слой по номеру слоя текущего вида

Аналог данного метода при использовании API экспортных функций - GetLayerReference.
Синтаксис Automation:
```
long ksGetLayerReference (long number);
Входной параметр:
number    - номер слоя.
Возвращаемое значение:
указатель на слой    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksGetLeaderShelfLength - Получить длину полки линии-выноски и координаты ее конечной точки

Аналог данного метода при использовании API экспортных функций - ksGetLeaderShelfLength.
Синтаксис Automation:
```
double ksGetLeaderShelfLength (long leader, double *x, double *y);
Входные параметры:
leader    - указатель на линию-выноску.
Выходные параметры:
x    - координата конечной точки полки линии выноски по оси X,
y    - координата конечной точки полки линии выноски по оси Y.
```


## ksGetMacroParam - Получить параметры макроэлемента

Аналог данного метода при использовании API экспортных функций - GetMacroParam.
Синтаксис Automation:
```
long ksGetMacroParam (long ref, LPDISPATCH userPars);
Входные параметры:
ref    - указатель на макроэлемент,
userPars    - указатель на интерфейс ksUserParam.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
1. Дополнительные параметры редактирования предварительно задаются функцией ksDocument2D::ksSetMacroParam.
2. При ref = 0 выдаются параметры макроэлемента, редактирование которого производится в данный момент (если таковой имеется).
3. Способ получения пользовательских данных (userPars) должен совпадать со способом их сохранения (void*, SAFEARRAY, или DynamicArray) через ksDocument2D::ksSetMacroParam.
•Если пользовательские данные были сохранены через SAFEARRAY (userPars), то перед их получением нужно создать SAFEARRAY соответствующего размера (размер данных можно определить при помощи ksDocument2D::ksGetMacroParamSize).
•Если пользовательские данные были сохранены через ksUserParam::SetUserArray, то перед их получением нужно создать UserArray, аналогичный по структуре используемому при сохранении, и передать его в ksUserParam::SetUserArray.


## ksGetMacroParamSize - Получить размер памяти параметров указанного макроэлемента

Аналог данного метода при использовании API экспортных функций - GetMacroParamSize.
Синтаксис Automation:
```
long ksGetMacroParamSize (long ref);
Входной параметр:
ref    - указатель на макроэлемент.
Возвращаемое значение:
размер памяти    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
При ref = 0 выдается размер памяти параметров макроэлемента, редактирование которого производится в данный момент (если таковой имеется).


## ksGetMacroPlacement - Получить точку привязки и угол поворота - систему координат макроэлемента

Аналог данного метода при использовании API экспортных функций - GetMacroPlacement.
Синтаксис Automation:
```
long ksGetMacroPlacement (long macro,
double* x,
double* y,
double* angl);
Входной параметр:
macro    - указатель на макроэлемент (0 - редактируемый макроэлемент).
Выходные параметры:
x, y    - координаты точки привязки,
angl    - угол поворота от оси OX против часовой стрелки (в градусах).
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи,
-1    - у макроэлемента нет СК (не вызывалась функция ksDocument2D::ksSetMacroPlacement).
Смотрите также:
Функция ksDocument2D::ksSetMacroPlacement
```


## ksGetMacroPlacementEx - Получить точку привязки и угол поворота - систему координат макроэлемента

Аналог данного метода при использовании API экспортных функций - ksGetMacroPlacementEx.
Синтаксис Automation:
```
long ksGetMacroPlacementEx(long macro,
double* x,
double* y,
double* angl,
long sheetParam,
long * mirrorSymmetry );
Входные параметры:
macro    - указатель на макроэлемент (0 - редактируемый макроэлемент),
sheetParam    - управление, в какой системе координат получить СК макроэлемента: 1 - в системе координат листа, 0 - в системе координат вида.
Выходные параметры:
x, y    - координаты точки начала координат макроэлемента,
angl    - угол поворота от оси OX против часовой стрелки (в градусах),
mirrorSymmetry    - флаг зеркальной симметрии объекта; 0 - нормальный исходный объект, 1 - макроэлемент получен операцией симметрии из исходного.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи (у макроэлемента нет СК).
Смотрите также:
1. Функция ksDocument2D::ksSetMacroPlacement
2. Рекомендации по обеспечению корректного редактирования библиотекой макроэлементов, геометрия которых зеркально отражена относительно исходного ее построения...
```
Примечание:
Метод позволяет получить СК макроэлемента в СК вида или листа, угол поворота, флаг зеркальной симметрии объекта. Если СК макро не имеет, функция вернет 0.
Если macro = 0, функция позволяет получить СК редактируемого макроэлемента.


## ksGetMacroWaitDblClickEdit - Получить режим ожидания DblClick при редактировании макроэлемента

Аналог данного метода при использовании API экспортных функций - ksGetMacroWaitDblClickEdit.
Синтаксис Automation:
```
long ksGetMacroWaitDblClickEdit (reference ref);
Входные параметры:
ref    - указатель на макроэлемент.
Возвращаемое значение:
1    - режим ожидания DblClick включен,
0    - режим ожидания DblClick выключен.
```
Примечание:
Макроэлемент, созданный библиотекой, может редактироваться двумя способами:
•по первому клику мыши - через характерные точки и\или интерфейс внешних воздействий;
•по двойному клику - через команду библиотеки.
Если время инициализации характерных точек сравнимо с двойным кликом, то редактирование через команду библиотеки становится невозможно. Во время редактирования макроэлемента, при включенном режиме ожидания DblClick, после первого щелчка по макроэлементу КОМПАС будет ожидать повторного нажатия в течении времени, установленного в настройках "Скорость выполнения двойного щелчка".
При выключенном режиме ожидания DblClick пауза отсутствует, и нажатие всегда интерпретируется как одинарное нажатие.


## ksGetObjConstraints - Получить параметрические связи и ограничения, наложенные на указанный объект

Аналог данного метода при использовании API экспортных функций - ksGetObjConstraints.
Синтаксис Automation:
```
LPDISPATCH ksGetObjConstraints (long obj);
Входной параметр:
obj    - указатель на объект.
Возвращаемое значение:
- указатель на интерфейс динамического массива ksDynamicArray ограничений типа CONSTRAINT_ARR.
Смотрите также
ksConstraintParam
```


## ksGetObjectNameByType - Вернуть имя объекта по его типу

Аналог данного метода при использовании API экспортных функций - ksGetObjectNameByType.
Синтаксис Automation:
```
BSTR ksGetObjectNameByType( long type );
Входные параметры:
type    - тип объекта из перечисления DrawingObjectTypeEnum.
Возвращаемое значение:
- Строковое имя типа объекта - отрезок, дуга и т.д..
```


## ksGetObjectsNameByTypeW - Вернуть имя объекта по его типу. Множественное число

Аналог данного метода при использовании API экспортных функций -ksGetObjectsNameByType.
Синтаксис Automation:
```
BSTR ksGetObjectsNameByType( long type );
Входные параметры:
type    - тип объекта из перечисления DrawingObjectTypeEnum.
Возвращаемое значение:
- Строковое имя типа объекта - отрезок, дуга и т.д..
```


## ksGetObjectStyle - Получить стиль для объекта 2D документа

Аналог данного метода при использовании API экспортных функций - ksGetObjectStyle.
Синтаксис Automation:
```
long ksGetObjectStyle( long obj );
Входные параметры:
obj    - указатель reference объекта 2D.
```
Примечание:
Метод позволяет получить стиль для кривых и эквидистанты.


## ksGetObjGabaritRect - Получить габаритный прямоугольник объекта

Аналог данного метода при использовании API экспортных функций - GetObjGabaritRect.
Синтаксис Automation:
```
long ksGetObjGabaritRect (long p,
LPDISPATCH param);
Входные параметры:
p    - указатель на объект,
param    - указатель на интерфейс параметров прямоугольника ksRectParam.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Габаритный прямоугольник возвращается в координатах листа.


## ksGetObjParam - Получить параметры объекта

Аналог данного метода при использовании API экспортных функций - GetObjParam.
Синтаксис Automation:
```
long ksGetObjParam (long reference,
LPDISPATCH param,
long paramType);
Входной параметр:
reference    - указатель на объект.
Выходные параметры:
param    - указатель на интерфейс параметров,
paramType    - тип параметров объекта или номер страницы (габаритного прямоугольника) технических требований (TECHNICALDEMAND_OBJ).
Типы объектов и интерфейсы...
Типы параметров объектов...
Возвращаемое значение:
тип объекта    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
Вызов метода с нулевыми значениями параметров param и parType позволяет получить тип объекта по его reference.


## ksGetPointOnToleranceTable - Получить координаты точки на таблице допуска формы

Аналог данного метода при использовании API экспортных функций - ksGetPointOnToleranceTable.
Синтаксис Automation:
```
long ksGetPointOnToleranceTable (long tolerance,
short entry,
LPDISPATCH point);
Входные параметры:
tolerance    - указатель на допуск формы,
entry    - положение базовой точки.
Выходной параметр:
point    - указатель на интерфейс параметров математической точки ksMathPointParam.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```


## ksGetReferenceDocumentPart - Получить указатель на объект оформления чертежа

Аналог данного метода при использовании API экспортных функций - GetReferenceDocumentPart.
Синтаксис Automation:
```
long ksGetReferenceDocumentPart (short t);
Входной параметр:
t    - тип объекта оформления чертежа.
Возвращаемое значение:
указатель на объект выбранного типа    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
Метод предназначен для использования в листе чертежа.


## ksGetReferenceDocumentPartEx - Получить указатель на объект оформления чертежа

Аналог данного метода при использовании API экспортных функций - GetReferenceDocumentPartEx.
Синтаксис Automation:
```
long ksGetReferenceDocumentPartEx (short t, long sheetNumb);
Входные параметры:
t    - тип объекта оформления чертежа,
sheetNumb    - зависит от типа получаемого объекта оформления чертежа: для t=0 sheetNumb - номер листа, начиная с 1, для t=1 sheetNumb не используется, для t=2 sheetNumb не используется, для t=3 sheetNumb не используется, для t=4 sheetNumb - номер спецификации, начиная с 1 (0 - текущая спецификация), для t=5 sheetNumb не используется, для t=6 sheetNumb - номер листа, начиная с 1.
Типы объектов оформления чертежа...
Возвращаемое значение:
указатель на объект выбранного типа    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksGetShelfPoint - Получить координаты начала и конца выносной полки и ножки

Аналог данного метода при использовании API экспортных функций - ksGetShelfPoint.
Синтаксис Automation:
```
BOOL ksGetShelfPoint( long p, long index, double *x, double *y, long paramType );
Входные параметры:
p    - указатель на объект (размер или линию-выноску),
index    - индекс точки. Значения индекса: Для линии с ножкой: 1 __ 2 / 0 / Для линии без ножки (с выносной полкой на продолжении выносной линии): 0 __ 1 Точка 0 примыкает к выносной линии.
paramType    - тип параметров, задает систему координат: ALLPARAM - в системе координат владельца; SHEET_ALLPARAM - в системе координат листа; VIEW_ALLPARAM - в системе координат вида.
Выходные параметры:
x, y    - координаты точки.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```


## ksGetStyleParam - Получить параметры стиля из документа

Аналог данного метода при использовании API экспортных функций - GetStyleParam.
Синтаксис Automation:
```
long ksGetStyleParam (short type, short styleId, LPDISPATCH param);
Входные параметры:
type    - тип стиля,
styleId    - номер стиля,
param    - указатель на интерфейс соответствующего типа.
Типы стилей и интерфейсы...
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
В случае неудачи структура param заполняется параметрами стиля по умолчанию.


## ksGetTableBorderStyle - Получить стиль границы ячейки

Аналог данного метода при использовании API экспортных функций - ksGetTableBorderStyle.
Синтаксис Automation:
```
long ksGetTableBorderStyle (long index,
short typeBorder);
Входные параметры:
index    - номер ячейки,
typeBorder    - тип границы: 0 - левая, 1 - правая, 2 - верхняя, 3 - нижняя.
Возвращаемое значение:
- стиль линии границы: 0 - невидимая, 1 - основная, 2 - тонкая, 7 - утолщенная.    - в случае успешного завершения,
-1    - в случае неудачи.
```
Примечание:
Нумерация ячеек начинается с 1.
Функция используется в режиме редактирования таблицы или допуска формы.


## ksGetTableColumnText - Получить текст ячейки

Аналог данного метода при использовании API экспортных функций - ksGetTableColumnText.
Синтаксис Automation:
```
long ksGetTableColumnText (long* numb, LPDISPATCH param);
Выходные параметры:
numb    - номер ячейки,
param    - указатель на интерфейс ksTextParam.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Функция используется в режиме редактирования таблицы.
Нумерация ячеек начинается с единицы.
Если не определен номер ячейки с помощью функции ksColumnNumber, метод начинает работу с первой ячейки.
После выполнения метода происходит смещение на следующую ячейку.
Если param=0, все графы пройдены.


## ksGetTableItemsCount - Получить количество ячеек в таблице (для виртуальной сетки)

Аналог данного метода при использовании API экспортных функций - ksGetTableItemsCount.
Синтаксис Automation:
```
long ksGetTableItemsCount (short type);
Входной параметр:
type    - признак, какое число требуется получить: 0 - общее число ячеек, 1 - число ячеек в строке, 2 - число ячеек в колонке.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Функция используется в режиме редактирования таблицы или допуска формы.


## ksGetTextAlign - Получить тип привязки текста

Аналог данного метода при использовании API экспортных функций - ksGetTextAlign.
Синтаксис Automation:
```
long ksGetTextAlign (long pText);
Входной параметр:
pText    - указатель на объект "текст".
Возвращаемое значение:
тип привязки текста    - в случае успешного завершения,
-1    - в случае неудачи.
Типы привязки текста...
```


## ksGetTextLength - Получить длину текста в миллиметрах

Аналог данного метода при использовании API экспортных функций - GetTextLength.
Синтаксис Automation:
```
double ksGetTextLength (BSTR text,
long style);
Входные параметры:
text    - указатель на строку текста,
style    - стиль текста.
Системные стили текстов...
Возвращаемое значение:
- вычисленное значение длины текста (в миллиметрах).
```
Примечание:
Функция может принимать строку в синтаксисе версии КОМПАС 4 (спецзнаки, дроби, отклонения).


## ksGetTextLengthFromReference - Получить длину текста в миллиметрах

Аналог данного метода при использовании API экспортных функций - GetTextLengthFromReference.
Синтаксис Automation:
```
double ksGetTextLengthFromReference (long pText);
Входной параметр:
pText    - указатель на текст.
Возвращаемое значение:
- вычисленное значение длины текста (в миллиметрах).
```
Примечание:
Функция может принимать строку в синтаксисе версии КОМПАС 4 (спецзнаки, дроби, отклонения).


## ksGetToleranceColumnText - Получить текст ячейки

Аналог данного метода при использовании API экспортных функций - ksGetToleranceColumnText.
Синтаксис Automation:
```
long ksGetToleranceColumnText (long* numb, LPDISPATCH par);
Выходные параметры:
numb    - номер ячейки,
par    - указатель на интерфейс параметров строки текста ksTextLineParam.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Функция используется в режиме редактирования допуска формы.
Нумерация ячеек начинается с единицы.
Если не определен номер ячейки с помощью функции ksDocument2D::ksColumnNumber, метод начинает работу с первой ячейки.
После выполнения метода происходит смещение на следующую ячейку.
Если par=NULL, все графы пройдены.
После использования массив par->pTextItem желательно удалить.


## ksGetViewNumber - Получить номер вида по указателю на вид

Аналог данного метода при использовании API экспортных функций - GetViewNumber.
Синтаксис Automation:
```
long ksGetViewNumber (long p);
Входной параметр:
p    - указатель на вид.
Возвращаемое значение:
номер вида    - в случае удачного завершения,
-1    - в случае неудачи.
```
Примечание:
Если p - указатель на вид или объект вида, возвращается номер вида этого объекта.


## ksGetViewObjCount - Получить количество объектов в виде

Аналог данного метода при использовании API экспортных функций - GetViewObjCount.
Синтаксис Automation:
```
long ksGetViewObjCount (long p);
Входной параметр:
p    - указатель на вид.
Возвращаемое значение:
количество объектов в виде    - в случае удачного завершения,
-1    - в случае неудачи.
```
Примечание:
В случае, если p=0, возвращается число объектов текущего вида или фрагмента.


## ksGetViewReference - Получить указатель на вид по номеру вида

Аналог данного метода при использовании API экспортных функций - GetViewReference
Синтаксис Automation:
```
long ksGetViewReference (long number);
Входной параметр:
number    - номер вида.
Возвращаемое значение:
указатель на вид    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksGetZona - Получить зону текущего чертежа по заданной точке

Аналог данного метода при использовании API экспортных функций - ksGetZona.
Синтаксис Automation:
```
BSTR ksGetZona (double x,
double y,
long* res);
Входные параметры:
x, y    - координаты точки в текущем документе.
Выходной параметр:
res    результат работы метода: 0 - ошибка (например, точка вне документа или документ - не чертеж), -1 - в текущем документе нет разбиения на зоны; 1 - успешное завершение.
Возвращаемое значение:
- строка с названием зоны.
```


## ksGetZoomScale - Получить масштаб и центр изменения масштаба окна графического документа

Аналог данного метода при использовании API экспортных функций - ksGetZoomScale.
Синтаксис Automation:
```
long ksGetZoomScale (double* x,
double* y,
double* scale_);
Выходные параметры:
x, y    - координаты (в СК вида) точки центра изменения масштаба,
scale_    - коэффициент изменения масштаба изображения.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```


## ksHatch - Создать штриховку

Аналог данного метода при использовании API экспортных функций - HatchEx.
Синтаксис Automation:
```
long ksHatch (long style,
double Angle,
double step,
double width,
double x0,
double y0);
Входные параметры:
style    - стиль штриховки,
angle    - угол штриховки в градусах,
step    - шаг штриховки,
width    - ширина полосы штрихования вдоль границы штриховки,
x0, y0    - координаты начальной точки штриховки.
Системные стили штриховок...
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Все следующие далее до вызова метода ksDocument2D::ksEndObj геометрические примитивы определяют границы штриховки (внешние и внутренние). Порядок определения элементов границы является произвольным. Метод ksDocument2D::ksEndObj возвращает указатель на штриховку.


## ksHatchByParam - Создать штриховку с заданными параметрами

Аналог данного метода при использовании API экспортных функций - ksHatch.
Синтаксис Automation:
```
long ksHatchByParam (LPDISPATCH param);
Входной параметр:
param    - указатель на интерфейс ksHatchParam.
Возвращаемое значение:
указатель на штриховку    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
Объекты границы штриховки лежат во временной группе ksHatchParam::boundaries. После выполнения метода ksDocument2D::ksHatchByParam временная группа прекращает свое существование.


## ksInitFilePreviewFunc - Инициализировать адрес пользовательской функции просмотра пользовательского файла

Аналог данного метода при использовании API экспортных функций - ksInitFilePreviewFunc.
Синтаксис Automation:
```
long ksInitFilePreviewFunc (BSTR funcName, long hInst);
Входные параметры:
funcName    - имя функции,
hInst    - идентификатор приложения.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```


## ksInitFilePreviewFuncW - Инициализировать адрес пользовательской функции просмотра пользовательского файла (Unicode)

Аналог данного метода при использовании API экспортных функций - ksInitFilePreviewFuncW.
Синтаксис Automation:
```
long ksDocument2D::ksInitFilePreviewFuncW(BSTR funcName, long hInst, LPDISPATCH dispatchOCX);
Входные параметры:
funcName    - имя функции,
hInst    - идентификатор приложения.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```


## ksInsertRaster - Вставить растровый объект

Аналог данного метода при использовании API экспортных функций - ksInsertRaster.
Синтаксис Automation:
```
long ksInsertRaster (LPDISPATCH param);
Входной параметр:
param    - указатель на интерфейс растрового объекта ksRasterParam.
Возвращаемое значение:
указатель на растровый объект    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
Создается новый объект "Выносной элемент" в текущем виде и в текущем документе.


## ksIsActiveProcessRunnig - Проверить, запущен ли в текущем графическом документе процесс построения

Аналог данного метода при использовании API экспортных функций - ksIsActiveProcessRunnig.
Синтаксис Automation:
```
long ksIsActiveProcessRunnig();
Возвращаемое значение:
1    - процесс запущен,
0    - процесс не запущен.
```


## ksIsCursorOrPlacementDocument - Проверить, запущен ли в текущем графическом документе процесс ksDocument2D_ksCursor или ksDocument2D_ksPlacement

Аналог данного метода при использовании API экспортных функций - ksIsCursorOrPlacementDocument.
Синтаксис Automation:
```
long ksIsCursorOrPlacementDocument();
Возвращаемое значение:
1    - процесс запущен,
0    - процесс не запущен.
См. также процессы ksDocument2D_ksCursor и ksDocument2D_ksPlacement
```


## ksIsCurveClosed - Проверить, замкнута ли указанная кривая

Аналог данного метода при использовании API экспортных функций - ksIsCurveClosed.
Синтаксис Automation:
```
long ksIsCurveClosed(long p);
Входной параметр:
p    - указатель на кривую.
Возвращаемое значение:
1    - кривая замкнута,
0    - кривая разомкнута,
-1    - в случае неудачи.
```


## ksIsPointInsideContour - Проверить положение точки относительно кривой

Аналог данного метода при использовании API экспортных функций - ksIsPointInsideContour.
Синтаксис Automation:
```
long ksIsPointInsideContour (long Reference,
double x,
double y,
double precision);
Входные параметры:
Reference    - указатель на контур,
x, y    - координаты точки,
precision    - точность проверки (от 1 до 1E-6).
Возвращаемое значение:
0    - в случае неудачи,
1    - точка вне контура,
2    - точка на контуре,
3    - точка внутри контура.
```


## ksIsSlaveSpcOpened - Проверить, открыто ли окно спецификации в Slave режиме

Аналог данного метода при использовании API экспортных функций - ksIsSlaveSpcOpened.
Синтаксис Automation:
```
long ksIsSlaveSpcOpened();
```
Синтаксис COM:
```
int ksIsSlaveSpcOpened();
Возвращаемое значение:
0    - окно спецификации в Slave режиме не открыто,
1    - окно спецификации в Slave режиме открыто,
2    - окно спецификации в Slave режиме открыто и активно.
```


## ksIsStyleInDocument - Проверить, существует ли стиль в текущем документе

Аналог данного метода при использовании API экспортных функций - ksIsStyleInDocument.
Синтаксис Automation:
```
long ksIsStyleInDocument (short type,
LPDISPATCH param,
short copy);
Входные параметры:
type    - тип стиля,
param    - указатель на интерфейс соответствующего типа,
copy    - признак используемой структуры стиля: 0 - создать вручную, 1- взять стиль из библиотеки.
Типы стилей и интерфейсы...
Возвращаемое значение:
1    - стиль в документе есть,
0    - стиля в документе нет.
```
Примечание:
В случае, когда стиль берется из библиотеки, param - указатель на интерфейс ksLibStyle.


## ksKeepReference - Запомнить указатель на объект

Функция не поддерживается
Аналог данного метода при использовании API экспортных функций - KeepReference.
Синтаксис Automation:
```
long ksKeepReference (long r);
Входной параметр:
r    - указатель на графический объект.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksLayer - Сделать слой текущим

Аналог данного метода при использовании API экспортных функций - Layer.
Синтаксис Automation:
```
long ksLayer (long number);
Входной параметр:
number    - номер слоя.
Возвращаемое значение:
указатель на слой    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
Если слоя с заданным номером нет, он создается.


## ksLeader - Создать линию-выноску

Аналог данного метода при использовании API экспортных функций - Leader.
Синтаксис Automation:
```
long ksLeader (LPDISPATCH leaderPar);
Входной параметр:
leaderPar    - указатель на интерфейс параметров линии-выноски ksLeaderParam.
Возвращаемое значение:
указатель на линию-выноску    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksLengthFromMtr - Пересчитать длину из локальной системы координат в СК вида

Аналог данного метода при использовании API экспортных функций - ksLengthFromMtr.
Синтаксис Automation:
```
long ksLengthFromMtr (double* len);
Входной и Выходной параметр:
len    - длина.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Параметр len является одновременно и входным, и выходным. На входе он представляет собой длину в локальной СК, а в результате работы функции преобразуется в длину в СК вида.


## ksLengthIntoMtr - Пересчитать длину из системы координат вида в локальную СК

Аналог данного метода при использовании API экспортных функций - ksLengthIntoMtr.
Синтаксис Automation:
```
long ksLengthIntoMtr (double* len);
Входной и Выходной параметр:
len    - длина.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Параметр len является одновременно и входным, и выходным. На входе он представляет собой длину в СК вида, а в результате работы функции преобразуется в длину в локальной СК.


## ksLightObj - Выделить объект цветом ("подсветить" объект)

Аналог данного метода при использовании API экспортных функций - LightObj.
Синтаксис Automation:
```
long ksLightObj (long ref,
short ligth);
Входные параметры:
ref    - указатель на объект,
ligth    - режим подсветки: 1 - установить выделение, 0 - снять выделение.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```


## ksLinBreakDimension - Проставить линейный размер с обрывом

Аналог данного метода при использовании API экспортных функций - LinBreakDimension.
Синтаксис Automation:
```
long ksLinBreakDimension (LPDISPATCH linPar);
Входной параметр:
linPar    - указатель на интерфейс линейного размера с обрывом ksLBreakDimParam.
Возвращаемое значение:
указатель на линейный размер с обрывом    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksLinDimension - Проставить линейный размер

Аналог данного метода при использовании API экспортных функций - LinDimension.
Синтаксис Automation:
```
long ksLinDimension (LPDISPATCH linPar);
Входной параметр:
linPar    - указатель на интерфейс линейного размера ksLDimParam.
Возвращаемое значение:
указатель на линейный размер    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksLine - Создать прямую

Аналог данного метода при использовании API экспортных функций - Line.
Синтаксис Automation:
```
long ksLine (double x,
double y,
double Angle);
Входные параметры:
x, y    - координаты точки на прямой,
Angle    - угол наклона прямой относительно оси OX (в градусах).
Возвращаемое значение:
указатель на прямую    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksLineSeg - Создать отрезок

Аналог данного метода при использовании API экспортных функций - LineSeg.
Синтаксис Automation:
```
long ksLineSeg (double x1,
double y1,
double x2,
double y2,
long style);
Входные параметры:
x1, y1    - координаты первой точки отрезка,
x2, y2    - координаты второй точки отрезка,
style    - стиль линии.
Системные стили линий...
Возвращаемое значение:
указатель на отрезок    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksMacro - Создать новый макроэлемент

Аналог данного метода при использовании API экспортных функций - Macro.
Синтаксис Automation:
```
long ksMacro (short type);
Входной параметр:
type    - тип макроэлемента: 0 - объединяет объекты текущего слоя, 1- включаемые объекты могут принадлежать разным слоям.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Макроэлемент - составной объект.
Объекты вида, вводимые между методами ksDocument2D::ksMacro и ksDocument2D::ksEndObj, принадлежат макроэлементу. ksDocument2D::ksEndObj возвращает указатель на макроэлемент.


## ksMakeEncloseContours - Получить указатель на группу объектов, охватывающих заданную точку

Аналог данного метода при использовании API экспортных функций - ksMakeEncloseContours.
Синтаксис Automation:
```
long ksMakeEncloseContours (long gr,
double x,
double y);
Входные параметры:
gr    - временная группа или 0, если требуются контуры в текущем виде,
x, y    - координаты точки внутри охватывающих контуров.
Возвращаемое значение:
указатель на временную группу контуров    - в случае удачного завершения,
0    - если контуров не нашлось или в случае неудачи.
```
Примечание:
Возвращаемая группа принадлежит указанной временной группе или текущему виду в целом.


## ksMakeEncloseContoursEx - Получить указатель на группу объектов, охватывающих заданную точку

Аналог данного метода при использовании API экспортных функций - ksMakeEncloseContoursEx.
Синтаксис Automation:
```
long ksMakeEncloseContoursEx( long gr,
double x,
double y,
BOOL forHatch );
Входные параметры:
gr    - временная группа или 0, если требуются контуры в текущем виде,
x, y    - координаты точки внутри охватывающих контуров,
forHatch    - признак создания контура для штриховки.
Возвращаемое значение:
указатель на временную группу контуров    - в случае удачного завершения,
0    - если контуров не нашлось или в случае неудачи.
```
Примечание:
forHatch == 1 - при cоздании контуров для штриховки используются объекты со стилем основная и утолщенная, объекты других стилей не учитываются.
forHatch == 0 - при cоздании контура с использованием любых стилей линий.


## ksMarkerLeader - Создать линию-выноску для обозначения маркировки

Аналог данного метода при использовании API экспортных функций - MarkerLeader.
Синтаксис Automation:
```
long ksMarkerLeader (LPDISPATCH markerLeaderParam);
Входной параметр:
markerLeaderParam    - указатель на интерфейс параметров линии-выноски для обозначения маркирования ksMarkerLeaderParam.
Возвращаемое значение:
указатель на линию-выноску для обозначения маркирования    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksMoveObj - Сдвинуть объект

Аналог данного метода при использовании API экспортных функций - MoveObj.
Синтаксис Automation:
```
long ksMoveObj (long ref,
double dx,
double dy);
Входные параметры:
ref    - указатель на объект,
dx, dy    - вектор смещения объекта.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Если указатель ref равен нулю, то сдвигаются выделенные объекты документа.


## ksMovePoint - Сдвинуть точку в указанном направлении на указанное расстояние

Аналог данного метода при использовании API экспортных функций - MovePoint.
Синтаксис Automation:
```
BOOL ksMovePoint (double* x,
double* y,
double ang,
double len);
Входные параметры:
x, y    - координаты точки,
ang    - угол вектора сдвига в градусах,
len    - длина вектора сдвига.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Параметры x и y являются одновременно и входными, и выходными. На входе они представляют собой начальные координаты точки, а в результате работы метода они преобразуются в координаты точки после сдвига.


## ksMtr - Создать матрицу преобразования координат

Аналог данного метода при использовании API экспортных функций - ksMtr.
Синтаксис Automation:
```
long ksMtr (double x,
double y,
double Angle,
double scaleX,
double scaleY);
Входные параметры:
x, y    - координаты начала локальной системы координат,
angle    - угол наклона системы координат в градусах,
scaleX    - масштаб локальной системы координат по оси Х,
scaleY    - масштаб локальной системы координат по оси Y.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Допускается вложение матриц трансформации. В результате вложения действует суммарная матрица, полученная произведением накопленных матриц. Объекты вида, вводимые между методами ksDocument2D::ksMtr и ksDocument2D::ksDeleteMtr, подвергаются преобразованию по суммарной матрице.


## ksNewGroup - Создать новую группу объектов

Аналог данного метода при использовании API экспортных функций - NewGroup.
Синтаксис Automation:
```
long ksNewGroup (short type);
Входной параметр:
type    - тип группы: 0 - модельная, 1 - временная.
Возвращаемое значение:
указатель на группу    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
1. В модельной группе лежат объекты, которые уже созданы в документе. Во временной группе могут лежать временные и существующие объекты.
Если для временной группы не будет вызван метод ksDocument2D::ksStoreTmpGroup, то временные объекты группы будут уничтожены по окончании работы библиотеки.
2. Создаваемые в дальнейшем до вызова метода ksDocument2D::ksEndGroup объекты чертежа записываются в модель или во временный список объектов (например, для фантомной прорисовки при вводе).
3. Для дальнейшей обработки группы используются те же методы редактирования, что и для отдельных объектов, так как указатель на группу ничем не отличается от указателя на отдельный объект.
4. Группа может объединять объекты вида, виды и слои.
5. При создании новой группы необязательно закрывать предыдущую (т.е. поддерживается вложенность групп).


## ksNewViewNumber - Определить номер следующего вида

Аналог данного метода при использовании API экспортных функций - NewViewNumber.
Синтаксис Automation:
```
long ksNewViewNumber();
Возвращаемое значение:
номер следующего вида    - в случае успешного завершения,
0    - в случае неудачи.
```


## ksNurbs - Создать кривую NURBS

Аналог данного метода при использовании API экспортных функций - Nurbs.
Синтаксис Automation:
```
long ksNurbs (short degree, BOOL close, long style);
Входные параметры:
degree    - порядок NURBS (степень полинома + 1), от 3 до 10,
close    - признак замыкания сплайна: FALSE - незамкнутый, TRUE - замкнутый,
style    стиль линии.
Системные стили линий...
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Узлы кривой определяются следующими далее методами ksDocument2D::ksPoint или ksDocument2D::ksNurbsPoint.
Описание кривой завершается методом ksDocument2D::ksEndObj, возвращающим указатель на созданную кривую.


## ksNurbsForConicCurve - Создать кривую NURBS по характеристическим точкам конического сечения

Аналог данного метода при использовании API экспортных функций - NurbsForConicCurve.
Синтаксис Automation:
```
long ksNurbsForConicCurve (LPDISPATCH xArr,
LPDISPATCH yArr,
short style);
Входные параметры:
xArr, yArr    - указатели на интерфейсы динамических массивов ksDynamicArray чисел типа DOUBLE_ARR,
style    - стиль линии.
Системные стили линий...
Возвращаемое значение:
указатель на кривую NURBS    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksNurbsKnot - Создать узел NURBS-кривой

Аналог данного метода при использовании API экспортных функций - ksNurbsKnot.
Синтаксис Automation:
```
long ksNurbsKnot (double knot);
Входной параметр:
knot    - узел кривой NURBS.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Метод предназначен для считывания форматов обмена, в частности, DXF.
Для создания кривой NURBS массив узлов (узловой вектор) задавать не обязательно. Но если он задан, то должен подчиняться следующим правилам:
1. Узловой вектор не должен быть убывающим.
2. Количество узлов (knotCount) должно быть:
•для разомкнутого сплайна knotCount= degree + pointCount;
•для замкнутого сплайна knotCount= degree + pointCount + ( degree -1);
где:
degree - степень сплайна,
pointCount - количество точек.


## ksNurbsPoint - Создать узел NURBS

Аналог данного метода при использовании API экспортных функций - NurbsPoint.
Синтаксис Automation:
```
long ksNurbsPoint (LPDISPATCH param);
Входной параметр:
param    - указатель на интерфейс ksNurbsPointParam.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Создать очередной узел кривой NURBS. Узлы кривой определяются методами ksDocument2D::ksPoint или ksDocument2D::ksNurbsPoint. Описание кривой завершается методом ksDocument2D::ksEndObj, возвращающим указатель на созданную кривую.


## ksOpenDocument - Открыть документ (чертеж, фрагмент, спецификацию, текстовый документ, деталь, сборку)

Аналог данного метода при использовании API экспортных функций - OpenDocument.
Синтаксис Automation:
```
BOOL ksOpenDocument (BSTR nameDoc, BOOL regim);
Входные параметры:
nameDoc    - имя документа,
regim    - режим работы с документом: 0 - видимый, 1 - невидимый ("слепой")
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Невидимый режим применяется при пакетном (скрытом) формировании документа.
Открытый документ автоматически становится текущим.


## ksOpenMacro - Открыть макроэлемент для редактирования

Аналог данного метода при использовании API экспортных функций - ksOpenMacro.
Синтаксис Automation:
```
long ksOpenMacro (long macro);
Входной параметр:
macro    - указатель на макроэлемент.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Когда макроэлемент открыт для редактирования; можно добавлять в его состав новые объекты вида, использовать метод ksDocument2D::ksFindObj.
Режим редактирования закрывается методом ksDocument2D::ksEndObj;
В режиме редактирования открыт доступ к внутренним объектам макроэлементов. Теперь при создании макроэлемента или при добавлении к макроэлементу новых объектов вида выдается указатель на внутренние объекты, как и на самостоятельные объекты вида.
Допускается вводить пустой макроэлемент. Пустой макроэлемент является вырожденным объектом. Он существует только в период редактирования документа. После записи документа, в котором находился пустой макроэлемент, этот макроэлемент будет удален. Макроэлемент считается нормальным, если в нем находится хотя бы один внутренний объект.
Все методы работы с указателями на объекты допускают работу с внутренними объектами макроэлемента. Это методы:
ksDocument2D::ksDeleteObj
ksDocument2D::ksMoveObj
ksDocument2D::ksLightObj
ksDocument2D::ksTransformObj
ksDocument2D::ksGetObjParam
ksDocument2D::ksSetObjParam
ksDocument2D::ksRotateObj
ksDocument2D::ksCopyObj
ksDocument2D::ksSymmetryObj
ksDocument2D::ksEditViewObject
ksDocument2D::ksGetObjGabaritRect
ksDocument2D::ksDecomposeObj


## ksOpenTable - Открыть таблицу для редактирования

Аналог данного метода при использовании API экспортных функций - ksOpenTable.
Синтаксис Automation:
```
long ksOpenTable (long table);
Входной параметр:
table    - указатель на таблицу.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Чтобы закрыть редактирование таблицы, нужно вызвать функцию ksDocument2D::ksEndObj.


## ksOpenTechnicalDemand - Открыть технические требования

Аналог данного метода при использовании API экспортных функций - OpenTechnicalDemand.
Синтаксис Automation:
```
long ksOpenTechnicalDemand (LPDISPATCH pGab,
long style);
Входные параметры:
pGab    - указатель на интерфейс динамического массива ksDynamicArray параметров листов технических требований типа RECT_ARR,
style    - стиль текста для технических требований.
Системные стили текстов...
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
1. Технические требования - составной объект оформления чертежа. Объекты ksDocument2D::ksTextLine, вводимые между ksOpenTechnicalDemand и ksDocument2D::ksCloseTechnicalDemand, принадлежат техническим требованиям.
2. Технические требования могут состоять из нескольких строк, строки могут состоять из нескольких компонент. Компоненты могут изменять параметры текущего шрифта.
ksCloseTechnicalDemand возвращает указатель на технические требования.
Если style = 0, то стиль текста - умолчательный.


## ksOpenTolerance - Открыть допуск формы для редактирования

Аналог данного метода при использовании API экспортных функций - ksOpenTolerance.
Синтаксис Automation:
```
long ksOpenTolerance (long tolerance);
Входной параметр:
tolerance    - указатель на допуск формы.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Чтобы закрыть редактирование допуска формы, нужно вызвать функцию ksDocument2D::ksEndObj.


## ksOpenView - Сделать текущим существующий вид с указанным номером

Аналог данного метода при использовании API экспортных функций - OpenView.
Синтаксис Automation:
```
long ksOpenView (long number);
Входной параметр:
number    - номер вида.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```


## ksOrdinatedDimension - Проставить размер высоты

Аналог данного метода при использовании API экспортных функций - ksOrdinatedDimension.
Синтаксис Automation:
```
long ksOrdinatedDimension (IDispatch* ordPar);
Входной параметр:
ordPar    - указатель на интерфейс параметров размера высоты ksOrdinatedDimParam.
Возвращаемое значение:
указатель на размер высоты    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksParagraph - Начать параграф

Аналог данного метода при использовании API экспортных функций - Paragraph.
Синтаксис Automation:
```
long ksParagraph (LPDISPATCH param);
Входной параметр:
param    - указатель на интерфейс ksParagraphParam.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
1. Параграф - составной объект.
2. Объекты ksDocument2D::ksTextLine, вводимые между методами ksDocument2D::ksParagraph и ksDocument2D::ksEndObj, принадлежат параграфу.
3. Параграф может состоять из нескольких строк, строки могут состоять из нескольких компонент. Компоненты могут изменять параметры текущего шрифта.
4. ksDocument2D::ksEndObj возвращает указатель на параграф.


## ksParametrizeObjects - Параметризовать группу объектов

Аналог данного метода при использовании API экспортных функций - ksParametrizeObjects.
Синтаксис Automation:
```
long ksParametrizeObjects (long group, LPDISPATCH par);
Входные параметры:
group    - указатель на группу объектов,
par    - параметры параметризации группы объектов ksParametrizationParam.
Возвращаемое значение:
1    - в случае успеха,
0    - в случае неудачи.
```


## ksParEllipseArc - Создать дугу эллипса

Аналог данного метода при использовании API экспортных функций - ksParEllipseArc.
Синтаксис Automation:
```
long ksParEllipseArc (LPDISPATCH param);
Входной параметр:
param    - указатель на интерфейс ksEllipseArcParam1.
Возвращаемое значение:
указатель на дугу эллипса    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksPhantomShowHide - Сделать фантом видимым или невидимым

Аналог данного метода при использовании API экспортных функций - ksPhantomShowHide.
Синтаксис Automation:
```
long ksPhantomShowHide (BSTR show);
Входной параметр:
show    - признак отрисовки фантома: 1 - включить, 0 - выключить.
Возвращаемое значение:
-1    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksPlacement - Запрос к системе на получение точки и угла

Аналог данного метода при использовании API экспортных функций - Placement.
Синтаксис Automation:
```
long ksPlacement (LPDISPATCH info,
double* x,
double* y,
double* Angle,
LPDISPATCH phantom);
Входные параметры:
info    - указатель на интерфейс ksRequestInfo,
phantom    - указатель на интерфейс ksPhantom.
Выходные параметры:
x, y    - возвращаемые координаты точки,
angle    - возвращаемое значение угла.
Возвращаемое значение:
-1    - если точка указана.
идентификатор выбранной команды, определенный в файле ресурсов,
порядковый номер в строке команд.
```
Примечание:
Интерактивный ввод точки и угла или определение варианта действия. Возможные варианты (команды) задаются в строке commands структуры info и разделяются восклицательными знаками или пробелами.
Если вместо строки в качестве параметра передать идентификатор меню из файла ресурсов, то соответствующее меню будет выдано в окне приглашений.
Если в качестве адреса _callBack передается NULL, то действие метода прекращается после первого шага.


## ksPlacementEx - Запрос к системе на получение координат точки и угла

Аналог данного метода при использовании API экспортных функций - PlacementEx.
Синтаксис Automation:
```
long ksPlacementEx (LPDISPATCH info,
double* x,
double* y,
double* angle,
LPDISPATCH phantom,
LPDISPATCH processParam);
Входные параметры:
info    - указатель на интерфейс параметров запроса к системе ksRequestInfo,
phantom    - указатель на интерфейс фантома ksPhantom,
processParam    - указатель на интерфейс параметров процесса IProcessParam.
Выходные параметры:
x, y    - возвращаемые координаты точки.
angle    - возвращаемое значение угла.
Возвращаемое значение:
-1    - если указана точка,
0    - отказ (Esc), идентификатор выбранной команды из командной строки или меню, определенный в файле ресурсов.
```
Примечание:
Возможные варианты (команды) задаются в строке commands интерфейса ksRequestInfo и разделяются восклицательными знаками или пробелами. Если вместо строки в качестве параметра передать идентификатор меню из файла ресурсов, то соответствующее меню будет выдано в окне приглашений. Если функция обратной связи ksRequestInfo не определена, то действие метода прекращается после первого шага.


## ksPoint - Создать точку

Аналог данного метода при использовании API экспортных функций - Point.
Синтаксис Automation:
```
long ksPoint (double x,
double y,
long style);
Входные параметры:
x, y    - координаты точки,
style    - стиль отрисовки точки.
Системные стили отрисовки точек...
Возвращаемое значение:
указатель на точку    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksPoint3DToAssociationView - Преобразовать координаты 3D точки в координаты ассоциативного вида

Аналог данного метода при использовании API экспортных функций - ksPoint3DToAssociationView.
Синтаксис Automation:
```
BOOL ksPoint3DToAssociationView (long view,
double x3D, double y3D, double z3D,
double * x2D, double * y2D );
Входные параметры:
view    - указатель на ассоциативный вид,
x3D, y3D, z3D    - координаты 3D точки.
Выходные параметры:
x2D, y2D    - координаты 3D точки в ассоциативном виде.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Если указатель на вид не задан (view = 0), то функция будет выполняться для текущего вида.


## ksPointArraw - Создать значок

Аналог данного метода при использовании API экспортных функций - PointArraw.
Синтаксис Automation:
```
long ksPointArraw (double x,
double y,
double ang,
short term);
Входные параметры:
x, y    - координаты точки привязки значка,
ang    - угол отрисовки значка,
term    - тип значка.
Системные типы значков...
Возвращаемое значение:
указатель на значок    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksPointFromMtr - Пересчитать координаты точки из локальной системы координат в СК вида

Аналог данного метода при использовании API экспортных функций - ksPointFromMtr.
Синтаксис Automation:
```
long ksPointFromMtr (double x, double y, double* xn, double* yn);
Входные параметры:
x, y    - координаты точки в локальной системе координат.
Выходные параметры:
xn, yn    - координаты точки в СК вида.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```


## ksPointIntoMtr - Пересчитать координаты точки из системы координат вида в локальную СК

Аналог данного метода при использовании API экспортных функций - ksPointIntoMtr.
Синтаксис Automation:
```
long ksPointIntoMtr (double x,
double y,
double* xn,
double* yn);
Входные параметры:
x, y    - координаты точки в системе координат вида.
Выходные параметры:
xn, yn    - координаты точки в локальной СК.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```


## ksPolyline - Создать ломаную линию

Аналог данного метода при использовании API экспортных функций - ksPolyline.
Синтаксис Automation:
```
long ksPolyline (long style);
Входной параметр:
style    - стиль линии.
Системные стили линий...
Возвращаемое значение:
указатель на ломаную линию    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
Ломаная линия - составной объект. Объекты ksDocument2D::ksPoint, вводимые между методами ksDocument2D::ksPolyline и ksDocument2D::ksEndObj, принадлежат ломаной линии. ksDocument2D::ksEndObj возвращает указатель на ломаную линию.


## ksPolylineByParam - Создать ломаную линию

Аналог данного метода при использовании API экспортных функций - ksPolyline.
Синтаксис Automation:
```
long ksPolylineByParam (LPDISPATCH param);
Входной параметр:
param    - указатель на интерфейс ломаной линии ksPolylineParam.
Возвращаемое значение:
указатель на ломаную линию    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksPositionLeader - Создать позиционную линию-выноску

Аналог данного метода при использовании API экспортных функций - PositionLeader.
Синтаксис Automation:
```
long ksPositionLeader (LPDISPATCH posLeaderParam);
Входной параметр:
posLeaderParam    - указатель на интерфейс параметров позиционной линии-выноски ksPosLeaderParam.
Возвращаемое значение:
указатель на позиционную линию-выноску    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksRadBreakDimension - Проставить радиальный размер с изломом

Аналог данного метода при использовании API экспортных функций - RadBreakDimension.
Синтаксис Automation:
```
long ksRadBreakDimension (LPDISPATCH par);
Входной параметр:
par    - указатель на интерфейс радиального размера с изломом ksRBreakDimParam.
Возвращаемое значение:
указатель на радиальный размер с изломом    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksRadDimension - Проставить радиальный размер

Аналог данного метода при использовании API экспортных функций - RadDimension.
Синтаксис Automation:
```
long ksRadDimension (LPDISPATCH par);
Входной параметр:
par    - указатель на интерфейс радиального размера ksRDimParam.
Возвращаемое значение:
указатель на радиальный размер    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksReadGroupFromClip - Прочитать графические объекты из буфера обмена и разместить их во временной группе

Аналог данного метода при использовании API экспортных функций - ksReadGroupFromClip.
Синтаксис Automation:
```
long ksReadGroupFromClip();
Возвращаемое значение:
указатель на группу    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
Графические объекты должны принадлежать одному виду. Параметрические связи и ограничения объектов при чтении из буфера теряются, атрибуты сохраняются.


## ksReadTableFromFile - Создать таблицу, используя информацию, хранящуюся в файле *.tbl

Аналог данного метода при использовании API экспортных функций - ksReadTableFromFile.
Синтаксис Automation:
```
long ksReadTableFromFile (BSTR tblFileName);
Входной параметр:
tblFileName    - полное имя файла таблицы.
Возвращаемое значение:
указатель на таблицу    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksRebuildDocument

Аналог данного метода при использовании API экспортных функций - ksRebuildDocument.
Синтаксис Automation:
```
BOOL ksRebuildDocument();
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Позволяет перестроить все ассоциативные виды чертежа. Если в чертеже нет ни одного ассоциативного вида, перестраиваться ничего не будет. После вызова функции ассоциативные виды перерисовываются в соответствии с деталями, изображение которых в них содержится.


## ksRebuildTableVirtualGrid - Перестроить виртуальную сетку таблицы

Аналог данного метода при использовании API экспортных функций - ksRebuildTableVirtualGrid.
Синтаксис Automation:
```
long ksRebuildTableVirtualGrid();
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
1. Функция используется в режиме редактирования таблицы или допуска формы.
2. Таблица работает с виртуальной сеткой - регулярной таблицей, наложенной на редактируемую таблицу и отображающей все ячейки. Если редактируемая таблица регулярная, то ее виртуальная сетка полностью совпадает с таблицей.
3. Нумерация ячеек начинается с левого верхнего угла и с единицы по строкам.
4. Перестраивать сетку нужно после объединения или разделения ячеек.


## ksRectangle - Создать прямоугольник

Аналог данного метода при использовании API экспортных функций - ksRectangle.
Синтаксис Automation:
```
long ksRectangle (LPDISPATCH param,
short centre);
Входные параметры:
param    - указатель на интерфейс параметров прямоугольника ksRectangleParam,
centre    - признак построения обозначения центра: 0 - нет осей, 1 - значок осей (маленький "крестик"), 2 - горизонтальная ось, 3 - обе оси.
Возвращаемое значение:
указатель на прямоугольник    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksReDrawDocPart - Перерисовать часть графического документа

Синтаксис Automation:
```
int ksReDrawDocPart (IDispatch* rect,
long view);
Входные параметры:
rect    - указатель на интерфейс ksRectParam параметров прямоугольника, ограничивающего перерисовываемую часть,
view    - указатель на вид.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```


## ksRegularPolygon - Cоздать правильный многоугольник

Аналог данного метода при использовании API экспортных функций - ksRegularPolygon.
Синтаксис Automation:
```
long ksRegularPolygon (LPDISPATCH param,
short centre);
Входные параметры:
param    - указатель на интерфейс параметров многоугольника ksRegularPolygonParam,
centre    - признак построения обозначения центра: 0 - нет осей, 1 - значок осей (маленький "крестик"), 2 - горизонтальная ось, 3 - обе оси.
Возвращаемое значение:
указатель на правильный многоугольник    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksReleaseReference - Освободить указатель объекта

Аналог данного метода при использовании API экспортных функций - ReleaseReference.
Синтаксис Automation:
```
long ksReleaseReference (long p);
Входной параметр:
p    - указатель на объект.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Не временный объект не уничтожается. В результате таблица объектов сокращается, а операции, связанные с перебором объектов, ускоряются.


## ksRemoteElement - Создать объект "Выносной элемент"

Аналог данного метода при использовании API экспортных функций - ksRemoteElement.
Синтаксис Automation:
```
long ksRemoteElement (LPDISPATCH par);
Входные параметры:
par    - указатель на интерфейс ksRemoteElementParam параметров выносного элемента.
Возвращаемое значение:
указатель на объект "Выносной элемент"    - в случае успешного завершения.
```


## ksRotateObj - Повернуть объект

Аналог данного метода при использовании API экспортных функций - RotateObj.
Синтаксис Automation:
```
long ksRotateObj (long ref,
double x,
double y,
double angle);
Входные параметры:
ref    - указатель на объект,
x, y    - координаты центра поворота,
angle    - угол поворота (в градусах).
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Если указатель ref равен нулю, то поворачиваются выделенные объекты документа.


## ksRough - Проставить обозначение шероховатости

Аналог данного метода при использовании API экспортных функций - Rough.
Синтаксис Automation:
```
long ksRough (LPDISPATCH roughPar);
Входной параметр:
roughPar    - указатель на интерфейс обозначения шероховатости ksRoughParam.
Возвращаемое значение:
указатель на обозначение шероховатости    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksSaveDocument - Сохранить документ (чертеж, фрагмент, спецификацию, текстовый документ, деталь, сборку)

Аналог данного метода при использовании API экспортных функций - SaveDocument.
Синтаксис Automation:
```
BOOL ksSaveDocument (BSTR fileName);
Входной параметр:
fileName    - полное имя файла.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```


## ksSaveDocumentEx - Сохранить документ в выбранной версии

Аналог данного метода при использовании API экспортных функций - SaveDocumentEx.
Синтаксис Automation:
```
BOOL ksSaveDocumentEx (BSTR fileName, long version);
Входные параметры:
fileName    - полное имя файла,
version    - версия для сохранения: -1 - в предыдущую версию, 0 - в текущую версию, 1 - в версию 5.11.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Если fileName = NULL, то используется имя файла из документа. Если же и в документе отсутствует имя файла, то взводится ошибка.


## ksSaveGroup - Сохранить группу объектов в документе

Аналог данного метода при использовании API экспортных функций - SaveGroup.
Синтаксис Automation:
```
long ksSaveGroup (long group,
BSTR name);
Входные параметры:
group    - указатель на группу,
name    - имя сохраняемой группы.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Данный метод действителен только для модельной группы. После его выполнения группа автоматически сохраняется в чертеже при его записи. В противном случае группа действительна только в текущем сеансе работы. Если указатель группы равен нулю, то сохраняется группа селектирования (выделенные объекты документа).


## ksSaveToDXF - Сохранить документ в формате DXF

Синтаксис Automation:
```
BOOL ksSaveToDXF (LPCTSTR dxfFileName);
Входные параметры:
dxfFileName    - имя файла для записи в формате DXF.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```


## ksSelectGroup - Автоматически сформировать группу объектов

Интерфейс..
Аналог данного метода при использовании API экспортных функций - SelectGroup.
Синтаксис Automation:
```
long ksSelectGroup (long group,
short selectMode,
double xmin,
double ymin,
double xmax,
double ymax);
Входные параметры:
group    - указатель на группу,
selectMode    - тип выделения: 1 - объекты внутри прямоугольника-"ловушки", 2 - объекты снаружи прямоугольника-"ловушки", 3 - 3 - объекты, целиком или частично попавшие в прямоугольник-"ловушку".
xmin, ymin    - координаты левой нижней вершины прямоугольника-"ловушки",
xmax, ymax    - координаты правой верхней вершины прямоугольника-"ловушки".
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Если указатель на группу равен нулю, то добавление производится в группу выделения (т.е. происходит выделение объектов документа).


## ksSetDocOptions - Заменить тип настройки графического документа

Аналог данного метода при использовании API экспортных функций - SetDocOptions.
Синтаксис Automation:
```
long ksSetDocOptions (long optionsType, LPDISPATCH param);
Входной параметр:
optionsType    - тип настройки.
Выходной параметр:
param    - указатель на интерфейс параметров.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
Соответствие входных и выходных параметров...
```


## ksSetDocVariableArray - Заменить значения и, если нужно, комментарии у параметрических переменных графического документа или вставки фрагмента

Аналог данного метода при использовании API экспортных функций - ksSetDocVariableArray.
Синтаксис Automation:
```
long ksSetDocVariableArray (long obj,
LPDISPATCH arr,
BOOL setNote);
Входные параметры:
obj    - указатель на документ или вставку фрагмента,
arr    - указатель на динамический массив ksDynamicArray параметрических переменных типа VARIABLE_ARR,
setNote    признак редактирования комментариев: 0 - комментарии не менять, 1 - комментарии менять.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
Смотрите также ksVariable
```


## ksSetLightObjType - Установить тип подсветки объекта (light=1 - красный) или (light=0 - зеленый)

Аналог данного метода при использовании API экспортных функций - ksSetLightObjType.
Синтаксис Automation:
```
long ksSetLightObjType( reference ref, long light );
Входные параметры:
ref    - указатель на объект,
light    - light=1 - красный или light=0 - зеленый.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```


## ksSetMacroParam - Записать параметры макроэлемента

Аналог данного метода при использовании API экспортных функций - ksSetMacroParam
Синтаксис Automation:
```
long ksSetMacroParam (long ref,
LPDISPATCH userPars,
bool dblClickOff,
bool hotpoints,
bool externEdit );
Входные параметры:
ref    - указатель на макроэлемент,
userPars    - указатель на интерфейс ksUserParam,
dblClickOff    - признак редактирования по двойному щелчку: TRUE - выключено, FALSE - включено,
hotpoints    - признак наличия интерфейса характерных точек: TRUE - интерфейс характерных точек включен, FALSE - выключен,
externEdit    признак наличия интерфейса внешнего управления: TRUE - интерфейс внешнего управления включен, FALSE - выключен.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
1. Метод записывает в указанный макроэлемент параметры редактирования: имя файла библиотеки, имя библиотеки и номер функции, предназначенной для редактирования данного макроэлемента. Получить значения параметров макроэлемента можно, используя метод ksDocument2D::ksGetMacroParam.
2. При необходимости в параметрах макроэлемента можно дополнительно сохранить пользовательские данные (допустимы все типы данных, кроме указателей), задав ksUserParam::userParams или ksUserParam::SetUserArray.
3. При значениях параметров ksUserParam::fileName = 0, ksUserParam::libName = 0, ksUserParam::number=-1 в макроэлементе сохраняется в качестве редактирующей та функция, которая вызвала метод ksSetMacroParam.
4. При обработке событий это правило не действует и в макро прописываются имя той библиотеки и ее файла, которая была использована непосредственно перед этим событием. Поэтому при создании макроэлемент по событию необходимо явно задавать имя библиотеки, имя файла и номер функции.


## ksSetMacroPlacement - Установить точку привязки и угол поворота - систему координат макроэлемента

Аналог данного метода при использовании API экспортных функций - SetMacroPlacement.
Синтаксис Automation:
```
long ksSetMacroPlacement (long macro,
double x,
double y,
double angl,
long relativ);
Входные параметры:
macro    - указатель на макроэлемент (0 - редактируемый макроэлемент),
x, y    - координаты точки привязки,
angl    - угол поворота от оси OX против часовой стрелки (в градусах),
relativ    признак системы координат: 1 - x, y, angl показывают смещение относительно СК редактируемого макроэлемента, 0 - абсолютные значения x, y, angl в СК вида.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
Смотрите также:
1. Методы ksDocument2D::ksGetMacroPlacement, ksDocument2D::ksSetMacroPlacementEx
2. Рекомендации по обеспечению корректного редактирования библиотекой макроэлементов, геометрия которых зеркально отражена относительно исходного ее построения...
```


## ksSetMacroPlacementEx - Установить точку привязки и угол поворота - систему координат макроэлемента

Аналог данного метода при использовании API экспортных функций - ksSetMacroPlacementEx.
Синтаксис Automation:
```
long ksSetMacroPlacementEx(long macro,
double x,
double y,
double angl,
long relativ,
long mirrorSymmetry);
Входные параметры:
macro    - указатель на макроэлемент (0 - редактируемый макроэлемент),
x, y    - координаты точки начала координат макроэлемента,
angl    - угол поворота от оси OX против часовой стрелки (в градусах),
relativ    признак системы координат: 1 - x, y, angl показывают смещение относительно СК редактируемого макроэлемента, 0 - абсолютные значения x, y, angl в СК вида,
mirrorSymmetry    - флаг зеркальной симметрии объекта.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
Метод позволяет установить СК макроэлемента либо в СК вида, либо смещением относительно СК макро.
Смотрите также:
1. Функция ksDocument2D::ksSetMacroPlacement
2. Рекомендации по обеспечению корректного редактирования библиотекой макроэлементов, геометрия которых зеркально отражена относительно исходного ее построения...


## ksSetMacroWaitDblClickEdit - Изменить режим ожидания DblClick при редактировании макроэлемента

Аналог данного метода при использовании API экспортных функций - ksSetMacroWaitDblClickEdit.
Синтаксис Automation:
```
long ksSetMacroWaitDblClickEdit (reference ref, long waitDblClick);
Входные параметры:
ref    - указатель на макроэлемент,
waitDblClick    - режим ожидания DblClick (1 - включить, 0 - выключить).
Возвращаемое значение:
1    - в случае успеха,
0    - в случае неудачи.
```
Примечание:
Макроэлемент, созданный библиотекой, может редактироваться двумя способами:
•по первому клику мыши - через характерные точки и\или интерфейс внешних воздействий;
•по двойному клику - через команду библиотеки.
Если время инициализации характерных точек сравнимо с двойным кликом, то редактирование через команду библиотеки становится невозможно. Во время редактирования макроэлемента, при включенном режиме ожидания DblClick, после первого щелчка по макроэлементу КОМПАС будет ожидать повторного нажатия в течении времени, установленного в настройках "Скорость выполнения двойного щелчка".
При выключенном режиме ожидания DblClick пауза отсутствует, и нажатие всегда интерпретируется как одинарное нажатие.


## ksSetMaterialParam - Установить параметры материала в чертеже

Аналог данного метода при использовании API экспортных функций - ksSetMaterialParam.
Синтаксис Automation:
```
long ksSetMaterialParam (LPDISPATCH material, double density);
Входные параметры:
material    - наименование материала, указатель на интерфейс динамического массива ksDynamicArray строк текста (TEXT_LINE_ARR),
density    - плотность (г/куб.мм).
Возвращаемое значение:
1    - в случае успеха,
0    - в случае неудачи.
```


## ksSetMixDlgMaterialParam - Установить параметры материала для диалога МЦХ

Аналог данного метода при использовании API экспортных функций - ksSetMixDlgMaterialParam.
Синтаксис:
```
BOOL ksSetMixDlgMaterialParam( BSTR material, double density );
Входные параметры
material    - обозначение материала,
density    - плотность.
Возвращаемое значение:
TRUE    - в случае успеха.
```


## ksSetObjConstraint - Установить параметрическую связь или ограничение

Аналог данного метода при использовании API экспортных функций - ksSetObjConstraint
Синтаксис Automation:
```
long ksSetObjConstraint (long obj, LPDISPATCH par);
Входные параметры:
obj    - объект, на который накладывается связь или ограничение,
par    - указатель на интерфейс параметрических связей и ограничений ksConstraintParam.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksSetObjectStyle - Установить стиль для объекта 2D документа

Аналог данного метода при использовании API экспортных функций - ksSetObjectStyle.
Синтаксис Automation:
```
BOOL ksSetObjectStyle( long obj, long style );
Входные параметры:
obj    - указатель reference объекта 2D,
style    - номер стиля.
```
Примечание:
Метод позволяет установить стиль для кривых и эквидистанты.


## ksSetObjParam - Установить параметры объекта

Аналог данного метода при использовании API экспортных функций - SetObjParam.
Синтаксис Automation:
```
long ksSetObjParam (long Reference,
LPDISPATCH param,
long paramType);
Входные параметры:
Reference    - указатель на объект,
param    - тип параметров объекта или индекс строки в массиве для объектов TECHNICALDEMAND_OBJ и TEXT_OBJ,
paramType    - тип параметров объекта или номер страницы (габаритного прямоугольника) технических требований (TECHNICALDEMAND_OBJ).
Типы объектов и интерфейсы...
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```


## ksSetTableBorderStyle - Изменить стиль границы ячейки

Аналог данного метода при использовании API экспортных функций - ksSetTableBorderStyle.
Синтаксис Automation:
```
long ksSetTableBorderStyle (long index,
short typeBorder,
long style);
Входные параметры:
index    - номер ячейки,
typeBorder    - тип границы: 0 - левая, 1 - правая, 2 - верхняя, 3 - нижняя,
style    - стиль линии границы: 0 - невидимая, 1 - основная, 2 - тонкая, 7 - утолщенная.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Нумерация ячеек начинается с 1.
Функция используется в режиме редактирования таблицы или допуска формы.


## ksSetTableColumnText - Установить текст ячейки таблицы

Аналог данного метода при использовании API экспортных функций - ksSetTableColumnText.
Синтаксис Automation:
```
long ksSetTableColumnText (long numb, LPDISPATCH param);
Входные параметры:
numb    - номер ячейки,
param    - указатель на интерфейс ksTextParam.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Функция используется в режиме редактирования таблицы.


## ksSetTextAlign - Установить тип привязки текста

Аналог данного метода при использовании API экспортных функций - ksSetTextAlign.
Синтаксис Automation:
```
long ksSetTextAlign (long pText, long align);
Входные параметры:
pText    - указатель на объект "текст",
align    - тип привязки текста.
Типы привязки текста...
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```


## ksSetTextLineAlign - Установить выравнивание текста

Аналог данного метода при использовании API экспортных функций - ksSetTextLineAlign.
Синтаксис Automation:
```
int ksSetTextLineAlign (short align);
Входной параметр:
align    - признак выравнивания: 0 - по левому краю, 1 - по центру, 2 - по правому краю, 3 - по ширине.
Возвращаемое значение:
предыдущий признак выравнивания    - в случае успешного завершения,
-1    - в случае неудачи.
Примечание.
Функция ksDocument2D::ksSetTextLineAlign должна использоваться внутри блока, т.е. необходимо, чтобы был открытый на редактирование текст. Иначе функция не работает.
```


## ksSetToleranceColumnText - Установить текст ячейки допуска формы

Аналог данного метода при использовании API экспортных функций - ksSetToleranceColumnText.
Синтаксис Automation:
```
long ksSetToleranceColumnText (long numb, LPDISPATCH par);
Входные параметры:
Numb    - номер ячейки,
Par    - указатель на интерфейс параметров строки текста ksTextLineParam.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Функция используется в режиме редактирования допуска формы.


## ksSheetToView - Пересчитать точку из системы координат листа в CK текущего вида

Аналог данного метода при использовании API экспортных функций - SheetToView.
Синтаксис Automation:
```
long ksSheetToView (double x,
double y,
double* outX,
double* outY);
Входные параметры:
x, y    - координаты точки в системе координат листа.
Выходные параметры:
outX, outY    - координаты точки в системе координат вида.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```


## ksSpecificationOnSheet - Установить признак размещения спецификации на листе

Аналог данного метода при использовании API экспортных функций - ksSpecificationOnSheet.
Синтаксис Automation:
```
long ksSpecificationOnSheet (short onSheet);
Входной параметр:
onSheet    - признак размещения спецификации на листе 1 - включено, 0 - выключено.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```


## ksSpecRough - Проставить знак неуказанной шероховатости в чертеже

Аналог данного метода при использовании API экспортных функций - ksSpecRough.
Синтаксис Automation:
```
long ksSpecRough (LPDISPATCH par);
Входной параметр:
par    - указатель на интерфейс знака неуказанной шероховатости ksSpecRoughParam.
Возвращаемое значение:
указатель на знак неуказанной шероховатости    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksStoreTmpGroup - Вставить временную группу в документ (группа "рассыпается")

Аналог данного метода при использовании API экспортных функций - StoreTmpGroup.
Синтаксис Automation:
```
long ksStoreTmpGroup (long group);
Входной параметр:
group    - указатель на группу.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Временные объекты не записываются в документ и на экране не отображаются. Они сохраняются только до конца работы создающей их библиотечной команды. Временная группа чаще всего служит для отрисовки фантомного изображения и используется в качестве параметров в методах ksDocument2D и ksDocument2D::ksCursor. Метод ksDocument2D::ksStoreTmpGroup записывает все объекты временной группы в документ (т.е. фиксирует их). Сама же группа получает статус постоянной.


## ksSymmetryObj - Отразить объект относительно оси

Аналог данного метода при использовании API экспортных функций - ksSymmetryObj.
Синтаксис Automation:
```
long ksSymmetryObj (long ref,
double x1,
double y1,
double x2,
double y2,
BSTR copy);
Входные параметры:
ref    - указатель на объект,
x1, y1    - координаты первой точки на оси,
x2, y2    - координаты второй точки на оси,
copy    - режим копирования: 0 - исходные объекты удаляются, 1 - исходные объекты оставляются.
Возвращаемое значение:
указатель на получившийся объект или группу объектов    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
Если указатель ref равен нулю, то зеркально отображаются выделенные объекты документа.


## ksTable - Создать таблицу в графическом документе

Аналог данного метода при использовании API экспортных функций - Table
Синтаксис Automation:
```
long ksTable();
Возвращаемое значение:
указатель на таблицу    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
Таблица - составной объект. Объекты, вводимые между операторами ksDocument2D::ksTable и ksDocument2D::ksEndObj, принадлежат таблице. Допустимые объекты - отрезки, тексты. Отрезки должны быть вертикальными и горизонтальными.
ksDocument2D::ksEndObj возвращает указатель на таблицу.
Допустимые стили линии для отрезков таблицы:
1 - основная,
2 - тонкая,
7 - утолщенная,
0 - невидимая.


## ksText - Создать текст в графическом документе

Аналог данного метода при использовании API экспортных функций - Text.
Синтаксис Automation:
```
long ksText (double x,
double y,
double ang,
double hStr,
double ksuStr,
long bitVector,
BSTR s);
Входные параметры:
x, y    - координаты точки привязки текста,
ang    - угол наклона текста,
hStr    - высота символов,
ksuStr    - сужение текста,
bitVector    - битовый вектор, задающий признаки начертания текста,
s    - строка символов.
Признаки начертания текста...
Возвращаемое значение:
указатель на текст или 1 при использовании внутри таблицы    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
1. Строка символов может включать спецсимвол. Например, чтобы задать 10 градусов, необходимо указать значение "10&01". Таблица спецсимволов размещена в файле SDK\NumbSymb.frw.
2. Не рекомендуется использовать в строке символы, которые могут идентифицироваться как управляющие символы: @ $ & ; ~ ^ #, кроме случаев, когда эти символы используются в строке именно как управляющие."
3. Использование управляющих символов:
•отклонение: $ верхнее отклонение; нижнее отклонение $,
•дробь: $d числитель ; знаменатель $,
•спецсимвол: &nn номер спецсимвола 0...99.
4. bitVector формируется с помощью логической операции |. Поддерживаются определения:
•ITALIC_ON ( включить наклон ),
•BOLD_ON (включить утолщение),
•UNDERLINE_ON (включить подчеркивание). См. ltdefine.h.


## ksTextEx - Создать многострочный текст

Аналог данного метода при использовании API экспортных функций - ksTextEx.
Синтаксис Automation:
```
long ksTextEx (LPDISPATCH txtParam, long align);
Входные параметры:
txtParam    - указатель на интерфейс ksTextParam параметров текста,
align    - выравнивание текста: 0 - слева, 1 - по центру, 2 - справа, 3 - по ширине, -1 установить выравнивание как у стиля текста.
Возвращаемое значение:
указатель на созданный текст    - в случае успеха,
0    - в случае неудачи.
```


## ksTextLine - Создать компоненту строки текста или целую строку, состоящую из компонент

Аналог данного метода при использовании API экспортных функций - TextLine.
Синтаксис Automation:
```
long ksTextLine (LPDISPATCH textItem);
Входной параметр:
textItem    - указатель на интерфейс ksTextItemParam для компоненты текста или ksTextLineParam для всей строки.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
1. Компонента строки должна иметь хотя бы одно cвойство, отличное от текущего шрифта.
2. Строка символов может включать спецсимвол. Например, чтобы задать 10 градусов, необходимо указать значение "10&01". Таблица спецсимволов размещена в файле SDK\NumbSymb.frw.
3. Не рекомендуется использовать в строке символы, которые могут идентифицироваться как управляющие символы: @ $ & ; ~ ^ #, кроме случаев, когда эти символы используются в строке именно как управляющие."
4. Использование управляющих символов:
•отклонение: $ верхнее отклонение ; нижнее отклонение $,
•дробь: $d числитель ; знаменатель $,
•спецсимвол: &nnn номер спецсимвола.


## ksTolerance - Проставить допуск формы

Аналог данного метода при использовании API экспортных функций - Tolerance.
Синтаксис Automation:
```
long ksTolerance (LPDISPATCH par);
Входной параметр:
par    - указатель на интерфейс допуска формы ksToleranceParam.
Возвращаемое значение:
указатель на допуск формы    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
Операторы ksDocument2D::ksColumnNumber и ksDocument2D::ksTextLine, вводимые между операторами ksDocument2D::ksTolerance и ksDocument2D::ksEndObj, принадлежат допуску формы.
ksColumnNumber определяет номер ячейки, куда помещать текст. Вначале считается, что допуск формы имеет таблицу из 10 колонок и 10 строк. Каждая ячейка таблицы имеет свой номер. Нумерация идет слева направо и сверху вниз.
По завершении создания объекта таблица форматируется, и лишние ячейки удаляются. ksEndObj возвращает указатель на допуск формы.


## ksTransformObj - Преобразовать объект по установленной матрице

Аналог данного метода при использовании API экспортных функций - TransformObj.
Синтаксис Automation:
```
long ksTransformObj (long ref);
Входной параметр:
ref    - указатель на объект.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Для работы с матрицами служат методы ksDocument2D::ksMtr и ksDocument2D::ksDeleteMtr.


## ksTrimmCurve - Усечь кривую, оставив часть между указанными точками

Аналог данного метода при использовании API экспортных функций - ksTrimCurve.
Синтаксис Automation:
```
long ksTrimmCurve (long curve,
double x1, double y1,
double x2, double y2,
double x3, double y3,
bool deleteOldCurve );
Входные параметры:
curve    - указатель на усекаемую кривую,
x1, y1    - координаты начала оставляемого участка,
x2, y2    - координаты конца оставляемого участка,
x3, y3    - координаты точки, определяющей направление усечения для замкнутых кривых (эта точка принадлежит оставляемому участку),
deleteOldCurve    - признак удаления усекаемой кривой: TRUE - кривая будет удалена после усечения, FALSE - кривая не будет удалена после усечения.
Возвращаемое значение:
указатель на усеченную кривую    - в случае успеха,
0    - в случае неудачи.
```
Примечание:
Если указанные точки не лежат на кривой, то усечение производится по их проекциям на кривую.


## ksTrimNurbs - Усечь NURBS

Аналог данного метода при использовании API экспортных функций - ksTrimNurbs.
Синтаксис Automation:
```
long ksTrimNurbs (long pObj,
double tMin,
double tMax );
Входные параметры:
pObj    - указатель на кривую NURBS или 0 для создаваемой кривой NURBS,
tMin, tMax    - границы интервала для усечения.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```


## ksUndoContainer - Включить/отключить объединение операций для Undo

Аналог данного метода при использовании API экспортных функций - ksUndoContainer.
Синтаксис Automation:
```
BOOL ksUndoContainer( BOOL add );
```
Синтаксис COM:
```
HRESULT ksUndoContainer( BOOL add, BOOL * result );
Входные параметры:
add    - false - закрывает текущий контейнер Undo для объединения операций, true - создает текущий контейнер Undo для объединения операций.
Возвращаемое значение:
TRUE    - в случае удачного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Метод позволяет включить/отключить объединение операций для Undo.


## ksUpdateMacro - Очистить макроэлемент и положить в него группу

Аналог данного метода при использовании API экспортных функций - ksUpdateMacro.
Синтаксис Automation:
```
long ksUpdateMacro (long macro, long gr);
Входные параметры:
macro    - указатель на макроэлемент,
gr    - указатель на группу.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Метод удаляет всю геометрию макроэлемента.


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

Аналог данного метода при использовании API экспортных функций - ksViewGetObjectArea.
Синтаксис Automation:
```
long ksViewGetObjectArea();
Возвращаемое значение:
указатель на временную группу    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
Так как сиcтема может работать только с одним процессом, то нужно завершить другие процессные функции: ksDocument2D::ksCursor, ksDocument2D::ksPlacement, ksDocument2D::ksCommandWindow, ksDocument2D::ksEditViewObject.


## ksViewPointer - Создать стрелку направления взгляда

Аналог данного метода при использовании API экспортных функций - ViewPointer.
Синтаксис Automation:
```
long ksViewPointer (LPDISPATCH par);
Входной параметр:
par    - указатель на интерфейс стрелки направления взгляда ksViewPointerParam.
Возвращаемое значение:
указатель на стрелку взгляда    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksViewToSheet - Пересчитать точку из CK текущего вида в CK листа

Аналог данного метода при использовании API экспортных функций - ViewToSheet.
Синтаксис Automation:
```
long ksViewToSheet (double x,
double y,
double* outX,
double* outY);
Входные параметры:
x, y    - координаты точки в системе координат вида.
Выходные параметры:
outX, outY    - координаты точки в системе координат листа.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```


## ksWriteGroupToClip - Разместить группу в буфере обмена с удалением или оставлением геометрии в документе-источнике (скопировать или вырезать геометрию в буфер обмена)

Аналог данного метода при использовании API экспортных функций - ksWriteGroupToClip.
Синтаксис Automation:
```
long ksWriteGroupToClip (long group,
BOOL copy);
Входные параметры:
group    - указатель на группу,
copy    - признак копирования или вырезания: 1 - копирование, 0 - вырезание.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```


## ksZoom - Задать масштаб изображения прямоугольной рамкой

Аналог данного метода при использовании API экспортных функций - ksZoom.
Синтаксис Automation:
```
long ksZoom (double x1,
double y1,
double x2,
double y2);
Входные параметры:
x1, y1    - координаты (в СК вида) первой точки диагонали рамки,
x2, y2    - координаты (в СК вида) второй точки диагонали рамки.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```


## ksZoomPrevNextOrAll - Показать документ в предыдущем/последующем масштабе или документ целиком

Аналог данного метода при использовании API экспортных функций - ksZoomPrevNextOrAll.
Синтаксис Automation:
```
long ksZoomPrevNextOrAll (short type);
Входной параметр:
type    тип масштабирования: 0 - следующий масштаб, 1 - предыдущий масштаб, 2 - весь документ.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```


## ksZoomScale - Задать масштаб изображения по точке и коэффициенту масштабирования

Аналог данного метода при использовании API экспортных функций - ksZoomScale.
Синтаксис Automation:
```
long ksZoomScale (double x,
double y,
double scale_);
Входные параметры:
x1, y1    - координаты (в СК вида) точки центра изменения масштаба,
scale_    - коэффициент изменения масштаба изображения.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```


## OrthoMode - Режим ортогонального черчения

Тип данных: VARIANT_BOOL
Синтаксис Automation:
```
orthoMode = iDocument2D.orthoMode    Получить свойство (* )
iDocument2D.lookStyle = orthoMode    Установить свойство (* )
orthoMode = iDocument2D.GetOrthoMode()    Получить свойство (**)
iDocument2D.SetOrthoMode(orthoMode)    Установить свойство (**)
```
Примечание:
Используется только для визуальных документов.


## RasterFormatParam - Получить указатель на интерфейс, определяющий параметры записи в растровый формат

Синтаксис Automation:
```
LPDISPATCH RasterFormatParam();
Возвращаемое значение:
указатель на интерфейс ksRasterFormatParam    - в случае успешного завершения,
NULL    - в случае неудачи.
```


## Reference - Указатель на графический документ системы КОМПАС

Тип данных: long
Синтаксис Automation:
```
ref = iDocument2D.reference    Получить свойство (* )
iDocument2D.reference = ref    Установить свойство (* )
ref = iDocument2D.GetReference()    Получить свойство (**)
iDocument2D.SetReference(ref)    Установить свойство (**)
```


## SaveAsToRasterFormat - Сохранить документ в растровом формате

Аналог данного метода при использовании API экспортных функций - ksSaveAsToRasterFormat.
Синтаксис Automation:
```
BOOL SaveAsToRasterFormat (BSTR fileName,
LPDISPATCH rasterPar);
Входные параметры:
fileName    - полное имя файла документа,
rasterPar    - указатель на интерфейс ksRasterFormatParam, определяющий параметры записи в растровый формат.
Возвращаемое значение:
TRUE    - в случае удачного завершения,
FALSE    - в случае неудачи.
```
Примечания:
Метод позволяет сохранить присланный документ в растровом формате (BMP, GIF, JPG, PNG, TIF, TGA, PCX, EMF и WMF) с заданными свойствами.
Сохранение в WMF формат не поддерживается. При сохранении в WMF формате файл записывается в формате EMF.


## SaveAsToUncompressedRasterFormat - Сохранить документ в растровом формате без сжатия

Аналог данного метода при использовании API экспортных функций - ksSaveAsToUncompressedRasterFormat.
Синтаксис Automation:
```
BOOL SaveAsToUncompressedRasterFormat (BSTR fileName, IDispatch* rasterPar);
Входные параметры:
fileName    - имя файла документа, должно быть задано полное имя файла,
rasterPar    - указатель на интерфейс ksRasterFormatParam, определяющий параметры конвертации в растровый формат.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Метод позволяет сохранить документ в растровом формате без сжатия, с заданными свойствами: цветом, форматом (BMP, GIF, JPG, PNG, TIF, TGA, PCX, EMF и WMF) и т.п. Сохранение в WMF формат не поддерживается. При сохранении в WMF формате файл записывается в формате EMF.
Подробнее см. описание ksRasterFormatParam.
