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

6.2 KiB
Raw Blame History

title, type, api, tags, sources
title type api tags sources
ksDeleteAttrRow - Удалить строку табличного атрибута guide
api7
guide
api7
ksdeleteattrrow
ksdeleteattrrow.html

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

ksDeleteAttrRow - Удалить строку табличного атрибута

Пример... Аналог данной функции при использовании Automation - метод ksAttributeObject::ksDeleteAttrRow. Синтаксис:

int ksDeleteAttrRow (reference pAttr, unsigned int rowNumb, char * password);
Входные параметры:
pAttr    - указатель на атрибут,
rowNumb    - номер строки,
password    - пароль атрибута.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.

Примечание:

  1. Указатель на атрибут reference pAttr может быть получен следующими способами: – с помощью функций итератора CreateAttrIterator, MoveAttrIterator, с помощью функций создания атрибутов ksCreateAttr или выбора атрибутов ChoiceAttr.

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

//создадим атрибут для табличного типа неопределенной длины, тип содержит три колонки //DOUBLE_ATTR_TYPE(double),STRING_ATTR_TYPE(строка),LINT_ATTR_TYPE(long int). // Атрибут создадим для внутреннего объекта macro. // Macro на момент создания атрибута временный, т.е. не в модели чертежа. // Отредактируем атрибут - в диалоге редактирования атрибута, добавим строку, удалим Attribute attrPar; struct TypeStr { double a; char c[MAX_TEXT_LENGTH]; long b; } ; static TypeStr arrBuf[3] = { {187654321.0, "1 строка", 19999l}, {287654321.0, "2 строка", 29999l}, {387654321.0, "3 строка", 39999l} }; //массив, определяющий для каждой колонки видимость-невидимость // (вторая колонка выключена) unsigned char fV[3]= {1,0,1}; attrPar.key1 = 1; // рекоменд. как код разработчика attrPar.key2 = 10; // рекоменд. как код атрибута attrPar.key3 = 100; // рекоменд. как код разработчика attrPar.key4 = 0; // системный код атрибута // значения от 0 до 1000 зарезервированы // за АО "АСКОН" attrPar.flagVisible = fV; // массив, определяющий для каждой колонки атрибута // видимость-невидимость // 0 -видимое поле 1- невидимое поле attrPar.values = &arrBuf ; // массив значений ячеек таблицы атрибутов // сначала все значения для 1-ой строки, // затем все значения для 2-ой строки и т.д. attrPar.valSize = sizeof(TypeStr)3; strcpy (attrPar.password,"111"); // пароль, если не пустая строка // - защищает от несанкционированного // изменения информации в атрибуте reference pObj; char nameFile[128]; if (!ChoiceFile (".lat",NULL, nameFile, 128)) nameFile[0]='\0'; //будем искать в документе //номер типа атрибута (тип создан ранее, если nameFile пустое - ищем тип атрибута в документе) double numb; int j = ReadDouble ("Ввести номер типа атрибута", 1000.,0, 1e12,&numb); if (j) { //временная группа reference g = NewGroup (1); //создадим пустой macro Macro (0); reference m = EndObj (); pObj = LineSeg (10, 10, 20, 20, 1); //добавим отрезок в macro ksAddObjectToMacro (m, //указатель на макроэлемент pObj); //указатель на добавляемый объект //создадим для отрезка, который принадлежит macro, атрибут reference attr= CreateAttr (pObj, &attrPar, numb, nameFile); if (!attr) MessageBoxResult(); // неудачное завершение - выдадим результат работы // нашей функции else { //вызываем диалог для редактирования атрибута ViewEditAttr (attr, 2, "111"); // пароль атрибута для просмотра 0 TypeStr arrBuf1 = { 222222222222.0, "NEW строка", 4444444l} ; //добавим в конец атрибута еще одну строку ksAddAttrRow (attr, // указатель атрибута -1, // вставлять строку в конец fV, // указатель на массив флагов // видимости ячеек строки &arrBuf1, // указатель на память пользователя, // откуда копируются данные sizeof (TypeStr),// размер выделенной памяти под value "111"); // пароль атрибута //удалим первую строку ksDeleteAttrRow (attr, // указатель атрибута 0, "111"); // номер строки и пароль //узнаем количество колонок и строк в атрибуте unsigned int rowsCount, columnsCount; GetAttrTabInfo (attr, // указатель атрибута &rowsCount, // количество строк &columnsCount);// количество столбцов char buf[250]; sprintf (buf, "rowsCount = %d columnsCount = %d",rowsCount,columnsCount); //выведем количество колонок и строк в атрибуте на экран Message (buf); } //закроем временную группу EndGroup(); //поставим все объекты временной группы в модель чертежа StoreTmpGroup(g); }