标题 | 基于VBA处理AutoCAD中断面数据的方法 |
范文 | 向垂规+王俊 摘要: 在南方CASS成图软件中,根据实测断面点的坐标、高程数据整理断面数据时,效率低下且容易漏点,为快速地获取断面数据,本文基于VBA在AutoCAD平台上加载断面数据处理程序,能快速生成断面数据文件,并保存在Excel中。 Abstract: In Southern CASS mapping software, when the data of the cross-section are sorted according to the measured point coordinates and elevation data, it is inefficient and easy to miss points. In order to get the cross-section data quickly, this article loads data processing program in AutoCAD platform based on VBA, and can quickly generate cross-section data files, and save in Excel. 关键词: 断面数据处理;VBA;CASS成图软件;断面图绘制 Key words: cross section data processing;VBA;CASS mapping software;section drawing 中图分类号:TP274 文献标识码:A 文章编号:1006-4311(2018)01-0197-03 0 引言 水利工程建设中,进行枢纽区大坝、隧洞、溢洪道等水工建筑物设计、输水渠道开挖、库区清淤时,为满足工程设计或施工需要,测绘人员要都要进行纵、横断面的测量。断面的测量成果是得到所测区域的纵、横断面图,断面图一般包括里程及高程两要素,绘图时以里程值为横坐标,高程值为纵坐标按比例绘制,工程技术人员可根據断面图进行工程设计、方量计算及造价估算。 现阶段,通常利用全站仪或RTK技术获取断面点的坐标、高程数据,在南方CASS等成图软件中完成断面图的绘制。在南方CASS成图软件中,提供了四种断面图的绘制方法。一是根据已知坐标生成断面图,二是根据等高线生成断面图,三是根据三角网生成断面图,四是根据里程文件生成断面图[1]。这四种方法除根据里程文件外,其它的三种方法都是由图面按里程内插高程点,而在水利工程断面测量时,一般都要实测断面点的三维数据,且断面成果整理及资料提交是基于实测断面数据[2],即先整理断面里程文件再绘制断面图。在南方CASS成图软件中根据实测断面点的坐标、高程数据整理断面数据效率低下且容易漏点,不好加点。为快速地获取断面数据,本文基于VBA[3,4]在AutoCAD平台上加载断面数据处理程序,能快速生成断面数据文件,并保存在Excel中。 1 程序编写 1.1 程序编写思路 利用RTK或全站仪进行断面测量时,可得到断面线特征点的点位坐标和高程数据。整理断面数据时,由设定的断面线、断面方向及零起点,在南方CASS成图软件中可根据所展高程点进行断面数据处理和检查,可以直观地生成绘制断面图所需的里程、高程文件。对测量数据在南方CASS成图软件中展点后,测量点位可能在设计线的两边或设计线上,获取断面数据时,程序能判别测量点位离设计断面线的偏离距是否满足允许限差要求,如超出限差要求,该断面点的高程值在Excel中显示为红色,如不超出限差要求,则该断面点的高程值在Excel中显示为黑色。如图1所示,a,b为实测高程点,a′,b′为a,b在设计断面线上的垂足点位,设计断面线为直线A,实测点连成的线为折线B,a点的偏离距为S,按照内插原理,偏离距S在允许限差范围内,可以用垂足点a′代替实测点a,其高程不变,即进行断面整理时,a,b两断面点的间距取La′b′,高程取实测点位高程Ha,Hb。 1.2 程序编写步骤 ①在AUTOCAD中打开VBA管理器,创建一个新的工程。进入VBA开发环境,在“工程资源管理器”中创建对Excel对象库的引用,调用Excel中的对象,源代码如下: Public excel_App As Excel.Application Public excel_Book As Excel.Workbook Public excel_sheet As Excel.Worksheet Public Sub linkexcel() '引用EXCEL On Error Resume Next Set excel_App = GetObject(, "excel.application") If Err Then Err.Clear Set excel_App = CreateObject("excel.application") If Err Then Err.Clear MsgBox "检查EXCEL" Exit Sub End If End If Set excel_Book = excel_App.Workbooks.Add Set excel_sheet = excel_Book.Worksheets("sheet1") excel_App.WindowState = xlMinimized End Sub ②声明变量。在编辑器中定义各种本地变量Dim,定义断面数据在Excel中输出时各列的值,定义不同成图比例尺下的断面点相对断面线的允许偏离值,源代码如下: Public Sub hdm() Dim qd As Variant '定义起始点坐标变量 Dim zd As Variant '定义终点坐标变量 Dim pp As Variant '定义获取点坐标变量 Dim h As Variant '定义获取点高程变量 Dim s As Single '定义累距变量 Dim l As Single '定义偏离距变量 Dim str As String '定义输入高程变量 Dim str1 As Variant '定义输入累距和高程变量 Dim str3 As String '定义成图比例尺变量 Dim maxplj As String '定义允许最大偏离距变量 Dim i, j As Integer '定义excel单元格的行列号变量 Dim Lay As AcadLayer '定义图层变量 i = 2: j = 2 Call linkexcel excel_App.DisplayAlerts = True excel_sheet.Cells(1, 1) = "桩号" excel_sheet.Cells(1, 2) = "累距" excel_sheet.Cells(1, 3) = "高程" On Error Resume Next Set Lay = ThisDrawing.Layers.Add("断面标记") '新建标记图层 Lay.LayerOn = True Lay.color = 2 ThisDrawing.ActiveLayer = Lay str3 = ThisDrawing.Utility.GetString(False, "断面成图比例尺为为1:") '输入成图比例尺 If str3 >= 200 And str3 <= 1000 Then '计算允许偏离距 maxplj = (5 * str3) / 1000 ElseIf str3 >= 2000 And str3 <= 5000 Then maxplj = (3 * str3) / 1000 End If ③编写循环语句提取CASS展点图中的坐标、高程值,在Excel中生成断面数据。主要运行步骤为:1)选择断面起点、终点,定义断面方向。2)输入偏距值,在选点时如偏距值大于设定值,则在表中显示为红色,提示超限。3)选取断面高程点或加点时输入高程点,输入断面桩号。在Excel中生成断面数据,并循环进行下一点的操作。4)该条断面完成后,输入“N”进行下一条断面数据的采集或输入“E”结束断面数据的采集,结束断面数据采集时,提示“及时保存数据”。其源代码省略。 1.3 程序的操作 ①程序加载。先将程序文件acad.dvb导入CAD中的support文件夹中,再在CASS中找到system文件夹,打开acad.rx,加写“acvba”,这时打开南方CASS成图软件即可加载。 ②获取断面数据。先打开南方CASS7.0成图软件,完成断面测量数据的展点及设计断面线的绘制。再在菜单栏激活“获取断面数据”菜单,然后根据状态栏的提示,用鼠标点击处理断面线的断面起点位置及终点方向。用鼠标选擇断面线上的高程点位(点击后的高程点位用圆圈加以标记),获得该点在设计断面线上的断面里程及高程数据,并保存在Excel里,如图2。 在断面数据获取过程中,可增加断面上未测地形特征点(如增加量取的坎脚点),在第一条断面处理完成后,可选择接着处理第二条断面(输入命令“N”)或选择退出程序(输入命令“E”)。在断面数据处理完成后,输入命令“E”结束时,CASS对话框提示“断面数据已形成,请及时保存”。如图3。 2 结束语 利用VBA编写的断面数据处理程序,该程序可以加载在CASS及AutoCAD菜单命令下,利用该程序进行纵断面和横断面数据处理,能快速获取绘制断面图所需的里程、高程数据文件,结合CASS展点图及现场草图能方便的进行断面数据的检查。处理断面数据时,可进行人机交互式数据输入,具有速度快、效率高且不易出错等特点,生成的断面数据形成Excel文档及文本文档,便于测量人员、设计人员使用及归档保存。 参考文献: [1]CASS7.0标准教程[R].广州:南方测绘仪器有限公司,2007. [2]SL52-2015.水利水电工程施工测量规范[S].北京:中国水利水电出版社,2015. [3]罗朝盛.Visual Basic 6.0程序设计教程[M]. 北京:人民邮电出版社,2002. [4]张强,刘飚,等.Excel2007与VBA编程从入门到精通 [M]. 北京:电子工业出版社,2008. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。