劉佳佳 趙振 王雙虎
摘 要:針對(duì)試飛改裝工作物料統(tǒng)計(jì)中存在的問(wèn)題,文章結(jié)合AutoCAD軟件和C#.NET,在統(tǒng)一改裝制圖標(biāo)注規(guī)范的基礎(chǔ)上,開(kāi)發(fā)了改裝物料統(tǒng)計(jì)軟件。該軟件有效實(shí)現(xiàn)了改裝圖紙中線纜及電氣元器件的數(shù)據(jù)統(tǒng)計(jì),物料核對(duì)以及物資核算,有助于相關(guān)工作人員高效統(tǒng)計(jì)物資數(shù)據(jù)、合理制定采購(gòu)計(jì)劃,進(jìn)一步提升改裝工作效率。
關(guān)鍵詞:物料統(tǒng)計(jì)軟件;制圖規(guī)范;AutoCAD;C#.NET;物資計(jì)劃
中圖分類號(hào):V217 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):2095-2945(2018)27-0016-03
Abstract: In view of the problems existing in the material statistics of refitting work in flight test, this paper develops the refitting material statistic software on the basis of the unified refitting drawing marking standard based on the AutoCAD software and C#.NET. The software effectively realizes the data statistics of cables and electrical components in the refit drawing, material check and material accounting, which is helpful for the related staff to count the material data efficiently, make a reasonable purchase plan, and further improve the refit work efficiency.
Keywords: material statistic software; drawing specification; AutoCAD; C#.Net; material plan
引言
近幾年,隨著試飛事業(yè)的快速發(fā)展,改裝任務(wù)日益繁重。改裝工作由傳統(tǒng)的簡(jiǎn)單改裝向大型化、復(fù)雜化、系列化發(fā)展。作為改裝工作中的重要環(huán)節(jié),科研物資計(jì)劃的合理安排意義重大[1]。傳統(tǒng)的改裝物資統(tǒng)計(jì)存在著工作量較大、錯(cuò)誤概率高等問(wèn)題,統(tǒng)計(jì)結(jié)果難以對(duì)后續(xù)架次試驗(yàn)機(jī)改裝物資采購(gòu)提供可靠參考,不利于制定合理的采購(gòu)計(jì)劃,對(duì)改裝工作質(zhì)量和進(jìn)度有著較大的影響。針對(duì)此問(wèn)題,本文在傳統(tǒng)的改裝制圖規(guī)范的基礎(chǔ)上,提出了一種新的標(biāo)注方式。在此基礎(chǔ)上,利用C#.NET開(kāi)發(fā)了AutoCAD物料統(tǒng)計(jì)軟件。該軟件以報(bào)表的形式輸出統(tǒng)計(jì)結(jié)果,并利用數(shù)據(jù)庫(kù)實(shí)現(xiàn)對(duì)數(shù)據(jù)的保存及歷史數(shù)據(jù)的回放。
1 AutoCAD制圖標(biāo)注規(guī)范
為了能夠有效提取AutoCAD文檔中的物料數(shù)據(jù),避免錯(cuò)誤以及重復(fù)的物料統(tǒng)計(jì),有必要對(duì)制圖標(biāo)注規(guī)范進(jìn)行統(tǒng)一??紤]到制圖過(guò)程當(dāng)中涉及到的物料主要是以長(zhǎng)度計(jì)的線纜和以數(shù)量計(jì)的電氣元器件,AutoCAD制圖標(biāo)注規(guī)范以線纜標(biāo)注、電氣元器件標(biāo)注以及其他數(shù)據(jù)標(biāo)注進(jìn)行統(tǒng)一。
1.1 線纜標(biāo)注
目前改裝線纜主要是FYPH屏蔽線纜,包括單絞線、雙絞線、三絞線和四絞線等四種線制,涵蓋了0.24mm2到70mm2之間的多種線徑。傳統(tǒng)的AutoCAD改裝制圖針對(duì)常用的0.3mm2線纜僅標(biāo)注了線纜長(zhǎng)度,線徑在技術(shù)要求中進(jìn)行說(shuō)明。其余線纜則在長(zhǎng)度標(biāo)識(shí)下方標(biāo)注線徑,如“0.5mm2”。因此,為了能夠簡(jiǎn)潔、合理、明確地標(biāo)注線纜信息以及便于軟件識(shí)別統(tǒng)計(jì),本文根據(jù)廠家提供的所有屏蔽線纜規(guī)格將線纜標(biāo)注規(guī)范進(jìn)行了統(tǒng)一,如圖1所示。
其中線纜根數(shù)采用1~2位羅馬數(shù)字,線纜規(guī)格采用1位英文字母,線纜長(zhǎng)度采用1~2位羅馬數(shù)字。例如,“5A20”標(biāo)注了一束5根長(zhǎng)度為20米的FYPH-2X0.3G屏蔽線纜。相較于傳統(tǒng)的標(biāo)注,該標(biāo)注方法僅多了1~2個(gè)字符,但格式簡(jiǎn)潔,信息充分,有利于軟件的識(shí)別統(tǒng)計(jì)。由于平常使用的線纜主要集中于FYPH-1X0.5G、FYPH-1X0.3G、FYPH-2X0.3G、FYPH-3X0.3G以及FYPH-4X0.3G,該標(biāo)注亦便于設(shè)計(jì)人員和施工人員識(shí)記。
1.2 電氣元器件標(biāo)注
在傳統(tǒng)制圖過(guò)程中,改裝電氣元器件以型號(hào)規(guī)格的形式在圖紙中標(biāo)示。電氣元器件涵蓋了插頭、插座、開(kāi)關(guān)、繼電器、接觸器、斷路器、保險(xiǎn)絲和保險(xiǎn)絲座等,涉及上百家廠家的多型號(hào)多規(guī)格元件,由此導(dǎo)致了改裝電氣元器件統(tǒng)計(jì)工作量繁重復(fù)雜。為了有效實(shí)現(xiàn)軟件的識(shí)別統(tǒng)計(jì),可以將電氣元器件的型號(hào)規(guī)格作為關(guān)鍵字進(jìn)行檢索。但是由于紙張限制等原因,電氣元器件往往分多個(gè)部分繪制在不同紙張上。為了防止軟件重復(fù)統(tǒng)計(jì),某一個(gè)電氣元器件應(yīng)除了第一處采用型號(hào)標(biāo)注,其余部分均在型號(hào)標(biāo)注前加“/”,以示其為該電氣元器件的一部分。同時(shí),為了便于軟件有效提取AutoCAD文檔中的字符串并識(shí)別,要求在單行文字或多行文字中單獨(dú)輸入型號(hào)規(guī)格。舉例如下(圖2):
上述分部標(biāo)注同時(shí)有助于施工人員減少失誤,避免插頭插座等的重復(fù)制作,從而提升改裝過(guò)程中的插頭、插座等電氣元器件的制作效率。
1.3 其他數(shù)據(jù)標(biāo)注
由于只對(duì)線纜以及加改裝電氣元器件進(jìn)行物料統(tǒng)計(jì),采集器與記錄器等測(cè)試設(shè)備不納入統(tǒng)計(jì)范圍。因此此類非改裝設(shè)備標(biāo)注要求避免使用上述標(biāo)注中的關(guān)鍵字及其類似格式,或者采用“/”標(biāo)識(shí)符號(hào)防止軟件對(duì)其進(jìn)行統(tǒng)計(jì)。
2 改裝物料統(tǒng)計(jì)軟件開(kāi)發(fā)
.NET是微軟的新一代技術(shù)平臺(tái),運(yùn)行于公共語(yǔ)言運(yùn)行時(shí)之上的應(yīng)用程序。C#作為.NET開(kāi)發(fā)的首選語(yǔ)言,綜合了VB簡(jiǎn)單的可視化操作和C++的高運(yùn)行效率,提供了強(qiáng)類型檢查、數(shù)組維度檢查、初始化的變量引用檢查、自動(dòng)垃圾收集等支持。C#擁有Lambda表達(dá)式、LINQ語(yǔ)言繼承查詢等一系列新功能,高效敏捷。同時(shí),AutoCAD從2004版本開(kāi)始便在.NET框架下進(jìn)行開(kāi)發(fā),為C#.NET開(kāi)發(fā)人員提供了良好的組件接口,使其能夠快速訪問(wèn)AutoCAD文檔的模型空間、圖紙控件等內(nèi)建的對(duì)象[2][3]。
2.1 AutoCAD架構(gòu)簡(jiǎn)介
AutoCAD文檔內(nèi)部結(jié)構(gòu)關(guān)系如圖3所示,利用C#.NET的application對(duì)象可獲取當(dāng)前操作系統(tǒng)中AutoCAD進(jìn)程,通過(guò)Document對(duì)象打開(kāi)并訪問(wèn)該進(jìn)程下的文檔數(shù)據(jù)庫(kù)。在調(diào)用SelectionSets選擇集的SelectOnScreen方法后,便可跨進(jìn)程在AutoCAD文檔中選擇要統(tǒng)計(jì)的圖紙內(nèi)容。利用這一原理對(duì)改裝電氣圖紙進(jìn)行物料統(tǒng)計(jì)軟件開(kāi)發(fā),將繁雜的計(jì)算工作量交于計(jì)算機(jī)解決,勢(shì)必大幅提高數(shù)據(jù)統(tǒng)計(jì)的效率及準(zhǔn)確性。
2.2 具體實(shí)現(xiàn)
改裝物料統(tǒng)計(jì)軟件的開(kāi)發(fā)是適應(yīng)兩化融合的發(fā)展要求,借助信息化手段,實(shí)現(xiàn)物料統(tǒng)計(jì)的準(zhǔn)確化、物資核算的精準(zhǔn)化。基于這一目標(biāo),對(duì)軟件功能設(shè)計(jì)進(jìn)行分析。圖4是改裝物料統(tǒng)計(jì)軟件的功能展示。
軟件實(shí)現(xiàn)的具體步驟如下:(1)訪問(wèn)AutoCAD進(jìn)程,獲取當(dāng)前Document對(duì)象;(2)添加選擇集,并在AutoCAD軟件中進(jìn)行圖紙選擇;(3)訪問(wèn)選擇集中的AcadText與AcadMText文本行字符串;(4)利用正則表達(dá)式對(duì)第3步驟中的字符串進(jìn)行篩選,獲取線纜及電氣元器件數(shù)據(jù);(5)利用LINQ語(yǔ)言繼承查詢,以型號(hào)類別對(duì)線纜及電氣元器件數(shù)據(jù)進(jìn)行分類統(tǒng)計(jì);(6)將統(tǒng)計(jì)結(jié)果以報(bào)表的形式輸出,由用戶決定是否將數(shù)據(jù)存儲(chǔ)為數(shù)據(jù)庫(kù)文件;(7)利用數(shù)據(jù)庫(kù)技術(shù)回放歷史數(shù)據(jù),并實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)記錄的查詢、修改和刪除。其中,為了對(duì)原始數(shù)據(jù)中的字符串進(jìn)行快速篩選分類,本文軟件采用正則表達(dá)式予以實(shí)現(xiàn)[5],程序代碼如下:
Regex(@“^\d{1,2}[A-Z]\d{1,2}$”);//線纜正則表達(dá)式
Regex(@“^[A-Z].{1,6}[A-Z]/?\d{2}[A-Z]{1,3}\d{1,2}[A-Z]+$”);//插頭正則表達(dá)式
將所有篩選出來(lái)的物料數(shù)據(jù)添加到materials列表當(dāng)中,并利用Lambda表達(dá)式以及LINQ語(yǔ)言繼承查詢進(jìn)行分類統(tǒng)計(jì)[6]:
var query=materials.GroupBy(a => new {a.type, a.name, a.unit, a.price}).OrderBy(g => g.Key.type).Select(g => new { 名稱 = g.Key.name, 型號(hào)規(guī)格 = g.Key.type, 數(shù)量 = g.Sum(item => item.num), 單位 = g.Key.unit }).ToList();//物料分類統(tǒng)計(jì)
將統(tǒng)計(jì)數(shù)據(jù)以報(bào)表的形式顯示在DataGrid控件中。針對(duì)圖紙中無(wú)法標(biāo)注或者難以統(tǒng)計(jì)的物料,諸如絕緣漆、開(kāi)關(guān)盒等,可通過(guò)添加、修改和刪除按鈕對(duì)統(tǒng)計(jì)數(shù)據(jù)進(jìn)行補(bǔ)充。同時(shí),軟件利用C#.NET數(shù)據(jù)庫(kù)開(kāi)發(fā)工具實(shí)現(xiàn)了改裝物料數(shù)據(jù)庫(kù)的新建及訪問(wèn)[7]。C#.NET提供了OleDbConnection類型用于創(chuàng)建數(shù)據(jù)庫(kù)連接對(duì)象,OleDbAdapter數(shù)據(jù)庫(kù)橋接器類型用于實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。如需對(duì)數(shù)據(jù)庫(kù)進(jìn)行修改可利用OleDbAdapter對(duì)象下的進(jìn)行插入、刪除等操作[5]。相關(guān)數(shù)據(jù)庫(kù)訪問(wèn)及操作代碼如下:
工程實(shí)踐證明,該軟件操作簡(jiǎn)單,運(yùn)算快速,統(tǒng)計(jì)結(jié)果準(zhǔn)確,能夠很好地實(shí)現(xiàn)改裝線纜以及電氣元器件的物料統(tǒng)計(jì)。
3 結(jié)束語(yǔ)
本文針對(duì)傳統(tǒng)改裝任務(wù)中出現(xiàn)的物料統(tǒng)計(jì)不精確,物資難以核算問(wèn)題,提出了一種改進(jìn)的標(biāo)注規(guī)范,并在此基礎(chǔ)之上,結(jié)合AutoCAD和.NET技術(shù),開(kāi)發(fā)了改裝物料統(tǒng)計(jì)軟件。該軟件能夠大幅減少設(shè)計(jì)人員的統(tǒng)計(jì)工作量,提高了計(jì)劃員的物資數(shù)據(jù)統(tǒng)計(jì)的準(zhǔn)確性,為改裝物資預(yù)算提供了可靠依據(jù),有效提升了試飛任務(wù)和改裝工作效率。
參考文獻(xiàn):
[1]周自全.飛行試驗(yàn)工程[M].北京:航空工業(yè)出版社,2010,12.
[2]蔣元星.基于C#的AutoCAD二次開(kāi)發(fā)技術(shù)研究及應(yīng)用[J].中國(guó)制造信息化,2017,14(36).
[3]郭朝勇.AutoCADR14(中文版)二次開(kāi)發(fā)技術(shù)[M].北京:清華大學(xué)出版社,1999.
[4]董玉德,趙韓.CAD二次開(kāi)發(fā)理論與技術(shù)[M].合肥:合肥工業(yè)出版社,2009.
[5]陳增鑫,歐陽(yáng)林艷,龔思思,等.正則表達(dá)式在數(shù)據(jù)抓取中的應(yīng)用研究[J].佳木斯職業(yè)學(xué)院學(xué)報(bào),2017(04):408.
[6]曾洪飛.AutoCAD VBA&VB.NET;開(kāi)發(fā)基礎(chǔ)與實(shí)例教程[M].北京:中國(guó)電力出版社,2013,5.
[7]軟件開(kāi)發(fā)技術(shù)聯(lián)盟.C#開(kāi)發(fā)實(shí)例大全[M].北京:清華大學(xué)出版社,2016.