吳冬冬, 馬曉平, 趙 旭
(1.江蘇科技大學 船舶與海洋工程學院,江蘇 鎮(zhèn)江 212100;2.江蘇現(xiàn)代造船技術(shù)有限公司,江蘇 鎮(zhèn)江 212003)
2021年國際新造船市場活躍,新船訂單相比2020年增加超過80%,集裝箱船和液化天然氣船新訂單量表現(xiàn)優(yōu)異[1]。隨著造船和海洋工程設(shè)計系統(tǒng)(AVEVA Marine,AM)軟件在船舶行業(yè)的廣泛應(yīng)用,對推進船舶建造管理現(xiàn)代化與高效化和生產(chǎn)設(shè)計內(nèi)容不斷加深均具有較大的促進作用[2]。
船舶三維軟件大多由國外直接引進,由于操作和習慣上的不同,因此需要對軟件進行二次開發(fā)[3]。馬曉平等[4]和顧穎[5]針對艙室曲面絕緣和型材絕緣快速建模對AM進行二次開發(fā),取得良好的成效。逯濤[6]基于AM開發(fā)報表輸出程序、曲加工自動出圖程序、余料管理程序、拼板自動出圖程序,較好地解決實際生產(chǎn)中的問題。AM軟件功能強大,但居住艙室建模功能存在流程多、操作復(fù)雜和建模效率低等問題。為滿足實際工作需求,對AM進行有針對性的開發(fā)不可或缺。
AM軟件居住艙室創(chuàng)建過程如下:①依次點擊主菜單欄上的Create和Building,在Building Block Tasks Form的Create區(qū)域點擊Building Block,創(chuàng)建居住區(qū)域;②依次點擊主菜單欄上的Create和Level,在Building Block Tasks Form的Create區(qū)域點擊Building Level,創(chuàng)建居住層;③依次點擊主菜單欄上的Create、Room和Definition/Standard,在Main Room Task的Create區(qū)域點擊Room,創(chuàng)建房間;④點擊Floor Covering和Ceilings,創(chuàng)建地板和天花板;⑤點擊CTWALL和Furniture,創(chuàng)建恒厚墻(Constant Thickness Wall,CTWALL)和家具,其中,家具的創(chuàng)建在AM軟件的Paragon模塊中。
從創(chuàng)建居住區(qū)域到添加家具需要60多個步驟,不包括在Paragon模塊中添加家具的操作和一些步驟的重復(fù)操作,非常不利于設(shè)計人員的使用。
AM軟件支持多種語言開發(fā)方式[7],并引入對.NET技術(shù)的支持,開發(fā)者可在可編程宏語言(Programmable Macro Language,PML)程序中直接調(diào)用.NET程序,或在.NET程序中調(diào)用PML代碼。AM軟件提供一系列.NET應(yīng)用程序編程接口(Application Programming Interface,API),使開發(fā)者可在直接引用相關(guān)的動態(tài)庫后直接使用API進行C#編程。AM軟件提供的API可幫助實現(xiàn)軟件絕大部分的功能,交互界面可用Visual Studio完成,并可直接加載至AM軟件的窗口中。.NET平臺具有較多的第三方資源,例如DevExpress[8]等,開發(fā)者可完全使用C#進行編程[9]。
居住艙室快速建模開發(fā)流程如圖1所示。居住艙室存儲層級如圖2所示。
圖1 居住艙室快速建模開發(fā)流程
圖2 居住艙室存儲層級
2.1.1 創(chuàng)建參數(shù)化居住艙室
參數(shù)化定義艙室是居住艙室快速建模的基礎(chǔ),通過預(yù)定義艙室面板的長(length)、寬(width)和厚(thickness)等參數(shù)完成對面板(Panel)的創(chuàng)建。AM居住艙室建模在Outfitting模塊中進行,存儲在WORLD-SITE-ZONE-STRU-FRMW數(shù)據(jù)結(jié)構(gòu)下,模型信息包含面板尺寸、位置、方位和材質(zhì)等。艙室創(chuàng)建流程如圖3所示。
圖3 艙室創(chuàng)建流程
(1)創(chuàng)建面板。實例化面板并確定其所存儲的位置,通過代碼完成對居住艙室艙壁、地板和天花板不同存儲層級的創(chuàng)建。創(chuàng)建面板環(huán)點,較常見的為四點面板,地板和天花板以艙室頂部和底部的輪廓為創(chuàng)建基礎(chǔ),通常為不規(guī)則面板。定義面板厚度,居住艙室艙壁厚度通常相同,但地板和天花板厚度不一致,需要對每塊面板進行單獨設(shè)置。
(2)調(diào)整面板朝向。在完成面板創(chuàng)建時,面板均為同一朝向,如圖4所示。需要對部分面板進行方位調(diào)整。通過三維坐標變換矩陣代碼可實現(xiàn)對面板正朝向方位的改變,有些面板與x、y和z軸成一定角度,應(yīng)進行特殊處理。在完成面板調(diào)整方位后,需要注意此時(0,0,0)點相對于面板的位置。(0,0,0)點坐標值的調(diào)整關(guān)系面板具體擺放位置,是組成居住艙室定義的關(guān)鍵。
圖4 面板尺寸定義
(3)約束面板擺放位置。對于一間已明確具體形狀的艙室,可通過參數(shù)化預(yù)定義各面板之間的位置關(guān)系。通過合理組合和運用參數(shù)可幫助創(chuàng)建平直面板艙室,艙室?guī)斓膭?chuàng)建為后期設(shè)計人員實現(xiàn)居住艙室快速建模提供支撐。
2.1.2 創(chuàng)建參數(shù)化家具
家具參數(shù)化快速建模開發(fā)流程如圖5所示。
圖5 家具參數(shù)化快速建模開發(fā)流程
(1)參數(shù)化定義家具面板尺寸。家具參數(shù)化建模需要用戶選擇想要的家具類型和樣式,輸入家具的長、寬和高即可完成家具的建模工作。在創(chuàng)建家具過程中,以家具清單的默認模型尺寸為基礎(chǔ),用戶可進行微調(diào),以提高家具模型建模的靈活性和通用性。實例化家具面板,家具模型在創(chuàng)建時會基于當前艙室自動生成其存儲層級。創(chuàng)建面板環(huán)點,家具模型涉及的面板形狀較為豐富,主要由四點帶倒角、五點帶倒角、七點帶倒角和圓柱等形狀組成。最后定義面板厚度。
(2)調(diào)整面板朝向。在AM中調(diào)整面板方位與調(diào)整拉伸實體面板方位的方法相同,可采用艙室調(diào)整方位的方法。
(3)約束面板擺放位置。依家具清單對家具進行創(chuàng)建。所有面板的長和寬均依用戶輸入的長、寬和高按原家具實際比例進行參數(shù)化建模,板厚保持不變。數(shù)據(jù)存在數(shù)倍的差距,對于原尺寸或與原尺寸差距不是太大,建模效果尤佳。
以創(chuàng)建衣柜為例,如圖6所示。
圖6 衣柜建模
所有家具的擺放位置均默認為(0,0,0)點,不符合實際生產(chǎn)的需求,需要對完成建模的家具進行位置調(diào)整??紤]不同艙室同一家具可能存在不同的擺放位置,可通過對每個艙室內(nèi)的家具組合設(shè)置一組定位坐標,實現(xiàn)對家具的初定位,后期僅需要工作人員對家具擺放進行微調(diào)即可。
在實際工作中,每個艙室均具有自己的坐標,對居住艙室進行定位是必要的。僅需要獲取定位點的坐標,在對居住艙室進行一次坐標運算即可完成整個居住艙室的定位工作。坐標點的獲取,主要分為兩種方式:①通過用戶鼠標點擊獲取該點信息;②用戶直接輸入x、y和z的坐標值。
居住艙室快速建模程序界面如圖7所示。
圖7 艙室快速建模程序界面
居住艙室快速建模步驟如下:
(1)點擊CE按鈕選擇居住艙室需要存儲的位置。
(2)選擇艙室。
(3)選擇艙室家具。
(4)輸入和選擇居住艙室信息。對于常用的艙室尺寸,可設(shè)置一個初始值,以減少重復(fù)數(shù)據(jù)的輸入。
(5)點擊家具名稱后方的按鈕,彈出家具選擇窗口。
(6)選擇家具,出現(xiàn)參數(shù)化家具數(shù)值輸入界面。輸入尺寸,點擊確定并關(guān)閉按鈕,完成家具的預(yù)創(chuàng)建。界面會自動切換至艙室快速建模界面。每個家具均保留初始尺寸,用戶可按需求自行修改。家具快速建模程序界面如圖8所示。
(7)艙室定位。完成參數(shù)化艙室的數(shù)值輸入和家具選擇,點擊定位按鈕即可將艙室定位至想要的位置。對于定位坐標值的設(shè)置,用戶可自行選擇定位點或直接輸入具體坐標值,如圖9所示。
圖9 居住艙室定位
(8)生成居住艙室和家具。居住艙室數(shù)據(jù)填寫如圖10所示。點擊創(chuàng)建按鈕即可完成居住艙室和家具的創(chuàng)建工作,如圖11所示。
圖10 居住艙室數(shù)據(jù)填寫
圖11 居住艙室快速建模效果圖
以1艘7 500 t風電安裝船船員居住艙室建模為例,分別使用AM居住艙室建模功能和居住艙室快速建模開發(fā)程序?qū)Υ纤谐绦蚨x的艙室進行建模,并對建模效率進行對比。使用AM居住艙室建模功能得到的船員居住艙室如圖12所示。使用居住艙室快速建模開發(fā)程序得到的船員居住艙室效果圖如圖13所示。建模時間:AM居住艙室建模功能為921 h;居住艙室快速建模開發(fā)程序為90 h。后者可節(jié)省831 h,效率提升90.22%。
圖13 使用居住艙室快速建模開發(fā)程序得到的船員居住艙室效果圖
基于C#在AM中進行二次開發(fā),實現(xiàn)居住艙室快速建模,改變AM建造居住艙室的模式。通過對居住艙室和家具的參數(shù)化定義,用戶輸入?yún)?shù)或選擇數(shù)值,即可實現(xiàn)居住艙室快速建模。居住艙室快速建模程序可根據(jù)具體船舶艙室需要進行艙室自定義,以實現(xiàn)快速建模。參數(shù)化家具庫的創(chuàng)建可自由組合艙室內(nèi)的家具種類,以滿足不同艙室對不同家具組合的需求,可為設(shè)計人員節(jié)約大量設(shè)計時間,提高生產(chǎn)效率,最終實現(xiàn)降本增效。