---
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    - вершина направляющей, с которой связана вершина ребра.
Метод позволяет задать положение вершины ребра линейчатой поверхности на направляющей.
```
