AutoLisp中常见的函数(转)


一般的,用方括号[ ]包围的变量都是可有可无的。

1. 数学运算函数

函数 返回值 备注
(+ 数值1 数值2 …) 累计实数或整数数值 一个或多个参数
(- 数值1 数值2 …) 第一个数值减去第二个及以后数值的差 一个或多个参数
(* 数值1 数值2 …) 所有数值乘积 一个或多个参数
(/ 数值1 数值2 …) 第一个数值除以第二个以后数值的商 一个或多个参数
(l+ 数值) 数值+l -
(1- 数值) 数值-l -
(abs 数值) 数值的绝对值 -
(atan 数值1 [数值2]) 反正切值 可以有两个参数
(cos 角度) 角度的余弦值 角度值为弧度
(exp 数值) 自然常数 e 为底的指数 e 的值约为 2.71828
(expt 底数 指数) 底数的指数值 -
(fix 数值) 将数值转换为整数值 直接忽略小数部分
(float数值) 将数值转换为实数值 -
(gcd 数值1 数值2) 两数值的最大公因数
(log 数值) 数值的自然对数值 -
(max 数值1 数值2 …) 数值中的最大值 -
(min 数值1 数值2 …) 数值中的最小值 -
pi 常数 π,不是函数,使用时不用加括号 其值约为3.141593
(rem 数值1 数值2) 数值 1 除以数值 2 得到余数 余数的正负与被除数相同
(sin 角度) 角度的正弦值 角度值为弧度
(sqrt 数值) 数值的平方根 平方根为非负

AutoLisp 语言支持的三角函数只有两个:正弦和余弦;支持的反三角函数只有一个:反正切。(不知道对不对,我暂时没发现别的。)


2. 检验与逻辑函数

函数 返回值 备注
(= 表达式1 表达式2 ...) 比较表达式是否全部都相同,适用数值及字符串 -
(/= 表达式1 表达式2 ...) 比较表达式是否全部都不同 -
(< 表达式1 表达式2 ...) 比较表达式是否严格递增 -
(<= 表达式1 表达式2 ...) 比较表达式是否递不减 -
(> 表达式1 表达式2 ...) 比较表达式是否严格递减 -
(>= 表达式1 表达式2 ...) 比较表达式是否递不增 -
(~ 数值) 数值的位 not 值 1 的补码
(and 表达式1 表达式2…) 逻辑 and 的结果 -
(boole 函数 整数 整数…) 位式布尔运算 -
(eq 表达式1 表达式2) 比较表达式 1 与表达式 2 是否相同,适用列表比较 -
(equal 表达式1 表达式2 [差量]) 比较表达式 1 与表达式 2 是否相同,差量可省略 -

对于检验函数,若表达式为真,则返回T;反之,则返回nil


3.转换运算函数

函数 返回值 备注
(angtof 字符串 [模式]) 角度值的字符串转成实数 返回弧度值
(angtos 角度 [模式] [精度] ) 角度转成的字符串值 -
(atof 字符串) 字符串转成实数值 -
(atoi 字符串) 字符串转成整数值 忽略小数位
(cvunit 数值原始单位 转换单位) 数值换算单位后的值 转换根据 acad.unt 文件
(distof 字符串 [模式]) 根据模式将字符串转成实数值 -
(itoa 整数) 整数转成字符串 -
(rtos 数值模式 [精度]) 实数转成字符串 -
(trans 点 原位置 新位置 [位移]) 转换坐标系统值 -

4.表处理函数

函数 返回值 备注
(append 表1 表2 ...) 结合所有表成一个表 -
(assoc 关键元素 联合表) 根据关键元素找寻联合表中关系信息 -
(car 表) 表中的第一个元素,通常用来求 X 坐标 -
(cadr 表) 表中的第二个元素,通常用来求 y 坐标 -
(caddr 表) 表中的第三个元素,通常用来求 Z 坐标 -
(cdr 表) 除去第一个元素后的表 -
(cons 新元素 表) 将新元素添加到表 -
(foreach 名称 表 表达式) 将表的每一元素对应至名称再根据表达式执行响应 -
(length 表) 表内的元素数量 -
(list 元素 元素 ...) 将所有元素合并为一表 -
(listp 元素) 判断元素是否为一串 -
(mapcar 函数 表1 表2 …) 将表 1、表 2 表的元素配合函数,求得新表 -
(member 关键元素 表) 关键元素(含)以后的表 -
(nth n 表) 表的第 n 个元素 -
(reverse 表) 将表元素根据顺序颠倒过来的表 -
(subst 新项 旧项 表) 替换新旧表后的表 -

