--- 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) Установить свойство (**) ```