收藏 分销(赏)

基于VBA的牵引计算用坡度坡长自动提取.pdf

上传人:自信****多点 文档编号:2102884 上传时间:2024-05-16 格式:PDF 页数:4 大小:1.50MB
下载 相关 举报
基于VBA的牵引计算用坡度坡长自动提取.pdf_第1页
第1页 / 共4页
基于VBA的牵引计算用坡度坡长自动提取.pdf_第2页
第2页 / 共4页
基于VBA的牵引计算用坡度坡长自动提取.pdf_第3页
第3页 / 共4页
基于VBA的牵引计算用坡度坡长自动提取.pdf_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、SCIENCE&TECHNOLOGY INFORMATION科技资讯 2023 NO.20 信 息 与 智 能科技资讯SCIENCE&TECHNOLOGY INFORMATION基于VBA的牵引计算用坡度坡长自动提取刘超 汤人杰 尹竹莹(中车株洲电力机车有限公司 湖南株洲 412001)摘要:为自动从CAD图纸中提取线路的坡度坡长数据,该文编写了VBA程序。首先人工输入起点站和终点站名称、坡度坡长和标高所在图层名称,通过程序读取设计坡度和设计标高所在图层的数据,将结果导出到Excel;然后在Excel中对数据进行排序,通过设计坡度的坐标分离环线数据,通过设计坡度和设计标高之间的距离分离上行线数

2、据和下行线,最后通过设计标高得到坡度值的正负号。通过实例验证了程序的有效性和快速性。关键词:CAD VBA 坡度坡长 自动提取 牵引计算中图分类号:U239.5文献标识码:A 文章编号:1672-3791(2023)20-0013-04Automatic Extraction of the Slope and Slope Length for Traction Calculation Based on VBALIU Chao TANG Renjie YIN Zhuying(CRRC Zhuzhou Locomotive Co.,Ltd.,Zhuzhou,Hunan Province,41200

3、1 China)Abstract:This paper writes a VBA program to automatically extract the slope and slope length of the line from the CAD drawing.Firstly,the names of the starting and ending stations and the name of the layer where the slope,slope length and elevation are located are entered manually,the data o

4、f the layer where the designed slope and designed elevation are located is read through the program,and the result is exported to Excel.Then,the data is sorted in Excel,loop data is separated by the coordinates of the designed slope,and upper line data and lower line data is separated by the distanc

5、e between the designed slope and the designed elevation.Finally,the positive and negative signs of slope values are determined by the designed elevation.The effectiveness and rapidity of the program are verified by examples.Key Words:CAD VBA;Slope and slope length;Automatic extraction;Traction calcu

6、lation轨道交通车辆牵引计算需要使用线路的坡度和坡长数据。传统的提取方式为人工读取CAD文件,将数据逐一录入到Excel中。在CAD文件中,与整条线路相比,坡度坡长数据的字体不大;相邻数据间隔较大。若放大图纸,一次读取的数据较少,将大幅增加录入时间;若不放大图纸,某些数字容易读错,将直接影响牵引计算的精度。基于VBA的CAD二次开发功能,可以使用程序批量处理大量文档数据,已经用于软件及插件开发1-2、图纸绘制及修改3-8、数据提取9-11等。为自动提取坡度坡长数据,本文编写了 VBA 程序。读取设计坡度和设计标高所在图层的数据,将其导出到Excel,排序后确定上行线、下行线和环线数据,通过

7、设计标高得到坡度值的正负号。实际应用结果验证了程序的有效性和可行性。1 原始数据获取1.1 获取设计坡度、设计标高的图层名称通过InputBox()得到手动输入的设计坡度、设计标高图层名称。一张图纸中可能同时存在上行线、下行线、环线,不同线路设计坡度、设计标高所在图层的名称可能不DOI:10.16661/ki.1672-3791.2303-5042-6983作者简介:刘超(1994),男,硕士,助理工程师,研究方向为城轨车辆电气设计及工艺。13SCIENCE&TECHNOLOGY INFORMATION科技资讯信 息 与 智 能 2023 NO.20 SCIENCE&TECHNOLOGY IN

8、FORMATION科技资讯同,故需要判定是否包含多个图层,若存在多个图层,分离出每个图层名称和图层总数。1.2 读取设计坡度、设计标高所在图层的数据对于设计标高图层的数据,若图层名称和设计标高图层名称相同、类型为文本,则将字符串、坐标保存到数组中,通过计数器变量实时更新总数。设计坡度图层中除了坡度和坡长以外,还存在旋转了90 的数据,如图1所示,故除了图层名称和类型需满足要求外,还需限定旋转角度为0。设计坡度图层中,每一段路程的起点和终点有一条竖线,如图1所示,读取竖线的坐标,用于匹配坡度坡长数据、更新起点站和终点站的坡长。本文使用的是中望CAD,文本、线条类型分别为ZcadText和Zcad

