文/彭艷華
近年來因地下管網(wǎng)破損等原因?qū)е碌穆访嫠菀矔r(shí)有發(fā)生,地下管網(wǎng)淤塞引起城市道路汛期積水嚴(yán)重。為確保群眾出行和正常生活,政府部門要求對地下管網(wǎng)開展安全隱患排查工作,把握管道內(nèi)部缺陷情況,對缺陷進(jìn)行分類歸納和等級判定。
LISP 語言是嵌入在CAD內(nèi)部的編程語言,能利用Auto CAD進(jìn)行二次開發(fā)。利用LISP編制一些適用性程序,開發(fā)管網(wǎng)缺陷標(biāo)注命令,自動(dòng)完成圖層控制、圖例插入、文字描述創(chuàng)建等操作,實(shí)現(xiàn)高效率的圖形繪制。
根據(jù)《深圳市市政排水管道電視及聲納檢測評估技術(shù)規(guī)程(試行)》,管網(wǎng)缺陷分布繪制要求如表1所示。
(1)創(chuàng)建結(jié)構(gòu)性缺陷、功能性缺陷圖例塊。
(2)利用Visual Lisp語言編制程序,計(jì)算標(biāo)注文字及圖例位置坐標(biāo)。在CAD上依次選取三個(gè)點(diǎn),次為缺陷位置點(diǎn)、缺陷標(biāo)注起點(diǎn)、缺陷標(biāo)注終點(diǎn)。讀取三個(gè)點(diǎn)坐標(biāo),計(jì)算缺陷標(biāo)注文字及圖例位置坐標(biāo)。
(3)根據(jù)計(jì)算出的坐標(biāo)創(chuàng)建缺陷標(biāo)注文字、插入缺陷圖例。
(1)啟動(dòng)AutoCAD,在Visual LISP編輯器中編寫代碼[1],主要相關(guān)代碼如下:
①圖層調(diào)用及顏色設(shè)置代碼:
(command "layer" "m" "功能性缺陷1、2級標(biāo)注" "color" 140 "" "" "")
②讀取點(diǎn)坐標(biāo)代碼:
(setq qxwz (getpoint "選擇缺陷位置: "))
表1:管網(wǎng)缺陷分布圖繪制要求
(setq wzqd (getpoint "選擇缺陷標(biāo)注文字及圖例起點(diǎn): "))
(setq wzzd (getpoint "選擇缺陷標(biāo)注文字及圖例終點(diǎn): "))
③創(chuàng)建缺陷標(biāo)注文字代碼:
(setq ANG (angle wzqd wzzd))
(setq ANGa (* (/ ANG pi) 180))
(command "mtext" wzqd "R" ANGa "H" 2.0 "J" "BL" "W" 8 "沉積1級" "")
④插入缺陷圖例代碼:
(setq ANG01 (- ANG (/ pi 2)))
(setq crjd (polar crjd ANG01 3))
(command "insert" "*D:\Program Files (x86)\NKQX0\CJ12.dwg" crjd "" ANGa "")
(2)在AutoCAD菜單文件中自定義工具欄。利用Visual Basic 6.0創(chuàng)建一個(gè)與管網(wǎng)缺陷標(biāo)注菜單文件同名的DLL[2],在菜單文件名中指定所要使用圖標(biāo)ID字符串。定義一個(gè)工具欄按鈕代碼如下:
ID_MNTJ [_Button(脫 節(jié)1、2級,"QXTJ12","QXTJ12")]^C^C_Tjot
(3)加載管網(wǎng)缺陷標(biāo)注工具欄。在CAD界面選擇“工具-AutoLISP-加載應(yīng)用程序”,將編制的lsp代碼文件添加到自動(dòng)啟動(dòng)欄中,并加載管網(wǎng)缺陷標(biāo)注菜單文件名(.mnu)。
例如繪制3級脫節(jié)缺陷,點(diǎn)擊“結(jié)構(gòu)性缺陷、功能性缺陷3級、4級標(biāo)注”工具條第一個(gè)圖標(biāo),在CAD圖中點(diǎn)擊缺陷位置繪制缺陷標(biāo)注。工具條各按鈕繪制缺陷標(biāo)注效果如圖1所示。
圖1:管網(wǎng)缺陷標(biāo)注工具欄繪圖效果
利用Visual LISP語言編制管網(wǎng)缺陷分布圖標(biāo)注程序,在AutoCAD中使用自定義的管網(wǎng)缺陷標(biāo)注工具欄,解決了管網(wǎng)缺陷分布圖繪制中的重復(fù)性工作,大量減少了復(fù)制黏貼、位置移動(dòng)、圖層切換等繁瑣工作,提高了工作效率,實(shí)現(xiàn)了管網(wǎng)缺陷標(biāo)注的快速繪制,具有較大的實(shí)用價(jià)值。