前言
在详细设计阶段,一条管线可能包含多个管段、阀门、仪表等部件,设计人员通常在建模的时候会使用一个PIPE。
如果这个管线是散件运输,那么每一个部件都是一个独立的个体,在一个PIPE下 我们如何管理这些部件呢?
我们可以使用PDMS Group World 和 Group Set 的功能在PDMS中对散件部件做定义,这样做完全不干涉原来的设计行为。
一些操作说明:
以下操作涉及到 pdms pml 语言
使用方法
-
打开pdms command line
-
在 command window 中输出 show !!runmacro 打开宏编辑器
-
把代码粘贴在宏编辑器中,做适当的修改,点击run 执行宏代码
具体做法
1. 创建gpwl 和 gpset
-- create gpset level
new gpwl /Loose
new gpset /Loose/A1
new gpset /Loose/A1/PIP end
new gpset /Loose/A1/STR end
new gpset /Loose/A1/ELC end
new gpset /Loose/A1/EQU end
end
new gpset /Loose/A2
new gpset /Loose/A2/PIP end
new gpset /Loose/A2/STR end
new gpset /Loose/A2/ELC end
new gpset /Loose/A2/EQU end
end
new gpset /Loose/A4
new gpset /Loose/A4/PIP end
new gpset /Loose/A4/STR end
new gpset /Loose/A4/ELC end
new gpset /Loose/A4/EQU end
end
new gpset /Loose/A5
new gpset /Loose/A5/PIP end
new gpset /Loose/A5/STR end
new gpset /Loose/A5/ELC end
new gpset /Loose/A5/EQU end
end
2. 移动选择散件并且移动到对应的gpset中
注意修改 /Loose/A1/PIP 这是需要添加的父级
-- add loose to gpset
!selection = object SELECTION()
!selection.getCurrent()
!selectionlist = !selection.getSelection()
!m = !selectionlist[1]
var !pipename name of pipe of $!m
do !i from 1 to 100
!loosename = '/Loose' + !pipename + '-' + !i.string()
$!loosename
handle (2,109)
break
endhandle
enddo
/Loose/A1/PIP
new gpset $!loosename
do !x values !selectionlist
if !x.type neq 'BRAN' then
gadd $!x
endif
enddo
3. 上色检查
-- enhance color on members
!ce = !!CE
!gpsets = !ce.mem
do !i indic !gpsets
!gpset = !gpsets[$!i]
q var !gpset.name
!all = !gpset.mem
q var !all
do !element values !all
!sitem = !element.sitem
enhance $!sitem col $!i
enddo
enddo
4. 删除gpset
如果要删除gpset 的成员 请使用
delete gpset mem
千万不要右键成员删除,那会删除模型中元件的!!!
如果要删除gpset 请使用
delete gpset