天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 121|回复: 0

ARX 多段线的合并

[复制链接]
  • TA的每日心情
    开心
    昨天 06:36
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    105

    主题

    11

    回帖

    1308

    积分

    管理员

    积分
    1308
    QQ
    发表于 2024-5-2 22:41:18 | 显示全部楼层 |阅读模式
    1. 合成多段线
    2. static void AppendPLinePoint(const AcDbObjectId& id,const bool& gotoNext,AcDbPolyline* pLine,int& plIndex)
    3. {
    4. AcDbEntity* pEnt = NULL;
    5. Acad::ErrorStatus es = acdbOpenObject(pEnt,id,AcDb::OpenMode::kForRead);
    6. if(es != Acad::eOk)
    7. {
    8. acutPrintf(采用T("open object failed in combine pline"));
    9. return;
    10. }
    11. if(!pEnt->isKindOf(AcDbPolyline::desc()))
    12. {
    13. pEnt->close();
    14. return;
    15. }
    16. AcDbPolyline* pPoly = NULL;
    17. pPoly = (AcDbPolyline*)pEnt;
    18. AcGePoint2dArray ptArr;
    19. int count = pPoly->numVerts();
    20. AcGePoint2d pt ;
    21. double bulge = 0.0;
    22. if(gotoNext)
    23. {
    24. for(int i = 0;i < count ; i++)
    25. {
    26. pPoly->getPointAt(i,pt);
    27. pPoly->getBulgeAt(i,bulge);
    28. pLine->addVertexAt(plIndex,pt,bulge);
    29. plIndex++;
    30. }
    31. }
    32. else
    33. {
    34. for(int i = count - 1;i > 0; i--)
    35. {
    36. pPoly->getPointAt(i,pt);
    37. if(i > 0)
    38. {
    39. pPoly->getBulgeAt(i - 1,bulge);
    40. }
    41. else
    42. {
    43. pPoly->getBulgeAt(0,bulge);
    44. }
    45. pLine->addVertexAt(plIndex,pt,-bulge);
    46. plIndex++;
    47. }
    48. }
    49. pEnt->close();
    50. }
    复制代码

     

     

     

     

    ARX 多段线的合并
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

    GMT+8, 2024-11-1 08:01 , Processed in 0.131158 second(s), 26 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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