第十章 使用名称空间 (三) 名称空间函数(2)
名称空间函数(2)(vl-load-all filename)
在同一时间内加载命名的VLX文件到所有打开的文档中。它还会加载那些在同一AutoCAD应用程序会话中后续打开的任何文档中。
参数:
Filename 符号或字符串,代表有效的文件名。
(vl-propagate ‘symbol)
在AutoCAD应用程序名称空间中复制符号和与其相关的值到所有打开的文档中去,以及在同一AutoCAD应用程序会话中后续打开的任何文档中。
参数:
Symbol 一个引用符号的名称。
(vl-bb-set ‘symbol)
张贴符号及其相关的值到黑板名称空间。黑板名称空间是AcadApplication名称空间的一部分,它可被所有在Documents集合中打开的文件访问。这提供了与Windows粘贴板相似的功能,不过它只用于张贴和取回LISP符号而已。
参数:
Symbol 一个引用符号的名称。
(vl-bb-ref ‘symbol)
从黑板名称空间取回符号及其相关的值。
参数:
Symbol 一个引用符号的名称。
(vl-list-exported-functions)
返回那些由任何已加载的VLX应用程序显露给文档名称空间的所有函数的表。
(vlax-add-cmd “globalname” ‘function [“localname” | flags])
将VLX应用程序中使用(defun)方式而未定义为C:的函数定义为命令行函数。你必须至少要指定globalname和function项。localname和flags项是可选的。你不能将(vlax-add-cmd)用于显露那些创建反应器对象或充当反应器回调的函数显示为命令。如果成功返回globalname值,不成功则返回nil。
推荐从独立名称空间VLX使用vlax-add-cmd函数。然后使用APPLOAD命令明确加载VLX,这样比将LISP文件放到启动组好。
参数:
GlobalName 字符串,在命令提示符中指定的命令名称。
Function 代表函数名称的引用符号。
LocalName (可选项) VLX应用程序名称空间内部的命令名称。如果省略,默认为GobalName。
Flags (可选项)修改关于透明、pickset和pickfirst等项命令行为。
主要标志选项:
ACRX_CMD_MODAL (0) 在使用其他命令时不能调用该命令。
ACRX_CMD_TRANSPARENT (1) 在使用其他命令时可以调用该命令。
二级标志选项:
ACRX_CMD_USEPICKSET (2) 检索选择优先集时,在 AutoCAD 中清除设置。命令能够获取优先集,但不能检索或设置夹点。
ACRX_CMD_REDRAW (4) 检索选择优先集或夹点集时,不将它们从 AutoCAD 中清除。命令可获取优先集和夹点集。
如果同时设置了 ACRX_CMD_USEPICKSET 和 ACRX_CMD_REDRAW,则效果和仅设置 ACRX_CMD_REDRAW 一样。关于标志的详细信息,请参见 《ObjectARX 参考手册》中的“Command Stack”。
示例:
在Transparent.VLX中定义并加载到AutoCAD中的函数:
(vl-load-com)
(vl-doc-export ‘example1)
(defun example1 ()
(princ “\这是一个透明函数的示例。”)
(princ)
)
(vlax-add-cmd “example1” ‘example1 “example1” ACRX_CMD_TRANSPARENT)
(princ)
命令: LINE
指定第一点: ‘EXAMPLE1
这是一个透明函数的示例。
重新回到LINE命令。
指定第一点:
(vlax-remove-cmd “globalname”)
删除之前用(vlax-add-cmd)定义的命令定义。函数本身并不受影响,但是命令提示符接口从命令组中被删除了。
参数:
GlobalName 字符串,指要删除的命令名称。
示例:
(vlax-remove-cmd “example1”)
T
(vlax-remove-cmd “example2”)
nil
(vl-acad-defun ‘function)
使 (defun)的LISP函数能作为C:函数给ObjectARX应用程序调用。
这使函数可以经由ObjectARX应用程序访问。
参数:
Function 代表函数名称的引用符号。
示例:
(vl-acad-defun ‘example1)
(vl-acad-undefun ‘function)
取消一个之前用(vl-acad-defun)函数显露的命令。如果成功则返回T,否则返回nil。
参数:
Function 代表函数名称的引用符号。
示例:
(vl-acad-undefun ‘example1”)
T
http://bbs.mjtd.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 明经通道的微博 继续跟进! 还得继续学习啊,跟不上趟了 又学到些东西了,内容太少,希望再增加,例子最重要 学习学习!! 内容太少,再多点就好了
页:
[1]