相信 PDMS软件-detail text的设置是件非常头特的事情。 项目的spec有不少等级,每个等级又有很多分类,每个分类又有不同的描述。这就要建立很多个detail text。 detail text里一般会写上元件的SCH号,长输管线的壁厚有可能没有SCH号,而是以mm壁厚表示的。 怎样快速设置壁厚呢?下面介绍一种非常省事快速的方法。
对于detail text里书写SCH的情况:可以使用代码提取SCH号。 管子等单尺寸元件的SCH壁厚设置管子等单尺寸元件指的是无分支且尺寸无变化的元件,如TUBE NIPPLE FLAN(WN类型) ELBO OLETCAP等。 对于管子等单尺寸元件,使用代码提取SCH: 说明:对于任何BRAN下的元件都可以使用ATTRIB SCHED提取SCH壁厚;建议对于单尺寸的元件使用ATTRIB SCHED提取SCH壁厚。
REDUCER等只有P1 P2点的双尺寸元件的SCH壁厚设置REDUCER等只有P1 P2点的双尺寸元件指的是无分支且尺寸发生变化的元件,如REDUCER SWAGE等。 对于reducer等只有P1 P2点的双尺寸元件,使用代码提取两端的SCH号: (IFTRUE(SEQU EQ 1, SCHED OF HSTU OF OWN,SCHED OF OWN OF ATWREF) + '×' + SCHED OF OWN OF LTWREF) 显示效果为:大头的SCH × 小头的SCH,由于流向的不同,也可能显示成小头的SCH × 大头的SCH。
所以有必要对代码进行优化如下(元件库中P1是大头,P2是小头;根据PMS习惯,我们统一成:大头的SCH × 小头的SCH): - (IFTRUE(ARREQ 1, (IFTRUE(SEQU EQ 1, SCHED OF HSTU OF OWN, SCHED OF OWN OF ATWREF) + '×' +SCHED OF OWN OF LTWREF), (SCHED OF OWN OF LTWREF + '×' + IFTRUE(SEQU EQ 1,SCHED OF HSTU OF OWN, SCHED OF OWN OF ATWREF))))
复制代码以下是对代码的说明: SEQU : sequence position in member list ATWREF: arrive tube wallthickness reference LTWREF: leave tube wallthickness reference
BRAN下所有元件(除了TUBI)都有LTWREF(leave tube wallthickness reference)属性, 即便是最后一个元件(其后无TUBI)的,也有LTWREF属性。 BRAN下第一个元件(即便前面有TUBI)均无ATWREF属性,所以要用SCHED OF HSTU OF OWN提取第一个元件的SCH壁厚。
下面介绍下SCHED OF OWN OF ATWREF,以壁厚表WTHTAB SCH40为例: WTHTAB SCH40 WTHELE SCH40-25 WTHELE SCH40-50 ... WTHELE SCH40-25有以下属性: NBORE: 25mm Schdule: SCH40 ...
选择一个元件,命令行输入“Q ATWREF”, 结果是“/SCH40-25” 命令行输入“Q OWN OF ATWREF”, 结果是“/SCH40” 命令行输入“Q SCHED OF OWN OF ATWREF”, 结果是“SCH40” TEE等有P1 P2 P3点的双尺寸元件的SCH壁厚设置TEE等只有P1 P2点的双尺寸元件指的是有一个分支的元件,如TEE等。
对于TEE等, 使用如下代码提取壁厚SCH是有问题的(我看到网上有人这么写);因为BRAN下第一个元件(即便前面有TUBI)均无ATWREF属性: (ATTRIB SCHED + '×' + IFTRUE(LEA EQ 3, SCHED OFOWN OF LTWREF, IFTRUE(ARR EQ 3, SCHED OF OWN OF ATWREF,IFTRUE(CEND EQ 'HEAD', SCHED OF HSTU OF CREF, SCHED OF LSTU OF LAST MEM OFCREF) ) )) 所以我进行了改进: - (ATTRIB SCHED + '×' + IFTRUE(LEA EQ 3, SCHED OF OWN OFLTWREF, IFTRUE(ARR EQ 3, IFTRUE(SEQU EQ1, SCHED OF HSTU OF OWN, SCHED OF OWN OF ATWREF), IFTRUE(CEND EQ 'HEAD', SCHED OF HSTU OF CREF, SCHED OF LSTUOF LAST MEM OF CREF) ) ) )
复制代码比较以上两段代码红色的地方,可以看出代码的优化。 显示效果为: TEE主管SCH × TEE支管SCH
以下是对代码的说明: Cend: Closed End;Connection at other end of CREF (HEAD or TAIL) Cref: ConnectionReference (BRAN); LSTU: The Tube betweenthe Leave p-point of this Component and the Arrive of the Next (or Tail) isspecified by the named Specification Component; (BRAN的元件在任何情况下都有LSTU属性,即使BRAN最后一个元件后面没有TUBI,也存在这个属性;BRAN无LSTU属性!) HSTU: At the Head of aBranch, there is no Upstream Component; therefore a special Branch attributeexists to allow Tube from the HEAD to the first Component to be specified(HSTU). SINCE EACH BRAN HAS"HEAD" ATTRIB, EACH BRAN HAS "HSTU" ATTRIB; SINCE ONLY BRANHAS "HEAD" ATTRIB, ONLY BRAN HAS "HSTU" ATTRIB. (只有BRAN才有HSTU属性;每个BRAN都有HSTU属性)
说明:以上所有代码中的 "SCHED OF LSTU" 可以和 “SCHED OF OWN OF LTWREF” 相互替换。
若想把STRAIGHT TEE壁厚表示成“TEE主管SCH”的形式, REDUCING TEE壁厚表示成“TEE主管SCH × TEE支管SCH”,那么再次改进的代码是: - (IFTRUE (PARA[1] EQ PARA[2], SCHED, SCHED + '×' + IFTRUE (LEAV EQ 3, SCHED OF OWNER OF LTWREF, IFTRUE (ARRI EQ 3, IFTRUE (SEQU EQ 1, SCHED OF HSTU OF OWNER, SCHED OF OWNER OF ATWREF), IFTRUE (CEND EQ 'HEAD', SCHED OF HSTU OF CREF, SCHED OF LSTU OF LAST MEMBER OF CREF ) ) ) ) )
复制代码
元件mm壁厚的代码设置对于detail text里书写mm壁厚的情况:(这种情况的代码很简单)
对于pipe等单尺寸元件:(STR(P1 WALL) + 'mm')
对于REDUCER等只有P1 P2点的双尺寸元件:(STR(P1 WALL) + '×' + STR(P2 WALL) + 'mm')
对于TEE等有P1 P2 P3点的双尺寸元件: (STR(P1WALL) + '×' + STR(P3 WALL) + 'mm')
需要说明的是,在detail text里写STR(P1 WALL)类似这样的代码后,按下回车后,代码会自动变成STR (PP1 ), 这是正常情况。 自己直接在detail text里输入STR (PP1 )是不可以的。 还有,若要修改含有STR (PP1 )代码的detail text,一定要注意把STR (PP1 )再写成STR(P1 WALL),并且括号两边都不能有空格;不这样做的话, PDMS会提示语法错误,不让修改。 螺栓壁厚的代码设置特殊地,对于螺栓的detail text详细描述,可以这样写: ( ATTRIB DESC OF CATR OF SPREF + '×BoltLength mm STUDBOLT/HEX NUTS(HEAVY)' )
说明1:“ATTRIB DESC OF CATR OF SPRE”指的是bolt引用的cata库里的desc,如下图:
说明2:“BoltLength”这个名字要和Isodraft里面的bolt设置的replacement text相一致,如下图所示:
---------------------------------------------------------------------------------------------------------------- 开云平台官方入口
(m.pifpin.com)首发,helloshigy整理校核改进。
pdf文档显示效果很好,请下载文件(以后有更新了,不再更新帖子,只更新这个文件): |