这一章,我们主要来学习如何使用AutoLisp定义AutoCAD绘图命令、以及代码文件的创建与加载。
一、定义AutoCAD绘图入口函数
在之前的学习中,我们已经知道了如何定义AutoLisp函数,但是我们通过之前的方式定义的函数在调用的时候总是需要将函数名用括号括起来,使用起来很不方便,接下来我们一起来学习如何声明一个AutoCAD入口函数。
目标:通过AutoLisp代码注册一个AutoCAD命令,通过交互方式获取两个整数并计算两数乘积,将计算结果显示在命令行中。
为实现上述目标,我们需要先来了解一个新的函数:
- GetInt:获取一个整数。和一系列相关的
get
类输入函数,用于程序与用户交互。
(defun C:Multiplication( / #iNum1 #iNum2 #iNumMul)
(setq #iNum1 (GetInt "\n请输入一个整数:"))
(setq #iNum2 (GetInt "\n请输入第二个整数:"))
(setq #iNumMul (* #iNum1 #iNum2))
)
将上述代码复制到AutoCAD命令行并加载,执行命令:
MULTIPLICATION
根据提示输入整数,执行结果如下:
我们可以看到,这次我们执行自定义函数已经不在需要将函数名使用括号括起来的,通过在定义函数的时候,在函数名前边加上 "C:" ,就能够实现注册AutoCAD命令的目标。
二、AutoLisp文件的制作
直接在电脑上新建一个.txt格式的文件,直接在其中编写代码,在完成编码之后保存文件,将文件后缀名改为.lsp,这样一个AutoLisp代码文件就生成出来了。
当然,目前已经有一些文本编辑器支持直接保存.lsp格式(如VSCode等),这样也是没有问题的。
三、AutoLisp文件的加载
首先,我们先用上述方法制作一个AutoLisp文件。
打开AutoCAD,键入命令:
AppLoad
弹出如下图所示加载应用程序对话框:
我们在文件类型下拉列表中选择AUTOLISP文件(*.lsp),之后选择我们前一步生成的lsp文件,点击加载,这时可能会弹出提示 未签名的可执行文件 ,如下图所示:
直接点击始终加载或加载一次,之后我们会看见命令行出现:
已成功加载 xxx.lsp。
即表示加载成功。之后我们在AutoCAD中执行lsp文件中定义的函数了。