zdfwyh 发表于 2005-1-14 10:49:00

如何遍历图纸中所有实体

我希望能够检索图纸中我指定的类型实体信息,但不知如何遍历?

王咣生 发表于 2005-1-14 12:32:00

acedSSGet做选择集(用过滤器)

pengst 发表于 2005-1-15 00:22:00

Acad::ErrorStatus es;
        AcDbBlockTable *pBlkTbl;
        es=CurrectWorkingDWG->getBlockTable(pBlkTbl, AcDb::kForRead);
        if (es!=Acad::eOk) {return;}
        AcDbBlockTableRecord *pBlkTblRcd;
        es = pBlkTbl->getAt(ACDB_MODEL_SPACE,pBlkTblRcd,AcDb::kForRead);
        pBlkTbl->close();
        if (es!=Acad::eOk) {return;}
        AcDbBlockTableRecordIterator *pBlkTblRcdItr;
        es=pBlkTblRcd->newIterator(pBlkTblRcdItr);
        if (es!=Acad::eOk) {pBlkTblRcd->close();return;}
        AcDbEntity *pEnt;
        for (pBlkTblRcdItr->start();!pBlkTblRcdItr->done();pBlkTblRcdItr->step()) {
                pBlkTblRcdItr->getEntity(pEnt,AcDb::kForRead);
//...........
                pEnt->close();
        }
        pBlkTblRcd->close();
        delete pBlkTblRcdItr;
看似麻烦,实际上比acedSSGet快且有效

王咣生 发表于 2005-1-15 00:36:00

比acedSSGet快且有效?
不能这样说? 既然要寻找指定的类型信息实体, 就要用过滤器来选择, 比如:
图面上有2000个实体,其中只有一条LINE, 就要以LINE为过滤条件,而不能遍历全部实体!

zdfwyh 发表于 2005-1-20 08:29:00

谢谢各位
页: [1]
查看完整版本: 如何遍历图纸中所有实体