找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 137|回复: 0

ARX 创建组实例(新建组,选择实体添加到组,输入层,修改组所在的层)

[复制链接]

1

主题

0

回帖

37

积分

管理员

积分
37
发表于 2024-5-2 22:45:56 | 显示全部楼层 |阅读模式
  1. static void TESTgrpcmd()
  2. {
  3. CString strGrp;
  4. if(acedGetString(0,采用T("\n输入组名"),strGrp.GetBuffer(10)) != RTNORM)
  5. {
  6. return;
  7. }
  8. strGrp.ReleaseBuffer();
  9. ads采用name ss;
  10. if(acedSSGet(NULL,NULL,NULL,NULL,ss) != RTNORM)
  11. {
  12. return;
  13. }
  14. CString strLayer;
  15. if(acedGetString(0,采用T("\n输入层名称"),strLayer.GetBuffer(10)) != RTNORM)
  16. {
  17. acedSSFree(ss);
  18. return;
  19. }
  20. 创建组,改变层
  21. AcDbGroup* pGrp = new AcDbGroup(strGrp);
  22. long len ;
  23. acedSSLength(ss,&len);
  24. AcDbObjectId idObj;
  25. ads采用name enName;
  26. AcDbEntity* pEnt;
  27. ErrorStatus es;
  28. for(int i = 0;i < len;i ++)
  29. {
  30. if(acedSSName(ss,i,enName) != RTNORM)
  31. {
  32. continue;
  33. }
  34. acdbGetObjectId(idObj,enName);
  35. pGrp->append(idObj);
  36. }
  37. pGrp->setLayer(strLayer);
  38. 把组添加到词典中
  39. AcDbDictionary* pGrpDic;
  40. acdbHostApplicationServices()->workingDatabase()->getGroupDictionary(pGrpDic,AcDb::kForWrite);
  41. AcDbObjectId idGrp;
  42. pGrpDic->setAt(strGrp,pGrp,idGrp);
  43. 释放内存
  44. pGrp->close();
  45. pGrpDic->close();
  46. acedSSFree(ss);
  47. }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|膜结构网

GMT+8, 2025-1-4 12:28 , Processed in 0.122983 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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