CAD二次开发技术一二学习教案_第1页
CAD二次开发技术一二学习教案_第2页
CAD二次开发技术一二学习教案_第3页
CAD二次开发技术一二学习教案_第4页
CAD二次开发技术一二学习教案_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、会计学1CAD二次开发技术二次开发技术(jsh)一二一二第一页,共37页。本课程(kchng)要学习的内容第1章 AutoCAD及其二次开发工具简介第2章 AutoLISP基本函数和绘图功能第3章 AutoLISP分支(fnzh)函数与循环结构第4章 AutoLISP输入输出函数和图形数据库 第5章 AutoLISP对话框设计技术第1页/共37页第二页,共37页。第1章 AutoCAD及其 二次开发工具简介(jin ji) 第2页/共37页第三页,共37页。1.1 AutoCAD简介(jin ji)l AutoCAD是美国Autodesk公司开发的通用CAD软件,1982年首次推出了AutoC

2、AD R1.0版本,经过不断的版本更新,现最新的是AutoCAD2011版本。l AutoCAD是目前微机上应用最为广泛(gungfn)的通用交互式计算机辅助绘图与设计软件包。AutoCAD的强大生命力在于它的通用性、多种工业标准和开放的体系结构。l 用AutoCAD绘图速度更快、精度更高、而且便于个性,它已经在航空航天、造船、建筑、机械、电子、化工、美工、轻纺等很多领域得到了广泛(gungfn)应用,并取得了丰硕的成果和巨大的经济效益。 第3页/共37页第四页,共37页。l AutoCAD软件具有如下特点 :l (1)具有完善的图形绘制功能。l (2)有强大的图形编辑功能。l (3)可以采用

3、多种方式进行二次开发或用户定制。l (4)可以进行多种图形格式的转换,具有较强的数据l 交换能力。 l (5)支持多种硬件设备。 l (6)支持多种操作(cozu)平台。 l (7)具有通用性、易用性,适用于各类用户。 1.1 AutoCAD简介(jin ji)第4页/共37页第五页,共37页。l 为了适用(shyng)于各种产品的设计需求,多数CAD软件的功能都具有很高的通用性。但由于针对性不强,用户需求与CAD系统规模之间的矛盾日益增加,存在设计效率不高的问题。l 在CAD软件平台上,结合具体的应用需求,总结行业的设计知识和经验,开发面向行业和设计流程的CAD系统,这就是所谓CAD二次开发

4、。l AutoCAD的开放体系结构。允许用户采用高级编程语言对其进行扩充和修改。 Autodesk公司自AutoCAD v2.18版至AutoCAD 2000的短短十几年间,就相继推出了三代二次开发工具 。1.2 AutoCAD二次开发第5页/共37页第六页,共37页。l AutoLISPl AutoLISP是1986年随AutoCADv2.18提供的二次开发(kif)工具。它是嵌入AutoCAD内部的一种人工智能语言。使用AutoLISP可调用几乎所有的AutoCAD命令。AutoLISP语言最典型的应用之一是实现参数化绘图程序设计,包括尺寸驱动程序和鼠标拖动程序等。另一个典型应用就是驱动A

5、utoCAD提供PDB模块构成DCL文件,创建自己的对话框。l AutoLISP适合于有能力的终端用户完成一些自己的开发(kif)任务。1.3 AutoCAD二次开发工具简介(jin ji)第6页/共37页第七页,共37页。l Visual LISP(VLISP)l VLISP是AutoLISP的换代产品。与AutoLISP完全兼容,并提供它所有的功能,是新一代的AutoCAD LISP语言。VLISP对语言进行了扩展,可以(ky)通过Microsoft ActiveX Automation接口与对象交互。作为开发工具,VLISP提供了一个完整的集成开发环境(IDE),包括编译器、调试器和其他

6、工具,可以(ky)提高二次开发的效率 。1.3 AutoCAD二次开发工具简介(jin ji)第7页/共37页第八页,共37页。l VBAl VBA是2000版本后具备的功能。它通过AutoCAD ActiveX Automation接口(ji ku)对AutoCAD进行编程控制,是一个引入了对象的设计环境,为用户提供类似Visual Basic语言所拥有的功能,可以执行并存取 AutoCAD环境的所有资源,适合编写中型的数据库类的CAD软件。1.3 AutoCAD二次开发工具简介(jin ji) ActiveX Automation是微软公司推出的一个技术标准,其作用是在Windows系统的

