一种S3D模型转换为RELAP5模型的系统和方法与流程

文档序号:19943357发布日期:2020-02-14 23:29阅读:412来源:国知局
一种S3D模型转换为RELAP5模型的系统和方法与流程

本发明涉及一种三维模型处理的系统和方法,特别涉及一种s3d模型转换为relap5模型的系统和方法。



背景技术:

s3d(smart3d)是一款广泛运用的三维设计软件,s3d软件作为一个集成化的、多专业参与的三维工厂建模软件,能够快速帮助各专业设计人员进行三维建模以及设计检查,大大提高了工作效率和设计质量。在化工及能源行业,s3d软件得到了广泛的应用并且已经有了无数成功的案例。

relap5软件是爱德华国家工程实验室为核管会开发的轻水堆对瞬态分析程序,现已经成为核电厂分析器的基础。relap5软件几乎可以覆盖轻水堆核电厂所有热工水利瞬变和事故谱,其研究和分析领域可运用于轻水堆的设计基准事故以及瞬态和稳态的各种工况模拟。

对于使用s3d软件进行三维建模,使用relap5软件进行分析计算的公司,由于目前并没有relap5软件与s3d软件的可用软件接口,因此设计人员只能参照s3d三维模型手动进行relap5模型的建立,在二次建模的过程中不仅占用了设计人员大量工作时间而且降低了s3d三维模型的利用率。

因此,特别需要一种s3d模型转换为relap5模型的系统和方法,以解决上述现有存在的问题。



技术实现要素:

本发明的目的在于提供一种s3d模型转换为relap5模型的系统和方法,针对现有技术的不足,通过实现从s3d三维布置模型到relap5模型文件xml文件的自动生成实现了s3d三维布置向relap5模型的自动转换,省去了设计人员二次建模的环节,提高了s3d三维模型的数据利用率并减少了设计人员的工作量,整个过程全自动完成,操作简便,生产效率高。

本发明所解决的技术问题可以采用以下技术方案来实现:

第一方面,本发明提供一种s3d模型转换为relap5模型的系统,其特征在于,它包括:

外部数据读取模块,用于读取s3d三维模型转换模块所需的外部数据,包括去除管线清单、设备映射清单、计算管线清单、计算管道包清单、计算力学分析包清单以及s3d与relap5元件映射清单;

s3d模型数据下载模块,用于将存储在s3d数据库中的数据读取,提高后续处理以及计算的效率,下载数据的范围根据外部数据读取模块获取数据来决定;

三维拓扑关系计算模块,用于将s3d模型数据下载模块下载的模型数据通过拓扑关系算法获取所有元件的拓扑连接关系;

三维模型转换模块,用于根据用户输入的需要计算的三维模型的系统号、管线号、管道包号或者力学分析包号进行三维模型向relap5模型的转换;

s3d元件与relap5元件映射模块,用于根据s3d与relap5元件映射清单将s3d元件转化为对应的relap5元件;及

relap5文件生成模块,用于将转换完成relap5元件及其拓扑连接关系转化为relap5文件。

第二方面,本发明提供一种s3d模型转换为relap5模型的方法,其特征在于,它包括如下步骤:

s1、通过外部数据读取模块获取模型转换需要的外部数据,包括去除管线数据、设备映射数据、计算管线数据以及s3d与relap5元件映射关系数据;

s2、从s3d数据库中下载相关模型数据存储在内存中;

s3、将s3d模型数据下载模块下载的模型数据通过拓扑关系算法获取所有元件的拓扑连接关系,并存储成为对应的拓扑关系数据集合;

s4、从s3获得的拓扑关系数据集合中找出有tap点连接的元件,进行标记或者去除,获得新的拓扑关系数据集合;

s5、通过s3d元件与relap5元件映射模块将s3d元件映射到对应relap5元件类型;

s6、将没有relap5元件对应关系的s3d元件从拓扑关系数据集合中去除,并且重构其余元件之间的拓扑关系保证其余元件连接关系的完整;

