可以使用函数定义新命令,也可以通过在函数名称前面加上 来定义新命令。defunc: 可以直接从 AutoCAD 命令提示符访问前缀的函数,并用于重新定义 AutoCAD 命令。c: 定义为命令的函数不应直接接受参数,而应使用其中一个函数获取命令的输入。getXXX 下面定义了一个名为 的函数。此函数显示一条简单的消息。HELLO (defun HELLO () (princ "\nHello world.") (princ)) HELLO 可以从 AutoCAD 命令提示符或 AutoLISP 程序发出函数。通过输入以下命令,可以从AutoCAD命令提示符调用该函数:HELLO 命令:(hello) 世界您好。 该函数必须用括号括起来,因为它未定义为命令。在AutoCAD Command提示符下输入不带括号的输入将返回以下错误消息:HELLOHELLO 未知命令“HELLO”。按 F1 寻求帮助。 在函数名称的前面添加 c: 会导致函数被声明为命令,然后可以在 AutoCAD 命令提示符下输入,而无需用括号括起来。例如:HELLO (defun C:HELLO () (princ "\nHello world.") (princ)) C:HELLO 虽然被声明为命令,但它也是一个 AutoLISP 函数。现在可以在AutoCAD命令提示符下输入该命令,如下所示:HELLO 命令:hello 世界您好。 该命令也可以透明地使用,因为它不会调用命令函数。在AutoCAD命令提示符下,可以执行以下操作:HELLO 命令:line 从点上说:“你好 世界您好。 从点: 如果将 AutoLISP 函数声明为命令,则可以通过用括号括起来将整个函数名称括起来,从 AutoLISP 程序调用该命令。例如: (c:hello) 注意:如果在 Windows 发行版中使用 Visual LISP 编辑器,则控制台窗口无法识别 AutoCAD 命令。必须用括号将函数名称括起来。
通常不能使用 AutoLISP 语句来响应来自 AutoLISP 实现的命令的提示。但是,如果您的 AutoLISP 例程使用该函数,则可以将任意键盘输入与某些函数一起使用。这允许 AutoLISP 实现的命令接受 AutoLISP 语句作为响应。此外,DIESEL 表达式返回的值可以对当前图形执行一些计算,并将这些值返回给 AutoLISP。initget 相关概念 |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2024-12-15 14:38
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.