羅宇軒
摘要:配電系統(tǒng)圖是電氣施工圖的重要組成部分,包含了一次配電電器的選型、線纜選型、保護配管選型等重要信息。配電系統(tǒng)圖的設(shè)計工作需要占用工作人員的大量時間,隨著計算機技術(shù)的發(fā)展,Auto CAD為用戶留出了眾多可編程接口,用戶可根據(jù)需要對其進行二次開發(fā),實現(xiàn)大量機械性重復(fù)工作的自動化處理。本文圍繞著基于C#語言CAD二次開發(fā)技術(shù),介紹了一款自主研發(fā)的電氣配電系統(tǒng)圖輔助制圖軟件的設(shè)計開發(fā)過程,對CAD二次開發(fā)輔助制圖軟件的設(shè)計具有一定指導(dǎo)意義。
關(guān)鍵字: CAD二次開發(fā) C# 配電系統(tǒng)圖
1.AutoCAD二次開發(fā)簡介
AutoCAD是施工圖設(shè)計中常用的設(shè)計工具,由于其具有通用性,所以會造成在某些專業(yè)領(lǐng)域功能的缺失和不足,為此AutoCAD為用戶提供了對其功能進行二次開發(fā)的環(huán)境和接口,用戶可以根據(jù)工作需要將AutoCAD改造為適用于自己工作環(huán)境的繪圖系統(tǒng)。
AutoCAD的二次開發(fā)主要工具有AutoCAD自帶的Auto Lisp語言、VBA語言以及ObjectArx。其中ObjectArx以C++為編程語言,采用先進的面向?qū)ο缶幊淘?,功能強大,編程效率高,但其語言較為復(fù)雜難學(xué);而VBA和AutoLisp雖然簡單易上手,但它們對于開發(fā)大型的程序時則顯現(xiàn)出了他們功能的局限性。從AutoCAD2006開始,開發(fā)人員可以使用VB.NET、C#等任何支持Microsoft.NET Framework的語言對其進行二次開發(fā)。
2.開發(fā)平臺的選擇
本課題在編程語言環(huán)境和開發(fā)平臺的選擇上,結(jié)合課題需要最終選擇了以C#為主的C#和Lisp聯(lián)合開發(fā)方式。
C#.NET接口豐富,可以與任何支持.NET的文件類型進行數(shù)據(jù)交換,C#的可視化窗口控件非常豐富,可以根據(jù)需求制作優(yōu)良的用戶交互界面,方便操作,并且C#語言簡單,對有C語言基礎(chǔ)的開發(fā)人員非常友好。本課題選用C#語言作為主要的編制工具,完成所有的內(nèi)部計算、CAD繪圖操作和窗口交互界面的設(shè)計。
CAD提供的Lisp語言編譯器是CAD原生的開發(fā)工具,與CAD兼容性強,并且可以方便的對CAD菜單進行二次開發(fā)設(shè)計,所以本課題選擇利用Lisp語言來制作設(shè)計輔助軟件的菜單。
3.標(biāo)準(zhǔn)圖塊庫的建立
標(biāo)準(zhǔn)圖塊庫的建立過程中,需要將常見低壓設(shè)備配電系統(tǒng)圖依據(jù)配電柜柜型;有無電氣火災(zāi)監(jiān)控系統(tǒng);設(shè)備所在環(huán)境;用電設(shè)備的類型進行分類整理。程序根據(jù)條件插入對應(yīng)標(biāo)準(zhǔn)圖塊就可以快速完成系統(tǒng)圖出線回路的繪制。
4.標(biāo)準(zhǔn)負荷計算表格的建立
標(biāo)準(zhǔn)負荷計算表格的設(shè)計要求將工藝、暖通及其他專業(yè)設(shè)備分工作簿羅列,其需要從提資設(shè)備表獲取的內(nèi)容包括,設(shè)備位號、設(shè)備名稱、設(shè)備總數(shù)、工作數(shù)量、設(shè)備單臺功率;設(shè)計人員對需要系數(shù)、功率因數(shù)、環(huán)境特征以及設(shè)備類型進行選擇后可以計算出設(shè)備的計算負荷、計算電流等計算結(jié)果。
5.CAD與EXCEL表格的數(shù)據(jù)交互
基于C#的CAD二次開發(fā)讀取EXCEL數(shù)據(jù)的方法最常用的有COM組件方式和NPOI方式。
NPOI,是POI的.NET版本,是一套用JAVA編寫的用于讀取XLS,DOC,PPT等文件內(nèi)數(shù)據(jù)的程序庫。相比于COM組件方式,NPOI方式具有其獨特的優(yōu)勢,最明顯的在于這種方式可以在沒有安裝Office的電腦上對Excel文件進行讀寫操作,而這一優(yōu)勢會在數(shù)據(jù)庫建立的時候起到關(guān)鍵的作用。
6.操作流程設(shè)計
本課題的電氣配電系統(tǒng)圖設(shè)計輔助工具的操作界面如下圖所示:
用戶使用軟件首先要加載負荷計算源文件,在彈出對話框中選擇該項目的負荷計算表,再點擊加載基礎(chǔ)塊源文件,加載完成后選擇提資專業(yè)、柜型以及有無電氣火災(zāi),點擊更新數(shù)據(jù)庫后窗口左下角會顯示項目編號和項目名稱,在工藝設(shè)備、暖通設(shè)備、其它設(shè)備、回路選項卡中可以預(yù)覽設(shè)備或回路的相關(guān)信息內(nèi)容,經(jīng)確認后點擊繪制系統(tǒng)圖在CAD窗口中選擇插入位置即可將所有的出線回路批量繪制。
7.程序構(gòu)架
整體的程序構(gòu)架設(shè)計如下圖所示:
基礎(chǔ)操作層封裝了CAD繪圖操作的一些底層函數(shù),比如對話框彈出、在圖中選取點、插入文字、插入線、新建圖層等基本操作。
交互操作層封裝了所有的窗口控件的設(shè)計以及對其進行控制的相關(guān)代碼。
數(shù)據(jù)傳輸層封裝了基于NPOI技術(shù)對EXCEL表格數(shù)據(jù)讀取以及SQL數(shù)據(jù)庫內(nèi)數(shù)據(jù)操作的基本函數(shù)。
數(shù)據(jù)操作層內(nèi)定義了設(shè)備及回路的結(jié)構(gòu)體數(shù)組,并將對結(jié)構(gòu)體內(nèi)成員內(nèi)容進行操作的函數(shù)進行了封裝。
輸出顯示層調(diào)用其他所有基礎(chǔ)層內(nèi)的數(shù)據(jù)及函數(shù)完成最終的電氣配電系統(tǒng)圖在CAD界面上的自動繪制。
8.結(jié)論
最終我公司自主研發(fā)的電氣配電系統(tǒng)圖輔助制圖軟件的設(shè)計最終完成。經(jīng)過應(yīng)用與測試,該軟件有效提高了電氣設(shè)計人員的工作效率和設(shè)計質(zhì)量。本文對CAD二次開發(fā)輔助制圖軟件的設(shè)計具有一定指導(dǎo)意義。
9.參考文獻
[1]全宏宇.基于ActiveX的AutoCAD二次開發(fā)在計算機聯(lián)鎖工程設(shè)計軟件中的應(yīng)用探討[J].鐵道勘測與設(shè)計,2020(01):86-88.
[2]李英,孫敘松.電氣CAD原理圖數(shù)據(jù)提取與輔助建模[J].廣船科技,2019,39(02):53-55.
[3]崔聯(lián)合,于華艷,劉江,萬文龍.基于AutoLISP的AutoCAD二次開發(fā)研究[J].制造業(yè)自動化,2019,41(02):47-51.
[4]楊義強.AutoCAD在工程繪圖中的二次開發(fā)運用[J].山東工業(yè)技術(shù),2018(21):149.
[5]胡煒.淺談CAD二次開發(fā)技術(shù)在建筑制圖中的應(yīng)用[J].居業(yè),2018(09):42+44.