5.字符串、字符、文件处理函数

函数 返回值 备注
(ascii 字符串) 字符串第一个字符的 ASCII 码 -
(chr 整数) 整数所对应的 ASCII 单一字符串 -
(close 文件名称) 关闭文件 -
(open 文件名 模式) 打开文件代码,准备读取或写入信息 -
(read 字符串) 列表中的字符串的第一组元素 -
(read-char [文件路径]) 通过键盘或文件中读取单一字符 -
(read-line [文件路径]) 经由键盘或文件中读取一行字符串 -
(strcase 字符串 [字样]) 字符串大小写, [字样]为 T,小写;忽略,大写 -
(strcat 字符串1 字符串2 …) 将各字符串合并为一个字符串 -
(strlen 字符串) 字符串构成的字符数(即长度) -
(substr 字符串 起始 长度) 取出于字符串 -
(wcmatch 字符串 格式) T 或 nil,将字符串与通用字符进行比较 -
(write-char 数值 [文件路径]) 将一 ASCII 字符写到文件或屏幕 -
(write-line 字符串 [文件路径]) 将字符串写到文件或屏幕上 -

6. 等待输入函数

函数 返回值
(getangle [基点] [提示]) 请求输入十进制角度数值,响应一个弧度值。提示及参考点可选
(getcorner 基点 [提示]) 请求输入另一矩形框对角点坐标
(getdist [基点] [提示]) 请求输入一段距离
(getint [提示]) 请求输入一个整数值
(getkword [提示] ) 请求输入“关键词”
(getorient [基点] [提示]) 请求输入十进制角度,响应一弧度值不受 angbase、angdir 影响
(getpoint [基点] [提示]) 请求输入一个点的坐标
(getreal [提示]) 请求输入一个实数
(getstring [提示]) 请求输入一个字符串
(initget [位] 字符串) 设定下次 getxxx 函数的有效输入

7. 几何运算函数

函数 返回值
(angle 点1 点2) 取得两点的角度弧度值
(distance 点1 点2) 取得两点的距离
(inters 点1 点2 点3 点4[模式]) 取得两条线的交点
(osnap 点 模式字符串) 按照捕捉模式取得另一坐标点
(polar 基点 弧度 距离) 按照极坐标法取得另一坐标点
(textbox 对象列表) 取得文字对象的两个对角点坐标

8. 对象处理函数

函数 返回值
(entdel 对象名称) 删除或取消删除对象
(entget 对象名称[应用程序列表]) 取出对象名称的信息列表
(entlast) 取出图形信息中的最后一个对象
(entmake 对象列表) 建立一个新的对象列表
(entmod 对象列表) 根据更新的信息列表更新屏幕上元体
(entnext [对象名称]) 找寻图面中的下一个对象
(entsel [提示]) 请求选取一个对象,响应包含对象名称及选点坐标的列表;
(entupd 对象名称) 更新屏幕上复元体图形
(handent 图码) 返回:图码的元体名称
(nentsel [提示]) 返回:BLOCK 所含副元体对象信息列表
(nentselp [提示] [点]) 返回:BLOCK 所含副元体对象信息(以 4x4 矩形表示)

9. 选择集、符号表处理函数

函数 返回值
(ssadd [对象名称] [选择集]) 将对象加入选择集或建立一新选择集
(ssdel 对象名称 选择集) 将对象自选择集中移出
(ssget [模式] [点1] [点2]) 取得一个选择集
(ssget "X" [过滤列表]) 取得根据过滤列表所指定范围的选择集
(sslenth 选择集) 计算选择集的对象个数
(ssmemb 对象名称 选择集) 响应对象名称是否包含于选择集内
(ssname 选择集 索引值) 根据索引值取出选择集中的对象名称
(tblnext 符号表名称 [T]) 检视符号表,有效的符号表:"LAYER" "LTYPE" "VIEW" "STYLE" "BLOCK"
(tblsearch 符号表名称 符号) 在符号表中搜寻符号

10. AutoCAD 相关查询、控制函数

函数 返回值
(command "AutoCAD命令" …) 超重量级函数,调用执行 AutoCAD 命令
(findfile 文件名) 返回:该文件名的路径及文件名
(getfiled 标题 内定档名 扩展名 旗号) 通过标准 AutoCAD 文件对话 DCL 对话框获得文件
(getenv "环境变量") 取得该环境变量的设定值,以字符串表示
(getvar "系统变量") 取得该系统变量的设定值,以字符串表示
(setvar "系统变量" "值") 设定该系统变量的值
(regapp 应用类项) 将目前的 AutoCAD 图形登记为一个应用程序名称

