找回密码
 立即注册

QQ登录

只需一步,快速开始

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

如何根据组名将组里的所有实体删除,以及清除组

[复制链接]

0

主题

0

回帖

26

积分

管理员

积分
26
发表于 2024-9-25 13:20:34 | 显示全部楼层 |阅读模式
  1. AcDbDictionary *pGroupDict = NULL;
  2. Acad::ErrorStatus es;
  3. acdbHostApplicationServices()->workingDatabase()->getGroupDictionary(pGroupDict,AcDb::kForWrite);
  4. AcDbObjectId groupId;
  5. es =pGroupDict->getAt("Test",groupId);
  6. if (Acad::eOk == es)
  7. {
  8. pGroupDict->close();
  9. }
  10. AcDbGroup *pGroup = NULL;
  11. es = acdbOpenObject(pGroup, groupId, AcDb::kForWrite);
  12. if ( Acad::eOk == es)
  13. {
  14. AcDbObjectIdArray arrIds;
  15. pGroup->allEntityIds(arrIds);  //得到组中所有实体的ID
  16. if (!arrIds.isEmpty())
  17. {
  18. AcDbEntity *pEnty = NULL;
  19. Acad::ErrorStatus es;
  20. int j;
  21. for (j = 0; j < arrIds.length(); j++)
  22. {
  23. es = acdbOpenObject(pEnty, arrIds.at(j), AcDb::kForWrite);
  24. if (Acad::eOk == es)
  25. {
  26. pEnty->erase();  //删除组中包含的实体
  27. pEnty->close();
  28. }
  29. }
  30. }
  31. pGroup->erase();//删除组
  32. pGroup->close();
  33. }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-27 21:51 , Processed in 0.117209 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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