Files
kompas3d-mcp/docs/Kompas3D_SDK/interfaces/iruledsurface.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

334 lines
14 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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 - вершина направляющей, с которой связана вершина ребра.
Метод позволяет задать положение вершины ребра линейчатой поверхности на направляющей.
```