Files
kompas3d-mcp/docs/Kompas3D_SDK/interfaces/isketch.md
T
mikhail e1337e4016 feat(sdk-docs): MD-база знаний SDK — в репозиторий; генератор и зеркало убраны
docs/Kompas3D_SDK/ становится каноническим источником справки КОМПАС SDK
и включается в репозиторий (2491 файл, ~14 МБ). HTML-зеркало
docs/KOMPAS_SDK_ru-RU/ (~1.4 ГБ, © АСКОН) и генератор
tools/build_kompas3d_sdk.py больше не нужны — регенерация не предполагается.

- .gitignore: MD-база разблокирована; зеркало остаётся проигнорированным
  (safety-net на случай повторной локальной выгрузки).
- CLAUDE.md / SKILL.md: убраны упоминания регенерации и зеркала.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 20:00:05 +03:00

581 lines
22 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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 - в случае неудачи.
```