999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Dynamo的異性水工建筑物快速建模技術研究

2021-08-03 06:26:26杰德爾別克馬迪尼葉提賈國新
水利規劃與設計 2021年7期
關鍵詞:模型

杰德爾別克·馬迪尼葉提,賈國新,晉 強

(1. 新疆農業大學水利與土木工程學院,新疆 烏魯木齊 830052;2. 河海大學水利水電學院,江蘇 南京 210098)

建筑信息模型(Building Information Modeling, BIM)是以三維數字技術為基礎,在一個模型中集成了建筑、結構、電氣、施工、造價等各方面信息,各部門在設計和修改各自信息時皆使用該模型[1],實現信息共享,從而大大減少了各部門在信息傳遞和協調過程中繁雜的申請和重建的工作[2- 3]。

得益于其出色的信息協調能力,近些年來BIM技術在水利水電行業中也獲得了廣泛的應用。但水利工程中異型構件較多,比如翼墻、拱壩、墊層、廊道、蝸殼、尾水管等[4],Autodesk Revit作為一種常用的BIM技術實現軟件,雖然提供了很多內置族,但大多為建筑行業中的梁、柱、窗等較為規則的結構[5],對于水利工程中的異型構件并不適用。若是采用常規建族的方法,首先Revit并不支持對于多層樣條曲線(如雙曲拱壩)的放樣操作;其次,由于水工結構的特殊性,對同一種功能的構件,在不同項目中的形狀有很大不同,導致模型不能重復修改使用。而Dynamo提供了相應的參數化設計功能和強大的異形體建模能力,可以輔助進行異型構件開發及快速建模。

1 Dynamo技術及優點

Dynamo是一款運行在Autodesk Revit上的可視化編程插件,其通過讓用戶使用“節點”的不同組合,讓用戶自由創建自己所需要的參數化設計模型、批量修改參數、批量修改或導出模型屬性與幾何屬性等等,將工程師從機械的重復勞動中解脫出來,大大提高了設計效率。

運用Dynamo進行參數化設計還有以下優點:

(1)操作簡單。其基于可視化的編程界面,讓不擁有編程基礎的人也能很快上手[6]。

(2)參數化設計。通過更改初始條件參數就可以更改生成的模型[7]。

(3)可持續性。可以通過不斷積累自定義節點,為后續的設計提供支持[8]。

(4)支持二次開發。支持在其中的IronPython節點中調用Revit API,實現強大的二次開發功能。

(5)代碼開源。在全球最大的社交編程及代碼托管網站GitHub中可以下載Dynamo的源代碼,實現代碼的自定義修改,添加自定義功能。

(6)節點庫豐富。通過在線節點管理,可以在網絡節點庫中下載自己所需要的節點[9],并可以分享自己的節點,不斷壯大網絡節點庫。

2 水電站蝸殼參數化快速建模技術

2.1 蝸殼參數化建模設計思路

蝸殼是水電站建筑物中應用最普遍的一種過流部件,一般在反擊式水輪機組中使用。蝸殼將水流均勻導入水輪機,同時在導水機構前形成必要的環量以減輕導水輪機的工作強度,使機組運行平穩、高效。由于蝸殼各斷面的尺寸不一樣,在建模過程中不斷定義工作平面和對應參數,在建模過程中帶來的一定的困難,通過Dynamo可視化節點可以在短時間內通過幾個重要的節點,導入數據和創建出復雜的蝸殼模型。以金屬蝸殼為主,建模思路如下:

(1)殼包角、進口斷面半徑、各斷面半徑、各斷面外圍輪廓半徑、流量等重要參數編成一定格式導入到Dynamo中。

(2)通過讀取的信息,并利用Curve.PlaneAt Parameter重要節點定位蝸殼中心和畫出每個斷面半徑。

(3)對每個斷面進行徑向平面的定義,并通過Circle.ByCenterPointRadius重要節點連線畫出蝸管軸網曲線。

(4)對每個斷面各半徑進行讀取,并通過Solid.Byloft重要節點創建實體。

(5)根據設計創建適當的外圍混凝土通過Solid.Difference重要節點進行相切。

2.2 蝸殼參數化建模技術難點解決

2.2.1數據導入

導入數據之前需要把不用的數據刪除,把各包角角度、各包角所對應的內外半徑、各斷面半徑等重要參數編輯好,并通過Data.ImportExcel重要節點讀取數據,讀取時注意英文字母大小寫、文件目錄及所在的工作表名稱等信息。表1為蝸殼主要尺寸導入表。

表1 蝸殼尺寸表

2.2.2蝸管軸網的繪制

