找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1328|回复: 0

[老徐讲堂] 简单的多段线换向程序

[复制链接]

已领礼包: 12个

财富等级: 恭喜发财

发表于 2015-8-23 07:50:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
由于时间仓促,本程序未经调试,希望大家提出宝贵意见。最近比较忙,好久没来论坛了。
  1. void PostToModelSpace(AcDbEntity *pEnt)//添加实体到模型空间
  2. {
  3.   AcDbBlockTable *pBlkTbl;
  4.   acdbHostApplicationServices()->workingDatabase()->getBlockTable(pBlkTbl,AcDb::kForRead);
  5.   AcDbBlockTableRecord *pBlkTblRcd;
  6.   pBlkTbl->getAt(ACDB_MODEL_SPACE,pBlkTblRcd,AcDb::kForWrite);
  7.   pBlkTbl->close();
  8.   AcDbObjectId entId;
  9.   pBlkTblRcd->appendAcDbEntity(entId,pEnt);
  10.   pEnt->close();
  11.   pBlkTblRcd->close();
  12. }


  1. // - XsdkArxProject3.HUAN command (do not rename)
  2.   static void XsdkArxProject3HUAN(void)
  3.   {
  4.     // Add your code for command XsdkArxProject3.HUAN here
  5.     ads_name ss,s1;
  6.     struct resbuf *rb = acutBuildList(RTDXF0,L"LWPOLYLINE",RTNONE);
  7.     if (acedSSGet(NULL,NULL,NULL,rb,ss)!=RTNORM)
  8.     {
  9.       return;
  10.     }
  11.         long len;
  12.     if (RTNORM==acedSSLength(ss,&len))
  13.     {
  14.       for (int i = 0; i < len; i++)
  15.       {
  16.         acedSSName(ss,i,s1);
  17.         AcDbObjectId id;
  18.         acdbGetObjectId(id,s1);
  19.         AcDbPolyline *pPline ;
  20.         acdbOpenObject(pPline,id,AcDb::kForWrite);
  21.                 AcGePoint2dArray  ptArray;
  22.         for (int j = 0; j < pPline->numVerts(); j++)
  23.         {
  24.           AcGePoint2d p2d; pPline->getPointAt(j,p2d);
  25.           ptArray.append(p2d);
  26.         }
  27.         ptArray = ptArray.reverse();
  28.         AcDbPolyline *pNewPoly = new AcDbPolyline(ptArray.length());
  29.         for (int k = 0; k < ptArray.length(); k++)
  30.         {
  31.           AcGePoint2d p2d1 = ptArray.at(k);
  32.           pNewPoly->addVertexAt(k,p2d1);
  33.         }
  34.         pNewPoly->setPropertiesFrom(pPline);
  35.         pNewPoly->setXData(pPline->xData());
  36.                 PostToModelSpace(pNewPoly);
  37.                 pPline->erase();
  38.         pPline->close();
  39.       }
  40.     }
  41.     acedSSFree(ss);
  42.     acutRelRb(rb);
  43.   }

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-15 09:06 , Processed in 0.149155 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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