第四章TRIBON舾装托盘数据提取系统的开发_第1页
第四章TRIBON舾装托盘数据提取系统的开发_第2页
第四章TRIBON舾装托盘数据提取系统的开发_第3页
第四章TRIBON舾装托盘数据提取系统的开发_第4页
第四章TRIBON舾装托盘数据提取系统的开发_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四章 tribon舾装托盘数据提取系统的程序设计与实现第四章 tribon舾装托盘数据提取系统的开发4.1 tribon编码标准和建模规范的制定建立这个舾装托盘数据提取系统的过程,实际上也是以中间产品为导向、以信息技术为手段规范舾装生产设计内容的过程。基于tribon的并行工程的核心在于信息集成和共享,即达到整个设计、生产周期的一体化,从而最优地控制企业信息流,而且要建立造船中间产品信息模型关键也在于是否有一个可以操作、而且兼顾各种要求的产品代码。其次,tribon的产品数据库中的三维数据模型如果没有统一的命名规则,将对数据库的管理、查询造成很大影响,不利于进行进一步的数据挖掘和二次开发,同

2、时造成大量的数据资源浪费。再次,传统的企业标准要求零件或设备的代码尽可能地包含全部的规格信息,比如大类、子类、型号、标准号、厂家等等信息,这样的代码少则近十位,多则二十多位 ,对于运用tribon系统建模的设计人员来说无疑增加了很大的工作量,况且tribon系统本身具有详细的部件数据模块,包含了各种舾装件的参数信息项,因此有必要对现有的代码编制方法作一定的修正,保证部件代码能够包含必要的参数信息并具有唯一性,同时简化设计人员编码的繁琐,充分利用tribon的数据资源,为下一步工作的展开做好铺垫。 tribon系统软件以统一的产品信息模型(product information model)数据

3、库来管理模型对象(model object )的各种数据信息,包括几何描述和技术数据。因此,用户为了建立完备的产品信息模型,不仅需要建立模型对象的三维几何描述,还要使模型对象经过两步数字化,即component和equipment,这个过程就是存储产品的生产技术数据。建立托盘数据提取系统所进行数据抽取的部分工作,就是以component和equipment中的技术参数为对象进行的。此外,tribon的outfitting中包括pipe modeling,ventilation modeling ,cable modeling,structure modeling四个建模模块,不同专业的生产设计

4、人员可能需要运用其中几个模块进行建模,为了保证设计流程的正确统一,有必要由专业设计人员对相关专业模块建立一套设计流程规范。4.1.1 outfitting modules和pipe systems的划分原则和命名规则 模块(module)在tribon中被定义为相同种类的模型对象的一组集合,它为用户管理和建立几何数据模型提供一种背景或概念。pipe ,equipment,cableway ,ventilation和structure都要定义在相应的module下。module的划分要体现中间产品的思想,建议以分段划分为主,另外根据实际情况可增加部分特殊系统的模块: module的划分应该在舾装

5、生产设计前期进行,由总体科或专业科室指定系统管理员在design manager中按照船体分段建立好新模块(new module),非系统管理员不得自行建立模块。对于冗余模块,系统管理员应该及时发现,并进行修改甚至删除。 pipe ,equipment, structure,cableway按照它们所处的分段位置定义在对应的分段中;对于跨分段的设备、机座等部件应放在其主体所在的分段中,主机放在其底座所在的分段中。 对于部分管系(如甲板上的管系)按照所属的平台或系统进行归类,命名规则可由风道和管子建模人员根据相关要求制定。 pipe systems的初始化应该由管装科的系统管理员按照各种管系系统

6、逐个建立,命名规则由管装科系统管理员制定。4.1.2 舾装件component和equipment的代码编制和输入舾装件的建模过程是由在drafting中建立的volume经过两步“数字化”component、equipment后生成的。除了pipe,ventilation,structure,cable,cableway,accommodation以外,其他的舾装件包括设备都要通过这个过程建立在equipment库中。在这个过程中,舾装件component和equipment的代码编制和输入要求如下: 将建立的各类设备和其他舾装件的特征分类码和components库的分类相配套,由各个专业的

