ObjectARX, AutoCAD. Среда программирования библиотеки C++

         

Выполнение итераций по Таблицам


Код в следующем примере создает iterator, который идет через записи таблицы идентификаторов в linetype таблице. Это получает каждую запись, открывает это для чтения, получает имя linetype, закрывает запись, и затем печатает имя linetype. В конец, программа удаляет iterator.

void

iterateLinetypes()

{

AcDbLinetypeTable *pLinetypeTbl;

acdbHostApplicationServices()->workingDatabase()

->getSymbolTable(pLinetypeTbl, AcDb::kForRead);

// Create a new iterator that starts at table

// beginning and skips deleted.

//

AcDbLinetypeTableIterator *pLtIterator;

pLinetypeTbl->newIterator(pLtIterator);

// Walk the table, getting every table record and

// printing the linetype name.

//

AcDbLinetypeTableRecord *pLtTableRcd;

char *pLtName;

for (; !pLtIterator->done(); pLtIterator->step()) {

pLtIterator->getRecord(pLtTableRcd, AcDb::kForRead);

pLtTableRcd->getName(pLtName);

pLtTableRcd->close();

acutPrintf("\nLinetype name is: %s", pLtName);

free(pLtName);

}

delete pLtIterator;

pLinetypeTbl->close();

}



Содержание раздела