s7、将重构完成的拓扑关系数据集合转换为xml文件格式。

在本发明的一个实施例中,所述步骤s3中将s3d模型数据下载模块下载的模型数据通过拓扑关系算法获取所有元件的拓扑连接关系,并存储成为对应的拓扑关系数据集合包含以下步骤:

s1、根据用户输入的系统号或者管线列表通过jnameditem接口获取对应的所有pipeline的oid,并创建结果集列表relap5itemlist;

s2、根据得到的oid通过xsystemhierarchy接口得到所有piperun的piperunoid;

s3、根据得到的所有piperunoid通过xpathspecification接口得到对应的所有pipefeaturelist,并继承piperun对象上需要的属性值到pipefeature对象;

s4、如果用户输入中有设备信息,进入步骤s5,没有进入步骤s8;

s5、读取用户给定的所有设备名称以及每个设备对应的管嘴名称;

s6、根据用户给定的设备名称,通过jnameditem接口获取所有设备的equipmentoid;

s7、根据获取的equipmentoid以及用户指定的nozzle名称,通过xdistribports接口、xflowports接口以及jdistribconnection_cl接口,获取用户指定的所有设备对应的相关管嘴的拓扑连接关系,其中对于非管道连接,直接给出对应元件的entityoid,对于和管道连接给出连接点坐标,并将所有对象加入relap5itemlist,全部完成后进入步骤s8;

s8、根据得到的pipefeaturelist,循环读取每一个pipefeatureoid,进入步骤s9,如果全部读取完成进入步骤s29;

s9、根据得到的pipefeatureoid通过xpathgeneratedparts接口获取当前pipefeature对应的所有实体元件的entityoid,如果找不到对应实体元件,回到步骤s8;如果有entityoid,创建relap5item对象,进入步骤s10;

s10、根据获取的entityoid列表,循环读取每一个entityoid,进入步骤s11,如果已经读取完毕,回到步骤s8;

s11、通过判断entityoid是否在routepipeoccur类中来判断当前元件relap5item是不是管道,如果存在就是管道,进入步骤s12,如果不存在则进入步骤s17;

s12、根据entityoid通过jdpipieport_cl、xdistribports和jdistribport接口找到管道port1的端面属性,包括端面直径、壁厚等信息,进入步骤s13;

s13、根据获得的pipefeatureoid通过jrtepathfeature接口得到当前pipefeature的连接点坐标作为point1和point2以及pipefeature的efunction,如果efunction为4,则当前pipefeature为接管座,进入步骤s14,否则进入步骤s16;

s14、将pipefeatureoid通过xofflinefeatures接口以及jrtepathfature接口获取当前接管座对应的branchfeature的branchfeatureoid,进入步骤s15

s15、通过xpathgeneratedparts接口判断branchfeature是否存在对应的元件,如果存在则回到步骤s8,如果不存在则将branchfeature的location作为接管座的point3坐标,并记录当前接管座的主管为步骤s9得到的entityoid,将当前元件信息记录入relap5itemlist,返回步骤s8;

s16、通过判断pipefeatureoid是否在jrteturnpathfeat中来判断当前元件是否是弯管,如果存在则标记当前元件为弯管,否则为管道,将当前元件信息记录入relap5itemlist,返回步骤s8;

s17、通过判断步骤s10的entityoid是否在routepipecomponentocc类中来判断当前元件是不是管件,如果存在就是管件,进入步骤s18,如果不存在则进入步骤s28;

s18、使用entityoid通过jdpipeport_cl接口与jdistribport接口获得当前管件的port1-port5的端口信息,将port1-port5的端面坐标作为元件的五个端面坐标,并将port1的管径壁厚作为元件的大管端的管径壁厚,进入步骤s19;

s19、如果port3存在端口信息,则将其管径壁厚作为元件的小管端管径壁厚,否则如果port2存在端口信息,则将其管径壁厚作为元件的小管端管径壁厚,进入步骤s20;

s20、通过判断pipefeatureoid是否在xofflinefeatures接口的oiddestination列中来判断当前元件是否是接管座,如果存在则是接管座,进入步骤s21,否则进入步骤s22;

