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给我。 若转载,请注明出处。谢谢。
CAD 二次开发 图层操作(1)创建图层相关推荐
- c# cad 二次开发 类库 netload 图层操作、创建图层、删除图层、设置当前图层等
c# cad 二次开发 类库 netload 图层操作.创建图层.删除图层.设置当前图层等 using Autodesk.AutoCAD.ApplicationServices; using Auto ...
- cad 二次开发 插入图片_C#之CAD二次开发(2) 直线对象创建及添加
0. 前言 从本文开始就正式登上开往CAD二次开发幼儿园的大巴车了!你准备好了吗?车门已经焊死! 还有,本系列笔记是默认大家都有C#的基础的了.这个系列笔记是我自己学习CAD二次开发的一些记录,可能存 ...
- C++ ARX CAD二次开发实体操作
得到选中的实体,修改实体如等分线段 AcGeVector3d是点阵的集合,通过等分点的差集得到. 新的点可以通过点与点阵相差得到. static void ArxProject2partLine(vo ...
- CAD 二次开发 图层操作(3)取得指定图层下的所有对象id
对于CAD二次开发的人来说,可能需要对某一图层下的实体(点,线,面域,块,三维实体)进行不同的操作.下面的方法,即可实现获取指定图层名称下的所有实体ID. 输入参数为图层名称: 返回值为:对象主键集合 ...
- 关于objectArx /CAD二次开发中“属性块”操作
关于objectArx /CAD二次开发中"属性块"操作 属性块就是在图块上附加一些文字属性(Attribute),这些文字可以非常方便地修改.属性块被广泛应用在工程设计和机械设计 ...
- c# cad 二次开发 类库 CAD表格的操作,给CAD添加一个表格
c# cad 二次开发 类库 CAD表格的操作,给CAD添加一个表格 using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCA ...
- c# cad二次开发实现注记搜索跟扩展属性搜索,并点击即可定位到位置,添加了界面操作
c# cad二次开发实现注记搜索跟扩展属性搜索,并点击即可定位到位置,添加了界面操作 在这里插入图片描述 using Autodesk.AutoCAD.DatabaseServices; using ...
- 我的CAD二次开发程序中的操作excel的部分
这是我的CAD二次开发程序中的操作excel的部分,特此分享 using System; using System.Collections.Generic; using System.Text; us ...
- CAD二次开发C#.Net编程-CAD创建右键菜单
CAD二次开发&C#.Net编程-CAD创建右键菜单 private static ContextMenuExtension m_ContextMenu;//装载右键菜单public stat ...
最新文章
- mysql事务并发控制_mysql事务和多版本并发控制详解
- 对OCR文字识别软件进行自动分析和识别设置的教程
- 软件开发模式对比(瀑布、迭代、螺旋、敏捷)
- 在php中可以使用几种方法定义数组,PHP中数组定义的几种方法
- PowerDesigner16.5安装
- 为什么torch.nn.Linear的表达形式为y=xA^T+b而不是常见的y=Ax+b?
- LeetCode刷题(46)--Search in Rotated Array
- bae java乱码_BAE json 返回乱码。
- 如何在WebGL全景图上做标记
- Transact-SQL 语法约定
- 【图像加密】基于matlab Logistic混沌图像加密与解密【含Matlab源码 1216期】
- layer数据加载中,loading的显示
- Python实现泛微OA云桥未授权任意文件读取
- 三维地图Cesium加载天地图
- python 开机自动切换必应壁纸
- 视频教程-《信息学竞赛-C语言》 DAY30-清华尹成老师-C/C++
- c++ 实现贪吃蛇(含技术难点解析和完整代码)
- Matlab中set函数的使用
- 中华人民共和国数据安全法(全文)
- php字典遍历,OC中的遍历数组和字典
热门文章
- 实现顺序表各种基本运算的算法
- 南卡和OPPO蓝牙耳机哪个好用?高品质的蓝牙耳机测评
- 如何将台式计算机连接到WiFi,台式机怎么连接wifi?台式电脑连接无线网络的方法(图文)...
- Python(3)——Python基本图形绘制
- sqlite编辑器 linux,SQLite编辑器
- 作业成本法中的成本动因分析----by AMT 邓为民
- Testin云测如何成为传统企业转型升级的“X”因子?
- java cpu 占用率高_java实战CPU占用过高问题的排查及解决
- 怎么在视频上叠加字幕和Logo--技术实现2
- R forcast auto arima用法