国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

2021-08-03 06:26:26杰德爾別克馬迪尼葉提賈國新
關(guān)鍵詞:橫縫拱壩蝸殼

杰德爾別克·馬迪尼葉提,賈國新,晉 強(qiáng)

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

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

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

1 Dynamo技術(shù)及優(yōu)點(diǎn)

Dynamo是一款運(yùn)行在Autodesk Revit上的可視化編程插件,其通過讓用戶使用“節(jié)點(diǎn)”的不同組合,讓用戶自由創(chuàng)建自己所需要的參數(shù)化設(shè)計(jì)模型、批量修改參數(shù)、批量修改或?qū)С瞿P蛯傩耘c幾何屬性等等,將工程師從機(jī)械的重復(fù)勞動中解脫出來,大大提高了設(shè)計(jì)效率。

運(yùn)用Dynamo進(jìn)行參數(shù)化設(shè)計(jì)還有以下優(yōu)點(diǎn):

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

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

(3)可持續(xù)性。可以通過不斷積累自定義節(jié)點(diǎn),為后續(xù)的設(shè)計(jì)提供支持[8]。

(4)支持二次開發(fā)。支持在其中的IronPython節(jié)點(diǎn)中調(diào)用Revit API,實(shí)現(xiàn)強(qiáng)大的二次開發(fā)功能。

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

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

2 水電站蝸殼參數(shù)化快速建模技術(shù)

2.1 蝸殼參數(shù)化建模設(shè)計(jì)思路

蝸殼是水電站建筑物中應(yīng)用最普遍的一種過流部件,一般在反擊式水輪機(jī)組中使用。蝸殼將水流均勻?qū)胨啓C(jī),同時在導(dǎo)水機(jī)構(gòu)前形成必要的環(huán)量以減輕導(dǎo)水輪機(jī)的工作強(qiáng)度,使機(jī)組運(yùn)行平穩(wěn)、高效。由于蝸殼各斷面的尺寸不一樣,在建模過程中不斷定義工作平面和對應(yīng)參數(shù),在建模過程中帶來的一定的困難,通過Dynamo可視化節(jié)點(diǎn)可以在短時間內(nèi)通過幾個重要的節(jié)點(diǎn),導(dǎo)入數(shù)據(jù)和創(chuàng)建出復(fù)雜的蝸殼模型。以金屬蝸殼為主,建模思路如下:

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

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

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

(4)對每個斷面各半徑進(jìn)行讀取,并通過Solid.Byloft重要節(jié)點(diǎn)創(chuàng)建實(shí)體。

(5)根據(jù)設(shè)計(jì)創(chuàng)建適當(dāng)?shù)耐鈬炷镣ㄟ^Solid.Difference重要節(jié)點(diǎn)進(jìn)行相切。

2.2 蝸殼參數(shù)化建模技術(shù)難點(diǎn)解決

2.2.1數(shù)據(jù)導(dǎo)入

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

表1 蝸殼尺寸表

2.2.2蝸管軸網(wǎng)的繪制

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

圖1 蝸管軸網(wǎng)繪制節(jié)點(diǎn)

2.2.3蝸殼實(shí)體創(chuàng)建

在蝸管軸網(wǎng)基礎(chǔ)上,通過Circle.ByCenterPoint RadiusNormal節(jié)點(diǎn)進(jìn)一步定義每個斷面進(jìn)水半徑,之后通過Solid.ByLoft節(jié)點(diǎn)連接各個不同半徑的斷面圖形,創(chuàng)建蝸殼實(shí)體結(jié)構(gòu)模型。最后實(shí)體模型需要跟蝸殼進(jìn)水段通過Solid.ByUnion節(jié)點(diǎn)進(jìn)行一定的銜接。

2.2.4模型剪切

