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>
2.9 KiB
title, type, api, tags, sources
| title | type | api | tags | sources | |||||
|---|---|---|---|---|---|---|---|---|---|
| CreateAttrIterator - Создать итератор для перебора атрибутов объекта | guide |
|
|
|
*API экспортных функций > Функции работы с прикладной библиотекой > Функции работы с атрибутами *
CreateAttrIterator - Создать итератор для перебора атрибутов объекта
Пример... Аналог данной функции при использовании Automation - метод ksIterator::ksCreateAttrIterator. Синтаксис:
reference CreateAttrIterator(reference obj,
unsigned int key1,
unsigned int key2,
unsigned int key3,
unsigned int key4,
double numb);
Входные параметры:
obj - указатель на объект,
key1, key2, key3, key4 - ключи для поиска по ключам,
numb - номер типа атрибута для поиска по номеру.
Возвращаемое значение:
1 - в случае успешного завершения,
0 - в случае неудачи.
Примечание:
- Если obj = 0, то производится перемещение по объектам с заданным атрибутом внутри графического документа.
- Если obj не равен 0, то объектом может быть объект вида, вид, группа, слой, тогда движение будет происходить по атрибутам этого объекта.
- Если obj не равен 0, то объектом может быть документ, тогда движение будет происходить по атрибутам документа.
- Итератор работает с атрибутами активного документа.
CreateAttrIterator - Пример использования
double x, y; reference pObj; char password[11]; int j; RequestInfo info; memset (&info, 0, sizeof(info)); info.prompt = "Укажите объект"; do { j = Cursor (&info, &x, &y, 0); if (j) { if (ExistObj(pObj = FindObj (x, y, 1e6))) { LightObj (pObj, 1); //создадим итератор для хождения по атрибутам объекта reference iter = CreateAttrIterator (pObj, 0,0,0,0,0); //встали на первый атрибут reference attr = MoveAttrIterator (iter, 'F', 0); if (attr) { j = ReadString ("Ввести пароль типа атрибута", password, 10); if (j) { //удалить атрибут if (!DeleteAttr (pObj, attr, password)) MessageBoxResult(); // неудачное завершение - // выдадим результат работы // нашей функции } } else Message("атрибут не найден"); LightObj (pObj, 0); } } } while (j);