明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1593|回复: 3

求选定空间中的实体记录?

[复制链接]
发表于 2008-10-8 12:35:00 | 显示全部楼层 |阅读模式

我想制作一个这样的程序,提示用户选择多个实体(用鼠标选择一个范围),并用遍历器遍历实体?不知道具体代码如何写?

我获得过这样一段代码,是求整个模型空间的实体,现在如何将它改成求用户选定空间?请高手指点。

            // 获得当前数据库的块表
            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();

 楼主| 发表于 2008-10-8 21:31:00 | 显示全部楼层
谁来帮帮我啊?摆脱了
 楼主| 发表于 2008-10-9 16:31:00 | 显示全部楼层
终于做出来了!
发表于 2008-10-23 13:27:00 | 显示全部楼层
做出来就发出来共同学习一下呀。。真是的。。你让用户提供几个点,构造选择集,然后遍历选择集,不就可以达到你的效果了吗 。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 15:48 , Processed in 0.163071 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表