寧曉光 惠煒
摘要:基于AutoCAD及其內(nèi)部編程軟件VBA,結(jié)合工程實際應(yīng)用中線纜長度計算的特點開發(fā)出線纜長度計算系統(tǒng),并將該系統(tǒng)嵌入到AutoCAD軟件中,介紹了系統(tǒng)的設(shè)計思路/方法、實現(xiàn)方式及其嵌入的過程。
關(guān)鍵詞:AutoCAD;VBA;線纜長度計算;嵌入
0? ? 引言
在電網(wǎng)建設(shè)工程項目中,電氣控制系統(tǒng)及其一次本體系統(tǒng)體積較為龐大,屬于現(xiàn)場安裝使用型,因此,控制系統(tǒng)與一次本體系統(tǒng)之間連接所需的線纜長度需要在產(chǎn)品出產(chǎn)前由設(shè)計人員完成計算。設(shè)計人員面對的是AutoCAD工程圖,在圖紙上實現(xiàn)實際工程中按預(yù)定線槽走線的線纜長度計算,是一件復(fù)雜且繁鎖的事情,重復(fù)性工作較多;而且在AutoCAD繪圖系統(tǒng)界面上測量與計算的功能使用并不方便。
本文基于AutoCAD系統(tǒng)中可編程開發(fā)語言VBA,結(jié)合工程項目中具體的工程應(yīng)用實例,開發(fā)出一套可用于實際工程的線纜長度計算可視化軟件,該軟件可在AutoCAD界面上完成測量計算功能,并且可以人工引入調(diào)整因子適應(yīng)現(xiàn)場的復(fù)雜線纜安裝。軟件可嵌入AutoCAD系統(tǒng)界面中,以快捷鍵的方式供用戶使用,交互性好,使用便捷,可操作性強。
1? ? 開發(fā)軟件的選擇
在AutoCAD中較常用的兩種開發(fā)編程語言為AutoCAD VBA和AutoLISP。AutoLISP能夠直接利用AutoCAD內(nèi)部函數(shù)組建編程過程,編程方便且與AutoCAD交互性強,然而AutoLISP的不足之處在于其可視化性能差[1]。計算電纜長度最主要的是顯示最終結(jié)果,因此,選擇AutoCAD VBA作為界面開發(fā)軟件。
2? ? 系統(tǒng)的方案設(shè)計
本系統(tǒng)以GIS工程為實例設(shè)計開發(fā),實際工程中,影響線纜長度的因素主要有以下幾項:
(1)線纜始末點線程長度。線纜的起點在一次本體上,終點在匯控柜上,起點和終點位置都需要從AutoCAD界面工程圖中選擇,并最終利用始末點水平與豎直高度距離的和作為兩點間所需線纜的長度。
(2)纜溝的深度。在GIS工程中,每個一次本體均有相應(yīng)的匯控柜,如果匯控柜沒有落在相應(yīng)一次本體的金屬底架上,那么從一次本體到匯控柜的線纜就需要經(jīng)過纜溝,進出纜溝的過程中,線纜的長度也要相應(yīng)增加兩個纜溝深度的量。
(3)匯控柜面板余量。線纜延伸至匯控柜面板后,由于線纜終端所在面板上的位置不同,所以線纜在匯控柜面板上所需的延伸余量也不同。
(4)一次本體位置余量。線纜起點在一次本體上,線纜接頭需剝線連接,因此被剝離外表皮的線纜長度也應(yīng)計入線纜總長度。
(5)匯控柜類型。匯控柜類型不同則線纜在匯控柜內(nèi)部所穿越的距離也不相同,匯控柜寬度越寬,所需線纜越長。
(6)其他長度。在常規(guī)計算基礎(chǔ)之上,如有特殊需要可增加相應(yīng)的線纜長度。
根據(jù)工程需要,線纜長度計算系統(tǒng)方框圖如圖1所示[2]。
3? ? 系統(tǒng)界面設(shè)計
根據(jù)設(shè)計方案,系統(tǒng)的界面共分為七個部分:元件位置、LCP柜(匯控柜)位置、纜溝深度、LCP面板、LCP類型、其他長度以及最終線纜長度顯示窗口。雙擊元件位置或LCP柜位置旁邊的選擇按鈕,系統(tǒng)界面會自動轉(zhuǎn)移至AutoCAD工程圖界面,選擇完相應(yīng)的位置點后界面自動返回,此時系統(tǒng)界面會顯示位置點橫縱坐標(biāo)。兩個位置(元件位置、LCP柜位置)均選擇完成后,系統(tǒng)會自動計算出兩點間的位置線程。由于線纜進出纜溝會損失兩個纜溝深度的量,因此手動輸入纜溝深度后,系統(tǒng)會自動增長兩倍深度。LCP柜上線纜接頭位置相對固定,因此對增長的量進行選擇即可。LCP柜共有兩種類型,對線纜長度的影響也是通過選擇來完成的。各項參數(shù)完整后點擊“確定”,最終結(jié)果會呈現(xiàn)在最右端窗口上。
4? ? VBA與AutoCAD關(guān)聯(lián)設(shè)計
元件位置選擇過程中,隨著選擇按鈕的點擊,界面要能夠自動切換,從而便于對AutoCAD界面上點的選取,在AutoCAD界面選取完成后,界面要能夠自動返回,并將坐標(biāo)點值傳遞回線纜長度計算系統(tǒng)界面。
5? ? 運算程序設(shè)計
該系統(tǒng)中線纜長度包含元件位置與LCP柜位置間長度+
2×纜溝深度+LCP面板上線長+LCP柜類型增加長度+其他長度,最終結(jié)果保留2位小數(shù)。其程序設(shè)計如下[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? ? 系統(tǒng)嵌入AutoCAD
系統(tǒng)完成后,需將VBA開發(fā)的程序內(nèi)嵌到AutoCAD系統(tǒng)中,以按鈕的形式供用戶使用。
6.1? ? 將程序置入Support文件夾
編譯完成的VBA程序,需放入AutoCAD安裝目錄下的Support文件夾,才能被AutoCAD所識別利用,路徑:C:\Program
Files\AutoCAD 2004\Support。
6.2? ? 建立AutoCAD可識別的宏
在VBA開發(fā)軟件界面Module模塊中所建立的sub過程可被AutoCAD識別為宏,本例中是在Module2中建該宏。
6.3? ? 在AutoCAD中增加程序快捷鍵
第一步,在AutoCAD界面增加空白按鈕。
第二步,雙擊空白按鈕,輸入線纜名稱,并編輯按鈕顯示圖標(biāo)。
第三步,將該按鈕通過AutoCAD命令與宏關(guān)聯(lián)。
按鈕與宏關(guān)聯(lián)命令:
^C^C (command "vbarun" "shishi.dvb!Module2.wodehong")
7? ? 結(jié)語
通過VBA二次開發(fā)與AutoCAD的結(jié)合,將原本單一的設(shè)計功能與計算功能有效結(jié)合在了一起,解決了AutoCAD工程圖中線纜長度計算問題。通過自定義按鈕的方式,使該程序脫離了特定工程圖使用的限制,只要在AutoCAD窗口下,任一工程圖均可使用該系統(tǒng),使其具有較高的工程應(yīng)用價值。
[參考文獻]
[1] 張治娟,武福,楊智文,等.基于VBA的AutoCAD與Excel之間的數(shù)據(jù)通信[J].工業(yè)控制計算機,2013,26(12):27-29.
[2] 黃冠濤,吳德芳,趙加奎.基于VBA的AutoCAD二次開發(fā)站場道岔繪制[J].機械工程與自動化,2013(6):199-201.
[3] 李琳.基于VBA的AutoCAD二次開發(fā)[J].硅谷,2011(18):191.
收稿日期:2020-05-27
作者簡介:寧曉光(1987—),男,河南洛陽人,碩士研究生,電氣自動化工程師,研究方向:電氣。