CAD 二次开发 图层操作(1)创建图层

CAD二次开发的资料比较少,除了李冠亿先生的《深居浅出AutoCAD二次开发》这本书之外,目前没有找到合适的参考资料。现将自己工作中用的的一些方法贴出来。方便各位网友快速入门。

 

#region 添加图层

        /// <summary>
        /// 添加图层
/// </summary>
        /// <param name="layName"></param>
/// <param name="layColor"></param>
        private ObjectId AddLayer(string layName, short layColor)
        {
            ObjectId oidReturn = new ObjectId(); ;
            using (Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.LockDocument())
            {
                Database database = HostApplicationServices.WorkingDatabase;
                Editor editor = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;
                using (Transaction transaction = database.TransactionManager.StartTransaction())
                {
                    try
                    {
                        ObjectId id;
                        LayerTable table = transaction.GetObject(database.LayerTableId, OpenMode.ForWrite) as LayerTable;
                        LayerTableRecord record = new LayerTableRecord();
                        if (table.Has(layName))
                        {
                            id = table.Id;
                            record = transaction.GetObject(id, OpenMode.ForWrite) as LayerTableRecord;
                            record.IsOff = false;
                            record.IsLocked = false;
                            if (id != database.Clayer)
                            {
                                record.IsFrozen = false;
                            }
                        }
                        else
                        {
                            record.Name = layName;
                            id = table.Add(record);
                            transaction.AddNewlyCreatedDBObject(record, true);
                        }
                        record.Color = Autodesk.AutoCAD.Colors.Color.FromColorIndex(ColorMethod.ByColor, layColor);
                        database.Clayer = id;
                        oidReturn = id;
                        transaction.Commit();
                    }
                    catch (Exception exception)
                    {

                        editor.WriteMessage("Error in addLayer2(): " + exception.Message);
                    }

                }
                return oidReturn;
            }
        }

        #endregion

如上述代码所示:

输入参数为:图层名称,和图层颜色

实现该功能的思路为:

锁定图档,

开启事务

获得当前图档的图层表(LayerTable);

像操作关系数据库那样创建一条图层表的新 纪录;

对新纪录赋予图层名称,定义图层颜色;

通过添加到图层表,获得记录主键;

通过事务,将新图层记录添加到图当中;

提交事务;

完成。

 

 如有问题:请加qq1419226548或QQmail给我。 若转载,请注明出处。谢谢。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
VBA 开发人员手册,作者:解祥成。 目 录 第 1 章、VBA入门.......................................... 3 1 、了解嵌入和全局VBA工程 2、用VBA管理器组织工程 3、处理宏 4、用VBA IDE编辑工程 5、更多的信息 6、回顾AutoCAD VBA 工程术语 7、回顾AutoCAD VBA 命令 第 2 章、理解ActiveX自动操作基础 1、理解AutoCAD对象模型 2、访问对象层次 3、通过集合对象操作 4、理解属性和方法 5、理解父对象 6、定位类型库 7、在数据库中返回第一个元 8、在方法和属性中使用变体 9、使用其它程序语言 第三章 控制AutoCAD环境 1、打开、保存和关闭形 2、设定AutoCAD参数 5、重置活动对象 6、设定和返回系统变量 7、精确制 8、提示用户输入 9、访问AutoCAD命令行 第四章 创建和编辑AutoCAD元 1、创建对象 2、编辑对象 3、使用层、颜色和线型 4、添加文本到形中 第五章 标注与公差 1、标注的概念 2、创建标注 3、编辑标注 4、利用标注样式 5、在模型空间和纸空间中标注 6、创建引线及注解 7、创建形位公差 第六章 定义菜单和工具栏 1、理解MenuBar和MenuGroups集合 2、加载菜单组 3、改变菜单条 4、创建和编辑下拉菜单和快捷菜单 5、建立并编辑工具栏 7、对菜单项和工具栏项增加状态栏帮助 8、在右键菜单中增加条目 第七章 使用事件 1、了解AutoCAD中的事件 2、编写事件处理器的方法 3、处理应用程序级事件 4、处理文档级事件 5、处理对象级事件 第八章 在三维空间下工作 1、指定三维坐标 2、定义用户坐标系统 3、坐标转换 4、建立三维对象 5、在三维中编辑 6、编辑三维实体 第九章 定义布局及打印 1、了解模型空间和纸空间 2、了解视口 3、打印纸 第十章-高级绘与组织技术 1、使用光栅像 2、使用块和属性

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值