CAD二次开发技术课件(一、二)_第1页
CAD二次开发技术课件(一、二)_第2页
CAD二次开发技术课件(一、二)_第3页
CAD二次开发技术课件(一、二)_第4页
CAD二次开发技术课件(一、二)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、河南工业大学机电工程学院CAD二次开发技术授课:韩莉莉本课程要学习的内容第第1 1章章 AutoCADAutoCAD及其二次开发工具简介及其二次开发工具简介第第2 2章章 AutoLISPAutoLISP基本函数和绘图功能基本函数和绘图功能第第3 3章章 AutoLISP分支函数与循环结构第第4 4章章 AutoLISP输入输出函数和图形数据库 第第5 5章章 AutoLISP对话框设计技术第1章 AutoCAD及其 二次开发工具简介 1.11.1 AutoCAD简介l AutoCAD是美国Autodesk公司开发的通用CAD软件,1982年首次推出了AutoCAD R1.0版本,经过不断的版

2、本更新,现最新的是AutoCAD2011AutoCAD2011版本。l AutoCAD是目前微机上应用最为广泛的通用交互式计算机辅助绘图与设计软件包。AutoCAD的强大生命力在于它的通用性、多种工业标准和开放的体系结构。l 用AutoCAD绘图速度更快、精度更高、而且便于个性,它已经在航空航天、造船、建筑、机械、电子、化工、美工、轻纺等很多领域得到了广泛应用,并取得了丰硕的成果和巨大的经济效益。 l AutoCAD软件具有如下特点 : (1)具有完善的图形绘制功能。 (2)有强大的图形编辑功能。 (3)可以采用多种方式进行二次开发或用户定制。 (4)可以进行多种图形格式的转换,具有较强的数据

3、 交换能力。 (5)支持多种硬件设备。 (6)支持多种操作平台。 (7)具有通用性、易用性,适用于各类用户。 1.11.1 AutoCAD简介l 为了适用于各种产品的设计需求,多数CAD软件的功能都具有很高的通用性。但由于针对性不强,用户需求与CAD系统规模之间的矛盾日益增加,存在设计效率不高的问题。l 在CAD软件平台上,结合具体的应用需求,总结行业的设计知识和经验,开发面向行业和设计流程的CAD系统,这就是所谓CAD二次开发。l AutoCAD的开放体系结构。允许用户采用高级编程语言对其进行扩充和修改。 Autodesk公司自AutoCAD v2.18版至AutoCAD 2000的短短十几

4、年间,就相继推出了三代二次开发工具 。1.21.2 AutoCAD二次开发l AutoLISP AutoLISP是1986年随AutoCADv2.18提供的二次开发工具。它是嵌入AutoCAD内部的一种人工智能语言。使用AutoLISP可调用几乎所有的AutoCAD命令。AutoLISP语言最典型的应用之一是实现参数化绘图程序设计,包括尺寸驱动程序和鼠标拖动程序等。另一个典型应用就是驱动AutoCAD提供PDB模块构成DCL文件,创建自己的对话框。 AutoLISP适合于有能力的终端用户完成一些自己的开发任务。1.31.3 AutoCAD二次开发工具简介l Visual LISP(VLISP)

5、 VLISP是AutoLISP的换代产品。与AutoLISP完全兼容,并提供它所有的功能,是新一代的AutoCAD LISP语言。VLISP对语言进行了扩展,可以通过Microsoft ActiveX Automation接口与对象交互。作为开发工具,VLISP提供了一个完整的集成开发环境(IDE),包括编译器、调试器和其他工具,可以提高二次开发的效率 。1.31.3 AutoCAD二次开发工具简介l VBA VBA是2000版本后具备的功能。它通过AutoCAD ActiveX Automation接口对AutoCAD进行编程控制,是一个引入了对象的设计环境,为用户提供类似Visual Ba

6、sic语言所拥有的功能,可以执行并存取 AutoCAD环境的所有资源,适合编写中型的数据库类的CAD软件。1.31.3 AutoCAD二次开发工具简介 ActiveX AutomationActiveX Automation是微软公司是微软公司推出的一个技术标准,其作用是在推出的一个技术标准,其作用是在WindowsWindows系统的统一管理下协调不同的系统的统一管理下协调不同的应用程序,允许应用程序之间相互控制、应用程序,允许应用程序之间相互控制、相互调用。相互调用。 AutoCAD ActiveXAutoCAD ActiveX技术提供了一种技术提供了一种机制,可使编程者通过编程手段从机制

7、,可使编程者通过编程手段从AutoCADAutoCAD的内部或外部来操纵的内部或外部来操纵AutoCADAutoCAD。ActiveXActiveX是由一系列的对象组成,每一是由一系列的对象组成,每一个对象代表了个对象代表了AutoCADAutoCAD中一个明确的功中一个明确的功能,如绘制图形对象、定义块和属性等能,如绘制图形对象、定义块和属性等等。等。ActiveXActiveX所具备的绝大多数所具备的绝大多数AutoCADAutoCAD功能,均以方法和属性的方式被封装在功能,均以方法和属性的方式被封装在ActiveXActiveX对象中,只要使用某种方式,对象中,只要使用某种方式,使使Ac