s21、将步骤s18获得的port2坐标作为接管座的point3,将port1坐标作为接管座的point2,并标记xofflinefeatures的oidorigin列中的pipefeatureoid对应的entityoid作为主管,将当前元件信息记录入relap5itemlist,返回步骤s8;

s22、通过xrelconnectionandpartocc接口、xflowports接口以及xdistribports接口的共同使用获取entityoid对应的所有接连元件connectoid列表,循环读取每一个connectoid,如果存在,进入步骤s23,如果完成,则将当前元件信息记录入pfitemlist,返回步骤s8;

s23、通过判断当前connectoid是否存在routepipeoccur中判断连接元件是否是管道,如果存在routepipeoccur则连接元件为管道,回到步骤s22,否则连接元件不是管道,进入步骤s24;

s24、通过jdistribconnection_cl接口获取connectoid对应元件的坐标点,并通过判断当前坐标点与entityoid的point1-point5的距离来判断connectoid是连接在entityoid的哪一个端面,进入步骤s25;

s25、通过使用xpathgeneratedparts接口中是否存在connectoid来判断connectoid是否是管道元件,如果存在则是管道元件,获取connectoid对应的connectfeatureoid,进入步骤s26,否则是设备管嘴,进入步骤s27;

s26、判断connectfeatureoid是否在pipefeaturelist中,如果在则connectoid为当前元件的连接元件,记录到对应的端面中,如果不在则不是当前元件的连接元件,返回步骤s22;

s27、判断connectoid是否在relap5itemlist中,如果在则connectoid为当前元件的连接元件,记录到对应的端面中,如果不在则不是当前元件的连接元件,返回步骤s22;

s28、判断entityoid是否在routepipespecialityocc类中,如果在则标记当前pfitem为特殊件,否则标记为仪表件,进入步骤s18;

s29、从relap5itemlist中找到所有标记为接管座的元件,存放入pipeteelist集合中,进入步骤s30;

s30、从pipeteelist中循环读取每一个pipetee对象,如果存在将pipetee的五个连接对象都设为边界并进入步骤s31,如果全部完成后进入步骤s40;

s31、从relap5itemlist中寻找任一端面坐标与point1一致的并且不是pipetee的元件集合pipeteeconnectionlist,进入步骤s32;

s32、循环取出每一个pipeteeconnection,如果存在进入步骤s33,如果完成进入步骤s34;

s33、通过xpathgeneratedparts接口找到pipeteeconnection的oid对应的entityoid,如果entityoid与pipetee的主管一致,将pipeteeconnection的oid记录为pipetee的端面1的连接元件,进入步骤s34,否则返回步骤s32;

s34、从relap5itemlist中寻找任一端面坐标与point2一致的并且不是pipetee的元件集合pipeteeconnectionlist,进入步骤s35;

s35、循环取出每一个pipeteeconnection,如果存在进入步骤s36,如果完成进入步骤s37;

s36、通过xpathgeneratedparts接口找到pipeteeconnection的oid对应的entityoid,如果entityoid与pipetee的主管一致且pipeteeconnection的oid与pipetee的端面1的元件不同,将pipeteeconnection的oid记录为pipetee的端面2的连接元件,进入步骤s37,否则返回步骤s35;

s37、从relap5itemlist中寻找任一端面坐标与point3一致的并且不是pipetee的元件集合pipeteeconnectionlist,进入步骤s38;

s38、循环取出每一个pipeteeconnection,如果存在进入步骤s39,如果完成进入步骤s40;

s39、判断pipeteeconnection的oid是否和pipetee的端面1的元件以及pipetee的端面2的元件相同,如果都不相同将pipeteeconnection的oid记录为pipetee的端面3的连接元件,返回步骤s30,否则返回步骤s38;

s40、循环读取结果集relap5itemlist,顺序读取每一个relap5item,如果存在relap5item,进入步骤s41,如果全部读取完毕,结束;

