朱海鵬,王 偉
(沈陽市市政工程設計研究院,遼寧沈陽110015)
城市道路和互通立交設計中,回旋線作為平曲線的緩和曲線得到廣泛應用。目前大多數(shù)設計單位應用的計算機輔助設計軟件AutoCAD,并沒有回旋曲線類型對象,使得緩和曲線的設計繪圖十分繁瑣。本文結合作者多年的道路設計實踐,對設計人員自定制回旋曲線的畫法和算法進行探討,并提出一種方便易用的定制方法。
早期道路設計為方便手工計算,回旋線計算一般采用近似公式。在計算機設計應用初期,通過對回旋線坐標公式的推導,可以采用多項式前5項計算。進入21世紀,計算機的運算速度大大提高,回旋線坐標完全可以采用高精度的計算通式。
回旋曲線的參數(shù)公式:
回旋線終點(SC):A2=Ls×R (1)
回旋線上任一點:A2=Li×Ri(2)式(1),(2)中:A——回旋曲線參數(shù);Li——任一點回旋線長度;Ri——任一點曲率半徑?;匦€的坐標計算通式:
式(3),(4)中:Xi、Yi——回旋曲線任一點坐標,i、j、k、n 為正整數(shù);
L——該點回旋線長度;
β——該點回旋曲線角。
圖1為回旋曲線示意圖。
分析一下道路平面線形設計,對中線的操作主要包括:(1)全程路線進行排樁號;(2)標注和導出逐樁坐標;(3)對平曲線特征點進行編號排序;(4)通過中線偏移生成路幅邊線;(5)計算道路長度和關聯(lián)的邊線路緣石長度。中線作為道路平面對象模型的根對象,也是道路附屬設施空間定位的主要參照,例如交通標志、路面標線、信號設施、給水排水管道等專業(yè)設計,均需通過道路中線來布設構造物。因此,回旋曲線對象作為道路平面線形的一個單元,必須與路線其它部分保持關聯(lián)形成整體。
一種簡單易行的辦法,是采用AutoCAD的多段線對象繪制回旋曲線,最終將路線中全部的圓曲線、回旋線、直線單元連接成一條多段線,形成完整的道路中線,即可滿足上述全部設計要求。多段線對象的 DXF類名為 LWPOLYLINE,ActiveX類名為AcDbPolyline,其特性是同一對象中可以包含直線段和圓弧段。應用這一特性,用多個圓弧段來模擬出回旋曲線,只要分段數(shù)目合理,頂點坐標計算精度足夠,是完全可行的。研究表明,應用傳統(tǒng)經(jīng)驗公式計算頂點坐標時,要滿足工程精度要求需要細分百余段,大大增加了圖形文件尺寸,而采用精確的計算通式,則十個圓弧段模擬的回旋曲線即可滿足工程精度要求。
計算機輔助設計軟件AutoCAD內(nèi)嵌了兩種編程 語 言 ,Visual LISP和 VBA (Visual Basic for Applications),其編輯編譯環(huán)境內(nèi)嵌于AutoCAD中,簡便易學,已經(jīng)為諸多設計人員所掌握,成為設計繪圖的得力工具。下面是筆者用Visual LISP和VBA兩種語言編寫的橫坐標求解函數(shù)。該函數(shù)采用前述計算通式,按照給定的循環(huán)次數(shù),求解回旋線上任意點橫坐標。注意,這里所說的橫縱坐標,是回旋曲線的橫距和縱距。
(1)Visual LISP語言編寫的回旋曲線橫坐標求解函數(shù)如下:
(defun vl_SpiralX(A B n/F1 F2 F3 J K LI XI)
(setq Li(*A(sqrt(*2.0 B))));計算點回旋線長度
(setq Xi 0.0)
(setq k 1)
(while(<=k n)
(setq f1(expt-1(1+k)));通式第一項
(setq f2(/Li(-(*4 k)3)));通式第二項
(setq f3 1.0)
(setq j 1)
(repeat(-(*2 k)2)
(setq f3(*f3(/B(float j))));通式第三項
(setq j(1+j))
)
(setq Xi(+Xi(*f1 f2 f3)))(setq k(1+k))
)
Xi;返回橫坐標
)
(2)VBA語言編寫的回旋曲線橫坐標求解函數(shù)如下:
Public Function vb_SpiralX(A As Double,B As Double,n As Long)As Double
Dim Li As Double,Xi As Double
Dim f1 As Double,f2 As Double,f3 As Double
Dim k As Long,j As Long
Li=A*Sqr(2#*B) '求解點回旋線長度
Xi=0#:k=1
Do While k<=n
f1=(-1)^(k+1) '通式第一項
f2=Li/(4*k-3)'通式第三項
f3=1#
For j=1 To 2*k-2
f3=f3*(B/j)'通式第二項
Next
Xi=Xi+f1*f2*f3
k=k+1
Loop
vb_SpiralX=Xi'返回橫坐標
End Function
函數(shù)參數(shù):A為回旋曲線參數(shù);B為求解點的緩和曲線角,單位為弧度;n為計算通式循環(huán)次數(shù),一般取15。兩個函數(shù)完成相同的工作,均返回坐標數(shù)值。實際應用中,回旋曲線分段數(shù)一般采用10的整數(shù)倍,以方便搜索曲線特征點。
求得回旋曲線分段頂點坐標后,繪制回旋曲線的函數(shù)可以有多種編制方法。如果采用ActiveX方法成圖,把坐標換算到世界坐標系比較方便;如果采用命令函數(shù)方式成圖,可以充分利用導線的約束使用相對坐標。需要注意的是為保證全體線元的可連接,每條模擬回旋曲線的多段線都必須保證Z軸方向的一致。
圖2是選擇兩條導線為約束條件時基本型回旋線的成圖,其運行過程為:(1)選擇第一條切線;(2)選擇第二條切線;(3)輸入圓曲線半徑(R);(4)輸入第一條回旋線參數(shù)(A1)或長度(L1);(5)輸入第二條回旋線參數(shù)(A2)或長度(L2);(6)指定平曲線標注位置。
本文所述回旋曲線的算法和畫法,同樣適用于各種復合曲線。由于線形設計具有多樣性和靈活性,設計人員掌握一種AutoCAD定制方法十分必要,大量交互和條件多變時采用逐個線元設計成圖,數(shù)據(jù)條件齊備時通過讀取數(shù)據(jù)文件自動生成全程路線和多條路線,對已經(jīng)繪制完成的路線實現(xiàn)自動標注曲線元素表和輸出路線數(shù)據(jù)到文件。如果圖形和數(shù)據(jù)交換采用AutoCAD和Excel完成,勢必極大提高設計質(zhì)量和設計效率。筆者編制的道路設計軟件包含了計算繪圖一體化的線形設計模塊,可以訪問網(wǎng)站http://www.hpcad.com進一步了解。本文所述方式在多項大型工程設計中進行應用,效果良好。