AutoLiSP函数分类整理


应用程序处理函数

函数 说明
(arx) 返回当前加载的ObjectARX应用程序列表
(arxload application [onfailure]) 加载ObjectARX应用程序
(arxunload application [onfailure]) 卸载ObjectARX应用程序
(autoarxload filename cmdlist) 预定义加载关联ObjectARX文件的命令名
(autoload filename cmdlist) 预定义加载关联AutoLISP文件的命令名
(initdia [dialogflag]) 强制显示下一个命令对话框
(load filename [onfailure]) 计算文件中的AutoLISP表达式
(startapp appcmd file) 启动Windows应用程序
(vl-vbaload "filename") 加载Visual Basic工程
(vl-vbarun "macroname") 运行Visual Basic宏
(vlax-add-cmd global-name func-sym [local-name cmd-flags]) 向AutoCAD的内置命令集中添加命令

数学函数

函数 说明
(+ [number number]...) 返回所有数值的总和
(- [number number]...) 从第一个数值中减去第二个和后面的数值,返回差值
(* [number number]...) 返回所有数值的乘积
(/ [number number]...) 用第一个数值除以后面其他数值的乘积,返回商值
(~ int) 返回参数的按位非(即1的补码)
(1+ number) 返回参数增1的结果
(1- number) 返回参数减1的结果
(abs number) 返回参数的绝对值
(atan num1 [num2]) 返回一个数的反正切值(以弧度为单位)
(cos ang) 返回一个以弧度表示的角度的余弦值
(exp number) 返回常数e的指定次幂
(expt base power) 返回一个数的指定次幂
(fix number) 截去实数的小数部分,将它转换成整数后返回该整数
(float number) 将一个数转换成实数后返回该实数
(gcd int1 int2) 返回两个整数的最大公约数
(log number) 以实数形式返回一个数的自然对数
(logand [int int...]) 返回一组整数逻辑按位与的结果
(logior [int int...]) 返回一组整数逻辑按位或的结果
(lsh [int numbits]) 返回一个整数进行指定位逻辑移位后的结果
(max [number number...]) 返回给定的数中的最大值
(min [number number...]) 返回给定的数中的最小值
(minusp number) 检查一个数是否为负数
(rem [num1 num2...]) 用第一个数除以第二个数,返回余数
(sin ang) 以实数形式返回一个以弧度表示的角度的正弦值
(sqrt number) 以实数形式返回一个数的平方根
(zerop number) 检查一个数是否为0

等量和条件函数

函数 说明
(= numstr [numstr]...) 如果所有参数的数值相等则返回T,否则返回nil
(/= numstr [numstr]...) 如果所有参数的数值不相等则返回T,否则返回nil
(< numstr [numstr]...) 如果所有参数的数值都小于它右边的参数则返回T,否则返回nil
(<= numstr [numstr]...) 如果所有参数的数值都小于或等于它右边的参数则返回T,否则返回nil
(> numstr [numstr]...) 如果所有参数的数值都大于它右边的参数则返回T,否则返回nil
(>= numstr [numstr]...) 如果所有参数的数值都大于或等于它右边的参数则返回T,否则返回nil
(and [expr...]) 返回一组表达式的逻辑与
(Boole func int1 [int2...]) 用作一个通用的按位布尔函数
(cond [(test result...)...]) 用作AutoLISP的主条件函数
(eq expr1 expr2) 判断两个表达式是否相同
(equal expr1 expr2 [fuzz]) 判断两个表达式的值是否相等
(if testexpr thenexpr [elseexpr]) 根据条件计算表达式
(or [expr...]) 返回一组表达式的逻辑或
(repeat int [expr...]) 计算每个表达式指定的次数,返回最后一个表达式的值
(while testexpr [expr...]) 计算测试表达式,如果结果不是nil,则计算其它表达式,重复这个计算过程,直到测试表达式的结果为nil

错误处理函数

