AutoCAD .Net 在dwg文件中存储自定义数据
问题
我需要在 dwg 文件中存储一些信息,以额外描述图形文件并使它能够和其它软件程序集成。
请问怎样才能在 dwg 文件中写入自定义数据并读取?
回答
你可以使用 Named Object Dictionary (NOD, 中文名: 命名对象字典) 来存储自定义数据。
以下示例程序展示了如何在当前 dwg 文件中写入自定义数据并读取。
[CommandMethod("CAXDEV_WNOD")]
public void WriteToNOD()
{Document doc = Application.DocumentManager.MdiActiveDocument;Database db = doc.Database;using (Transaction tr = db.TransactionManager.StartTransaction()){// 命名对象字典DBDictionary nod = tr.GetObject(db.NamedObjectsDictionaryId,OpenMode.ForWrite) as DBDictionary;// 自定义数据Xrecord myXrecord = new Xrecord();myXrecord.Data = new ResultBuffer(new TypedValue((int)DxfCode.Int32, 520),new TypedValue((int)DxfCode.Text, "Hello www.caxdev.com"));// 往命名对象字典中存储自定义数据nod.SetAt("MyData", myXrecord);tr.AddNewlyCreatedDBObject(myXrecord, true);tr.Commit();}
}[CommandMethod("CAXDEV_RNOD")]
public void ReadNOD()
{Document doc = Application.DocumentManager.MdiActiveDocument;Database db = doc.Database;using (Transaction tr = db.TransactionManager.StartTransaction()){// 命名对象字典DBDictionary nod = tr.GetObject(db.NamedObjectsDictionaryId,OpenMode.ForWrite) as DBDictionary;// 查找自定义数据if (nod.Contains("MyData")){ObjectId myDataId = nod.GetAt("MyData");Xrecord myXrecord = tr.GetObject(myDataId, OpenMode.ForRead) as Xrecord;foreach (TypedValue tv in myXrecord.Data){doc.Editor.WriteMessage("type: {0}, value: {1}\n", tv.TypeCode, tv.Value);}}}
}
你可以把 NOD 看成是存储文档级别自定义数据的地方。
如果你需要为一些特定的图元存储一些关联数据,可以考虑使用扩展字典。
本篇文章翻译+加工自:
How can I store my custom information in a dwg file?
AutoCAD .Net 在dwg文件中存储自定义数据相关推荐
- Inventor文件中保存自定义数据 - 1
在一些工作流中,需要对文件本身附加一些数据,对最终用户不可见,便于下游的使用.Inventor API提供了三种方式: 1. iProperties 2. Attribute 3. IStorag ...
- Inventor文件中保存自定义数据 - 2
第二种方式是Attribute.我们叫做属性,和iPRoperties以示区别.很多Inventor对象都提供了添加属性的功能,包括文档.属性的操作也有大量文章,本文推荐两个材料: 第一是帮助文档.专 ...
- 如何使用python提取dwg文件中的坐标信息
如果要使用 Python 提取 DWG 文件中的坐标信息,你需要使用专业的 CAD 读取工具,例如 Autodesk AutoCAD.Teigha File Converter 等.这些工具可以将 D ...
- 读取DWG文件中的文本信息(CAD2004)
还是那句话,工作需要,不然是不会研究这个的.也许有的人会遇到跟我一样的问题,有兴趣看看,可以节约点时间.运行时要引用CAD2004的COM,这种读取文本的方式并不好,需要机器上装有AUTOCAD200 ...
- js html保存json,如何在json文件中存储jQuery或javascript变量?
我可以知道有没有机会将jquery变量保存在json文件中?提前致谢.如何在json文件中存储jQuery或javascript变量? 我: var image='/test/test.png'; 我 ...
- 集合中存储自定义对象源代码
集合中存储自定义对象: package attention;import java.util.ArrayList; import java.util.Collection; import java.u ...
- 本实例演示往TreeSet集合中存储自定义对象
1 package JiHe.Set; 2 3 import java.util.Iterator; 4 import java.util.TreeSet; 5 6 /* 7 * 本实例演示往Tree ...
- DWG文件中怎么插入jpg
DWG文件中怎么插入JPG,我们在进行DWG文件阅读的时候有的时候会需要在DWG文件中插入JPG,这个问题可是难倒了很多人,其实在DWG文件中插入JPG不是一件难的事情,只要我们用对软件就可以在DWG ...
- python在dwg文件中输入文字
你可以使用 Python 中的 ezdxf 库来在 dwg 文件中输入文字. 首先,安装 ezdxf 库: pipinstall ezdxf 然后,你可以使用以下代码在 dwg 文件中添加文字: im ...
最新文章
- Ubuntu 14.04 64位上安装Valgrind 3.13.0 操作步骤
- PowerDesigner与Rose详解教程
- python学习(1)
- 如何用产品思维找到意中人?
- Java集合框架总结(5)——Map接口的使用
- 968. Binary Tree Cameras 监控二叉树
- 深度学习笔记(49) 风格代价函数
- 数据:以太坊2.0合约24小时新增2.04万ETH
- android与ndk交互,NDK-JNI与Java的交互 hello-world
- Linux中DHCP主配置文件解析
- 不断网情况下,如何关闭红蜘蛛多媒体网络教室
- FLV无损转换MP4
- C++ 中如何区分std::endl、std::ends、std::flush的差异性
- jQuery 模态框
- maven.类包冲突解决案例
- matlab三个商人三个随从,商人们怎样安全过河 (附MATLAB程序完整)
- Android用命令行查看手机架构
- android aar 自动引入依赖
- adf被打开_HP Laserjet M1522nf 出现ADF门打开 是什么意思
- 去掉word页眉上横线的技巧
热门文章
- cd命令及逻辑图、文档的制作、IP-端口-协议基本概念学习
- 【人工智能】基于百度AI和Python编程的简单实现:通过QQ/Tim截图进行文本识别功能的分析实战详解——以获取百度文库付费内容为例
- Scala 函数式编程原理 第四课(Conditions and Value Definitions)
- layui上传文件时显示正在加载
- 蓝牙扫描 权限 BLUETOOTH,BLUETOOTH_ADMIN
- Android输入系统(三)——InputReader的加工类型和InputDispatcher的分发过程(基于Android 13)
- Java高性能高并发实战之页面优化技术(五)
- 局域网与广域网,以太网与点对点链路
- 决策树——三种基本算法
- flash和DDR的概念及解释