利用Excel在AutoCAD中批量绘制断面图的方法
- 格式:doc
- 大小:27.00 KB
- 文档页数:1
利用AutoLisp、Microsoft VBA程序语言实现批量生成断面图及断面电子表格数据蒋济飞赵新萍(广西第二测绘院广西柳州 545006)【摘要】本文主要讨论如何利用AutoCAD的二次开发语言AutoLisp 和Excel中的Microsoft VBA语言技术,利用地形图上的高程点数据批量生成断面图和断面数据表格。
【关键字】断面图 AutoLisp Microsoft VBA1 引言Visual Basic作为一个集成的开发环境,能够使AutoCAD数据与其它的Visual Basic应用程序,如Microsoft Excel软件,直接共享,实现无缝连接,交换数据。
在没有专业软件辅助的情况下,绘制纵横断面图是很繁琐的事,需要进行大量的、重复的操作,既劳神,又容易出错。
我们在完成老挝南塔河1#水电站进站道路测绘项目中,利用地形图上的高程点数据,通过Auto Lisp、Visual Basic编程建立AutoCAD与Excel的通信,实现数据交换,快速绘制公路纵横断面及相关成果表,大大的提高了工作效率。
2 应用程序的开发在实现对地形图上的高程点数据批量生成断面图和断面数据表格处理的程序代码编写过程中,主要分以下步骤:(1)注记纵、横断面交点的里程和高程并生成纵断面曲线,输出断面数据。
首先我们取得纵断面线折点的坐标集合(XY-List)。
如果纵断面线图元为LWPOLYLINE,则只要依次取出纵断面线图元数据中群码为10的数据即可;如果纵断面线图元为POLYLINE,则只要依次取出纵断面图元之后SEQEND之前的所有VERTEX图元数据中群码为10的数据即可。
取得纵断面线上所有高程点和横断面图元。
代码如下:(SETQ ALL-DATA(SSGET "F" XY-List ' ((-4 . "<or")(-4 . "<and")(0 . "INSERT")(8 . "GCD")(-4 . "and>")(-4 . "<and")(0 . "*POLYLINE")(8 . "DM")(-4 . "and>")(-4 . "or>"))))取得高程点和横断面图元数据之后,对数据进行区分。
在EXCEL中处理测量数据是利用函数“&”对数据进行连接处理,对所有的测量点都处理成:距中桩距离&“,”&高程,例如在图2中,桩号为K2+160左12m位置高程为691.420,可以在EXCEL工作表中一个相对应的单元格的公式栏中输入=“-12”&“,”&M307,结果单元格显示“-12,691.420”;在EXCEL中一般按照下列原则处理横断面测量数据:1每一个数据都要处理成距离,高程的形式且占用一个单元格;2每一个横断面数据包括原地面测量数据和路床数据只占用一行;3每一行中的横断面数据自左向右顺序依次是:原地面数据一路床数据,其中原地面数据的顺序是距离中桩最左边的数据依次到距离中桩最右边的数据,路床数据是距离中桩最右边数据依次到距离中桩最左边的数据;4每一行结尾几个单元格分别输入Auto CAD命令C、ucs、0,4、L;最后在EXCEL中拖动填充柄或左键双击K2+160每一个单元格填充柄,EXCEL就会进行自动填充K2+180-K2+240 中的所有数据;3 使用功能3.1道路横断图自动绘制因为Auto CAD默认EXCEL从左面单元格移至右面单元格是一个键入回车键Enter,这是Auto CAD能自动绘制横断面图形的一个关键;对于道路横断图自动绘制,我们首先启动Auto CAD并打开一张新图,在命令行中输入“line”划线命令,Auto CAD 在命令行中会提示“ _line指定第一点:”,然后打开EXCEL表格并复制整理完毕的所有测量数据,转到Auto CAD软件中,在命令行中“_line指定第一点:”后右键单击进行粘贴或者Ctrl+V,AutoCAD会自动绘制横断面图;一般绘制200-500个横断面图仅仅需要1-3s时间就可以自动完成,非常方便快捷;下面我们来通过绘制K2+160断面图实例来具体说明Auto CAD如何自动绘图的全过程:①在Auto CAD键入“line”执行画直线命令;②在AutoCAD命令行中使用“Ctrl+V”粘贴所有复制的EXCEL数据;③Auto CAD在画直线命令下会从EXCEL粘贴内容中得到“-12,691.42”的具体位置,Auto CAD就会在“-12,691.42”位置上展上第一点,同时Auto CAD又会自动得到一个回车命令因为在EXCEL中从“-12,691.42”单元格向右移至“0,691.65”单元格,Auto CAD又要执行“指定下一点”命令,那么会从粘贴内容中得到“0,691.65”数据,Auto CAD就会在“0,691.65”位置上绘制直线的第二点,Auto CAD又会自动要求输入下一点;在这个过程中将自动实现Auto CAD要求画线的点位数据和EXCEL所提供测量数据相对应;④自动绘制完毕后Auto CAD会得到下一个“C”命令即闭合,就完成一个横断面图的自动绘制;⑤同时Auto CAD在命令行又会自动得到“UCS”命令即要求建立—个新的坐标系,粘贴的内容是“0,4”,即新坐标原点移动至0,4位置,之所以在EXCEL中键入“UCS”命令是为了在图上错开每一个横断面图的位置,如果没有这个命令,所有断面的横断图就会重叠在一起,我们可以根据最大填挖高度确定断面图之间的间隔,如果最大填挖高度是6m,那么在EXCEL中的“0,4”就要用“0,9”比较适合;⑥Auto CAD会在命令行中又得到一个“L”命令,AutoCAD将重复执行2-5步骤,画线点位数据是EXCEL提供的相应K2+180断面数据;⑦Auto CAD又会自动绘制K2+180断面图,并依次循环完成所有横断面的绘制;⑧按照所选择打印图纸绘制图框,把绘制好的每一个横断面图复制到图框中,并标注桩号;3.2计算填挖方面积在Auto CAD中选择所有绘制好的横断面图单击建立的面域,对于全填或者是全挖的断面其断面横断面图是一个闭合非相交的图形,可以在命令行中执行“area”或者左键单击,根据提示选择“area”中的“对象O”选项,然后选择一个横断面在命令行中会显示该横断面的面积和周长;不能建立面域的断面是一种半填半挖的断面,对于这种情况,首先要分析每一个闭合图形是填方还是挖方,通过手工“捕捉”每一个闭合区域的角点即测量点,分别求出面积,最后相加求出该段面的填方面积和挖方面积;3.3打印出图常规绘制横断图比例尺是1:200或者1:100,开始绘图之前,需要决定一个单位代表多大距离,然后使用该惯例创建图形;对于横断面图形我们一般采用以m作为图形单位,根据图纸大小和比例尺,调整打印机选项中的“调整打印比例”项中图形单位的大小;4 结束语以上实例是笔者利用测量人员最常用的数据处理软件EXCEL和绘图软件Auto CAD发现的一种绘制道路横断面图的新方法;这个方法不需要测量人员对软件进行二次开发,仅利用EXCEL和Auto CAD各自的优势对数据进行处理;这个方法也有很大的借鉴性和扩展性,即可以利用道路数据、管沟数据、房屋数据等自动绘制道路纵断面图、绘制管沟横断面图和成批绘制地籍图等等;当然在重复性越高的绘图工作中此方法的快捷性和准确性会体现得更加明显;。
用EXCEL输入数据在CAD中计算工程量及生成断面图摘要:本文介绍一种比较简洁的断面输入方法和土方工程量相结合的方法。
关键词:EXCEL 数据AUTOCAD 工程量断面图水利工程的土方工程计量是项重要工作,其方法有很多,最原始的方法是用水准仪配合测绳测得原始断面数据,再把数据用米格纸标出来,形成断面图,然后数需要开挖(或回填)的部分的格数,并按照一定的比例折算成面积,该方法通俗易懂但教繁琐、计算结果误差大、工作效率低。
随着科技的的发展,现在越来越多的企业用GPS全球定位系统或全站仪测得原始地形图然后用自带的软件形成断面图并计算面积,方便快捷,效率高。
因测量数据由测量仪器存储,不同测量仪器软件不同,不同的使用者熟悉程度不同,从工程计量角度看不易复核、校对。
还有一种测量方式是用全站仪或水准仪配合测绳测得原始断面数据,测得断面数据后,进行断面输入,得出断面图与设计线进行比较,计算出工程量。
第三种方法是在日常施工质量控制和工程量计算的常用方法,该种方法需要在测量后在CAD上进行点坐标输入断面输入,点坐标输入需要一个一个点的坐标输入,工作量大而且需要一定的细致耐心,一旦输入出错不易发现,也不利于校核。
笔者在工作中摸索出一种简单的运用EXCEL工作表结合CAD就可以完成日常断面输入的工作,现结合一工程实例将此方法与大家探讨。
方法原理:基于EXCEL电子表格的合并、连接功能结合CAD多线段输入坐标原理。
具体使用方法:EXCEL电子表格的功能十分强大,其中有一种二维坐标和连接功能,用连接符号“&”将该数据默认为一个二维的坐标,使用此符号后就能将所需数据格数据连接在一起。
在EXCEL中数据输入完成后,在AUTOCAD中将所输入的数据用多线段方法粘贴到CAD中的断面网格中,自动生成了工程的断面图。
为了能确切的说明该方法,现用具体的数据输入来介绍一下。
背景简述:某工程为一河道拓宽工程,设计河底高程▽30.0m,宽20米,边坡1:3,干法施工。
利用Excel绘制横断面线的一种方法利用Excel绘制原始地表横断面线的一种方法摘要:本文主要讲解通过利用Excel配合外业测量所取得的数据(平面坐标和高程)的特点进行绘制横断面地表线的一种方法,这种方法灵活简便,强度小,效率高,特别适合现场横断面测量及复测设计院的原始地表线。
关键词:数据采集内业处理横断面绘制在复测设计院原始横断面线形测量中,尤其是在高差陡变频繁的地区,传统的测量方法(标杆皮尺法、水准仪法)使外业与内业工作繁琐且效率低下。
本文通过全站仪置镜于任意控制点测量平面和高程的特点,结合Excel办公软件,介绍一种进行内外业一体化的断面测量方法,这种方法具有灵活简便、劳动量小效率高的特点,特别适合高差变化大的地区。
何为横断面测量?:横断面测量是对线路横向方向剖面的地面起伏进行的测量工作。
是在线路上设计院所有提供的断面桩号横向桩位垂直于线路中线的水平方向上,分别测量中线两侧各变坡特征点至中线桩的水平距离和高差(坐标、高程),并据纵断面里程和横断面面积以计算出挖填的方量。
横断面测量介绍:1、标杆皮尺法:利用花杆直接测得平距和高差。
此法简便、易行,所以被经常采用,它适用于横向变化较多较大的地段,但由于测站较多,测量和积累误差较大。
2、水准仪法:此法适用于施测横断面较宽的平坦地区。
安置水准仪后,以中线桩地面高程点为后视,以中线桩两侧横断面方向的地形特征点为前视,标尺读数读至厘米。
用皮尺分别量出各特征点到中线桩的水平距离(也可用视距测量)。
高差由后视读数与前视读数求差得到。
3、全站仪法:3.1 安置全站仪于中桩上,全站仪定向与切线方向垂直。
量出至中桩地面的仪器高,直接测出各特征象限点与中桩间的平距和高差。
此法适用于一般地形,必须通视条件好。
测量记录:表中按路线前进方向分左侧和右侧,桩号从下往上记录,表中左侧和右侧记录平距和高差,以分数形式记录分子表示高差,分母表示平距,高差为正号表示上坡,负号表示下坡。
利用Excel在AutoCAD中批量绘制断面图的方法本文针对许多文章在这方面出断面图的问题,结合实际给出在这方面最为简化的绘图步骤与出图技巧。
在高速公路项目中,施工单位前期进场都会对原地面进行复测,测量人员要快速地用复测数据绘图并算出土方的填挖量,对项目组织相应的工作策划及部署至关重要。
这也就对测量人员提出了出图效率问题,本文以横断面为例进行说明。
1 数据获取现在施工单位都普及了全站仪,我们只需要将根据地貌特征点选取好断面来测量,在土方的数据量上来说是不会有很大的出入,目前我们大多使用的是CASIO和SHARP-E500计算器,我们最好编写的程序能用坐标计算出此点所对应的桩号、边距(顺路线前进方向左侧边距为负,右侧为正),只需要记录断面桩号、边距、高程就可以顺利出断面图了。
2 Excel上处理数据将现场测量数据录入Excel中,数据格式如下表一,其中D列的100,300,500的等差数组,是为了在CAD上能按断面里程从左至右依次画多个断面图。
使它们不会出现上一断面的右部与下一断面的左部相交。
在E3、F3中先分别输入E2、F2数据并回车后再点击E3、F3,表格亮显后按住右下角的“十”字拖动成了点位数据列。
表一3 绘制图形3.1 绘制路线标准图形绘制标准图形时按照1:1的比例进行绘制,这样在后面填写断面面积、填挖高度时直接将查询数据输入就完事。
根据纵曲线数据计算出K126+270、K126+290、K126+305断面的中桩高程为分别为690.000、690.800、691.400。
K126+270断面的标准图形根据点位坐标(100,690.000)在CAD 中按照路面横坡往两侧绘制路基线,然后在两侧将边坡线连接在路基的两边。
如果后面的断面与本断面也是相同的话,使用CAD中的Copy命令进行复制。
方法是在文本窗口中:选择所有线形,回车确认后在“指定基点或位移”时我们将基点选择在(100,690.000),对于后面的“指定位移的第二点或 <用第一点作位移>:”时输入(300,690.800)回车后继续输入(500,691.400)。
1 引言传统横断面测量方法有水准仪皮尺法、横断面仪法和经纬仪视距法等,简而言之就是根据地形的变化对与道路轴线方向相垂直的断面进行测量,其中直线段所测断面方向与道路中线方向垂直,而曲线路段与测点的切线方向垂直。
在对横断面测量以后,为计算道路工程土方量,我们紧接着就要绘制道路横断面图。
在实际工作中,横断面图的绘制通常是采用手工在米格纸上按照一定比例用卡规和复式比例尺按照横向是距离、纵向是高程刺点,用小钢笔连接刺点绘制闭合图形。
然后把每一个断面的横断面图分成若干个梯形用复式比例尺和卡规量出每一个梯形的上底、下底和高,计算出每一个梯形的面积,然后把所有的梯形面积相加才得到一个断面面积。
通常道路横断面施测要求每20m测一个断面。
在地形变化较大的位置要加测横断面,这样每1km道路至少要绘制50多个横断面图。
可见如果用传统的方法绘制一条50km的道路断面图工作量是非常巨大的,而且由于是手工绘制,修改起来很麻烦,在实际工作中返工的情况是经常发生的。
由此可见快速高效地绘制出道路横断面图是非常重要的。
笔者根据实际情况发现如果能对Auto CAD系统进行二次开发,运用AutoLISP语言和Visual LISP开发环境进行编程,创建Auto CAD的新命令或重新定义原有的标准命令,提供系统自动执行重复性的计算与绘图任务,此类问题就迎刃而解了,但这要求道路施工人员具备专业性很强的编程知识。
在绘制了大量的横断面图后,笔者总结出一个非常便捷的方法,这种方法不需要道路工程人员具备很强的编程知识,只要具备常规的Excel和Auto CAD知识,就可以自动、精确和快速绘制道路横断面图,并且此方法可以推广至重复性较强的绘图工作。
下面以一个实例进行详细说明。
2 对横断面数据的处理2.1确定边桩位置和高程倾斜地面高等级道路施工测量中的边桩定位一般用逐渐趋近法。
该方法无论采用经纬仪或全站仪都不能直接给出边桩位置,只能通过重复多次测量和计算,才能确定边桩的位置,这种方法的野外工作量较大。
1 引言传统横断面测量方法有水准仪皮尺法、横断面仪法和经纬仪视距法等,简而言之就是根据地形的变化对与道路轴线方向相垂直的断面进行测量,其中直线段所测断面方向与道路中线方向垂直,而曲线路段与测点的切线方向垂直。
在对横断面测量以后,为计算道路工程土方量,我们紧接着就要绘制道路横断面图。
在实际工作中,横断面图的绘制通常是采用手工在米格纸上按照一定比例用卡规和复式比例尺按照横向是距离、纵向是高程刺点,用小钢笔连接刺点绘制闭合图形。
然后把每一个断面的横断面图分成若干个梯形用复式比例尺和卡规量出每一个梯形的上底、下底和高,计算出每一个梯形的面积,然后把所有的梯形面积相加才得到一个断面面积。
通常道路横断面施测要求每20m测一个断面。
在地形变化较大的位置要加测横断面,这样每1km道路至少要绘制50多个横断面图。
可见如果用传统的方法绘制一条50km的道路断面图工作量是非常巨大的,而且由于是手工绘制,修改起来很麻烦,在实际工作中返工的情况是经常发生的。
由此可见快速高效地绘制出道路横断面图是非常重要的。
笔者根据实际情况发现如果能对Auto CAD系统进行二次开发,运用AutoLISP 语言和Visual LISP开发环境进行编程,创建Auto CAD的新命令或重新定义原有的标准命令,提供系统自动执行重复性的计算与绘图任务,此类问题就迎刃而解了,但这要求道路施工人员具备专业性很强的编程知识。
在绘制了大量的横断面图后,笔者总结出一个非常便捷的方法,这种方法不需要道路工程人员具备很强的编程知识,只要具备常规的Excel和Auto CAD知识,就可以自动、精确和快速绘制道路横断面图,并且此方法可以推广至重复性较强的绘图工作。
下面以一个实例进行详细说明。
2 对横断面数据的处理2.1确定边桩位置和高程倾斜地面高等级道路施工测量中的边桩定位一般用逐渐趋近法。
该方法无论采用经纬仪或全站仪都不能直接给出边桩位置,只能通过重复多次测量和计算,才能确定边桩的位置,这种方法的野外工作量较大。
利用EXCEL坐标在CAD中批量绘制断面图的方法我在学习CAD的过程中,在网上找了很多资料,终于找到了很有效的批量绘制断面图的方法,现在用一个实例来介绍给跟我一样的初学者。
(之前上传了一个一模一样的,但是文档格式没做好,在百度文库中又无法修改,只好重新上传一个修改后的。
)先举例介绍一个EXCEL函数:=IF(OR(C5=FALSE,B5=FALSE,A5=FALSE),"","_donut 0 0.5"&ROUND(C2,3)&","&ROUND(B2,3)& " "&" -text j ML"&ROUND((C2+2),3)&","&ROUND(B2,3)&" 2.0 0 "& A2)(要注意这个函数中的空格)OR(C2=FALSE,B2=FALSE,A2=FALSE)函数:C2,B2,A2三个值中只要任意一个是FALSE,则OR输出结果为TRUE。
IF(logical_test,value_true,value_false)函数:第一个参数是判断式,如果判断为真值(TRUE),则输出结果为value_true,如果判断为假值(FALSE),则输出结果为value_false.例如:if(3>2,4,5),因为判断式3>2成立,所以if(3>2,4,5)的输出结果为4,同理if(3>20,4,5),因为判断式3>20不成立,所以if(3>2,4,5)的输出结果为5.ROUND(number,number_digits)函数:取小数点后面的位数。
例如:ROUND(123.45678,3):取小数点后面三位,所以输出结果是:123.457(四舍五入)ROUND(123.45678,2):取小数点后面两位,所以输出结果是:123.46(四舍五入)&这个符号是合并字符串,例如:"aa" & "bb"则输出结果是:aabb字符串必须用引号括起来。
网上泛滥的快捷键对你学CAD是毫无用处的,甚至是累赘,实际上CAD常用的快捷键命令不多。
要想用cad快速制图的话,快捷键还是自定义为上,把所有常用命令都改在左手键盘,如CO改成C;C画园被重复,改成CC,更改的快捷键需要易记,最好与原来的命令相关联,如CC是CIRCLE,单词里面有两个C,分别是重音所在的地方。
以下是CAD常用快捷键命令:
C copy 复制
Cr circle 圆
Ff offset 偏移
V move 移动
Rr mirror 镜像
Rt Rectangle 方形
X line 线
XX Pl line Pl线
VA match 刷图层
DB (ZDBZ)逐点标注
WA 绘制墙体
这些都是比较常用的,基本上够新手提高一定效率了,也比较好记。
------------------------------------------------------------------------------------------------------------------------------------
因为大部分使用CAD的朋友同时也是用SKETCHUP,这里再附上本人经常使用的SU单手快捷键,也是为了避免CAD混乱,故设置了差不多的快捷键:
V 移动
T 推拉
H 隐藏
Ctrl+H 取消隐藏
G 成组
Ctrl+G 创建组建
X 线
W 隐藏其它物体
D 标注
暂时想到就这些,基本也满足了画图的大部分功能了,效率绝对是成倍的提升,主要是提供了思路,同时也给出了一定的示范,希望能真的帮到各位解决这种基本的问题,把更多时间省下来学点其他有用的东西。