---
title: "Описание импортированной поверхности (Интерфейсы ksImportedSurfaceDefinition, IImportedSurfaceDefinition)"
type: interface
api: [api7]
domain: [2d]
tags: [interface, api7, 2d, ksimportedsurfacedefinition]
sources:
  - ksimportedsurfacedefinition.html
---

*API интерфейсов. Версия 5 > Документ-модель (Интерфейсы - ksDocument3D, IDocument3D )  > Компонент сборки (деталь или подсборка). Интерфейсы ksPart и IPart  > Объект модели (Интерфейсы ksEntity и IEntity)  > Интерфейсы ksEntity и iEntity - Интерфейс элемента модели (оси, плоскости, формообразующего элемента)  > Интерфейсы дополнительных элементов *


## Описание импортированной поверхности (Интерфейсы ksImportedSurfaceDefinition, IImportedSurfaceDefinition)

Интерфейс параметров импортированной поверхности.
| ksImportedSurfaceDefinition | - интерфейс Automation |
| --- | --- |
| IImportedSurfaceDefinition | - интерфейс COM |
Примечание:
1. Поверхность можно импортировать, задав массив упорядоченных массивов точек. Один упорядоченный массив точек IVertexCollection определяет одну кривую. Если первая и последняя точки кривой совпадают, это является признаком замкнутости кривой. Для нормального построения поверхности кривых должно быть, как минимум, две.
2. Данный интерфейс можно получить, используя метод интерфейса элемента модели ksEntity::GetDefinition или IEntity::GetDefinition.


## AddCurve - Добавить кривую по массиву точек

Пример...
Синтаксис Automation:
```
BOOL AddCurve (VARIANT arr);
```
Синтаксис COM:
```
BOOL AddCurve (VARIANT arr);
Входные параметры:
arr    - массив координат точек кривой.
Возвращаемое значение:
TRUE    - в случае успеха,
FALSE    - в случае неудачи.
```
Примечание:
1. Тип переменной arr - VT_ARRAY | VT_R8. Одномерный SAFEARRAY массив double значений.
2. Каждая точка представлена тремя координатами x, y, z. Следовательно число точек в массиве должно быть кратно.


## AddPoint - Добавить точку в определение новой кривой

Синтаксис Automation:
```
BOOL AddPoint(double x, double y, double z);
```
Синтаксис COM:
```
BOOL AddPoint(double x, double y, double z);
Входные параметры:
x, y, z    - координаты точки кривой.
Возвращаемое значение:
TRUE    - в случае успеха,
FALSE    - в случае неудачи.
```
Примечание:
Перед добавлением точек кривой нужно открыть описание кривой методом ksImportedSurfaceDefinition::BeginCurve.
После добавления точек необходимо закрыть определение кривой методом ksImportedSurfaceDefinition::EndCurve.


## BeginCurve - Начать создание новой кривой

Синтаксис Automation:
```
BOOL BeginCurve();
```
Синтаксис COM:
```
BOOL BeginCurve();
Возвращаемое значение:
TRUE    - в случае успеха,
FALSE    - в случае неудачи.
```
Примечание:
Для добавления точек кривой используется метод ksImportedSurfaceDefinition::AddPoint.
После добавления точек необходимо завершить задание кривой методом ksImportedSurfaceDefinition::EndCurve.


## Clear - Очистить содержимое

Синтаксис Automation:
```
BOOL Clear();
```
Синтаксис COM:
```
BOOL Clear();
Возвращаемое значение:
TRUE    - в случае успеха,
FALSE    - в случае неудачи.
```
Примечание:
Очищается имя файла и массив кривых.


## EndCurve - Завершить создание новой кривой

Синтаксис Automation:
```
BOOL EndCurve();
```
Синтаксис COM:
```
BOOL EndCurve();
Возвращаемое значение:
TRUE    - в случае успеха,
FALSE    - в случае неудачи.
```
Примечание:
Перед добавлением точек кривой нужно открыть описание кривой методом ksImportedSurfaceDefinition::BeginCurve.
Для добавления точек используется метод ksImportedSurfaceDefinition::AddPoint.
