栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

autocad.net 设置指定图层为当前图层

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

autocad.net 设置指定图层为当前图层

方法1:

public static void SetLayerCurrent()
        {//http://docs.autodesk.com/ACD/2010/ENU/AutoCAD%20.NET%20Developer%27s%20Guide/index.html?url=WS1a9193826455f5ff2566ffd511ff6f8c7ca-3d31.htm,topicNumber=d0e29116
          // Get the current document and database
          Document acDoc = Application.DocumentManager.MdiActiveDocument;
          Database acCurDb = acDoc.Database;
 
          // Start a transaction
          using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())
          {
              // Open the Layer table for read
              LayerTable acLyrTbl;
              acLyrTbl = acTrans.GetObject(acCurDb.LayerTableId,OpenMode.ForRead) as LayerTable;
 
              string sLayerName = "Center";
 
              if (acLyrTbl.Has(sLayerName) == true)
              {
                  // Set the layer Center current
                  acCurDb.Clayer = acLyrTbl[sLayerName]; 
                  // Save the changes
                  acTrans.Commit();
              } 
              // Dispose of the transaction
          }
        }

方法2:

public static void SetLayerCurrent2()
        {
            Application.SetSystemVariable("CLAYER", "Center");
        }

完整代码:

//by 鸟哥 qq1833183060
//qq群 720924083
//2020-11-07
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


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

namespace AcadDemo
{
    public class MyLayer
    { 
        [CommandMethod("SetLayerCurrent")]
        public static void SetLayerCurrent()
        {//http://docs.autodesk.com/ACD/2010/ENU/AutoCAD%20.NET%20Developer%27s%20Guide/index.html?url=WS1a9193826455f5ff2566ffd511ff6f8c7ca-3d31.htm,topicNumber=d0e29116
          // Get the current document and database
          Document acDoc = Application.DocumentManager.MdiActiveDocument;
          Database acCurDb = acDoc.Database;
 
          // Start a transaction
          using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())
          {
              // Open the Layer table for read
              LayerTable acLyrTbl;
              acLyrTbl = acTrans.GetObject(acCurDb.LayerTableId,OpenMode.ForRead) as LayerTable;
 
              string sLayerName = "Center";
 
              if (acLyrTbl.Has(sLayerName) == true)
              {
                  // Set the layer Center current
                  acCurDb.Clayer = acLyrTbl[sLayerName]; 
                  // Save the changes
                  acTrans.Commit();
              } 
              // Dispose of the transaction
          }
        }

        public static void SetLayerCurrent2()
        {
            Application.SetSystemVariable("CLAYER", "Center");
        }
    
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/908397.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号