后雄斌
(新疆水利水電勘測設計研究院有限責任公司,新疆 烏魯木齊 830000)
混凝土面板堆石壩具有壩體斷面小、便于施工、填筑施工進度快、投資低和安全度高等優點[1],近年來被廣泛采用,發展較快。當今在我國以及許多國家,混凝土面板堆石壩已成為一般大中型水利樞紐優先考慮選擇的壩型[2]。趾板是面板與河床及岸坡不透水連接的紐帶,起到承上啟下的作用,既可以作為壩基帷幕灌漿的蓋重平臺,又可以作為面板滑模施工的起始工作面,同時,作為混凝土面板的支撐底座與壩基帷幕灌漿、混凝土面板通過周邊縫連接構成大壩的防滲系統[3]。
趾板空間結構較為復雜,在進行趾板設計時,要充分結合地形地質條件、壩軸線空間走向、大壩面板底坡、防浪墻底部高程等關鍵影響因素。目前,趾板設計多采用傳統二維設計手段,利用AutoCAD軟件進行平面設計。對于趾板設計過程繁瑣和結構設計中參數過多、不便于準確定位、相鄰2段趾板連接點處不連續、趾板變寬變厚處突變、趾板線垂直壩軸線時“X”線不存在的情況下趾板結構體型創建和與相鄰標準段趾板結構間的平順銜接等存在處理難度大、工作效率低下的問題。
Dynamo是一款可視化編程軟件,具備了傳統編程語言所不具備的特點,包括可視化編程、快速建模、參數化驅動、批量處理數據以及可操作Civil 3D/Revit API。Civil 3D是Autodesk公司推出的一款面向土木工程基礎設施行業的三維信息化設計軟件[4],包含AutoCAD所有的基本功能。隨著Civil 3D軟件的不斷更新,從2020版開始,Dynamo作為外部參數化插件出現在Civil 3D中,Dynamo可靈活與Civil 3D中的各種對象進行交互操作,還可以將Dynamo對象輸出到Civil 3D中。Dynamo與Rhino軟件的插件Grasshopper具有類似的功能,可通過邏輯命令流將復雜的設計過程進行模塊化參數化處理,最終實現用戶需求,這使得Civil 3D在功能上更加的強大。
在總結混凝土面板堆石壩趾板傳統設計特點的基礎上,本文運用Dynamo可視化編程手段,研究將趾板結構模型創建參數化,編寫趾板結構快速建模Dynamo功能節點,旨在提高趾板結構體型設計的準確性和效率,加快面板壩在建基面以上混凝土趾板結構體型三維參數化模型的創建,達到全數據相關、全尺寸約束、用參數驅動設計結果修改的目的,對混凝土面板堆石壩設計具有很大的工程實用價值。
Dynamo起初在建筑行業應用較多,如張瑋[5]通過Dynamo讀取Excel中橋梁模型參數,利用Dynamo強大的建模功能批量生成橋梁參數化構件;王松[6]采用Dynamo進行異形建筑物的參數化創建和批量自動放置建筑構件;張柳柳[7]建立了基于Dynamo底層技術的橋梁路線建模方法,并基于該方法開發出了橋梁BIM快速建模方法和相應OppenDesigner軟件。
近些年來,隨著水利工程BIM設計的不斷深入推進,水利行業部分設計人員逐步開始探索Dynamo在水利工程參數化設計中的應用,如楊鐵增[8]等通過Civil 3D軟件,結合部件編輯器和Dynamo探索了水利工程面板堆石壩的三維正向設計BIM解決方案;朱茜[9]等利用Revit+Dynamo建立了拱壩參數化族庫,依托Autodesk系列軟件成功解決了拱壩初步設計中體型優化、樞紐布置、施工圖生成、工程量概算以及監測信息可視化等重要問題;宋丹[10]采用Dynamo參數化編程建立了雙曲拱壩模型,同時讀取Excel格式的開挖地形數據,通過自定義節點創建地形網格曲面,最終與拱壩實體結合;王寧[11]等研究了Dynamo參數化建模技術以及與Revit之間的數據交互方式,并在實際工程中得到了廣泛應用,取得了良好效果;周為[12]等利用Dynamo對水電站廠房異形結構進行了參數化設計。
2.1.1操作過程的便捷性
在趾板傳統設計過程中,需要事先在壩址區原始平面地形圖上獲取擬定壩軸線與趾板線各控制點的大地坐標(X坐標,Y坐標),將各控制點坐標以及面板頂高程、面板內坡、面板頂部厚度、面板厚度增量與趾板體型控制等不可或缺基本參數輸入到Excel表格中,通過計算得到趾板線控制點高程、每段趾板線在壩軸線方向上的投影長度、趾板線與壩軸線夾角、面板外坡角度等趾板結構體型設計參數,整個操作過程極為繁瑣且容易出錯,效率低下。
2.1.2“X”線設計時趾板結構體型的完全參數可控
趾板設計時,趾板基準線可以是“X”線,也可以是“Y”線。趾板“X”線為面板底面延長面和趾板設計建基面的交線,而“Y”線為面板底面與趾板下游面的交線。在我國面板壩的設計過程中,一般選取“X”線作為趾板設計的軸線,同時趾板“X”線也是趾板開挖或模板架設的施工放樣線。但當岸坡坡度較陡,甚至趾板走向與壩軸線大角度相交或者垂直時,“X”線就會偏離至趾板建基面以外,或者根本不存在“X”線,這使得趾板結構體型參數化構建存在著一定的局限性。
2.1.3趾板結構體型過渡段處理
(1)相鄰2段趾板線連接點處的結構體型過渡
SL 228—2013《混凝土面板堆石壩設計規范》第7.0.1條指出,混凝土趾板的布置有3種方式:①趾板面等高線垂直于趾板基準線;②趾板面等高線垂直于壩軸線;③趾板面等高線適應開挖以后的巖面;SL 228—2013第7.0.1條建議宜優先選用第1種布置方式,經調查統計我國面板壩設計普遍采用第1種布置方式。
當采用趾板面等高線垂直于趾板基準線布置方式時,由于任意2段相鄰趾板線與壩軸線空間位置關系的不同,會造成相鄰2段趾板面在連接點處的幾何不統一,并且會隨著轉折點處相鄰2段趾板線夾角情況的不同,使得趾板結構體型在空間上呈現出錯臺、侵入、缺口等不連續情況(如圖1所示),這種情況是工程設計中不允許發生的。趾板作為面板壩防滲系統中的核心組件,不僅作為建基面以下固結灌漿和帷幕灌漿的作業平臺以及面板澆筑施工滑模的起點支撐,而且通過周邊縫與面板的可靠連接形成建基面以上的防滲體系,起到承上啟下的作用。因此,處理好相鄰2段趾板連接點處趾板結構體型的不連續問題就顯得尤為關鍵。

