常用的AutoLISP函数有数据加工函数26个,字符串的加工函数17个,相等和条件判断函数15个,表处理函数15个,符号和函数的处理函数17个,出错处理函数4个,应用程序的处理函数11个,查询和设置系统状态函数8个,显示控制函数11个,用户输入类函数14个,几何实用函数6个,数据类型和单位的转换函数2个,文件处理、设备访问和控制函数10个,选择集的处理函数6个,像处理函数8个,程序中执行AutoCAD的命令1个。
另外有关ASE AutoLISP接口函数、扩充数据函数、符号表和词典访问函数、可编程对话框函数、内存管理等函数,请参考有关书籍。
以上这些函数的功能和使用方法在Visual LISP帮助主题都有详细描述,这里不再赘述。本节主要将这些函数进行归类,从而帮助读者很快找到解决某一问题所需的函数,起到思考、索引的作用。
1.数据加工函数(26个)
1)+(加)返回所有数的和。
2)-(减)将第一个数减去其他数的和并返回差值。
3)∗(乘)返回所有数的乘积。
4)/(除)将第一个数除以其他数的乘积并返回商。
5)~(按位非)返回参数的按位非(即1的补码)。
6)1+(增1)将参数加1。
7)1-(减1)将参数减1。
8)abs返回参数的绝对值。
9)atan返回一个数的反正切值(以弧度为单位)。
10)cos返回弧度角度的余弦值。
11)exp返回常数e(2.718282...)的指定次幂(自然反对数)。
12)expt返回以某指定数为底数的若干次幂的值。
13)fix截去实数的小数部分,将它转换成整数后返回该整数。
14)float将一个数转换为实数后返回。
15)gcd返回两个整数的最大公约数。
16)log返回一个实数的自然对数。
17)logand返回一个整数表中的各数按位逻辑与(AND)的结果。
18)logior返回一个整数表中的各数按位逻辑或(OR)的结果。
19)lsh返回某整数作指定次逻辑移位后的结果。
20)max返回给定各数中的最大者。
21)min返回给定各数中的最小者。
22)minusp检查某个数是否负数。
23)rem将第一个数除以第二个数,并返回余数。
24)sin以实数形式返回角度的正弦值(以弧度为单位)。
25)sqrt以实数形式返回一个数的平方根。
26)zerop检查一个数的值是否为0。
2.字符串的加工函数(17个)
1)strcase将字符串中的所有字母转换成大写或小写后返回。
2)strcat将多个字符串拼接成一个长字符串后返回。
3)strlen以整数形式返回一个字符串中字符的个数。
4)substr返回字符串中的一个子字符串。
5)wcmatch将模式字符串与某指定的字符串进行匹配比较。
6)angtof将表示角度的字符串转换为实数(浮点数)形式的弧度值,angtos将一个以弧度为单位的角度值转换成字符串。
7)ascii将字符串中的第一个字符转换成其ASCII码后返回。
8)atof将一个字符串转换成实数。
9)atoi将一个字符串转换成整数。
10)chr将代表字符ASCII码的整数转换成包含相应的单一字符的字符串。
11)distof将一个表示实数(浮点)的字符串转换成一个实数。
12)itoa将整数转换成字符串,并返回转换结果。
13)rtos将数字转换成字符串。
14)prin1在命令行打印一个表达式或将表达式写入已打开的文件中。
15)princ在命令行打印表达式,或将表达式写入已打开的文件中。
16)print在命令行打印表达式,或将表达式写入已打开的文件中。
17)prompt在屏幕提示区显示一个字符串。
3.相等和条件判断函数(15个)
1)=(等于)比较参数值是否相等。
2)/=(不等于)比较参数值是否不相等。
3)<(小于)如果每个参数值都小于它右边的参数则返回T,否则返回nil。
4)<=(小于或等于)如果每个参数值都小于或等于它右边的参数则返回T,否则返回nil。
5)>(大于)如果每个参数值都大于它右边的参数则返回T,否则返回nil。
6)>=(大于或等于)如果每个参数值都大于或等于它右边的参数则返回T,否则返回nil。
7)and返回表达式的逻辑与(AND)运算结果。
9)cond多条件、多处理结果函数。
10)eq确定两个表达式是否具有相同的约束条件。
11)equal确定两个表达式的值是否相等。
12)if根据对条件的判断结果,对两种表达式求值。
13)or返回对表达式进行逻辑或(OR)运算的结果。
14)repeat对循环体中的每一个表达式进行指定次数的求值计算,并返回最后一个表达式的值。
15)while对测试表达式进行求值,如果它不是nil,则执行循环体中的表达式,重复这个过程,直到测试表达式的求值结果为nil。
4.表处理函数(15个)
1)append将任意多个表组合成一个表。
2)assoc从关联表中搜索一个元素,如果找到则返回该关联表条目。
3)car返回表的第一个元素。
4)cdr返回去掉了第一个元素的表。
5)cons向表的头部添加一个元素,或构造一个点对。
6)foreach将表中的所有成员以指定变量的身份带入表达式求值。
7)last返回表的最后一个元素。
8)length以整数形式返回表中元素的数目。
9)list将任意数目的表达式组合成一个表。
10)listp检查某个项是否是表。
11)mapcar将作为本函数参数的一个或多个表的各个元素提供给指定函数进行求值,并将由求值结果构成的表返回。
12)member搜索表中是否包含某表达式,并从该表达式的第一次出现处返回表的其余部分。
13)nth返回表中的第n个元素。
14)reverse将表的元素顺序倒置后返回。
15)subst在表中搜索某旧项,并将表中出现的每一个旧项用新项代替,然后返回修改后所得的表。
5.符号和函数的处理(17个)
1)atom验证一个项是否是原子。
2)atoms-family返回由当前已定义的符号组成的一个表。
3)boundp检验符号是否被设置为某个值。
4)not检查一个项的求值结果是否为nil。
5)null检查某项的值是否设置为nil。
6)numberp检查某个项是否是实数或整数。
7)quote返回表达式而不对其求值。
8)set将引号中的符号名的值设置成一个表达式的值。
9)setq将一个或多个符号的值设置为相应表达式的值。
10)type返回指定项的数据类型。
11)apply将参数表传给指定的函数。
12)defun定义函数。
13)eval返回AutoLISP表达式的求值结果。
14)lambda定义无名函数。
15)progn顺序地对每一个表达式进行求值,并返回最后那个表达式的值。(www.xing528.com)
16)trace调试AutoLISP程序时的辅助函数。
17)untrace清除指定函数的跟踪标志。
6.出错处理函数(4个)
1)alert显示一个警告框,其中显示一条出错或警告信息。
2)error可由用户定义的错误处理函数。
3)exit强行使当前应用程序退出。
4)quit强制退出当前应用程序。
7.应用程序的处理函数(11个)
1)ads返回现行已加载的ADS应用程序名表(可能含有路径)。
2)arx返回当前已加载的ObjectARX应用程序名表。
3)arxload加载ObjectARX应用程序。
4)arxunload卸载ObjectARX应用程序。
5)autoarxload预定义可自动加载某相关ObjectARX应用程序的命令名。
6)autoload预定义可自动加载某相关AutoLISP应用程序的命令名。
7)autoxload本函数用于加载定义了若干条命令的一个相关的ADS应用程序文件。
8)load对一个文件中的AutoLISP表达式求值。
9)startapp启动Windows应用程序。
10)xload加载ADS应用程序。
11)xunload卸载ADS应用程序。
8.查询和设置系统状态函数(8个)
1)显示标准的AutoCAD颜色选择对话框。
2)getenv以字符串方式返回指定的环境变量的值。
3)getcfg从acad.cfg文件的AppData段中检索应用数据。
4)setcfg将应用数据写到acad.cfg文件的AppData段中。
5)getvar获取一个AutoCAD系统变量的值。
6)ver返回当前AutoLISP版本号的字符串。
7)setvar设置AutoCAD系统变量为指定值。
8)help调用帮助工具。
9.显示控制函数(11个)
1)graphscr显示AutoCAD图形屏幕。
2)grclear清除当前视口(已废弃)。
3)grdraw在当前视口中的两个点之间显示一条矢量线。
4)grtext将文本写到状态行或屏幕菜单区。
5)grvecs在图形屏幕上绘制多个矢量。
6)menucmd发出菜单命令,或设置并检索菜单项状态。
7)redraw重画当前视口或当前视口中的一个指定对象(图元)。
8)terpri在命令行上输出一个换行符。
9)textpage从图形屏幕切换至文本屏幕。
10)textscr切换至文本屏幕(相当于AutoCAD Flip Screen功能键)。
11)vports返回表示当前视口配置的视口描述符表。
10.用户输入类函数(14个)
1)entsel提示用户通过指定一个点来选择单个对象(图元)。
2)getangle暂停以等待用户输入角度,然后以弧度形式返回该角度。
3)getcorner暂停等待用户输入矩形第二个角点的坐标。
4)getdist暂停以等待用户输入距离。
5)getfiled用标准的AutoCAD文件对话框提示用户输入一个文件名,并返回该文件名。
6)getint暂停以等待用户输入一个整数并返回该整数。
7)getkword暂停以等待用户输入一个关键字并返回该关键字。
8)getorient暂停以等待用户输入角度,并返回该角度。
9)getpoint暂停以等待用户输入点,并返回该点。
10)getreal暂停以让用户输入一个实数并返回该实数。
11)getstring暂停以等待用户输入字符串,并返回该字符串。
12)initget为随后的用户输入函数调用创建关键字。
13)nentsel提示用户指定点来选择对象(图元),得到这个对象所指片段的对象名。
14)nentselp在没有用户输入的情况下,本函数的功能与nentsel函数类似。
11.几何实用函数(6个)
1)angle以弧度为单位返回两点之间连线与当前UCS下X轴之间的夹角
2)distance返回两个点之间的距离。
3)inters求两条直线的交点。
4)osnap将某种对象捕捉模式作用于指定点而获得一个点,并返回该点。
5)polar在UCS坐标系下,求某点的指定角度和指定距离处的点,并返回该点。
6)textbox测量一个指定文本对象的尺寸,并返回围住该文本的一个矩形框的对角坐标。
12.数据类型和单位的转换函数(2个)
1)cvunit在不同测量单位之间进行换算。
2)trans将一个点(或位移量)从一个坐标系转换成另一个坐标系。
13.文件处理、设备访问和控制函数(10个)
1)close关闭一个已打开的文件。
2)findfile在AutoCAD库路径中搜索指定文件或目录。
3)open打开一个文件,供其他AutoLISP I/O函数访问。
4)read-char从键盘输入缓冲区或在打开的文件中读入一个字符,并将该字符转换成十进制的ASCII码值后返回。
5)read-line从键盘或已打开文件中读取行结束符前的字符串。
6)setfunhelp给帮助工具注册一个用户定义函数,这样,用户在请求该命令的帮助时,就会调用正确的帮助文件和主题。
7)write-char将一个字符写到屏幕上或一个已打开的文件中。
8)write-line将字符串写到屏幕上或一个已打开的文件中。
9)grread从AutoCAD的任何一种输入设备中读取数值。
10)tablet获取和设置数字化仪校准。
14.选择集的处理函数(6个)
1)ssadd将对象(图元)加入到选择集中,或创建新的选择集。
2)ssdel从选择集中撤销对象(图元)。
3)ssget根据选定对象创建选择集。
4)sslength求出一个选择集中的对象(图元)数目,并将其作为一个整数返回。
5)ssmemb测试某对象(图元)是否是选择集的成员。
6)ssname返回选择集中由序号指定的那个对象(图元)的图元名。
15.对象处理函数(8个)
1)entdel删除对象(图元)或恢复先前删除的对象。
2)entget获得对象(图元)的定义数据。
3)entlast返回图形中最后那个未删除的主对象(图元)名称。
4)entmake在图形中创建一个新图元。
5)entmod修改对象(图元)的定义数据。
6)entnext返回图形中的下一个对象(图元)名。
7)entupd更新对象(图元)的屏幕显示。
8)handent根据对象(图元)的句柄返回它的对象(图元)名。
16.程序中执行AutoCAD的命令(1个)
command执行一条AutoCAD命令。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。