找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

0

主题

0

回帖

28

积分

管理员

积分
28
发表于 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. }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-29 05:40 , Processed in 0.117917 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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