8、tiveXActiveX对象得以对象得以“暴露暴露”,那么就,那么就可以使用各种面向对象编程的语言对其可以使用各种面向对象编程的语言对其中的方法、属性进行引用,从而达到对中的方法、属性进行引用,从而达到对AutoCADAutoCAD实现编程的目的。实现编程的目的。 l ARX ObjectARX是AutoDesk公司针对AutoCAD平台上的二次开发而推出的一个开发软件包,它提供了以C+为基础的面向对象的开发环境及应用程序接口,能真正快速的访问AutoCAD图形数据库。 ObjectARX应用程序是一个DLL(动态链接库),共享AutoCAD的地址空间,对AutoCAD进行直接函数调用。所以,

9、使用ARX编程的函数的执行速度得以大大提高。ARX 类库采用了标准的C+类库的封装形式,这也大大提高了程序员编程的可靠度和效率。 由于是在Windows及VC+编程环境里运行,所以,对开发者的编程能力要求较高。1.31.3 AutoCAD二次开发工具简介适合于有能力的终端用户完成一些自己的开发任务。1.41.4 AutoLISP语言概述一、AutoLISP的数据类型l整数: (-2147483648到2147483648)l实数: (-1.79769310308到1.79769310308 )l符号: 包括除“(”、 “)”、 “.”、 “”、 “;”以外的任何打印字符。长度没有限制,大小写等

10、价。l字符串:包含在一对双引号内的一组字符 包括任何可以打印的字符。区别大小写。最大长度为100个字符,100以后的字符无效。没有任何字符的字符串为空串:”1.41.4 AutoLISP语言概述 常用术语常用术语“符号符号”来指储存静态数据的一个符号名,如内建式来指储存静态数据的一个符号名,如内建式函数和自定义函数。函数和自定义函数。 常用术语常用术语“变量变量”来指存储程序数据的符号名(只有当前类型来指存储程序数据的符号名(只有当前类型没有固定类型,字母开头,不用内部函数名和保留字符,如:没有固定类型,字母开头,不用内部函数名和保留字符,如:、. .、;、(、)、;、(、)、pipi、pau

11、sepause、T T、nilnil等等)。等等)。 AutoLISPAutoLISP的变量不需要事先定义。的变量不需要事先定义。 每一个变量都要消耗少量内存,故当变量值不再有用时重复使每一个变量都要消耗少量内存,故当变量值不再有用时重复使用变量名或将变量设置成用变量名或将变量设置成nilnil是良好的程序设计习惯。是良好的程序设计习惯。 其值保持不变的变量称为常量,如:其值保持不变的变量称为常量,如:PiPi 整数、实数、符号、字符串在整数、实数、符号、字符串在AutoLISPAutoLISP语言中称为语言中称为原子。原子包括:数字原子、符号原子和串原子。原子。原子包括:数字原子、符号原子和

