AutoLisp 介绍
AutoLISP 是由 Autodesk 公司开发的一种 LISP 程序语言,LISP 是 List Processor 的缩写,是一种嵌入在 AutoCAD 内部的编程语言。通过 autolisp 编程,可以用代码运行 CAD 中的命令,其缺点是继承了 LISP 语言的编程规则而导致繁多的括号(括号语言)
每段代码块都是以()来包裹,例如:
lisp
(prompt "\nHello, Welcome to AutoLisp!")
基本语法规则
所有函数、表达式都要包含在括号内,左括号“ ( ”与右括号“ ) ”一定要成对出现,括号内部的字符串的双引号“ " ”与“ " ”也要成对出现。
表达式格式:(函数名 运算符 运算符 运算符)
数据类型
- 整形(INT)即整数,整数由数字和正负号组成,正号可省略。
- 实型(REAL) 带小数点的数。(注:-1~1 之间的小数中的 0 不可以省略)
- 字符串(STR) 字符串的最大长度为 100,空字符串可以用""表示。
- 列表(LIST) 用括号将多个数据合并为一个数据的数据类型。
- 函数(SUBS) 函数相当于子程序或过程。可分为内部函数和外部函数。
- 文件描述符(FILE) 类似于文件指针,是 AutoLISP 赋于被打开文件的标识号。
- 图元名(ENAME) AutoCAD 为图形对象指定的 16 进制的数字标识。
- 选择集(PICKSET) 一个或多个图形对象命名的集合。
- VLA 对象 VLA 对象是 ActiveX 应用程序的主要组成部分。
函数的定义
- defun:定义函数关键字,用于定义用户命令。
- setq:AutoLisp 中的赋值函数,相当于 "=",具体用法符合语法规则 2 (setq 表达式 1 表达式 2) ;; 将表达式 2 的值赋给表达式 1
- +:数学库函数。求两个数的和。 (+ 表达式 1 表达式 2) ;; 计算表达式 1 与表达式 2 的和
lisp
(defun Add()
(setq #iNum1 1) ;; 赋值
(setq #iNum2 2)
(setq #iNumSum (+ #iNum1 #iNum2)) ;; 求和
)
在命令中输入(Add)
执行
编辑器
百度搜索“飞诗编辑器”下载即可
使用
直接加载
可以将代码直接粘贴至 CAD 命令行加载,再输入 defun 后面命名的名称调用
文件加载
- 输入命令 AppLoad 会弹出文件对话框,编写的 lisp 代码是.lsp 的文件,选择进行加载
- 之后选择我们前一步生成的lsp文件,点击加载,这时可能会弹出提示 未签名的可执行文件,直接点击始终加载或加载一次,之后我们会看见命令行出现:已成功加载 xxx.lsp。