11. 判断式、循环相关函数

函数 返回值
(if <比较式> <表达式1> [表达式2]) 比较式结果为真,执行<表达式1>,否则执行<表达式2>
(repeat 次数 <表达式> ...) 重复执行 N 次<表达式> ...
(while <比较式> <表达式> ...) 当条件成立则执行表达式内容
(cond <比较式1> <表达式1> <比较式2> <表达式2> ...) 多条件式的 if
(progn <表达式1> ...) 连接其中的表达式为一组,常配合 if、cond 等函数

12. 函数处理、定义、追踪和错误处理函数

函数 返回值
(*error* 字符串) 程序错误时的警示信息
(alert 字符串) 以对话框式显示出警告字符串
(apply 功能函数 列表) 将功能函数与列表结合后执行
(defun 名称 自变量列表 表达式) 自定函数或子程序
(eval 表达式) 表达式的执行结果
(exit) 强制退出目前的应用程序
(lambda 自变量 表达式) 定义匿名的函数
(progn 表达式1 表达式2 …) 连接其内的表达式为一组,常用于配合 if、cond 等函数
(quit) 强制退出目前的应用程序
(tablet 代码 [列1 列2 列3 方向]) 取用或建立对数字化仪的校调
(trace 函数 …) 对函数设定追踪标记,辅助检错
(untrace 函数 …) 对函数设定解除追踪标记

13. 显示、打印控制函数

函数 返回值
(gfaphscr) 作图环境切换到图形画面
(grclear) 暂时清除模前的屏幕画面
(grdraw 起点 终点 颜色 [亮显]) 暂时性的画出一条线
(grread [追踪]) 由输入设备读取追踪值
(grtext 位置 字符串 [亮显]) 将字符串显示在状态列或屏幕菜单上
(grvecs 向量列表 [转置矩阵]) 暂时性的画出多条线
(menucmd 字符串) ;提供在 AlltOLISP 中调用各菜单
(prin1 [表达式 [文件代码]]) 将表达式打印于命令区或已打开的文件句柄字符则以“\”为前缀展开
(pinc [表达式 [文件代码]]) 除句柄字符则不以”\”为前缀展外开其余同 Prinl
(print [表达式 [文件代码]]) 除表达式会往下一新行列出,及空一格外其余同 prinl
(prompt 信息) 将信息显示于屏幕的命令区,并随后响应一个 nil 信息
(redraw [对象名称 [模式]]) 重绘整张图或根据对象名称重绘该图形
(terpri) 在屏幕上显示新列
(textscr) 作图环境切换到文字画面
(textpage) 清除文字画面文字类似 DOS 的 cls 命令
(vports) 窗口组态列表

14. 符号、元素、表达式处理函数

函数 返回值
(atom 元素) 如果元素不是列表,返回 T,否则为 nil
(atoms-family 格式 [符号号列表]) 一组己定义函数的符号列表
(boundp 表达式) T 或 nil,响应表达式是否有值存在
(minusp 元素) 判定元素是否为负值
(not 元素) 判定元素是否为 nil
(null 元素) 判定元素是否被赋予 nil 值
(numberp 元素) 判定元素是否为整数或实数
(quote 表达式) 响应表达式未检算前状态,同'功能
(set 符号 表达式) 将表达式结果设定给带单引号’符号
(setq 符号1 表达式1 [符号2 表达式2] …) 设定表达式结果给各符号
(type 元素) 元素的信息型态
(zerop 元素) 判定元素是否为 0 值

15. ADS、ARX、AutoLISP 加载与卸载函数

函数 返回值
(ads) 目前加载 ADS 程序列表
(arx) 目前加载 ARX 程序列表
(arxload 应用程序 [出错处理])) 加载 ARX 程序
(arxunload 应用程序 [出错处理])) 卸载 ARX 程序
(ver) 目前 AutoLISP 版本字符串
(load LSP文件名 [加载失败]) 加载 AutoLISP 文件(*.lsp)
(xload 应用程序 [错处理]) 加载 ADS 应用程序
(xunload 应用程序 [出错处理]) 卸载 ADS 应用程序

作者:吴吉光
链接:https://www.jianshu.com/p/067ea05a425c
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

作者:吴吉光
链接:https://www.jianshu.com/p/57578dc48f11
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

作者:吴吉光
链接:https://www.jianshu.com/p/41fd1a86939a
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。


文章作者: 慕书
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 慕书 !
评论
  目录