s41、判断relap5item的point1是否为空,如果为空则端面1没有端面连接,进入步骤s43,否则如果point1不等于空而且端面1没有连接元件,进入步骤s42,否则进入步骤s43;

s42、从relap5itemlist中寻找端面坐标与point1一致且不是当前relap5item的connectitem,如果找不到,则端面1没有连接;如果只有一个,则connectitem就是端面1的连接元件;如果有多个,判断多个元件中是否存在接管座,如果存在则端面1的连接元件为该接管座,如果不存在则端面1存在多个连接,应当修改;进入步骤s43;

s43、判断relap5item的point2是否为空,如果为空则端面2没有端面连接,进入步骤s45,否则如果point2不等于空而且端面2没有连接元件,进入步骤s44,否则进入步骤s45;

s44、从relap5itemlist中寻找端面坐标与point2一致且不是当前relap5item的connectitem,如果找不到,则端面2没有连接;如果只有一个,则connectitem就是端面2的连接元件;如果有多个,判断多个元件中是否存在接管座,如果存在则端面2的连接元件为该接管座,如果不存在则端面2存在多个连接,应当修改;进入步骤s45;

s45、判断relap5item的point3是否为空,如果为空则端面3没有端面连接,进入步骤s47,否则如果point3不等于空而且端面3没有连接元件,进入步骤s46,否则进入步骤s47;

s46、从relap5itemlist中寻找端面坐标与point3一致且不是当前relap5item的connectitem,如果找不到,则端面3没有连接;如果只有一个,则connectitem就是端面3的连接元件,并且如果relap5item的小管端如果没有管径,判断如果point3和connectitem的point1或者point2一致,relap5item的小管端端面管径壁厚和connectitem的大管端一致,否则和connectitem的小管端一致;如果有多个,判断多个元件中是否存在接管座,如果存在则端面3的连接元件为该接管座,如果不存在则端面3存在多个连接,应当修改;进入步骤s47;

s47、判断relap5item的point4是否为空,如果为空则端面4没有端面连接,进入步骤s49,否则如果point4不等于空而且端面4没有连接元件,进入步骤s48,否则进入步骤s49;

s48、从relap5itemlist中寻找端面坐标与point4一致且不是当前relap5item的connectitem,如果找不到,则端面4没有连接;如果只有一个,则connectitem就是端面4的连接元件;如果有多个,判断多个元件中是否存在接管座,如果存在则端面4的连接元件为该接管座,如果不存在则端面4存在多个连接,应当修改;进入步骤s49;

s49、判断relap5item的point5是否为空,如果为空则端面5没有端面连接,返回步骤s40,否则如果point5不等于空而且端面5没有连接元件,进入步骤s50,否则返回步骤s40;

s50、从relap5itemlist中寻找端面坐标与point5一致且不是当前relap5item的connectitem,如果找不到,则端面5没有连接;如果只有一个,则connectitem就是端面5的连接元件;如果有多个,判断多个元件中是否存在接管座,如果存在则端面5的连接元件为该接管座,如果不存在则端面5存在多个连接,应当修改;返回步骤s40;

在本发明的一个实施例中,所述步骤s7中生成relap5文件,生成relap5文件反映的是relap5模型中元件的拓扑连接关系,由于s3d管道元件最多与五个元件相连接,每个relap5元件最多支持五个连接点。

在本发明的一个实施例中,为了保证所有元件都得到处理且不会重复处理,需要执行以下步骤:

s1、为每个元件添加是否放置完成标志,进入步骤s2;

s2、循环处理下一个元件,如果有下一个元件,进入步骤s3,否则进入步骤s6;

s3、判断当前元件是否放置完成,完成则回到步骤s2,未完成则进入步骤s4;

s4、放置当前元件,放置完成后进入步骤s5;

s5、对每一个关联元件进行判断,如果当前关联元件已放置完成,则跳过;如果未放置,则放置当前元件对应的link连接,判断完所有关联元件后,进入步骤s2;

s6、完成所有元件的放置,结束。

