---
title: "Интерфейс ISketch"
type: interface
api: [api7]
domain: [sketch, feature]
tags: [interface, api7, sketch, feature, isketch]
sources:
  - isketch.html
---

*API интерфейсов. Версия 7 > Документ 3D  > Операции, массивы, эскизы, точки  > Эскиз *


## Интерфейс ISketch

Интерфейс элемента Эскиз.
Иерархия:
IDispatch
IKompasAPIObject
IModelObject
ISketch
ILocalCSObject
Примечание:
Интерфейс можно получить с помощью метода коллекции эскизов ISketchs::Add или свойства ISketchs::Sketch.
С помощью метода IUnknown::QueryInterface у интерфейса можно получить интерфейс подчиненного объекта ЛСК ILocalCSObject.


## AddIntersectionOf - Добавить в эскиз пересечение с объектом

Синтаксис Automation:
```
VARIANT AddIntersectionOf( IKompasAPIObject * Object, long LinesStyle, ksAnnotationSymbolEnum PointsStyle, BOOL Extended );
```
Синтаксис COM:
```
HRESULT AddIntersectionOf( IKompasAPIObject * Object, long LinesStyle, ksAnnotationSymbolEnum PointsStyle, BOOL Extended, VARIANT * Result );
Возвращаемое значение:
- Массив созданных проекционных объектов в виде в виде SAFEARRAY'я DISPATCH - VT_ARRAY    VT_DISPATCH.
Входные параметры:
Object    - указатель на объект,
LinesStyle    - стиль линий,
PointsStyle    - стиль точек,
Extended    - учитывать продолжение.
Версия КОМПАС v23
```


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

Синтаксис Automation:
```
VARIANT AddProjectionOf( IModelObject * Object );
```
Синтаксис COM:
```
HRESULT AddProjectionOf( IModelObject * Object, VARIANT * Result );
Возвращаемое значение:
- Массив созданных проекционных объектов в виде в виде SAFEARRAY'я DISPATCH - VT_ARRAY    VT_DISPATCH.
Входные параметры:
Object    - указатель на интерфейс IModelObject.
Версия КОМПАС v22
```


## AddSketch - Создать эскиз из уже имеющегося в заданной плоскости

Синтаксис Automation:
```
BOOL AddSketch( IModelObject * Sketch, IModelObject * Plane );
```
Синтаксис COM:
```
HRESULT AddSketch( IModelObject * Sketch, IModelObject * Plane, BOOL * Result );
Входные параметры:
Sketch    - указатель на эскиз,
Plane    - указатель на плоскость.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```


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

Тип данных: double
Синтаксис Automation:
```
Angle = iObject.Angle;    Получить свойство (* )
iObject.Angle = Angle;    Установить свойство (* )
Angle = iObject.GetAngle();    Получить свойство (**)
iObject.SetAngle( Angle );    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_Angle( &Angle );    Получить свойство
iObject->put_Angle( Angle );    Установить свойство
```


## AssociationObject - Точка привязки

Тип данных: Указатель на интерфейс IModelObject
Синтаксис Automation:
```
AssociationObject = Object.AssociationObject;    Получить свойство (* )
Object.AssociationObject = AssociationObject;    Установить свойство (* )
AssociationObject = Object.GetAssociationObject();    Получить свойство (**)
Object.SetAssociationObject( AssociationObject );    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_AssociationObject( &AssociationObject );    Получить свойство
Object.put_AssociationObject( AssociationObject );    Установить свойство
```


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

Синтаксис Automation:
```
BeginEdit();
Возвращаемое значение:
SketchDoc    - указатель на интерфейс IFragmentDocument.
```
Синтаксис COM:
```
HRESULT BeginEdit( [out, retval] IFragmentDocument ** SketchDoc );
Возвращаемое значение:
SketchDoc    - указатель на интерфейс IFragmentDocument.
```
Примечание:
После редактирования необходимо вызвать функцию ISketch::EndEdit.


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