由于金屬蝸殼有外圍的混凝土,在建模過程中需要從Revit創(chuàng)建的外圍混凝土把實(shí)體的蝸殼模型通過Solid.Difference節(jié)點(diǎn)進(jìn)行布爾運(yùn)算,剪切出空心蝸殼模型,在此模型基礎(chǔ)上可以進(jìn)一步創(chuàng)建和布置座環(huán)、水輪機(jī)等其他構(gòu)件。主要的節(jié)點(diǎn)關(guān)系如圖2所示。圖3為創(chuàng)建出來的最終蝸殼模型。

圖2 模型剪切主要節(jié)點(diǎn)

3 雙曲拱壩參數(shù)化快速建模技術(shù)

3.1 雙曲拱壩參數(shù)化建模設(shè)計(jì)思路

圖3 蝸殼參數(shù)化模型

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

拱壩整體三維模型的設(shè)計(jì)思路如下:

(1)利用已經(jīng)設(shè)計(jì)好的各控制高程的兩端及中心拱厚、拱冠梁上游坐標(biāo)、兩端圓心角等參數(shù)導(dǎo)入Excel表格中。

(2)通過Dynamo讀取表格信息,根據(jù)壩型計(jì)算出各控制高程的拱弧放樣點(diǎn)坐標(biāo)。

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

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

(5)將實(shí)體導(dǎo)入到Revit項(xiàng)目中,或者導(dǎo)出為sat二進(jìn)制文件。

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

3.2 雙曲拱壩建模主要技術(shù)難點(diǎn)解決

3.2.1將數(shù)據(jù)導(dǎo)入Excel表格

數(shù)據(jù)的導(dǎo)入可以從CAD圖紙中的數(shù)據(jù)表格中導(dǎo)入,且數(shù)據(jù)填寫格式應(yīng)當(dāng)滿足規(guī)定的要求,例如橢圓型拱壩的數(shù)據(jù)表見表2。

該表每列數(shù)據(jù)應(yīng)滿足每列標(biāo)題要求的內(nèi)容,每一行則代表每個特征高程的數(shù)據(jù),特征高程數(shù)量沒有限制。要注意的是,第二列“拱冠梁上游坐標(biāo)”以底部拱冠處為零點(diǎn),以上游為負(fù),下游為正。

3.2.2使用Data.ImportExcel節(jié)點(diǎn)讀取數(shù)據(jù)

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

圖4 數(shù)據(jù)讀取節(jié)點(diǎn)

3.2.3使用Python節(jié)點(diǎn)處理數(shù)據(jù)

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

該腳本中生成拱弧放樣點(diǎn)集的原理如下:

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

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

表2 橢圓型拱壩體型數(shù)據(jù)表

圖5 IronPython腳本導(dǎo)入節(jié)點(diǎn)

(1)

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

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

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

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

(5)生成拱弧線。首先獲取上一步中生成的拱壩對象,并獲取對象中的存放點(diǎn)集的實(shí)例變量outPoints,可以進(jìn)一步得到各層特征高程拱弧線上點(diǎn)集的坐標(biāo),其以數(shù)組的形式存放,數(shù)組的結(jié)構(gòu)為:

[...

[特征高程一拱弧的點(diǎn)集,以順時針排列]

[特征高程二拱弧的點(diǎn)集,以順時針排列]

[特征高程三拱弧的點(diǎn)集,以順時針排列]

...]

其次,使用對象中的createCrossCurves方法生成拱弧線數(shù)組,本來可以直接在Dynamo界面上用NurbsCurve.ByPoints節(jié)點(diǎn)直接放樣,但因?yàn)楣皦紊舷掠喂叭墒褂脴訔l曲線放樣生成,兩端為直線,因此需要知道兩端的點(diǎn)在數(shù)組中的位置,最后再用PolyCurve節(jié)點(diǎn)將組成拱弧的四條曲線組合為一條連續(xù)的曲線。這樣的復(fù)雜操作不便于在Dynamo可視化界面中通過節(jié)點(diǎn)進(jìn)行,但使用Python將很好處理,于是將該方法寫入對象之中,直接調(diào)用即可。

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

