AcDbObjectId contId;
AcGePoint3d minPt;
ads_name entcont;
acedEntSel(_T("\nВыбери штриховку: "),entcont,asDblArray(minPt));
acdbGetObjectId(contId,entcont);
AcDbHatch* pHatch;
if (acdbOpenObject(pHatch,contId,AcDb::kForRead) != Acad::eOk)
{
acutPrintf(_T("\n* Не штриховка"));
return;
}
pHatch->close();
AcDbRegion * pHatchBound = pHatch->getRegionArea();
if (pHatchBound == NULL)
{
acutPrintf(_T("\n* Контур штриховки не замкнут"));
return;
}
//-> выясняем где мы в модели или в листе
ACHAR mpspace[50];
if (acdbCurDwg()->tilemode() == 1)_tcscpy(mpspace,ACDB_MODEL_SPACE);
else _tcscpy(mpspace,ACDB_PAPER_SPACE);
//<-
//-> добавляем объект в БД чертежа
Acad::ErrorStatus es;
AcDbBlockTable * pBlockTable;
AcDbBlockTableRecord * pSpaceRecord;
if ((es = acdbCurDwg()->getBlockTable(pBlockTable, AcDb::kForRead))==Acad::eOk)
{
if ((es = pBlockTable->getAt(mpspace, pSpaceRecord, AcDb::kForWrite))==Acad::eOk)
{
if ((es = pSpaceRecord->appendAcDbEntity(contId, pHatchBound))==Acad::eOk)pHatchBound->close();
pSpaceRecord->close();
}
pBlockTable->close();
}
//<-