7、系统管理员规定本专业的设备和其他舾装件在components库中分别创建在哪个子目录,以及在这个目录下component type code的 subclass和family的划分编码(如图4-1所示)。 设备和其他舾装件的具体划分编码。以机舱设备为例,将特征分类码为4100(锅炉),4200(热交换器、冷却器), 4500(内燃机),4600(泵),4800(轴系及传动设备)的设备创建在piping / ship equipment子目录下,而特征分类码为4700(其他辅助机械)的设备创建在ventilation / general ventilation components / gene

8、ral components子目录下,划分编码如图4-1所示。其它专业系列的设备可参照这种方式规范建模流程,由各专业的系统管理员将本专业设备的components库的创建程序和划分编码写进设计流程规范。图4-1 component代码定义 其他舾装件的特征分类码由字母表示,然而在component type code中不认字母,建议修改成由数字表示的特征分类码,然后由相关专业的系统管理员参照描述的过程编写创建这类舾装件components库的设计流程规范。 设备和其他舾装件的volume名,component名,equipment名的命名规范。一般船舶企业的标准规范中规定了各类设备和其他舾装件

9、的代码结构形式为附加码型号、规格、标准号代码特征分类码 这种编码方式形式过于繁琐,同时缺乏对tribon建模过程的针对性,因此,建议对其进行修正,建立符合tribon建模过程的“设备”命名规范。在tribon中创建“设备”需要经过三部曲:volume component equipment因此,一个“设备”对应着 volume名,component名,equipment名三个名称。不同型号或类型的设备可能具有相同的外形,因此,在tribon中同一个volume可能对应着不同的component;另外,同一种型号或类型的设备如果在多个位置布置,在tribon中就反应为同一个component对应

10、着多个的equipment。由此可见,“设备”的volume名,component名,equipment名是具有相关性的,因此它们的命名规范也应具有这个特点。建立tribon编码标准和建模规范还应包括各专业室在应用过程中对设计过程的规范,其中应该囊括pipe,ventilation,cable,structure等设计标准,以及component,equipment输入标准。以上有关module划分原则和舾装件编码的制定为设计人员应用tribon进行舾装生产设计提供了纲要性的规范,同时也保证了托盘数据提取系统在进行定制托盘数据提取的准确性和有效性。4.2 系统主界面和功能设计 友好的人机界面不

11、但能方便用户的使用,而且能够赢得用户的信任和好感。本课题设计的软件界面充分考虑了用户对软件的功能执行过程,能够给使用者提供最大程度的便利。为了满足各专业室提取技术数据并按照工厂定制托盘格式输出的需要,tribon舾装托盘数据提取系统采用visual basic 6.0作为开发语言,设计了符合windows风格的主界面,如图4-2所示。图4-2系统主界面系统中心部分的背景为159,000吨油轮机舱舾装部分tribon模型三维图,而且在菜单栏、工具栏以及左侧活动功能区中使用的图标和名称一律沿用tribon m1的使用习惯和风格,保证了设计人员对系统使用的亲和力和好感。按照企业中现有专业划分的工作模

12、式,内、外、机、电、管同一专业的设计人员可能要涉及到其他专业的托盘输出需求,如管装除了要求提取管子的安装和内场托盘,还要提取structure中设计的管子架托盘。因此,系统把各个专业的托盘提取功能都集中到主界面中,使不同专业的设计人员能够交叉提取所需的托盘数据,这样同时也符合未来企业按照现代造船模式组织设计团队时的需要。 工程编号栏 图4-3工程编号栏及修改对话框使用系统进行托盘提取前,首先要求输入所进行提取工程的编号,这个编号是企业根据新船型在设计前期编制船舶建造方针和相关标准时建立的。一般来说,在托盘代码的前几位数字和字母即是这个工程编号,如159,000吨的工程编号是bh509。系统因为

13、把159,000作为课题研究对象,在工程标号栏默认为bh509。对于新船型,在进行托盘输出前先对工程编号进行修改,单击“修改”按钮,跳出如图4-3中“修改工程编号”对话框,然后输入新的船舶工程编号单击ok键即可。输入的工程编号将在输出的托盘中作为托盘表表号显示。 coolbar活动功能区 coolbar活动功能区设计在系统左侧,是系统的主要功能显示区,如图4-4所示。这个功能区集中了四大专业室七种托盘类型的数据提取功能,以及tribon中outfitting lists的快速启动功能。设计人员在应用tribon系统进行生产设计的过程中,pipe,ventilation,cable,struct