由于蝸殼每個包角斷面尺寸不一致,同時每個斷面繪制平面也不一樣,在通常的建模的過程中需要不停的定義工作平面。在Dynamo中建模,首先需要把各斷面半徑通過Line.ByStartPointEndPoint節點連線,定義好各半徑端點,之后通過Curve.PlaneAtParameter節點定義每個斷面工作平面,最后通過Circle.ByCenterPointRadius節點連線繪制出蝸管軸網。在后期的導出族文件步驟中,可以把不需要的建模節點隱藏掉。具體節點關系如圖1所示。

圖1 蝸管軸網繪制節點

2.2.3蝸殼實體創建

在蝸管軸網基礎上,通過Circle.ByCenterPoint RadiusNormal節點進一步定義每個斷面進水半徑,之后通過Solid.ByLoft節點連接各個不同半徑的斷面圖形,創建蝸殼實體結構模型。最后實體模型需要跟蝸殼進水段通過Solid.ByUnion節點進行一定的銜接。

2.2.4模型剪切

由于金屬蝸殼有外圍的混凝土,在建模過程中需要從Revit創建的外圍混凝土把實體的蝸殼模型通過Solid.Difference節點進行布爾運算,剪切出空心蝸殼模型,在此模型基礎上可以進一步創建和布置座環、水輪機等其他構件。主要的節點關系如圖2所示。圖3為創建出來的最終蝸殼模型。

圖2 模型剪切主要節點

3 雙曲拱壩參數化快速建模技術

3.1 雙曲拱壩參數化建模設計思路

圖3 蝸殼參數化模型

雙曲拱壩是一種高次超靜定空間殼體結構,外形和邊界條件都很復雜,其壩體上游面受到的荷載通過拱的作用傳遞到兩岸壩肩,并通過梁的作用傳遞到壩基,承載能力很大,大大減少了壩身斷面面積,從而減少了混凝土用量,故而在水工建筑中得到了廣泛的應用。

拱壩整體三維模型的設計思路如下:

(1)利用已經設計好的各控制高程的兩端及中心拱厚、拱冠梁上游坐標、兩端圓心角等參數導入Excel表格中。

(2)通過Dynamo讀取表格信息,根據壩型計算出各控制高程的拱弧放樣點坐標。

(3)通過樣條曲線NurbsCurve.ByPoints節點連接放樣點得到每個控制高程的拱弧線。

(4)通過Solid.Loft功能連接每層拱弧線放樣出拱壩實體。

(5)將實體導入到Revit項目中,或者導出為sat二進制文件。

建立完成整體三維模型后,考慮對該三維模型的細致操作,如邊角剪切、橫縫剪切、空間廊道生成等,寫成一個個小功能,方便用戶自行選擇是否使用。

3.2 雙曲拱壩建模主要技術難點解決

3.2.1將數據導入Excel表格

數據的導入可以從CAD圖紙中的數據表格中導入,且數據填寫格式應當滿足規定的要求,例如橢圓型拱壩的數據表見表2。

該表每列數據應滿足每列標題要求的內容,每一行則代表每個特征高程的數據,特征高程數量沒有限制。要注意的是,第二列“拱冠梁上游坐標”以底部拱冠處為零點,以上游為負,下游為正。

3.2.2使用Data.ImportExcel節點讀取數據

讀取節點需要先通過Input節點打開Excel表格所在文件目錄,并通過指定工作表名稱,索引到形體數據所在的工作表,最終結果存放于data中,如圖4所示。

圖4 數據讀取節點

3.2.3使用Python節點處理數據

由于在Dynamo界面中編寫IronPython腳本時其字體較小,輔助功能不全,調試不便,導致編寫不是很方便,本次IronPython腳本文件的編寫將在Microsoft Visual Studio中編寫完成,并使用Python Script From String節點運行該腳本文件,如圖5所示。

該腳本中生成拱弧放樣點集的原理如下:

(1)首先建立局部坐標系,原點在拱壩底部拱軸線的拱冠處,x方向以左岸為正,y方向以下游為正,z方向指向上。

(2)再由不同類型的拱壩的拱軸線方程分別推導,得到拱弧線任意一點坐標與其對應半中心角的參數方程,其推導過程在《拱壩CADC的理論與實踐》一書中有詳細介紹,例如對于橢圓拱壩,其參數方程如下[10- 11]:

表2 橢圓型拱壩體型數據表

圖5 IronPython腳本導入節點

(1)

式中,X,Y—局部坐標;A、B—橢圓長短軸長;φ—半中心角,T—拱冠厚;yc—拱冠坐標。

(3)由于已知各高程拱端半中心角,可以將每個高程半中心角等分為n份,由此求出每份對應點的坐標,即可得到拱弧中心線的放樣點集。

(4)由于拱弧從拱端到拱冠變拱厚,因此上下游拱弧不再為標準型,可以通過密切圓包絡切線法[2]擬合求得各密切圓上的切點,這些切點的集合即可作為拱弧放樣點的集合。

