e1337e4016
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>
581 lines
22 KiB
Markdown
581 lines
22 KiB
Markdown
---
|
||
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 - в случае неудачи.
|
||
```
|