朱海鵬,王 偉
(沈陽(yáng)市市政工程設(shè)計(jì)研究院,遼寧沈陽(yáng)110015)
城市道路和互通立交設(shè)計(jì)中,回旋線(xiàn)作為平曲線(xiàn)的緩和曲線(xiàn)得到廣泛應(yīng)用。目前大多數(shù)設(shè)計(jì)單位應(yīng)用的計(jì)算機(jī)輔助設(shè)計(jì)軟件AutoCAD,并沒(méi)有回旋曲線(xiàn)類(lèi)型對(duì)象,使得緩和曲線(xiàn)的設(shè)計(jì)繪圖十分繁瑣。本文結(jié)合作者多年的道路設(shè)計(jì)實(shí)踐,對(duì)設(shè)計(jì)人員自定制回旋曲線(xiàn)的畫(huà)法和算法進(jìn)行探討,并提出一種方便易用的定制方法。
早期道路設(shè)計(jì)為方便手工計(jì)算,回旋線(xiàn)計(jì)算一般采用近似公式。在計(jì)算機(jī)設(shè)計(jì)應(yīng)用初期,通過(guò)對(duì)回旋線(xiàn)坐標(biāo)公式的推導(dǎo),可以采用多項(xiàng)式前5項(xiàng)計(jì)算。進(jìn)入21世紀(jì),計(jì)算機(jī)的運(yùn)算速度大大提高,回旋線(xiàn)坐標(biāo)完全可以采用高精度的計(jì)算通式。
回旋曲線(xiàn)的參數(shù)公式:
回旋線(xiàn)終點(diǎn)(SC):A2=Ls×R (1)
回旋線(xiàn)上任一點(diǎn):A2=Li×Ri(2)式(1),(2)中:A——回旋曲線(xiàn)參數(shù);Li——任一點(diǎn)回旋線(xiàn)長(zhǎng)度;Ri——任一點(diǎn)曲率半徑。回旋曲線(xiàn)的坐標(biāo)計(jì)算通式:


式(3),(4)中:Xi、Yi——回旋曲線(xiàn)任一點(diǎn)坐標(biāo),i、j、k、n 為正整數(shù);
L——該點(diǎn)回旋線(xiàn)長(zhǎng)度;
β——該點(diǎn)回旋曲線(xiàn)角。
圖1為回旋曲線(xiàn)示意圖。

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