《AutoCAD次开发》PPT课件.ppt_第1页
《AutoCAD次开发》PPT课件.ppt_第2页
《AutoCAD次开发》PPT课件.ppt_第3页
《AutoCAD次开发》PPT课件.ppt_第4页
《AutoCAD次开发》PPT课件.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

AutoCAD二次开发,1.二次开发概述2.二次开发可以实现的功能及其工程应用3.二次开发工具的选择4.关于二次开发工具的学习5.对软件如何实现的一些构想,吴威皋Tel二次开发概述,二次开发的含义CAD软件的二次开发是指在现有的软件基础上,为了提高和完善软件功能,使之更加符合用户需求,而对软件做的开发工作。其目的是提高设计质量和效率,充分发挥通用CAD软件的价值。二次开发将应用对象的设计规范、构造描述、设计方法等以约束关系的形式集成到通用CAD平台中去,以使应用对象的设计智能化、集成化。,对土木工程软件而言,基于AutoCAD平台来开发,有以下几个优点:(l)不用自己开发图形平台,可充分利用AutoCAD强大的图形功能,大大缩短了研发时间;(2)AutoCAD是一个被广泛使用的通用平台,提供了强大的绘图编辑功能,可供各专业绘图使用,大部分工程计算人员对此比较熟悉,在该平台上开发软件更具亲和力;(3)AutoCAD属于开放性平台,用户如对AutoCAD二次开发比较热悉,也可以加入自己的扩充程序。,二次开发可以实现的功能,一、菜单专业软件的菜单一定要有鲜明的专业特点。很多软件只是在AutoCAD的原来菜单后加上一个菜单项或者将AutoCAD的屏幕菜单替换掉。这类软件尽量对AutoCAD不做修改,避免许多熟悉AutoCAD的用户产生不习惯的感觉。其实,AutoCAD只是提供了一个基本绘图环境,它涉及各行各业,没有任何偏重,由于没有较好的二次开发软件,广大用户才不得不去适应AutoCAD的菜单。就土木专业而言,其菜单项只有文件、设定两项以及一些绘图、修改命令经常用到,大部分菜单项平时都用不上。对AutoCAD菜单进行重新组合,增加一些实用工具菜单项,让菜单具有鲜明的专业特点,这样才能让设计人员绘图时得心应手,拥有一个良好的设计环境。,二、图库土木专业需要大量的节点详图,如框架、剪力墙构造节点,拉墙筋大样,基础详图等等。每个设计师手头都会保留或多或少这样的节点图。直接调入或者调入后稍加修改,就能运用于不同的项目设计,这样可以大大减轻设计师的负担。如果没有专业图库,制图时要用到某个大样时,结构师只能凭着记忆打开其它图形文件去搜寻,然后用BLOCK命令制作成图块,再用INSERT命令插入本图。而且,不同的项目设计,不同的图形文件,可能会有不同的输出比例,弄不清比例会使得插入的图块大小失调,严重影响图面质量。因此,建立图库是二次开发的一项重要内容。,三、应用程序作为最强大的图形支撑系统,AutoCAD提供了丰富的图形编辑命令,但对于专业人员,还远远不够。举例来说:在结构平面图中画一根钢筋,一级钢筋的弯钩是很难画的,画起来不但很费时间,而且掌握不好要么太大,要么太小,影响图面质量。又如:要把所有的字高由2.5mm改为3mm,用CHANGE命令一个一个去修改,将使人无法忍受。其实用程序实现这些功能是很简单的。其它如批量修改文本的高度、字型、宽高比,炸开、连接文本,将两根直线连接为一根直线,给一根PLINE线加上钢筋弯头,画钢筋点、箍筋等等,都可以用程序实现。编写这些实用程序,可以用简单的操作完成许多复杂的工序,能为结构设计人员完成许多琐碎的工作,从而尽量将设计人员解放出来,使他们有更多的时间去进行创造性劳动。,四、简化命令,自定义命令ACAD.PGP中提供的简化命令较少,有些还不是特别简捷。例如将“C”定义为CIRCLE,而将“CP”定义为COPY。其实COPY命令远远比CIRCLE命令应用得频繁。为何不将“C”定义为COPY,而将“CI”定义为CIRCLE呢?其它如将“O”定义为OFFSET,“F”定义为FILLET,“D”定义为DDEDIT等等。应该形成一个标准,让大家统一起来,避免因习惯上的差异导致使用不便。,二次开发可以实现的功能,五、用AutoCAD作为结构分析软件的前后处理工具结构计算分析软件最初都是通过填写数据文件的方式来输入数据的。这种方法很不直观,而且容易出错,很可能由于错误的输入数据导致错误的计算结果。因为如此,许多结构分析软件都推出了自己的图形支撑系。如PMPK,TBSA系列,都有自己的图形前处理部分。通过人机交互式输入,不仅更直观,大大提高工作效率,也更容易对工程进行直接修改。由于计算分析软件的重点在计算分析上,在图形前后处理上不可能有太大投入,其图形处理部分往往比较简单,与AutoCAD这样强大的图形支撑系统相比,功能和界面都相差很多。所以,用AutoCAD作为前处理工具,可以说是节省了一大笔不必的开销。而且,AutoCAD经过多年发展,其核心内容已基本公开,这就更容易提供出多个计算分析软件的数据接口,使得一个工程用几个不同的计算软件进行结构分析成为可能。在后处理方面,AutoCAD强大的图形编辑功能也使其它图形支撑系统望尘莫及。,二次开发可以实现的功能,二次开发在工程中的应用,预应力钢结构的非线性分析及CAD实现基于AutoCAD平台的钢结构软件前处理设计钢塔架CAD系统的研制和开发基于面向对象的悬臂和单支撑地下连续墙CAD开发基于ARX平台的钢结构实体建模及施工图绘制基于ObjectARX的桥梁施工图绘制研究基于ObjectARX的索膜结构形态分析CAD系统开发基于ObjectARX的挡土墙绘图系统的研究与开发基于ObjectARX门式刚架轻钢CAD软件开发基于ObjectARX的无粘结预应力楼盖CAD系统的开发,二次开发工具的选择,AutoCAD提供了以下几种主要的开发工具:,以C/C+为基础的ObjectARX简称ARX基于ActiveX技术的VBA开发简称VBAAutoLISP/VisualLISP开发工具简称VLISP基于C#、VB.NET、托管C+等.NET技术开发,LISP:,LISP语言是早期的人工智能语言之一,为更好地开发AutoCAD,自AutoCAD2.18版以后均内嵌了AUTOLISP程序,是第一种能对AutoCAD进行二次开发的语言,在我国有相当多的软件都是采用AUTOLISP程序编写的。到2000版发展为VisualLISP程序。LISP语言语法上最大的特点就是表+函数的结构。就连最基本的+运算都需利用函数的概念执行。LISP用表来描述一切,并不能很好地反映现实世界和过程,跟人的思维方式不一致。虽然有很多专家认为语言规则易学易用是LISP的一大优点,但是由于现在我们普遍具备一定的编程能力,转换到LISP的语法会产生不适应,需要一定时间的适应,所以我个人觉得花大力气研究VLISP不值得。,LISP程序实例:计算下面公式:(defunfx1()(+(*ab)(*2xx)(expt2(*3x),三大开发工具的特点,VBA:,这种工具对初学者来说非常友好,VisualBasic的代码阅读起来简单易懂。如果你对VBA非常精通,可以通过再对AutoCAD命令行进行仔细研究和分类,这样你就能实现LISP所能完成的所有功能!对VBA来说,最大的遗憾就是不能向AutoCAD注册命令,必须先用各种加载应用程序的方法将其对应的dvb文件加载,然后通过“工具宏宏”菜单项执行,或者在菜单项和自定义的工具栏按钮中执行。其一大优点是可以很容易地使用windows系统资源,使AutoCAD能较好地与其他windows下的应用软件交互。最典型的例子就是利用Excel进行数据操作。VBA对话框设计能力也十分突出。VBA是以对象作为数据处理的基本单元,在AutoCAD中堪称特色的CAGD技术在VBA中则无法实现。如Trim、Extend、Dim-Diameter之类的命令都不能真正实施,要想完成这样的操作,相关数据只能在程序中自己计算。,三大开发工具的特点,三大开发工具的特点,ARX:,ARX程序本质上是Windows动态连接库(DLL)程序,与AutoCAD共享地址空间,直接调用AutoCAD的核心函数,可直接访问AutoCAD数据库的核心数据结构和代码,以便能够在运行期间扩展AutoCAD固有的类及其功能,创建能够全面享受AutoCAD固有命令特权的新命令。由于ARX是使用VisualC+作为基本程序设计语言,无论其效率、数据处理和软硬件的控制能力都是最好的,是唯一能针对多图档环境的程序设计方法,是从根本上拓展VLISP和VBA的程序设计方法。此外,这也是唯一一种能够确保你的代码安全(不被别人阅读或非法复制)的开发工具。在三种开发工具中,这种工具拥有对AutoCAD最深入的控制能力。这种便利的代价就是编制ARX程序比VBA和LISP程序需要花费更多的时间,因此用来编制简单的绘图工具有点浪费了。要掌握ARX的前提是你对C和C+比较熟悉。,几点值得注意的地方,1.AutoCAD二次开发和一般的程序设计有何不同?从之前对三种开发工具特点的描述中可以看出,三种开发工具分别用了不同的技术手段,这就导致它们在代码上会有很大的不同。VBA通过ActiveXAutomation接口将消息发送到AutoCAD,对象是所有ActiveX应用程序的主要构造块。PublicSubSimpleCreateLine()DimstartPoint(0to2)AsDouble,endPoint(0to2)AsDoubleSetPoint3dstartPoint,0,0,0SetPoint3dendPoint,100,100,0DimlineAsAcadLineSetLine=ThisDrawing.ModelSpace.Addline(startPoint,endPoint),然而在编写一个ARX程序的过程中,必须对AutoCAD的数据库有一定的了解。要创建一个图形对象,需要遵循下面的基本步骤:(1)确定要创建对象的图形数据库;(2)获得图形数据库的块表;(3)获得一个存储实体的块表记录,所有模型空间的实体都存储在模型空间的特定记录中。(4)创建实体类的一个对象,将该对象附加到特定的块表记录中。,voidWWGCreateLine()/在内存上创建一个新的AcDbLine对象AcGePoint3dptStart(0,0,0);AcGePoint3dptEnd(100,100,0);AcDbLine*pLine=newAcDbLine(ptStart,ptEnd);/获得指向块表的指针AcDbBlockTable*pBlockTable;acdbHostApplicationServices()-workingDatabase()-getBlockTable(pBlockTable,AcDb:kForRead);/获得指向特定的块表记录(模型空间)的指针AcDbBlockTableRecord*pBlockTableRecord;pBlockTable-getAt(ACDB_MODEL_SPACE,pBlockTableRecord,AcDb:kForWrite);/将AcDbLine类的对象添加到块表记录中AcDbObjectIdlineId;pBlockTableRecord-appendAcDbEntity(lineId,pLine);/关闭图形数据库的各种对象pBlockTable-close();pBlockTableRecord-close();pLine-close();,2.三种工具并不是完全独立的前面介绍AutoCAD三种二次开发工具的特点,并不是让大家比较选择一种最喜欢的工具来编程。在实际开发的过程中,完全可以把程序分块使用不同开发工具进行编程。最后可以通过AutoCAD的加载和开发工具之间的接口完成程序功能的整合。这样更有利于合作分工。现在比较可行的方案就是利用VBA进行一些简单浅层的开发、交互对话框的制作、与Excel数据交换。利用ARX进行命令的注册和高级功能的拓展。,3.学习需要指出的是,ObjectARX并不等于C+,VBA并不等于VB,所以熟悉上述两种语言的人,在使用时也需要学习大量的新知识。,关于开发工具的学习,图书:综述:AutoCAD应用开发技术瞿震主编中国电力出版社VLISP:VisualLISP程序设计(AutoCAD2006)李学志主编清华大学出版社VBA:AutoCADVBA&VB.NET开发基础与实例教程张帆等主编中国电力出版社ARX:ObjectARX开发实例教程张帆主编未出版(电子书),网络资源:CAD大观园()ObjectARX编程站(http:/www.ObjectARX.net)明经通道(.)晓东CAD(),主要靠自学,遇到问题大家互相讨论。充分利用图书、网络资源。,二次开发工具的开发环境,由于VisualLISP和VBA编辑器内嵌于AutoCAD软件中,所以只要安装了AutoCAD程序,上述两项工具的开发环境就已经搭建完成。出于学习的需要,建议安装AutoCAD2009。,ObjectARX的开发环境的建立就复杂得多首先需要ObjectARXSDK应用程序可以从,这里遇到了一个问题。由于现在市面的教材比较陈旧,大多都是基于AutoCAD2000的开发教材。包括前面推荐的ObjectARX开发实例教程,它是针对AutoCAD2002版,使用VC+6.0作为编译工具。由于版本原因,在此平台上能够成功运行的程序在高版本的AutoCAD中需要修改代码重新编译。,我的建议是在学习的过程中还是选用VC+6.0+AutoCAD2002+ObjectARX2002的配置由于AutoCAD2002对现在新的操作系统如VISTA,WIN7不兼容。对于上述两大操作系统,可以安装windowsxp虚拟机,这样就可以顺利安装AutoCAD2002了。,二次开发工具的开发环境,对软件如何实现的一些构想,以ObjectARX为例,一系统界面的设计对开发的系统拟采

温馨提示

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

最新文档

评论

0/150

提交评论