AutoCAD .Net 使用 Database.ReadDwgFile 读取dwg文件而不显示文档窗口
来源:互联网 发布:华为软件 公司 编辑:程序博客网 时间:2024/06/14 21:55
我们常常会碰到需要读取外部的 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()); } } } }}
我在我本机上运行的结果
命令: READDWGFILETESTEntity: (140696770088080), Autodesk.AutoCAD.DatabaseServices.Line, 0, 红Entity: (140696770088096), Autodesk.AutoCAD.DatabaseServices.Circle, 0, BYLAYEREntity: (140696770088112), Autodesk.AutoCAD.DatabaseServices.Arc, 0, BYLAYEREntity: (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
阅读全文
0 0
- AutoCAD .Net 使用 Database.ReadDwgFile 读取dwg文件而不显示文档窗口
- 在Winform窗体中显示AutoCAD文件(dwg文件)
- ObjectDBX技术: 脱离AutoCAD处理dwg文件(NET 实现)
- AutoCAD .Net 在dwg文件中存储自定义数据
- 使用CadLib实现CAD(dxf、dwg格式)文件的读取和显示
- AutoCAD文档03——常见问题03.打开一个DWG文件提示缺少SHX
- CAD Import .NET支持AutoCAD DWG 2013
- C#读取DWG文件
- 用flex 查看autocad的dwg文件
- AltiumDesigner导入AutoCAD文件DXF,DWG格式
- 关于AutoCAD的dwg文件操作学习
- C#.NET 窗口打开shp和dwg格式的文件
- C#读取DWG文件方法
- AUTOCAD的dwg文件如何转换为pdf文件?
- C# 实现预览dwg文件完整源代码(无需autocad环境)
- AUTOCAD的DWG图纸怎么转换成PDF文件
- Free Dwg Viewer-免费的AutoCAD DWG/DWF/DXF文件查看器
- 使用Visual Studio编译器编写程序时不显示窗口或窗口一闪而逝的解决方法
- 外排序
- java各种后缀邮件勒索病毒文件解密工具解密方法---达康勒索病毒解密中心15169121444
- C# 利用VS自带的WSDL工具生成WebService服务类
- hdu5729思维~~~
- 编译Android环境下Ffmpeg命令行
- AutoCAD .Net 使用 Database.ReadDwgFile 读取dwg文件而不显示文档窗口
- 命令执行下一行代码
- Swift
- [Linux] pip安装python-mysql时报 mysql_config not found pip mysqldb
- HTML+css 个人学习笔记
- 小波变换
- NOIP2015 运输计划 二分答案+Tarjan LCA+树上差分
- 线程--猜数字
- 考题篇(5.4) NSE4 03. 防火墙策略 ❀ 飞塔 (Fortinet) 网络安全专家