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>
93 lines
4.2 KiB
Markdown
93 lines
4.2 KiB
Markdown
---
|
|
title: "DeleteAttr - Удалить атрибут объекта"
|
|
type: guide
|
|
api: [api7]
|
|
tags: [guide, api7, deleteattr]
|
|
sources:
|
|
- deleteattr.html
|
|
---
|
|
|
|
*API экспортных функций > Функции работы с прикладной библиотекой > Функции работы с атрибутами *
|
|
|
|
|
|
## DeleteAttr - Удалить атрибут объекта
|
|
|
|
Пример...
|
|
Аналог данной функции при использовании Automation - метод ksAttributeObject::ksDeleteAttr.
|
|
Синтаксис:
|
|
```
|
|
int DeleteAttr (reference pObj, reference PAttr, char * password);
|
|
Входные параметры:
|
|
pObj - указатель на объект, к которому подключен атрибут. Если pObj = 0 - атрибут текущего документа,
|
|
pAttr - указатель на удаляемый атрибут,
|
|
password - пароль атрибута.
|
|
Возвращаемое значение:
|
|
1 - в случае удачного завершения,
|
|
0 - в случае неудачи.
|
|
```
|
|
Примечание:
|
|
1. Указатель на объект reference pObj может быть получен следующими способами:
|
|
– с помощью функций Итератора CreateIterator, MoveIterator.
|
|
– с помощью методов создания объектов, возвращающих указатель reference на созданный объект, например, reference LineSeg.
|
|
2. Указатель на атрибут reference pAttr может быть получен:
|
|
– с помощью функций итератора CreateAttrIterator, MoveAttrIterator,
|
|
– с помощью функций создания атрибутов ksCreateAttr, или выбора атрибутов ChoiceAttr.
|
|
|
|
|
|
## DeleteAttr - Пример использования
|
|
|
|
{
|
|
// создадим атрибут для типа атрибута с колонками
|
|
// DOUBLE_ATTR_TYPE, STRING_ATTR_TYPE, LINT_ATTR_TYPE
|
|
// Предполагается, что данный тип уже существует
|
|
Attribute 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.promt = " Укажите объект ";
|
|
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))
|
|
nameFile[0]='\0'; //будем искать в документе
|
|
double numb;
|
|
j = ReadDouble("Ввести номер типа атрибута", 1000.,0, 1e12,&numb);
|
|
if(j) {
|
|
reference attr= CreateAttr(pObj, &attrPar, numb, nameFile);
|
|
if (!attr) MessageBoxResult(); // неудачное завершение
|
|
}
|
|
LightObj(pObj, 0);
|
|
}
|
|
}
|
|
DeleteAttr (pObj, attr, «111»);
|
|
};
|