找回密码
 立即注册

QQ登录

只需一步,快速开始

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

arx用ads_entmake 创建 LWPOLYLINE

[复制链接]

0

主题

0

回帖

26

积分

管理员

积分
26
发表于 2024-10-9 08:51:56 | 显示全部楼层 |阅读模式
  1. static int createLwPolyLine(double* pts, int npts, double elevation)
  2.     {
  3.         if (pts == NULL || npts == 0)
  4.             return RTERROR;
  5.         resbuf *pEnt = ads_newrb(0);
  6.         pEnt->resval.rstring = _wcsdup(L"LWPOLYLINE"); //strdup
  7.         resbuf* pTail = pEnt;
  8.         pTail = pTail->rbnext = ads_newrb(100);
  9.         pTail->resval.rstring = _wcsdup(L"AcDbEntity");
  10.         pTail = pTail->rbnext = ads_newrb(100);
  11.         pTail->resval.rstring = _wcsdup(L"AcDbPolyline");
  12.         pTail = pTail->rbnext = ads_newrb(8);
  13.         pTail->resval.rstring = _wcsdup(L"0");
  14.         pTail = pTail->rbnext = ads_newrb(90);
  15.         pTail->resval.rlong = npts;
  16.         pTail = pTail->rbnext = ads_newrb(38);
  17.         pTail->resval.rreal = elevation;
  18.         for (int idx = 1; idx < npts; idx += 2)
  19.         {
  20.             pTail = pTail->rbnext = ads_newrb(10);
  21.             pTail->resval.rpoint[0] = pts[idx - 1];
  22.             pTail->resval.rpoint[1] = pts[idx];
  23.             pTail->resval.rpoint[2] = 0.0;
  24.         }
  25.         pTail->rbnext = NULL;//end
  26.         int res = ads_entmake(pEnt);
  27.         ads_relrb(pEnt);
  28.         return res;
  29.     }
  30.     static void ArxTemplate_doit(void)
  31.     {
  32.         double pnts[4] = { 0.0, 0.0, 0.0, 100.0 };
  33.         createLwPolyLine(pnts, 4, 100);
  34.     }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-27 05:47 , Processed in 0.124728 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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