冷繼全
(貴州省第一測繪院 貴陽 550025)
鐵路竣工用地界線資料是項目驗收的關鍵資料之一,在鐵路竣工用地界線拐點標注時,目前CAD制圖軟件為通用功能,采用逐拐點標注整飾繪制,不能批量標注,而一條鐵路里程多達數(shù)百千米,竣工用地界線拐點數(shù)量更是龐大,人工反復操作,不但容易產(chǎn)生錯誤,而且工作效率十分低下,影響項目竣工資料的匯編。筆者通過采用AutoCAD VAB、Excel VBA等程序語言,二次開發(fā)批量實現(xiàn)鐵路竣工用地界線拐點標注,提高工作效率。
程序設計采用AutoCAD VAB、Excel VBA等語言二次開發(fā)。首先,通過選取鐵路中心線上直線段兩點坐標計算線路走向方位角,利用界樁拐點標記線與鐵路中心線成垂直關系,通過鐵路中心線方位角加減90°計算得界樁拐點標記線方位。其次,通過拐點坐標及標志符(L、R)判斷界樁左右測拐點標記線走向,設置一定的標注長度,計算標注長度兩點坐標,利用AddLightWeightPolyline()函數(shù)線,如此循環(huán)完成批量拐點標注直線繪制。同理,利用拐點坐標及鐵路中心線方向角,可計算邊距和里程平行于拐點標注直線上下的注記點處坐標,通過AddText(textString,insertion-Point,height)函數(shù),實現(xiàn)分數(shù)線式標注,最后利用text().Rotation和text().ScaleFactor功能實現(xiàn)旋轉注記方向及字高,如此循環(huán)完成批量分子式注記。
通過在AutoCAD VAB中調(diào)入Microsoft Excel 15.0 objiect Library,設計“邊樁里程信息提取”功能,按照鐵路中心線里程前進方向,定義左手方向為左側(標識符用“L”表示),右手方向為右側(標識符用“R”表示),實現(xiàn)導入“鐵路用地界樁表.XLS”,經(jīng)過程序整理后,形成用地界線拐點數(shù)據(jù),結構如表1。
表1 用地界線拐點數(shù)據(jù)表
鐵路線路平面由直線、圓曲線以及連接直線與圓曲線的緩和曲線組成。在直線段可通過兩個里程樁坐標計算方位角,方位角代表鐵路中心線走勢;鑒于一般鐵路的圓曲線和緩和曲線半徑比較大,鐵路中心線走勢為漸變過程,可理解漸變過程由若干小的直線段組成,采用計算逐直線段方位角,代替鐵路中心線走勢。K0至K1走向方位角計算公式如下:
根據(jù)Δx、ΔY正負值,確定方位角所處的象限,見圖1,其Pi=3.1415926。
圖1 中心線方位角示意圖
按《鐵路建設項目竣工用地平面圖圖式》要求,規(guī)定了鐵路用地界線拐點標注方式和圖例符號,拐點點位采用“〇”表示,標注方式采用分數(shù)線“S/+D”模式,其中“S”代表邊距,“+D”代表里程,垂直于鐵路中心線,方向沿小里程方向。由(1)式可以計算K0至K1走向方位角α。因拐點標注線t1-t2方向垂直于K0至K1走向,則左側拐點標注線方位角為β=α-Pi/2,右側拐點標注線方位角為 β=α+Pi/2,利用拐點位置坐標(X0,Y0)、方位角β和標注線t1-t2長度L,利用極坐標公式,可以計算t1、t2的點位坐標。利用AddLightWeightPolyline(points)畫出標注橫線“——”。“S”點位置坐標確定。可通過拐點(X0,Y0)、方位角(α-Pi)及一定距離,先計算出平行于t1-t2方向的一過渡點,再利用過渡點坐標值、β值及適量距離,采用極坐標法求得“S”點位置坐標?!?D”點位置坐標確定。可通過拐點(x,y)、方位角α及一定距離,先計算出平行于t1-t2方向的一過渡點,再利用過渡點坐標值、β值及適量距離,采用極坐標法求得“+D”點位置坐標?!癝/+D”模式注記旋轉角度為Pi-α,各關系之間角度如圖2所示。
圖2 拐點標注之間角度關系示意圖
通過AutoCAD 2006平臺“工具”菜單欄,點擊“宏”下Visual Basic編輯器,進入AutoCAD VBA環(huán)境。在ACAD Project下有AutoCAD對象、窗體。在窗體中新增form1控件,在工具箱中將Frame、TextBox、Label、CommandButton等控件增加到form1控件上。在AutoCAD VBA環(huán)境“工具”菜單欄,點擊“引用”,勾選Microsoft Excel 15.0 objiect Library引用相應庫,完成程序支撐環(huán)境設計,程序功能界面見圖3所示。
圖3 程序功能界面
通過GetPoint([Point][,Prompt])函數(shù)獲得鐵路中心線坐標,為計算線路方位角提供了輸入數(shù)據(jù),通過AddLightWeightPolyline(Point)函數(shù),可以繪制一定長度的分數(shù)線標注,通過AddCircle(centerPoint,radius)函數(shù),結合調(diào)入的鐵路用地界樁表(xls),可以繪制拐點樁位符號,通過AddText(textString,insertionPoint,height)函數(shù),結合調(diào)入的鐵路用地界樁表(xls),可以繪制分數(shù)式標注“S/+D”,通過text().Rotation和text().ScaleFactor功能函數(shù),可以改變注記字寬和方向。以下列舉部分關鍵代碼:
SetTCX(0)=acadDoc.ModelSpace.AddLightWeightPolyline(ttt)
Set TCX(0)=acadDoc.ModelSpace.AddCircle(ppp,TextBox9.text)
Settext(j)=acadDoc.ModelSpace.AddText(zh1(j),www,TextBox7.text)
Set ext(j)=acadDoc.ModelSpace.AddText(l(j),mmm,TextBox7.text)
text(j).Rotation=(pi-TextBox5.text)
text(j).ScaleFactor=TextBox8.text
因篇幅所限,此處略去程序其它語句代碼。
貴廣鐵路是中國西南地區(qū)第一條按設計時速不低于250km的標準建造的高標準鐵路,全長857km(其中貴州境內(nèi)301km,廣西348.5km,廣東207.5km)。貴廣鐵路有限責任公司委托貴州省第一測繪院負責承擔新建鐵路貴陽至廣州(貴州段)竣工用地平面圖工程任務約264.3km,總面積約6000畝。
內(nèi)業(yè)在AutoCAD環(huán)境下,采用鐵路竣工用地界線拐點標注程序,對鐵路施工里程DK36+960-DK301+260之間用地拐點進行快速標注,標注效果如圖4所示。
圖4 拐點標注結果局部圖
本文中基于AutoCAD VAB二次開發(fā),探索實現(xiàn)了基于垂直鐵路中心線用地界線拐點快速標注,程序界面設計人性化、可視化界面,方便作業(yè)人員操作,通過測試,功能運行穩(wěn)定,結果正確,人工編輯量少,解決了作業(yè)人員手工反復操作,長時間疲勞操作容易發(fā)生表冊與圖上不一致的問題,極大地提高了鐵路竣工圖用地界線拐點標注工作效率。