《autocad次开发》ppt课件

上传人:tian****1990 文档编号:74878557 上传时间:2019-01-29 格式:PPT 页数:23 大小:3.47MB
返回 下载 相关 举报
《autocad次开发》ppt课件_第1页
第1页 / 共23页
《autocad次开发》ppt课件_第2页
第2页 / 共23页
《autocad次开发》ppt课件_第3页
第3页 / 共23页
《autocad次开发》ppt课件_第4页
第4页 / 共23页
《autocad次开发》ppt课件_第5页
第5页 / 共23页
点击查看更多>>
资源描述

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

1、AutoCAD二次开发,1.二次开发概述 2.二次开发可以实现的功能及其工程应用 3.二次开发工具的选择 4.关于二次开发工具的学习 5.对软件如何实现的一些构想,吴威皋 Tel:13636320963,二次开发概述,二次开发的含义 CAD软件的二次开发是指在现有的软件基础上,为了提高和完善软件功能,使之更加符合用户需求,而对软件做的开发工作。其目的是提高设计质量和效率,充分发挥通用CAD软件的价值。 二次开发将应用对象的设计规范、构造描述、设计方法等以约束关系的形式集成到通用CAD平台中去,以使应用对象的设计智能化、集成化。,对土木工程软件而言,基于AutoCAD平台来开发,有以下几个优点:

2、 (l)不用自己开发图形平台,可充分利用AutoCAD强大的图形功能,大大缩短了研发时间; (2)AutoCAD是一个被广泛使用的通用平台,提供了强大的绘图编辑功能,可供各专业绘图使用,大部分工程计算人员对此比较熟悉,在该平台上开发软件更具亲和力; (3)AutoCAD属于开放性平台,用户如对AutoCAD二次开发比较热悉,也可以加入自己的扩充程序。,二次开发可以实现的功能,一、菜 单 专业软件的菜单一定要有鲜明的专业特点。很多软件只是在AutoCAD的原来菜单后加上一个菜单项或者将AutoCAD的屏幕菜单替换掉。这类软件尽量对AutoCAD不做修改,避免许多熟悉AutoCAD的用户产生不习惯

3、的感觉。其实,AutoCAD只是提供了一个基本绘图环境,它涉及各行各业,没有任何偏重,由于没有较好的二次开发软件,广大用户才不得不去适应AutoCAD的菜单。就土木专业而言,其菜单项只有文件、设定两项以及一些绘图、修改命令经常用到,大部分菜单项平时都用不上。对AutoCAD菜单进行重新组合,增加一些实用工具菜单项,让菜单具有鲜明的专业特点,这样才能让设计人员绘图时得心应手,拥有一个良好的设计环境。,二、图 库 土木专业需要大量的节点详图,如框架、剪力墙构造节点,拉墙筋大样,基础详图等等。每个设计师手头都会保留或多或少这样的节点图。直接调入或者调入后稍加修改,就能运用于不同的项目设计,这样可以大

4、大减轻设计师的负担。如果没有专业图库,制图时要用到某个大样时,结构师只能凭着记忆打开其它图形文件去搜寻,然后用BLOCK命令制作成图块,再用INSERT命令插入本图。而且,不同的项目设计,不同的图形文件,可能会有不同的输出比例,弄不清比例会使得插入的图块大小失调,严重影响图面质量。因此,建立图库是二次开发的一项重要内容。,三、应用程序 作为最强大的图形支撑系统,AutoCAD提供了丰富的图形编辑命令,但对于专业人员,还远远不够。举例来说:在结构平面图中画一根钢筋,一级钢筋的弯钩是很难画的,画起来不但很费时间,而且掌握不好要么太大,要么太小,影响图面质量。又如:要把所有的字高由2.5mm改为3m

