AutoLISP(1)概述、基本函数、表处理函数、绘图函数
- 格式:ppt
- 大小:357.00 KB
- 文档页数:106


AutoLisp 简介●本简介仅列出较常用之基本观念。
详细且完整之功能,请自行参阅当时最新版本之AutoLisp,或/~rogh/autolisp/。
●AutoLisp 乃是依Lisp程序语言为基础,加以扩充,使之可呼叫AutoCAD绘图功能。
●Lisp = List Programming●List (串行):一种数据结构表示法:(1 2 3 ( A B ) 5 6 )atom :最基本之构成原子。
如:1, 2, 3, A,B,5,6element:构成list的元素,可以是atom(如:1,2,3,5,6)或者子串行(sub-list, 如:(A B) )●Lisp的特性将list视为函式(function),其中,第一个元素为运算子(operator),余为操作数(operand)。
例如:一般数学式 3 + 2,Lisp式为(+ 3 2);f(x,y)的Lisp式为(f x y)。
数据(data)为一种特殊的函式,其运算子为quote。
例如:资料(a,b,c)的Lisp式为(quote a b c) 或简示为‟(a b c)函式内部指述(statement),依序(sequential)执行。
函式之间无必然前后之执行关系(non-procedural)。
不分大小写,系统一律响应以大写。
●数据型态1.integer2.real3.●常数1.T :true2.Nil :false●;批注符号,置于行首。
该行不执行。
●(Auto)Lisp 为交谈式(interactive)的操作环境,使用interpreter (而非compiler)。
可以在屏幕上交谈式执行,或写成程序,以批次式执行(详后)。
●常用指令集(完整指令集,请自行参考AutoLisp相关手册)数学运算指令串行运算数据型态转换控制指令函式定义指令例:●以文字处理软件,撰写下列程序,并以「纯文字」模式,在D:\ 下,存成AAA.LSP 檔。
AutoLisp语⾔的学习和使⽤(1)第七节AutoLISP语⾔及其程序设计LISP(List Processing)是⼀种计算机的表处理语⾔。
LISP语⾔是⼈⼯智能领域中⼴泛应⽤的⼀种程序语⾔。
AutoLISP语⾔是⼀种运⾏在AutoCAD环境下的LISP编程语⾔,或称为AutoCAD的⼀种嵌⼊式语⾔。
它采⽤了与CommandLISP(⼀种通⽤的LISP语⾔版本)相近的语法及习惯约定,并吸收了LISP语⾔的主要函数,同时增加了针对AutoCAD特点的许多功能,如:可以把AutoLISP和AutoCAD的绘图命令透明地结合起来,使设计和绘图完全融为⼀体。
利⽤AutoLISP语⾔编程可以实现对AutoCAD当前图形数据库进⾏直接访问和修改。
在LISP语⾔中,最基本的数据类型是符号表达式。
LISP语⾔的特点是程序和数据都采⽤符号表达式的形式,即⼀个LISP程序可以把另⼀个LISP程序作为它的数据进⾏处理。
因此使⽤LISP语⾔编程⼗分灵活,看起来是⼀个⼀个的函数调⽤。
⽀持递归定义也是Auto LISP语⾔的重要特性。
AutoLISP语⾔是提供给⽤户的主要⼆次开发⼯具之⼀。
⽤AutoLISP语⾔编写应⽤程序,可以为AutoCAD增加新的命令或修改AutoCAD,以适应⽤户的特殊需要。
AutoCAD软件的开发者——AutoDesk公司许诺,将保证今后AutoCAD软件对AutoLISP 语⾔的⽀持。
掌握使⽤和编制AutoLISP应⽤程序的⽅法和技术将⼤⼤提⾼⽤户的⼯作效率和⼆次开发⽔平,增强AutoCAD的灵活性,并将得到长期、稳定的技术⽀持。
1.1 AutoLISP语⾔的基本知识1.1.1 AutoLISP语⾔的特性AutoLISP语⾔是⼀种解释型语⾔,它的特点如下:1.解释型语⾔编程语⾔有两种基本类型:解释型和编译型。
AutoLISP属于解释型语⾔。
在解释型语⾔中,⽤户编写的源程序直接由解释器解释并执⾏。
函数大全一、数学运算功能函数1 . l (十数值数值)返回:累计实数或整数数值1. 2(一数值数值)返回:差值1. 3(* 数值数值)返回:全部数值乘积1. 4(/ 数值数值)返回:第一个数值除以第二个此后数值的商1. 5(l 十数值)返回:数值十 ll. 6(1—数值)返回:数值一ll. 7(abs 数值)返回:数值的绝对值1. 8(atan 数值)返回:反正切值1. 9(cos 角度)返回:角度的余弦值,角度值为弧度1. 10( exp 数值)返回:数值的指数1. 11( expt 底数指数)返回:底数的指数值1. 12( fix 数值)返回:将数值变换为整数值1. 14( gcd 数值 1 数值 2)返回:两数值的最大公因数1. 15( log 数值)返回:数值的自然对数值1. 16( max 数值数值)返回:数值中的最大值1. 17( min 数值数值)返回:数值中的最小值1. 18 pi常数∏,其值约为 3. 14159261. 19( rem 数值 1数值 2 )返回: M数值的相除的余数l. 20( sin 角度)返回:角度的正旋值,角度值为弧度1. 21( sqrt 数值)返回:数值的平方根二、查验与逻辑运算功能函数2. l (= 表达式 1表达式 2)比较表达式 1 能否等于式 2,合用数值及字符串2.2 (/=表达式 1 表达式2)比较表达式 1 能否大于等于表达式2 2. 3(<表达式 1表达式 2)比较表达式 1 能否<小于表达式2 2.4(< =表达式1表达式2)比较表达式 1 能否<一小于等于表达式 2 2. 5(>表达式 1表达式2)比较表达式 1 能否>大于表达式2 2.6(> =表达式1表达式2)比较表达式 1 能否大于等于表达式2 2.7( ~数值)返回:数值的位not值,( 1 的补码)2. 8 ( and表达式 1 表达式2)返回:逻辑and 的结果2. 9(boole 函数整数整数)返回:位式布尔运算2 . 10(eq表达式1表达式2)比较表达式 1 与表达式 2 能否同样,合用列表比较(实质同样)2 . 11( equal表达式1表达式 2 [差量])比较表达式1与表达式 2 能否同样,差量可省略(内容同样)三、变换运算功能函数3. l (angtof 字符串[模式])返回:角度值的字符串转成实数3. 2(angtos 角度[模式[精度]])返回:角度转成的字符串值3. 3(atof字符串)返回:字符串转成实数值3. 4 ( atoi 字符串)返回:字符串转成整数值3. 5 ( cvunit数值原始单位变换单位)返回:数值变换单位后的值变换依据acad. nut 文件3. 6(distof字符串[模式])返回:依据模式将字符串转成实数值3. 7(itoa整数)返回:整数转成字符串3. 8(rtos数值模式[精度])返回:实数转成字符串3. 9 ( trans点原地点新地点[位移])返回:变换坐标系统值四、列表办理功能函数4. 1( append列表列表)联合全部列表成一个列表4. 2( assoc重点元素联合列表)依据重点元素搜寻联合列表中关系信息4. 3 (car列表 ) 返回列表中的第一个元素,往常用来求X坐标4. 4( cadr列表)返回列表中的第二个元素,往常用来求y 坐标4. 5( caddr列表)返回列表中的第三个元素,往常用来求Z 坐标4. 6( cdr列表)返回:除掉第一个元素后的列表4. 7( cons新元素列表)返回:将新元素增添到列表4. 8( foreach名称列表表达式)返回:将列表的每一元素对应至名称再依据表达式履行响应4. 9( length列表)返回:列表内的元素数目4. 10( list元素元素)返回:将全部元素归并为一列表4. 11( listp元素)返回:判断元素能否为一串4. 12( mapcar 函数列表 1 列表 2)返回:将列表 1、列表 2 列表的元素配合函数,求得新列表4. 13( member重点元素列表)返回:依据重点元素(含似后的列表4. 14( nth n列表)返回:列表的第n 个元素4. 15( reverse列表)返回:将列表元素依据次序颠倒过来的列表4. 16( subst新项旧项列表)返回:替代新旧列表后的列表五、字符串、字符、文件办理函数5. l ( ascii字符串)返回:字符串第一个字符的“ASCII ”码5. 2( chr整数)返回:整数所对应的ASCII 单调字符串5. 3( close文件名称)封闭文件5. 4( open文件名模式)返回:翻开文件代码,准备读取或写入信息5. 5( read 字符串)返回:列表中的字符串的第一组元素5. 6( read - char [文件代码])返回:经过键盘或文件中读取单调字符5. 7( read - line [文件代码])返回:经由键盘或文件中读取一行字符串5. 8( strcase字符串[字样])返回:变换字符串大小写5. 9( strcat字符串 1 字符串 2)返回:将各字符串归并为一个字符串5. 10( strlen字符串)返回:字符串组成的字符数(即字符串长度)5. 11( substr字符串开端长度)返回:拿出于字符串‘5. 12( wcmatch 字符串格式)返回: T 或 nil ,将字符串与通用字符进行比较5. 13( write- char 数值[文件代码])返回:将一ASCII 字符写到文件或屏幕15. 14( write- line 字符串[文件代码])返回:将字符串写到文件或屏幕上六、等候输入功能函数6. l ( getangle [基点] [ 提示])恳求输入十进制角度数值,响应一个弧度值提示及参照点无关紧要6. 2( getcorner基点[提示])恳求输入另一矩形框对角点坐标6. 3( getdist[基点][提示])恳求输入一段距离6. 4( getint[提示])恳求输入一个整数值6. 5( getkword[提示]恳求输入“重点词”6. 6( getorient [基点][提示])恳求输入十进制角度,响应一弧度值不受 angbase、 angdir 影响6. 7( getPoint[基点][提示])恳求输入一个点的坐标6. 8( getreal[提示]恳求输入一个实数6. 9( getstring [提示])恳求输入一个字符串6. 10( initget[位]字符串)设定下次getxxx函数的有效输入七、几何运算功能函数7. l ( angle点 1点 2)获得两点的角度弧度值7. 2( distance点 1点 2)获得两点的距离7. 3( inters点 1点 2点 3 点 4 [模式])获得两条线的交点7. 4( osnap点模式字符串)依据捕获模式获得另一坐标点7. 5( polar基点弧度距离)依据极坐标法获得另一坐标点7.6 ( textbox对象列表)获得文字字符串的两个对角点坐标八、对象办理功能函数8. l ( entdel对象名称)删除或撤消删除对象8. 2( entget对象名称[应用程序列表])拿出对象名称的信息列表8. 3 (entlast)拿出图形信息中的最后一个对象8. 4( entmake对象列表)成立一个新的对象列表8. 5( entmod对象列表)依据更新的信息列表更新屏幕上元体8. 6( entnext [对象名称 ] )搜寻图面中的下一个对象8. 7( entsel[提示])恳求选用一个对象,响应包括对象名称及选点坐标的列表;8. 8( entupd对象名称)更新屏幕上复元体图形8. 9( handent图码)返回:图码的元体名称8. 10( nentsel[提示])返回: BLOCK所含副元体对象信息列表8. 11( nentselp[提示][点])返回: BLOCK所含副元体对象信息似4*4 矩形表示)九、选择集、符号表办理函数9. l ( ssadd [对象名称][选择集])将对象加当选择集或成立一新选择集9. 2( ssdel对象名称选择集)将对象自选择集中移出9. 3( ssget[模式][点 1 ][点 2 ]获得一个选择集9. 4( ssget” X” [过滤列表])获得依据过滤列表所指定范围的选择集9. 5( sslenth选择集)计算选择集的对象个数9. 6( ssmemb 对象名称选择集)响应付象名称能否包括于选择集内9. 7( ssname选择集索引值)依据索引值拿出选择集中的对象名称9.8( tblnext 符号表名称[ T])检视符号表,有效的符号表:”LAYER”、”LTYPE”、”VIEW”、” STYLE”、” BLOCK”9. 9( tblsearch符号表名称符号)在符号表中搜寻符号十、 AutoCAD有关查问、控制功能函数10. l ( command 10. 2( findfile 10. 3( getfiled ”AutoCAD命令” )超重量级函数,调用履行AutoCAD 命令文件名)返回:该文件名的路径及文件名标题内定档名扩展名旗帜)经过标准AutoCAD文件对话DCL对话框获取文件10. 4( getenv”环境变量” )获得该环境变量的设定值,以字符串表示10. 5( getvar”系统变量” )获得该系统变量的设定值,以字符串表示10. 6( setvar”系统变量”值)设定该系统变量的值10. 7( regapp应用类项)将当前的AutoCAD图形登记为一个应用程序名称十一、判断式、循环有关功能函数11. 1( If <比较式><表达式 1> [ 表达式 2] 检算比较式结果,假如为真,履行<表达式 1>,不然履行<表达式2>11. 2( repeat次数 [<表达式><表达式>])重复履行 N 次表达式11. 3( While<比较式><表达式>)当条件成立则履行表达式内容11. 4( cond<比较式1><表达式 1>多条件式的 if整合功能<比较式2><表达式2><比较式3><表达式3>)11.5 ( prong表达式 1表达式 2)连结此中的表达式为一组,常用于配合 if 、cond 等函数十二、函数办理、定义、追踪与错误办理功能函数12. l ( *error*字符串)程序错误时的警示信息12. 2( alert字符串)以对话框式显示出警示字符串12. 3( apply功能函数列表)将功能函数与列表联合后履行12. 4( defun名称自变量列表表达式_.)自定函数或子程序12. 5( eval表达式)返回:表达式的履行结果12. 6( exit )强迫退出当前的应用程序12. 7( lambda 自变量表达式)定义未命名的函数12. 8( progn表达式1表达式2)连结其内的表达式为一组,常用于配合if、 cond 等函数12. 9( quit )强迫退出当前的应用程序12. 10( tablet代码[列1列2列3方向])取用或成立对数字板的校调12. 11( trace函数)对函数设定追踪标志,协助检错12. 12( untrace函数)对函数设定排除追踪标志十三、显示、打印控制功能函数13. l ( gfaphscr )作图环境切换到图形画面13. 2( grclear)临时消除模前的屏幕画面13. 3( grdraw 起点终点颜色[ 亮显])临时性的画出一条线13. 4( grread [追踪])由输入设施读取追踪值13. 5( grtext地点字符串[亮显])将字符串显示在状态列或屏幕菜单上13. 6( grvecs向量列表[转置矩阵])临时性的画出多条线13. 7( menucmd字符串);供给在 AlltOLISP中调用各菜单13.8( Prinl [表达式[文件代码]]将表达式打印于命令区或已翻开的文件句柄字符则以“ ”为前缀睁开13. 9( pinc [表达式[文件代码]]除句柄字符则不以”\”为前缀展外开其他同Prinl 13.10( print [表达式[文件代码]]除表达式会往下一新队列出,及空一分外其他同prinl 13. 11( prompt 信息)将信息显示于屏幕的命令区,并随后响应一个nil 信息13. 12( redraw [对象名称[模式]])重绘整张图或依据对象名称重绘该图形13. 13( terpri)在屏幕上显示新列13. 14( textscr)作图环境切换到文字画面13. 15( textpage )消除文字画面文字近似DOS 的 cls 命令13. 16( vports)返回:窗口组态列表十四、符号、元素、表达式办理功能函数14. l ( atom 元素)假如元素不是列表,响应T,不然为nil14. 2( atoms- family格式闲号列表])返回:一组己定义函数的符号列表14. 3( boundp 表达式)返回:T 或 nil,响应表达式能否有值存在14. 4( minusp 元素)返回:T 或 n 儿元素能否为负值14. 5( not元素)返回: T 或 n 儿判断元素能否为ni114. 6( null元素)返回: T 或 nil 判断元素能否被给予 nil值14. 7( numberp 元素)返回: T 或 nil ,元素能否为整数或实数14. 8( quote 表达式)响应表达式未检算前状态,同“‘”功能14. 9( set 符号表达式)将表达式结果设定给带单引号’符号14. 10( setq符号 1 表达式 1[符号 2 表达式 2])设定表达式结果给各符号14. 11( type元素)返回:元素的信息型态14. 12( zerop 元素)返回: T 或 nil ,元素能否为0 值十五、 ADS 、 ARX 、 AutoLISP加载与卸载函数15. l ( ads)返回:当前加载ADS程序列表15. 2( arx )返回:当前加载ARX 程序列表15. 3( arxload应用程序[犯错办理]))返回:加载ARX 程序15. 4( arxunload应用程序[犯错办理]))返回:卸载ARX 程序15. 5( ver )返回:当前AutoLISP版本字符串15. 6( load LSP 文件名[加载失败])加载 AutoLISP文件(*.lsp)15. 7 ( xload 应用程序 [ 错办理 ] )加载 ADS应用程序15. 8(xunloa应用程序[犯错办理])卸载ADS应用程序十六、内存空间管理函数16. l ( alloc数值)以节点数值设定区段大小16. 2( expand 数值)以区段数值配置节点空间16. 3( gc)强迫回收废内存16. 4( mem)显示当前的内存使用状态16. 5( xdroom 对象名称)返回对象扩展信息同意使用的内存空间16. 6( xdsize列表)返回对象扩展信息所占用的内存空间十七、其他重要的功能函数17. l ( acad_colordlg颜色码旗帜)显示出标准AutoCAD 颜色选择对话框17. 2( acad_helpdlg求援文件名主题)显示出标准AutoCAD 求援对话框17. 3( acad_strlsort字符串列表)作字符串列表排序17. 4( bherrs )获得bhatch与bpcly失败所产生的错误信息17. 5( bhatch 点[选择集 [ 向量]])依据 Pick point选点方式调用bhatch命令,绘制选集地区的剖面线17. 6( bpoly 点[选择集[ 向量 ] ])依据Pick point选点方式调用bpoly命令并产生必定域Polyline17. 7( cal计算式字符串)履行如CAL计算功能十八、 ADS 、 ARX 外面定义的3D 函数18.1 ( align 自变量 1 自变量 2 ....)履行如 ALIGN 命令各选项次序18. 2( c:3dsin模式 3DS文件名)导入3DS文件18. 3( C:3dsout模式 3DS文件名)输出3DS文件18. 4( c:background 模式[选项])设定衬着背景18. 5( C:fog 模式[选项])设定衬着的雾成效18. 6( C:light模式[选项])设定衬着的灯光控制18. 7( c:lsedit模式【选项1】设定衬着的光景控制18. 8( C:lslib模式[选项])管理光景图库18. 9( c:matilb模式材质材质库名)管理材质数据库18. 10( c: mirror3d 自变量 1 自变量 2)履行如 MIRROR3D命令18. 11( C: psdrap 模式)依据模式设定值( 0 或 1),传唤 psdrap命令18. 12( C: psfill对象名称图案名称[自变量 1[自变量 2]])以 POStSCript图案填满18. 13( c: psin文件名地点比率)插入一个Postscript(*.eps)文件18. 14( c: render [衬着文件])履行衬着成效18. 15( C: rfileopt格式自变量1自变量2自变量3)设定履行衬着选项18. 16( c: replay影像文件名影像类型[选项])展现影像文件TGA、 BMP、 TIF 18. 17( C: rmat 模式选项)控管材质成立、贴附、编写、分别18. 18( c: rotate3d自变量1自变量2)履行如ROTATE3D命令各选项次序18. 19( C: rpref模式选项[设定])衬着环境设定18. 20( c: saveimg 影像文件名影像类型[选项])储藏图像文件TGA、 BMP、 TIF 18. 21 ( c: scene 模式 [ 选项 ] )SCENE场景管理18. 22( C: setuv 模式选集自变量1自变量2)SETUV贴图模式管理18. 23( C: showmat 自变量 1)显示对象的材质贴附信息18. 24( C: solprof自变量1自变量工..)成立3D 实体的轮廓影像18. 25( C: StatS [衬着信息文件])显示衬着信息统计信息十九、 ADS 、 ARX 外面定义的数据库有关函数19. l ( c:aseadmin 自变量 1 自变量 2)管理外面数据库19. 2( c:aseexportt自变量1自变量2)输出信息19. 3 ( c: aselinks自变量1自变量2)连结对象与信息19. 4( c:aserow 自变量 1 自变量 2)管理外面信息表格19. 5( c:aseselect自变量1自变量2)成立外面信息与对象选集19. 6 ( c: asesqled自变量1自变量2)履行SQL程序。