油气储运网

 找回密码
 立即注册

QQ登录

QQ快速登录

一步迅速开始

pdms培训&项目数字化360网
查看: 66923|回复: 98

[PDMS教程] pdms软件-detail text详细描述的SCH和mm壁厚的快速设置方法(代码方法)

  [复制链接]
发表于 2016-4-29 11:02:45 | 显示全部楼层 |阅读模式
相信PDMS软件-detail text的设置是件非常头特的事情。
项目的spec有不少等级,每个等级又有很多分类,每个分类又有不同的描述。这就要建立很多个detail text。
detail text里一般会写上元件的SCH号,长输管线的壁厚有可能没有SCH号,而是以mm壁厚表示的。
怎样快速设置壁厚呢?下面介绍一种非常省事快速的方法。

对于detail text里书写SCH的情况:可以使用代码提取SCH号。

管子等单尺寸元件的SCH壁厚设置
管子等单尺寸元件指的是无分支且尺寸无变化的元件,如TUBE NIPPLE FLAN(WN类型) ELBO OLETCAP等。
对于管子等单尺寸元件,使用代码提取SCH:
  1. (ATTRIB SCHED)
复制代码
说明:对于任何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):
  1. (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) ) ))
所以我进行了改进:
  1. (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”,那么再次改进的代码是:
  1. (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,如下图:
bolts.jpg

说明2:“BoltLength”这个名字要和Isodraft里面的bolt设置的replacement text相一致,如下图所示:
Isodraft.jpg

----------------------------------------------------------------------------------------------------------------
油气储运网(www.youqichuyun.com)首发,helloshigy整理校核改进。


pdf文档显示效果很好,请下载文件(以后有更新了,不再更新帖子,只更新这个文件):
pdms软件-detail text详细描述的SCH和mm壁厚的快速设置方法(代码方法).pdf (434.97 KB, 下载次数: 275, 售价: 8 金币)

点评

代码方式有个缺点:代码过长时,会造成在design工具栏元件建模界面中的描述信息不显示,而变成unset;但不影响元件在模型中的显示,可以用命令Q DTXR看到元件的描述。  发表于 2019-7-23 08:16
刚更新了帖子 上传了文件 请下载学习  发表于 2017-3-1 11:34

本帖被以下淘专辑推荐:

发表于 2016-4-29 18:42:52 | 显示全部楼层
总结的很好啊  好资料 对于pdms新手很有用
大大提高了建库效率啊
发表于 2016-4-29 18:43:08 | 显示全部楼层
学习啦  多谢
发表于 2016-5-3 08:21:49 | 显示全部楼层
pdms好资料
发表于 2016-5-3 13:18:54 | 显示全部楼层
detai text能快速设置倒是省了不少时间了
发表于 2016-5-7 21:29:04 | 显示全部楼层
这么好的资料啊 pdms好东西
发表于 2016-5-8 18:29:41 | 显示全部楼层
pdms的专业资料我要好好学习下
发表于 2016-5-17 11:15:22 | 显示全部楼层
例如,对于管子,使用代码提取SCH:
ATTRIB SCHED。具体为:Rtext ( 'PE SMLS PIPE, ' + ATTRIB SCHED + ', ANSI B36.10' )
'ATTRIB SCHED'这个属性在哪里设置的?如何跟等级关联?
对于reducer,使用代码提取两端的SCH号:
IFTRUE(SEQU EQ 1, SCHED OF HSTU OF OWN, SCHED OF OWN OF ATWREF) + 'x' + SCHED OF OWN
OF LTWREF
同上,前部分是一个判断语句,何意??

对于TEE, 使用如下代码提取壁厚SCH:
ATTRIB SCHED + ' x ' + IFTRUE(LEA EQ 3, SCHED OF OWN 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 OF CREF) ) )
同上,判断语句,何意??

点评

SEQU: SEQUENCE POSITION IN MEMBER LIST; HSTU: HEAD TUBE SPEC; ATWREF: ARRIVE TUBE WALL_THICKNESS REFERENCE;LTWREF: LEAVE TUBE WALL_THICKNESS REFERENCE;  发表于 2016-5-17 11:39
'ATTRIB SCHED' 是系统壁厚表里的(具体是TABWLD/WTHTAB的Schedule属性,里面写了SCH号),一般使用master数据库的壁厚表就行了。'ATTRIB SCHED'不用你设置的。  发表于 2016-5-17 11:35
发表于 2016-5-17 11:20:24 | 显示全部楼层
对于detail text里书写mm壁厚的情况:(这种情况的代码很简单)

对于pipe:STR(P1 WALL) + 'mm'

对于REDUCER:STR(P1 WALL) + 'X' + 'STR(P2 WALL)' + 'mm'

对于TEE: STR(P1 WALL) + 'X' + 'STR(P3 WALL)' + 'mm'

P1,P2,P3 WALL,这三个wall参数如何定义??

点评

不用你定义 这是系统默认的 P1 WALL:入口壁厚 P2 WALL:出口壁厚 P3 WALL:分支壁厚  发表于 2016-5-17 11:32
发表于 2016-5-17 16:26:01 | 显示全部楼层
zwp997 发表于 2016-5-17 11:20
对于detail text里书写mm壁厚的情况:(这种情况的代码很简单)

对于pipe:STR(P1 WALL) + 'mm'

参数是系统预定义的,那么这数值需要在哪里定义?如何定义?

点评

spec会关联PIPEDATA,pipedata会关联壁厚表,你找到壁厚表 修改壁厚就行了  发表于 2017-1-19 10:44
P1 WALL 自动提取入口壁厚,不需要定义啊  发表于 2016-5-19 16:11
您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则

扫码访问手机版

QQ|关于我们|网站地图|油气储运网 ( ICP11007657-3 )

GMT+8, 2024-4-26 02:50 , Processed in 0.042317 second(s), 17 queries , Gzip On, MemCached On.

Powered by Discuz! X3.5

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回列表