几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量  


返回   几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 » 仿射空间:CAX软件开发(三)二次开发与程序设计 » CAD二次开发 » AutoCAD二次开发 » ObjectARX(C++)
用户名
密码
注册 帮助 会员 日历 银行 搜索 今日新帖 标记论坛为已读


 
 
主题工具 搜索本主题 显示模式
旧 2009-04-16, 12:07 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】[arx]如何把一幅图像中所有的图形颜色变成白色

[arx]如何把一幅图像中所有的图形颜色变成白色
[arx]如何把一幅图像中所有的图形颜色变成白色
如题
acad::errorstatus changecolor(acdbobjectid entid,adesk::uint16 newcolor)
{
//打开对象,用于编辑
acdbentity *pentity;
acdbopenobject(pentity,entid,acdb::kforwrite);
//设置新的颜色
pentity->setcolorindex(newcolor);
pentity->close;
return acad::eok;
}
改变一个实体的颜色如上图所示,改变全部的呢?
要对 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();
}
谢谢楼上的兄弟
更简单的方法是用acedcommandh函数调用autocad的change命令.

楼上的兄弟能给个代码看吗?
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
 


主题工具 搜索本主题
搜索本主题:

高级搜索
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

vB 代码开启
[IMG]代码开启
HTML代码关闭



所有的时间均为北京时间。 现在的时间是 05:11 AM.


于2004年创办,几何尺寸与公差论坛"致力于产品几何量公差标准GD&T | GPS研究/CAD设计/CAM加工/CMM测量"。免责声明:论坛严禁发布色情反动言论及有关违反国家法律法规内容!情节严重者提供其IP,并配合相关部门进行严厉查处,若內容有涉及侵权,请立即联系我们QQ:44671734。注:此论坛须管理员验证方可发帖。
沪ICP备06057009号-2
更多