利用Excel实现AutoCAD自动批量绘制地质灾害点分布图的方法尝试

2021-09-22 07:16欧阳刚
贵州地质 2021年3期
关键词:批量单点粘贴

欧阳刚

(贵州省地矿局区域地质调查研究院,贵州 贵阳 550081)

1 引言

人们在进行区域性地质灾害调查时,常常需调查数百、数千个地质灾害点或风险斜坡点,并需将其标绘在地质灾害分布图中。这数百至数千个点,按常规手工方式标绘,至少需要好几天时间。而且这样重复的工作,会导致绘图人员枯燥无味,工作效率低下,并常常出现输入错误。

笔者通过方法探索,利用Excel强大的数据处理功能(许东平,2018),基于AutoCAD制图平台,成功实现自动绘制灾害点分布图,替代了繁琐的手动工作,大大提高了工作效率。该方法可广泛应用于自动批量绘制岩土工程勘察中的钻孔平面布置图、钻孔柱状图以及剖面图、公路里程及坐标图、征地范围拐点及坐标绘等方面。希望通过本文的方法介绍,对地质灾害调查人员工作有所帮助,并举一反三,解决技术工作中类似的技术问题。

2 方法概述

在AutoCAD制图时,传统绘制方法是通过鼠标点击命令,结合键盘输入参数在绘图窗口中绘制。这种方法最为简单,也最为常用,但在精准绘制指定坐标点的绘制内容时往往需要输入大量参数值,消耗人们大量时间。

为解决上述传统方法的弊端,提高工作效率,笔者采用命令窗口批量输入命令及相应参数值的方法进行绘制。由若干行批量输入命令及相应参数值构成的文本称为“绘制程序”。具体操作思路是:首先在Excel平台中处理绘制流程,完成单点的绘制程序,接着通过复制公式完成无数点的绘制程序,然后将无数点的绘制程序命令在AutoCAD命令窗口中粘贴进去,便自动批量绘制出地质灾害点、斜坡点及其名称注记,从而实现数百、数千个点在几秒钟内完成,大大提高图件绘制效率及准确率。该方法操作流程化较为严格,要求制图人员都AutoCAD的命令较为熟悉,并对自己需要绘制的图形的各种值较为清晰。

本文以图1《地质灾害台账表》中地质灾害点为例进行说明阐述(中国地质环境监测院,2010)。

图1 地质灾害台账

3 操作过程

3.1 绘制单个地质灾害点

我们在通过AutoCAD的命令窗口绘制单点地质灾害之前,先设定各类图素的符号形状及大小。例如,设定地质灾害符号为圆,崩塌为等边三角形,地面塌陷为正方形,泥石流为等边五边型,小型规模的直径为100 mm,中型为200 mm,大型为300 mm,特大型为400 mm。

3.1.1 单点绘制操作流程

以绘制单个小型滑坡点为例,其具体操作步骤为:(1)绘制灾害点符号:在AutoCAD的命令窗口依次输入圆命令circle,再输入灾害点坐标即圆心坐标(x,y)(顾孝烈 等,2003),选择绘制圆的方式为d(直径),输入直径数值;(2)绘制灾害点标注:在AutoCAD的命令窗口依次输入编辑单行文字的命令dtexted,dtexted的新值为1,需注意的是,这里允许输入1、2或3,但本次绘制只能输入1,再输入单行文字命令text,以及灾害点标注坐标(x+△x,y+△y),△x和△y为平移距离,然后输入文字高度以及灾害点编号及名称。这样,单点灾害点就绘制在图上了。

3.1.2 设计Excel表格

如图1《地质灾害台账》所示,在Excel表A3至N3中,分别设置为灾害点编号、隐患点名称、灾种、规模、平面坐标X、平面坐标Y、文字X方向平移距离、文字Y方向平移距离、绘制命令、绘图子命令、符号大小、文字高度、文字角度及绘制程序共14列,并根据灾害点数量将横向完善表格内容,其中,本次以18个灾害点为例进行说明。

3.1.3 Excel中编辑子项公式

编辑子项公式是为了获得在单点绘制系列命令中自定出现我们需要的绘制程序。由于我们每个灾害点的符号、大小等参数都不一样,我们需要自动计算出不同的绘制程序,故通过IF命令进行计算,根据台账中的不同灾种、不同规模、不同名称等,从而自动计算出我们需要的绘制程序。

1.Excel中自动生成灾害点命令操作如下(藤井直弥,2019):在“绘制命令”I3中输入IF公式“=IF(C3="滑坡","circle",IF(C3="崩塌","polygon 3",IF(C3="地面塌陷","polygon 4",IF(C3="泥石流","polygon 5"))))”。这样,如果灾害点为滑坡,这里自动显示为circle,若为崩塌则显示为“polygon 3”、地面塌陷显示为“polygon 4”、泥石流显示为“polygon 5”同时应注意中间包含有空格键。

