(上海船舶研究設(shè)計(jì)院,上海 201203)
在機(jī)艙、艏艉等結(jié)構(gòu)復(fù)雜或線型變化大的分段區(qū)域,使用Napa Steel模型導(dǎo)出有限元模型,比直接在Patran中建模更加快速準(zhǔn)確,故在實(shí)船項(xiàng)目中設(shè)計(jì)院大多采用上述方式建模。但是根據(jù)已有平面CAD圖紙,通過繁瑣的人工測量讀數(shù)方法將其轉(zhuǎn)為三維結(jié)構(gòu)模型,既費(fèi)時(shí)耗力又容易出錯(cuò),使用Napa Steel建模,需要大量編寫命令,三維建模速度較慢[1]。已有的Napa Steel二次開發(fā)插件大多使用Napa Basic語言編寫,內(nèi)嵌于Napa Steel軟件中,雖在一定程度上提高了三維建模效率,卻無法與除Napa之外的任何軟件進(jìn)行數(shù)據(jù)交互[2]。為此考慮聯(lián)合使用AutoCAD及Napa二次開發(fā)技術(shù),建立CAD輸出到Napa Steel的數(shù)據(jù)通道,解決建模效率低,易出錯(cuò)的問題。
Napa Steel與AutoCAD分別是基于Linux與Windows平臺(tái)開發(fā)兩款軟件,之間無數(shù)據(jù)傳輸?shù)慕涌?。而目前跨平臺(tái)不同軟件之間的數(shù)據(jù)傳輸,大多依靠導(dǎo)入導(dǎo)出中間格式文件的方式實(shí)現(xiàn),如DXF,IGES等。參照其原理,本軟件選取簡便的txt文檔做為中間格式文件,用于將AutoCAD中的數(shù)據(jù)傳輸?shù)絅apa Steel中。
本軟件使用基于.Net的ObjectARX托管技術(shù)對(duì)AutoCAD進(jìn)行二次開發(fā),獲取平面CAD圖紙中的剖面構(gòu)件信息,再利用Napa二次開發(fā)技術(shù)將獲取的信息轉(zhuǎn)化為基于Napa Basic 語言的Napa Steel建模命令存儲(chǔ)于txt文檔中。同時(shí)在Napa Steel中編寫Marco讀取并運(yùn)行該txt類型的中間格式文檔,即可完成相應(yīng)的三維建模工作。軟件流程圖見圖 1。
圖1 軟件開發(fā)流程
1.2.1 通過“拾取”轉(zhuǎn)化CAD圖紙信息
使用本軟件根據(jù)已有平面CAD圖紙進(jìn)行三維建模時(shí),幾乎不需要用戶手動(dòng)測量任何定位信息,無論是剖面基點(diǎn)、Surface Object(SO)的limit、筋的Trace乃至構(gòu)件尺寸等,僅通過鼠標(biāo)的“拾取”操作即可完成將CAD圖紙信息轉(zhuǎn)化的工作,可省去繁瑣的人工測量讀數(shù),既快速又準(zhǔn)確。拾取SO 的Limit流程見圖2。
圖2 拾取Limit流程
1.2.2 簡化建筋操作
在三維建模時(shí),筋的數(shù)量遠(yuǎn)多于板,是影響建模速度的重要因素,除快速將CAD圖紙中筋的定位坐標(biāo)轉(zhuǎn)換成三維建模命令外,為簡化建筋操作還做了如下幾方面的工作。
1)圖層篩選判斷。為使在CAD圖紙中框選時(shí),而不選中無關(guān)構(gòu)件如板、開孔等,在選擇時(shí)設(shè)置了圖層篩選。結(jié)合本院圖層設(shè)繪標(biāo)準(zhǔn),程序只選中圖層為“213_stiff-1(可見筋輪廓)”、“213_stiff-2(不可見筋輪廓)”的直線。同時(shí)根據(jù)根據(jù)圖層線型自動(dòng)判斷出筋是位于SO的哪一側(cè),無需用戶后期手動(dòng)修改。
2)筋SET自動(dòng)判斷。在Napa Steel建筋時(shí),錯(cuò)誤輸入SET值,會(huì)導(dǎo)致軟件彈出警告“Geometry of trace not compatible with stiffener axis(W24379)”,即實(shí)際Stiffener 方向與SET所填方向不一致。因此程序在開發(fā)時(shí),增加根據(jù)Stiffener的幾何信息自動(dòng)判斷SET的代碼,可省去用戶后期的修改工作量,保證三維模型的準(zhǔn)確性,流程見圖3。
圖3 筋SET自動(dòng)判斷流程
3)扶強(qiáng)材與縱骨連接。在強(qiáng)框區(qū)域的扶強(qiáng)材一端或兩端與外板、內(nèi)殼縱骨相連。僅通過從CAD圖紙中獲取坐標(biāo)在三維模型中直接創(chuàng)建,缺失扶強(qiáng)材與縱骨連接的屬性,僅能做到“看似”相連。所以在拾取筋時(shí),軟件會(huì)提示“請(qǐng)給出加強(qiáng)筋兩端與縱骨的鏈接方式(N/D/S)
(1)無論建模誤差大小,均可以保證扶強(qiáng)材與縱骨相連。
(2)即使縱骨位置后期發(fā)生微調(diào)后,仍可以保證扶強(qiáng)材與其相連。
1.2.3 提供操作便利
1)預(yù)覽窗口。傳統(tǒng)二次開發(fā)程序的運(yùn)行過程、結(jié)果均隱藏于后臺(tái),用戶只能在生成三維模型后,才可判斷是否正確。本軟件提供了“預(yù)覽窗口”,將生成的三維建模命令顯示出來供用戶預(yù)覽甚至直接修改, 如圖5的E區(qū)域,可提早發(fā)現(xiàn)錯(cuò)誤,省去了生成三維模型后再刪除的麻煩。
圖4 添加扶強(qiáng)材與縱骨連接流程
2)基本平面表。通過總結(jié)使用Napa Steel的建模習(xí)慣,發(fā)現(xiàn)無論是建SO,還是筋都經(jīng)常會(huì)使用HUL、Deck、LBH等基本平面作為限制,類似此參考平面的使用頻臨極高,為減少頻繁輸入的工作量,軟件增加了“基本平面表”的功能,相當(dāng)于一個(gè)存儲(chǔ)平面名稱的庫。如圖 5的D區(qū)域所示,鼠標(biāo)左鍵雙擊選中參考平面便會(huì)自動(dòng)填寫到指定邊界的文本框中,點(diǎn)擊該區(qū)域右下角的“編輯”按鈕,可以進(jìn)行編輯/添加/刪除的操作。
1.2.4 數(shù)據(jù)交換
本軟件利用txt文檔作為中間格式文件傳輸數(shù)據(jù),其存儲(chǔ)基于Napa Basic語言的三維建模命令。為省去用戶先“復(fù)制”“粘帖”再“運(yùn)行”“顯示”的繁瑣操作,軟件開發(fā)中利用Toolbar功能為Napa Steel添加按鈕。即在TBAR*ST//SYSDB 表格中添加一行,見表 1,其中COMMAND列為讓Napa Steel運(yùn)行指定宏代碼,“ZQLAPP_N>.”為VB.NET生成的宏存儲(chǔ)路徑。只需點(diǎn)擊“SD1”按鈕即可創(chuàng)建,并顯示出相應(yīng)三維結(jié)構(gòu)模型。
表1 Toolbar設(shè)置
軟件主要包含EasySO(建板)與EasySTF(建筋)兩大功能模塊。在某大型礦砂船的設(shè)計(jì)中期,船級(jí)社提出需要加算機(jī)艙有限元分析,不僅要如實(shí)反映復(fù)雜的機(jī)艙區(qū)域結(jié)構(gòu),且要需要建全船模型,真實(shí)反映機(jī)艙區(qū)域的邊界條件。雖然設(shè)計(jì)時(shí)間緊張,但使用該快速建模軟件進(jìn)行建模,大幅縮短建模時(shí)間,保證了設(shè)計(jì)節(jié)點(diǎn)。
機(jī)艙中油柜、液艙眾多,故機(jī)艙區(qū)域的艙壁數(shù)量大,使用EasySO可快速創(chuàng)建艙壁,以機(jī)艙結(jié)構(gòu)圖某剖面為例,軟件界面見圖 5。
圖5 EasySO(建板)程序界面
1)在EasySO軟件界面中的A區(qū)域,拾取剖面的基點(diǎn),選擇剖面類型為X,位置為S,剖面定位為Fr25,艙段為ER,程序會(huì)自動(dòng)給定結(jié)構(gòu)類型為TBH,以及自動(dòng)生成SO名字為ER_TBH#25_S,自動(dòng)生成的內(nèi)容也可根據(jù)用戶需求自行修改。
2)在B區(qū)域填寫限制條件,用戶無需手動(dòng)量取讀數(shù),直接用鼠標(biāo)在圖紙中拾取相應(yīng)艙壁邊界即可,也可直接雙擊引用D區(qū)域中所列的基本平面作為邊界。對(duì)于艙壁中有開孔的情況在C區(qū)域添加Red即可,選擇開孔邊界的方法同上。
3)在F區(qū)域填寫艙壁板厚9,若勾選“對(duì)稱”,則會(huì)自動(dòng)關(guān)于XY平面生成對(duì)稱的SO。點(diǎn)擊“預(yù)覽”便可在E區(qū)域生成三維構(gòu)建信息供預(yù)覽,如有需求用戶可直接在預(yù)覽窗口進(jìn)行修改,點(diǎn)擊“寫入”名稱為ER_TBH#25_S,板厚為9的艙壁便可寫入NapaSteel中,并自動(dòng)加入到節(jié)點(diǎn)為“Steel->EngineRoom->ER_TBH”的結(jié)構(gòu)樹下。
可見EasySO軟件不僅免去了繁瑣的人工測量讀數(shù)過程,還可協(xié)助用戶完成建模標(biāo)準(zhǔn)化操作,比如根據(jù)建模標(biāo)準(zhǔn)自動(dòng)命名SO,并將加入指定結(jié)構(gòu)樹節(jié)點(diǎn)下。
EasySTF軟件除可以輕松創(chuàng)建艙壁上定位規(guī)則的加強(qiáng)筋外,在臨近機(jī)艙區(qū)域的貨艙區(qū)域強(qiáng)框中,有大量非規(guī)則定位的加強(qiáng)筋,與傳統(tǒng)模式相比,更加高效,僅需用戶在CAD平面圖紙中框選,便可完成在Napa Steel中的建筋操作。程序主界面見圖6,點(diǎn)擊“拾取構(gòu)件”按鈕后彈出的子界面見圖7。
圖6 EasySTF (建筋)程序界面1
圖7 EasySTF (建筋)程序界面2
具體的建筋步驟如下。
1)在軟件界面中的A區(qū)域,輸入要在其上建筋的SO名稱H_WEB#52_P,用鼠標(biāo)在CAD圖紙中給定基點(diǎn)后,點(diǎn)擊“拾取構(gòu)件”按鈕,用戶可直接在CAD圖紙中框選或點(diǎn)選加強(qiáng)筋。
2)用戶根據(jù)程序提示“選擇構(gòu)件尺寸”,從圖中標(biāo)注直接拾取構(gòu)件尺寸(FB150X12),拾取過的筋與文字標(biāo)注的會(huì)自動(dòng)變成紫色(173),以便用戶區(qū)分,避免重復(fù)建模。完成上述操作后,程序子界面會(huì)彈出,對(duì)筋的定位以及構(gòu)件尺寸做進(jìn)一步細(xì)化修改。
3)在完成子界面的操作后,點(diǎn)擊“保存并退出”,筋的數(shù)據(jù)傳回EasySTF主程序界面中列在B區(qū)域中。用戶也可再次點(diǎn)擊“拾取構(gòu)件”按鈕繼續(xù)在CAD圖紙中選擇筋,最終匯總至主界面B區(qū)域中。點(diǎn)擊“寫入”按鈕,該強(qiáng)框的所有加強(qiáng)筋將自動(dòng)寫入NapaSteel模型中。
VB.NET開發(fā)的Napa Steel建模插件,建立了CAD直接向Napa Steel傳輸數(shù)據(jù)的通道,打破了“先手動(dòng)測量數(shù)據(jù),再建?!钡膫鹘y(tǒng)模式,僅通過簡單的拾取操作,便可快速將平面CAD圖紙中的構(gòu)件信息轉(zhuǎn)化成三維構(gòu)件信息,完成三維建模工作。在多個(gè)實(shí)船項(xiàng)目中的應(yīng)用中,根據(jù)已有平面CAD圖紙使用該插件創(chuàng)建Napa Steel三維模,僅需傳統(tǒng)模式約1/3工時(shí),其在創(chuàng)建如機(jī)艙、艏艉等復(fù)雜結(jié)構(gòu)或線型變化大的分段模型時(shí)優(yōu)勢更加突出。