找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[每日一码] ARX 实体的偏移代码

[复制链接]

0

主题

0

回帖

28

积分

管理员

积分
28
发表于 2024-3-14 20:05:27 | 显示全部楼层 |阅读模式
  1. static void TESToffentcmd()
  2. {
  3.         ads采用real dis;
  4.         if(acedGetReal(采用T("\n输入偏移距离"),&dis) != RTNORM)
  5.         {
  6.                 return;
  7.         }
  8.         ads采用name en;
  9.         ads采用point pt;
  10.         if(acedEntSel(采用T("\n选择要偏移的实体"),en,pt) != RTNORM)
  11.         {
  12.                 acutPrintf(采用T("\n选择实体失败"));
  13.                 return;
  14.         }
  15.         AcDbObjectId id;
  16.         if(acdbGetObjectId(id,en) != Acad::ErrorStatus::eOk)
  17.         {
  18.                 acutPrintf(采用T("\n实体ID获取失败"));
  19.                 return;
  20.         }
  21.         AcDbEntity* pEnt;
  22.         if(acdbOpenObject(pEnt,id,AcDb::OpenMode::kForRead) != Acad::ErrorStatus::eOk)
  23.         {
  24.                 acutPrintf(采用T("\n实体打开失败"));
  25.                 return;
  26.         }
  27.         if(pEnt->isKindOf(AcDbCurve::desc()))
  28.         {
  29.                 AcDbCurve* pCur = (AcDbCurve*)pEnt;
  30.                 AcDbVoidPtrArray ptArr;
  31.                 pCur->getOffsetCurves(dis,ptArr);
  32.                 int len = ptArr.length();
  33.                 acutPrintf(采用T("\n有%d个实体"),len);
  34.                 for(int i = 0;i < len;i ++)
  35.                 {
  36.                         AcDbEntity* pEnt2 = (AcDbEntity*)ptArr.at(i);
  37.                         LoadEntity(pEnt2);
  38.                 }
  39.         }
  40.         pEnt->close();
  41. }   
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-29 05:32 , Processed in 0.132779 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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