AcDbObjectId hatchId = addHatch(...);
if (hatchId != NULL)
{
object_SendAfterTaget(hatchId,contId);
resIds.append(hatchId);
}
AcDbObjectPointer<AcDbHatch> pHatchPtr(hatchId,AcDb::kForWrite);
if (pHatchPtr.openStatus () == Acad::eOk)
{
AcGePoint2d originPoint2dUCS = AcGePoint2d(0.0,0.0);
AcGePoint3d pTempPt = pt_ll; // левый нижний угол прямоугольничка, который нужно заштриховать
acdbUcs2Wcs(asDblArray(pTempPt),asDblArray(pTempPt),false);
originPoint2dUCS.x = pTempPt.x;
originPoint2dUCS.y = pTempPt.y;
Acad::ErrorStatus es;
es = pHatchPtr->setOriginPoint(originPoint2dUCS); // выставить базовую точку . возврат - eOk
es = pHatchPtr->setPattern(AcDbHatch::kPreDefined, pColumnData.at(i).hatchName.GetString()); // на всякий случай еще раз указать имя. возврат - eOk
es = pHatchPtr->evaluateHatch(); // пересчитать. возврат - eOk
es = pHatchPtr->draw(); // отрисовать. возврат - eOk
AcGePoint2dArray arSt,arEnd;
es = pHatchPtr->getHatchLinesData(arSt,arEnd);
pHatchPtr->close();
if (es == Acad::eOk && arSt.isEmpty() && arEnd.isEmpty())
deleteEntities(hatchId);
}