零件小组立图自动生成程序设计

2014-06-27 00:52
船海工程 2014年3期
关键词:批处理源代码程序

(泰州口岸船舶有限公司,江苏 泰州 225321)

Tribon强大的功能已得到了专业人士的认可[1],但该系统对零件小组立图的生成未提供批量自动生成功能。笔者结合船厂的生产设计状况,运用TRIBON系统的二次开发功能,编写了零件小组立自动生成程序,以减轻技术人员的工作强度,提高出图效率。

1 小组立图出图模式

零件小组立图是零件在小组立阶段的作业图纸,也可称为零件小装配图。零件在下料加工完毕后,即被送到小组立工位完成此阶段的装配作业。图1为零件小组立图,此图由图框、立体图、平面图、零件列表四部分组成。

原有的出图模式全部为手工出图,主要流程如下。

1)选择工程项,打开平面建模模块Hull Planar Modelling程序。

2)调入小组立图的图框。

图1 零件小组立图

3)使用平面建模模块中的立体模型调取功能调出板架的立体图。

4)使用平面建模模块中的平面视图调取功能调出板架的平面视图。

5)填写零件的重量与零件列表。

以上步骤为一张小组立图的出图流程,随着出图数量的增多,技术人员的工作量随之大幅增加。以本厂建造的3 820箱集装箱船为例,本船共150个分段,平均每个分段约150张小组立图,全船共绘制小组立图约20 000张。

随着全球造船业务的迅猛发展,造船节奏的加快,造船周期大幅缩短,从而也压缩了生产设计的时间。以提高生产效率为目的的生产设计已经进入了一个新阶段,原有的手工出图模式已不能适应船厂生产的现状。传统的手工出图模式不仅工作量大、正确率难保证,而且还无法满足船舶生产节点的要求。传统的手工出图模式是复杂而又低效率的,必须寻求一种更高效更快捷的出图模式[1]。为了能减轻技术人员的劳动强度,提高工作效率,笔者运用TRIBON系统的二次开发功能实现了小组立图的批量自动生成。

2 设计思路

基于Tribon提供的开放式的Vitesse信息提取接口,利用Tribon高效的Python编程外部链接,并反馈信息图表,从而实现了自动化信息功能[2]。通俗地讲,也就是将手工出图中的5个步骤用Python程序语言的形式表达出来,并重复这几个步骤,实现小组立图的批量生成。图2为小组立图自动生成程序的界面。

图2 小组立图自动生成程序界面

为了实现零件小组立图的自动批量生成,用5个模块来实行这个功能,分别为:生成BAT文件模块、生成改名程序模块、运行BAT文件模块、运行改名程序模块、删除临时文件模块。这5个模块可以分开单独分别执行,也可以直接5步自动运行。

3 模块功能

3.1 “生成BAT文件”模块

运行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批处理文件

3.2 “生成改名程序”模块

经过“生成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

3.3 “运行BAT文件”模块与“运行改名程序”模块

经过前两个模块的运行后,程序会分成2个临时文件:“批处理.bat”与“改名程序.py”。“运行BAT文件”模块与“运行改名程序”模块的功能是分别执行这2个文件,完成批处理与改名工作。本模块的核心源代码如下。

try:

dir=″E:TribonM3Vitesse″

bat=dir+′批处理.bat′

os.startfile(bat)

except:

kcs_ui.message_confirm(′文件还未生成′)

3.4 “删除临时文件”模块

为了保证程序的顺利运行,在程序运行时会生成一些临时文件,如“批处理.bat”与“改名程序.py”等。在程序运行结束后,这些临时文件将会失去作用,为了避免混淆与出错,应该在程序结束后删除这些临时文件,本模块就起着删除临时文件的功能。本模块的核心源代码如下。

try:

dir=″E:TribonM3Vitesse″

bat=dir+′批处理.bat′

os.remove(bat)

os.remove(dir+’改名程序.dat’)

except:

kcs_ui.message_noconfirm(′没发现临时文件′)

4 结论

零件小组立图自动生成程序的成功编制,将原有的手工出图模式改变为计算机自动出图模式,减少了技术人员的工作量与出错率,提高了生产设计的效率。此程序已在本厂的多艘船舶生产设计中使用,实践证明是可行的。目前,本程序只能适用于平面板架的小组立图自动生成,对于曲面板架的小组立图,在生成后还需人工干预。因此,本程序还需进一步的完善与修改,自动化出图的程度还需进一步提高。

[1] 周玉飞,顾文捷.船体初始化定义系统的开发与应用[J].船舶标准化工程师,2011(2):25-27.

[2] 周玉飞.套料板信息自动标识系统的开发与应用[J].广东造船,2010(4):38-39.

猜你喜欢
批处理源代码程序
基于TXL的源代码插桩技术研究
恶意批处理文件导致电脑黑屏、反复重启、无响应的原因分析及应对思路
给Windows添加程序快速切换栏
不装软件批处理为文件夹加锁
试论我国未决羁押程序的立法完善
基于语法和语义结合的源代码精确搜索方法
“程序猿”的生活什么样
借助批处理 让Cortana变聪明
英国与欧盟正式启动“离婚”程序程序
解密别克安全“源代码”