14、ure是各专业室主要使用的模块。本系统的主要功能就是提取出这四个专业 模块设计的中间产品生产数据,并按照企业所需要的托盘格式输出,从而直接应用生产实践和物流集配。这七种托盘包括管支架托盘表、管系附件阀件托盘表、管件安装托盘表、管子内场制作配套表、风道安装托盘表、电缆数据托盘表、型材数据统计托盘表。 菜单栏和工具栏 图4-4 coolbar活动功能区 菜单栏和工具栏位于系统主界面顶端,如图4-5所示。菜单栏和活动功能区功能大体类似,分为pipe,ventilation,cable,structure,outfitting lists以及帮助六个功能菜单,其中pipe,ventilation,ca

15、ble,structure列出了系统能够提取的七种托盘提取功能。工具栏显示了六个图标,从左至右分别表示:管系,风道,电装,型材件,outfitting lists以及帮助;激活前四个快捷图标即可显示出相关专业的tribon建模规范和编码说明,第五个用来快速激活tribon中outfitting lists功能。图4-5菜单栏和工具栏4.3 系统功能实现的关键技术系统为设计人员提供统一的托盘数据提取界面,设计人员在指定好选项和提取内容后就可以得到excel格式的定制托盘表。在程序实现过程中,有两点关键技术需要实现: 对tribon数据库的数据提取是利用部件模型对象(com-object)方法通过

16、提取特定关键字来实现的,在程序设计前需要在微机中装有tribon m1系统,然后在visual basic6.0集成环境中引用tribon提供的特定类库tbdexint 1.0 type library,接着进行变量声明public extract as tbdex,这样部件模型对象(com-object)提供的四种方法就可以顺利地利用了; 为了实现excel格式的定制托盘表的自动输出,程序需要利用vb的ole自动化技术来实现对excel对象的控制。下面就程序中需要实现的技术做一个简要的介绍: ole自动化ole自动化允许在一个应用程序中操作另一个应用程序提供的对象。支持ole自动化的应用程序

17、向其他应用程序提供他们自己的对象。例如,excel提供的对象有宏、单元或整个工作表。 第一个与ole自动化服务器联系的方法是,用creatobject()函数生成要引用的应用程序的新实例,其语法如下: set appobject = creatobject (class, servername) excel的class名为“excel. application”;第二个变量是可选的,是生成对象的网络服务器名。如果要联系的应用程序已经运行,则通常不必要开始新的实例。可以联系现有的实例打开新文档。要联系服务器应用程序的运行实例,可用getobject()函数,其语法如下:set appobject

18、 = getobject (pathname, class) excel自动化excel提供的对象名称不同,但同样有合理的结构化层次,可以访问表格式结构中存放的数据。excel的基本信息单元是range。range对象可以包含一个单元,也可以包含整个电子表格。application对象表示excel的实例。worksheets集合包含当前工作簿每个工作表的worksheet对象。为了加进新的工作表,用add方法,其语法如下:application.worksheets.add (before, after, count, type)为了访问工作表,用worksheets集合的item方法,传递

19、工作表的索引或名称变量。下列表达式是等价的:application.worksheets.item (2)或 application.worksheets.item (“salesdata.xls”)item是集合的缺省属性,可以省略。range方法的基本语法如下:worksheet. range (cell1: cell2)cell1和cell2是确定工作表矩形区的两个单元地址,分别是选项左上角和右下角的地址。这里要用标准excel记号,即行号用数字,列号用字母,如a12或c3。要选择活动工作表右上角10×10,用下列表达式:worksheet. range(“a1:j10”)也可

20、以用cells方法将单个单元作为range对象取得,其语法如下:wordsheet.cells (row, col)row和col变量是单元坐标数字。rows和columns方法返回整行或整列的数字。另一种使用单元的方法是作为选择并访问selection对象的属性和方法,用range对象的select方法:range(“a2:d2”).select这个语句生成新的selection对象,可以按名称访问。由于工作表只有一个选择项,所以不必指定变量。4.4 pipe模块程序设计与实现 在船厂应用tribon系统进行生产设计,工作量最大、设计周期最长、生产数据最多的莫过于管系的设计及放样工作。tri

