AUTO CAD二次开发与应用.doc_第1页
AUTO CAD二次开发与应用.doc_第2页
AUTO CAD二次开发与应用.doc_第3页
AUTO CAD二次开发与应用.doc_第4页
AUTO CAD二次开发与应用.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

Auto CAD二次开发与应用AutoCAD是目前国内使用最广泛的DLG软件,由美国Autodesk公司研制开发,自1982年面世以来以发展到18.1版,其丰富的绘图命令,强大的编辑功能和良好的用户界面受到了广大工程技术人员的普遍欢迎,目前AutoCAD的正式用户已经超过100万个,普及全世界150国家和地区。AutoCAD得到广泛应用的原因除了因为它功能强大、支持的平台多、外设广、性能价格好、易学易用外,更主要的原因是因为它具有开放的体系结构,允许用户和开发者在几乎所有方面对其扩充和修改,能最大限度地满足用户的特殊要求,特别是该软件提供的各种编程工具与接口,为用户在其基础上进行二次开发创造了便利的条件。通过二次开发,可方便地将之改造为一个按照用户要求的专题软件。1命令的用户化11程序参数文件(ACAD.GPG)结构与功能ACAD.PGP文件是AutoCAD用户化命令列表,当用户输入一个非AutoCAD的内部命令时,AutoCAD系统系统首先在ACAD.PGP中寻找该命令的定义。该文件是一个ASCII码文件,该文件分两部分:第一部分定义外部命令;第二部分定义命令别名。每一部分均有若干命令定义项组成,任意一命令定义项均占一行。文件中可包含用户对有关的命令定义所做的注解和说明。注解项均有分号“;”引导。当AutoCAD做图形编辑时,可以随时编辑ACAD.PGP文件,用来满足绘图时的个人习惯,使用REINIT命令从新对ACAD.PGP进行初始化(从新调入)。12在ACAD.PGP中定义AutoCAD的外部命令为了在AutoCAD中执行其它应用程序,用户必须告诉AutoCAD程序名及其有关的内容和运行方式,这些程序主要包括DOS命令、DOS应用程序、Windows命令、文本编辑器和字处理器、数据库管理程序、电子表格、通讯程序、用户的应用程序,用户必须在ACAD.PGP文件中有关外部命令的信息。当用户在ACAD.PGP中定义外部命令时,每行描述一个可执行的应用程序,所定义的外部命令有四个字段组成,中间用逗号分开,格式如下:,*121 命令名命令是用户在为了运行外部命令而在AutoCAD的命令符下所输入的命令名字,它不能是AutoCAD的内部命令,否则被忽略,命令的大小写字母通用,不能包含空格,否则AutoCAD将视为回车,命令结束122 DOS请求DOS请求是AutoCAD传递给DOS、Windows操作系统的命令,它可以DOS、Windows下任何合法的命令,甚至是一个批处理文件名。123 位标志位标志用于指定外部命令与AutoCAD之间的运算关系,位标志最常用的设置值(十进制)主要有:0:启动外部程序并等待其运行结束1:启动外部程序并不等待其运行结束3:最小化外部程序而并不等待其运行结束5:“隐藏”(后台)运行外部程序而并不等待其运行结束标志位2、4一般应避免采用,因为等待外部程序结束方可返回AutoCAD环境,而在外部外部程序运行期间,AutoCAD是被“屏蔽”起来而“无效”的124 提示当用户的外部命令定义包含这个字段时,AutoCAD将显示提示信息,等待用户输入,并把用户的相应作为参数提供给操作系统,如果提示符前有“*”号,AutoCAD允许输入空格,用户必须键入ENTER(回车)来结束,否则将以空格会回车来终止用户输入,如果用户不想用提示,仅需加一个逗号即可。13 定义命令别名和缩写用户可以通过在ACAD.PGP的命令别名项中定义其别名,把经常使用的命令简化成缩写,不用输入比较长的命令。命令别名项的定义格式为:,*131 命令别名用户在“命令(Command):提示符下输入的内容132 命令名命令名是指完整的AutoCAD内部命令、用户定义的AutoLISP或ARX命令名、显示器驱动程序或设备驱动程序名133命令别名命名规则a) 优先考虑采用命令的首字母、前两、三个字符作为命令的别名b) 忽略带对话框操作命令中的前两个字符 “DD”c) 尽量不用以数字开头来定义d) 如果命令别名已被定义,可通过添加后缀来定义命令别名e) 命令别名尽量比原命令短f) 利用连字号(前缀加“_”)来区分命令与对话框2 线型图案的开发AutoCAD提供了标准线型文件ACAD.LIN和标准图库文件ACAD.PAT当AutoCAD环境运行时会自动加载上述文件,当上述文件不能满足用户的需要时,也可新建该文件,但是需要用户自己加载。21线型文件的格式线型文件是一种纯ASCII的格式的文本文件,一个线型文件可以定义多种线型。每一个线型的定义占两行,空行、注解(分号)都被忽略,格式如下:*线型名,线型描述Alignment,dash-1,dash-2,dash-3211 线型对齐方式Alignment字段是线型的对齐方式,目前AutoCAD只是支持着这一种对齐方式,即字段开头用A来指定。212 线型的提笔与落笔dash-n用来指定组成线型的线段长度,若长度为正则表示下笔段(实线),若长度为负则表示抬笔短(间隔), 若长度为零则表示画出一个点。每个线型定义应该控制在80个字符内,最多允许280个字符,对于一般线型已经足够了。213 简单线型的建立用户可以在AutoCAD的环境下键入-linetype命令来建立新的线型,也可以使用文本编辑器直接编辑、建立线型文件,用户不必进入AutoCAD环境,在使用已有的线型文件时新建线型时应注意不能在已定义线型的两行间插入内容。214 复合线型的建立复合线型的定义语法与简单线型的语法基本相同,不同之处只是在定义中增加了用方括号括起来的的特殊参数,用来告诉AutoCAD如何镶入文本、形。复合线型的参数如下*线型名,线型描述Alignment,dash-1,dash-2.镶入的文本或形定义,dash-3其中“镶入的文本”定义语法为:String,Style,R=n,A=n,S=n,X=n,Y=n镶入形定义语法为:Shapename,Shape_file,R=n,A=n,S=n,X=n,Y=nString是一个或多个字符串组成的文本,Style是文本的样式名,Shapename是Shape_file的形名,需要指出的是Shape_file中必须有Shapename的形名,否则AutoCAD将拒绝使用使用此线型。R=n表示文本、形相对于当前线段方向的旋转角,缺省值为0,表示文本、形的方向与段的方向一致。A=n表示文本、形相对于世界坐标系X轴绝对旋转角。当希望总是以水平放置时A=0,用户可以指定R、A的值,但是不能同时指定数值,基本单位是度,如果想基本单位改换成弧度、梯度,需要在值后加R或G。S=n是文本、形的比例系数。X=n和Y=n是相对于线型分类中的当前点的偏移量。22图案文件的格式图案填充是有一族或多族组成的有规律的图案线组成,每一族有若干个平行或相交的线组成。每一个图案填充的定义占一行或多行,格式如下:*图案名,图案描述Adx,dy,dl,ds,第一组参数Adx,dy,dl,ds,第二组参数A 表示基准线与X轴的夹角dx,dy 表示基准线的起点坐标dl 表示平行线间距ds 平行线间距离3菜单的开发菜单文件一般包含翻译菜单(MNC)、菜单资源(MNR)、菜单源代码(MNS)菜单样板(MNU)等,其中翻译菜单、菜单资源为两进制文件,一般会有系统翻译而成,菜单源代码、菜单样板是一种纯ASCII的格式的文本文件,可以使用文本编辑器编辑、修改。31 菜单开发的一般方法a) 确定菜单的类型,即下拉菜单、图像块菜单、屏幕菜单、图形输入板菜单、工具菜单、快捷键、状态栏帮助等。b) 分析所需增加的菜单功能,在MNS、MNU找出相应的字菜单。c) 决定菜单的位置。d) 用文本编辑器编辑MNS、MNU文件,在合适的位置增加菜单或子菜单。32 建立组合菜单基础菜单是指AutoCAD启动时的自动加载的菜单文件,也可以使用MENU命令加载基础菜单,在任何情况下基础菜单只能有一个,局部菜可以使用MENULOAD加载,局部菜单允许同时有一个或多个,用户可以随心所欲的删除基础菜单、局部菜单的菜单内容。从而拼凑出一个适合于当前用户习惯的菜单文件。4 AutoLISP语言设计AutoLISP语言是一种运行在AutoCAD环境下的的镶入式语言,是AutoCAD提供给用户主要的开发语言之一,利用AutoLISP语言编程可以快速实现对AutoCAD 当前图形数据进行直接访问和修改,是人工只能领域中广泛使用的一种程序设计语言。在LISP语言中,最基本的数据类型是符号表达式,一个LISP程序可以把另一个LISP程序作为它的数据进行处理,因此编程比较灵活,看起来,是一个一个的函数调用,其实支持递归定义是AutoLISP语言重要性质。41 AutoLISP语言的特性a) AutoLISP语言属于解释型语言,其优点在于执行这种语言编写的程序不需要任何的中间步骤,用户可以交互、独立地来验证程序段或语句。b) AutoLISP语言特点是可移植性。AutoLISP程序可以运行于多种平台上的AutoCAD中执行而与CPU或操作系统无关。c) AutoLISP的设计向下兼容,任何一个AutoCAD版本下所编写的AutoLISP程序均可在以后的AutoCAD运行。42 AutoLISP程序的自动加载AutoCAD每次启动时,都会将目录下的ACAD.LSP自动加载,因此可将AutoLISP的程序集放到该文件内,实现自动载入。AutoCAD启动时,每次都会自动加载基础菜单,因此用户可以将AutoLISP的程序集放到菜单文件MNL中,也可实现自动加载。5 ARX程序的开发ARX编程环境是Autodesk公司在AutoCAD R13及其以后的版本中提供的面向对象特性的C+应用程序编程接口,开发人员可以开发出相应的模块来开发和定制AutoCAD的功能,ARX可以直接进入AutoCAD的数据库,图形系统原始命令内部。ARX可以创建AutoCAD新命令,这些新定义的操作方式与AutoCAD原有命令相同。51 ARX程序的特点a) 基于WINDOWS DLL翻译应用程序环境b) 集成了AutoCAD,AutoLISP和ADSc) 提供了220类,3000多个不重复的函数成员d) 可操作性,直接利用C+进入结构内核e) 能够从新定义AutoCAD命令52 ARX类库结构a) AcRx类库包含于RXAPI.LIB文件中,用于附加应用程序、运行时类登记与管理b) AcED类库包含于ACEDAPI.LIB文件中,用于原始命令的登记和系统事件的声明c) AcDb类库包含于ACAD.LIB文件中,用于数据库类对象引用的管理d) AcGi类库包含于ACGIAPI.LIB文件中, 用于AutoCAD实体绘制的图形接口e) AcGe类库包含于LIBACGE.LIB文件中,用于通用线性和集合对象的工具库f) ADS类库包含于ACAD.LIB文件中,用于生成AutoCAD的C语言库5 ActiveX Automatiom 开发技术AutoCAD 从R14开始提供ActiveX Automatiom技术,通过Visual Basic 6.0 的对象浏览器可以观察到对象的属性、方法、全局共有变量、常用变量的定义等。51 ActiveX Automatiom优点a) 应用程序可以在第一次引用类型库时自动启动AutoCADb) 函数、方法、属性可以在翻译时得到检查、纠正,从而提高工作效率c) 可以使用库中声明的变量类型和常量定义,提高程序的可读性、安全性d) ActiveX Automatiom 向下兼容,任何的VBA程序均可在以后的版本中得到可靠的运行e) 可以生成可执行文件,从而提高了程序的稳定性、移动性52 将Application与AutoCAD程序连接Application对象是VB应用程序与AutoCAD之间链接的关键。只有通过Application对象用户才能获得Document对象、ModelSpace、PaperSpace对象。这是ActiveX Automatiom开发AutoCAD应用程序的第一步。521 获取Application对象Dim acadapp as objectOn Error Resume NextSet acadapp=GetObject(,” AutoCAD. Application”)If Err ThenErr.ClearSet acadapp=GetObject(” AutoCAD. Application”)End If当AutoCAD运行时GetObject函数返回给声明acadapp 一个Application对象。522 获取Document对象Document是有Application对象的ActiveDocument返回的对象,是当前在编辑的图形,是图形进行图形编辑的最高对象。Dim acadappDoc as objectSet acadDoc= acadapp. ActiveDocument当的到Document对象后就可以使用它的实行方法。例如保存文件acadDo.Save523获取图形对象图形对象是ModelSpace或PaperSpace集合对象的子对象,因此在产生新对象之前必须获取一个ModelSpace或PaperSpace的对象集合,这两个对象可有Document对象的ModelSpace和PaperSpace返回,利用ModelSpace或PaperSpace的ADDEntit

温馨提示

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

评论

0/150

提交评论