APP下载

铁路线路平纵横实时联动设计方法研究

2020-06-02孔国梁

铁路计算机应用 2020年5期
关键词:纵断面横断面反应器

孔国梁

(中国铁路设计集团有限公司 线站院,天津300308)

传统的铁路线路软件设计一般遵循手工设计习惯,软件编制思想和程序结构编写一般按照平面、纵断面和横断面分别进行。平纵横设计过程缺乏直接联系,无法做到平纵横的实时协同设计[1-4]。在选线困难的情况下,如用地范围受限时需躲避平面障碍、跨越高程控制点,要反复对比优化平纵方案,实时获悉线路方案对设计规范、平纵控制点避让等要求的满足情况,而目前的方法操作繁琐,每步调整无法实时直观查看调整效果,效率较低,人工操作工作量大。

鉴于以上现状及问题,本文的研究基于AutoCAD平台,依托ObjectARX2010二次开发技术,对数字地面模型、平面交互式选线、纵断面坡度自动化设计及约束处理、平纵横多视口按里程同步显示、平纵实体多夹点式驱动编辑、纵断面高程控制点自动设置、基于反应器原理的平纵横联动设计控制等关键技术进行研究,以提高选线设计的自动化水平,简化操作流程,形成平纵横实时联动设计的整体方案,具体流程如图1所示。

1 设计准备

在进行平纵横联动设计优化前,需要先做好数字地面模型创建、平纵横设计基本参数设置、平纵横视口创建、平纵横实体管理等准备工作。

1.1 创建数字地面模型

图1 铁路线路平纵横实时联动设计整体流程

利用测绘专业采集并进行分类处理后的雷达点云数据或三维地形图文件,通过提取图中的等高线、地形点图层数据,创建Delaunay 三角网或方格网数字地面模型。

1.2 自动初始化数字地面模型

创建一个dwg 文件作为铁路线路平纵横设计的项目文件,将对应的地形图文件参考进来。再打开此项目文件时,可自动检索到参考的地形图文件名,并以此文件名初始化数字地面模型,从而随时获得线路纵断面、横断面地面高程信息,直到该项目文件关闭时析构此数字地面模型对象。

本文通过CAD二次开发包ARX提供的aced GetCurDwgXrefGraph 方法检索参考的地形图文件名。该方法可获得参考文件名数组,从而得到数组中第1个参考文件名,即地形图文件名,并将此地形图文件的目录和文件名作为输入参数,进行数模初始化。

1.3 设置铁路线路平纵横设计基本参数

设置基本参数文件的目的是使软件在线路平纵横设计时,可根据项目要求自动按照基本参数进行默认设计,增加自动化程度,减少用户交互输入,提高设计效率。具体操作是在项目文件所在目录配置参数文件,具体参数包括:最小坡长、最大坡度、最大坡度代数差、设竖曲线的最小坡度代数差、竖曲线半径、坡度折减、设桥的临界填高、设隧道的临界挖深、站坪限坡、站坪长度、路基面宽度、各级边坡高度及坡率。

1.4 创建铁路线路设计平纵横视口

视口是能独立显示特定设计内容的矩形窗口区域,在一个视口内进行图形平移、缩放操作,不会影响到其它视口的显示。平纵横多视窗设计可以采用多文档单视口方法[5],也可采用单文档多视口方法。针对这2 种方法,ARX 都提供了文档或视口的创建、命名、切换等相关方法。相比较而言,多文档的管理相对复杂,用户操作中可能存在多个文档没及时关联,造成文档之间数据出现不同版本的缺陷。另外,当用户使用Undo、Redo等命令时,也不易处理。因此,本文采用单文档多视口方法。

在当前项目文件中创建3个视口作为铁路线路平纵横设计的视口,平面视口在上方,显示平面线位自定义实体;纵断面视口在下方,显示纵断面自定义实体;横断面视口在右侧,从下向上依次排列线位横断面自定义实体。平纵横视口的大小比例可由用户自定义调整。在当前项目文件中创建的平纵横多视口排布如图2 所示。

图2 单文档平纵横多视口排布界面

(1)单个视口的创建:先获得当前图形文档的视口表,再添加视口记录。采用new AcDbViewportTableRecord 的方法,创建一个视口,并设置视口名、视口位置、视口大小。

(2)多个视口的创建:根据平纵横设计需要,分3次创建视口,分别对其进行平、纵、横视口命名,并按横排或竖排的布局排布3个视口。

(3)多个视口的管理:在创建每个视口后,记录当前视口的序号。通过acedSetCurrentVPort 函数对当前视口进行设置,通过获取CAD系统变量CVPORT 的方法,可获得当前视口的序号,进而可知当前平、纵、横哪一个视口被激活。