21、bon系统给设计人员提供了全三维的放样空间,而且保证任何模块的设计人员在进行干涉检查时都能随意的调出船体、设备等模型,极大的提高了设计效率,节省了设计成本。然而,在管系的设计过程中面临着大量的工作时间要花在管子小票图绘制,以及数种托盘表的数据统计与核算。本系统的pipe模块主要就是为了解决这数种托盘表的输出问题,即提取tribon产品数据模型中的管系数据,用excel表格的形式按照工厂要求输出定制托盘表。本pipe模块提供了四大类托盘表的定制:a.管子内场制作配套表 b.管子安装托盘表 c.管支架托盘表 d.管系附件阀件安装托盘表。下面就对这些托盘表的实现程序与设计原理进行详细的介绍。4.4.

22、1管子安装托盘表 工作界面及功能激活coolbar活动功能区的pipe模块分页,单击“管子安装托盘表”命令按钮,即可在背景区显示管子安装托盘表的提取界面窗口,如图4-6所示。图4-6管子安装托盘表提取界面 module文本框中输入需要提取的管子所在的分段号,此分段号是在应用tribon系统开始新船型设计时由总体科确定的分段划分方式,也就是说所有的管子在进行生产设计放样时都得按照其所在的区域定义在相应的module下,只有这样才能保证按照中间产品的形式提取出托盘数据,这里的中间产品即是定义在module下的管子。 option选项栏中列出了两种可选择的功能:一是“管子安装托盘表”,输出指定mod

23、ule里的管子数据;二是“封面”,只生成管子安装托盘表excel格式的表样。 程序设计 图4-7管子安装托盘表程序流程图 图4-7中描述了实现提取并输出管子安装托盘表的程序流程,其中涉及的关键字有: pipe.pips. name 管子小票名;pipe.pips. mtrl. comp_t 管材类型;pipe.pips. mtrl. comp_n 管材的component名;comp. gen_pr.wei 管材的线密度(component库general模块中的weight, 单位kg/m);comp. gen_pr.mtrl_c 管材的材质编号;pipe.pips. mtrl. qu 管材

24、长度;pipe.pips. gen_p.testpres 管子小票中的压力值;其中,管材的材质编号需要转换成材质名称,对应关系如下: 0 ty(c) = "普通钢" ty-材质名称1 ty(c) = "普通钢"2 ty(c) = "抗热钢"3 ty(c) = "不锈钢"4 ty(c) = "铜,黄铜"5 ty(c) = "铝,黄铜" 6 ty(c) = "铜镍"7 ty(c) = "铝合金" 8 ty(c) = "塑料&quo

