AutoLisp常用函数
本章整理一下AutoLisp常用函数。
一、数学运算功能函数
序号 | 函数 | 函数说明 |
---|---|---|
1 | (+ number number …) | 累计实数或整数的和。 |
2 | (- number number …) | 累计实数或整数的差值。 |
3 | (* number number …) | 所有实数或整数的乘积。 |
4 | (/ number number …) | 第一个数值除以第二个以后数值的商。 |
5 | (1+ number) | 数值+1(自加运算)。 |
6 | (1- number) | 数值-1(自减运算)。 |
7 | (abs number) | 数值的绝对值。 |
8 | (atan number) | 数值的反正切值。 |
9 | (cos number) | 数值的余弦值。 |
10 | (exp number) | 数值的指数。 |
11 | (expt number) | 底数的指数值。 |
12 | (fix number) | 将数值转换为整数值。 |
13 | (gcd number number) | 两数值的最大公约数。 |
14 | (log number) | 数值的自然对数值。 |
15 | (max number number …) | 数值中的最大值。 |
16 | (min number number …) | 数值中的最小值。 |
17 | PI | 常数,其值约为3.1415926 |
18 | (rem number number) | M数值的相除的余数。 |
19 | (sin number) | 角度的正弦值。 |
20 | (sqrt number) | 数值的平方根。 |
二、检验与逻辑运算功能函数
序号 | 函数 | 函数说明 |
---|---|---|
1 | (= exp exp) | 比较表达式1是否等于表达式2,适用于数值和字符串。 |
2 | (/= exp exp) | 比较表达式1是否不等于表达式2。 |
3 | (< exp exp) | 比较表达式1是否小于表达式2。 |
4 | (<= exp exp) | 比较表达式1是否小于等于表达式2。 |
5 | (> exp exp) | 比较表达式1是否大于表达式2。 |
6 | (>= exp exp) | 比较表达式1是否大于等于表达式2。 |
7 | (~ number) | 数值的位not值(1的补码)。 |
8 | (and exp exp …) | 所有表达式的逻辑与的结果。 |
9 | (boole func int int …) | 用作一个通用的按位逻辑运算函数。 |
10 | (eq exp exp) | 比较表达式1与表达式2是否相同,适用于列表的比较(实际上是比较指针)。 |
11 | (equal exp exp [fuzz]) | 比较表达式1与表达式2是否相等(值相等),支持差量比较。 |
三、转换运算功能函数
序号 | 函数 | 函数说明 |
---|---|---|
1 | (angtof string [mode]) | 角度值的字符串值转换为实数。 |
2 | (angtos angle [mode] [precision]) | 角度转换为字符串值。 |
3 | (atof string) | 字符串转换为实数值。 |
4 | (atoi string) | 字符串转换为整数值。 |
5 | (cvunit num baseunit convertunit) | 数值转换单位后的值。 |
6 | (distof string [mode]) | 根据模式将字符串转换为实数值。 |
7 | (itoa num) | 整数转换为字符串。 |
8 | (rtos num mode [precision]) | 实数转换为字符串。 |
9 | (trans point basepos newpos [dist]) | 转换坐标系。 |
四、列表处理功能函数
序号 | 函数 | 函数说明 |
---|---|---|
1 | (append list list …) | 结合所有列表合并为一个列表。 |
2 | (assoc atom list) | 根据元素寻找联合列表中的关系信息。 |
3 | (car list) | 返回列表中的第一个元素。 |
4 | (cadr list) | 返回列表中的第二个元素。 |
5 | (caddr list) | 返回列表中的第三个元素。 |
6 | (cdr list) | 出去第一个元素之后的列表。 |
7 | (cons atom list) | 将新元素添加到列表。 |
8 | (foreach name list exp) | 将列表中的每一个元素对应至名称再根据表达式执行响应。 |
9 | (length list) | 列表内的元素数量。 |
10 | (list atom atom …) | 将所有元素合并为一个表。 |
11 | (listp atom) | 判断元素是否为一串。 |
12 | (mapcar func list list …) | 将列表1、列表2列表的元素配合函数,求得新列表。 |
13 | (member atom list) | 搜索表中是否包含某表达式,并从该表达式的第一次出现处返回表的其余部分。 |
14 | (nth n list) | 列表中的第n个元素。 |
15 | (reverse list) | 将列表元素根据顺序颠倒过来的列表。 |
16 | (subst newatom oldatom) | 使用新项替换旧项,并返回替换之后的列表。 |
五、字符串、字符、文件处理函数
序号 | 函数 | 函数说明 |
---|---|---|
1 | (ascii string) | 字符串第一个字符的ascii码值。 |
2 | (chr num) | 整数所对应的ASCII单一字符码。 |
3 | (close file-desc) | 关闭文件 |
4 | (open filename mode) | 打开文件,准备读取或者写入信息。 |
5 | (read string) | 列表中的字符串的第一组元素。 |
6 | (read-char [file-desc]) | 通过键盘或者文件中读取的单一字符。 |
7 | (read-line [file-desc]) | 通过键盘或文件中读取一行字符串。 |
8 | (strcase string [mode]) | 转换字符串的大小写。 |
9 | (strcat string string …) | 将所有字符串合并为一个字符串。 |
10 | (strlen string) | 字符串的长度。 |
11 | (substr string length) | 返回字符串中的一个子字符串 |
12 | (wcmatch string mode) | 将字符串与通用字符进行比较。 |
13 | (write-char num [file-desc]) | 将一ASCII字符写到文件或屏幕上。 |
14 | (write-line string [file-desc]) | 将字符串写到文件或屏幕上。 |
六、等待输入功能函数
序号 | 函数 | 函数说明 |
---|---|---|
1 | (getangle [point] [prompt]) | 请求输入十进制角度数值,响应一个弧度值提示及参考点可有可无。 |
2 | (getcorner point [prompt]) | 请求输入另一矩形框对角点坐标。 |
3 | (getdist [point] [prompt]) | 请求输入一段距离。 |
4 | (getint [prompt]) | 请求输入一个整数值。 |
5 | (getkword [prompt]) | 请求输入“关键词”。 |
6 | (getorient [point] [prompt]) | 请求输入十进制角度,响应一弧度值不受angbase、angdir影响。 |
7 | (getpoint [point] [prompt]) | 请求输入一个点的坐标。 |
8 | (getreal [prompt]) | 请求输入一个实数。 |
9 | (getstring [prompt]) | 请求输入一个字符串。 |
10 | (initget [bit] string) | 设定下次getxxx函数的有效输入。 |
七、几何运算功能函数
序号 | 函数 | 函数说明 |
---|---|---|
1 | (angle point point) | 取得两点的角度弧度值。 |
2 | (distance point point) | 取得两点的距离。 |
3 | (inters point point point point [mode]) | 取得两条线的交点。 |
4 | (osnap point [mode]) | 按照捕捉模式取得另一坐标点。 |
5 | (polar point rad dist) | 按照极坐标法取得另一坐标点。 |
6 | (textbox list) | 测量一个指定文本对象的尺寸,并返回围住该文本的一个矩形框的对角坐标。 |
八、对象处理功能函数
序号 | 函数 | 函数说明 |
---|---|---|
1 | (entdel ename) | 删除或取消删除对象。 |
2 | (entget ename [applist]) | 取出对象名称的信息列表。 |
3 | (entlast) | 取出图形信息中的最后一个对象。 |
4 | (entmake elist) | 建立一个新的对象列表。 |
5 | (entmod elist) | 根据更新的信息列表更新屏幕上元体。 |
6 | (entnext [ename]) | 找寻图面中的下一个对象。 |
7 | (entsel [prompt]) | 请求选取一个对象,响应包含对象名称及选点坐标的列表。 |
8 | (entupd ename) | 更新屏幕上复元体图形。 |
9 | (handent handle) | 图码的元体名称。 |
10 | (nentsel [prompt]) | 提示用户指定点来选择对象(图元),得到这个对象所指片段的对象名。 |
11 | (nentselp [prompt] [point]) | 在没有用户输入的情况下,本函数的功能与nentsel函数类似。 |
九、选择集、符号表处理函数
序号 | 函数 | 函数说明 |
---|---|---|
1 | (ssadd [ename] [ssname]) | 将对象加入选择集或建立一新选择集。 |
2 | (ssdel ename ssname) | 将对象自选择集中移出。 |
3 | (ssget [mode] [point] [point]) | 取得一个选择集。 |
4 | (ssget “X” [filter]) | 得根据过滤列表所指定范围的选择集。 |
5 | (sslength ssname) | 计算选择集的对象个数。 |
6 | (ssmemb ename ssname) | 响应对象名称是否包含于选择集内。 |
7 | (ssname ssname index) | 根据索引值取出选择集中的对象名称。 |
8 | (tblnext symboltable [T]) | 检视符号表,有效的符号。 |
9 | (tblsearch symtab symbol) | 在符号表中搜寻符号。 |
十 、AutoCAD相关查询、控制功能函数
序号 | 函数 | 函数说明 |
---|---|---|
1 | (command “AutoCAD command” …) | 超重量级函数,调用执行 AutoCAD命令。 |
2 | (findfile filename) | 该文件名的路径及文件名。 |
3 | (getfiled title default ext flags) | 用标准的 AutoCAD 文件对话框提示用户输入一个文件名,并返回该文件名。 |
4 | (getenv var) | 取得该环境变量的设定值,以字符串表示。 |
5 | (getvar var) | 取得该系统变量的设定值,以字符串表示。 |
6 | (setvar var value) | 设定该系统变量的值。 |
7 | (regapp appname) | 将目前的AutoCAD图形登记为一个应用程序名称。 |
十一、判断式、循环相关功能函数
序号 | 函数 | 函数说明 |
---|---|---|
1 | (if testexpr thenexpr [elseexpr]) | 根据对条件的判断结果,对两个表达式求值。 |
2 | (repeat int [expr…]) | 对循环体中的每一个表达式进行指定次数的求值计算,并返回最后一个表达式的值。 |
3 | (while testexpr [expr…]) | 对测试表达式进行求值,如果它不是 nil,则执行循环体中的表达式,重复这个过程,直到测试表达式的求值结果为 nil。 |
4 | (cond [(test result …) …]) | 多条件、多处理结果函数。 |
5 | (progn [expr]…) | 顺序地对每一个表达式进行求值,并返回最后那个表达式的值。 |
十二、函数处理、定义、追踪与错误处理功能函数
序号 | 函数 | 函数说明 |
---|---|---|
1 | (error string) | 可由用户定义的错误处理函数。 |
2 | (alert string) | 以对话框式显示出警告字符串。 |
3 | (apply ’function list) | 将参数表传给指定的函数。 |
4 | (defun sym ([arguments] [/ variables…]) expr…) | 定义函数。 |
5 | (eval expr) | 返回 AutoLISP 表达式的求值结果。 |
6 | (exit) | 强制退出目前的应用程序。 |
7 | (lambda arguments expr…) | 定义无名函数。 |
8 | (progn [expr]…) | 顺序地对每一个表达式进行求值,并返回最后那个表达式的值。 |
9 | (quit) | 强制退出目前的应用程序。 |
10 | (tablet code [row1 row2 row3 direction]) | 获取和设置数字化仪校准。 |
11 | (trace [function…]) | 调试 AutoLISP 程序时的辅助函数。 |
12 | (untrace [function…]) | 清除指定函数的跟踪标志。 |
十三、显示、打印控制功能函数
序号 | 函数 | 函数说明 |
---|---|---|
1 | (gfaphscr) | 作图环境切换到图形画面。 |
2 | (grclear) | 暂时清除模前的屏幕画面。 |
3 | (grdraw from to color [highlight]) | 在当前视口中的两个点之间显示一条矢量线。 |
4 | (grread [track] [allkeys [curtype]]) | 从 AutoCAD 的任何一种输入设备中读取数值。 |
5 | (grtext [box text [highlight]]) | 将文本写到状态行或屏幕菜单区。 |
6 | (grvecs vlist [trans]) | 在图形屏幕上绘制多个矢量。 |
7 | (menucmd string) | 发出菜单命令,或设置并检索菜单项状态。 |
8 | (prin1 [expr [file-desc]]) | 在命令行打印一个表达式或将表达式写入已打开的文件中。 |
9 | (princ [expr [file-desc]]) | 在命令行打印表达式,或将表达式写入已打开的文件中。 |
10 | (print [expr [file-desc]]) | 在命令行打印表达式,或将表达式写入已打开的文件中。 |
11 | (prompt msg) | 在屏幕提示区显示一个字符串。 |
12 | (redraw [ename [mode]]) | 重画当前视口或当前视口中的一个指定对象(图元)。 |
13 | (terpri) | 在屏幕上显示新列。 |
14 | (textscr) | 作图环境切换到文字画面。 |
15 | (textpage) | 清除文字画面文字类似 DOS的cls命令。 |
16 | (vports) | 窗口组态列表。 |
十四、符号、元素、表达式处理功能函数
序号 | 函数 | 函数说明 |
---|---|---|
1 | (atom item) | 验证一个项是否是原子。 |
2 | (atoms-family format [symlist]) | 返回由当前已定义的符号组成的一个表。 |
3 | (boundp sym) | 检验符号是否被设置为某个值。 |
4 | (minusp num) | 检查某个数是否是负数。 |
5 | (not item) | 检查一个项的求值结果是否为 nil。 |
6 | (null item) | 检查某项的值是否设置为 nil。 |
7 | (numberp item) | 检查某个项是否是实数或整数。 |
8 | (quote expr) | 返回表达式而不对其求值。 |
9 | (set sym expr) | 将引号中的符号名的值设置成一个表达式的值。 |
10 | (setq sym expr [sym expr]…) | 将一个或多个符号的值设置为相应表达式的值。 |
11 | (type item) | 返回指定项的数据类型。 |
12 | (zerop number) | 检查一个数的值是否为 0。 |
十五、ADS、ARX、AutoLISP加载与卸载函数
序号 | 函数 | 函数说明 |
---|---|---|
1 | (ads) | 目前加载ADS程序列表。 |
2 | (arx) | 目前加载 ARX程序列表。 |
3 | (arxload application [onfailure]) | 加载 ObjectARX 应用程序。 |
4 | (arxunload application [onfailure]) | 卸载 ObjectARX 应用程序。 |
5 | (ver) | 返回当前 AutoLISP 版本号的字符串。 |
6 | (load filename [onfailure]) | 加载 AutoLISP文件 (*.lsp)。 |
十六、内存空间管理函数
序号 | 函数 | 函数说明 |
---|---|---|
1 | (alloc n-alloc) | 设置段长度以供 expand 函数使用。 |
2 | (expand n-expand) | 为 AutoLISP 分配附加空间。 |
3 | (gc) | 强制收集无用数据,释放不再使用的节点。 |
4 | (mem) | 显示 AutoLISP 内存的当前状态。 |
5 | (xdroom ename) | 返回对象可供使用的扩展数据 (Xdata) 空间的大小。 |
6 | (xdsize lst) | 返回一个表作为扩展数据连接到对象(图元)上时所占用的空间大小(以字节表示)。 |
十七、其它重要的功能函数
序号 | 函数 | 函数说明 |
---|---|---|
1 | (acad_colordlg colornum [flag]) | 显示标准的 AutoCAD 颜色选择对话框。 |
2 | (acad_helpdlg helpfile topic) | 启动帮助工具(已废弃)。 |
3 | (acad_strlsort list) | 以ASCII码字母顺序对字符串表进行排序。 |