金斌斌等
引言
CAD繪圖技術(shù)給設(shè)計(jì)院工程設(shè)計(jì)帶來了便利,然而CAD電子、紙質(zhì)圖紙的管理在檔案管理占據(jù)了大量時(shí)間,對于工程設(shè)計(jì)人員而言,圖紙的復(fù)用率也不高,實(shí)現(xiàn)圖紙的有效管理、電子圖紙與紙質(zhì)圖紙精確匹配將有利于工作效率的提高,有利于企業(yè)資源的沉積?;谏鲜龀霭l(fā)點(diǎn),筆者的研發(fā)團(tuán)隊(duì)深入調(diào)研了工程設(shè)計(jì)人員的歸檔流程和CAD二次開發(fā)技術(shù)在本業(yè)務(wù)流域應(yīng)用的可能性,把監(jiān)聽CAD打印事件的方法應(yīng)用在CAD電子圖紙的歸檔工作工,并研發(fā)了相關(guān)軟件和申請了相關(guān)的發(fā)明專利。
1、設(shè)計(jì)院圖紙管理現(xiàn)狀及存在問題
隨著計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)的發(fā)展以及CAD繪圖軟件在設(shè)計(jì)院的廣泛應(yīng)用,工程設(shè)計(jì)單位和企業(yè)的工程設(shè)計(jì)部門計(jì)算機(jī)出圖率已經(jīng)達(dá)到100%。設(shè)計(jì)院的圖紙管理現(xiàn)狀是組織專門的檔案管理人員通過收集紙質(zhì)底圖和電子CAD圖同時(shí)異步進(jìn)行。設(shè)計(jì)院在全面推廣CAD制圖以后急需解決的一個(gè)問題就是如何有效管理電子CAD圖紙。根據(jù)權(quán)威的工程設(shè)計(jì)領(lǐng)域調(diào)查報(bào)告顯示,設(shè)計(jì)院的CAD制圖人員大約有30%左右的工作時(shí)間花費(fèi)在查閱類似工程設(shè)計(jì)圖紙上。為了提高對類似工程CAD電子圖紙的重復(fù)利用效率和體現(xiàn)以往設(shè)計(jì)類似工程的參考價(jià)值,有效管理電子CAD圖紙是設(shè)計(jì)院圖紙管理工作的當(dāng)務(wù)之急。傳統(tǒng)的電子CAD檔案管理主要依靠人工收集電子CAD圖紙,主要存在以下問題:(1)電子文檔收集過程涉及不同專業(yè)設(shè)計(jì)人員,收檔過程對紙質(zhì)圖紙和電子CAD圖紙都有要求,工作過程繁瑣、效率不高、收集到的檔案成果質(zhì)量也不高;(2)由于紙質(zhì)圖紙和電子CAD圖紙異步收集,存在電子文檔與檔案室的紙質(zhì)圖紙不符的現(xiàn)象較多;(3)電子CAD圖紙的管理基本上依靠文件夾管理的簡單方式,電子CAD圖紙的安全性得不到保障;(4)通常檔案管理人員在歸檔文件夾中根據(jù)文件名進(jìn)行手工檢索查詢,沒有建立起電子CAD圖紙的數(shù)據(jù)庫,檢索不便和共享困難。因此探索一種即能夠保證電子CAD檔案圖紙和地圖完全一致,又能夠減少設(shè)計(jì)工程師和設(shè)計(jì)院電子CAD檔案管理部門工作量的實(shí)現(xiàn)手法成為設(shè)計(jì)院電子檔案管理的當(dāng)務(wù)之急。
2、條形碼技術(shù)簡介
條形碼(barcode)技術(shù)是在二十世紀(jì)二十年代在威斯汀豪斯(Westinghouse)的實(shí)驗(yàn)室里工作的約翰·科芒德(John Kermode)發(fā)明的。現(xiàn)已廣泛應(yīng)用于商品流通領(lǐng)域。其原理是在計(jì)算機(jī)領(lǐng)域的"1"由深色的條表示,而計(jì)算機(jī)領(lǐng)域的"0"則由淺色的空來表示。條形碼技術(shù)被廣泛應(yīng)用于商品管理、生產(chǎn)管理、醫(yī)療和物流等領(lǐng)域,設(shè)計(jì)院的CAD圖紙其實(shí)也是一種設(shè)計(jì)成果的放映,其本質(zhì)也是一種具有高度知識集成的定制商品。通過條形碼來識別設(shè)計(jì)圖紙也是一種可行的技術(shù)方案。
3、條形碼自動(dòng)打印歸檔系統(tǒng)設(shè)計(jì)思路
利用條形碼的唯一性和便于激光掃描槍識別的特點(diǎn),以及筆者在CAD二次開發(fā)領(lǐng)域積累的一些軟件開發(fā)知識,構(gòu)思了條形碼自動(dòng)打印歸檔系統(tǒng)設(shè)計(jì)思路。其主要的設(shè)計(jì)思路如下:首先設(shè)計(jì)人員打印的時(shí)候?qū)崿F(xiàn)自動(dòng)歸檔,既確保設(shè)計(jì)院的所有圖紙都能及時(shí)歸檔,由不增加設(shè)計(jì)人員打印歸檔的工作量,還能防止設(shè)計(jì)院的無形資產(chǎn)流失;其次每張圖紙打印時(shí)由計(jì)算機(jī)軟件系統(tǒng)生成唯一的條形碼,掃描底圖條形碼進(jìn)入電子CAD圖紙管理數(shù)據(jù)庫,能夠確保每張紙質(zhì)圖紙和電子CAD圖紙一一對應(yīng);再次歸檔時(shí)自動(dòng)讀取圖簽信息,如工程名稱、圖名、圖號、階段、專業(yè)等信息,方便快速查閱;還有入庫時(shí)自動(dòng)按年份、工程名稱、階段、專業(yè)、卷冊等信息創(chuàng)建項(xiàng)目結(jié)構(gòu)樹,建立規(guī)范的電子圖紙檔案庫;最后歸檔時(shí)一個(gè)電子文件有多張圖紙,自動(dòng)分割成每張圖紙一個(gè)文件,并以圖名或圖號命名,方便電子CAD圖紙重復(fù)利用;
4、條形碼自動(dòng)打印歸檔系統(tǒng)功能需求
筆者通過和一線設(shè)計(jì)人員及檔案管理人員的多次溝通,整理該系統(tǒng)功能需求如下:
4.1自動(dòng)插入條碼功能
利用監(jiān)聽CAD打印時(shí)的事件,驅(qū)動(dòng)插件程序,在打印圖紙時(shí)自動(dòng)插入條形碼,DWG文件自動(dòng)上傳到待歸檔庫,自動(dòng)讀取圖簽的屬性。整個(gè)操作后臺自動(dòng)運(yùn)行,這樣可以實(shí)現(xiàn)不改變設(shè)計(jì)人員的打印習(xí)慣,打印頁面如圖1所示。便于系統(tǒng)的推廣應(yīng)用和節(jié)省設(shè)計(jì)工程師提交、整理歸檔電子CAD圖紙的時(shí)間,既做到提高效率又實(shí)現(xiàn)了電子CAD圖紙和底圖的完全一致。
圖1 自動(dòng)生成條形碼打印設(shè)置頁面
4.2讀取圖簽信息功能
根據(jù)單位的標(biāo)準(zhǔn)圖框,按屬性定義的方式設(shè)置好需要讀取的字段和條形碼的位置,將讀取的圖簽信息直接寫入數(shù)據(jù)庫,這樣可以節(jié)省檔案管理人員輸入數(shù)據(jù)的時(shí)間,圖2為自動(dòng)獲取的圖簽信息。
圖2 圖簽編輯器頁面
4.3掃描入庫功能
項(xiàng)目完成后,用掃描槍掃描下底圖的條形碼,把和底圖一一對應(yīng)的DWG電子圖紙從待歸檔庫歸檔到正式圖檔庫。
4.4圖紙查詢及共享功能
正式圖檔庫的圖紙自動(dòng)按年份、類別、項(xiàng)目名稱、階段、專業(yè)、卷冊等字段歸類。通過人機(jī)交互界面可以方便的查閱、在線預(yù)覽和下載電子CAD圖紙;還要實(shí)現(xiàn)按照工程名稱、工程編號、圖名、圖號、階段、專業(yè)等關(guān)鍵字段查詢。這樣便于實(shí)現(xiàn)全院的資料共享。
5、部分代碼示例
5.1監(jiān)聽CAD打印事件
監(jiān)聽CAD打印事件是本系統(tǒng)開發(fā)的難點(diǎn)之一,筆者通過在CAD二次開發(fā)多年的實(shí)踐經(jīng)驗(yàn),研究了相關(guān)CAD接口后,其核心代碼示例如下:
Autodesk.AutoCAD.PlottingServices.PlotReactorManager plotManager = new Autodesk.AutoCAD.PlottingServices.PlotReactorManager();
plotManager.BeginDocument += new BeginDocumentEventHandler(plotManager_BeginDocument);
plotManager.EndPlot += new Autodesk.AutoCAD.PlottingServices.EndPlotEventHandler(plotManager_EndPlot);
5.2插入條形碼
自動(dòng)生成并在圖紙中插入條形碼是核心任務(wù)。其核心代碼示例如下:
BlockReference pt = (BlockReference)alp[i];
fileName = (string)Cadprintcode.DatabaseOperation.alBarcode[i];
5.3截取打印部分CAD圖紙
圖紙打印區(qū)域選取關(guān)系到歸檔文件的內(nèi)容。為了保證文件的完整性,圖紙?jiān)诮厝r(shí)必須包含工程名稱、圖名、圖號、階段、專業(yè)等圖簽信息。其核心代碼示例如下:
Point3d StartPoint = Cadprintcode.util.DarwUtil.changePoint(e.PlotInfo.ValidatedSettings.PlotWindowArea.MinPoint);
Point3d EndPoint = Cadprintcode.util.DarwUtil.changePoint(e.PlotInfo.ValidatedSettings.PlotWindowArea.MaxPoint);
dbFrameCol = controller.handleRequestStardandBlock(StartPoint, EndPoint, connectionString);
5.4掃描入庫
掃描入庫是將截取圖紙生成規(guī)范的CAD電子圖紙,形成數(shù)據(jù)流上傳到文件存儲服務(wù)器的電子檔案存儲空間,同時(shí)將包含唯一標(biāo)示條形碼的圖簽信息保存到數(shù)據(jù)庫中,如此便實(shí)現(xiàn)了電子CAD圖紙和紙質(zhì)底圖的對應(yīng)關(guān)系。其核心代碼示例如下:
ssdb = AcadApplication.DocumentManager.MdiActiveDocument.Database;
archive(ssdb, orifileName, path, fileName, orifileName);
Cadprintcode.common.UpLoadFile MyUpLoadFile = new UpLoadFile();
rarFilename = path + rarFilename;
if (File.Exists(rarFilename)) {
uploadis = MyUpLoadFile.UpLoadFileS(rarFilename, strUrl);}
else if (File.Exists(path + fileName + ".rar")){
rarFilename = path + fileName + ".rar";
uploadis = MyUpLoadFile.UpLoadFileS(rarFilename, strUrl);}
5.5圖紙預(yù)覽
設(shè)計(jì)人員和檔案管理人員可以通過系統(tǒng)預(yù)覽電子CAD圖紙數(shù)據(jù)庫中的圖紙文件。其核心代碼示例如下:
controller.handleRequestModel(dbFrameCol, pt.GeometricExtents, orifileName, fileName);
PlotController.InsertIMG(pt.GeometricExtents.MinPoint, pt.GeometricExtents.MaxPoint, fileName);
6、結(jié)束語
本文在充分認(rèn)識設(shè)計(jì)院CAD圖紙管理問題的基礎(chǔ)上,提出利用條形碼技術(shù)在圖紙打印階段自動(dòng)生成圖紙唯一標(biāo)示的條形碼,并將帶有條形碼、圖紙圖簽信息的CAD電子圖紙的上傳歸檔。條形碼自動(dòng)生成技術(shù)實(shí)現(xiàn)圖紙自動(dòng)歸檔,不增加設(shè)計(jì)人員工作量,又精確對應(yīng)紙質(zhì)圖紙和電子圖紙。帶條形碼的圖紙方便了歸檔管理人員、借閱人員快速查閱,建立了規(guī)范的圖紙檔案庫,提高了歸檔管理效率以及圖紙復(fù)用率。
(作者單位:1.浙江同濟(jì)科技職業(yè)學(xué)院2.河海大學(xué)水利水電學(xué)院 3.南京市水利規(guī)劃設(shè)計(jì)院有限責(zé)任公司)
基金項(xiàng)目:國家科技支撐項(xiàng)目(2012BAB03B03-3);水利部公益性行業(yè)科研專項(xiàng)經(jīng)費(fèi)項(xiàng)目(201301017)
作者簡介
第一作者:金斌斌,女,1976年生,浙江嘉興人,碩士,講師,博士生,研究方向?yàn)樗こ碳稗r(nóng)業(yè)水土環(huán)境保護(hù)。
通訊作者:徐朝輝,男,1976年生,浙江金華人,碩士,工程師,研究方向?yàn)樗畔⒒稗r(nóng)田水利工程設(shè)計(jì).