圖1 相鄰兩段趾板在連接點處趾板結構體型的不連續狀態
(2)同一段趾板線上變寬變厚點處的結構體型過渡
根據SL 228—2013第7.0.4條、第7.0.5條規定,結合以往工程經驗表明,左右岸趾板寬度和厚度在同一高程范圍往往是相互對應的,且趾板寬度和厚度變化位置一般位于遠離趾板線轉折點的中間位置,在這種情況下趾板變寬變厚時高程分界點位置就會出現因趾板長度和厚度不一致形成的臺階,如圖2所示。
2.1.4參數化驅動模型
由壩軸線、趾板線以及不可或缺基本輸入參數動態控制生成面板壩趾板結構造型,當改變任何一個不可或缺基本參數或者調整趾板線和壩軸線平面位置時,如何使趾板模型發生實時動態響應,是較難實現的。
本文以面板底面延長面與趾板設計建基面的交線(即“X”線)作為趾板設計時的基準線,混凝土趾板的布置方式為趾板面等高線垂直于趾板基準線。主要適用于依據地形地質條件結合壩軸線進行趾板線的動態選擇,實現趾板結構參數模型的快速創建。
采用Dynamo可視化編程插件進行水工結構體型參數化設計的一般流程[11]如圖3所示。

圖3 水工結構體型Dynamo參數化設計一般流程
Dynamo與Civil 3D交互,主要有2種方式:①從當前打開Civil 3D文檔中選擇Civil 3D對象或者AutoCAD對象;②由在Dynamo中生成的幾何圖形對象創建AutoCAD對象,這種方式可以將Dynamo幾何圖形原坐標導入到當前打開的Civil 3D文檔中,2種方式所對應的Dynamo原生節點依次如圖4—5所示。

圖4 從AutoCAD中選擇對象

