潘曉明 , 張 勇, 孔 娟
(1.同濟大學地下建筑與工程系,上海 200092; 2.同濟大學巖土及地下工程教育部重點實驗室,上海 200092; 3.濟南鐵路局工務處,山東 濟南 250001)
在山嶺重丘區(qū)的公路建設中,以及既有線鐵路改造過程中,由于地形條件的限制,路線線形常常采用增長或縮短切線長度的方法來滿足規(guī)范中對于曲線間直線長度的要求。這樣,在鐵路、公路設計中往往會出現(xiàn)不對稱緩和曲線廣泛使用。由于緩和曲線上各點的曲率半徑及圓心均為變數(shù),所以在繪制線路平面圖時,利用繪圖工具無法準確、有效地繪制出緩和曲線。利用AutoLISP 對AutoCAD 進行二次開發(fā)可以實現(xiàn)用戶快速、高效制圖的目的。如邱榮茂等[1]提出了對稱緩和曲線在AutoCAD 中的開發(fā)與實現(xiàn)。本文以AutoLISP 語言為基礎,開發(fā)實現(xiàn)了非對稱緩和曲線在AutoCAD 中的自動繪制。所編寫的程序可為非對稱曲線的選線、設計、計算和施工提供了較完整的方法,具有一定的實用價值。
AutoLISP 是由Autodesk 公司開發(fā)的一種采用 LISP 程序語言的編程工具(LISP 是LISTProcessor 的縮寫)。AutoLISP 的解釋器內嵌在AutoCAD 軟件包中。AutoLISP 不需要任何特定的硬件設備,只要一個系統(tǒng)能夠運行AutoCAD就能運行AutoLISP。它是一種唯一的解釋型語言。Visual LISP 是為AutoLISP 提供的一個完整 的開發(fā)環(huán)境,從R14版開始,AutoCAD支持Visual LISP 開發(fā)工具。Visual LISP 是一個可視化的AutoLISP 語言開發(fā)環(huán)境,它是AutoLISP 語言的擴展和延伸。
Visual LISP 具有以下特性:
(1) 在完全可視化的開發(fā)環(huán)境下編寫、調試程序。
(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 緩和曲線上任一點的坐標
根據(jù)式(1)~式(3),圖3 給出了非對稱緩和曲線AutoLISP 的程序流程??梢钥闯觯绦蛑黧w是緩和曲線與圓曲線的繪制。
本程序可在直接在AutoCAD 繪圖模塊中, 選取兩直線段的起點( pt1)、交點( pt)、終點( pt2),輸入非對稱緩和曲線要素 L1、R、 L2, 可直接在當前繪圖板中生成非對稱緩和曲線。為 使得自動生成非對稱緩和曲線,編寫的函數(shù)如下:
(defun fwj(pt pt1));計算任意兩點的坐標方位角 的子函數(shù)。
圖3 非對稱緩和曲線程序流程圖
(defun readlh( / txt len n l-lh l-n txt1 txt_1 num1 num2 num))和(defun C:TAB());該子函數(shù)用于讀 取字符串,用來 L1、R、 L2的輸入。
(defun c:hh());實現(xiàn)非對稱緩和曲線的自動生成的主函數(shù)。
編程主要要點:
(1) 首先讀入起始數(shù)據(jù)
(2) 繪制緩和曲線
由于非對稱緩和曲線,左右兩側不等長,程序實現(xiàn)過程中,要分別繪制兩側緩和曲線。利用自定義函數(shù)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 上調試通過,并經實踐證明,用上述方法繪制圓曲線加非對稱緩和曲線具有方便、高效、準確的優(yōu)點。本文給出的基本步驟和編程要點,為其他用戶進行AutoLISP 二次開發(fā)提供了借鑒和參考。
[1] 邱榮茂, 王大鳴, 周喬勇. 基于AutoCAD 的線路緩和曲線的自動繪制[J]. 工程圖學學報, 2005, 26(1): 30-35.
[2] 王曉光. 不對稱曲線的計算方法[J]. 公路交通科技, 2000, (增1): 25-27.