您所在的位置:e-works首页 > 先进制造技术 > 电气设计

基于ObjectARX的电气设计软件开发

发表时间:2014/2/16 刘乐全 左少辉 张华俊 来源:万方数据
文章针对商业电气CAD软件对企业历史数据资料的利用低、对设计人员的设计习惯冲击大,难以满足企业个性化需求等方面的问题,开发了以VC++.NET为开发平台,以ObjectARX为开发工具包,基于AutoCAD二次开发的电气设计软件。介绍软件的设计方案、主要功能模块的功能及软件开发的实现方法和关键技术。实现了图文档管理、元器件图库管理、导线自动连接、导线连通检查、物料统计功能,提高了电气设计的效率和准确性。

0 引言

    自从80年代中期,国内外就开始了对电气CAD软件的研究和应用,至今无论在理论研究和软件功能方面都得到了长足的发展。目前,电气CAD软件有很多。有国外电气CAD软件如:德国EPLAN公司的EPLAN Electronic、法国ICE+XAO公司的SEE Electrical等;也有国内电气CAD软件如:利驰SuperWorks、理正电气CAD,中望电气CAD等。总体来讲,电气CAD软件功能上已比较完善,实际使用中也取得很好的效果。但从实际应用来说,上述软件都是以通用性为前提的商业软件,不能适应许多企业的个性化需求,在实际推广应用中存在许多问题,如软件实施难度大,后期维护难,历史数据资料的利用低、对设计人员的设计习惯冲击大,实施初期影响生产加工等,这些因素往往很大程度上制约了电气CAD软件在企业的推广应用,这就需要针对企业个性化需求开发定制专业电气CAD软件。

    本文的设计思想是基于企业现有电气设计平台AutoCAD,通过AutoCAD二次开发工具ObjectARX,开发适合企业自身需求的电气CAD,实现提高设计效率和准确率的目的。

1 软件概述

    1.1 需求分析

    开发基于AutoCAD设计平台的电气设计软件,实现接线表的自动编辑、电配件的灵活选择、导线连接关系的自动双标、导线连接错误的自动检查以及工程耗料自动统计等,提高工程设计的效率和准确性。同时,通过应用本软件,实现统一图纸格式,规范设计输出,实现电气设计与机械设计数据的有效对接,减少重复劳动。

    1.2 方案设计

    在AutoCAD中绘制接线图时,一般需要绘制的接线图包括如下几种:端子接线图、装置接线图、电器件(断路器,切换开关,继电器,压板等)接线图等。由于在CAD图形表示中,这些元器件和接线图有相对统一的绘图标准,所以在AutoCAD中可以绘制成标准图元,并建立图库方便管理和调用。在AutoCAD绘图中,由于表格和图块具有规范性,易读取的特点,因此本软件将大部分接线关系采用表格或图块来表示,表格或图块中包括代号、连接关系、描述、线型等属性,这些属性可以在多文档中统一读取和编辑,实现接线关系的自动关联。

    1.3 开发工具

    AutoCAD提供几种开发工具如:ObjectARX、VBA,VisualLisp、C#等。ObjectARX(AutoCAD RunTime Extention)是Autodesk二次开发工具包,可以开发AutoCAD应用程序、扩充AutoCAD类和协议、创立和内置AutoCAD命令模式的新命令等。ARX应用程序实质是在运行期间实时扩展AutoCAD并与AutoCAD共享地址空间的动态链接库(DLL),可直接访问和调用AutoCAD核心函数;利用AutoCAD核心数据库结构、图形系统、几何造型核心及代码,建立与AutoCAD本身固有命令有同样操作方式的新命令。相比AutoCAD的其他二次开发工具(如VBA、VisualLisp),ObjectARX具有功能强,开发层次深的优点,因此本软件采用VC.NET+ObjectARX方式实现AutoCAD二次开发。注意,不同AutoCAD版本对应不同VC.NET、ObjectARX版本,开发时应根据自身需要选取相应版本。

2 软件开发实现

    本软件主要模块包括:工程管理模块、端子管理模块、元器件管理模块、接线关系管理模块、物料统计与输出模块。软件工作流程与各模块功能关系如表1所示。

表1 软件工作流程与各模块功能关系表

软件工作流程与各模块功能关系表

    2.1 工程管理模块

    此模块中的主要功能是新建工程图纸、批量更改标题栏及文件名等,方便用户管理工程文件。新建工程图纸用于自动调用标准模板图,完成绘图环境、封面、图幅、标题栏等的设置。批量更改标题栏用于以工程或屏柜为单位批量更改标题栏中的工程名、页码、图纸代号、图纸名称等。

    要实现对图文档的管理,需要用到文档管理类(AcApDocManager)。该类继承自AcRxObject类,通过该类可实现对AutoCAD图文档的新建、打开、关闭、锁定、发送命令等操作。

    要实现标题栏自动生成与批量修改,须将标题栏定义为程序可识别的实体,并且该实体包含多个可编辑的属性值,如工程名称、页码、图纸代号等。本文采用属性块的方式实现该功能。属性块是AutoCAD中带属性的图块,包括图块和属性定义两部分内容。在ObjectARX中属性块由AcDbBlockReference类创建。该类继承自AcDbEntity实体类,是图块类(AcDbBlockTableRecord)和属性类(AcDbAttnbute)的结合体,通过该类可实现对标题栏的定义和编辑。

本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。

责任编辑:程玥