市政管网缺陷分布图快速绘制方法
2019-04-26彭艳华
文/彭艳华
近年来因地下管网破损等原因导致的路面塌陷也时有发生,地下管网淤塞引起城市道路汛期积水严重。为确保群众出行和正常生活,政府部门要求对地下管网开展安全隐患排查工作,把握管道内部缺陷情况,对缺陷进行分类归纳和等级判定。
LISP 语言是嵌入在CAD内部的编程语言,能利用Auto CAD进行二次开发。利用LISP编制一些适用性程序,开发管网缺陷标注命令,自动完成图层控制、图例插入、文字描述创建等操作,实现高效率的图形绘制。
1 管网缺陷分布图绘制要求
根据《深圳市市政排水管道电视及声纳检测评估技术规程(试行)》,管网缺陷分布绘制要求如表1所示。
2 程序编写实现
2.1 编程设计基本思路
(1)创建结构性缺陷、功能性缺陷图例块。
(2)利用Visual Lisp语言编制程序,计算标注文字及图例位置坐标。在CAD上依次选取三个点,次为缺陷位置点、缺陷标注起点、缺陷标注终点。读取三个点坐标,计算缺陷标注文字及图例位置坐标。
(3)根据计算出的坐标创建缺陷标注文字、插入缺陷图例。
2.2 编程主要步骤
(1)启动AutoCAD,在Visual LISP编辑器中编写代码[1],主要相关代码如下:
①图层调用及颜色设置代码:
(command "layer" "m" "功能性缺陷1、2级标注" "color" 140 "" "" "")
②读取点坐标代码:
(setq qxwz (getpoint "选择缺陷位置: "))
表1:管网缺陷分布图绘制要求
(setq wzqd (getpoint "选择缺陷标注文字及图例起点: "))
(setq wzzd (getpoint "选择缺陷标注文字及图例终点: "))
③创建缺陷标注文字代码:
(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创建一个与管网缺陷标注菜单文件同名的DLL[2],在菜单文件名中指定所要使用图标ID字符串。定义一个工具栏按钮代码如下:
ID_MNTJ [_Button(脱 节1、2级,"QXTJ12","QXTJ12")]^C^C_Tjot
(3)加载管网缺陷标注工具栏。在CAD界面选择“工具-AutoLISP-加载应用程序”,将编制的lsp代码文件添加到自动启动栏中,并加载管网缺陷标注菜单文件名(.mnu)。
2.3 程序绘图效果
例如绘制3级脱节缺陷,点击“结构性缺陷、功能性缺陷3级、4级标注”工具条第一个图标,在CAD图中点击缺陷位置绘制缺陷标注。工具条各按钮绘制缺陷标注效果如图1所示。
图1:管网缺陷标注工具栏绘图效果
3 结语
利用Visual LISP语言编制管网缺陷分布图标注程序,在AutoCAD中使用自定义的管网缺陷标注工具栏,解决了管网缺陷分布图绘制中的重复性工作,大量减少了复制黏贴、位置移动、图层切换等繁琐工作,提高了工作效率,实现了管网缺陷标注的快速绘制,具有较大的实用价值。