Auxiliary design platform of layout plan of signal equipment for metro depot
-
摘要: 针对现行地铁车辆段信号设备平面布置图复杂度高、采用通用AutoCAD软件人工绘制效率低下问题,构建以自定义实体为单位绘制平面布置图的辅助设计平台;利用ObjectARX创建自定义实体对AutoCAD进行二次开发;设计人机交互界面和外部文件输入处理算法,实现信号设备平面布置图的人机交互辅助绘制与自动绘制;设计特定数据处理算法和对外接口,完成自定义实体数据提取,生成站场及联锁数据并通过命令输出到Excel,实现数据与联锁软件对接。对某复杂车辆段信号平面布置图的设计结果表明,辅助设计平台能够在2 s的时间内快速实现该复杂车辆段信号平面布置图的一键自动生成,绘制准确无误,提升了车辆段信号平面布置图的设计质量与效率。
-
关键词:
- 信号设备;平面布置图 /
- 辅助设计平台 /
- ObjectARX /
- 二次开发 /
- 联锁数据
Abstract: Aiming at the high complexity of the current layout plan of signal equipment in metro depot and the low efficiency of manual drawing with general AutoCAD, this paper constructed an auxiliary platform for drawing with user-defined entities as the unit. To solve the problem that the auxiliary platform can not share station data and interlocking data independently, the paper designed a specific data processing algorithm and external interface for it, used ObjectARX to create custom entities for secondary development of AutoCAD, designed human-computer interaction interface and external file input processing algorithm to implement human-computer interaction aided drawing and automatic drawing of layout plan of signal equipment, extended data output processing algorithm to complete the extraction of user-defined entity data, generated station yard and interlocking data, and outputted them to Excel through commands to implement the connection between data and interlocking software. The design results of the signal layout plan of a certain depot show that the platform can quickly generate the signal layout plan of this complex depot with one key in 2 seconds, and the drawing is accurate, which improves the design quality and efficiency of the signal layout plan of the depot. -
对轨道交通来说,车辆段是车辆停放、检修、运行及管理的中心,也是车辆安全运行的基本保障[1]。
车辆段信号设备平面布置图是能正确反映道岔直向位置、列车和调车信号机的布置情况及设置地点、轨道电路区段划分及股道运用情况的重要技术图纸,其图形复杂,内容繁多,例如,某车辆段总图中的道路由410条多段线组成,另含36组道岔及170条股道等[2]。通用AutoCAD软件仅提供基础的绘图命令,不适用于复杂图形、多元化图形的绘制。如果不进行二次开发,完成一项设计将耗费大量的时间,并且增加出现人为差错的可能,设计效率低下[3]。此外,车辆段信号设备平面布置图纸局部调整难度大、出图需求量大,迫切需要提高该图的绘制质量与效率。
目前,在国内铁路领域,利用ObjectARX开发软件包进行AutoCAD开发的应用较少,赵宜芳[4]基于ObjectARX完成了站场数据表的批量自动导入,站场表格数据的批量自动标注。本文基于ObjectARX创建自定义实体及其他开发功能,对AutoCAD进行二次开发[5],生成辅助设计平台,实现车辆段信号设备平面布置图的快速准确绘制,为车辆段信号设备平面布置图的设计提供新的途径,解决设计效率低下的问题。
1 平台总体架构
车辆段信号设备平面布置图辅助设计平台架构,按功能划分为信号设备自定义实体设计、信号平面布置图辅助绘制、数据交互3大模块,如图1所示。
1.1 信号设备自定义实体设计
ObjectARX 是针对AutoCAD平台上的二次开发而推出的一个开发软件包,它提供了以C++为基础的面向对象的开发环境及应用程序接口,能真正快速的访问AutoCAD图形数据库。本模块采用Microsoft Visual Studio 2017、ObjectARX对AutoCAD进行二次开发,使用C++语言的面向对象编程机制,进行信号机、道岔、道路及其他数10种自定义实体设计及属性设置,根据铁路工程制图标准对各信号设备的外观进行设计。
(1)信号机自定义实体包含11种平台自带的信号机和实时由用户指定灯位配列类型的信号机,全面满足不同厂商对信号机样式的需求,并能实现绘图中更改信号机朝向与高矮柱型等功能。
(2)道岔自定义实体覆盖单动道岔、双动道岔、交叉渡线[6],可实现绘图中灵活移动道岔各支,更改道岔分支末端绝缘节类型,在无绝缘节、普通绝缘节、超限绝缘节、尽头绝缘节间自由切换,更改道岔开口方向与尖轨朝向等功能。
(3)道路自定义实体包括直线型和曲线型,绘图中可以灵活切换两端绝缘节类型。以上实体均能设置所有联锁系统需要的属性,同时,能完成绘图中移动、删除、复制、镜像功能。
(4)其他自定义实体包括计轴、绝缘节、应答器、警冲标、库所、转辙机、停车位置标、车档、文本等。自定义实体的设计结构,如图2所示。
1.2 信号平面布置图辅助绘制模块
本文前面创建了信号机、道岔和道路等数10种自定义实体,但要在AutoCAD 平台完成信号平面布置图的快速绘制,需要进行进一步的辅助绘图设计。该模块主要完成2部分内容:(1)设计友好人机交互界面,展示各实体并提示操作信息,实现人机交互辅助绘制;(2)设计数据处理算法,解析从外部输入的实体信息集合,进一步实现以秒为单位的一键自动绘制。
1.3 数据交互模块
本模块提供对外接口,与外部软件进行数据交互,包括1个输入端和1个输出端。输入端:站场图识别软件输出的站场信息,该信息作为自定义实体设计的数据源和自动绘制功能实现的实体信息集合输入源。输出端:输出的站场数据和联锁数据作用于其他联锁软件。本平台与各外部软件的关系,如图3所示。
2 关键处理过程
2.1 信号机自定义实体设计
2.1.1 平台自定义信号机实体设计
设计信号机基类XcySignal,信号机自定义实体类需兼具XcySignal类中和AutoCAD中实体应具备的成员属性与函数。因此每种类型的信号机自定义实体类均从XcySignal类和 AcDbEntity类中派生。派生后,依次完成相关属性成员初始化 、绘图属性初始化、功能函数的设计与实现。分别由以下函数完成。
(1)InitialAttribution:属性初始化函数,实现所有从父类继承和派生属性的初始化。如信号机种类、初始朝向、高矮柱形、常态点灯颜色等。
(2)InitialDraw:绘图属性初始化函数,完成信号机实体绘图组成元素属性初始化,设计绝缘节、灯柱、底柱、各个信号灯、信号灯内部填充等绘图元素。在函数中完成各绘图元素属性设置,如绝缘节和灯柱长度、信号灯半径、内部填充样式等。同时,各绘图元素之间需依赖具体坐标才能按要求组织在一起,因此函数将传入基点坐标并设计各元素间的逻辑邻接关系。
(3)为实体封装大量函数,实现其复杂功能,如SetHighOrLow函数实现高矮柱变化,SetDirection函数实现朝向变换,SetNormalLight设置常态显示灯光,subGetOsnapPoints设置捕捉点,subGetGripPoints设置夹点,subMoveGripPointsAt实现夹点移动,TransformBy进行绘图元素坐标变换等。
这样,再添加其他功能,就完成一个信号机自定义实体的设计与创建。本文共设计11种不同类型的信号机自定义实体。
2.1.2 用户自定义信号机实体设计
额外增设实时由用户产生指定灯位配列的信号机自定义实体,真正实现信号机自定义实体自由,下面描述其主要设计思想。
(1)设计XcySignalSet类代表用户自定义信号机实体类,封装9种独立信号灯绘图元素类作为其成员变量。
(2)为XcySignalSet类提供2种灯位排列选择(单列或双列)和5个灯位选择,每个信号机可自由选择灯位排列,每个灯位又可自由选择9种信号灯,灯位排列和每个灯位选择结果均单独开辟成员变量标记。
(3)根据灯位排列与5个灯位选择结果的6个标记变量组合出自定义信号机。理论上会产生多达
2×95 种信号机,全面考虑类的存储空间与状态爆炸问题,约束限制每种信号灯最多允许被选择2次,减轻了程序负担且不失信号机实体的多样性。(4)设计友好的可视化交互界面,简化用户复杂的选择过程。
2.2 道岔、道路及其他自定义实体设计
与信号机自定义实体的设计与创建相似,各自定义实体均需逐一完成相关属性成员初始化 、绘图属性初始化、功能函数设计与实现。难点在于不同类型实体属性设计与初始化、功能函数设计与实现的差异性很大。这里不再详细展开。
2.3 人机交互辅助绘制
选择MFC[7](Microsoft Foundation Classes)中的工具选项板进行人机交互辅助绘制设计。本文构建了基于绘图工具选项板和属性工具选项板的双重人机交互界面。前者负责展示与选择自定义实体,后者负责修改与完善实体属性,从而完善站场与联锁数据。
人机交互辅助绘制的主要流程如下:
(1)根据绘图工具栏各类可视化实体展示,选择拟绘制的实体;
(2)根据提示在AutoCAD界面拾取屏幕任意一点,将实体布置于指定位置;
(3)单击已布置实体,编辑反应器实时监控并创建与该实体类型关联的属性工具选项板;
(4)在属性工具栏的交互界面上,完成对实体属性的修改与完善。
人机交互辅助绘制流程,如图4所示。
2.4 自动绘制
通过读取外部输入的自定义实体数据,解析并定位到特定类型自定义实体,创建该类型实体,经逻辑处理实现外部数据与实体数据实时联动,为实体配置属性。要解析外部数据,须设计数据处理算法,算法实现的关键在于外部文件输入的数据格式,即定义各类自定义实体的数据模型。
2.4.1 信号设备自定义实体关键节点
各类数据模型定义的关键是获取相应自定义实体关键节点信息,几个重要信号设备的节点分布情况,如图5所示。
2.4.2 自定义实体数据模型定义
几个重要数据模型定义的具体描述如下。
定义1:信号机数据模型Signal由一个七元组<ID, Point, Direction, Column, Prefix, Num, Name>表示,其中:
(1)ID表示信号机类型;
(2)Point由一个三元组<X, Y, Z>组成,表示信号机基点坐标,X, Y, Z代表其在图形空间X, Y, Z轴方向的坐标值;
(3)Direction表示信号机朝向,0代表向右,1代表向左;
(4)Column表示信号机机柱类型,1代表高柱,2代表矮柱;
(5)Prefix、Num、Name分别表示信号机名称前缀、数字编号、名称。
定义2:道岔数据模型Switch由一个十元组<ID, Point1, Point2, Point3, Name, J1, J2, J3, RailFace, TurnoutFace>表示,其中:
(1)ID表示道岔类型;
(2)Point1、Point2、Point3分别表示道岔在图形空间中岔前直股节点坐标、岔后直股节点坐标、岔后弯股节点坐标,每个又是由三元组<X, Y, Z>表示;
(3)Name代表道岔名称;
(4)J1、J2、J3分别表示岔前直股、岔后直股、岔后弯股的绝缘节类型,0代表无绝缘节,1、2、3分别表示普通绝缘节、超限绝缘节、尽头绝缘节;
(5)RailFace表示道岔尖轨朝向,0代表尖轨朝向向左,1表示向右;
(6)TurnoutFace代表道岔开向,0代表道岔开向向左,1表示向右。
定义3:道路数据模型Section1由一个六元组<ID, Point1, Point2, Name, J1, J2>表示,Section2由七元组<ID, Point1, Point2, Point3, Name, J1, J2>表示,其中:
(1)ID表示道路类型,31代表直线型,32代表曲线型;
(2)2种模型Point1、Point2都分别储存道路起点、终点坐标,Point3是曲线型道路增设的弧上一点坐标,Name均代表道路名称;
(3)J1、J2均分别代表道路起点、终点绝缘节类型,绝缘节类型含义同道岔,除此之外,为道路两端增设车档选择。
2.4.3 基于数据模型解析的自动绘制算法流程
输入上述数据模型集合的实体信息文件,生成数据解析处理算法,循环遍历单个数据模型,解析并定位到待绘制的自定义实体类型,创建特定类型实体并按解析数据逐一为其配置属性,最后将其添加到模型空间,实现车辆段信号平面布置图的自动绘制,详细算法流程,如图6所示。
2.5 生成站场及联锁数据
采用对象连接与嵌入(OLE,Object Linking and Embedding)方式输出本平台产生的站场及联锁数据到Excel。利用Excel提供的Com对象模型,使用OLE跨进程的方式给Excel发出指令并在2个进程之间进行数据交互,其实现步骤如下:
(1)在程序的InitApplication和UnloadApplication添加初始化、销毁 COM动态链接库的代码;
(2)设计实体数据处理算法,算法实现的核心编写在函数ExportToExcel中;
(3)注册数据导出到Excel数据页的执行命令XCYExportData,将处理函数ExportToExcel链接到命令,执行命令时调用该函数进行实体数据提取;
(4)在AutoCAD命令行执行XCYExportData,即可将信号平面布置图中不同类型的道路、道岔、信号机、文本、警冲标、应答器、超限绝缘节、停车位置标等自定义实体数据分别导出到 Excel中。
上述步骤的关键在于(2)中核心函数ExportToExcel的实现,即数据处理与生成算法的具体实现。需自定义以下函数:RunExcelApp函数,用于启动Excel程序,若Excel程序已经运行,则自动连接到正在运行的Excel进程中;NewWorkBook、NewWorkSheet函数,分别用于新建空白的 WorkBook、WorkSheet;GetAllEntityIds函数,用于获取所有自定义实体集合[8]。处理时,遍历实体集合,逐一打开实体,根据实体类型设计并调用不同数据处理方法,生成不同实体的不同数据,同时,控制生成不同的数据输出格式。该数据生成流程,如图7所示。
3 平台实现
3.1 自定义实体
3.1.1 信号机自定义实体
信号机自定义实体的实现由平台自定义信号机实体和用户自定义信号机实体2部分构成,两者的绘图及属性实现,如图8所示。包含11种平台自带的信号机实体和系列实时由用户随意指定生成的信号机实体,并能实现图形与属性数据的实时联动。经验证,所有信号机实体均具备前面设计的复杂功能。
3.1.2 道岔自定义实体
实现了单动道岔、双动道岔、交叉渡线道岔自定义实体的设计且相应道岔各项复杂功能均通过测试。单动道岔的应用广泛,其他2种道岔均可由单动道岔组合得到。因此下面展示单动道岔自定义实体的绘图与属性实现,如图9所示。
3.1.3 道路自定义实体
实现了直线型与曲线型2种道路自定义实体的设计,其绘图及属性实现分别如图10和图11所示。实体的各项设计功能均已通过测试。
3.1.4 其他自定义实体
实现了诸如库所、警冲标、计轴、车档、应答器、超限绝缘节、信号设备室、转辙机、停车位置标、轨旁无线设备(TRE,Trackside Radio Equipment)等其他自定义实体的设计,实体的各项设计功能均已通过测试。
3.2 人机交互界面
本文设计的自定义实体种类繁多,每类实体均有绘图选择界面及其子界面,每个实体又配备属性操作界面及功能操作界面,界面体系庞大而复杂。
3.3 复杂车辆段信号平面布置图的自动绘制
以某车辆段信号平面布置图为实例,外部导入多达599个自定义实体数据模型集合文件,其中覆盖5种不同类型信号机、2种类型道路、4种类型计轴器、2种类型应答器、警冲标、TRE、库所、信号设备室等数10种自定义实体信息。经测试,用时在2 s内实现了该复杂车辆段信号平面布置图的一键自动生成,绘制准确无误,其生成效果,如图12所示。
3.4 站场及联锁数据自动生成
通过遍历某车辆段信号平面布置图模型空间的自定义实体,平台自动输出带文本格式的站场及联锁数据。
4 结束语
本文介绍车辆段信号设备平面布置图辅助设计平台,该平台实现了车辆段信号设备平面布置图的快速人机交互辅助绘制及自动绘制,并实现相关数据与联锁软件的交互,使数据的二次利用更加便捷。平台的人机交互界面友好,操作简便,对某复杂车辆段信号平面布置图的设计结果表明,辅助设计平台能够在2 s的时间内快速实现该复杂车辆段信号平面布置图的一键自动生成,绘制准确无误,大幅提升了车辆段信号平面布置图的设计质量与效率。
-
[1] 墨书铭. 地铁车辆段内信号机的显示与设置 [J]. 电子世界,2017(7):167. [2] 杨 震. 城市轨道交通车辆段总平面布置图辅助设计系统 [J]. 城市轨道交通研究,2019(9):168-171,175. [3] 杨瑞宇. CAD二次开发及其在铁路信号施工图设计中的应用 [J]. 铁道标准设计,2012(2):115-117. [4] 赵宜芳. 基于AutoCAD二次开发的既有线站场资料成图方法研究 [J]. 铁道勘察,2018,44(4):17-21. [5] 任南杰. 铁路站场平面图计算机辅助设计系统的研究与开发 [D]. 成都: 西南交通大学, 2011. [6] 高兵德. CAD二次开发在铁路车站信号设计中的应用 [J]. 铁道通信信号,2016:33-35. [7] 刘英璐. Object ARX与MFC相结合进行AutoCAD二次开发 [J]. 煤炭技术,2007,26(12):97-98. [8] 尧 燕. 一种遍历AutoCAD图形文件数据的方法 [J]. 黑龙江科技信息,2017(14):152. -
期刊类型引用(3)
1. 李代,刘续,李雪龙. 锤击桩施工数智化管理系统研发与应用. 土木建筑工程信息技术. 2025(02): 133-139 . 百度学术
2. 孙屹枫. 信号设计软件集成平台设计与实现. 铁路技术创新. 2024(06): 64-71 . 百度学术
3. 姚维文,杨扬. 基于自定义实体的联锁表自动生成软件设计与实现. 铁路计算机应用. 2023(09): 65-71 . 本站查看
其他类型引用(2)