找回密码
 立即注册

QQ登录

只需一步,快速开始

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

c++偏移块内曲线

[复制链接]

0

主题

0

回帖

26

积分

管理员

积分
26
发表于 2024-10-6 12:53:45 | 显示全部楼层 |阅读模式
  1. static AcDbObjectId  OffsetEnty(AcDbObjectId idBlock, AcDbObjectId entId, double OfsValue)
  2. {
  3.         AcDbDatabase* pDb = acdbHostApplicationServices()->workingDatabase();
  4.         AcDbEntity* pEnt;
  5.         AcDbCurve* pCurv;
  6.         AcDbVoidPtrArray offCurvs;
  7.         AcDbBlockTableRecord* pBlkTableRecord;
  8.         Acad::ErrorStatus es;
  9.         AcDbObjectId objctid;
  10.         es = acdbOpenObject(pEnt, entId, AcDb::kForRead);
  11.         if ((pCurv = AcDbCurve::cast(pEnt)) == NULL) {
  12.                 pEnt->close();
  13.                 return NULL;
  14.         }
  15.         es = pCurv->getOffsetCurves(OfsValue, offCurvs);
  16.         if (es != Acad::eOk) {
  17.                 pEnt->close();
  18.                 return AcDbObjectId::kNull;
  19.         }
  20.         pEnt->close();
  21.         if ((es = acdbOpenObject(pBlkTableRecord, idBlock, AcDb::kForWrite)) == Acad::eOk)
  22.         {
  23.                 for (int i = 0; i < offCurvs.length(); i++) {
  24.                         pEnt = (AcDbEntity*)offCurvs.at(i);
  25.                         es = pBlkTableRecord->appendAcDbEntity(objctid, pEnt);
  26.                         if (es)
  27.                                 delete pEnt;
  28.                         else
  29.                                 pEnt->close();
  30.                 }
  31.                 pBlkTableRecord->close();
  32.         }
  33.         return objctid;
  34. }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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