![]() |
[分享]在图中储存大量自定义数据的最简方法!
[分享]在图中储存大量自定义数据的最简方法!
www.dimcax.com [分享]在图中储存大量自定义数据的最简方法!本文供初学者们探讨分享,也诚挚邀请高手们指点赐教!! 初始赋值: (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又有什么区别? d 第3条我找到方法了 将数据(data)存入实体的扩展词典中(同时为实体创建一个扩展词典): (vlax-ldata-put (setq ent (car (entsel))) "data1" data) 取出数据: (vlax-ldata-get ent "data1") 之所以用词典而不用xdata,是因为后者有16k的容量限制,而词典不限。应该是如此吧。 d 好办法,学习一下,谢谢分享! d |
所有的时间均为北京时间。 现在的时间是 05:58 AM. |