本發(fā)明涉及水利工程的計算機輔助設(shè)計技術(shù)領(lǐng)域,特別是一種基于VB(Visual Basic)和CATIA的斜心墻土石壩建模方法。
背景技術(shù):
在世界上第一臺計算機問世后,計算機技術(shù)以驚人的速度發(fā)展,計算機輔助設(shè)計(CAD)技術(shù)已深入應(yīng)用到相關(guān)領(lǐng)域,傳統(tǒng)尺規(guī)作圖也基本退出歷史舞臺。在計算機技術(shù)日臻成熟的今天,二維CAD技術(shù)在水利行業(yè)工程中也得到了廣泛應(yīng)用。目前的設(shè)計模式高度成熟,具有完備的制圖規(guī)范,且各對象不包含模型信息、對象之間不存在邏輯關(guān)系,故設(shè)計方法簡單,但其直觀性和糾錯能力差、編輯修改復(fù)雜繁瑣。
隨著數(shù)字化的發(fā)展,基于三維的CAD技術(shù)開始得到應(yīng)用,三維設(shè)計的集成化、智能化、可視化、網(wǎng)絡(luò)化、并行化等優(yōu)勢得以展現(xiàn),是技術(shù)進步的必然趨勢。目前國內(nèi)外流行的三維設(shè)計軟件有很多,CATIA是在市場上有較為影響力的一款。CATIA是法國達索公司開發(fā)的一款集CAD/CAE/CAM于一體的BIM(建筑信息模型)軟件,具有強大的實體建模和曲面建模功能,可通過參數(shù)化建模實現(xiàn)所有對象的建立與修改。該軟件目前正廣泛應(yīng)用于航空航天、汽車制造、造船、機械制造等眾多行業(yè)和領(lǐng)域。由于缺乏普遍適用的統(tǒng)一規(guī)范和水利工程具有唯一性及復(fù)雜性,三維設(shè)計方法的應(yīng)用依舊呈現(xiàn)出一種較為落后的狀態(tài),CATIA在水利行業(yè)的運用也尚未得到普及。
水利工程壩址處的地質(zhì)條件復(fù)雜,不易勘察清楚,在初步設(shè)計階段的設(shè)計方案不一定為最佳方案。在施工過程中,隨著施工的深入,地質(zhì)條件進一步明了,潛在的軟弱夾層或低強度巖基才會暴露出來。故由于地址條件的不確定性,建筑物的結(jié)構(gòu)形式和尺寸及壩軸線位置等參數(shù)都有調(diào)整的可能性。由于水利工程的復(fù)雜性,在施工過程中各結(jié)構(gòu)之間的局部矛盾也時有發(fā)生。這些問題在傳統(tǒng)的二維設(shè)計模式下將產(chǎn)生較大工程量,不利于提升設(shè)計效率。因此傳統(tǒng)設(shè)計模式的表現(xiàn)方式抽象,糾錯能力低下,極大限制了設(shè)計效率的提升。
技術(shù)實現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是克服現(xiàn)有技術(shù)的不足而提供一種基于VB和CATIA的斜心墻土石壩建模方法,基于VB和CATIA的信息化建模方法,利用了軟件的二次開發(fā)、參數(shù)化及三維可視化特性,提高水利工程的設(shè)計效率。
本發(fā)明為解決上述技術(shù)問題采用以下技術(shù)方案:
根據(jù)本發(fā)明提出的一種基于VB和CATIA的土石壩信息化建模方法,包括以下步驟:
步驟一、基于已有的地形地質(zhì)資料建立三維地形模型;
步驟二、關(guān)聯(lián)VB與CATIA,用于實現(xiàn)VB與CATIA的參數(shù)對接,保證VB能夠識別CATIA的關(guān)鍵字和VB中的代碼能在CATIA中執(zhí)行;
步驟三、在VB中設(shè)計包含位置控制參數(shù)和形狀控制參數(shù)的VB界面,位置控制參數(shù)和形狀控制參數(shù)將通過VB界面的文本框輸入;所述位置控制參數(shù)為壩軸線端點坐標;
步驟四、編寫代碼,根據(jù)壩軸線端點坐標創(chuàng)建壩軸線;
步驟五、在VB中基于步驟四中建立的壩軸線實現(xiàn)壩體剖面的草圖編輯和實體拉伸,并基于步驟一中建立的三維地形模型實現(xiàn)布爾命令,并引用VB界面的文本框中的參數(shù),完成壩體的建模。
作為本發(fā)明所述的一種基于VB和CATIA的土石壩信息化建模方法進一步優(yōu)化方案,所述步驟一具體如下:根據(jù)已有地形圖提取等高線的坐標點,然后將所有的坐標點導(dǎo)入CATIA并擬合成曲面,以該曲面為限制生成三維地形模型。
作為本發(fā)明所述的一種基于VB和CATIA的土石壩信息化建模方法進一步優(yōu)化方案,所述步驟四具體如下:根據(jù)步驟三中的壩軸線端點坐標,在VB代碼編寫窗口中通過Set命令獲取CATIA中的三維地形模型,通過AddNewPointCoord命令創(chuàng)建壩軸線端點坐標的相應(yīng)點,通過AddNewLinePtPt命令創(chuàng)建壩軸線。
作為本發(fā)明所述的一種基于VB和CATIA的土石壩信息化建模方法進一步優(yōu)化方案,所述步驟五具體如下:通過Set命令獲取CATIA中的三維地形模型和壩軸線,并基于壩軸線創(chuàng)建一與壩軸線垂直的平面,通過Set reference命令獲取該平面并將其作為參考平面,通過CreatePoint命令和CreateLine命令在該參考平面上繪制壩體各部分的二維草圖,通過constraint命令使用步驟三中的形狀控制參數(shù)對二維草圖的輪廓尺寸進行約束,使壩殼、心墻和棱體排水的尺寸與所述步驟三中的形狀控制參數(shù)一致,通過pad命令對二維草圖進行拉伸形成實體,最后用布爾命令減去該實體與步驟一中的三維地形模型的重合部分,完成壩體設(shè)計。
作為本發(fā)明所述的一種基于VB和CATIA的土石壩信息化建模方法進一步優(yōu)化方案,所述形狀控制參數(shù)包括各壩頂高程和寬度、馬道頂部高程和寬度、壩體上下游坡度以及心墻頂部高程和上下游坡度;所述馬道頂部高程和寬度包括排水棱體的頂部高程和寬度,所述壩體上下游坡度包括排水棱體的坡度。
本發(fā)明采用以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)效果:
(1)本發(fā)明改變了傳統(tǒng)二維建模的直觀性不足的問題,通過三維模型,將設(shè)計對象更富有立體感地展示出來;解決了利用二維的CAD技術(shù)制圖時,因必要的反復(fù)修改導(dǎo)致大量重復(fù)工作的問題;在設(shè)計理念和方式上改變了傳統(tǒng)的設(shè)計模式,從信息化的角度使設(shè)計效率得到根本的提升,使設(shè)計成果更加準確;對本建模方法建立的模型進行更深層次的利用,可產(chǎn)生更高的效率效益;
(2)本發(fā)明以CATIA的三維建模功能為核心,將設(shè)計對象以直觀的三維模型呈現(xiàn),使模型清晰直觀,更加方便設(shè)計者闡述自己的設(shè)計理念;基于CATIA的進程外程序調(diào)用接口,通過VB語言對CATIA進行二次開發(fā),形成了一種模型參數(shù)易修改,模型生成自動化的信息化建模方式,減少了重復(fù)工作,提高了設(shè)計質(zhì)量;
(3)本發(fā)明所述的一種基于VB和CATIA的土石壩信息化建模方法,不僅適用于土石壩,也適用于諸如重力壩、拱壩、支墩壩等基本壩型;同時,基于本發(fā)明所建立的模型也可進一步進行填筑量計算、有限元分析及生成二維工程圖等工作;總之,由于本發(fā)明基于信息化的建模理念具有很好的普適性,可應(yīng)用于多種壩型,甚至各種水工結(jié)構(gòu),所建立的模型不僅僅局限于結(jié)構(gòu)展示,也可基于該模型進行深層次的分析,在水利行業(yè)具有很好的應(yīng)用前景。
附圖說明
圖1為本發(fā)明的方法流程圖;
圖2為本發(fā)明的VB界面圖;
圖3為本發(fā)明的壩體三維模型圖;
圖4為本發(fā)明的整體模型布置圖。
附圖中的標記解釋為:1為壩軸線,2為壩殼,3為心墻,4為排水棱體,5為三維地形模型。
具體實施方式
下面結(jié)合附圖對本發(fā)明的技術(shù)方案做進一步的詳細說明:
本發(fā)明的保護范圍并不僅僅局限于本實施方式的描述。
一種基于VB和CATIA的土石壩信息化建模方法,如圖1所示流程,具體步驟如下:
步驟一、基于已有的地形地質(zhì)資料建立如圖4所示的三維地形模型5:
根據(jù)已有地形圖提取等高線的坐標點,然后將所有坐標點導(dǎo)入CATIA并擬合成曲面,以該曲面為限制生成三維地形模型。
步驟二、關(guān)聯(lián)VB與CATIA:
在VB中根據(jù)需要引用相關(guān)的CATIA庫文件,并通過代碼關(guān)聯(lián)VB與CATIA,實現(xiàn)VB與CATIA的參數(shù)對接,保證在后續(xù)的二次開發(fā)中VB能識別CATIA的關(guān)鍵字和VB中的代碼能在CATIA中執(zhí)行。關(guān)聯(lián)代碼如下:
Dim catia As Object
On Error Resume Next
Set catia = GetObject(, "catia.application")
If Err.Number <> 0 Then
Set catia = CreateObject("catia.application")
catia.Visible = True
End If
On Error GoTo 0
步驟三、在VB中設(shè)計包含位置控制參數(shù)和形狀控制參數(shù)的如圖2所示的VB界面:
位置控制參數(shù)為壩軸線端點坐標;形狀控制參數(shù)包括壩頂高程和寬度、馬道頂部高程和寬度、壩體上下游坡度以及心墻頂部高程和上下游坡度;馬道頂部高程和寬度包括排水棱體的頂部高程和寬度,壩體上下游坡度包括排水棱體的坡度。
以上參數(shù)將通過VB界面的文本框輸入,保證二次開發(fā)中的參數(shù)可變性。此外,再設(shè)置命令控件保證命令調(diào)用的完整性。
步驟四、編寫代碼,根據(jù)壩軸線端點坐標創(chuàng)建壩軸線1:
根據(jù)步驟三中的壩軸線端點坐標,在VB代碼編寫窗口中通過“Set”命令獲取CATIA中的已有對象——三維地形模型,通過“AddNewPointCoord”命令創(chuàng)建壩軸線端點坐標的相應(yīng)點,通過“AddNewLinePtPt”命令創(chuàng)建壩軸線,完成創(chuàng)建壩軸線的二次開發(fā)過程。其中,由于VB與CATIA的連接,VB中的代碼能在CATIA中執(zhí)行。部分關(guān)鍵代碼如下:
‘使用Open打開地形的三維模型所在的完整路徑后,再獲取Part對象
Set partDocument1 = catia.Documents.Open(“完整文件路徑”)
Set part1 = partDocument1.Part
…………
‘以VB中的壩軸線端點坐標創(chuàng)建兩個點
Set hybridShapePointCoord1 = hybridShapeFactory1.AddNewPointCoord(Val(X1.Text), Val(Y1.Text), Val(Z1.Text))
…………
Set hybridShapePointCoord2 =
hybridShapeFactory1.AddNewPointCoord(Val(X2.Text), Val(Y2.Text), Val(Z2.Text))
…………
‘將創(chuàng)建的兩個點連成線,即壩軸線
Set hybridShapeLinePtPt1 = hybridShapeFactory1.AddNewLinePtPt(reference1, reference2)
…………
步驟五、在VB中基于步驟四中建立的壩軸線實現(xiàn)壩體剖面的草圖編輯和實體拉伸,并基于步驟一中建立的三維地形模型實現(xiàn)布爾命令,并引用VB界面文本框中的形狀控制參數(shù),完成如圖3所示的壩體三維模型設(shè)計:
本部分的代碼主要由壩殼2、心墻3及棱體排水4三部分組成,三部分的代碼編寫思路類似。即在VB中通過Set命令獲取CATIA中的已有對象——三維地形模型和壩軸線,并基于壩軸線創(chuàng)建一與壩軸線垂直的平面,然后在VB中通過Set reference獲取該平面作為參考平面,通過CreatePoint和CreateLine命令在該參考平面上繪制壩體各部分的二維草圖,通過constraint命令使用步驟三中的形狀控制參數(shù)對二維草圖的輪廓尺寸進行約束,使壩殼、心墻和棱體排水的尺寸和所述步驟三中的形狀控制參數(shù)一致,,再用pad命令對二維草圖進行拉伸形成實體,最后用布爾命令減去該實體與三維地形模型的重合部分,完成壩體設(shè)計。其中,由于VB與CATIA的連接,VB中的代碼能在CATIA中執(zhí)行。部分關(guān)鍵代碼如下:
‘創(chuàng)建一個垂直于壩軸線的工作平面,用于創(chuàng)建草圖
Set reference2 = hybridShapes2.Item("Plane.4")
…………
‘通過創(chuàng)建點和線來繪制草圖
Set point2D1 = factory2D1.CreatePoint(-632.476, 2825#)
Set line2D14 = factory2D1.CreateLine(-719.976, 2790#, -632.476, 2825#)
…………
‘用VB界面中對應(yīng)的文本框參數(shù)對草圖進行約束
Set reference15 = part1.CreateReferenceFromObject(point2D10)
Set reference16 = part1.CreateReferenceFromObject(point2D11)
Set reference17 = part1.CreateReferenceFromObject(line2D1)
Set constraint7 = constraints1.AddTriEltCst(catCstTypeDistance, reference15, reference16, reference17)
constraint7.Mode = catCstModeDrivingDimension
Set Length1 = constraint7.Dimension
Length1.Value = m(2) * (h(1) - Val(h_base))
‘使用凸臺命令拉伸
………………
Set shapeFactory1 = part1.ShapeFactory
Set pad1 = shapeFactory1.AddNewPad(sketch1, 235#)
Set limit1 = pad1.SecondLimit
Set length19 = limit1.Dimension
length19.Value = 300#
………………
因此,將CATIA的三維建模功能引入到水利工程中顯得有一定的必要性,不僅能有效解決二維圖的直觀性問題,也能利用其強大的糾錯能力大幅度提升設(shè)計效率。同時,基于VB可對CATIA進行二次開發(fā)的特性,可進一步將所有參數(shù)在VB界面中體現(xiàn),可實現(xiàn)在參數(shù)化建模中模型參數(shù)的清晰呈現(xiàn)且易于修改。
從普遍意義上來講,本發(fā)明涉及的建模方法,適用于水利工程中的所有基礎(chǔ)壩型。特別地,本專利針對斜心墻土石壩進行說明。土石壩是目前世界壩工建設(shè)工程中應(yīng)用最為廣泛和發(fā)展最快的一種壩型,在經(jīng)濟和施工方面較其他壩型由較大優(yōu)勢。斜心墻土石壩是土石壩的一種,其斜墻與壩殼之間的施工干擾較心墻壩小,但抗震性及對不均勻沉降的適應(yīng)性不足。在設(shè)計和建壩過程中,填筑量是應(yīng)著重關(guān)注的部分,但在傳統(tǒng)的設(shè)計模式下的計算過程復(fù)雜、結(jié)果粗糙,基于本專利建立的模型進行體積測量,可有效解決此問題。此外,基于本發(fā)明建立的模型可與有限元軟件結(jié)合,實現(xiàn)功能互補,也可利用三維模型出二維工程圖,進一步產(chǎn)生更高的設(shè)計效率。
基于VB和CATIA的信息化建模方法,利用了軟件的二次開發(fā)、參數(shù)化及三維可視化特性,可避免目前水利工程設(shè)計模式的缺點,提高效率。并且,基于本專利建立的模型還可進行進一步的分析計算。因此,將這種信息化建模方式引入到水利工程中,是有意義的。
以上詳細描述了本發(fā)明的優(yōu)選實施方式,但是,本發(fā)明并不限于上述實施方式中的具體細節(jié),在本發(fā)明的技術(shù)構(gòu)思范圍內(nèi),可以對本發(fā)明的技術(shù)方案進行多種等同變換,這些等同變換均屬于本發(fā)明的保護范圍。