圖6 Dynamo中拱壩三維實(shí)體圖

4 批量剪切功能的實(shí)現(xiàn)

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

4.1 兩端剪切功能

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

表3 拱壩剪切數(shù)據(jù)表

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

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

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

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

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

(5)將不同高程的三角形通過Loft放樣后可以得到需要剪切的實(shí)體,最后通過Solid.Difference節(jié)點(diǎn)進(jìn)行bool運(yùn)算,得到剪切后的壩體。

其中最后兩步也可用下面的方法實(shí)現(xiàn):

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

圖7 拱壩右端切角三維圖

4.2 橫縫剪切功能

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

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

該功能的實(shí)現(xiàn)同樣可以通過Excel表格導(dǎo)入橫縫坐標(biāo)信息,但橫縫坐標(biāo)往往為工程大地坐標(biāo),需要通過坐標(biāo)轉(zhuǎn)換轉(zhuǎn)換為局部坐標(biāo),這有兩種方法:

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

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

X1=xcos(α)-ysin(α)

(3)

Y1=ycos(α)-xsin(α)

(4)

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

得到局部坐標(biāo)后,就可以生成各高程橫縫線,然后通過Surface.Loft節(jié)點(diǎn)將橫縫線放樣生成縫面,當(dāng)然各種形式的橫縫相連處應(yīng)當(dāng)使用PolySurface將各縫面連為一體,再將橫縫面加厚生成實(shí)體,最后由拱壩實(shí)體與橫縫實(shí)體進(jìn)行布爾運(yùn)算,就可得到剪切了橫縫的壩體。

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

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

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

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

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

5 結(jié)論

以Dynamo可視化編程技術(shù)可以實(shí)現(xiàn)復(fù)雜水工建筑物的參數(shù)化開發(fā),較常規(guī)建模方法相比大大提高了工程師的設(shè)計(jì)效率,也可以通過調(diào)用RevitAPI的方式增強(qiáng)Revit的基本功能,快速實(shí)驗(yàn)壩體分縫切割工作,減少工程師的重復(fù)勞動。此建模技術(shù)與思路可推廣用于其它各種異型構(gòu)件的開發(fā),從而實(shí)現(xiàn)快速參數(shù)化建模操作。

猜你喜歡
橫縫拱壩蝸殼
熱膨脹系數(shù)對混凝土路面板的設(shè)計(jì)影響研究
Phytochemicals targeting NF-κB signaling:Potential anti-cancer interventions
焊接蝸殼泵模型開發(fā)
污水泵蝸殼斷裂原因分析
拱壩動力模型破壞試驗(yàn)橫縫測量技術(shù)研究
淺議高拱壩壩踵實(shí)測與計(jì)算應(yīng)力差異原因
砌石雙曲拱壩拱冠梁設(shè)計(jì)的探討和實(shí)踐
考慮法向初始抗拉強(qiáng)度和切向抗剪強(qiáng)度變化的拱壩橫縫模型研究
如何在瀝青混凝土道路的施工縫施工中降低裂縫發(fā)生率的技術(shù)淺析
蝸殼差壓法在印尼ASAHAN一級水電站的應(yīng)用
商水县| 丰原市| 广宗县| 乌审旗| 灵寿县| 海南省| 塔城市| 东山县| 尼勒克县| 延长县| 山阴县| 临海市| 新蔡县| 玉溪市| 苍溪县| 澎湖县| 鞍山市| 赤城县| 盐山县| 黄龙县| 嘉鱼县| 晋中市| 日土县| 南澳县| 朝阳县| 黔西| 浦城县| 三河市| 桑日县| 富裕县| 博白县| 渭源县| 宜丰县| 仁寿县| 江城| 册亨县| 兴仁县| 邻水| 永兴县| 汤阴县| 定南县|