5、m,用CHANGE命令一个一个去修改,将使人无法忍受。其实用程序实现这些功能是很简单的。其它如批量修改文本的高度、字型、宽高比,炸开、连接文本,将两根直线连接为一根直线,给一根PLINE线加上钢筋弯头,画钢筋点、箍筋等等,都可以用程序实现。编写这些实用程序,可以用简单的操作完成许多复杂的工序,能为结构设计人员完成许多琐碎的工作,从而尽量将设计人员解放出来,使他们有更多的时间去进行创造性劳动。,四、简化命令,自定义命令 ACAD.PGP中提供的简化命令较少,有些还不是特别简捷。例如将“C”定义为CIRCLE,而将“CP”定义为COPY。其实COPY命令远远比CIRCLE命令应用得频繁。为何不将“

6、C”定义为COPY,而将“CI”定义为CIRCLE呢?其它如将“O”定义为OFFSET,“F”定义为FILLET,“D”定义为DDEDIT等等。应该形成一个标准,让大家统一起来,避免因习惯上的差异导致使用不便。,二次开发可以实现的功能,五、用AutoCAD作为结构分析软件的前后处理工具 结构计算分析软件最初都是通过填写数据文件的方式来输入数据的。这种方法很不直观,而且容易出错,很可能由于错误的输入数据导致错误的计算结果。因为如此,许多结构分析软件都推出了自己的图形支撑系。如PMPK,TBSA系列,都有自己的图形前处理部分。通过人机交互式输入,不仅更直观,大大提高工作效率,也更容易对工程进行直接

7、修改。 由于计算分析软件的重点在计算分析上,在图形前后处理上不可能有太大投入,其图形处理部分往往比较简单,与AutoCAD这样强大的图形支撑系统相比,功能和界面都相差很多。所以,用AutoCAD作为前处理工具,可以说是节省了一大笔不必的开销。而且,AutoCAD经过多年发展,其核心内容已基本公开,这就更容易提供出多个计算分析软件的数据接口,使得一个工程用几个不同的计算软件进行结构分析成为可能。在后处理方面,AutoCAD强大的图形编辑功能也使其它图形支撑系统望尘莫及。,二次开发可以实现的功能,二次开发在工程中的应用,预应力钢结构的非线性分析及CAD实现 基于AutoCAD平台的钢结构软件前处理

8、设计 钢塔架CAD系统的研制和开发 基于面向对象的悬臂和单支撑地下连续墙CAD开发 基于ARX平台的钢结构实体建模及施工图绘制 基于ObjectARX的桥梁施工图绘制研究 基于ObjectARX的索膜结构形态分析CAD系统开发 基于ObjectARX的挡土墙绘图系统的研究与开发 基于ObjectARX门式刚架轻钢CAD软件开发 基于ObjectARX的无粘结预应力楼盖CAD系统的开发,二次开发工具的选择,AutoCAD提供了以下几种主要的开发工具:,以C/C+为基础的ObjectARX 简称ARX 基于ActiveX技术的VBA开发 简称VBA AutoLISP/VisualLISP开发工具

9、简称VLISP 基于C#、VB.NET、托管C+等.NET技术开发,LISP:,LISP语言是早期的人工智能语言之一,为更好地开发AutoCAD,自AutoCAD2.18版以后均内嵌了AUTOLISP程序,是第一种能对AutoCAD进行二次开发的语言,在我国有相当多的软件都是采用AUTOLISP程序编写的。到2000版发展为Visual LISP程序。 LISP语言语法上最大的特点就是表+函数的结构。就连最基本的+运算都需利用函数的概念执行。LISP用表来描述一切,并不能很好地反映现实世界和过程,跟人的思维方式不一致。虽然有很多专家认为语言规则易学易用是LISP的一大优点,但是由于现在我们普遍

10、具备一定的编程能力,转换到LISP的语法会产生不适应,需要一定时间的适应,所以我个人觉得花大力气研究VLISP不值得。,LISP程序实例: 计算下面公式: (defun fx1( ) (+ ( * a b) (* 2 x x) (expt 2 (* 3 x) ) ) ),三大开发工具的特点,VBA:,这种工具对初学者来说非常友好,Visual Basic的代码阅读起来简单易懂。如果你对VBA非常精通,可以通过再对AutoCAD命令行进行仔细研究和分类,这样你就能实现LISP所能完成的所有功能!对VBA来说,最大的遗憾就是不能向AutoCAD注册命令,必须先用各种加载应用程序的方法将其对应的dv

