我们常常会碰到需要读取外部的 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文件而不显示文档窗口相关推荐

  1. C# 读取txt文件生成Word文档

    本文将以C#程序代码为例介绍如何来读取txt文件中的内容,生成Word文档.在编辑代码前,可参考如下代码环境进行配置: Visual Studio 2017 .Net Framework 4.6.1 ...

  2. C# AutoCAD二次开发: 读取DWG文件将全部实体变为一个块。

    读取DWG文件将全部实体变为一个块 将DWG文件中所有DBObject组成一个块, 如果DWG文件中有属性参照, 则属性变为块属性. 我刚开始学习不久.Net AutoCAD的二次开发, 所以记录在这 ...

  3. 读取.dwg文件“曲线救国”之读取.dxf

    简述 尝试并对比了很多种网上给的教程,总结下来读取.dwg文件很难,即使成功了,所消耗的时间成本也不值得.网上有相关的软件工具,可以直接将.dwg文件转换为.dxf文件,个(po)别(jie)的软件可 ...

  4. 读取DWG文件中的文本信息(CAD2004)

    还是那句话,工作需要,不然是不会研究这个的.也许有的人会遇到跟我一样的问题,有兴趣看看,可以节约点时间.运行时要引用CAD2004的COM,这种读取文本的方式并不好,需要机器上装有AUTOCAD200 ...

  5. python 读取jpg文件是yuv_Python读取YUV文件,并显示的方法

    今天小编就为大家分享一篇Python读取YUV文件,并显示的方法,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 Python读取YUV格式文件,并使用opencv显示的方法 open ...

  6. java访问本地文件_详解Java读取本地文件并显示在JSP文件中

    详解Java读取本地文件并显示在JSP文件中 当我们初学IMG标签时,我们知道通过设置img标签的src属性,能够在页面中显示想要展示的图片.其中src的值,可以是磁盘目录上的绝对,也可以是项目下的相 ...

  7. 使用vcglib库读取obj文件并显示(一或多个材质)

    <vcglib库的入坑体验(读取obj文件并显示)>一文不能显示obj的材质,这里提供一个: #include <......>using namespace std; usi ...

  8. labview如何读取gif文件并显示

    经常听到网友询问labview如何读取gif文件并显示,查找了下一个labview自带的函数确实不能读取,因为labview是面向工业测试的,gif文件属于IT行业,那么如果要用labview实现,我 ...

  9. python curl 保存文件_curl使用文档

    简介 在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具.它支持文件的上传和下载,是综合传输工具,但按传统,习惯称curl为下载工具. 语法 ...

最新文章

  1. Apache 启动提示undefined symbol: libiconv_open
  2. win7 64bit下最新Apahe2.4.18+php7.0.2+MySQL5.7.10配置
  3. 交换机用python定时备份
  4. Memetic Algorithm(文化基因算法)
  5. sklearn综合示例7:集成学习与随机森林
  6. CentOS+Nginx+Supervisor部署ASP.NET Core项目
  7. MTK 驱动(78)----MTK 平台查看eMMC和DDR的工作频率
  8. 【Android】Listview返回顶部,快速返回顶部的功能实现,详解代码。
  9. LAMP源码安装原理
  10. cartographer探秘第四章之代码解析(八) --- 生成地图
  11. ALTRUN 工具使用笔记
  12. tecplot无法处理高版本fluent导出的Ensight格式
  13. java的过滤器_java过滤器
  14. Android LocalServices解耦妙用: system_server进程中各个服务之间的连通器LocalServices
  15. 教育机构客户管理系统功能方案详解!
  16. 小米联合金山云发布“1KM边缘计算” 携手布局“云+边缘”新赛道
  17. 终于又可以用WLW了.
  18. XMind揭秘:汽车的世界
  19. The Tenth Of Word-Day
  20. 根据后序遍历和中序遍历建树的方法

热门文章

  1. 高压直流输电(HVDC)的最优潮流(OPF)(Matlab代码实现)
  2. jQuery获取div的id值
  3. 亚马逊云科技Serverless数据分析,助力猎豹移动构建更高性价比数据仓库
  4. 在deepin操作系统(深度操作系统)搭建java开发环境
  5. 工频交流耐压试验装置中试验变压器有何作用
  6. 云计算时代的一颗“明珠“:QuickOffice
  7. [ Redis10篇] 集群Cluster相关灵魂16问
  8. 使用coloc进行QTL数据的共定位分析
  9. 迅控为某县打造公安情报指挥中心
  10. Linux环境下安装Python解释器--生活有感