2.Excel中自动生成生成小型、中型、大型及特大型等不同规模的灾害点符号大小值:本次设置小型为100,中型为200,大型为300,特大型为400,具体操作为:在符号大小列K3中输入“=IF(D3="小型",100,IF(D3="中型",200,IF(D3="大型",300,IF(D3="特大型",400))))”,则该点的符号大小则根据灾害点规模的规模反算处K3中的值。

3.同理,在Excel中用IF命令计算出圆形circle和等边多边形polygon的子项命令即circle命令后应输入“d”,而"polygon 3"、"polygon 4"、"polygon 5"等命令后需输入“c”,在图形参数J列的J3中需要输入IF公式“=IF(I3="circle","d","c")”。这样就会自动识别出“c”和“d”了。

3.1.4 设置单点绘制命令程序

前面基础数据做好之后,需要完成单点绘制命令程序,从完成单点自动绘制。以ZHD001地面塌陷1为例,进行阐述。

在N3中输入公式“=I3&" "&E3&","&F3&" "&J3&" "&K3&" "&"dtexted 1 text "&(E3+G3)&","&(F3+H3)&" "&L3&" "&M3&" "&A3&""&B3&CHAR(13)”(冯德平,2009),Excel中则自动显示值为“polygon 4 601935,2951391 c 300 dtexted 1 text 602085,2951501 350 0 ZHD001地面塌陷1”,N3显示的值即为ZHD001地面塌陷1的绘制命令程序,该点的符号、符号大小、灾害点名称及标注等通过命令输入的形式,将所有命令集中在一起了。

3.1.5 绘制单个地质灾害点

复制Excel中N3中的内容,粘贴至记事本后再复制一次,确保复制的内容是具体显示的值,即为“polygon 4 601935,2951391 c 300 dtexted 1 text 602085,2951501 350 0 ZHD001地面塌陷1”。然后打开AutoCAD,在输入命令栏中将复制好的单点绘制命令进行粘贴,AutoCAD绘图界面中单点的图并绘制好了。

另外须将单点命令最后加上“CHAR(13)”,这样一个点的绘制命令才算完整。否则不能将各个命令对应到AutoCAD的各项命令。

3.2 批量绘制多个地质灾害点

在Excel中将N3中的单点绘制命令公式进行复制,在N列将所有点粘贴该公式,再将所有点N列公式进行复制并粘贴至记事本稍作处理,把多余的引号等删除,再全部复制,然后打开AutoCAD,在输入命令栏中将复制好的多点绘制的系列命令进行粘贴,粘贴命令如下:

polygon 4 601935,2951391 c 300 dtexted 1 text 602085,2951501 350 0 ZHD001地面塌陷1

circle 599742,2955117 d 200 dtexted 1 text 599892,2955227 350 0 ZHD002滑坡5

polygon 4 614041,2954547 c 200 dtexted 1 text 614191,2954657 350 0 ZHD003地面塌陷2

polygon 3 615927,2950471 c 300 dtexted 1 text 616077,2950581 350 0 ZHD004崩塌1

……

至此,在AutoCAD绘图界面中的所有地质灾害点分布图便自动绘制好了,如图2《某县地质灾害点分布图》所示。

图2 某县地质灾害点分布图(局部示意图)Fig.2 Distribution of geological hazard in a county(partly)1—滑坡;2—崩塌;3—地面塌陷;4—泥石流

4 结语

本文阐述的方法,是基于AutoCAD制图软件,利用过Excel强大的数据功能,将繁琐的人工标绘方式转变为通过Excel处理,自动生成AutoCAD中需要键入的命令,从而达到批量绘图的目的。该方法相对于传统人工制图方法,大大减少了制图人员劳动强度,提高了工作效益,并大大降低了差错率。

该方法可以举一反三地应用到其他制图工作中,诸如自动批量绘制岩土工程勘察中的钻孔平面布置图、钻孔柱状图以及剖面图、公路里程及坐标图、征地范围拐点及坐标绘,等等。因此,该方法的推广应用价值较大。

猜你喜欢
批量单点粘贴
批量提交在配置分发中的应用
帖脸谱
历元间载波相位差分的GPS/BDS精密单点测速算法
《猫头鹰》小粘贴
超薄异型坯连铸机非平衡单点浇铸实践与分析
A ski trip to Japan
What Would I Change It To
数字电视地面传输用单频网与单点发射的效果比较
16吨单点悬挂平衡轴的优化设计
在数控车床上批量钻铰孔类工件的实践