明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5287|回复: 5

第十章 使用名称空间 (三) 名称空间函数(2)

[复制链接]
发表于 2012-11-20 21:38 | 显示全部楼层 |阅读模式
名称空间函数(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



该贴已经同步到 明经通道的微博
发表于 2012-11-21 08:02 | 显示全部楼层
继续跟进!
发表于 2012-11-29 09:07 | 显示全部楼层
还得继续学习啊,跟不上趟了
发表于 2013-1-12 16:32 | 显示全部楼层
又学到些东西了,内容太少,希望再增加,例子最重要
发表于 2013-5-25 01:28 | 显示全部楼层
学习学习!!
发表于 2014-8-24 13:21 | 显示全部楼层
内容太少,再多点就好了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-28 23:01 , Processed in 0.247453 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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