圖5 由Dynamo幾何對象創建AutoCAD對象
在Dynamo中選擇使用特定功能節點或者開發的自定義節點,以定義關系和構成自定義算法處理各種應用程序,可供重復使用,達到解決特定問題(從處理數據到生成幾何圖形)的目的。Dynamo具有強大的數據組織方式,通過列表的操作,可實現數據重構、生成特定序列、構成復雜邏輯關系,如圖6所示的面板壩趾板結構參數化建模Dynamo自定義算法操作序列。
用戶可以通過在“Dynamo自定義節點”內嵌套其他節點來構建自定義節點,借助此過程,自定義節點可讓Dynamo用戶設計清晰且直觀的圖形,如圖7所示面板壩趾板結構參數化建模自定義節點。

圖7 趾板結構體型參數化設計自定義節點
在Civil 3D軟件中打開已經選定好的面板壩趾板線圖形文檔,啟動Dynamo可視化編程插件,打開編寫好的Dynamo可視化程序文件“趾板結構體型參數化設計.dyn”。
分別點擊Dynamo“拾取壩軸線、趾板線”節點界面中的“選擇”按鈕,在Civil 3D中依次拾取壩軸線、趾板線,選擇成功后,“拾取壩軸線、趾板線”節點界面由橙黃色變為灰色。在“基本參數輸入”代碼塊中,按照工程經驗結合設計規程規范輸入相應基本參數,參數輸入完成后點擊Dynamo視圖左下角“運行”按鈕,程序將執行“趾板結構體型參數化設計”節點。當Dynamo視圖左下角“運行”按鈕右側出現“運行完成”提示時,查看Civil 3D當前打開活動文檔,趾板結構體型參數化模型已經生成,生成的模型可導出為“*.sat”文件,導入到大體積配筋軟件進行配筋。
(1)調整趾板線拐點前后漸變段長度
在Dynamo中通過調整基本參數輸入代碼塊中的“//拐點前偏移距離”提示語下的具體參數,可實現趾板線拐點前趾板模型漸變段長度的動態變更;同樣,當在Dynamo中通過調整基本參數輸入代碼塊中的“//拐點后偏移距離”提示語下的具體參數,可實現趾板線拐點后趾板模型漸變段長度的動態變更。與此同時,當趾板拐點漸變段長度發生變化時,相應的相鄰2段趾板在連接點處的異形過渡趾板結構也會自動調整,如圖9所示。

圖9 相鄰兩段趾板在連接點處的異形過渡趾板結構
(2)調整趾板變寬變厚過渡段長度
本文在確定趾板變寬變厚位置點時,按照一般情況,即趾板變寬變厚位置處于趾板中間部分,趾板寬度和厚度變化一一對應,不考慮趾板在拐點處的寬度和厚度的變化,且左右岸趾板寬度和厚度變化位置處于同一高程位置處。依據規程規范,結合工程經驗,將確定好的趾板變寬變厚位置高程點輸入到代碼塊“//趾板變寬變厚點高程[輸入浮點數]”提示的下一行中即可完成趾板變寬變厚位置點的確定。按照確定的趾板變寬變厚位置點,在代碼塊相應位置輸入趾板寬度和對應的趾板厚度數據。當在Dynamo中通過調整基本參數輸入代碼塊中的“//趾板寬度變化漸變長度”提示語下的長度數據時,可實現趾板變寬變厚位置點趾板模型漸變段長度的動態變更。趾板變寬變厚位置點的異形過渡趾板結構如圖10所示。
當岸坡坡度較陡,甚至趾板走向與壩軸線大角度相交或者垂直時,通過編寫的特定算法可以有效解決當趾板“X”線垂直壩軸線時無法正常生成趾板結構體型參數化模型的問題,同時還可以達到與相鄰段標準段趾板結構平順過渡的目的。趾板走向與壩軸線大角度相交或者垂直時趾板結構體型,如圖11所示。

圖11 趾板走向與壩軸線大角度相交或者垂直時趾板結構體型
趾板結構體型參數化設計Dynamo功能節點可實現模型隨基本輸入參數的變化發生相應動態調整,可根據實際情況調整壩軸線、趾板線平面位置以及面板壩設計基本參數,從而實現快速動態變更模型的目的。
本文借助Dynamo中的幾何圖元和邏輯計算模塊,編寫趾板結構體型參數化設計特定算法,極大簡化了趾板設計過程,給出了趾板結構體型出現不連續情況下的解決方案,有效解決了當趾板“X”線垂直壩軸線時無法正常生成趾板結構參數化模型的問題,實現了參數快速驅動趾板結構模型更新的目的,取得了良好的效果,對混凝土面板堆石壩設計具有很大的工程實用價值。