明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5110|回复: 27

[分享]在图中储存大量自定义数据的最简方法!

  [复制链接]
发表于 2009-1-12 13:16:00 | 显示全部楼层 |阅读模式
本文供初学者们探讨分享,也诚挚邀请高手们指点赐教!!

初始赋值:
(setq data '((1 . 1) (2 . 2) (3 . 3) (4 . 4) (5 . 5) (6 . 6) (7 . 7) (8 . 8) (9 . 9) (10 . 10)))

将数据(data)存入图中:
(vlax-ldata-put (namedobjdict) "data1" data)

取出数据:
(vlax-ldata-get (namedobjdict) "data1")

存取数据就是这么简单.这里的"data1"名称也可以是"data2", data-n...,数量不限,数据类型及容量也不限(资料上说可达2GB).

关闭图形再开,数据仍在.这样,我们就可以很方便的将自己想保存的任意数据随图保存了.

(保存一部<<西游记>>在图中如何?只要你用一个变量存储从.txt文件中读取到的文字,然后将这个变量存到图中就行了, 呵呵.)

当然,也可以这样:

(vlax-ldata-put "mydict" "data1" data)

这里的"mydict"这个名称也可以任意添加n个;data-n...也可以任意多个.vlax-ldata-put 函数自动在图中创建"mydict"词典,并将data存入"data1"中.

用这个检查数据:
(vlax-ldata-get "mydict" "data1")

再用这个看看:
(entget (namedobjdict))
可以看到词典中已经把"mydict"添加进去了(在表的最后).

用这个删除词典"mydict"中的"data1"项:
(vlax-ldata-delete "mydict" "data1")

将"mydict"词典从图形中彻底删除:
(DictRemove (namedobjdict) "mydict")

一点体会(请高手指点!):

1. vlax-ldata-put 往词典中存储数据时, 原有数据是会被新数据自动替换的.(?)

2. 用(vlax-ldata-put (namedobjdict) "data1" data)往词典中存储数据时,
数据确实被保存了,但是这个"data1"项到哪里去了呢?用(entget (namedobjdict))检查不出来啊??

3. 如果要为普通图元,比如一个圆,一条线,或一个图块上附着一个扩展词典以储存特定数据,那该如何实现呢?这个我不清楚!

4. 词典中储存的数据是否容量不限, 和XRECORD又有什么区别?

评分

参与人数 2明经币 +2 收起 理由
T_T + 1 赞一个!
革天明 + 1 赞一个!论坛这方面的资料还比较少

查看全部评分

发表于 2021-12-12 21:52:53 | 显示全部楼层
好            
 楼主| 发表于 2009-1-12 14:50:00 | 显示全部楼层

第3条我找到方法了

将数据(data)存入实体的扩展词典中
(同时为实体创建一个扩展词典):
(vlax-ldata-put (setq ent (car (entsel))) "data1" data)

取出数据:
(vlax-ldata-get ent "data1")

之所以用词典而不用xdata,是因为后者有16K的容量限制,而词典不限。应该是如此吧。

发表于 2009-1-18 20:11:00 | 显示全部楼层
好办法,学习一下,谢谢分享!
发表于 2011-7-17 00:22:32 | 显示全部楼层
好办法,学习一下,谢谢分享!
发表于 2011-7-17 01:18:51 | 显示全部楼层
回复 tyxdd 的帖子

用图元的句柄来标示比用图元名要好。因为图元的句柄是唯一的,不变的,图元名是可变的。
发表于 2011-7-17 05:57:44 | 显示全部楼层
用(dictsearch (namedobjdict) "mydict"),找"DATA1"也是类似的方法
发表于 2011-7-17 14:02:51 | 显示全部楼层
不錯的資料!!
用的上,先學習了
发表于 2011-7-17 18:03:20 | 显示全部楼层
我怀疑有人一个简单的dwg要好几百M,就是用来干这事儿了。
发表于 2012-5-2 18:12:15 | 显示全部楼层
CAD2010,存了2M的文本后,保存文件无响应~~~不知道咋回事
发表于 2012-5-4 06:41:29 来自手机 | 显示全部楼层
学习词典。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-15 01:53 , Processed in 0.223140 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表