--- title: "Интерфейс IFeaturePattern" type: interface api: [api7] domain: [sketch, feature] tags: [interface, api7, sketch, feature, ifeaturepattern] sources: - ifeaturepattern.html --- *API интерфейсов. Версия 7 > Документ 3D  > Операции, массивы, эскизы, точки  > Массивы * ## Интерфейс IFeaturePattern Базовый интерфейс работы с массивами. Иерархия: IDispatch IFeaturePattern Интерфейс позволяет получать и изменять общие параметры для операций копирования. В зависимости от типа объекта используется определенный интерфейс операции копирования. ## AddInitialObjects - Добавить объекты в массив копируемых объектов Синтаксис Automation: ``` BOOL AddInitialObjects( VARIANT Objects ); ``` Синтаксис COM: ``` HRESULT AddInitialObjects( VARIANT Objects, BOOL * Result ); Входные параметры: Object - объект - тип VARIANT-а VT_DISPATCH или список объектов - тип VARIANT-а VT_ARRAY VT_DISPATCH. Возвращаемое значение: TRUE - в случае удачи. ``` ## BasePoint - Базовая точка Тип данных: Указатель на интерфейс IModelObject Синтаксис Automation: ``` BasePoint = Object.BasePoint Получить свойство (* ) Object.BasePoint = BasePoint Установить свойство (* ) BasePoint = Object.GetBasePoint() Получить свойство (**) Object.SetBasePoint( BasePoint ) Установить свойство (**) ``` Синтаксис COM: ``` Object.get_BasePoint( &BasePoint ) Получить свойство Object.put_BasePoint( BasePoint ) Установить свойство ``` ## BasePointType - Способ задания базовой точки Тип данных: из перечисления ksPatternBasePointTypeEnum Синтаксис Automation: ``` BasePointType = Object.BasePointType Получить свойство (* ) BasePointType = Object.BasePointType Установить свойство (* ) BasePointType = Object.GetBasePointType() Получить свойство (**) Object.SetBasePointType( BasePointType ) Установить свойство (**) ``` Синтаксис COM: ``` Object.get_BasePointType( &BasePointType ) Получить свойство Object.put_BasePointType( BasePointType ) Установить свойство ``` ## Clear - Очистить список исходных объектов массива Синтаксис Automation: ``` BOOL Clear(); ``` Синтаксис COM: ``` HRESULT Clear( BOOL * Result ); Возвращаемое значение: TRUE - в случае удачи. ``` ## Destroy - Разрушить массив Синтаксис Automation: ``` BOOL Destroy(); ``` Синтаксис COM: ``` HRESULT Destroy( BOOL * Result ); Возвращаемое значение: TRUE - в случае удачи. ``` ## Exemplar - Получить экземпляр по индексу (или индексам) Тип данных: Указатель на интерфейс IModelObject Синтаксис Automation: ``` Exemplar = Object.Exemplar( index1, index2 ) Получить свойство (* ) Exemplar = Object.GetExemplar( index1, index2 ) Получить свойство (**) ``` Синтаксис COM: ``` Object.get_Exemplar( index1, index2, &Exemplar ) Получить свойство Входные параметры index1, index2 - индекс экземпляра ``` Примечание: Свойство доступно только для чтения. Значения индексов начинаются с 1. В массиве по кривой используется один индекс (первый). ## GeometryPattern - Признак использования геометрического копирования Тип данных: BOOL Синтаксис Automation: ``` GeometryPattern = Object.GeometryPattern Получить свойство (* ) Object.GeometryPattern = GeometryPattern Установить свойство (* ) GeometryPattern = Object.GetGeometryPattern() Получить свойство (**) Object.SetGeometryPattern( GeometryPattern ) Установить свойство (**) ``` Синтаксис COM: ``` Object.get_GeometryPattern( &GeometryPattern ) Получить свойство Object.put_GeometryPattern( GeometryPattern ) Установить свойство Значения свойства: TRUE - используется геометрический массив, FALSE - не используется геометрический массив. ``` ## GetExemplarsCounts - Получить количество экземпляров Синтаксис Automation: ``` BOOL GetExemplarsCounts( long * Count1, long * Count2 ); ``` Синтаксис COM: ``` HRESULT GetExemplarsCounts( long * Count1, long * Count2, BOOL * Result ); Выходные параметры: Count1 - количество экземпляров в первом направлении копирования, Count2 - количество экземпляров во втором направлении копирования. Возвращаемое значение: TRUE - в случае удачи. ``` Примечание: Два направления копирования имеют массивы по сетке и по концентрической сетке. Для массивов остальных типов Count2 равен 1. ## InitialObjects - Исходные объекты массива Тип данных: VARIANT Синтаксис Automation: ``` InitialObjects = Object.InitialObjects Получить свойство (* ) Object.InitialObjects = InitialObjects Установить свойство (* ) InitialObjects = Object.GetInitialObjects() Получить свойство (**) Object.SetInitialObjects( InitialObjects ) Установить свойство (**) ``` Синтаксис COM: ``` Object.get_InitialObjects( &InitialObjects ) Получить свойство Object.put_InitialObjects( InitialObjects ) Установить свойство ``` Примечание: Если копируется один объект, то возвращается VARIANT с типом VT_DISPATCH. Если копируется более одного объекта, то возвращается VARIANT с типом VT_ARRAY | VT_DISPATCH. ## InstanceDeletedIndexes - Список удаленных экземпляров массива Тип данных: VARIANT Синтаксис Automation: ``` InstanceDeletedIndexes = Object.InstanceDeletedIndexes Получить свойство (* ) Object.InstanceDeletedIndexes = InstanceDeletedIndexes Установить свойство (* ) InstanceDeletedIndexes = Object.GetInstanceDeletedIndexes() Получить свойство (**) Object.SetInstanceDeletedIndexes( InstanceDeletedIndexes ) Установить свойство (**) ``` Синтаксис COM: ``` Object.get_InstanceDeletedIndexes( &InstanceDeletedIndexes ) Получить свойство Object.put_InstanceDeletedIndexes( InstanceDeletedIndexes ) Установить свойство ``` Примечания: Возвращается массив SafeArray VT_ARRAY | VT_I4. Свойства применяется для получения информации об удаленных копиях, а также управления составом удаленных копий. Информация об удаленной копии выдается в виде индексов копии в узоре копирования. В общем случае это два индекса по ортогональным осям в плоскости узора. Для копий по кривой используется один индекс (первый). Значения индексов начинаются с 1. ## IsInitialObject - Проверка: является ли объект исходным для массива Синтаксис Automation: ``` BOOL IsInitialObject( IModelObject * Object ); ``` Синтаксис COM: ``` HRESULT IsInitialObject( IModelObject * Object, BOOL * Result ); Входные параметры: Object - указатель на объект IModelObject. Возвращаемое значение: TRUE - если объект есть в списке копируемых объектов. ``` ## IsSuitableObject - Проверка пригодности объекта для операции Синтаксис Automation: ``` BOOL IsSuitableObject( IModelObject * Object ); ``` Синтаксис COM: ``` HRESULT IsSuitableObject( IModelObject * Object, BOOL * Result ); Входные параметры: Object - указатель на объект IModelObject. Возвращаемое значение: TRUE - указанный объект можно скопировать с помощью данной операции. ```