潘曉明 , 張 勇, 孔 娟
(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.