找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[每日一码] 交换两个实体的OBJECTID

[复制链接]

0

主题

0

回帖

28

积分

管理员

积分
28
发表于 2024-3-14 19:36:00 | 显示全部楼层 |阅读模式
接受LISP参数,交换两个实体的OBJECTID
  1. int ObjectSwapId()
  2. {
  3.         resbuf *rb=ads采用getargs();
  4.         if (!rb)
  5.                 return RSRSLT;
  6.         if (rb->restype != RTENAME)
  7.                 return RSRSLT;
  8.         AcDbObjectId srcId,destId,ownId;
  9.         Acad::ErrorStatus es;
  10.         es=acdbGetObjectId(srcId,rb->resval.rlname);
  11.         if (es !=Acad::eOk)
  12.                 return RSRSLT;
  13.         AcDbObject *pObj1,*pObj2;
  14.         es=acdbOpenObject(pObj1,srcId,AcDb::kForWrite,true);
  15.         if (es != Acad::eOk)
  16.                 return RSRSLT;
  17.         rb=rb->rbnext;
  18.         if (rb->restype != RTENAME)
  19.                 return RSRSLT;
  20.         es=acdbGetObjectId(destId,rb->resval.rlname);
  21.         if (es !=Acad::eOk)
  22.                 return RSRSLT;
  23.         es=acdbOpenObject(pObj2,destId,AcDb::kForRead,true);
  24.         if (es != Acad::eOk)
  25.         {
  26.                 pObj1->close();
  27.                 return RSRSLT;
  28.         }
  29.         pObj2->close();
  30.         es=pObj1->swapIdWith(destId,TRUE,TRUE);
  31.         if (es == Acad::eOk)
  32.           ads采用rett();
  33.         pObj1->close();
  34.         return RSRSLT;
  35. }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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