梁 雋,張文斌
(中船澄西船舶修造有限公司,江蘇 江陰 214433)
Ship Product Design(SPD)系統(tǒng)是基于OpenGL圖形庫進(jìn)行開發(fā)的造船CAD設(shè)計軟件,能滿足船體結(jié)構(gòu)、管系、風(fēng)管、電氣、鐵舾件、涂裝等專業(yè)三維全數(shù)字化設(shè)計的需求[1]。采用SPD軟件,建立數(shù)字化設(shè)計平臺,助力各船型生產(chǎn)設(shè)計,能夠取得良好的應(yīng)用效果。但是,在使用過程中發(fā)現(xiàn)電氣設(shè)計模塊相比其他專業(yè)模塊,存在數(shù)據(jù)準(zhǔn)備時間較長、軟件數(shù)據(jù)輸出較粗略的問題。本文以SPD5.0版本為研究對象,對電氣模塊的參數(shù)化部件、內(nèi)碼表、設(shè)備小樣、電纜標(biāo)準(zhǔn)、舾裝區(qū)域定義、顏色配置等功能進(jìn)行優(yōu)化,并利用C#語言進(jìn)行二次開發(fā),完善出圖系統(tǒng)。
SPD-E電氣設(shè)計系統(tǒng)涵蓋了從電氣標(biāo)準(zhǔn)、電氣原理、三維模型到生產(chǎn)圖紙和表冊輸出的全部過程,提供了電氣設(shè)備、電氣基座、電纜通道、電氣導(dǎo)架、電纜貫穿件、電纜拉放、生產(chǎn)用表等一系列與電氣生產(chǎn)設(shè)計有關(guān)的建模和管理功能[2]。SPD5.0電氣模塊具體功能描述見表1。
表1 主要功能描述表
SPD軟件中PpdL程序是一個可以幫助用戶設(shè)計參數(shù)化部件的程序,用編寫參數(shù)代碼來增加、修改組件[3]。在“參數(shù)化部件”設(shè)計界面下,用戶通過“查詢/導(dǎo)出”按鈕可對所有參數(shù)化部件進(jìn)行查詢、引用及批量導(dǎo)出;通過“參數(shù)定義”按鈕可直接對部件參數(shù)缺省值進(jìn)行修改;通過“引用定義”按鈕可查詢該部件的組成,并對子部件數(shù)據(jù)進(jìn)行修改。
由于SPD5.0軟件內(nèi)置的參數(shù)化部件不能完全適用于生產(chǎn)設(shè)計,根據(jù)實際需求對電舾件進(jìn)行參數(shù)化部件開發(fā),共涵蓋4個方面:電纜支承件、電纜貫穿件、墊板、電氣設(shè)備基座, 主要步驟如下:
(1)提高電氣生產(chǎn)設(shè)計的準(zhǔn)確率,制定舾裝件標(biāo)準(zhǔn)化圖冊。
(2)簡單的電舾件依舊使用內(nèi)置的參數(shù)化部件,通過新建部件號對電舾件的材料、材質(zhì)、重量等數(shù)據(jù)進(jìn)行完善。
(3)根據(jù)電舾件標(biāo)準(zhǔn)化圖冊進(jìn)行參數(shù)化部件開發(fā),實現(xiàn)復(fù)雜電舾件的設(shè)計。
參數(shù)化建模支持搭積木式嵌套疊加引用,將復(fù)雜部件拆分為若干簡單部件,最終通過引用方式將復(fù)雜部件搭建起來[4]。以圖1新建的MS06P壁式組合單層直導(dǎo)架為例,該參數(shù)化部件共引用了8個小部件:組合導(dǎo)板(600)、左角鋼吊腳、右角鋼吊腳、長方體(即導(dǎo)板面)及4個三角復(fù)板。通過對不同部件的參數(shù)化部件開發(fā)并引用,從而實現(xiàn)了該部件的開發(fā)。
圖1 MS06P壁式組合單層直導(dǎo)架構(gòu)成圖
在該托架“變量定義”代碼部分,需對各層級的參數(shù)化部件材料、規(guī)格、數(shù)量、重量、內(nèi)碼等變量數(shù)據(jù)進(jìn)行編制,并一一對應(yīng),以保證后期二次開發(fā)程序抽取材料的準(zhǔn)確性,見表2。
表2 MS06P壁式組合單層直導(dǎo)架的變量定義
針對電氣專業(yè)特點,整理近年來各系列船型電氣、輪機(jī)、舾裝涉及的設(shè)備廠家,通過EXCEL表格進(jìn)行分類匯總。通過優(yōu)化,將內(nèi)碼表優(yōu)化成3大類:電氣中型設(shè)備、燈具和電氣通用設(shè)備。其中:電氣中型設(shè)備內(nèi)碼表包含駕控臺、集控臺、電力分電箱3類;電氣燈具包括艙室燈具和航行燈、信號燈2小類;電氣通用設(shè)備則根據(jù)全船電氣系統(tǒng)建立部件小類。
以上所有小類共建立236個內(nèi)碼。以設(shè)備廠家為單位,每一個內(nèi)碼($MCODE$)對應(yīng)一個廠家名稱(即代碼名稱$MNAME$),以便后期區(qū)分及維護(hù),格式為:XT-CJ,XT表示系統(tǒng)名稱,CJ表示廠家名稱。
SPD5.0中提供了三維小樣及實體小樣的建模功能。通過各種實體建立的電氣設(shè)備,簡稱設(shè)備小樣。根據(jù)統(tǒng)計,常規(guī)一型散貨船設(shè)計準(zhǔn)備階段全船需建立約400個電氣設(shè)備小樣。以優(yōu)化后的內(nèi)碼表為載體,在SPD5.0中新建模板工程,對常用廠家涉及的電氣設(shè)備實體數(shù)據(jù)、連接點數(shù)據(jù)進(jìn)行預(yù)建模。每一個新項目前期小樣建模時,可根據(jù)實際需求提取模板工程中的設(shè)備小樣數(shù)據(jù)庫。流程如下:
(1)判斷相關(guān)系統(tǒng)的設(shè)備廠家與模板工程中的是否為同一廠家,并在本工程下建立相同內(nèi)碼。
(2)通過“數(shù)據(jù)管理”中“合并數(shù)據(jù)庫”功能對模板工程中的部件進(jìn)行復(fù)制。
(3)檢查設(shè)備小樣各數(shù)據(jù)準(zhǔn)確性,包括設(shè)備外形、電氣設(shè)備標(biāo)準(zhǔn)底盤、電纜連接點及電纜余量等。
(4)在“舾裝標(biāo)準(zhǔn)”中通過“從VOL批量生成”按鈕生成部件定義。
根據(jù)近年來采用的電纜廠家樣本手冊,整理匯編電纜標(biāo)準(zhǔn)表格,新項目電纜原理輸入前僅需導(dǎo)入相關(guān)廠家的電纜表格即可完成電纜參數(shù)的定義。
在生產(chǎn)設(shè)計過程中,電氣設(shè)備、電纜通道、電氣設(shè)備基座、電纜支承件、電纜都要歸屬某個艙室,在設(shè)計準(zhǔn)備初期需在“舾裝區(qū)域”中定義甲板、區(qū)域、艙室,其層次結(jié)構(gòu)為甲板-區(qū)域-艙室。根據(jù)《分段、總段代碼規(guī)定》《舾裝區(qū)域代碼規(guī)定》,在SPD5.0“設(shè)計管理”中,以各甲板英文簡稱建立“甲板代碼”(一般取2英文字符),“甲板簡稱”取其首字母;“區(qū)域代碼”分別以“P000Q”“E000Q”“D000Q”“F000Q”代表“上建”“機(jī)艙”“貨艙”“艏部”區(qū)域, 通過第2位數(shù)字的不同來劃分不同的區(qū)域。
經(jīng)過多船的試用,對電纜通道類別及顏色定義標(biāo)準(zhǔn)化,見表3。定義如下:
表3 電纜通道類別和顏色標(biāo)準(zhǔn)定義
(1)將電纜通道分為7類,并明確每一類通道敷設(shè)電纜的類別。
(2)為了和其他專業(yè)模型顏色類別進(jìn)行區(qū)分,解決本專業(yè)部分電纜分開敷設(shè)時的電纜通道顏色不明顯的缺點,調(diào)整電纜通道顏色。
利用C#語言對SPD 5.0進(jìn)行二次開發(fā)出的桌面應(yīng)用程序具有4個功能:電纜支承件抽取、電纜貫穿件抽取、設(shè)備基座抽取和設(shè)備基座制作圖。功能結(jié)構(gòu)見圖2。
圖2 電氣二次開發(fā)軟件功能
SPD5.0 提供SpdCustomization.dll和SpdArxCustomization.dll等文件作為查詢二次開發(fā)接口[5],前者可有效提取標(biāo)準(zhǔn)部件的各類屬性。其中:Mddrec模型記錄基類的派生類,MddCabTray Class記錄電氣導(dǎo)架模型,MddCabpen Class記錄電纜貫穿件模型,MddElecPed Class記錄電氣基座模型。
在SPD5.0的三維模型中,首先選擇電舾零件進(jìn)入托盤管理表,然后通過二次開發(fā)軟件創(chuàng)建基于模型文件的樹:模型文件-托盤-電舾件,選中托盤后對電舾件即可進(jìn)行抽取。
電纜支承件、電纜貫穿件、設(shè)備基座材料抽取原理相同,在參數(shù)化部件編制過程中,已對各變量數(shù)據(jù)進(jìn)行定義。通過數(shù)據(jù)接口ParaComponent類提取數(shù)據(jù),輸出物量如下:
SubQualityCodes:材料名稱;SubSpecs:材料規(guī)格;SubMainCodes:材質(zhì);SubSpecLength:組件規(guī)格長度;SubSpecNums:組件數(shù)量;SubWeights:組件重量。
電纜支承件主要包括扁鋼和電纜托架。扁鋼包含普通電纜綁扎扁鋼、單個電纜綁扎扁鋼、橋型不銹鋼電纜綁扎扁鋼、電纜綁扎長扁鋼。電纜托架根據(jù)托架托板型式的不同,分為角鋼型托板的托架和槽鋼型托板的托架;根據(jù)托架的層數(shù)不同,分為單層、雙層和三層的托架;根據(jù)托架的長度不同,分為單托和組合托架及可變長度的托架和不可變長度的托架[6]。這些支承件種類繁多,每一類下又包含多種參數(shù)化部件。制作托盤輸出步驟如下:
(1)在服務(wù)器端新制托盤表模板,除了常規(guī)輸出支承件代號、名稱、數(shù)量、單位、墊板之外,還增加了電纜托架撐腳腳高、螺絲螺母套數(shù)的數(shù)據(jù)輸出,并明確電舾件的表面處理、安裝階段。
(2)因不同的電纜支承件代碼對應(yīng)不同的中文名稱,制作托盤中應(yīng)包括相關(guān)支承件代號所對應(yīng)的中文名稱。
(3)針對電纜綁扎扁鋼、電纜托架托盤輸出格式不同的特點,通過代碼對入托的支撐件進(jìn)行多條件判斷輸出:扁鋼無需輸出支撐腳及螺栓螺母,通過限定扁鋼所在的參數(shù)化部件號(ParaCompNum)范圍直接輸出數(shù)據(jù);由于不同形式的電纜托架制作材料不同,通過部件內(nèi)碼(MainCode)或者ParaCompNum判斷電纜托架類型并輸出撐腳高度(MddCabTray.legpairHeight)及SubSpecNums,螺絲螺母、墊板型號或者規(guī)格則通過參數(shù)值列表(ParaValues)提取。
之所以采取這一做法,主要就是因為:“由人身自由價值的重要性決定,人身自由罰作為一種處罰方法,只有用于對犯罪的刑事制裁才能具有相當(dāng)性和合理性?!盵40]也正是基于此,美國法哲學(xué)家博登海默明確指出,“人們賦予自由的那種價值為這樣一個事實所證實,即監(jiān)禁在任何地方都是作為一種刑事制裁手段加以使用的。”[41]因而,在輕罪范圍拓展的限度標(biāo)準(zhǔn)上,“如果我們從定罪轉(zhuǎn)向刑罰實施,我們可利用剝奪自由這一實際的或潛在的監(jiān)禁判決所固有的天然標(biāo)準(zhǔn)?!盵42]
電纜貫穿件主要分為穿線管和電纜護(hù)圈2大類別。由于不同的貫穿件數(shù)字代表了不同的含義,因而給生產(chǎn)制作及集配帶來了不便。以YK圓形穿線管為例,介紹其編碼結(jié)構(gòu)和規(guī)格提取方法。YK圓形穿線管編碼說明見圖3。
圖3 YK圓形穿線管代碼說明
由于穿線管外徑、厚度、長度不同的數(shù)字代表不同值,通過標(biāo)準(zhǔn)鐵舾件模型(MddSstru Class)提取參數(shù)值(ParaValues)。在YK貫穿件的參數(shù)化代碼中,已按照順序?qū)ν鈴?DW)、壁厚(T)、內(nèi)徑(B)、長度(L)、貫穿件偏移值(H)代碼進(jìn)行編譯。
首先為保證輸出的基座編號在全船工程中具有唯一性,需在工程配置文件(Proj.ini)的[Elec]節(jié)對中型基座(MPedDsm)和小型基座(SPedDsm)設(shè)置規(guī)則如下:
MPedDsm=$PLT$-$SNAME$-$Sn$
SPedDsm=$PLT$-$SNAME$-$Sn$
RenDsmOnPedUpdate = 1
電氣設(shè)備基座制作托盤生成原理是:通過電氣設(shè)備模型類(MddElecDev)獲取設(shè)備基座編號,自動提取連接電氣設(shè)備基座的電氣設(shè)備名稱及代號,通過PartComponent屬性輸出“基座重量”,“數(shù)量”“單位”“表面處理”取默認(rèn)值。
電氣設(shè)備基座進(jìn)行開發(fā)步驟如下:
(1)根據(jù)近年來各系列船型生產(chǎn)設(shè)計經(jīng)驗積累,羅列常用的電氣中小型設(shè)備基座清單,形成標(biāo)準(zhǔn)化統(tǒng)一,在AutoCAD軟件中對這些基座進(jìn)行三視圖的設(shè)繪,并對一些參數(shù)值進(jìn)行定義,如基座安裝尺寸、安裝孔大小、基座高度等數(shù)據(jù)。
(2)根據(jù)電氣設(shè)備基座形式對基座進(jìn)行參數(shù)化開發(fā),并在模板工程中進(jìn)行調(diào)試應(yīng)用。
(3)在服務(wù)器模板目錄(TemplateTables)下新建設(shè)備基座的EXCEL模板。首先通過BetterWMF軟件將CAD圖形轉(zhuǎn)換成圖片格式,其次將所有需輸出的數(shù)據(jù)在工作表單元格中定義。
(4)基于C#語言對參數(shù)化基座的參數(shù)值進(jìn)行提取,輸出到EXCEL制作圖中。
(1)根據(jù)自身實際需求,對SPD5.0部分功能進(jìn)行標(biāo)準(zhǔn)化定義,建立和完善了設(shè)計標(biāo)準(zhǔn)體系。
(2)通過對SPD5.0的二次開發(fā),提升了電舾托盤、制作圖的輸出效率,滿足了設(shè)計、生產(chǎn)和管理的需求。