如何把一个对象的颜色设置成 ByLayer

AutoCAD  .net API中可以用如下代码来设置entity的颜色为bylayer,请注意 BYLAYER的colorIndex为256。很简单,光贴代码。

 [CommandMethod("SetColorByLayer")]
public void SetColorByLayer()
{
ObjectId objId = GetSelectEntity();
using (Transaction trans = HostApplicationServices.WorkingDatabase.TransactionManager.StartTransaction())
{
Entity ent = trans.GetObject(objId, OpenMode.ForWrite) as Entity;
//the corlor index of "BYLAYER" is 256, "BYBLOCK" is 0
ent.Color = Autodesk.AutoCAD.Colors.Color.FromColorIndex(Autodesk.AutoCAD.Colors.ColorMethod.ByLayer, 256);
trans.Commit();
}
}
private ObjectId GetSelectEntity()
{
ObjectId oid = ObjectId.Null;
using (DocumentLock docLoc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.LockDocument())
{
PromptEntityOptions selectionOp = new PromptEntityOptions("\nselect entity");
PromptEntityResult prRes = ed.GetEntity(selectionOp);
if (prRes.Status == PromptStatus.OK)
{
oid = prRes.ObjectId;
}
}
return oid;
}
作者:峻祁连
邮箱:junqilian@163.com
出处:http://junqilian.cnblogs.com
转载请保留此信息。
原文地址:https://www.cnblogs.com/junqilian/p/2164084.html