Синтаксис Automation:
```
LPDISPATCH BeginEditEx( BOOL ReadOnly );
```
Синтаксис COM:
```
HRESULT BeginEditEx( BOOL ReadOnly, IFragmentDocument * * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Входные параметры:
ReadOnly    - = TRUE - для чтения.
```


## BuildingType - Способ построения

Тип данных: из перечисления ksSketchBuildingTypeEnum
Синтаксис Automation:
```
BuildingType = Object.BuildingType    Получить свойство (* )
Object.BuildingType = BuildingType    Установить свойство (* )
BuildingType = Object.GetBuildingType()    Получить свойство (**)
Object.SetBuildingType( BuildingType )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_BuildingType( &BuildingType )    Получить свойство
Object.put_BuildingType( BuildingType )    Установить свойство
КOMPAS v24
```


## ConstraintsState - Параметрическое состояние эскиза

Тип данных: Значение из перечисления ksConstraintsStateEnum
Синтаксис Automation:
```
ConstraintsState = Object.ConstraintsState    Получить свойство(* )
ConstraintsState = Object.GetConstraintsState()    Получить свойство(**)
```
Синтаксис COM:
```
Object.get_ConstraintsState( &ConstraintsState )    Получить свойство.
```
Примечание:
Свойство доступно только для чтения.
Версия КОМПАС v22


## CoordinateSystem - Система координат эскиза

Тип данных: Указатель на интерфейс IModelObject
Синтаксис Automation:
```
CoordinateSystem = Object.CoordinateSystem;    Получить свойство (* )
Object.CoordinateSystem = CoordinateSystem;    Установить свойство (* )
CoordinateSystem = Object.GetCoordinateSystem();    Получить свойство (**)
Object.SetCoordinateSystem( CoordinateSystem );    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_CoordinateSystem( &CoordinateSystem );    Получить свойство
Object.put_CoordinateSystem( CoordinateSystem );    Установить свойство
```


## Curves - Траектория

Тип данных: VARIANT
Синтаксис Automation:
```
Curves = Object.Curves    Получить свойство (* )
Object.Curves = Curves    Установить свойство (* )
Curves = Object.GetCurves()    Получить свойство (**)
Object.SetCurves( Curves )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_Curves( &Curves )    Получить свойство
Object.put_Curves( Curves )    Установить свойство
КOMPAS v24
```


## DeleteWrongProjection - Удалить ошибочные проекции

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


## DirectingObject - Направляющий объект для оси

Тип данных: Указатель на интерфейс IModelObject
Синтаксис Automation:
```
DirectingObject = Object.DirectingObject( Axis );    Получить свойство (* )
Object.DirectingObject( Axis ) = DirectingObject;    Установить свойство (* )
DirectingObject = Object.GetDirectingObject( Axis );    Получить свойство (**)
Object.SetDirectingObject( Axis, DirectingObject );    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_DirectingObject( Axis, &DirectingObject );    Получить свойство
Object.put_DirectingObject( Axis, DirectingObject );    Установить свойство
Входные параметры:
Axis    - тип оси: o3d_axisOX - ось X, o3d_axisOY - ось Y
```
Примечание:
1. При указании базовой плоскости можно задать направляющий объект для оси X или оси Y.
2. Направление второй оси будет определяться как векторное произведение оси Z, направленной по нормали к плоскости, и заданным направлением.
3. Направление осей можно задать также параметрами вектора.


## Direction - Направление

Тип данных: BOOL
Синтаксис Automation:
```
Direction = Object.Direction    Получить свойство (* )
Object.Direction = Direction    Установить свойство (* )
Direction = Object.GetDirection()    Получить свойство (**)
Object.SetDirection( Direction )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_Direction( &Direction )    Получить свойство
Object.put_Direction( Direction )    Установить свойство
КOMPAS v24
```


