目录 1
第零章 简介 1
0.1 相关的产品 1
0.2 为什么要采用LISP? 1
0.3 AutoLISP中的数据类型 2
0.4 AutoLISP求值程序 2
0.5 词法规则 3
0.6 符号约定 4
0.8 出错处理 5
0.7 最新的修改和补充 5
第一章 AutoLISP的安装 6
1.1 标准的AutoLISP 6
1.1.1 配置 6
1.1.2 环境变量 6
1.2 扩展.AutoLISP 6
1.2.1 配置 7
1.2.2 环境变量 7
1.2.3 使用扩展AutoLISP 7
1.3 文件acad.lsp的自动函数定义 7
2.2 目标 9
第二章 AutoLISP基础知识指导 9
2.1 预备知识 9
2.3 开始 10
2.4 开始输入 11
2.5 方位输入 13
2.6 绘制砖块 15
2.7 把命令增添到AutoCAD 17
2.8 清理显示屏幕 20
2.9 总结 22
3.1.2 (- 数 [数]…) 24
3.13 (* 数 [数]…) 24
3.1 AutoLISP函数分类 24
3.1.1 (+ 数 数) 24
第三章 AutoLISP函数 24
3.1.4 (/数[数…) 25
3.1.5 (= 原子 原子…) 25
3.1.6 (/= 原子 原子…) 25
3.1.7 (〈 原子 原子…) 25
3.1.8 (〈= 原子 原子…) 25
3.1.13 (1- 数) 26
3.1.12 (1+ 数) 26
3.1.9 (〉原子 原子…) 26
3.1.11 (~ 数) 26
3.1.10 (〉=原子 原子…) 26
3.1.14 (abs 数) 27
3.1.15 (ads) 27
3.1.16 (and 表达式…) 27
3.1.17 (angle pt1 pt2) 27
3.1.18 (angtos 角[方式[精度]]) 27
3.1.21 (ascii 字符串) 28
3.1.20 (apply 函数表) 28
3.1.19 (append expr…) 28
3.1.22 (assoc 项 关联表) 29
3.1.23 (atan num1[num2]) 29
3.1.24 (atof 字符串) 29
3.1.25 (atoi 字符串) 29
3.1.26 (atom 项) 30
3.1.27 (Boole func intl inte…) 30
3.1.29 (caar 表),(cadr 表),(cddr 表),(cadar 表),等等 31
3.1.30 (car 表) 31
3.1.28 (boundp atom) 31
3.1.31 (cdr 表) 32
3.1.32 (chr 整数) 32
3.1.33 (close file-desc) 32
3.1.34 (command[args]…) 32
3.1.35 (cond(测试1 结果…)…) 33
3.1.36 (cons new-first-element list) 34
3.1.37 (cos 角度) 34
3.1.38 (cvunit value from to) 34
3.1.39 (defun sym 变元素 expr…) 35
3.1.39.1 函数库和自动装入 36
3.1.39.2 C:XXX函数——向AutoCAD增加命令 36
3.1.39.3 S:XX函数——自动执行 37
3.1.39.4 (distance pt1 pt2) 37
3.1.39.5 (eq expr1 expr2) 37
3.1.39.6 (equal expr1 expr2 [误差量]) 38
3.1.40 (eval expr) 38
3.1.41 (exp 数) 38
3.1.46 (foreach name list expr...) 39
3.1.45 (float 数) 39
3.1.43 (findfile 文件名) 39
3.1.44 (fix 数) 39
3.1.42 (expt 底数幂) 39
3.1.47 (gcd num1 num2) 40
3.1.48 (getangle[pt][prompt]) 40
3.1.49 (getcorner pt[prompt]) 41
3.1.50 (getdist[pt][prompt]) 41
3.1.51 (getrer variable-name) 41
3.1.54 (getorient [pt][prompt]) 42
3.1.53 (getkword[prompt]) 42
3.1.52 (getint[prompt]) 42
3.1.55 (getpoint[pt][prompt]) 43
3.1.56 (getreal [prompt]) 43
3.1.57 (getstring[cr][prompt]) 43
3.1.58 (getvar varname) 44
3.1.59 (graphscr) 44
3.1.61 (initget[bits][string]) 44
3.1.62 (inters pt1 pt2 pt3 pt4[onseg]) 46
3.1.65 (last list) 47
3.1.64 (lambda arguments expr...) 47
3.1.63 (itoa int) 47
3.1.66 (length list) 48
3.1.67 (list expr...) 48
3.1.68 (listp item) 48
3.1.69 (load filename [onfailure]) 48
3.1.72 (logior integer...) 49
3.1.73 (lsh num1 numbits) 49
3.1.71 (log and number number...) 49
3.1.70 (log number) 49
3.1.74 (mapcar function list1...listn) 50
3.1.75 (max number number...) 50
3.1.76 (member expr list) 51
3.1.77 (menucmd string) 51
8.1.78 (min number number) 51
3.1.79 (minusp item) 52
3.1.80 (not item) 52
3.1.81 (nth n list) 52
3.1.82 (null item) 52
3.1.84 (open〈filename〉〈mode〉) 53
3.1.83 (numberp item) 53
3.1.85 (or expr) 54
3.1.86 (osnap pt mode-string) 54
3.1.87 pi 54
3.1.88 (polar pt angle distance) 54
3.1.89 (prin1[expr[file-desc]]) 54
3.1.90 (princ[expr[file-desc]]) 55
3.1.91 (print[expr[file-desc]]) 55
3.1.92 (progn expr…) 55
3.1.95 (read string) 56
3.1.93 (prompt msg) 56
3.1.94 (quote expr) 56
3.1.96 (read-char[file-desc]) 57
3.1.97 (read-line[file-desc]) 57
3.1.98 (redraw[ename[mode]) 57
3.1.99 (rem num1 num2…) 58
3.1.100 (repeat number expr…) 58
3.1.101 (reverse list) 58
3.1.102 (rtos number[mode[precision]] 58
3.1.103 (set sym expr) 59
3.1.104 (setvar varname value) 60
3.1.105 (sin angle) 60
3.1.106 (sqrt number) 60
3.1.107 (strcase string[which]) 61
3.1.108 (strcat string1[string2]…) 61
3.1.109 (Strlen[string]) 61
3.1.110 (subst newitem olditem list) 61
3.1.115 (trace function…) 62
3.1.114 (textscr) 62
3.1.113 (textpage) 62
3.1.112 (terpri) 62
3.1.111 (substr〈string〉〈start〉[length]) 62
3.1.116 (trans pt from to[disp]) 63
3.1.117 (type item) 64
3.1.118 (untrace function...) 65
3.1.119 (ver) 65
3.1.120 (VPORTS) 66
3.1.121 (Wcmatch string pattern) 66
3.1.122 (while textexpr expr...) 67
3.1.125 (xload application) 68
3.1.126 (xunload application) 68
3.1.124 (write-line string[file-desc]) 68
3.1.123 (write-char num[file-desc]) 68
3.1.127 (zerop item) 69
3.1.128 (“erroe”string) 69
第四章 实体和设备的访问 70
4.1 特殊数据类型 70
4.2 选择集操作函数 70
4.2.1 (ssget[mode][pt1[pt2]]) 70
4.2.4 (ssadd[ename[ss]]) 72
4.2.3 (ssname ss index) 72
4.2.2 (sslength ss) 72
4.2.5 (ssdel ename ss) 73
4.2.6 (ssmemb ename ss) 73
4.3 实体 名称 函数 73
4.3.1 (entext[ename]) 73
4.3.2 (entlast) 74
4.3.3 (entsel[prompt]) 74
4.3.4 (nentsel[prompts) 74
4.4.1 (entdel ename) 77
4.4 实体数据函数 77
4.3.5 (handent handle) 77
4.4.2 (entget ename[applist] 78
4.4.3 (entmake[elist]) 80
4.4.4 (entmod elist) 82
4.4.5 (entupd ename) 83
4.4.6 限制 84
4.5 将实体名和选择集与AutoCAD一起使用 84
4.6 对处理曲线拟合和样条拟合多义线的说明 84
4.7.2 (xdroom ename) 85
4.7.1 (regapp application) 85
4.7 扩展实体数据函数 85
4.7.3 (xdsize list) 86
4.8 符号存取函数 88
4.8.1 (tblnext table-name[rewind]) 88
4.8.2 (tblsearch table-name symbol[setnext]) 89
4.9 对图形屏幕和输入设备的存取 89
4.9.1 (grclear) 90
4.9.2 (grdraw from to color [highlight]) 90
4.9.3 (grtext[box text[highlight]]) 90
4.9.4 (grread[tracl]) 91
5.1 AutoLISP的内存调整方法 92
5.1.1 环境变量影响AutoLISP内存的使用 92
第五章 内存管理 92
5.2 恢复结点空间 95
5.3 虚拟函数页管理程序 96
5.4 技术性注释 96
5.4.1 节点空间 96
5.4.3 符号存贮 97
5.4.4 人为分配 97
5.4.2 字符串空间 97
5.4.5 内存统计 98
5.4.6 虚拟函数页或管理页表 98
附录A 提供的程序 100
A.1 装入程序 100
A.2 运行程序 100
A.3 距离与角度 101
A.4 二维绘图程序 101
A.4.1 Asctext.lsp插入ASCII文本文件 101
A.4.2 Cbtext.lsp修改文本 102
A.4.2.4 旋转选项 103
A.4.2.3 位置选项 103
A.4.2.1 高度选项 103
A.4.2.2 校准选项 103
A.4.2.5 字型选择 104
A.4.2.6 文本选项 104
A.4.2.7 取消选项 105
A.4.2.8 宽度选项 105
A.4.3 Cl.lsP构选中心线 105
A.4.4.1 Break选项 106
A.4.4.2 caps选项 106
A.4.4 Dline.lsp绘制双线 106
A.4.4.3 Dragline选项 107
A.4.4.4 Offset选项 107
A.4.4.5 Snap选项 107
A.4.4.6 Undo选项 108
A.4.4.7 Width选项 108
A.4.5 Ptext.lsp创建并编辑文本段 108
A.4.5.6 ?选项 109
A.4.5.4 Right选项 109
A.4.5.5 Slack选项 109
A.4.5.2 Edit选项 109
A.4.5.1 Center选项 109
A.4.5.3 Fit选项 109
A.4.5.7 〈Start point〉选项 110
A.4.5.8 Control字符 110
A.4.6 Rectang.lsp绘制一个正方形或一个矩形 110
A.5 3D草图程序 111
A.5.1 3D.lsp创建3D(Wireframe)对象 111
A.4.8 Spiral.1sp建立一个2维螺线 111
A.4.7 Rpoly.lsp定义多边形 111
A.5.1.1 Box创建一个3D的立方体 112
A.5.1.2 Cone(园锥) 113
A.5.1.3 Dome和Dish创建一多边形的网格半球 113
A.5.1.4 Mesh创建一样本平面网格 114
A.5.1.5 Pyramid 115
A.5.1.6 Sphere 116
A.5.1.7 Torus 117
A.5.1.8 Wedge 117
A.5.2 3Darray.lsp建立3D长方体和锥体阵列 118
A.5.4 Chface.lsp移动3D表面顶点 120
A.5.3 Axrot.lsp绕一轴旋转实体 120
A.5.4.1 1,2,3或4选项 121
A.5.4.2 Undo选项 121
A.5.4.3 Display选项 121
A.5.4.4 〈select vertex〉选项 121
A.5.5 Edge.lsp修改3D表面边的可见性。 121
A.5.6 M?.lsp创建Place实体 121
A.5.6.3 〈Select Vertex〉选项 122
A.5.7.1 project1 122
A.5.7 Project.lst把3D模型投影到一个平面。 122
A.5.6.2 Color选项 122
A.5.6.1 Layer选项 122
A.5.7.2 Project2 123
A.6 实用子程序 123
A.6.1 Alias.lsp显示命令别名表 123
A.6.2 Attredef.lsp更新并重定义属性 123
A.6.3 Calc.lsp联机计算器 123
A.6.3.1 Calc选项 124
A.6.3.2 Mem选项 124
A.5.6.3 Trig选项 125
A.6.4.4 〈Exit〉选项 126
A.6.4.3 Scale选项 126
A.6.5 Dellayer.lsp删除一个层中的所有实体 126
A.6.4.1 Insertion point选项 126
A.6.4.2 Rotation选项 126
A.6.4 chblock.lsp分别修改一个块的X轴、Y轴和Z轴的比例尺。 126
A.6.6 End.lsp改进End命令 127
A.6.7 Ep.lsp输入一个点 127
A.6.7.1 Exit选项 127
A.6.7.2 World选项 127
A.6.7.3 set lastpoint选项 127
A.6.7.4 Absolute to UCS origin选项 127
A.6.7.5 (Relative to lastpoint〉选项 127
A.6.9 Fcopy.lsp复制一个文本文件到另一文本文件 128
A.6.10 Fplot.lsp用双变量之函数绘制 129
A.6.11 Fprint.lsp在屏幕上显示文本文件 130
A.6.12 Lload.lsp表和ADS应用程序加载程序 130
A.6.12.1 Add选项 131
A.6.12.2 remove an entry选项 131
A.6.12.3 〈Number to load〉选项 131
A.6.13 Mvsetup.lsp设置画图之配置 131
A.6.13.1 TILEMODE=1 (ON) 132
A.6.13.2 TILEMODE=0(Off) 132
A.6.15 Ssx.lsp一个简便的(ssget“X”)函数 135
A.6.14 Sgr.lsp计算平方根 135
A.6.17 Xdata.lsp罗列或添加扩展实体数据 136
A.6.16 Tables.lsp显示/分类符号表 136
A.6.17.1 Xdata 137
A.6.17.2 Xdlist 138
A.6.18 Xplode.lsp修改分解命令 139
A.6.18.1 All选项 139
A.6.18.2 Color选项 139
A.6.18.6 〈Explode〉选项 140
A.6.19 Xrefclip.lsp插入和截取外部引用块 140
A.6.18.4 LType选项 140
A.6.18.5 Inherit from Parent Block选项 140
A.6.18.3 LAyer选项 140
A.7 AutoShade子程序 141
A.7.1 Ashade.lsp更新AutoShade文件 141
附录B 错误信息 142
B.1 用户程序错误 142
B.2 内部错误 146
附录C 错误代码 148