余志江
(鐵道第三勘察設計院集團有限公司, 天津 300142)
勘探孔里程偏移量的快速讀取法
余志江
(鐵道第三勘察設計院集團有限公司, 天津 300142)
介紹基于Civil 3D軟件的里程偏移量讀取法,重點研究基于Visual LISP語言的勘探點里程偏移量讀取的實現要點,并在此基礎上編制了相應插件,采用本插件進行勘探點里程偏移量讀取時不僅速度快、準確性高,并且具有使用簡單、成本低、對電腦配置要求低的特點。
里程偏移量 勘探孔 Visual LISP二次開發(fā)
根據《城市軌道交通巖土工程勘察規(guī)范》,地下車站和區(qū)間的勘探孔孔深需要根據結構底板高程確定,而勘探孔里程是獲得結構底板高程的前提,所以地鐵勘察在編制勘察大綱時就需要讀取勘探孔的里程偏移量數據。
快速、準確地進行勘探孔里程偏移量的讀取對巖土工程勘察具有非常重要的意義。首先介紹常規(guī)讀取方法及其缺點,然后分別介紹基于Civil 3D和Visual LISP的兩種快速讀取方法。
目前,勘探孔的里程偏移量數據讀取一般采用在CAD模型中人工逐孔量測讀取。人工讀取法存在如下不足。
(1)效率低下: 人工在CAD中量取一個勘探孔里程和偏移量數值的時間平均需要大約1 min。地鐵行業(yè)勘探孔間距小、數量多,單個區(qū)間工點的勘探孔往往達幾百個,整條線路的勘探孔數量可能達幾千個。在設計過程中線路平面經常會優(yōu)化調整,一旦線位發(fā)生變化又需要重新讀取,人工讀取往往會花費很大的時間和精力。
(2)誤差較大:人工讀取時一般采用CAD中的距離查詢命令“DI”,距離查詢命令查詢兩點之間的直線距離,所以在曲線段誤差會比較大,讀取的里程值往往偏小。
(3)錯誤率高:人工讀取時,一般先在CAD中用“DI”命令量取得到里程和偏移量值,然后將查得的數據從命令框中抄下,當數據量較大時,轉抄過程中很容易出錯。
2.1 軟件簡介
Civil 3D軟件是一款面向土木工程設計與文檔編制的建筑信息模型(BIM)解決方案,其勘測和設計工具可以自動完成許多耗費時間的任務,有助于簡化項目工作流程。通過研究,發(fā)現Civil 3D軟件可以應用在勘探孔的里程和偏移量讀取工作中。
2.2 讀取步驟
勘探孔里程偏移量讀取可以利用 Civil 3D軟件Reports Manager工具箱中的Station Offset to Points 函數。Station Offset to Points 函數可以快速、自動輸出CAD模型中批量點基于指定線路的里程和偏移量數據,讀取過程包含如下幾個步驟。
(1)建立路線模型
Civil 3D提供了多種建立線路模型的方法,勘探孔里程偏移量讀取工作中可采用由多段線對象創(chuàng)建線路的方法。線路專業(yè)提供的線路中線是由許多不連接的多段線組成,在創(chuàng)建線路模型之前應將線路中線連接成整條多段線。
(2)插入斷鏈
線路專業(yè)提供的線路平面圖中往往存在許多斷鏈,采用多段線對象直接建立的線路模型終點里程往往與設計不符,所以建立初步線路模型后需要在線路特性中添加樁號斷鏈。線路編輯完成后應注意檢查線路的里程標是否與設計提供的里程標重合,如果出現了少量的誤差,還可以通過添加修正斷鏈的方式及時進行修正。
(3)用批量導入點的方式導入勘探孔
Civil 3D中可以按照指定的數據格式從外部文件中批量導入點。為了后續(xù)數據處理方便,建議采用自定義數據格式,具體格式為:“點編號,點名稱,E坐標,N坐標”,各數據之間采用逗號分隔。
勘探點導入后默認情況下在圖中僅顯示為小點,可根據個人的喜好設置勘探點的標示樣式和名稱。
(4)里程偏移量數據的導出及整理
在工具箱面板下選擇Reports Manager功能中的Station Offset to Points 函數,選擇線路后(圖中可能建立了多個線路模型,如左線和右線),即可輸出勘探點的里程和偏移量。
Station Offset to Points 函數輸出的結果格式為“點編號、里程、偏移量、高程”,不包含點名稱。在結果整理時首先將查詢結果和第(3)步中的數據文件一并導入Excel中,然后分別按照點編號進行排序,利用點編號將勘探點名稱和里程偏移量結果對應。
2.3 優(yōu)缺點分析
采用Civil 3D軟件進行勘探點的里程偏移量讀取非常簡單快捷,并且在讀取速度和數據準確性上與常規(guī)手工量取相比均有質的提高。
Civil 3D作為一款成熟的大型商業(yè)軟件,雖然其功能十分強大,成果的可靠性有保證,但也存在一些不足:
程序對電腦的硬件配置要求較高,如希望流暢的運行Civil 3D軟件,往往需要對電腦硬件進行升級。
3.1 Visual LISP簡介
Visual LISP可以顯著地提高自定義AutoCAD的效率,可以進行各種工程的分析計算,自動繪制復雜的圖形,驅動對話框、控制菜單,定義新的命令,為AutoCAD擴充智能化、參數化的功能,將繁瑣的繪圖、標注與復雜的分析計算由程序來完成,實現圖形參數化、智能化、分析計算與繪圖一體化。
3.2 里程偏移量讀取的關鍵方法研究
如圖1所示,模型中存在一條名為Curve-xianlu的多段線線路,線路的起點為O,某勘探孔的坐標為PntA,計算勘探孔基于線路Curve-xianlu的里程和偏移量值時可以自點PntA向線路Curve-xianlu作垂線,垂足為PntB。那么起點O與PntB在線路上的距離即為勘探孔里程,點PntB和PntA之間的距離即為勘探孔的偏移量絕對值,PntA位于線路右側時取正值、左側時取負值。
圖1 里程偏移量示意
查詢幫助文件可知,針對曲線對象Visual LISP提供了豐富的查詢函數,實現勘探孔里程偏移量的讀取主要用到如下一些函數。
(1)vlax-curve-getClosestPointTo
語法:(vlax-curve-getClosestPointTo curve-obj givenPnt [extend])
功能:返回世界坐標系中曲線上(curve-obj)離指定點(givenPnt)最近的點
(2)vlax-curve-getDistAtPoint
語法:(vlax-curve-getDistAtPoint curve-obj point)
功能:返回曲線(curve-obj)從開始點到指定點(point)的曲線段的長度
(3)vlax-curve-getParamAtPoint
語法:(vlax-curve-getParamAtPoint curve-obj point)
功能:返回曲線(curve-obj)在指定點(point)的參數
(4)vlax-curve-getFirstDeriv
語法:(vlax-curve-getFirstDeriv curve-obj param)
功能:返回曲線(curve-obj)在指定位置(param)的一階導數(在WCS中)
3.3 插件的關鍵代碼
程序關鍵部分主要包含如下五個步驟:
(1)采用(vlax-curve-getClosestPointTo)函數計算位于線路上距PntA最近的點PntB點的坐標,關鍵代碼為:(setq PntB(vlax-curve-getClosestPointTo curve-xianlu PntA));
(2)采用(vlax-curve-getDistAtPoint)函數計算線路上從開始點O到指定點PntB的曲線段的長度(該長度即為勘探孔的里程),關鍵代碼為:(setq Station(vlax-curve-getDistAtPoint curve-xianlu PntB) );
(3)采用distance函數計算PntB與PntA之間的距離,關鍵代碼為:(setq Offiset(distance PntAPntB)),該值為偏移量的絕對值;
(4)采用(vlax-curve-getParamAtPoint)函數獲得PntB對應的曲線參數ParamB,關鍵代碼為:(setq ParamB(vlax-curve-getParamAtPoint curve-xianlu PntB) );
(5)采用(vlax-curve-getFirstDeriv)函數計算獲得曲線的切線方向,關鍵代碼為:(setq qiexian-PntB(vlax-curve-getFirstDeriv curve-xianlu ParamB) ),結合(PntB,PntA)矢量判斷勘探孔位于線路的左側還是右側,位于左側時需要對第三步計算的Offiset值乘以-1。
3.4 插件成果介紹
插件主要包含線路平面圖清理模塊、勘探點導入與顯示模塊、里程偏移量的查詢與輸出模塊,各模塊的主要功能如下。
(1)線路平面圖清理模塊
線路專業(yè)提供的平面圖往往圖層非常多,圖中許多線條和文字勘察專業(yè)并不需要。為了突出重點和圖面美觀,本模塊自動刪除多余的圖層,僅保留線路多段線、斷鏈、里程標示等關鍵信息圖層,同時自動將大量多段線組成的線路連接成一個整體。
(2)勘探點導入與顯示模塊
勘探孔的位置將采用帶屬性的圖塊來標示,勘探孔的名稱存入塊的屬性中。運行本模塊前需事先準備好勘探孔信息數據文本,數據格式為“勘探孔編號,E坐標,N坐標”。模塊啟動后首先預定義屬性塊,然后批量插入屬性塊,塊的坐標和屬性(勘探點名稱)從數據文本文件中讀取。
(3)里程偏移量的查詢與輸出模塊
用戶根據提示指定線路后,插件將多段線對象賦值給關鍵代碼中的變量curve-xianlu。完成線路賦值后插件將遍歷圖中所有代表勘探孔的屬性塊,獲取屬性塊的坐標和屬性,將屬性塊坐標值賦值給變量PntA,即可計算出勘探孔的里程和偏移量值。輸出成果時按照“塊屬性文本(勘探孔名稱),坐標,里程,偏移量”的格式輸出至txt文本中。
本插件相對于Civil 3D而言使用更加簡便,讀取的結果不需要重新整理。
勘探孔里程偏移量的快速自動讀取對于提高勘察工作的效率具有積極的意義,分別介紹了基于Civil 3D和自編插件的兩種快速讀取方法,并得出如下結論:
(1)基于Civil 3D的里程偏移量讀取法具有操作較簡單、讀取速度快、數據準確性高的特點。
(2)基于Visual LISP編制的插件不僅具有讀取簡單、效率高和準確性高的特點,并且具有經濟、對電腦硬件要求低等特點。
[1] 李學志.Visual LISP程序設計[M].北京:清華大學出版社,2010
[2] 陳宜金.Autodesk Civil3D 2006認證培訓教程[M].北京:化學工業(yè)出版社,2006
[3] 張坤.基于VBA的鉆孔投影里程程序初步探討[J].鐵道勘察,2012(5):51-54
[4] 鐵道部第一勘察設計院.鐵路工程地質手冊[M].北京:化學工業(yè)出版社,2005
[5] 中華人民共和國住房和城鄉(xiāng)建設部.GB 50307—2012城市軌道交通工程巖土工程勘察規(guī)范[S].北京:中國計劃出版社,2012
[6] 陶軍.沈陽地鐵一號線地質綜合勘察[J].鐵道勘察,2013(4):54-57
[7] 董薇.鐵路勘察設計BIM運用的信息化管理探討[J].鐵道勘察,2013(5):86-88
TheQuickReadingMethodofStationandOffsettoDrilling
YU Zhi-jiang
2014-09-05
余志江(1983—),男,2009年畢業(yè)于長沙理工大學巖土工程專業(yè),工學碩士,工程師。
1672-7479(2014)06-0057-03
P628
: A