PDMS PipelineTool 0.9.3版发布

2022-04-26 19:19:50 浏览数 (2)

摘要

0.9.3版升级优化内容

  1. 重构了螺栓数据计算方法;
  2. 修订了说明,增加了关于螺栓材料验证策略的说明。

概述说明

0.9.3版本主要是重构了螺栓材料统计功能,以sample项目的测试结果为例,螺栓统计的规格和数量与PDMS出的ISO图上标注的螺栓数据一致,有两根不一致的Branch我单独做了说明,我认为按照我的方法计算也是合理的。我本以为螺栓这么一点小东西应该很容易吧,没想到计算起来真是复杂,而且元件属性的订制必须也要符合一致的命名和设置规范,没有统一规范,工具就没有没有办法基于一个标准的计算规则来统计材料,为此我增加了很多元件属性的检查。开发过程经历了三次推倒重来,也算经历了一番波折,最后总算是八九不离十了。因为sample项目的数据量小,材料类别少,所以还有一些判断规则后期需要扩充,以后再说。

计算方法

PDMS教程给出的螺栓长度计算公式:

螺栓长度 = 法兰 垫片(对夹元件) 螺母 垫圈 露出的丝扣

官方教程说要按5mm圆整,但是我按5mm圆整计算的结果跟iso图总是不一样。

我的计算公式:

螺栓有效长度=法兰 垫片(对夹元件) 螺母 垫圈 附加长度

螺栓圆整长度=有效长度按螺栓长度表向上圆整

计算步骤:

  1. 获取元件的catref;
  2. 遍历元件catref的TEXT,找到STEXT是FLANGE THICKNESS,取RA的序列索引号;
  3. 为什么不在元件的DTSE里找到DKEY是FLTH的节点,因为有很多元件没有DTSE数据;
  4. 在catref的param中解析对应索引号的数值就是法兰厚度F1;
  5. F1 同样方法计算对应法兰面的厚度 垫片厚度=螺栓有效长度(净长度length1);
  6. 查找catref的bltfarray,取array的第一个,因为目前发现都只有第一个值;
  7. 获取bltfarray下的bltp,有几个螺栓孔就有几个bolt,以bolt的个数作为螺栓个数;
  8. 获取bltp的btype,根据这个去螺栓等级里找螺栓的类型(例如双头螺柱等),值为BOLT时就是螺栓等级里的默认规格;
  9. 读取螺栓等级表Table(增加几列存储默认值);
  10. 在Table里根据:直径、btype、bsel找到螺栓的描述、材质和boltref(如果btype没有命中,bsel没有命中,取默认值);
  11. 将Table里拿到的螺栓信息回归到bltp,一个bltp就是一个螺栓;
  12. 在Table里根据:直径、btype、bsel找到配件的描述、材质和boltref(如果btype没有命中,bsel没有命中,直接写配件btype名称);
  13. 根据boltref找到配件的名称(在Bitems里)和尺寸(在Bitlength里);
  14. 配件占据的长度=Bitlength里所有配件长度(厚度)的值求和 附加长度值Xtralength=length2;
  15. 螺栓的总净长度=length1 length2=validLength;
  16. 在根据螺栓的直径,在长度表(DTAB)里找到Blength属性;
  17. validLength向上圆整,在Blength的列表数字中找到最近的圆整长度,作为螺栓的最终长度RoundLength;
  18. 将螺栓主体和配件的所有信息组装到材料列表list;
  19. list合并同类项汇总,得到螺栓DataTable

