明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1523|回复: 4

那我想问下,怎么遍历所有图层,将所有图层的颜色改成同一种颜色?

[复制链接]
发表于 2011-5-9 16:30:21 | 显示全部楼层 |阅读模式
请高手指教,谢谢
[CommandMethod("changeLayerColors")]
        public void changeLayerColors()
        {
            Database db = HostApplicationServices.WorkingDatabase;
            using (Transaction trans = db.TransactionManager.StartTransaction())
            {
                //以写的方式打开层表
                LayerTable It = (LayerTable)trans.GetObject(db.LayerTableId, OpenMode.ForWrite);
                //遍历层表
                foreach (ObjectId layerId in It)
                {
                    LayerTableRecord Itr = (LayerTableRecord)trans.GetObject(layerId, OpenMode.ForWrite);
                    //修改图层的颜色为1号颜色
                    Color layerColor = Color.FromColorIndex(ColorMethod.ByColor, 1);
                    //设置图层颜色
                    Itr.Color = layerColor;
                }
                trans.Commit();
            }
        }
这是我自己的编辑的程序,但载入后没有效果,不知道错在哪里,希望高手能指导我一下
发表于 2011-5-9 19:02:26 | 显示全部楼层
Color layerColor = Color.FromColorIndex(ColorMethod.ByAci, 1);
 楼主| 发表于 2011-5-10 11:57:53 | 显示全部楼层
回复 sieben 的帖子

谢谢啊,呵呵。。高手啊,那我想问下,这个ByAci是什么意思?跟我那个ByColor有什么区别吗?
发表于 2011-5-10 13:31:21 | 显示全部楼层
本帖最后由 sieben 于 2011-5-10 13:36 编辑

这个我现在也说不清楚
Aci 可以说是颜色表达方式或说是颜色组合方式
有些色系直接使用编号来定义颜色,或者直接使用一个名字,或者使用RGB三原色获四色来表示颜色,这个我说不清楚.
ColorMethod.ByAci 可以说是AutoCAD自己定义的色系
1是红色,2是黄色,3是绿色等,序号前七八个及后面的255 256 是较另类的颜色,中间的两百多个颜色和RGB颜色基本是个顺序对应关系.
 楼主| 发表于 2011-5-10 16:58:40 | 显示全部楼层
回复 sieben 的帖子

恩,这个颜色的索引值我晓得,但是有些资料我看到就是使用的是bycolor这个方式,是在创建层的时候,通过颜色索引值的方式定义一个颜色,我不太明白他们之间有什么区别?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 22:24 , Processed in 0.167147 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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