那我想问下,怎么遍历所有图层,将所有图层的颜色改成同一种颜色?
请高手指教,谢谢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();
}
}
这是我自己的编辑的程序,但载入后没有效果,不知道错在哪里,希望高手能指导我一下 Color layerColor = Color.FromColorIndex(ColorMethod.ByAci, 1); 回复 sieben 的帖子
谢谢啊,呵呵。。高手啊,那我想问下,这个ByAci是什么意思?跟我那个ByColor有什么区别吗? 本帖最后由 sieben 于 2011-5-10 13:36 编辑
这个我现在也说不清楚
Aci 可以说是颜色表达方式或说是颜色组合方式
有些色系直接使用编号来定义颜色,或者直接使用一个名字,或者使用RGB三原色获四色来表示颜色,这个我说不清楚.
ColorMethod.ByAci 可以说是AutoCAD自己定义的色系
1是红色,2是黄色,3是绿色等,序号前七八个及后面的255 256 是较另类的颜色,中间的两百多个颜色和RGB颜色基本是个顺序对应关系.
回复 sieben 的帖子
恩,这个颜色的索引值我晓得,但是有些资料我看到就是使用的是bycolor这个方式,是在创建层的时候,通过颜色索引值的方式定义一个颜色,我不太明白他们之间有什么区别?
页:
[1]