AutoCAD软件的二次开发

上传人:宝路 文档编号:48330824 上传时间:2018-07-13 格式:PPT 页数:55 大小:501.58KB
返回 下载 相关 举报
AutoCAD软件的二次开发_第1页
第1页 / 共55页
AutoCAD软件的二次开发_第2页
第2页 / 共55页
AutoCAD软件的二次开发_第3页
第3页 / 共55页
AutoCAD软件的二次开发_第4页
第4页 / 共55页
AutoCAD软件的二次开发_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《AutoCAD软件的二次开发》由会员分享,可在线阅读,更多相关《AutoCAD软件的二次开发(55页珍藏版)》请在金锄头文库上搜索。

1、第七章第七章 AutoCADAutoCAD软件的二次开发软件的二次开发 Visual LISP简介 AutoLISP程序设计语言改变AutoCAD工作方式的方法: 定制 编程 AutoLISP/Visual LISP AutoCAD VBA(Visual Basic for Application) ADS(AutoCAD Development System) ObjectARX(AutoCAD Runtime eXtension)7. 1 7. 1 VisualLISPVisualLISP简介简介1. 1. LISP(ListLISP(List Processing Language) P

2、rocessing Language):人工智能领域中广泛采用的一种程序设 计语言,由于其处理的对象是符号表达式,因此也称为符号式语言。应用领域:应用领域:人工智能、机器人、专家系统、博弈、定理证明等。版本:版本:MacLISP、InterLISP、ZetaLISP、 CommonLISP2. 2. AutoLISPAutoLISP:嵌套于AutoCAD内部,将LISP语言与AutoCAD有机结合的编程语 言,用于定制和扩展AutoCAD的功能,是AutoCAD二次开发的工具之一。使用 AutoLISP可以直接调用几乎所有的AutoCAD命令;AutoLISP既具备高级语言的基本结构 和功能,

3、又具有一般高级语言所没有的强大的图形处理功能。用途:用途:l利用AutoLISP 进行AutoCAD二次开发,实现直接增加和修改AutoCAD命令;l扩大AutoCAD的图形编辑功能;l建立图形库和数据库并对当前图形进行直接访问和修改;l开发CAD软件包。一、一、AutoLISPAutoLISP简介简介7. 1 7. 1 AutoLISPAutoLISP简介简介3. 3. AutoLISPAutoLISP的典型应用的典型应用l参数化绘图程序设计u尺寸驱动程序u鼠标驱动程序l驱动利用AutoCAD提供的PDB模板构成的DCL(Dialog Control Language) 文件创 建自己的对话

4、框。4. 4. AutoLISPAutoLISP的特点的特点lAutoLISP语言是在普通LISP语言基础上,扩充了许多适用于CAD应用的特殊功能 而形成的,是一种仅能用解释方式运行于AutoCAD内部的解释型程序设计语言。lAutoLISP语言中的一切成分都是以函数形式给出的,没有语句概念和其它语法结构 。lAutoLISP把数据和程序统一表达为表结构,因此可以把程序当作数据来处理,也可 以把数据当作程序来执行。lAutoLISP语言中的程序运行过程就是对函数求值得过程,在函数求值过程中实现函 数功能。lAutoLISP语言的主要控制结构采用递归方式,程序设计简单易懂。一、一、AutoLIS