1.5 创建铁路线路平纵横实体管理字典

字典是AutoCAD的一种容器对象,用于组织和管理数据库的实体对象。在项目文件中创建类型为有名对象的平面字典和纵断面字典,平面字典中包含当前平面线位的ID、所有平面线位的ID数组、地形图中的道路ID数组;纵断面字典中包含当前纵断面ID、所有纵断面ID数组;对每个平面线位和纵断面自定义实体分别添加扩展字典,包含大中桥、隧道、车站、小桥涵、横断面数组。

本文使用ARX 提供的getNamed ObjectsDictionary函数创建平面和纵断面的有名对象字典;使用ARX提供的extensionDictionary 函数创建平面设备和纵断面设备的扩展字典。字典之间数据的获取与传递流程如图3所示。

图3 字典之间数据的获取与传递流程

2 平纵横交互及自动设计

铁路线路的平面、纵断面和横断面设计既紧密关联又具有一定独立性。因此,平纵横各自实现高效自动化设计是三者实时联动的前提条件。后续只需利用联动设计机制,在合适的时机将相关设计关联起来,即可实现实时联动设计。

2.1 平面视口内交互式平面设计

平面设计要考虑的因素较多,自动设计存在较大困难。本文基于ARX 的拖动技术[6],在平面视口中逐个添加平面线位交点,编辑曲线半径和缓和曲线长,创建平面线位自定义实体。交互式平面设计的操作如图4所示。

图4 交互式平面设计操作示意

2.2 纵断面视口内自动化纵断面设计

纵断面设计可采用先自动化设计再交互式优化的方法[7]。自动化设计步骤包括:(1)在纵断面视口内,根据平面线位及里程数据创建纵断面自定义实体;(2)根据数字地面模型设置纵断面地面线;(3)根据地面线进行坡度自动模拟;(4)进行最小坡长、最大坡度、最大坡度代数差、竖缓重叠、坡度折减、高程控制点等约束处理;(5)根据最大填高和挖深基本参数自动设置桥梁和隧道。坡长、坡度、代数差、高程控制点约束处理如图5所示。

图5 坡长、坡度、代数差、高程控制点约束处理示意

2.3 横断面视口内自动化横断面设计

自动化横断面设计是以反映线路平纵方案为目标而开展的简易横断面设计。在横断面视口内,从下向上依次排列线位相隔50m 的横断面自定义实体,绘制路基面、侧沟、边坡、地面线、里程、路基中心填挖高、路肩高程、地面高程、桥梁缺口、隧道缺口。每个平面对应的横断面按里程从小到大,在横断面视口内从下向上依次排成一列,如图6所示,多个平面线位对应多列横断面。横断面设计成果可为平面坡脚线设计提供基础数据。

3 平纵横实时联动编辑优化

该技术主要实现通过编辑平面或纵断面模型,自动驱动相关设计做出适应性修改。例如,移动平面交点修改线位后,软件自动进行纵断面坡度设计并更新桥隧设备,自动更新横断面设计及缺口、平面桥隧设备、平面坡脚线等。

图6 简易横断面设计界面

3.1 多夹点驱动的平纵横编辑

夹点驱动自定义实体是利用CAD进行人机交互设计最常用的操作。其实现过程为创建线路平面、纵断面、横断面自定义实体,对函数getGripPoints和moveGripPointsAt 进行重载。

(1)平面夹点:包括交点、ZH、HY、QZ、YH、HZ、直线中点、曲线资料的中间点,如图7所示。

图7 平面自定义实体夹点驱动界面

在拖动交点的基础上,添加夹直线中点后可以便捷的实现平移直线边;添加QZ点后,可以便捷的修改曲线半径并取整,同时自动选配缓和曲线长。

(2)纵断面夹点:包括变坡点和坡段线中点,实现移动变坡点或坡段平移。

(3)平纵设备夹点:对桥梁、隧道、平立交、车站、小桥涵等添加了夹点,便于拖动修改工点位置及长度,实现图形对数据的驱动,纵断面桥隧的夹点设置如图8所示。

3.2 立交道平纵断面控制点的自动创建

图8 纵断面桥隧设备夹点设置界面

在铁路选线或方案优化时,存在大量的立交跨越道路或铁路的情景,需要实现立交道路平纵断面控制点的自动设置。具体实现时,软件根据设计的铁路平面线位与既有道路图层、铁路线位的交叉关系得到平面立交控制点的里程、交叉角度,自动设置平面立交道和纵断面高程控制点,如图9所示。

图9 立交道平纵断面控制点自动设置界面

