(泰州口岸船舶有限公司,江蘇 泰州 225321)
Tribon強(qiáng)大的功能已得到了專業(yè)人士的認(rèn)可[1],但該系統(tǒng)對零件小組立圖的生成未提供批量自動生成功能。筆者結(jié)合船廠的生產(chǎn)設(shè)計狀況,運用TRIBON系統(tǒng)的二次開發(fā)功能,編寫了零件小組立自動生成程序,以減輕技術(shù)人員的工作強(qiáng)度,提高出圖效率。
零件小組立圖是零件在小組立階段的作業(yè)圖紙,也可稱為零件小裝配圖。零件在下料加工完畢后,即被送到小組立工位完成此階段的裝配作業(yè)。圖1為零件小組立圖,此圖由圖框、立體圖、平面圖、零件列表四部分組成。
原有的出圖模式全部為手工出圖,主要流程如下。
1)選擇工程項,打開平面建模模塊Hull Planar Modelling程序。
2)調(diào)入小組立圖的圖框。
圖1 零件小組立圖
3)使用平面建模模塊中的立體模型調(diào)取功能調(diào)出板架的立體圖。
4)使用平面建模模塊中的平面視圖調(diào)取功能調(diào)出板架的平面視圖。
5)填寫零件的重量與零件列表。
以上步驟為一張小組立圖的出圖流程,隨著出圖數(shù)量的增多,技術(shù)人員的工作量隨之大幅增加。以本廠建造的3 820箱集裝箱船為例,本船共150個分段,平均每個分段約150張小組立圖,全船共繪制小組立圖約20 000張。
隨著全球造船業(yè)務(wù)的迅猛發(fā)展,造船節(jié)奏的加快,造船周期大幅縮短,從而也壓縮了生產(chǎn)設(shè)計的時間。以提高生產(chǎn)效率為目的的生產(chǎn)設(shè)計已經(jīng)進(jìn)入了一個新階段,原有的手工出圖模式已不能適應(yīng)船廠生產(chǎn)的現(xiàn)狀。傳統(tǒng)的手工出圖模式不僅工作量大、正確率難保證,而且還無法滿足船舶生產(chǎn)節(jié)點的要求。傳統(tǒng)的手工出圖模式是復(fù)雜而又低效率的,必須尋求一種更高效更快捷的出圖模式[1]。為了能減輕技術(shù)人員的勞動強(qiáng)度,提高工作效率,筆者運用TRIBON系統(tǒng)的二次開發(fā)功能實現(xiàn)了小組立圖的批量自動生成。
基于Tribon提供的開放式的Vitesse信息提取接口,利用Tribon高效的Python編程外部鏈接,并反饋信息圖表,從而實現(xiàn)了自動化信息功能[2]。通俗地講,也就是將手工出圖中的5個步驟用Python程序語言的形式表達(dá)出來,并重復(fù)這幾個步驟,實現(xiàn)小組立圖的批量生成。圖2為小組立圖自動生成程序的界面。
圖2 小組立圖自動生成程序界面
為了實現(xiàn)零件小組立圖的自動批量生成,用5個模塊來實行這個功能,分別為:生成BAT文件模塊、生成改名程序模塊、運行BAT文件模塊、運行改名程序模塊、刪除臨時文件模塊。這5個模塊可以分開單獨分別執(zhí)行,也可以直接5步自動運行。
運行Tribon系統(tǒng)提供的相關(guān)函數(shù)調(diào)用BIN文件夾下的tbwautodraw.exe程序生成一個擴(kuò)展名為BAT的批處理文件,本模塊的核心源代碼如下。
for item in resultList[1:]
if item[ITEMTYPE]=ASSEMBLY:
strlist.StrList.append(item[ASS_NAME][1:])
mystr=′e: ribonm3in bwautodraw-ass′+′ ′+item[ASS_NAME][1:]+′′+′-form A4L_FORM -scale 0.03 -textheight 3.5 -plane 1 -iso 1 -hidden -axis′+″ ″
kcs_assembly.assembly_activate(item[ASS_NAME])
ass=kcs_assembly.assembly_properties_get() ass.SetOrientation(′Automatic′)
kcs_assembly.assembly_properties_set(ass)
kcs_assembly.assembly_wcog_calc()
kcs_assembly.assembly_cancel()
f.write(mystr)
f.close()
生成的BAT批處文件截圖見圖3。
圖3 BAT批處理文件
經(jīng)過“生成BAT文件模塊”的運行后,程序會在Tribon系統(tǒng)數(shù)據(jù)庫存SB_ASSPDB中生成一個個以“組立內(nèi)部名”命名的組立圖,“生成改名程序模塊”的功能是生成一個可以將這些以“組立內(nèi)部名”存儲的小組立圖改為以“組立名”命名的程序,這個程序擴(kuò)展名為py。見圖4。
圖4 組立內(nèi)部名與組立名的比較
本模塊的核心源代碼如下。
if res=kcs_util.ok() and len(strlist.StrList) <>0: f10=open(″E:TribonM3Vitesse empname.dat″, ′w′)
for nam in strlist.StrList:
f10.write(nam+′ ′)
f10.close()
return 1
else:
f10=open(″E:TribonM3Vitesse empname.dat″, ′w′)
for nam in strlist.StrList:
new=nam[17:]
if len(new) > 25:
nam3=len(new)-25
nam1=str(nam3)
nam2=′ 超長′+nam1+′個字符′
else :
nam2=′′
for nam4 in new :
if nam4==′.′ :
nam5=′ 不能含點′
break
else :
nam5=′′
f10.write(nam+nam2+nam5+′ ′)
f10.close()
os.startfile(″E:TribonM3Vitesse empname.dat″)
return 1
經(jīng)過前兩個模塊的運行后,程序會分成2個臨時文件:“批處理.bat”與“改名程序.py”?!斑\行BAT文件”模塊與“運行改名程序”模塊的功能是分別執(zhí)行這2個文件,完成批處理與改名工作。本模塊的核心源代碼如下。
try:
dir=″E:TribonM3Vitesse″
bat=dir+′批處理.bat′
os.startfile(bat)
except:
kcs_ui.message_confirm(′文件還未生成′)
為了保證程序的順利運行,在程序運行時會生成一些臨時文件,如“批處理.bat”與“改名程序.py”等。在程序運行結(jié)束后,這些臨時文件將會失去作用,為了避免混淆與出錯,應(yīng)該在程序結(jié)束后刪除這些臨時文件,本模塊就起著刪除臨時文件的功能。本模塊的核心源代碼如下。
try:
dir=″E:TribonM3Vitesse″
bat=dir+′批處理.bat′
os.remove(bat)
os.remove(dir+’改名程序.dat’)
except:
kcs_ui.message_noconfirm(′沒發(fā)現(xiàn)臨時文件′)
零件小組立圖自動生成程序的成功編制,將原有的手工出圖模式改變?yōu)橛嬎銠C(jī)自動出圖模式,減少了技術(shù)人員的工作量與出錯率,提高了生產(chǎn)設(shè)計的效率。此程序已在本廠的多艘船舶生產(chǎn)設(shè)計中使用,實踐證明是可行的。目前,本程序只能適用于平面板架的小組立圖自動生成,對于曲面板架的小組立圖,在生成后還需人工干預(yù)。因此,本程序還需進(jìn)一步的完善與修改,自動化出圖的程度還需進(jìn)一步提高。
[1] 周玉飛,顧文捷.船體初始化定義系統(tǒng)的開發(fā)與應(yīng)用[J].船舶標(biāo)準(zhǔn)化工程師,2011(2):25-27.
[2] 周玉飛.套料板信息自動標(biāo)識系統(tǒng)的開發(fā)與應(yīng)用[J].廣東造船,2010(4):38-39.