9、Line。不同类型的对象的属性不完全相同,故在获取数据时,满足类型相同后才判断其他条件。1.3 读取起点站、终点站、设计坡度、设计标高的坐标一般图纸中起点站左边、终点站右边均存在少量线路数据,故需要获取起点站、终点站的坐标,用于标记有用数据。每条线路最左侧会有注释,如图1中的“设计坡度”和“设计标高”。获取“设计坡度”和“设计标高”的坐标,用于分离每条线路的数据。图纸中文字可能存在空格,如“设 计 标 高”,故对于文本类型的对象,需要对每个字符进行匹配,同时满足时将坐标存储于数组中。2 竖线数据处理若图纸只有一条线路,默认为上行线;若包含环线且终点站在环线上,默认环线位于上行线或下行线的右侧。

10、2.1 创建Excel文件并写入数据CAD VBA读取数据的原则是根据数据放置的先后顺序,则读取的数据不一定按照横坐标从小到大的顺序排列,本文借助Excel对其进行排序。通过CAD VBA新建Excel文件,新增3个空白工作簿,分别保存坡度坡长、标高、竖线的数据。写入数据时,先将保存在数组中的变量赋值给Variant变量,再赋值给Excel,将无用的数据清除。2.2 分离竖线的上行线和下行线数据将竖线的横坐标按照升序进行排序,调整竖线的起点和终点,始终满足起点的纵坐标小于终点的纵坐标。图2为每条线路的标注,一般设计标高和设计坡度不在两端,则两条线路之间的距离大于竖线的长度。此外,同一条线路的竖

11、线的长度不一定相同,可能存在细微偏差,如图3所示。记横坐标最小的竖线V0的起点坐标和终点坐标分别为(xst,yst)和(xed,yed),长度为l0。以V0为基准,将yyed+l0的竖线标记为上行线,此时上行线标志位flag_sxx=1;yyst-l0的竖线标记为下行线,下行线标志位flag_xxx=1;yed-l0yyst+l0的竖线标记为中线,如图3所示。(1)若 flag_sxx=1 且 flag_xxx=1,则同时存在上行线、下行线和环线,此时不更新标记。(2)若flag_sxx=1且flag_xxx=0,则存在一条线路在上方,默认纵坐标大的线路为上行线,将中线改为下行线。(3)除上述

12、情况外,将中线改为上行线。更新标记后,进行以下处理。(1)按照标记升序的原则进行排序。(2)对于相邻、横坐标之差小于1的竖线,删除其中一条。(3)确定上行线和下行线的分界点和分界线,见图4。分界线纵坐标表达式为ysx=(ysxx0+yxxx0)/2,ysxx0、yxxx0分别为上行线第一条竖线起点纵坐标和下行线第一条竖线终点纵坐标。若图纸中只有一条线路,则ysx=0。图1 图纸示例图2 图纸标注示例l0(xst,yst)(xed,yed)上行线区域下行线区域中线区域l0l0 图3 上行线和下行线划分14SCIENCE&TECHNOLOGY INFORMATION科技资讯 2023 NO.20

13、信 息 与 智 能科技资讯SCIENCE&TECHNOLOGY INFORMATION通过分界点确定下行线数据个数,可能存在个别上行线竖线偏离其他竖线,被判定为下行线的情况,故假定下行线数据个数大于3个时才计算分界线。2.3 分离竖线中的环线数据若存在环线,环线数据位于上行线或下行线数据中,则存在一个“设计坡度”的横坐标xzy满足(xzy-xxx0)(xzy-xxxk)0,其中xxx0、xxxk分别为上行线或下行线的起点和终点的横坐标,设定该横坐标xzy为环线的分界线。将上行线和下行线中横坐标大于xzy的竖线标记为环线。3 标高数据处理3.1 分离上行线、下行线和环线数据通过ysx将标高数据标

14、记为上行线和下行线,然后按照标记升序进行排序,确定上行线和下行线的分界点;通过xzy标记标高环线数据。相邻标高数据,若满足标高值、横坐标和纵坐标之差的绝对值小于1,则删除其中一个标高数据。图5是环线分界线图。3.2 删除偏离竖线较远的标高数据可能存在位于两条竖线之间的标高值,如图6所示。一条竖线对应一个标高数据,对于第k个标高数据,从第k-n条竖线开始判断,若标高的横坐标和竖线的横坐标之差的绝对值大于10,清除该行的标高数据。n为第k个标高数据之前被清空数据的标高的总数,每清空一个标高数据时通过n=n+1更新n值。所有的标高数据均核对后,将清空形成的空白行删除。4 坡度坡长数据处理4.1 分离

15、上行线、下行线和环线数据和标高数据的处理方式相同,通过ysx和xzy标记上行线、下行线和环线。排序后确定上行线和下行线的分界点。4.2 匹配标高和坡度坡长将坡度坡长数据放到左侧最近的标高数据所在行,以图6为例,将坡度值-2、坡长值430及坐标放到标高11.64所在行。由于同一组坡度坡长未合并到同一行,对于第n个坡度坡长,从第Roundup(n/2)个标高数据开始遍历,当坡度或坡长的横坐标介于第m个和m+1个标高的横坐标之间时,将第n个坡度坡长放在第m个标高数据所在行,满足先坡度后坡长;然后通过标高值确定坡度的正负号,若第m个标高值大于第m+1个标高值,则坡度符号为正,否则为负。5 更新坡度坡长

