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>
334 lines
14 KiB
Markdown
334 lines
14 KiB
Markdown
---
|
||
title: "Интерфейс IRuledSurface"
|
||
type: interface
|
||
api: [api7]
|
||
tags: [interface, api7, iruledsurface]
|
||
sources:
|
||
- iruledsurface.html
|
||
---
|
||
|
||
*API интерфейсов. Версия 7 > Документ 3D > Поверхности > Интерфейс ISurfaceContainer > ISurfaceContainer - свойства *
|
||
|
||
|
||
## Интерфейс IRuledSurface
|
||
|
||
Интерфейс операции создания линейчатой поверхности.
|
||
Иерархия:
|
||
IDispatch
|
||
IKompasAPIObject
|
||
IModelObject
|
||
IRuledSurface
|
||
|
||
|
||
## AddNewEdge - Добавление ребра линейчатой поверхности после указанного индексом
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL AddNewEdge( long IndexAt );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT AddNewEdge( long IndexAt, BOOL * Result );
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
Входные параметры
|
||
IndexAt - индекс ребра, после которого нужно вставить новое ребро.
|
||
Метод позволяет вставить новое ребро перед заданным. Новое ребро будет иметь следующий по порядку номер.
|
||
```
|
||
|
||
|
||
## AutoSegmentation - Автоматическое разбиение линейчатой поверхности на грани
|
||
|
||
Тип данных: BOOL
|
||
Синтаксис Automation:
|
||
```
|
||
AutoSegmentation = Object.AutoSegmentation Получить свойство (* )
|
||
Object.AutoSegmentation = AutoSegmentation Установить свойство (* )
|
||
AutoSegmentation = Object.GetAutoSegmentation() Получить свойство (**)
|
||
Object.SetAutoSegmentation( AutoSegmentation ) Установить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
Object.get_AutoSegmentation( &AutoSegmentation ) Получить свойство
|
||
Object.put_AutoSegmentation( AutoSegmentation ) Установить свойство
|
||
Свойство позволяет включать и выключать опцию автоматического разбиения на грани.
|
||
```
|
||
|
||
|
||
## BuildingType - Способ построения
|
||
|
||
Тип данных: из перечисления ksRuledSurfaceBuildingTypeEnum
|
||
Синтаксис Automation:
|
||
```
|
||
BuildingType = Object.BuildingType Получить свойство (* )
|
||
Object.BuildingType = BuildingType Установить свойство (* )
|
||
BuildingType = Object.GetBuildingType() Получить свойство (**)
|
||
Object.SetBuildingType( BuildingType ) Установить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
Object.get_BuildingType( &BuildingType Получить свойство
|
||
Object.put_BuildingType( BuildingType ) Установить свойство
|
||
Версия КОМПАС v22
|
||
```
|
||
|
||
|
||
## CheckSelfIntersection - Проверка самопересечения поверхности
|
||
|
||
Тип данных: BOOL
|
||
Синтаксис Automation:
|
||
```
|
||
CheckSelfIntersection = Object.CheckSelfIntersection Получить свойство (* )
|
||
Object.CheckSelfIntersection = CheckSelfIntersection Установить свойство (* )
|
||
CheckSelfIntersection = Object.GetCheckSelfIntersection() Получить свойство (**)
|
||
Object.SetCheckSelfIntersection( CheckSelfIntersection ) Установить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
Object.get_CheckSelfIntersection( &CheckSelfIntersection ) Получить свойство
|
||
Object.put_CheckSelfIntersection( CheckSelfIntersection ) Установить свойство
|
||
Свойство позволяет проверить поверхность на наличие самопересечений.
|
||
```
|
||
|
||
|
||
## ConsiderComplianceVertices - Учет соответствия вершин направляющих при построении поверхности
|
||
|
||
Тип данных: BOOL
|
||
Синтаксис Automation:
|
||
```
|
||
ConsiderComplianceVertices = Object.ConsiderComplianceVertices Получить свойство (* )
|
||
Object.ConsiderComplianceVertices = ConsiderComplianceVertices Установить свойство (* )
|
||
ConsiderComplianceVertices = Object.GetConsiderComplianceVertices() Получить свойство (**)
|
||
Object.SetConsiderComplianceVertices( ConsiderComplianceVertices ) Установить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
Object.get_ConsiderComplianceVertices( &ConsiderComplianceVertices ) Получить свойство
|
||
Object.put_ConsiderComplianceVertices( ConsiderComplianceVertices ) Установить свойство
|
||
```
|
||
|
||
|
||
## Curves1 - Первая цепочка кривых (первая направляющая линейчатой поверхности) в виде SAFEARRAY DISPATCH - VT_ARRAY | VT_DISPATCH
|
||
|
||
Тип данных: VARIANT типа VT_ARRAY | VT_DISPATCH
|
||
Синтаксис Automation:
|
||
```
|
||
Curves1 = Object.Curves1 Получить свойство (* )
|
||
Object.Curves1 = Curves1 Установить свойство (* )
|
||
Curves1 = Object.GetCurves1() Получить свойство (**)
|
||
Object.SetCurves1( Curves1 ) Установить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
Object.get_Curves1( &Curves1 ) Получить свойство
|
||
Object.put_Curves1( Curves1 ) Установить свойство
|
||
Свойство позволяет устанавливать и получать первую направляющую.
|
||
```
|
||
Примечание:
|
||
Направляющей может являться:
|
||
•пространственная кривая;
|
||
•цепочка последовательно соединяющихся пространственных кривых;
|
||
•точечный объект.
|
||
|
||
|
||
## Curves2 - Вторая цепочка кривых (вторая направляющая линейчатой поверхности) SAFEARRAY DISPATCH - VT_ARRAY | VT_DISPATCH
|
||
|
||
Тип данных: VARIANT типа VT_ARRAY | VT_DISPATCH
|
||
Синтаксис Automation:
|
||
```
|
||
Curves2 = Object.Curves2 Получить свойство (* )
|
||
Object.Curves2 = Curves2 Установить свойство (* )
|
||
Curves2 = Object.GetCurves2() Получить свойство (**)
|
||
Object.SetCurves2( Curves2 ) Установить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
Object.get_Curves2( &Curves2 ) Получить свойство
|
||
Object.put_Curves2( Curves2 ) Установить свойство
|
||
Свойство позволяет устанавливать и получать первую направляющую.
|
||
```
|
||
Примечание:
|
||
Направляющей может являться:
|
||
•пространственная кривая;
|
||
•цепочка последовательно соединяющихся пространственных кривых;
|
||
•точечный объект.
|
||
|
||
|
||
## DeleteEdge - Удаление ребра линейчатой поверхности
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL DeleteEdge( long Index )
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT DeleteEdge( long Index, BOOL * Result );
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
Входные параметры
|
||
Index - индекс удаляемого ребра.
|
||
Метод позволяет удалить ребро, заданное по индексу.
|
||
```
|
||
Примечания:
|
||
1. Оставшиеся ребра нумеруются заново.
|
||
2. Удаление ребер невозможно, если в списке остались два ребра.
|
||
|
||
|
||
## EdgesCount - Количество ребер
|
||
|
||
Тип данных: long
|
||
Синтаксис Automation:
|
||
```
|
||
EdgesCount = Object.EdgesCount Получить свойство (* )
|
||
EdgesCount = Object.GetEdgesCount() Получить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
Object.get_EdgesCount( &EdgesCount ) Получить свойство
|
||
```
|
||
Примечание
|
||
Свойство доступно только для чтения.
|
||
|
||
|
||
## GetEdgePointParam - Получение параметров точки ребра линейчатой поверхности
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetEdgePointParam( long EdgeIndex,
|
||
BOOL StartPoint,
|
||
double * X,
|
||
double * Y,
|
||
double * Z,
|
||
double * T,
|
||
IModelObject ** Segment,
|
||
IModelObject ** AssociateVertex );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT GetEdgePointParam( long EdgeIndex,
|
||
BOOL StartPoint,
|
||
double * X,
|
||
double * Y,
|
||
double * Z,
|
||
double * T,
|
||
IModelObject ** Segment,
|
||
IModelObject ** AssociateVertex,
|
||
BOOL * Result );
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
Входные параметры
|
||
EdgeIndex - индекс ребра,
|
||
StartPoint - начальная или конечная вершина ребра.
|
||
Выходные параметры
|
||
X, Y, Z - координаты точки,
|
||
T - параметр точки на кривой,
|
||
Segment - сегмент направляющей, на котором находится точка,
|
||
AssociateVertex - вершина направляющей, с которой связана вершина ребра.
|
||
Метод позволяет получить параметры вершины ребра линейчатой поверхности.
|
||
```
|
||
|
||
|
||
## GetEdgePointParams - Получение параметров ребер линейчатой поверхности
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetEdgePointParams( VARIANT * Points1,
|
||
VARIANT * T1,
|
||
VARIANT * Segments1,
|
||
VARIANT * AssociateVertexes1,
|
||
VARIANT * Points2,
|
||
VARIANT * T2, V
|
||
ARIANT * Segments2,
|
||
VARIANT * AssociateVertexes2 );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT GetEdgePointParams( VARIANT * Points1,
|
||
VARIANT * T1,
|
||
VARIANT * Segments1,
|
||
VARIANT * AssociateVertexes1,
|
||
VARIANT * Points2,
|
||
VARIANT * T2,
|
||
VARIANT * Segments2,
|
||
VARIANT * AssociateVertexes2,
|
||
BOOL * Result );
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
Входные параметры
|
||
Points1 - массив SAFEARRAY VT_R8 - VT_ARRAY VT_R8 координат вершин ребер на первой направляющей,
|
||
T1 - массив SAFEARRAY VT_R8 - VT_ARRAY VT_R8 параметров вершин ребер на первой направляющей,
|
||
Segments1 - массив SAFEARRAY DISPATCH - VT_ARRAY VT_DISPATCH сегментов первой направляющей,
|
||
AssociateVertexes1 - массив SAFEARRAY DISPATCH - VT_ARRAY VT_DISPATCH вершин первой направляющей, связанных с вершинами,
|
||
Points2 - массив SAFEARRAY VT_R8 - VT_ARRAY VT_R8 координат вершин ребер на второй направляющей,
|
||
T2 - массив SAFEARRAY VT_R8 - VT_ARRAY VT_R8 параметров вершин ребер на второй направляющей,
|
||
Segments2 - массив SAFEARRAY DISPATCH - VT_ARRAY VT_DISPATCH сегментов второй направляющей,
|
||
AssociateVertexes2 - массив SAFEARRAY DISPATCH - VT_ARRAY VT_DISPATCH вершин второй направляющей, связанных с вершинами.
|
||
Метод позволяет получать параметры ребер линейчатой поверхности.
|
||
```
|
||
|
||
|
||
## Parameters - Получить интерфейс параметров линейчатой поверхности
|
||
|
||
Тип данных: Указатель на интерфейс IKompasAPIObject
|
||
Синтаксис Automation:
|
||
```
|
||
Parameters = Object.Parameters Получить свойство (* )
|
||
Parameters = Object.GetParameters() Получить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
Object.get_Parameters( &Parameters ) Получить свойство
|
||
```
|
||
Примечание
|
||
Свойство доступно только для чтения.
|
||
В зависимости от выбранного способа построения IRuledSurface_BuildingType метод возвращает интерфейсы:
|
||
| ksRuledSurfaceByCurves | 0 | IRuledSurfaceParametersByCurves - Линейчатая поверхность по двум кривым |
|
||
| --- | --- | --- |
|
||
| ksRuledSurfaceBySurfaces | 1 | IRuledSurfaceParametersByFaces - Линейчатая поверхность по двум поверхностям |
|
||
| ksRuledSurfaceByCurveAndSurface | 2 | IRuledSurfaceParametersByCurveAndFace - Линейчатая поверхность по кривой и поверхности. |
|
||
| ksRuledSurfaceBySurfaceTangentCurve | 3 | IRuledSurfaceTangentParametersByCurveAndFace - Линейчатая поверхность по кривой с касанием к поверхности. |
|
||
| ksRuledSurfaceByCurveAndDir | 4 | IRuledSurfaceParametersByCurveAndDir - Линейчатая поверхность по кривой и направлению |
|
||
Версия КОМПАС v22
|
||
|
||
|
||
## SetEdgePointParam - Изменение положения точки ребра линейчатой поверхности
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL SetEdgePointParam( long EdgeIndex,
|
||
BOOL StartPoint,
|
||
double X,
|
||
double Y,
|
||
double Z,
|
||
double * T,
|
||
IModelObject * Segment,
|
||
IModelObject * AssociateVertex );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT SetEdgePointParam( long EdgeIndex,
|
||
BOOL StartPoint,
|
||
double X,
|
||
double Y,
|
||
double Z,
|
||
double * T,
|
||
IModelObject * Segment,
|
||
IModelObject * AssociateVertex,
|
||
BOOL * Result );
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
Входные параметры
|
||
EdgeIndex - индекс ребра,
|
||
StartPoint - начальная или конечная вершина ребра,
|
||
X, Y, Z - координаты точки,
|
||
T - параметр точки на кривой,
|
||
Segment - сегмент направляющей, на котором находится точка,
|
||
AssociateVertex - вершина направляющей, с которой связана вершина ребра.
|
||
Метод позволяет задать положение вершины ребра линейчатой поверхности на направляющей.
|
||
```
|