CAD.NET 将图层设置为当前图层

如何将指定图层设置为当前图层?有两种方式可以实现:

一是使用Clayer属性,将Database的Clayer设置指定的图层。

using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;

[CommandMethod("SetLayerCurrent")]
public static void SetLayerCurrent()
{
    // 获取当前文档和数据
    Document acDoc = Application.DocumentManager.MdiActiveDocument;
    Database acCurDb = acDoc.Database;
    // 启动事务
    using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())
    {
        // 以只读取方式打开图层列表
        LayerTable acLyrTbl= acTrans.GetObject(acCurDb.LayerTableId, OpenMode.ForRead) as LayerTable;
        string sLayerName = "Center";
        if (acLyrTbl.Has(sLayerName) == true)
        {
            // 设置当前图层
            acCurDb.Clayer = acLyrTbl[sLayerName];
            // 保存修改
            acTrans.Commit();
        }
    }
}

二是使用系统变量CLAYER来完成。

Application.SetSystemVariable("CLAYER", "Center");
posted @ 2022-03-01 07:27  我也是个傻瓜  阅读(555)  评论(0编辑  收藏  举报