请教高手怎么读写扩展记录啊?
本帖最后由 作者 于 2004-11-12 23:10:51 编辑请教高手怎么读写扩展记录啊?
比如CASS的地籍属性
回复
(defun c:wxdata ( / elist extdata newlist)<BR> (setq elist (entget (car (entsel))))<BR> (REGAPP "GCBH")(REGAPP "YHBH")<BR> (SETQ extdata<BR> (LIST (LIST -3 (LIST "GCBH"<BR> (CONS 1000 "扩展属性1")<BR> )<BR> (LIST "YHBH"<BR> (CONS 1000 "扩展属性2")<BR> )<BR> )<BR> )<BR> )<BR> (setq newlist (append elist extdata))<BR> (entmod newlist)<BR>)(defun c:rxdata ( / ename)<BR> (setq ename (car (entsel)))<BR> (setq elist (entget ename '("*")))<BR> (setq str1 (cdadr (cadr (assoc -3 elist))))<BR> (alert str1)<BR> (setq str2 (cdadr (caddr (assoc -3 elist))))<BR> (alert str2)<BR>) 我是说扩展记录XRecord 不是 扩展数据XData 论坛上有大把有关辞典的函数下载,请自行解决! 麻烦大侠看看数据再说,论坛上面的函数试了
没效果,在实体里面显示是字典. 帮助文件中有现成的例子,为什么不用?
---------以下摘自《帮助文件》
Xrecord 对象可用于存储和管理任意数据。它们由正常对象组码和 DXF 组码(非扩展数据组码)构成,支持的范围从 1 到 369。这种对象在概念上与扩展数据类似,但不受容量或顺序限制。 <BR>Xrecord 对象被设计为在 R13c0 到 R13c3 中不会有冲突。然而,如果读入到 AutoCAD 的 R13c4 中,则 xrecord 对象会消失。 <BR>下例中提供了创建和列举 xrecord 数据的方法。
(defun C:MAKEXRECORD( / xrec xname )<BR>; 创建 xrecord 的数据表<BR>(setq xrec '((0 . "XRECORD")(100 . "AcDbXrecord") <BR> (1 . "This is a test xrecord list")<BR> (10 1.0 2.0 0.0) (40 . 3.14159) (50 . 3.14159) <BR> (62 . 1) (70 . 180))<BR> )
; 调用 entmakex 来创建一个无所有者的 xrecord<BR>(setq xname (entmakex xrec))
; 向命名对象词典中增加新 xrecord<BR>(dictadd (namedobjdict) "XRECLIST" xname)
(princ)<BR>)
(defun C:LISTXRECORD ( / xlist )<BR>; 在命名对象词典中查找 xrecord<BR>(setq xlist (dictsearch (namedobjdict) "XRECLIST"))
; 打印输出 xrecord 的数据表<BR>(princ xlist)
(princ)
) 大侠看了我发的文件吗?
把JPG和DWG的属性对应就知道了
我知道基本属性是再扩展数据里面,能修改
但是下面扩展属性是在,对象的扩展记录里面,有个"cassdiji"里面,查到了
可是不知道怎么修改,麻烦帮我看看先 本帖最后由 作者 于 2004-11-18 11:42:20 编辑
你图中的那就是扩展数据,写和读的方法2楼已经给出程序了,可你却不认帐,非得说是XRecorder,,,希望你弄清楚你需要什么东西先... <A name=69387><FONT color=#000066><B>meflying</B></FONT></A>
你看了我的JPG图吗?
上面有一个快是“地藉基本属性”下面的是“地藉扩展属性”
“地藉基本属性”是在实体的扩展数据里面没错,可是“地藉扩展属性”像“区号”,“土地面积”等都是在扩展记录里面,而且是以“southdiji”命名的字典,我用上面的方法试了,查不出来,用ENTGET直接去360组得到的,麻烦在帮我看看咯 ,我不知道怎么修改,真的急用。谢谢 这是实体的360组<BR>((-1 . <Entity name: 4008d2b8>) (0 . "DICTIONARY") (330 . <BR><Entity name: 4008cd88>) (5 . "8D7") (100 . "AcDbDictionary") (280 . 1) (281 . <BR>1) (3 . "SOUTHDIJI") (360 . <Entity name: 4008d2c0>))
这就是属性<BR>((-1 . <Entity name: 4008d2c0>) (0 . "XRECORD") (5 . "8D8") (102 <BR>. "{ACAD_REACTORS") (330 . <Entity name: 4008d2b8>) (102 . "}") (330 . <Entity <BR>name: 4008d2b8>) (100 . "AcDbXrecord") (280 . 1) (1 . "01") (1 . "") (1 . "") <BR>(1 . "") (1 . "") (1 . "") (1 . "") (1 . "") (1 . "") (1 . "") (1 . "") (1 . <BR>"") (1 . "") (1 . "") (1 . "") (1 . "") (1 . "") (1 . "") (1 . "") (1 . "") (1 <BR>. "") (1 . "") (1 . "") (40 . 144.169) (40 . 0.0) (40 . 0.0) (70 . 1) (70 . 1) <BR>(70 . 1) (70 . 1))
(1 . "01")就是区号
页:
[1]
2