1 PromptSelectionOptions selectionOpZDH = new PromptSelectionOptions();
  2                     selectionOpZDH.MessageForAdding = "请选择展点号和高程点:";
  3
  4                     //根据过滤器来选
  5                     TypedValue[] filListZDH = new TypedValue[]{
  6                     new TypedValue((int)DxfCode.Operator, "<OR"),
  7                      new TypedValue((int)DxfCode.Operator, "<AND"),
  8                      new TypedValue((int)DxfCode.Start, "Insert"),
  9                     new TypedValue((int)DxfCode.LayerName, "GCD"),
 10                     new TypedValue((int)DxfCode.Operator, "AND>"),
 11                     new TypedValue((int)DxfCode.Operator, "<AND"),
 12                     new TypedValue((int)DxfCode.Start, "Text"),
 13                     new TypedValue((int)DxfCode.LayerName, "ZDH"),
 14                     new TypedValue((int)DxfCode.Operator, "AND>"),
 15                     new TypedValue((int)DxfCode.Operator, "OR>")};
 16
 17                     SelectionFilter filterZDH = new SelectionFilter(filListZDH);
 18
 19                     PromptSelectionResult ssResZDH = ed.GetSelection(selectionOpZDH, filterZDH);
 20
 21
 22                     if (ssResZDH.Status == PromptStatus.OK)
 23                     {
 24                         SelectionSet ssZDH = ssResZDH.Value;
 25                         int nCount = ssZDH.Count;
 26                         ObjectId[] oID = ssZDH.GetObjectIds();//通过ID对实体进行操作
 27
 28                         Entity ent;
 29
 30                         //获得块表记录-图纸空间,打印布局
 31                         //BlockTableRecord btr=(BlockTableRecord )trans.GetObject(bt[BlockTableRecord.PaperSpace],OpenMode.ForWrite);
 32
 33                         //ed.WriteMessage("nCount:" + nCount);
 34
 35                         // foreach (ObjectId id in oID)
 36                         for (int i = 0; i < nCount; i++)
 37                         {
 38                             ent = (Entity)trans.GetObject(oID[i], OpenMode.ForRead);
 39
 40
 41                             /*switch (ent.GetType().ToString())
 42                             {
 43                                 //展点号
 44                                 case "DBText":
 45                                     DBText dbtxt = (DBText)ent;
 46                                     gcdZDH.GcdX = dbtxt.Position.X;
 47                                     gcdZDH.GcdY = dbtxt.Position.Y;
 48                                     gcdZDH.GcdH = dbtxt.Position.Z;
 49                                     gcdZDH.GcdSCDH = dbtxt.TextString;
 50                                     zdhDic.Add(i, gcdZDH);
 51                                     strZDH += "展点号:" + dbtxt.TextString + "其坐标为:" + dbtxt.Position.ToString() + "\r\n";
 52                                     break;
 53                                 //高程点
 54                                 case "BlockReference":
 55                                     BlockReference bent = (BlockReference)ent;
 56                                     gcd.GcdX = bent.Position.X;
 57                                     gcd.GcdY = bent.Position.Y;
 58                                     gcd.GcdH = bent.Position.Z;
 59                                     gcd.GcdSCDH = i.ToString();
 60                                     gcdDic.Add(i, gcd);
 61                                     strZDH += "高程点Postion:" + bent.Position.ToString() + "\r\n";
 62                                     break;
 63                                 default:
 64                                     break;
 65
 66                             }
 67                              */
 68
 69                             /*
 70                             if (ent is MText)
 71                             {
 72                                 MText mtx = ent as MText;
 73                                 ed.WriteMessage("展点号的坐标为:" + mtx.Location.ToString());
 74                             }
 75                             else if (ent.GetType() == typeof(MText))
 76                             {
 77                                 MText mtxt = (MText)ent;
 78                                 ed.WriteMessage("展点号的坐标为:" + mtxt.Location.ToString());
 79                             }
 80                              */
 81
 82                             //展点号
 83                             if (ent.GetType() == typeof(DBText))
 84                             {
 85                                 GCD gcdZDH = new GCD();
 86                                 DBText dbtxt = (DBText)ent;
 87                                 //ed.WriteMessage("展点号:" + dbtxt.TextString + "其坐标为:" + dbtxt.Position.ToString());
 88                                 gcdZDH.GcdX = dbtxt.Position.X;
 89                                 gcdZDH.GcdY = dbtxt.Position.Y;
 90                                 gcdZDH.GcdH = dbtxt.Position.Z;
 91                                 gcdZDH.GcdSCDH = "ZDH___" + dbtxt.TextString;
 92
 93                                 // strZDH += gcdZDH.GcdSCDH.ToString() + "展点号:"+i + dbtxt.TextString + "其坐标为:" + dbtxt.Position.ToString() + "\r\n";
 94                                 //zdhDic.Add(i, gcdZDH);
 95                                 zdhDic.Add(gcdZDH);
 96
 97
 98                             }
 99
100
101                              /*//展点号中心点
102                              else if (ent.GetType() == typeof(DBPoint))
103                              {
104                                  DBPoint dbp = (DBPoint)ent;
105                                  ed.WriteMessage("展点号中心点的坐标:" + dbp.Position.ToString());
106                                  strZDH +="展点号中心点的坐标:" +dbp.Position.X + "   " + dbp.Position.Y + "  " + dbp.Position.Z;
107                                  strZDH += "\r\n";
108                              }
109                               */
110
111
112                                 //高程点是个块
113                             else if (ent.GetType() == typeof(BlockReference))
114                             {
115                                 GCD gcd = new GCD();
116                                 BlockReference bent = (BlockReference)ent;
117
118                                 // ed.WriteMessage("高程点Postion:" + bent.Position.ToString());
119
120                                 //ed.WriteMessage("高程点的坐标为:" + ent.GeometricExtents.MaxPoint.ToString() + ent.GeometricExtents.MinPoint.ToString());
121                                 //strZDH += ent.GeometricExtents.MaxPoint.ToString() + "\r\n"+ent.GeometricExtents.MinPoint .ToString();
122
123
124
125                                 gcd.GcdX = bent.Position.X;
126                                 gcd.GcdY = bent.Position.Y;
127                                 gcd.GcdH = bent.Position.Z;
128                                 // gcd.GcdSCDH = i.ToString();
129                                 gcd.GcdSCDH = "---";
130                                 // strZDH += gcd.GcdSCDH.ToString() + "高程点Postion:"+i + bent.Position.ToString() + "\r\n";
131                                 // gcdDic.Add(i, gcd);
132                                 //gcdDic.Add(i, gcd);//将高程点和展点号放在一个字典中
133                                 gcdDic.Add(gcd);
134                             }
135
136                         }

转载于:https://www.cnblogs.com/lionmxs/articles/10096008.html

CAD 开发 过滤器 , 选择集相关推荐

  1. CAD开发——AcadSelectionSet 选择集

    1. 定义一个永不重复的时间变量 Private Declare Sub GetSystemTime Lib "kernel32" (lpSystemTime As SYSTEMT ...

  2. CAD二次开发之选择集过滤

    一.选择集过滤时的使用方式如下: Object 指使用SelectionSet这个方法适用的对象 1) object.Select Mode[, Point1][, Point2][, FilterT ...

  3. CAD中的选择集过滤----有条件选择AutoCAD实体

    转载自:http://www.cnblogs.com/jdmei520/articles/1326120.html 一.选择集过滤时的使用方式如下: Object 指使用SelectionSet这个方 ...

  4. CAD二次开发清除选择集

    ed.SetImpliedSelection(new ObjectId[] { });

  5. CAD中的选择集过滤----DXFCode(一)

    按数字次序排列的图元组码<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" / ...

  6. CAD net 设置选择集

    1.命令增加属性:CommandFlags.Redraw | CommandFlags.UsePickSet 2.using Autodesk.AutoCAD.Internal; 3.Utils.Se ...

  7. cad怎么选择一个对象打散vba_CADVBA中的选择集过滤.doc

    CAD中的选择集过滤 一.选择集过滤时的使用方式如下: Object 指使用SelectionSet这个方法适用的对象 1)????? object.Select Mode[, Point1][, P ...

  8. jQuery——入门基础(获取元素、样式、属性,选择集、过滤器、样式类)

    目录 Jquery的加载方法 获取元素 操作样式和属性 选择集和过滤器 选择集转移 绑定常用事件 操作样式类名 Jquery的加载方法 (1)$(document).ready(function(){ ...

  9. CAD二次开发(c#)利用选择集获取标注尺寸

    1.目的 本文的目的是利用C#中选择集GetSelection函数得到CAD中标注尺寸 2.实现代码 using Autodesk.AutoCAD.ApplicationServices; using ...

最新文章

  1. 在Ubuntu 16.0.4.5 LTS上安装python 2.7版本的cv2模块
  2. OpenCV 4.0 Dis光流算法 运动检测
  3. MySQL 数据库linux系统下修改配置文件设置mysql是否大小写敏感实例演示
  4. python---memcache使用操作
  5. axure 如何设置选项联动_Axure教程|用中继器做信息流,高仿人人都是产品经理网...
  6. 2012年最后一天,终于盼到公司发报卡了
  7. 游戏开发需要具备哪些技术_短视频 SDK 开发 (一) 开发一款短视频 SDK 需要具备哪些知识?...
  8. Java学习:类的封装、继承和多态
  9. 可以使用中文作为变量名_次氯酸可以作为伤口消毒使用吗?
  10. markdown UML图
  11. 设计psd分层素材模板|家居海报设计思路!
  12. Android获取所在城市坐标及城市信息(逆地理位置编码)
  13. Discuz! ML远程代码执行(CVE-2019-13956)
  14. Android smali语法
  15. ROBOMASTER机甲大师赛视觉组学习方案
  16. react上拉加载更多
  17. 燕山大学——软件用户界面设计(五)UI架构
  18. 2019年个人暑期健身计划和执行结果:跑步250公里,体重减少5.5公斤,顺利完成
  19. 2. Vmware vCenter部署
  20. MySQL数据库视频教程之扛得住的MySQL数据库架构

热门文章

  1. linux基础及命令详细教学
  2. 网络抓包调试神器Charles-proxy使用方法,网络代理:HTTP调试工具Charles Proxy
  3. php添加字段,zblog php主题添加支持文章自定义字段功能
  4. TensorFlow1.8.0+cuda9.0+cudnn7.1.2
  5. Android:从简历到offer直通车,跳槽大厂必备宝典!
  6. 蓝绿大厂之争,国产手机逆袭除了自研芯片还能靠啥?
  7. 王老师讲解:SQL Server 2005数据库nolock的使用【来自Aisino_BBS】
  8. 电脑桌面两个计算机图标怎么删除,电脑桌面上出现好几个音量图标,还是重叠的,删也删不掉,怎么办...
  9. 分析称,《华尔街日报》夸大ShapeShift洗钱数额逾600万美元(下篇)
  10. Android车机 - CAN应用解决方案设计