16、数据5.1 确定起点站和终点站位置只考虑两种站点标注方式,第一种如图7所示,每个站点标注了相邻站点的名称。第二种只标注每个站点的名称。站点个数为奇数时,以中间站为真实站点;为偶数个时,对于起点站,以横坐标较小的为真实站点;对于终点站,以横坐标较大的为真实站点。5.2 更新起点站和终点站坡长如图8所示,以起点站为例,起点站到右侧竖线的距离表达式为d=p(xn+1-xqdz)/(xn+1-xn),p为坡度值,(xsxx0,ysxx0)(xxxx0,yxxx0)上行线下行线分界线ysx 图4 上行线和下行线分界线设计标高(xsxxn,ysxxn)(xxxxn,yxxxn)上行线下行线分界线ysx(x

17、hx0,yhx0)xzy环线 图5 环线分界线图6 冗余的标高数据站点2站点1站点3 图7 站点标注41.3852.782.000570.000起点站xnxn+1xqdz 图8 起点站路段15SCIENCE&TECHNOLOGY INFORMATION科技资讯信 息 与 智 能 2023 NO.20 SCIENCE&TECHNOLOGY INFORMATION科技资讯xqdz、xn、xn+1分别为起点站、第n条竖线、第n+1条竖线的横坐标。对于起点站,直接更新第n个标高所在行的坡长值;对于终点站,在第n个和第n+1个标高之间插入空白行,此时空白行为第n+1个数据,将第n行赋给第n+1行,更新第

18、n个和第n+1个坡长值。5.3 将环线标记为上行线和下行线若存在环线,默认终点站左侧的数据属于上行线,右侧数据属于下行线。按照上行线/下行线、环线进行排序,排序后下行线数据顺序为先环线再主线,按照横坐标从大到小的顺序对主线进行排序。保存提取的数据默认保存在D盘根目录。6 实例测试以某项目为例,无环线,上行线和下行线分别单独放在一张图纸中。程序运行后,弹出4个对话框,分别要求手动输入坡度图层、标高图层、起点站名称、终点站名称,如图9所示。4个对话框均输入后,程序自动运行,输出的部分结果如图10所示,原始图纸如图11所示。坡度值、坡长值满足要求,坡度的正负号符合要求。该图纸中存在个别坡度坡长数据的

19、图层为0,如图12所示,程序读取的结果如图13所示。该路段不在两端,坡度坡长数据为空,标高不为空,设计人员可以通过标高值快速找到异常数据的位置。以包含环线的项目的图纸进行测试,部分结果如图14所示。上行线最后一条竖线没有对应的坡度坡长值,和实际相符。由上述结果可知,程序提取结果满足要求。7 结语为了自动从CAD图纸中提取线路的坡度坡长数据,编写了VBA程序,只需人工输入起点站和终点站名称、坡度坡长和标高所在图层,操作简单。测试结果表明:由程序提取的坡度坡长的准确性满足要求;与传统方法相比,大幅减少了数据录入的时间。参考文献1 刘克福,牟有忠.VBA与AutoCAD的二次开发J.科技资讯,200

20、7(15):87-88.2 邵彦锟,高志良.基于VBA模式开发的参数化绘图软件J.水泥技术,2021(3):72-75,79.3 顾张仕海,李新华,周泽军.帷幕灌浆频率曲线图自动成图技术分析与研究J.水利技术监督,2022(8):61-65.4 樊国刚,邢传.基于VBA的CAD二次开发绘制临时征占地布置图J.水利技术监督,2020(4):54-56,250.5 王叶.线性建筑物的桩号自动生成方法及其应用J.水利规划与设计,2020(3):163-166.6 赵俊.利用VBA在AUTOCAD中自动绘制变形监测图J.科技资讯,2012(23):40,42.7 张道法,伏杰.基于AutoCAD VB

21、A的钢筋材料表自动生成方法及其应用J.人民珠江,2018,39(3):38-41.8 王保国.基于AutoCAD的数字线划图重叠要素去除的设计与实现J.城市勘测,2018,165(4):130-132.9 成丽婷.基于Auto CAD VBA获取河长的研究J.山西水利科技,2014(2):52-54.10 崔永胜,程新平,袁鹏.利用VBA技术提取CAD中分离式标注水深数据J.江西测绘,2013(3):5-7.11 欧阳平.基于VBA的道路横断面高程点提取方法研究J.城市勘测,2018(1):145-147.图9 输入对话框图10 提取的部分数据图11 原始图纸图12 坡度坡长异常数据图13 坡度坡长异常数据提取结果图14 环线提取结果16

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服