CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoLISP 开发指南

关于定义命令(AutoLISP)

2023-1-6 13:17| 发布者: admin| 查看: 2126| 评论: 0|来自: AutoCAD

摘要: 可以使用 defun 函数定义新命令,也可以在函数名称前面加上 c: 来定义新命令。

可以使用函数和通过在函数名称前面加上前缀来定义新命令。defunc:

前缀为前缀的函数可以直接从 AutoCAD 命令提示符下访问,并用于重定义 AutoCAD 命令。c:

定义为命令的函数不应直接接受参数,而应使用其中一个函数获取命令的输入。getXXX

下面定义了一个名为的函数。此函数显示一条简单的消息。HELLO

(defun HELLO () (princ "\nHello world.") (princ))
HELLO

可以从 AutoCAD 命令提示符或 AutoLISP 程序发出函数。可以通过输入以下内容从AutoCAD命令提示符下调用该函数:HELLO

命令:(你好)

世界您好。

该函数必须括在括号中,因为它未定义为命令。在 AutoCAD 命令提示符下输入不带括号,将返回以下错误消息:HELLOHELLO

未知命令“你好”。按 F1 寻求帮助。

在函数名称的前面添加 c: 会导致函数被声明为命令,然后可以在 AutoCAD 命令提示符下输入,而无需用括号括起来。例如:HELLO

(defun C:HELLO () (princ "\nHello world.") (princ))
C:HELLO

虽然声明为命令,但它也是一个 AutoLISP 函数。现在可以在 AutoCAD 命令提示下输入该命令,如下所示:HELLO

命令:你好

世界您好。

该命令也可以透明地使用,因为它不调用命令函数。在AutoCAD命令提示符下,您可以执行以下操作:HELLO

命令:

从点:'你好

世界您好。

从点:

如果将 AutoLISP 函数声明为命令,那么可以通过用括号将整个函数名称括起来,从 AutoLISP 程序调用该命令。例如:

(c:hello)
注意:如果在 Windows 发行版中使用可视 LISP 编辑器,则“控制台”窗口无法识别 AutoCAD 命令。必须用括号将函数名称括起来。

通常不能使用 AutoLISP 语句来响应来自 AutoLISP 实现的命令的提示。但是,如果您的 AutoLISP 例程使用该函数,则可以对某些函数使用任意键盘输入。这允许 AutoLISP 实现的命令接受 AutoLISP 语句作为响应。此外,DIESEL 表达式返回的值可以对当前图形执行一些计算,并将这些值返回到 AutoLISP。initget


路过

雷人

握手

鲜花

鸡蛋

最新评论

UG快捷键鼠标垫

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

GMT+8, 2024-5-6 23:14

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部