近年来,测绘领域内机助制图的研究取得了飞速发展,通过绘图机输出的图形从过去简单的工程制图到现在的各种比例尺的地形图、地藉图、宗地图,以及非常复杂的小比例尺土地利用现状图等。在众多的绘图系统中,人们普遍采用的基础绘图软件是美国Autodesk公司的AutoCAD,因为该软件不仅具有丰富的绘图命令,还具有强大的图形编辑功能,而且软件运行相当稳定。但是熟悉AutoCAD的人都知道,要用好AutoCAD,不但要熟练掌握其各项命令,而且要熟练掌握AutoCAD提供的数据交换文件SCR、DXF和嵌入AutoCAD内部的高级语言 --Auto LISP语言,这样使您对各种图形,尤其对复杂的图形更加得心应手。关于 AutoCAD 在测绘图形中应用可归纳为以下几个方面。
1 实现数据到图形的自动转换
有了原始数据,如何实现自动成图,这一直是人门关心的问题,在AutoCAD下,把原始数据变成图形,可以通过以下途径:
(1)采用高级语言(BASIC语言或C语言)编制程序调用原始数据文件生成SCR命令文 件,在AutoCAD的图形编辑环境下调用SCRIPT命令执行该文件,生成相应的图形。
(2)用高级语言生成DXF文件,在AutoCAD图形编辑环境下调用DXFIN命令打开该文 件,即可得到相应的图形文件。
(3)用高级语言直接生成DWG图形文件
(4)利用 Auto LISP语言,编写相应程序,读取有关数据文件,进行处理,并且调用 Auto CAD绘图命令,直接生成图形。
以上四种方法中,第一种方法比较简单,但执行速度慢;第二种方法速度较快,但DXF文件格式死板,记录冗长,尤其是复杂的图形,DXF文件长得惊人。第三种方法较前两种方法理想,但这种方法对于一些复杂的图形尚有一定的难度,况且,不同的AutoCAD版本,DWG文件的结构也不同,使程序不能通用。三种方法都有一共同的特点,先在AutoCAD外,用高级语言做数据处理,然后再回到AutoCAD下成图,效率低。第四种方法是直接在AutoCAD下工作,减少了中间环节,提高了效率。而且具有较强的通用性,对一些较复杂的图形,更直接方便。
2 实现图形到数据的自动转换
刚接触AutoCAD的人都有下面的感觉,就是由数据生成图形容易,由图形返回数据困难, 有LISP语言,这个问题就会迎刃而解。
2.1 图纸资料的数字化
要把图像资料变成相应的数据,一般是通过数字化仪和扫描仪。对于手扶式数字化仪来 讲,我们可以根据不同要求来编制相应的LISP程序,完成图形的数字化。程序运行时,把从 数字化仪传递来的数据信息(点的坐标)连同交互式状态下输入的有关编码合并以一合理的数据结构存贮于数据文件中,同时,在屏幕上,采用不同的图层,不同的颜色进行同步显示。从而使数字化过程变得非常直观、形象,避免产生丢点或重复等各种错误的发生。这样数字化的结果,不仅得到与原图纸相对应的数据文件,也同时生成了一幅相对应的图形文件。数据文件可以纳入有关相对应的数据管理系统中,而图形文件为将来的输出和变更修改提供了方便。对于扫描仪,是将原图通过扫描仪扫描形成位图文件(文件扩展名为BMP或TIF),经矢量化软件把图形的数据信息分类存贮于数据文件中。
2.2图形变更后,数据的自动更新
测量领域的各种图形随时间的推移是不断发生变化的,为保证图形的现实性,就要对图形随时加以修改,这种修改大多数是直接对原图文件利用AutoCAD的图形编辑功能来完成,但随之产生一个问题,就是图形文件修改后,原图对应的数据文件如何修改?解决这个问题的最好办法是利用AutoLISP语言。 在AutoLISP语言中,有很多实体访问函数,实体名称函数、实体数据函数,运用上述函 数编制一个LISP程序就可以实现图形文件到数据文件的自动转换。具体过程如下: 用ssget函数构造一个选择集,在利用sslength函数求出选择集实体的个数,然后ssname函数依次求出每个实体的名称,在通过entget函数就可以获得实体的下列信息: 实体类型,所在层名和实体颜色号(一般图形的编码就隐含在图层和颜色中)。实体类型常见有:组合线、直线、注记和块。 如果实体是直线,我们就可以直接读取直线的起始坐标。如果实体是注记类,我们可以读取注记内容,字符高度,方向及注记点位坐标。 如果实体是块,我们就可以直接读取块名,插入点位,旋转角度和X、Y方向比例因子。
如果是组合线,可利用entnext函数依次读取线上的各点坐标。把上面获得数据按所需 要的格式,输入到相应的数据文件中,即实现了图形到数据的自动转换。这样一来,如果原图形中某一范围需要修改的话,就可以利用AutoCAD编辑命令完成,甚至可以把原图中元素删除掉,重新绘制,修改完成后,运行上述LISP程序,给出变更范围,计算机立即生成一个新的数据文件,重新纳入管理系统中去,从而保证了图形于数据的统一。
2.3利用图形和数据相互转换功能进行控制网的优化设计
控制网的精度取决于网形结构和观测量的精度,控制网的结构主要任务是确定合理的网形结构。这个过程完全可以在AutoCAD下完成。
首先,把已知数据输入计算机,初步确定待定点的位置,再用边长和方向把这些点连接起来构成控制网。网中已知点、未知点及观测边、观测方向均用不同的图层和颜色加以区分。然后,把该网形转换成相应的数据文件,则该数据文件含有网形的所有点位及观测信息。调用相应的精度估算程序,对该网做精度分析,其结果仍以图形形式返回AutoCAD中,如各点的误差椭圆等。设计者将根据这些精度指标,参照设计要求,合理调整该网的结构,反复上述过程,最后,完成该控制网的优化设计,输出该网设计图和精度分析结果。
3 用LISP程序实现图形的批量编辑
在测量图形处理中,经常会遇到需要批量处理某类图素的情况。如地形图中的一些专用符号及注记字符的大小需要统一放大或缩小;图中的植被符号需要统一调整密度等。如果我们采用手工逐一编辑的话,工作量相当大,效率很低,尽管这类问题编辑工作量大,但规律性极强,我们可以编制一段相应的LISP程序来自动完成。具体作法是,首先是在AutoCAD下构造一选择集,集内包含所有需要修改的实体,然后逐一求出各个实体的名称,并对该实体有关数据做相应的修改。 类似的批量编辑问题还很多,如修改某一类实体的图层或颜色,删除满足一定条件的所有实体等等。均可以通过LISP程序来完成,从而大大地提高编辑的工作效率。
4 用LIST语言开发新的功能函数
AutoCAD已经为我们提供了丰富的绘图和编辑命令,但是这些命令并不是针对测量专业而设置的。有些测量方面常用的功能AutoCAD并不具备,但可以利用LISP语言对AutoCAD作二次开发,开发出适应测量专业特点的新命令。这里只举几个简单的例子加以说明: 在地形测量中,
(1)如果我们测量了某一矩形建筑物的四个点,则很容易把这个建筑物绘制出来。但大多数情况是,我们只测量了这个建筑物的一条边,丈量了建筑物的宽度,这种情况,显然AutoCAD提供的LINE或PLINE命令是无法实现的。
(2)在地形测量中,加固陡坎、末加固陡坎、铁路、电力线路,围墙,界址线等等地貌符号和图式符号的绘制,AutoCAD没有提供相应的绘图命令,为此,我们都可以编制相应的LISP程序来自动处理完成。以在编辑土地利用现状图时,经常需要知道某一宗地的面积,同样也可以编制一个LISP程序,它的功能是把围绕宗地四周的线提出来,首尾相接,构成封闭的多边形,计算其面积并显示出来。
类似的,我们可以编制若干个LISP程序,每一个程序完成一个相应的功能,把这些程序嵌入AutoCAD内部,调用AutoCAD时一同装入内存,我们就可以象调用其它AutoCAD命令 一样,随意调用,方便、灵活地完成各种编辑工作。
5 图形坐标还原、方位旋转及换带处理
在地形图或地籍图测量中,会遇到这样的情况,图形已经测绘完毕,但坐标系统用错或需要换带处理,或需要把图形扭转(还原)或处理到需要的坐标系统。AutoCAD可以帮助您完成上述工作。 具体的办法是:对于坐标系统用错,在测图区域内找相距较远的两个已知点,计算确定对的和错的两组坐标,分别计算两点之间边的方位,确定出需要扭转的角度。如果是数字化地形图或地藉图,直接在AutoCAD环境下调出所有图幅,关闭纯地形图或地籍图以外的图层(如图廓等图层)。利用MOVE命令移动整块图形,移动基点选取上述已知点中错误的一 个。再利用ROTATE命令旋转整块图形,旋转基点选择已知点中正确的一个。经移动和旋转正确后的图形由WBOLCK命令存盘,重新调出该图形,再重新分幅和加图廓等信息。换带处理,方法类似。如果不是数字化的图形,需要将该图形通过数字化仪或扫描仪加上相应的软件处理成AutoCAD下的图形,按上述方法,即可完成图形坐标还原、方位旋转及换带处理。
6 GPS点、导线点、图根点展点在分幅图上
大比例尺、大面积的地形图或地籍图测量,规范要求除必需的导线点外,还需要大量的图根点,少则几百个,多则几千个。人工找点将其上在相应图幅上,工作量大,效率低,还容易错。计算机加 AutoCAD就容易多了。
具体方法是这样, 先将各点的点号、坐标按规定的格式录入计算机形成数据文件, 检查无错误后,通过展点程序调用该数据文件,生成与AutoCAD连接的交换文件(扩展名为SCR),然后在AutoCAD下用SCRIPT命令执行该交换文件,即可得到已上好点的总体分幅图。这样哪一个点在哪一幅图上,一目了然,通过打印机或绘图机输出该图。
AutoCAD 还有许多功能可供我们测绘行业运用, 有待我们去挖掘,也望同仁相互交流, 共同发展,为测绘事业作出贡献。