本发明的s3d模型转换为relap5模型的系统和方法,与现有技术相比,能够自动将s3d三维模型转化为relap5软件支持的xml文件,实现了布置模型向力学分析模型的自动转化,避免了二次建模带来的劳动力浪费,大大提升设计效率和质量;支持以系统为单位进行生成以及自定义管线列表进行生成两种模式,灵活易用;过程全自动完成,无需人为干预,操作简便,生产效率高;支持设备映射以及去除管线功能,同时支持去除tap点后续连接以及去除小管道功能,适用于各种应用场景;支持阈值设置,提高了三维模型建模过程中的容错率,实现本发明的目的。

本发明的特点可参阅本案图式及以下较好实施方式的详细说明而获得清楚地了解。

附图说明

图1为本发明优选实施例的s3d三维模型转换为relap5模型文件的系统的示意图;

图2为本发明优选实施例的s3d三维模型转换relap5模型文件的实现方法流程图;

图3为本发明优选实施例的s3d三维模型设备元件拓扑关系获取算法的流程示意图;

图4为本发明优选实施例的生成relap5文件的算法流程图。

具体实施方式

为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。

实施例

如图1所示,本发明的s3d模型转换为relap5模型的系统,包括:

外部数据读取模块2,用于读取s3d三维模型转换模块所需的外部数据,包括去除管线清单、设备映射清单、计算管线清单、计算管道包清单、计算力学分析包清单以及s3d与relap5元件映射清单;

s3d模型数据下载模块1,用于将存储在s3d数据库中的数据读取,提高后续处理以及计算的效率,下载数据的范围根据外部数据读取模块获取数据来决定;

三维拓扑关系计算模块3,用于将s3d模型数据下载模块1下载的模型数据通过拓扑关系算法获取所有元件的拓扑连接关系;

三维模型转换模块4,用于根据用户输入的需要计算的三维模型的系统号、管线号、管道包号或者力学分析包号进行三维模型向relap5模型的转换;

s3d元件与relap5元件映射模块5,用于根据s3d与relap5元件映射清单将s3d元件转化为对应的relap5元件;及

relap5文件生成模块6,用于将转换完成relap5元件及其拓扑连接关系转化为relap5文件。

如图2所示,本发明的s3d模型转换为relap5模型的方法,包括以下步骤:

s1、通过外部数据读取模块获取模型转换需要的外部数据,包括去除管线数据、设备映射数据、计算管线数据以及s3d与relap5元件映射关系数据;

s2、从s3d数据库中下载相关模型数据存储在内存中;

s3、将s3d模型数据下载模块下载的模型数据通过拓扑关系算法获取所有元件的拓扑连接关系,并存储成为对应的拓扑关系数据集合;

s4、从s3获得的拓扑关系数据集合中找出有tap点连接的元件,进行标记或者去除,获得新的拓扑关系数据集合;

s5、通过s3d元件与relap5元件映射模块将s3d元件映射到对应relap5元件类型;

s6、将没有relap5元件对应关系的s3d元件从拓扑关系数据集合中去除,并且重构其余元件之间的拓扑关系保证其余元件连接关系的完整;

s7、将重构完成的拓扑关系数据集合转换为xml文件格式。

在本实施例中,所述步骤s3中将s3d模型数据下载模块下载的模型数据通过拓扑关系算法获取所有元件的拓扑连接关系,并存储成为对应的拓扑关系数据集合包含以下步骤:

s1、根据用户输入的系统号或者管线列表通过jnameditem接口获取对应的所有pipeline的oid,并创建结果集列表relap5itemlist;

s2、根据得到的oid通过xsystemhierarchy接口得到所有piperun的piperunoid;

s3、根据得到的所有piperunoid通过xpathspecification接口得到对应的所有pipefeaturelist,并继承piperun对象上需要的属性值到pipefeature对象;

s4、如果用户输入中有设备信息,进入步骤s5,没有进入步骤s8;

s5、读取用户给定的所有设备名称以及每个设备对应的管嘴名称;

s6、根据用户给定的设备名称,通过jnameditem接口获取所有设备的equipmentoid;

