Тема: Проблемы с hatch
Приветствую!
Вопрос в следующем: имеется набор точек, образующих замкнутый контур. По ним строится AcDbPolyline, затем по линии контура создается AcDbHatch, связанный с ней. Проблема в том, что если затем уже вручную изменяешь контур, hatch на это никак не реагирует. Если же hatch создается вручную по построенной полилинии, он багополучно изменяется вслед за изменением формы.
VS 2005 C++, Autocad 2006-2008
Образец кода:
....
AcDbBlockTableRecord *pBlkTblRcd;
....
AcGePoint2dArray vertexPts;// набор точек контура
AcDbObjectIdArray loopIds;
AcDbObjectId pId;
AcDbPolyline* loopPoly = new AcDbPolyline();
for (i = 0; i < vertexPts.length(); i++) {
loopPoly->addVertexAt(i,vertexPts[i]);
//loopPoly->setBulgeAt(i,vertexBulges[i]);
}
loopPoly->setElevation(pPoly->elevation());
loopPoly->setColor(fillCol);
loopPoly->setLayer(layId);
loopPoly->setClosed(true);
loopPoly->setPlinegen(true);
es = pBlkTblRcd->appendAcDbEntity(loopPoly);
pId = loopPoly->objectId();
loopIds.append(loopPoly->objectId());
loopPoly->close();
AcDbHatch* vHatch = new AcDbHatch();
vHatch->setColor(fillCol); //заданный цвет
vHatch->setLayer(layId); //заданный слой
vHatch->setHatchStyle(AcDbHatch::kNormal);
vHatch->setAssociative(Adesk::kTrue);
vHatch->appendLoop(AcDbHatch::kExternal, loopIds);
vHatch->setPattern(AcDbHatch::kPreDefined, _T("SOLID"));
vHatch->setNormal(AcGeVector3d::kZAxis);
vHatch->evaluateHatch();
pBlkTblRcd->appendAcDbEntity(vHatch);
vHatch->close();
Заранее признателен.