APP下载

Python自动办公技术在隧道监控设计中的应用

2022-06-21王嗣策

机电信息 2022年12期

摘 要:隧道监控系统是高速公路机电系统的组成之一,其设计的主要工作是外场设备布置图及一览表的编制。在传统的应用AutoCAD绘图设计的基础上,对Python自动化办公技术进行了研究,设计出了用于生成监控外场设备布置图及一览表的脚本程序,改良了隧道监控系统工程设计的流程,在隧道监控设计工作的实际应用中,提高效率的同时,还避免了一些人工绘图操作容易出现的错误。

关键词:自动化办公技术;隧道监控系统;高速公路机电系统;AutoCAD;Python

中图分类号:U495    文献标志码:A    文章编号:1671-0797(2022)12-0005-04

DOI:10.19514/j.cnki.cn32-1628/tm.2022.12.002

0    引言

随着“建设交通强国”重大战略决策的提出,我国的公路建设迅速发展,包括监控系统在内的交通工程沿线机电设施也取得了日新月异的进步,从传统的单一视频监视发展为多种传感技术相配合的智能化监控系统。随着以人为本理念的深入和指挥调度需求的提升,外场机电设备的种类不断增加,拓宽了监控的维度,也有针对性地提高了外场机电设备的布设密度,满足了各等级公路服务水平的要求。与此同时,设计行业目前普遍应用的计算机辅助设计绘图方式,在不断增长的设计工程量面前逐渐显得力不从心,将计算机自动化办公技术应用于设计绘图将是解决问题的有效方法。本文以隧道监控系统设计的相关作业为对象,研究并得出了一套基于Python的电子版图纸自动绘制的解决方法。

1    需求分析

隧道是高速公路的重点监控对象之一,特殊的行车环境使隧道监控系统具有机电设备种类多、布设间距小的特点,如中、长隧道内每不超过150 m就需要布设一台摄像机。此外,隧道内可变信息情报板、亮度检测器、风速风向检测器、一氧化碳与能见度检测器、车道指示器、紧急电话以及各类电光标志等都在隧道监控系统的设计范围内。

因为隧道内环境较为单一和封闭,无其他需要特殊监控的路段,通常是每个设备按一定的间距逐个拟定其桩号,所以隧道监控在布设点位上具有高度的重复性与规律性,布设的工作量与隧道长度成正比。

监控外场设备布置图及一览表的来源与组成如图1所示,根据经验,仅照着监控外场设备一览表画图的这一环节,每布设1 km长度的隧道需要花费约1 h的时间,且随着隧道长度的增加,工作量将呈线性增长。而与绘图相比,一览表的编制也不逞多让,设备不同其布设间隔大多不同,并且需要尽量避免出现桩号重复的设备,以便为其配电预留硐室及横埋管道提供一定的空间。因此,实现这部分设计的自动化是十分必要的。此外,组成一览表和布置图的设备编号、桩号信息的拟定和排列均服从布设方案中制定的规则,并且与隧道基本信息相互关联,严密的逻辑和重复操作由计算机来取代人工执行理论上是可行的。

2    软件架构与技术的选取

2.1    软件的总体架构

根据前文的需求描述划分出软件输入、输出与总体的功能模块,如图2所示。通过读取Excel表格,获取隧道信息与布设规则,实现各设备桩号的计算与校验,以Excel格式输出布设一览表;同时按图纸比例对其编号、桩号、位置信息进行绘图,并写入AutoCAD软件支持的DWG格式文件中。

2.2    技术的选取

AutoCAD作为目前工程设计工作应用最广的绘图软件,提供了多种接口以便进行二次开发,有以下几种技术路线可供选择:

(1)AutoLISP:它是嵌入在AutoCAD中的一种编程语言,可以在AutoCAD軟件自带的VisualLISP编辑器中进行相关应用程序的设计[1],其不仅拥有一般高级程序设计语言的基本框架及功能,而且拥有较为强大的图形处理能力[2]。许多工程设计中应用的插件如数条多段线求和、批量打印等大多是由其实现的。

(2)VBA:它是一种标准宏语言,具备面向对象的程序开发理念与方法。在传统的宏语言VB的基础上,改进了对AutoCAD、Office等应用程序的接口支持,使对AutoCAD、Excel内部信息的调用更为方便,实现了在这两种应用间的交互式开发[3]。

(3)Python:它是一种具有解释性、互动性,面向对象的高级程序设计语言,对格式的限制和偏向自然语言的语法使其兼具了严谨和易读的特点。Python语言易于扩展,可以导入相应的库模块以实现所需功能,对于AutoCAD、Excel等常见应用均有对应的库模块供使用者免费下载安装并进行调用,因此在AutoCAD软件的二次开发上,Python语言具备易于上手、简洁、高效的优势[4]。

综上所述,本文采用三者中扩展性较强且支持多个应用程序自动化办公的Python语言进行开发设计。因为本文自动绘图的实现涉及对Excel文件、AutoCAD软件的读写访问等相关操作,需要引用Python语言的XLRD、XLWT和PYAUTOCAD库来实现读取表格自动绘图的相关功能。引用的库模块及用途如图3所示。

3    功能实现