s7、根据获取的equipmentoid以及用户指定的nozzle名称,通过xdistribports接口、xflowports接口以及jdistribconnection_cl接口,获取用户指定的所有设备对应的相关管嘴的拓扑连接关系,其中对于非管道连接,直接给出对应元件的entityoid,对于和管道连接给出连接点坐标,并将所有对象加入relap5itemlist,全部完成后进入步骤s8;

s8、根据得到的pipefeaturelist,循环读取每一个pipefeatureoid,进入步骤s9,如果全部读取完成进入步骤s29;

s9、根据得到的pipefeatureoid通过xpathgeneratedparts接口获取当前pipefeature对应的所有实体元件的entityoid,如果找不到对应实体元件,回到步骤s8;如果有entityoid,创建relap5item对象,进入步骤s10;

s10、根据获取的entityoid列表,循环读取每一个entityoid,进入步骤s11,如果已经读取完毕,回到步骤s8;

s11、通过判断entityoid是否在routepipeoccur类中来判断当前元件relap5item是不是管道,如果存在就是管道,进入步骤s12,如果不存在则进入步骤s17;

s12、根据entityoid通过jdpipieport_cl、xdistribports和jdistribport接口找到管道port1的端面属性,包括端面直径、壁厚等信息,进入步骤s13;

s13、根据获得的pipefeatureoid通过jrtepathfeature接口得到当前pipefeature的连接点坐标作为point1和point2以及pipefeature的efunction,如果efunction为4,则当前pipefeature为接管座,进入步骤s14,否则进入步骤s16;

s14、将pipefeatureoid通过xofflinefeatures接口以及jrtepathfature接口获取当前接管座对应的branchfeature的branchfeatureoid,进入步骤s15

s15、通过xpathgeneratedparts接口判断branchfeature是否存在对应的元件,如果存在则回到步骤s8,如果不存在则将branchfeature的location作为接管座的point3坐标,并记录当前接管座的主管为步骤s9得到的entityoid,将当前元件信息记录入relap5itemlist,返回步骤s8;

s16、通过判断pipefeatureoid是否在jrteturnpathfeat中来判断当前元件是否是弯管,如果存在则标记当前元件为弯管,否则为管道,将当前元件信息记录入relap5itemlist,返回步骤s8;

s17、通过判断步骤s10的entityoid是否在routepipecomponentocc类中来判断当前元件是不是管件,如果存在就是管件,进入步骤s18,如果不存在则进入步骤s28;

s18、使用entityoid通过jdpipeport_cl接口与jdistribport接口获得当前管件的port1-port5的端口信息,将port1-port5的端面坐标作为元件的五个端面坐标,并将port1的管径壁厚作为元件的大管端的管径壁厚,进入步骤s19;

s19、如果port3存在端口信息,则将其管径壁厚作为元件的小管端管径壁厚,否则如果port2存在端口信息,则将其管径壁厚作为元件的小管端管径壁厚,进入步骤s20;

s20、通过判断pipefeatureoid是否在xofflinefeatures接口的oiddestination列中来判断当前元件是否是接管座,如果存在则是接管座,进入步骤s21,否则进入步骤s22;

s21、将步骤s18获得的port2坐标作为接管座的point3,将port1坐标作为接管座的point2,并标记xofflinefeatures的oidorigin列中的pipefeatureoid对应的entityoid作为主管,将当前元件信息记录入relap5itemlist,返回步骤s8;

s22、通过xrelconnectionandpartocc接口、xflowports接口以及xdistribports接口的共同使用获取entityoid对应的所有接连元件connectoid列表,循环读取每一个connectoid,如果存在,进入步骤s23,如果完成,则将当前元件信息记录入pfitemlist,返回步骤s8;

s23、通过判断当前connectoid是否存在routepipeoccur中判断连接元件是否是管道,如果存在routepipeoccur则连接元件为管道,回到步骤s22,否则连接元件不是管道,进入步骤s24;

