---
title: "Эскиз (Интерфейсы ksSketchDefinition, ISketchDefinition)"
type: interface
api: [api7]
domain: [2d, sketch, feature]
tags: [interface, api7, 2d, sketch, feature, kssketchdefinition]
sources:
  - kssketchdefinition.html
---

*API интерфейсов. Версия 5 > Документ-модель (Интерфейсы - ksDocument3D, IDocument3D )  > Компонент сборки (деталь или подсборка). Интерфейсы ksPart и IPart  > Объект модели (Интерфейсы ksEntity и IEntity)  > Интерфейсы ksEntity и iEntity - Интерфейс элемента модели (оси, плоскости, формообразующего элемента)  > Интерфейсы формообразующих операций *


## Эскиз (Интерфейсы ksSketchDefinition, ISketchDefinition)

Интерфейс параметров эскиза.
| ksSketchDefinition | - интерфейс Automation |
| --- | --- |
| ISketchDefinition | - интерфейс COM |
Примечание:
1. Данный интерфейс можно получить, используя метод интерфейса элемента модели ksEntity::GetDefinition или IEntity::GetDefinition.
2. На момент редактирования (до вызова метода EndEdit), текущим документом является документ эскиза.


## AddProjectionOf - Добавить в эскиз проекцию объекта

Синтаксис Automation:
```
long AddProjectionOf (LPDISPATCH entity);
```
Синтаксис COM:
```
long AddProjectionOf (LPENTITY entity);
Входной параметр:
entity    - указатель на интерфейс объекта ksEntity или IEntity.
Возвращаемое значение:
- указатель на группу объектов, получившихся в результате проецирования.
```
Примечание:
1. Данный метод работает только в режиме редактирования эскиза.
2. Параметр entity может быть указателем на ребро, вершину или грань.


## angle - Угол поворота эскиза относительно проекции системы координат модели на плоскость эскиза (в градусах)

Тип данных: double
Синтаксис Automation:
```
angle = iSketchDefinition.angle    Получить свойство(* )
iSketchDefinition.angle = angle    Установить свойство (* )
angle = iSketchDefinition.GetAngle()    Получить свойство (**)
iSketchDefinition.SetAngle(angle)    Установить свойство (**)
```


## BeginEdit - Войти в режим редактирования эскиза (ksDocument2D)

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


## EndEdit - Выйти из режима редактирования эскиза

Синтаксис Automation:
```
BOOL EndEdit();
```
Синтаксис COM:
```
BOOL EndEdit();
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```


## GetLocation - Получить смещение системы координат эскиза относительно проекции системы координат модели на плоскость эскиза

Синтаксис Automation:
```
BOOL GetLocation (double * x, double * y);
```
Синтаксис COM:
```
BOOL GetLocation (double * x, double * y);
Выходные параметры:
x, y    - смещение вдоль осей.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```


## GetLoftPoint - Получить координаты точки в плоскости эскиза

Синтаксис Automation:
```
BOOL GetLoftPoint (double * x, double * y);
```
Синтаксис COM:
```
BOOL GetLoftPoint (double * x, double * y);
Выходные параметры:
x, y    - координаты точки.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```
Примечание:
При формировании элемента по сечениям (операции ksBaseLoftDefinition, ksBossLoftDefinition, ksCutLoftDefinition) полученная точка определяет ближайшую к ней вершину как точку, через которую пройдет линия, соединяющая эскизы.


## GetPlane - Получить базовую плоскость эскиза

Синтаксис Automation:
```
LPDISPATCH GetPlane();
```
Синтаксис COM:
```
LPENTITY GetPlane();
Возвращаемое значение:
- указатель на интерфейс ksEntity или IEntity.
```


## GetSurface - Получить указатель на интерфейс математической поверхности

Синтаксис Automation:
```
LPDISPATCH GetSurface();
```
Синтаксис COM:
```
LPENTITY GetSurface();
Возвращаемое значение:
- указатель на интерфейс ksSurface или ISurface.
```


## SetLocation - Изменить смещение системы координат эскиза относительно проекции системы координат модели на плоскость эскиза

Синтаксис Automation:
```
BOOL SetLocation (double x, double y);
```
Синтаксис COM:
```
BOOL SetLocation (double x, double y);
Входные параметры:
x, y    - смещение вдоль осей.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```


## SetLoftPoint - Изменить координаты точки в плоскости эскиза

Синтаксис Automation:
```
BOOL SetLoftPoint (double x, double y);
```
Синтаксис COM:
```
BOOL SetLoftPoint (double x, double y);
Входные параметры:
x, y    - координаты точки.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```
Примечание:
При формировании элемента по сечениям (операции ksBaseLoftDefinition, ksBossLoftDefinition, ksCutLoftDefinition, ksLoftSurfaceDefinition) указанная точка определяет ближайшую к ней вершину как точку, через которую пройдет линия, соединяющая эскизы.


## SetPlane - Изменить базовую плоскость эскиза

Синтаксис Automation:
```
BOOL SetPlane (LPDISPATCH plane);
```
Синтаксис COM:
```
BOOL SetPlane (LPENTITY plane);
Входной параметр:
plane    - указатель на интерфейс базовой плоскости эскиза ksEntity или IEntity.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```


## UserSetPlacement - Перейти в режим указания пользователем нового положения эскиза на той же плоскости (или плоской грани), где он был расположен ранее

Синтаксис Automation:
```
BOOL UserSetPlacement (BSTR prompt);
```
Синтаксис COM:
```
BOOL UserSetPlacement (LPOLESTR prompt);
Входной параметр:
prompt    - текст строки-подсказки.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```
Примечание:
После вызова этой функции запускается такой же режим, как после вызова в КОМПАС-3D команды Разместить эскиз.
