利用VC开发AutoCAD的研究与实现
- 格式:pdf
- 大小:84.84 KB
- 文档页数:1
6
科技资讯 SCIENCE & TECHNOLOGY INFORMATION2009 NO.24SCIENCE & TECHNOLOGY INFORMATION高 新 技 术
AutoCAD在铁路工程设计中的应用十分普遍,而且已成为不可缺少的应用软件。在应用过程中经常要利用MFC开发出功能强大、具有良好人机界面的软件,并将AutoCAD的二次开发技术嵌入到工程当中,以实现铁路工程图纸的自动绘制或者工程图纸的信息自动提取。实现MFC与AutoCAD的融合是软件开发的关键,也是难点。在AutoCAD二次开发技术中,objectARX虽然可以在VC环境下使用,但其具有版本对应的限制。在VC6.0环境下开发出来的ARX库函数只能在AutoCAD2002版本以下才可以使用,而现在普遍使用的都是2004版本以上,这就导致无法推广和应用。本文介绍一种采用ActiveX自动化技术直接在MFC环境下实现AutoCAD二次开发的方法,有效地解决了object ARX版本不对应等问题,实现了MFC与AutoCAD的完美融合。1 开发技术简介1.1AutoCAD ActiveX 自动化技术简介AutoCAD从R14开始提供ActiveX 自动化技术。对于AutoCAD,其支持的对象、方法和属性在类型库中定义。类型库是一个文件或文件的一部分,它描述一个或多个对象,但不存储对象,而是存储对象的接口描述。自动化技术将各种功能封装在ActiveX对象中,供编程使用。用户通过MFC对ActiveX对象及其方法和属性的操作实现对AutoCAD的二次开发。1.2MFC环境下开发AutoCAD的实现步骤(1)类型库的引入。要在MFC环境下进行AutoCAD的二次开发,首先需要把AutoCAD的类型库引入到程序工程当中。在MFC环境下,打开类向导对话框,选择添加新类,然后找到类型库文件。不同的AutoCAD版本对应的类型库不同,但各个类型库里的函数大部分都是一样的。(2)常用类的添加。类型库提供给用户编写C++接口类的全部信息,利用MFC的类向导可以自动读入这些信息。2 具体实现2.1数据机制的实现客户程序对AutoCAD的操作是通过访问AutoCAD对象的方法和属性来完成的。从本质上讲,对象对应于IDispatch调度接口。IDispatch的调度程序是基于类型库进行调度的,对IDispatch的调用由好几种方法,在MFC中是通过COleDispatchDriver类来调用的。图2所示为MFC环境下应用自动化技术操作AutoCAD的对象访问机制(见图1)。2.2图纸的信息读取在信号工程设计中,往往需要读取工程图纸的各类信息,包括统计轨道区段、信号机、应答器的个数以及图形信息的转换等,这就要用到图形对象的遍历。在AutoCAD的模型空间中,所有的图形对象都是空间中的实体,不同类型的图形对象由不同的名称标识,同类图形对象按照创建的时间先后分配由小到大的序号。直线对象的标识名称是“AcDbLine”,单行文本的标识是“AcDbText”,这样在遍历过程中就可以依据这些标识将各类实体分类,从而获取指定图形对象的参数信息。3 应用举例我们在进行铁路工程计算机辅助设计时,需要在VC6.0环境中嵌入AutoCAD的利用VC开发AutoCAD的研究与实现邹本振(西南交通大学信息科学与技术学院 四川成都 610031)摘 要:介绍了一种在VC环境下对AutoCAD进行二次开发的新方法。探讨了在AutoCAD 2006绘图平台上进行开发的实现和信息提取的实现方法。关键词:VC ActiveX AutoCAD中图分类号:TP29文献标识码:A文章编号:1672-3791(2009)08(c)-0006-01
图1 开发AutoCAD的流程二次开发,以实现线路纵断面图的自动绘制和联锁表信息的自动提取等功能。4 结语本文介绍了MFC环境下利用ActiveX自动化技术对AutoCAD进行二次开发的方法,利用此方法用户可以开发出功能强大、具有良好人机界面的计算机辅助设计软件。该方法在铁路纵断面自动绘制的研究中取得了很好的效果,同时也可广泛应用于铁路运输、机械、建筑、土木等其他领域的计算机辅助设计当中。相对于传统的二次开发方法,利用MFC编制的程序更具有扩展性、维护性和应用性,在将来的AutoCAD二次开发中不失为一种更好的开发方法。参考文献[1]李长勋.AutoCAD ActiveX二次开发技术[M].北京:国防工业出版社,2005:20~25.[2]姜仁.VC中可靠读写DWG图形文件的新方法[J].微型机与应用,2002,10:10~12.