7、统一管理下协调不同的应用程序,允许应用程序之间相互控制、相互调用。 AutoCAD ActiveX技术提供了一种(y zhn)机制,可使编程者通过编程手段从AutoCAD的内部或外部来操纵AutoCAD。ActiveX是由一系列的对象组成,每一个对象代表了AutoCAD中一个明确的功能,如绘制图形对象、定义块和属性等等。ActiveX所具备的绝大多数AutoCAD功能,均以方法和属性的方式被封装在ActiveX对象中,只要使用某种方式,使ActiveX对象得以“暴露”,那么就可以使用各种面向对象编程的语言对其中的方法、属性进行引用,从而达到对AutoCAD实现编程的目的。 第8页/共37页第九

8、页,共37页。l ARXl ObjectARX是AutoDesk公司针对AutoCAD平台上的二次开发而推出的一个开发软件包,它提供了以C+为基础的面向对象的开发环境及应用程序接口,能真正快速的访问AutoCAD图形数据库。 ObjectARX应用程序是一个DLL(动态链接库),共享AutoCAD的地址空间,对AutoCAD进行直接函数(hnsh)调用。所以,使用ARX编程的函数(hnsh)的执行速度得以大大提高。ARX 类库采用了标准的C+类库的封装形式,这也大大提高了程序员编程的可靠度和效率。l 由于是在Windows及VC+编程环境里运行,所以,对开发者的编程能力要求较高。1.3 Aut

9、oCAD二次开发工具简介(jin ji)第9页/共37页第十页,共37页。1.4 AutoLISP语言(yyn)概述第10页/共37页第十一页,共37页。一、AutoLISP的数据类型l 整数: (-2147483648到2147483648)l 实数: (-1.79769310308到1.79769310308 )l 符号: 包括除“(”、 “)”、 “.”、 “”、 “;”以外的任何打印字符。长度(chngd)没有限制,大小写等价。l 字符串:包含在一对双引号内的一组字符l 包括任何可以打印的字符。区别大小写。最大长度(chngd)为100个字符,100以后的字符无效。没有任何字符的字符串

10、为空串:”1.4 AutoLISP语言(yyn)概述 常用术语“符号”来指储存静态数据的一个符号名,如内建式函数和自定义函数。 常用术语“变量”来指存储程序数据的符号名(只有当前类型没有固定类型,字母开头,不用内部函数名和保留字符,如:、.、;、(、)、pi、pause、T、nil等等)。 AutoLISP的变量不需要事先定义。 每一个变量都要消耗少量内存,故当变量值不再有用时重复使用变量名或将变量设置成nil是良好(lingho)的程序设计习惯。 其值保持不变的变量称为常量,如:Pi 整数、实数、符号、字符串在AutoLISP语言中称为原子。原子包括:数字原子、符号原子和串原子。第11页/共