3.3 基于通知和反应器技术的平纵横设计联动

3.3.1 平纵横联动设计流程

平纵横联动设计主要解决以下几种设计情景:(1)平面交互式选线,同时自动设计纵断面和横断面,如图10 所示;(2)编辑平面,重新自动设计纵断面和横断面,如图11所示;(3)编辑平面,仅局部更新纵断面和横断面;(4)编辑纵断面,重新设计横断面;(5)编辑平面/纵断面的桥隧等设备,自动更新纵断面/平面的桥隧等设备、横断面缺口。

3.3.2 CAD联动设计机制

图10 交互式选线自动设计纵断面和横断面流程

图11 编辑平面自动设计纵断面和横断面流程

ObjectARX 为开发者提供了反应器机制,它类似于MFC 的消息处理,利用它可以响应输入事件和实体添加、编辑、删除等事件。常见的AutoCAD反应器包括4 种[8],如图12 所示。

图12 常用的AutoCAD反应器类型

反应器按时效分为2 种类型:临时反应器和永久反应器,图12中,前3种是临时反应器,第4种是永久反应器。

3.3.3 反应器技术在平纵横联动设计的应用

(1)编辑反应器的应用示例

重写endAttach 函数:对参照地形图的自定义处理,可自动初始化数字地面模型。

重写viewChanged函数:对视口显示变化时的自定义处理,可对视口中当前平面、纵断面进行最大化显示。

(2)数据库反应器的应用示例

重写objectAppended 函数:添加某个对象后的自定义处理,如添加平面后,自动进行纵断面、横断面的设计;添加了平面/纵断面设备后,自动添加对应的纵断面/平面设备等。

重写objectModified 函数:修改某个对象后的自定义处理,如修改平面后,自动更新纵断面、横断面;修改平面/纵断面设备后自动更新对应的纵断面/平面设备。

重写objectErased 函数:删除某个对象后的自定义处理,如删除平面模型后,自动删除对应的纵断面、横断面;删除某个平面/纵断面设备后,自动删除对应的纵断面/平面设备。

(3)临时反应器的加载和卸载控制

软件可以通过加载或卸载反应器来开启或关闭联动式设计。如利用CURDB->addReactor (CURDBREACTOR)操作,添加数据库反应器;利用CURDB->removeReactor(CURDBREACTOR),卸载数据库反应器。由此可控制数据库反应器是否起作用,即添加、删除、修改某个实体后,是否进行相应的自动化关联设计。

3.4 平纵横多视窗按里程实时同步显示

铁路工程是带状工程,线路平面图、纵断面图呈狭长的带状,在较小的视窗或视口内,快捷的查询某个里程的设计情况较为困难。因此,需要把平纵横成果按相同里程,在各自视口内进行同步显示。

实现同步显示的方法为,在平纵横任意一个视口内,利用鼠标中键进行平移时,计算当前鼠标在本视口(如平面视口)内对应的当前线位的里程,利用编辑反应器自动捕获此平移命令,对其它2个视口执行ZoomTo 命令,即将其它2个视口实体绘制(如纵断面、横断面实体)的相同里程处置于其视口中央。因此,不管操作人员在哪一个视口内进行平移操作,其它各视口都能按照相同里程进行同步显示,如图13所示。

若程序以一定的步长,从线路起点到终点,循环对平面视口进行自动平移,纵断面和横断面视口也将根据反应器的驱动,按里程进行同步显示,形成动态浏览的自动播放效果。

图13 平纵横视口同里程对应显示界面

4 结束语

本文研究的铁路线路平纵横实时联动设计方法已成功应用于牡佳、京雄客运专线等铁路设计项目,简化了手工操作步骤,显著提高设计效率。

本文通过应用ObjectARX 的通知和反应器技术,将铁路线路的平纵横设计统一起来。根据用户手工设计的实际需求,梳理出一套整体设计流程。通过制定自定义程序接口,实现平面交互式选线,以及进行编辑优化时,纵断面、横断面自动实时更新等联动式反应。可有效简化设计流程,提高设计效率,为进一步提高选线设计的自动化、智能化水平提供辅助支持。

猜你喜欢

纵断面横断面反应器
烟气二氧化硫制焦亚硫酸钠反应器的优化研究
100km/h线路节能坡纵断面设计研究
普速铁路轨道大修中平纵面的施工控制
气液鼓泡床反应器中气泡行为光纤探针测量方法
青中年血透患者低社会支持度横断面分析
城市道路的横断面设计论述
绿色生态型城市道路横断面设计分析
上旋流厌氧反应器在造纸废水处理中的应用
城市道路设计中的人性化因素分析
改进型ABR处理太湖富藻水启动研究