韩久志, 顾晓波,, 何 佳
(1.江苏科技大学 船舶与海洋工程学院, 江苏 镇江 212003;2.江苏现代造船技术有限公司, 江苏 镇江 212003)
基于Tribon系统的船体剖面生成程序开发
韩久志1, 顾晓波1,2, 何 佳2
(1.江苏科技大学 船舶与海洋工程学院, 江苏 镇江 212003;2.江苏现代造船技术有限公司, 江苏 镇江 212003)
在船舶生产设计中,使用Tribon系统自身功能剖取和修改船体剖面耗时较多且存在遗漏结构等问题,影响出图效率。针对上述问题,结合Tribon二次开发接口Vitesse与数据库技术,使用Python语言开发能够精确快速自动生成分段范围内所有平面剖面的辅助程序。通过分段测试,船体剖面生成程序能够有效提高船体生产设计效率。
Tribon;船体剖面;Vitesse;数据库技术
Tribon系统于20世纪90年代因国内辅助造船水平较低且计算机技术薄弱而引入国内,是一套计算机辅助设计、生产及信息集成的造船专家系统。船体剖面是指船体结构在某一位置处朝一特定方向的投影视图,例如:横剖面是指船体结构在垂直于水平面的位置上朝船长方向的投影。船体剖面[1]除用于表达所剖位置构件的形状外,更主要的是用于表达关键构件或其相连构件间的连接情况,因此在船舶生产设计中有着重要的指导作用。在Tribon系统中,直接剖取结构剖面操作复杂、效率较低、不够精确且修改剖面耗时较多,本文基于Tribon系统二次开发接口Vitesse与数据库技术开发了船体平面剖面辅助生成程序。
1.1 Tribon系统剖面生成
在Tribon系统中可调用Create View功能填入相关参数来生成以及优化剖面,如图1所示。在这个功能模块中,确定剖面位置的主要参数是船体结构位于全船坐标系中的一点,或是船体构件上的一个平面以及曲面。当使用点来确定剖面时,目标剖面投影视向可通过全船坐标系的三维空间向量表示。对于剖取特定板架所在平面的剖面视图时,可通过Tribon系统板架建模名称确定位置,而视向可根据剖面投影方向进行设计。使用Tribon系统开取剖面一般需要位置参数、视向参数和范围参数,并根据目标剖面的结构深度与细节需要细化参数。本文所开发的船体剖面生成程序就是通过分析剖面所需表达的要素,自动生成精确剖面参数,避免重复修复相关参数,从而实现剖面快速生成。
图1 Tribon系统剖面视图开取界面
1.2 开发思路
本文主要通过使用Python编程语言以及Tribon系统的Vitesse接口抽取并分析船体分段相关数据,如分段范围、构件信息等。归类分段板架后精确生成分段范围内所有剖面的剖面参数,并存储至SQLite3数据库中。再使用kcs_draft与KcsInterpretationObject模块自动绘制分段内所有剖面。船体剖面生成程序的实现流程如图2所示。
图2 程序实现流程
在Tribon系统中选定目标船的工程之后,获取目标船的所有分段名称与范围;选定分段后取分段内所有板架信息从而对板架进行两次分类,归类后缓存至数据库中;根据板架归类统计出分段范围所有板架或构件的位置,生成板架所在平面的位置集;以平面位置为索引,构建每个位置处剖面的范围参数、视向参数;最后将所有相关参数传至绘制方法,循环绘出分段范围内所有或选定剖面的剖面视图。
剖面快速生成程序中的数据均是通过抽取Tribon船体模型而获得的[2]。本程序以分段为剖面工程基础,其涉及的数据主要是分段名称与分段范围。分段范围是由该分段内所有板架范围所确定的,故又涉及分段内部所有板架的名称及范围的获取。本程序的数据抽取主要使用Python语言,通过Tribon系统的Vitesse接口调用kcs_dex抽取模块实现[3]。
板架的归类主要通过分析板架的4阶变换矩阵进行。在Tribon系统中,船体构件可通过这个4×4变换齐次矩阵,实现其三维变换操作。本程序主要通过获取该矩阵的第3与第4行相关数据识别板架的类型与位置。设某个平面板架的变换矩阵为A,若该板架平行于坐标系Oyz平面,则有A31的值为1,第3行其他元素均为0,且A41为该板架与全局坐标系x轴相交的值,第4行除比例因子A44为1外其他均为0。因此,A31值为1表示板架平行于横剖面,A32值为1表示平行于纵剖面,A33值为表示平行于水平面。根据板架所平行的剖面,可将板架的平面类型归类于横剖面、纵剖面或水平剖面。若多个板架的变换矩阵一致,则表示它们位置相同,在同一个平面内。同一平面内板架的归类集合以平面所在位置,如FR 50+100的船体标尺形式表示。
3.1 剖面参数生成
剖面参数指的是位置参数、视向参数以及范围参数。位置参数用来确定剖取剖面的位置,即待剖取剖面位于全船的位置,可通过全船坐标点或船体构件名称定义位置;视向参数确定船体结构投影方向,即观看剖面的视向,可通过全船坐标系的空间向量进行指定;范围参数指待投影区域位于全船坐标系下的空间范围,即船体构件在全船坐标系中最小的包络箱形范围,如图3所示,可用包络箱形的两对角点A和B表示箱形范围。
图3 包络箱形范围
以Tribon系统本身开取剖面功能为例,介绍本程序所涉及的剖面参数的具体含义。根据上述对剖面参数的分类,图1中Plane单元模块下Plane区域的所有参数可归类于位置参数与视向参数,可将剖面位置的表达划分为垂直于坐标轴剖面、三点定义剖面和指定板架所在平面剖面这3种情况。垂直于坐标轴的剖面即指平行于横剖面、纵剖面、水线面的剖面,其剖面位置参数即剖面与坐标轴交点处的坐标轴值,其视向参数则对应于图1中Looking区域中所有参数。当选择了坐标轴值作为位置参数时,其具体参数只需在By Coordinates区域中的Origin填入特定坐标值,如选x轴,即剖面平行于Oyz平面,其位置参数只需填入Origin处的x值;当选用“3points”确定剖面位置时,则由剖面中的1点作为源点以及确定剖面法向量的两个向量确定剖面;当选用Plane区域下的板架“Panel”作为位置参数时,应在选定构件类型填入相应的结构名称。
在Tribon系统中范围参数由Create View界面中的Limits单元模块(见图4)确定,由空间范围“Limits”与剖面深度“Depth”构成。图中“Limits”区域内的“Minimum”与“Maximum” 是指上述箱形范围的两个对角点即最低点A和最高点B,由其确定剖面的空间范围。“Depth”区域的参数确定剖面投影深度,即确定待投影结构沿剖面法向的范围。
图4 Limits单元模块
根据分段剖面表以及面向对象的编程思想,本程序将剖面参数封装成一个抽象的类——剖面类,剖面的所有参数均转化为该类的属性,从而具体某个剖面的表示则是该类的一个具体对象[4],剖面类的具体属性如表1所示。确定剖面参数的基础是完成了对目标分段内所有板架的分析与归类,根据剖面类型确定剖面的剖取方式以及视向。如表2所示,本程序将平面剖面类型分为“xpanels” “ypanels”“zpanels”等3类,即横剖面、纵剖面与水平剖面。剖面位置是指板架归类后所在平面的位置,其值与板架变换矩阵有关。剖面名称与板架归类后的归类集合名称一致,同时也间接以船舶标尺的形式表示剖面类型。如表2所示,根据不同类型的剖面可在一定范围内选定剖面的视向,并根据视向获取已定义的视向值。本程序中,剖面范围有两种取值方式:一种是取分段的范围值,此时的剖面大小与分段投影范围相同;另一种是取归类后板架平面的范围,此时的剖面只表示当前所有板架的投影视图。根据剖面的表达需要,在程序中可以选定剖面范围的取值方式。剖面前后深度根据剖面平面内板架沿视向方向的范围确定,即该剖面只表达归类后板架集合内的船体结构。
表1 剖面类属性
表2 剖面视向参数值
3.2 数据存储
根据程序本身的功能范围以及可移植性,数据存储机制选用的是轻型数据库SQLite3。通过数据库技术,可以记录分段内所有平面剖面数据,以供剖面修改与备份需要。数据库主要存储归类后的板架集合所在平面的剖面数据,其结构如表3所示。
表3 分段剖面数据
本程序主要通过调用kcs_draft模块下view_symbolic_new(Symbolic View)创建剖面视图方法实现绘制剖面。该方法参数Symbolic View是指KcsInterpretationObject模型的用于创建平面剖面视图的类,其主要属性如表4所示。由Viewclass剖面对象和剖面范围赋值于Symbolic View实例化后的对象,并传递上述的绘制方法实现绘制。
表4 Symbolic View类属性
船体剖面生成程序可用于Tribon系统的多个模块。下面以Hull Planar模块剖取2 700 TEU集装箱船底部分段剖面为例,介绍程序的操作步骤与实现效果。
在Tribon系统船体剖面生成程序可通过菜单直接启动,弹出通过使用wxPython图形库设计而成的人机交互界面[5],如图5所示。在选择目标分段B11PS分段后,右边空白框会以树状结构显示出该分段内所有剖面分类情况以及位置名称。当分段是初次选择时,需要点击“更新数据”按钮进行分段数据更新。在右侧树状栏展开剖面类型节点后,右击选择“FR 75”“FR 81”“L0”“1980”向左边列表框内添加剖面。本程序支持绘制单个或多个剖面,当选择剖面不正确时,点击“重置选择”按钮可清空列表框内剖面。当剖面确定之后,点击“绘制剖面”按钮,在Tribon系统绘制区域内选取一点以默认比例1∶50绘制列表框内所列剖面,绘制效果如图6所示。关闭本程序后,可继续在绘制区域内对所生成的剖面进行标注或调用。
通过具有数年船体生产设计工作经验的设计人员实际使用测试表明:使用Tribon系统自身功能剖取上述剖面耗时100 s,优化修改耗时120 s;使用本程序则耗时分别为60 s和105 s。本程序在剖取剖面方面效率提高明显,剖面质量较好。
图5 船体剖面生成程序主界面
图6 绘制效果
基于Tribon系统船体模型数据,本文使用Python语言以及SQLite3轻型数据库分析归类船体分段板架,开发船体剖面生成程序,实现快速自动绘制批量船体分段内平面剖面。船体剖面生成程序不仅能够批量绘制高质量剖面,可供Tribon系统多模块多专业使用,还能有效提高船舶生产设计效率,缩短工时,提高造船经济效益。
[1] 杨永祥,管义锋.船体制图[M].北京:国防工业出版社,2010.
[2] 张星君,夏利娟,赵党. Tribon船体模型的数据信息文件快速生成的开发[J]. 船舶工程,2010(1):56-59.
[3] 姚竞争.Tribon模型的数据抽取及二次开发 [D].哈尔滨:哈尔滨工程大学,2006.
[4] 房晓溪. 面向对象程序设计[M].北京:高等教育出版社,2003.
[5] 龚英弢,沈玉琦. Tribon M3船体快速建模开发[J]. 船舶,2008(6):51-54.
Development of Hull Section Generation Program Based on Tribon System
HAN Jiuzhi1, GU Xiaobo1,2, HE Jia2
(1. School of Naval Architecture and Ocean Engineering, Jiangsu University of Science and Technology,Zhenjiang 212003, Jiangsu, China; 2. Jiangsu Modern Shipbuilding Technology Co.,Ltd., Zhenjiang 212003, Jiangsu, China)
During the ship production design, it is time-consuming to use the Tribon system to create or modify the view of hull section ,which would make some omission of structure in the section and effect the efficiency of drawing. In order to solve the above problems, a program is developed which can automatically generate all plane section views of a block accurately and quickly by Python language with the Vitesse application program interface and database technology. It proves that the hull section generation program can effectively improve the design efficiency of ship hull production through the block test.
Tribon; hull section; Vitesse; database technology
韩久志(1990-),男,硕士研究生,研究方向为船舶与海洋结构物先进制造技术
1000-3878(2017)04-0087-06
TP311
A