制图测绘【AutoCAD 在测绘制图中的更好应用】

许文欢 曾永远 广东恒基工程检测有限公司 广东惠州 516171

【文章摘要】

AutoCAD 作为绘图软件的一种, 在测绘行业中得到广泛应用。本文主要介绍了AutoCAD 操作的基本功能及二次开发的应用。简单地讨论了AutoCAD 中的块、菜单等的应用,通过实际野外的测量方法在绘图工作中的运用所总结出来的经验。通过本文的介绍希望能给使用AutoCAD 制图的用户特别是多年从事野外测绘工作且对电脑不太熟悉的(40 岁以上)人员带来更大的方便。

【关键词】

AutoCAD ;AutoLISP ;块;菜单

1 概述

近年来,测绘领域机助制图的研究取得了飞速发展,通过绘图仪输出的图形从过去简单的工程制图到现在的各种比例尺的地形图、地藉图、宗地图,以及非常复杂的小比例尺土地利用现状图等。AutoCAD 已经成为测绘制图工作中的一种基础软件。但是AutoCAD 中的绘图命令成百上千,往往难以完全为我们所掌握。若能将这几百条命令活学活用并与其它软件相结合将给我们的绘图工作带来意想不到的效果。以下将从AutoCAD 菜单,块和LISP 语言的开发,结合其它软件作业等几个方面介绍在实际工作中使用AutoCAD 的一些好方法希望能够给广大用户的操作带来方便。

2 AutoCAD 在测绘制图中的应用

2.1 块的应用

计算机的发展, 特别是AutoCAD 这些绘图软件的出现为测绘行业注入了新生命, 测绘制图由以前的手工绘制转变成现在的计算机成图, 效率有了明显的提高. 但要是没利用好AutoCAD 这个软件, 出图的效率反而会事倍功半. 大家知道在测绘制图中, 特别是地形图等一些图中常会大量重复出现一些图式符号, 比如灯杆,上水, 下水,管线符号及独立符号(如:独立树)等. 在AutoCAD 中若是一个一个画这些符号, 会浪费大量的时间和精力. 假如我们能创建一个图形符号库, 这些库中放有经常要绘制的符号, 当需要的时候绘图员直接从库中调用相应的符号即可, 达到了事半功倍的效果.

AutoCAD 提供了此项功能. 先把常用的符号严格按地形图图式以米为单位单独画好存图. 下面以画上水符号为例, 在AutoCAD 中创建新图, 在新图中任意位置画一个半径为1 米的圆, 再捕捉四分圆点,画一直线。再把这个上水符号保存起来, 起名为“上水.dwg ”。 然后通过插入块操作即可把图式符号插入到需要的位置了。以块形式插入的图的缺省基点是绝对坐标(0,0),即原点,它处于任何新图形的左下角。若所画的图形没有指定基点时,那么当把此图形以块形式插入到当前图形中时,AutoCAD 用缺省基点(原点) 作为插入基点。当然也可以指定基点,象上水这类是圆形的符号把基点定在圆心是最好了,插的时候直接放到位置。其实做好图式后,在命令行键入“base”,会提示“Base point <0.0000,0.0000,0.0000> :” 捕捉圆心点就行了,这样图式的基点就是圆心了。

在测绘制图中除了一些图式符号的使用有重复性, 还有一些,如图框等,不管什么样的工程图,画完后出图时都要加个图框,由于出图用途不一样,会用到从A0 到A4 等各式各样的图框,我们可以把不同大小的图框分别做好,存放在图框库文件夹里,名字也编成如A3.DWG, A2.DWG,宗地图.DWG 等等,用的时候按名字插入即可。

当然还有很多测绘上的常用的符号也可象这样做成文件,比如指北针等。中国有句老话叫做“磨刀不误砍柴工”,平时花点时间把这些图存放在一个文件夹下, 把这个文件夹下的图当成图块,用的时候插入到图中即可,即方便又省时。

块的使用使AutoCAD 的操作变得更加灵活,我们在工作中常常遇到这样的问题,如在测绘制图中将两种相似的符号混淆了,把上水的符号和下水的符号记反了,成图时发现图中是上水的地方都成了下水符号,这时我们要是一个一个的把下水符号换成上水符号,肯定是费时的一件事了,而且极容易出错。AutoCAD 中块能重新定义,所以这时我们只要把块进行重新定义,插入的块也随之更新。这样既减少了修改工作的工作量,也避免校核人员一个一个的检查是否修改完毕。

2.2 LISP 语言的开发

