Добрый день. Столкнулся с проблемой редактирования стиля текста и линий у размерной линии. Изначально размерная
линия выводится правильно, но при малейшем изменении все отредактированный мною параметры возвращаются в исходное
состояние (стандартный стиль текста и стандартный цвет). Стиль текста при этом сохраняю в базе данных. Редактирую
размерную линию следующим образом:
AcDbRotatedDimension *pDimLine = new AcDbRotatedDimension
(fAngle,xLine1Start,xLine2Start,ptCenter,sValue,AcDbObjectId::kNull);
AcDbObjectId DimLineId;
//Сохранение размера в базе данных
AddBlockTable(pDimLine,DimLineId);
pDimLine->close();
AcDbEntity *pEnt;
AcDbObjectId id;
id = pDimLine->dimBlockId ();
AcDbBlockTableRecord *tableRecord;
acdbOpenAcDbObject ((AcDbObject *&) tableRecord, id, AcDb::kForWrite);
AcDbBlockTableRecordIterator *iterator;
tableRecord->newIterator(iterator);
while (!iterator->done())
{
iterator->getEntity(pEnt, AcDb::kForRead);
AcDbObjectId EntID;
iterator->getEntityId(EntID);
if(pEnt->isKindOf(AcDbMText::desc ()))
{
pEnt->upgradeOpen();
AcDbMText *pText = (AcDbMText *)pEnt;
AddBlockTable(pText,EntID);
...
//Редактирование стиля текста
...
pText->close();
}
if(pEnt->isKindOf(AcDbLine::desc ()))
{
pEnt->upgradeOpen();
AcDbLine *pLine = (AcDbLine *)pEnt;
...
//Редактирование линии
...
pLine->close();
}
pEnt->close();
iterator->step();
}
tableRecord->close();
pDimLine->recomputeDimBlock(true);