Python運行完成的結果將在最后的OUT中輸出,結果為腳本中定義的拱壩對象,這樣在后續的處理中,只需要調用該對象中的方法就可以完成對拱壩的各種放樣剪切操作。

(5)生成拱弧線。首先獲取上一步中生成的拱壩對象,并獲取對象中的存放點集的實例變量outPoints,可以進一步得到各層特征高程拱弧線上點集的坐標,其以數組的形式存放,數組的結構為:

[...

[特征高程一拱弧的點集,以順時針排列]

[特征高程二拱弧的點集,以順時針排列]

[特征高程三拱弧的點集,以順時針排列]

...]

其次,使用對象中的createCrossCurves方法生成拱弧線數組,本來可以直接在Dynamo界面上用NurbsCurve.ByPoints節點直接放樣,但因為拱壩上下游拱圈可使用樣條曲線放樣生成,兩端為直線,因此需要知道兩端的點在數組中的位置,最后再用PolyCurve節點將組成拱弧的四條曲線組合為一條連續的曲線。這樣的復雜操作不便于在Dynamo可視化界面中通過節點進行,但使用Python將很好處理,于是將該方法寫入對象之中,直接調用即可。

(6)生成拱壩實體,導入Revit。這一步較為簡單,直接使用上一步生成的拱圈線數組,利用Solid.Loft節點,即可生成拱壩實體,dynamo中效果如圖6所示。

圖6 Dynamo中拱壩三維實體圖

4 批量剪切功能的實現

批量剪切在水工建筑物建模過程中經常遇到的一個難點,尤其是對壩體的橫縫與縱縫進行處理時,需要不停地定義每一個縫口,之后每一個壩段之間進行一個相互的銜接處理,本文以拱壩橫、縱縫為例說明Dynamo批量剪切的應用。

4.1 兩端剪切功能

拱壩兩端為了適應地形條件,往往需要修改一定的角度,每層高程的剪切角度可能不一樣,可以通過放樣操作將各層剪切圖形放樣為實體,而其各層剪切角度可以由Excel表格導入,其格式見表3。

表3 拱壩剪切數據表

導入后,使用自定義的cutPoints方法進行切角操作,即可進行拱壩兩端的剪切,該方法的原理如下:

(1)由于指定的切角高程并不在特征高程上,故該高程的拱端坐標并不知道,解決方案是將之前的拱壩對象中的放樣點集outPoints數組進行轉置,由上一節可知該數組是將各高程的拱弧點集分別放于一個數組中,最后將這些數組組成一個二維數組,將其轉置后,則是每一個小數組中存放的是豎直方向的一列點。

(2)將這些豎直方向點集分別由樣條曲線NurbsCurve放樣,即可得到拱壩的豎直輪廓線。

(3)利用指定剪切高程的水平面與豎直輪廓線相交,通過Geometry.IntersectAll節點可以得到交點的集合,該交點集合即為對應高程的拱弧輪廓點集。

(4)由拱弧輪廓點集得到拱弧兩端邊界的直線,將該直線在中點處旋轉列表中指定角度,與原直線閉合后可以形成一個三角形,由此可以得到各高程需要剪切的三角形。

(5)將不同高程的三角形通過Loft放樣后可以得到需要剪切的實體,最后通過Solid.Difference節點進行bool運算,得到剪切后的壩體。

其中最后兩步也可用下面的方法實現:

將拱弧端部直線旋轉一定角度后,利用Geometry.Intersect節點求得該直線與對應的上下游拱弧的交點,再利用該交點與之前的拱弧放樣點重新組合形成新的拱弧放樣點集,最后重新生成拱壩模型。結果如圖7所示。

圖7 拱壩右端切角三維圖

4.2 橫縫剪切功能

橫縫是壩體內的主要接縫,在實際工程中,不同的壩段可能會設置不同形式的橫縫,為改善壩體應力分布,不同的高程也可能采用不同形式的橫縫,而橫縫的形式可大致分為三種:鉛直面橫縫、扭曲面橫縫、折縫。

其中,鉛直面橫縫相當于是一條直線自壩體某一高程“一刀切”而形成的豎直平面;扭曲面橫縫的縫面是一個連續的扭曲面,可以認為由一條直線自上而下隨高程扭轉一定角度而形成的扭曲面;折縫的縫面也為一平面,但不是鉛直平面,而是傾斜平面。

該功能的實現同樣可以通過Excel表格導入橫縫坐標信息,但橫縫坐標往往為工程大地坐標,需要通過坐標轉換轉換為局部坐標,這有兩種方法:

(1)需要知道三處控制點大地坐標與其對應的局部坐標,通過三維坐標轉換公式即可解方程,并求得各坐標系的偏轉角度和各方向原點距離,從而將所有大地坐標轉化為局部坐標。

