利用AutoCAD LISP实现地形图中高程注记的自动移动

2012-11-24 07:06郑州宏图信息技术咨询有限公司王青松李京卫
河南科技 2012年3期
关键词:矩形框线框绘图

郑州宏图信息技术咨询有限公司 王青松 李京卫

利用AutoCAD LISP实现地形图中高程注记的自动移动

郑州宏图信息技术咨询有限公司 王青松 李京卫

目前,在我国的测绘软件市场中,南方测绘公司的CASS地形地籍成图软件是应用比较广泛的一款软件。然而,在利用CASS展绘高程点时,高程注记总是显示在相对该高程点的固定位置上,这样做难免会出现高程注记遮盖其他地物的情况。为了保证图面的美观,通常的做法是在编辑地形图时对遮盖其他地物的高程注记进行手工移动。这样不仅费时费力,而且容易出现错误。如果利用计算机编程实现高程注记的自动移动,就可以极大地提高地形图编辑的工作效率。

一、AutoCAD LISP编程语言

AutoCAD LISP编程语言是Autodesk公司在发行AutoCAD时自带的开发工具之一,也是一种具有智能特点的编程语言。随着计算机绘图技术在各类领域的不断发展,大量重复性的绘图工作已逐渐由计算机来完成。AutoCAD LISP编理语言不仅可以快速地解决大量重复性的工作,而且具有语法简单、功能强大和操作平台多的优点。

二、利用CASS展绘的基本思路与算法实现

1.高程点与高程注记之间的距离。在利用南方测绘公司的CASS地形地籍成图软件绘制地形图时,由于比例尺的不同,所展绘的高程点和注记的距离也有所不同。以绘图比例尺1:1 000为例,高程点与注记的距离为1.2 cm,在绘图比例尺为1:500时,两者之间的距离缩短了一半;绘图比例尺为1:2 000时,两者之间的距离增加了一倍。根据不同的比例尺,可以获取比例尺变量“user1”以求得高程点与高程注记之间的实际距离。程序如下所示:

2.获得高程注记外围的坐标。在CASS绘制的地形图中,高程点与注记是一个整体,所以可以利用如下程序来完成:

图1是一个矩形框图。将图1中矩形框的左下角与右上角坐标分别保存到变量minx和maxx中。可以得到矩形框左下角与右上角的坐标,这时需要的是注记外围的坐标,所以需要把矩形的长度减去高程点到高程注记的距离。

3.高程注记遮盖地物的判断。根据获得的高程注记文字外坐标,就可以进行高程注记遮盖地物判断了。考虑到高程点会遮盖其他高程点的情况,程序如下所示:

如果q2为空,则表示没有遮盖其他地物,反之,就有遮盖其他地物。

4.高程注记移动路径。在地形图中,高程点与注记之间的距离不能太远,也不能太近,所以高程注记移动路径的选择就要有相关依据。如图2所示,以高程点为圆心,点到高程注记的距离为半径画圆,将圆周上每隔45°做为1个移动点,分别将高程注记文字100.22外的实线矩形框移动到虚线框的位置。根据圆的半径和矩形框的长和宽,就能够很容易地求出各个移动点的坐标,那么移动路径也就得出来了。

5.移动高程注记。根据建立的移动路径列表,可以移动高程注记。高程注记文字100.22外的实线矩形框,以矩形框的左下角为移动基点,依次移动到虚线框的位置。每移动1次,进行高程注记遮盖地物的判断1次,如果没有高程注记遮盖地物,就把高程注记移动到该位置,本点移动结束后,接着处理下1点;否则,继续移动判断。如果虚线框移动结束后仍没有符合条件,那么就把该高程注记标注出来,说明该注记无论怎么移动都要遮盖地物,则需要人工来处理。

在CASS绘制的地形图中,高程点与注记是一个整体,如何只选择高程注记,并移动高程注记,而使高程点的位置不动。可以用如下的程序来实现:

在只选择高程注记之后,移动高程注记就比较容易了。程序如下所示:

根据上述原理,本文,笔者利用AutoCAD LISP语言编制了自动移动高程注记程序。该程序运行后,遮盖地物的高程注记移动迅速,标注位置合理,图面美观大方。

猜你喜欢
矩形框线框绘图
来自河流的你
“禾下乘凉图”绘图人
玩转方格
多模态卷积神经网络的物体抓取检测
垂涎三尺
一种汽车式起重机防倾翻方法的研究
随位移均匀变化的磁场中电磁感应规律的初探
共享单车有了“家”
四例电磁感应中的力学问题赏析
Surfer和ArcView结合在气象绘图中的应用