AutoLISP 是AutoCAD 的高级宏编程语言,是LISP 编程语言(目前存在的最古老的计算机编程语言之一)的派生语言。该语言易于掌握,而功能又强大。AutoCAD 内置了 LISP 解释器,用此解释器可以在命令行中输入 AutoLISP 代码,或从外部文件中加载 AutoLISP 代码。AutoLISP 应用程序或例行程序可以与 AutoCAD 进行多种方式的交流。这些例行程序可以提示用户输入信息,可以直接访问内置的 AutoCAD 命令,也可以在图形数据库中修改或创建对象。通过创建 AutoLISP 例行程序,可将特殊要求的命令添加到 AutoCAD 中。许多标准的 AutoCAD 命令实际上也是 AutoLISP 应用程序。

AutoLISP 语言是当今世界上CAD 软件中被广泛采用的设计语言之一。AutoCAD 自面世以来经过不断努力和创新经历不同版本的升级,逐渐完善。但是由于用户使用水平的不断提高和满足不同行业发展的需要,AUTODESK 公司在着重考虑了用户在设计过程中的创新思想和独立的工程设计后,将AUTOLISP 语言嵌套在AutoCAD 内部,使用户充分利用AutoCAD 进行二次开发,实现直接增加和修改AutoCAD 命令,随意扩大图形编辑功能,建立图形库和数据库,并对当前图形进行直接访问和修改,开发CAD 软

图1084

软件开发

Software Development

电子制作


件包等功能。嵌入了AUTOLISP 以后使仅作为交互式图形编辑软件的AutoCAD 变成能真正进行计算机辅助设计和绘图的AutoCAD 软件。方便了用户,进一步提高生产效率,并且通过批量作业提高数据的统一性和标准化。

AutoCAD 已经为我们提供了丰富的绘图和编辑命令,但是这些命令并不是针对测量专业而设置的。有些测量方面常用的功能AutoCAD 并不具备,但可以利用LISP 语言对AutoCAD 作二次开发,开发出适应测量专业特点的新命令。这里只举几个简单的例子加以说明: 在地形测量中,(1)如果我们测量了某一矩形建筑物的四个点,则很容易把这个建筑物绘制出来。但大多数情况是,我们只测量了这个建筑物的一条边,丈量了建筑物的宽度,这种情况,显然AutoCAD 提供的LINE 或PLINE 命令是无法实现的。(2)在地形测量中,加固陡坎、末加固陡坎、铁路、电力线路,围墙,界址线等等地貌符号和图式符号的绘制,AutoCAD 没有提供相应的绘图命令,为此,我们都可以编制相应的LISP 程序来自动处理完成。(3) 在编辑土地利用现状图时,经常需要知道某一宗地的面积,同样也可以编制一个LISP 程序,它的功能是把围绕宗地四周的线提出来, 首尾相接,构成封闭的多边形,计算其面积并显示出来。

我们可以编制若干个LISP 程序,每一个程序完成一个相应的功能,把这些程序嵌入AutoCAD 内部,调用AutoCAD 时同时装入内存,我们就可以象调用其它AutoCAD 命令一样,随意调用,方便、灵活地完成各种编辑工作。

下面是我在工作中遇到的实际问题, 用LISP 编写小程序来解决的例子。在单体放样和竣工测量工作中,验线其实就是实测楼位,用它来检查和比较实际楼位与定位图理论楼位的位移量,所以在画图时除了显示楼位坐标,还得有实测与理论两个坐标的对照表。首先我先做好一个坐标对照表。如下图1 :

此表格是依据上级机关发下来的样图做的。把此图存入图库,然后利用LISP 写了一个小程序。如下:

