本发明涉及一种视距分析方。特别是涉及一种基于AutoCAD的竖向视距分析方法。
背景技术:
视距是保证公路行车安全的一项重要设计指标,是公路工程建设标准强制性指标之一。驾驶人从发现障碍物开始到决定采取某种措施的这段时间段内汽车沿路面所行驶的最短行车距离,称为视距。因此,公路沿线的每一车道应有足够的视距,使驾驶员能及时察觉潜在的危险,并做出正确反应,保证行车安全。视距安全评价技术是道路安全保障技术的重要组成部分,是对处于设计、施工及运营中的公路工程项目、交通工程项目或任何与公路用户有关的工程项目正式地进行视距检查与评价,以发现项目潜在的视距不足路段和消除由此引起的安全隐患的一种安全保障技术。
行车视距可分为停车视距、会车视距、超车视距为了保证行车安全,应使驾驶员能看到前方一定距离的道路路面,以便及时发现路面上有障碍物或对向来车,使汽车在一定的车速下能及时制动或避让,从而避免事故。
行车视距检验的常规方法主要有最大横净距计算方法和几何作图法(绘制视距包络图)等,这些方法简便实用,前者能检验曲线上某一位置处平面视距是否满足要求,后者可以较精确的确定平曲线(或竖曲线)上影响视距的范围。用几何作图法不但能确定最大横净距,还可以确定任意平曲线上任意桩号的横净距,而解析法只能确定圆曲线的最大横净距,因此,从普遍适用性来看几何作图法更有优越性。
手工绘制视距包络图繁琐复杂,计算工作量大,需要人工绘制多条视距线,绘图速度慢,效率低,累计误差影响行车视距检查的准确性。若通过编程软件,与AutoCAD在同一处理空间运行,实现指定参数后自动完成视距包络图的绘制,可节省大量工作时间,提供工作效率。
国内对平面视距的检验已经有了较多的研究,理论和方法也比较成熟;而对于竖向视距的检验分析,仍未提供出一种较为有效的检验方法,主要原因在于,眼高轨迹线、物高轨迹线、设计纵断面线为三条独立的空间曲线,很难求点视距包络线的解析解。
技术实现要素:
本发明所要解决的技术问题是,提供一种实现了指定控制参数后自动完成视距包络图绘制的基于AutoCAD的竖向视距分析方法。
本发明所采用的技术方案是:一种基于AutoCAD的竖向视距分析方法,包括如下步骤:
1)初始化CAD软件的绘图环境,包括:设置当前图层、关闭CAD绘图环境中的正交和捕捉以及将CAD变量指针指向模型空间;
2)在交互界面输入如下参数:正向检验/逆向检验、眼高、物高、行车视距、视距拟合精度和视线生成间距;
3)交互式选取需要检验的竖曲线,所述竖曲线的线型实体为多段线,进入下一步骤,若得到的线型实体非多段线,结束程序,并提示:请转化为多段线,然后进入下一步骤;
4)得到竖曲线的起点qpt0和竖曲线总长度的参数;
5)计算循环次数T,循环次数T=fix[(竖曲线总长度-行车视距)/视距拟合精度],并循环如下内容:
(1)采用cal-pt函数,根据竖曲线的起点qpt0和行车视距两个参数得到竖曲线上的另一点zpt0;
(2)根据竖曲线的起点qpt0,获得该起点对应的眼高点eye_p0,眼高点eye_p0与起点qpt0的推导关系为:X坐标相同,眼高点eye_p0的Y坐标=起点qpt0的Y坐标+眼高;
(3)根据竖曲线上的另一点zpt0,获得另一点zpt0对应的物高点ent_p0,物高点ent_p0与另一点zpt0的推导关系为:X坐标相同,物高点ent_p0的Y坐标=另一点zpt0的Y坐标+物高;
(4)得到第一组直线L1的起点为眼高点eye_p0,第一组直线L1的终点为物高点ent_p0;
(5)根据竖曲线的起点qpt0和视距拟合精度两个参数,通过cal-pt函数得到竖曲线上的第一点qpt1;
(6)根据第一点qpt1和行车视距两个参数,通过cal-pt函数得到竖曲线上的第二点zpt1;
(7)根据竖曲线上的第一点qpt1,获得第一点qpt1对应的眼高点eye_p1,眼高点eye_p1与第一点qpt1的推导关系为:X坐标相同,眼高点eye_p1的Y坐标=点第一点qpt1的Y坐标+眼高;
(8)根据竖曲线的第二点zpt1,获得第二点zpt1对应的物高点ent_p1,物高点ent_p1与第二点zpt1的推导关系为:X坐标相同,物高点ent_p1的Y坐标=第二点zpt1的Y坐标+物高;
(9)得到第一组直线L1:起点为眼高点(eye_p0),终点为物高点(ent_p0);
(10)得到第二组直线L2的起点为眼高点eye_p1,第二组直线L2的终点为物高点ent_p1;
(11)求第一组直线L1与第二组直线L2的交点,所述交点行车视线交点;
(12)重新定义竖曲线的起点qpt0:qpt0=qpt1;
(13)循环T次,依次得到所有的眼高点、物高点、行车视线交点,并将所述的眼高点、物高点、行车视线交点分别依次存入眼高点列表eyelst、物高点列表entlst和行车视线交点itlst点列表中;
6)采用CAD软件中的Pline命令分别读取眼高点列表eyelst、物高点列表entlst和行车视线交点itlst列表中的各点数据,得到竖曲线的眼高线、物高线和视距包络线。
将步骤2)所述的参数设置为一定的取值范围和默认值,本模块眼高允许范围X为0<X≤5,默认值为1.2;物高允许范围Y为0<Y≤5,默认值为0.1;行车视距允许范围Z为0<Z≤2000,默认值为110;视距拟合精度允许范围T为0<T≤1,5,默认值为2;视线生成间距允许范围W为5<W≤10,默认值为20。
将步骤5)第(1)所述的cal-pt函数为:已知曲线上的一点pt及曲线本身,推算曲线上与点pt的X坐标相距长度为Dist的另外一点cal-pt,具体开发步骤如下:
(1)获得曲线pl;
(2)获得曲线上pt点的X坐标pt_x;
(3)根据X坐标pt_x与Dist,得到与pt点在x方向相距为Dist的点npt_x,推导关系为npt_x与pt_x的Y坐标相同,npt_x的X坐标=pt_x的X坐标+Dist
(4)根据npt_x点,生成垂直构造线xline;
(5)获得曲线pl和垂直构造线xline的交点,所述交点即为曲线上的另一点cal-pt。
在步骤5)的第(1)步~第(12)的循环过程中,每间隔长度为视线生成间距时,便将第一组直线L1和第二组直线L2绘制出来,以便设计者对行车视线进行检验。
本发明的一种基于AutoCAD的竖向视距分析方法,采用AUTOCAD内置的lisp语言进行编程,通过分别绘制竖曲线的眼高轨迹线、物高轨迹线,绘制出竖曲线的竖向视距包络线和行车视线,以便检验竖曲线上的跨线桥等障碍物是否影响行车视距。本发明适用于基于CAD模式下开发的所有路线设计软件,点击设计轨迹线即可得到视距包络线,不仅直观并且计算精度高。实现了指定控制参数后自动完成视距包络图的绘制。本发明的方法易学易用,执行速度快,灵活性强,适合于工程设计。
附图说明
图1是本发明一种基于AutoCAD的竖向视距分析方法的流程图。
具体实施方式
下面结合实施例和附图对本发明的一种基于AutoCAD的竖向视距分析方法做出详细说明。
本发明的一种基于AutoCAD的竖向视距分析方法,根据已有的1:1比例的纵断面设计线,通过分别绘制竖曲线的眼高轨迹线、物高轨迹线,可以很方便的绘制出竖曲线的竖向视距包络线和行车视线,以便检验竖曲线上的跨线桥等障碍物是否影响行车视距,消除由此引起的安全隐患,提高行车安全。
竖向视距分析模块通过vlisp语言对CAD进行二次开发,以图中已绘制完成的1:1竖曲线为基础,分别从正向、逆向两个方向出发,进行视距的检验。如图1所示,本发明的一种基于AutoCAD的竖向视距分析方法,包括如下步骤:
1)初始化CAD软件的绘图环境,包括:设置当前图层、关闭CAD绘图环境中的正交和捕捉以及将CAD变量指针指向模型空间;
2)在交互界面输入如下参数:正向检验/逆向检验、眼高、物高、行车视距、视距拟合精度和视线生成间距;
所述的参数也可设置为一定的取值范围和默认值,本模块眼高允许范围X为0<X≤5,默认值为1.2;物高允许范围Y为0<Y≤5,默认值为0.1;行车视距允许范围Z为0<Z≤2000,默认值为110;视距拟合精度允许范围T为0<T≤1,5,默认值为2;视线生成间距允许范围W为5<W≤10,默认值为20。
3)交互式选取需要检验的竖曲线,所述竖曲线的线型实体为多段线,进入下一步骤,若得到的线型实体非多段线,结束程序,并提示:请转化为多段线,然后进入下一步骤;
4)得到竖曲线的起点qpt0和竖曲线总长度的参数;
5)计算循环次数T,循环次数T=fix[(竖曲线总长度-行车视距)/视距拟合精度],并循环如下内容:
(1)采用cal-pt函数,根据竖曲线的起点qpt0和行车视距两个参数得到竖曲线上的另一点zpt0;
所述的cal-pt函数为:已知曲线上的一点pt及曲线本身,推算曲线上与点pt的X坐标相距长度为Dist的另外一点cal-pt,具体开发步骤如下:
(1)获得曲线pl;
(2)获得曲线上pt点的X坐标pt_x;
(3)根据X坐标pt_x与Dist,得到与pt点在x方向相距为Dist的点npt_x,推导关系为npt_x与pt_x的Y坐标相同,npt_x的X坐标=pt_x的X坐标+Dist
(4)根据npt_x点,生成垂直构造线xline;
(5)获得曲线pl和垂直构造线xline的交点,所述交点即为曲线上的另一点cal-pt。
(2)根据竖曲线的起点qpt0,获得该起点对应的眼高点eye_p0,眼高点eye_p0与起点qpt0的推导关系为:X坐标相同,眼高点eye_p0的Y坐标=起点qpt0的Y坐标+眼高;
(3)根据竖曲线上的另一点zpt0,获得另一点zpt0对应的物高点ent_p0,物高点ent_p0与另一点zpt0的推导关系为:X坐标相同,物高点ent_p0的Y坐标=另一点zpt0的Y坐标+物高;
(4)得到第一组直线L1(即第一条行车视线)的起点为眼高点eye_p0,第一组直线L1的终点为物高点ent_p0;
(5)根据竖曲线的起点qpt0和视距拟合精度两个参数,通过cal-pt函数得到竖曲线上的第一点qpt1;
(6)根据第一点qpt1和行车视距两个参数,通过cal-pt函数得到竖曲线上的第二点zpt1;
(7)根据竖曲线上的第一点qpt1,获得第一点qpt1对应的眼高点eye_p1,眼高点eye_p1与第一点qpt1的推导关系为:X坐标相同,眼高点eye_p1的Y坐标=点第一点qpt1的Y坐标+眼高;
(8)根据竖曲线的第二点zpt1,获得第二点zpt1对应的物高点ent_p1,物高点ent_p1与第二点zpt1的推导关系为:X坐标相同,物高点ent_p1的Y坐标=第二点zpt1的Y坐标+物高;
(9)得到第一组直线L1:起点为眼高点(eye_p0),终点为物高点(ent_p0);
(10)得到第二组直线L2(即第二条行车视线)的起点为眼高点eye_p1,第二组直线L2的终点为物高点ent_p1;
(11)求第一组直线L1(eye_p0,ent_p0)与第二组直线L2(eye_p1,ent_p1)的交点,所述交点行车视线交点;
(12)重新定义竖曲线的起点qpt0:qpt0=qpt1;
(13)循环T次,依次得到所有的眼高点、物高点、行车视线交点,并将所述的眼高点、物高点、行车视线交点分别依次存入眼高点列表eyelst、物高点列表entlst和行车视线交点itlst点列表中;
在第(1)步~第(12)的循环过程中,每间隔长度为视线生成间距时,便将第一组直线L1和第二组直线L2绘制出来,以便设计者对行车视线进行检验。
6)采用CAD软件中的Pline命令分别读取眼高点列表eyelst、物高点列表entlst和行车视线交点itlst列表中的各点数据,得到竖曲线的眼高线、物高线和视距包络线。