找回密码
 立即注册

QQ登录

只需一步,快速开始

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

ObjectARX 合并各种情况的圆弧

[复制链接]

1

主题

0

回帖

37

积分

管理员

积分
37
发表于 2024-5-4 18:45:39 | 显示全部楼层 |阅读模式

  1. static void zffObjectARX_MyCommand18(void)
  2. {
  3. ads_name ss;
  4. acedSSGet(NULL,NULL,NULL,NULL,ss);
  5. long len;
  6. acedSSLength(ss,&len);
  7. double startAng,endAng;
  8. double radius;
  9. AcGePoint3d center;
  10. for (int i=0;i<len;)
  11. {
  12. AcDbArc* pArc=NULL;
  13. AcDbObjectId entId;
  14. ads_name name,name1;
  15. acedSSName(ss,i,name);
  16. acdbGetObjectId(entId,name);
  17. acdbOpenObject(pArc,entId,AcDb::kForWrite);
  18. double arcStartAng=pArc->startAngle();
  19. double arcEndAng=pArc->endAngle();
  20. if (arcEndAng==0)
  21. {
  22. arcEndAng+=2*pi();
  23. }
  24. AcGePoint3d arcCenter=pArc->center();
  25. double arcRadius=pArc->radius();
  26. radius=arcRadius;
  27. center=arcCenter;
  28. startAng=arcStartAng;
  29. endAng=arcEndAng;
  30. for (int j=i+1;j<len;)
  31. {
  32. AcDbArc* pArc1=NULL;
  33. acedSSName(ss,j,name1);
  34. acdbGetObjectId(entId,name1);
  35. acdbOpenObject(pArc1,entId,AcDb::kForWrite);
  36. double arc1StartAng=pArc1->startAngle();
  37. double arc1EndAng=pArc1->endAngle();
  38. if (arc1EndAng==0)
  39. {
  40. arc1EndAng+=2*pi();
  41. }
  42. AcGePoint3d arc1Center=pArc1->center();
  43. double arc1Radius=pArc1->radius();
  44. if (arcCenter==arc1Center && arcRadius==arc1Radius)
  45. {
  46. if (arc1StartAng<startAng)
  47. {
  48. startAng=arc1StartAng;
  49. }
  50. if (arc1EndAng>endAng)
  51. {
  52. endAng=arc1EndAng;
  53. }
  54. acedSSDel(name1,ss);
  55. pArc1->erase();
  56. acedSSLength(ss,&len);
  57. }
  58. else
  59. {
  60. j++;
  61. }
  62. pArc1->close();
  63. }
  64. acedSSDel(name,ss);
  65. pArc->erase();
  66. pArc->close();
  67. acedSSLength(ss,&len);
  68. AcDbArc* pArcRe=new AcDbArc(center,radius,startAng,endAng);
  69. AddToModelSpace(pArcRe);
  70. }
  71. }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-1-4 13:26 , Processed in 0.099724 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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