,,
(1.渤海船舶職業(yè)學(xué)院,遼寧 葫蘆島 125000;2.渤海船舶重工有限責(zé)任公司,遼寧 葫蘆島 125004)
在海洋工程領(lǐng)域,計算機輔助設(shè)計技術(shù)和工程數(shù)據(jù)庫的聯(lián)合運用仍然處于起步階段,工程設(shè)計過程中大量的數(shù)據(jù)信息仍需要手工操作完成,利用AutoCAD和VB.NET進(jìn)行二次開發(fā)輔助海洋工程生產(chǎn)模型的分解、細(xì)化,能提高數(shù)據(jù)輸出效率[1-4]。為此,結(jié)合渤船重工有限責(zé)任公司海洋工程事業(yè)部在進(jìn)行海洋工程建模工作中工程技術(shù)人員經(jīng)常面對的技術(shù)難題,選取AutoCAD2010、VB.NET軟件進(jìn)行二次開發(fā)。
結(jié)合渤船重工有限責(zé)任公司海工事業(yè)部在開展海工項目中遇到的問題,以VB.NET作為開發(fā)工具,利用AutoCAD2010進(jìn)行二次開發(fā),并通過ActiveX Data Objects(ADO)實現(xiàn)與數(shù)據(jù)庫的連接。實現(xiàn)海洋平臺三維設(shè)計參數(shù)化建模,使操作簡單直觀,為降低建模周期的復(fù)雜度提供可靠技術(shù)依據(jù)。
進(jìn)行海洋工程平臺建模的二次開發(fā)的體系架構(gòu)見圖1。
圖1 二次開發(fā)體系架構(gòu)
啟動VB.NET軟件,創(chuàng)建“海洋平臺生活區(qū)建模二次開發(fā)系統(tǒng)”窗體,在窗體上添加若干控件并設(shè)置其相關(guān)屬性。
1)引用AutoCAD類型庫,此項工作在VB編程環(huán)境中進(jìn)行;
2)編寫VB程序代碼,創(chuàng)建AutoCAD對象,啟動AutoCAD。
建立好VB與AutoCAD連接后,可以獲得AutoCAD對象及其下級對象的屬性和方法等,完成用VB語言在AutoCAD圖形繪制及編輯等操作。
引用AutoCAD數(shù)據(jù)庫在VB編程環(huán)境中單擊菜單欄中的“工程”→“引用”,選中“AutoCAD 2010 Type Library”。創(chuàng)建AutoCAD對象的方法很多,這里定義AutoCAD對象變量選取在全局模塊Module中實現(xiàn),目的是便于多個窗體可以共同引用。為了能夠正確使用AutoCAD的Automation對象,必須首先在VB.NET中引用該對象類型庫acad.tlb,下面程序代碼為在VB程序中啟動運行AutoCAD的部分源代碼。
’在程序代碼窗體的定義全局變量
Public acadapp As Object '定義AutoCAD的應(yīng)用程序
Public acaddoc As Object '定義當(dāng)前文檔變量引用AutoCAD圖形
Public moSpace As Object 設(shè)置當(dāng)前模型空間變量
Public paSpace As Object '設(shè)置當(dāng)前圖紙空間變量
Public sub Main( )
On Error Resume Next
Setacadapp = GetObject(," AutoCAD.Application")
If Err Then
Err.Clear
Set acadapp = CreateObject("AutoCAD.Application")
If Err Then
MsgBox (“無法打開運行AutoCAD”)Err.description
Exit Sub
End If
End if
Set acaddoc=acadapp.ActiveDocument
Set mospace=acaddoc.ModulSpace
Set paspace=acaddoc.PaperSpace
Acadapp.Visual=True
Dim templatefilename As String
Templatefilename=“C:Program FilesAutoCAD2010TEMPLATE生活區(qū)艙室設(shè)計.dwt”
Dim doc As Object
Set doc acaddoc.New(templatefilename)
End sub
以上的程序代碼中不僅實現(xiàn)VB與AutoCAD的連接,而且聲明了多個全局變量便于在繪圖程序中引用。程序中的條件語句是為確保只打開一次AutoCAD窗口,節(jié)約系統(tǒng)資源。如果無法打開運行AutoCAD程序?qū)箦e,出錯情況可用MsgBox Err.description語句查詢具體原因。
2.3.1 數(shù)據(jù)查詢模塊
實現(xiàn)AutoCAD數(shù)據(jù)庫的查詢功能操作,主要包含:數(shù)據(jù)庫信息初始化、共享、備份;工程數(shù)據(jù)參數(shù)錄入、維護和查詢等,新建、刪除表格及其關(guān)聯(lián)數(shù)據(jù)的操作。
在進(jìn)行海工建模過程中,最基本的工作是建立一系列的數(shù)據(jù)表,其中包括海工平臺類型表、平臺基本信息表、水平層類型表等。見表1~3。
表1 平臺類型表
在海洋平臺結(jié)構(gòu)上除了支撐結(jié)構(gòu)上的管件之外,還大量地使用了構(gòu)件,所以建立工程數(shù)據(jù)庫將常用截面參數(shù)基本信息存放于此,從而減少工程技術(shù)人員的重復(fù)性勞動。
表2 海工平臺基本信息表
2.3.2 AutoCAD實體造型模塊
針對不同的海工平臺類型、截面參數(shù)等控制AutoCAD軟件,根據(jù)工程技術(shù)人員自定義修改數(shù)據(jù)庫里已有的數(shù)據(jù)信息,建立與之適應(yīng)的模型,并且支持用戶通過VB.NET 內(nèi)置的菜單、工具欄對模型進(jìn)行添加或者修改等操作。本次開發(fā)可以保證用戶通過主程序界面完成主尺度、水平層選擇和設(shè)計參數(shù),不需要直接操作AutoCAD,整個過程達(dá)到自動化和智能化的設(shè)計標(biāo)準(zhǔn)。
1)本系統(tǒng)采用Visual Basic.NET 和AutoCAD進(jìn)行海洋平臺生活區(qū)建模二次開發(fā),實現(xiàn)了模塊化思想設(shè)計軟件體系結(jié)構(gòu)。
2)系統(tǒng)軟件已經(jīng)應(yīng)用于渤海船舶重工有限責(zé)任公司海工事業(yè)部海洋鉆井平臺等工程設(shè)計部門中,用戶實際使用證明,該系統(tǒng)操作直觀簡便,降低勞動重復(fù)率,縮短工程設(shè)計周期,實際工程應(yīng)用中取得了較好的輔助設(shè)計效果。
3)初步解決海洋平臺建模過程中功能生活區(qū)的參數(shù)重置現(xiàn)象,用戶可進(jìn)一步根據(jù)需要對海洋平臺鉆井區(qū)、工具堆放區(qū)等區(qū)域進(jìn)行二次開發(fā)設(shè)計工作。
[1] 楊立軍,黨新安,夏 田.基于VB的AutoCAD二次開發(fā)技術(shù)[J].現(xiàn)代制造工程,2004(3):27-28.
[2] 張 帆,鄭立楷,王華杰. AutoCAD VBA開發(fā)精彩實
例教程[M].北京:清華大學(xué)出版社,2004.
[3] 張祥瑞,嚴(yán)家文.基于AutoCAD平臺的船體三維建模研究[J].船舶,2007(4):56-60.
[4] 周愫承,奚立康.21世紀(jì)IT:信息技術(shù)在中國海洋平臺工程中的應(yīng)用展望[J].中國海洋平臺,2000(2):4-9.