AutoLisp 基础.docx
- 文档编号:12163004
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:16
- 大小:20.23KB
AutoLisp 基础.docx
《AutoLisp 基础.docx》由会员分享,可在线阅读,更多相关《AutoLisp 基础.docx(16页珍藏版)》请在冰豆网上搜索。
AutoLisp基础
AutoLisp基本函数
计算
+
格式:
(+xyz...)
作用:
x+y+z+...x+y+z+...
-
格式:
(-xyz...)
作用:
x−y−z−...x−y−z−...
*
格式:
(*xyz...)
作用:
x∗y∗z∗...x∗y∗z∗...
/
格式:
(/xyz...)
作用:
x/y/z/...x/y/z/...
1+
格式:
(1+x)
作用:
x+1x+1
1-
格式:
(1-x)
作用:
x−1x−1
abs
格式:
(absx)
作用:
x绝对值
sin
格式:
(sinxy)
作用:
sin(x)sin(x)
cos
格式:
(cosx)
作用:
cos(x)cos(x)
atan
格式:
(atanx)
作用:
atan(x)atan(x)
max
格式:
(maxxyz...)
作用:
x,y,z,…中的最大值
min
格式:
(minxyz...)
作用:
x,y,z,…中的最小值
exp
格式:
(expn)
作用:
enen
expt
格式:
(exptxn)
作用:
xnxn
log
格式:
(logx)
作用:
lnxlnx
List
list
格式:
(listabc...)
作用:
创建列表
assoc
格式:
(assockey>)
作用:
关联表查询,它是一个元素是list的list
NOTE:
assoc会在外层列表中遍历查找,子列表元素的第一个元素会作为键,查找过程中如果先遇到不是列表的子元素则报错“关联列表错误“,如果找到对应键的元素则返回该列表元素,如果没有找到对应键且没有不是列表的子元素则返回nil。
c(a|d){1,4}r
car是指取列表首元素,cdr取除首元素外的列表部分
a与d可以任意组合,只要总量不超过4。
即可以是:
aaaaaaadaaaaadaaaddaadaaaaadaaadaaadadadaaddaadddaddadaaddadaaaaadaaadaaddadaaadadaaadaaddaadadadadddaddaadaddaddaaddadddadddadddddddddaddddddaadaddaddaddddddadddaaaaadaaadaaddadaaadadaadaddaddaddddddadddaaadadadddad
1
求值是从右向左,例如:
;(caddar,m)-->(car(cdr(cdr(carm))))
(setqm(list(list2345)9))
(princ(caddarm))
1
2
3
输出结果是4
last
格式:
(last)
作用:
获取列表最后一个元素
nth
格式:
(nthn)
作用:
获取列表第n个元素
cons
格式:
(cons)
作用:
当第二个参数是列表,则在列表头添加新元素;当第二个参数是原子,则构建点对,点对是一个特殊的列表,使用car获取第一个元素,使用cdr可以或者第二个元素
reverse
格式:
(reverse)
作用:
反转列表
length
格式:
(length)
作用:
获取列表长度
subst
格式:
(substnewold)
作用:
用新项替代原列表中的旧项,返回新生成的列表
CAD交互输入
getint
格式:
(getint"提示:
")
作用:
获取整数输入
getreal
格式:
(getreal"提示:
")
作用:
获取实数输入
getstring
格式:
(getstring"提示:
")
作用:
获取字符串输入
getpoint
格式:
(getpoint"提示:
")
作用:
获取点坐标值
getcorner
格式:
(getcorner
")
作用:
获取矩形对角点输入
getangle
格式:
(getangle"提示:
")
作用:
获取角度输入
输出
princ
格式:
(princ"hello")
作用:
输出表达式,对控制字符解释
prin1
格式:
(prin1"hello")
作用:
输出表达式,不对控制字符解释
格式:
(print"hello")
作用:
输出前换行,其余如prin1
字符串操作
strcat
格式:
(strcatstr1str2str3...)
作用:
拼接字符串
strcase
格式:
(strcasestr[mode])
作用:
字符串转大小写,mode可以是任意表达式,mode为nil转大写,为nil转小写
strlen
格式:
(strlenstr)
作用:
字符串长度
substr
格式:
(substrstr
作用:
获取子字符串,第一个整数声明起点,第二个整数声明长度
转换运算
itoa
格式:
(itoa
作用:
整数转字符串
atoi
格式:
(atoi
作用:
字符串转整数
atof
格式:
(atof
作用:
字符串转实数
fix
格式:
(fix
作用:
数转整数
float
格式:
(float
作用:
数转实数
ascii
格式:
(ascii
作用:
获取字符串首字符的ASCII码
chr
格式:
(chr
作用:
根据ASCII码转字符,返回含此字符的字符串
文件处理
open
格式:
(open"filepath""mode")
作用:
打开文件,返回文件描述符
close
格式:
(closefile)
作用:
根据文件描述符关闭文件
read-line
格式:
(read-linefile)
作用:
从当前位置读取文件中一行,指针移到下一行首部
write-line
格式:
(write-line"writecontent"file)
作用:
将字符串写入文件中,并返回字符串
write-char
格式:
(write-char"c"file)
作用:
将字符写入文件中,并返回字符串
关系运算
=
格式:
(=atom1atom2atom3...)
作用:
atom1=atom2=atom3=...atom1=atom2=atom3=...则返回T,否则返回nil
/=
格式:
(=atom1atom2atom3...)
作用:
atom1≠atom2≠atom3≠...atom1≠atom2≠atom3≠...则返回T,否则返回nil。
NOTE:
不要求atom1≠atom3,atom1≠atom4,...atom1≠atom3,atom1≠atom4,...,只需要保证相邻元素的关系
<
格式:
( 作用: atom1 > 格式: (>atom1atom2atom3...) 作用: atom1>atom2>atom3>...atom1>atom2>atom3>...则返回T,否则返回nil。 >= 格式: (>=atom1atom2atom3...) 作用: atom1≥atom2≥atom3≥...atom1≥atom2≥atom3≥...则返回T,否则返回nil。 <= 格式: (<=atom1atom2atom3...) 作用: atom1≤atom2≤atom3≤...atom1≤atom2≤atom3≤...则返回T,否则返回nil。 逻辑运算 and 格式: (and 作用: 所有表达式都非nil则为真,否则为假 or 格式: (or 作用: 有一个表达式为真则为真,否则为假 not 格式: (not 作用: 表达式为真,则返回假;表达式为假,则返回真 NOTE: T表示真,nil表示假,所有非nil的表达式都是认为是真 图形处理 distance 格式: (distance 作用: 计算两点之间的距离 polar 格式: (polar 作用: 返回所求点的坐标,该点与给定点的距离为distance,该点与给定点连线与X轴的夹角为angle(弧度制) angle 格式: (angle 作用: 给定的两点确定的直线与X轴的夹角(弧度制) 赋值 setq 格式: (setq 作用: 依次将表达式的值赋值给对应的符号 quote 格式: (quote 简写: ' 作用: 表达式不求值,返回表达式本身 Reflect type 格式: (type) 作用: 获取变量类型 Command函数 调用AUTOCAD的命令 对象属性 entsel 格式: (entsel"prompt: ">) 作用: 选择对象 entlast 格式: (entlast) 作用: 获取最后绘出的图形对象 entget 格式: (entget 作用: 获取对象定义数据,一个以组码为键的关联表 entmod 格式: (entmod 作用: 修改对象的定义数据,一般先获取对象的定义数据,再修改该定义数据,则作用到该对象上了 选择集 ssadd 格式: (ssadd 作用: 将对象添加到选择集中,或者创建新的选择集 ssdel 格式: (ssdel 作用: 从选择集中删除指定对象 ssget 格式: (ssget[sel-method][p1p2...][point-list][filter-list]) 作用: 根据选定对象创建选择集 sslength 格式: (sslength 作用: 获取指定选择集中的对象个数 ssname 格式: (ssname 作用: 根据索引号获取选择集中的对象 ssmemb 格式: (ssmemb 作用: 判断给定对象是否在指定选择集中 表处理 符号表主要记录非图形信息。 可用的符号表有: layer、ltype、view、style、block、ucs、appid、dimstyle、vport 名字不区分大小写。 tblnext 格式: (tblnexttable-name) 作用: 返回符号表中下一条目,如果找到返回DXF组码与值组成的点对 tblobjname 格式: (tblobjnametable-namesymbol) 作用: 获取指定符号表的图元名 tlbsearch 格式: (tlbsearchtable-namesymbol) 作用: 在指定符号表中搜索符号名 visual+lisp开发人员手册 这里不全…手打出来打累了…有其他需要请去寻找开发人员手册 (vl-load-com) 加载AutoLISP反应器支持函数和其他AutoLISP扩展 表操作函数 (vl-remove1'(1234)) 返回值: ’(234),函数从列表删除指定数 (vl-position1'(231)) 返回值: 2,函数获得数在列表中位置 (vl-sort'(112233) 返回值: ’(123),自动去重 (vl-load-all“a.lsp”) 该函数来将AutoLISP文件加载到所有AutoCAD图形文档中.(随后在该任务期间打开的任何文档中),(在多文档中测试新函数很有用,但在一般情况下您应该用acaddoc.lsp来加载每个AutoCAD文档都需要的文件) (vl-consplist-variable) 判断表是否为nil (vl-everypredicate-functionlist[more-lists]…) 检查每个元素合并的预测是否为真 (vl-list object[more-objects]…)*构造并返回表 (vl-list->stringchar-codes-list) 将与整数表相关联的字符合并到字符串中 (vl-list-lengthlist-or-cons-object) 计算真表的表长度 (vl-member-ifpredicate-functionlist) 判断表成员之一的预测是否为真 (vl-member-if-notpredicate-functionlist) 判断表成员之一的预测是否为nil (vl-positionsymbollist) 返回指定的表项目的索引 (vl-remove-ifpredicate-functionlist) 返回函数测试失败的表的所有元素 (vl-remove-if-notpredicate-functionlist) 返回通过函数测试的表的所有元素 (vl-somepredicate-functionlist[more-lists]…) 检查元素合并的预测是否为nil (vl-sortlistless? -function) 根据给定的比较函数对表中的元素排序 (vl-sort-ilistless? -function) 根据给定的比较函数对表中的元素排序,返回元素索引号 (vl-string->liststring) 将字符串转换为字符代码表 字符串处理函数 (vl-string-left-trimcharacter-setstring) 从字符串的开始位置删除指定的字符串 (vl-string-right-trimcharactersetstring) 从字符串的末尾删除指定的字符串 (vl-string-trimchar-setstr) 从字符串的开始和末尾删除指定的字符 (vl-string-mismatchstr1str2[pos1pos2ignore-case-p]) 返回两个字符串的最长公共前缀的长度,指定位置的字符 (vl-string-substnew-strpatternstring[start-pos]) 用一个字符串替换另一个字符串中的字串 (vl-string-translatesource-setdest-setstr) 用指定的字符集替换字符串中的字符 符号处理函数 (vl-sysbol-namesymbol) 返回包含符号名的字符串 (vl-symbol-valuesymbol) 返回绑定到符号的当前值 (vl-symbolpobject) 标识指定的对象是否使符号 文件处理函数 (vl-directory-files[directorypatterndirectories]) 列出给定目录中的所有文件 (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”) 返回文件的扩展名,去掉名称的其余部分 处理ActiveX方法返回的错误 (vl-catch-all-apply‘functionlist) 函数的值可捕获错误,并使程序继续执行(将参数列表传递给指定的函数,并捕获异常) (vl-catch-all-error-messageerror-obj) 从错误对象中返回信息 (vl-catch-all-error-parg) 判断 vl-catch-all-apply 返回的参数是否是错误对象 查询和命令函数 (vl-cmdf[arguments]…) 在计算arguments后执行一个AutoCAD命令 对象处理函数 (vlax-dump-objectobj) 列出对象的方法和属性 (vlax-erased-pobj) 判断对象是否被删除 符号表和词典处理函数 (vlax-ldata-deletedictkey) 从图形词典中删除LISP数据 (vlax-ldata-getdictkey[defaultdata]) 从图形词典中获取LISP数据 (vlax-ldata-listdict) 在图形词典中列出LISP数据 (vlax-ldata-putdictkeydata) 在图形词典中存储LISP数据 (vlax-ldata-testdata) 判断是否可以跨任务边界保存数据 反应器函数 (vl-load-com) 加载AutoLISP反应器支持函数和其他AutoLISP扩展 (vlr-acdb-reactordatacallbacks) 构造一个"数据库"(全局)反应器对象 (vlr-addobj) 启用被禁用的反应器对象 (vlr-added-pobj) 测试判断反应器对象是否被启用 (vlr-beep-reaction[args]) 产生蜂鸣声 (vlr-current-reaction-name) 如果从反应器回调中调用,则返回当前事件的名称(符号) (vlr-dataobj) 返回与反应器相关联的应用特定数据 (vlr-data-setobjdata) 覆盖与反应器相关联的应用特定数据 (vlr-deepclone-reactorobjdata) 构造一个编辑器反应器对象,用于通知深度克隆事件 (vlr-docmanager-reactorobjdata) 构造一个反应器对象,用于通知MDI相关的事件 (vlr-dwg-reactorobjdata) 构造一个编辑器反应器对象,用于通知图形事件(例如,打开或关闭图形文件) Windows注册表函数 (vl-registry-deletereg-key[val-name]) 从Windows注册表中删除指定的主键/键值 (vl-registry-descendentsreg-key[val-names]) 为指定的注册表主键返回一个子键或值名称的列表 (vl-registry-readreg-key[val-name]) 为指定的主键/键值对返回存储在Windows注册表中的数据 (vl-registry-writereg-key[val-nameval-data]) 在Windows注册标中创建主键 (vlax-product-key) 返回AutoCAD注册路径 数据转换函数 (vlax-ename->vla-objectentname) 将图元转换为VLA对象 (vlax-vla-object->enameobj) 将VLA对象转换为AutoLISP图元 ActiveX对象处理函数 (vlax-dump-objectobj) 列出对象的方法和属性 曲线测量函数 (vlax-curve-getAreacurve-obj) 返回曲线中的面积 (vlax-curve-getDistAtParamcurve-objparam) 返回从曲线的起始端到指定点的曲线段长度 (vlax-curve-getDistAtPointcurve-objpoint) 返回从曲线的起始段到指定点的曲线段长度 (vlax-curve-getEndParamcurve-obj) 返回曲线端点的参数 (vlax-curve-getEndPointcurve-obj) 返回曲线的端点(在WCS坐标系中) (vlax-curve-getParamAtDistcurve-objparam) 返回沿曲线的起始端到指定参数位置的距离 (vlax-curve-getParamAtPointcurveobjpoint) 返回某一点的曲线参数 (vlax-curve-getPointAtDistcurve-objdist) 返回沿曲线经过由用户指定距离的点(在WCS坐标系中) (vlax-curve-getPointAtParamcurveobjparam) 判断曲线上对应于param参数的点,并返回该点 (vlax-curve-getStartParamcurve-obj) 返回曲线上的起始参数 (vlax-curve-getStartPointcurve-obj) 返回曲线的起始点(在WCS坐标系中) (vlax-curve-isClosedcurve-obj) 判断指定的曲线是否闭合(例如,起始点和结束点相同) (vlax-curve-isPeriodiccurve-obj) 判断指定的曲线是否在各个方向上无限延伸,并且有一个周期值dT,即对于任意参数,曲线(u+dT)上的点都等于曲线(u)上的点 (vlax-curve-isPlanarcurve-obj) 判断是否有包含某条曲线的平面 (vlax-curve-getClosestPointTocurve-objgivenPnt[extend]) 返回曲线上距指定点最近的点(在WCS坐标系中) (vlax-curvegetClosestPointToProjectioncurveobjgiven)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AutoLisp 基础