AutoCAD中基于VBA的工程线缆长度计算系统的设计与实现
2020-10-21宁晓光惠炜
宁晓光 惠炜
摘要:基于AutoCAD及其内部编程软件VBA,结合工程实际应用中线缆长度计算的特点开发出线缆长度计算系统,并将该系统嵌入到AutoCAD软件中,介绍了系统的设计思路/方法、实现方式及其嵌入的过程。
关键词:AutoCAD;VBA;线缆长度计算;嵌入
0 引言
在电网建设工程项目中,电气控制系统及其一次本体系统体积较为庞大,属于现场安装使用型,因此,控制系统与一次本体系统之间连接所需的线缆长度需要在产品出产前由设计人员完成计算。设计人员面对的是AutoCAD工程图,在图纸上实现实际工程中按预定线槽走线的线缆长度计算,是一件复杂且繁锁的事情,重复性工作较多;而且在AutoCAD绘图系统界面上测量与计算的功能使用并不方便。
本文基于AutoCAD系统中可编程开发语言VBA,结合工程项目中具体的工程应用实例,开发出一套可用于实际工程的线缆长度计算可视化软件,该软件可在AutoCAD界面上完成测量计算功能,并且可以人工引入调整因子适应现场的复杂线缆安装。软件可嵌入AutoCAD系统界面中,以快捷键的方式供用户使用,交互性好,使用便捷,可操作性强。
1 开发软件的选择
在AutoCAD中较常用的两种开发编程语言为AutoCAD VBA和AutoLISP。AutoLISP能够直接利用AutoCAD内部函数组建编程过程,编程方便且与AutoCAD交互性强,然而AutoLISP的不足之处在于其可视化性能差[1]。计算电缆长度最主要的是显示最终结果,因此,选择AutoCAD VBA作为界面开发软件。
2 系统的方案设计
本系统以GIS工程为实例设计开发,实际工程中,影响线缆长度的因素主要有以下几项:
(1)线缆始末点线程长度。线缆的起点在一次本体上,终点在汇控柜上,起点和终点位置都需要从AutoCAD界面工程图中选择,并最终利用始末点水平与竖直高度距离的和作为两点间所需线缆的长度。
(2)缆沟的深度。在GIS工程中,每个一次本体均有相应的汇控柜,如果汇控柜没有落在相应一次本体的金属底架上,那么从一次本体到汇控柜的线缆就需要经过缆沟,进出缆沟的过程中,线缆的长度也要相应增加两个缆沟深度的量。
(3)汇控柜面板余量。线缆延伸至汇控柜面板后,由于线缆终端所在面板上的位置不同,所以线缆在汇控柜面板上所需的延伸余量也不同。
(4)一次本体位置余量。线缆起点在一次本体上,线缆接头需剥线连接,因此被剥离外表皮的线缆长度也应计入线缆总长度。
(5)汇控柜类型。汇控柜类型不同则线缆在汇控柜内部所穿越的距离也不相同,汇控柜宽度越宽,所需线缆越长。
(6)其他长度。在常规计算基础之上,如有特殊需要可增加相应的线缆长度。
根据工程需要,线缆长度计算系统方框图如图1所示[2]。
3 系统界面设计
根据设计方案,系统的界面共分为七个部分:元件位置、LCP柜(汇控柜)位置、缆沟深度、LCP面板、LCP类型、其他长度以及最终线缆长度显示窗口。双击元件位置或LCP柜位置旁边的选择按钮,系统界面会自动转移至AutoCAD工程图界面,选择完相应的位置点后界面自动返回,此时系统界面会显示位置点横纵坐标。两个位置(元件位置、LCP柜位置)均选择完成后,系统会自动计算出两点间的位置线程。由于线缆进出缆沟会损失两个缆沟深度的量,因此手动输入缆沟深度后,系统会自动增长两倍深度。LCP柜上线缆接头位置相对固定,因此对增长的量进行选择即可。LCP柜共有两种类型,对线缆长度的影响也是通过选择来完成的。各项参数完整后点击“确定”,最终结果会呈现在最右端窗口上。
4 VBA与AutoCAD关联设计
元件位置选择过程中,随着选择按钮的点击,界面要能够自动切换,从而便于对AutoCAD界面上点的选取,在AutoCAD界面选取完成后,界面要能够自动返回,并将坐标点值传递回线缆长度计算系统界面。
5 运算程序设计
该系统中线缆长度包含元件位置与LCP柜位置间长度+
2×缆沟深度+LCP面板上线长+LCP柜类型增加长度+其他长度,最终结果保留2位小数。其程序设计如下[3]:
Private Sub CommandButton2_Click()
num0=Abs(TextBox1.Text-TextBox5.Text)+Abs(TextBox2.Text- extBox6.Text)
TextBox10.Text = Abs(TextBox1.Text-TextBox5.Text)
TextBox11.Text = Abs(TextBox2.Text-TextBox6.Text)
TextBox12.Text = num0
num=num0+num1+num2+num3+num4
TextBox7.Text=Round(Val(num), 2)
TextBox9.Text=Round(Val(num)/1000, 1)
End Sub
6 系統嵌入AutoCAD
系统完成后,需将VBA开发的程序内嵌到AutoCAD系统中,以按钮的形式供用户使用。
6.1 将程序置入Support文件夹
编译完成的VBA程序,需放入AutoCAD安装目录下的Support文件夹,才能被AutoCAD所识别利用,路径:C:\Program
Files\AutoCAD 2004\Support。
6.2 建立AutoCAD可识别的宏
在VBA开发软件界面Module模块中所建立的sub过程可被AutoCAD识别为宏,本例中是在Module2中建该宏。
6.3 在AutoCAD中增加程序快捷键
第一步,在AutoCAD界面增加空白按钮。
第二步,双击空白按钮,输入线缆名称,并编辑按钮显示图标。
第三步,将该按钮通过AutoCAD命令与宏关联。
按钮与宏关联命令:
^C^C (command "vbarun" "shishi.dvb!Module2.wodehong")
7 结语
通过VBA二次开发与AutoCAD的结合,将原本单一的设计功能与计算功能有效结合在了一起,解决了AutoCAD工程图中线缆长度计算问题。通过自定义按钮的方式,使该程序脱离了特定工程图使用的限制,只要在AutoCAD窗口下,任一工程图均可使用该系统,使其具有较高的工程应用价值。
[参考文献]
[1] 张治娟,武福,杨智文,等.基于VBA的AutoCAD与Excel之间的数据通信[J].工业控制计算机,2013,26(12):27-29.
[2] 黄冠涛,吴德芳,赵加奎.基于VBA的AutoCAD二次开发站场道岔绘制[J].机械工程与自动化,2013(6):199-201.
[3] 李琳.基于VBA的AutoCAD二次开发[J].硅谷,2011(18):191.
收稿日期:2020-05-27
作者简介:宁晓光(1987—),男,河南洛阳人,硕士研究生,电气自动化工程师,研究方向:电气。