时间:2024-09-03
潘晓明 , 张 勇, 孔 娟
(1.同济大学地下建筑与工程系,上海 200092; 2.同济大学岩土及地下工程教育部重点实验室,上海 200092; 3.济南铁路局工务处,山东 济南 250001)
在山岭重丘区的公路建设中,以及既有线铁路改造过程中,由于地形条件的限制,路线线形常常采用增长或缩短切线长度的方法来满足规范中对于曲线间直线长度的要求。这样,在铁路、公路设计中往往会出现不对称缓和曲线广泛使用。由于缓和曲线上各点的曲率半径及圆心均为变数,所以在绘制线路平面图时,利用绘图工具无法准确、有效地绘制出缓和曲线。利用AutoLISP 对AutoCAD 进行二次开发可以实现用户快速、高效制图的目的。如邱荣茂等[1]提出了对称缓和曲线在AutoCAD 中的开发与实现。本文以AutoLISP 语言为基础,开发实现了非对称缓和曲线在AutoCAD 中的自动绘制。所编写的程序可为非对称曲线的选线、设计、计算和施工提供了较完整的方法,具有一定的实用价值。
AutoLISP 是由Autodesk 公司开发的一种采用 LISP 程序语言的编程工具(LISP 是LISTProcessor 的缩写)。AutoLISP 的解释器内嵌在AutoCAD 软件包中。AutoLISP 不需要任何特定的硬件设备,只要一个系统能够运行AutoCAD就能运行AutoLISP。它是一种唯一的解释型语言。Visual LISP 是为AutoLISP 提供的一个完整 的开发环境,从R14版开始,AutoCAD支持Visual LISP 开发工具。Visual LISP 是一个可视化的AutoLISP 语言开发环境,它是AutoLISP 语言的扩展和延伸。
Visual LISP 具有以下特性:
(1) 在完全可视化的开发环境下编写、调试程序。
(2) Visual LISP 程序经过编译后,提高了运行性能和保密性。
(3) LISP 代码通过AutoCAD R14 的ObjectARX 接口,提高了程序的运行速度。
(4) Visual LISP 是一个被建立并装载的ObjectARX 应用程序,因而可以在AutoCAD 部装载和更新。
如图1 所示,设曲线要素两端缓和曲线长分 别为 L1、 L2,圆曲线半径为R,偏角α 为已知,其它曲线要素如 p1、 p2、 q1、 q2均可通过一般 的公式计算。由于两缓和曲线的长度不一样,因而设置缓和曲线后圆曲线半径的内移值不同,此时的圆心不可能像对称型布置时一样,落在内夹角的平分线上,圆心到两导线的垂直距离分别为 R + p1, R + p2。通过几何关系不对称缓和曲 线两端切线长为[2]
图1 非对称缓和曲线要素
其中
由此可知,对称缓和曲线的切线长是公式(1)的一个特例。
如图2 所示,将坐标原点位于ZH 点(或HZ点),x 轴与切线重合时,由辐射螺旋线的关系, 由C = ρ× l的必要条件可以得出
其中 C = R × L1( L2)
图2 缓和曲线上任一点的坐标
根据式(1)~式(3),图3 给出了非对称缓和曲线AutoLISP 的程序流程。可以看出,程序主体是缓和曲线与圆曲线的绘制。
本程序可在直接在AutoCAD 绘图模块中, 选取两直线段的起点( pt1)、交点( pt)、终点( pt2),输入非对称缓和曲线要素 L1、R、 L2, 可直接在当前绘图板中生成非对称缓和曲线。为 使得自动生成非对称缓和曲线,编写的函数如下:
(defun fwj(pt pt1));计算任意两点的坐标方位角 的子函数。
图3 非对称缓和曲线程序流程图
(defun readlh( / txt len n l-lh l-n txt1 txt_1 num1 num2 num))和(defun C:TAB());该子函数用于读 取字符串,用来 L1、R、 L2的输入。
(defun c:hh());实现非对称缓和曲线的自动生成的主函数。
编程主要要点:
(1) 首先读入起始数据
(2) 绘制缓和曲线
由于非对称缓和曲线,左右两侧不等长,程序实现过程中,要分别绘制两侧缓和曲线。利用自定义函数fwj(pt pt1),计算两直线的坐标方位角、以及确定两直线间的夹角。计算左缓和曲线 要素 T1、 p1、 q1。由得到的 T1,将用户坐标系 设置在ZH 点上,坐标系如图4 所示。 由公式(3)计算缓和曲线上当前坐标系下的等分点x、y 值,连接各段的直线,即可自动绘出左侧缓和曲线。
图4 非对称缓和曲线用户坐标系
右侧缓和曲线的坐标系为图4 中右侧所示,此用户坐标系可用于最后所有曲线的连接,否则,会认为各条曲线不在同一坐标系下,最后无法进行多义线连接。同样利用上面的程序绘出右侧缓和曲线。
(3) 绘制圆曲线
由上面保存的图名s1,分别提取出左侧与右侧缓和曲线最后一点的坐标,也就是圆曲线的两端坐标点,利用arc 命令可以绘出圆曲线。
同理提取右侧缓和曲线端点坐标(end)。
(command "arc" begin "e" end "r" r) ;绘出圆曲线
最后恢复到世界坐标系下,将两侧缓和曲线与圆曲线用多义线连接,即可生成非对称缓和曲线。
按上述方法编制的程序已经在AutoCAD 2002,AutoCAD 2004 上调试通过,并经实践证明,用上述方法绘制圆曲线加非对称缓和曲线具有方便、高效、准确的优点。本文给出的基本步骤和编程要点,为其他用户进行AutoLISP 二次开发提供了借鉴和参考。
[1] 邱荣茂, 王大鸣, 周乔勇. 基于AutoCAD 的线路缓和曲线的自动绘制[J]. 工程图学学报, 2005, 26(1): 30-35.
[2] 王晓光. 不对称曲线的计算方法[J]. 公路交通科技, 2000, (增1): 25-27.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!