/// <summary>/// 按块选择/// </summary>public void SelectionBlock(){// 1) Database Get, Document, Editor.Document doc = Application.DocumentManager.MdiActiveDocument;Database db = doc.Database;Editor ed = doc.Editor;SetFocus(doc.Window.Handle);PromptEntityResult per = ed.GetEntity("请选择一个块");using (DocumentLock docLock = doc.LockDocument()){// 2) Using Transactionusing (Transaction trans = db.TransactionManager.StartTransaction()){if (per.Status == PromptStatus.OK){BlockTableRecord btr = null;if (trans.GetObject(per.ObjectId, OpenMode.ForRead) is BlockReference){BlockReference blkRef = (BlockReference)trans.GetObject(per.ObjectId, OpenMode.ForRead);btr = (BlockTableRecord)trans.GetObject(blkRef.BlockTableRecord, OpenMode.ForRead);}else{ed.WriteMessage("\n\n" + "你选择的不是图块,请选择的图块再统计:" + "\n");return;}//ed.WriteMessage("\n\n" + btr.Name + "\n");var dbDBEntity = db.GetEntsInDatabase<BlockReference>();var objs = (from t in dbDBEntitywhere ((BlockTableRecord)trans.GetObject(((BlockReference)trans.GetObject(t.ObjectId, OpenMode.ForRead)).BlockTableRecord, OpenMode.ForRead)).Name.Equals(btr.Name)select t);if (objs != null){ed.SetImpliedSelection(objs.Select(en => en.ObjectId).ToArray());}//System.Windows.Forms.MessageBox.Show(btr.Name + " -----> 共计" + objs.Count().ToString() + "个");ed.WriteMessage("\n\n" + btr.Name + " -----> 共计" + objs.Count().ToString() + "个\n");}trans.Commit();}}//MainUI.Instance.Visibility = System.Windows.Visibility.Visible;}

C# 按块选择 autoCAD二次开发相关推荐

  1. AutoCAD 二次开发语言的选择

    因为某些功能的原因,一部份VBA的用户最终选择了NET,又因为某些功能的原因,一部份NET的用户最终选择了C++.最终这部份业余用户走上了专业的二次开发之路,而脱离了原来的专业. 来自 一个CAD群叫 ...

  2. 基于C#的AutoCAD二次开发之块操作

    基于C#的AutoCAD二次开发之块操作 什么是块? 块由多个在逻辑上相关的图形对象所定义的整体. 块的优点有哪些 统一作业标准.提高作业效率 压缩图形文件 便于修改和维护 块的分类 块的分类 简单块 ...

  3. 基于C#的AutoCAD二次开发之获取用户输入信息、选择集、访问CAD内部命令

    基于C#的AutoCAD二次开发之获取用户输入信息.选择集.访问CAD内部命令 在CAD创建图形对象时,经常需要和用户进行交互,例如:直线创建时需要用户输入起点和终点(或长度)信息,复制对象时需要指定 ...

  4. autocad型源代码_VB与AUTOCAD二次开发源代码包

    在发个VB与AUTOCAD二次开发源代码包,包括以下内容: 在学校的话,叫计算机辅助设计 第一章 VB开发AotoCAD基础知识 第一节 欢迎进入VB开发AUTOCAD的精彩世界 第二节 VB 开发 ...

  5. cass二次开发vba和lisp_基于VBA的AutoCAD二次开发及应用实例

    1引言本文引用地址:http://www.eepw.com.cn/article/190993.htm AutOCAD2005是AutOdesk公司的系列产品,该软件从其使用和设计思路上都秉承了工程制 ...

  6. python能二次开发cad么_2,手动创建CAD二次开发项目--AutoCAD二次开发(2020版)

    本项目使用手动创建,意为不使用SDK模板. 从Visual Studio的"文件"下拉菜单中,选择"新建"->"项目...". 在出现 ...

  7. 陈伯雄lisp_基于AutoLisp的AutoCAD二次开发自动生成系统图

    龙源期刊网 http://www.qikan.com.cn 基于 AutoLisp 的 AutoCAD 二次开发自动 生成系统图 作者:郎建山 金江 来源:<科技视界> 2013 年第 2 ...

  8. CAD自控lisp_基于AutoLisp的AutoCAD二次开发自动生成系统图

    基于 AutoLisp 的 AutoCAD 二次开发自动生成系统图 [摘 要]本文主要阐述了应用 autolisp 语言二次开发 autocad 自动生成系统图的实现方案. [关键词] autocad ...

  9. AutoCAD二次开发基础(三):船体型线绘制

    AutoCAD二次开发系列 文章目录 前言 一.绘制船体横剖线 二.绘制船体纵剖线 三.绘制船体肋骨型线图 前言 用程序生成船体型线图,无疑会提高开发效率. 一.绘制船体横剖线 任务:编制程序,根据水 ...

  10. 光伏自动化出图系统 基于C#的AutoCad二次开发

    CAD计算机软件的开发及应用,是工程公司提高设计工作效率,工程设计质量的重要手段.在光伏发电工程设计的过程中,需要进行一系列工程计算.目前在设计中设计的计算包括:高度角计算,最佳倾角计算,光伏阵列布置 ...

最新文章

  1. 看到这个图片,我想一定是哪里出了问题
  2. 2016.NET Core相关内容回顾
  3. android 百度开发论坛,Android 百度地图开发(一)
  4. php送数据找不到表,php – 数据源默认值中找不到的模型表
  5. grub shell 错误_各种情况GRUB损坏进不了系统的解决方案
  6. python赋予x新值_快速为 Python 字典设置新的值
  7. android4.0 锁屏实现(转)
  8. Eclipse中使用Gradle构建Java Web项目
  9. docker部署webapp的例子
  10. 数据结构—快速排序及其实现思想分而治之DC(思维导图版)
  11. 文件io(一)--unix环境高级编程读书笔记
  12. DML 数据操纵语言
  13. vue+node多条件查询 分页_SpringBoot+JPA框架分页、带条件查询等操作
  14. iconv的用法,'GBK'转'utf-8'
  15. php ajax 返回字符串而不是对象
  16. 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_04-新增页面-服务端-接口开发...
  17. 论黑产黑阔如何安全地转移赃款/洗钱?
  18. ​TCP和UDP的135、137、138、139、445端口的作用?​
  19. 随心而行----我与计算机的缘分
  20. 解决微信内置浏览器tel:手机号不能打电话的问题

热门文章

  1. 从Timer中学习优先队列的实现
  2. PackageManager的基本使用
  3. ios 现有项目接入Flutter (问题集中营--少走弯路)
  4. 用74ls00,74ls153,74ls151,74ls138设计三变量表决器
  5. 数学建模国赛latex写作模板
  6. 数据结构之平衡二叉树详解
  7. matlab画三维空间布朗运动,matlab绘制布朗运动的二维三维图.doc
  8. Linux超详细指令及其解析
  9. VLAN与Trunk的配置
  10. 聊天机器人 java_java实现自动回复聊天机器人