Files
kompas3d-mcp/docs/Kompas3D_SDK/guides/createattr.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

3.8 KiB

title, type, api, tags, sources
title type api tags sources
CreateAttr - Создать атрибут объекта guide
api7
guide
api7
createattr
createattr.html

*API экспортных функций > Функции работы с прикладной библиотекой  > Функции работы с атрибутами *

CreateAttr - Создать атрибут объекта

Пример... Замечание: Функция устарела, рекомендуется использовать ksCreateAttr Синтаксис:

reference CreateAttr (reference pObj,
Attribute * attr,
double attrID,
char *libname);
Входные параметры:
pObj    - указатель на объект (группа, вид, отдельный объект), атрибут которого создается. Если pObj = 0, то создается атрибут документа,
attr    - указатель на структуру параметров табличного атрибута Attribute,
attrID    - уникальный номер типа атрибута,
libName    - имя библиотеки типов атрибутов, если libname = NULL, то тип атрибута берется из текущего документа.
Возвращаемое значение:
указатель на атрибут    - в случае удачного завершения,
0    - в случае неудачи.

CreateAttr - Пример использования

void CreateAttr_Example (void) { // создадим атрибут для типа атрибута с колонками // DOUBLE_ATTR_TYPE, STRING_ATTR_TYPE, LINT_ATTR_TYPE // Предполагается, что данный тип уже существует ksAttribute attrPar; //структура данных для оформления атрибута struct { double a; char c[MAX_TEXT_LENGTH]; long b; } bufS; // заполним поля атрибута bufS.a = 987654321.0; bufS.b = 99999l; strcpy(bufS.c,"Исполнение 1"); //заполним параметры структуры атрибута strcpy(attrPar.comment,"элемент"); //комментарий атрибута attrPar.key1 = 1; // рекоменд. как код разработчика attrPar.key2 = 10; // рекоменд. как код атрибута attrPar.key3 = 100; // рекоменд. как код разработчика attrPar.key4 = 0; // системный код атрибута // значения от 0 до 1000 зарезервированы АСКОН attrPar.flagVisible = 0; //массив, определяющий для каждой колонки // атрибут видимость-невидимость // 0 -видимое поле 1- невидимое поле attrPar.values = &bufS; // массив значений ячеек таблицы атрибутов // сначала все значения для 1-ой строки, // затем все значения для 2-ой строки и т.д. attrPar.valSize = sizeof(bufS); strcpy(attrPar.password,"111"); //пароль double x, y; reference pObj; RequestInfo info; memset(&info, 0, sizeof(info)); info.prompt = " Укажите объект "; int j = Cursor(&info, &x, &y, 0, 0); if (j) { if(ExistObj(pObj = FindObj(x, y, MAXDOUBLE))){ LightObj(pObj, 1); //запросить имя библиотеки char nameFile[128]; if(!ChoiceFile(".tip",NULL, nameFile, 128)) nameFile[0]='\0'; //будем искать в документе double numb; j = ReadDouble("Ввести номер типа атрибута", 1000, 0, 1e12,&numb); if(j) { reference attr= ksCreateAttr(pObj, &attrPar, numb, nameFile); if (!attr) MessageBoxResult(); // неудачное завершение } LightObj(pObj, 0); } } }; / CreateAttr */