25、t; 9 ty(c) = "其他材料"对于普通钢,g = val(mid(mm(c), 3, 3) if g < 300 then ty(c) = "无缝钢管" else ty(c) = "焊接钢管"end if在程序中,comp. gen_pr.wei对应的是tribon系统component库general模块中的weight值,它在此表示管子的线密度。而在输出的托盘表中需要的是管子的重量,因此要对此进行换算,公式为:线密度*长度/1000,其中长度提取的是对应管材pipe.pips. mtrl. qu。程序中作为管材类型的

26、判断码(7101,7103,7104,7110)表示tribon系统component库中pipe/straight pipes特定类别的管子:7101-steel ordinary7103-steel stainless7104-copper and brass7110-other materials 输出表样图4-8输出的管子安装托盘表4.4.2管系附件阀件安装托盘表 工作界面及功能 激活coolbar活动功能区的pipe模块分页,单击“管系附件阀件托盘表”命令按钮,即可在背景区显示管系附件阀件托盘表的提取界面窗口,如图4-9所示。module文本框中输入需要提取的管系附件阀件所在的分段号

27、,此分段号是在应用tribon系统开始新船型设计时由总体科确定的分段划分方式,也就是说所有的管子在进行生产设计放样时都得按照其所在的区域定义在相应的module下,只有这样才能保证按照中间产品的形式提取出托盘数据,这里的中间产品即是定义在module下的管系附件阀件。 option选项栏中列出了三种可选择的功能:一是“附件阀件托盘表”,输出指定module里所有附件以及阀件的托盘数据;二是“螺栓垫片清单”,输出指定module里的所有螺栓垫片托盘数据;三是“封面”,只生成管系附件阀件托盘表excel格式的表样。图4-9管系附件阀件托盘表提取界面 程序设计图4-10中描述了实现提取并输出管系附件

28、阀件托盘表的程序流程,其中涉及的关键字有: pipe.pips. name 管子小票名;pipe.pips. mtrl. comp_t 管材类型;pipe.pips. mtrl. comp_n 管材的component名;comp. gen_pr.wei 管材的线密度(component库general模块中的weight, 单位kg/m);comp. gen_pr.mtrl_c 管材的材质编号;pipe.pips. mtrl. qu 管材总长度;pipe.pips. mtrl. building_l 管材的管段长;其中,管材的材质编号需要转换成材质名称,对应关系同上一节所述。 程序中,以qu

29、_value - bu_value=120作为判断条件,它表示的意思是:对于连接法兰的管段其pipe.pips. mtrl. qu和pipe.pips. mtrl. building_l提取的长度是相等的,而对于没有连接法兰的管段pipe.pips. mtrl. qu比pipe.pips. mtrl. building_l长120mm的长度,因此用此作为是否为法兰的判断条件。能够提取的法兰包括的种类有blank flanges,slip-on flanges,weld neck flanges,spacer flanges,flanges with threaded holes,flanges

30、 without holes,在tribon系统中类型码为2000系列。 能够提取的其他附件阀件种类有connection pieces(1000系列),valves(3000系列),couplings(4000系列)。图4-10管系附件阀件托盘表程序流程图 输出表样图4-11输出的管系附件阀件托盘表和螺栓垫片清单4.4.3 管子内场制作配套表 工作界面及功能 激活coolbar活动功能区的pipe模块分页,单击“管子内场制作配套表”命令按钮,即可在背景区显示管子内场制作配套表的提取界面窗口,如图4-12所示。module文本框中输入需要提取的管子所在的分段号,此分段号是在应用tribon系统

31、开始新船型设计时由总体科确定的分段划分方式,也就是说所有的管子在进行生产设计放样时都得按照其所在的区域定义在相应的module下,只有这样才能保证按照中间产品的形式提取出托盘数据,这里的中间产品即是定义在module下的管子,管材或附件阀件。 option选项栏中列出了四种可选择的功能:一是“管件清单”,输出指定module里所有管子的托盘数据,此功能是管子安装托盘表的延伸,提取的原理和处理的关键字基本相同;二是“管材清单”,对指定module里的所有管子的管材进行统计,另外对同种管材的数量、长度、重量都做一个汇总;三是“附件清单”,输出指定module里的相关附件数据,它也是前面管系附件阀件

32、托盘表的延伸,提取原理和关键字同前;四是“封面”,只生成管系附件阀件托盘表excel格式的表样。图4-12管子内场制作配套表提取界面 程序设计 因为管件清单和附件清单的提取程序与前面的管子安装托盘表和附件阀件托盘表的程序设计相同,这里主要对管材数据汇总的方法进行详细的介绍,程序实现过程如下: 按照管子安装托盘表的数据提取过程,提取出“序号”、“管段名称”、“主要管材”、“材质”、“长度”、“重量”、“压力”、“表面处理”等数据信息,提取程序的流程可参照图4-7,并把这些数据输出在excel格式的pipe_list页中,格式位置如图4-13所示;图4-13 pipe_list表 将pipe_li

33、st表数据按c列的升序顺序重新排列:range ("c2"). selectselection. sort key1: =range ("c3"), order1: =xlascending, header: =xlguess, _ ordercustom:=1,matchcase:=false, orientation:=xltoptobottom ,_ sortmethod:=xlpinyin 逐项读取pipe_list中 “主要管材”、“材质”、“长度”、“重量” 的数据,并赋值给数组: while x = 1 range ("c&quo

34、t; + trim (str (m + 2). select if activecell.value <> "" then m3 (m) = activecell.value / 主要管材-m3() redim preserve m3 (ubound (m3) + 1) range ("d" + trim (str (m + 2). select m4 (m) = activecell.value / 材质-m4() redim preserve m4 (ubound (m4) + 1) range ("e" + trim

35、 (str (m + 2). select m5 (m) = activecell.value / 长度-m5() redim preserve m5 (ubound (m5) + 1) range ("f" + trim (str (m + 2). select m6 (m) = activecell.value / 重量-m6() redim preserve m6 (ubound (m6) + 1) m = m + 1else x = 0 end if wend 根据“主要管材”(m3)是否相同统计长度和重量:j = 1m7(1) = m3(1)m8(1) = m4(

36、1)m9(1) = m5(1)m10(1) = m6(1)for i = 2 to m - 1 if m7(j) = m3(i) then m9(j) = m9(j) + m5(i) m10(j) = m10(j) + m6(i) else redim preserve m7(ubound(m7) + 1) redim preserve m8(ubound(m8) + 1) redim preserve m9(ubound(m9) + 1) redim preserve m10(ubound(m10) + 1) m7(j + 1) = m3(i) m8(j + 1) = m4(i) m9(j

37、+ 1) = m5(i) m10(j + 1) = m6(i) j = j + 1 end ifnext i 将统计结果输出在正式的管材清单excel表格中,如103分段的管材统计结果如图4-14所示。图4-14输出的管子内场配套表(管材清单)4.4.4 .管支架托盘表 在应用tribon系统建模的过程中,管支架作为型材件,一般来说放在structure模块进行放样设计,因此它的托盘表只能在structure模型库中进行提取,系统的型材托盘表模块中提供了这一功能,而在这里仅仅输出定制的excel格式的管支架托盘表。定制托盘表的输出方法用在“系统功能实现的关键技术”一节中介绍ole自动化来实现。

38、工作界面如图4-15所示。图4-15管支架托盘表提取界面4.5 ventilation模块程序设计与实现图4-16风道安装托盘表提取界面 工作界面及功能 激活coolbar活动功能区的ventilation模块分页,单击“风道安装托盘表”命令按钮,即可在背景区显示风道安装托盘表的提取界面窗口,如图4-16所示。 project文本框需要输入进行提取的船型工程代号,这个工程代号是在进行新船型初始化设计时定义的。激活tribon中project select模块,设计人员可以看到系统所有工程的目录树,根目录的中文或英文代号就是船型的工程代号。 module文本框中输入需要提取的风管所在的分段号,此

39、分段号是在应用tribon系统开始新船型设计时由总体科确定的分段划分方式,也就是说所有的风管在进行生产设计放样时都得按照其所在的区域定义在相应的module下,只有这样才能保证按照中间产品的形式提取出托盘数据,这里的中间产品即是定义在module下的风管管段。 在进行数据提取之前,还必须对option选项功能栏中的安装阶段和安装内容进行指定。根据第二章托盘设计的内容,风管安装托盘表是一种典型的多维数据信息表,也就是说一张托盘表中包括数种有关风管安装以及物资集配的信息栏。风管托盘表的上方表头包括安装阶段、托盘表号、工艺年份、安装区域、安装内容以及安装图号这些数据栏,由此可见在同一module里的

40、风管管段根据不同的安装阶段、安装区域以及安装内容分别输出在不同的托盘表格中。因此,ventilation模块在进行数据提取时需要充分考虑设计人员在进行托盘编制工程中的这点要求。这样的话,在利用本系统进行提取之前需要指定安装阶段和安装内容,系统就会根据所选择的安装阶段和安装内容输出module里的风管管段数据。 程序设计 程序根据安装阶段(分段、艏舾、艉舾)的不同分别运行fdprogram,sxprogram,wxprogram三个子程序,这三个程序的设计原理大致相同,现就fdprogram为例说明其实现过程。 调用 drawventform(ventsheet) ,绘制风管安装托盘表; 根据指

41、定的安装阶段和安装内容在风管安装托盘表上输出托盘表号、安装区域、安装内容,并对“分段”栏涂灰显示; range ("d1:d2"). select with selection. interior . colorindex = 15 . pattern = xlsolid . patterncolorindex = xlautomatic end with 调用extractvent(project, module, contentlist, "y", ventsheet),按指定内容进行提取: a).提取风管管段名称,并存放于数组ventname()中

42、; if len (project) > 0 then dexstr = "vent (" + convert2dexstring (project) + ")." else dexstr = "vent (*)." end if if len (module) > 0 then dexstr_1 = dexstr + "ventm ('" + module + "'*). name" else if getallmodel () = false then exit

43、sub end if dexstr_1 = dexstr + "ventm (*). name" end if extract.dodataextraction dexstr_1 value = getextract (dexstr_1, "s") b).从管段名称中提取出管件号jh();for s = 1 to ventnumber l = len(ventname(s) n = instr(ventname(s), "-") jh (s) = right (ventname (s), l - n) redim preserve j

44、h (ubound (jh) + 1) next s c).提取计划单元信息planunit; dexstr_1 = dexstr + "ventm ('" + ventname (t) + "'). man_p.planning_unit" extract.dodataextraction dexstr_1 planunit = getextract (dexstr_1, "s") d). 根据planunit中的区域代码和安装方式代码选择要进行提取的风管,然后提取出该风管的安装图号; l = len(planuni

45、t) n = instr(planunit, "-") if n > 0 then acode = right(planunit, l - n) / acode-安装方式代码 qcode = left(planunit, n - 1) / qcode- 区域代码 if acode = aphase then / aphase-安装阶段 y:分段预舾装,cs:艏舾,cw:艉舾 select case qcode case "jd" content = "机舱底层" / content-安装内容 case "jc"

46、; content = "机舱c平台" case "jb" content = "机舱b平台" case "ja" content = "机舱a平台" case "yf" content = "烟囱" case "bf" content = "泵舱" case "wf" content = "艉部" case "sf" content = "艏部&

47、quot; case "hy" content = "货舱或油管仓库" end select if content = contentlist then dexstr_1 = dexstr + "ventm ('" + ventname (t) + "'). man_p.drawing_name" extract.dodataextraction dexstr_1 drawname = getextract (dexstr_1, "s") end if end if end if

48、 输出表样图4-17输出的风管安装托盘表4.6 cable模块程序设计与实现 工作界面及功能 激活coolbar活动功能区的cable模块分页,单击“电缆数据托盘表”命令按钮,即可在背景区显示电缆数据托盘表的提取界面窗口,如图4-18所示。 project文本框需要填写船型的工程名。如需提取全船主干电缆的数据,则在cable name文本框输入星号“*”;如需提取某系统电缆数据,则输入系统名加星号,如lgm*。 图4-18电缆数据托盘表提取界面程序设计图4-19风道安装托盘表提取流程图图4-19中描述了实现提取并输出风管安装托盘表的程序流程,其中涉及的关键字有:cable.cab_mod.na

49、me电缆代号cable.cab_mod.comp_n电缆component名cable.cab_mod.length_t电缆总长cable.cab_mod.con (s). equip电缆连接的设备名称cable. cab_mod. nmarkp 电缆经过的标记点数量cable. cab_mod. markp (s). name电缆经过的标记点名称equip.item.ref.point 设备位置参考坐标cable.cab_mod.markp(1).length_a 以标记电位参考的电缆前长cable.cab_mod.markp(1).length_b以标记电位参考的电缆后长equip.ite

50、m. room设备所在甲板信息equip.item. man_p.pur (s) 设备中文名称cable. cab_mod. nbranch 电缆的分支数cable. cab_mod. bran.npntr_r电缆分支中真实贯通的数量cable. cab_mod. bran.pntr_r.name电缆分支中真实贯通的名称程序中,根据设备位置点坐标换算出设备所在的肋位号(fr1/fr2)的过程是通过子程序xcoord_exchange (xcoord, fr)来实现的 ,程序段如下:public sub xcoord_exchange (xcoord, fr) if xcoord <= 4

51、4800 then/x坐标值<44800时肋位段长度为800 a = int (xcoord + 5600) / 800) frame = -7 + a fr = trim (str (frame) end if if xcoord > 44800 and xcoord < 251200 then a = int (xcoord - 44800) / 1200) /44800<x坐标值<251200时肋位段长度为1200 frame = 56 + a fr = trim (str (frame) end if if xcoord >= 251200 then /x坐标值>251200时肋位段长度为800 a = int (xcoord - 251200) / 800) frame = 228 + a fr = trim (str (frame) end ifend sub设备位置y坐标大于0,则设备处于“左舷”;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论