找回密码
 立即注册

QQ登录

只需一步,快速开始

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

定义一个命令,功能:让用户选择界面上的直线实体,然后修改所有选中实体的颜色

[复制链接]

1

主题

0

回帖

43

积分

管理员

积分
43
发表于 2024-3-14 20:37:22 | 显示全部楼层 |阅读模式
  1. static void TESTchangecolorcmd()  
  2. {  
  3.         ads采用name ssname;  
  4.         resbuf strFilter;  
  5.         ////只能选择直线对象,构造选择集过滤器,只能选直线  
  6.         strFilter.resval.rstring = 采用T("LINE");  
  7.         strFilter.rbnext = NULL;  
  8.         strFilter.restype = 0;  
  9.         ////选择多个实体,传递NULL,让用户自己来选  
  10.         if(acedSSGet(NULL,NULL,NULL,&strFilter,ssname) != RTNORM)  
  11.         {  
  12.                 return;  
  13.         }  
  14.         long len;  
  15.         acedSSLength(ssname,&len);  
  16.         CString ss;  
  17.         ss.Format(采用T("已选中%d个实体"),len);  
  18.         acutPrintf(ss);  
  19.         ads采用name entname;  
  20.         AcDbObjectId id;  
  21.         AcDbEntity* ent = NULL;  
  22.         CString strName;  
  23.         ////弹出颜色选择对话框,选中一个颜色,默认是当前层的颜色  
  24.         int nNewColor = SelColor();  
  25.         for (int i=0;i<len;i++)  
  26.         {  
  27.                 if (acedSSName(ssname, i, entname) == RTNORM)  
  28.                 {  
  29.                         ////根据名称得到ID  
  30.                         acdbGetObjectId(id,entname);  
  31.                         ////以写模式,根据ID索引到对象,并打开ENTITY  
  32.                         acdbOpenObject(ent,id,AcDb::OpenMode::kForWrite);  
  33.                         strName.Format(采用T("%d"),ent->colorIndex());  
  34.                         acutPrintf(采用T("\n"));  
  35.                         acutPrintf(strName);  
  36.                         ent->setColorIndex(nNewColor);  
  37.                         ent->close();  
  38.                 }  
  39.         }  
  40.         acedSSFree(ssname);  
  41. }  
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-1-10 21:29 , Processed in 0.105410 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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