函数 说明
(alert string) 显示警告框,其中显示错误或警告信息,该信息以字符串形式传递
(*error* string) 用户可定义的错误处理函数
(exit) 强制退出当前应用程序
(quit) 强制退出当前应用程序
(vl-catch-all-apply 'function list) 将参数列表传递给指定的函数,并捕获异常
(vl-catch-all-error-message error-obj) 从错误对象中返回信息
(vl-catch-all-error-p arg) 判断vl-catch-all-apply返回的参数是否是错误对象

函数处理函数

函数 说明
(apply function lst) 将参数表传递给指定的函数
(defun sym ([arguments] [/variables...]) expr...) 定义一个函数
(defun-q sym ([arguments] [/variables...]) expr...) 将函数定义为表
(defun-q-list-ref 'function) 显示用defun-q定义的函数的表结构
(defun-q-list-set 'sym list) 将函数定义为表
(eval expr) 返回AutoLISP表达式的计算结果
(lambda arguments expr...) 定义无名函数
(progn [expr]...) 按顺序计算每一个表达式,返回最后一个表达式的值
(trace function...) 调试AutoLISP程序时的辅助工具
(untrace function...) 清楚指定函数的跟踪标志

表操作函数

函数 说明
(acad_strlsort lst) 按字母顺序对字符串进行排序
(append lst...) 将任意数目的表合成一个表
(assoc item alist) 从关联表中搜索一个表,如果找到则返回该关联表条目
(car lst) 返回表的第一个元素
(cdr lst) 返回指定的表,表的第一个元素除外
(cons new-first-element lst) 基本的表构造函数
(foreach name lst [expr...]) 将表的所有成员带入表达式求值
(last lst) 返回表的最后一个元素
(length lst) 以整数形式返回表中元素的数目
(list [expr...]) 将任意数目的表达式合成一个表
(listp item) 检查某个项目是否是表
(mapcar function list1... listn) 将一个或多个表的各个元素作为函数的参数,返回该函数执行结果的表
(member expr lst) 在表中搜索指定的表达式,并从第一次出现该表达式的位置开始返回表的其余部分
(nth n lst) 返回表的第n个元素
(reverse lst) 颠倒表中元素的顺序,然后返回修改后的表
(subst newitem olditem lst) 在表中搜索某个旧项目,并用一个新项目替换表中的所有旧项目,然后返回修改后的表的副本
(vl-consp list-variable) 判断表是否为nil
(vl-every predicate-function list [more-lists]...) 检查每个元素合并的预测是否为真
(vl-list* object [more-objects]...) 构造并返回表
(vl-list->string char-codes-list) 将与整数表相关联的字符合并到字符串中
(vl-list-length list-or-cons-object) 计算真表的表长度
(vl-member-if predicate-function list) 判断表成员之一的预测是否为真
(vl-member-if-not predicate-function list) 判断表成员之一的预测是否为nil
(vl-position symbol list) 返回指定的表项目的索引
(vl-remove element-to-remove list) 从列表中删除元素
(vl-remove-if predicate-function list) 返回函数测试失败的表的所有元素
(vl-remove-if-not predicate-function list) 返回通过函数测试的表的所有元素
(vl-some predicate-function list [more-lists]...) 检查元素合并的预测是否为nil
(vl-sort list less?-function) 根据给定的比较函数对表中的元素排序
(vl-sort-i list less?-function) 根据给定的比较函数对表中的元素排序,返回元素索引号
(vl-string->list string) 将字符串转换为字符代码表

字符串处理函数

函数 说明
(read [string]) 返回从字符串中获得的第一个表或原子数据
(strcase string [which]) 将字符串中的所有字母转换成大写或小写,然后返回修改后的字符串
(strcat [string1 [string2]...) 将多个字符串拼接成一个字符串,然后返回新字符串
(strlen [string]...) 返回代表字符串中字符数目的整数
(subst string start [length]) 返回字符串的子串
(vl-prin1-to-string object) 返回表示任意LISP对象的字符串,如同prin1函数输出的字符串
(vl-princ-to-string object) 返回表示任意LISP对象的字符串,如同princ函数输出的字符串
(vl-string->list string) 将字符串转换为字符代码表
(vl-string-elt string position) 返回表示在字符串中指定位置的字符的ASCII码
(vl-string-left-trim character-set string) 从字符串的开始位置删除指定的字符串
(vl-string-mismatch str1 str2 [pos1 pos2 ignore-case-p]) 返回两个字符串的最长公共前缀的长度,指定位置的字符
(vl-string-position char-code str [start-pos [from-end-p]]) 在字符串中查找指定ASCII码的字符
(vl-string-right-trim characterset string) 从字符串的末尾删除指定的字符串
(vl-string-search pattern string [startpos]) 在字符串中搜索指定的模式
(vl-string-subst new-str pattern string [start-pos]) 用一个字符串替换另一个字符串中的子串
(vl-string-translate source-set dest-set str) 用指定的字符集替换字符串中的字符
(vl-string-trim char-set str) 从字符串的开始河末尾删除指定的字符
(wcmatch string pattern) 在字符串上进行通配代码匹配

符号处理函数

函数 说明
(atom item) 验证一个项目是否是原子数据
(atoms-family format [symlist]) 返回当前定义符号列表
(boundp sym) 检验值是否被绑定到符号上
(not item) 验证项目的计算结果是否等于nil
(null item) 验证项目是否被绑定到nil
(numberp item) 验证项目是实数还是整数
(quote expr) 返回表达式但不对它进行计算
(set sym expr) 将被引号引起来的符号名的值设置成表达式
(setq sym1 expr1 [sym2 expr2]...) 将符号的值设置成相关联的表达式
(type item) 返回指定项目的类型
(vl-symbol-name symbol) 返回包含符号名的字符串
(vl-symbol-value symbol) 返回绑定到符号的当前值
(vl-symbolp object) 标识指定的对象是否是符号

转换函数

函数 说明
(angtof string [mode])
(angtos angle [mode [precision]])
(ascii string)
(atof string)
(atoi string)
(chr integer)
(cvunit value from to)
(distof string [mode])
(itoa int)
(rtos number [mode [precision]])
(trans pt from to [disp])

设备访问函数

函数 说明
(grread [track] [allkeys [curtype]])
(tablet code [row1 row2 row3 direction])

显示控制函数

函数 说明
(graphscr)
(grdraw from to color [highlight])
(grtext [box text [highlight]])
(grvecs vlist [trans])
(menucmd string)
(menugroup groupname)
(prin1 [expr [file-desc]])
(princ [expr [file-desc]])
(print [expr [file-desc]])
(prompt msg)
(redraw [ename [mode]])
(terpri)
(textpage)
(textscr)
(vports)

文件处理函数

函数 说明
(close file-desc)
(findfile filename)
(open filename mode)
(read-char [file-desc])
(read-line [file-desc])
(vl-directory-files [directory pattern directories])
(vl-file-copy "source-filename" "destination-filename" [append])
(vl-file-delete "filename")
(vl-file-directory-p "filename")
(vl-file-rename "old-filename" "newfilename")
(vl-file-size "filename")
(vl-file-systime "filename")
(vl-filename-base "filename")
(vl-filename-directory "filename")
(vl-filename-extension "filename")
(vl-filename-mktemp ["pattern" "directory" "extension"])
(write-char num [file-desc])
(write-line string [file-desc])

几何函数

函数 说明
(angle pt1 pt2)
(distance pt1 pt2)
(inters pt1 pt2 pt3 pt4 [onseg])
(osnap pt mode)
(polar pt ang dist)
(textbox elist)

查询和命令函数

函数 说明
(acad_colordlg colornum [flag])
(acad_helpdlg helpfile topic)
(command [arguments]...)
(getcfg cfgname)
(getcname cname)
(getenv "variable-name")
(getvar varname)
(help [helpfile [topic [command]]])
(setcfg cfgname cfgval)
(setenv "varname" "value")
(setfunhelp "fname" ["helpfile" ["topic" ["command"]]])
(setvar varname value)
(ver)
(vl-cmdf [arguments]...)
(vlax-add-cmd global-name func-sym [local-name cmd-flags])
(vlax-remove-cmd global-name)

用户输入函数

函数 说明
(entsel [msg])
(getangle [pt] [msg])
(getcorner pt [msg])
(getdist [pt] [msg])
(getfiled title default ext flags)
(getint [msg])
(getkword [msg])
(getorient [pt] [msg])
(getpoint [pt] [msg])
(getreal [msg])
(getstring [cr] [msg])
(initget [bits] [string])
(nentsel [msg])
(nentselp [msg] [pt])

扩展数据处理函数

函数 说明
(regapp application)
(xdroom ename)
(xdsize lst)

对象处理函数

函数 说明
(entdel ename)
(entget ename [applist])
(entlast)
(entmake [elist])
(entmakex [elist])
(entmod elist)
(entnext [ename])
(entupd ename)
(handent handle)
(vlax-dump-object obj)
(vlax-erased-p obj)
(vlax-get-acad-object)
(vlax-method-applicable-p obj method)
(vlax-object-released-p obj)
(vlax-read-enabled-p obj)
(vlax-release-object obj)
(vlax-typeinfo-available-p obj)
(vlax-write-enabled-p obj)

选择集处理函数

函数 说明
(ssadd [ename [ss]])
(ssdel ename ss)
(ssget [mode] [pt1 [pt2]] [pt-list] [filter-list])
(ssgetfirst)
(sslength ss)
(ssmemb ename ss)
(ssname ss index)
(ssnamex ss index)
(sssetfirst gripset [pickset])

符号表和词典处理函数

函数 说明
(dictadd ename symbol newobj)
(dictnext ename symbol [rewind])
(dictremove ename symbol)
(dictrename ename oldsym newsym)
(dictsearch ename symbol [setnext])
(layoutlist)
(namedobjdict)
(setview view_description [vport_id])
(snvalid sym_name)
(tblnext table-name [rewind])
(tblobjname table-name symbol)
(tblsearch table-name symbol [setnext])
(vlax-ldata-delete dict key)
(vlax-ldata-get dict key [defaultdata])
(vlax-ldata-list dict)
(vlax-ldata-put dict key data)
(vlax-ldata-test data)

内存管理函数

函数 说明
(alloc int)
(expand number)
(gc)
(mem)

对话框打开和关闭函数

函数 说明
(done_dialog [status]) 终止对话框
(load_dialog dclfile) 加载DCL文件
(new_dialog dlgname dcl_id [action [screen-pt]]) 开始并显示新对话框,也可以指定缺省动作
(start_dialog) 显示对话框并开始接受用户输入
(term_dialog) 终止所有当前对话框,就好像用户逐个取消这些对话框
(unload_dialog dcl_id) 卸载DCL文件

控件和属性处理函数

函数 说明
(action_tile key action-expression) 指定当用户选择对话框中的特定控件时要执行的动作
(get_attr key attribute) 获取对话框属性的DCL值
(get_tile key) 获取对话框控件的当前运行时的值
(mode_tile key mode) 设置对话框控件的模式
(set_tile key value) 设置对话框控件的值

列表框和弹出式列表框处理函数

函数 说明
(add_list string) 在当前活动对话框列表中添加或修改一个字符串
(end_list) 结束处理当前活动对话列表框
(start_list key [operation [index]]) 开始处理列表框中或弹出式列表对话框框控件中的列表

图像控件处理函数

函数 说明
(dimx_tile key)和(dimy_tile key) 以对话框单位为单位获取控件的尺寸
(end_image) 结束创建当前活动对话框图像
(fill_image x1 y1 wid hgt color) 在当前活动对话框图像控件中绘制一个填充矩形
(slide_image x1 y1 wid hgt sldname) 在当前活动对话框图像控件中显示一个幻灯片
(start_image key) 开始在对话框中创建一个图像
(vector_image x1 y1 x2 y2 color) 在当前活动对话框图像中绘制一个矢量

特定应用程序处理函数

函数 说明
(client_data_tile key clientdata) 将应用程序管理的数据与对话框控件相关联

Visual LISP的AutoLISP扩展

函数 说明
(vl-load-com)

ActiveX集合操作函数

函数 说明
(vlax-for symbol collection [expression1 [expression2...]])
(vlax-map-collection obj function)

ActiveX数据转换函数

函数 说明
(vlax-3D-point list)
(vlax-3D-point x y [z])
(vlax-ename->vla-object entname)
(vlax-make-safearray type '(l-bound . u-bound) ['(l-bound . u-bound)...])
(vlax-make-variant value type)
(vlax-safearray-fill var 'element-values)
(vlax-safearray-get-dim var)
(vlax-safearray-get-element var element)
(vlax-safearray-get-l-bound var dim)
(vlax-safearray-get-u-bound var dim)
(vlax-safearray-put-element var element value)
(vlax-safearray-type var)
(vlax-safearray->list var)
(vlax-tmatrix list)
(vlax-variant-change-type var type)
(vlax-variant-type var)
(vlax-variant-value var)
(vlax-vla-object->ename obj)

ActiveX方法调用函数

函数 说明
(vlax-invoke-method obj method list)
(vlax-method-applicable-p obj method)

ActiveX对象处理函数

函数 说明
(vlax-dump-object obj)
(vlax-erased-p obj)
(vlax-get-acad-object)
(vlax-method-applicable-p obj method)
(vlax-object-released-p obj)
(vlax-read-enabled-p obj)
(vlax-release-object obj)
(vlax-typeinfo-available-p obj)
(vlax-write-enabled-p obj)

ActiveX特性处理函数

函数 说明
(vlax-get-property obj property)
(vlax-property-available-p obj prop [T])
(vlax-put-property obj property arg)

曲线测量函数

函数 说明
(vlax-curve-getArea curve-obj)
(vlax-curve-getDistAtParam curve-obj param)
(vlax-curve-getDistAtPoint curve-obj point)
(vlax-curve-getEndParam curve-obj)
(vlax-curve-getEndPoint curve-obj)
(vlax-curve-getParamAtDist curve-obj param)
(vlax-curve-getParamAtPoint curveobj point)
(vlax-curve-getPointAtDist curve-obj dist)
(vlax-curve-getPointAtParam curveobj param)
(vlax-curve-getStartParam curve-obj)
(vlax-curve-getStartPoint curve-obj)
(vlax-curve-isClosed curve-obj)
(vlax-curve-isPeriodic curve-obj)
(vlax-curve-isPlanar curve-obj)
(vlax-curve-getClosestPointTo curve-obj givenPnt [extend])
(vlax-curve-getClosestPointToProjection curve-obj givenPnt normal [extend])
(vlax-curve-getFirstDeriv curve-obj param)

词典函数

函数 说明
(vlax-ldata-delete dict key)
(vlax-ldata-get dict key [default-data])
(vlax-ldata-list dict)
(vlax-ldata-put dict key data)
(vlax-ldata-test data)

对象处理函数

函数 说明
(vlax-create-object "prog-id")
(vlax-dump-object obj)
(vlax-erased-p obj)
(vlax-get-acad-object)
(vlax-get-object "prog-id")
(vlax-get-or-create-object "prog-id")
(vlax-import-type-library :tlb-filename filename [:methods-prefix mprefix :properties-prefix pprefix :constants-prefix cprefix])
(vlax-method-applicable-p obj method)
(vlax-object-released-p obj)
(vlax-read-enabled-p obj)
(vlax-release-object obj)
(vlax-typeinfo-available-p obj)
(vlax-write-enabled-p obj)

反应器函数

函数 说明
(vlr-acdb-reactor data callbacks)
(vlr-add obj)
(vlr-added-p obj)
(vlr-beep-reaction [args])
(vlr-current-reaction-name)
(vlr-data obj)
(vlr-data-set obj data)
(vlr-deepclone-reactor obj data)
(vlr-docmanager-reactor obj data)
(vlr-dwg-reactor obj data)
(vlr-dxf-reactor obj data)
(vlr-editor-reactor data callbacks)
(vlr-linker-reactor data callbacks)
(vlr-miscellaneous-reactor data callbacks)
(vlr-mouse-reactor data callbacks)
(vlr-notification reactor)
(vlr-object-reactor owners data callbacks)
(vlr-owner-add reactor owner)
(vlr-owner-remove reactor owner)
(vlr-owners reactor)
(vlr-pers reactor)
(vlr-pers-list [reactor])
(vlr-pers-p reactor)
(vlr-pers-release reactor)
(vlr-reaction-names reactor-type)
(vlr-reaction-set reactor event function)
(vlr-reactions reactor)
(vlr-reactors [reactor-type...])
(vlr-remove reactor)
(vlr-remove-all reactor-type)
(vlr-set-notification reactor ange)
(vlr-sysvar-reactor data callbacks)
(vlr-toolbar-reactor data callbacks)
(vlr-trace-reaction)
(vlr-type reactor)
(vlr-types)
(vlr-undo-reactor data callbacks)
(vlr-wblock-reactor data callbacks)
(vlr-window-reactor data callbacks)
(vlr-xref-reactor data callbacks)

VLX名称空间函数

函数 说明
(vl-arx-import [function | application])
(vl-doc-export 'function)
(vl-doc-import ['function | application])
(vl-doc-ref symbol)
(vl-doc-set symbol value)
(vl-exit-with-error "msg")
(vl-exit-with-value value)
(vl-list-exported-functions ["appname"])
(vl-list-loaded-vlx)
(vl-unload-vlx "appname")
(vl-vlx-loaded-p "appname")

名称空间通讯函数

函数 说明
(vl-bb-ref 'variable)
(vl-bb-set 'variable value)
(vl-load-all "filename")
(vl-propagate 'variable)

Windows注册表函数

函数 说明
(vl-registry-delete reg-key [val-name])
(vl-registry-descendents reg-key [val-names])
(vl-registry-read reg-key [val-name])
(vl-registry-write reg-key [val-name val-data])
(vlax-product-key)

 

xshrimp根据cabinsummer整理的内容编辑  未经许可 不得传播   2012.3.24