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