e1337e4016
docs/Kompas3D_SDK/ становится каноническим источником справки КОМПАС SDK и включается в репозиторий (2491 файл, ~14 МБ). HTML-зеркало docs/KOMPAS_SDK_ru-RU/ (~1.4 ГБ, © АСКОН) и генератор tools/build_kompas3d_sdk.py больше не нужны — регенерация не предполагается. - .gitignore: MD-база разблокирована; зеркало остаётся проигнорированным (safety-net на случай повторной локальной выгрузки). - CLAUDE.md / SKILL.md: убраны упоминания регенерации и зеркала. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
181 lines
11 KiB
Markdown
181 lines
11 KiB
Markdown
---
|
||
title: "Итератор (Интерфейс ksIterator)"
|
||
type: interface
|
||
api: [api7]
|
||
domain: [2d]
|
||
tags: [interface, api7, 2d, ksiterator]
|
||
sources:
|
||
- ksiterator.html
|
||
---
|
||
|
||
*API интерфейсов. Версия 5 > Графический документ (Интерфейсы - ksDocument2D и IDocument2D) *
|
||
|
||
|
||
## Итератор (Интерфейс ksIterator)
|
||
|
||
Интерфейс итератора.
|
||
Примечание:
|
||
Указатель на интерфейс можно получить при помощи метода KompasObject::GetIterator.
|
||
Смотрите также: KompasObject
|
||
|
||
|
||
## ksCreateAttrIterator - Создать итератор для перебора атрибутов объекта
|
||
|
||
Аналог данного метода при использовании API экспортных функций - CreateAttrIterator.
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL ksCreateAttrIterator(long obj,
|
||
long key1,
|
||
long key2,
|
||
long key3,
|
||
long key4,
|
||
double numb);
|
||
Входные параметры:
|
||
obj - указатель на объект,
|
||
key1, key2, key3, key4 - ключи для поиска по ключам,
|
||
numb - номер типа атрибута для поиска по номеру.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
1. Если obj = 0, то производится перемещение по объектам с заданным атрибутом внутри графического документа.
|
||
2. Если obj не равен 0, то объектом может быть объект вида, вид, группа, слой, тогда движение будет происходить по атрибутам этого объекта.
|
||
3. Если obj не равен 0, то объектом может быть документ, тогда движение будет происходить по атрибутам документа.
|
||
4. Итератор работает с атрибутами активного документа.
|
||
|
||
|
||
## ksCreateIterator - Cоздать итератор для перемещения по объектам документа
|
||
|
||
Аналог данного метода при использовании API экспортных функций - CreateIterator.
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL ksCreateIterator (long tipSearch,
|
||
long parent);
|
||
Входные параметры:
|
||
tipSearch - тип объекта,
|
||
parent - указатель на объект (для движения по группе, внутри макроэлемента, по слою).
|
||
Типы объектов и интерфейсы...
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
1. Для перемещения по документам, видам, группам, слоям parent = 0.
|
||
2. Передвижение по объектам документа ("навигация") производится в соответствии с условиями, заданными в специальном блоке параметров. Он содержит тип объектов tipSearch, определяющий режим перемещения (например, по видам, по слоям, по всем объектам, по объектам заданного типа) и указатель комплексного объекта (макроэлемента, контура, группы) при перемещении по составляющим его объектам. Итератор "привязан" к конкретному режиму графического редактора (например, документу, виду), поэтому невозможно использовать один и тот же итератор для навигации в разных видах, штампах и т.п. Итератор сохраняет свое действие до окончания сеанса работы с библиотекой. При переходе внутри библиотечной функции под управление КОМПАС-ГРАФИК после возврата значение всех итераторов будет "сброшено".
|
||
3. Итератор работает с атрибутами активного документа.
|
||
|
||
|
||
## ksCreateQualityIterator - Создать итератор для перемещения по квалитетам
|
||
|
||
Аналог данного метода при использовании API экспортных функций - ksCreateQualityIterator.
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL ksCreateQualityIterator (short system,
|
||
short withLimitation);
|
||
Входные параметры:
|
||
system - система допуска 1 - система отверстия, 0 - система вала,
|
||
withLimitation - признак учета ограничений, наложенных в системе: 0 - без учёта ограничений, 1 - с учётом ограничений.
|
||
Возвращаемое значение:
|
||
указатель на итератор - в случае успешного завершения,
|
||
0 - в случае неудачи.
|
||
```
|
||
|
||
|
||
## ksCreateSpcIterator - Создать итератор для перебора объектов спецификации
|
||
|
||
Аналог данного метода при использовании API экспортных функций - CreateSpcIterator.
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL ksCreateSpcIterator (BSTR nameLib,
|
||
long styleNumb,
|
||
long spcObjType);
|
||
Входные параметры:
|
||
nameLib - имя библиотеки стилей спецификации,
|
||
styleNumb - номер стиля спецификации в библиотеке,
|
||
spcObjType - тип объектов: 0 - базовые, 1 - вспомогательные, 2 - базовые и вспомогательные из сортированного массива, 3 - все объекты.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Если функция вызывается в графическом документе, то итератор создается для объектов, образованных по описанию, определяемому именем библиотеки стилей спецификации и номером стиля.
|
||
В документе-спецификации параметры nameLib и styleNumb не используются (т.к. все объекты в ней создаются по единственному описанию, однозначно определяемому текущим стилем).
|
||
|
||
|
||
## ksDeleteIterator - Удалить блок параметров навигации по модели
|
||
|
||
Аналог данного метода при использовании API экспортных функций - DeleteIterator.
|
||
Синтаксис Automation:
|
||
```
|
||
long ksDeleteIterator();
|
||
Возвращаемое значение:
|
||
1 - в случае успешного завершения,
|
||
0 - в случае неудачи.
|
||
```
|
||
|
||
|
||
## ksMoveAttrIterator - Перемещаться по атрибутам
|
||
|
||
Аналог данного метода при использовании API экспортных функций - MoveAttrIterator.
|
||
Синтаксис Automation:
|
||
```
|
||
long ksMoveAttrIterator (BSTR ch,
|
||
long* pObj);
|
||
Входные параметры:
|
||
ch - направление перемещения итератора: F - первый атрибут, N - следующий атрибут,
|
||
pObj - указатель на группу.
|
||
Возвращаемое значение:
|
||
указатель на атрибут - в случае успешного завершения,
|
||
0 - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Если итератор создан для движения по элементам с определенным атрибутом, то pObj - указатель на объект с данным атрибутом.
|
||
|
||
|
||
## ksMoveIterator - Переместить итератор (позиционироваться на объекте)
|
||
|
||
Аналог данного метода при использовании API экспортных функций - MoveIterator.
|
||
Синтаксис Automation:
|
||
```
|
||
long ksMoveIterator (BSTR ch);
|
||
Входной параметр:
|
||
ch - направление перемещения итератора: F - первый объект, N - следующий объект.
|
||
Возвращаемое значение:
|
||
указатель на объект - в случае успешного завершения,
|
||
0 - в случае неудачи.
|
||
```
|
||
Примечание:
|
||
Функция перемещает текущий указатель итератора (блока параметров навигации) на очередной объект модели. Режим позиционирования (тип объектов, участвующих в поиске) определяется при создании итератора методом ksCreateIterator.
|
||
При позиционировании на именованную группу она автоматически становится текущей (рабочей). К ней будут относиться операции добавления и исключения объектов (при исключении всех объектов из именованной группы она автоматически удаляется).
|
||
|
||
|
||
## ksMoveQualityIterator - Перемещаться по квалитетам
|
||
|
||
Аналог данного метода при использовании API экспортных функций - ksMoveQualityIterator.
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL ksMoveQualityIterator (LPDISPATCH param,
|
||
short inMM,
|
||
BSTR ch);
|
||
Входные параметры:
|
||
param - указатель на интерфейс параметров квалитета ksQualityContensParam,
|
||
inMM - размерность параметров интервала квалитета minLimit, maxLimit, high, low: 1 - миллиметры, 0 - единицы измерения текущего документа.
|
||
ch - направление перемещения итератора: F - предыдущий квалитет, N - следующий квалитет.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
|
||
|
||
## reference - Указатель на итератор
|
||
|
||
Тип данных: long
|
||
Синтаксис Automation:
|
||
```
|
||
ref = iIterator.reference Получить свойство (* )
|
||
iIterator.reference = ref Установить свойство (* )
|
||
ref = iIterator.GetReference() Получить свойство (**)
|
||
iIterator.SetReference(ref) Установить свойство (**)
|
||
```
|