---
title: "Копия элементов детали по параллелограммной сетке( Интерфейсы ksMeshCopyDefinition и ICopyMeshDefinition)"
type: interface
api: [api7]
domain: [2d]
tags: [interface, api7, 2d, ksmeshcopydefinition]
sources:
  - ksmeshcopydefinition.html
---

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


## Копия элементов детали по параллелограммной сетке( Интерфейсы ksMeshCopyDefinition и ICopyMeshDefinition)

Интерфейс операции копирования по сетке.
| ksMeshCopyDefinition | - интерфейс Automation |
| --- | --- |
| ICopyMeshDefinition | - интерфейс COM |
Примечание:
Данный интерфейс можно получить, используя метод интерфейса элемента модели ksEntity::GetDefinition или IEntity::GetDefinition.


## angle1 - Угол наклона первой оси в текущей системе координат

Тип данных: double
Синтаксис Automation:
```
angle1 = iCopyMesh.angle1    Получить свойство(* )
iCopyMesh.angle1 = angle1    Установить свойство (* )
angle1 = iCopyMesh.GetAngle1()    Получить свойство (**)
iCopyMesh.SetAngle1(angle1)    Установить свойство (**)
```


## angle2 - Угол наклона второй оси относительно первой

Тип данных: double
Синтаксис Automation:
```
angle2 = iCopyMesh.angle2    Получить свойство(* )
iCopyMesh.angle2 = angle2    Установить свойство (* )
angle2 = iCopyMesh.GetAngle2()    Получить свойство (**)
iCopyMesh.SetAngle2(angle2)    Установить свойство (**)
```


## count1 - Количество копий вдоль первой оси

Тип данных: long
Синтаксис Automation:
```
count1 = iCopyMesh.count1    Получить свойство(* )
iCopyMesh.count1 = count1    Установить свойство (* )
count1 = iCopyMesh.GetCount1()    Получить свойство (**)
iCopyMesh.SetCount1(count1)    Установить свойство (**)
```


## count2 - Количество копий вдоль второй оси

Тип данных: long
Синтаксис Automation:
```
count2 = iCopyMesh.count2    Получить свойство(* )
iCopyMesh.count2 = count2    Установить свойство (* )
count2 = iCopyMesh.GetCount2()    Получить свойство (**)
iCopyMesh.SetCount2(count2)    Установить свойство (**)
```


## DeletedCollection - Получить массив индексов удаленных копий

Синтаксис Automation:
```
LPDISPATCH DeletedCollection();
```
Синтаксис COM:
```
LPDELETEDCOPYCOLLECTION DeletedCollection();
Возвращаемое значение:
указатель на интерфейс ksDeletedCopyCollection или IDeletedCopyCollection    - в случае успешного завершения,
NULL    - в случае неудачи.
```
Примечание:
Интерфейс применяется для массивов компонентов и операций копирования, для получения информации о удаленных копиях, а также управления составом удаленных копий. Информация о удаленной копии выдается в виде индексов копии в узоре копирования. В общем случае это два индекса по ортогональным осям в плоскости узора. Для копий по кривой используется один индекс (первый). Значения индексов начинаются с 1.


## factor1 - Признак полного шага вдоль первой оси

Тип данных: BOOL
Значения свойства:
| TRUE | - свойство step1 устанавливает расстояние между крайними элементами вдоль первой оси, |
| --- | --- |
| FALSE | - свойство step1 устанавливает расстояние между соседними элементами вдоль первой оси. |
Синтаксис Automation:
```
factor1 = iCopyMesh.factor1    Получить свойство(* )
iCopyMesh.factor1 = factor1    Установить свойство (* )
factor1 = iCopyMesh.GetFactor1()    Получить свойство (**)
iCopyMesh.SetFactor1(factor1)    Установить свойство (**)
```


## factor2 - Признак полного шага вдоль второй оси

Тип данных: BOOL
Значения свойства:
| TRUE | - свойство step2 устанавливает расстояние между крайними элементами вдоль второй оси, |
| --- | --- |
| FALSE | - свойство step2 устанавливает расстояние между соседними элементами вдоль второй оси. |
Синтаксис Automation:
```
factor2 = iCopyMesh.factor2    Получить свойство(* )
iCopyMesh.factor2 = factor2    Установить свойство (* )
factor2 = iCopyMesh.GetFactor2()    Получить свойство (**)
iCopyMesh.SetFactor2(factor2)    Установить свойство (**)
```


## geomArray - Признак использования геометрического копирования

Тип данных: BOOL
Значения свойства:
| TRUE | - использовать геометрическое копирование. Содержимое операций-источников (грани, ребра) копируется без пересчета. В простых случаях операция ускоряется, но возможны ошибки при копировании скруглений и фасок на криволинейных поверхностях, |
| --- | --- |
| FALSE | - при копировании все операции-источники строятся заново, т.е. производится полноценный расчет. |
Синтаксис Automation:
```
geomArray = ICopyMeshDefinition.geomArray    Получить свойство(* )
ICopyMeshDefinition.geomArray = geomArray    Установить свойство (* )
geomArray = ICopyMeshDefinition.GetGeomArray()    Получить свойство (**)
ICopyMeshDefinition.SetGeomArray( geomArray)    Установить свойство (**)
```


