鄒夢瑤,管偉元,王 充,吳 立
(中國船舶及海洋工程設(shè)計研究院,上海 200011)
隨著數(shù)字化設(shè)計技術(shù)的快速發(fā)展,船舶制造業(yè)已在數(shù)字化設(shè)計方面取得較大進展,并正在進一步朝智能化方向轉(zhuǎn)型。目前國內(nèi)主流的船舶三維設(shè)計軟件主要有CADDS5、TRIBON、NAPA、FORAN、SPD和三維體驗(3D Experience)平臺等,其中3D Experience平臺是法國達索系統(tǒng)開發(fā)的新一代集CAD、CAE和CAM于一體的PLM軟件平臺[1]。該平臺旨在為企業(yè)提供一體化、智能化的工業(yè)解決方案,可很好地滿足制造業(yè)在數(shù)字化轉(zhuǎn)型升級方面的需求,為制造業(yè)帶來全新的設(shè)計和生產(chǎn)體驗,目前已成功應(yīng)用于航空航天、汽車和船舶等領(lǐng)域[2-3]。
在總布置設(shè)計中,設(shè)備的布置流程一般從庫中調(diào)用,通過操作羅盤進行位置移動和方向調(diào)整[4]。該方法不僅缺乏與二維原理圖之間的關(guān)聯(lián),而且設(shè)備移動定位的效率和準確性不足。二維驅(qū)動三維(Logical to Physical,L2P)[5]是3D Experience平臺中連接二維原理圖設(shè)計和三維設(shè)計的重要方法,采用該方法不僅可實現(xiàn)對原理圖中電纜和管線的驅(qū)動,而且可實現(xiàn)對分電箱和油泵等船舶設(shè)備的位置驅(qū)動。但是,在不配置驅(qū)動規(guī)則的情況下,只能先將設(shè)備驅(qū)動到船舶坐標系的原點,再運用羅盤對其進行移動。針對以上問題,本文重點研究L2P的驅(qū)動機制,實現(xiàn)二維與三維的關(guān)聯(lián),并且通過EKL編程實現(xiàn)對設(shè)備的高效位置驅(qū)動和準確布置,同時為后續(xù)原理圖中涉及空間關(guān)聯(lián)的BI檢查創(chuàng)造條件。設(shè)備位置驅(qū)動和布置的具體流程見圖1。
圖1 設(shè)備位置驅(qū)動和布置的具體流程
空間劃分主要運用空間分配(Space Allocation, SAO)模塊和創(chuàng)成式曲面設(shè)計(Generative Shape Design,GSD)模塊。首先,運用SAO模塊定義切割元素,對主船體進行區(qū)域劃分,切割元素主要分為DeckCE、FireZoneCE、WaterTightCE、LongCE和CrossCE等5類,可按實際需要刪除或添加切割元素的種類。然后,選取劃分好的某個區(qū)域,在某個支持面上繪制草圖,運用草圖中的線元素代表艙壁的位置,進而劃分出具體的艙室空間。對某平臺供應(yīng)船(Platform Supply Vessel, PSV)雙層底區(qū)域進行詳細的艙室劃分所繪草圖見圖2。
圖2 某PSV雙層底區(qū)域詳細艙室劃分草圖
需注意,在定義切割元素時,對于不規(guī)則甲板面,需先運用GSD模塊生成甲板曲面,再將其定義為切割元素。此外,對于形狀較為復(fù)雜的非規(guī)則艙室,可先運用GSD模塊,通過曲面的拉伸、切割和縫合形成封閉體,再將該封閉體指定為某個具體的艙室。某PSV的空間劃分結(jié)果見圖3。
圖3 某PSV的空間劃分結(jié)果
空間劃分好之后,為實現(xiàn)設(shè)備向指定空間的驅(qū)動,需將劃分好的空間配置在資源庫中,以便創(chuàng)建二維原理圖中的設(shè)備符號與指定空間的關(guān)聯(lián)。此外,需在資源庫中配置設(shè)備的驅(qū)動規(guī)則。為實現(xiàn)設(shè)備的驅(qū)動,需配置Diagram Resources和Logical System Routing Resources 2種資源集,具體需配置的資源項見表1。
表1 資源配置
表1中的Zone Names資源項中需聲明空間類型和讀取方向,其中:空間類型主要有Deck、Room、Watertight zones和Fire zones等;讀取方向與空間類型相關(guān)聯(lián),主要有Above、Below、Left、Right和Inside等。例如,為實現(xiàn)設(shè)備向指定艙室的驅(qū)動,空間類型選擇為Room,空間讀取方向選擇為Inside,將存儲艙室名稱的Sheet表導(dǎo)入。表1中的Compute 3D position資源項中需配置設(shè)備的驅(qū)動規(guī)則,驅(qū)動規(guī)則用EKL語言編寫,該語言是3D Experience平臺中的一種面向?qū)ο蟮暮啽?、直譯、自動化的語言,支持用戶定制業(yè)務(wù)流程,幫助用戶定義、重用和分享知識。驅(qū)動規(guī)則部分核心代碼如下:
為實現(xiàn)設(shè)備的位置驅(qū)動,除了配置相應(yīng)的資源以外,還需具備2個條件,即:二維原理圖中設(shè)備符號與空間相關(guān)聯(lián);設(shè)備符號Reference屬性中的Predefined Part Number與所要驅(qū)動三維設(shè)備的Title相一致,否則無法實現(xiàn)驅(qū)動。創(chuàng)建空間關(guān)聯(lián)在二維原理圖的視圖窗口完成。首先,運用Create Zone命令選擇區(qū)域的類型和名稱,在原理圖中繪制一個封閉圖形代表某個指定的艙室空間,其次,運用Create Space Link命令手動或自動創(chuàng)建空間關(guān)聯(lián)。最后,在屬性中查看設(shè)備符號的Space Reference屬性,檢查空間關(guān)聯(lián)是否創(chuàng)建成功。此外,可運用B.I.Essentials命令中的Diagram: Space Allocation Review檢查項對二維原理圖中的設(shè)備符號進行空間分配檢查,從而提高設(shè)備位置驅(qū)動的準確性。
上述2個條件滿足之后,在RFLP結(jié)構(gòu)樹中激活Physical節(jié)點,切換至Electrical 3D Design模塊或Piping & Tubing 3D Design模塊。接著,運用Logical to Physical命令實現(xiàn)設(shè)備由二維到三維的驅(qū)動。最后,在三維模型中查看設(shè)備是否驅(qū)動成功。本文主要實現(xiàn)主機燃油供給泵向某個空間中心的驅(qū)動(見圖4)。實際上,在驅(qū)動規(guī)則中也可定義設(shè)備向三維坐標點的驅(qū)動,但采用該方法無法創(chuàng)建設(shè)備與空間的關(guān)聯(lián),因此不能運用B.I檢查。相比之下,建議采用設(shè)備向指定空間的驅(qū)動。
圖4 設(shè)備驅(qū)動至指定空間中心
設(shè)備驅(qū)動到指定空間的中心之后,可通過操作羅盤進行位置移動和方向調(diào)整,但設(shè)備移動的位置只能粗略估計,具有較大的隨意性。為了更加精確、高效地對設(shè)備進行布置,可在Engine Rules Capture模塊中通過EKL編程創(chuàng)建Action,并將其制作成相應(yīng)的設(shè)備布置命令。在使用該命令時,先選擇需布置的設(shè)備和船舶坐標系,然后通過輸入肋位號FrN、縱剖面編號LongN和垂向甲板編號HN的數(shù)值及各方向?qū)?yīng)的Offset數(shù)值,即可實現(xiàn)基于船舶坐標系的設(shè)備布置(見圖5)。
圖5 基于船舶坐標系的設(shè)備布置
部分核心代碼如下:
本文基于3D Experience平臺,重點研究了船舶設(shè)備的位置驅(qū)動和布置方法,主要包括以下幾個方面內(nèi)容:
1) 結(jié)合SAO和GSD 2個功能模塊,提出了空間劃分的方法,并實現(xiàn)了全船的空間劃分。
2) 從資源庫配置、驅(qū)動條件和驅(qū)動過程等方面詳細介紹了L2P設(shè)備位置驅(qū)動方法的使用,搭建了二維原理圖設(shè)計與三維模型設(shè)計之間的橋梁。
3) 通過EKL編程設(shè)定了設(shè)備位置驅(qū)動規(guī)則,在創(chuàng)建設(shè)備符號與空間的關(guān)聯(lián)的基礎(chǔ)上實現(xiàn)了設(shè)備向指定空間中心的驅(qū)動,為后續(xù)針對空間編寫設(shè)備報表創(chuàng)造了條件。
4) 通過EKL編程實現(xiàn)了基于船舶坐標系的設(shè)備布置,與羅盤拖動相比,提高了設(shè)備布置的準確性和效率,有助于設(shè)計者快速、高效地開展總布置設(shè)計。
經(jīng)某PSV和某集裝箱船的實船應(yīng)用,證明該方法高效、精準,是開展基于3D Experience平臺的設(shè)備布置的有效方法。