
摘要
0.9.4版本主要是修复了螺栓材料统计功能中的一批Bug,改动的内容非常多,但是没有用Sample项目再完整测试一遍,近期有反馈说螺栓数量和长度不准,终于等到五一假期,准备好好再测一遍,下面是测试结果,以及关于几个大家最常问的问题的回复。
测试结果证明截图
我保留了上一次测试的最后一张结果截图作为参照,附上本次测试的结果截图,空视图的截图就省略了因为模型都是sample项目。
100-B-1-B1

图1:上次测试

图2:本次测试
因为篇幅关系,这里就不把所有管线的测试结果列出了,想看全部测试结果的可以点击查看原文去我的博客里看。
测试结果结论
螺栓的计算在sample里再次进行了验证,计算数量和ISO图一致;
对于若干问题的回复
1.为什么统计的时候会有部分螺栓没有被计入?
其实这部分未统计的螺栓并不是真的发生了遗漏,对于螺栓的计算,我是做到了逐个法兰面找螺栓ref,然后逐个螺栓孔地去统计螺栓,这个螺栓之所以没有被计入,是因为我在统计螺栓时做了很多约束条件的判断,这一点在《PDMS二次开发(十)——螺栓材料统计功能重构开发介绍》(以下简称文章《十》)中的第二章节:计算方法、第三章节:验证策略和第六章节:元件库规范中做了详细的介绍,这里就不赘述了,当你发现有螺栓没有被计入最后应统计的结果时,打开日志就可以看到那些螺栓出了问题,经过两轮改进目前出错的原因也基本都能描述清楚了,如下图举例所示,凡是出了问题的螺栓一般都没有计入材料表。我的计算方法是严格按照官方示例sample项目的数据结构来校验的,有些地方可过可不过的其实不影响出材料,但还是按照只要校验有异常就计入日志供研究追溯并忽略掉该螺栓的原则来处理(而且有异常往往计算出来的螺栓数据也不正确),pipeline的初衷是研究PDMS,不是做项目。

图3:螺栓计算出错的log日志记录示例
2.为什么螺栓的长度计算不对?
长度的计算如果不正确的话,一般会有两种情况,第一是只差几毫米,这种一般是按螺栓长度表圆整的问题,我的长度计算方法和圆整的规则在文章《十》或《十一》里也有介绍。第二是长度偏差非常大,先看一眼我的螺栓长度计算公式:
螺栓有效长度=法兰(两片) + 垫片(对夹元件) + 螺母 + 垫圈 + 附加长度;
螺栓圆整长度=有效长度按螺栓长度表向上圆整。
所以一般来说发生情况二,肯定是螺栓有效长度计算时几个部分中有的取值出现问题,比如本应取到法兰厚度,结果取到了别的参数上,等等。具体原因要查一下元件库才能知道,不过查起来并不难,只要把出问题的螺栓对应的上下游元件法兰面ref、boltref、中间的垫片都查一下基本就知道问题在哪了。
3.对夹元件螺栓计算问题
有网友反馈对夹元件螺栓计算不对的问题,我也用sample项目测试了一下,测试结果是软件计算结果和iso出图一致,对夹的计算并没有增加特别复杂的处理逻辑,我就是多做了一个判断如果连接形式是WFBB或者WFBD或者W开头的什么乱七八糟的代码,就认为是对夹元件,计算的时候多加上了元件本身的长度(两端法兰面朝内面之间的距离,两端法兰面的厚度已经单独计算了),仅此而已。

下面是在sample项目对对夹元件进行验证的截图(sample项目里的第一根branch里正好有一个对夹元件):
图一:V102是对夹元件,红框之外的材料我都虚掉了。

图二:出图后的图面如下所示。

图三:ISO图的材料表如下所示。

图四:V102是对夹型元件,连接形式为WFBD

所以我觉得对夹元件螺栓计算不对大概率跟第4和5节提到的问题原因一样,跟是不是对夹元件没有关系,大家可以先对照我《十》和《十一》里面螺栓库的规范查一下看看如果不符肯定是出不来螺栓的,如果觉得元件库没问题但是螺栓表计算还有问题,而且您也有兴趣深入一步寻找原因,可以再发邮件给我,带上日志和截图,我们一起研究。
4.为什么别的材料表工具能出的螺栓跟iso图基本一致而pipeline出的螺栓缺失且长度不对?
pipeline是根据对design模块和paragon模块的数据结构的摸索,依靠我自己的理解摸黑做出来的,测试用的是官方的Sample项目,测试结果和iso出图一致。pipeline出的螺栓缺失且长度不对原因肯定是不符合pipeline对元件库的一些约束规范条件例如命名的规则等,但是为什么别的工具能出的跟iso一致,我就没法回答了,我不知道别的工具(包括官方的iso出图)是怎么计算材料表的,可能有一些更深的原理还没有挖掘出来,我猜测他们可能没有使用我引用的某些attribute,因为这些参数各家可能设置方法不同或命名不同,尽管官方给出了命名规则,希望能标准化,但是这种标准化不具有强制约束力,这个问题最终只能具体问题具体分析了,这也是我一直想做成通用型的工具但是好像每家都需要订制一些规则才能用的原因。