道路纵断面设计动态拉坡研究与应用
2014-01-08朱海鹏
朱海鹏
(沈阳市市政工程设计研究院,辽宁沈阳 110015)
0 引言
道路工程计算机辅助设计应用广泛,其中纵断面设计数据量大,成图量多,设计方法的改进对提升道路设计工作效率至关重要,多年来国内对纵断面设计方法不断研究,取得了较好的成果。在计算机辅助设计领域,AutoCAD.NET API 经过十余年的发展,类库逐渐完善成熟,新的科技成果应该转化为道路设计的利器。笔者在多年的道路设计实践中,编制过多种工作模式的纵断面设计程序。本文介绍的是一种基于夹点拖动的纵断面动态拉坡新方法。该方法应用夹点强制协议技术,对纵断面切线和竖曲线对象的夹点进行重定义,通过简单直观的夹点拖动,实现纵断面快速设计。
1 道路纵断面特性分析
道路纵断面设计过程包括数据准备、纵断拉坡、成图输出等,设计成果包括纵断图、土方横断图、土方量表及多种数据表格。纵断面设计数据量较多,需要编制数据文件,在笔者编制的道路设计软件中,数据文件采用 Excel 格式文件,包括纵断高程、变坡点、平曲线、交叉口、桥梁墩台、地质概况、横断高程、横断面分段、横断面类型、边坡分段、边坡类型、清除表土、扣除土方、用地界线工作表。
纵断面设计的成图格式多种多样,需要大量的选项设置来控制,包括标注栏、纵断面标注、横断面标注和图幅布局设置。纵断图在设计文件中是分页装订的,因此图纸分页的品质具有重要作用。笔者编制的道路设计软件,将纵断面拉坡设计和成品图表输出作为两个独立模块,首先通过数字化模型的纵断面进行动态拉坡设计,确定变坡点方案后再输出成图,设计过程清晰明确,操作简单。
分析道路纵断面,主要由纵断剖面线、高程标注栏、高程格网、高程标尺、附加标注几部分组成,图形元素较多,见图1所示。纵断剖面线包括原地面线和设计线两种,原地面线是现地实测高程的描述,在纵断面设计过程中保持固定不变。纵断面设计线由一系列直线段和曲线段组成,为实现夹点拖动式的动态拉坡,软件将设计线用切线和竖曲线两种对象来组合,两者均为多段线实体。实际工程设计中,经常需要多个设计线方案比选,纵断面拉坡图需要支持多条设计线并存,最后一次编辑的设计线为当前设计线,标注栏高程值及所有图面标注,反映的是当前设计线拉坡结果。特别要注意的是,道路纵断面纵向比例和横向比例通常是不一致的,这一特性对编程和应用均有较大影响,需要予以特别考虑。道路纵断面设计的目的,是在满足控制点高程要求的情况下,通过平衡沿线土方填挖量,设计一条技术经济指标合理、满足规范要求的设计线。
2 AutoCAD.NET 夹点强制协议
现有的纵断面设计动态拉坡方法,大多是通过一个无模式对话框显示纵断面参数,在表格控件中修改参数然后更新纵断面,此法操作繁琐,效果不直观。笔者在编制道路设计软件时,通过分析研究,应用 AutoCAD.NET API 夹点强制协议,以夹点拖动法实现了纵断面设计动态拉坡。该方法无须调用命令,直接选取图形实体,拖动系列特征夹点即可完成操作。
随着 Windows 操作系统版本升级,基于.NET Framework 技术的应用程序日益普及,AutoCAD.NET API 编程逐渐成为二次开发的主流方式,其丰富的类库足以支持各种类型应用软件。新版本AutoCAD.NET 类库提供了一种强制协议(Overrule)类型,包括夹点强制协议(GripOverrule)、图形强制协议(DrawableOverrule)等多种类型,强制协议允许以编程方式重定义图形实体的默认行为和外观样式。本文所述道路纵断面设计动态拉坡,即应用夹点强制协议技术实现。
夹点强制协议类(GripOverrule)从基类Overrule 派生,使用时必须创建基于该类的继承类。在软件的具体实现中,对应于纵断面切线和竖曲线对象,创建了切线夹点类(ProfileTangentGrip)和竖曲线夹点类(ProfileCurveGrip),两者均继承自GripOverrule 类,按规则要求重写基类的获取夹点、移动夹点、拖动状态处理等方法。自定义夹点需要独立的位置和形状,为此创建一个继承 GripData类的自定义夹点数据类,其中定义了夹点图形形状、关联数据索引、拖动行为目的等用于纵断面设计的属性。
夹点强制协议必须在程序加载时自动设置,以便用户打开图形文件后即可执行动态拉坡。实现这一目的需要两种技术手段,首先在夹点协议类中定义一个该类的静态实例并创建一个图形实体过滤条件的静态方法,然后通过IextensionApplication 接口的 Initialize 方法调用静态方法。自定义夹点支持 AutoCAD 基本操作,按 Shift键可选择多个夹点同时拖动,使用正交模式或拖动时按住 Shift 键限定在垂直和水平方向拖动,拖动时按住 Ctrl 键的同时按鼠标右键可以选择各种捕捉方式。基于夹点强制协议的纵断面设计动态拉坡程序,将技术复杂性隐藏在幕后,使用者只需专注设计工作本身,通过简单的夹点拖动完成大部分纵断面设计工作。
3 纵断面切线夹点
纵断面切线对象的自定义夹点设置为三种,变坡点夹点、坡段中点夹点和坡段拉伸夹点,见图2所示。变坡点夹点位于切线多段线的顶点,形状为正方形,横向拖动时修改变坡点桩号,竖向拖动时修改变坡点高程,也可任意拖动位置,变坡点夹点支持快捷菜单,通过菜单中的添加顶点和删除顶点,可快速执行变坡点的添加删除。坡段中点夹点位于切线线段的中点,形状为矩形,用于拖动坡段的横向和竖向位置,可同时拖动多个坡段。坡段拉伸夹点位于坡段的延伸线上,形状为三角形,夹点拖动时限定变坡点在坡段及其延长线上移动,用于延长或缩短坡段。
图2 纵断面切线夹点示意图
纵断面切线夹点拖动时,即可以用鼠标定点,也可通过键盘输入数值在拖拽线方向精确定点,后者需要考虑纵断面纵横比例。夹点强制协议类内部,设置了点位动态跟踪机制,当切线夹点拖动时,用瞬态图形实时更新切线和竖曲线,直观反映纵断面的变化,如果拖动点位超出合理范围,设计线图形自动还原。夹点拖动后,自动执行纵断面更新,包括控制点标注、竖曲线参数标注和标注栏中的大量数值。
4 纵断面竖曲线夹点
纵断面竖曲线对象的自定义夹点设置为三个,起点夹点、终点夹点和通过点夹点,形状均为圆形,见图3所示,凸曲线与凹曲线夹点相同。起点夹点和终点夹点用于拖动竖曲线切点,用竖曲线切线长度反算半径,通过点夹点用于拖动竖曲线的穿越点,用支距反算竖曲线半径。
图3 纵断面竖曲线夹点示意图
纵断面竖曲线夹点拖动时,也可用鼠标定点和键盘输入两种方式定点,拖动相邻竖曲线的端点,可快速实现首尾相接的复合竖曲线。夹点拖动时,除了用瞬态图形实时更新竖曲线,为便于观察竖曲线切点的变化,软件在竖曲线端点增设了标识圆,如果拖动点位超出合理范围,竖曲线图形自动还原。在实际应用中,可以同时夹选纵断面切线和多条竖曲线,反复拖动多种夹点,快速实现预期设计效果。
5 纵断面参数化设计
动态拉坡是道路纵断面设计的一种快捷方法,但不是唯一方法,在软件的具体实现中,包含了诸多参数化设计命令。纵断面切线从数据文件导入,适用于修改现有道路,切线从原地面拟合生成,适用于旧路补强设计,切线从任意多段线转换,对快速实施方案比选十分有用。此外,变坡点和竖曲线的添加、修改、删除,纵断面动态查询和技术指标统计等等,均以对话框和命令行方式支持纵断面参数化设计。事实上,仅使用参数化设计方法,亦完全可以实现纵断面设计。
纵断面动态拉坡一般采用鼠标定点的方式进行快速设计,设计参数里的桩号、坡长、坡度和竖曲线半径大多带有零数,而道路设计的习惯是这些参数尽可能采用整数,软件在纵断面参数命令中提供了参数取整功能,按指定的数值精度,对纵断面全线的变坡点里程、纵坡度和竖曲线半径进行取整运算,见图4所示。纵断面设计完成后,通过导出变坡点命令将设计结果导出到数据文件,与其它工作表组成完整的数据文件,即可输出格式化的纵断图、横断图、土方表等成品图纸。
图4 纵断面参数化设计图示
6 结语
道路纵断面设计从传统的手工方法到计算机辅助设计,曾经是一个质的飞跃,数字化纵断面设计为提高生产力做出了巨大贡献。科技发展无止境,笔者在多年的设计实践工作中,编制过多种工作模式的纵断面设计软件,从文本格式的数据文件到 Excel 表格式数据文件,从单纯自动成图到交互式参数化设计,历次进步都融入了计算机科技的发展成果。近年来 Microsoft Visual Studio 开发工具发展很快,AutoCAD 各个升级版本均为 .NET API 类库增加一些新特性。如何将计算机科技新成果应用到道路工程设计工作中,是个亟待解决的科技成果转化问题。本文所述道路纵断面设计动态拉坡方法研究,提供了一个研究探索的实例,且已取得实际应用效果。基于夹点拖动的动态拉坡设计,操作简单,视觉直观,给道路设计工作带来全新感受,实际设计应用中效果良好。
[1] 杨少伟,等.道路勘测设计[M].北京:人民交通出版社.2004.
[2] 朱照宏,等.道路勘测设计软件开发与应用指南[M].北京:人民交通出版社,2003.
[3] 符锌砂.公路计算机辅助设计[M].北京:人民交通出版社,2008.