Files
kompas3d-mcp/docs/Kompas3D_SDK/structures/getobjparam.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

97 lines
3.8 KiB
Markdown

---
title: "GetObjParam - Получить параметры объекта"
type: struct
api: [api7]
domain: [drawing]
tags: [struct, api7, drawing, getobjparam]
sources:
- getobjparam.html
---
*API экспортных функций > Редактирование графических объектов  > Функции редактирования объектов чертежа *
## GetObjParam - Получить параметры объекта
Пример...
Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetObjParam.
Синтаксис:
```
int GetObjParam (reference ref,
void *param,
int parSize,
int parType);
Входной параметр:
ref - указатель на объект,
parType - тип параметров объекта или индекс строки в массиве для объектов TECHNICALDEMAND_OBJ и TEXT_OBJ или номер страницы (габаритного прямоугольника) технических требований (TECHNICALDEMAND_OBJ),
parSize - размер структуры для записи параметров.
Выходные параметры:
param - указатель на структуру параметров,
Возвращаемое значение:
тип объекта - в случае удачного завершения,
0 - в случае неудачи.
Типы объектов и интерфейсы...
Смотрите также
SetObjParam
```
Примечание:
Вызов метода с нулевыми значениями параметров param, parSize и parType позволяет получить тип объекта по его reference.
## GetObjParam, SetObjParam - пример использования
void GetObjParam_Example(void) {
char buf [128];
reference p;
LineSegParam par;
int t;
Mtr(30, 20, 45, 1);
p = LineSeg(0, 0, 30, 0, 1);
/* взять параметры отрезка */
t = GetObjParam(p, &par, sizeof(par), ALLPARAM);
sprintf(buf, " t=%d, x1=%4.1f y1=%4.1f x2=%4.1f y2=%4.1f tl=%d",t,
par.x1, par.y1, par.x2, par.y2, par.style);
Message(buf);
/* заменить параметры отрезка */
par.x2 = 0; par.y2 = 40; par.style = 2;
if(SetObjParam(p, &par, sizeof(par), ALLPARAM))
Message(" Изменили объект");
else MessageBoxResult();
DeleteMtr();
} /* _Example */
/***************************************************************************/
/*Второй пример использования GetObjParam и SetObjParam*/
// редактирование позиционной линии выноски
reference pObj;
RequestInfo info;
double x, y;
memset(&info, 0, sizeof(info));
info.prompt = "Укажите позиционную линию выноски";
int j = Cursor(&info, &x ,&y, 0);
if (j) {
if(ExistObj(pObj = FindObj(x, y, MAXDOUBLE))){
if (GetObjParam(pObj, 0,0,0) == POSLEADER_OBJ) {
PosLeaderParam leaderPar;
GetObjParam(pObj, //указатель на графический объект
&leaderPar, //указатель на структуру параметров
sizeof(LeaderParam), //размер структуры параметров
ALLPARAM); //тип считывания параметров
leaderPar.x = 10;
leaderPar.y = 10;
int rez = SetObjParam(pObj, //указатель на графический объект
&leaderPar, //указатель на структуру параметров
sizeof(LeaderParam), //размер структуры параметров
ALLPARAM); //тип считывания параметров
if (rez) {
LightObj(pObj,1);
Message ("линия выноски по параметрам");
LightObj(pObj,0);
}
else
MessageBoxResult(); //сообщение об ошибке
}
else
Error("Объект не позиционная линия выноски");
}
}