一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种S3D高能管道破损影响分析的系统和实现方法与流程

2022-02-20 20:48:24 来源:中国专利 TAG:

一种s3d高能管道破损影响分析的系统和实现方法
技术领域
1.本发明涉及高能管道破损影响分析相关领域,具体为一种s3d高能管道破损影响分析的系统和实现方法。


背景技术:

2.s3d(smart 3d)是一款广泛运用的三维设计软件。s3d软件作为一个集成化的、多专业参与的三维工厂建模软件,能够快速帮助各专业设计人员进行三维建模以及设计检查,大大提高了工作效率和设计质量。在化工及能源行业,s3d软件得到了广泛的应用并且已经有了无数成功的案例。
3.高能管道断裂是设计过程中必须考虑的工况。由于高能管道断裂后甩击能量高,所以其可能造成的危害极大,甚至影响核安全。以前设计过程中为此设置了大量的构件和结构用来防止高能管道断裂危害。随着破先漏(leak before break)技术的应用,高能管道不必考虑完全断裂的工况,取消了防甩击的构件和结构,因此高能管道断裂后的影响分析对工程的安全至关重要。针对上述情况,提出了一种s3d高能管道破损影响分析的系统和实现方法。


技术实现要素:

4.本发明的目的在于提供一种s3d高能管道破损影响分析的系统和实现方法,以解决上述背景技术中提出的问题。
5.为实现上述目的,本发明提供如下技术方案:一种s3d高能管道破损影响分析系统,包括高能管道输入模块、高能管道路径分析模块、影响空间生成模块、影响分析计算模块和影响报告生成模块,其特征在于:所述高能管道输入模块用于用户指定需要进行分析的高能管道范围以及破损影响区间值,其中高能管道范围可以是单根管道输入也可以是通过清单指定的多跟管道输入;
6.所述高能管道路径分析模块用于根据用户输入的高能管道范围识别出需要分析的高能管道,同时对高能管道进行路径识别,将涉及的所有管道抽象成空间中以线表示的路径;
7.所述影响空间生成模块用于根据高能管道路径分析模块识别出的路径,按照用户输入的影响范围自动生成对应的影响空间模型;
8.所述影响分析模块用于通过碰撞检查识别影响空间内除了生成该空间的高能管道外的一些对象并记录到对应数据库中,同时在分析结束以后自动删除生成的影响分析空间;
9.所述报告生成模块用于将高能管道影响分析结果以报表形式输出给用户后续的安全分析计算工作。
10.优选的,一种s3d高能管道破损影响分析系统的实现方法,其特征在于:包括以下步骤:
11.s1、用户通过高能管道输入模块输入高能管道对应的管线号以及影响范围,进入s2;
12.s2、根据用户输入范围定位到模型中的具体管道,识别范围内每根管道的具体布置路径以及管道之间的连接关系,最终形成所有高能管道共同构成的网络路径图,进入s3;
13.s3、根据s2获得的路径图加上s1中输入的影响范围自动在s3d中构建影响空间,进入s4;
14.s4、定时扫描s3中生成的影响空间对应的碰撞干涉对象,去除生成影响空间的管道以及管道正常连接的对象后作为结果输入到数据库中,删除生成的影响控件,进入s5;
15.s5、将s4中的结果通过界面反馈给用户,如果用户需要生成对应报表进入s6,否则进入s7;
16.s6、将结果生成excel形式报表输入给用户,进入s7;
17.s7、结束。
18.优选的,所述s2的根据用户输入范围定位到模型中的具体管道,识别范围内每根管道的具体布置路径以及官道之间的连接关系,最终形成所有高能管道共同构成的网络路径图,其构成步骤如下;
19.s2.1、验证用户输入的高能管道范围是否为空,如为空,报错直接进入s2.17,否则进入s2.2;
20.s2.2、根据输入的管线范围,进入s3d项目寻找是否存在对应的管线。如果有进入获取管线集合进入s2.3,如果没有则报错后进入s2.17;
21.s2.3、循环遍历管线集合,如果存在未遍历到的管线,进入s2.4,否则进入s.8;
22.s2.4、找到管线对应的piperun集合,进入s2.5;
23.s2.5、循环遍历piperun集合,如果存在未遍历到的piperun,进入s2.6,否则返回s2.3;
24.s2.6、确认当前piperun是否已经存在对应的影响空间,如果存在进入s2.7,否则返回s2.5;
25.s2.7、删除当前piperun生成的影响空间,返回s2.5;
26.s2.8、定义路径集合,路径由一条线段和当前路径所属的piperun的名称组成,线段由点构成,点由坐标、类别以及对应的feature构成,进入s2.9;
27.s2.9、循环遍历s2.2的管线集合,获取所有的piperun集合,进入s2.10;
28.s2.10、循环遍历piperun集合,如果存在未遍历到的piperun,进入s2.11;否则进入s2.14;
29.s2.11、找到当前piperun下的所有feature,将feature根据其类别和坐标转换为点,进入s2.12;
30.s2.12、根据不同feature之间的连接关系,将不同的点串联成线,进入s2.13;
31.s2.13、根据线之间的关系串联成当前piperun下的路径,存入路径集合,返回s2.10;
32.s2.14、从路径集合中找出所有路径的端点和变径点,这些点如果存在连接关系,则代表连接,可以找出对应这些点的路径,去除相连的两个点,将两个路径合并为一个路径,进入s2.15;
33.s2.15、从路径集合中找到路径中存在的分支端点和三通点,如果分支端点和三通点存在连接关系却在互不相连的路径中,则需要将这些路径中对应分支端点的路径延伸到对应三通点的路径,使其形成通路,进入s2.16;
34.s2.16、找到具有完全不和其他路径相连的端点的路径作为起始路径,将所有路径依次排序成为带有分支的有向路径网络,形成后续步骤需要的高能管道共同构成的网络路径图,进入s2.17;
35.s2.17、结束。
36.优选的,所述s3的根据s2获得的路径图加上s1中输入的影响范围自动在s3d中构建影响空间,其构建影响空间包含如下步骤:
37.s3.1、构建s3d的position集合,进入s3.2;
38.s3.2、根据s2形成的路径网络图,遍历所有路径,如果存在未访问到的路径,进入s3.3,否则进入s3.62;
39.s3.3、获得当前路径的起点和终点,将当前路径的终点定义为currentpos,当前终点对应的feature定义为currentfeature,起点对应的feature定义为abovefeature,进入s3.4;
40.s3.4、如果当前路径是有向路径网络的第一条路径,进入s3.5,否则进入s3.14;
41.s3.5、获取当前路径的影响范围作为radius,如果abovefeature的类型不是弯头,进入s3.6,否则进入s3.12;
42.s3.6、将终点坐标放入position集合,进入s3.14;
43.s3.7、找到abovefeature的端点中距离currentpos更近的点设为shortpos,另一个端点设为longpos,进入s3.8;
44.s3.8、如果abovefeature的转弯半径是影响范围的半径的两倍以上,进入s3.9,否则进入s3.12;
45.s3.9、在此情况下,弯头的影响范围应该是一个圆环的一部分,首先获得从longpos指向currentpos的向量originv,然后获得从shortpos指向currentpos的向量tempv,求两个向量的叉乘方向verticalv,此方向就是当前弯头影响空间的部分圆环对应的平面的法向量,同时用verticalv叉乘originv,获得需要生成的弯头影响空间的部分圆环的次轴方向secondaryv,进入s3.10;
46.s3.10、以longpos作为部分圆环的起点,originv作为圆环的主轴,secondaryv作为圆环的次轴,radius作为圆环的半径,abovefeature的bendangle与2倍的pi的比例来确定需要的影响空间为圆环的几分之几,abovefeature的bendradius作为圆环截面的半径进行影响空间的绘制,影响空间的名字为当前路径的名字,绘制完成后进入s3.11;
47.s3.11、将abovefeature标记已存在,防止重复绘制影响空间,然后将shortpos放入position集合,进入s3.14;
48.s3.12、在此情况下,弯头的影响范围近似为从longpos到currentpos的直段以及从currentpos到shortpos的直段的组合,因此分别将longpos、currentpos以及shortpos放入position集合,然后绘制按顺序遍历position集合的多段直线段构成的影响空间,其中影响空间的截面为半径为影响范围的圆,影响空间的名字为当前路径的名字,绘制完成后进入s3.13;
49.s3.13、清除position集合后,将abovefeature标记已存在,防止重复绘制影响空间,然后将shortpos放入position集合,进入s3.14;
50.s3.14、如果当前路径不是有向路径网络的最后一条路径,进入s3.15,否则进入s3.45;
51.s3.15、获取当前路径的影响范围作为radius,如果position集合不包含currentpos,进入s3.16,否则进入s3.43;
52.s3.16、如果currentfeature的类型不是弯头,进入s3.17,否则进入s3.18;
53.s3.17、将currentpos放入position集合,进入s3.28;
54.s3.18、找到currentfeature的端点中距离position集合中最后的点更近的点设为shortpos,另一个端点设为longpos,进入s3.19;
55.s3.19、如果currentfeature已被标记为已存在,将shortpos放入position集合,进入s3.28,否则进入s3.20;
56.s3.20、如果currentfeature的转弯半径不到影响范围的半径的两倍,进入s3.21,否则进入s3.24;
57.s3.21、将shortpos放入position集合,然后绘制按顺序遍历position集合的多段直线段构成的影响空间,其中影响空间的截面为半径为影响范围的圆,影响空间的名字为当前路径的名字,绘制完成后进入s3.22;
58.s3.22、清空position集合,按顺序将shortpos、currentpos以及longpos放入position集合,然后绘制按顺序遍历position集合的多段直线段构成的影响空间,其中影响空间的截面为半径为radius的圆,影响空间的名字为当前路径的名字,绘制完成后进入s3.23;
59.s3.23、清空position集合,将longpos放入position集合,将currentfeature标记为已存在,进入s3.28;
60.s3.24、在此情况下,弯头的影响范围应该是一个圆环的一部分。将shortpos放入position集合,然后绘制按顺序遍历position集合的多段直线段构成的影响空间,其中影响空间的截面为半径为影响范围的圆,影响空间的名字为当前路径的名字,绘制完成后进入s3.25;
61.s3.25、清空position集合,算出从shortpos指向currentpos的向量originv,然后算出从longpos指向currentpos的向量tempv,求两个向量的叉乘方向verticalv,此方向就是当前弯头影响空间的部分圆环对应的平面的法向量,同时用verticalv叉乘originv,获得需要生成的弯头影响空间的部分圆环的次轴方向secondaryv,进入s3.26;
62.s3.26、以shortpos作为部分圆环的起点,originv作为圆环的主轴,secondaryv作为圆环的次轴,radius作为圆环的半径,currentfeature的bendangle与2倍的pi的比例来确定需要的影响空间为圆环的几分之几,currentfeature的bendradius作为圆环截面的半径进行影响空间的绘制,影响空间的名字为当前路径的名字,绘制完成后进入s3.27;
63.s3.27、将abovefeature标记已存在,防止重复绘制影响空间,然后将longpos放入position集合,进入s3.28;
64.s3.28、如果下一条路径的名称和前一条路径的名称不一致或者下一条路径的起点与上一条路径的终点不一致,代表重新开始一条和前面所有路径不相连的路径,进入
s3.29,否则返回s3.2;
65.s3.29、如果position集合中有点,进入s3.30,否则进入s3.31;
66.s3.30、绘制按顺序遍历position集合的多段直线段构成的影响空间,其中影响空间的截面为半径为radius的圆,影响空间的名字为当前路径的名字,绘制完成后进入s3.31;
67.s3.31、清空position集合,获得当前路径下一条路径的起点对应的feature标记为nextfeature,进入s3.32;
68.s3.32、如果nextfeature类型不为弯头,进入s3.33,否则进入s3.34;
69.s3.33、将下一条路径的起点坐标放入position集合,返回s3.2;
70.s3.34、获取下一条路径的影响范围标记为radius,将下一条路径的终点标记为refpos,进入s3.35;
71.s3.35、将nextfeature的端点中距离refpos更近的点设为shortpos,另一个端点设为longpos,进入s3.36;
72.s3.36、如果nextfeature被标记为已存在,将shortpos放入position集合,返回s3.2,否则进入s3.37;
73.s3.37、如果nextfeature的转弯半径不到影响范围的半径的两倍,进入s3.38,否则进入s3.40;
74.s3.38、将longpos、下一条路径的起点以及shortpos按顺序放入position集合,然后绘制按顺序遍历position集合的多段直线段构成的影响空间,其中影响空间的截面为半径为radius的圆,影响空间的名字为下一条路径的名字,绘制完成后进入s3.39;
75.s3.39、清空position集合,将shortpos放入position集合,将nextfeature标记为已存在,返回s3.2;
76.s3.40、算出从longpos指向下一条路径的起点的向量originv,然后算出从shortpos指向下一条路径的终点的向量tempv,求两个向量的叉乘方向verticalv,此方向就是当前弯头影响空间的部分圆环对应的平面的法向量,同时用verticalv叉乘originv,获得需要生成的弯头影响空间的部分圆环的次轴方向secondaryv,进入s3.41;
77.s3.41、以longpos作为部分圆环的起点,originv作为圆环的主轴,secondaryv作为圆环的次轴,radius作为圆环的半径,nextfeature的bendangle与2倍的pi的比例来确定需要的影响空间为圆环的几分之几,nextfeature的bendradius作为圆环截面的半径进行影响空间的绘制,影响空间的名字为下一条路径的名字,绘制完成后进入s3.42;
78.s3.42、将nextfeature标记为已存在,将shortpos放入position集合,返回s3.2;
79.s3.43、路径中不能有重复的点,因此发现重复点就断开,分两条路径。绘制按顺序遍历position集合的多段直线段构成的影响空间,其中影响空间的截面为半径为radius的圆,影响空间的名字为当前路径的名字,绘制完成后进入s3.44;
80.s3.44、清空position集合,将当前路径的起点坐标放入position集合,将游标后退一格,返回s3.2;
81.s3.45、如果position集合不包含currentpos,进入s3.46,否则进入s3.59;
82.s3.46、获取当前路径的影响范围作为radius,如果currentfeature的类型不是弯头,进入s3.47,否则进入s3.49;
83.s3.47、将currentpos放入position集合,进入s3.48;
84.s3.48、绘制按顺序遍历position集合的多段直线段构成的影响空间,其中影响空间的截面为半径为影响范围的圆,影响空间的名字为当前路径的名字,绘制完成后返回s3.2;
85.s3.49、将currentfeature的端点中距离position集合中最后的点更近的点设为shortpos,另一个端点设为longpos,进入s3.50;
86.s3.50、如果currentfeature被标记为已存在,将shortpos放入position集合,返回s3.48,否则进入s3.51;
87.s3.51、如果currentfeature的转弯半径不到影响范围的半径的两倍,进入s3.52,否则进入s3.55;
88.s3.52、将shortpos放入position集合,然后绘制按顺序遍历position集合的多段直线段构成的影响空间,其中影响空间的截面为半径为radius的圆,影响空间的名字为当前路径的名字,绘制完成后进入s3.53;
89.s3.53、清空position集合,将shortpos、currentpos以及longpos按顺序放入position集合,然后绘制按顺序遍历position集合的多段直线段构成的影响空间,其中影响空间的截面为半径为radius的圆,影响空间的名字为当前路径的名字,进入s3.54;
90.s3.54、将currentfeature标记为已存在,返回s3.2;
91.s3.55、将shortpos放入position集合,绘制按顺序遍历position集合的多段直线段构成的影响空间,其中影响空间的截面为半径为影响范围的圆,影响空间的名字为当前路径的名字,绘制完成后进入s3.56;
92.s3.56、算出从longpos指向currentpos的向量originv,然后算出从shortpos指向currentpos的向量tempv,求两个向量的叉乘方向verticalv,此方向就是当前弯头影响空间的部分圆环对应的平面的法向量,同时用verticalv叉乘originv,获得需要生成的弯头影响空间的部分圆环的次轴方向secondaryv,进入s3.57;
93.s3.57、以longpos作为部分圆环的起点,originv作为圆环的主轴,secondaryv作为圆环的次轴,radius作为圆环的半径,currentfeature的bendangle与2倍的pi的比例来确定需要的影响空间为圆环的几分之几,currentfeature的bendradius作为圆环截面的半径进行影响空间的绘制,影响空间的名字为当前路径的名字,绘制完成后进入s3.58;
94.s3.58、将currentfeature标记为已存在,返回s3.2;
95.s3.59、如果position集合不为空,进入s3.60,否则返回s3.2;
96.s3.60、获取当前路径的影响范围作为radius,绘制按顺序遍历position集合的多段直线段构成的影响空间,其中影响空间的截面为半径为影响范围的圆,影响空间的名字为当前路径的名字,绘制完成后清空position集合,进入s3.61;
97.s3.61、将当前路径的起点坐标放入position集合,然后将currentpos放入position集合,然后绘制按顺序遍历position集合的多段直线段构成的影响空间,其中影响空间的截面为半径为radius的圆,影响空间的名字为当前路径的名字,绘制完成后返回s3.2;
98.s3.62、查看是否存在存储高能管道数据的db文件,如果不存在创建对应db文件,完成后进入s3.63;
99.s3.63、查看db文件是否存在用于存储piperun的影响空间的数据表,如果不存在创建数据表lbb_info_1,完成后进入s3.64;
100.s3.64、查看db文件中是否存在用于存储影响分析结果的数据表lbb_info_2,如果不存在创建该表,完成后进入s3.65;
101.s3.65、循环遍历piperun集合,如果存在未遍历到的piperun,进入s3.66;否则进入s3.69;
102.s3.66、从lbb_info_1寻找当前piperun的数据条目,如果存在进入s3.67,否则进入s3.68;
103.s3.67、更新当前条目的相关属性,删除lbb_info_2中当前条目的所有影响范围,返回s3.65;
104.s3.68、向lbb_info_1中插入piperun对应的影响空间信息如名字、影响范围等,返回s3.65;
105.s3.69、结束。
106.优选的,所述s4的定时扫描s3中生成的影响空间对应的碰撞干涉对象,去除生成影响空间的管道以及管道正常连接的对象后作为结果输入到数据库中,删除生成的影响控件包含以下步骤;
107.s4.1、查看是否存在存储高能管道数据的db文件,如果不存在创建对应db文件,完成后进入s4.2;
108.s4.2、查看db文件是否存在用于存储piperun的影响空间的数据表,如果不存在创建数据表lbb_info_1,完成后进入s4.3;
109.s4.3、查看db文件中是否存在用于存储影响分析结果的数据表lbb_info_2,如果不存在创建该表,完成后进入s4.4;
110.s4.4、查找lbb_info_1中是否存在尚未完成影响空间碰撞分析的piperun,获取对应的数据条目,完成后进入s4.5;
111.s4.5、循环遍历s4.4获得的条目,如果存在尚未遍历的条目,进入s4.6,否则进入s4.21;
112.s4.6、设置碰撞检查是否完成标志位flag为否,找到当前piperun下的所有parts存储入part集合,设置一个当前碰撞的去除集合partcol,进入s4.7;
113.s4.7、循环遍历part集合,如果存在尚未遍历的part,进入s4.8,否则进入s4.11;
114.s4.8、将part放入partcol,找到当前part的连接点connection集合,进入s4.9;
115.s4.9、循环遍历connection集合,如果存在尚未遍历的connection,进入s4.10,否则返回s4.7:
116.s4.10、找到当前connection对象的连接对象,找到连接对象中除了当前part的另一个part,如果该part不在partcol中,将其放入partcol,返回s4.9;
117.s4.11、根据当前条目的名称从模型中找到对应的碰撞影响空间对象,进入s4.12;
118.s4.12、找到碰撞影响空间对应的所有碰撞点对象集合,进入s4.13;
119.s4.13、循环遍历s4.12获得的所有碰撞点,如果存在尚未遍历的碰撞点,进入s4.14,否则进入s4.16:
120.s4.14、找到当前碰撞点关联的碰撞对象,查看是否存在既不是焊点又不是碰撞影
响空间且不是碰撞影响空间对象,如果存在进入s4.15,否则返回s4.13;
121.s4.15、如果该对象不存在于partcol,则当前对象为影响空间内受到影响的真实对象,将其存放入lbb_info_2表中,同时将碰撞检查标志位flag设为真,返回s4.13,否则直接返回s4.13;
122.s4.16、查看flag的值,如果为真,进入s4.17,否则进入s4.18;
123.s4.17、将碰撞影响空间删除,更新lbb_info_1中对应条目的影响空间状态为已完成影响分析,返回s4.5;
124.s4.18、查找lbb_info_1中当前影响空间的生成时间,如果现在时间相比生成时间已超过1小时,进入s4.19,否则进入4.20;
125.s4.19、当前影响分析已完成,只是没有任何影响对象,将碰撞影响空间删除,更新lbb_info_1中对应条目的影响空间状态为已完成影响分析,返回s4.5;
126.s4.20、当前影响空间对应的碰撞检查尚未完成,等待,直接返回s4.5;
127.s4.21、结束。
128.与现有技术相比,本发明的有益效果是:
129.1.本发明提供了一种根据管道布置路径自动生成管道影响空间的方法,免去了分析人员手动进行影响空间建模的工作,大幅提升了工作效率和质量;
130.2.本发提供了一种通过碰撞检查实现影响空间内受影响对象识别的方法,免去了设计人员手动分析影响对象的过程,大幅提升了工作效率和质量;
131.3.本发明实现了对分析结果的自动导出,方便使用人员将分析结果使用到后续的计算分析环节中;
132.4.本发明支持单根管道以及多跟管道两种分析模式,通用性更强;
133.5.本发明支持对用户输入对象和分析结果对象的高亮居中显示,提高用户的使用体验。
附图说明
134.图1为本发明的s3d高能管道破损影响分析系统的结构示意图;
135.图2为本发明的s3d高能管道破损影响分析的实现方法流程图;
136.图3为本发明的构建s3d高能管道网络路径图的流程示意图;
137.图4为本发明的根据生成的影响空间分析高能管道影响范围的流程示意图。
具体实施方式
138.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
139.在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理
解上述术语在本发明中的具体含义。
140.请参阅图1-4,本发明提供一种技术方案:一种s3d高能管道破损影响分析系统,包括高能管道输入模块、高能管道路径分析模块、影响空间生成模块、影响分析计算模块和影响报告生成模块,其特征在于:所述高能管道输入模块用于用户指定需要进行分析的高能管道范围以及破损影响区间值,其中高能管道范围可以是单根管道输入也可以是通过清单指定的多跟管道输入;
141.所述高能管道路径分析模块用于根据用户输入的高能管道范围识别出需要分析的高能管道,同时对高能管道进行路径识别,将涉及的所有管道抽象成空间中以线表示的路径;
142.所述影响空间生成模块用于根据高能管道路径分析模块识别出的路径,按照用户输入的影响范围自动生成对应的影响空间模型;
143.所述影响分析模块用于通过碰撞检查识别影响空间内除了生成该空间的高能管道外的一些对象并记录到对应数据库中,同时在分析结束以后自动删除生成的影响分析空间;
144.所述报告生成模块用于将高能管道影响分析结果以报表形式输出给用户后续的安全分析计算工作。
145.进一步的,一种s3d高能管道破损影响分析系统的实现方法,其特征在于:包括以下步骤:
146.s1、用户通过高能管道输入模块输入高能管道对应的管线号以及影响范围,进入s2;
147.s2、根据用户输入范围定位到模型中的具体管道,识别范围内每根管道的具体布置路径以及管道之间的连接关系,最终形成所有高能管道共同构成的网络路径图,进入s3;
148.s3、根据s2获得的路径图加上s1中输入的影响范围自动在s3d中构建影响空间,进入s4;
149.s4、定时扫描s3中生成的影响空间对应的碰撞干涉对象,去除生成影响空间的管道以及管道正常连接的对象后作为结果输入到数据库中,删除生成的影响控件,进入s5;
150.s5、将s4中的结果通过界面反馈给用户,如果用户需要生成对应报表进入s6,否则进入s7;
151.s6、将结果生成excel形式报表输入给用户,进入s7;
152.s7、结束。
153.进一步的,所述s2的根据用户输入范围定位到模型中的具体管道,识别范围内每根管道的具体布置路径以及官道之间的连接关系,最终形成所有高能管道共同构成的网络路径图,其构成步骤如下;
154.s2.1、验证用户输入的高能管道范围是否为空,如为空,报错直接进入s2.17,否则进入s2.2;
155.s2.2、根据输入的管线范围,进入s3d项目寻找是否存在对应的管线。如果有进入获取管线集合进入s2.3,如果没有则报错后进入s2.17;
156.s2.3、循环遍历管线集合,如果存在未遍历到的管线,进入s2.4,否则进入s.8;
157.s2.4、找到管线对应的piperun集合,进入s2.5;
158.s2.5、循环遍历piperun集合,如果存在未遍历到的piperun,进入s2.6,否则返回s2.3;
159.s2.6、确认当前piperun是否已经存在对应的影响空间,如果存在进入s2.7,否则返回s2.5;
160.s2.7、删除当前piperun生成的影响空间,返回s2.5;
161.s2.8、定义路径集合,路径由一条线段和当前路径所属的piperun的名称组成,线段由点构成,点由坐标、类别以及对应的feature构成,进入s2.9;
162.s2.9、循环遍历s2.2的管线集合,获取所有的piperun集合,进入s2.10;
163.s2.10、循环遍历piperun集合,如果存在未遍历到的piperun,进入s2.11;否则进入s2.14;
164.s2.11、找到当前piperun下的所有feature,将feature根据其类别和坐标转换为点,进入s2.12;
165.s2.12、根据不同feature之间的连接关系,将不同的点串联成线,进入s2.13;
166.s2.13、根据线之间的关系串联成当前piperun下的路径,存入路径集合,返回s2.10;
167.s2.14、从路径集合中找出所有路径的端点和变径点,这些点如果存在连接关系,则代表连接,可以找出对应这些点的路径,去除相连的两个点,将两个路径合并为一个路径,进入s2.15;
168.s2.15、从路径集合中找到路径中存在的分支端点和三通点,如果分支端点和三通点存在连接关系却在互不相连的路径中,则需要将这些路径中对应分支端点的路径延伸到对应三通点的路径,使其形成通路,进入s2.16;
169.s2.16、找到具有完全不和其他路径相连的端点的路径作为起始路径,将所有路径依次排序成为带有分支的有向路径网络,形成后续步骤需要的高能管道共同构成的网络路径图,进入s2.17;
170.s2.17、结束。
171.进一步的,所述s3的根据s2获得的路径图加上s1中输入的影响范围自动在s3d中构建影响空间,其构建影响空间包含如下步骤:
172.s3.1、构建s3d的position集合,进入s3.2;
173.s3.2、根据s2形成的路径网络图,遍历所有路径,如果尚有未访问到的路径,进入s3.3,否则进入s3.62;
174.s3.3、获得当前路径的起点和终点,将当前路径的终点定义为currentpos,当前终点对应的feature定义为currentfeature,起点对应的feature定义为abovefeature,进入s3.4;
175.s3.4、如果当前路径是有向路径网络的第一条路径,进入s3.5,否则进入s3.14;
176.s3.5、获取当前路径的影响范围作为radius,如果abovefeature的类型不是弯头,进入s3.6,否则进入s3.12;
177.s3.6、将终点坐标放入position集合,进入s3.14;
178.s3.7、找到abovefeature的端点中距离currentpos更近的点设为shortpos,另一个端点设为longpos,进入s3.8;
179.s3.8、如果abovefeature的转弯半径是影响范围的半径的两倍以上,进入s3.9,否则进入s3.12;
180.s3.9、在此情况下,弯头的影响范围应该是一个圆环的一部分,首先获得从longpos指向currentpos的向量originv,然后获得从shortpos指向currentpos的向量tempv,求两个向量的叉乘方向verticalv,此方向就是当前弯头影响空间的部分圆环对应的平面的法向量,同时用verticalv叉乘originv,获得需要生成的弯头影响空间的部分圆环的次轴方向secondaryv,进入s3.10;
181.s3.10、以longpos作为部分圆环的起点,originv作为圆环的主轴,secondaryv作为圆环的次轴,radius作为圆环的半径,abovefeature的bendangle与2倍的pi的比例来确定需要的影响空间为圆环的几分之几,abovefeature的bendradius作为圆环截面的半径进行影响空间的绘制,影响空间的名字为当前路径的名字,绘制完成后进入s3.11;
182.s3.11、将abovefeature标记已存在,防止重复绘制影响空间,然后将shortpos放入position集合,进入s.14;
183.s3.12、在此情况下,弯头的影响范围近似为从longpos到currentpos的直段以及从currentpos到shortpos的直段的组合,因此分别将longpos、currentpos以及shortpos放入position集合,然后绘制按顺序遍历position集合的多段直线段构成的影响空间,其中影响空间的截面为半径为影响范围的圆,影响空间的名字为当前路径的名字,绘制完成后进入s3.13;
184.s3.13、清除position集合后,将abovefeature标记已存在,防止重复绘制影响空间,然后将shortpos放入position集合,进入s3.14;
185.s3.14、如果当前路径不是有向路径网络的最后一条路径,进入s3.15,否则进入s3.45;
186.s3.15、获取当前路径的影响范围作为radius,如果position集合不包含currentpos,进入s3.16,否则进入s3.43;
187.s3.16、如果currentfeature的类型不是弯头,进入s3.17,否则进入s3.18;
188.s3.17、将currentpos放入position集合,进入s3.28;
189.s3.18、找到currentfeature的端点中距离position集合中最后的点更近的点设为shortpos,另一个端点设为longpos,进入s3.19;
190.s3.19、如果currentfeature已被标记为已存在,将shortpos放入position集合,进入s3.28,否则进入s3.20;
191.s3.20、如果currentfeature的转弯半径不到影响范围的半径的两倍,进入s3.21,否则进入s3.24;
192.s3.21、将shortpos放入position集合,然后绘制按顺序遍历position集合的多段直线段构成的影响空间,其中影响空间的截面为半径为影响范围的圆,影响空间的名字为当前路径的名字,绘制完成后进入s3.22;
193.s3.22、清空position集合,按顺序将shortpos、currentpos以及longpos放入position集合,然后绘制按顺序遍历position集合的多段直线段构成的影响空间,其中影响空间的截面为半径为radius的圆,影响空间的名字为当前路径的名字,绘制完成后进入s3.23;
194.s3.23、清空position集合,将longpos放入position集合,将currentfeature标记为已存在,进入s3.28;
195.s3.24、在此情况下,弯头的影响范围应该是一个圆环的一部分。将shortpos放入position集合,然后绘制按顺序遍历position集合的多段直线段构成的影响空间,其中影响空间的截面为半径为影响范围的圆,影响空间的名字为当前路径的名字,绘制完成后进入s3.25;
196.s3.25、清空position集合,算出从shortpos指向currentpos的向量originv,然后算出从longpos指向currentpos的向量tempv,求两个向量的叉乘方向verticalv,此方向就是当前弯头影响空间的部分圆环对应的平面的法向量,同时用verticalv叉乘originv,获得需要生成的弯头影响空间的部分圆环的次轴方向secondaryv,进入s3.26;
197.s3.26、以shortpos作为部分圆环的起点,originv作为圆环的主轴,secondaryv作为圆环的次轴,radius作为圆环的半径,currentfeature的bendangle与2倍的pi的比例来确定需要的影响空间为圆环的几分之几,currentfeature的bendradius作为圆环截面的半径进行影响空间的绘制,影响空间的名字为当前路径的名字,绘制完成后进入s3.27;
198.s3.27、将abovefeature标记已存在,防止重复绘制影响空间,然后将longpos放入position集合,进入s3.28;
199.s3.28、如果下一条路径的名称和前一条路径的名称不一致或者下一条路径的起点与上一条路径的终点不一致,代表重新开始一条和前面所有路径不相连的路径,进入s3.29,否则返回s3.2;
200.s3.29、如果position集合中有点,进入s3.30,否则进入s3.31;
201.s3.30、绘制按顺序遍历position集合的多段直线段构成的影响空间,其中影响空间的截面为半径为radius的圆,影响空间的名字为当前路径的名字,绘制完成后进入s3.31;
202.s3.31、清空position集合,获得当前路径下一条路径的起点对应的feature标记为nextfeature,进入s3.32;
203.s3.32、如果nextfeature类型不为弯头,进入s3.33,否则进入s3.34;
204.s3.33、将下一条路径的起点坐标放入position集合,返回s3.2;
205.s3.34、获取下一条路径的影响范围标记为radius,将下一条路径的终点标记为refpos,进入s3.35;
206.s3.35、将nextfeature的端点中距离refpos更近的点设为shortpos,另一个端点设为longpos,进入s3.36;
207.s3.36、如果nextfeature被标记为已存在,将shortpos放入position集合,返回s3.2,否则进入s3.37;
208.s3.37、如果nextfeature的转弯半径不到影响范围的半径的两倍,进入s3.38,否则进入s3.40;
209.s3.38、将longpos、下一条路径的起点以及shortpos按顺序放入position集合,然后绘制按顺序遍历position集合的多段直线段构成的影响空间,其中影响空间的截面为半径为radius的圆,影响空间的名字为下一条路径的名字,绘制完成后进入s3.39;
210.s3.39、清空position集合,将shortpos放入position集合,将nextfeature标记为
已存在,返回s3.2;
211.s3.40、算出从longpos指向下一条路径的起点的向量originv,然后算出从shortpos指向下一条路径的终点的向量tempv,求两个向量的叉乘方向verticalv,此方向就是当前弯头影响空间的部分圆环对应的平面的法向量,同时用verticalv叉乘originv,获得需要生成的弯头影响空间的部分圆环的次轴方向secondaryv,进入s3.41;
212.s3.41、以longpos作为部分圆环的起点,originv作为圆环的主轴,secondaryv作为圆环的次轴,radius作为圆环的半径,nextfeature的bendangle与2倍的pi的比例来确定需要的影响空间为圆环的几分之几,nextfeature的bendradius作为圆环截面的半径进行影响空间的绘制,影响空间的名字为下一条路径的名字,绘制完成后进入s3.42;
213.s3.42、将nextfeature标记为已存在,将shortpos放入position集合,返回s3.2;
214.s3.43、路径中不能有重复的点,因此发现重复点就断开,分两条路径。绘制按顺序遍历position集合的多段直线段构成的影响空间,其中影响空间的截面为半径为radius的圆,影响空间的名字为当前路径的名字,绘制完成后进入s3.44;
215.s3.44、清空position集合,将当前路径的起点坐标放入position集合,将游标后退一格,返回s3.2;
216.s3.45、如果position集合不包含currentpos,进入s3.46,否则进入s3.59;
217.s3.46、获取当前路径的影响范围作为radius,如果currentfeature的类型不是弯头,进入s3.47,否则进入s3.49;
218.s3.47、将currentpos放入position集合,进入s3.48;
219.s3.48、绘制按顺序遍历position集合的多段直线段构成的影响空间,其中影响空间的截面为半径为影响范围的圆,影响空间的名字为当前路径的名字,绘制完成后返回s3.2;
220.s3.49、将currentfeature的端点中距离position集合中最后的点更近的点设为shortpos,另一个端点设为longpos,进入s3.50;
221.s3.50、如果currentfeature被标记为已存在,将shortpos放入position集合,返回s3.48,否则进入s3.51;
222.s3.51、如果currentfeature的转弯半径不到影响范围的半径的两倍,进入s3.52,否则进入s3.55;
223.s3.52、将shortpos放入position集合,然后绘制按顺序遍历position集合的多段直线段构成的影响空间,其中影响空间的截面为半径为radius的圆,影响空间的名字为当前路径的名字,绘制完成后进入s3.53;
224.s3.53、清空position集合,将shortpos、currentpos以及longpos按顺序放入position集合,然后绘制按顺序遍历position集合的多段直线段构成的影响空间,其中影响空间的截面为半径为radius的圆,影响空间的名字为当前路径的名字,进入s3.54;
225.s3.54、将currentfeature标记为已存在,返回s3.2;
226.s3.55、将shortpos放入position集合,绘制按顺序遍历position集合的多段直线段构成的影响空间,其中影响空间的截面为半径为影响范围的圆,影响空间的名字为当前路径的名字,绘制完成后进入s3.56;
227.s3.56、算出从longpos指向currentpos的向量originv,然后算出从shortpos指向
currentpos的向量tempv,求两个向量的叉乘方向verticalv,此方向就是当前弯头影响空间的部分圆环对应的平面的法向量,同时用verticalv叉乘originv,获得需要生成的弯头影响空间的部分圆环的次轴方向secondaryv,进入s3.57;
228.s3.57、以longpos作为部分圆环的起点,originv作为圆环的主轴,secondaryv作为圆环的次轴,radius作为圆环的半径,currentfeature的bendangle与2倍的pi的比例来确定需要的影响空间为圆环的几分之几,currentfeature的bendradius作为圆环截面的半径进行影响空间的绘制,影响空间的名字为当前路径的名字,绘制完成后进入s3.58;
229.s3.58、将currentfeature标记为已存在,返回s3.2;
230.s3.59、如果position集合不为空,进入s3.60,否则返回s3.2;
231.s3.60、获取当前路径的影响范围作为radius,绘制按顺序遍历position集合的多段直线段构成的影响空间,其中影响空间的截面为半径为影响范围的圆,影响空间的名字为当前路径的名字,绘制完成后清空position集合,进入s3.61;
232.s3.61、将当前路径的起点坐标放入position集合,然后将currentpos放入position集合,然后绘制按顺序遍历position集合的多段直线段构成的影响空间,其中影响空间的截面为半径为radius的圆,影响空间的名字为当前路径的名字,绘制完成后返回s3.2;
233.s3.62、查看是否存在存储高能管道数据的db文件,如果不存在创建对应db文件,完成后进入s3.63;
234.s3.63、查看db文件是否存在用于存储piperun的影响空间的数据表,如果不存在创建数据表lbb_info_1,完成后进入s3.64;
235.s3.64、查看db文件中是否存在用于存储影响分析结果的数据表lbb_info_2,如果不存在创建该表,完成后进入s3.65;
236.s3.65、循环遍历piperun集合,如果存在未遍历到的piperun,进入s3.66;否则进入s3.69;
237.s3.66、从lbb_info_1寻找当前piperun的数据条目,如果存在进入s3.67,否则进入s3.68;
238.s3.67、更新当前条目的相关属性,删除lbb_info_2中当前条目的所有影响范围,返回s3.65;
239.s3.68、向lbb_info_1中插入piperun对应的影响空间信息如名字、影响范围等,返回s3.65;
240.s3.69、结束。
241.进一步的,所述s4的定时扫描s3中生成的影响空间对应的碰撞干涉对象,去除生成影响空间的管道以及管道正常连接的对象后作为结果输入到数据库中,删除生成的影响控件包含以下步骤;
242.s4.1、查看是否存在存储高能管道数据的db文件,如果不存在创建对应db文件,完成后进入s4.2;
243.s4.2、查看db文件是否存在用于存储piperun的影响空间的数据表,如果不存在创建数据表lbb_info_1,完成后进入s4.3;
244.s4.3、查看db文件中是否存在用于存储影响分析结果的数据表lbb_info_2,如果
不存在创建该表,完成后进入s4.4;
245.s4.4、查找lbb_info_1中是否存在尚未完成影响空间碰撞分析的piperun,获取对应的数据条目,完成后进入s4.5;
246.s4.5、循环遍历s4.4获得的条目,如果存在尚未遍历的条目,进入s4.6,否则进入s4.21;
247.s4.6、设置碰撞检查是否完成标志位flag为否,找到当前piperun下的所有parts存储入part集合,设置一个当前碰撞的去除集合partcol,进入s4.7;
248.s4.7、循环遍历part集合,如果存在尚未遍历的part,进入s4.8,否则进入s4.11;
249.s4.8、将part放入partcol,找到当前part的连接点connection集合,进入s4.9;
250.s4.9、循环遍历connection集合,如果存在尚未遍历的connection,进入s4.10,否则返回s4.7:
251.s4.10、找到当前connection对象的连接对象,找到连接对象中除了当前part的另一个part,如果该part不在partcol中,将其放入partcol,返回s4.9;
252.s4.11、根据当前条目的名称从模型中找到对应的碰撞影响空间对象,进入s4.12;
253.s4.12、找到碰撞影响空间对应的所有碰撞点对象集合,进入s4.13;
254.s4.13、循环遍历s4.12获得的所有碰撞点,如果存在尚未遍历的碰撞点,进入s4.14,否则进入s4.16:
255.s4.14、找到当前碰撞点关联的碰撞对象,查看是否存在既不是焊点又不是碰撞影响空间且不是碰撞影响空间对象,如果存在进入s4.15,否则返回s4.13;
256.s4.15、如果该对象不存在于partcol,则当前对象为影响空间内受到影响的真实对象,将其存放入lbb_info_2表中,同时将碰撞检查标志位flag设为真,返回s4.13,否则直接返回s4.13;
257.s4.16、查看flag的值,如果为真,进入s4.17,否则进入s4.18;
258.s4.17、将碰撞影响空间删除,更新lbb_info_1中对应条目的影响空间状态为已完成影响分析,返回s4.5;
259.s4.18、查找lbb_info_1中当前影响空间的生成时间,如果现在时间相比生成时间已超过1小时,进入s4.19,否则进入4.20;
260.s4.19、当前影响分析已完成,只是没有任何影响对象,将碰撞影响空间删除,更新lbb_info_1中对应条目的影响空间状态为已完成影响分析,返回s4.5;
261.s4.20、当前影响空间对应的碰撞检查尚未完成,等待,直接返回s4.5;
262.s4.21、结束。
263.本发明提供了一种根据管道布置路径自动生成管道影响空间的方法,免去了分析人员手动进行影响空间建模的工作,大幅提升了工作效率和质量;本发提供了一种通过碰撞检查实现影响空间内受影响对象识别的方法,免去了设计人员手动分析影响对象的过程,大幅提升了工作效率和质量;本发明实现了对分析结果的自动导出,方便使用人员将分析结果使用到后续的计算分析环节中;本发明支持单根管道以及多跟管道两种分析模式,通用性更强;本发明支持对用户输入对象和分析结果对象的高亮居中显示,提高用户的使用体验。
264.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以
理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献