在图形词典或对象中检索 LISP 数据
(vlax-ldata-get dict key [default-data] [private])
参数
dict
VLA 对象、AutoCAD 图形图元对象或指定全局词典的字符串。
key
字符串,指定词典关键字。
default-data
如果词典中没有匹配的关键字,则返回该 LISP 数据。
private
如果 private 的值非空,且从独立名称空间 VLX 调用 vlax-ldata-get,则 vlax-ldata-get 在 dict 中检索私有 LISP 数据。
如果指定了 private,则必须指定 default-data。可以将后者指定为 nil。
请注意,在独立名称空间 VLX 中,可以使用同样的 dict 和 key 参数同时存储私有和非私有变量。私有数据仅能在同一 VLX 中访问,而非私有数据可以被其他应用程序检索。
返回值
key 的值。
示例
在 Visual LISP 窗口输入下列命令:
_$ (vlax-ldata-put "mydict" "mykey" "Mumbo Dumbo")
"Mumbo Dumbo"
_$ (vlax-ldata-get "mydict" "mykey")
"Mumbo Dumbo"
_$ (vlax-ldata-put "mydict" "mykey" "Mumbo Dumbo")
"Mumbo Dumbo"
_$ (vlax-ldata-get "mydict" "mykey")
"Mumbo Dumbo"
(vl-doc-export 'ldataput)
(vl-doc-export 'ldataget)
(vl-doc-export 'ldataget-nilt)
(defun ldataput ()
(princ "This is a test of putting private ldata ")
(vlax-ldata-put "mydict" "mykey" "Mine! Mine! " T)
)
(defun ldataget ()
(vlax-ldata-get "mydict" "mykey")
)
(defun ldataget-nilt ()
(vlax-ldata-get "mydict" "mykey" nil T)
)
_$ (ldataput)
This is a test of putting private ldata
参考上面定义 ldataput 的代码。该函数存储了一个包含 "Mine! Mine!" 的字符串。
_$ (ldataget)
"Mumbo Dumbo"
请注意 ldataget 返回的数据并非 ldataput 存储的数据。这是因为 ldataget 在调用 vlax-ldata-get 时没有指定 private 参数。所以,ldataget 检索的数据是第 1 步中从 Visal LISP 控制台中调用 vlax-ldata-put 设置的数据。
_$ (ldataget-nilt)
"Mine! Mine! "
_$ (ldataget-nilt)
"Mine! Mine! "
这次返回由 ldataput 保存的私有数据,因为 ldataget-nilt 在调用 vlax-ldata-get.时指定了 private 参数。
_$ (vlax-ldata-get "mydict" "mykey" nil T)
"Mumbo Dumbo"
在从独立名称空间 VLX 中调用 vlax-ldata-get 时,忽略了 private 参数。对于指定的 dict 和 key,如果存在非私有数据(如本例所示),则检索非私有数据。
明经通道 版权所有 未经许可 不得传播 | 评论 |