(泰州口岸船舶有限公司,江苏 泰州 225321)
Tribon强大的功能已得到了专业人士的认可[1],但该系统对零件小组立图的生成未提供批量自动生成功能。笔者结合船厂的生产设计状况,运用TRIBON系统的二次开发功能,编写了零件小组立自动生成程序,以减轻技术人员的工作强度,提高出图效率。
零件小组立图是零件在小组立阶段的作业图纸,也可称为零件小装配图。零件在下料加工完毕后,即被送到小组立工位完成此阶段的装配作业。图1为零件小组立图,此图由图框、立体图、平面图、零件列表四部分组成。
原有的出图模式全部为手工出图,主要流程如下。
1)选择工程项,打开平面建模模块Hull Planar Modelling程序。
2)调入小组立图的图框。
图1 零件小组立图
3)使用平面建模模块中的立体模型调取功能调出板架的立体图。
4)使用平面建模模块中的平面视图调取功能调出板架的平面视图。
5)填写零件的重量与零件列表。
以上步骤为一张小组立图的出图流程,随着出图数量的增多,技术人员的工作量随之大幅增加。以本厂建造的3 820箱集装箱船为例,本船共150个分段,平均每个分段约150张小组立图,全船共绘制小组立图约20 000张。
随着全球造船业务的迅猛发展,造船节奏的加快,造船周期大幅缩短,从而也压缩了生产设计的时间。以提高生产效率为目的的生产设计已经进入了一个新阶段,原有的手工出图模式已不能适应船厂生产的现状。传统的手工出图模式不仅工作量大、正确率难保证,而且还无法满足船舶生产节点的要求。传统的手工出图模式是复杂而又低效率的,必须寻求一种更高效更快捷的出图模式[1]。为了能减轻技术人员的劳动强度,提高工作效率,笔者运用TRIBON系统的二次开发功能实现了小组立图的批量自动生成。
基于Tribon提供的开放式的Vitesse信息提取接口,利用Tribon高效的Python编程外部链接,并反馈信息图表,从而实现了自动化信息功能[2]。通俗地讲,也就是将手工出图中的5个步骤用Python程序语言的形式表达出来,并重复这几个步骤,实现小组立图的批量生成。图2为小组立图自动生成程序的界面。
图2 小组立图自动生成程序界面
为了实现零件小组立图的自动批量生成,用5个模块来实行这个功能,分别为:生成BAT文件模块、生成改名程序模块、运行BAT文件模块、运行改名程序模块、删除临时文件模块。这5个模块可以分开单独分别执行,也可以直接5步自动运行。
运行Tribon系统提供的相关函数调用BIN文件夹下的tbwautodraw.exe程序生成一个扩展名为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批处理文件
经过“生成BAT文件模块”的运行后,程序会在Tribon系统数据库存SB_ASSPDB中生成一个个以“组立内部名”命名的组立图,“生成改名程序模块”的功能是生成一个可以将这些以“组立内部名”存储的小组立图改为以“组立名”命名的程序,这个程序扩展名为py。见图4。
图4 组立内部名与组立名的比较
本模块的核心源代码如下。
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
经过前两个模块的运行后,程序会分成2个临时文件:“批处理.bat”与“改名程序.py”。“运行BAT文件”模块与“运行改名程序”模块的功能是分别执行这2个文件,完成批处理与改名工作。本模块的核心源代码如下。
try:
dir=″E:TribonM3Vitesse″
bat=dir+′批处理.bat′
os.startfile(bat)
except:
kcs_ui.message_confirm(′文件还未生成′)
为了保证程序的顺利运行,在程序运行时会生成一些临时文件,如“批处理.bat”与“改名程序.py”等。在程序运行结束后,这些临时文件将会失去作用,为了避免混淆与出错,应该在程序结束后删除这些临时文件,本模块就起着删除临时文件的功能。本模块的核心源代码如下。
try:
dir=″E:TribonM3Vitesse″
bat=dir+′批处理.bat′
os.remove(bat)
os.remove(dir+’改名程序.dat’)
except:
kcs_ui.message_noconfirm(′没发现临时文件′)
零件小组立图自动生成程序的成功编制,将原有的手工出图模式改变为计算机自动出图模式,减少了技术人员的工作量与出错率,提高了生产设计的效率。此程序已在本厂的多艘船舶生产设计中使用,实践证明是可行的。目前,本程序只能适用于平面板架的小组立图自动生成,对于曲面板架的小组立图,在生成后还需人工干预。因此,本程序还需进一步的完善与修改,自动化出图的程度还需进一步提高。
[1] 周玉飞,顾文捷.船体初始化定义系统的开发与应用[J].船舶标准化工程师,2011(2):25-27.
[2] 周玉飞.套料板信息自动标识系统的开发与应用[J].广东造船,2010(4):38-39.