CAD二次开发教程AUTOLIS.ppt
《CAD二次开发教程AUTOLIS.ppt》由会员分享,可在线阅读,更多相关《CAD二次开发教程AUTOLIS.ppt(26页珍藏版)》请在三一办公上搜索。
1、Cad二次开发-AUTOLISP 入门,一、LISP编程语言概述,AutoLISP是由Autodesk公司开发的一种LISP程序语言(LISP是List Processor的缩写)。第一篇关于LISP的参考文献是由John McCarthy 在1960年4月的ACM通讯中发表的。除了FORTRAN和COBOL,大多数在六十年代早期开发出来的语言都过时了,可是 LISP却生下来,并且已经成为人工智能(AI)的首选 程序序言。AutoLISP解释程序位于AutoCAD软件包中,然而AutoCAD R2.17及更低版本中并不包含 AutoLISP解释程序,这样,只有通过AutoCAD 2.18及更高
2、版本才可以使用AutoLISP语言。AutoCAD软件包中包含大多数用于产生图形的命令,但仍有某些命令末被提供。例如,AutoCAD中没有在图形文本对象内绘制矩形及作全局改变的命令。通过AutoLISP,你可以使用AutoLISP程序语言编制能够在图形文本对象内绘制矩形或作全局选择性改变的程序。事实上,可以用AutoLISP编制任何程序,或把它嵌入到菜单中,这样定制你的系统会取得更高的效率。,二、基本语法,1、一个表达式必须使用配对的括号。2、数学运算1.加法 格式(+num1 num2 num3.)此函数()计算加号()右边所有数字的和(+num1 num2 num3.)2.减法 格式(-n
3、um1 num2 num3.)此函数()从第一个数中减去第二个数(num1-num2)4.除法 格式(/num1 num2 num3)此函数()用第一个数除以第二个数。如果多于两个数,就用第一个数除以其后所有数的乘积num1/(num2 num3.),3、关系表达式1.等于 格式(=atom1 atom2)该函数(=)检查两个元素是否相等。若相等,条件为真,函数返回。同样,若指定的元素不相等,条件为假,函数返回nil2.不等于 格式(=atom1 atom2)该函数(=)检查两个元素是否不相等。若不相等,条件为真,函数返回。同样,若指定的元素相等,条件为假,函数返回nil。3.小于 格式(at
4、om1 atom2)该函数()检查第一个元素(atom)是否小于第个元素(atom)。若为真,函数返回,否则返回nil。4.小于等于 格式(=atom1 atom2.)该函数(=)检查第一个元素(atom1)是否小于等于第二个元素(atom2),若是,函数返回,否则返回nil。,5.大于 格式(atom1 atom2)该函数()检查第一个元素(atom1)是否大于第二个元素(atom2)。若是,函数返回,否则返回nil。6.大于等于 格式(=atom1 atom2)该函数(=)检查第一个元素(atom1)的值是否大于等于第二个元素(atom2)。若是,函数返回,否则返回nil。,三、基本函数,
5、1.defun函数 defun函数用于在AutoLISP程序中定义函数,其格式为:(defun nameargument)其中name函数名 argument参数列表 示例:(defun ADNUM(),定义了一个函数ADNUM,此函数无参数,也无局部变量(Local symbols)。这就意味着程序中用到所有变量均为全局变量。全局变量的值在程序结束时不会丢失。(defun ADNUM(b c),定义了一个含有三个参数、和c的函数ADNUM。变量、从程序外部获取它们的值。(defun ADNUM(/),定义了一个含有两个局部变量和的函数ADNUM。局部变量在程序的执行期间保留其值,而且只能在它
6、所在的程序中使用。,(defun:ADNUM(),在函数名前加上:后,此函数就可以通过在AutoCAD的Command:提示符后输入其函数名来执行。如果没有使用:,函数名则必须置于圆括号中。注意 AutoLISP包含一些内置函数,不要使用其中的任一名称作为函数名或变量名,以下是一些AutoLISP内置函数的保留名称列表。2.setq函数 setq函数用于给变量赋值,其格式如下:(setq name valueName value)其中Name变量名 value赋予变量的值 赋予变量的值可以是任何表达式(数字表达式,字符串表达式或既含有字母又含有数字的表达式)。若该值为字符串,其长度不可超过10
7、0个字符。Command:(setq 12)Command:(setq 8.5 12),3、Command函数 Command函数用于在AutoLISP程序内部执行标准的AutoCAD命令。AutoCAD命令名及命令选项必须置于双引号内。Command函数的格式为:(Command“Commandname”)其中CommandAutoLISP函数 CommandnameAutoCAD命令 示例:(Command“line”Pt1 Pt2“”)“line”AutoCAD 命令 Pt1第一点 Pt2第二点“”用于返回,相当于“回车”键,4.getpoint函数 getpoint函数暂停程序的运行,
8、允许用户输入一个点的、坐标或、坐标。该点的坐标可以由键盘或使用屏幕光标输入。getpoint函数的格式为:(getPointPointPrompt)其中point输入一个点,或选择一个点 prompt将显示在屏幕上的提示 示例:(setq Pt1(getpoint)(setq Pt1(getPoint“选择第一点”)有上面几个函数就可以开始编程了:例1 编写一个程序,该程序将提示用户选择三角形的三个顶点,并通过它们绘出如三角形。本例中,程序的输入为三个点的坐标,期望的输出为一个三角形。用以生成该三角形的处理过程为:由P1到P2、由P2到P3、到P3到P1各画一条直线。弄清这三部分就会使编程过程
9、更清晰。,;该程序提示输入三点,1;提示选取点进可以是在屏幕上点取,也可以是输入坐标 2;程序将依此三点画出一个三角形 3 4(defun:triang1()5(setq P1(getPoint“选择第一点:”)6(setq 2(getPoint“选择第二点:”7(setq 3(getPoint“选择第三点:”)8(Command“line”P1 P2 P3“”)9)10说明 第13行 前三行为注释行,用于描述程序中的函数。这几行很重要因为有它们,编辑程序会变得简单一些。可以在任何必要的时候使用注释。所有的注释行都必须以分号(;)开头,当程序装入时这些行会被忽略。第4行:行为空行,用于分隔程序
10、与注释部分。空行还可以用来分隔程序的不同模块。这样便于区分程序的不同部分。空行对程序没有影响。,第5行:(defun C:triang1()本行中,defun为一个AutoLISP函数,它定义了函数TRIANG1。TRIANG1为该函数的函数名。由于此函数名前带有:,因此该函数可以像AutoCAD命令一样被执行。若没有:,TRIANG1命令只能置于圆括号中执行(TRIANG1)。此函数带有三个全局变量(P1,P2,P3)。第一次编写AutoLISP程序时,保持变量为全局变量是个好习惯。这是因为装入并运行程序后,可以通过在AutoCAD命令提示行中输人感叹号(!)并在其后输入变量名来检查变量的值
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CAD 二次开发 教程 AUTOLIS
链接地址:https://www.31ppt.com/p-5574277.html