市政管网缺陷分布图快速绘制方法

2019-04-26 05:03彭艳华
电子技术与软件工程 2019年4期
关键词:工具栏图例分布图

文/彭艳华

近年来因地下管网破损等原因导致的路面塌陷也时有发生,地下管网淤塞引起城市道路汛期积水严重。为确保群众出行和正常生活,政府部门要求对地下管网开展安全隐患排查工作,把握管道内部缺陷情况,对缺陷进行分类归纳和等级判定。

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中使用自定义的管网缺陷标注工具栏,解决了管网缺陷分布图绘制中的重复性工作,大量减少了复制黏贴、位置移动、图层切换等繁琐工作,提高了工作效率,实现了管网缺陷标注的快速绘制,具有较大的实用价值。

猜你喜欢
工具栏图例分布图
“玩转”西沃白板
贵州十大地质公园分布图
找拼图
犬狗的画法(六)
中国癌症分布图
左右江水冲石器采集分布图
可爱的小鸟
人生真相
轻松DIY:用好IE8浏览器中的自定义功能等
以最快的速度为填空题留空