CADLISP函数
CADLISP语言
数据类型
表
文件描述符
实体名
选择集
内部函数(AutoLISP子程序)
外部函数(ADS、ARX函数)
代码意义ASII码\\\键\114\”“键\042\eESC键\033\n换行\012\r回车\015\t制表键\011赋值与数值计算函数
(1+ 数) 加1函数
(1- 数) 减1函数
(abs 数)求绝对值
(max数 数 ……)求最大数
(min数 数 ……)求最小数
(sqrt数)求平方根
(expt数 幂)乘方
(exp 幂)e的任意次方
(log数)对数
(sin 角)正弦函数
(cos角)余弦
(atan数1[数2])反正切函数
(rem数1 数2)求余数
(gcd数 数……)最大公约数
(~ 整数)求补 注:用pi表示圆周率π
(logand数 数……)按位逻辑”与”函数
(logior数 数……)按位逻辑”或”函数
(~ 数)按位逻辑”非”函数
(and 表达式……)逻辑”与”函数
(or 表达式……)逻辑”或”函数
(not 表达式)逻辑”非”函数
(lsh 数 位数)位移函数
(boole 方式 数1 数2……)布尔运算。方式有16种,如1为and,6为xor(异或),7为or,8为not等。
(= 原子 原子……)等于函数
(/= 原子 原子)不等于函数
(< 原子 原子)小于函数
(<= 原子 原子)小于等于函数
(> 原子 原子)大于函数
(>= 原子 原子)大于等于函数
(atom 项)原子测试
(listp 项)表测试
(boundp 原子)原子值测试
(null 项)空测试
(numberp 项)数值测试
(minusp 项)负值测试
(zerop 项)零测试
(eq 式1 式2)相同表达式测试
(equal式1 式2)相等测试
(wcmatch 字符串 模式)字符匹配测试
分支与循环
(if 条件 式1[式2])若条件为真,则执行式1;否则执行式2。
(cond(条件1 式1……)(条件2 式2……)……)分支函数。如:(cond((minusp a)(- a))(T a))求a的绝对值。注:cond是AutoLISP中最基本的条件函数,由它为核心构成的自定义函数可以实现循环和递归等功能。
(repeat 次数 式1 式2 ……)重复函数。将多个表达式重复执行多次。
(while 条件 式1 式2 ……)循环函数。条件为真,执行表达式。否则结束循环。如:(setq s 0 a 1)(while(< a 101)(setq s(+ s a))(setq a(1+ a)))(print s) 计算0~100之间所有整数的和。
(progn 式1 式2 ……)求多个表达式值函数。在只能用一个表达式的地方,使用他可完成多个表达式的计算。如if 语句中
字符串与类型转换函数
(ascii 字符串)ASCII码转换
(chr 整数)字符转换
(strcat 字符串……)字符串连接
(strlen 字符串……)字符串长度测试
(substr 字符串 起点 [长度])取子字符串。如果不设置长度,则取到最后一个字符。
(strcase 字符串 [方式])字符串大小写转换。若指定了方式且非空(NIL),则把所有的字母转换为小写;否则转换为大写。
(float 数)整型变实型
(fix 数)实型变整型
(itoa 整型数)整型变字符串
(atoi 字符串)字符串变整型
(atof 字符串)字符串变实型
(angtos 角 方式 精度)角度单位转换。“角”是以弧度为单位的实数,转换为其它单位,返回一个字符串。该字符串是以“方式”和“精度”的要求,按AutoCAD的系统变量UNITMODE(单位模式)对“角”进行处理得到的,“精度”为小数点后的位数。“方式”有:0为度,1为度/分/秒,2为梯度,3为弧度等。
(rtos 数 方式 精度)实数计数制转换。方式:1为科学计数法,2为十进制,3为工程制(英寸与小数英寸),4为建筑制(英寸与分数英寸)
(cvunit 值 旧单位 新单位)单位制转换。单位名称可以是acad.unt文件中给出的任意单位格式,否则返回NIL
(trans 点 旧坐标系 新坐标系)坐标转换。坐标:0为WCS(世界坐标系),1为UCS(用户坐标系),2为DCS(显示坐标系)
表处理函数
(quote 表达式)引用函数。作用:告诉程序不要对后面的表达式求值。如:(quote(x y z))可简写为 ’(x y z)
(car 表)取表中的第一个元素
(cdr 表)取子表函数。返回除第一个元素以外的所有元素组成的新表
由car与cdr组合而成的函数
car与cdr是取表元素的基本函数。这两个函数可以组合起来使用,从而