水利工程“纵断点成果表”基于AutoLISP二次开发与应用
2019-11-09赵文良王瑞昕赵韵琳
赵文良,王瑞昕,赵韵琳
(1.内蒙古自治区水利水电勘测设计院,内蒙古 呼和浩特 010020;2.中国科学院大学,北京 100049)
“纵断点成果表”是通过外业定线测绘成果编辑而成的一种测绘成果表,是河道测量、堤防测量、管线测量、道路及带状工程中的测绘成果,具体内容见表1,“纵断点成果表”主要由表头信息、表头、文本区及绘图区组成,其中右侧的“轴线说明”需用地形图图示符号绘出沿轴线两侧一定宽度内的地物,为工程建设提供详细准确的地理信息,确保工程顺利进行。
由于“纵断点成果表”中,包含有文本数据和地形图图示符号,在Word中编辑文本容易,但画轴线图比较困难;在南方CASS 7.1中画轴线图容易,文本编辑需要进行二次开发。长期以来只能利用Word编辑好文本部分,打印出来纸制表格后,靠手工绘制“轴线说明”,传统方法自动化程度低,数据检查复杂,数据交换困难,工作效率低,无法实现成果的数字化。
1 表格绘制方法
在长期的生产实践过程中,经过探索开发出绘制表格及编辑文本的3种方法,可以较好地解决“纵断点成果表”数字化的问题。
1.1 组合法
利用改造后的Word表格,先编辑好文本内容,将其粘贴到南方CASS7.1软件预先设计好的模板上,再利用地形图符号绘制轴线图的地物,“纵断点成果表”以图形文件的形式保存、打印输出。本方法的主要缺点是文本与图形之间很难达到准确衔接。具体方法详见刊登在《内蒙古水利》2018年08期的《定线测量“纵断点成果表”数字化的实现》一文。
表1 纵断点成果表
点名里程桩号深泓点高程/m地面高程/m堤顶高程/m左右左右轴线说明J10+000998.69999.671000.79J20+0351000.740+050998.64999.651000.650+100998.65999.621000.600+150998.61999.581000.570+1691000.530+1861000.490+1911000.470+200998.43999.471000.440+250998.36999.391000.420+300998.33999.361000.390+350998.28999.331000.350+400998.23999.261000.29J30+417.5998.21999.251000.54...J50+938997.78999.021000.27
1.2 利用AutoCAD中“表格”功能绘制
新版的AutoCAD,在工具栏“绘图”中增加了“表格”的功能,“表格”功能可灵活地绘制各种常用的表格,文字编辑也较为方便,可兼顾文本编辑与绘制表格的功能,但文本需要逐一手工输入,数据量大时,易出错,适用于文本内容少的地方,无法实现批量定位导入数据。
1.3 基于AutoLISP语言开发绘制表格程序
AutoLISP是一种计算机的表处理语言,在人工智能学科领域广泛应用的一种程序设计语言。AutoCAD内部嵌入LISP目的是让用户能充分利用AutoCAD进行二次开发,在AutoCAD环境中,主要是实现表格绘制和文本编辑,AutoLISP语言具有强大的图形处理功能,可与AutoCAD功能相互结合开发出自动绘制表格的功能。
1.3.1基本数据
(1)文本数据
将表1中的文本数据在Word中转换成开发软件可读的格式,纵断点文本数据应保存为*.TXT格式。由于表的行数设定为27行,软件是按照行读取数据,对应的每页文本行数也应为27行,超过的行数转入下一个文件中,行数不足时,用空数据行补齐,文本转换后的格式如下:
"J1" "0+000" "999.69""999.67" "" """1000.79"
"J2" "0+035" "" "" "" "" "1000.74"
" " "0+050" "998.64" "998.65""" """1000.65"
.
.
.
"J5""0+938" "997.78" "999.02" "" "" "1000.27"
(2)表框制作
在AutoCAD中按1∶1的比例绘制一张“纵断点成果表”,其中表格区域为空白区(如图1所示),将表框转为图块,命名为ZDBK。
图1 “纵断点成果表”表框
(3)表格制作
根据表格的大小绘制表格文件,并为表格中的数据定义属性,将表格转为块,命名为ZDBG。
1.3.2程序框图
程序命名为ZDB.LSP,如图2所示。
图2 程序流程图
1.3.3 源程序
(DEFUN ZDB();定义ZDB函数
(略)
(closefp);关闭打开的文本文件
(setqa(1+a));累加纵断点成果表的页数
)
)
程序编译,打开AutoCAD的工具菜单,选择AutoLISP的visual LISP(V)编辑器,将源程序ZDB.LSP编译后,形成应用程序ZDB.VLX。
1.3.4 程序执行
(1)添加搜索路径
将程序ZDB.VLX、文本文件、图框图形ZDBK、表格图形ZDBG存放在同一个文件夹中,启动AutoCAD进入“工具”中的“选项”添加“纵断点成果表”文件所在绝对的路径(如图3所示),点击“确定”即可。
图3 添加文件搜索路径
(2)加载运行程序
方法1:在AutoCAD的命令窗口中,输入(LOAD“ZDB.VLX”)回车(如图4所示),即可完成加载序程。
方法2:从AutoCAD工具栏“工具”下的“AutoLISP”中,选择“加载”找到对应的程序文件进行加载。
图4 AutoCAD的命令窗口
(3)运行程序
在图4命令中输入函数名(ZDB)回车,系统在AutoCAD的命令窗口中,先提示在屏幕输入定位点后,显示图1中的表框,再输入文本文件名,系统会自动绘制表格,并同时完成填写相关文本内容,如图5左侧的文本部分所示。用同样的方法,依次完成其他页的表格绘制。表格绘制完后,填写表头、表尾的相关信息,先利用工具栏“修改”中的“分解”把表框块进行分解,再完善相关内容的统一填写。
2 绘制轴线图
CASS 7.1地形地藉成图软件是基于AutoCAD平台技术的GIS前端数据处理系统,广泛应用于地形成图、地藉成图、工程测量应用、空间数据建库、市政监管等领域。
“轴线说明”是根据《量距手簿》外业实测数据进行绘制,用地形图图式符号表示轴线两侧的地物,图5右侧的“轴线说明”是在南方CASS 7.1软件中绘制完成的,图5为一页完整的“纵断点成果表”。
图5 纵断点成果表
3 成果输出
成果表输出可按图6中的参数设置,打印区域选用“窗口”,按图5外边的矩形范围选定打印边界,最后成果以A4纸幅面输出纸制资料。
4 结语
“纵断点成果表”实现数字化, 绘制出的成果表,可以满足现代测绘成果要求的标准化、规范化,提高了工作效率,减轻了内业工作量,方便使用者间的数据交换,也有利于测绘成果资料档案数字化、信息化管理。存在的不足之处是,每绘制一页成果表都要调用对应数据文件,无法实现一次全自动将所有成果页绘制完成。本文也为其他领域在AutoCAD中绘制规范化表格提供了有意义的借鉴。
图6 输出“纵断点成果表”