11、b文件加载,然后通过“工具宏宏”菜单项执行,或者在菜单项和自定义的工具栏按钮中执行。 其一大优点是可以很容易地使用windows系统资源,使AutoCAD能较好地与其他windows下的应用软件交互。最典型的例子就是利用Excel进行数据操作。VBA对话框设计能力也十分突出。 VBA是以对象作为数据处理的基本单元,在AutoCAD中堪称特色的CAGD技术在VBA中则无法实现。如Trim、Extend、Dim-Diameter之类的命令都不能真正实施,要想完成这样的操作,相关数据只能在程序中自己计算。,三大开发工具的特点,三大开发工具的特点,ARX:,ARX程序本质上是Windows动态连接库(

12、DLL)程序,与AutoCAD共享地址空间,直接调用AutoCAD的核心函数,可直接访问AutoCAD数据库的核心数据结构和代码,以便能够在运行期间扩展AutoCAD固有的类及其功能,创建能够全面享受AutoCAD固有命令特权的新命令。 由于ARX是使用Visual C+作为基本程序设计语言,无论其效率、数据处理和软硬件的控制能力都是最好的,是唯一能针对多图档环境的程序设计方法,是从根本上拓展VLISP和VBA的程序设计方法。此外,这也是唯一一种能够确保你的代码安全(不被别人阅读或非法复制)的开发工具。 在三种开发工具中,这种工具拥有对AutoCAD最深入的控制能力。这种便利的代价就是编制AR

13、X程序比VBA和LISP程序需要花费更多的时间,因此用来编制简单的绘图工具有点浪费了。要掌握ARX的前提是你对C和C+比较熟悉。,几点值得注意的地方,1.AutoCAD二次开发和一般的程序设计有何不同? 从之前对三种开发工具特点的描述中可以看出,三种开发工具分别用了不同的技术手段,这就导致它们在代码上会有很大的不同。 VBA通过ActiveX Automation接口将消息发送到AutoCAD,对象是所有ActiveX应用程序的主要构造块。 Public Sub SimpleCreateLine() Dim startPoint(0 to 2) As Double, endPoint(0 to

14、 2) As Double SetPoint3d startPoint,0 ,0 ,0 SetPoint3d endPoint,100, 100, 0 Dim line As AcadLine Set Line= ThisDrawing.ModelSpace.Addline(startPoint, endPoint),然而在编写一个ARX程序的过程中,必须对AutoCAD的数据库有一定的了解。 要创建一个图形对象,需要遵循下面的基本步骤: (1)确定要创建对象的图形数据库; (2)获得图形数据库的块表; (3)获得一个存储实体的块表记录,所有模型空间的实体都存储在模型空间的特定记录中。 (4)

15、创建实体类的一个对象,将该对象附加到特定的块表记录中。,void WWGCreateLine() / 在内存上创建一个新的AcDbLine对象 AcGePoint3d ptStart(0, 0, 0); AcGePoint3d ptEnd(100, 100, 0); AcDbLine *pLine = new AcDbLine(ptStart, ptEnd); / 获得指向块表的指针 AcDbBlockTable *pBlockTable; acdbHostApplicationServices()-workingDatabase() -getBlockTable(pBlockTable, A

16、cDb:kForRead); / 获得指向特定的块表记录(模型空间)的指针 AcDbBlockTableRecord *pBlockTableRecord; pBlockTable-getAt(ACDB_MODEL_SPACE,pBlockTableRecord,AcDb:kForWrite); / 将AcDbLine类的对象添加到块表记录中 AcDbObjectId lineId; pBlockTableRecord-appendAcDbEntity(lineId, pLine); / 关闭图形数据库的各种对象 pBlockTable-close(); pBlockTableRecord-close(); pLine-close(); ,2.三种工具并不是完全独立的 前面介绍AutoCAD三种二次开发工具的特点,并不是让大家比较选择一种最喜欢的工具来编程。在实际开发的过程中,完全可以把程序分块使用不同开发工具进行编程。最后可以通过AutoCAD的加载和开发工具之间的接口完成程序功能的整合。这

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

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