欢迎来到天天文库
浏览记录
ID:36284706
大小:696.31 KB
页数:55页
时间:2019-05-08
《autocad软件的二次开发》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第七章AutoCAD软件的二次开发VisualLISP简介AutoLISP程序设计语言改变AutoCAD工作方式的方法:定制编程AutoLISP/VisualLISPAutoCADVBA(VisualBasicforApplication)ADS(AutoCADDevelopmentSystem)ObjectARX(AutoCADRuntimeeXtension)7.1VisualLISP简介1.LISP(ListProcessingLanguage):人工智能领域中广泛采用的一种程序设计语言,由于其处理的对象是符号表达式,因此也称为符号式语言。应用领域:人工智能、机器人、专家系统
2、、博弈、定理证明等。版本:MacLISP、InterLISP、ZetaLISP、CommonLISP2.AutoLISP:嵌套于AutoCAD内部,将LISP语言与AutoCAD有机结合的编程语言,用于定制和扩展AutoCAD的功能,是AutoCAD二次开发的工具之一。使用AutoLISP可以直接调用几乎所有的AutoCAD命令;AutoLISP既具备高级语言的基本结构和功能,又具有一般高级语言所没有的强大的图形处理功能。用途:利用AutoLISP进行AutoCAD二次开发,实现直接增加和修改AutoCAD命令;扩大AutoCAD的图形编辑功能;建立图形库和数据库并对当前图形进行直
3、接访问和修改;开发CAD软件包。一、AutoLISP简介7.1AutoLISP简介3.AutoLISP的典型应用参数化绘图程序设计尺寸驱动程序鼠标驱动程序驱动利用AutoCAD提供的PDB模板构成的DCL(DialogControlLanguage)文件创建自己的对话框。4.AutoLISP的特点AutoLISP语言是在普通LISP语言基础上,扩充了许多适用于CAD应用的特殊功能而形成的,是一种仅能用解释方式运行于AutoCAD内部的解释型程序设计语言。AutoLISP语言中的一切成分都是以函数形式给出的,没有语句概念和其它语法结构。AutoLISP把数据和程序统一表达为表结构,因
4、此可以把程序当作数据来处理,也可以把数据当作程序来执行。AutoLISP语言中的程序运行过程就是对函数求值得过程,在函数求值过程中实现函数功能。AutoLISP语言的主要控制结构采用递归方式,程序设计简单易懂。一、AutoLISP简介二、AutoLISP的程序结构:AutoLISP程序是由一个或者一系列按照特定顺序排列的标准表组成的,程序所实现的功能就是每个标准表所实现功能的总和。7.1VisualLISP简介1.标准表:由左右两个括号组成,其功能由括号内的代码实现;标准表中的第一个元素均为操作符或者函数名,其余元素都是相应函数的参数。标准表格式:(函数名[<参数1>][<参数2>
5、]……[<参数n>])标准表示例:(setqx10.0)(setqy10.0)(setqz(+xy))(setqa“HelloWorld!”)(command“line”“0.0”“10,10”“”)(command“circle”“100,100”“50”)注意:标准表中可包含别的表。7.1VisualLISP简介2.AutoLISP程序书写格式的特点AutoLISP程序是由标准表组成的,因此程序中所有的括号都必须左右匹配;AutoLISP程序阅读函数时,按照从左到右的规则进行。操作符(函数名)必须放在标准表中第一个元素的位置。标准表中的函数与参数、参数与参数之间至少要用一个空格
6、来分开。2个标准表之间和表内的多余空格和回车都是不需要的,因此一个表可以占多行,一行内也可写多个表。AutoLISP程序中用“;”作注释,程序执行时会自动跳过每一行中分号以后的部分。注释可放于程序中的任何地方。AutoLISP程序的扩展名为(.lsp),并以ASCII码文本文件的形式表达,可用文本编辑软件进行编辑。(setqx10.0)(setqy10.0)(setqz(+xy))(setqa“HelloWorld!”)(command“line”“0.0”“10,10”“”)(command“circle”“100,100”“50”)学习AutoLISP的核心是掌握AutoLIS
7、P函数,包括AutoCAD自带的内部函数和由用户自行定义的外部函数。二、AutoLISP的程序结构三、AutoLISP的内存分配7.1VisualLISP简介1.AutoLISP运行时所需的两个内存区域:Heap(堆区域):存储所有函数和变量。程序使用的函数和表越多,变量名越长,函数越复杂,该区域所占的空间越大。Heap:25000bytesStack(栈区域):存储函数的变量和局部结构。标准表中嵌套的表越多,函数执行的递归次数越多,该区域所占的空间越大。Stack:
此文档下载收益归作者所有