- UID
- 1
- 积分
- 16111
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2002-1-3
- 最后登录
- 1970-1-1
|
发表于 2002-5-28 04:11:47
|
显示全部楼层
ARX开发遍历容器的方法基本是相同的,你参照下下面代码
- [FONT=courier new]
- void test()
- {
- AcDbBlockTable *pBT;
- if(acdbCurDwg()->getBlockTable(pBT,AcDb::kForRead) != Acad::eOk)// 得到块表对象
- return;
-
- AcDbBlockTableRecord *pRec;
- if(pBT->getAt(ACDB_MODEL_SPACE, pRec,AcDb::kForRead) !=Acad::eOk) //获得模型空间块表记录
- return;
- pBT->close();
- Acad::ErrorStatus es;
- AcDbBlockTableRecordIterator *pIter;
- es=pRec->newIterator(pIter); //得到块表容器的叠代指针
- AcDbEntity *pEnt;
- AcDbPolyline *pPoly;
- for (;!pIter->done();pIter->step()) //开始遍历
- {
- es=pIter->getEntity(pEnt,AcDb::kForRead);//得到实体
- if (es!=Acad::eOk)
- continue;
- //判断是否是指定层和是否是POLYLINE实体
- if ((!stricmp(pEnt->layer(),"Your Layer Name")&&(pPoly=AcDbPolyline::cast(pEnt)))
- {
- AcGePoint3d sPt,ePt;
- pPoly->getStartPoint(sPt);
- pPoly->getEndPoint(ePt);
- .......
- }
- pEnt->close();
- }
- delete pIter; //释放叠代指针
- pRec->close(); //关闭块表记录
- return;
- }[/FONT]
复制代码 |
|