Тема: итерации по базе
пытаюсь определить количествао примитивов на чертеже. Делаю так:
void test() { long i; AcDbBlockTable *pBlockTable; acdbHostApplicationServices()->workingDatabase() ->getSymbolTable(pBlockTable, AcDb::kForRead); AcDbBlockTableIterator *pBLKItr; pBlockTable->newIterator(pBLKItr); i=0; while (!pBLKItr->done()) { AcString pName; AcDbBlockTableRecord *pRecord; pBLKItr->getRecord(pRecord, AcDb::kForRead); pBlockTable->getAt(ACDB_MODEL_SPACE, pRecord, AcDb::kForRead); pRecord->getName(pName); pRecord->close(); pBLKItr->step(); i=i++; } pBlockTable->close(); delete pBLKItr; acutPrintf(_T("количество примитивов в базе чертежа %i"),i); }
в пустом чертеже выдает 3 блока , далее провожу линию, выполняю команду, опять 3 блока. 4 блока выдается только тогда, когда эту линию делаю отдельным блоком. Получается что не все линии отрисовываемые пользователем вносятса в AcDbBlockTable? а где они тогда хранятся?
с уважением