Files
kompas3d-mcp/docs/Kompas3D_SDK/guides/createattriterator.md
T
mikhail e1337e4016 feat(sdk-docs): MD-база знаний SDK — в репозиторий; генератор и зеркало убраны
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>
2026-05-26 20:00:05 +03:00

2.9 KiB

title, type, api, tags, sources
title type api tags sources
CreateAttrIterator - Создать итератор для перебора атрибутов объекта guide
api7
guide
api7
createattriterator
createattriterator.html

*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    - в случае неудачи.

Примечание:

  1. Если obj = 0, то производится перемещение по объектам с заданным атрибутом внутри графического документа.
  2. Если obj не равен 0, то объектом может быть объект вида, вид, группа, слой, тогда движение будет происходить по атрибутам этого объекта.
  3. Если obj не равен 0, то объектом может быть документ, тогда движение будет происходить по атрибутам документа.
  4. Итератор работает с атрибутами активного документа.

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);