鐘美嬌
天津市市政工程設(shè)計(jì)研究院 天津 300201
正文:
AutoCAD作為一款經(jīng)典的計(jì)算機(jī)輔助繪圖軟件,在工程制圖中應(yīng)用非常廣泛,以AutoCAD為平臺(tái)開(kāi)發(fā)出的各類(lèi)插件也數(shù)不勝數(shù),其目的都是為了滿足各行各業(yè)的特殊需求,能夠更加準(zhǔn)確、便捷地進(jìn)行圖形處理。
城市地下管線是保障城市運(yùn)行的重要基礎(chǔ)設(shè)施,目前許多城市已對(duì)轄區(qū)內(nèi)的地下管線進(jìn)行了普查并實(shí)現(xiàn)了數(shù)字化,方便對(duì)其進(jìn)行管理和使用。在對(duì)地下管線探測(cè)成果進(jìn)行數(shù)字化的過(guò)程中,為了能夠準(zhǔn)確高效地將探測(cè)數(shù)據(jù)編繪成管線成果圖,就需要在AutoCAD平臺(tái)的基礎(chǔ)上進(jìn)行二次開(kāi)發(fā),利用圖形擴(kuò)展數(shù)據(jù)將地下管線空間信息與屬性信息相關(guān)聯(lián),以建立地下管線信息數(shù)據(jù)庫(kù)。
AutoCAD圖形擴(kuò)展數(shù)據(jù)是在常規(guī)的圖形數(shù)據(jù)基礎(chǔ)上增加的按一系列分類(lèi)代碼組合而成的數(shù)據(jù)塊,可以很方便地利用擴(kuò)展數(shù)據(jù)來(lái)存儲(chǔ)一些非圖形信息,它與常規(guī)圖形數(shù)據(jù)一起構(gòu)成內(nèi)容更加廣泛的實(shí)體數(shù)據(jù)。每個(gè)圖形的擴(kuò)展數(shù)據(jù)都用圖形內(nèi)注冊(cè)的應(yīng)用程序創(chuàng)建,同一圖形可以創(chuàng)建多個(gè)應(yīng)用程序,但是程序名必須不同。擴(kuò)展數(shù)據(jù)內(nèi)容使用從1000到1071的DXF組碼進(jìn)行成對(duì)編排,不同組碼對(duì)應(yīng)不同類(lèi)型的信息,圖形擴(kuò)展數(shù)據(jù)的結(jié)構(gòu)形式如下:
(-3("App Name"(組碼.數(shù)據(jù)) (組碼.數(shù)據(jù)) (…)))
其中-3表示擴(kuò)展數(shù)據(jù)開(kāi)始,App Name是注冊(cè)的應(yīng)用程序名稱(chēng),(組碼.數(shù)據(jù))便是需要擴(kuò)展的數(shù)據(jù)類(lèi)型組碼和內(nèi)容,必須成對(duì)的連續(xù)排列。
圖形擴(kuò)展數(shù)據(jù)的建立可以通過(guò)AutoCAD的“XDATA”進(jìn)行,但更多的方式是在AutoCAD平臺(tái)基礎(chǔ)上進(jìn)行二次開(kāi)發(fā)相關(guān)的插件進(jìn)行。AutoCAD為開(kāi)發(fā)者提供了多種應(yīng)用程序接口,目前支持的編程語(yǔ)言有AutoLISP、VBA、VC++以及VC#等,以AutoLISP為例,向圖形中添加擴(kuò)展數(shù)據(jù)的代碼如下:
(regapp "GX")
(setq GX_xdata(cons "GX" (cons '(1000 . "TR1541015")
'((1000 . "TR1541016")))))
(entmod (append (entget Object_name)
(list(cons -3 (list GX_xdata)))))
從圖形中提取擴(kuò)展數(shù)據(jù)的代碼如下:
(setq GX_xdata(cdr (assoc -3 (entget Object_name '("GX")))))
地下管線信息是通過(guò)外業(yè)調(diào)查和探測(cè),將管線的各類(lèi)空間信息和屬性信息進(jìn)行采集而形成的數(shù)據(jù)集合。這些數(shù)據(jù)通常包括管線種類(lèi)、坐標(biāo)、高程、埋深、埋設(shè)方式、管徑、孔數(shù)、材質(zhì)、壓力、使用狀況、權(quán)屬單位、建設(shè)日期等。所有這些數(shù)據(jù)經(jīng)過(guò)關(guān)聯(lián)、整合后,作為地下管線數(shù)據(jù)庫(kù)生成的基礎(chǔ)信息。
使用編程語(yǔ)言,在AutoCAD平臺(tái)上開(kāi)發(fā)能夠?qū)D形進(jìn)行擴(kuò)展數(shù)據(jù)嵌入、修改、檢查和輸出的插件,并且具有可視化的數(shù)據(jù)錄入環(huán)境,從而在地下管線的圖形數(shù)據(jù)上附加各類(lèi)相關(guān)屬性信息,最終達(dá)到空間信息和屬性信息的整合,進(jìn)一步滿足管線信息數(shù)據(jù)庫(kù)的要求。
插件開(kāi)發(fā)的關(guān)鍵是將各類(lèi)圖形信息逐條添加到DXF 組碼為1000的組值中,因此,首先需要設(shè)計(jì)好在圖形擴(kuò)展數(shù)據(jù)中將要添加各類(lèi)信息的序列,同類(lèi)圖形實(shí)體將按照固定的序列進(jìn)行信息添加。比如地下管線實(shí)體按照起始點(diǎn)物探號(hào)、終止點(diǎn)物探號(hào)、起始地面高程、終止地面高程、起點(diǎn)埋深、終點(diǎn)埋深、材質(zhì)、管徑、孔數(shù)、埋設(shè)方式、壓力等信息進(jìn)行排序,這樣每次輸入或讀取擴(kuò)展數(shù)據(jù)時(shí),都能夠按照固定的順序?qū)⒐芫€的各類(lèi)信息對(duì)應(yīng)到相應(yīng)的字段內(nèi),從而有利于程序識(shí)別。圖3.1展示了編譯好的管線信息錄入對(duì)話框,每個(gè)輸入框中的內(nèi)容,對(duì)應(yīng)了擴(kuò)展數(shù)據(jù)中的每一條信息。
圖3. 1 管線信息錄入對(duì)話框
錄入到管線圖形中的信息,可以通過(guò)AutoCAD的“XDLIST”命令查看,如圖3.2所示。其中的第一行顯示了注冊(cè)的應(yīng)用程序名稱(chēng),從第二行開(kāi)始,按設(shè)定好的順序逐行顯示了管線的各類(lèi)信息。
圖3. 2 AutoCAD中顯示的管線信息
此外,還可以使用插件讀取管線的屬性信息,通過(guò)管線的屬性值判斷、連接關(guān)系分析等方法,建立糾錯(cuò)模型,用于對(duì)生成的地下管線圖進(jìn)行檢查,比如管線埋深是否在正常范圍內(nèi)、分支點(diǎn)的管線條數(shù)是否一致、管線信息錄入是否有漏項(xiàng)等,都可以通過(guò)對(duì)管線信息的讀取和判斷進(jìn)行分析,從而避免地下管線信息內(nèi)業(yè)錄入中的錯(cuò)誤,甚至還可以對(duì)外業(yè)探測(cè)數(shù)據(jù)的合理性進(jìn)行判定,并生成與管線信息一致的Excel表格或者是Access數(shù)據(jù)庫(kù)文件。
AutoCAD圖形擴(kuò)展數(shù)據(jù)的建立,有效地將空間信息與屬性信息相融合,為地下管線各類(lèi)信息的嵌入提供了可行的方法。通過(guò)編譯AutoCAD插件,以對(duì)話框的形式與用戶進(jìn)行互動(dòng),將地下管線圖編繪和信息錄入完美的結(jié)合,能夠方便快捷地生成管線圖,極大地提高了工作效率,降低了內(nèi)外業(yè)的出錯(cuò)率,同時(shí)為地下管線數(shù)據(jù)庫(kù)的建立打下良好的基礎(chǔ)。