(2)首先指定大地坐標系的方位角,和局部坐標系原點處的大地坐標,即可直接由坐標轉換公式(3)(4)轉換為局部坐標系。

X1=xcos(α)-ysin(α)

(3)

Y1=ycos(α)-xsin(α)

(4)

式中,X1、Y1—局部坐標,x、y—大地坐標,α—大地坐標方位角。

得到局部坐標后,就可以生成各高程橫縫線,然后通過Surface.Loft節點將橫縫線放樣生成縫面,當然各種形式的橫縫相連處應當使用PolySurface將各縫面連為一體,再將橫縫面加厚生成實體,最后由拱壩實體與橫縫實體進行布爾運算,就可得到剪切了橫縫的壩體。

由于在剪切的過程中大地坐標系轉換為局部坐標系會有誤差,導致壩體剪切不完全,比如橫縫上下游面的坐標可能在壩面以內幾毫米處,此時橫縫剪切時該處橫縫就不會在壩體表面顯示出來,此時,可以通過將橫縫面向四周延伸一定距離,從而使壩體剪切完全,延伸方法如下:

(1)對于平面類型橫縫面,可由其法向向四周擴展,當然,與其他縫相交處的邊界不進行擴展。

(2)對于扭縫,可將組成其放樣的直線向兩端延伸,而放樣的導引線仍然使用原直線組成的導引線,最后將延長的直線進行放樣生成曲面。

最后得到的橫縫剪切后的模型如圖8所示(為表現明顯,橫縫寬度比實際大)。

圖8 壩體橫縫剪切三維模型

5 結論

以Dynamo可視化編程技術可以實現復雜水工建筑物的參數化開發,較常規建模方法相比大大提高了工程師的設計效率,也可以通過調用RevitAPI的方式增強Revit的基本功能,快速實驗壩體分縫切割工作,減少工程師的重復勞動。此建模技術與思路可推廣用于其它各種異型構件的開發,從而實現快速參數化建模操作。

猜你喜歡
模型
一半模型
一種去中心化的域名服務本地化模型
適用于BDS-3 PPP的隨機模型
提煉模型 突破難點
函數模型及應用
p150Glued在帕金森病模型中的表達及分布
函數模型及應用
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
3D打印中的模型分割與打包
主站蜘蛛池模板: 午夜毛片免费观看视频 | 26uuu国产精品视频| 毛片在线播放网址| 国产福利在线观看精品| 国产乱人伦AV在线A| 国产91小视频| AV熟女乱| 精品久久久无码专区中文字幕| 人妻精品久久无码区| 亚洲免费毛片| 亚洲精品成人片在线观看 | 污污网站在线观看| 精品亚洲欧美中文字幕在线看| 91青草视频| 久久无码免费束人妻| 欧美区一区| 国产精品一区不卡| 国产微拍一区| 国产精品专区第1页| 国产午夜福利在线小视频| 97视频在线观看免费视频| 亚洲精品777| 久久精品国产电影| 国产精品自在在线午夜| 欧美午夜理伦三级在线观看| 69精品在线观看| 欧美日韩另类国产| 成人中文在线| 五月激情婷婷综合| 欧美福利在线观看| 欧美激情第一欧美在线| 国模私拍一区二区| 潮喷在线无码白浆| 国产又粗又猛又爽| 欧美成人手机在线观看网址| 人妻21p大胆| 精品国产成人高清在线| 狠狠色噜噜狠狠狠狠色综合久| 午夜丁香婷婷| 九色免费视频| 欧洲一区二区三区无码| 在线免费无码视频| 国产在线观看精品| 亚洲天堂久久新| 操美女免费网站| 一级全黄毛片| 黄色免费在线网址| 色悠久久综合| 综合色区亚洲熟妇在线| 欧美日韩午夜视频在线观看| 精品無碼一區在線觀看 | 手机在线免费不卡一区二| 亚洲视频三级| 一本无码在线观看| 国产99精品视频| 国产成人h在线观看网站站| 青青草国产免费国产| 亚洲中文无码av永久伊人| 婷婷色中文| 国产极品美女在线观看| av在线人妻熟妇| 欧美激情首页| 在线看AV天堂| 在线日本国产成人免费的| 欧美激情视频在线观看一区| 69视频国产| a色毛片免费视频| 国产呦精品一区二区三区下载| 成人免费网站在线观看| 欧美www在线观看| 日韩精品一区二区三区视频免费看| 国产一区二区人大臿蕉香蕉| 玩两个丰满老熟女久久网| 国产精品视频公开费视频| 一级黄色欧美| 青草视频在线观看国产| 尤物在线观看乱码| 国产网友愉拍精品| 国产欧美日韩资源在线观看 | 亚洲AV色香蕉一区二区| 99国产精品国产| 鲁鲁鲁爽爽爽在线视频观看|