基于C#实现城市轨道交通线路辅助设计
2019-05-22金泽宇
金泽宇
(中铁第五勘察设计院集团有限公司 北京 102600)
1 引言
在城轨线路的设计工作中,需先考虑内、外部制约条件,获取制约条件数据项、根据各专业技术要求分析处理数据项和生成成果文件,需要耗费大量时间和精力。为了提高城轨线路设计的精度和效率,本文对城轨线路设计中的制约条件与专业技术要求加以分析,研究出内在逻辑关系[1]。从而设计出适用的程序算法流程图,在Visual Studio中编写出相应的C#语言程序,通过触发各辅助设计事件调用对应程序源代码实现辅助功能。每次城轨线路修改都需要重新获取、分析、处理制约条件相关数据项,人工方法工作量很大而且容易因疲劳产生失误。基于C#计算机语言编程进行辅助设计,方可在保证准确性的同时有效提高工作效率。在北京地铁昌平南延线,哈尔滨地铁4、5号线,郑州轨道交通6、11号线,广州黄埔现代有轨电车5号线等多个项目设计工作中的使用,辅助程序高效实用。
2 C#简介
C#是美国微软公司研发的一种面向对象的、运行于.NET Framework之上的高级计算机程序语言。它继承了C和C++强大的功能,同时提供了一种比COM更强大、更灵活、更简洁的编程模型[2]。应用C#计算机语言编程及实现二次开发,是一种实用有效的方法。
3 辅助城轨线路设计
在Visual Studio 2012中通过引用库文件和导入Autodesk.AutoCAD.Geometry,Autodesk.AutoCAD.EditorInput,Autodesk.AutoCAD.Windows.Visuals,Autodesk.AutoCAD.ApplicationServices,Autodesk.AutoCAD.Runtime等命名空间,建立与AutoCAD 2014之间的联系[3],轻松获取制约条件数据。以适用的算法为核心,在相应的控件对象中编写出计算机程序,触发对应事件,实现城轨线路辅助设计,程序集主窗体对象如图1所示。
图1 城轨线路辅助设计程序集主窗体示意
程序能够辅助设计人员准确高效地获取线路对象与内外部制约条件数据项,然后根据技术标准[4-5]和建筑、结构、桥梁、轨道等专业的设计要求自动处理原始数据,生成初步成果数据文件。
3.1 设计初步方案
设计城轨线路方案,需先结合地形图、线路中线、各专业提供的*.dwg文件和其它提资获取制约条件数据项,包括:车站中心里程、车站起点里程、车站终点里程、车站坡度、车站坡降方向、配线起点里程、配线终点里程、道岔型号、道岔朝向、道岔出岔点里程、竖曲线半径、与外部构筑物相交里程、上跨(下穿)外部构筑物的方式和净空要求等。此外,地下、桥梁、路基、道路路面段落线路的制约条件处理算法存在差异,针对结构高、计算跨径、工法、线路距离地(路)面高差等数据,需采用不同处理方法。定义Routecg类:将地下、桥梁、路基区间对应的结构高数据文件序列化后添加到主程序引用文件中[6];将内外部制约条件数据项定义为Routecg类不同子类的成员及属性,每回设计一条城轨线路需新创建一个Routecg类实例对象,适应本次的设计任务[7]。数据项间的逻辑关系如图2所示。
图2 辅助设计初步方案程序流程
当设计不同制式的城市轨道交通线路时,技术标准不同导致制约条件数据计算和代码处理存在差异,需要在Routecg类的基础上定义继承类以适应新制式的技术标准,同时需要修改和重新序列化结构高数据文件。
图2中每一部分都蕴含大量的计算机程序算法[8-10]和C#语言代码,由于篇幅有限,本文只以地下线路范围的N-S图为例进行阐述,如图3所示。
图3 辅助设计初步方案程序N-S图
图3为地下线路段获取和处理数据模式的部分算法N-S图,其中,处理车站前后变坡点的部分代码片段如下:
该算法适用于车站里程范围内部不设置竖曲线的情况,当设置竖曲线时,需修改关于车站范围内的代码。
3.2 修改设计方案
城轨线路方案的定稿不是一蹴而就的,局部方案调整会造成后续线路制约条件与专业要求数据项发生变化,同时导致后续线站位不变区间里程数据项发生变化。利用计算机程序对新、旧线路线型关系自动分析处理,找到修改方案后线型重合部分与绕行部分,研究算法[11]后编写程序找到每一段落新旧对应关系。然后将线站位未变化部分的制约条件数据项,按照里程数据主项的新旧关系重新生成新的数据记录。修改设计方案的主要算法N-S图如图4所示。
图4 修改设计方案程序N-S图
图4为修改线路方案程序主要算法N-S图,本程序算法适用于修改方案后,线站位未发生改变但前后段落里程错乱的区间,保留重合段落区间,线站位发生改变的段落需要使用3.1中内容重新进行运算。
4 部分数据获取及成果展示
4.1 设计初步方案实例
从Visual Studio 2012中启动辅助程序,选择“Get制约条件数据”模块中类型,设置文件存储路径,触发“GetData”事件,联动到各专业提资后的线路平面图中线上,用点击和交互的方式采集所需基础数据。以郑州轨道交通6号线可研设计阶段部分段落为例,将数据文件中记录拆成关系模型数据结构[12]以便展示。其中车站制约因素见表1。
表1中,当未指定中心轨面高程时,可以指定轨面所在层数,让程序按常规结构高和*.dmx文件数据,计算轨面高程最值。其中,“Enum”表示枚举数据类型。采集配线道岔对象见表2。
表1 Station制约条件数据采集
表2 Switch制约条件数据采集
表2中朝向定义:出岔点为原点,线路大里程方向为X轴正方向,右线指向左线正交方向为Y轴正方向,取出岔段所在象限数为朝向数据(枚举类型)。采集线路外部制约条件数据见表3和表4。
表3 Structure制约条件数据采集
表4 Interval制约条件数据采集
表3中制约条件为穿越预留节点的构筑物,穿越地铁时,在高程属性录入地铁轨面高程。表4为线路穿越区间未预留节点的构筑物。上跨制约构筑物录入构筑物顶部高程,下穿制约构筑物录入构筑物底部高程。
在数据项采集过程中,由于未知个别数据,可以录入空格,待查到后直接在数据文件里修正。计算生成数据如表5、表6所示。
表5 *.sqx生成数据
表5为程序运算生成指定车站变坡点的数据成果,可以向Interval类的实例对象中添加区间最低点等数据,由程序推算坡段参数,进一步优化*.sqx成果文件。
运算前需先在类型里程范围文件中设置地下、桥梁、路基、路面各段的里程范围,它决定不同制约条件的运算原理。实践证明,程序辅助运算得到的数据成果与人工获取计算得到成果的偏差很小,仅个别边界处会略微偏于保守,且程序辅助比人工方式更为高效,还可以避免由于疲劳造成的差错。
用hrcad软件选取表5中运算生成的初步*.sqx文件生成线路纵断面动态设计图,然后选择*.hkz文件,将表6中区间制约条件生成到动态设计图中进行优化设计,再次提高了设计效率和准确度。
4.2 修改设计方案实例
从“修改设计方案”框架中,指定修改前、后的*.dat文件的存储路径,指定对应关系文件存储路径,触发计算按钮,将得到数据记录存入新旧方案对应关系文件。本文以广州黄埔现代有轨电车5号线部分区间为例呈现对应关系,见表7~表9。
表7 旧*.dat文件数据
表8 新*.dat文件数据
表9 新旧方案对应关系
由表7~表8数据运算生成表9中对应关系数据后,用程序对修改方案前*.dat文件对应的*.dmx、*.hkz、*.sqx文件进行处理,得到新的数据文件,由hrcad生成新的动态设计图,只需对绕行段落(null)重新设计。避免了因修改方案导致里程新、旧里程关系错乱无序,节省重复设计的时间。
5 结束语
本文在.NET平台上,研究出辅助城轨线路设计的算法,用C#计算机语言编写程序,简化获取和处理城轨线路实例对象数据项方式,处理内外部制约因素数据项,可生成和修改设计成果文件及制约因素数据文件。通过成果文件生成包含制约因素数据标注的动态设计图,使下一步优化设计工作便捷高效。通过在多条城轨线路的设计工作中使用,程序能够有效提高工作效率和设计成果的准确性。以后该方法可继续用于城轨线路的设计工作中,实现城轨线路辅助设计,使设计与修改工作变得高效、便捷、准确。