AutoCAD高级培训——第五讲之一.docVIP

  • 8
  • 0
  • 约3.97千字
  • 约 8页
  • 2021-10-29 发布于四川
  • 举报
AutoCAD高级培训 第五讲之一 ——AutoCAD二次开发 (AutoLISP 语言编程概述) AutoLISP 语言简介 LISP——List Processing Language AutoLISP:嵌套于AutoCAD内部,将LISP与AutoCAD有机结合,是AutoCAD开发的重要工具。 AutoLISP的功能: ?可直接调用AutoCAD的几乎全部命令 ?具备一般高级语言的结构和功能 ?具备一般高级语言所没有的强大的图形处理功能 AutoLISP的特点 ?仅能以解释方式运行于AutoCAD内部(解释性程序设计语言) ?程序的全部内容均以函数形式给出,没有语句的概念,也没有其他语法结构,执行程序就是执行一系列的函数调用,也称“函数语言” ?把数据和程序统一表达为表结构,程序即数据,数据即程序,故也称为“表语言” ?运行程序就是对函数求值的过程,在此过程中实现函数的功能 AutoLISP的数据类型 ?符号 (SYM) ?字符串 (STR) ?表 (LIST) ?文件描述符 (FILE) ?AutoLISP的内部函数(SUBR) ?AutoCAD的选择集 (PICKSET) ?AutoCAD的实体名 (ENAME) ?函数分页表 (PAGETB) 基本应用:涉及前五种,前四种称为“原子”。 1. 原子(原子就是“表”中的元素,常作函数的参数) (1)整数 (2)实型数 (3)符号(常用来作变量名) (4)字符串:在一对双引号“”内的一组字符 2. 表 表有如下几项特征: 放在一对圆括号内 其中的元素可以是:数字、符号、字符串、表 元素之间有空格 可任意嵌套,如 (15 (a b) c d) 元素在表中按先后顺序取得序号,依次为0,1,2,…… 表的大小即表的长度,没有元素的称为空表,用()或nil表示 有两种类型:标准表、引用表 标准表——实现函数调用的表,第一个元素是函数,后面的元素是函数的参数; 引用表——被当作数据引用的表,如表示点的坐标(x,y)的表 3. 点对(dotted pair) 也是一种表,有两个元素,中间用“.”,圆点与元素之间必须用空格分开,可任意嵌套,常用于构造连接表。 AutoLISP的程序结构 有一个或一系列按顺序排列的标准表组成,如: (setq x 25.0) (见辅导材料P34) (setq y 12.2) (+ (* x y) x) AutoLISP程序书写格式的特点: AutoLISP程序全部由函数组成,函数的形式是表,表的括号需左右匹配; AutoLISP程序阅读函数时按从左到右的规则; 函数必须是第一个元素,函数与参数、参数与参数之间均至少要一个空格分开; 两个表之间和表内的多余空格和回车是不产生作用的,因此一个表可占多行,一行也可以写多个表。如前述程序可写为: (setq x 25.0) (setq y 12.2) (+ (* x y) x) 用“;”开始的内容作为对程序的注释; 文件类型为“.LSP”,是ASCⅡ码的文本文件。 AutoLISP程序就是对AutoLISP函数的调用,AutoLISP函数分为系统内部函数和用户定义的外部函数,AutoLISP对函数的调用是通过标准表来实现的,程序的执行就是对标准表依次进行求值的过程,在求值的过程中实现相应的功能。 AutoLISP程序的执行过程 加载AutoLISP文件 一个简单的弹出对话框的例子(设文件名为test.lsp): (defun c:testlisp() (alert “Hello, The World!”) ) 加载AutoLISP文件有以下几种方法: 命令行加载(键盘命令方式) 命令:(load “路径”) 对话框方式 工具——AutoLISP——加载应用程序——选择AutoLISP文件——点击加载 自动加载方式(略) 运行AutoLISP 若为函数,则在“命令:”提示符下输入“(函数名)”并回车。 若为命令,则在“命令:”提示符下输入“命令名”并回车。 两个AutoLISP例程 绘制圆的渐开线 X=r(cos?+?sin?) Y=r(sin?-?cos?) r——基圆半径 ;程序代码(involute.lsp) (defun c:inv(/ p0 phi phimax phimin) ;见辅导材料P43-44 (setq p0 (getpoint \n请输入基圆的圆心:)) ;见辅导材料P34和P46 (setq r (getdist p0 \n请输入基圆的半径:)) ;见辅

文档评论(0)

1亿VIP精品文档

相关文档