验证策略

  1. 没有指定螺栓等级,给出提示,计算终止;
  2. 指定了螺栓等级但没有数据,给出提示,计算终止;
  3. 管段头部(的法兰面)没有连接任何元件,不计算螺栓;
  4. 可以判断一个元件的上下游是否缺少垫片,发现缺少,计算终止;
  5. 元件库CATE的BTSE和BLTP属性是否有缺失,如果缺失,给出提示,计算终止;
  6. 两个相连的法兰面螺栓参数是否一致,主要是指螺栓孔直径和螺栓孔个数。如果不一致,给出提示,计算终止;
  7. 对于上述判断5和6,如果对夹型元件与配对法兰的螺栓属性不一致,不判断对夹型元件螺栓点集参数,以法兰元件的螺栓参数继续计算(该策略其实是对不规范元件库的一种妥协,sample项目的元件库有很多仪表、控制阀甚至是法兰的螺栓参数设置都是空白,我觉得工程公司做正式的项目还是应该把元件库属性要做完整,后面两个策略8和9意见相同);
  8. 对于上述判断5和6,如果仪表类元件与配对法兰的螺栓属性不一致,不判断仪表类元件螺栓点集参数,以法兰元件的螺栓参数继续计算;
  9. 对于上述判断5和6,如果特殊件类元件与配对法兰的螺栓属性不一致,不判断特殊件类元件螺栓点集参数,以法兰元件的螺栓参数继续计算;

测试结果

测试结果证明截图

如果Branch分了多张sheet页,每一张我都截图,最后一张带上我的界面显示整个Branch的螺栓材料表,对部分Branch的计算策略和结果做了解释说明。

因为图太多,这里我只截取了一根正常的管线和部分有特例说明的管线,可以点击“阅读原文”去我的CSDN查看全部Branch运行结果截图。

100-B-1-B1

100-B-1-B2

100-B-1-B3

BRANCH 1 of PIPE 7 of ZONE /PIPES

50-B-9-B1

有8个螺栓PDMS算成70mm长,我算的是80mm,PDMS出图的时候有螺栓报错信息

报错的就是这个FCV-114

M16对应的配件尺寸

M16螺栓长度表

所以螺栓的有效长度是:

18 1.5 18 13 2 2 13 3=70.5mm; 向下圆整是没意义的,根据长度表,超过70mm圆整后应该长度是80mm;所以我算的螺栓长度是80mm。

80-A-11-B1

PDMS算出来的螺栓,我没有计算螺栓,因为两个法兰的螺栓参数不正确,螺栓BTSE下面竟然没有螺栓点BLTP,我觉得你要是个仪表件啥的就算了,法兰这样就太说不过去了,所以我判为不出材料,然后给出报错提示并能精确定位到出问题的元件,请你改好了元件库再来出材料。

80-B-14-B1

提示了螺栓不匹配,这里的不匹配主要是检查螺栓孔直径和螺栓个数,为什么不匹配螺栓还是计算出了结果呢,因为根据上文提到的验证策略789,这里我觉得应该增加一个开关,让用户选择强规则检查还是弱规则检查,强规则的话则严格要求螺栓属性匹配,不匹配的话不出材料给错误提示,弱规则的话则按验证策略789计算。

元件库规范

要正确的出螺栓材料,元件库要有一定的命名规范和数据设置规则:

  1. 材料等级要设置螺栓等级;
  2. 法兰连接面目前只判断了FBB和FBD;
  3. 对夹元件的法兰面目前只判断了WFBB和WFBD;
  4. 法兰面厚度属性字段的STEXT必须命名为FLANGE THICKNESS;
  5. 对夹元件长度属性字段的STEXT必须命名为LAY LENGTH或THICKNESS;
  6. CATE的属性字段TEXT必须命名为XXX-PAX或者PAX-XXX格式;
  7. 垫片厚度必须设置在params数组的顺序第二位;
  8. 螺栓点集(BTSE)下应设置螺栓点(BLTP);

异常信息捕捉和提示

没有制定螺栓等级

螺栓等级里没有螺栓元件类型

元件没有设置螺栓参数

其他错误示例

最新版下载地址

版本:0.9.3 适配:PDMS12.1.SP4 链接:https://pan.baidu.com/s/1Ihbh7mSwRqwKiCBiRKN1nQ

提取码:gldw

0 人点赞