基于AutoCAD二次开发的电气配电系统图辅助制图软件设计与研究
2020-12-09罗宇轩
罗宇轩
摘要:配电系统图是电气施工图的重要组成部分,包含了一次配电电器的选型、线缆选型、保护配管选型等重要信息。配电系统图的设计工作需要占用工作人员的大量时间,随着计算机技术的发展,Auto CAD为用户留出了众多可编程接口,用户可根据需要对其进行二次开发,实现大量机械性重复工作的自动化处理。本文围绕着基于C#语言CAD二次开发技术,介绍了一款自主研发的电气配电系统图辅助制图软件的设计开发过程,对CAD二次开发辅助制图软件的设计具有一定指导意义。
关键字: CAD二次开发 C# 配电系统图
1.AutoCAD二次开发简介
AutoCAD是施工图设计中常用的设计工具,由于其具有通用性,所以会造成在某些专业领域功能的缺失和不足,为此AutoCAD为用户提供了对其功能进行二次开发的环境和接口,用户可以根据工作需要将AutoCAD改造为适用于自己工作环境的绘图系统。
AutoCAD的二次开发主要工具有AutoCAD自带的Auto Lisp语言、VBA语言以及ObjectArx。其中ObjectArx以C++为编程语言,采用先进的面向对象编程原理,功能强大,编程效率高,但其语言较为复杂难学;而VBA和AutoLisp虽然简单易上手,但它们对于开发大型的程序时则显现出了他们功能的局限性。从AutoCAD2006开始,开发人员可以使用VB.NET、C#等任何支持Microsoft.NET Framework的语言对其进行二次开发。
2.开发平台的选择
本课题在编程语言环境和开发平台的选择上,结合课题需要最终选择了以C#为主的C#和Lisp联合开发方式。
C#.NET接口丰富,可以与任何支持.NET的文件类型进行数据交换,C#的可视化窗口控件非常丰富,可以根据需求制作优良的用户交互界面,方便操作,并且C#语言简单,对有C语言基础的开发人员非常友好。本课题选用C#语言作为主要的编制工具,完成所有的内部计算、CAD绘图操作和窗口交互界面的设计。
CAD提供的Lisp语言编译器是CAD原生的开发工具,与CAD兼容性强,并且可以方便的对CAD菜单进行二次开发设计,所以本课题选择利用Lisp语言来制作设计辅助软件的菜单。
3.标准图块库的建立
标准图块库的建立过程中,需要将常见低压设备配电系统图依据配电柜柜型;有无电气火灾监控系统;设备所在环境;用电设备的类型进行分类整理。程序根据条件插入对应标准图块就可以快速完成系统图出线回路的绘制。
4.标准负荷计算表格的建立
标准负荷计算表格的设计要求将工艺、暖通及其他专业设备分工作簿罗列,其需要从提资设备表获取的内容包括,设备位号、设备名称、设备总数、工作数量、设备单台功率;设计人员对需要系数、功率因数、环境特征以及设备类型进行选择后可以计算出设备的计算负荷、计算电流等计算结果。
5.CAD与EXCEL表格的数据交互
基于C#的CAD二次开发读取EXCEL数据的方法最常用的有COM组件方式和NPOI方式。
NPOI,是POI的.NET版本,是一套用JAVA编写的用于读取XLS,DOC,PPT等文件内数据的程序库。相比于COM组件方式,NPOI方式具有其独特的优势,最明显的在于这种方式可以在没有安装Office的电脑上对Excel文件进行读写操作,而这一优势会在数据库建立的时候起到关键的作用。
6.操作流程设计
本课题的电气配电系统图设计辅助工具的操作界面如下图所示:
用户使用软件首先要加载负荷计算源文件,在弹出对话框中选择该项目的负荷计算表,再点击加载基础块源文件,加载完成后选择提资专业、柜型以及有无电气火灾,点击更新数据库后窗口左下角会显示项目编号和项目名称,在工艺设备、暖通设备、其它设备、回路选项卡中可以预览设备或回路的相关信息内容,经确认后点击绘制系统图在CAD窗口中选择插入位置即可将所有的出线回路批量绘制。
7.程序构架
整体的程序构架设计如下图所示:
基础操作层封装了CAD绘图操作的一些底层函数,比如对话框弹出、在图中选取点、插入文字、插入线、新建图层等基本操作。
交互操作层封装了所有的窗口控件的设计以及对其进行控制的相关代码。
数据传输层封装了基于NPOI技术对EXCEL表格数据读取以及SQL数据库内数据操作的基本函数。
数据操作层内定义了设备及回路的结构体数组,并将对结构体内成员内容进行操作的函数进行了封装。
输出显示层调用其他所有基础层内的数据及函数完成最终的电气配电系统图在CAD界面上的自动绘制。
8.结论
最终我公司自主研发的电气配电系统图辅助制图软件的设计最终完成。经过应用与测试,该软件有效提高了电气设计人员的工作效率和设计质量。本文对CAD二次开发辅助制图软件的设计具有一定指导意义。
9.参考文献
[1]全宏宇.基于ActiveX的AutoCAD二次开发在计算机联锁工程设计软件中的应用探讨[J].铁道勘测与设计,2020(01):86-88.
[2]李英,孙叙松.电气CAD原理图数据提取与辅助建模[J].广船科技,2019,39(02):53-55.
[3]崔联合,于华艳,刘江,万文龙.基于AutoLISP的AutoCAD二次开发研究[J].制造业自動化,2019,41(02):47-51.
[4]杨义强.AutoCAD在工程绘图中的二次开发运用[J].山东工业技术,2018(21):149.
[5]胡炜.浅谈CAD二次开发技术在建筑制图中的应用[J].居业,2018(09):42+44.