12、串原子。一、AutoLISP的数据类型1.41.4 AutoLISP语言概述 表表有标准表和引用表两种类型;有标准表和引用表两种类型; AutoLISPAutoLISP程序就是用标准表来表示的;程序就是用标准表来表示的; 引用引用表用作数据处理,相当于其它高级语言的数组,提供了表用作数据处理,相当于其它高级语言的数组,提供了保存各种数据的有效方法。保存各种数据的有效方法。 引用表中的每一个元素可以是数字、符号、字符串,也可以引用表中的每一个元素可以是数字、符号、字符串,也可以是表。表可以嵌套。是表。表可以嵌套。 如:如:(23 1.5 A dfg23 1.5 A dfg ” ”程序程序” ”

13、(20.0 30.0 0.020.0 30.0 0.0) 仅有两个元素,并用仅有两个元素,并用“.”.”分开分开表称为点对。点对常用于构表称为点对。点对常用于构造连接表。造连接表。 表表有标准表和引用表两种类型;有标准表和引用表两种类型; AutoLISPAutoLISP程序就是用标准表来表示的;程序就是用标准表来表示的; 引用引用表用作数据处理,相当于其它高级语言的数组,提供了表用作数据处理,相当于其它高级语言的数组,提供了保存各种数据的有效方法。保存各种数据的有效方法。 引用表中的每一个元素可以是数字、符号、字符串,也可以引用表中的每一个元素可以是数字、符号、字符串,也可以是表。表可以嵌套

14、。是表。表可以嵌套。 如:如:(23 1.5 A dfg23 1.5 A dfg ” ”程序程序” ” (20.0 30.0 0.020.0 30.0 0.0) 仅有两个元素,并用仅有两个元素,并用“.”.”分开分开表称为点对。点对常用于构表称为点对。点对常用于构造连接表。造连接表。l文件描述符: 打开文件时的返回值,相当于其它语言的文件号,用于数据的存取。l选择集: 选择集是一个或多个对象的集合。l实体名(图元名): 是AutoCAD系统在绘图过程中赋予所绘对象的一个数字标号。确切地说,它是指向一个AutoCAD系统内部数据文件的指针。利用图元名,AutoLISP可以查找到图形对象的数据库记

15、录,并对其进行各种方式的处理。一、AutoLISP的数据类型1.41.4 AutoLISP语言概述l AutoLISP语言中的一切设计成份都是以函数的形式给出的。它没有语句的概念或其它语法结构,执行程序就是执行函数,再调用函数。l 学习掌握AutoLISP语言,核心就是要掌握它的函数;l 学习AutoLISP函数要掌握的基本内容:(1)调用格式:即函数名、函数要求的参数个数和类型。(2)功能:即该函数的作用,它对其参数如何进行处理。(3)求值情况:即哪些参数被求值,哪些不被求值。(4)求值结果的返回值类型二、AutoLISP的函数1.41.4 AutoLISP语言概述 这一点很重要,因为大多数

16、函数的返回值都要被其它函数接受,这一点很重要,因为大多数函数的返回值都要被其它函数接受,而每个函数所需要参数都有特定的类型。因此只有搞清被调用函而每个函数所需要参数都有特定的类型。因此只有搞清被调用函数的返回值的类型,才不会因用错函数的参数而导致错误数的返回值的类型,才不会因用错函数的参数而导致错误。 (setq x 25.0) (setq y 25.0) (+ (* x y ) x)三、AutoLISP的程序 (setq x 25.0) (setq x 25.0)(setq y 25.0)(+ x y)1.41.4 AutoLISP语言概述l 程序编辑: AutoLISP程序是纯文本文件,可

17、以用任意一种ASCII码文本编辑器(如记事本)来进行编辑。编辑后以扩展名为“.lsp”进行保存。 使用Visual LISP编程环境:打开AutoCAD2000及以上版本,点击“工具”菜单下AutoLISP(S)菜单项中的Visual LISP编辑器(V),进入Visual LISP编程环境四、编辑和运行AutoLISPAutoLISP的程序的程序1.41.4 AutoLISP语言概述第2章 AutoLISPAutoLISP基本函数基本函数 和绘图功能和绘图功能2.12.1 AutoLISP基本函数一、数值函数2.12.1 AutoLISP基本函数一、数值函数2.12.1 AutoLISP基本

18、函数一、数值函数2.12.1 AutoLISP基本函数二、符号与函数处理函数2.12.1 AutoLISP基本函数二、符号与函数处理函数2.12.1 AutoLISP基本函数二、符号与函数处理函数 全局变量可由任何函数访问和修改,或在任一表达式中全局变量可由任何函数访问和修改,或在任一表达式中使用。局部变量仅在定义它的函数求值期间(函数调用期使用。局部变量仅在定义它的函数求值期间(函数调用期间)有意义。间)有意义。2.12.1 AutoLISP基本函数三、表处理函数 AutoLISPAutoLISP接受接受carcar和和cdrcdr的任意组合的任意组合, 如如:( (cadarcadar )

19、 )等效于等效于(car (cdr(car (cdr (car (car ) ) 。2.12.1 AutoLISP基本函数三、表处理函数2.12.1 AutoLISP基本函数三、表处理函数2.12.1 AutoLISP基本函数三、表处理函数2.12.1 AutoLISP基本函数四、字符串处理函数2.12.1 AutoLISP基本函数四、字符串处理函数2.12.1 AutoLISP基本函数四、字符串处理函数2.22.2 AutoLISP的绘图功能一、GET类输入函数2.22.2 AutoLISP的绘图功能二、Command函数(1)Command函数的格式 (Command .)l 参数格式取决

20、于所执行的AutoCAD命令及其所需要的数据类型。即command函数中所调用的参数类型、个数、与顺序均要和AutoCAD命令严格对应。l AutoCAD的命令、子命令和选择项要用不含空格的字符串表示,大小写均可。l 数字常量(整数或实型数)可写成数本身也可写成字符串形式l 点常量有两种表示方法,一是用表的形式,如(10.0 25.0);二是用字符串中的数据表示如:” 10.0 ,25.0”。l command函数调用参数中的空串(“”),等效于在键盘上按一次空格键。l command函数调用的参数,如数字、点也可为表达式,但表达式求值结果的数据类型要和AutoCAD命令的要求一致。l com

21、mand函数可以不带任何参数,相当于在键盘上按一次Ctrl+C。 AutoLISPAutoLISP具有强大的绘图编辑功能,主要是由于它具有强大的绘图编辑功能,主要是由于它提供了一个系统内部函数提供了一个系统内部函数CommandCommand函数,利用函数,利用CommandCommand函函数可以非常方便地调用几乎全部数可以非常方便地调用几乎全部AutoCADAutoCAD命令,以完成命令,以完成各种工程图形的绘制功能。各种工程图形的绘制功能。2.22.2 AutoLISP的绘图功能二、Command函数(2)Command函数的功能l Command函数的功能是在AutoLISP编程中直接调用AutoCAD命令以编制绘图程序,其求值结果总是返回nil。l 用一个Command函数可以执行一条或多条AutoCAD命令。l 一条AutoCAD 命令可由多个command函数完成。l command的参数不能用get类函数。在一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论