## Edges - Массив рёбер(SAFEARRAY)

Тип данных: VARIANT
Синтаксис Automation:
```
Edges = Object.Edges( EdgesType )    Получить свойство(* )
Edges = Object.GetEdges( EdgesType )    Получить свойство(**)
```
Синтаксис COM:
```
Object.get_Edges( EdgesType, &Edges )    Получить свойство.
```
Примечание:
Свойство доступно только для чтения.
Версия КОМПАС v22


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

Синтаксис Automation:
```
BOOL EndEdit();
```
Синтаксис COM:
```
HRESULT EndEdit( [out, retval] VARIANT_BOOL * res );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```


## Fixed - Фиксация

Тип данных: BOOL
Синтаксис Automation:
```
Fixed = Object.Fixed;    Получить свойство (* )
Object.Fixed = Fixed;    Установить свойство (* )
Fixed = Object.GetFixed();    Получить свойство (**)
Object.SetFixed( Fixed );    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_Fixed( &Fixed );    Получить свойство
Object.put_Fixed( Fixed );    Установить свойство
```


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

Синтаксис Automation:
```
BOOL GetLocation( double X, double Y);
```
Синтаксис COM:
```
HRESULT GetLocation([out] double * X, [out] double * Y, [out, retval] VARIANT_BOOL * PVal);
Выходные параметры:
X    - смещение системы координат эскиза по оси X,
Y    - смещение системы координат эскиза по оси Y.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```


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

Синтаксис Automation:
```
BOOL GetLoftPoint( double X, double Y);
```
Синтаксис COM:
```
HRESULT GetLoftPoint([out] double * X, [out] double * Y, [out, retval] VARIANT_BOOL * PVal);
Выходные параметры:
X    - значение координаты точки по оси X,
Y    - значение координаты точки по оси Y.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```


## GetPoint3D - Получить пространственную точку по точке на плоскости XY

Синтаксис Automation:
```
BOOL GetPoint3D( double XIn, double YIn, double * XOut, double * YOut, double * ZOut );
```
Синтаксис COM:
```
HRESULT GetPoint3D( double XIn, double YIn, double * XOut, double * YOut, double * ZOut, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Входные параметры:
XIn, YIn    - координаты эскиза.
Выходные параметры:
XIn, YIn, ZIn    - координаты 3D точки.
Версия КОМПАС v22
```


## GetPointProjectionToXY - Проекция точки на плоскость XY

Синтаксис Automation:
```
BOOL GetPointProjectionToXY( double XIn, double YIn, double ZIn, double * XOut, double * YOut );
```
Синтаксис COM:
```
HRESULT GetPointProjectionToXY( double XIn, double YIn, double ZIn, double * XOut, double * YOut, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Входные параметры:
XIn, YIn, ZIn    - координаты 3D точки.
Выходные параметры:
XOut, YOut    - координаты проекционной точки.
Версия КОМПАС v22
```


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

Тип данных: BOOL
Синтаксис Automation:
```
LeftHandedCS = Object.LeftHandedCS;    Получить свойство (* )
Object.LeftHandedCS = LeftHandedCS;    Установить свойство (* )
LeftHandedCS = Object.GetLeftHandedCS();    Получить свойство (**)
Object.SetLeftHandedCS( LeftHandedCS );    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_LeftHandedCS( &LeftHandedCS );    Получить свойство
Object.put_LeftHandedCS( LeftHandedCS );    Установить свойство
```


## Offset - Величина смещения

Тип данных: double
Синтаксис Automation:
```
Offset = Object.Offset    Получить свойство (* )
Object.Offset = Offset    Установить свойство (* )
Offset = Object.GetOffset()    Получить свойство (**)
Object.SetOffset( Offset )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_Offset( &Offset )    Получить свойство
Object.put_Offset( Offset )    Установить свойство
КOMPAS v24
```


## OffsetType - Тип задания смещения

