设为首页收藏本站

中国膜结构网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

膜结构车棚
膜结构车棚膜结构资质国产膜材 膜结构网中国膜结构协会
查看: 210|回复: 0

arx 散线转化成多段线

[复制链接]
  • TA的每日心情
    开心
    2021-6-20 09:04
  • 签到天数: 1540 天

    [LV.Master]伴坛终老

    发表于 2020-12-22 10:22 | 显示全部楼层 |阅读模式
    1. 散线转化成多段线
    2. std::vector<entStruct> vecInfo;
    3. AcDbObjectIdArray idarr=CDwgDatabaseUtil::GetAllEntityIds();
    4. int iLen = idarr.length();
    5. for (int i = 0; i < iLen;i++)
    6. {
    7. entStruct eTemp;
    8. AcDbObjectId idTemp = idarr[i];
    9. AcDbEntity *pEnt = NULL;
    10. Acad::ErrorStatus es;
    11. es = acdbOpenAcDbEntity(pEnt, idTemp, AcDb::kForWrite);
    12. if (es!=eOk)
    13. {
    14. continue;
    15. }
    16. if (pEnt->isKindOf(AcDbLine::desc()))
    17. {
    18. AcDbLine *pLine = static_cast<AcDbLine*>(pEnt);
    19. eTemp.id = idTemp;
    20. eTemp.rx = AcDbLine::desc();
    21. eTemp.ptStr = pLine->startPoint();
    22. eTemp.ptEnd = pLine->endPoint();
    23. eTemp.dBulge = 0;
    24. vecInfo.push_back(eTemp);
    25. pEnt->close();
    26. }
    27. else if (pEnt->isKindOf(AcDbArc::desc()))
    28. {
    29. AcDbArc *pArc = static_cast<AcDbArc*>(pEnt);
    30. eTemp.id = idTemp;
    31. eTemp.rx = AcDbArc::desc();
    32. AcGePoint3d pts, pte;
    33. pArc->getStartPoint(pts);
    34. pArc->getEndPoint(pte);
    35. eTemp.ptStr = pts;
    36. eTemp.ptEnd = pte;
    37. double dStart = pArc->startAngle();
    38. double dEnd = pArc->endAngle();
    39. double dAlfa = dEnd - dStart;
    40. if (dAlfa<0)
    41. {
    42. dAlfa += CMathUtil::PI()*2;
    43. }
    44. double dBu = tan((dAlfa) / 4.0);
    45. eTemp.dBulge = dBu;
    46. vecInfo.push_back(eTemp);
    47. pEnt->close();
    48. }
    49. else
    50. {
    51. pEnt->close();
    52. }
    53. }

    54. size_t iS = vecInfo.size();
    55. entStruct entTemp = vecInfo[0];
    56. AcGePoint3d pPolyStr=entTemp.ptEnd;
    57. AcGePoint3d pPolyEnt = entTemp.ptStr;
    58. AcDbObjectId idTemp = entTemp.id;

    59. AcDbPolyline *pPoly = new AcDbPolyline;
    60. pPoly->addVertexAt(0, CConvertUtil::ToPoint2d(pPolyStr));
    61. int iMark = 1;
    62. for (int j = 0; j < iS;j++)
    63. {
    64. for (int i = 0; i < iS; i++)
    65. {
    66. entStruct eT = vecInfo[i];
    67. if (idTemp==eT.id)
    68. {
    69. continue;
    70. }
    71. if (eT.ptStr == pPolyStr)
    72. {
    73. if (eT.rx == AcDbLine::desc())
    74. {
    75. pPoly->addVertexAt(iMark, CConvertUtil::ToPoint2d(eT.ptEnd));
    76. pPolyStr = eT.ptEnd;
    77. iMark++;
    78. idTemp = eT.id;
    79. break;
    80. }
    81. if (eT.rx==AcDbArc::desc())
    82. {
    83. pPoly->setBulgeAt(iMark - 1,eT.dBulge);
    84. pPoly->addVertexAt(iMark, CConvertUtil::ToPoint2d(eT.ptEnd));
    85. pPolyStr = eT.ptEnd;
    86. iMark++;
    87. idTemp = eT.id;
    88. break;
    89. }
    90. }
    91. else if (eT.ptEnd == pPolyStr)
    92. {
    93. if (eT.rx == AcDbLine::desc())
    94. {
    95. pPoly->addVertexAt(iMark, CConvertUtil::ToPoint2d(eT.ptStr));
    96. pPolyStr = eT.ptStr;
    97. iMark++;
    98. idTemp = eT.id;
    99. break;
    100. }
    101. if (eT.rx == AcDbArc::desc())
    102. {
    103. pPoly->setBulgeAt(iMark - 1, eT.dBulge);
    104. pPoly->addVertexAt(iMark, CConvertUtil::ToPoint2d(eT.ptEnd));
    105. pPolyStr = eT.ptStr;
    106. iMark++;
    107. idTemp = eT.id;
    108. break;
    109. }
    110. }
    111. else
    112. {
    113. continue;
    114. }
    115. }
    116. }
    117. if (entTemp.rx==AcDbArc::desc())
    118. {
    119. pPoly->setBulgeAt(iMark-1, entTemp.dBulge);
    120. }

    121. CDwgDatabaseUtil::PostToModelSpace(pPoly);
    复制代码
    回复


    http://www.mjgw.org/ 专业从事膜结构设计、制作加工、施工安装的膜结构工程服务,能够为客户提供专业的膜结构整体解决方案。做中国最好的膜结构综合服务平台。欢迎大家联系电话:198-7840-1958,QQ:463017170.
    相关关键词:膜结构车棚,膜结构车棚覆盖,膜结构车棚公司,膜结构车棚多少钱,膜结构车棚厂家,膜结构车棚价格,社区膜结构车棚,膜结构车棚膜布厂家 ,膜结构车棚哪家好,膜结构车棚多少钱一米,膜结构车棚报价,膜结构车棚哪里有,膜结构车棚定制,膜结构车棚安装,膜结构车棚设计,膜结构车棚电话,膜结构车棚加工,膜结构车棚膜布价格,膜结构车棚批发,膜结构车棚制造商,膜结构车棚生产厂家,膜结构车棚设计,膜结构车棚施工,膜结构车棚多少钱一平米,膜结构车棚订制,张拉膜车棚,张拉膜车棚覆盖,张拉膜车棚公司,张拉膜车棚多少钱,张拉膜车棚厂家,张拉膜车棚价格,社区张拉膜车棚,张拉膜车棚膜布厂家 ,张拉膜车棚哪家好,张拉膜车棚多少钱一米,张拉膜车棚报价,张拉膜车棚哪里有,张拉膜车棚定制,张拉膜车棚安装,张拉膜车棚设计,张拉膜车棚电话,张拉膜车棚加工,张拉膜车棚膜布价格,张拉膜车棚批发,张拉膜车棚制造商,张拉膜车棚生产厂家,张拉膜车棚设计,张拉膜车棚施工,张拉膜车棚多少钱一平米,张拉膜车棚订制,常用膜材品牌:德国杜肯、法国法拉利、德国海德斯、德国米乐、日本平岗、韩国秀博、比利时希运、美国赫虏伯、中国科宝、上海慧遥。

    使用道具 举报

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

    本版积分规则

    关闭

    推荐膜材品牌上一条 /6 下一条

    进口膜材 国产膜材 pvdf膜材ptfe膜材ETFE膜材
    最好的膜结构公司 一级膜结构资质 膜结构一级资质
    膜结构设计-膜结构十大品牌-etfe设计-充气膜结构
    诺科膜结构
    遨都膜结构设计
    中国膜结构网
    中国空间膜结构

    QQ|申请友链|手机版|中国膜结构论坛