乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 61|回复: 4

请问一下VLAX-Add-Cmd的用法?

[复制链接]

6

主题

18

帖子

2

银币

初来乍到

Rank: 1

铜币
42
发表于 2004-7-30 20:39:00 | 显示全部楼层 |阅读模式
请问一下这个命令怎么使用,特别是命令中的第二个参数应该指的是什么,最好能举个例子,谢谢!
回复

使用道具 举报

14

主题

46

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
102
发表于 2004-7-30 20:51:00 | 显示全部楼层
to register the command correctly to the AutoCAD command stack
直接把你设定的函数作为cad的指令使用.
vlax-add-cmd 变量名        autoLISP里的符号(简写) [默认值,一个整数]
0--acrx_cmd_modal 同名函数存在时不能调用
1--acrx_cmd_transparent同名函数存在时可调用
回复

使用道具 举报

8

主题

46

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
78
发表于 2004-7-30 22:42:00 | 显示全部楼层
(vlax-add-cmd global-name func-sym [local-name cmd-flags])
功能
                                         将命令添加到 AutoCAD 内置命令集中
 
说明
[B]
1)使用 vlax-add-cmd 可以将函数定义为 AutoCAD 命令,而无需在函数名中使用 c: 前缀。
2)使用 vlax-add-cmd 可以定义透明 AutoLISP 命令,而 c: 函数,是不可能实现的。
3)vlax-add-cmd 函数使某个 AutoLISP 函数在当前 AutoCAD 任务中作为 ObjectARX 类型的命令,在 AutoCAD 命令行提示中使用。
4)vlax-add-cmd 函数提供了对 ObjectARX acedRegCmds 宏的访问,从而提供了一个到 ObjectARX 系统 AcEdCommandStack 对象的指针。
5)vlax-add-cmd 函数自动将命令指定到命令组。当文档名称空间发出命令时,vlax-add-cmd 将命令添加到组 doc-ID。doc-ID 是标识文档的十六进制值。当独立名称空间 VLX 发出命令时,vlax-add-cmd 将命令添加到组 VLC-Ddoc-ID:VLX-name。这里 VLX-name 是发出 vlax-add-cmd.的应用程序名。
6)不能使用 vlax-add-cmd 显露创建反应器对象的函数,也不能用它来显露反应器的回调函数。
7)参数 global-name 为字符串。
8)参数 func-sym 为符号,指定不带参数的 AutoLISP 函数。
9)参数 local-name 为字符串(默认值为 global-name)。
10)cmd-flags 为整数型(默认值为 ACRX_CMD_MODAL + ACRX_CMD_REDRAW)。
                 主要标志有:
                                                 ACRX_CMD_MODAL (0)         在使用其他命令时不能调用该命令。
                                                 ACRX_CMD_TRANSPARENT (1)         在使用其他命令时可以调用该命令。
                 二级标志有:
                                                 ACRX_CMD_USEPICKSET (2)         检索选择优先集时,在 AutoCAD 中清除设置。命令能够获取                                                                                                 优先集,但不能检索或设置夹点。
                                                 ACRX_CMD_REDRAW (4)         检索选择优先集或夹点集时,不将它们从 AutoCAD 中清除。命令可获取优先集和夹点集。
11)若同时设置了 ACRX_CMD_USEPICKSET 和 ACRX_CMD_REDRAW,那么效果和仅设置 ACRX_CMD_REDRAW 一样。
12)关于标志的详细信息,请参见 ObjectARX Reference 手册中的“Command Stack”。
返回值:
如果成功则返回 global-name 参数。如果 acedRegCmds->addCommand(...) 返回错误条件,则函数返回 nil。[/B]
范例
[B]
下例中的 hello-autocad 函数没有 c: 前缀,但 vlax-add-cmd 将其作为 ObjectARX 类型的命令显示在 AutoCAD 命令行提示:
_$ (defun hello-autocad () (princ "hello Visual LISP"))
HELLO-AUTOCAD
_$ (vlax-add-cmd "hello Visual LISP" 'hello Visual LISP)
"hello Visual LISP"
*************************************
我看到的关于此函数的示例,都是这个hello-autocad
哪位高手贴一个其他的实例,最好是透明命令。[/B]
回复

使用道具 举报

6

主题

18

帖子

2

银币

初来乍到

Rank: 1

铜币
42
发表于 2004-7-31 08:34:00 | 显示全部楼层
还是不明不白啊,哪位高手有更好的例子,最好能够详细一点的。小弟先谢了!
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-7-31 09:43:00 | 显示全部楼层
3楼的有那么详细的函数介绍,后面还跟了例子,不知道还能详细到哪儿去?????
TO 3楼,你的的帮助中就有你要的了,注意cmd-flags参数的介绍
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-8-19 07:05 , Processed in 2.593916 second(s), 62 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表