天气与日历 切换到窄版

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

[每日一码] ARX 合并多段线的代码

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

    [LV.4]偶尔看看III

    105

    主题

    11

    回帖

    1308

    积分

    管理员

    积分
    1308
    QQ
    发表于 2024-3-14 20:02:59 | 显示全部楼层 |阅读模式
    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 13:24 , Processed in 0.206722 second(s), 26 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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