AutoCAD .Net 使用 Database.ReadDwgFile 读取dwg文件而不显示文档窗口
我们常常会碰到需要读取外部的 dwg 文件,而又不想在 AutoCAD 的文档窗口中显示。
AutoCAD .Net API 提供了 Database.ReadDwgFile 来实现。
我们首先需要构建一个 Database 对象。
public Database(bool buildDefaultDrawing, bool noDocument);
第一个参数必须传 false。
第二个参数根据需要,传 true、false 均可。
然后调用 Database.ReadDwgFile 方法。
最好紧接着调用 db.CloseInput(true); 关闭文件。
以下示例代码演示:
通过以上提到的方法读取 dwg 文件,并遍历获取模型空间中的图元信息。
[CommandMethod("ReadDwgFileTest")]
public static void ReadDwgFileTest()
{Document doc = Application.DocumentManager.MdiActiveDocument;using (Database db = new Database(false, true)){try{// 读取dwg文件string dwgFileFullPath = @"D:\WangYao\AutoCAD\workspace\AcadDotNet\TestFiles\test_001.dwg";db.ReadDwgFile(dwgFileFullPath,FileOpenMode.OpenForReadAndAllShare, false, "");db.CloseInput(true);}catch (System.Exception ex){doc.Editor.WriteMessage("\nUnable to read drawing file.");return;}using (Transaction tr = db.TransactionManager.StartTransaction()){// 模型空间BlockTable blkTbl = tr.GetObject(db.BlockTableId, OpenMode.ForRead)as BlockTable;BlockTableRecord modelSpace = tr.GetObject(blkTbl[BlockTableRecord.ModelSpace], OpenMode.ForRead)as BlockTableRecord;// 遍历模型空间foreach (ObjectId oid in modelSpace){DBObject dbobj = tr.GetObject(oid, OpenMode.ForRead);if (dbobj is Entity){Entity entity = dbobj as Entity;doc.Editor.WriteMessage("\nEntity: {0}, {1}, {2}, {3}",entity.Id, entity.GetType().ToString(), entity.Layer, entity.Color.ToString());}}}}
}
我在我本机上运行的结果
命令: READDWGFILETEST
Entity: (140696770088080), Autodesk.AutoCAD.DatabaseServices.Line, 0, 红
Entity: (140696770088096), Autodesk.AutoCAD.DatabaseServices.Circle, 0, BYLAYER
Entity: (140696770088112), Autodesk.AutoCAD.DatabaseServices.Arc, 0, BYLAYER
Entity: (140696770088128), Autodesk.AutoCAD.DatabaseServices.Polyline, 0, 绿
参考文章
Accessing DWG files not open in the AutoCAD editor using .NET
AutoCAD .NET: Read DWG Into Memory Using Database.ReadDwgFile
AutoCAD .Net 使用 Database.ReadDwgFile 读取dwg文件而不显示文档窗口相关推荐
- C# 读取txt文件生成Word文档
本文将以C#程序代码为例介绍如何来读取txt文件中的内容,生成Word文档.在编辑代码前,可参考如下代码环境进行配置: Visual Studio 2017 .Net Framework 4.6.1 ...
- C# AutoCAD二次开发: 读取DWG文件将全部实体变为一个块。
读取DWG文件将全部实体变为一个块 将DWG文件中所有DBObject组成一个块, 如果DWG文件中有属性参照, 则属性变为块属性. 我刚开始学习不久.Net AutoCAD的二次开发, 所以记录在这 ...
- 读取.dwg文件“曲线救国”之读取.dxf
简述 尝试并对比了很多种网上给的教程,总结下来读取.dwg文件很难,即使成功了,所消耗的时间成本也不值得.网上有相关的软件工具,可以直接将.dwg文件转换为.dxf文件,个(po)别(jie)的软件可 ...
- 读取DWG文件中的文本信息(CAD2004)
还是那句话,工作需要,不然是不会研究这个的.也许有的人会遇到跟我一样的问题,有兴趣看看,可以节约点时间.运行时要引用CAD2004的COM,这种读取文本的方式并不好,需要机器上装有AUTOCAD200 ...
- python 读取jpg文件是yuv_Python读取YUV文件,并显示的方法
今天小编就为大家分享一篇Python读取YUV文件,并显示的方法,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 Python读取YUV格式文件,并使用opencv显示的方法 open ...
- java访问本地文件_详解Java读取本地文件并显示在JSP文件中
详解Java读取本地文件并显示在JSP文件中 当我们初学IMG标签时,我们知道通过设置img标签的src属性,能够在页面中显示想要展示的图片.其中src的值,可以是磁盘目录上的绝对,也可以是项目下的相 ...
- 使用vcglib库读取obj文件并显示(一或多个材质)
<vcglib库的入坑体验(读取obj文件并显示)>一文不能显示obj的材质,这里提供一个: #include <......>using namespace std; usi ...
- labview如何读取gif文件并显示
经常听到网友询问labview如何读取gif文件并显示,查找了下一个labview自带的函数确实不能读取,因为labview是面向工业测试的,gif文件属于IT行业,那么如果要用labview实现,我 ...
- python curl 保存文件_curl使用文档
简介 在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具.它支持文件的上传和下载,是综合传输工具,但按传统,习惯称curl为下载工具. 语法 ...
最新文章
- Apache 启动提示undefined symbol: libiconv_open
- win7 64bit下最新Apahe2.4.18+php7.0.2+MySQL5.7.10配置
- 交换机用python定时备份
- Memetic Algorithm(文化基因算法)
- sklearn综合示例7:集成学习与随机森林
- CentOS+Nginx+Supervisor部署ASP.NET Core项目
- MTK 驱动(78)----MTK 平台查看eMMC和DDR的工作频率
- 【Android】Listview返回顶部,快速返回顶部的功能实现,详解代码。
- LAMP源码安装原理
- cartographer探秘第四章之代码解析(八) --- 生成地图
- ALTRUN 工具使用笔记
- tecplot无法处理高版本fluent导出的Ensight格式
- java的过滤器_java过滤器
- Android LocalServices解耦妙用: system_server进程中各个服务之间的连通器LocalServices
- 教育机构客户管理系统功能方案详解!
- 小米联合金山云发布“1KM边缘计算” 携手布局“云+边缘”新赛道
- 终于又可以用WLW了.
- XMind揭秘:汽车的世界
- The Tenth Of Word-Day
- 根据后序遍历和中序遍历建树的方法
热门文章
- 高压直流输电(HVDC)的最优潮流(OPF)(Matlab代码实现)
- jQuery获取div的id值
- 亚马逊云科技Serverless数据分析,助力猎豹移动构建更高性价比数据仓库
- 在deepin操作系统(深度操作系统)搭建java开发环境
- 工频交流耐压试验装置中试验变压器有何作用
- 云计算时代的一颗“明珠“:QuickOffice
- [ Redis10篇] 集群Cluster相关灵魂16问
- 使用coloc进行QTL数据的共定位分析
- 迅控为某县打造公安情报指挥中心
- Linux环境下安装Python解释器--生活有感