5、PAutoLISP简介简介二、二、AutoLISPAutoLISP的程序结构:的程序结构:AutoLISP程序是由一个或者一系列按 照特定顺序排列的标准表组成的,程序所实现的功能就是每个标准 表所实现功能的总和。7. 1 7. 1 VisualLISPVisualLISP简介简介1. 1. 标准表:标准表:由左右两个括号组成,其功能由括号内的代码实现;标准表中的第一 个元素均为操作符或者函数名,其余元素都是相应函数的参数。标准表格式:标准表格式:( (函数名函数名 )n)标准表示例:标准表示例:(setq x 10.0)(setq y 10.0)(setq z (+ x y)(setq a “

6、Hello World!”)(command “line” “0.0” “10,10” “”)(command “circle” “100,100” “50”)注意:标准表中 可包含别的表。7. 1 7. 1 VisualLISPVisualLISP简介简介2. 2. AutoLISPAutoLISP程序书写格式的特点程序书写格式的特点lAutoLISP程序是由标准表组成的,因此程序中所有的括号都必须左右匹配;lAutoLISP程序阅读函数时,按照从左到右的规则进行。l操作符(函数名)必须放在标准表中第一个元素的位置。标准表中的函数与参 数、参数与参数之间至少要用一个空格来分开。l2个标准表之

7、间和表内的多余空格和回车都是不需要的,因此一个表可以占多 行,一行内也可写多个表。lAutoLISP程序中用“ ;”作注释,程序执行时会自动跳过每一行中分号以后的部 分。注释可放于程序中的任何地方。lAutoLISP程序的扩展名为(.lsp),并以ASCII码文本文件的形式表达,可用文 本编辑软件进行编辑。(setq x 10.0) (setq y 10.0) (setq z (+x y) (setq a “Hello World!”) (command “line” “0.0” “10,10” “”) (command “circle” “100,100” “50”)学习学习AutoLISP

8、AutoLISP的核心是掌握的核心是掌握AutoLISPAutoLISP函数,包括函数,包括AutoCADAutoCAD自带的内部函数和由用自带的内部函数和由用 户自行定义的外部函数。户自行定义的外部函数。二、二、AutoLISPAutoLISP的程序结构的程序结构三、三、AutoLISPAutoLISP的内存分配的内存分配7. 1 7. 1 VisualLISPVisualLISP简介简介1. 1. AutoLISPAutoLISP运行时所需的两个内存区域:运行时所需的两个内存区域:l lHeapHeap(堆区域):(堆区域):存储所有函数和变量。程序使用的函数和表越多,变量名越长,函数 越

9、复杂,该区域所占的空间越大。Heap:25000 bytesl lStackStack(栈区域):(栈区域):存储函数的变量和局部结构。标准表中嵌套的表越多,函数执行的 递归次数越多,该区域所占的空间越大。Stack:20000 byets2. 2. 内存出错提示信息内存出错提示信息l l堆空间用光:堆空间用光:Insufficient node space。l l没有足够的内存装载没有足够的内存装载AutoLISPAutoLISP:Insufficiecnt memory-AutoLISP disabled。注意:注意:AutoCAD平台上运行AutoLISP时,用户不能扩展系统的堆或栈空间

10、7. 1 7. 1 VisualLISPVisualLISP简介简介四、四、AutoLISPAutoLISP程序执行过程程序执行过程l在AutoCAD环境中command命令提示符下输入AutoLISP程序,回车直接运行,返回结 果立即显示在文本屏幕上。例:例: (setq string “programming with AutoLISP is great fun!”)l用文本编辑软件编写AutoLISP程序,再用 Load Load 函数在AutoCAD环境中装载并运行。例:例:1.编写AutoLISP程序代码,存盘(d:MyAutoLISP.lsp) (princ “n Welcome!

11、)(defun c:welcome()(print “AutoLISP welcome you!”)2.启动AutoCAD,加载AutoLISP应用程序在command命令提示符下键入: (load “(load “d:/lisp/myautolisp.lspd:/lisp/myautolisp.lsp”)”)3. 3. 运行运行defundefun定义的函数定义的函数在在commandcommand命令提示行下键入:命令提示行下键入:welcomewelcome,回车,回车7. 1 7. 1 VisualLISPVisualLISP简介简介五、五、VisualLISPVisualLISP:

12、: Autodesk公司为增强AutoLISP程序开发能力而设 计的软件工具。Visual LISPVisual LISP集成开发环境的组成部分:集成开发环境的组成部分:l语法检查器:可识别错误的AutoLISP结构和内部函数调用中不合适的参数。l文件编译器:可改善程序的执行速度并提供一个有效的开发平台。l资源管理器:允许用户在一个窗口中一步步地执行AutoLISP程序源代码,并在AutoCAD 图形窗口中显示代码执行结果。lAutoLISP格式工具:可重新安排程序格式,增强程序可读性。l检查和观察工具:可方便地访问变量和表达式的值,还可浏览AutoCAD图形实体的各项 属性值。l上下文相关菜

13、单:提供有关AutoLISP函数信息以及对符号名的搜索。l项目管理系统:使用户可以更方便地管理多文件应用程序。编译过的AutoLISP文件将被 封装为一个单独的模块。l窗口保护和恢复功能:使用户可以保存并再次使用任一Visual LISP情景窗口环境。l智能化的控制台窗口:基本功能对应于AutoCAD文本屏幕窗口,同时提供了一些交互特 性。7. 2 7. 2 AutoLISPAutoLISP程序设计语言程序设计语言 AutoLISP表达式和数据结构 AutoLISP变量 基本输出函数 符号和函数控制7. 2 7. 2 AutoLISPAutoLISP程序设计语言程序设计语言一、数据类型一、数据

14、类型1. 1. 整型:整型:3232位带符号的整数位带符号的整数. .范围:范围:-2147483648+2147483647 (-231+231-1) 。注意:注意:如果输入的整数超过范围,则AutoLISP将整数转换为实数;如果两个整数运算结果超过这个范围,结果将是无效的。例:(set a 2147483648) 输出:2.14748e+009 转换为实数(set a (+ 2147483646 3) 输出:-2147483647 无效结果2. 2. 实型:实型:用双精度的浮点数表示,至少有用双精度的浮点数表示,至少有1414位有效位数的精度,可用科学计数法位有效位数的精度,可用科学计数法

15、 表示。表示。3. 3. 字符串:字符串:字符常数,由双引号引起来的字符系列。字符常数,由双引号引起来的字符系列。字符串长度:不包括双引号的字符个数,最大为100个字符,超过部分无效。任何字符都可以用nnn的格式表示, 是ASCII码的前导标识字符,nnn是该字 符的ASCII码。(例:ABCD可表示为101102103104)7. 2 7. 2 AutoLISPAutoLISP程序设计语言程序设计语言控制字符用“”为为前导导的转义转义 字符表示用“”为为前导导的ASCII码码数值值表 示 反斜杠014双引号“ ”双引号“ ”042Esc键键e033回车键车键r015换换行n012Tab键键t

16、011注意:注意:其中的字符e、n、r、t 都必须是小写。常用控制字符的表示方法常用控制字符的表示方法例:(setq a (getpoint “n请用鼠标指示一个点:”) (setq a (getpoint “012请用鼠标指示一个点:”) 7. 2 7. 2 AutoLISPAutoLISP程序设计语言程序设计语言4. 4. 表:表:以以“ “ ( ”( ”开始,以配对的开始,以配对的“ “ ) ”) ”结束,结束,() ()里可为空,可有若干元素(简单或复里可为空,可有若干元素(简单或复 杂),还可是其他的表。杂),还可是其他的表。表的长度:表的长度:表中的元素个数。表中的元素个数。例:例:(1.0 1.0 0.0) (“this” “that” “the other”) (1 “ONE”) (a b) c (c d)长度: 3

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号