求选定空间中的实体记录?
<p>我想制作一个这样的程序,提示用户选择多个实体(用鼠标选择一个范围),并用遍历器遍历实体?不知道具体代码如何写?</p><p>我获得过这样一段代码,是求整个模型空间的实体,现在如何将它改成求用户选定空间?请高手指点。</p><p> // 获得当前数据库的块表<br/> AcDbBlockTable *pBlkTbl;<br/> acdbHostApplicationServices()->workingDatabase()<br/> ->getBlockTable(pBlkTbl, AcDb::kForRead);</p><p> // 获得模型空间的块表记录<br/> AcDbBlockTableRecord *pBlkTblRcd;<br/> pBlkTbl->getAt(ACDB_MODEL_SPACE, pBlkTblRcd,AcDb::kForRead);<br/> pBlkTbl->close();</p><p><br/> // 创建块表记录遍历器<br/> AcDbBlockTableRecordIterator *pItr; // 块表记录遍历器<br/> pBlkTblRcd->newIterator(pItr);<br/> AcDbEntity *pEnt; // 遍历的临时实体指针</p><p> acutPrintf(L"\n遍历的临时实体指针已建立!");<br/> for (pItr->start(); !pItr->done(); pItr->step())<br/> { <br/> // 利用遍历器获得每一个实体<br/> pItr->getEntity(pEnt, AcDb::kForWrite);//以读的方式得到该实体<br/> // 是否在“测试”图层上<br/> if (pEnt->layerId() == layerId)<br/> {<br/> IndentifyEnts(pEnt); //对实体进行判断<br/> }</p><p> // 注意需要关闭实体<br/> pEnt->close();<br/> }<br/> delete pItr; // 遍历器使用完毕之后一定要删除!<br/> acutPrintf(L"\n遍历的临时实体指针已删除!");<br/> pBlkTblRcd->close();</p> 谁来帮帮我啊?摆脱了 终于做出来了! 做出来就发出来共同学习一下呀。。真是的。。你让用户提供几个点,构造选择集,然后遍历选择集,不就可以达到你的效果了吗 。。
页:
[1]