s24、通过jdistribconnection_cl接口获取connectoid对应元件的坐标点,并通过判断当前坐标点与entityoid的point1-point5的距离来判断connectoid是连接在entityoid的哪一个端面,进入步骤s25;

s25、通过使用xpathgeneratedparts接口中是否存在connectoid来判断connectoid是否是管道元件,如果存在则是管道元件,获取connectoid对应的connectfeatureoid,进入步骤s26,否则是设备管嘴,进入步骤s27;

s26、判断connectfeatureoid是否在pipefeaturelist中,如果在则connectoid为当前元件的连接元件,记录到对应的端面中,如果不在则不是当前元件的连接元件,返回步骤s22;

s27、判断connectoid是否在relap5itemlist中,如果在则connectoid为当前元件的连接元件,记录到对应的端面中,如果不在则不是当前元件的连接元件,返回步骤s22;

s28、判断entityoid是否在routepipespecialityocc类中,如果在则标记当前pfitem为特殊件,否则标记为仪表件,进入步骤s18;

s29、从relap5itemlist中找到所有标记为接管座的元件,存放入pipeteelist集合中,进入步骤s30;

s30、从pipeteelist中循环读取每一个pipetee对象,如果存在将pipetee的五个连接对象都设为边界并进入步骤s31,如果全部完成后进入步骤s40;

s31、从relap5itemlist中寻找任一端面坐标与point1一致的并且不是pipetee的元件集合pipeteeconnectionlist,进入步骤s32;

s32、循环取出每一个pipeteeconnection,如果存在进入步骤s33,如果完成进入步骤s34;

s33、通过xpathgeneratedparts接口找到pipeteeconnection的oid对应的entityoid,如果entityoid与pipetee的主管一致,将pipeteeconnection的oid记录为pipetee的端面1的连接元件,进入步骤s34,否则返回步骤s32;

s34、从relap5itemlist中寻找任一端面坐标与point2一致的并且不是pipetee的元件集合pipeteeconnectionlist,进入步骤s35;

s35、循环取出每一个pipeteeconnection,如果存在进入步骤s36,如果完成进入步骤s37;

s36、通过xpathgeneratedparts接口找到pipeteeconnection的oid对应的entityoid,如果entityoid与pipetee的主管一致且pipeteeconnection的oid与pipetee的端面1的元件不同,将pipeteeconnection的oid记录为pipetee的端面2的连接元件,进入步骤s37,否则返回步骤s35;

s37、从relap5itemlist中寻找任一端面坐标与point3一致的并且不是pipetee的元件集合pipeteeconnectionlist,进入步骤s38;

s38、循环取出每一个pipeteeconnection,如果存在进入步骤s39,如果完成进入步骤s40;

s39、判断pipeteeconnection的oid是否和pipetee的端面1的元件以及pipetee的端面2的元件相同,如果都不相同将pipeteeconnection的oid记录为pipetee的端面3的连接元件,返回步骤s30,否则返回步骤s38;

s40、循环读取结果集relap5itemlist,顺序读取每一个relap5item,如果存在relap5item,进入步骤s41,如果全部读取完毕,结束;

s41、判断relap5item的point1是否为空,如果为空则端面1没有端面连接,进入步骤s43,否则如果point1不等于空而且端面1没有连接元件,进入步骤s42,否则进入步骤s43;

s42、从relap5itemlist中寻找端面坐标与point1一致且不是当前relap5item的connectitem,如果找不到,则端面1没有连接;如果只有一个,则connectitem就是端面1的连接元件;如果有多个,判断多个元件中是否存在接管座,如果存在则端面1的连接元件为该接管座,如果不存在则端面1存在多个连接,应当修改;进入步骤s43;

s43、判断relap5item的point2是否为空,如果为空则端面2没有端面连接,进入步骤s45,否则如果point2不等于空而且端面2没有连接元件,进入步骤s44,否则进入步骤s45;