(defun c:yx(/ pt os pt1 pt2 pt3 n0 n1 n2 nm sp1 sp2 e)

(setq os (getvar "osmode"))

(setq sp1 (* 4 hgt))

(setq sp2 (* 9 hgt))

(setq sp3 (* 10 hgt))

(setq n10 "+")

(setq sp4 (* 6 hgt))

(setq sp666 (* 9 hgt))

(setq sp777 (* 6 hgt))

(setq n0 (* 2.2 hgt))

(setq e "T")

(setvar "osmode" 0)

(setq pt1 (getpoint "\nPick a point to define the 1st text:"))

(setvar "osmode" 0)

(while e

(setvar "osmode" 33)

(setq pt8 (getpoint "\nPick 实测坐标 point:"))

(setq pt9 (getpoint "\nPick 原定位坐标 point:"))

(setvar "osmode" 0)

(setq e pt8)

(if (= e " ")

(progn

(command "redraw")

(setvar "osmode" os)

(setq e nil)

)

)

(setq nm (getstring "\nPlease input this point name:"))

(setq n1 (cadr pt8))

(Setq n2 (car pt8))

(setq n3 (cadr pt9))

(Setq n4 (car pt9))

(setq n1 (atof (rtos n1 2 3)))

(setq n2 (atof (rtos n2 2 3)))

(Setq n5 (- n1 n3))

(Setq n6 (- n2 n4))

(Setq n7 (sqrt (+(* n5 n5) (* n6 n6))))

(setq pt2 (polar pt1 0 sp1))

(setq pt3 (polar pt2 0 sp3))

(setq pt4 (polar pt3 0 sp3))

(setq pt5 (polar pt4 0 sp2))

(setq pt6 (polar pt5 0 sp3))

(setq pt66 (polar pt5 0 sp666))

(setq pt7 (polar pt6 0 sp4))

(setq pt77 (polar pt6 0 sp777))

(setq pt8 (polar pt7 0 sp4))

(command "text" pt1 hgt 0 nm)

(command "text" pt2 hgt 0 (rtos n1 2 3))

(command "text" pt3 hgt 0 (rtos n2 2 3))

(command "text" pt4 hgt 0 (rtos n3 2 3))

(command "text" pt5 hgt 0 (rtos n4 2 3))

(if (<= n5 0)

(command "text" pt6 hgt 0 (rtos n5 2 3))

(progn

(command "text" pt66 hgt 0 n10)

(command "text" pt6 hgt 0 (rtos n5 2 3))))

(if (<= n6 0)

(command "text" pt7 hgt 0 (rtos n6 2 3))

(progn

(command "text" pt77 hgt 0 n10)

(command "text" pt7 hgt 0 (rtos n6 2 3))))

(command "text" pt8 hgt 0 (rtos n7 2 3))

(setq pt1 (polar pt1 -1.5708 n0))

)

)

执行此程序后,按提示操作,可得实测坐标和理论坐标的对照表,还有X、Y 及两坐标点的位移量。一般情况下,在执行这个程序时,实测的楼位已推算好了,定位的理论楼位也应在图中有显示,所以执行程序后,在提示输入实测坐标和提示输入理论坐标时,只要捕捉点就行,这样也免去再次输入坐标时出错。

我们编写LISP 程序是为了给工作带来方便,提高工作效率。所以我们在编写

图2

图3085

软件开发

Software Development

电子制作


LISP 程序时需要十分的慎重,编写完以后,一定要进行试验,并且试验应具有一定的规模和次数,及时发现问题及时进行改正。经过以上步骤,我们可以把写好的LISP 程序放入到一个文件夹中,需要用的时候可以使用“工具”菜单中的“程序调入”,会出现如下对话框(图2)

在“文件”中找出需要的程序,“载入” 就可以了。

2.3 自定义菜单

AutoCAD 提供了自定义菜单功能,执行具有特定应用背景的经常性任务时,菜单自定义非常有用。可在菜单中添加适当的选项,用一个菜单项执行完成任务所需的多个步骤,简化复杂操作,从而提高生产效率。

菜单由菜单文件定义,用户可以修改现有菜单文件也可以自己创建。我们可以自己创建个屏幕菜单,把块的插入及LISP 程序的执行加入其中,如下图3

这样操作一目了然,比较直观方便, 使我们的成图效率更高。

3 结束语

AutoCAD 技术的应用在缩短测绘成图的周期、节省人力、物力和财力、提高质量及效率方面发挥着巨大的作用。它消除了传统的采用绘图工具在空白图纸上绘制的手工作图方式或使用绘图仪作业的一些弊端如:精度不高、速度慢、效率低、成品难以修改等。因此熟练掌握AutoCAD 的操作技巧,不但能够提高工作效率还大大的提高工作质量。达到既好又快又省的目的,为个人和集体创利润,为社会创效益,中国梦,我的梦。

总之,AutoCAD 在测绘制图中所发挥的作用是得到业界认可的。可以说AutoCAD 是测绘的通用软件。比如目前流行的CASS 等一些软件,都是在AutoCAD 的基础平台上开发出来的,是更适合测绘行业的软件。所以说学好AutoCAD 的基本操作是提高测绘制图的前提。我们要学好AutoCAD 软件,使它能更好地为测绘行业服务。

【参考文献】

[1] 康博创作室编著.AutoCAD R14 中文版使用指南. 北京. 清华大学出版社,1999

[2] 章忆文编著.AutoLISP 程序员参考手册.北京. 海洋出版社,1991