几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   ObjectARX(C++) (http://www.dimcax.com/hust/forumdisplay.php?f=34)
-   -   【转帖】求选定空间中的实体记录? (http://www.dimcax.com/hust/showthread.php?t=7925)

yang686526 2009-04-18 05:53 PM

【转帖】求选定空间中的实体记录?
 
求选定空间中的实体记录?
求选定空间中的实体记录?
我想制作一个这样的程序,提示用户选择多个实体(用鼠标选择一个范围),并用遍历器遍历实体?不知道具体代码如何写?
我获得过这样一段代码,是求整个模型空间的实体,现在如何将它改成求用户选定空间?请高手指点。
// 获得当前数据库的块表
acdbblocktable *pblktbl;
acdbhostapplicationservices()->workingdatabase()
->getblocktable(pblktbl, acdb::kforread);
// 获得模型空间的块表记录
acdbblocktablerecord *pblktblrcd;
pblktbl->getat(acdb_model_space, pblktblrcd,acdb::kforread);
pblktbl->close();
// 创建块表记录遍历器
acdbblocktablerecorditerator *pitr; // 块表记录遍历器
pblktblrcd->newiterator(pitr);
acdbentity *pent; // 遍历的临时实体指针
acutprintf(l"\n遍历的临时实体指针已建立!");
for (pitr->start(); !pitr->done(); pitr->step())
{
// 利用遍历器获得每一个实体
pitr->getentity(pent, acdb::kforwrite);//以读的方式得到该实体
// 是否在“测试”图层上
if (pent->layerid() == layerid)
{
indentifyents(pent); //对实体进行判断
}
// 注意需要关闭实体
pent->close();
}
delete pitr; // 遍历器使用完毕之后一定要删除!
acutprintf(l"\n遍历的临时实体指针已删除!");
pblktblrcd->close();
谁来帮帮我啊?摆脱了
终于做出来了!
做出来就发出来共同学习一下呀。。真是的。。你让用户提供几个点,构造选择集,然后遍历选择集,不就可以达到你的效果了吗 。。


所有的时间均为北京时间。 现在的时间是 12:07 AM.