楊立剛 藺志剛 鄭會春



摘 要:巖土工程的錨固系統中,錨桿結構形式眾多,空間分布各異,導致了其設計過程煩瑣復雜。為實現錨桿的快速布設,減少BIM設計過程中的重復性工作,提出了錨桿自動化布設方法。該方法依托于CATIA Automation,結合錨固系統特點,利用UDF+VSTA開發了錨桿自動化布置插件。以黑河黃藏寺水利樞紐工程某開挖面錨桿布設為例,驗證了插件的有效性。編寫的程序可以自動讀取Excel文件中的設計參數,根據用戶選擇的錨桿類型與布設面實現錨桿的自動化布設,提升了錨固系統的設計質量與速度。
關鍵詞:BIM設計;錨桿;CATIA Automation
中圖分類號:TV222.1;TV223;U455.7+1
文獻標志碼:A
doi:10.3969/j.issn.1000-1379.2021.10.031
引用格式:楊立剛,藺志剛,鄭會春.基于CATIA Automation的錨桿自動化布設技術研究[J].人民黃河,2021,43(10):157-160.
Abstract: In the anchoring system of geotechnical engineering, there are many types of structures and different spatial distributions of rock bolt, which lead to the complicated in BIM design process. In order to realize the rapid deployment of rock bolt and reduce the repetitive work in the BIM design process, an automatic rock bolt layout method was proposed. This method relied on CATIA Automation, combined with the characteristics of the anchoring system and developed an automatic rock bolt arrangement plug-in by using UDF+VSTA. Taking the bolt layout of excavation face of Huangzangsi Water Control Project on the Heihe River as an example, the effectiveness of the plug-in was verified. The program could automatically read the design parameters in the EXCEL file. According to the type and layout of the bolt selected by the user, it had realized the automatic layout of the rock bolt and improved the quality and speed of the BIM design of the anchor system.
Key words: BIM design; rock bolt; CATIA Automation
1 引 言
巖土錨固系統在基坑、邊坡、隧道等工程中已經得到廣泛應用[1]。錨桿支護不僅可以起到懸吊、組合梁和擠壓加固的作用,而且能夠與圍巖相互作用形成具有一定強度的承載結構[2]。錨桿類型眾多,空間分布各異,在其BIM建模過程中,需要重復對錨桿進行手工布置,費時費力且容易出錯。在Revit設計軟件上,劉兆新等[3]開發出一種能夠實現隧道初期支護模型自動布設的插件,劉貝等[4]運用可視化編程軟件Dynamo編輯生成隧道模型的程序,二者均可以提高Revit設計軟件的隧道錨固系統建模效率。
現今,應用CATIA進行錨固系統的設計仍不成熟,因此筆者依托于CATIA Automation二次開發接口,研究應用自定義特征(UDF)+Visual Studio應用開發工具(Visual Studio Tools for Applications,簡稱VSTA)方法對CATIA進行二次開發,開發了針對錨固系統中錨桿的自動化布設插件。該插件可根據錨桿設計參數自動布設錨桿,極大減少了錨桿BIM設計過程中的重復性工作,提升了錨固系統的設計質量與速度。
2 CATIA二次開發
CATIA二次開發的方式主要有兩種,即基于組件應用框架的CAA和基于自動化應用接口的Automation API[5]。其中CAA方法需要用戶在RADE(Rapid Application Development Environment)環境下采用C++語言進行編程開發,該方法對開發技術要求較高,適用于專業軟件開發人員,且系統維護復雜。因此,筆者采用基于自動化應用接口的Automation API進行錨桿自動化布設插件的開發。
CATIA將程序絕大多數的功能和方法都封裝為符合Visual Studio.Net類規范的COM對象,通過對象豐富的API接口即可完成CATIA中絕大多數的功能和方法,加之可以通過錄制宏的方式迅速獲得功能的核心代碼,因此CATIA Automation API的二次開發方式簡單易學,適用于具有一定編程基礎的工程設計人員。在CATIA Automation中,以對象驅動的模式封裝了CATIA各項功能的API,其根對象是Application,并逐層分解為包含編輯器(Editor)、文件系統(FileSystem)以及視窗(Window)等對象在內的多級結構(見圖1)。
通過VB.NET、C#以及Pyhton等多種編程語言均可以實現Automation API的調用與封裝。考慮到開發的便捷性,在VSTA開發環境中采用VB.NET編程語言進行開發。
3 錨桿自動化布設方法
3.1 程序設計
結合錨固系統特點,錨桿自動化布設插件程序設計流程見圖2。
3.2 創建錨桿自定義特征
錨桿構件是以鋼筋混凝土為主體結構的桿件,以200 kN受拉承載力為界,可分為預應力錨桿和低預應力錨桿[6],二者結構形式基本一致,其中預應力錨桿是將張拉力傳遞到穩定的或適宜的巖土體中的一種受拉桿件(體系),一般由錨頭、錨桿自由段和錨桿錨固段構成。從構造上區分,預應力錨桿可分為拉力型、壓力型、壓力分散型、拉力分散型、后(重復)高壓灌漿和可拆芯式錨桿。
結合以上幾種常見的錨桿類型,通過CATIA的自定義特征(UDF)功能,創建各類型錨桿自定義特征庫,并使用參數驅動Catalog管理自定義特征庫。自定義特征可以封裝錨桿模型的創建過程,并根據錨桿類型,生成不同的錨桿參數。圖3、圖4為工程中最常見的永久拉力型錨桿自定義特征及其部分輸入參數,其中定位點位于臺座下表面的錨桿中心處,定位面是臺座下表面。
3.3 確定錨桿布設位置
通過一個空間定位點和空間定位面可以確定錨桿的布設位置[6]。根據工程實際情況,定位面為地形面或地形開挖面。定位點根據用戶輸入情況有以下幾種確定方式:①根據用戶輸入的點群確定錨桿布設點;②根據用戶輸入的定位面、錨桿數自動計算錨桿布設點;③根據用戶輸入的定位面及其所需錨固力自動計算錨桿布設點;④根據用戶輸入的定位面、錨桿間排距自動計算錨桿布設點。在上述定位點的確定方式中,除方式①可直接確定定位點外,其余幾種方式可歸結為在面上確定點的位置。在VSTA開發環境中,利用VB.NET代碼調用CATIA Automation創建點接口AddNewPointOnSurface()和AddNewPointOnSurfaceWithReference(),實現定位點的自動布設。除此以外,《巖土錨桿與噴射混凝土支護工程技術規范》和《水利水電工程邊坡設計規范》中提出了不同類型錨桿的布設間距要求。因此,在錨桿定位點的布設過程中還應根據錨桿類型確定錨桿的布設間距,利用VB.NET代碼增設判斷條件,保證錨桿布設滿足規范要求。
3.4 錨桿實例化
錨桿實例化是錨桿自定義特征在項目中實例化的過程。以錨桿定位面、定位點為實例化的輸入條件,將錨桿自定義特征在項目中批量實例化,實現錨桿的自動布設。用戶通過CATIA自行調用錨桿自定義特征時,通過輸入錨桿的定位點、定位面,即可完成單根錨桿的實例化。圖5為錨桿實例化在CATIA中的界面。
在CATIA Automation中,InstanceFactory對象提供了實例化自定義特征的接口,包括以下兩種方式。
(1)單次實例化。調用AddInstance()可啟動單次實例化過程,隨后調用PutInput()設置自定義特征的輸入參數,即可實現自定義特征的單次實例化。當用戶需要單次實例化自定義特征時,該方法較為便捷,且系統開銷小于批量實例化方法的。
(2)批量實例化。在CATIA Automation中,批量實例化的方法更為常用。該方法由4個階段、8個步驟組成,其中實例化循環由BeginInstantiate()、PutInputData()等5個步驟組成。當用戶需要批量實例化自定義特征時,插件會自動調用該方法,并通過Excel數據獲取錨桿設計參數,實現使用較小的系統開銷完成錨桿的實例化過程。批量實例化流程見圖6。
4 錨桿自動化布設插件的應用
以黑河黃藏寺水利樞紐工程某開挖面支護為例,說明錨桿自動化布設插件應用方法。工程右岸廠房邊坡高程2 531 m到高程2 566 m處開挖面需使用錨索進行加固,設計成果如下:開挖面采用鋼筋網噴混凝土襯砌和預應力錨索支護,開挖面需要錨固拉力共42 000 kN,擬采用1 000 kN拉力分散型無黏結錨索42根,具體設計參數見表1。
根據已知設計參數,在插件中選擇“預應力”“永久拉力型錨桿”,將設計參數通過Excel文件形式載入到CATIA中,并在CATIA中選擇錨桿布設面以及錨桿數量。參數設置完成后,點擊“開始布設”按鈕,插件會根據設置的參數,自動在錨桿布設面上生成錨桿。圖7為錨桿布設情況。
5 結 語
筆者依托于CATIA Automation技術,結合錨固系統特點,利用UDF+VSTA開發出了錨桿自動化布設插件,并通過錨桿布設實例驗證了該插件的有效性。其顯著減少了錨桿布設過程中的重復性工作,提升了錨固系統的設計質量與速度。
參考文獻:
[1] 程良奎.巖土錨固的現狀與發展[J].土木工程學報,2001,34(3):7-12,34.
[2] 苗國航.我國預應力巖土錨固技術的現狀與發展[J].地質與勘探,2003,39(3):91-94.
[3] 劉兆新,田斌華,陳元培,等.基于Revit的新奧法隧道初期支護構件參數化建模研究[J].隧道建設(中英文),2019,39(10):1610-1619.
[4] 劉貝,周東明.基于Revit的隧道參數化建模研究[J].工程建設,2019,51(9):23-28,47.
[5] 王陸,董甲甲,王小平,等.基于CATIA Automation API的工程制圖二次開發[J].人民黃河,2011,33(5):140-142.
[6] 中華人民共和國住房和城鄉建設部,中華人民共和國國家質量監督檢驗檢疫總局.巖土錨桿與噴射混凝土支護工程技術規范:GB 50086—2015[S].北京:中國計劃出版社,2015:2-3.
【責任編輯 張華巖】