--- 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("Объект не позиционная линия выноски"); } }