本书由浅入深,循序渐进地介绍了AutoLISP的基础知识和利用AutoLISP进行开发的方法与技巧。全书按知识的结构顺序分为三篇:第一篇为基础知识篇,主要介绍AutoLISP语言概述,AutoLISP的基本要素,AutoLISP基本函数,实用工具函数,操作AutoCAD对象等AutoLISP的基本知识和基本概念。第二篇为开发环境篇,主要介绍VisualLISP集成开发环境和对话框设计等知识。第三篇为开发应用篇,主要介绍用AutoLISP生成零件图和AutoLISP在3D绘图中的应用等知识。
本书语言简洁明了,讲解深入浅出。示例典型,详略得当。既可作为机械设计辅助设计课程与计算机应用课程的学习教材,也可作为CAD二次开发人员的自学或参考工具书。
第一篇基础知识篇
第1章AutoLISP语言概述
本章重点
1.1AutoLISP语言简介
11.1开发AutoCAD的重要工具
1.1.2AutoLISP的特点
1.2AutoLISP数据类型
1.2.1原子
1.2.2表和点对
1.3AutoLISP的程序结构
1.4AutoLISP的运行环境
1.5AutoLISP的内存分配
1.6AutoLISP程序的执行过程
1.6.1加载和卸载AutoLISP文件
1.6.2运行AutoLISP程序
1.7完整的AutoLISP例程
本章小结
第2章AutoLISP的基本要素
本章重点
2.1理解AutoLISP的变量和表达式
2.2表达式的结构
2.2.1数学表达式
2.2.2矢量表达式
2.2.3函数表达式
2.3AutoLISP的变量与类型
2.3.1字符串型变量
2.3.2整型变量
2.3.3实型变量
2.3.4表型变量
2.3.5其他类型
2.4变量的应用
2.4.1使用AutoLISP变量
2.4.2使用AutoCAD系统变量
2.5创建用户自己的变量和表达式
本章小结
第3章AutoLISP基本函数
本章重点
3.1数值函数
3.1.1计算函数
3.1.2布尔运算函数
3.1.3三角函数
3.1.4综合举例
3.2字符串处理函数
3.2.1求字符串长度函数strlen(stringlength)
3.2.2字符串链接函数strcat(stringcatenation)
3.2.3子串提取函数substr(substring)
3.2.4字母大小写转换函数strcase
3.2.5字符串模式匹配函数wcmatch
3.2.6综合举例
3.3条件和循环函数
3.3.1关系运算函数
3.3.2逻辑运算函数
3.3.3EQ函数与EQUAL函数
3.3.4条件函数
3.3.5循环函数
3.4表处理函数
3.4.1表处理的基本函数
3.4.2表的构造函数
3.4.3表的循环处理函数
3.4.4表的关联
3.4.5综合举例
3.5符号和函数处理函数
3.5.1赋值函数
3.5.2其他符号处理函数
3.5.3函数处理函数
3.6错误处理函数
3.7应用程序处理函数
3.7.1ADS应用程序
3.7.2ARX应用函数
3.7.3其他应用函数
3.8综合举例
本章小结
第4章实用工具函数
本章重点
4.1查询和命令函数
4.1.1command函数
4.1.2系统及环境变量
4.1.3系统配置控制
4.1.4综合举例
4.2显示控制函数
4.2.1文字输出函数
4.2.2控制菜单
4;2.3控制图形和文本窗口
4.2.4控制低层图形
4.3获取用户收入函数
4.3.1用户输入函数
4.3.2用户提示函数
4.3.3用户输入函数条件的控制
4.4几何实用函数
4.4.1几何计算函数
4.4.2对象捕捉
4.4.3文本范围
4.5转换函数
4.5.1字符串转换
4.5.2角度转换函数
4.5.3ASCII转换
4.5.4单位转换
4.5.5坐标系转换
4.6文件处理函数
4.6.1文件的搜索与获取
4.6.2文件的打开与关闭
4.6.3文件的输入输出函数
4.7设备的访问和控制
4.7.1获取用户输入
4.7.2数字校准
4.8综合举例
本章小结
第5章操作AutoCAD对象
本章重点
5.1选择集处理函数
5.2对象处理函数
’5.2.1实体名操作函数
5.2.2实体数据操作
5.2.3多段线和轻装多段线
5.3扩展数据处理函数
5.4获取符号表和词典
5.4.1符号表
5.4.2词典条目
5.6综合举例
本章小结
第二篇开发环境篇
第6章VisualLISP集成开发环境
本章重点
6.1VisualLISP概述
6.2启动和退出VisualLISP集成开发环境
6.2.1启动VisualLISP集成开发环境
6.2.2退出VisualLISP集成开发环境
6.3VisualLISP集成开发环境介绍
6.3.1VisualLISP菜单介绍
6.3.2工具栏介绍
6.3.3控制台操作
6.3.4文本编辑器概述
6.3.5加载和运行AutoLISP程序
6.4文本编辑器主要功能及实现
6.4.1文件/编辑/保存操作
6.4.2代码分色显示
6.4.3文本格式化
6.4.4语法检查
6.5调试程序
6.5.1监视窗口
6.5.2断点
6.5.3单步调试程序
6.5.4调试举例
本章小结
第7章对话框设计
本章重点
本章典型效果图
7.1对话框概述
7.2对话框组件
7.3用DCL定义对话框
7.3.1base.DCL和acad.DCL文件
7.3.2引用DCL文件
7.3.3DCL语法
7.4用VisualLISP显示对话框
7.4.1显示对话框
7.4.2预览错误处理
7.5调整对话框的布局
7.5.1在控件组中分配控件
7.5.2调整控件间距
7.5.3调整右端和底部的空间
7.5.4调整加框行和列周围的空间
7.5.5自定义退出按钮文本
7.6设计指南
7.6.1美观和功效
7.6.2前后一致的设计和清晰明了的语言
7.6.3用户控制
7.6.4容错处理
7.6.5提供帮助
7.6.6考虑残疾用户
7.6.7单词字母的大写
7.6.8避免缩略语
7.6.9布局
7.6.10控件的大小和位置
7.6.11禁用控件
7.6.12嵌套对话框
7.6.13隐藏对话框
7.6.14提供默认值
7.6.15处理键盘输入
7.6.16预定义控件和控件组的指导
7.6.17错误处理
7.7对话框语言DCL详解
7.7.1控件属性
7.7.2DCL属性目录
7.7.3对话框控件的DCL语法
7.7.4设计对话框举例
7.8对话框驱动程序
7.8.1在AutoLISP中调用设计的对话框
7.8.2动作表达式和回调
7.8.3列表框/下拉框处理
7.8.4图像处理
7.8.5对话框嵌套
7.8.6隐藏对话框
7.8.7特定应用数据
7.9综合举例
本章小结
第三篇开发应用篇
第8章用AutoLISP生成零件图
本章重点
本章典型效果图
8.1参数化绘图概述
8.2一个简单的参数化绘图的例子
8.3理解参数化设计
8.4开发参数化系统的基本要素
8.5综合举例
8.5.1参数化设计的一般步骤
8.5.2绘制轴
8.5.3绘制带轮
本章小结
第9章AutoLISP在3D绘图中的应用
本章重点
本章典型效果图
9.1三维绘图概述
9.1.1三维造型的优越性
9.1.2用AutoLISP在三维绘图中的应用
9.2三维造型基础
9.2.1UCS三维用户坐标系统
9.2.2建立用户坐标系
9.2.3创建三维实体
9.3用AutoLISP进行三维参数化绘图
9.4用AutoLISP进行曲线绘制
本章小结
附录
附录Acommand函数
附录BAutoCAD单位定义
附录C错误提示
附录DAutoLISP的系统变量
LISP(ListProcessingLanguage)是一种计算机的表处理语言,是在人工智能学科领域广泛应用的一种程序设计语言。Au~oLISP语言是嵌套于AutoCAD内部,将LISP语言和AutoCAD有机结合的产物。美国AutoDesk公司在AutoCAD内部嵌入AutoLISP的目的是使用户充分利用AutoCAD进行二次开发:实现直接增加和修改AutoCAD命令,随意扩大图形编辑功能,建立图形库和数据库并对当前图形进行直接访问和修改,开发CAD软件包等。
AutoLISP语言最典型的应用之一是实现二维和三维参数化绘图程序设计,包括尺寸驱动程序,鼠标拖动程序等。另一个AutoLISP的典型应用就是驱动利用AutoCAD提供的PDB模块构成DCL(DialogControlLanguage)文件创建自己的对话框。
使用AutoLISP可直接调用几乎全部AutoCAD命令。AutoLISP语言既具备一般高级语言的基本结构和功能,又具有一般高级语言所没有的强大的图形处理功能,是当今世界上CAD软件中被广泛采用的语言之一。
自从AutoLISP嵌入AutoCAD以后,使仅仅作为交互式图形编辑软件的AutoCAD变成能真正进行计算机辅助设计、绘图的CAD软件,由于LISP灵活多变,又易于学习和使用,因而使AutoCAD成为功能很强的工具性软件。
本书按知识的结构/顷序分为三篇:第一篇为基础知识篇,主要介绍AutoLISP语言概述,AutoLISP的基太要素,AutoLISP基本函数,实用工具函数,操作AutoCAD对象等AutoLISP的基本知识和基本概念。通过本篇的学习,读者可以掌握操作AutoLISP所必备的基础知识。第二篇为开发环境篇,主要介绍VisualLisp集成开发环境和对话框设计等知识。通过本篇的学习,读者可以了解AutoLISP自身执行的环境和利用AutoLISP设计对象操作环境的方法。第三篇为开发应用篇,主要介绍用AutoLISP生成零件图和AutoLISP在3D绘图中的应用等知识。通过本篇的学习,读者可以掌握利用AutoLISP具体进行AutoCAD绘图的方法和技巧。
在编写过程中,考虑到AutoLISP知识的复杂性,为了使本书具有更好的亲和力和可读性,本书作者对全书知识进行了精心地编排和设计。在全面讲述AutoLISP知识的基础上突出了两大重点:
◆思维的连贯性:本书从简单到复杂,从基础到应用,层层深入地介绍了AutoLISP语言本身的函数结构和语法、AutoLISP的开发环境和AutoLISP开发应用等知识。让读者在学习本书的过程中能够循序渐进,由浅入深地掌握利用AutoLISP进行开发和设计的技巧和方法。
◆知识的独立性:一般人认为,AutoLISP作为AutoCAD的高级开发工具,必须在熟练掌握和应用AutoCAD的基础上才能掌握AutoLISP有关知识。而本书则极力突破这种传统思维,在知识讲解和内容设计上,力求作到使学习AutoLISP能够独立于AutoCAD之外,即读者不必对AutoCAD非常熟悉,就可以直接利用AutoLISP进行AutoCAD绘图和二次开发。
本书由胡仁喜、胡星、史青录主编,路纯红、辛文彤、王佩楷、周冰、张俊生、董伟、李瑞、周广芬、李鹏、王敏、陈丽芹、李世强、王兵学、袁涛、王渊峰、杨立辉、王玮、郑长松、王文平、孟清华、王涛等参与了部分章节编写。由于作者水平有限,书中错误之处在所难免。如有不当之处,敬请广大读者发送邮件至hurenxi2000@163.com批评指正。
作 者
2005.1