11、37页第十二页,共37页。一、AutoLISP的数据类型1.4 AutoLISP语言(yyn)概述 表有标准表和引用表两种类型; AutoLISP程序就是(jish)用标准表来表示的; 引用表用作数据处理,相当于其它高级语言的数组,提供了保存各种数据的有效方法。 引用表中的每一个元素可以是数字、符号、字符串,也可以是表。表可以嵌套。 如:(23 1.5 A dfg ”程序” (20.0 30.0 0.0) 仅有两个元素,并用“.”分开表称为点对。点对常用于构造连接表。 表有标准表和引用表两种类型; AutoLISP程序就是用标准表来表示的; 引用表用作数据处理,相当于其它高级语言的数组,提供了

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

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

14、数(hnsh)1.4 AutoLISP语言(yyn)概述 这一点很重要,因为大多数函数的返回值都要被其它函数接受,而每个函数所需要参数都有特定的类型。因此只有搞清被调用函数的返回值的类型,才不会因用错函数的参数而导致错误。第14页/共37页第十五页,共37页。 (setq x 25.0) (setq y 25.0) (+ (* x y ) x)三、AutoLISP的程序(chngx) (setq x 25.0) (setq x 25.0)(setq y 25.0)(+ x y)1.4 AutoLISP语言概述第15页/共37页第十六页,共37页。l 程序(chngx)编辑:l AutoLISP

15、程序(chngx)是纯文本文件,可以用任意一种ASCII码文本编辑器(如记事本)来进行编辑。编辑后以扩展名为“.lsp”进行保存。l 使用Visual LISP编程环境:打开AutoCAD2000及以上版本,点击“工具”菜单下AutoLISP(S)菜单项中的Visual LISP编辑器(V),进入Visual LISP编程环境四、编辑(binj)和运行AutoLISP的程序1.4 AutoLISP语言概述第16页/共37页第十七页,共37页。第2章 AutoLISP基本函数(hnsh) 和绘图功能第17页/共37页第十八页,共37页。2.1 AutoLISP基本(jbn)函数一、数值(shz)

16、函数第18页/共37页第十九页,共37页。2.1 AutoLISP基本(jbn)函数一、数值(shz)函数第19页/共37页第二十页,共37页。2.1 AutoLISP基本(jbn)函数一、数值(shz)函数第20页/共37页第二十一页,共37页。2.1 AutoLISP基本(jbn)函数二、符号(fho)与函数处理函数第21页/共37页第二十二页,共37页。2.1 AutoLISP基本(jbn)函数二、符号(fho)与函数处理函数第22页/共37页第二十三页,共37页。2.1 AutoLISP基本(jbn)函数二、符号(fho)与函数处理函数 全局变量可由任何函数访问和修改,或在任一表达式中

17、使用。局部变量仅在定义它的函数求值期间(函数调用期间)有意义。第23页/共37页第二十四页,共37页。2.1 AutoLISP基本(jbn)函数三、表处理函数(hnsh) AutoLISP接受car和cdr的任意组合, 如:(cadar )等效于(car (cdr (car ) 。第24页/共37页第二十五页,共37页。2.1 AutoLISP基本(jbn)函数三、表处理函数(hnsh)第25页/共37页第二十六页,共37页。2.1 AutoLISP基本(jbn)函数三、表处理函数(hnsh)第26页/共37页第二十七页,共37页。2.1 AutoLISP基本(jbn)函数三、表处理函数(hn

18、sh)第27页/共37页第二十八页,共37页。2.1 AutoLISP基本(jbn)函数四、字符串处理函数第28页/共37页第二十九页,共37页。2.1 AutoLISP基本(jbn)函数四、字符串处理函数第29页/共37页第三十页,共37页。2.1 AutoLISP基本(jbn)函数四、字符串处理函数第30页/共37页第三十一页,共37页。2.2 AutoLISP的绘图(hu t)功能一、GET类输入(shr)函数第31页/共37页第三十二页,共37页。2.2 AutoLISP的绘图(hu t)功能二、Command函数(hnsh)(1)Command函数的格式 (Command .) 参数

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

20、 command函数可以不带任何参数,相当于在键盘上按一次Ctrl+C。 AutoLISP具有强大的绘图编辑功能,主要是由于它提供了一个系统内部函数Command函数,利用Command函数可以非常方便地调用几乎全部AutoCAD命令,以完成各种工程图形的绘制功能。第32页/共37页第三十三页,共37页。2.2 AutoLISP的绘图(hu t)功能二、Command函数(hnsh)(2)Command函数的功能(gngnng) Command函数的功能(gngnng)是在AutoLISP编程中直接调用AutoCAD命令以编制绘图程序,其求值结果总是返回nil。 用一个Command函数可以执行一条或多条AutoCAD命令。 一条AutoCAD 命令可由多个command函数完成。 command的参数不能用get类函数。在一条AutoCAD 命令由多个command函数完成情况下,可在多个command函数调用中插入get类函数。(3)应用Command函数的注意事项 Command函数调用中的参数类型、个数、顺序要和AutoCAD命令严格对应。为防止出错,可先在AutoCAD的命令行输入要执行的命令,确定其输入命令、子命令及数据都准确无误后,再编入程序的Command函数中。

温馨提示

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

评论

0/150

提交评论