AUTOCAD二次开发-----删除一个图层里面的所有对象
- private void Test()
- {
- // 获取当前文档和数据库
- Document acDoc = Application.DocumentManager.MdiActiveDocument;
- Database acCurDb = acDoc.Database;
- Editor ed = acDoc.Editor;
- //启动事务
- using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())
- {
- //使用选择过滤器定义选择集规则
- TypedValue[] typedValue = new TypedValue[1];
- //TestLayer为图层名字 DxfCode.LayerName为筛选类型 详情见下面的DXF组码
- typedValue.SetValue(new TypedValue((int)DxfCode.LayerName, "TestLayer"), 0);
- SelectionFilter filter = new SelectionFilter(typedValue);
- //根据条件 选择当前空间内所有未锁定及未冻结的对象。
- //从图形中选择对象有几种方式,详情见下表
- PromptSelectionResult result = ed.SelectAll(filter);
- // 如果提示状态OK,表示已选择到对象 反之则没有对象
- if (result.Status != PromptStatus.OK) { return; }
- SelectionSet acSSet = result.Value;
- // 遍历选择集内的对象
- foreach (ObjectId id in acSSet.GetObjectIds())
- {
- Entity hatchobj = acTrans.GetObject(id, OpenMode.ForWrite) as Entity;
- hatchobj.Erase();//删除
- }
- acTrans.Commit();
- }
- }
常见过滤器DXF组码:
DXF组码 | 过滤器类型 |
0 (或 DxfCode.Start) | 对象类型(字符串格式),例如“Line”、 “Circle”、 “Arc”等等 |
2 (或 DxfCode.BlockName) | 块名(字符串格式),插入引用的块名 |
8 (或 DxfCode.LayerName) | 图层名(字符串格式),例如“Layer 0” |
60 (或 DxfCode.Visibility) | 对象可见性(整型),0 = 可见, 1 = 不可见. |
62 (或 DxfCode.Color) |
颜色号(整型),0~256数字索引值。0代表随块 BYBLOCK, 256代表随层BYLAYER,负值表示图层关闭 了。 |
67 | 模型空间/图纸空间指示符(整型),0或忽略 = 模 型空间;1 = 图纸空间 |
从图形中选择对象的几种方式:
GetSelection :提示用户从屏幕拾取对象。
SelectAll :选择当前空间内所有未锁定及未冻结的对象。
SelectCrossingPolygon :选择由给定点定义的多边形内的所有对象以及与多边形相交的对象。多边形可以是任意形状,但不能与自己交叉或接触。
SelectCrossingWindow :选择由两个点定义的窗口内的对象以及与窗口相交的对象。
SelectFence :选择与选择围栏相交的所有对象。围栏选择与多边形选择类似,所不同的是围栏不是封闭的,围栏同样不能与自己相交。
SelectLast :选择当前空间中最后创建的那个对象。
SelectPrevious :选择前一个“选择对象:”提示符期间已选定的所有对象。
SelectWindow :选择完全框入由两个点定义的矩形内的所有对象。
SelectWindowPolygon :选择完全框入由点定义的多边形内的对象。多边形可以是任意形状,但不能与自己交叉或接触。
SelectAtPoint :选择通过给定点的对象,并将其放入活动选择集。
SelectByPolygon :选择围栏里面的对象,并将其添加到活动选择集。提示选择屏幕上的对象并遍历选择集
AUTOCAD二次开发-----删除一个图层里面的所有对象相关推荐
- UG\NX二次开发 删除所有图层类别 UF_OBJ_delete_object
文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介: 删除图层类别的函数,用 UF_OBJ_delete_object 是可以的. 代码: ...
- UG\NX二次开发 显示所有图层上所有的对象
文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介: 显示所有图层上所有的对象 代码: void UnblankAllObjectsOnA ...
- cass二次开发vba和lisp_基于VBA的AutoCAD二次开发及应用实例
1引言本文引用地址:http://www.eepw.com.cn/article/190993.htm AutOCAD2005是AutOdesk公司的系列产品,该软件从其使用和设计思路上都秉承了工程制 ...
- eps高程点和高程注记不符_利用AutoCAD二次开发实现地形图高程点与等高线错误自动查找...
原标题:利用AutoCAD二次开发实现地形图高程点与等高线错误自动查找 水土保持之点滴,关注后可查阅所有文章 来源:<测绘通报>2017年第5期 作者:刘洪.黄军胜 摘要:论述了数字地形图 ...
- autocad型源代码_VB与AUTOCAD二次开发源代码包
在发个VB与AUTOCAD二次开发源代码包,包括以下内容: 在学校的话,叫计算机辅助设计 第一章 VB开发AotoCAD基础知识 第一节 欢迎进入VB开发AUTOCAD的精彩世界 第二节 VB 开发 ...
- c# cad 二次开发 类库 netload 图层操作、创建图层、删除图层、设置当前图层等
c# cad 二次开发 类库 netload 图层操作.创建图层.删除图层.设置当前图层等 using Autodesk.AutoCAD.ApplicationServices; using Auto ...
- AutoCAD二次开发三种添加插件按钮的方法
在上一篇关于AutoCAD的文章中,我将很多关于CAD的博客相关资源进行了说明,这一篇文章我将介绍如何在AutoCAD中的ribbon中添加相应的按钮.就是下面这种按钮: PS:在开发中我们最好使用中 ...
- python能二次开发cad么_2,手动创建CAD二次开发项目--AutoCAD二次开发(2020版)
本项目使用手动创建,意为不使用SDK模板. 从Visual Studio的"文件"下拉菜单中,选择"新建"->"项目...". 在出现 ...
- lisp 梯形展开图_斜截圆柱件钣金展开图的AutoCAD二次开发
内容介绍 原文档由会员 刘瑞 发布 斜截圆柱件钣金展开图的AutoCAD二次开发 3.8万字符 70页 包括开题报告,论文,设计分析报告,程序代码,lsp及sld文件 摘 要 在国民经济各个部门的建设 ...
最新文章
- 四条使用Spring BeanUtils的总结
- C#泛型集合之Dictionaryk, v使用技巧
- int.class 与 Integer.class
- 新手必备: win10 系统下 VSCode+CMake+Clang+GCC 环境的搭建!
- 《ArcGIS Runtime SDK for Android开发笔记》——问题集:如何解决ArcGIS Runtime SDK for Android中文标注无法显示的问题(转载)...
- 由DB2分页想到的,关于JDBC ResultSet 处理大数据量
- copy 自定义对象
- Tyvj - 1305 单调队列优化dp
- pcs7组态虚拟机中的服务器,用虚拟机做PCS7时,无法设置固定的IP地址-工业支持中心-西门子中国...
- 数学之美——google大脑和人工神经网络
- python panda 库箱线图_Python Pandas 箱线图的实现
- 机器人开发--AGV控制系统
- Linux:面试常被问到的命令(持续更新)
- 许三多身上的职业精神
- pytorch入门教程(一):Tensor###tensor好好好####
- python大作业代码_爬虫大作业(示例代码)
- win10右键 发送到 选项消失解决办法
- 派大星python代码_一些简单的python例子
- matlab 重叠峰分解 算法,一种基于粒子群算法的光谱重叠峰分解方法与流程
- 如何由一名合格的电商运营过渡到电商运营总监角色