s44、从relap5itemlist中寻找端面坐标与point2一致且不是当前relap5item的connectitem,如果找不到,则端面2没有连接;如果只有一个,则connectitem就是端面2的连接元件;如果有多个,判断多个元件中是否存在接管座,如果存在则端面2的连接元件为该接管座,如果不存在则端面2存在多个连接,应当修改;进入步骤s45;

s45、判断relap5item的point3是否为空,如果为空则端面3没有端面连接,进入步骤s47,否则如果point3不等于空而且端面3没有连接元件,进入步骤s46,否则进入步骤s47;

s46、从relap5itemlist中寻找端面坐标与point3一致且不是当前relap5item的connectitem,如果找不到,则端面3没有连接;如果只有一个,则connectitem就是端面3的连接元件,并且如果relap5item的小管端如果没有管径,判断如果point3和connectitem的point1或者point2一致,relap5item的小管端端面管径壁厚和connectitem的大管端一致,否则和connectitem的小管端一致;如果有多个,判断多个元件中是否存在接管座,如果存在则端面3的连接元件为该接管座,如果不存在则端面3存在多个连接,应当修改;进入步骤s47;

s47、判断relap5item的point4是否为空,如果为空则端面4没有端面连接,进入步骤s49,否则如果point4不等于空而且端面4没有连接元件,进入步骤s48,否则进入步骤s49;

s48、从relap5itemlist中寻找端面坐标与point4一致且不是当前relap5item的connectitem,如果找不到,则端面4没有连接;如果只有一个,则connectitem就是端面4的连接元件;如果有多个,判断多个元件中是否存在接管座,如果存在则端面4的连接元件为该接管座,如果不存在则端面4存在多个连接,应当修改;进入步骤s49;

s49、判断relap5item的point5是否为空,如果为空则端面5没有端面连接,返回步骤s40,否则如果point5不等于空而且端面5没有连接元件,进入步骤s50,否则返回步骤s40;

s50、从relap5itemlist中寻找端面坐标与point5一致且不是当前relap5item的connectitem,如果找不到,则端面5没有连接;如果只有一个,则connectitem就是端面5的连接元件;如果有多个,判断多个元件中是否存在接管座,如果存在则端面5的连接元件为该接管座,如果不存在则端面5存在多个连接,应当修改;返回步骤s40;

在本实施例中,所述步骤s7中生成relap5文件,生成relap5文件反映的是relap5模型中元件的拓扑连接关系,由于s3d管道元件最多与五个元件相连接,每个relap5元件最多支持五个连接点。

在本实施例中,为了保证所有元件都得到处理且不会重复处理,需要执行以下步骤:

s1、为每个元件添加是否放置完成标志,进入步骤s2;

s2、循环处理下一个元件,如果有下一个元件,进入步骤s3,否则进入步骤s6;

s3、判断当前元件是否放置完成,完成则回到步骤s2,未完成则进入步骤s4;

s4、放置当前元件,放置完成后进入步骤s5;

s5、对每一个关联元件进行判断,如果当前关联元件已放置完成,则跳过;如果未放置,则放置当前元件对应的link连接,判断完所有关联元件后,进入步骤s2;

s6、完成所有元件的放置,结束。

本发明的s3d模型转换为relap5模型的系统和方法具有以下有益效果:

1、提供了一种s3d管道及设备专业拓扑连接关系的获取方法,为s3d模型的管理和应用提供了更多的可能性。

2、提供了一种s3d管道专业元件属性读取的方法,为s3d模型的管理和应用提供了更多的可能性。

3、能够自动将s3d三维模型转化为relap5软件支持的xml文件,实现了布置模型向力学分析模型的自动转化,避免了二次建模带来的劳动力浪费,大大提升设计效率和质量。

4、支持以系统为单位进行生成以及自定义管线列表进行生成两种模式,灵活易用。

5、整个过程全自动完成,无需人为干预,操作简便,生产效率高。

6、支持设备映射以及去除管线功能,同时支持去除tap点后续连接以及去除小管道功能,适用于各种应用场景。

7、支持阈值设置,提高了三维模型建模过程中的容错率。

以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内,本发明要求保护范围由所附的权利要求书及其等效物界定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1