CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 文档中心

vlax-add-cmd (AutoLISP/ActiveX)

2023-1-7 11:13| 发布者: admin| 查看: 250| 评论: 0|来自: AutoCAD

摘要: 将命令添加到 AutoCAD 内置命令集

将命令添加到 AutoCAD 内置命令集

支持的平台:仅窗口

签名

(vlax-add-cmd global-name func-sym [local-name cmd-flags])
全局名称

类型:字符串

命令的全局名称。

func-sym

类型:子例程或符号

命名具有零个参数的 AutoLISP 函数的符号。

本地名称

类型:字符串

命令的本地名称(默认为全局名称)。

CMD 标志

类型:整数

数值(默认为 ACRX_CMD_MODAL + ACRX_CMD_REDRAW)

主要标志是

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 参考中的“命令堆栈”。

返回值

类型:字符串或零

全局名称参数(如果成功)。该函数返回 acedRegCmds->addCommand(...) 返回错误条件。nil

言论

可以将函数定义为 AutoCAD 命令,而无需在函数名称中使用c:前缀。您还可以定义一个透明的 AutoLISP 命令,这在c:function 中是不可能的。vlax-add-cmd

谨慎:不能在透明定义的函数中使用命令函数调用。这样做可能会导致 AutoCAD 意外关闭。vlax-add-cmd

该函数使 AutoLISP 函数在当前 AutoCAD 会话期间的 AutoCAD 命令提示下显示为 ObjectARX 样式的命令。该函数提供对 ObjectARX acedRegCmds 宏的访问,该宏提供指向 ObjectARX 系统 AcEdCommandStack 对象的指针。vlax-add-cmd

该函数会自动将命令分配给命令组。当从文档命名空间发出时,将命令添加到名为doc-ID 的组中;doc-ID是标识文档的十六进制值。如果从单独的命名空间 VLX 发出,则将命令添加到名为 VLC-Ddoc-IDVLX-name 的组中,其中VLX 名称是发出的应用程序的名称。vlax-add-cmdvlax-add-cmdvlax-add-cmdvlax-add-cmd

建议您使用来自单独命名空间 VLX 的函数。然后,应使用 AutoCAD APPLOAD 命令显式加载 VLX,而不是将其放在其中一个启动 LISP 文件中。vlax-add-cmd

注意:不能用于公开创建反应器对象或用作反应器回调的函数。vlax-add-cmd

例子

以下示例中的函数没有 c: 前缀,但在 AutoCAD 命令提示下使其显示为 ObjectARX 样式命令:hello-autocadvlax-add-cmd

(defun hello-autocad () (princ "hello Visual LISP"))
HELLO-AUTOCAD

(vlax-add-cmd "hello-autocad" 'hello-autocad)
"hello-autocad"

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-19 12:12

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部