|
发表于 2002-9-12 09:08:00
|
显示全部楼层
无论这个由几个AcDbSpline类的对象组成的block是用户make的还是程序生成的,都应该有个块名,根据这个块名,可以浏览组成该块的各个实体。给你一个例子程序,你改改应该能用。
void MyBlockIterator()
{
char name[32];
ads_getstring(0,"\n请输入块名:",name);
if (name[0]=='\0') return;
AcDbBlockTable *pBlkTbl;
acdbCurDwg()->getBlockTable(pBlkTbl,AcDb::kForRead);//当前数据库块表
AcDbBlockTableRecord *pBlkTblRcd;
pBlkTbl->getAt(name,pBlkTblRcd,AcDb::kForRead);//以name命名的块的块表记录
AcDbBlockTableRecordIterator *pBlkIter;
pBlkTblRcd->newIterator(pBlkIter);//块表浏览器
for(pBlkIter->start();!pBlkIter->done();pBlkIter->step())//浏览块表的方法
{
AcDbEntity *pEnt;
if (strcmp(pEnt->desc(),"AcDbSpline")){
......//在这添加你自己的代码
}
pEnt->close();
}
delete pBlkIter;//不要忘记了释放内存
pBlkTbl->close();
pBlkTblRcd->close();
} |
|