## GetAxis1- Получить первую ось операции

Синтаксис Automation:
```
LPDISPATCH GetAxis1();
```
Синтаксис COM:
```
LPENTITY GetAxis1();
Возвращаемое значение:
- указатель на интерфейс ksEntity или IEntity.    - в случае успешного завершения,
NULL    - в случае неудачи.
```
Примечание:
Направление сетки можно определить, указывая ребра или оси, вдоль которых строится сетка. Если ось 1 определена, то игнорируется свойство angle1 (Угол наклона 1-ой оси).


## GetAxis2 - Получить вторую ось операции

Синтаксис Automation:
```
LPDISPATCH GetAxis2();
```
Синтаксис COM:
```
LPENTITY GetAxis2();
Возвращаемое значение:
указатель на интерфейс ksEntity или IEntity.    - в случае успешного завершения,
NULL    - в случае неудачи.
```
Примечание:
Направление сетки можно определить, указывая ребра или оси, вдоль которых строится сетка. Если ось 2 определена, то игнорируется свойство angle2 (Угол наклона 2-ой оси).


## GetCopyParamAlongAxis - Получить параметры копирования вдоль оси

Синтаксис Automation:
```
BOOL GetCopyParamAlongAxis (BOOL firstAxis,
double * angle,
long * count,
double * step,
BOOL * factor);
```
Синтаксис COM:
```
BOOL GetCopyParamAlongAxis (BOOL firstAxis,
double * angle,
long * count,
double * step,
BOOL * factor);
Выходные параметры:
firstAxis    - ось: TRUE - первая, FALSE - вторая,
angle    - угол наклона оси,
count    - количество копий,
step    - шаг вдоль оси,
factor    - признак полного шага.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```


## insideFlag - Признак наличия копий внутри сетки

Тип данных: BOOL
Значения свойства:
| TRUE | - оставлять копии во всех узлах сетки, |
| --- | --- |
| FALSE | - оставлять копии по периметру сетки. |
Синтаксис Automation:
```
insideFlag = iCopyMesh.insideFlag    Получить свойство(* )
iCopyMesh.insideFlag = insideFlag    Установить свойство (* )
insideFlag = iCopyMesh.GetInsideFlag()    Получить свойство (**)
iCopyMesh.SetInsideFlag(insideFlag)    Установить свойство (**)
```


## OperationArray - Получить указатель на массив элементов для копирования

Синтаксис Automation:
```
IDispatch * OperationArray();
```
Синтаксис COM:
```
LPENTITYCOLLECTION OperationArray();
Возвращаемое значение:
- указатель на интерфейс динамического массива элементов, подлежащих копированию ksEntityCollection или IEntityCollection.
```


## SetAxis1 - Задать первую ось операции

Синтаксис Automation:
```
BOOL SetAxis1 (LPDISPATCH entity);
```
Синтаксис COM:
```
BOOL SetAxis1 (LPENTITY);
Входные параметры:
entity    - указатель на интерфейс ksEntity или IEntity (ось или прямолинейное ребро).
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Направление сетки можно определить, указывая ребра или оси, вдоль которых строится сетка. Если ось 1 определена, то игнорируется свойство angle1 (Угол наклона 1-ой оси).


## SetAxis2 - Задать вторую ось операции

Синтаксис Automation:
```
BOOL SetAxis2 (LPDISPATCH entity);
```
Синтаксис COM:
```
BOOL SetAxis2 (LPENTITY);
Входные параметры:
entity    - указатель на интерфейс ksEntity или IEntity (ось или прямолинейное ребро).
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Направление сетки можно определить, указывая ребра или оси, вдоль которых строится сетка. Если ось 1 определена, то игнорируется свойство angle2 (Угол наклона 2-ой оси).


## SetCopyParamAlongAxis - Установить параметры копирования вдоль оси

Синтаксис Automation:
```
BOOL SetCopyParamAlongAxis (BOOL firstAxis,
double angle,
long count,
double step,
BOOL factor);
```
Синтаксис COM:
```
BOOL SetCopyParamAlongAxis (BOOL firstAxis,
double angle,
long count,
double step,
BOOL factor);
Входные параметры:
firstAxis    - ось: TRUE - первая, FALSE - вторая,
angle    - угол наклона оси,
count    - количество копий,
step    - шаг вдоль оси,
factor    - признак полного шага.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```


## step1 - Шаг вдоль первой оси

Тип данных: double
Синтаксис Automation:
```
step1 = iCopyMesh.step1    Получить свойство(* )
iCopyMesh.step1 = stept1    Установить свойство (* )
step1 = iCopyMesh.GetStep1()    Получить свойство (**)
iCopyMesh.SetStep1(step1)    Установить свойство (**)
```


## step2 - Шаг вдоль второй оси

Тип данных: double
Синтаксис Automation:
```
step2 = iCopyMesh.step2    Получить свойство(* )
iCopyMesh.step2 = stept2    Установить свойство (* )
step2 = iCopyMesh.GetStep2()    Получить свойство (**)
iCopyMesh.SetStep2(step2)    Установить свойство (**)
```