Тип данных: из перечисления ksPoint3DCurveParamTypeEnum
Синтаксис Automation:
```
OffsetType = Object.OffsetType    Получить свойство (* )
Object.OffsetType = OffsetType    Установить свойство (* )
OffsetType = Object.GetOffsetType()    Получить свойство (**)
Object.SetOffsetType( OffsetType )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_OffsetType( &OffsetType )    Получить свойство
Object.put_OffsetType( OffsetType )    Установить свойство
КOMPAS v24
```


## Plane - Опорная плоскость

Тип данных: указатель на интерфейс IModelObject
Синтаксис Automation:
```
Plane = iObject.Plane;    Получить свойство (* )
iObject.Plane = Plane;    Установить свойство (* )
Plane = iObject.GetPlane();    Получить свойство (**)
iObject.SetPlane( Plane );    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_Plane( &Plane );    Получить свойство
iObject->put_Plane( Plane );    Установить свойство
```


## RotateAxis - Сменить направление оси на противоположное

Синтаксис Automation:
```
BOOL RotateAxis( ksObj3dTypeEnum axis );
```
Синтаксис COM:
```
HRESULT RotateAxis( ksObj3dTypeEnum axis, BOOL * Result);
Входной параметр:
axis    - тип оси из перечисления ksObj3dTypeEnum (должны передаваться типы : o3d_axisOX o3d_axisOY ).
Возвращаемое значение :
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
1. Метод позволяет менять направления осей на противоположные.
2. Для осей можно выбирать направляющие объекты (см. метод ISketch::DirectingObject, ISketch::Vector3D).
3. Можно выбрать направление для оси X или оси Y, третья ось ориентируется, исходя из положения оси Z и выбранной.
4. Менять направление на противоположное можно только у выбранных осей.


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

Синтаксис Automation:
```
BOOL SetLocation( double X, double Y);
```
Синтаксис COM:
```
HRESULT SetLocation([in] double X, [in] double Y, [out, retval] VARIANT_BOOL * PVal);
Входные параметры:
X    - смещение системы координат эскиза по оси X,
Y    - смещение системы координат эскиза по оси Y.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```


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

Синтаксис Automation:
```
BOOL SetLoftPoint( double X, double Y);
```
Синтаксис COM:
```
HRESULT SetLoftPoint([in] double X, [in] double Y, [out, retval] VARIANT_BOOL * PVal);
Входные параметры:
X    - значение координаты точки по оси X,
Y    - значение координаты точки по оси Y.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```


## UserSetPlacement - Разместить эскиз

Синтаксис Automation:
```
BOOL UserSetPlacement( BSTR Prompt );
Синтаксис COM:HRESULT UserSetPlacement( BSTR Prompt, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Входные параметры:
Prompt    - cтрока приглашение.
Версия КОМПАС v22
```


## Vector3D - Вектор, задающий направление оси

Тип данных: Указатель на интерфейс IVector3D
Синтаксис Automation:
```
Vector3D = Object.Vector3D( Axis )    Получить свойство(* )
Vector3D = Object.GetVector3D( Axis )    Получить свойство(**)
```
Синтаксис COM:
```
Object.get_Vector3D( Axis, &Vector3D )    Получить свойство.
Входные параметры:
Axis    - тип оси: o3d_axisOX - ось X, o3d_axisOY - ось Y
```
Примечание:
1. При указании базовой плоскости можно задать направляющий объект для оси X или оси Y.
2. Направление второй оси будет определяться как векторное произведение оси Z, направленной по нормали к плоскости, и заданным направлением.
3. Свойство доступно только для чтения.


## WriteToFragment - Сохранить эскиз во фрагмент

Синтаксис Automation:
```
BOOL WriteToFragment( BSTR FileName );
```
Синтаксис COM:
```
HRESULT WriteToFragment( BSTR FileName, BOOL* Result );
Входные параметры:
FileName    - имя файла фрагмента.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
