明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2463|回复: 6

[ARX]如何把一幅图像中所有的图形颜色变成白色

[复制链接]
发表于 2006-10-27 16:18:00 | 显示全部楼层 |阅读模式

如题

 楼主| 发表于 2006-10-27 16:26:00 | 显示全部楼层
Acad::ErrorStatus changeColor(AcDbObjectId entId,Adesk::UInt16 newColor)
{
   //打开对象,用于编辑
   AcDbEntity *pEntity;
   acdbOpenObject(pEntity,entId,AcDb::kForWrite);
   //设置新的颜色
   pEntity->setColorIndex(newColor);
   pEntity->close;
   return Acad::eOk;
}
改变一个实体的颜色如上图所示,改变全部的呢?
发表于 2006-10-27 20:24:00 | 显示全部楼层
本帖最后由 作者 于 2006-10-27 22:29:49 编辑

要对 AcDbBlockTableRecord 中的 ACDB_MODEL_SPACE进行遍历啊

void TEST()
{
 // TODO: Implement the command
 // 假设 newColor=1(红色)
 int newColor=1;
 // 取 模型空间=pMS
 AcDbBlockTable *pBlockTable;
 Acad::ErrorStatus es;
 acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pBlockTable,AcDb::kForRead);
 AcDbBlockTableRecord *pMS;
 pBlockTable->getAt(ACDB_MODEL_SPACE,pMS,AcDb::kForRead);
 pBlockTable->close();

 // 新建迭代器
 AcDbBlockTableRecordIterator *pIter=NULL;
 pMS->newIterator(pIter);
 if (pIter==NULL)
 {
  acutPrintf("\n** Error on the newIterator...");
  pMS->close();
  return;
 }
 // 遍历迭代器中的 Entity 来 改变颜色
 for(pIter->start();!pIter->done();pIter->step())
 {
  acutPrintf("\n****");
  AcDbEntity *pEnt=NULL;
  // 得到 Entity=pEnt 为 读
  pIter->getEntity(pEnt,AcDb::kForRead);
  if(pIter==NULL)
   continue;
  // 将状态 升级
  if(pEnt->upgradeOpen()!=Acad::eOk)
  {
   acutPrintf("\n** one object can't upgradeOpen");
   pEnt->close();
   continue;
  }
  // 改变颜色
  es=pEnt->setColorIndex(newColor);
  if(es!=Acad::eOk)
   acutPrintf("\none object can't change the color");
  pEnt->close();
 }

 delete pIter;
 pMS->close();
}

 楼主| 发表于 2006-10-29 20:23:00 | 显示全部楼层

谢谢楼上的兄弟

发表于 2006-10-31 09:48:00 | 显示全部楼层

更简单的方法是用AcedCommandh函数调用AUTOCAD的change命令.

 

 楼主| 发表于 2006-11-4 13:33:00 | 显示全部楼层

楼上的兄弟能给个代码看吗?

发表于 2012-10-15 10:45:28 | 显示全部楼层
这不是全选就可以了吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 09:52 , Processed in 0.250238 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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