3.1    信息输入

除隧道地理位置及长度等信息因隧道而异之外,不同项目需要布置设备的种类、位置亦不相同。为使软件适用于不同类型的隧道,也为便于根据不同项目的特点更改布设原则,可以采用业务数据与程序逻辑剥离的数据驱动方式[5],将隧道基本信息与布设方案分别单独写入表格而非程序中,通过读取文件中隧道的基本信息及各设备布设间距,与隧道洞口、人、车行横洞相对距离等数据,向程序中各变量赋值并执行桩号的计算与校验指令。CF17BD0E-6054-4481-9117-7A94CABA9EEB

如表1所示,隧道的基本信息包括隧道左右洞的出入口、人行横洞、车行横洞的数量及桩号,上述路段同时也是监控的重点对象,很多监控设备如云台摄像机、车道指示器等都与其桩号相关联。所以在布设方案信息表中除了需要填写设备的布设间距之外,还要对设备在出入口、横通道处的布设情况进行注明,如表2所示。

3.2    桩号计算

设备桩号的计算主要是根据输入的隧道基本信息和布设方案,在隧道长度范围内按布设间距通过累加的方式计算;对于仅在出入口、车行横洞或者人行横洞处设置的设备,则在上述路段的桩号的基础上与设备到其的位移求和计算。对于每一个设备都要根据其布设方案重复上述计算过程。

由于隧道内监控设备数量较多,且不同设备的布设间距、关联的监控对象、与关联的监控对象之间的位移不同,因此可能存在不同设备设置在同一桩号的情况,结果可能导致在与隧道主体专业提预留预埋管道及硐室的时候出现缺漏等问题。因此,需要执行遍历桩号查重的操作,并将重复的桩号进行颜色标记,最终将得出的所有设备桩号以表格的形式输出,由人工对布设表中的重复桩号进行调整。桩号计算过程具体如图4所示。

3.3    AutoCAD自动绘图

自动绘图模块的工作流程在图5中已经有了总体的描述,因此接下来本文主要对实际桩号与绘图坐标的转化和操控AutoCAD这两部分主要内容进行补充说明。

(1)绘图坐标的转化:由于最终打印出版的图纸通常是A3尺寸,需要根据桩号将设备在隧道内的相对位置转化为绘图坐标,对于长隧道的外场设备布置图,需要打印数张图纸且要为每张图的图框预留一定空间,因此在计算绘图坐标的过程中,除了按固定比例缩小到适合A3图纸之外,还需要判断当前设备点位所在的图纸的页数,并加上之前图纸累计的间隙之和,实现桩号到图纸中设备布设位置的转化。

(2)操控AutoCAD:调用Python语言的PYAUTOCAD库提供的基本绘图指令,分别执行连接、创建AutoCAD图形文件、创建图层、添加表示隧道左右洞长度的线段、添加表示设备在隧道内相对位置的线段、添加表示设备桩号及编号信息的文本,按照绘图坐标的大小顺序,将不同类型的设备的编号及桩号标注在图纸上。关于设备图例的添加,PYAUTOCAD库提供了一种将外部CAD图形文件以块参照的形式复制到当前图形文件的方法,因此可将布设图中需要用到的不同设备的图例单独保存成一个个独立的图形文件,组成一个图例库,读表执行程序时按设备选取对应图例同桩号、名称信息一并插入即可实现。最后重命名、保存图形文件,完成绘图。

4    软件的实际应用与验证

以1 400 m左右长度的中隧道为例,将隧道基本信息和布设方案编写成表格之后,运行程序生成布设一览表,其格式及部分内容如表3所示。

程序输出的AutoCAD图形文件的一段内容如图6所示,图中横轴代表此隧道右洞的路侧边线,在刻线所指示的位置需要设置相应的隧道监控设备,刻线两侧的文本即设备的名称编号和桩号信息,刻线端头为表示设备类型的各种图例,以便于识别。图中各设备的种类、位置均一目了然,能够满足设计出图的要求。

5    结语

综上所述,通过本文设计的软件可以实现自动绘图和隧道监控外场设备一览表的自动生成,极大地节省了设计人员的时间,减少了工作量,且能够避免如遗漏、重复等许多人为差错,其在拥有数条中长隧道的大型项目中应用成效尤为明显。

[参考文献]

[1] 申健康,吴育红.AutoLISP在公路施工测量中的应用[J].北京测绘,2016(3):140-143.

[2] 王小娟,杨玲玲.AutoCAD二次开发工具及技术应用[J].山西煤炭管理干部学院学报,2010,23(1):88-89.

[3] 敖翔.基于AutoCAD_VBA的无缝线路一体化设计系统开发[J].铁道标准设计,2016,60(1):19-23.

[4] HETLAND M L.Python基础教程[M].3版.袁国忠,译.北京:人民邮电出版社,2018.

[5] 王君,朱美正,李欣.关键字驱动测试框架的研究与实现[J].計算机工程与设计,2010,31(10):2246-2248.

收稿日期:2022-03-30

作者简介:王嗣策(1994—),男,辽宁沈阳人,技术员,从事高速公路监控系统设计工作。CF17BD0E-6054-4481-9117-7A94CABA9EEB