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